GCP to introduce an additional charge for publicly addressed VM instances - <AUTHOR> https://cloud.google.com/compute/all-pricing#ipaddress <comment><USER2> This is silly and will further harm GCP's viability as alternative to AWS or Azure. Firstly, I can't find any official announcement regarding the rationale and suggested solutions for their customers to reduce their cost. Just adding a banner to docs pages is plain lazy and is not customer friendly.

Ideally IPv6 support should have been added or at least scheduled to be available at instance level [1] before enforcing such charges. This indicates a lack of engineering capability (more likely resource commitment) to implement such a critical feature on its platform in a timely manner, particularly given that its rivals already have the support in place. To me, that is more worrying than an increase in bill. What is the pace of innovation one can expect from GCP platform? How committed are its leaders as a public cloud service provider?

1\. [https://googlecloudplatform.uservoice.com/forums/302595-comp...](https://googlecloudplatform.uservoice.com/forums/302595-compute- engine/suggestions/8518246-support-ipv6)

<comment><USER3> I think this nets to a < 0.01% delta to our bill. Is this really that _big_ an issue in practice? For hobbyist projects, maybe? But for larger customers, this is a drop in the ocean.

I actually think this is a (somewhat) smart move. It incentivizes you to use a NAT gateway to egress traffic to your instances. You can either run your own fleet (it's very easy - but you gotta fix it if it breaks), or use their managed NAT solution (more expensive, but with less worry hopefully) - and not just tack on a public IP to every instance that needs internet connectivity. We did this from the get-go (running our own NATs) - and only have a few public IPs relative to the # of instances we run.

<comment><USER4> It's not about the cost. Every Internet connected system(at least in cloud. Ideally every system) should be publicly accessible but instead of providing it by default they are providing it as feature. If you don't want to show VM to the world then you use NAT but they have got this backward.

This is slippery slope. One day they might charge you to open a port to external world.

<comment><USER5> "Every Internet-connected system should be publicly accessible"

That sounds like a security or data leak nightmare waiting to happen. I would prefer not entrust my data with a company that feels there's value in having all of their instances publicly addressable.

<comment><USER6> Actually, Google professes in their "BeyondCorp" security model a zero-trust architecture. You shouldn't be assuming that just because your instance isn't publicly accessible that it is secure. (See: [https://cloud.google.com/beyondcorp/](https://cloud.google.com/beyondcorp/))

Which makes this move even more surprising, because GCP reference architectures have traditionally been focused around public facing Internet access. Unless, it is a sign that GCP is getting more traction and Google is running out of public IPs to be handing out like candy. This could be an economic incentive to encourage people to conserve these IPs.

<comment><USER7> This is not what BeyondCorp means. It doesn't mean everything is publicly accessible. It means you don't make trust decisions based on "approved networks", but instead at the device level. It DOES NOT mean that you don't segment services, restrict access to systems that don't need public access, or follow any of the other appropriate security guidelines.

> You shouldn't be assuming that just because your instance isn't publicly > accessible that it is secure

No one thinks this, and no one said anything of the sort. But likewise, making everything public because Google has a site called BeyondCorp, doesn't make it secure. There is a lot of effort to adopt a BeyondCorp model. None of which includes "make everything publicly routable".

</comment></comment></comment></comment></comment></comment><comment><USER8> Cloud NAT would be fine except it costs 4.5¢ per GB (in both directions) which could hurt some use cases. If your backend VMs pull in more than 64.8 GB per month from the Internet it's cheaper to just pay for the public IP. (Only applies to outbound connections initiated by the VM, inbound connections through load balancers don't go through the NAT.)

I'll echo what others have said - it sucks that they're doing this before adding IPv6 support. A good portion of traffic could bypass the NAT entirely considering how many services support IPv6 these days.

They don't start charging until April, so maybe they'll surprise us with an IPv6 announcement before then, but I'm not betting on it. :(

<comment><USER9> Slightly off topic: how does cloud NAT scale. The defaults are way too low for request heavy projects and the regarding docs were kinda hard to understand for a non ops guy.

<comment><USER10> What defaults are you referring to? Cloud NAT is part of the GCP network fabric and all implemented as software so there's no single point of failure or bottlenecks.

</comment></comment></comment><comment><USER11> This definitely limits the usefulness of Google's "always free" tier. This will x2 some bills I have for small personal projects, though will still be a bit cheaper than an AWS alternative after the 12 month free tier.

Sigh.. I suppose it was a matter of time before they figured out the pricing loophole. Back to creating new Google accounts every year to get the year of credits...

<comment><USER12> > Back to creating new Google accounts every year to get the year of > credits...

I'd be careful doing this. You wouldn't want their automated systems to ban all your accounts + personal one by association.

<comment><USER13> I don't know - seems like a really good opportunity to finally kick that Google habit like I've been meaning to do ;)

<comment><USER14> I will second this wholeheartedly - please proceed Google.

<comment><USER14> In regards to the downvotes:

[https://www.gnu.org/proprietary/malware- google.html](https://www.gnu.org/proprietary/malware-google.html)

</comment></comment></comment></comment></comment><comment><USER15> Al least provide proper IPv6 support before charging for IP addresses.

<comment><USER16> GCP has marketed their amazing network so its interesting this isn't supported.

<comment><USER8> What's weird to me is that Google itself has excellent IPv6 support. Every Google web site, API, or other service I've come across fully supports IPv6. Compute Engine VMs are the outlier.

They actually utilize this for their "private Google access" system, which allows you to access Google services from a compute engine VM without a public v4 address. The VM's private v4 address gets mapped into an IPv6 address, along with some extra bytes identifying the customer's network. (You can see this by setting up such a VM and accessing an AppSpot app that echos your source IP.)

<comment><USER17> Google doesn't use GCP for its major applications. Neither should you.

</comment></comment></comment></comment><comment><USER18> And yet IPv6 connectivity is still not available for GCE instance VMs.

<comment><USER16> IPv6 is not yet that useful for external facing sites (what do people use IPv6 for on external sites?), but AWS does let you get a /56 for a VPC which should be enough for most VPC need (you can't specify your own CIDR however).

<comment><USER8> > IPv6 is not yet that useful for external facing sites

Google's NAT pricing only affects connections initiated by the VM (external load balancer traffic doesn't use the NAT). So most of this traffic is going to be your servers talking to 3rd party APIs, update servers, etc. A lot of these services support IPv6 now, meaning your NAT costs would be lower if GCE supported IPv6.

<comment><USER19> But then they couldn't charge you for the bandwidth.

</comment></comment></comment></comment><comment><USER20> >$0.004 per hour

>8760 hours in year so 35 USD

So much for free tier to host low traffic websites.

Good bye and thanks for all the fish! The free VM & ip was appreciated while it lasted :)

Fortunately I built everything on a Ubuntu VM...so damn near any provider works for me.

<comment> yjftsjthsd-h If you were previously entirely on the free tier, what provider are you moving to that's cost-competitive even against $35 a year?

<comment><USER20> I've still got a LowEndTalk forums special kicking around somewhere.

15 Eur per year for a 2 CPU/1GB/ipv4/1TB traffic KVM. edit...its one from alpha vps. So far so good - feel snappier than a google free vm. But that was on a deep discount special.

It's not that hard to find cheap stuff on specials if you're ok with taking a calculated risk on the providers.

If I go the cloud route I'll probably jump on a Azure of AWS intro credit plan.

</comment></comment></comment><comment><USER21> Looks like the Always Free page was updated to include a free IP too, so you'll still be able to use it for free cloud hosting of small loads.

"Each month, eligible use of all of your f1-micro instances _and associated external IP addresses_ are free until you have used a number of hours equal to the total hours in the current month" \- [https://cloud.google.com/free/docs/gcp-free- tier](https://cloud.google.com/free/docs/gcp-free-tier)

Wasn't there last time archive.org crawled the page, so it is a new addition.

</comment><comment><USER22> Darn. The tiny VM I have hosting my Quassel server for always-on IRC will go from approx 20 Australian cents per month to approx $4.30 per month. That's a rather large jump.

</comment><comment><USER23> Notice very few Google employees commenting in this thread?

My guess is they have further announcements planned, and perhaps this documentation change was inadvertantly pushed out early...

I'd be hoping to see one or more of:

* 1 free IP per account

* free shared HTTP loadbalancing

* IPv6 support

<comment><USER24> > 1 free IP per account

I hope so

</comment></comment><comment><USER25> I'll be moving my VMs to AWS, given this almost doubles the costs of the smallest instances

<comment><USER26> Have you looked into using Cloud NAT? Do you need all those ephemeral v4 IPs?

(I work in Google Cloud Networking -- though not this particular area.)

<comment><USER12> This seriously hurts some of my use cases: 1\. Running a website on GCE 24/7 2\. Running a Minecraft/CS:GO server for 10hr/day

There's no situation where I won't be paying more. Plus these games don't really support IPv6.

<comment><USER27> AWS will charge for the static IP whilst the Minecraft server is down.

<comment><USER28> This is false, no it will not. AWS charges for unassigned elastic IPs. Elastic IP can be assigned to a stopped EC2 instance and you will not incur any charges.

<comment><USER27> Really? Sorry then I had misunderstood the bill.

</comment></comment></comment></comment></comment></comment><comment><USER29> If you were in the always free tier, you weren't revenue neutral, you cost google money.

This just amplifies the truth a bit: being 24/7 on somebody else's hardware incurs costs, even if you are surprised when the bill of fare is presented

(disclaimer: I work in the internet number ecosystem so I am not un-involved)

<comment><USER30> Ah well except it is literally called the "always free" tier so you would think that something as core as being connected to the internet would be, you know... free?

<comment><USER29> Did they promise you'd have a static IP? 99% or more of the internet for free is behind CGN or home NAT and has little or no persisting address binding for incoming, hence ddns services. Did google distinguish as saying in the 'forever free' bucket they'd do that?

being "on" the net is not the same as being "always reachable at a stable IP endpoint"

<comment><USER31> Correct me if I'm wrong, but it sounds like they are going to charge for ephemeral IP addresses as well, not just static ones. This means any VM which accesses an external service via IPV4, i.e. making a request to a transactional mail service, will now have to pay for this privilege even if ingress is via a load balancer.

<comment><USER29> I understood it to be a fee for static IP binding, used or reserved. Sad to be corrected (I mean, happy to be corrected but the news won't be happy)

<comment><USER30> You are incorrect. They are going to begin charging a small fee for _public_ IPs (i.e. IPs that can talk to the internet), not static IPs. They do support NAT as an alternative, but they charge for it (and are slightly lowering that cost as a part of this change).

To be clear, none of this is going to have any measurable impact on me, I'm just pointing out the fact that they didn't really hold true to the promise of the free tier.

Source: the email that they sent out to customers about this

<comment><USER29> Well that's bad. Thanks for clarifying and you were right from the start.

</comment></comment></comment></comment></comment></comment></comment><comment><USER32> It feels like GCP figured out a way to charge for ingress. I can get behind using NAT instead of our instances having external IP's but a 4.5¢/GB hit on egress AND ingress traffic is hard to swallow.

</comment><comment><USER33> Too bad K8S doesn't support IPv6 at all.

<comment><USER34> That is completely untrue. Kubernetes has full support for IPv6.

[https://github.com/kubernetes/enhancements/issues/508](https://github.com/kubernetes/enhancements/issues/508)

<comment><USER35> We still want it to be promoted to beta, so it is actually available in GKE and other cloud vendors.

Alpha level cluster in GKE gets wiped every 30 days, nothing you want to run any production workload on.

Of course you have the option of self-hosting..

<comment><USER36> If you can't move your workloads to a new cluster within 30 days, you should reflect on how you're using Kubernetes.

</comment></comment></comment></comment><comment><USER37> On another note: $7/mo for an unused static IP...???

The public instance fee feels like the plastic bag fee at the grocery store - ipv4 space is indeed finite. It is reasonable to assume it costs more to run a VM with public access than without, but to charge for it?

</comment><comment><USER38> Previously, Windows instances required a public IP address in order to connect to and retrieve a license from Googles KMS server. Looks like that has changed recently, and this news had me worried we'd have to pay extra for our Windows instances. So at least now I can save a few pennies and IP addresses.

[https://cloud.google.com/compute/docs/instances/windows/crea...](https://cloud.google.com/compute/docs/instances/windows/creating- managing-windows-instances#kms-server)

</comment><comment><USER39> I find this doc confusing. In the blue box it appears that all external IPv4 addresses will be charged, but in the paragraph immediately below, it says:

> If you reserve a static external IP address but do not use it, you will be > charged […]. If you reserve a static external IP address and use it […] you > will not be charged for it.

This seems like two very different kinds of charges. So is Google changing its policy with just one blue box? Or is the documentation in error? I suppose it's the former but it's not clear.

<comment><USER40> _Currently_ you're charged only for unused external IPv4 addresses.

Starting January 1st, 2020, you'll receive a bill showing how much you _would_ pay under the new scheme that charges for all external IPs, but won't actually pay yet.

Actual billing starts April 1st, 2020.

<comment><USER23> Thats a while 9 months for them to give a free allowance of IP's (say 5 per account), support IPv6, or backtrack on the plans entirely.

</comment></comment></comment><comment><USER41> This is definition question. As example Scaleway offers free public IPv4 address, but if you don't want it, then you'll get discount. - Are they charging for it?

</comment><comment><USER42> How about also offering ipv6 public ip for free? Then we would get higher adoption rate for ipv6

</comment><comment><USER43> Conveniently, SRV records were eschewed from http3 which would greatly diminish the need for this.

</comment><comment><USER24> I really hope they add one free static external ip in the always free tier.

</comment><comment><USER44> There's a growing number of reasons to consider exiting the major clouds.

<comment><USER45> As cloud becomes the default for small to mid scale computing, storage and networking, the patience for hiccups due to roll your own solutions falls as well.

</comment></comment><comment><USER46> At times I think Google should move some of their core teams over to GCP. It seems like they dont know what they are doing. The hiring bar also appears much lower at GCP.

Makes you wonder how important Google sees GCP, or they think the train has already left...

</comment><comment><USER47> The network continues to be an annoyingly expensive part of GCP.

<comment><USER23> Annoyingly expensive part of all cloud providers...

I think thats deliberate - for most businesses, the cost of networking is directly proportional to how many customers you have, whereas the cost of compute isn't so tightly coupled. Startups really care about costs to get started, and aren't so worried about costs when they have a billion customers.

<comment><USER47> Not all of them. Linode has very cheap network, for example.

</comment></comment></comment><comment><USER48> Not a big deal, the bucks are tiny.

</comment><comment><USER49> I don't understand this move, over 2$ month extra for any ipv4 address?

Are we actually running out of addresses or is this a money grab kinda thing? Most of the competitors I know of offer one free ipv4, often a block of ipv6, and extra ipv4 addresses are normally only a dollar or two at most a month extra

Like many others said, this can double the cost of small projects.

<comment><USER8> > Are we actually running out of addresses or is this a money grab kinda > thing?

We "ran out" some time ago. Of course, IP addresses don't get used up, so this can be defined different ways. It's no longer possible to get brand new (i.e. never used) IP addresses from the regional registries, so the only way to get a block is to buy it from another company.

Cloud companies have been buying up IPv4 space like crazy since the registries ran out. A couple years ago Amazon bought half of MIT's /8 block, and just a few weeks ago they bought a quarter of the /8 that was originally set aside for HAM radio.

So we'll never exactly "run out" per se. It's like real estate. They're not making more, but you can still buy it. It just gets more expensive. (And hopefully we eventually move to IPv6 which isn't so maddeningly restricted.)

<comment><USER23> And Google _hasn 't_ been buying up big blocks like that, so are probably running out, so are having to introduce a charge for them...

<comment><USER20> >And Google hasn't been buying up big blocks like that, so are probably running out

That seems like poor planning for a big cloud provider if true. IPV4 will unfortunately be around for a while

</comment></comment></comment></comment><comment><USER50> This is cheaper than AWS EIP for instances that are using an EIP. It is free for GCP VMs to have a resevered IP and use it vs $3.60/mo for AWS EIP whether its used or not. With GCP, unused reserved IP is $7.20/mo. I can't think of a lot of scenarios where you need to hold on to an IP you're not using for an extended period of time, but I could be wrong.

<comment><USER51> EIPs are free when attached. And public addressable instances in AWS do not need an attached EIP, that's only if you want the public IP to be static and to be able to replace the instance without updating DNS records. So both are free compared to GCP's paid.</comment></comment>


Tonight, I'm going to write myself an Aston Martin - <AUTHOR> http://blog.jgc.org/2008/02/tonight-im-going-to-write-myself-aston.html

<comment><USER2> This is a prime example that shows how making assumptions about a problem can lead to clever but invalid solutions. (The assumption in this case would be that they cloned another part of the image in order to hide the ball)</comment>


GitHub Is Down - <AUTHOR> github.com is intermittently not resolving in DNS.
github.com's NS records say nsone.net and AWS are authoritative for it. However, all of the authoritative nsone.net servers are answering queries for github.com with no A records. The AWS DNS servers are responding with A records as normal.
Try for yourself with `dig github.com NS`, and then `dig github.com @dns1.p08.nsone.net.` (or any of the other nsone.net servers).
githubstatus.com reports all is operational. <comment><USER2> This is an interesting one. Doing "whois github.com" the nameservers returned from whois.markmonitor.com were at one point:

      Updated Date: 2020-06-22T12:02:10-0700
      [...]
      Name Server: ns-1707.awsdns-21.co.uk
      Name Server: ns-1283.awsdns-32.org
      Name Server: ns-520.awsdns-01.net
      Name Server: dns3.p08.nsone.net
      Name Server: ns-421.awsdns-52.com
      Name Server: dns1.p08.nsone.net
      Name Server: dns4.p08.nsone.net
      Name Server: dns1.p08.nsone.net
      Name Server: dns2.p08.nsone.net
      DNSSEC: unsigned
      URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
      >>> Last update of WHOIS database: 2020-06-22T12:23:58-0700 <<<

Then as of a bit later:

      Updated Date: 2020-06-22T12:26:23-0700
      [...]
      Name Server: ns-1283.awsdns-32.org
      Name Server: ns-1707.awsdns-21.co.uk
      Name Server: ns-520.awsdns-01.net
      Name Server: ns-421.awsdns-52.com
      DNSSEC: unsigned
      URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
      >>> Last update of WHOIS database: 2020-06-22T12:34:32-0700 <<<

The problem is:

      $ dig @a.gtld-servers.net ns github.com
      [snip]
      ;; AUTHORITY SECTION:
      github.com.  172800 IN NS ns-520.awsdns-01.net.

Those records have a 48 hour TTL. So while this works around the problem with nsone, if they can't fix those servers it might be a while or need manually flushing caches before github.com fully comes back for everyone.

[edited to add updated date]

<comment><USER2> Now mentioned at [https://www.githubstatus.com/incidents/shdhxntw519h](https://www.githubstatus.com/incidents/shdhxntw519h)

</comment></comment><comment><USER3> @dang I saw a number of 'github is down' posts being flagged almost immediately (including this one). Is there a guideline against posting these kinds of messages?

<comment><USER4> It's hard to see how they are "interesting" in the sense of the guidelines. a post-mortem about what broke might be, but the pure fact that a service is down again? This one here at least has some analysis on what's going on.

<comment><AUTHOR> I only posted this because I had some immediate insight into the nature of the issue - i.e. one of Github's two DNS providers seems to be having issues. Someone less familiar with DNS could learn a little by running the commands I put in the original post and seeing how the results differ. It might also be interesting to see how the reality of the issue translates into their eventual status page update.

In general though, I absolutely agree that generic 'X is down' messages with no further information are pointless.

</comment></comment></comment><comment><USER5> Here we go again. Yet my argument to self-host just becomes more valid. [0][1]

[0] [https://news.ycombinator.com/item?id=23102942](https://news.ycombinator.com/item?id=23102942)

[1] [https://news.ycombinator.com/item?id=23572532](https://news.ycombinator.com/item?id=23572532)

<comment><USER6> TBH I only go to GH to access other people's projects.

If I have to use git, I use GitLab...

</comment></comment><comment><USER7> yep, also noticed that. At first I thought I've messed something up with pihole. But looks like it's something bigger...

[https://downforeveryoneorjustme.com/github](https://downforeveryoneorjustme.com/github)

</comment><comment><USER8> whois record updated today. maybe propagation issues. Updated Date: 2020-06-22T12:26:23-0700 Creation Date: 2007-10-09T11:20:50-0700

</comment><comment><USER9> Same here. 126.96.36.199 seems to resolve it correctly.

</comment><comment><USER10> can confirm</comment>


The story of Mel, a Real Programmer - <AUTHOR> http://www.pbm.com/~lindahl/mel.html One of my favorite pieces of classic computing folklore. <comment><USER2> I guess I'm a sucker for these programmers of yore stories. Yes, Mel would be an unsuitable candidate for most modern, team-oriented programming positions. But, heck, to be truly one with the machine in understanding all of its nuances is extraordinary. (Yes, the machines were smaller and simpler then, but still...)

It's disappointing that a great majority of software developers (read: corporate programmer drones) have little understanding of what's really going on under the covers of the layers upon layer of abstractions.

Perhaps, if they truly did know, it might make them wonder if their code will run at all?

<comment><USER3> Hi I am a corporate programmer drone and yes, you are right, someone like Mel would not be very suitable. But that doesn't mean todays software building is any easier. Yes, I don't need to know numeric codes of the machine instructions, and I don't write code which modify itself. But the challenges are not lesser - we need to think about how to meaningfully build those layers of abstractions, how the pieces of software will communicate efficiently to each other (sometimes asynchronously), how to build the modules to be both maintanable and expandable, etc. etc...

When I was a student, I played with machine code and assembler and cracking etc., so I have some knowledge of all the layers, but I don't think that qualifies me to be a so-called Real Programmer. ;-)

<comment><USER4> The problem with corporate programming is not the layers of abstractions or asynchronous communication etc. The real problem is the staggering incompetence of _most_ people involved in the process.

<comment> daniel-cussen Don't forget the layers of management.

</comment></comment></comment></comment><comment><USER5> i college i wrote a little man computer program that calculated gpa scores. when the assignment was given, the example would take an input, load them into an array, and then iterate through the array, to compute the GPA. our teacher, now a PhD, told us that there was not enough room to do more than 5 or 6 classes.

as a natural hacker i took that as a challenge.

his code was very functionally written, it was like a Java programmer witting some thing in LMC, where my experience in programming was in getting my mechanical engineering friends TI80s to play Tetris. To pull this off, you needed to know how to follow directions on the Internet, build a custom serial cable, and understand binary. The stunt involved you triggering some buffer overflow that was never solved, and seemed to be on purpose as I look back on it. This alt mode allowed you to execute your own assembly code.

In any case, my experiences were not based in java or c in fact the only code i had written was an autoexec.bat and config.sys at the time, but to get my DAMN games to work, you had to spend a lot of time hacking them and getting drivers to load in the right order so that the memory managers would not over allocate for one driver vs. another. In the end, my experience of hacking a TI80, cheating in SimCity with a Hex editor, and booting my Wolfenstien 3d prepared me better for this task than classic programing did.

I decided to go a completely different approach than my professor did, and instead of using an array, I used an input buffer, and and a grade counter. I then wrote two major functions, a float multiply, and a long division routine. The only problem was, there was not enough space to make both work in the 100 memory spaces that the LMC had to load instructions, so I added a mode switch routine, that would rewrite the code in a few key places that allowed me to share instructions between the multiply and divide functions. In the end I had a calculator that was able to calculate about 20 grades with 5 decimal points of precision.

When I turned in the project, I was sure that my prof would be impressed, but when i got it back, i received an F. An F, i was sooooooo pissed, i took my timid self and asked him what was this score for, i thought i deserved an A, did he mix up the grades or something. He told me that when he tested the program the last few digits were flopping all over the place. I told him that those were the second part of the float gpa value. He responded that I did not document it. I asked him if he read the readme.txt that i submitted with my code. He claimed that it was not written clear enough ( i knew he did not read it ), so he compromised and gave me a b+, because my documentation was insufficient.

I learned a valuable lesson,"A" students never prove a teacher wrong. It's the same lesson I could have learned in High School, if i was paying attention.

I really miss assembly, not x86 assembly, but embedded assembly, later in college i got to program boot loaders for my co-op, and hack some sound cards for a speaker recognition project. Today I want to get into CUDA as a side hobby, when I have the time.

</comment><comment><USER6> I've always preferred the free prose version (<http://www.catb.org/~esr/jargon/html/story-of-mel.html>), although at the moment it seems to have been corrupted. Tsk, ESR!

<comment><USER7> Yeah it needs to have its encoding specified. In Safari I set it to Unicode (UTF-8) manually and it works like a charm.</comment></comment>


Why is an audio CD 74 minutes long? - <AUTHOR> http://www.snopes.com/music/media/cdlength.asp

<comment><USER2> People still use audio CDs?</comment>


A therapy chatbot and app for depression and anxiety - <AUTHOR> http://www.businessinsider.com/stanford-therapy-chatbot-app-depression-anxiety-woebot-2018-1 <comment><USER2> The notion that the impact of talk therapy comes purely from the intellectual discourse seems to me severely misguided. It is the experience of being with the other person and their acceptance of your pain that does so much of the work. To reduce it to the intellect divorced from all physicality seems like a travesty that will only alleviate symptoms experienced while alone, and will do nothing to reacclimate you to being open and comfortable in the presence of others.

<comment><USER3> >The notion that the impact of talk therapy comes purely from the intellectual discourse seems to me severely misguided.

The evidence suggests otherwise. Internet-based CBT does not seem to be markedly inferior to face-to-face CBT, which is the current gold-standard talk therapy. We really don't have any evidence that the human contact element of psychotherapy is integral or even significant to the effectiveness of the therapy.

We should also be careful to avoid letting the perfect be the enemy of the good. There are many barriers to psychological care, from cost to stigma to simple availability. For the overwhelming majority of people worldwide, it isn't a choice between internet-based CBT or face-to-face psychotherapy - it's a choice between internet-based CBT or no treatment at all. Even if internet- based CBT is significantly inferior, it still has the potential to prevent immense amounts of suffering and death.

[https://www.ncbi.nlm.nih.gov/pubmed/25273302](https://www.ncbi.nlm.nih.gov/pubmed/25273302)

[https://www.ncbi.nlm.nih.gov/pubmed/25590119](https://www.ncbi.nlm.nih.gov/pubmed/25590119)

<comment><USER4> The question here may not be face to face vs remotely, but a person vs a rudimentary AI. Can one feel acceptance and support from a chatbot that has no sense of self?

<comment><USER5> It seems possible that the external is the trigger to allow oneself to feel and acceptance and support internally. For me, that was the difference maker in talk-therapy; I learned how to treat myself better, tutored by an external resource.

</comment></comment></comment></comment><comment><USER6> > "Woebot has moved away from Facebook and launched as a stand-alone app that > only requires a first name to sign up; ... Users can also ask Woebot to > delete their account history, wiping all conversations. ... Even when people > email us, we're like, 'We don't know who you are!' That was a really clear > decision from the outset."

So it _sounds_ like they're doing the right thing. They're helping people with mental health issues so I want to believe good privacy practices will continue.

Time will tell. Until then, this sounds like a wonderful project.

[UPDATE] Okay, I just tried the app. The first thing it asks for is your name. Fine. Pseudonym, no problem. The second request is, "I need to send you a code. What's your phone number?"

So much for "we don't know who you are". >:

[SOLUTION/PSA] Use a service like Twilio for signup. For $1 you can pull a random SMS-compatible phone number out of a pool, get your signup code from the Twilio web console, and then release the phone number. Not anonymous but obscured identity, at least.

<comment><USER7> Perhaps that combination is used in case of the chatbot being aware that one is wanting to take dramatic actions from mental health side affects (hurting one's self or others).

At least with a name (maybe) and a number they have a way to contact you. Or the police. Or anything that will take you off the brink.

Also, poor sap down the road who wants to try it but gets your random number will be devastated. Hypothetically, could have been their last resort.

</comment></comment><comment><USER8> > The students were split into two groups — one was assigned to chat with > Woebot over two weeks, while the other was directed to read an e-book about > depression. Unlike the students in the e-book group, those using Woebot said > they saw a significant reduction in their depressive symptoms.

It sounds interesting. It also reminds me of ELIZA[1] a chat bot designed in the 60s to demonstrate the superficiality of human conversation which ended up being a surprisingly effective therapist to its users.

[1][https://en.wikipedia.org/wiki/ELIZA](https://en.wikipedia.org/wiki/ELIZA)

<comment><USER9> I wish there were a control group - it could very well be that reading an e-book about depression can cause a regression in depressive symptoms.

<comment><USER3> We've run quite a number of randomised controlled trials on self-help books. They work.

[https://www.ncbi.nlm.nih.gov/pubmed/22215865](https://www.ncbi.nlm.nih.gov/pubmed/22215865)

</comment></comment></comment><comment><USER10> The efficacy of drugs, specifically Lexapro, on my anxiety cannot be understated. I had attempted lots of different "mindfulness" techniques and other types of talk therapy. They seemed like they worked, sorta, at the time. But being on Lexapro is so night and day different that it makes all those other attempts clearly an exercise in futility.

Like with everything, if you can't tell it's working, it's not working.

Stop guessing. Go talk to your doctor.

<comment><USER3> >Stop guessing. Go talk to your doctor.

Your doctor will also guess. There are about 20 drug treatments and a dozen or so talk therapies that are all about equally effective at treating depression and anxiety. We have no evidence-based way of figuring out which treatment will work better for which patient. It's a total crapshoot, even for psychiatrists.

Anecdotally, escitalopram worked for you. A thirty second Google search will turn up hundreds of anecdotal reports saying that escitalopram is worse than the devil incarnate. The evidence says that it's no better or worse than a laundry-list of other treatments. You got lucky.

With that said, talking to your doctor is a sensible decision.

<comment><USER11> I don't understand your point. Surely approaching a solution, even after a few false starts, is better than unmitigated suffering.

Besides, there's family history to consider, which may help rule out some drugs. The doc isn't always going in totally blind.

</comment></comment></comment><comment><USER12> Anyone else find this ironic, given the potential link [1] between screen/device use and depression?

[1] [https://qz.com/1190151/why-am-i-unhappy-a-new-study- explains...](https://qz.com/1190151/why-am-i-unhappy-a-new-study-explains- americas-unhappiness-epidemic/)

<comment><USER13> I don't see it. There's a link between being in water and drowning, but swimming has huge health benefits.

</comment></comment><comment><USER14> Ok, so it's an app. An iPhone one. I would love to try it out (I could use some CBT), but I don't have an iPhone. Is there an Android version? (Edit: no, coming soon.) Or a web one? (Edit: the messenger bot seems up, assuming [https://woebot.io/](https://woebot.io/) is the official site.)

Also, going through comments, it seems to be an Eliza-like chatbot. I.e. not very complicated on algorithmic front. I wonder, what it would take to have it instead of M-x doctor in my Emacs?

EDIT: trying out the Messenger bot. God, I'm already in love with the humour and the flow. Nicely done!

</comment><comment><USER15> I would say that therapy chatbots (including ELIZA) would be able to work at least the same as Journaling what you do every day. See [https://www.urmc.rochester.edu/encyclopedia/content.aspx?Con...](https://www.urmc.rochester.edu/encyclopedia/content.aspx?ContentID=4552&ContentTypeID=1)

If you make it more convenient to do this or encourage people to participate then having a nice UI would probably work wonders. Also, if the user believes that the system on the other end is human enough I think you could see better results.

</comment><comment><USER16> This reminds me of another app I saw recently, Calm Harm ([https://itunes.apple.com/gb/app/calm- harm/id961611581?mt=8](https://itunes.apple.com/gb/app/calm- harm/id961611581?mt=8)). At first I thought that was a strange approach, but as I looked through the screenshots, and read the reviews, I realized that this really seemed to be helping people. I don't struggle with self-harm, but I do struggle with depression and anxiety, so I'm glad to see apps like this being created.

I was pretty bored with the app ecosystem in 2017, but Calm Harm gave me hope that there are still some people out there innovating and actually working to use our existing technology to help people for good rather than just making some money off advertising or Yet Another To Do App.

The only thing I get concerned about with these apps is the storage of this data and how it can be made personally identifiable. Hopefully these angles are tackled with people's privacy in mind.

</comment><comment><USER17> > So Woebot has moved away from Facebook and launched as a stand-alone app > that only requires a first name to sign up; Darcy described the app as > anonymous.

Err, so why do I have to register my phone number before I can do anything with the app?

</comment><comment><USER18> An alternative is sites like [https://7cups.com](https://7cups.com) where you talk to real people that have undergone training for this. I can't comment on the efficacy though.

</comment><comment><USER19> Big PR coup here, well done Woebot Inc!

I look forward to computational therapists, it should help with a lot of the oddities with traditional therapists.

Love to see it turned into a non-cloud service though. Mental health stuff can be incredibly personally sensitive, and a non-cloud solution would be far preferable.

</comment><comment><USER20> i tried it. it clearly had a script, and my answers were all emoji or one word (they render for you as options to press). So... really was a "next...next...next.." kind of experience. And then it was done with me for the day, after it rambled about making mistakes.

There is a vibe of "i'm one of the cool kids", like when parents try to "level" with their teenagers. And the machine learning appears rudimentary or perhaps tastelessly implemented.

But it gets CBT in the hands of more people. Maybe people wouldn't pickup a book but are willing to checkout an app. So i think thats an important win, even if the app itself isn't all that.

<comment><USER16> I think this year we will see more therapeutic apps that deal with mental illness. I also think, that this is just a simple beginning and that we'll see bigger and better apps, maybe even this one will greatly improve with time.

</comment></comment><comment><USER21> Great, then they can sell 'anonymized' data to ad, insurance and recruitment companies. They will surely not be able to correlate that data with any other data points they may have.

</comment><comment><USER22> They seem to have made it free, recently. Last time I saw it, maybe 6 months ago, they used to charge an unholy 35$ per week or so.

Now, let's chat up that bot...

</comment><comment><USER23> If you like this idea, definitely watch Space Station 76. A 70's version of the future with a very smart but realistic theory bot.

</comment><comment><USER24> What about irc.freenode.net ##psychology chan for example (as a last resort before resorting to a therapy chatbot)

</comment><comment><USER25> Study: Delivering Cognitive Behavior Therapy to Young Adults With Symptoms of Depression and Anxiety Using a Fully Automated Conversational Agent (Woebot): A Randomized Controlled Trial

Citation: Fitzpatrick KK, Darcy A, Vierhile M. JMIR Ment Health 2017; 4(2):e19.

Link: [https://doi.org/10.2196/mental.7785](https://doi.org/10.2196/mental.7785)

DOI: 10.2196/mental.7785

Abstract:

Background: Web-based cognitive-behavioral therapeutic (CBT) apps have demonstrated efficacy but are characterized by poor adherence. Conversational agents may offer a convenient, engaging way of getting support at any time.

Objective: The objective of the study was to determine the feasibility, acceptability, and preliminary efficacy of a fully automated conversational agent to deliver a self-help program for college students who self-identify as having symptoms of anxiety and depression.

Methods: In an unblinded trial, 70 individuals age 18-28 years were recruited online from a university community social media site and were randomized to receive either 2 weeks (up to 20 sessions) of self-help content derived from CBT principles in a conversational format with a text-based conversational agent (Woebot) (n=34) or were directed to the National Institute of Mental Health ebook, "Depression in College Students," as an information-only control group (n=36). All participants completed Web-based versions of the 9-item Patient Health Questionnaire (PHQ-9), the 7-item Generalized Anxiety Disorder scale (GAD-7), and the Positive and Negative Affect Scale at baseline and 2-3 weeks later (T2).

Results: Participants were on average 22.2 years old (SD 2.33), 67% female (47/70), mostly non-Hispanic (93%, 54/58), and Caucasian (79%, 46/58). Participants in the Woebot group engaged with the conversational agent an average of 12.14 (SD 2.23) times over the study period. No significant differences existed between the groups at baseline, and 83% (58/70) of participants provided data at T2 (17% attrition). Intent-to-treat univariate analysis of covariance revealed a significant group difference on depression such that those in the Woebot group significantly reduced their symptoms of depression over the study period as measured by the PHQ-9 (F=6.47; P=.01) while those in the information control group did not. In an analysis of completers, participants in both groups significantly reduced anxiety as measured by the GAD-7 (F1,54= 9.24; P=.004). Participants' comments suggest that process factors were more influential on their acceptability of the program than content factors mirroring traditional therapy.

Conclusions: Conversational agents appear to be a feasible, engaging, and effective way to deliver CBT.

</comment><comment><USER26> > My name is Dr. Sbaitso. I am here to help you. Say whatever is in your mind > freely, our conversation will be kept in strict confidence. Memory contents > will be wiped off after you leave. So, tell me about your problems.

<comment><USER27> In retrospect, I've wondered if Dr. Sbaitso _actually_ wiped the memory afterward, or just said it would as a joke.</comment></comment>


ISRO successfully test-fires scramjet engine - <AUTHOR> http://www.thehindu.com/news/national/isro-successfully-testfires-scramjet-rocket-engine/article9042486.ece <comment><USER2> Official press release: [http://www.isro.gov.in/update/28-aug-2016/successful- flight-...](http://www.isro.gov.in/update/28-aug-2016/successful-flight- testing-of-isros-scramjet-engine-technology-demonstrator)

</comment><comment><AUTHOR> More info on scramjet engine - [http://www.innovateus.net/science/what- scramjet](http://www.innovateus.net/science/what-scramjet)

</comment><comment><USER3> I was reading about these on Wikipedia thinking "so cool" but was under the impression they weren't possible. Go India!</comment>


Our Favorite Narrative Cliche: A World Filled with Idiots (2013) - <AUTHOR> http://www.davidbrin.com/idiotplot.html <comment><USER3> I think what the author touches on, is the same reason Game of Thrones is so popular.

In game of thrones every faction does exceedingly stupid and brilliant actions. There are no protagonists (besides maybe the mother of dragons - <USER2> burns people alive), who are ever clearly going to be good people or even win. It makes you always sit on the edge of your seat and makes the whole story much more entertaining

<comment><USER4> As a corollary to that type of fictional world view; anyone can die, at any time, even the protagonists, because the bigger story isn't necessary dependant on them. It helps create some freshness in story writing.

As it happens I am nearing the end of reading Brin's excellent Uplift series (spanning six books from the 80s and 90s), where the story often involves several groups of protagonists and antagonists acting in parallel. It makes for a nice change from the typical hero-driven stories that do appear to form the bulk of our fiction.

</comment></comment><comment><USER5> I'd like to reverse the cause-effect relationship here to posit:

People and systems are depicted in fiction as stupid because writers, by and large, are stupid people.

In reality, the problem isn't that writers are stupid but that writers are _lazy_ \--unfortunately the result is effectively the same.

Writing a smart character takes a great deal of work. Most authors simply will not put in that work.

Guy Gavriel Kay is one of the few authors I like simply because his characters are competent.

<comment><USER6> Yes, so often we're simply told that this character is the most brilliant person ever... but then they miss obvious things and simply jump to impossible conclusions or whatever.

Writing characters that are actually intelligent is really, really hard and I tend to remember the few characters that seem honestly clever that I really tend to remember those. I still remember my jaw dropping when L first told Kira he was coming after him in Death Note because of the clever way that was executed. Not to mention how both of those characters exhibited a very different sort of intelligence and you could follow their reasoning process most of the time.

<comment><USER7> It was clear that the author of Death Note spent a tremendous amount of time thinking about the first few volumes before they published anything. It started densely packed with cleverness, but Naomi Penber was the last fancy trick for quite a while, presumably because they could not continue to invest so much time in each page. There was nothing as intricate and clever as Yagumi Light's hidden desk compartment from that point until, perhaps, the finale.

<comment><USER6> Oh definitely, the series started out amazing and slowly went downhill to being rather decent. I think that just shows us how hard this kind of writing is, even for really talented writers. It takes a lot of thought and time and cleverness and it's not something that can be just churned out regularly.

</comment></comment></comment></comment><comment><USER8> To Joseph Campbell people identify with an in group and an out group. Have you ever empathized and cheered for a villain? Where in the psychology does that come from? A good story requires identifying with the protagonist or villain protagonist as a friend or someone we become emotionally wrapped in. Some stories we identify with the out group that we aren't in. First two movies that come to mind are the early Stars Wars and really to make this point is Revenge of the Nerds.

The story of Revenge of the Nerds was really needed at the time. Keep in mind at the time that movie was released gays were still hated, much more than today and yes there seems to be people in today's government who vocally hate gays. The movie causes us to identify with the nerds, to see how we might fit in as an individual, and to see how Lamar with his effeminate javelin throw is a member of our in group, our team.

Any larger community that doesn't accept gays are a bunch of idiots and there is a time and still large communities in the United States that don't. In that case the world is filled with idiots.

> The "we're in this together" spirit of films from the 1930s, 1940s and 1950s > later gave way to a reflex shared by left and right, that villainy is > associated with organization.

That's not true. First movie that comes into my mind is the Wizard of Oz from 1939. The witch with her obedient monkeys and the wizard are the antagonists. The Munchkins were not idiots or enemies in the film. They were hard working people who wanted to get through the day and take care of the their families (maybe not that exactly). They needed someone who was brave, smart, and compassionate, to help them face a problem. That is what the hero does.

"Society never works". This completely misrepresents what Joseph Campbell was explaining about these stories. He would say most people need to conform because they need at the top of Maslow's pyramid to belong but society only works if someone with a new and different idea to solve a problem for that era and time stands alone against the grain of all the people who submit to the status quo because their need to belong.

It's not that society are idiots. It's that most people need to conform. Also, society won't work if people didn't conform. Society doesn't need everybody to be a hero but only a few.

</comment><comment><USER9> Posted at the time: [https://news.ycombinator.com/item?id=8332614](https://news.ycombinator.com/item?id=8332614).

</comment><comment><USER10> > Today's dominant storytelling technique, in contrast, nearly always portrays > one or two individuals in dire scenarios, without useful support from the > societies that made them.

I dunno, that last movie I saw in theaters, Finding Dory, was sort of about the social support system coming out to save a member of society in some deep shit...

</comment><comment><USER11> Sheeple: [https://xkcd.com/610/](https://xkcd.com/610/)

</comment><comment><USER12> Hmm, I wonder why the post-war era was generally less trusting of institutions?

Besides the non-sequitur section about individuals acting stupidly for plot reasons in horror movies, this shift also fits another pattern. One of people being more educated and more able to communicate and discarding some of the ideology of: those who rule us must be our honourable betters.

I personally feel the evidence is more on my side than Brin's. Especially the ethical behaviour of humans when layers of abstraction are added in between their choices and the consequences.

Perhaps he can write another piece about how modern propaganda has implanted the ridiculous cliche in our heads that Kings don't actually rule by divine right _and_ that time spent as a serf who always submits to authority won't be repaid in the next world. That cliche is even more widespread!

<comment><USER13> > I personally feel the evidence is more on my side than Brin's.

Sometimes the evidence is so obvious, we don't even see it. I – and most people frequenting HN – have the fortune to be living in a time and place of 70+ years of peace. That's a "black swan" event when viewed from history, and institutions & political leaders quite possibly have contributed to it.

The same could be said about the economy, civil rights and science.

But even if you disagree with that, there's a difference between "they're all corrupt and idiots" and "they failed". It's quite unlikely that we manage to systematically elect people with a below-average IQ, or below-average moral standards. Therefore, it'd be more constructive to assume good faith and consider that some of the problems are actually hard to solve.

Fundamentally (in discussions such as this), this would require a bit of ethical behavior itself. First among them: Consider the best possible version of your opponent's argument. I. e. nobody is suggesting a return to a King <-> serf relationship model.

<comment><USER12> I'm not really following, I agree that it's a very peaceful time, that's not at issue is it? It's also less individually corrupt now than in the past I'd say.

The argument in the essay is that the idea that leadership and the masses are stupid and corrupt compared to intelligent individuals (not the average person, but a cliche heroic individual) is propaganda, which wasn't present in the past.

I think that's ridiculous and it's much more likely that the idea of there ever being benevolent and intelligent rulers (compared to this intelligent and ethical individual) was the propaganda, which is working less effectively now.

Hence the King/Serf jab, obviously we now know more than those in the past did, and reject the propaganda that the King rules by divine right and is superior to the rest. This is similar to what I'm saying is happening now.

</comment></comment></comment><comment><USER14> An even bigger cliché is the "new technology is evil". I've been thinking about it for a minute and can't even come up with a movie that depicts recent or futuristic technology in a favorable light.

<comment><USER15> Transcendence, Interstellar and Gravity. I haven't actually watched neither Interstellar nor Gravity, but from what I know neither of them portray technology in a bad light. But Transcendence does overall portray technology in a good light, though the majority of the movie is just the movie makers playing with the audience's luddite fears.

Still, it's a damn bad movie.

<comment><USER16> Technology saves humanity in Interstellar, so there's that.

</comment></comment></comment><comment><USER17> Worth reading now in the light of the recent election that was rich in villains, riveting storylines on a background of a society (aka. the idiots, Feds, Washington, Establishment) is broken beyond repair.

</comment><comment><USER18> Shlock. The writer is satisfied with the world he inhabits, is not particularly aggrieved by the powers that be, has not been particularly failed -- and therefore takes umbrage at the suggestion that the established order might not be both benevolent and competent.

But guess what? This isn't the general experience! Most people are constantly, crushingly immiserated and failed -- a societal "failure mode," as he so charmingly terms it, has already come to pass. It's unclear, in fact, that we've ever /not/ been in a failure mode -- begging the question of /why/ things are so consistently fucked up.

<comment><USER19> I couldn't have said it better myself. I had my finger on your exact objection to the author of the article but couldn't articulate them well. Respect to you.

The author lost me the moment he introduced the "paradox" of a writer thinking the societal systems are inefficient but they would dial 911 as soon as there's trouble. So...

(1) Both things are _not_ mutually exclusive at all. Nobody is expert in everything.

(2) What does this guy think the writer should do? Grab a kitchen knife and go be a hero? Outside the USA you can get _jailed_ for assaulting a burglar. He should do some net reading because I suspect him of being too USA-centric.

(3) You can write about heroes while fully realizing you're not one. Takes culture and education to do, and it's very far from impossible. Example: the writers of Spiderman whom the author likes aren't superheroes themselves yet they portrayed the superhero quite well.

The whole thing is written in a way that somehow makes you feel the author is salty and strongly dislikes people who criticize the current public systems. "Be respectful for the work previous generations have put for your future, you ungrateful whippersnappers!", that's how he sounds to me.

I'll admit he makes several good points (like the horror "plots" which were probably already beaten to death as far back as the 1950s) but there are parts of his article I find to be very biased.

</comment></comment><comment><USER20> Brexit, Trump, 86% popularity of Putin, mass media, TV shows, Javascript - what other evidences are needed?</comment>


Show HN: Write and deploy your first web app in 5 minutes, no setup needed - <AUTHOR> http://www.trybloc.com/

<comment><USER2> Nice site. One thing I came across:

Your code validation checks for necessity without checking for sufficiency. In other words while

        "hello world"

will be accepted. So will something like

        "hello world""

Also, when I attempted to deploy some 'malicious' code it didn't deploy (great), but it would be nice to get some message as to why my deploy failed.

Small things but something worth accounting for since the goal of the site seems to be making taking that first step as pain free as possible.

<comment><USER3> you should try out the URL Shortener course, it tests your input at a higher level so you don't bump into things like that

</comment></comment><comment><USER4> I'm not a programmer, yet I'm having a ton of fun going through the steps on this site.

</comment><comment><USER5> If this is going to end up in an awesome website that I can show my friends, how about you show me that up front? That sounds pretty motivating!

</comment><comment><USER6> Great idea but the design is very similar to <http://www.codecademy.com/> you guys should make some UI changes to avoid being tagged copy-cat.

</comment><comment><USER7> Nice, the prior HN post for DojoApp redirects here. I knew the UI looked familiar.

Check the first sentence for spelling: "The box below is an interactie Ruby console."

</comment><comment><USER8> I'm on Ubuntu 11.10 x64, firefox 1 billion, and neither of the buttons seem to do anything... if I have to login to try it, you should say so on the page.

Edit: I refreshed a few times and it seems to be working now, before, it just showed a "next" button and a "grade it" button, and a text box that said "ruby console".

</comment><comment><USER9> Nice work guys , it was fun learning like this. But when I had to go back after finishing the course , the share window , i mean the option to tweet and deploy still follow me in all my previous windows. It would be great if you can provide a close button :)

</comment><comment><USER10> I just get an interactive ruby and it wants me to move through a bunch of steps... Just visiting the page I have no idea where I am going and why I should invest my time. It looks like a site to teach absolutely new programmers how to code Ruby.

</comment><comment><USER11> I feel like it's worth mentioning that if you like learning through an application interface similar to this, I really recommend <http://codeschool.com>.

(I'm completely unaffiliated.)

</comment><comment><USER12> Interesting, I've yet to see such a nicely streamlined code-to-deploy process, in a browser. Cloud9 + github + heroku comes close (and is more powerful), but the initial cost of getting hello world working is much higher than bloc.

</comment><comment><USER13> Once I click 'next' focus is not on the console window. FF8/MacOS. Very distracting.

</comment><comment><USER14> While I don't have any constructive comments to offer with regard to the product itself, I feel obliged to convey my encouragement and appreciation. You're doing great work. Keep getting better.

</comment><comment><USER15> Backspace sent me back to this post and I lost my progress.

<comment><AUTHOR> sorry, we'll get this fixed. the browser window is gaining focus after clicking the next button and we should refocus it back on the console

</comment></comment><comment><USER16> Not sure if this is on purpose or legacy code, but the Tweet button and Like button (both of which I clicked :]) both link and speak of "DojoApp"/dojoapp.com

</comment><comment><USER17> i feel like i've seen this before... name change?

<comment><AUTHOR> yeah, there was some confusion between us and the javascript framework.

</comment></comment><comment><USER11> Should probably do some more careful code checking, or actually run a validator on the code.

</comment><comment><USER18> open your app gives me

Application Error An error occurred in the application and your page could not be served. Please try again in a few moments. If you are the application owner, check your logs for details.

<comment><AUTHOR> can you email us your application URL? we're founders at trybloc.com

<comment><USER18> it was due to a typo..is there a way to see the error logs? url - <http://young-forest-975.herokuapp.com/>

<comment><AUTHOR> did you try to sign up? you can save your progress and edit your code on any repo by signing up.

<comment><USER18> yup.. i signed up and fixed it.. thanks!

</comment></comment></comment></comment></comment><comment><USER19> console doesn't work to well with the xoom keyboard. Looks like the focus goes away and comes back with every key press. I suspect android tablet wasnt a target for the demo :-)

</comment><comment><USER20> it's taking super long to grade the creating random numbers step of the URL shortener (1min and counting)

<comment><USER20> 34min now...

</comment></comment><comment><USER21> So is this site like a TryRuby deal?

<comment><USER3> yeah except it also teaches you how to build apps and then lets you deploy them

</comment></comment><comment><USER22> FYI: Editor doesn't work in IE9

</comment><comment><USER23> Baller</comment>


Ask HN: How do you keep your brain in the tonus? - <AUTHOR> Currently I'm working as a software developer for more than 7 years.
And I'm struggling with the problem that I feel myself a bit stupid because of the routine work. Pretty much any enterprise application development process these days looks like: requirements -> tasks -> DAO -> Service layer -> models -> view models. Of course you can mention microservices, more complex architectural patterns and other things... but.. Not really harder than that.
So I want to train my brain to keep it up to date and fully functional.
What I'm doing now:
- Learning vim (that's really hard after the years with Visual studio) - Trying to solve algos on Hackerrank.
What do you usually do to train yourself? <comment><USER2> I do courses when I can, try some CS theory, some free resources here [https://functionalcs.github.io/curriculum/](https://functionalcs.github.io/curriculum/) such as these undergraduate complexity theory lectures [https://www.youtube.com/playlist?list=PLm3J0oaFux3YL5vLXpzOy...](https://www.youtube.com/playlist?list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2) or this intro to dbms course [https://www.youtube.com/playlist?list=PLSE8ODhjZXjYutVzTeAds...](https://www.youtube.com/playlist?list=PLSE8ODhjZXjYutVzTeAds8xUt1rcmyT7x) then try using a SQL automated prover [http://cosette.cs.washington.edu/](http://cosette.cs.washington.edu/)

Some more VIM resources, Vim as an IDE [https://blog.jez.io/vim-as-an- ide/](https://blog.jez.io/vim-as-an-ide/)

Lecture notes, entire course on vim and horrors that is vimscript [http://www.contrib.andrew.cmu.edu/~haoxuany/vim/](http://www.contrib.andrew.cmu.edu/~haoxuany/vim/)

Great stackoverflow post on grokking vi to understand vim [https://stackoverflow.com/questions/1218390/what-is-your- mos...](https://stackoverflow.com/questions/1218390/what-is-your-most- productive-shortcut-with-vim/1220118#1220118)

</comment><comment><USER3> Might want to consider getting a new job in a more interesting and new area, that way you can learn during work hours. Or, figure out ways to automate your job even more: if it's routine, it's amenable to automation.

More here: [https://codewithoutrules.com/2016/03/15/stagnating- job/](https://codewithoutrules.com/2016/03/15/stagnating-job/)

</comment><comment><USER4> As a CS professor, I have to create lots of exercises for my students so I keep my brain occupied with these kind of things, trying to simplify my examples on each iteration. I find that it is very hard but very gratifying to simplify things. Also, much easier to explain to students.

Also, when I come across algorithms such as the Sieve of Erathostenes which was discussed recently here on HN ([https://news.ycombinator.com/item?id=15408506](https://news.ycombinator.com/item?id=15408506)), I do them to keep my skills and reasoning up to date..

Other times, I do some project euler problems, etc.. In even other times, if a blog post is interesting I try to implement the algorithms or examples there. For instance, there was quite recently a discussion about the little book of Operating Systems, and I've built the bootloader example and learned a little bit more about 2nd stage bootloaders and NASM Assembler.. Things like that..

I find that it is more efficient to learn lots of small things and join them with what you already know previously in your brain, than trying to learn bigger things..

</comment><comment><USER5> I would learn lambda calculus and solve the L-99: Ninety-Nine Lisp Problems[0]. You'll be surprised how brilliant functional programming is.

[0] - [https://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/fun...](https://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety- Nine_Lisp_Problems.html)

</comment><comment><USER6> The "Big Data" (Hadoop etc.) stack takes years to become good at, and is a natural progression for many bored enterprise devs.

</comment><comment><USER7> Learn new patterns and languages.

Learning and implementing CQRS with Event Sourcing was the big step for me out of the enterprise development slump you describe. Then learning F# and functional programming and implementing the architecture gave me insight that made my C# code simpler and easier to read.

</comment><comment><USER8> Monotonous work dulls your wits. I find decaffinating and a moderate exercise workout with music helps. If you are pressed for time, the try meditation or a good mystery novel. Rudy Rucker has always been good for me.

</comment><comment><USER9> Quit and go back to school.</comment>


Glitch offers a paid plan 8$ for 5 boosted projects - <AUTHOR> https://glitch.com/pricing <comment><USER2> I still cannot tell what glitch is after landing on their site a few times. There's lots of ideas laid out for how you could use it, but I can't find a good use case for me.

Users of glitch: what do you use it for?

<comment><USER3> It's like smalltalk or hypercard.

It's a programming environment. You can use it for anything you can program a computer for. In other words: anything.

</comment></comment><comment><USER4> Why is there an ad on HN?</comment>


The Secret to Iranian Drone Technology? Just Add Photoshop - <AUTHOR> http://www.theatlanticwire.com/global/2012/11/iran-drone-photoshopped/59404/

<comment><USER2> Doctoring pictures for propaganda purposes has been practiced for a long time by many different parties.

Two examples from the United States.

<http://news.bbc.co.uk/2/hi/americas/7738342.stm>

[http://observers.france24.com/content/20080924-us-army- photo...](http://observers.france24.com/content/20080924-us-army-photoshopped- images-soldiers-killed-iraq)

The Chinese even used footage from TopGun in a propaganda piece:

[http://www.telegraph.co.uk/news/worldnews/asia/china/8291729...](http://www.telegraph.co.uk/news/worldnews/asia/china/8291729/China- red-faced-after-footage-of-new-fighter-was-from-Top-Gun.html)

What I don't get is that the Iranians and those responsible for the US photoshops think that this sort of thing will go unnoticed.

<comment><USER3> I think it's a bit of a stretch to say that first story is the same thing.

They gave the General a more aesthetically appealing background. It is unethical from a photojournalistic standpoint, where failing to check whether "Michelle" is spelled with one L or two for the cutline is also considered unethical — but I don't think most people would consider it deceitful. Family photos taken in a studio very often have false backgrounds, but very seldom do people look at their shelves and mourn that the photos of their loved ones are all lies.

Even the second story is not really the same thing. It's more obviously deceitful, but it is still attempting to convey truthful information — that is the guy who died, and he wore a uniform like that — rather than attempting to mislead the viewer. It would appear that they didn't have a photo that conveyed the information they wanted, so they pieced it together. At its heart, it is much like using a sketch when you don't have a photo. The message is all truthful, so it is still a step above the propaganda discussed in the OP.

<comment><USER4> There's a lot of things that get touched up without an intent to deceive. Probably the most famous non-malicious photo editing:

[http://files.petapixel.com/assets/uploads/2012/08/kent1_mini...](http://files.petapixel.com/assets/uploads/2012/08/kent1_mini.jpg) <http://www.maniacworld.com/kent-state-shooting.jpg>

<comment><USER5> I had to open in separate windows and compare side by side to see the difference (obvious though it is) - by some weird coincidence, Neil Young was wailing "Four dead in Ohio" over my headphones while I was looking...

</comment></comment></comment></comment><comment><USER6> One would assume this is part of a process which is permitted by upper levels of their government. After all, what do they do when they cannot deliver and someone upstairs expects it?

I wonder if they will photoshop the bomb.

</comment><comment><USER7> Imagine the destruction they could Photoshop onto America. We better disable Google satellite view before they erase our homes and rain pixelated fire down on the entire country. Oh, the horror!

</comment><comment><USER8> "when, presumably, Iran _releases the crack_ to CS6" :-)

</comment><comment><USER9> Iran is asking to be trolled.</comment>


WebKit Isn't Breaking the Web. You Are - <AUTHOR> http://www.webmonkey.com/2012/02/webkit-isnt-breaking-the-web-you-are/

<comment><USER2> The problem isn't Webkit, or even web developers targeting webkit. The problem is that we have a _de facto_ standard for rounded corners on the web, and it's still not an accepted standard. The W3C designs and approves CSS draft specs on a schedule that makes IE development cycles look speedy. The web moves faster than that now.

The first CSS3 draft for the backgrounds and borders module was published in 2001. ELEVEN YEARS LATER it's still not a finalized standard. And the problem is _developers_?

I've been using -moz and -webkit and -o vendor prefixes for _years_ now, with virtually no variation or change. Why don't we have a standardized border- radius yet? By the time the W3C actually settles on a standard, the industry will be twelve draft specs ahead of them in production for all practical purposes.

I really, _really_ dislike the idea of non-webkit vendors implementing support for webkit prefixes. Stick to your own prefixes. Don't break the rules to make up for lazy or bad developers. That's a huge part of why IE was such a pain in our collective asses for so many years. When you coddle lazy or bad developers, you end up breeding an entire crop of developers who end up creating terrible legacy systems that will plague us for years to come. Just say no. If you have to do something, go ahead and implement the draft spec.

Developers: Use Sass or LESS or similar. Start worrying about presentation and stop worrying about implementation. Until the W3C gets its act together, use tools that help you do the right thing with the least amount of effort. Everyone wins.

<comment><USER3> > I really, really dislike the idea of non-webkit vendors implementing support > for webkit prefixes. Stick to your own prefixes. Don't break the rules to > make up for lazy or bad developers.

I sympathize with the sentiment. But you are asking all the non-WebKit browsers to _not render the mobile web properly_.

Like it or not, WebKit won on mobile. People wrote tons of websites that only render correctly on the iOS and Android browsers.

Other browsers can't change that by not implementing the WebKit prefixes. In fact without implementing them, they make it harder for themselves to gain market share - the only thing that can prevent a single implementation like IE or WebKit from becoming a de-facto standard.

Other browsers can evangelize - go around and ask website makers to write to standards, not to what currently works in WebKit. They are already doing that as much as they can. It isn't making much of a difference.

<comment><USER4> I'm not sure what you mean by "WebKit won on mobile" (maybe you mean in US) but you may be interested to know that the most popular mobile browser is Opera [1]. WebKit still has a majority when you combine iPhone, Android and Nokias but I wouldn't say it's won. The race for the mobile web isn't over yet.

[1] [http://www.quirksmode.org/blog/archives/2012/01/browser_stat...](http://www.quirksmode.org/blog/archives/2012/01/browser_stats_f_2.html)

<comment><USER5> Opera is _not_ the most popular mobile browser.

If you look at the graph he links to they compare Opera to Android, iPhone, iPod Touch separately despite all being Webkit based. Add them up and you have around 43% well more than the 18% shown for Opera.

If you look at the table you linked to Android plus Mobile Safari also gives 44%. Opera has 22%.

<comment><USER4> Using these stats, Opera is the most popular mobile _browser_ but WebKit is the most popular mobile browser rendering engine / framework. Whilst WebKit being > 50% of rendering engines definitely counts for something, my point is that non-WebKit browsers account for a very significant chunk of the mobile web.

From PPK again: [http://www.quirksmode.org/blog/archives/2009/10/there_is_no_...](http://www.quirksmode.org/blog/archives/2009/10/there_is_no_web.html)

</comment></comment></comment></comment></comment><comment><USER6> As an outsider looking in, it seems like the whole prefix thing is approaching the problem from the wrong direction.

Why do we have prefixes at all? Well, because developers want to start using new features before they've been fully standardized. Fine, understandable.

Browser developers make browser specific prefixes available, because you can't expect all browsers to roll out the same new features on the same day. Ok, that's one approach, but I can think of two others.

1) Don't wait for the entire standard to be formalized before expecting it to be implemented. A rolling standard approval process, if you will. It's basically what we have now where new features become available far ahead of the full standard, except prefixes won't be necessary because everyone will implement stuff on a rolling basis. That might be a little demanding of browser developers though, which leads to option 2...

2) Best effort evaluation iff you choose to use non-standardized features. Sort of how python lets you import from future, declare somewhere that you're using non-standardized features. After that, the browser switches to best effort mode, and just throws out any attributes it doesn't understand. When running in a dev environment mode, all these errors _would_ show up, so you can see why things aren't behaving as intended if you're using an unimplemented feature.

<comment><USER7> If only it were this simple. The problem is that not only are these implementations not formalized, but also there is often dispute over _how_ they should be standardized. Border radius, for example, is "-webkit-border- bottom-right-radius" in Webkit but "-moz-border-radius-bottomright" in Firefox. If you look at competing ideas for standardizing things like gradients, you'll find even more disagreement. This is why prefixes are needed.

<comment><USER8> Wouldn't naming conventions solve the problem? f.ex. -{vendor}-{object}-{property}-{positions vertical-horizontal}-{additional}: {some-value-syntax-also}

In the end, everyone would just drop the prefix. Generating parsing it would be also way easier.

<comment><USER9> The idea behind vendor prefixes is that they are implementations of ideas before conventions have been established. When two vendors implement something simultaneously but pre-spec, it's hard to tell which one will end up being canonical.

Your general convention is probably good, but in 5 years time when n parameters have ended up in your {additional} parameter, people will ask why that, too, doesn't follow a convention. The answer is definitionally that the convention doesn't exist yet, and the vendor prefix is a step on the way to establishing one.

<comment><USER8> I don't know if it's really a big deal to set up a general convention, and when new features appear, just discuss it with W3C and/or other vendors, and use it. These are the minor kinds of problems that can be solved in theory with a few emails and in practice with a 2 months thread on a discussion board (but still better than a mess)

<comment><USER7> But it isn't a mess. Finalized names are selected as _part_ of the standardization process. That's exactly what TFA was saying: the standardization process works, but web developers are being exceptionally lazy.

What you're asking for is that the browser engineers should wait until part of the standardization process is done (the naming) before they start on implementation, only to potentially have to rewrite things once a finalized name is selected. Not going to happen.

<comment><USER10> a process that takes 11 years and counting to finalize the properties of a rounded border isnt a mess, its a disaster.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> The real problem with CSS is that it hasn't evolved. Solutions like SASS/SCSS or LESS resolve this issue quite neatly. Instead of needing to know or look up the peculiar browser-specific declarations for things like border-radius, you simply say "rounded(5px)".

<comment><USER8> All these solutions are only a wrapper around the real problem, which by all means in the end has to be solved.

<comment><USER7> No, the real problem is that CSS (as it currently exists) has no means for abstraction. These approaches solve that.

Take an analogy: in the not too distant past, some microprocessors had divide instructions, others did not, but you didn't see people bracketing division instructions with platform-specific conditionals. For the most part no one cared because if you wrote "x / y" in your code, that was merely an abstraction that some compiler would break down into a series of shifts and adds or a divide, depending on the platform.

<comment><USER8> If less & co would automatically abstract css vendor-specific features just like Jquery abstracts javascript DOM access methods, you'd be right, but as far as I can see on the main page <http://lesscss.org/> you still have to declare it by hand, so it doesn't work that way. Using less doesn't make styling widely compatible out of the box. Looks like what we need is less-like frameworks to evolve into cross-platform abstraction layers.

<comment><USER11> With projects like Compass (<http://compass-style.org>) for SASS/SCSS, those abstraction layers are there. When we made WebPutty (<http://webputty.net>) with SCSS support, one of the first and most common questions we got was "can I use Compass", so we added it. It's pretty much the standard for abstractions.

Less is not quite there yet, but things like Twitter Bootstrap are well on their way to becoming similar standard abstractions.

<comment><USER12> > With projects like Compass (<http://compass-style.org>) for SASS/SCSS, those > abstraction layers are there.

That's nonsense, those "abstraction layers" are inserted statically during deployment, they don't improve as browsers improve. When Google or Apple adds a proprietary -webkit- property which may never get standardized, Compass has no way to make that property available to all browsers _in sites built at the time the property was solely proprietary_ as browsers gradually implement it (and it gets standardized) over the next years.

<comment><USER7> Code that you compiled on a machine 10 years ago is rather unlikely to still run on whatever machine you're using now. That's the way things go. Still, this is CSS's problem, not Compass's. If CSS had better abstraction abilities built in, then you could point your page to a reference set of abstractions that could be updated as browsers improve.

<comment><USER12> > Code that you compiled on a machine 10 years ago is rather unlikely to still > run on whatever machine you're using now.

1\. That's not even true, you should try out windows once in a while

2\. We're not talking about local programs.

> That's the way things go.

No it's not, that's not even a cop-out that's complete, utter and absolute bullshit. Pages from the very origin of the internet back in 1992 still work perfectly fine today: [http://www.w3.org/History/19921103-hypertext/hypertext/WWW/T...](http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html)

 _You_ making things which break is not "the way things go", it's you being incompetent, don't try to pass the blame to somebody else...

> If CSS had better abstraction abilities built in, then you could point your > page to a reference set of abstractions that could be updated as browsers > improve.

as you're doing here. So now to fix _your own personal incompetence_ there needs to be a centralized authority set which will magically fix your crap as time goes on? How about doing things correctly to start with?

<comment><USER7> _Pages from the very origin of the internet back in 1992 still work perfectly fine today_

Yeah, but none of my <marquee> tags work. Which is funny, because that was also a non-standard, browser-specific feature. If that element had been standardized, but as <marquis>, then those pages would still break.

 _How about doing things correctly to start with?_

I thought that's what we were advocating? Using vendor specific prefixes is the same as using a non-standard tag: it will likely break, and will almost definitely not work on multiple platforms. That doesn't seem to me, though, to be an argument against them.

If you want to complain that the standardization process is too slow, and thus people are used to continue using vendor-prefixed tags longer than they should, I'll be right beside you yelling about it. But the solution, it seems to me, isn't to "break" or abolish vendor prefixes. If you want to speed up the standardization process, do what the WHATWG did.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> It's debatable whether WebKit did or didn't do anything wrong. If vendor prefixes appeared only in developer version of the browser, instead of stable releases, we wouldn't be in this situation - and developers would still get preview access to new browser features for testing, to prepare for when they become standardized.

Instead, the major WebKit browsers include vendor prefixed stuff in stable releases. Since WebKit won in mobile (and is on the way to winning overall), it isn't surprising we got to where we are now, with all other browsers planning to implement WebKit prefixed features.

<comment><USER13> If WebKit didn't include vendor prefixes in stable releases, we'd still be here 6 years after they first implemented it putting PNG files in the corners of all our divs.

The problems are the standards aren't there. The standards organization is just way too slow.

<comment><USER14> I totally agree. W3C is slow. But standards are like politics. You cannot blame W3C for 1 of the 10 parties not agreeing with the spec. And once we got it we are bound to it.

This is the reason native is always better then web. Once the technology is available one party will provide an api and it will be available in the next version of the OS.

Native is a free market approach, may the best man win. But propietary. Web is like socialism. Everybody gets the same but the whole system doesnt drive innovation.

</comment></comment></comment><comment><USER15> Dev^H^H^HPeople are lazy. Preprocessor tools exist but installing and running them is always extra work unless 100% integrated into workflow.

What if there was one common "-experimental-" or "-x-" prefix instead of multiple vendor prefixes? Browsers would parse them all and throw away the ones they don't support/undestand.

<comment><USER16> If you do that then if two browsers implement a new property incompatibly it becomes impossible to write a site that works in both (see gradients, where the "function call" syntax is different in different browsers).

<comment><USER15> The browser can still ignore a property if its value cannot be fully parsed (e.g. invalid gradient syntax).

<comment><USER16> Yes, my point is at the moment I can set -moz-gradient and -webkit-gradient (or whatever the actual property name is) using the different syntax for each, and have my page work in both.

</comment></comment></comment></comment><comment><USER14> The problem to begin with is that browser makers where adding their own baked prefixes. They where not following the spec and opened the door for designers to use them.

My opinion is that final browser builds should not support these prefixes. Its too easy to say that developers are breaking the web. Actually browser makers are. Webkit is the new IE6. Cool features but they are extending the standard with their own baked goodies.

<comment><USER17> might be voted down, but that's pretty insightful. just remove the inflamatory "webkit is the new IE6" and its actually very accurate.

<comment><USER18> I don't think it's accurate at all. Browser vendors aren't 'extending the standard with their own baked goodies', but are merely prefixing those CSS properties that aren't yet finalized, but _are_ part of the standardization process. There's no parallel with IE6 at all, in my opinion.

<comment><USER14> IE6 sucks now. But when it came out it was one of the advanced browsers out there. And it was the first browser to support shadows and opacity.

\- Shadows with: filter: Shadow(Color=#999999, Direction=135, Strength=5); \- Opacity: filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='image_name.png', sizingMethod='scale');

It even has support for javascript in css: left: expression(15+((e=document.documentElement.scrollLeft)?e:document.body.scrollLeft)+'px');

And I remember you could even give your scrollbars colors.

How is this different from webkit shipping browser with cool new features now? Similar to microsoft right? They also wanted to show how cool their browser was back then. If Microsoft never shipped IE6 with these extensions we would have a lot less issues a few years ago.

</comment></comment></comment></comment><comment><USER19> Will wide -webkit prefix support stop sites like google.com from sniffing and blocking users? Probably not. And that is even bigger problem than forgetting to add some vendor specific prefixes. Worst thing about it is that it's all "politics". Want people to use your browser? Block other browsers and they will eventually switch. Microsoft did this, now Google does this. It's just that this time no one seems to care.

</comment><comment><USER20> Is there someone gathering statistics on css prefix usage in the wild? I think it would be interesting to see some real data on this.

</comment><comment><USER21> This talks exclusively about webkit in a mobile world; webkit is also Chrome, and so has taken over the desktop world too.

The success of an engine lauded for its cleanliness and conciseness and architecture (khtml) over the sprawling mess of engines that preceded it.

</comment><comment><USER22> Won't webkit drop the prefix once things are standardised and then sites will either be broken or have to drop the prefix to o, thereby working in all browsers?

<comment><USER16> No. Apple isn't going to break existing sites out of purism. Webkit will be supporting -webkit- for decades, and so will everyone else, just as with every nonstandard tag that's ever existed.

</comment></comment><comment><USER23> Why do we have those prefixes in the first place? Ok, ok, test new functionalities is a good thing, but create bad practices among developers it is not.

All the problems with IE began when they (M word) started their with own implementation of javascript, CSS, and even HTML (automatic close for tags is not ok people, developers need to learn).

It is not your (browser vendors) responsibility to define your own interpretation of the standards. We have organizations that take care of this for you. All the problems involving incompatibilities began with browser vendors trying to "simplify" developers life giving their own version of the "standard".

If a new functionality is not part of the standards yet it must be a reason. Why not respect that and avoid all sort of complications?

Why the rush?

Force organizations to release early pieces of work will generate bad industry standards.

Do not like the way how one standard is defined?

You will have to swallow. - by brazilian team couch Zagallo

<comment><USER15> > It is not your (browser vendors) responsibility to define your own > interpretation of the standards. We have organizations that take care of > this for you.

You realize that browser vendors are members of W3C and thus essentially creating the standards [for their commercial interests]? For example, the browsers have CSS transforms today because Apple proposed them back in 2007. (Wow, that's half a decade ago; time passes fast.)

> Why the rush?

Because without the "rush" by browser vendors we would be writing XHTML 2.1.14 without any fancy HTML5 stuff.

<comment><USER23> Creating confusion among developers just because you want to release "fancy HTML5 stuff" doesn't seem to me as a good idea.

Why not first implement these new features on your own browser as "developer version only", and prove that they work and do benefit users and the web in general? I believe that is the way you establish credibility and acceptance of a particular feature.

I am not against the release of all these amazing things, but I am against the way they are currently doing it.

If the proposed features do not have defined and W3C-agreed set of names and properties associated with those features, they should not be released to end users.

I don't want to see something like "only for IE" in applications and websites anymore. The problem is still small for now, but it can become huge if this bad practice doesn't stop.

<comment><USER15> > Why not first implement these new features on your own browser as "developer > version only", and prove that they work and do benefit users and the web in > general?

Because of the real world needs. For example, Apple has been agressively pushing HTML5 features because they needed to offer alternative for Flash. (CSS effects, <video>, etc.)</comment></comment></comment></comment>