hacker news with inline top comments    .. more ..    18 Sep 2012 Best
home   ask   best   6 years ago   
Realtime Web Messaging over Animated Gifs github.com
566 points by old_sound  3 days ago   104 comments top 33
jere 3 days ago 5 replies      
I am convinced HN is the Pinterest of software.

Someone made a coffee table out of old crates? Pin. Someone made a fence out of old wood pallets? Pin.

Someone made a realtime messaging library out of animated gifs? Upvote.

simonw 3 days ago 3 replies      
I've seen this technique once before... Ka-Ping Yee built a demo that did this back in 1999: http://zesty.ca/chat/

It's an awesome hack, cool to see it being rediscovered/reinvented after so much time!

arscan 3 days ago 4 replies      
This is awesome -- you never know when a solution like this might come in handy.

Wayyyyy back in the day (NS4, IE4 day) I used the width / height of an image the browser polled every few seconds as a transport mechanism... the only other option (refreshing a hidden frame) caused an irritating "page refresh" clicking noise. This was before XMLHttpRequest obviously and was enough bandwidth for our needs. It worked so well that I believe its still being used in production systems.

I haven't looked at the javascript generated in this animated gif solution, but I assume that it does some stuff that wouldn't work in the pre-IE6 browsers. It would be extremely amazing if it did though.

emp_ 3 days ago 5 replies      
> sadly we are in mid September here in the northern hemisphere.

I am in the south and can confirm we are also in September, will report back with news.


joezydeco 3 days ago 1 reply      
So when you read about countries like Venezuela installing proxies in front of Twitter before an upcoming election [1], is there a potential to use this technique to tunnel information into areas that normally would suppress it?

[1] http://orvtech.com/en/general/gobierno-venezolano-elecciones...

benwerd 3 days ago 0 replies      
First person to turn a 90s animated GIF divider into an actual live progress bar with API wins the Internet.
thebigshane 3 days ago 2 replies      
No one has mentioned these specific use cases yet...

1) live charts and graphs of server loads

2) interactive maps (instead of loading new images, just append)

3) I'm also thinking of some kind of captcha, where the user waits for the server to show a certain image and then can submit a comment and the server would know which submits were valid based on timestamp... or something.

4) weather, temperature, stocks

5) collaborative drawing applet? (would still require ajax though)

richthegeek 3 days ago 1 reply      
I did something similar for cheap (insecure) desktop streaming a few years ago.

Roughly, use scrot (or similar screen capturing command line tool) to take a screenshot of the desktop and then encode it into a gif frame. Repeat once per second. Boom, your desktop is now a gif.

The main problem with this approach is that transmitting stuff via gif (low-color bitmaps, remember) is painfully slow even with modern internet.

That said, could probably be very useful in some instances!

dkroy 3 days ago 0 replies      
That is extremely clever, this just goes to show that if you know how something works inside and out you can come up with clever hacks.
crisnoble 3 days ago 3 replies      
If realtime messaging is a new and cool thing, what were chat rooms back in the day? not realtime? Am I missing something? I don't remember needing reloading those pages...

All that aside, this is amazing.

fmax30 3 days ago 1 reply      
It would be much cooler if you were to send the video stream to the gif instead of the booring old messages. Very cool though. Just think if something like this with video was invented back in the days of IE6 , it would have been the skype of its day.
aggronn 3 days ago 1 reply      
Does this work on the iphone? I expect this would be a great alternative to socket.io for mobile that doesn't support websockets or flash.
metatation 2 days ago 0 replies      
I get the humor of this library, but in reality wouldn't you just use HTTP 1.1 chunked transfer encoding instead? According to http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol, that would even work with your IE 2 users.
eliaskg 3 days ago 2 replies      
Would it be possible to use <canvas> for extracting pixel information as binary data?
king_jester 3 days ago 1 reply      
This is pretty cool. I don't know if I would use this in production, as people with epilepsy usually disable GIFs to protect themselves, so this tech would probably fail (usually people use an extension or set the browser to only load frame 1 of the GIF and stop).
barbs 3 days ago 0 replies      
"The awesome image that illustrates this page was given by the internet."
That excellent gif is from "Tim and Eric Awesome Show, Great Job!" Just thought I'd give proper credit where it's due.
eslachance 3 days ago 2 replies      
That's pretty amazing, and it's really too bad that this technique wasn't actually available years before... (or was it?)
dag11 3 days ago 0 replies      
You can also use image streams: http://minipenguin.com/?p=647
peterwwillis 3 days ago 0 replies      
How exactly is this a better approach than multipart/x-mixed-replace, which is designed to push new messages from the server to the client in a stream until the server decides to stop?
kragen 3 days ago 1 reply      
The original chat system from 1999 from which he took inspiration was written by Ka-Ping Yee, not an anonymous hacker.
Phargo 3 days ago 2 replies      
Couldn't this be used to add another layer of security to a conversation? If there is a way to generate gifs on the fly that contained what you wished to say, it could be used to mask your message from basic text screening and copy/paste.


macca321 3 days ago 0 replies      
does it work in email clients?
dotborg 3 days ago 1 reply      
there is no client side code or am I missing something?

how do I decode my data from animated gif in javascript?

mikemoka 3 days ago 0 replies      
if flash wasn't dying already I would have asked if this could have been useful to enable flash games or videos on the ipad... but the answer would have probably been "no" anyway
k2xl 3 days ago 0 replies      
Question: Could this be used for screen sharing?
Xosofox 3 days ago 0 replies      
Combine this with a client side JavaScript based OCR implementation, and you could even send TEXT in real-time.

Imagine the possibilities !!11!1

jcfrei 3 days ago 0 replies      
hacking at its finest. while real life use cases are debatable the implementation is very, very cool.
samet 3 days ago 0 replies      
Very clever hack.
foxwoods 2 days ago 0 replies      
make a QR code stream, and decode it in browser.
Xosofox 3 days ago 0 replies      
GIF... that's soooo geocities...

Very clever

gifplus 3 days ago 0 replies      
I'm crying. I always wanted one of these. I'm so happy.
zoowar 3 days ago 0 replies      
From the example,
;; go and open http://localhost:8081/ in Safari or IE6

IE6, are you serious?

khangtoh 3 days ago 0 replies      
This is just wrong and needs to die and go away. It's probably fun to read for the 1st minute.
Everything's broken and nobody's upset hanselman.com
546 points by axefrog  19 hours ago   342 comments top 81
luu 15 hours ago 9 replies      
The blurb on the sidebar proclaims Scott's MS experience. It's surprising to see someone with a Microsoft background making this complaint. MS spends more effort than any software company on testing, not only in just plain hiring lots of testers, but also on formal methods. They have some of the top formal methods people in the world doing research for them, and armies of people trying to put that research into practice. Making stuff work is hard, and I'd expect someone who worked for Microsoft to know that.

I work for a hardware company. Bugs are really, really, bad. If we find a hardware bug in real silicon, at best, we catch it the moment we get the first chip back, and it means that we have a multiple month delay as we fix it and tape out a new chip, not to mention the cost of throwing away all of the partially fabbed chips we've got, plus the multiple million dollar cost of a new mask set. At worst, we have a recall [1]. We take testing very seriously, and we do a lot more formal verification than most software companies.

The only things you can be sure about are things that have been formally verified [2], and the list of things that you can formally verify is tiny. We formally verified our adder. It took months. Then we did the multiplier, which was much harder. It took about the same amount of time because of the experience we gained doing the adder, but it wasn't easy. Division took a lot longer, even with the experience of doing addition and multiplication. To think that we can advance the state of the art of "things that work" from something like a multiplier to a complex piece of software with "care" and our "collective will" seems overly optimistic.

Everything's going to be broken for the foreseeable future. Putting more effort into testing and less into features is a difference in degree, not in kind. It won't even prevent articles like this from being written because, if all you want to do is find ten bugs in all the software you use, that's still going to be trivial. Considering how much progress has been made in formal methods since 1970, I expect that finding 10 annoying bugs in all of the software I use will be trivial for my entire lifetime.

[1] Well, you don't have to do a recall. AMD had a hardware bug that could be fixed by a patch that degraded performance by 10%. Sun famously didn't include ECC in their L2 cache, which resulted in transient failures for a number of customers, and they made customers sign an NDA before replacing their parts. Guess how much people trusted AMD and Sun afterwards?

[2] Even then, you're never really sure. How do you know the formal verification process itself isn't buggy? It's turtles all the way down. I know some folks who were trying to build a formally verified OS, and they stopped using ACL2 after discovering a few bugs in it. After all, how can you trust your proof if the proof system itself has bugs? ACL2 is old and crusty, but that's precisely why it's used for more hardware FV than everything else combined, outside of Intel and IBM (both of whom have their own, excellent, internal tools). It's old enough to have great libraries. There are newer systems that have better architectures, but they don't have anything approaching the same level of library support for hardware. Yet another tradeoff of time to market vs. correctness. It can't be avoided.

Say you're an engineer who's worried that ACL2 is too buggy for your company to use. You tell your manager. She points out that maybe five ACL2 bugs are discovered every year, and they get more minor each year, as the system gets cleaned up. Moreover, none of the bugs discovered in the past three years have affected any of your proofs, and you wouldn't expect them to have an effect on any proof techniques you're going to use. So you stick with ACL2. And, because you do, there's a tiny risk of a bug. What does this example have to do with the original post? Bugs come from making little decisions like this. No single decision is sure to cause a problem, or (in a company that's serious about testing) even likely to cause a problem, but multiply that tiny probability by the number of times you have to make a tradeoff and the number of lines of code, and it's a statistical certainty that you'll have bugs.

edw519 14 hours ago  replies      
My sentiments exactly. I got so tired of being upset with the horrendous human design in modern technology that I took action. What I've done:

  - Buy 2 $350 laptops every year. Move all data. Give away old ones.
- All contacts in one .txt document.
- Memorize most frequently used contacts.
- No smart phone.
- No tablet.
- No Kindle.
- No palm pilot.
- No Facebook.
- New car ('12 Hyandai) with minimal technology.
- Wash dishes by hand. (Fuck the 48 buttons on the dishwasher.)
- Use Firefox.
- Use dedicated Casio camera with USB interface.

I love modern technology that adds real value.

I don't use any modern technology that replaces perfectly good methods with something unnecessary just because everyone else is doing it.

cstross 15 hours ago 4 replies      
Reading his laundry-list of paper cuts, it looks like many of them (around 50%?) relate to one particular issue: synchronisation. It keeps coming up, time and again, from his email woes (seriously, folks, didn't we solve this one back in 1980?) through to the borked address books, contact lists, and photo streams.

Sync software usually takes a conservative approach to deleting or merging records, and leaves duplicates lying around rather than risking deletion of vital user data. This is a good thing. What's bad is that the tools for housekeeping -- merging and deleting duplicates -- are generally rubbish. (I have the same problem with my phone's address book: masses of duplicates due to sync processes that conserve stuff. And trying to get rid of them using the tools provided turns out to be a tedious pain in the neck, requiring multiple mouse-clicks or focus changes per record.)

Further down the list we get into identity management issues. Nobody seems to have a really good handle on how we manage identity across multiple machines, much less how we manage esoteric stuff like family relations for delegating access to photos or music purchases or whatever.

pmjordan 15 hours ago 2 replies      
As a user of software, I get similarly frustrated as the author. ("user" here includes use of third-party libraries to build on) However, developing system-level software, I've come to realise that even if you really, really care about the quality of your software, you can still be bitten by statistics.

Basically, developing error-free software is comparatively easy if your software effectively performs no I/O, that is, it behaves like a program in a computer science paper: read in some data on launch, grind through some computation, emit output, terminate. Barring catastrophic hardware failure of CPU or memory, this is a nicely deterministic programming model. You stand a chance writing correct code.

Throw "real" I/O into the mix, and almost anything can fail in weird ways, and your code has to be prepared for it. Network I/O is guaranteed to fail sooner or later while the developer is using the software. So it usually gets taken into account in some way, usually only distinguishing between "there is no connection" and "there is a connection". There are a myriad of other cases in between that are usually not even considered.

Disk I/O can fail for a variety of reasons. Not just hardware failure; file systems aren't perfect, especially when confronted with power failure, kernel panics, etc. Randomly flipped bits happen. (yes, really)

Not only are there are bugs in the GUI framework you're using, other GUI programs are running at the same time and they can inadvertently interact with your program due to the shared GUI framework use.

Other programs can inadvertently interact with yours in other ways: locked files, claimed sockets, contention for any kind of resource, race conditions, thread/task scheduling - you name it.

Timing bugs are ubiquitous. Everything you do in your program takes >0 time. Maybe on your system, with your data set, it looks like 0. Maybe because it takes slightly less than one video frame's worth of time. On your customer's system, it takes longer. If they click something before your operation has completed, and you haven't anticipated this, your program will fail in weird ways. Where I live, I can't get an internet connection with less than about 80ms latency even to the nearest servers, let alone to North America, where most servers sit (more like 200ms). You wouldn't believe how much software handles this terribly.

The problem is complexity - in many cases, unavoidable complexity, not the accidental complexity us developers keep railing against. Most of these error cases are extremely rare. The thing is, with thousands or millions of people using your software, extremely rare bugs suddenly become a very frequent occurrence!

Yet the tools for dealing with this kind of thing are somewhere between terrible and non-existent. There are some tools for simulating difficult network conditions; those are comparatively easy to make. I'm not aware of similar software that simulates OS API call failures. Or a "file system from hell" that wreaks havoc with your file I/O. Fuzzing a program in such a way would likely uncover countless bugs. valgrind and its myriad of plugins are great, but as developers we almost certainly under-use it.

Developing such tools is obviously expensive, and even they won't catch all bugs. But I'm pretty sure they could reduce the probability of running into bugs by a few orders of magnitude.

Don't even get me started on how programming languages don't help you handle error conditions or timing problems even if you try.

momotomo 17 hours ago 1 reply      
Very much relate to this. Some days, especially in the corporate environment where I work, I genuinely wonder if we are missing the point completely with all the innovation and advancements in OS' and software instead of focussing on cleaning up what is already there. It always feels like there's more time spent developing all of this than there is dogfooding it.

One thing to add to the gripes re iOS - I've found that it works beautifully when it does, and horribly when it doesn't. His point on notification clearing reminded me of the Mail app when you have connection failures: I had 5 accounts tied into it, and when the networking failed it would throw 2 modal dialogues for each account. The amount of time I spent glued on the spot hammering away at notifications so I could move on felt staggering after a while.

I had a glut of other misc. quirks and persistent crashes that cut through the gloss on the device, this in combination with a string of Windows 7 bad behaviour (started python development, started hating python development) led me to switch onto linux (started loving python development) and a droid handset. Guaranteed they will have just as many warts and bad behaviours, but it feels more reasonable because I'm expecting them, and on linux, have an opportunity to fix them.

There's two aspects to being a "power user" (not entirely but I try) that I could never take for granted - this capacity to fix things that don't work, but also the opportunity to work with the more atomic tools. There's nothing more soothing than stringing commands together, writing a script, or organising things in a text file or database: mostly because if something breaks, I broke it, I can see the breakage, I can fix the breakage. Minor bliss!

Addendum / edit to this to provide context - I think coming from a control systems background has coloured a lot of my opinions in regards to innovation. I've seen fistfuls more value delivered (in this field, potentially applicable to others), by creating small, clean, highly polished, iterative and well integrated systems as opposed to large, sprawling and constantly evolving...messes. The sometimes popular fail first / fail fast / iterate like crazy mantra makes me itch. I've seen successful lean / agile approaches executed that focus on quick delivery without being so flippant about quality.

batista 16 hours ago 3 replies      
So, your amazing feat of engineering phone, with a color retina display, audio-video capabillity, 700.000 apps, gyroscope, HD cameras, etc has some extra stuff taking 3GB drive space (of the 16GB device).

Your amazing, multi million lines of code Windows desktop, the work of some 1000 people or more, has a problem with indexing.

The protocol and apps that connect you via email to everyone you want, free, globally and instantly, sometimes loses a mail. Or the UI is slow to load your new messages.

A program with which you can do on your laptop what it took huge teams, million dollars of equipment, and professional expertise to do (FCP), has a crashing bug in some particular action.

The program that lets you talk to everybody on the planet, instantly, with video, and paying nothing, has a badly designed UI.


Yes, I can see how "everything is broken".

Because, when we didn't have any of these, when 30 years before you had a rotating dial to dial numbers on your phone that only called landlines and cost mega bucks to call internationally, when you had MS-DOS as the most prevalent desktop OS, when 20MB was a huge disk in a desktop system, and before something like video chat was only possible
in huge organizations with special software, everything was perfect...

Wanting to improve things? Fine.

Not understanding the complexity and magnitude of the technical achievements you use everyday? Bad.

mrb 16 hours ago 5 replies      
I completely relate to that feeling. This has led me to use less of everything over time. One day I realized this, that I was in fact applying the KISS principle to my life. Fewer apps + fewer features + fewer gadgets = fewer bugs irritating my day-to-day life.


My desktop environment on my laptop is Linux with, 99% of the time, just a bunch of xterms and a browser (without extensions... they tend to crash browsers).

I installed exactly 4 Android apps on my phone (after flashing it to cyanogenmod to get rid of the bloatware): gmaps, youtube, barecode scanner app, some app to write notes on the home screen (NotesWidget). Everything else sucks and is a waste of my time. But even the dead-simple NotesWidget app author managed to mess it up with enough bugs that I am considering writing my own(!) I have tried at least a dozen other notes-taking application and am not satisfied with any of them.

I don't maintain a music library. Sync'ing music across multiple PCs, phones, other devices, etc, suck. Personal libraries "in the cloud" don't work because I am not always online. I just listen to satellite radio in my car.

I own no TV, no game console, no tablet.

And yet, I am a tech enthusiast. I accept a little "complexity" where it makes me happy: I program GPUs/FPGAs, I have a home theater set-up at home, I maintain my own website/blog on colocated servers, etc.

DanielBMarkham 13 hours ago 1 reply      
As modern life becomes more complex -- and that's both complex in terms of both computers and social/government structures -- we are swimming in edge cases.

When you used to interact with 4 or 5 complex systems every day, it was a rare thing when one was whacked. System designers got things working 90-95% of the time and the rest of it wasn't worth chasing down. But now that we're interacting with hundreds of complex systems each day, we're constantly running into oddball situations where things frustrate us.

Worse still is what I call an "edge case tsunami" where multiple oddball situations combine to create a PITA or disaster much worse than any one of them would individually.

It's an interesting problem. We can't make everything perfect to a 99.999% accuracy. The economics simply don't work out.

To edw519's point, I think the way to go is to toss out the general purpose computer. Have a device for books, a device for music, a device for programming, a device for surfing, and so on. Not only does this decrease the possibility of a cascade, it also allows us to physically separate our technology habits.

greggman 17 hours ago 2 replies      
Honestly, there'S just too many things to fix. It's easy to believe with just a little better management or a little more attention to detail or more XP or whatever all these problems would go way but the truth is it's just too damn complicated.

Each of the products mentioned are huge HUGE projects layered on top of hundreds of other projects. A browser has a various networking stacks themselves built on OS stacks themselves built on device drivers etc etc. Pick any part and it's literally counting on millions of lines of code to be flawless. Interact across the net and now you need the software on all parts of that network to be flawless as well

Can you name anything with so many parts that just works?

It's possible it could get better but it seems unlikely. Each year the new stuff is built on top of the old stuff making the hole deeper and deeper as we go. That's why a 1.6ghz atom with a gig of ram sometimes feels slower than my Atari 800

bobsy 15 hours ago 2 replies      
This stuff all bugs me. On my 4 year old Mac sometimes app's just won't start. They bounce once then exit. The only fix is to restart. No idea why. Been happening for years.

In Firefox on Windows. I write a bad bit of JavaScript and the browser just freezes and there is nothing I can do apart from ctrl+alt+del. I really don't know why tab's aren't sand boxed to at least let you exit them.

Photoshop has minor annoyances. If the color picker is open new files don't open. Been like that for 4 versions.

For some reason Filezilla refuse's to open a directory sometimes and hangs for about a minute before letting you retry. To speed this up you can press the disconnect button. Been like this for ages across all my computers..

I have some bugs in my product which are simply too time intensive to fix with the current schedule of features which I need to implement. If I was running things these bugs would be cleaned up first but.. sales is running the show and the next feature will kick start a new promotion and so on. For us at least, there is too much demand to move forward and not enough developers to maintain this development speed. This is why bugs creep into the product and this is why some of the more obscure ones can still be found in the product 30/60/90 day's after being reported.

yesbabyyes 16 hours ago 1 reply      
I've spent most of my career for 15 years as a programmer. Some days I just want to throw out my computers and phones and never touch them again. Days when I get overwhelmed by the feeling described in the article.

Every computer environment is layer upon layer of kludges. There is shit all the way down.

tomflack 16 hours ago 4 replies      
I've been thinking for some years now, I wish everyone would stop implementing features and perfect the ones that are already there.

Optimise. Improve.

This is why I was so upset at Sparrow throwing in the towel - they concentrated on one thing, email, and did it better than I'd seen it done before. By specialising they were able to spend the time to get it right.

crazygringo 6 hours ago 0 replies      
The way software is sold right now is inherently broken. You pay for it before using it, so companies justifiably spend their efforts on developing new whiz-bang features to get you to attract you to buy something new, rather than fixing and rationalizing the features that already exist.

I have a hunch (that's all, though) that if there were never any up-front purchase cost for software, and instead it was all, say, monthly-subscription-based, that there would be a bigger focus on quality. "Hmm, frustrated users are cancelling their monthly subscriptions because sync doesn't work? Well, maybe we should work on that instead of adding glossy cover flow..."

creativityhurts 14 hours ago 0 replies      
Yes, we all can relate to that posts and everyone I know complains about software mentioned there, such as Skype, iTunes, Chrome, I might even add the fact that if you have 3 synced Apple devices near you a reminder pops on each one of them at the same time which shouldn't be so hard to avoid given that they're all connected to the same wifi. We live in this cloudy era, everyone speaks of clouds and sync and data everywhere but synchronization is the most broken thing of them all.

There are a lot of silly problems with the software and hardware that we use everyday and most of these problems are noticed by us, the power users. It's like with the Twitter-ad-supported saga: the power users bitch about it, look for alternatives but the regular Joe sticks with it and he's very happy. I know a lot of people who don't see any problems with Skype or Outlook and are very happy with them.

Today I was at the bank and the clerk wanted to print something and I had to literally wait there 20 minutes because the Adobe Reader was updating and some guy from IT was logged in remotely to make sure everything went fine with the update. She apologized telling me that "you know how it is with these computer programs nowdays" and that she was very happy with the old setup. I chuckled and thought of that Adobe Reader update meme[1] but deep inside I wept.

[1] http://t.qkme.me/3qk2v4.jpg

parasubvert 2 hours ago 0 replies      
I don't deny problems with today's software, but perhaps the issue is that things are moving FAST, particularly in the mobile space, and like the last few software booms, sloppiness occurs. I mean, look at the pundits all complaining that the new iPhone 5 is boring, why can't Apple reinvent the mobile world every 2 years? Because they're having a hell of a time incrementally improving the current world, which isn't anywhere near perfect! There doesn't seems to be much excitement in "getting things perfectly right", it's about finding the sweet spot of "mostly right". This tends to cater to consumers and not geeks or power users with edge cases.

I don't get upset about today's software because it's much better than what we had before (even iTunes). I remember the 90s where my computer would lock up twice daily with a blue screen. Where my data would get corrupted regularly. Where I had to reinstall my OS bi-annually to deal with slow downs. I haven't had to experience these things in nearly 8 to 10 years. Now it's all more about annoyances than catastrophic failures.

mgkimsal 11 hours ago 1 reply      
I've thought for a while of having a general 'bug tracker' that's centralized around me, not a particular company. I'd have one place where I file all my bugs/issues, etc, and companies could subscribe to it, or sync it in to their existing issue systems. I'm tired of having to create yet another jira/etc username/password, navigate yet another UI for reporting something, having it not work, having someone not get back to me, and so on.

Having someone get back to me or notify me of a change may never happen entirely, but I'd have a centralized record of all my issues. And other people could search them if I shared them (by default, perhaps). And vote them up, or add their own notes. Or give me an answer or workaround.

Perhaps this is sort of what stackoverflow is or where it's going, but I think there's another approach to tackle this issue, and there may be room for multiple approaches(?)

nchuhoai 14 hours ago 0 replies      
For all those who don't get the pun:


Everything's amazing and no one is happy by Louis CK

ChuckMcM 9 hours ago 1 reply      
Love the rant, answer of course is in the title "Nobody's upset" which isn't really true of course it should be that "Nobody is actionably upset."

Much of this rant is a variation on 'craptialism' [1] and a number of the problems mentioned can be traced back to disk drove based storage. I've got a RAID6 appliance that I store stuff on and realized I was avoiding a lot of these bullets. (such appliances have their own issues of course but that is a different rant)

Its my hope that people will stop 'adding value' with software hacks to things like dishwashers (do we really need a ringtone to tell you its done? really?) focus on function, but that only happens when people actionably respond to these problems. They return them for their money back.

One of the truths in the consumer goods industry is that returns is an excellent signal for going to far. These things live on very small margins to begin with and returns reduce that margin still further. So folks returning 'broken' products incent the manufacturer to fix them. Its a pain though, that I truly understand.

[1] Crapitalism is the effect of racing to the bottom in terms of price to achieve market penetration / dominance. Sadly it often leads to products that are cost reduced to the point of not being functional.

delinka 14 hours ago 0 replies      
"No one from the company believes..."

1) I've been on the non-believing end. You think "how could this possibly happen?" and without standing over the user's shoulder and watching them click/tap around, it's inconceivable that the problem exists.

2) I'm sure there's a problem, and you've provided me the screenshot showing the result that indicates a problem, but I can't reproduce it. Usually because the user doesn't know how to explain reproducing the problem.

I really think both of these have to do with people's lack of detailed logical analysis. I get it, you're the bank teller and your job is to count the money and count it correctly, not to analyze pixels on the screen. I see this as a failure of developers and designers to create systems that don't have these headaches.

tl;dr - I agree with the author's final three bullet points, but I can see where the tech[nician|nologist] involved doesn't have nearly enough information to solve (or even to see) the problems.

bpatrianakos 3 hours ago 0 replies      
I took this as whining. I'm not trying to be a dick but that's how it came off. The whole whining followed by "we can do better" is starting to become really cliche. Yeah, we can do better but we can also read some manuals, get some tech support, and you know, do some basic troubleshooting before proclaiming that these minor inconveniences should never ever happen ever.

We can make better software and we can make it easier to use and we can make everything more convenient but it'll never be enough. Making stuff better doesn't mean ridding it of all possible complications and minor annoyances. In fact, some of the things he complains about are actually features, not bugs and those cases the solution is to get a different product.

Everything is broken and nobody's upset? No. Everything is awesome and everyone's jaded.

nodata 15 hours ago 2 replies      
We need public open bug tracking. For everything.

No more "put your bug in here, trust us, we'll fix it". They won't. They'll say you're the only one with the problem. Everyone will be so uninspired they won't report bugs.

eckyptang 16 hours ago 1 reply      
He's doing too much with too many different things. The following phrase is valid here: "A man with two watches never knows what time it is".

I rarely get problems of that magnitude. The only unreliable thing I have is my ADSL connection and that's not a problem as I can use my phone as a backup.

nsns 16 hours ago 0 replies      
And what about your body? and the world around you? and your relationships? and the instruments you use?
Do your faulty examples in any way contradict anything else you know? do you have a counter example?

Reality is dirty, everything tries to break down all the time, hindered by the traces of its past, and the ambivalence of its future use. We make stuff dreaming of a prefect neat existence. This keeps us going, like moths around a light bulb. And we should keep on doing this nevertheless.

lnanek2 13 hours ago 1 reply      
Doesn't Facebook say move fast and break things?

I know, personally, I have an Android app that gets about 12k new users a month, and I see exceptions reported all the time that I can't reproduce from the buggy as hell WebView, web content control, in Android. Especially when used with AdMob/Google ads, so much so that I use other advertisers instead. I could spend a week copying the source code for WebView into my app and fixing all the bugs if I'm lucky, it may use some private things I preventing it from being copied or something. I know it has threads and databases and all sorts of bizarre stuff. But still that would help like just a tiny, small percentage of the actual users. I'll get far more users working on something that applies to everyone like better graphics or multiplayer play, etc..

I did spend all weekend filing hideously long bug reports with sample code at work, though. So once you are talking about millions of users, it can make more sense, I guess. Which I suppose is where someone from Microsoft is coming from. They are famous for supporting even old bugs in their software for things like SimCity so it wouldn't break across upgrades.

praptak 14 hours ago 0 replies      
Yes, software is buggy. But resources are finite, innovation is fast and buggy products are out there in the market, eating the lunch of the defect-free products that are still under development.

As irritating as all these bugs are, you, the consumer, will not wait for a perfect product but will instead settle for the crappy one that's already available. Maybe this will change for areas where innovation reaches some kind of plateau, marginal utility of new whizbang features will fall and marginal utility of bug-freeness will rise.

lifeisstillgood 12 hours ago 0 replies      
Everything breaks and nobody is upset because we have evolved eco-systems that are minimally resilient.

And that is a good thing, and the right direction to go.

@luu - no we cannot prove even a tiny fraction of what we want to work, will do so. And the best approach is how biology has done it - failover, resilience, creative destruction, etc etc and all those good things.

I am often reminded by these sort of discussions of the anecdote of a Cabinet Minister chatting at the Russian Embassy in 1980. The senior Russian diplomat said "So, who is the person in charge of bread deliveries to London?"

narrator 12 hours ago 1 reply      
Whenever I use windows there's always something broken. Example: old windows laptop dies and won't turn on. It's old so I remove the laptop drive and put it in an enclosure. Now I'll boot into Vista and share files off it and copy it to new Mac. Easy, right? Wrong! The thing won't let me share the files because I don't have access to them even if I am adminstrator on my windows machine. After waiting for permissions to get changed and getting a flurry of access denied popups I think its going to work but directories in the share are simply missing on the mac even though I've assigned privileges to the share user.

So..... I boot into Linux. 20 minutes of googling how to share files with macs, an apt-get or two and I'm copying off the files. Same goes for things like cd ripping. On Linux it just works, on Windows you have to get ad encrusted dodgy apps that sort of work and demand money every 5 minutes. Basically, if you are a power user, Linux rocks. Yeah I know....but Grandma will revolt! Fine, get her a mac or an android tablet. Why people who aren't forced to still use windows, I have no idea.

HyprMusic 17 hours ago 2 replies      
This is one of the things that really upsets me. I hate how nothing ever works. We spend our money on things that don't do as they say, or companies that don't do as they should. I guess it's inherit a problem with a profit driven world where more features will always trump actually working.
nicholassmith 16 hours ago 0 replies      
Everything is broken, and it sucks and it's kind of our fault. Sort of.

It's a kind of, sort of our fault situation because as time has gone on we've stopped caring too much about companies sitting down and just going "Lets get this stuff sorted out and fixed, and improved and more awesome", but started caring about "How many features does it have? Can it do X in Y and Z situations?" which is great, it pushes the state of the art forward. I think companies are spending too much time trying to get stuff out the door, instead of spending the time improving what they've got.

But we end up in a weird situation where we actively want companies to stop adding new features, but a lot of us are like magpies drawn to the new and shiny. It sucks, it's their fault for not getting stuff done properly the first time, and it's our fault for expecting a new shiny thing every few months. And "move fast and break things" needs to stop being a thing.

jsz0 5 hours ago 0 replies      
My computing experience became far more zen like when I gave up on ugly hacks and pointless tweaks. I just use the software how it's designed to work. Path of least resistance. Vast majority of the time this approach works great. Not sure if that's the root of his problems or not but it definitely sounds like it to me because these were the exact types of problems I would encounter after running some hacky app or using unsupported/undocumented features.

For example I've had the same iPhoto library for about 5 years now. The only issue I ever had was importing duplicate photos (my fault) and then running a hacky app that was supposed to magically fix this. Nope. It just trashed my iPhoto Library file. If I had manually deleted the duplicates I wouldn't have had any problems. I've had countless address book/calendar syncing issues for the same reasons. I gave up on trying to hack together a system that works now I'm fine with these different services being islands. I don't need every contact I've made in the last 20 years on every device I own.

csense 2 hours ago 0 replies      
RMS's original motivation for starting GNU was to address exactly the frustrations expressed by the article.

With open source software, if the universe of people with a particular bug is big enough, it'll contain developers who are capable of fixing it.

Or if a particular bug is hurting you badly enough, you can find and pay a developer to fix it.

See Linus's Law [1] (scroll down to point #8.)

[1] http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral...

squidsoup 4 hours ago 0 replies      
There are clearly a myriad of problems contributing to the sense that "everything's broken", political, social and technical. Focusing purely on the technical aspect however, in particular how we write software, what has become of the promise of statically typed pure languages like Haskell?

Can anyone elucidate on whether adopting this mode of development where software can be formally reasoned about has led to significantly fewer bugs in real-world software scenarios? Is the legacy of Smalltalk impeding progress?

I ask this as a fairly average OO software developer that has found that despite being fastidious about keeping up with code coverage, bugs still present themselves all the same.

jwatte 2 hours ago 0 replies      
It's because the market competes on features. This leads to a race to the bottom. If you go slower and test more, you will be too late and too expensive, and nobody will buy your stuff. The market does not value too high quality.
Benoit_ 2 hours ago 0 replies      
It's not specific to software.

The general issue is that the indirect costs of a product are not supported by the company that created it.

I explain: a company could generally earn more money by releasing new software (or features) than by fixing bugs, even if its users spend more time and money because of these bugs than it would cost to fix them.

We can see it everywhere:
- unhealthy foods generating long-term medical care costs
- short life products generating cost of buying new ones quickly (built-in obsolescence)
- cheap electricity generating thousands of years of waste management
- etc

If we find ways to make these indirect costs absorbed, we could improve software quality.

- for proprietary software, include a kind of warranty to fix bugs when enough users ask for it (similarly to getsatisfaction.com)
- for opensource software, I think of getsatisfaction.com coupled with a donation system to encourage people to fix popular requests

What do you think?

jakejake 7 hours ago 0 replies      
It's equally frustrating to be a software developer and have a problem magically vanish when a user restarts their computer. I hate it probably more than the user. Once their problem is gone they usually no longer want to talk on the phone to try to reproduce the glitch. If we can't get it to re-occur then it's extremely difficult to fix.

Our machines have layer upon layer of firmware and software. Users are allowed to install and configure whatever they want. It's all expected to run perfectly and, for the most part, things do run pretty well these days. Features are constantly being added. Everything is changing all the time. Unexpected combinations of things still happen and with complex software there are just cases that slip through the QA cracks.

Though I do get annoyed when something crashes, it has to be a bit of a two-way street sometimes. Both sides fail at this. Not all users are good at reproducing bugs and sometimes they are downright dishonest about what they are doing (out of embarrassment, or attempt to "skip ahead" in the diagnosis and other reasons I'm sure). But in the case of big companies like Apple and Microsoft as a user I do feel like they don't provide a way for a knowledgeable user to provide them reproducible errors either. Well, they have their bug report mechanisms but it feels like yelling into the grand canyon when I do submit bugs.

crag 10 hours ago 1 reply      
It's not the bugs that "bug" me. It's the time it takes developers to fix them. Example: Mountain Lion's Mail; for some of us, it suddenly takes all the accounts off-line. The fix is to restart it. There are HUGE threads in the forums [about this issues and several others], and multiple posts on various sites around the net and STILL no fix.

Another example from Apple: The 2011 MacBook Air wireless connections issues. Also several huge threads in the forums, and multiple posts around the net and nothing.

And Apple isn't the only company. I don't even want to get started on the state of video games today (look at the launch of D3 from Blizzard and what a nightmare that was or SW:TOR - just a couple of recent examples).

I imagine two reasons for that state we are at now: Money - the rush to release (and "worry about fixing bugs later" -this is VERY true in the gaming world); and in Apple's case, they hate to admit anything can possibly be wrong in perfect-town Apple.

hollerith 12 hours ago 0 replies      
The world would be a better place if we spent less time talking about disrupting other industries and more time examining our own industry with a critical eye like the OP does.

Just keep in mind that making too much use of the critical eye can cause depression. At least it does so in me -- and in the author of this next fine blog post:


A quote: "I tell you this story as a cautionary tale. Try to find work that allows you to focus on positive things. Avoid like the plague any work that focuses on negative things."

I used to over-use my critical eye in an unconscious habit from childhood. The way I unlearned this bad habit is by "setting a background process" to watch for when I was enumerating or cataloging defects for no productive reason, and by "stopping my mind" when I found that I was. (I had to practice "stopping my mind" for 3 to 5 minutes at a time a couple of times a day for weeks before I started to make any progress.) In contrast, making lists of things to be grateful for never really helped me unlearn the bad habit.

To live up to my potential as a software professional clearly requires me to make some use of my critical eye, but my mental health depends on my using it selectively.

eloisant 15 hours ago 0 replies      
Well, that's the balance between features, bugs, and cost.

If consumer software companies were working more like, say, people working on Curiosity (Mars' robot) or aircraft navigation software, you could have a phone that does much less but without bugs.

The reason why it is this way is because people usually prefer to cope with minor bugs that giving up on features. Plus, when you buy a product, you usually know the list of features but not the list of potential bugs.

So you can make a company that sells phones with 0 bugs, with a 2004 set of features. Or an OS that focuses purely on providing a bug-free experience, but 5 years late.

Not sure all that would sell well.

pasbesoin 10 hours ago 0 replies      
I spent a number of years doing QA ("real" QA, guiding and advising the entire lifecycle) and making sure that the software in my little corner of the world did work. (Often catching critical bugs after some other "QA" process had entirely missed them.)

It's a thankless job. The developers I worked with directly loved me -- the best of the lot did, anyway. (My observation in turn of their abilities and professionalism.) But management had no clue (and refused to get one). And many developers outside of my exclusive little clique had to be brow-beaten into some level of compliance.

Speaking generally: You say you want quality. But your actions belie this.

P.S. If you're concerned about "quality", amongst other things you should read "Zen and the Art of Motorcycle Maintenance". To understand the importance of and drive for quality amongst those who really care.

Zak 15 hours ago 0 replies      
One project seeking to fix this (by re-implementing everything from scratch) is http://www.loper-os.org/

Much as I like the idea, I don't have high hopes. The revolutionary "right thing" approach has typically lost to the evolutionary "worse is better" in software fields with broad appeal. This is true even with the tools and materials used to build computing systems at a low level. Consider the popularity of programming languages like C++ compared to say... Smalltalk.

RivieraKid 10 hours ago 0 replies      
When I make software on my own, I really care about every detail and I'm focused on making my users happy. I'm thinkng in both low level and the big picture.

When I do software for money I often just want to quickly do what's required from me. My motivation is more "getting it done" and less "making user's happy". I'm thinking "how to implement requirenment A" instead of "how to best solve user's problem A". Another big factor is that I don't have full responsibility. If some parts of the UI can be improved I often don't care - I'm not responsible for that, convincing my manager that the UI sucks just isn't worth it.

SatvikBeri 8 hours ago 0 replies      
Quality has a cost. There's usually a tradeoff between functionality and reliability. Do you prefer a phone that can surf the internet, navigate when you get lost, and send email, or a phone that has a 3 day battery and never crashes? Both choices are available.
darkstalker 8 hours ago 0 replies      
There is a common pattern in all the stuff mentioned there: closed source proprietary software. The companies who wrote them are the ones to blame. You can report bugs/problems, then sit there and wait, but as said in the article, they don't care and nothing will happen. You're already trapped in the closed ecosystem, your data in some proprietary format, and (un)happily living inside the walled garden. If everything is broken, is because you chosen broken software.
goggles99 7 hours ago 0 replies      
I love you Scott, but look at projects you have managed and will manage, they come out with bugs/problems/design flaws every time. Judgment is easy, but practice what you preach if you really want people to listen.

I think that you are expecting too much from he human race. We CAN always do better, but there will always be software bugs no matter what.

Humans will always make errors in judgment, planning or execution. Look at the Mars rovers, they updated the firmware on them once they were on mars. Do you think that they did not go over everything carefully? Look at anything which has been acclaimed to have been the greatest design or implementation ever and you can always find many same flaws with it.

I get what you are saying with the we can do better, but most people (including you) would rather be productive rather than going over everything 5 times and re-analyzing every design (analysis paralysis). Who could survive that grind? Humans need to be challenged and need to feel like they are progressing or their morale will be destroyed.

Things will not EVER change dramatically from this pattern. Everything is amazing and nobody is happy.

gbog 13 hours ago 0 replies      
It should be noted that not everything is broken, and some people are happy.

See the many posts about vim, git or command line tools on HN. I have never caught a grep bug, for instance, (cat is pretty reliable too).

The problem might be because the level of expectations raises faster that the technology. Chrome was amazing at the beginning, and now people are unimpressed.

jvdh 17 hours ago 0 replies      
Things get even worse when you know something is broken but nobody else seems to care.

At the cafetaria here I pay with my bankcard, if I put the card in too soon, the payment never works. I know that the payment device software is clearly broken.
The solution: The clerk stops the payment and restarts it if you put it in too soon, or yanks out your card and puts it back in himself.

Good luck explaining that it's broken.

molbioguy 6 hours ago 0 replies      
Patience. As the rate of technological change accelerates, patience is slipping away. How long can you wait for the next improved version with new features? From a technical point of view, it's all possible, so why isn't it available yet? I'd say that both consumers and investors can't wait very long, so businesses push out features (sometimes prematurely) to meet the demands, which fuels the impatience for new features. Vicious cycle started.
glassx 12 hours ago 1 reply      
And it's not just with computers.

I have a Sony Bravia TV and with every update its "UI" got slower and slower, until I disabled updates. I know it's got a lot of cool features in it, but I just wanted a simple TV.

Havoc 4 hours ago 0 replies      
Thats quite a long list. Personally I just need the company VPN to break & then everything I need to do my job goes down the drain...

On an entirely unrelated note, guess how much work I got done today...

tambourine_man 10 hours ago 0 replies      
I'm am complaining not because it sucks, but because I KNOW we can do better.

Yes, I guess that's why we are alone. Most people don't know it can be better. You probably have to be writing software for a a long time to be furious when something is slow or broken in today's hardware.

motters 11 hours ago 0 replies      
I think this could be rephrased as "Apple and Microsoft products are broken", and that's a problem because he's a Microsoft employee so he probably has no option but to dogfood. For less constrained users there are other products around though which are not as broken.
peterwwillis 12 hours ago 0 replies      
There's more important things in life than getting upset about software. Try working for a company where everything is "broken" and try to fix it for a few years, always in vain. You'll stop caring, too.
kfk 11 hours ago 0 replies      
Let me take 1 example: MS Outlook. It really, truly, amazingly, sucks. Badly. It is done to handle few email, few enough that you can remember about them. Good luck if you work in a corporate environment and you need to find an email from even only 1 yr ago.

Is this an issue? Yes. Do people care? Not enough apparently. What do you do? You either accept it or you find a solution at a low enough price that people start caring.

Bottom line: look at what people are willing to pay.

egiva 12 hours ago 0 replies      
Question: maybe just my simplistic take on these complaints - and I have the same ones - but can 90% of these all be broken down into two categories? (database-related), and (UI-related) issues? Windows desktop indexing, iPhone extra space taken up by "other" - can you simplify these things by saying that they´re database related? I´d love to hear someone´s opinion on that.
johncoltrane 16 hours ago 0 replies      
There was a time when a computer and the software that ran on it cost millions. That was a time when a bug would cost millions and sink a company or two.
npsimons 11 hours ago 1 reply      
Stream of consciousness whilst reading article:

"Hmm, first one is about iPhone; next one is about Windows; I wonder . . . "

Ctl-F "linux" - first hit is the comments, and I close the tab, contentedly.

zvrba 11 hours ago 0 replies      
Bah, this post reads like a 5-year old bitching because he didn't get his ice-cream [1]. May it be that these problems aren't fixed because they arise from a subtle interaction of hung routers, failing hardware, other installed software that runs concurrently in the background [2], etc. How do you debug something that you can't reproduce in a "standard" setup? For how many CPU-eons should you run your networked application on a simulated network to be reasonably sure (NB! NOT prove!) that it'll handle network outages? HOW are you supposed to write software that behaves "correctly" when its preconditions aren't true? (e.g., that the OS's routing table is sane?) Etc, etc.

[1] Yes, Gmail is slow for me too; haven't used its web interface for years, and I've moved my correspondence to private domain. Some of his complaints are valid complaints about sloppiness. He also seems rather unhappy with Apple's SW, so I'm wondering why is he still giving shitloads of money to Apple.

[2] For example, a backup on my Win7 machine failed, with a mysterious message in event log urging me to look for other errors in the event log. I scrolled down and saw that AV (MSE) had quarantined a certain file. I deleted the file, and lo and behold, the backup succeeded!

jbert 16 hours ago 1 reply      
Does this mean that there is a room for a brand in which "everything just works"?

Or would that so feature-poor/expensive/slow-moving/low-status that no-one would use it?

RyanMcGreal 13 hours ago 0 replies      
Tichy 15 hours ago 0 replies      
A lot of these problems seem to relate to Apple products. Just saying - there are other options out there.

I notice he uses only one open source product (Google Chrome). One aspect of choosing open source is being able to fix problems you care about yourself (in theory at least).

autophil 16 hours ago 1 reply      
The big lie is we as humans have it all together. That we are the superior species on the planet and we can do what the hell we want.

Global warming, destruction of nature, loss of liberty because governments we elect betray us - don't worry, somebody else will fix that, probably some Y Combinator startup. No wait, driverless cars are the answer.

Us humans hallucinate in our own private world more than we interface with the actual world. We can and will rationalize anything. Nobody is upset because we aren't really there, or even here. We are off somewhere else, thinking we are smarter than we are and that everything will be okay.

With the terrifying state the planet is in, we should all be upset.

netvarun 10 hours ago 0 replies      
When I saw this my initial reaction was 'bleh. bloody #firstworldproblems'.

But then it struck me: One man's first world problem is another man's billion dollar company.

pjmlp 15 hours ago 0 replies      
The only way out of this is to make companies accountable for the software, the same way as in any other industry.
juddlyon 12 hours ago 0 replies      
The more into technology I get, the more I'm amazed that anything works in the first place.
krautsourced 11 hours ago 0 replies      
He's hitting the nail on the head. As for the reasons... there are multiple culprits at work here.

- complexity of modern systems
- reliance on third party libraries that suffer from all the same problems
- underfunding
- understaffing
- QA next to non-existant or "sourced out" to support staff
- unrealistic deadlines
- incompetence (that was always a problem, but combined with the lack of QA becomes more apparent to the end user)

Basically the issue is we all want more, for less money, in a short amount of time. And I think we've hit the ceiling for that as far as the human factor is concerned.

lazyjones 15 hours ago 2 replies      
With no accountability for vendors at all, no software warranties worth the name, this is hardly a surprise. Until people can start suing for damages (it costs me time = money to get such problems fixed), software will stay mostly broken because vendors have no good reason to invest money in fixing it.
heydonovan 9 hours ago 0 replies      
Honestly, I think a step in the right direction would be more people submitting bug reports. Get more people used to the idea that bugs do exist in software, and it's up to everybody to say "Hey, your software has issues. This is how you can replicate it. Please fix!". Also, let's stop implementing features, and fix bugs first. No use building upon software with known bugs in it.
rjzzleep 12 hours ago 0 replies      
while I do feel the same, it's not like there isn't a solution to most of those problems.

have problems with stock roms on devices since you don't know what they do? Try android custom roms.

Have problems with Operating systems doing insane amounts of work without you ever knowing what that is? Try rolling your own Distro.

Problem with gmail? Try running mutt somewhere and give yourself pub key access to the server.

But more generally don't fucking rely on the cloud.

Oh dear, skype, I have to use it for work purposes, but man, how I wish I didn't. He forgot to add android and linux to the list. Compared to that you can at least just use an older skype version on windows and be done with it.

My notebook runs a heavily customized linux and it boots in under 10 second. Updating my system? Still boots in under 10 seconds. All my linux distro setups lasted for years.

Impatient 11 hours ago 0 replies      
"How do we fix it?"

Pay for more stuff.

13 of the 20 issues are on freeware or free services. Gmail way exceeds my expectations, because I know I'm the product, not the customer.

tocomment 14 hours ago 1 reply      
I'm hitting the iPhoto problems he mentions pretty bad lately. Does anyone know what options I have? Is there an easy way to switch to just using the file system for photos? It seems like iPhoto is so interwoven into the OS.
anuraj 11 hours ago 1 reply      
Over the years we have failed to develop software as a true engineering discipline. The way a structural engineer can design and certify a structure as sound, I dream one day we will be able to do for software.
bobwaycott 12 hours ago 0 replies      
> I should get an Xbox achievement for every time I press "Clear" in the iPhone notification window.

Too true.

corwinstephen 12 hours ago 0 replies      
True software sucks, but that doesn't necessarily imply that it used to be any better. I think software has always sucked. Yeah, there are more problems now, but we're also able to do quite a lot more with computers than we used to be able to as well. I would say that over time, the level of effort out in by developers has stayed the same.
modernshoggoth 17 hours ago 0 replies      
Everything too complicated to fit into any one single person's head is going to have problems. That's how it works. There is a tradeoff of functionality vs expense-of-time for any given task, and if you polish the functionality to a mirror-shine but don't receive any economic benefit for doing so, then your software won't make much money.
brendanobrien 13 hours ago 0 replies      
first. world. problems.
yskchu 17 hours ago 0 replies      
I think it's people deciding that "good enough" is good enough. In any case, with today's rapid development and update cycles, it's easy to fix mistakes.

Fast, good, cheap; pick any two.

80% of the people only use 20% of the features anyway. And they never see the bugs that drives the remaining 20% of the people nuts.

Harmonize 10 hours ago 0 replies      
Everything's broken and nobody's doing anything

Surely somebody's doing something! I'm sure if you look around you'll find a lot of people doing a lot of things to fix software quality and improve user experience in software applications.

But, consider what's really broken in the world: food supply, resource depletion, pollution, poverty, crime, violence, war... When I read a title like, "Everything's broken" those are the problems that come into my head. And so, I was disappointed to read your list. It didn't aim high enough for the problems I was considering.

Makes me feel one component what's broken is our priorities and focus. Clearly the priority and focus for the software you're using is not on quality and experience. It seems the software industry has optimized to get-product-out and iterate asap. Ship!

But then, when I consider the larger question of "what's broken?" where I look at the real issues in the world, I come to the same answer: the priority and focus of society is not tilted strongly enough towards fixing those types of big-world problems. Instead, we have so many of our great minds attacking other types of problems.

Generally, when we humans focus and prioritize, we can achieve just about anything we desire.

perrywky 13 hours ago 1 reply      
why should we care about these rarely happened bugs? They just happened in a complex scenario, which is hard to reproduce and those bugs really doesn't matter. I think it is not worth the effort to deal with these bugs.
moubarak 10 hours ago 0 replies      
Thank you so much for this article. Im not alone.
systematical 17 hours ago 0 replies      
Your title is broken and i'm upset about it.
fallenapple 7 hours ago 0 replies      
Apple is now as annoying as Microsoft. They have attracted the type of users who will put up with anything.

Business logic dictates they will do what they can get away with. If they can sell shoddy product (that looks good in the commercial or in the store), then they will do so.

Savvy users must suffer, or find a new system to use.

Sh.py github.com
465 points by daenz  1 day ago   60 comments top 24
Sidnicious 1 day ago 3 replies      
So, this feature:


Lets you replace `expect` with Python code pretty darn easily.

SoftwareMaven 1 day ago 1 reply      
I like PBS (now sh.py) for certain use cases. If I'm writing an actual shell script, I think it is brilliant. It keeps the script focused on the task at hand instead of Python's somewhat painful process communication.

On the other hand, if I have an application that needs to communicate with a subprocess as a small piece of the whole, I'll use other methods that are less "magical". It's not that I'm inherently against magic, but rather that, in that use case, I generally want very explicit control over what is happening.

arturadib 10 hours ago 1 reply      
Definitely neat, but of course platform-dependent.

Due to the cross-platform needs of Mozilla's PDF.js build scripts, we've been writing a Node.js lib on top of Node's APIs that enables you to write shell-like scripts that run seamlessly on multiple platforms:


Like Sh.py, you can (if you must) also run external commands, either synchronously or asynchronously.

jon6 22 hours ago 2 replies      
I spent a few minutes trying to figure out how to install the thing so for anyone that is equally as lost

    $ pip install sh

or goto the github page https://github.com/amoffat/sh

russelldavis 18 hours ago 1 reply      
For a similar library with a slightly different take, check out plumbum:


Here's the explanation on the differences:

"The project has been inspired by PBS of Andrew Moffat, and has borrowed some of his ideas (namely treating programs like functions and the nice trick for importing commands). However, I felt there was too much magic going on in PBS, and that the syntax wasn't what I had in mind when I came to write shell-like programs. I contacted Andrew about these issues, but he wanted to keep PBS this way. Other than that, the two libraries go in different directions, where Plumbum attempts to provide a more wholesome approach."

saikat 1 day ago 2 replies      
For anyone looking for a nice subprocess library for Ruby, my friend Greg released one earlier this week - https://github.com/gdb/rubysh
sartakdotorg 1 day ago 1 reply      
Perl has this too: https://metacpan.org/module/Shell

Written in 1994, by Larry himself!

subhobroto 1 day ago 1 reply      
I have found this extremely useful - used it to write many things - from a set of scripts that bootstrap chef server onto a node from scratch to a file chunking program that optimizes log files to align with hadoop block sizes using multiprocessing and this. It made a lot of things very easy.

This version introduces many positive changes: specially 'Iterating over output' that I have been waiting for a long time.

Andrew wants to increase his support for MacOS and would like to have test results from "python setup.py test" (to run the whole test suite). One identified bug is: http://bugs.python.org/issue15898

I would love to see more people use this to simplify their work!

If anyone is interested in looking into the scripts I wrote to see what's possible, let me know.

philp 20 hours ago 1 reply      
Could somebody explain to me how this is different from envoy? https://github.com/kennethreitz/envoy

Not meant as a snide remark; genuinely curious.

AntiRush 1 day ago 1 reply      
I wrote something similar on top of nodejs to simplify some problems at Game Closure.


It's probably not ready for prime time - past it's initial use cases it hasn't been tested much. Things like sh.py and jash are a really neat solution for some problems.

jlgreco 20 hours ago 0 replies      
Rather tempting to use this with aa Python REPL to replace a more traditional shell.
notatoad 22 hours ago 0 replies      
This is beautiful. Thank you.
nimrody 19 hours ago 1 reply      
Throwing exceptions when a command returns non-zero exit status is very useful indeed. However, this isn't very different from using the shell's own && operator.

I still believe that wrapping shell commands with functions is the way to go. Functions can intelligently check their arguments and prevent propagation of dangerous (or otherwise obviously incorrect) arguments.

ompemi 3 hours ago 0 replies      
It saved my day, I expected partials with cwd parameter and they were there. I used this instead of GitPython + manual popen for some git management tasks.
forgotusername 15 hours ago 0 replies      
It's worse than that. It replaces sys.modules['sh'] with something that isn't a types.ModuleType in the middle of the module's initialization.

Cute, but definitely on the list of things I'd remove on sight if encountered in a commercial project.

nodesocket 21 hours ago 0 replies      
Founder of Commando.io (http://commando.io) here. The tutorial on SSH was particularly interesting, since we are doing some of the same sort of things to help with orchestration of servers. Currently we are using `libssh2` via a PHP module, but switching to a sparkling new node.js interface for the SSH and SCP connections and executions shortly.
ragmondo 14 hours ago 0 replies      
I would rather have py.sh ... a unix shell running python.
riffraff 19 hours ago 1 reply      
for those wondering how "import madeupname" works, basically the incantation is:

    # unless __name__ == "__main__" 
self = sys.modules[__name__]
# SelfWrapper has a custom __getattr__
sys.modules[__name__] = SelfWrapper(self)

which seems somewhat unpythonesque (aren't import hooks supposed to be used for this?) but it's cool and I hadn't seen it before.

arnarbi 22 hours ago 1 reply      
What happens to the order of keyword arguments?
bthomas 22 hours ago 1 reply      
Do the python3 print statements imply anything about whether it's compatible with python2?

And what's the best way to quickly look and see which versions a package is compatible with?

OrdojanAndrius 18 hours ago 0 replies      
Ohh this looks awesome, I wish it would work for windows thought.
scdoshi 23 hours ago 1 reply      
This is cool. Could have used it yesterday, literally.
SIULHT 21 hours ago 2 replies      
Does this include scp/rsync?
esschul 19 hours ago 1 reply      
Hey, just like groovy's "".execute()
Pdf.js: PDF Reader in JavaScript github.com
359 points by pykello  3 days ago   89 comments top 28
jowiar 3 days ago 7 replies      
1) From a technical perspective, this is damn cool - exceedingly well done. Color me very impressed.

2) I hope I never actually see anyone using this on a website, attempting to make things "easier." Between Scribd and Slideshare, and Adobe trying to force its hideous crash-prone plugins into my browser, there are already enough people making a mess out of what is one of the more well-thought-out aspects of OS X. Give me a link to a PDF, which Preview.app handles in wonderful fashion any day.

3) It would make a sweet browser plugin on browser-in-a-box platforms and other platforms that don't have a nice native implementation (which upon further reading seems to be the goal).

jpallen 3 days ago 1 reply      
I'm really excited for this for http://www.sharelatex.com and other similar sites that are actually generating a PDF for you. With native PDF viewers there is no way to interact with the viewer via javascript and even just having the viewer stay on the same page when your reload a document (with minor changes) is impossible. Pdf.js means that we'll be able to do this easily, as well as other cool things like letting letting the user sync between the PDF and source.
ianb 3 days ago 3 replies      
I use this a lot, and it really does work. It renders everything, and renders it well. The one thing that doesn't work is maps " just too many vectors, and Javascript/Canvas/etc just can't keep up. Otherwise I'm very happy and don't feel nearly as much resentment towards PDFs as I used to.
Mizza 3 days ago 0 replies      
XSS injections on these are gonna be fun..
winter_blue 3 days ago 0 replies      
I used to use PDF.js for a while (on Linux), until I switched to KParts because it was having difficulty rendering certain kinds of PDF documents. KParts uses the same underlying engine that powers Okular (KDE's default PDF reader.) It renders everything properly and is much faster than PDF.js. It reminded me of Foxit on Windows. KParts might be only available on Linux though...
cpeterso 3 days ago 0 replies      
Firefox already bundles the pdf.js reader. See https://bugzil.la/714712.
thebigshane 3 days ago 1 reply      
Two questions:

1) In Firefox 15, the demo page adds two new options to my right click menu: Rotate clockwise and Rotate Counter-clockwise. Is Firefox recognizing pdf.js (since it appears that they are related) or pdf.js adding menu options? I didn't know JS could do that.

2) Isn't Javascript an embeddable language inside PDFs? I'm pretty sure I read that javascript is used, not necessarily for animations but for run-time dynamic layouts. If that's true, is pdf.js "eval"-ing that javascript?

wheaties 3 days ago 3 replies      
Now if someone would just do this for .docx, .xlsx, and such I'd be set.
bpatrianakos 2 days ago 1 reply      
I came across this a few months ago while trying to implement a solution for turning HTML into PDFs server side. This is definitely cool and useful but it's usefulness is limited for now as native PDF readers on the desktop are preferable. Even on iOS the built in reader is nicely done. Chrome on Windows and Mac always opens PDFs in a tab and handles it well I think. That said, this can definitely be of use in Chromebook type situations. I'm sure it'll end up in Firefox OS too which I have hi expectations for. The awesome thing about Firefox OS is that it's all JavaScript and good old fashioned web technologies under the hood so this will fit right in.

So alas, I'm still searching for an easy way to convert HTML to PDF server or client side. I haven't looked at the code yet but I do wonder if one could get that functionality out of this if they wrestled with it enough. (I know there are other ways to turn HTML to PDF but a client or server side script to do so really is the best solution for my situation).

Roritharr 3 days ago 3 replies      
i've stumbled upon PDF.js a while ago because i was looking for js tool that allows me to extract data from pdfs... sadly i'm still looking for a good lib to do just that.
mwexler 3 days ago 0 replies      
I presume that copy to clipboard could be added to this as well, yes? Cool project.
dutchbrit 3 days ago 0 replies      
As a big user of PDF.js, I have to say it's great for basic PDF documents. However, complex vectors don't render nicely with this
senko 3 days ago 0 replies      
I have first seen this a year ago (when it was publicly announced, IIRC). It was a cute tech demo but easily broken, and quite slow.

This ... is mind blowing.

uams 3 days ago 1 reply      
This is super cool.

While I can't imagine myself using it anytime soon, it's clear that web applications are improving at a far faster rate then native applications and, with t large enough, the first derivative means that web will eclipse native.

This seems like an academic exercise at the moment; it's to prove that you can replicate a native experience only.

However, it seems that this could be vastly improved by playing to the strengths of the internet. The only online apps that have beat native ones so far have been because of cloud storage and collaboration. First, use filepicker.io or something so this can open my online files. Second, bake some collaboration into it.

Aissen 3 days ago 0 replies      
It's in Firefox since version Firefox 14, but disabled by default. Activable with "preview in Firefox" in options/filetypes/pdf.
andrewla 3 days ago 0 replies      
Just as interesting, in my mind, is the inverse library -- jspdf [1] lets you create pdfs in javascript. For automatic document generation, I find I can quickly whip something up in jsbin or jsfiddle that will give me a pdf I can download and do whatever I want with.

[1] http://jspdf.com/

chj 3 days ago 1 reply      
This is amazing, but sadly slow.
davedx 3 days ago 0 replies      
The demo looks really impressive, well done. Adding this to my toolbox! :)
tete 3 days ago 0 replies      
Works nicely since it is Firefox's default viewer. No more need to install a one, yay!
famoreira 3 days ago 1 reply      
This is pretty cool! Anyone knows if there is support for PDF annotations?
jrl 3 days ago 0 replies      
This is great, I love it. I can read PDF files without leaving the browser, in any browser. I find it slightly distracting to switch to a third-party application.
gbraad 2 days ago 0 replies      
Next up, a good ePub reader for use in firefox and firefoxos. Breaking free of the only two rendering engines in use...
klr 3 days ago 2 replies      
I have this error with Firefox 9.0.1:

currentPage is undefined http://mozilla.github.com/pdf.js/web/viewer.js Line 285

jjmanton 3 days ago 0 replies      
from someone who has worked a lot with PDF, excellent work.
3ds 3 days ago 0 replies      
On Firefox OS this will be the default PDF viewer.
leberwurstsaft 3 days ago 1 reply      
On an iOS device with retina display it's awfully blurry, probably just not rendering to a big enough canvas.
antonpug 3 days ago 0 replies      
Sweet. Going to keep this in mind for when my site needs a pdf viewer. Awesome tool
dude8 2 days ago 0 replies      
Good Job!!
Gallery of free HTML snippets for Twitter Bootstrap bootsnipp.com
334 points by madh  3 days ago   64 comments top 21
superasn 3 days ago 3 replies      
Great site! Other good bootstrap related stuff:

http://wrapbootstrap.com / http://bootswatch.com - for themes, http://bootstrap-forms.heroku.com for quick form building

msurguy 3 days ago 0 replies      
Bootsnipp creator here...
Oh my loving God, this is amazing to end up on Hacker news on the second day of the creation being online... Thanks to you guys it's so popular now.

I will be working hard on making this a community instead of one author site, I do have a CMS that I build for this and it shouldn't be too hard to make this a community, it's just that I have to squeeze that in a full time and part time job, I made Bootsnipp thanks to being sick and absent from work for 2 days...

I appreciate your comments, please promote the site further and I will work hard on making it more personal to each of you.

bitdiffusion 3 days ago 0 replies      
Agreed - this is fantastic. Although the getbootstrap docs have some neat things in there - it's sometimes hard to differentiate what comes built-in vs. what has been customized for the docs (and to extract the doc-specific functionality can be tricky).
nicholassmith 3 days ago 1 reply      
Good idea and some really useful stuff in there. As there's no licensing notes I'm guessing they're under permissive, share and share alike with credit?
billirvine 3 days ago 2 replies      
Why is there a movement to make every quickly-made website look like dull white/blue with a hint of beige? This is madness.

"Hack away on an app and have it look halfway decent" is a very, very poor attitude that portrays laziness and a disdain for the user. Halfway decent is the same as halfway sucks.

ukoki 3 days ago 0 replies      
Great work! As someone who relies waaaay too much on Twitter Bootstrap this is really useful - now to get round to adding my own Bootstrap idioms.
chrisfarms 3 days ago 1 reply      
Nice idea... would love to see it work a bit more like patterntap[1] where we could add our own snippets.

Allowing CSS/LESS (with a guideline to only use the built-in color variables) could be really cool too " I'll often have to add one or two lines of CSS to tweak a nice component.

[1] http://patterntap.com/

efields 3 days ago 1 reply      
Great work. I'd love to see these as TextExpander snippets. I might go ahead and do this this weekend…

EDIT: A thought I forgot:

I used to be a Bootstrap hater, but now I'm quite enamored with the project since a good SASS port has been maintained.

Bootstrap's biggest accomplishment (aside from its mere existence) is that it placed in the hands of a lot of different people " devs, designers, newbies, etc " a collection of modular css patterns and clean, semantic markup examples, like the ones you see on this link.

"But your markup shouldn't be littered with presentation classes!!!" " Bullshit. Your markup definitely shouldn't look like the mess of classes you find in Drupal output, but <div class="navbar">…<ul class="nav"> are a sane way to markup page elements. These classes say what the elements are, and could be styled an infinite number of ways depending on what kind of device its displayed on.

Likewise, Bootstrap's CSS is an excellent way to learn modular CSS patterns. ".dropdown {}, .dropdown-menu {}" is a much better approach than something like ".dropdown ul". What if that UL changes? "UL is a lousy element here!" says a future dev on the team.

I'll agree that .pull-left and .span-9 are terrible, but not everything's perfect. It'd have to use SASS instead of LESS before it was perfect, anyway ducks.

jenius 3 days ago 5 replies      
This makes me want to cry. What happened to design and having a good-looking and creative interface?
baseh 3 days ago 1 reply      
Here is another similar project though its Sublime text editor targeted.


I wish there was a way to auto-convert these snippets for popular text editors. Somehow copy-pasting html from web-pages sounds so... 20th century.

aaronbrethorst 3 days ago 1 reply      
Neat! Please add Haml as an output format for your HTML snippets.
ryangallen 3 days ago 1 reply      
Bootstrap is great but I'm worried that it's style is getting overused and tired like a pop song on FM radio.
rodolphoarruda 3 days ago 0 replies      
I like the progress bar example... its fun is a real eye catcher
draz 3 days ago 1 reply      
suggestion: it would be nice if people could request examples, and others could submit code snippets
conradfr 3 days ago 0 replies      
Not bad.

Never thought of doing the buttons on page 2 with an icon on top and a text underneath.

jarsj 3 days ago 1 reply      
This is good. Can you add some voting thingie. There is a lot of trivial stuff, easily available on the bootstrap documentation itself.
philjones88 3 days ago 0 replies      
Really useful site, especially for those developers like myself that are "design challenged" :)
drstk 3 days ago 1 reply      
I was JUST looking for something like this yesterday. Could become very useful if you keep at it, I'll definitely be checking back from time to time. One minor nitpick: perhaps normalize the height of your snippets in the main grid view?
nodesocket 3 days ago 0 replies      
Really nice, and some great snips already added. Would love to see additional login snippets.
cduser 3 days ago 1 reply      
This is great, but why am I not able to add snippets?
BaconJuice 2 days ago 0 replies      
Great site, thank you!
Anonymous Donor Pays for College of Every Student in Kalamazoo nytimes.com
312 points by unfoldedorigami  4 days ago   119 comments top 24
kevinconroy 3 days ago 0 replies      
From Wikipedia:

"To receive a full scholarship, students must have attended Kalamazoo public schools since kindergarten. The program, unveiled at a November 10, 2005, Kalamazoo Board of Education meeting, is also viewed as an economic development tool for Kalamazoo. Since the Kalamazoo Promise was announced, enrollment in the school district has grown by 16%, test scores have improved, and a greater proportion of high-school graduates are attending college. In 2010 alone, the Kalamazoo Public School district saw enrollment rise 3% to 12,409."

Have to be there K-12 to get full tuition. There's a chart that shows the sliding scale based on your length of attendance. Most interesting part is that if you move in for the tail end of high school you get 0% covered to prevent people from temporarily joining the community just for the tuition.

  Attendance -> Proportion of full tuition
K"12 100%
1"12 95%
2"12 95%
3"12 95%
4"12 90%
5"12 85%
6"12 80%
7"12 75%
8"12 70%
9"12 65%
10"12 None
11"12 None
12 None


EDIT: Added table.

tokenadult 3 days ago 1 reply      
"The Promise was created against a backdrop of recent economic thought that considers investment in education better than nearly every other kind of developmental effort when it comes to promoting economic growth."

That's the kind of thinking that turned east Asia from a place of wretched poverty to a place of wealth in my lifetime.

alttag 4 days ago  replies      
Wow. That's neat.

I once had a conversation with a state legislator where he argued it wasn't the responsibility of government to provide grant and loan opportunities for higher education, and that by doing so, the federal government was disincentivizing saving and investing. Instead, he argued universities should be more market driven (which I will concede might introduce more price competition in the face of rapidly rising tuition rates). He was a firm believer that a university education should be something one works and sacrifices for.

In my elected position with public education at the time, I disagreed (and still disagree) with some of his claims, believing a subsidized higher education experience for a expanded pool of people is a long-term net gain compared to crime/prison costs and the cost of government-funded social safety net programs. (Although, again, college-student families admittedly qualify for most government assistance programs already, but this is hopefully a short-term rather than lifetime dependence.)

I'd love to see the long-term effects on the quality of life, debt, and employment prospects of these students.

unfoldedorigami 4 days ago 0 replies      
What's fascinating to me is that because it prevented the surrounding communities from growing at the expense of Kalamazoo, those districts invested even more in their schools and education infrastructure to compete with the city with The Promise. I would have predicted the exact opposite. Super interesting.
femto 3 days ago 2 replies      
On the assumption this is a good thing, let's say every town/state rolls such a scheme out. Now every student in the nation is having their tuition paid. It's also costing about the same amount as if the government levied taxes and paid the costs.

A negative, compared to government funding, is that the economy has lost mobility of labour. Getting a full scholarship requires the child to be enrolled from K-12. Loss of mobility might be a good thing, in that it prompts people to improve their local economy, rather than run away. Alternatively, it could lock people into a form of serfdom, unable to move to better their situation.

I'd advocate that a voucher system, whereby the government gives each student a voucher for the degree of their choice, would be preferable to the widespread adoption of "the promise".

beloch 3 days ago 2 replies      
I'd say the kids of Kalamazoo could use a break given the kind of stuff they have to deal with.


Note: The above Kalamazoo sheriff is probably not quite as paranoid as the story suggests since Kalamzoo has a murder rate almost 7 times higher than Calgary despite being roughtly 1/14'th the size. If Kalamazoo is that dangerous, it's natural to assume a much bigger city would be even more dangerous. Still, that's one sheriff I wouldn't want to run into in a Kalamazoo park, let alone a dark alley!

steiza 3 days ago 1 reply      
Only now as an adult, having grown up in southwest Michigan, do I appreciate how unusual the region is.

The amount of culture and philanthropy in area is very high considering the population. In Kalamazoo there's the Kalamazoo Area Math and Science Center (thank you Upjohn family), the Gilmore Keyboard Festival (thank you Gilmore family), the philanthropic work of the Stryker family, ... the list goes on and on.

About an hour north of Kalamazoo is Grand Rapids, another major Michigan metro area, which is also defined by philanthropy: Art Prize (thank you DeVos family) and the Fredrick Meijer sculpture park (thank you Meijer family), just to name a few.

Are all towns in the United States like this?

mahmud 4 days ago 6 replies      
What would be the unintended negative consequences of this?

It reminds me of the story of a West African king who went on a pilgrimage to Mecca. On his way to Arabia, the king gifted so much gold to all intervening communities that the price of gold crashed, taking with it the economies of North Africa and Arabia.

thewordis 4 days ago 0 replies      
I went to college there and live one city over (25 minute drive). There are a lot of wealthy people living in the area, multimillionaires in the suburbs, but also a lot of poverty. A _lot_ of poverty. I'm glad to see someone trying something new, even on such a small scale. I was almost tempted to look for housing within the Kzoo city limits because of the Promise, but I don't plan on having children any time soon. We need more such experiments and resultant data.
tete 3 days ago 0 replies      
Coming from a European country where we still have free university I think it's a good thing. Sadly things are changing. Now there are limitations, first universities where you have to pay and ever since this was introduced you can follow how the rankings fall and fall.

Note for people from the US: College/University is harder to attend to (graduating from high school is harder) and it's also harder to stay in there (or not take long), so it's still not like everyone can attend it which sucks, because the reason may besides personal problems may be the fact that you are not good at something you won't ever need again anyway. Also on personal experience stuff like math is completely different at college anyway, if you study CS.

sukuriant 4 days ago 3 replies      
And now. Whatever you do. No. Whatever. You. Do. Do. NOT. Turn back on this promise. Make it happen. No ifs, ands, or buts. Period.

And colleges. If somehow, something terrible happens, and the money stops coming in. Let those kids finish for free anyway. Anything less is the newest worst thing that could happen to these kids and then adults.

[edit: I am curious about the downvotes. From what I gathered, the people that these donors have chosen to help are the downtrodden of this area. Much of their life may have been spent in a world of people not fulfilling their world. Fathers leaving, etc. The last thing these kids need is for yet another promise to be left unfulfilled, be it by red-tape or just some series of unfortunate events. Despite that, these children need to have the results of the promise fulfilled.]

szpilman 3 days ago 0 replies      
I usually let out some man-tears on especially touching movie scenes, book passages, music verses and family occasions, but I'm pretty much sure this is the first time I couldn't hold it while reading an article. At least 5 times.

"The Promise" sounds like some utopian sci-fi plot, and the childrens' thank you notes for their unseen benefactors are more than heartwarming. These kind of investments that empower and multiply their effects are the farthest reaching long-term, and just brilliant.

Now I want to be a billionaire.

rmason 3 days ago 2 replies      
FYI Kalamazoo has three venture capital firms whereas to my knowledge Grand Rapids and Lansing have none. In fact until a few years ago there weren't any VC's in the Detroit city limits.
Dylan16807 3 days ago 1 reply      
With every added student, the school district gets another $7,250 from the state.

That's per year, right? That's very close to the $4,200/semester number. So the college payments are almost equivalent to extending education from K12 to K16. That means that this could be done, even without donations, across the country.

kqr2 3 days ago 1 reply      
Actually, it's donors (plural). They are collectively called the Kalamazoo Promise.


MikeCapone 3 days ago 1 reply      
If I had to guess at a glance, I'd say maybe Chuck Feeney:


wtvanhest 4 days ago 1 reply      
Scott's Tots?
gwern 3 days ago 0 replies      
Interesting how little effect they describe it as having on teen pregnancy and dropout rates.
dkroy 4 days ago 0 replies      
I am very jealous of these students, I entered my post college life in the hole like many other students. Luckily, the tech world is in a completely different state than the rest of the job world when it comes to looking for a place to practice your profession.
jeffpersonified 3 days ago 0 replies      
Having grown up in Michigan, this isn't anything particularly new. Kalamazoo has been at this for a while (perhaps the donor), and although it's phenomenal, I'm surprised it's at the top of HN.
grandalf 3 days ago 0 replies      
I wonder if Anonymous is taking credit for this.
carioca3 3 days ago 3 replies      
Anonymous? If memory serves me right it is the Stryker family that provides the scholarships.
jedmeyers 2 days ago 0 replies      
Scott's Tots
humanfromearth 3 days ago 0 replies      
It was batman!
iPhone 5 web teardown: How Apple compresses video using JPEG, JSON, and canvas docs.google.com
284 points by dbloom  23 hours ago   107 comments top 28
jasonkester 18 hours ago 3 replies      
Nice to see they're getting bit by their own decisions.

They've gone out of their way to ensure that you can't ever play an Audio/Video clip automatically on page load in iOS Safari. Every new iOS release for the first few years included a patch to kill any new workarounds that let you do so. (Curse you iOS 4.3 for taking away our simulated clicks.)

But now they have a use case of their own that needs it, so they invent the mother of all workarounds. And now the rest of us will start using it. And it will become the "standard" way to run video on iOS Safari.

Then they'll kill it off for iOS 7. Then they'll have to come up with an even crazier workaround so that they can render their own website a few months later.

Fascinating to watch this play out.

dangrossman 23 hours ago 3 replies      
> Apple's website needs to work on all major browsers

That doesn't seem true. The second-most-prominent links on the iPhone and iPad sites are to videos that only play in Quicktime. If they wanted the site to work everywhere, they'd use a format those browsers can natively play.

codeka 23 hours ago 3 replies      
I'm not sure if I should be impressed by this. From a technical standpoint, it seems quite clever and unique, but it also seems like a lot of work just to avoid using a <video> tag.
droithomme 22 hours ago 0 replies      
Great analysis, very interesting.

Obviously this is absurd overengineering.

And, despite the assumed total cross-browser compatibility claimed, I found that the video wouldn't play in any browser available to me, despite pinning the CPUs on my computer while just sitting there doing nothing.

jp_sc 21 hours ago 3 replies      
Sublime Text was already doing the same with the big animation of its home page: http://www.sublimetext.com/
(you can actually see three animations there, depending if you use Windows, Linux or Mac).

What I'm really curious about is how those images are being generated. Is there a tool already available for that?

Jayasimhan 21 hours ago 0 replies      
This whole implementation could just have been someone's weekend hobby that made it to production. Remember how Apple got its intel based macs? http://qr.ae/8eDNG

Just want to mention it before we blurt out the obvious over-engineering argument. ;)

kevinburke 23 hours ago 3 replies      
Speaking of Apple website updates, I am surprised that they have never offered a responsive design for their apple.com site where you buy iPhones and iPads. Every app they make is designed differently for the phone or the iPad, but not the website.
brown9-2 10 hours ago 1 reply      
As a side note, publishing this on Google Docs is an interesting choice by the author - alleviates any need to worry about load from the piece becoming popular, but it almost makes it an anonymous article.
dflock 15 hours ago 0 replies      
It's a shame webkit never implemented the Animated PNG extensions and that no browser supports MNG:


This would probably some of what people want here.

Flenser 13 hours ago 0 replies      
Isn't this the same as Clipstream[1]? The company that developed it has filed for patent[2]. I wonder if Apple licensed the technology or came up with it themselves independently.

[1] http://news.ycombinator.com/item?id=4419345

[2] http://www.dsny.com/HTML5

zachwill 22 hours ago 0 replies      
Nice teardown. Knew they were using a <canvas> tag, but didn't dive deep enough see how they were using Base64 and decoding the frames. Thanks for writing this up.
mmmmax 20 hours ago 2 replies      
Keep in mind that Apple outsources a lot of this front-end work to their agency, TBWA/Chiat/Day Media Arts Lab. As a services firm they have less incentive to use standards created by Apple, though I think they do really great work.
squarecat 9 hours ago 0 replies      
OK, so this would be one of those instances where I support a headline rewrite for clarification. The iPhone connection is incidental and I expected something entirely different.

This was more along the lines of, "How Apple reinvented/over-engineered the animated GIF"

nachteilig 11 hours ago 0 replies      
I really like that Apple is willing to experiment and push the envelope on their corporate site. Very refreshing.
firefoxman1 22 hours ago 1 reply      
After reading this article I still don't have a clear idea of how they did the animation. It seems pretty in-depth technically, but the overall execution is still a mystery.

For example, how does the _frames array of base64 data related to the two unlock_00X.jpg files? All it says is "The "unlock_manifest.json" file specifies how the updated parts are positioned."

tambourine_man 18 hours ago 0 replies      
I doubt iOS is the reason they went through all this trouble. The performance even on the iPhone 4S is miserable.
xentronium 21 hours ago 0 replies      
> You can see this in action on the Retina Macbook Pro "Features" page -- which loads about 5MB of JPEG images (using lots of separate HTTP requests) just for that 2 second effect.

I immediately thought of web1.0 sites of 1990-s, with lots of animated gifs floating around. Weird times.

bencevans 16 hours ago 1 reply      
This idea is also in use at http://www.sublimetext.com/ The demo is using this technique because streaming video would actually take more bandwidth in this case as only bits of the image are actually changing at one time/incremental changes. It works a treat!
n-gauge 17 hours ago 0 replies      
Regarding the retina loupe effect demo this has been done a while back - using css and an image for the loupe edge. Picks up mouse and touch events. Even works on older browsers.


bkorte 22 hours ago 1 reply      
Man, I wish there was a library to help us normal folk do similar things. The ability to do small video on mobile would rock.
thomasfl 18 hours ago 0 replies      
Still none of the pages on apple.com are made for small mobile screens. Only exception is the iPhone manual.
federicoweber 15 hours ago 0 replies      
This is brilliant, maybe overpowered but brilliant.
But the thing I cannot stand is the use of images for text.
I would have preferred to se the use of @font-face with fallback to images for old browsers.
mihaipocorschi 9 hours ago 0 replies      
Apple has a way of hiding new web tech in plain sight. Otherwise very good write-up. Thumbs up.
tisme 18 hours ago 0 replies      
Maybe they should have used flash instead. That would have given them a higher percentage of successful deliveries than this solution.
xyz_ak 19 hours ago 0 replies      
Very interesting and kind of absurd. Why didn't they simply recreate the animation with moving sprites instead of taking the "video" approach?
aniketawati 22 hours ago 0 replies      
There could another simpler way. NoVnc + tightpng encoding. Create and record a high framerate VNC session to desired video. Tweak no vnc to receive data from local callbacks and replay the recorded data.
effinjames 22 hours ago 0 replies      
this is so useless
fidz 23 hours ago 2 replies      
In short, Apple don't want their demo videos to be easily downloaded and viewed?
Elon Musk: "I would like to die on Mars" businessweek.com
279 points by kposehn  3 days ago   139 comments top 31
shawnee_ 3 days ago 2 replies      
On the assumption that people will be living on earth for some time, Musk is cooking up plans for something he calls the Hyperloop. He won't share specifics but says it's some sort of tube capable of taking someone from downtown San Francisco to Los Angeles in 30 minutes. He calls it a “fifth mode of transportation”"the previous four being train, plane, automobile, and boat. “What you want is something that never crashes, that's at least twice as fast as a plane, that's solar powered and that leaves right when you arrive, so there is no waiting for a specific departure time,” Musk says. His friends claim he's had a Hyperloop technological breakthrough over the summer. “I'd like to talk to the governor and president about it,” Musk continues. “Because the $60 billion bullet train they're proposing in California would be the slowest bullet train in the world at the highest cost per mile. They're going for records in all the wrong ways.” The cost of the SF-LA Hyperloop would be in the $6 billion range, he says.

The estimated cost projections for the bullet train project keep getting bigger. I've seen estimates as high as $68 billion: and that is for construction alone (not including maintenance, etc). If Elon Musk can come up with a better idea, I hope we can remove enough of the red tape (that incidentally makes endeavors like this so expensive) to at least let him try.

Bud 3 days ago 5 replies      
Now that Jobs is gone, Elon is probably the coolest guy in the world. Can't wait to see what he comes up with in the next 10-20 years.
codex 3 days ago 6 replies      
Given Mars' weak gravitational field, extremely low atmospheric pressure, lack of breathable oxygen, deathly cold temperatures, and weak magnetic field (leading to high levels of radiation), he may well get his wish. Many others will likely get this wish against their will.

If he would like to get a taste of realistic Martian colonization here on Earth, may I suggest living underground in a windowless tank, surrounded by a partial vacuum, next to a nuclear reactor.

mej10 3 days ago 3 replies      
How about... you know, not dying? At least in the foreseeable future.

You can do a lot more awesome engineering and science and exploration if you don't die after ~80 years.

juiceandjuice 3 days ago 1 reply      
It's statements like this that have made me seriously consider applying for a job at SpaceX.
AYBABTME 3 days ago 1 reply      
I recently discovered who Elon Musk was and I'm always astonished to read about him, and realize that he seems to have all the dreams that I have; plus the money, the wisdom and the experience to accomplish them.

I never had a model or a 'hero' in my life, but I find it hard to deny Elon this role. He's kind of imposing himself to me.

For some parts, he pisses me off. He doing it removes me the feeling that my dreams were mine. On the other sides, my pride motivates me to accept his theft as a challenge to try at surpassing him.

Now I'm only 25, so I guess I still have the time required to get on par, if I keep working hard enough.

jboggan 3 days ago 0 replies      
I have always told myself that ending my days on another planet will be an absolute definition of success for myself no matter what else I don't manage to accomplish. It's a sufficient but not necessary condition. In ten years I hope to be working in a business related to space exploration.
johnnyg 3 days ago 0 replies      
Yeah, you and me both Mr. Musk.
damoncali 3 days ago 1 reply      
Enough of the hero worship. If Musk gets on one of his rockets in 15 years and launches it towards Mars, he will certainly die. Long before he reaches Mars.

Yes, he's a great, fascinating man. I enjoy observing this stuff as much as the next guy. But Good God - stop slobbering on yourselves. This is marketing fluff of the highest order.

vannevar 3 days ago 2 replies      
I love what Musk is doing, but both of his current engineering successes---Space X and Tesla---involve building well-understood vehicles, just faster and at less cost than competitors. Doing entirely novel projects like a manned mission to Mars or some new kind of mass transportation system are orders of magnitude more difficult and uncertain, and I think he's grossly underestimating the time and cost for either of his more ambitious new goals. I'd like to see him make plain vanilla space transportation and electric cars into business successes comparable to PayPal before he moves on to Mars and Hyperloop.
rdl 3 days ago 3 replies      
I'd prefer to not die, but dying on Mars would be ok if dying is necessary.
gtirloni 1 day ago 0 replies      
"SolarCity, where Musk is chairman of the board, is a player in the residential and commercial solar markets, with more than 28,000 customers, and is expected to go public imminently at a value of about $1.5 billion."

We're valuing crap, err FB, at $50 billion these days. Why is a company with actually something to offer to society getting valued at only $1.5bn ?

it 3 days ago 2 replies      
Saying it that way makes it sound like a new retirement community. Why not say he would like to live on Mars? Maybe because it's a dead planet and not very livable.
photorized 3 days ago 1 reply      
Re: “Boeing just took $20 billion and 10 years to improve the efficiency of their planes by 10 percent. That's pretty lame. I have a design in mind for a vertical liftoff supersonic jet that would be a really big improvement.”

I respect what the guy has done. But a vertical liftoff supersonic jet is going to be more difficult than anything he had encountered, including rockets.

Zenst 2 days ago 0 replies      
For those who fiscaly are less likely to get to Mars and still wish to die on Mars can always read this and smile:


on another less serious note I believe the chap in this news item will beat him too it:


    Most people want to die in peace, but when you have to go to another planet to get peace then you just know noise polution has got a little bit out of hand.

kilroy123 3 days ago 1 reply      
I sure hope SpaceX ends up being a success. I also hope, if successful, they put a lot of money toward research on carbon nano tubes.

Hopefully, they or some other organization, could move towards building a space elevator sometime in the next 50-100 years.

JVIDEL 2 days ago 0 replies      
I would like to die on Mars, just not on impact.

Easy, remember a few years ago when some guys at NASA proposed that the first guys to Mars should be in their early 60s?

That's because getting there is not the problem, the problem are the copious amounts of radiation you would absorb on the way which means that even if you make it back you probably wont live much more.

So what those guys proposed was sending old astronauts on a one-way trip.

mherdeg 3 days ago 0 replies      
It always astonishes me that not only did Heinlein invent the Segway ("The Road Must Roll"), he also invented the idea of people like Elon Musk (as D.D. Harriman in "Requiem").
gnarbarian 3 days ago 1 reply      
That can be done for far less than establishing a long term colony there.
eckyptang 2 days ago 0 replies      
Conincidentally, I actually had a rather lucid dream about this a few nights ago. I can see it is possible even with today's technology to get there and stay there. It's just a matter of cost and inclination.

We need to send lots and lots of larger seed probes out there first though - not the limited scope probes and landers we're using now, but general purpose, long life scouting probes with engineering, tooling and life support payloads.

philhippus 3 days ago 1 reply      
I wonder if the Hyperloop is a maglev propulsion system contained within a vacuum tube? That would essentially be space travel - on earth. It would also allow for efficient use of energy, as long as the vacuum could be easily maintained.
sfriedrich 2 days ago 0 replies      
Go Elon! Big vision. Big execution. They ARE delivering. Get's my motor revving.
the_mitsuhiko 3 days ago 0 replies      
I think dying on mars can be accomplished in a reasonable timely manner. Living on mars however might be hard.
benl 3 days ago 0 replies      
"Hopefully not on impact"
greesil 3 days ago 0 replies      
Or maybe die on the way there.

McCoy: Don't pander to me, kid. One tiny crack in the hull, and our blood boils in thirteen seconds. Solar flare might crop up, cook us in our seats. And wait till you're sitting pretty with a case of Andorian shingles. See if you're still so relaxed when your eyeballs are bleeding! Space is disease and danger wrapped in darkness and silence.

Substitute Andorian shingles with just going crazy being cooped up in a tiny ship.

autophil 3 days ago 1 reply      
I would like to die on Mars. Oh brother.

How come "shut up and just do it" applies to everyone but Elon? Why does he only have to talk about doing something to be hailed a hero?

Start backing some of this stuff up with action Elon.

knodi 3 days ago 0 replies      
Don't worry Mr Musk, you won't have to die pretty soon.
wooptoo 3 days ago 0 replies      
At first I thought they were talking about Elop from Nokia and I thought to myself 'yap, we could send him to mars tomorrow'.
stickhandle 2 days ago 0 replies      
a man of my generation sees a little of the Larry Ellison swagger about Elon Musk. I hope he does more.
badcrowd-JG-IW 3 days ago 0 replies      
DJ Lee Kalt. Vergeet hulle bestaan.
ceejayoz 3 days ago 0 replies      
Even the most pessimistic climate change predictions don't have Mars being more habitable than Earth in any imaginable future.
Dropbox dives into CoffeeScript dropbox.com
275 points by varenc  4 days ago   192 comments top 21
crazygringo 4 days ago  replies      
Where I work, we moved the project I work on to CoffeeScript about a year ago, and I've been using it ever since.

Putting syntactic sugar aside, while some things are very welcome (list comprehensions, ===, ?), there are two main reasons why I would be wary of using CoffeeScript again:

1. Complete lack of documentation for syntax. Because there are basically no more braces and parentheses, CoffeeScript just tries to guess what you're doing, as far as I can tell, based on a bunch of internal heuristics. Unfortunately, there's no way for me to learn how to write parseable code without constantly pasting into the coffeescript.org site, and seeing if CoffeeScript understands it or not. This is the first language I've ever used where the syntax rules are essentially unknowable, and a lot of time gets wasted trying to discover them through trial and error.

2. Unexpected side effects. For example, functions return the last evaluated value by default. If you're using $.each(), and your function's last line is something that returns false (like a separate function you call), then your $.each() loop will terminate unexpectedly early, since jQuery does that when it receives a false. So CoffeeScript isn't just a wrapper around JavaScript, but it really changes its behavior. Another example: CoffeeScript gets rid of function hoisting. A significant JavaScript feature, completely gone.

I personally am slower to code in CoffeeScript, because I know JavaScript 100% inside and out, but with CoffeeScript that isn't really possible, because so much of its implementation is undocumented. I mean, many times you're forced to end a line with a backslash in order to continue it, and even the existence of that necessary feature isn't mentioned once in the docs.

But a lot of people seem to love the syntax, and that seems to outweigh the negatives for them. I personally don't find JavaScript that ugly, but coding in a language I can't ever fully understand gives me a huge headache.

jlongster 4 days ago  replies      
This sounds so much like some geeks wanting to hack. That's it. There isn't really a good reason to convert a codebase with tens of thousands of lines of code from js to CoffeeScript.

Not that there's anything wrong with that. But seriously, every single problem with javascript they mention is never a problem for javascript developers. You simply learn what's broken, and deal with it. Dealing with it is usually one line of code (or even less), making sure you just use ===, etc. It's really not a problem.

These kinds of posts smell a little like FUD to me, which is what I have a problem with.

sync 4 days ago 8 replies      
Big, big fan of CoffeeScript and glad to see Dropbox hopping aboard.

That being said, some of their examples are lackluster.

  @originalStyle = {}
for k in ['top', 'left', 'width', 'height']
@originalStyle[k] = @element.style[k]

Should really be something like:

  @originalStyle = ['top', 'left', 'width', 'height'].reduce (hash, position) -> 
hash[position] = @element.style[position]
, {}

... though that shows off some CoffeeScript warts.


  Sharing =
init: (sf_info) ->
for list in [sf_info.current, sf_info.past]
for info in list
@_decode_sort_key info

Why aren't they using CoffeeScript classes?

  class Sharing
constructor: (sfInfo) ->

supersillyus 4 days ago 6 replies      
I agree with them on the readability issue mostly, but I don't understand the preference for parens-less function calls, especially where there are arguments.

Maybe it's a matter of training, but

   @_update_status_position(e, files)

looks much clearer to me than

   @_update_status_position e, files

BadassFractal 4 days ago 1 reply      
I'm a little surprised by the number of negative comments in this thread accusing the three Dropbox engineers of wasting company time.
malandrew 4 days ago 0 replies      
You guys should use MD5 digests of files instead of mtime for file change comparison.

mtime works fine until you want to add other steps that are dependent on the mtime of ephemeral files occuring previously in your process. Steps such as minification, uglification and comparison for uploading to a CDN all become a bit more complex if mtime is used since every compile step has the tendency to modify mtime so recompilations cascade through the process causing at best unnecessary processing and at worst weird edge cases if the order of middleware isn't taken into account (the middleware issues can be avoided with precompilation before production.

aaronbrethorst 4 days ago 2 replies      
"I had to be done [with Javascript] in ten days or something worse than JS would have happened."

I've heard this quote from Eich several times now, but I've never heard what the "worse than JS" alternative would have been. Anyone know?

geon 4 days ago 1 reply      
The first comparison is not fair. Audio is 1D, while code is 2D.

Obviously CoffeeScript is less cluttered, but JS is nowhere near as bad as the audio makes it sound.

AndyKelley 4 days ago 0 replies      
The middle code example can further be broken down[2] by using coco[1] instead of coffee-script.


    this.originalStyle = {};
['top', 'left', 'width', 'height'].each(function (k) {
this.originalStyle[k] = this.element.style[k];


    @originalStyle = {}
for k in ['top', 'left', 'width', 'height']
@originalStyle[k] = @element.style[k]


    @originalStyle = @element.style{'top', 'left', 'width', 'height'}

coco also solves a rather nasty variable scoping issue[3]

[1]: https://github.com/satyr/coco/
[2]: http://satyr.github.com/cup/#c:@originalStyle%20=%20@element...
[3]: https://github.com/jashkenas/coffee-script/issues/712

dustingetz 4 days ago 0 replies      
the question that should motivate a change like this:

what does new-language let your team accomplish that you can't accomplish with old-language?

question isn't answered in post, the answer is probably somewhere along a 2x increase in the complexity the same team can handle. i dunno if it is worth disturbing an existing codebase and the QA cost of making sure you didn't introduce any defects. meh. where i work, we have maybe 100k lines of javascript, and its not really a problem other than lack of types when refactoring imperative code, nothing near the scope of the problem of Java's lack of higher order functions.

jackfoxy 4 days ago 0 replies      
Speaking as someone who has managed coders writing far more lines of javascript than I will ever write, this is a better articulation of my belief that javascript should be generated from another language (CoffeeScript being the leader) than I could ever propose. Thanks Dropbox! This post should be read by everyone who writes or manages those who write javascript.
bostonaholic 4 days ago 7 replies      
}); is not a line of code. Please stop counting it as such. Here's a good rule of thumb:

"If it can be moved to the line above, without any other changes, it's not its own line of code."

The argument that CoffeeScript saves countless }); }); } } is invalid, IMO. I would even argue that function definitions are not lines of code. Example: (ruby)

def foo

0 lines of code.

BTW, I'm not a CoffeeScript hater, just trying to level the playing field.

funkiee 4 days ago 0 replies      
It's nice to see some more prominent companies using CoffeeScript that people could point to if they ever wanted to convince their boss.

Did any of the other Dropbox employees have a hard lead-in time getting used to the syntax in CoffeeScript? Would you say you run into a lot fewer syntax errors when running validation now?

kevincennis 3 days ago 0 replies      
Wait, they're looking forward to "Native CoffeeScript support in browsers, so that during development, we can avoid the compilation to JavaScript altogether."?

Is there something I don't know about?

lucian303 4 days ago 1 reply      
"We've heard many arguments for and against debuggability, and in the end, we convinced ourselves that it's easy only after jumping in and trying it."

So, in other words, you have only your own opinion and at best one (1) anecdotal experience. Congratulations! You've failed to prove your point from a logical perspective, let alone anything more!

skilesare 3 days ago 0 replies      
I tell my prospective clients that if their contractors/employees are still programming in js then they are stealing from them.

Coffee Script is clearer, more concise, more maintainable. It has made me 5x more efficient in writing code (just the reduction in scrolling is a massive time savings) and I've seen similar results with my developers.

It takes about 2 days to learn and has a significant long term benefit. Switch.

Ygg2 4 days ago 1 reply      
In our case, we avoided this problem entirely by instrumenting our server code: whenever someone reloads a Dropbox page running on their development server, it compare mtimes between .coffee files and compiled .js equivalents. Anything needing an update gets compiled.

I wonder how did they achieve this? Is this a feature of node.js or is this like an automated build system? I suspect the latter.

seangransee 4 days ago 0 replies      
this is great news! for people who prefer python-like syntax, coffeescript is a no-brainer. sites like js2coffee.com make it really easy to make the transition.
dotborg 4 days ago 0 replies      
Ctrl+Shift+F - does it work with CoffeeScript in Eclipse?

oh wait, no semicolons :/

MatthewPhillips 4 days ago 3 replies      

> Disclaimer: we love Python, and it's Dropbox's primary language, so we're probably biased.

pjmlp 4 days ago 0 replies      
As I only use the native application, I can care less.
Introducing the Command Bar github.com
273 points by dko  6 hours ago   71 comments top 21
crazygringo 5 hours ago 2 replies      
Wow, a command-line interface to a website is something I never thought I'd see.

My first reaction was that it's a step backwards because the usual benefits of a command line aren't present here (you're usually already using your mouse, commands can't be piped, no shell scripts to run things in sequence)...

But I'm intigued -- maybe it's a possible step forwards? The implementation is very well done. I suppose maybe it functions like traditional keyboard shortcuts in a way? To follow a user, instead of finding their page and clicking follow, you just type "@user follow".

Still, all the commands are so basic, and many are infrequently used, I don't really see much of the "shortcut" value. I'm very curious to see if this user interface concept grows. Imagine if this became a standard way to interface with web API's!

tarr11 5 hours ago 8 replies      
Playing with this for a few minutes:

* I wish it had vim keybindings (ie, hit esc, then use hjkl to navigate)

* It gives me the option to follow myself. (Bug?)

* I like how I can learn commands via the autocomplete bar (issue, branch, graph, etc)

* I like how the autocomplete bar refreshes after I have control-tabbed away and back. Too many autocompletes lose this behavior

* Searching in a repository username/repo <searchterm> doesn't work the way I expect. It just brings up the regular search

Overall, very useful though.

tomblomfield 3 hours ago 2 replies      
Cool toy, but how about letting users just search for code in a repo properly?
nathan_long 30 minutes ago 0 replies      
The one command-line feature I want most on Github is `git grep`. I have cloned projects locally solely to be able to do that.
_djo_ 5 hours ago 0 replies      
This UI concept seems to be gaining in popularity. Jira 5 has a similar (though less powerful) option-completion action bar that you can pull up with a shortcut when viewing an Issue.

I've been considering adopting a similar concept for a complex enterprise application that I maintain where the number of possible actions on a certain page is huge.

beatpanda 1 hour ago 0 replies      
I want this for every website, and for most of the desktop apps I use. Typing, for me, is so much easier than finding menu items and clicking on them. Imagine Photoshop with an autocompleting command line instead of a maze of menus. I could work so much faster.
ef4 5 hours ago 0 replies      
Nice. I wish more GUIs had this kind of capability.

Long live the command line. At least until I get my neural implants.

state 5 hours ago 0 replies      
I really like seeing this UI approach becoming more popular. I find it particularly worthwhile because I think it helps build familiarity without being limiting the way simple autocomplete can. This approach broadens the knowledge of the user " even (I think) in the case of something like GitHub where most users are particularly competent.
mrgreenfur 5 hours ago 3 replies      
I like github for their sweet hosting and easy collaboration. I have no idea who would use this command bar. Do people really want to move the mouse to click on a cli and then guess/remember the syntax?

I don't really get why they built this... Anyone?

zb 4 hours ago 0 replies      
This seems like a step in the right direction, because GitHub's search remains awful.

For example, I can now type in "<user>/<repo> #123" to go to an issue, but if I am already on the Issues page for that repo and I type "#123" in the box labelled "Search: Issues & Milestones..." it still comes up with nothing. And that's not even challenging.

I'm desperately hoping that this feature is an indication that they've noticed that finding anything on the site requires either 8 million mouse clicks or manually editing URLs.

johncoltrane 3 hours ago 1 reply      
Well, we already have a command bar at the top of the window. What about these commands?


conradev 5 hours ago 0 replies      
This is similar to a plugin I have been using in Alfred for quick access to Github (but not nearly as feature complete):


DigitalSea 4 hours ago 0 replies      
This is awesome. I would love to see the concept of a website command line interface explored a bit further, hopefully Github implement something like Vim keybindings and a few other useful commands. The future is bright, man.
jamespitts 4 hours ago 0 replies      
It is fantastic that a command interface is now a part of a very public system like github.

These things really speed up work for power-users and let maintainers add functionality without adding more complexity to the user experience than is appropriate.

evanmoran 4 hours ago 0 replies      
To remind everyone how awesome xkcd's commandline is:


lukencode 3 hours ago 0 replies      
I put together a little admin command line that you could bring up with the ~ key that looks like this: http://i.imgur.com/mq7ko.png?1

It is built for asp.net but you could easily apply the same concept somewhere else. More info if anyone is interested: http://lukencode.com/2011/12/11/netbashan-alternative-to-end...

flyhighplato 4 hours ago 0 replies      
Giving the type of people who like command lines a command line -- not a bad idea!

The down side is that, I think, this is really only useful for the github power user. The upside is: I'm a github power user!

Seriously, though, I hope they don't use this command line as a sort of cop-out for continuously improving their UI.

magnusgraviti 5 hours ago 1 reply      
I think it would be even better to have some terminal emulator on github. Even now with so improved UIs I like command line interface.
peterbe 3 hours ago 0 replies      
Note, Chrome junkies, the Firefox awesome bar already does most of these :)
cientifico 5 hours ago 3 replies      
You only miss one thing:

* map the '/' symbol to focus:search box.

missechokit 5 hours ago 0 replies      
Death to the CLI/GUI religious wars.
Android can be beautiful androidniceties.tumblr.com
271 points by mephju  9 hours ago   121 comments top 37
cs702 8 hours ago 2 replies      
Android is no longer an ugly-duckling platform trying to catch up with iOS, but a beautiful platform that truly rivals iOS in all important ways -- and now surpasses it in terms of market share. However, mobile app developers have only recently begun to transition from "we need an app for Android too, quick!" to "we need great apps for both Android and iOS," so it will take a little while for all those ugly, hastily-put-together Android apps to become a thing of the past.

UPDATE: koko775 raises a good point: the large installed base of pre-ICS Android versions may also be a factor. See http://news.ycombinator.com/item?id=4533819

jemeshsu 0 minutes ago 0 replies      
Are there other similar sites that showcase mobile app design? Best is one that covers Android, iOS and Metro apps.
untog 8 hours ago 1 reply      
Since ICS, Android is beautiful. Well, the OS core is, anyway. Widget makers and the like still don't seem to have got the design memo, but I suspect that's because design talents are so focused on iOS.

We just need the app makers to catch up. Foursquare, for instance, has been redesigned and looks great. However, their widgets haven't been touched and look awful by comparison. Spotify has done a far better job of updating everything at once.

Osiris 8 hours ago 6 replies      
I'm bit surprised by all the comments about "Consistency". All of us use the web every single day and every single website looks completely different, all with their own styles, layouts, color schemes, etc.

I would think that web designers, and designers in general, would be happy with the flexibility to create their own thing rather than having something that pretty much looks like everything else.

The web used to have some consistencies, like <A> tags rendering as blue with an underline and always loaded a new page, but that's long since gone. Nowadays designers are free to make links look and work how they want.

I, personally, don't see the problem with lack of visual design consistency. I prefer to not have every app on my phone look the same.

dpark 9 hours ago 4 replies      
These seem really inconsistent to me. Feedly looks almost like a metro (sorry, "Windows 8-style") app. doubleTwist looks like an iOS app, as do Square Card Reader and Tumblr. Reddit Sync Pro seems to fit in with Google+, so I assume that's what modern Android apps are supposed to look like.

None of these general aesthetics are bad, but the inconsistency seems to be an issue. (Actually, a few of them do look bad to me, like Rdio, with the very dated "app home screen" that looks like it was copied from the old Facebook iOS app.)

koffiezet 8 hours ago 2 replies      
The problem with the Android UI isn't (only) the lack of beauty, it's the lack of consistency, style and attention to detail. Things like included/used fonts (although the default iOS notes app also fails horribly here), placement of back buttons. And that's exactly one of the things that disturb me in the Android UI, things like the 'back' functionality, which is utterly confusing. In iOS the 'back' button is always on the same location AND tells you where you're going back to. Android has a dedicated button, and it surprised me more than enough where it was taking me back to.

So yes, Android could use a better/cleaner visual style, but that's not it's biggest problem. Also, if a new visual style would be adopted, it should be universal. Right now it's a mess of apps trying to do their own thing because the default style is ugly, and these examples demonstrate that perfectly... Android 4 has shown some improvement but I still don't like it.

There are also quite a few iOS apps that don't necessarily respect the general look&feel of iOS, but some of them succeed in having a distinct style without clashing badly with the rest of the interface. Hell, Google showed that it is capable of doing just this, just look at the Google+ and the new YouTube app, they are pretty neat.

I think Android UI designers should use iPhones and Windows 7/8 phones as their daily device, or switch at least once every week. Then they'd see what's wrong, what irritates them about every OS and find a way around some of the moronic decisions were made in some of these OS's, and all are guilty of this to some extend. Android at this moment however gets the crown in usability WTF's.

Disclaimer: I own an iPhone and iPad, but mainly develop for Android/BB/WinMobile.

micheljansen 9 hours ago 4 replies      
Some of these are really nice. I'm curious how many of these are Android-specific though. Path looks pretty similar on iOS and so do FourSquare, Flipboard etc. Which of these are examples of good mobile design that holds itself on various platforms (iOS, Android etc.) and which are unique to Android?
darkstalker 8 hours ago 1 reply      
It's already known that since ICS Android is prettier and more functional than iOS.
bstar77 8 hours ago 1 reply      
I agree that Android can look gorgeous, but that can only go so far. Android's problem is consistency. I've used every alternate android build I could find, and the custom (and default) themes and UI menu system lacked consistency. My favorite was MiUi and even that had terrible consistency issues.

iOS, on the other hand, is supremely superior in this department. The cohesiveness of the experience is second to none. I value that over custom configurations any day. My android phones have been wonderful hack-fests, but at the end of the day, the one thing I can't hack into them is a consistent experience.

zobzu 9 hours ago 3 replies      
is it bad if i find it inconsistent, annoying to use, etc?

I mean, it is pretty (well, arguably, most of them are), but, the buttons are all over the place and everyone seems to have it's own UI plastered on top of more or less "android ui compliant" stuff.

drivebyacct2 8 hours ago 0 replies      
Oh for the love of God, we still need convincing of this? Anyone with an ICS/JB phone knows that Android is perfectly capable of looking good. My "least-good" looking application that I use on a regular basis is the Flashlight app, and even then, it's just a big round glossy button.
lallouz 8 hours ago 0 replies      
Of course Android can be beautiful if you showcase a few screen shots created by some very talented designers. After spending the last 4 years as an Android developer, its clear that the platform falls short in two places at the intersection of UX and UI. I've worked with some of the best designers and they always produced beautiful assets and screens, but we were always left making important UX decisions that caused inconsistency with other apps. The "beauty" that many users come to appreciate with iOS and Metro, is the cross app consistency, experience and cohesion with the operating system itself. Even apps produced by Google have a tremendously wide gap in consistency. The other major problem is development decisions made (and allowed by the platform) by software engineers. More than a few of the apps in this list do unthinkable things like processing data on the UI thread or having terrible offline experiences. This can turn a beautifully designed app into a terrible app very quickly.

It's important to distinguish "looks pretty" and "beautiful".

recoiledsnake 9 hours ago 0 replies      
Looks somewhat inspired by Metro... not that that's a bad thing. ICS made a huge stride in the Android UI, and Google was even talking up the new font during the announcement.



seunghomattyang 9 hours ago 2 replies      
Reminds me of what Chief Creative Officer at doubleTwist said about designing for Android:

>> As it stands, If you design a great app for Android and people say 'hey, that looks like an Android app', that means you've failed.[1]

[1] https://twitter.com/sdw/status/187245772205600769

angry-hacker 8 hours ago 2 replies      
I like the screenshots but I don't understand the navigation of the page and why would you hijack the default scrollbar of your browser?

I'm surprised that so apps look WP metro style

dbreunig 6 hours ago 0 replies      
It's comical/ironic how difficult that site is too browse.
corporalagumbo 4 hours ago 0 replies      
I'm surprised to see so many comments claiming these apps look like Metro. Frankly the level of design on WP is much lower - third-party apps are extremely low quality and all of MS's apps are much simpler and lack the richer textures and details of these apps. Judged on these screenshots, Android looks much nicer than WP, and seems to strike the right balance between clarity and detail.
ikhare 8 hours ago 0 replies      
Very happy to see the Bump 3.0 on there (I worked on it). ICS and all of it's native apps were a great statement by Google to show how they'd like their apps to look and feel. We followed their queue and used the action bar and view pager to great success. Also having a great visual designer doesn't hurt either.
w1ntermute 8 hours ago 1 reply      
For anyone looking for a fully-featured notes app, Catch, mentioned in TFA, is the way to go. It does sync, has a web interface, and probably a 100 other features I haven't used.
jtreminio 9 hours ago 1 reply      
Some more themes are on Reddit:


Dove 8 hours ago 0 replies      
Humbling. I though I was doing really well making Android apps, but these examples remind me how far there is to go.
rprasad 9 hours ago 5 replies      
This site contains a stack overflow bug which crashes Firefox and IE9 on Windows.


enraged_camel 6 hours ago 0 replies      
It's good to see that Android is improving in this area. And I say that as an Apple "fanboi". That said, it is unfortunate that the ecosystem still suffers from heavy fragmentation, so only a small portion of users will be seeing the benefits mentioned in the article.
barbs 2 hours ago 0 replies      
Android can also be really ugly http://fuglyandroid.tumblr.com/ :P
tomp 8 hours ago 0 replies      
Reading this list, I just realized how useless all these apps feel. With the exception of Google Maps, when you really need it.
tvon 8 hours ago 0 replies      
There are some very nice looking apps in there.

Kind of meta but IMO the screenshots on that site are too big and should be scaled down a bit.

wahsd 5 hours ago 0 replies      
Slightly off topic, but anyone else notice that that site/page seems to somehow choke on something. It spun up my CPU over something, I think resizing the images or something. Don't have the time to look or care.
creativityhurts 8 hours ago 1 reply      
It can be beautiful on the large-screen top models like Nexus S, S2, S3 and so on that are owned by geeks, not on the LG Optimus-ish and other low-quality phones that regular people buy. On my Samsung Galaxy S Mini not so much, for example I couldn't install Path because the screen is too small.
northisup 7 hours ago 0 replies      
This is a list of apps that in no way use the android default widgets. So yes, it can be beautiful when you do all the hard work yourself.

(and yes, these apps look fantastic)

spydum 8 hours ago 0 replies      
The great irony is that page runs terrible on my galaxy2 tablet..
marban 8 hours ago 0 replies      
...but only if you skip regular UI conventions
jamesjguthrie 6 hours ago 0 replies      
I really like the Google+ app, it's lovely.
se85 8 hours ago 0 replies      
Beautiful != Consistency
squarecat 8 hours ago 1 reply      
Beautiful != usable
ChrisArchitect 7 hours ago 0 replies      
another similar Android app design blog http://www.holoeverywhere.com/
miralize 8 hours ago 0 replies      
I just dont see. Beatuiful is extremely subjective, so the title of this is inherently incorrect. And beautiful they may be, but they are not usable, consistent, or friendly. And the ones that are close to being good, have niggling issues like spacing between items, which drives me nuts
epo 4 hours ago 0 replies      
"Android can be beautiful" eh? Saying it doesn't make it so. As an aspiration it is so far from current reality as to be simply delusional.
Things I've quit doing at my desk justinjackson.ca
267 points by mijustin  1 day ago   93 comments top 23
jaysonelliot 1 day ago 9 replies      
I would add "Eating" to the list.

I eat at my desk all the time, and I really need to stop. When I eat at my desk, I'm generally eating things that aren't that healthy to begin with, snacking unnecessarily, and/or eating too quickly, and doing it in some misguided notion that I'm able to work and eat at the same time. I'm not actually productive at times like that, it just lets me deal with some illogical guilt I feel when I get up to go eat at a table with other people, or out by myself in the park near the office.

When I get up and go to lunch instead of eating at my desk, I'm taking a real break, I'm socializing, or taking time to think.

I gotta stop eating at my desk.

eckyptang 16 hours ago 1 reply      
I quit working at my desk.

It's uncomfortable (despite considerable investment), takes a lot of space, has terrible lighting, is too hot or too cold and is eerily quiet. It's quite depressing really.

I tend to sit in the garden when it's not raining - good lighting, relaxing ambient noise and great air (which is really important). Plus you can get up and walk around regularly and focus on stuff that isn't right in front of you.

The only downside is bird crap and my neighbours think I'm insane.

bajsejohannes 1 day ago 2 replies      
> Nobody does their best thinking sitting at their desk. When you reflect on your biggest “Ah-Ha!” moments, how many of them occurred while you were staring at a screen?

My biggest ah-ha moments are seldom staring at a screen*, but quite often it's at my desk with a paper and pen.

(The big exception is when doing profiling; the highest ah-ha-per-second ratio of all activities)

_delirium 1 day ago 4 replies      
#1 (thinking elsewhere, especially while taking a walk) is definitely true for me, but it does require being in a setting where you're allowed to leave the office for a few hours in the middle of the day to go for a walk in a nearby park. In academia or at your own startup, probably not a problem, but many companies aren't very accommodating of people leaving the office for hours at a time.
praptak 1 day ago 3 replies      
Ad procrastinating: I remember someone (Paul Graham?) reporting that he configured a separate machine for procrastination-inducing activities so as to avoid the "just quickly check my feed while this is compiling" syndrome.
jakejake 1 day ago 1 reply      
I knew before I clicked that there was going to be something about a standing desk. I feel a subtle smugness coming from the standing desk crew that irks me a little.

But, as far as procrastinating I have definitely been slipping lately and need to lay off facebook, reddit, and (gulp) HN as well. Wait... what am I still doing here..!

hkmurakami 22 hours ago 0 replies      
The "writing hut" part reminded me how Wallace Stegner's house / writing hut will be torn down in order to build a multi-million dollar monstrosity of a mansion [1]. :(


edit: apparently the writing hut will be preserved, though inaccessible to the public


rbellio 4 hours ago 0 replies      
I like the ideas put forth in the article, thanks for the write-up. For me, it's really sometimes just finding what works best for the situation I'm in. I've found that sometimes the solitude of a library study desk can be the best place to get work done. At other times, sitting in a busy area (a cafe, a park, even public transit) can be invigorating and creates enough background as to allow me to focus more. The recliner in my living room has seen more than its fair share of use while sitting at my laptop typing away.

There are times when my mind races and I can't focus. I turn the lights off, close the shades and the only light and thereby focus becomes the monitor.

I look at this article and others that offer advice on finding that working place for yourself, or that motivation to ignore distractions and I see them more as tools than as rules. A man with a well supplied toolbox is more likely to find the one he needs when the time comes.

AYBABTME 19 hours ago 0 replies      
We should declare our desks sacred, and define a set of rituals to perform at those desks, to calm the Gods of Creativity and ask their forgiveness for all those sins we committed in their temple - the Desks.
RyanMcGreal 14 hours ago 0 replies      
> Even better, I've felt more freedom to just walk away when I'm faced with a problem and need to do some thinking

I don't have a standing desk, but this is possibly my biggest incentive to consider getting one: if you're already standing, there's a lot less inertia to keep you from just walking away from your desk.

Tooluka 1 day ago 1 reply      
And switch laptop for desktop computer. Reason is - you shouldn't do work at social station, at rest station and at sleep station. You should only work at work station.
jseliger 1 day ago 1 reply      
Sitting: for the past 18 months I've been using a standing desk. I've realized that the best part isn't that I'm standing all day; it's that I'm not sitting.

I actually got a GeekDesk a while ago, and I think it's a better solution: I wouldn't want to sit or stand all the time.

ChuckMcM 1 day ago 1 reply      
I disagree about the socializing part, in part because so much of our socializing is driven through the same mechanism we might otherwise do work at. Perhaps Justin might have two desks, one that is the communication/socializing desk and one that is the execution/work desk.

Of course a number of people would love to do that where the TV ends up the display for your socializing function.

darkxanthos 12 hours ago 1 reply      
I've been experimenting with getting away from my desk at home more often and taking breaks to play games and such. I use RescueTime to track what I end up doing and how much I end up working and if anything my productivity has only increased.

It's not a perfect measurement but it helps me to realize its not at all expensive to unchain myself from my desk.

electic 1 day ago 3 replies      
I would also add "drinking" to this list. It's never good to drink anything at your desk.
xiaoma 23 hours ago 0 replies      
That desk seriously needs a nice 27" monitor before it can be a proper "workstation".
bkanber 1 day ago 1 reply      
I wrote an article very similar to this a few months ago. I make a similar argument: we need defined workspaces, and when we're there we shouldn't do anything but work.


brador 1 day ago 0 replies      
Best thing I ever did was move away from the desk unless working. Get a tablet for web browsing and keep your desk for work. I'd guess it's added 10 years minimum to my expected lifespan.
skibrah 1 day ago 0 replies      
I couldn't agree more regarding using a standing desk. The ability to stretch and move around makes working for long periods of time much more productive.
ybrs 14 hours ago 0 replies      
imho; if he's talking about the desk in the picture, its positioned wrong, he needs to stare a wall all the time he is behind the desk.
nodata 17 hours ago 0 replies      
I call BS. Nobody has a desk that looks like that.
thechut 1 day ago 2 replies      
You don't use a mouse?
poblano 1 day ago 6 replies      
Has anyone else switched to a standing desk setup? Do you like it?
Why I went from Python to Go (and not node.js) orel.li
266 points by zemo  3 days ago   189 comments top 28
ak217 3 days ago  replies      
Lots of sentiment, not much substance.

Concurrency support is possible in Python, without gevent-style monkey patching (or callback madness). Have a look at concurrent.futures and http://www.dabeaz.com/coroutines/index.html. It really needs a lot more work before it's part of the language's DNA, though. Also, pypy needs much wider adoption as quickly as possible, to address the speed problems (and its STM branch holds huge potential).

For me, Go's major shortcoming is its community's lack of focus on readability as compared to Python.

juddlyon 3 days ago  replies      
"... as a Python programmer, I was the member of an elite cabal of superhuman ultranerds, smarter than those childish Rails/JavaScript/PHP/whatever developers that couldn't write a bubble sort or comprehend even basic algorithmic complexity, but more in touch with reality than the grey-bearded wizards of Lisp/Haskell/whatever that sat in their caves/towers/whatever solving contrived, nonexistent problems for people that don't exist, or those insane Erlang programmers who are content writing sumerian cuneiform all day long."

This made me laugh, thank you.

stcredzero 3 days ago 1 reply      
If someone created a debugging environment for Go based on a VM, which also let one recompile source from within the debugger then continue execution, then it would be, for all intents and purposes, as productive and immediate as the old Smalltalk environments. You'd have the same small-grained cycles of inspecting state, modifying code, rewinding the stack to the place of your choosing, then getting immediate feedback.

Source code changes could be saved as log-structured patch files, which could then be thrown away or applied to the source tree as desired. One could also steal some ideas from the Smalltalk Change Log tool by adding similar editing, search, and filtering commands.

With tools like this, one could recompile for "interpreted debug mode," have complete visibility and control of runtime state to debug a problem, then take the resulting patch file and apply it to the source tree. It would be a best of both worlds scenario -- all the enhanced debugging of an interpreted runtime with the type safety and speed of compiled code.

it 3 days ago 1 reply      
It would help a bit if the article included at least roughly equivalent Go code next to the Python code. The Go code is wordier, but maybe it takes less time to write because it doesn't require as many decisions (libraries etc.) as with Python.

        package main;

import (

func main() {
hosts := []string { "www.google.com", "www.example.com", "www.python.org" }
c := make(chan string)
for _, h := range(hosts) {
go get_ip(h, c)
for i := 0; i < 3; i++ {

func get_ip(host string, c chan string) {
addrs, err := net.LookupHost(host)
if err != nil {
fmt.Println("Host not found:", host)
c <- host + ": <error>"
c <- host + ": " + addrs[0]

ricardobeat 3 days ago 3 replies      
Ah, code comparisons. I don't see much difference in the Go code vs Javascript, except for the extra comments and logging in the js. How about this?

    var cluster = require('cluster')
, http = require('http')
, os = require('os')

if (cluster.isMaster) {
} else {
http.createServer(function(req, res){
res.end('Hello world')

mietek 3 days ago  replies      
Dimissing Erlang and Haskell with a wave of the hand, while seriously considering node.js? Carry on, nothing to see here.
zzzeek 3 days ago 0 replies      
For small tasks in the background of a web request, you can just, you know, use a worker thread. This author seemed like he didn't even try regular threads, and went directly from one hyped meme to another. It's often the case that the GIL isn't much of an issue.
just2n 3 days ago 5 replies      
Another gonatic? I'm immediately reminded of the days when everyone who liked D proclaimed it would overtake C++ and rule the world with terrible, contrived examples: "let me show you why my language is better than yours by completely misunderstanding how to solve a problem, then implementing that broken/overengineered solution in your language, then compare it to something my language's API can do for me, just so we can see how much simpler that bad solution is in my language!"

The insight to async I/O is that this server, for this I/O bound task, will perform as well as your GOMAXPROCS example:

    require('http').createServer(function(req, res) {
res.end("hello world\n");

But it's a lot simpler. You don't need to bolt on parallelism when you don't actually need parallelism. There are valid reasons to use Go, and there are valid complaints against Node. I don't see any of either here.

bcoates 3 days ago 1 reply      
I'd like to see more detail about the real problem he was facing in python. It sounds like he mostly wants a non-blocking background job "I don't want to set up another daemon, I just want to send some email in the background!" Why not just use Queue (thread-safe, waitable, built-in) and a background thread(pool)?

There's an awful global lock on the actual execution of python code, but unless the problem is performance or contention worrying about it is premature.

antihero 3 days ago 1 reply      
I'd like to start porting a few of my little scripts to Go (that do pretty poor messy parallelism in Python), and I was wondering what a good resource/book type thing would be for people learning Go. Like, the equivalent of learn you some haskell or whatnot. Also some advice on "wtf library do I use for this".

Is there some sort of Go package manager? How does all this shit work?

niels_olson 3 days ago 4 replies      
I keep hearing about go. I am new-ish to programming. Only really getting started on my first project, which depends on pyparsing, which depends on other things. Is go something a novice should be attacking real-world problems with?
mathattack 2 days ago 0 replies      
I think we can cut the author some slack. He admits in the header to being a relative newbie. (Learned python less than a year ago, recently took Hacker School)
markmm 3 days ago 1 reply      
Wait a few weeks, for his followup article entitled "Why I came back to Python....two words...mature libraries"
zallarak 3 days ago 1 reply      
Very cool post. The code samples really make me want to try out Go when I get some time to do so. Thanks.
knodi 3 days ago 0 replies      
I'm in love with Go. I'm very close to deploying it in production.
srj55 3 days ago 3 replies      
"As a Django developer, there wasn't a straightforward and obvious way to just do things in the background on a page request. People suggested I try Celery, but I didn't like that option at all. A distributed task queue? What? I just want to do something in the background without making the user wait; I don't need some super comprehensive ultimate computing machine. The whole notion that I would need to set up and configure one of these supported brokers made my spidey sense tingle"

It's not really that hard. I just latch on to a broker that I'm already using elsewhere in my stack (Redis). Celery makes it super simple to run a command in the background.

realrocker 3 days ago 2 replies      
In Go, the coroutines are in the same thread. There is a single thread here too(just like node.js). Coroutines are just multiplexed to the one main thread. Multi-Core Processing is handled by coroutine internals too i.e. there may or may not be more than one threads and even if there are more than one threads, they too will be multiplexed with the one main thread.
tocomment 3 days ago 2 replies      
It it true there's no way to spawn a background task in Django without making the user wait?
Kiro 2 days ago 1 reply      
Why do you need concurrency to send an e-mail? Why do you need to do it in the background? Just trying to understand this concurrency thing...
electic 3 days ago 0 replies      
I am writing an article right now about how I went from Go to C++. Hope I can have something up here soon.
dgregd 2 days ago 0 replies      
According to Google Dart is better for web apps than Go.

Is it too early to switch from Python/Ruby to Go? Maybe it would be better to wait for Dart.

I known that Mozilla and MS won't support Dart however they also don't support Go.

richcollins 3 days ago 0 replies      
You should look at LuaJIT's coroutines as an option.
ishbits 2 days ago 0 replies      
What's wrong with good old threads. It's not that hard. And threading in Java will blow away any pseudo concurrency setup in python. Been there done that. Love python but just couldn't get the performance we needed.
rjurney 2 days ago 0 replies      
I'm always confused by these kinds of posts. You really only code in one language most of the time? I code in half a dozen every day.
se85 2 days ago 0 replies      
I prefer the node.js example given over the Go example.

Sure, the go example is shorter, but the JavaScript version reads much nicer (at least to me).

rWolfcastle 3 days ago 1 reply      
Based solely on this article, and this article alone, and knowing nothing more about Jordan Orelli, the conclusion I drew about the author is that he thinks "Java Web Programming" strictly refers to applets and nothing more.

narrows eyes...


sproketboy 2 days ago 1 reply      
Why would anyone go to Node.js? Serious question.
dude8 2 days ago 0 replies      
I would have to say the author of this article probably isn't that good.
Bill Gates: Books I Read this Summer thegatesnotes.com
261 points by clbrook  2 days ago   90 comments top 13
jacques_chester 1 day ago 0 replies      
I'm finding that writing reviews, even very surface-level reviews, of books I am reading is helping me to derive a lot more value from them.

Firstly, while reading, I find myself reflecting more on the book. After all -- I will be writing a review, I need to be an active participant.

Secondly, I find that books will often spark some thinking on a topic and the review will essentially morph into an essay. I wrote a 3000-word review of one book[1] that diverged into fuzzy logic, theories of jurisprudence and a few other areas in order to properly explain my reaction. Right now I'm writing a review of Waltzing with Bears that will diverge into financial accounting and a pet theory of mine about how tools create paradigms that shape entire bodies of knowledge.

Third, books can often be connected to one another. I find that my reviews tend to link to each other. Not because I am trying to drive internal link traffic (I'm basically a nobody in internet terms, it's not worth the bother). But book A will have tangentially touched on the topic of book B; or perhaps book C illuminates something only poorly discussed in book D. To the point where I refer to books from before I started reviewing with an "unreviewed" annotation.

Finally, some people find my reviews useful. My hobby is Olympic-style weightlifting and I do a lot of reading both on it directly and on allied subjects (eg, anatomy). Fellow strength nerds have found my reviews useful in helping them select books for their own libraries. It's nice when people give you positive feedback on something like that.

[1] http://chester.id.au/2012/04/09/review-drift-into-failure/

BadassFractal 1 day ago 6 replies      
Any thoughts on that Moonwalking With Einstein book? I'd love to improve information retention in my day to day life, especially in software. I'm not so much interested in remembering the to-do list as retaining broader concepts for long periods of time. I'm lucky enough to get to learn a ton of things every day, but my long term retention of them is terrible unless I spend considerable time applying these ideas in practice, which is often not practically possible. This leads to a lot of wasted time, it's as if I never even read the darn thing.

Often, and this is the sad part, I won't even bother reading something because I know I'll forget it almost immediately, unless I have a block of time available to dedicate to trying it out in practice.

For example, I'm really fond of the underpinnings of programming language design and compilers, and it's thousands over thousands of pages of information (most of it very interesting and useful to me), but I fail to retain the vast majority of the great info and need to continuously go back to the texts whenever I'm in doubt about something. There were a couple of valuable techniques recommended in Pragmatic Bookshelf's Pragmatic Thinking and Learning, such as "now pretend you have to teach this concept to your former self who knows nothing about this", which supposedly helps with retention and internalization into the brain's "web of known facts".

Is there anything like that in the book? Would it be of any help?

sixQuarks 2 days ago 2 replies      
It's kind of funny that he recommends: "Awakening Joy: 10 Steps That Will Put You on the Road to Real Happiness"

Step 1: Be worth billions of dollars

On a serious note, I realize that money doesn't buy happiness. Proven scientifically over and over again, people get used to their situations usually within 6 months, good or bad, and get back to their "normal" happiness levels regardless.

gbog 1 day ago 9 replies      
I find it very disturbing and revealing that such a high level and respected guy did read no real book, I mean real books that will be read in 50 years, literature or philosophy, or classics like Seneque, Proust, Montaigne, Austeen.

It maybe he read them all already? Probably not, because if you read Austeen you probably can't spend all your holidays reading self motivation books.

metatation 2 days ago 6 replies      
Surprising to me is that Amazon is charging more for the Kindle version than the hard cover of "Awakening Joy" ($19.34 vs $17.16): http://www.amazon.com/Awakening-Joy-Steps-That-Happiness/dp/...
ahquresh 1 day ago 3 replies      
I find it amazing that Bill Gates seems to still have the time and passion to read books that will help him grow as an individual with everything that he probably has going on in his life and everything he has accomplished. Over the past couple of years, I have personally have had a hard time keeping up with reading habits due to school and job demands. I still read, but look to reading as a relaxing activity as in picking up Game of Thrones for an hour when I have it. I guess that's what makes Bill Gates who he is.
additive 1 day ago 1 reply      
It's amusing to see Bill Gates upset about college students not learning much and many not finishing. He's a billionaire. But he's also a dropout. And now he's reading self-help books.

I'd like to see Bill Gates go back to school and earn a degree or two. Is that a bad thing to do? Why? He obviously has the time and money. But how dare I even suggest the idea? Who am I compared to Bill Gates? A mere plebian. So why would I suggest it? Beause it would be a great example to set. In my opinion. Not sure if he is a believer in setting examples and the tendency of young people to emulate "role models". Like, e.g., billionaire dropouts.

at-fates-hands 1 day ago 0 replies      
The academically adrift book was quite interesting, although I disagree with the conclusion. For the most part, I find the first two years of college are really more about filtering out those who are there to party and those who are there to learn and get a degree. If the same results were achieved on third or fourth year students (assuming most students are in for 5 years these days), then I would be concerned.
marcamillion 2 days ago 3 replies      
What's curious is that none of the links to the books are on Amazon. I wonder if he did that intentionally.

All of them go to the publisher - which seems a bit odd.

alid 2 days ago 0 replies      
Thanks for posting this! I look forward to reading Bill's full review of Academically Adrift - higher education is ripe for the disrupt.
sproketboy 13 hours ago 0 replies      
The Road Ahead first edition? You know the one where you forgot to mention the world wide web and had to recall it?
chrismealy 1 day ago 2 replies      
Is there a HN filter to weed out "rich man has opinions" type stories?
Odd Things Happen When You Chop Up Cities and Stack Them Sideways npr.org
258 points by missechokit  8 hours ago   52 comments top 23
jballanc 7 hours ago 3 replies      
An interesting article, sure, but there's a small problem. The section of Istanbul that they've chosen (centered here: https://maps.google.com/?ll=41.044081,29.096603&spn=0.04...) is actually on the Anatolian side of the Bosphorus, and it's one of the newer neighborhoods. The streets are actually arranged like that because of the terrain, more than because of history.

That said, this is a case of being right for the wrong reason. Istanbul is an amazing city to walk through. It's like the worlds largest living maze, and you're never quite sure where you'll pop out.

For example, the first time I was there, we turned a corner down an alley to try and get to one of the main roads. The alley started out wide enough for us to walk three-abreast, but quickly narrowed. At some point I looked up and noticed that there was now a roof over our heads. Eventually the alley narrowed to where we had to turn sideways to squeeze past people coming in the opposite direction, and there were shop counters on either side. A few feet more, and we stepped out onto the main street we had been looking for. I turned around, but where I expected to see the alley was, instead, what looked like a regular store-front, identical to all those next to it on either side...

But you don't have to believe me. Yandex has great walking maps of Istanbul! Here's the location I was just describing: http://harita.yandex.com.tr/-/CVeLjW60

cobralibre 7 hours ago 1 reply      
Paris shouldn't be too surprising. While the city is quite old, it was reshaped and modernized in the mid-19th century.

See, for example: http://en.wikipedia.org/wiki/Haussmanns_renovation_of_Paris

jrockway 6 hours ago 3 replies      
all those crooked, lopsided, curvaceous streets, going off in so many directions, I can't help wondering, what would it be like to wander there?

It would be like the suburbs in the US. Houses are all on cul-de-sacs that wind around and eventually join larger streets which eventually join arterial streets. Pretty much like the map of Istanbul they chose.

samd 6 hours ago 1 reply      
Istanbul's layout is downright Byzantine.
stephth 35 minutes ago 0 replies      
LesZedCB 4 hours ago 0 replies      
I used to live in Istanbul, I actually lived in the section shown on this map. I can verify from walking hundreds of miles through those serpentine back roads that wandering Istanbul is a beautiful experience.
redcircle 5 hours ago 1 reply      
There seems to be a value judgement here: that curvy and uniquely shaped streets are superior in some way. This can be decided with objective evidence: look at how city districts flourish, and see whether it is related to the shape of the city blocks.
jpdoctor 5 hours ago 3 replies      
Would love to see Boston added. (Most believe that Boston city planners used the throw-spaghetti-against-the-wall method of city planning.)
stevenrace 7 hours ago 0 replies      
I've been transfixed with the idea of 'Digital Comparative Studies of Cities' (or some similar turn of phrase).

With the advent of mapping projects (GoogleMaps, Openstreetmap, etc), environmental sensor networks (my startup's area), and cheaper LiDAR arrays (for point cloud mappings of buildings and terrain...now in CMOS form) - we'll be able to quantify the homogeny of surbanization, architectural 'themes', road uniformity, development rates, etc over time.

There are lots of similarly clever projects cited on BLDGBlog [1] if you're into this kind of thing.

[1] http://bldgblog.blogspot.com/

minikomi 1 hour ago 0 replies      
Nice. Would love to see Tokyo. My guess is it would be a mix of NY and Istanbul chunks, depending on the area.
jules 4 hours ago 0 replies      
Paris looks more homogeneous than it is simply because they analyzed a bigger area, or at least an area with more pieces. For example if you analyzed the entirety of Istanbul, then for almost every piece you could probably find a very similar piece elsewhere.
portlander52232 6 hours ago 1 reply      
Allan Jacobs' book Great Streets contains dozens of this type of map, not chopped up, but showing the street systems all at the same scale. It's absolutely fascinating to compare 'Cisco to Houston to Paris to Venice. A highly recommended book. http://www.amazon.com/Great-Streets-Allan-B-Jacobs/dp/026260...
kristianp 45 minutes ago 0 replies      
I don't find this interesting at all. What is the point of doing that?
Alekanekelo 7 hours ago 1 reply      
Humorous post. I can't say that I am surprised by Paris dissected. All those small streets and alleys creates a lot of small segments and those small segments, when looked from above, will seem monotonous and all in the same shape. It seems that it is mostly the larger segments that are oddly shaped and that is not really surprising.
jboggan 6 hours ago 2 replies      
Glad to see this article is up on the front page. I submitted it two days ago and it never got traction.

Question about article submissions - in the past when I've submitted a duplicate article it takes me to that HN posting instead. What are the edge cases where identical articles get posted separately on HN?

state 5 hours ago 0 replies      
We have so much rich geographical data and it's always refreshing to see someone (the artist / architect) asking simple questions about it. I'm much more excited about the work itself than Krulwich's commentary (for as much as I like him). Cities are rich with spatially disjoint points of similarity.
dm8 5 hours ago 0 replies      
I'd be curious to see how old cultural cities like Mumbai, Cairo etc. will look like when they are "chopped". I'm sure they won't look anything different from Istanbul.
shocks 7 hours ago 1 reply      
I've always thought that American roads suck for exactly this reason.

They're so boring. -__-

pbhjpbhj 6 hours ago 0 replies      
What are the odd things - I only scanned the article but it seemed pretty much to show expected results. The whole is more than the sum of parts.
aw3c2 6 hours ago 0 replies      
Doesnt say anything about the sources or methology. I guess footways and the like were not used in this.
Cherian 1 hour ago 0 replies      
Mumbai is an excellent case for dissection.
galvanist 7 hours ago 0 replies      
This reminds me of Ursus Wehrli's work.
PilateDeGuerre 5 hours ago 0 replies      
The Situationists meets William S. Burroughs
Am I An Outlier, Or Are Apple Products No Longer Easy To Use? battellemedia.com
252 points by rkudeshi  3 days ago   254 comments top 41
jpxxx 3 days ago 3 replies      
Much of this is dopey nonsense but he's correctly describing a few Real Problems.

-- iOS devices blowing their asset layout and 'Othering' out is a Real Problem that used to happen far too often. The only fix beyond a backup+restore is to remove and re-add photos and music. If that doesn't work? Time to restore up to 60GB over USB2! Whee. Good luck explaining this to mom.

-- The built in Mac applications and frameworks are frightfully poor - it's unacceptable from a company that prides itself on quality. SyncServices is still a flaming travesty, Mail.app spontaneously corrupts messages and passwords, Spotlight can die in twenty different ways, iCal is a UI disaster, Address Book has completely broken sync options... the list goes on and on and on. Of all of these, I think Mail is the absolute worst. Three total rewrites and it's still neurotic on a good day.

-- iPhoto is goddamn slow. No matter what, no matter where, no matter when.

iOS is an order of magnitude more usable for two orders of magnitude more people with an order of magnitude fewer issues and two orders of magnitude fewer things to go wrong that makes an order of magnitude more money for them. So I think that's where he Lion's share (haha) of Apple's QA is spent. Sadly, I fear OS X will never receive that same level of care.

eckyptang 3 days ago  replies      
I'd agree. This is the sort of stuff that lead to me dumping my MacBook in 2009.

I found that most of OS X worked pretty well and the UI looked good, but when it came down to actually being consistent and productive, it fell over pretty quickly. There were a lot of nuances and rather basic problems which got in the way of literally everything I did from my iPod not playing certain mp3s (very frustrating!) to import and export problems in iWork, automator deadlocking, iCal losing data, Mail sending emtpy messages.

I had some hardware problems as well (not charging and cable fraying after about a month) and while they dealt with them instantly, they shouldn't have occured.

Not a great experience. I've switched to Lenovo and Windows and everything pretty much just works.

ghshephard 3 days ago  replies      
I've read the article front to back twice. Carefully - and I'm still not 100% certain whether it's a troll, or for real.

The interesting thing is, many of this persons problems come from Apple trying to support multiple platforms, instead of locking the person into a single unified environment.

Others (like iPhoto starting to suck after 10,000 pictures) were an issue in the first couple releases - but it's not uncommon for people to have north of 100,000 photos, and get reasonable performance in recent releases.

The difficulty hitting the search magnifying glass was interesting - I wasn't even aware that magnifying glass existed. You normally just scroll to the top - now I can do it faster. But - it makes sense - what's just one above the letter "A" - the search icon.

All in all - I'm believing it's an article whose genesis was a user who got hit by an edgecase/bug on their iPhone, and then turned it into a generic rant about all things Apple.

But the problems this person are having do seem to make it clear to me why, if anything, the OS X platform / iPhone are too flexible. There are lots (lots!) of users out there who would trade some of that flexibility for more predictable performance/ease of use.

And thus, Sandboxing.

zaptheimpaler 3 days ago 0 replies      
Absolutely. Apple always has, and always will cater to extremely simplistic use cases. Apple products are a lot like a conspicuously clean room - dont look around too much and you'll be fine, but the second you open that bulging cupboard, all the shit piled in there comes crashing down on you.

I still think that Mac OS (not necessarily iOS) is much much more reliable and has a better UI than Windows, but this brings to light an important point. Apple's software tends to have a lot of nasty little edge cases that you run into (and not as a power user either). Its also unfair to marginalize the view point as a minority (for example, until recently, you couldn't even properly set up google calendar to work with multiple calendars on iOS. the issue about a 19 GB other is definitely not an uncommon occurrence either). Further, its not functionality being sacrificed for aesthetics. It's aesthetics being prioritized over functionality consistently leading to bugs which we have to put up with for years.

DHowett 3 days ago 4 replies      
"I restored my phone" => "I lost all my apps and data": Did you not back it up? Did you not restore that backup? iTunes warns you that it will erase your phone and reset it to factory settings.

"I can't hit the tiny search button": Have you tried scrolling to the top of the list? The index bar's magnifying class is a mnemonic identifying that "the search is at the top of the list." When you scroll up there, in fact, it's shown at the top of the list.

You can disable keyboards you don't want. You can disable any keyboard you want save for the one tied to your phone's language. Why is Kanji even enabled if you don't want it there? Keyboards do not just turn themselves on (except when the phone's language has changed, but we do not see herein a rant about the phone suddenly displaying everything in Japanese.)

The other concerns outlined are honestly valid, these simply stuck out to me as being more than a little absurd. It wouldn't be a rant if it didn't involve every problem, no matter how insignificant, of which you could possibly think (and that's not necessarily a bad thing.)

PaulHoule 3 days ago 2 replies      
I've slowly fallen out of love with MacOS X. The final straw was when I installed Mountain Lion and a number of highly annoying things started to happen. (For instance, on reboot it would try to restart the game which switched the video mode to something my HDTV won't read)

Since then I've been booting it into Windows 7, and honestly I think Windows 7 has a better GUI than Mac OS. I'll grant that bash is better than CMD.EXE. In terms of bulls--t per mile on the desktop, I think Windows today does better than anything else, and it gets much better with Win8.

There's really a pervasive attitude in Mac software that I don't like. When I first used iMovie it took me a long time to figure out how to turn off the "Ken Burns Effect", which automatically applies zooms and pans to photos you add to a video. I'll grant it's a nice feature to have, but I feel that my creativity is disrespected when the default is turn on all the gimmicks.

chalst 3 days ago 1 reply      
Case in point: my last purchase of Apple hardware was a Mac Mini in December 2010. Nice installation, I like Time Machine. Max OS X Server is obviously a broken product, but there is a BSD-like OS underneath so no problem.

Two weeks later internet connection dies. After spending huge amounts of time investigating all kinds of things that seem that they might be relevant, I use the Time Machine "revert OS to a previous state" option and it works again. I spend more time on support forums, &c, and find out more about how to diagnose problems with the wireless, in case it happens again, which it does, 2 weeks later. With this new-found knowledge, I figure out that the firewall is blocking DHCP lease renewal, a problem easily fixed with an ipfw command. Every two weeks since then, 30 or so times, I guess, the same thing happens, and I have to fix this. I have stopped trying to understand why my installation of OSX seems to think it should periodically block DHCP lease renewal.

It's my impression that, based on my experience trying to find help, that the Mac OS user world is different to that for Linux or Windows in that the people who get known as Mac OS experts generally don't have much in the way of detailed knowledge of what the OS does at initialise (despite Singh's out-of-date documentation of that in Max OSX Internals), how to query device state, &c, but instead have cookery book knowledge of things like tricks you can do with the defaults command.

And this seems to be the way that Apple likes it. They make a polished product that you are not meant to mess with in ways they did not anticipate, with the OS exposing a limited API.

vosper 3 days ago 0 replies      
Welcome to Microsoft's world in the early/mid nineties - turns out software isn't as simple as we thought, and when you become really popular the 0.01% of turns out to be a lot of actual disaffected customers.
richardw 3 days ago 2 replies      
I think it's a case of optimization. You can either build a handles-all-situations MS-Office, or you can optimize for an 80/20. When your feature set grows out of the 80/20 you run into issues.

For me, a perfect example is locking/unlocking the pivot on the iPhone by double-clicking the home button, sliding the bottom bar rightwards, clicking an icon with a turny-lock on it. That's total madness, but I understand how it got there. When I finally discovered that I mailed all my iPhone-owning friends, none who knew the trick.

Similarly, killing apps that remain in memory. Double-click home, hold down one of the icons until all the in-memory apps show a (-), then delete each of them. Granny will never get that. I'd personally like a settings page that just lets me set a default on/off for in-memory for each app so I don't have to keep cleaning up apps that want to use GPS and memory.

So, rather than having 10 buttons on your iPhone you now have one button and have to use morse-code to tell the thing what you want. Rather than an ugly screen menu, you have to use Google to figure out how to take a screenshot or un-lock the swivel.

When all you have is a home-button, everything looks like a nail. Or something.

I've made similar optimizations/(later possible "mistakes") myself. I tend to put a lot of effort into few features to do exactly what's required, but that always has to be balanced with possible future feature expectations. It's possible to paint myself into a corner with that, so I often think "is this app meant to be 'tight' like an Apple app, or should I optimize for extensibility?"

lubujackson 3 days ago 1 reply      
It's amazing to me the level of cognitive dissonance many Apple fans have. Like the script of how easy and simple to use everything is can be so unrelated to their actual experience. If you've ever gone to the "Genius Bar" for any reason, you've wasted more time with customer service than I have in the last 10 years of using PCs. The problem is, when you have an issue of any size with Apple, there is just no way to resolve it yourself without nuking your system. I'm sure there are 1000 reasons why I'm supposedly wrong or trolling or whatever, but that's MY experience with Apple, minus what Apple would have me believe.
nicholassmith 3 days ago 2 replies      
I've been a Mac user for nearly a decade (and now I feel old), which isn't as long as some people but a bit longer than others and if I'm honest I have to agree with many things.

OS X has been through a couple of really big leaps really, which whilst I think were necessary they've come at a great cost in terms of usability. I'm going to pick on one Apple application for a minute, XCode.

I used XCode on Tiger, on a very late model iBook and did my final year uni project on it and it was great. It was a genuinely good, solid and stable IDE, very easy to use and very easy to navigate and work with. Then incrementally it started acquiring new functionality that was needed, then the UI changes started coming in, then more functionality, then more UI and also in a cycle it kept amassing additional cruft. It's now a lot more difficult to use, a lot more overbearing.

This is kind of where the entire platform is starting to shift, Apple has been forced to jump the platform ahead but it's trying too many clever things and adding more and more functionality at the expense of usability. I still think it's one of the nicer operating systems and I'm not going to be switching anytime soon, but it's definitely not as gloriously user friendly as it used to be. In my opinion, different strokes for different folks after all.

bede 3 days ago 3 replies      
Does anyone else feel that OS X has gone downhill since Snow Leopard?

I can sympathise with much if not all of what this guy is saying. My Aunt recently bought a new Mac, not really knowing how to use OS X. I'm pretty familiar with most versions of OS X, but found myself struggling to justify to her the usefulness of quite a lot of the UI mechanics of the OS. What annoyed me the most was that the parts of the OS she found most confusing seemed almost universally to have been introduced since 10.6.

The 10.7+ habit of remembering open windows seemed to flummox my Aunt and continues to irritate me on a daily basis. "But I closed that window, why has it come back?"

Take Mission Control. Exposé was incredibly simple conceptually and worked very well for most people. I don't hate Mission Control, but explaining its workings to my Aunt was somewhat difficult, and I'm still not convinced that it's better than Exposé.

I feel like a lot of the simplicity that originally attracted me to OS X has been convoluted recently. And don't get me started on stability, performance and skeuomorphism...

pooriaazimi 3 days ago 0 replies      
> Have you ever done a search in your iPhone contacts? You need the fingers of a poorly fed six-year-old to activate that search function. No, really, I must waste four or five minutes a day trying to make that damn thing work.

> Seriously, how can an adult finger ever touch that little search icon without either hitting the “A” or the “+”????

You're not supposed to touch the minuscule magnifying button; you're supposed to drag the content down to display the search button. This is standard in iOS (almost all system apps do this, and thanks to the "rubber banding" effect it must be pretty damn easy to discover.

But I think the fact that the OP hasn't discovered such a basic thing proves his point that maybe apple products aren't so easy to use anymore! (Though I personally disagree wholeheartedly. It's anecdotal so I don't get into that)

Derbasti 3 days ago 1 reply      
I am still using OSX, and modestly enjoying it. But I feel the same way the author does. (Here is my list of complaints: http://bastibe.de/how-apple-is-failing-me.html )

Still, I find that OSX is a fine environment to run Unix software. Most of my computer interaction these days revolves around Emacs, a terminal and a web browser. Which is fine. It is a nice system. But really, I used to feel that OSX had a certain elegance to it that other OSes lacked. And that feeling is fading. Thus, I doubt that my next computer will come with an Apple logo. And incidentally, neither will my next smartphone or tablet.


smoyer 3 days ago 0 replies      
One of the comments says "I have been developing my own theory that Apple products are the technological equivalent to junk food, psychologically fattening an already physically obese populace."

If you have a completely bullet-proof OS and your applications are solid, locking down the system should ultimately make it easier for the user. As soon as there are even minor flaws, locking the system down is going to keep the user from helping themselves.

I don't think this phenomena only applies to Apple products, there are similar issues with Android phones and even those of us creating web applications can create systems that frustrate our users. If you're putting a wall between a user and their data/assets, you could be next.

rickmb 3 days ago 0 replies      
Even though I'm a big Apple fanboy, I have to admit I avoid using Apple's desktop applications. The one exception is Mail.app, but even there I'm always eagerly looking for any possible alternative. iPhoto, Addressbook, iCal, none of those have ever appealed to me, and I've always use (mostly web-based) alternatives. And enough has already been said over the years over that piece of bloatware called iTunes.

So as far as I'm concerned, this isn't something new. IMO, with some rare exceptions, Apple has never been very good at application software.

padobson 3 days ago 1 reply      
Recent Story:

My 8 year old has an iPad that was setup by her and her grandmother. She recently had it replaced at the Apple Store because of a busted WIFI antenna.

A few days ago, she wanted to buy the 2.99 version of Draw Something. I happened to have a iTunes gift card worth 15 dollars. I opened her iTunes account on the iPad, punched in the gift card code, and the money was added to her account without ceremony.

So she goes to buy Draw Something,and 15 minutes later I hear "It's not working." I figure she must have broken something, so I take the iPad from her and click the 2.99 Draw Something button to download the app.

This is where the fun begins.

The App store asks for the username and password. We entered both. Then it tells us that the iTunes account has not been activated on the iPad, so we need to answer two security questions - I look at my daughter and my wife and only get blank expressions. I call my mother-in-law and she doesn't know either. So the next step is to reset the password by sending an email to a failsafe account - some AOL email address that nobody can access either.

Normally, at this point, I would just say we screwed up and start a new iTunes account - but why in the hell did they let us put the 15 dollar gift card on the account if they weren't going to let us do anything until the account was activated?

Epic fail.

shinratdr 2 days ago 0 replies      
> Have you ever done a search in your iPhone contacts? You need the fingers of a poorly fed six-year-old to activate that search function. No, really, I must waste four or five minutes a day trying to make that damn thing work.

> Seriously, how can an adult finger ever touch that little search icon without either hitting the “A” or the “+”????

Why exactly do I have a hard time believing someone this stupid would be as diligent as he claims to be in attempting to solve his issues?

I'm supposed to simultaneously believe that he is competent enough to understand and solve a corruption issue, yet he can't figure out the single most discoverable gesture on any phone, "swipe down"?

$20 says he restored his iPhone from the corrupted backup and then rushed off to write an article on the experience instead of performing the due diligence he claims he already has.

Bullshit. Nobody has this kind of laundry list of whining complaints unless their actual motivation to solve problems is almost zero. He sounds like one of those people that put all Apple products on this ridiculous pedestal where they are shit if they cause you any frustration or confusion ever.

Sorry, it's not magic. It's just a really nice computer. Expect some problems and issues, and expect to spend some time troubleshooting them. Just like any other machine on the planet.

If your first thought when seeing a 4x4 icon on a high res 3.5 inch touchscreen is "Stupid Apple, how am I supposed to hit that!?" then you are looking for things to complain about instead of actively trying to improve your experience with the phone by, oh I don't know... learning things?

Apple products are getting more complex and the older classics are getting bloated. There is an interesting discussion to be had on the topic. This isn't it. This couldn't be further from it. This article is basically just idiotic whining.

bkorte 3 days ago 2 replies      
So, your device hit an edge case bug. Why aren't you talking to Apple? They'll have a fix for it, get you to bring it in or send it in.

Worst case scenario your edge case cost you some data loss.

That certainly doesn't mean their products are no longer easy to use.

sohamsankaran 3 days ago 0 replies      
Several of the article's points really resonate, specifically the ones concerning iPhoto, the Internationalization 'feature' of iOS and iChat/iMessage.
It does seem, to me, that Apple has begun to sacrifice usability at the altar of aesthetics, or worse, are unable to engineer stable and resilient applications.
perfunctory 3 days ago 3 replies      
I really wonder why don't we see any new PC platforms coming to the market. Where are all the startups taking on Microsoft and Apple?

And by new I don't mean Linux.

angelortega 3 days ago 0 replies      
That's another myth. Apple products had never been easy to use. iTunes is heavy and cumbersome and play lists never work as expected. Wheel iPods had erratic behaviour and its random/shuffling were crap.

And please don't start talking about XCode and development in general.

Things have worsen these times. "Acceptably understandable" is not the same as "easy".

ajanuary 3 days ago 0 replies      
The search actually has the largest touch area of all the letters, because it extends to the top of the pane.

There are a lot of ways to get there:
* Tap the status bar, which takes you to the to of most scrollable areas.
* Be conservative, if you accidentally hit A, scroll up.
* Hold your finger down on the letters to activate scrubbing mode, then slide your finger to the top.

I'm not saying they're all perfect usability wise, but picking out search as a small touch target seems a little odd to me. But then I've probably spent a lot longer than most obsessing over every pixel and touch target of the UI.

To me it seems like a trade off. Is searching contacts important enough to have a big button for? Where would you put it without completely overhauling the iOS UI? Is it of more or equal importance than any of the current elements? Admittedly annecdotal, but I see far more people scrubbing to the first letter of the contact and flicking through the list, because typing takes time (though a 'hard to find/activate' search feature might contribute to that). It seems to me putting it where it is allows for a good cross-platform solution to an unobtrusive search function.

se85 3 days ago 0 replies      
I understand the authors experiences and how that may have tarnished his thoughts on Apple products.

Under normal operating conditions however which applies to the majority of iOS users out there, iOS is just as easy to use as it was when it first came out, it really hasn't changed that much from a UX point of view at all.

In regards to his gripes with OSX, well.... It is silly to expect any OS to be magical, even an Apple one. From a UX point of view it is better than every other OS, but from a package management point of view, Debian/Ubuntu is far superior to OSX and from a hardware support point of view, Windows beats both of them.

It seems the author wants the perfect OS, where problems never happen, unfortunately it doesn't exist yet, and it may never exist!

In the meantime, if you specifically want "ease of use", regardless of the authors troubles, your best bet for the meantime is the Apple ecosystem.

Joeri 3 days ago 0 replies      
From what I've noticed there are many apple issues experienced by a smallish set of users, which in aggregate affect many people, but not all with the same issues.

For me the list is: (1) early deterioration of plastic in macbook, (2) wifi connectivity issues on leopard, (3) wifi connectivity issues on snow leopard, (4) unexplained time machine failures, (5) major performance issues on lion. And that's just for my macs. My ipad suffered from unexplained app crashes every ten minutes, which were due to memory shortage problems that i could only solve by disabling mail sync (i use purely gmail in the browser now).

On the other side, with windows and android, i've had roughly the same amount of problems. In my experience, apple's stuff breaks as often, but has a different "feel".

enraged_camel 3 days ago 1 reply      
I was visiting home over summer, and my 85 year-old grandmother got a chance to use my iPad. I basically handed the device to her, went to the restroom, came back, and found her editing some photos of my sister she had just taken. She described the red-eye reduction feature as "magic."

Seriously, if my 85 year-old grandma can figure this stuff out, then the author is an outlier. Apple devices are ridiculously easy to use.

edit: gotta love it when people downvote without giving a reason. Must have hit a soft spot.

forgottenpaswrd 3 days ago 0 replies      
This is like saying that my car is not easy to use as a bus for carrying 50 people. (In Africa you see cars with 15 people onboard).

If you have 10.000 photos and thousands of contacts you are not a normal user anymore, you are a pro and you need pro tools. I have tens of times more big photos in my computers, and huge videos but I don't use Iphoto, this would be so non sense, Iphoto would make a local copy of everything it touches, like iTunes.

Apple is selling this thing called iPads like hotcakes because the intended audience is normal people, people that can't use a pc, like my father, who are much much more than those that can.

inthewoods 3 days ago 0 replies      
I find iOS and the iPhone/iPad/iTunes interaction particularly frustrating - a case where it really should just work.

Some of my issues:
- Restoring from a backup does not, for some reason, does not consistently restore the folder structure - thus I spend an hour or two recreating the structure. Waste of time.
- iCloud syncs a lot of things - but for some reason does not allow me to sync apps. There should be an easy way to do this such that if I buy an app on my iPhone (and it is compatible with my iPad) it should be synced.
- Moving purchased music from one phone to another. Maybe somebody can enlighten me, but moving my iTunes purchased music from one device to another, as far as can tell, is still a stupid, manual process.
- In general, iTunes should be in the cloud - when I buy a new device, I should be able to enter my account information and then have it automatically pull down all my stuff - and offer me choices for what I want to pull. To me this seems so basic.

This is stuff that is all generated by the way my wife interacts with these technologies - and she gets very frustrated by the hoops that have to be jumped through to make it all work.

Next week, I'm likely buying my wife an iPhone 4S (AT&T or Verizon - suggestions from anyone in the Boston area?) I'm not looking forward to getting her setup - I anticipate pain.

Tichy 3 days ago 0 replies      
"you'll need to restore your iPhone to reclaim the space occupied by Other."

I can't get the picture out of my mind, of some mysterious entity creeping up on our iPhones like cancer. Soon they will all sync up with each other and then initiate the battle for world domination.

Come to think about it, the iPhones of the world might make for a pretty good attack vector for alien aggressors. A lot of earth's elite is bound to carry one around. If you can disable all of them at once, the rest of the battle might a walk in the garden.

pnathan 3 days ago 0 replies      
I don't have his problems. I have other problems, not as bad (I've started to wonder about that Other space on the iPhone too...). I think this could be all summed up as: Desktop OS's ain't tablet OSs.

I don't like OSX Mountain Lion. I anticipate that 10.9 will be extra smartphoney, and I won't be upgrading. I will, however, be looking at well-designed Linux laptop solutions for my XFCE/Enlightenment needs.

unabridged 3 days ago 0 replies      
iOS has never been about easy to use, its been about hard to fuck up. I find it hard to believe that so many people who use windows but own an iphone/ipad are afraid of a filesystem. You show them a commercial where you plug an android phone/tablet in, then you are instantly dragging and dropping files just like a thumb drive without having to sync, then they are opening up an excel file using preinstalled open office (or for commericals airing on the internet maybe a video file being played using preinstalled vlc). Say the words "out of the box", no extra cost for these apps. If HTC and/or Samsung threw a hanful of programmers at porting open source apps to android and started this kind of advertising, iOS would be on the way out quickly.
dr_ 3 days ago 0 replies      
Just as a note to anyone with the same problem, I had difficulty renting a movie recently on my iPad because I was told I have no storage space available. This was unusual because I have hardly any photos on my iPad and almost no music. I later realized that movies that you rent, even after they expire, remain on your device and take up storage until you actually delete them.
sgdesign 3 days ago 0 replies      
To paraphrase Winston Churchill, Apple's products are the hardest to use, except for all the other product out there...
headShrinker 3 days ago 0 replies      
Intuitive design is a myth. This idea that a company could build something that is just simply better for everyone is a fallacy.

Apple products, considering their competition, are really good and believe it or not, cost effective.

However, some people do things that certain systems don't like. This isn't the users fault. They were not considered in the design of the software. Over 1,000 contacts; sorry. iWork and want to export your workflow to other suite; sorry. Music collection and you want to tag and organize in a way that iTunes wasn't designed to do; sorry.

I have been professionally troubleshooting Mac and PC computers for 13 years, and I have seen it all. One of my clients had 10,000 messages... in his inbox. Mac Mail would launch and freeze. Beach ball.

This idea that you don't have to do maintenance to a computer was started by Apple, and it's a fallacy too.

Apple has done a better job of assembling a set of well rounded tools for the average man, go out side of average and you are on your own. But then you are were you would be on any other platform. iPhoto not doing it anymore? Picasa. iTunes not doing it? Winamp or Songbird for mac. Mac Mail not doing it? thunderbird. Safari? Chrome.

I used to have an iPod 60GB and it would about every 4 month get harddrive corruption, then I would have wipe and transfer 60GB via USB. It would take hours. I haven't corrupted my iPhone yet.

I don't rock the boat, I try to stay average. I don't change default settings unless its to turn off face recognition or auto-copy. That being said, I have GBs of email going back 6 years (another 6y archived), a 12,000 song 70GB library, and 60GB Aperture library. While I have had my problems, I have never had catastrophic loss, and it works.

I am at a loss with all of this ragging. I know there are problem with programs, but that is the essence of programs, no one size fits all.

Hari_Seldon 3 days ago 0 replies      
Apple products are as good and better than they have always been, the problem is that users now have this entitled attitude and nothing is good enough for them. Witness the tech press' reaction to the iPhone 5, they're bored because it doesn't look new, irrespective of it's actual merits. it's very tedious and a shame to see this attitude here on HN, where the discussion threads were usually more considered and the level of debate generally higher.
willholloway 3 days ago 1 reply      
What Apple really gets right is it's hardware. The Macbook Air is in my opinion the best laptop on the market. The touch pad really shines. Apple gets the hardware support perfect.

That's where its greatness ends for me. OS X is just not as good for developers as Debian sid.

Debian wins for me hands down for three simple reasons:

1. Package management. With apt I can install any open source tool with one command, and update my entire system with another. Homebrew is a good effort, but just isn't nearly as good.

2. With Debian I can install any window manager I like without hack jobs. I like ratpoison because its simple and gets out of my way.

3. As a python hacker I like to develop on a system that is nearly identical to the server I deploy my code on. That is why I work in Debian.

I need OS X to run the hardware, but that is all. I do everything besides watch Netflix inside a virtualbox Debian sid install.

costacoast 3 days ago 0 replies      
I think he may be a bit more alarmist than I can agree with but I will definitely attest to the fact that Apple is having some serious UX growing pains as they try to accomodate the largest and most international user base they have had to date.

Possibly the best one-liner comes from one of the comments: "I have been developing my own theory that Apple products are the technological equivalent to junk food, psychologically fattening an already physically obese populace. Like the Sun newspaper their products are encouraging us to be lazy and dumb down our intellectual capacities."

dev1n 3 days ago 0 replies      
"This stuff is too complicated. There has to be a better way."

and to the comment on the blog saying how Apple is our "junk food."

Raspberry Pi might be the solution. It's literally a blank slate. Users, with some tech knowledge, have the ability to update and move stuff around without being dragged into an iCloud sort of mess. It's as clear as it gets IMO.

tacogordito 3 days ago 0 replies      
I was really disappointed when Apple started making their IPod's into touch screens. When I'm going for a run or walking around with my ipod in my pocket, theres nothing i despise more than pulling out my ipod, having to tap the specific spots of the screen 3 times just so i can skip to the next song. The click wheel used to be very easy to use. I could skip songs without taking it out of my pocket.
npguy 3 days ago 0 replies      
I think the issue is that user expectations have gone way up, and that results in disappointments that get amplified when coupled with frustrations.
randv 3 days ago 0 replies      
finding the search on contacts has never been easy on iphone!
Spanner: Google's Globally-Distributed Database research.google.com
238 points by SriniK  2 days ago   54 comments top 11
ChuckMcM 2 days ago 2 replies      
This was an interesting project at Google, it started when I was there, and it was breaking things when I left. It is too bad that Ken Thompson didn't get at least acknowledged for his role in making it happen.

I don't think it will be as influential as the original GFS was but its an important piece of work that folks should study.

linuxhansl 2 days ago 1 reply      
I work on HBase (the Apache version of BigTable). It makes me sad to see how far ahead Google is compared to the rest of the world. :)

The notion of uncertain time is ingenious.

lsb 2 days ago 3 replies      
Interestingly, the data storage seems similar to Rich Hickey's Datomic: "data is versioned, and each version is automatically timestamped with its commit time; old versions of data are subject to configurable garbage-collection policies; and applications can read data at old timestamps."
Nitramp 1 day ago 0 replies      
I think the major contribution in this paper is how to do consistent snapshot reads in a distributed system without a common reference clock, i.e. the use of True Time.

Many databases use some sort of MVCC, but they operate on a single node or in a closely connected cluster. This paper shows how to achieve the same properties in a system spanning continents.

linuxhansl 1 day ago 0 replies      
Another observation that struck me when I read this (and after reading the percolator and megastore papers) is how there is a convergence of the "traditional" relational DB world and the "new NoSQL" world.
Relational Databases are becoming more scalable, partially with new technology, partially by shedding features in some scenarios.
And the NoSQL stores, are becoming less so (it was really about "NoSQL" anyway, but that's a different story). All of these stores have layers or features that bring closer to the traditional SQL/relational model.

Spanner appears to strike a nice middle ground.

sudhirj 1 day ago 0 replies      
This looks like the High-Replicaiton datastore which is now the default in App Engine - Paxos replication, a choice between strong and eventual consistency and tablet sharding. Interesting that they've already built it and it's available for everyone to use.
moondowner 2 days ago 0 replies      
Another research publcation from Google that's more-than-worth reading.

These just pile up, I must find time and get my hands on them...

hellooo 2 days ago 1 reply      
Is spanner written in cc or java?
tete 1 day ago 0 replies      
Fun fact: Spanner means voyeur in German slang.

Anyway, looks like a very exciting project. One could come up with so many applications.

kleiba 1 day ago 1 reply      
Interestingly, "Spanner" is German for "voyeur". Coming from Google it's almost kind of ironic.
pwpwp 2 days ago 1 reply      
Transactions don't scale. They really need to use NoSQL.
WhatsApp is broken, really broken fileperms.org
236 points by espinchi  3 days ago   129 comments top 21
zachalexander 3 days ago 7 replies      
OT, but I'm intrigued by their business model.

I don't know the history, but currently, the Android app is free, and it says the use of the service is free for the first year, then will be $0.99 per year after that.

Meanwhile, the iOS app is $0.99 straight up.


(a) "Free for a year, $1/year after that" seems like an awful long time to wait for a payday, but if it works, and you get lots of free users, I bet you get more conversions in the long run than with a normal free/pro app business model.

(b) "Free in one store, paid in the other" is an interesting idea. If you can build up a large userbase of free Android users, and it's an inherently social app, your free Android users will tell their friends on iOS devices to get the app so they can communicate. They probably don't even know it's not free. It's like unintentional affiliate marketing.

(c) I realize (b) might not be an intentional choice by the developers, but a necessity due to the App Store perhaps not supporting pricing schemes like the one in (a).

lnanek2 3 days ago 0 replies      
This app has ridiculously penetration, however. I've met people who use this and no other app not out of the box before. In foreign countries it is easier to get someone to WhatsApp me than it is to get them to text my strange US number.

Sure they solved a pain that's very common, replacing expensive text messaging, but part of their success is how easy it is for users without annoying username/password hoops to step through. They should fix the security, although I don't do anything important over it anyway, but I can't say they went wrong by avoiding a classic username/password setup that might have been more secure from the start.

gsibble 3 days ago 6 replies      
I've been seriously considering creating a highly secure text messaging replacement. I'm aware of TextSecure but find it lacking (and only available on Android). I'd love to hear if you guys think it would be a worthwhile project.
koski 3 days ago 1 reply      
I'm a "open source guy". Very picky to pay of Anything.

I use the mentioned app with my Lady every day because it works so well on her iPhone too. The easy of sending photoes is just pure awesome. Never failed (during one year). It works so well I don't hesitate a second to pay a dollar of it when it asks for it.

Ps. Drunk in a bar and a regular guy next me agrees who did not agree on punch of other stuff.

ZoFreX 3 days ago 4 replies      
Yes, it's insecure by the standards we would normally apply to software. But let's be honest - this is competing against SMS, not XMPP, Skype, et al. How hard do you think it is for someone to sniff an SMS?
ollysb 3 days ago 4 replies      
I'd have thought a large majority of what's app users use it for chatting. I can't imagine they're particularly fussed about people sniffing their plans for meeting up that night. There are varying requirements for security...
fruscando 3 days ago 0 replies      
We should all start using our regular XMPP accounts now! Most of us already have one. If you have a Gmail, Fastmail, Lavabit, GMX, Ovi.com, Yandex email address, you are ready to go. All that's left to do: Install Xabber or IM+ on your smartphone! Btw, both support OTR end2end encryption!

If you also want to instant message on your laptop: The latest Thunderbird comes with XMPP support! Or give Jitsi, which supports end2end encryption, or one of the many alternatives a try! Enjoy!

GauntletWizard 3 days ago 3 replies      
How do apps like WhatsApp get popular? They offer inferior service in every way to builtins, and require that both parties have installed something. SMS is in every way better unless you don't have a texting plan, in that case, GTalk and iMessage are in every way better (And GTalk is even cross platform with several fairly simple XMPP clients on IOS). Who uses this shit?

I encountered the same thing recently with Raidcall. It's a shitty voice service that's in every way inferior to Skype, but trying to position itself as a competitor to Teamspeak (Which itself has been eclipsed on features and price by Mumble). Yet, somehow people will argue with you about it and evangelize it, without any sort of benefit comparison.

aw3c2 3 days ago 2 replies      
Sadly, normal free Jabber/XMPP does not seem to be a viable alternative. On Android, sure (though the clients are not too great at reconnecting/noticing-connection-loss/reporting-message-reception) but on iOS apparently you cannot run such things in the background. At least the situation was dire when I tried to convince some iOS friends to use XMPP instead of SMS last winter. http://monal.im/ looked most promising but turned out to crash or only work when active, I don't fully remember. Maybe it got better.
antirez 2 days ago 1 reply      
It's worse than that, in iOS devices the mac address is easy to predict. For instance my phone and my wife phone have the first four bytes the same.



So you can easily crack this by brute force without sniffing the device address at all.

morsch 3 days ago 1 reply      
No mention of this on their blog (in fact, no new posts since July). And no quick patch that pops up a box asking the user to assign a password. Since it's tied to a phone number/SIM card anyway, you could easily offer a password retrieval option via SMS.

I wonder what happens if a phone number (the login) is tied to a different IMEI (the password). This can happen when you transfer a phone number from one provider to another.

FuzzyDunlop 3 days ago 0 replies      
> "On iOS devices the password is generated from the devices WLAN MAC address"

On what planet is using this data a valid form of security? Anyone can get hold of a MAC address.

bvdbijl 3 days ago 1 reply      
I was working on a better whatsapp api than the mess that is whatsapi, do not have enough time though. It's based in wazapp which has an actual implementation of the binary packed xmpp transfer mechanism they use. Might upload it if someone's interested, it seems broken right now though
grk 3 days ago 12 replies      
So, what's the best alternative?
alpeb 3 days ago 0 replies      
Like Oscar Wilde once said, everything popular is wrong. Quality is well down in the list of things that matter to have a successful product.
denzil_correa 2 days ago 0 replies      
Just received an update on the iOS app stating "Full encryption for messages over mobile and WiFI".
rjzzleep 3 days ago 1 reply      
seriously though, why does it have to send the whole contact list EVERY time?

you close whatsapp remove the contact list permission, open it again, surprise, it won't work. -_-

pheraph 2 days ago 0 replies      
Does anybody know if the latest update changed anything on the security side?
norrs 3 days ago 1 reply      
Anyone know if deleting message history is enough to kill the history on their servers?
irfan 2 days ago 0 replies      
New version of whatsapp for iOS is there.
andrewljohnson 3 days ago 8 replies      
Did the author email the WhatsApp team to give them any chance to fix this before they splashed it across the internet for anyone to abuse? The article makes no mention of it, so I assume not.

In my opinion, the obscurity peeled off by this expose did more to endanger WhatsApp users than the bad programming. So, I can only conclude this post's main goal is page views. OP could easily warn them, and at least wait until they didn't do anything before publishing.

Facebook explains what's wrong with the mobile web w3.org
235 points by patrickaljord  2 days ago   109 comments top 27
TazeTSchnitzel 2 days ago  replies      
Personally, I think the problem is people trying to be too clever, and loading too much content at once.

Loading tons of JavaScript means that Facebook loads very slowly on my phone on mobile internet. And what is it needed for? The most the JS needs to do is make a pop-down notifications panel, and do one or two AJAX requests to post comments and "like" items. Looking at the Network panel in Chrome, I see Facebook has pulled down 700KB of JavaScript. Why? How could they possibly need that much code?

Facebook also seems to think that sending full-size images down to my phone, instead of compressed previews, isn't a problem. No wonder the GPU memory is exhausted!

weej 2 days ago 1 reply      
Developers need to treat mobile computing more like 1980/90s micro computing.

You have limited resources with numerous environmental factors that need to be accounted for and respected (ex: bandwidth, latency, CPU, GPU, memory, UI/UX, async task handling, and most importantly BATTERY LIFE).

It is a different mindset when developing for mobile that needs to account for finite resources. If you're greedy, careless, or just don't really think through and test your app appropriately it makes for a horrible user experience.

Regarding the HTML5 vs. Native Apps:

HTML5/CSS/JS and frameworks that allow you to write once and convert to native apps (ex: Phone Gap) have their place. The core take away is that without developing native apps directly you'll never get to maximize the phone's hardware and performance will suffer. UIs will be sluggish and network IO suffers from high latency (wrappers).

HTML5/CSS/Javascript frameworks like Phone Gap cannot take full advantage of the hardware and SDK features like alarms, custom hardware access/config/acceleration, background services, and (taking advantage of) the standard UI controls (transitions, buttons, look ‘n feel).

If you're focusing on content display/information consumption and your app doesn't need to rely on high performance from hardware and the UI then HTML5 is most likely a good fit. If performance, high availability/background service, native look and feel and the such is critical to an app then native is a better route.

My 2 cents.

jlarocco 2 days ago 4 replies      
Almost all of their problems are due to them expecting mobile phones to behave exactly like desktop computers. And then they're unwilling to change anything on their side when they run into problems.

For example: "It's typically a problem on the newsfeed and on Timeline which use infinite scrolling (content is prefetched as the user scrolls down the app and appended) and end up containing large amounts of content (both text AND images). "

Well then don't use infinite scrolling when sending data to a phone and have a "next page" link. Problem solved. It's an easy solution with negligible end user consequences.

And there's a lot of whining about running out of memory because of "too much content". Then send less content. It's impossible for a person to see very much content at once on a phone, anyway, because the screen is less than 3x5 inches. You don't need to send a person's entire "timeline" just so they can see 3 entries at once.

Zenst 2 days ago 0 replies      
Hmmm what is that old saying, a good workman does not blame his tools! Mobiles today have more processing power than the old C64, Amiga and atari ST, STe, TT. probably combined.

If they are having issues with memory and that appears to be the crux then they need to redesign how there doing things. Just becasue you can chuck a blob of content at a desktop webbrowser and chew memory like it is going out of fasion does not mean you can be as lazy with your design when it comes to thinner clients like mobiles.

The best optimisations come from a good design and whilst there desktop model of doing things may work for them it does not mean the same approach can be taken with thinner clients that will notice you chucking a ton of content initialy.

The other thing is that all that Facebook are trying to do has been done in one form or another by others and to read about facebook in effect complaining how a entire platform is broken is not only wrong but concerning as there are people who will take what facebook say as gospil and it is far from it that this could end up being distorted if the tabloid news level types get hold of it.

No platform is perfect and there will always be area's you want to change but in this case it is facebook's approach that needs to change. I also have to question if it is facebook beyond some forum email post as it is not on there main site (not that I'd ever know).

Out of interest G+ works fine on my low memory android device, though the previous version was better IMHO for my device as the new version does cater for larger screens nd tablet factors more so I feel, but it still works fine.

I'll also confess to not ever touching a facebook application so when I read this I do wonder how bad they are and wonder how they compare in usage performance wise and would love to see a article comparing network usage and phone resource usage for typical actions like uploading a picture for a post or replying to a post with a picture in it, those type of things.

robomartin 2 days ago 1 reply      
I think a point is being lost here. It's easy to try to slice and dice FB and their app. The post is about what is needed to make mobile web apps better FOR EVERYONE. Don't discuss what FB can our could have done differently. It is obvious that they've looked at this long and hard. Their post is very valuable in bringing to the surface issues that affect the entire ecosystem, not just one app.
augustl 2 days ago 2 replies      
Another thing I really miss for single page web apps (mobile or not) is iOS style memory warings. It's an event that is emitted when you reach memory limits, and in it you should clear out everything that the user doesn't currently see (read: clear out as much as possible). This allows you to keep DOM subtrees in memory when you navigate the app, in order to make navigating back to previously seen sections of your app very snappy. At the same time you don't have to worry about infinite memory growth as the cached in memory DOM subtress will get nuked when the memory warning emits.
k2xl 2 days ago 1 reply      
"- Simple way to implement pull to refresh (via dedicated off-bound-scroll
events?). "

At first when I read this suggestion I thought it didn't seem like something to include. This would force every smart phone to support this type of scrolling wouldn't it?

I think there's an issue with many developers just doing too much on mobile web without realizing the limitations of the device they're using.

People today are used to developing on systems where they don't have to think about memory, hard drive space, or performance. But when you get to mobile web you have to think about these things AND more (screen resolutions, landscape vs portrait etc).

The problem with many suggestions for w3c is that they are often tied to what specific companies (ahem Apple) are integrating (or not).

In terms of the Facebook app, I (along with many others) have just been flabbergasted that they've not been able to make their app load fast. Tobie's post gives some great insight, but I don't think it's impossible to create a smooth, well run webview - especially when you have the resources Facebook has.

coliveira 2 days ago 1 reply      
This shows clearly that Facebook doesn't get mobile development. They are trying to shift the blame for poor application performance from themselves to the makers of mobile browsers. The point is that users don't care where the blame is, they just see poor performance. The sensible thing for them to do is to recognize that user experience is the most important thing and use the best vehicle to solve that problem, be it a very thin html5 client or a fully native app.
erichocean 2 days ago 1 reply      
Blossom[1] works around the scrolling issues by drawing everything in the UI to canvas elements, including "infinite" lists of the kind Facebook and Twitter favor.

Because the canvas element in lists are a fixed size, we never, ever hit against resource limits and it always stays snappy.

That's allowed us to use native scrolling (plus an async JavaScript helper) that works correctly on all supported mobile platforms (Safari, Chrome, Windows 8).

[1] https://github.com/erichocean/blossom

tmanderson 2 days ago 1 reply      
Is it just me, or did a lot of this come off as "why can't everything be done for me?"

The fact is, performance can never be ubiquitous, because there's always going to be many manufacturers with many different devices -- that while all implementing the same standards, handle things differently.

This problem is alleviated by the age-old web term "graceful degradation," and when done right, can be exactly that -- graceful. That's too hard though, right?

Developing front-end for the web is hard, and developing for the front-end of the web WELL is much harder. I always hated Facebook's app because it wreaked of shoddiness and flaunted it's lack of thoughtful development.

I can't help but feel that they went and hired a bunch of brilliant programmers that had zero experience developing for the web. Developing a front-end web app can be (and often is) a horrifying thing to any developer, because the environment is so volatile (and really, unlike any other development environment).

I'm extremely disappointed in Facebook because had they done things right, it could have been an awesome thing. Instead, they released a shitty hybrid app that was doing everything wrong, and then gave up and wrote this whiny and semi-ridiculous list of what they want because "things are just too darn hard."

stagas 10 hours ago 0 replies      
It isn't a matter of how much JavaScript or how many LOC you have. It's a matter of design. If they were designing something with a focus on excellent performance (which is what they really needed) instead of feature XYZ (which they thought they needed) then it would be an app with excellent performance. Don't blame the tools for bad design choices.
rodh257 1 day ago 0 replies      
Lots of people are quick to jump on Facebook and claim that their well paid developers are just poor at their job. What I'd like to see is a list of html5 mobile apps that are as interactive as Facebook is, so that we can see the best practices in action. I'm struggling to come up with many that aren't simple blog/news sites. Is anyone able to point me towards some good ones?
clebio 2 days ago 0 replies      
The part about needing better development support, debugging tools and such, for mobile browsers seems valid. I'm not familiar enough with that to really say, but I've felt similar things from my limited use of Chrome developer tools (in comparison to native linux options, or OS X's Instruments, etc.).

Having worked in telecom engineering for the past several years, I do think the network constraints are real. There are already several comments on this thread regarding limited resources, though more around the mobile device capabilities compared to desktops.

From a network perspective, for the mobile carriers, though, high-bandwidth streaming content and chatty apps are a big deal. The 'data explosion' (that we're just approaching the initial inflection point now) is essentially why most carriers are metered plans. Users want lots of content and the options for high-def streaming are only going to grow. Chatty, social, location-based services (aka SoLoMo) cause a lot of connections (since cellular radios kill battery, connections are torn down quickly).

The resource constraints now aren't the same as they were in the days of campus mainframes, or even the now waning days of fat-client PC desktops and laptops. But low-powered mobiles, running thin client apps over mobile networks, clearly have several constrained dimensions. Some of those won't change quickly. And there's some data to show that the slice of users whose _only_ internet access is over their mobile device is growing.

photon137 2 days ago 0 replies      
It's not as if the hardware isn't capable of doing awesome stuff (case in point: the idTech 5 demo from John Carmack [1]) - the software using it also has to be well engineered.

Good engineering for managing hardware resources at the browser level is still lacking (at this moment, Chrome's various processes are eating up ~700MB of memory on my system - disgraceful!) - and that's what bites Facebook the most.

[1]: http://www.youtube.com/watch?v=uofg7m2rtQ4

sabret00the 2 days ago 2 replies      
And there we have it. What I find super interesting is despite this setback for Facebook and the failure of ChromeOS, Mozilla will still push on with Firefox OS (B2G) when the resources are much needed elsewhere. Oh well...
realrocker 2 days ago 1 reply      
The chimera of using simple JS/CSS/HTML to develop mobile apps has failed. HTML5 and WebOS put up a good fight but they are obviously not enough. Maybe the direction to go from here would be to make native mobile app development simpler for the Web guys and not the other way around. Maybe something like the awesome Kivy Project which helps you develop solid opengl apps in python for multiple platforms: http://kivy.org/#home. I would love to see Facebook put their resources into something similar to this.
beefman 2 days ago 1 reply      
Can anyone explain why their mobile site works so much better than their HTML5 app did?
dfox 2 days ago 1 reply      
I somehow fail to understand what does device-UI specific concerns like "pull to refresh" and "momentum scrolling" (both of which are meaningful only for touch-centric UI) have to do with mobile Web as a platform (and specifically standardized HTML5/JS/whatever APIs).
lttlrck 1 day ago 1 reply      
The admission that they couldn't figure out why their app was crashing is a pretty big indictment for a company in this space.... if they lacks tools, why didn't they write them and give them back to the community?

Or is it the case that they didn't even know what tools they lacked? The post certainly smells that way.

erichocean 2 days ago 2 replies      
### What's missing? ###

Mainly, dev tools on the device and/or easily accessible remotely.

Things we'd want to know more about as we develop:

#### Down memory lane ####

- Heap size,
- Object count,
- GC cycles,
- GPU buffer size,
- resource limits.

Arene't people just loading their mobile site in Chrome desktop, and profiling there? I guess I don't understand this one (although WebKit does have a remote debugging protocol now). If the site has bad numbers on the desktop, they're going to still be bad in other browsers (it's the same page/code after all).

Anyway, although I'm in hearty agreement that I'd like all of the things mentioned to improve, I'm not in agreement that it would have prevented me from making Facebook's HTML5 mobile site nice and zippy. :)

majani 2 days ago 0 replies      
I believe the main reason Facebook has been negligent on mobile is because of Opera Mini. It has handed Facebook a huge lifeline in mobile. Its been the only bearable way to use the mobile site since Facebook's inception, and chances are its the most common way of access.
devs1010 2 days ago 0 replies      
They just need to stop trying to push the limits of mobile devices and aim for a middle ground, not everyone has a top of the line smart phone and these sorts of issues are to be expected. I see plenty of opportunity in creating lightweight browser based web apps using an all javascript solution (node js backend, backbone or something front-end) and keeping things lighweight
mrwilliamchang 2 days ago 1 reply      
Given this list of concerns, I believe that Facebook made the right decision in switching from HTML5 to native. The downside for them is now they have to write native code to support both Android and iOS.
vital_sol 2 days ago 1 reply      
Infinite scrolling is what I hate most about Facebook UI.
lopatin 1 day ago 0 replies      
HN question: Why is post on the front page for days now?
obilgic 2 days ago 0 replies      
nohorse 2 days ago 0 replies      
Native apps allow for localizing of resources and using the full screen. Alternatives like PhoneGap allow for native HTML5/JS development. Titanium re-compiles HTML/JS to native, but you still need all the proper SDKs. Until the mobile vendors embrace web-as-native we'll never get native response out of web tools. WebOS did, but died, MS supports native HTML/JS for Windows 8 but not for phone. FireFox OS is hopeful but fringe for now.
CoffeeScript: less typing, bad readability ceronman.com
233 points by dcu  8 hours ago   160 comments top 39
jashkenas 7 hours ago 1 reply      
Most of the bad code examples in this post are taken from the CoffeeScript compiler itself. For that I have to say "mea culpa". There's a lot of overly clever and dense bits that have accrued in the compiler over time -- sometimes due to the tangly nature of the codebase, but also sometimes because we tend to use the self-hosted compiler as a test bed for edge cases of combining different language features together.

If you're looking for more regular style, this style guide is a better place to start:


crazygringo 6 hours ago 4 replies      
This is a fantastic post -- I feel like I've run into all these crazy "gotchas" over the past year, and more.

And the worst part of it is, nearly all the confusing/ambiguous/different compilation examples given rely on the undocumented rules CoffeeScript uses for parsing. It's amazing that, still, CoffeeScript's entire documentation is basically a "getting started" guide, and there is simply no reference documentation.

ilaksh 6 hours ago 7 replies      
Just because you CAN do something in CoffeeScript doesn't mean you SHOULD, or should ALL of the time. Just like in JavaScript where, if you want, you can write all of your code on one line, but you shouldn't.

    action true
option1: 1
option2: 2

If you really use CoffeeScript regularly, that isn't confusing. I don't usually write it that way though. I would do this:

  options =
a: 1
b: 2
action true, options

doSomething () -> 'hello' just isn't valid code.

Usually I would write

    doSomething ->
return 'hello'

or maybe

    doSomething -> 'hello'

If you write it the way he did, the parenthesis are confusing.

For this one:

    action = (token, i) ->
@tokens.splice i, 0, @generate 'CALL_END', ')', token[2]

-- first of all, you always want to indent two spaces. But the main problem with that is in CoffeeScript you do need to use parenthesis after the first call because your code will be unreadable otherwise. You just can't write it the way he did.

    moveTo 10,

doSomething 1,

doSomething 1,

Those are ridiculous examples. No one does that. You just write moveTo 10, 20, 10

    doSomething (->
'hello'), 1

Indentation is significant in CoffeeScript, just like it is in Python. Just having a parenthesis shouldn't change that. Anyway, what I do is this:

    somethingDo = (ms, func) ->
doSomething func, ms

and then I can just write

    somethingDo 1, ->

action(key: value, option: value, otherValue)

You don't write it like that if the function takes two objects. You would probably just write

    action {key: value}, {option: value}, otherValue

x = {
key3: value3

This is called destructuring assignment, and its part of the new ECMAScript. Its useful to not have to repeat key1, key2 everywhere when the variable with the value has the same name as the object property. The extra curly braces are just necessary to differentiate from the normal syntax.

Sometimes yes/no or on/off are more readable than true/false. That's an advantage.

    x = 1 if y != 0;

Don't use semicolons in CoffeeScript. I also don't put if statements at the end of a line because I don't believe that is very readable for most people including me. Also, in CoffeeScript its probably better to use isnt instead of !=, although rather than !=, you would want !==.

    if y isnt 0
x = 1

I'm not that sure about the use of unless, although it probably is a little bit more readable overall.

  break for [tag], i in @tokens when tag isnt 'TERMINATOR'
@tokens.splice 0, i if i

He says that is supposed to delete TERMINATOR from tokens. I tested it, it doesn't do anything, and the second example of the correct way doesn't work either. I think he meant this:

    filtered = []
for token, i in tokens
if not (i is 0 and token is 'TERMINATOR')
filtered.push token

i += block.call this, token, i, tokens while token = tokens[i]

Another example of something you CAN do in CoffeeScript but shouldn't. Actually it is a bad idea in general. I think a CoffeeScript programmer would actually write something like this:

    class Parser      
block: (token) =>
@currentNode.push new Token(token)
parse: =>
for token in tokens
@block token

I would never write something like 'mainModule.moduleCache and= {}'

Instead of

    js = (parser.parse lexer.tokenize code).compile options

I would write

    tokens = lexer.tokenize code
parsed = parser.parse tokens
js = parsed.compile options

smacktoward 6 hours ago 4 replies      
I don't have a strong opinion on the article itself (it seems well-reasoned to me, but I don't use CoffeeScript personally so who knows)... but the comments attached to it are hilarious.

I think CoffeeScript has great readability, because I've taken the time to learn how it works.

If you have to take the time to learn how to read something, it's not easily readable.

CoffeeScript is only hard to read if you try to read it with a JavaScript mindset.

Yes, why would anyone approach a tool pitched explicitly at JavaScript developers, whose "golden rule" is "it's just JavaScript" (see the top of http://coffeescript.org/), with a "JavaScript mindset"? Truly, it is a mystery.

ricardobeat 5 hours ago 1 reply      
Though most examples are not something you'd write normally, this line is what kind of flopped the article for me:

    Given that CoffeeScript doesn't fix any of the
fundamental problems of JavaScript

same for a comment here:

    coffeescript doesn't bring much to table

There is so much coffeescript adds that I find these laughable:

    string interpolation 
multi-line strings
guarded loops (hasOwn...)
easy constructor/prototype definition (class)
avoiding global leaks/shadowing
function binding
splats, defaults
safe usage of reserved names
existential operator
chained comparisons
READABLE regular expressions

This just off the top of my head. These make a huge difference to writing code everyday. I've been writing CoffeeScript for 90% of my projects in the past 2.5 years and it pretty clearly affected my productivity for the better. I can only conclude that whoever says "coffeescript doesn't add anything" hasn't really used it for work.

Case in point, if you look at the linked article at the end you'll see an update by the author: I actually love CoffeeScript now that I've been writing it for a year.

crazygringo 6 hours ago 5 replies      
Question: am I the only one who's driven nuts by "if"s that come after the "then" part? E.g.:

    do_something(with, these, args) if im_supposed_to

I mean, the processor/interpreter always needs to evaluate the "if" first, so what purpose does it ever serve to put it after the "then"? To me, it just confuses things because it feels like code is getting executed backwards -- like crossing an intersection, and then checking to see if the light is green.

I know it works "in English" ("do this if that"), but when I scan other people's code I'll sometimes completely miss the "if" (sometimes it's just off the screen).

Are there any examples where this reverse-if actually helps, instead of harming, code intelligibility?

tete 7 hours ago 1 reply      
I don't consider this article bad at all, because it really makes some good points.

However a lot of criticism seems to come from the fact that the author is a Python programmer and therefor wants CoffeeScript to be more like Python. No, I am not saying something like the author not understanding it isn't meant to be Python, but for example the implicit vs explicit debate is certainly a more philosophical view. Ask people who prefer other programming languages and they will have a different view. Hey, after all that's why there are so many, even if Ruby, Perl, Python, Falcon, etc. have very similar use cases.

My opinion for example is that dynamic languages are very implicit in first place so saying you don't want that (at all) doesn't make too much sense. I also don't have problems reading CoffeeScript, but occasionally had problems with very explicit languages being too verbose which can make it harder to follow. So looks like my mind works slightly different here.

But back to the article. There are lots of valid points. I think coding guidelines, which one should have working in a team, no matter what language could solve some of them. Some points look a bit like mixing different styles on purpose and at least can't see how you could find something like that in the wild. Just because you can code ugly, it doesn't mean you have to, but again that is more of an opinion. Some people like usually verbose languages, because they say they are easier to read, others like ones with shortcuts or where you have multiple options to express things, making it easier to read (for some people). I for example always enjoyed the fact that Perl has unless and until in place of negated if/while.

But that's more what you prefer. But hey, CoffeeScript is all Javascript, so if your team doesn't like it it's (comparatively) easy to step by step switch back.

debacle 8 hours ago 1 reply      
I find this review very even-handed. It doesn't really make any bold claims, but it does provide a slew of evidence.
andrewingram 7 hours ago 4 replies      
A few years ago I made an email campaign editor using JavaScript, I re-implemented it in CoffeeScript a few months ago. What I now want to do is re-implement it in the good JavaScript I've learned from reading the code that CoffeeScript generates.

There are some annoying parts of CoffeeScript. If your function takes callbacks as the first parameters, and another value as the second (such as setTimeout), you end up with some really awkward syntax. I've seen a lot of people define a delay method that swaps the parameters of setTimeout just so it's easier to use with CoffeeScript.

Like the author of the article, I have a Python background, but I've also written a lot of JavaScript, I love the syntactic sugar that CoffeeScript brings, but I hate reading CoffeeScript code. The project that my re-implemented email editor is used in has a hybrid of JavaScript and CoffeeScript code, and I'm not kidding when I say that everyone (myself included) groans when they have to work on the CoffeeScript parts.

cristianpascu 7 hours ago 1 reply      
I have recently implemented to quite large project with CoffeeScript, the most recent one for a full export to HTML for http://flairbuilder.com, and I have to say that CoffeeScript is a superb language. It's a pleasure to work with.

The kind of problems that the article points out are easy to spot. If small syntax changes yield significant output code, that will be immediately reflect in the program execution.

Plus, a decent code base will have unit testing in place, which should catch more intricate, harder to catch, unwanted code flavors.

cnp 7 hours ago 1 reply      
Personally, i write my CoffeeScript with as much syntax as possible, to keep it as readable as possible: as a rule, I always use parenthesis and commas while leveraging CoffeeScript's "good parts".

But that said, the last couple of projects I've written in pure JavaScript and it's actually made things much easier to go back and read. Like the author of this post, I too have had difficulty reading back over my old code and, at a glance, understanding precisely what's going on.

Over the past couple of months I've gone from being absolutely devoted to CoffeeScript to on the fence, mostly due to readability.

(I'd love to see a fork of CoffeeScript that forces syntax.)

mratzloff 6 hours ago 1 reply      

    Coming from Python [...]

For example, in C-like languages, you can omit curly brackets
after a conditional expression if you only have one statement:

if (condition)

But what happens if we add a new statement:

if (condition)

Of course, that doesn't seem to be an issue in Python, the language he's coming from.

Most of his points are similarly contrived and could be equally applied to Ruby, a language which doesn't require parentheses and quite a lot of developers seem to like, or Python which is similarly whitespace-dependent and quite a lot of developers also seem to like. But inflammatory headlines do drive traffic from HN...

    Given that CoffeeScript doesn't fix any of the fundamental problems of JavaScript

I think most developers who are well-versed with both JavaScript and CoffeeScript would disagree that CoffeeScript doesn't fix any of the problems with JavaScript. It certainly makes it easier to loop through object properties. It makes code more readable in a number of ways; post conditions, list comprehension-like syntax, simpler loops, the existential operator (`foo?`), and the maybe object-like syntax (`foo.bar?.baz?.quux`) are definitely improvements.

You can of course write bad code in any language, no matter how structured it is. I myself am about to embark on refactoring a massive, terribly-constructed Python system that processes millions of requests each day. The author didn't follow the strictures of the Python community at all. How is that any different from someone who exercises poor judgment when writing CoffeeScript? It's not.

deanotron 7 hours ago 1 reply      
I've been using coffeescript for about two years - I thought it was the best way to keep the pleasant aesthetic of python, which was my favorite language, and have been happy working with it ever since.

I just want to throw out a positive experience with it and to say that I don't support the author's premise of "here's some misleading things you can do with CS, therefore CS is unreadable". This applies to all languages, and 'fanciful' features and syntax should be avoided almost always in every language for the sake of readability.

There are MANY reasons not to use coffeescript, but JS is all functions all the time, and -> is my best friend.

eranation 5 hours ago 5 replies      
I guess I'm lonely in this world, but I really want a statically typed JavaScript alternative. Dart is nice, but no JS interop (yet), GWT is just Java, which is not the most fun thing in the world, ClojureScript is nice, but not static typed and Lisp is a bit too extreme for me, but the new Scala JS DSL seems worth waiting for.
ojosilva 3 hours ago 0 replies      
After reading this, I felt the urge to classify key aspects of write and readability of the programming languages I've dealt with over the years.

How easy or fast it is...

  - to write what I want to achieve
- to write something that makes me feel creative
- to write something that makes me feel tidy, organized
- to write a syntax error
- to write a logical error
- to step into a "gotcha"
- to find that bug
- to grasp a short snipped
- to grasp a 20K loc app
- to read my own code 1 week later
- to read my own code 3 years later
- to read somebody else's code

Now trying to rate languages by these parameters is a tough job that I can't even imagine how to tackle. In many instances it doesn't even has to do with the language itself, but rather with my experience and relationship with it. But any exercise in this direction gives some food for thought while trying to find the right tool for the next job. Or something to think about when looking back at some of the choices I've made through my programming lifetime.

sixbrx 7 hours ago 6 replies      
I haven't programmed in Coffeescript, but does it bother anyone else that new variables are introduced without "var"?

When reading js, seeing the "var" really helps me to know the programmer's intent that this is a new variable being introduced, not an attempt to reassign one that should already exist. Does CS have features that make this point mute?

mcantor 6 hours ago 0 replies      
Both statements do completely different different things, although they look very similar.

This is true for both CoffeeScript examples he gave and their resulting JavaScript.

latchkey 7 hours ago 0 replies      
I agree, it is too bad that CS has so many optional ways of doing things. That said, it is possible to write unreadable code in pretty much any language. If you have a good style guide and stick to it, it is easy to avoid all of these issues.
gothy 7 hours ago 0 replies      
Using CS for about 1.5 years now.
Yes, there're ways to hurt yourself with bad CS code. This is also true for Python.

When developer writes some fancy one-liner in CS or Python and I'm reviewing his commit, I just ask him to come over and explain what this thing is doing. Sometimes it takes more than 20 second to read and explain even by author.
Then I say: "You wrote this line an hour ago and it's already hard for you to understand what it does. Imagine you'll need to change it in a month. You'll hate yourself. Go and rewrite this code explicitly to help yourself in the future."

If you force yourself and teammates to write explicit code, you get all the pluses of CoffeeScript avoiding bad readability.

ryankshaw 5 hours ago 1 reply      
whenever I see something like this that tries to rag on coffeescript it seems like they all reference ryan florence's post from a while ago: http://ryanflorence.com/2011/case-against-coffeescript/

for the sake of clarification, ryan is sitting right next to me, writing coffeescript (as with all new code we write here at instructure, see: https://github.com/instructure/canvas-lms/tree/stable/app/co... )--and loving it. whatever "crazy gotchas" he found back then are obviously trivial to how much easier coffeescript makes life. it seems like every third tweet he makes is about how much he loves CS now: https://twitter.com/ryanflorence

Other than that, everything in this post just comes down to "just because you can doesn't mean you have to or should." disambiguate if helps make things readable

iamwil 7 hours ago 0 replies      
Some of the complaints in the OP aren't mistakes that I make often, so I guess I don't see them. Perhaps for someone that makes those types of mistakes often, it'd be a detriment, but so far, I've been happy with my coffeescript experience.
dustingetz 6 hours ago 0 replies      
wow readability is about API design like requests vs urllib2: https://gist.github.com/973705

except when APIs get 100x bigger, API design becomes 100x more important. and using a language ecosystem that encourages good API design, over a language that is cobbled together and has no particular opinions about what good API design looks like[1] (or, even, bad opinions[2]), so that less experienced developers end up with decent output, is that much more important than concerns like parens, commas and braces. curly braces never made a project fail. shitty API design does.

[1] javascript!
[2] java!

sheesh. there are bad things about coffeescript, but this stuff hardly matters.

rayiner 6 hours ago 0 replies      
I'm meh on significant indentation, but significant space characters is just a terrible idea. I blame Haskell.
armored_mammal 6 hours ago 0 replies      
I concur with the author. When I write CoffeeScript I often use a more explicit or more c-like style for things I find ridiculously ambiguous or hard to parse when reading quickly.

Particularly, if one line has lots of commas, I put parens all over the place because no matter what I do, having to manually parse the comma arrangements and figure out what's nested and what's a function does not go quickly. I also find myself writing explicit returns somewhat frequently just so it's much more clear what's being returned.

The overarching issue is that the syntax blurs rather than pops -- there are too many instances where things that are significantly different in function look nearly the same.

TeeWEE 6 hours ago 0 replies      
The big point here: less characters for the same logic is not always better. Saying that you need less characters to write function x in coffeescript compared to javascript doesnt mean it is better.

Its all about syntax and semantics. Code from languages with a small and consistent syntax, one-way-to-do-it, and a easy semantics are easier to understand than languages with a lot of semantics.

For example, Scala is cool. But also overly complex. The same holds for C++. But languages like clojure are very simple to grasp and the semantics of these languages are very small.

tharris0101 5 hours ago 0 replies      
This is exactly why I stopped using CoffeeScript. I hate Javascript so I was excited when I saw CS for the first time but after a while I realized I was doing two calculations in my head:

1: What is the JS that CS was generating?

2: What is the JS doing?

Maybe I just didn't give it enough time, but it seemed quicker and more reliable for me to just suffer through the JS syntax.

lucian303 4 hours ago 1 reply      
"readability is more important than writability for a programming language"

Couldn't agree with you more. Readability is measurable and considering that a lot of programmers come from C-type languages, I really don't see why people try to modify an existing formula (as badly implemented as that formula is in JS).

tl;dr: Let's face it, if you're using Coffeescript or similar because there are too many braces or parenthesis, perhaps you should quit development right now and take a class on basic algebra, quit that and save the world your horrific code. Seriously.

jtms 5 hours ago 0 replies      
CoffeeScript readability > Javascript readability

and that's all that matters to me

tjholowaychuk 3 hours ago 0 replies      
Great article, totally nails it. No "good" language design should be so ambiguous
beernutz 3 hours ago 0 replies      
Badly written code is badly written code in ANY language.
jaysoo 7 hours ago 1 reply      
I myself enjoy using CoffeeScript, but I understand it might not be for everyone.

It's always good to look at the pro/cons before choosing a language, so I think discussions like this is good.

That being said, some of the problems this article points out can be addressed by going back to more JS style.

e.g. Not relying on implicit parentheses/commas/braces

I like the "Fancy" for loop because it's closer to what I do in Python (yes I know they are not exactly the same). Same thing with the "Tricky" if statements.

Also the redefinition shortcuts provided in CoffeeScript is pretty much what I do in plain JS anyway.


foo = foo || 'bar';


  foo or= 'bar'

viseztrance 7 hours ago 1 reply      
The moment you try to do simple things like concatenating a string you realise that javascript is a bit more tedious than it needs to be.

While nowadays I prefer coffeescript to js, I would rather have some syntactic sugar like scss is for css. I've looked into it but nothing has enough momentum to make me sure it will still be around in two years or so.

As a sidenote, while I mentioned I prefer CS, have you ever tried using a ternary operator? or pass a callback function in jquery (ex. the hover out event)? or just return "this".
There are so many things that feel so wrong.

gbin 5 hours ago 0 replies      
I had this same feeling programming in ruby few years ago when no formal language grammar was defined (with really weird problems with : vs [space]: AFAIR). Is it the same for CS ?
d0m 5 hours ago 0 replies      
Thanks for this post. This is actually how I feel about CS but could never actually explain it correctly. I find it very hard to read other people code because of all these implicit rules that are more often than not ambiguous. Yes, sometime it's shorter but not necessarily faster or easier to read.
tiglionabbit 5 hours ago 1 reply      
Oh dude, just learned something new from this article.
options = {
options = {
I have a lot of maps in my app that look just like that. It'll save me a lot of repetition.
paulbjensen 5 hours ago 0 replies      
I wrote Dashku entirely in CoffeeScript. It was a productivity boost, and for that I owe it my firstborn child.
tylerlh 7 hours ago 0 replies      
Yeah, well that's just, like, your opinion, man. -- The Dude.

Personally, CoffeeScript has been my favorite thing to come about in the past few years.

kin 7 hours ago 2 replies      
while the points in the article make sense and I agree, if you keep your Coffeescript code consistent I really don't suffer a readability problem, especially relative to JS where there's like 5x more code to go through
rimantas 7 hours ago 3 replies      
Seems like there are two types of developers: those who don't want even to hear about CoffeeScript and trying hard to find deficiencies in it and those who embraced it and feel unhappy every time they are forced to work with vanilla javascript again.
The Pirate Bay - 9 years and still bloody runnin thepiratebay.se
226 points by m_for_monkey  2 days ago   136 comments top 9
Garbage 2 days ago 1 reply      
For the people, who can't access the direct site, here is the text of the blog:


sp332 2 days ago 2 replies      
I need a recording of this, I can't read it with the proper cadence.
klrr 2 days ago  replies      
I don't support illegal activity, but I believe this is a quest of freedom, not for getting stuff free as in free beer.
gl0wa 2 days ago 7 replies      
At least in some countries... In the UK we have: http://cl.ly/image/3m2C40432q0u
nacker 2 days ago 0 replies      
Thank God for the renegades, and the lives they lead
Far ahead of their time

Without the renegades, Lord knows where we'd be
When it comes to heroes, Renegades are mine

They railed against the crown, Another rag tag band
Declaring Independence

They laid their bodies down, won a bloody war,
And liberty for their descendents

Thanks to the renegades, we're free today

Thanks to the renegades, we're free today

Thank god for the renegades, and the lives they lead
Far ahead of their time

Without the renegades, Lord knows where we'd be

When it comes to heroes, Renegades are mine

Where are the renegades in the world today?

Who are the renegades in the world today?


And I am strangely impelled to add this link:


The Empire Never Ended!

XiaoPing 2 days ago 2 replies      
Yes, I cannot believe that those guys are still running. Amazing.
lucb1e 2 days ago 0 replies      
HTTP proxy for people who got TPB blocked: http://thepiratebay.se.ipv4.sixxs.org/blog/222
necenzurat 2 days ago 3 replies      
i poste the same fucking shit 8 hours ago and NO VOTES, https://news.ycombinator.com/item?id=4525973
U.S. Taxpayers Are Gouged on Mass Transit Costs bloomberg.com
223 points by tokenadult  2 days ago   214 comments top 23
bane 2 days ago 3 replies      
Absolutely, absurdly true. The D.C. metro is adding a new line, almost all of it will be above ground and on existing right-of-way reserved specifically for the eventual construction of the line decades ago and operate in fairly low density part of the system. It'll be 37km long and run $6.8 billion dollars. It'll have 29 stations.

Compare to the new Seoul Bundang line which is 32.8km with 28 stations in some of the most dense urban areas on the planet. It'll run a bit under $400 million to build or about 1/17th the cost.

Once open, it'll probably cost riders under a dollar for most trips, compared to over $3 on the DC Metro.

No matter how you figure it, cost of labor, eminent domain, legal, whatever, there's simply no way to figure the D.C. costs as making sense when a world away a similar line, in another developed country with far more difficult construction issues is much cheaper in every way possible.

robomartin 2 days ago  replies      
This article is one-sided. The problem is that it is aimed at the wrong side.

Yes, government purchasing and management of projects is a disaster. I have first hand experience in this realm. As a taxpayer you almost want to cry when you see it happen. I won't get into the nitty-gritty of the details. I saw, as an example, a government agency pay DOUBLE what they would have paid for a commodity computer accessory. They had bids (mine, among others, I am sure) that cut their costs in half. Yet, they went with the bid that doubled their costs. Why? Because those doing the buying were so incompetent and insecure that they wanted one supplier to provide all the components rather than allowing the best suppliers to come in and provide them with competitive pricing. It was "cover my ass" at it's best.

Let's not even mention the ridiculous rules that make it nearly impossible for small businesses to participate and expensive for others to do so.

To make matters worst, this particular contract was awarded to a foreign supplier. The funds came from Obama's "American Reinvestment and Recovery Act". Money that was supposed to create jobs in the US went out of the country. When confronted with this reality they came back saying that the company in question had sales offices in the US and that they had formed a corporation in the US and that this qualified them as a US entity. Holy crap!

I firmly believe that we'd do far better if government wasn't involved in most of this stuff. I'm not sure how that can happen, but the idea is appealing to me.

I said that the article is one-sided because it completely ignores on of the real reasons why these construction projects are so expensive and take so long: unionized workers. To put it plainly, their purpose in life is to rape the US taxpayer for as much as they can get and, in the process, provide themselves with as much pay, benefits, vacation and short work days as possible. And we keep paying for them once they retire in the form of ridiculous lifetime pensions. The real cost of that tunnel is probably far greater once you take into account having to pay those workers' pensions for life.

Examples of ridiculous union behavior abound. If you've ever had to work with or within a unionized system you've probably experienced the state of disbelief most rational people experience when they realize what's going on.

Take, as an example, doing a trade-show in NYC. I have dozens of examples of union bullshit, but I'll just mention one. We did a show where we needed to have a light turned off above our booth. That's it. The request was that simple: Please turn off the light above our booth. Of course, a union electrician had to do this. The fee? $368. Three hundred and sixty eight dollars for the guy to go over to the breaker panel and flip a switch.

OK, here's another. You are not allowed to plug in your devices into the electrical system. You know, what you do at home and at the office all the time. Nope, a union electrician has the necessary expertise to install an extension cord and plug in your computer into the AC outlet. I forget what the fee was for that, but it was ridiculous.

Our solution? We did all of our booth setup work at night. The union workers in the night shift are lazier than shit. They don't want to work. So, they let you do almost whatever you want as long as you let them sleep on the job. Sometimes you'd have to slip someone a hundred dollar bill to be left alone. Far better than dealing with their bullshit.

I have not had to work with unionized construction crews. I can only imagine how much worst the whole thing must be.

The best thing that could happen to this country is if unions were outlawed. Of course, that will never happen. I'd sure be nice though. Imagine, people actually having to work for a living. And, produce, behave, be responsible, be capable, compete, etc. What a concept.

Dont' get me started about the planned California high-speed rail. It's a $68 billion money grab designed to feed unions and keep politicians who favor them in power. The money will never be recovered. The line makes no sense whatsoever. Sick.

michaelochurch 2 days ago  replies      
Misleading title (in the current political environment) because the gouging is done by contractors who've figured out how to exploit an antiquated (lowest-bidder wins) system. The article is not suggesting that we have "too much" mass transit, but that we pay too much for what we get, and this is undeniably true.

The gouging doesn't stop once the infrastructure is built. U.S. transit is also expensive when delivered (it costs over $100 per person round-trip to go from New York to Harrisburg, PA; for two people, it's cheaper to drive). Finally, we pay again through exorbitant real estate prices because our transport infrastructure, in this country, is so poor.

kevinconroy 2 days ago 8 replies      
Seems questionable to me. Yes the Second Ave Subway is expensive, but how many cities are building new subway lines underground through incredibly dense existing infrastructure?

Also, US taxpayers may be making up for it by paying more upfront but less per ride (unless you live in DC or San Fran):

  City      Cost per Ride
Mexico $0.15
Beijing $0.29
Seoul $0.55
Moscow $0.69
Tokyo $1.68
Barcelona $1.76
NYC $1.96
Boston $2.00
Paris $2.25
Chicago $2.25
Toronto $2.37
Berlin $2.95
DC $3.08
San Fran $3.18
Stockholm $3.96
London $4.41

Source: http://www.treehugger.com/cars/subway-fares-around-the-world...

jt2190 2 days ago 1 reply      
I'm not trying to pick a fight here, but the United States strongly rejects, on a cultural level, the notion of a professional class of government employees. From the article:

  > A huge part of the problem is that agencies can't keep 
> their private contractors in check. Starved of funds and
> expertise for in-house planning, officials contract out
> the project management and early design concepts to
> private companies that have little incentive to keep
> costs down and quality up. And even when they know
> better, agencies are often forced by legislation, courts
> and politicians to make decisions that they know aren't
> in the public interest.

All you ever hear about at election time in the U.S. is "big government waste." My colleague from Spain tells me that in Spain everyone goes to work for the government, and that entrepreneurship is lacking. Perhaps that means that in order to have cost-efficient mass-transit projects in the U.S. we need a Spanish-style government and culture.

sutro 2 days ago 0 replies      
Consider: it took about 3 years in the heart of the Great Depression to build both the Golden Gate Bridge and the Bay Bridge. Since the 1989 quake, a project has been underway to rebuild the Bay Bridge's eastern span. That project continues today, 23 years later, at a huge multiple of the inflation-adjusted cost of the original bridge.
DenisM 2 days ago 3 replies      
FWIW, I spent some time researching the cost of tunnel-digging online, and off the top of my head, the costs were $30m/mile in India, $100m/mile in US, and $1b/mile in New York city.

The reason I dug through this was to explore possibility of building an entire city where all motorized transportation is under ground, and surface area is reserved for pedestrians, wheelchairs, and bicycles. IIRC, the cost of tunneling came out comparable to the cost of housing, so it's not a completely unreasonable idea. Imagine a 10km grid of 20-40 story residential buildings spaced out with trees and parks and bike/walk paths among them for miles on end? And an underground entrance every 1000 meters. No cars on the street, no noise, no traffic lights - go/ride where you please. Now if only I had the budget to build a brand-new city I would start now. :)

rickmb 2 days ago 1 reply      
Seems to me like the author is very selectively shopping in non-US examples in order to just go on an anti public-transport rant.

In most places in Europe costs of mass transit projects are notorious for spiraling out of control, and unlike the Madrid example other Western countries tend to do exactly the opposite and usually spend a lot more money on prestigious design and architecture of public works than is common in the US.

And that's okay, because besides the notoriously crappy and corrupt management of these projects by government officials, the results are worth it.

rayiner 2 days ago 0 replies      
American construction projects suffer from tremendous over-engineering. Here in Chicago we have the El and the Metra, which were built a hundred years or so ago. The El runs through the city mostly on elevated tracks above the existing roadways. The elevated tracks are supported by simple steel frameworks above the roadway. There's not a lot of room for stations, so they are simple platforms hovering over the intersections with stairs leading up to them. The floors are wood plank and there are some metal railings. The Metra is similarly simple. Metra tracks run on embankments across the city. They're simple dirt embankments with a retaining wall. Simple metal bridges cross the roadways, without a huge amount of clearance. The stations are mostly just wood and metal platforms with wooden railings, with wooden stairs leading up from street level. This all works really well--Metra is the busiest commuter rail system outside of NYC, shuttling 300,000 people into the downtown core every day.

Now, compare this to the new Silver line in DC. It's monstrously over-engineered, even though it runs on a dedicated right of way. Instead of running the train on a simple embankment in the middle of the road or on a simple raised platform, it runs on a huge elevated concrete platform: http://transportationnation.org/wp-content/uploads/2012/09/0...

And this is in a low-density suburban area!

Compare this to the El: http://marcel-marchon.com/img--117945132--Chicago-El-train--...

Transit does not need to cost a billion dollars per mile. Just build elevated metal-framework tracks above the existing roadways. It's cheap, durable, and actually much more pleasant for riders than going to a stifling underground subway station.

scottfr 2 days ago 2 replies      
I few years back I was thinking of running for the board of AC Transit in the bay area.

I did some research: the cost per mile to move a person on AC Transit was ~ $1.50 (total cost including subsidies, not what you pay). Compare that to a cost to pay for a cab to take you one mile of ~ $3.00.

So if you have two people in a cab, that cab is just as economically efficient as a bus. Literally, a car that waits for your call, comes right to your door, and chauffeurs you around, is as economically efficient as our bus system. This is crazy! We could replace AC Transit with a fleet of cabs.

Also, I've heard that the "Nextbus" system which makes those predictions for when the next bus is arriving makes most of their money fixing the next bus sensors. The reason the sensors are broken is AC Transit employees continually sabotage them because they hate being tracked.

Truly, it is an incredibly screwed up system. Anyways, I was too busy to run for the board of directors, but someone really need to fix AC Transit!

mcphilip 2 days ago 1 reply      
The recent article in Esquire about rebuilding the world trade center sheds a lot of light into the particularly inept NY & NJ Port Authority mentioned in this bloomberg piece.


ChrisNorstrom 2 days ago 1 reply      
I'm trying my best to see things from both side's point of view.

Maybe it has to do with Supply and Demand? Because Europe and Asia invest substantially more in their public transit networks, there's more of a market, more companies that build the networks, more competition, more experience, and more tried and true cheaper methods. While in the USA, we've got less public transit, less experience building it, a smaller market for building it, less companies that construct networks, and less competition between them, thus the cost is higher due to it being a specialty that few companies understand.

rdl 2 days ago 0 replies      
I wonder how much of the "libertarian" bias in the US overall is a result of the particular inefficiency of government projects in the US (obviously purely private projects are more efficient than US government funded projects), and how much is a cause (by forcing use of contractors/consultants).

Maybe this explains the difference between the US and Asia/Europe rationally, rather than as some major difference in philosophy given the same facts in each place.

ianb 1 day ago 0 replies      
How do private companies arrange infrastructure-sized projects? Oil companies seem to have substantial arrangements like these. Railroads maintain a lot of infrastructure privately. I'm guessing these companies don't get gouged like the government, but they really have all the same issues, like internal corruption, the bid process, change orders, competing interests in the company, etc.
ericdykstra 1 day ago 0 replies      
Whoa wait, this article is saying that [some significant subsection] of government projects is something like an order of magnitude inefficient? Hard to believe, I bet next we'll see articles saying that [some other significant subsection of government] is inefficient, too!
aswanson 2 days ago 0 replies      
What's even worse is that they overcharge on the same properties they gouge taxpayers on, that the taxpayer supposedly owns. Crossing the GW bridge? $12. Going up the turnpike from DE to NY? $13. Going from Jersey to Philly? $5.
devs1010 2 days ago 0 replies      
I spend probably $350 a month commuting in the SF Bay Area on public transit, its ridiculous but its my only option since traffic is bad and parking expensive enough to make public transit the better option by far
xbryanx 2 days ago 0 replies      
Seems like some of the comparisons being made here should be divided by average wage for skilled workers on these projects.
leeoniya 2 days ago 0 replies      
havent read it yet, too in love with appropriate mobius rail graphic
SODaniel 2 days ago 0 replies      
This I believe is NOT news.
001sky 2 days ago 1 reply      
Hollywood. Accounting.
angdis 2 days ago 3 replies      
A bunch of right-wing baloney. The transportation systems in NYC are what make that city even possible. It is very easy for an uncreative bean-counter to look at the price tag of public transportation systems and then not be able "add up" all the long term benefits of having a city where people and businesses can thrive and get around and that are enjoyable and aesthetic.

If you really want to talk about "gouging" the taxpayer, instead look at highway funding and regulations that practically enforce sprawl by requiring parking spaces, and multi-lane streets through urban cores.

52 Hertz: The Loneliest Whale in the World discovery.com
220 points by antimora  18 hours ago   51 comments top 18
jws 12 hours ago 1 reply      
There is a paper on 52 Hertz from 2004 which is locked securely in Elsevier's fortress, safe from inquisitive minds.

Fortunately the US Defense Technology Information Center has liberated a copy: http://www.dtic.mil/dtic/tr/fulltext/u2/a429410.pdf

I wish NOAA had those recordings at real speed instead of sped up 10 times. 52Hz is well within human hearing, it's a G#, 4 frets up from the bottom of a typical bass guitar. Typically the big whales are around the C that would be past the left end of the piano and beyond human hearing.

From the paper, there is an interesting statement about the capability of the Navy hydrophone systems:

The lack of calls before and after tracking periods appeared to be because the whale was not producing calls, and not due to the lack of the ability of the monitoring equipment to detect the sounds. As the tracks demonstrated, the monitoring system was not limited geographically, and appeared to detect these calls, usually on multiple arrays, whenever calls were produced in these deep-water regions.

paraschopra 15 hours ago 5 replies      
It's fascinating! Though it's interesting to debate if we should apply humanly qualities such as loneliness to whales (or even other creatures). Does this whale really feel lonely (like we do)? Or is it just doing what its genetic program tells it to do? I don't recall where exactly I read, but I had read that the contribution of language is significant as far as human consciousness and feelings are concerned. It mentioned that animals have signals as a form of communication (show a ball, and dog would come over) but humans have signs. The whole conscious world is composed of signs for us and that is what makes us unique. It had further mentioned that even in aboriginal people who don't know much about modern cosmology, they still have a theory of some sort to signify the origin of world. Animals simply lack that kind of framework and therefore behave according to their genetic program or trainings.

Yes, the field was called semiotics and I recall reading about how a wandering bee doesn't give a damn to humans dancing and celebrating nearby.

aarghh 17 hours ago 1 reply      
Brought Ray Bradbury's "The Foghorn" to mind - https://en.wikipedia.org/wiki/The_Fog_Horn
nhebb 15 hours ago 1 reply      
Another mystery appears. I wonder what happened in 1993-1994 to get his migration path off by 90 degrees.


lifeisstillgood 16 hours ago 0 replies      
That's it - for me the sound of one hand clapping now will always be heard at 52 Hz.

That's made my day. :-)

Hope Mr 52 Hertz Finds Mrs 52 Hertz soon. Cheers

brazzy 18 hours ago 2 replies      
This has given me a sad.

Strange though that there aren't any attempts mentioned to actually get close and have a look at such an unusual specimen.

Zenst 17 hours ago 3 replies      
The link to a normal Whale sound is the same link as this chap at 52 Hertz.

I do find his path tracks interesting and they do seem to have a central point and do wonder what is of note there, food!

Supprised no DNA samples have been taken, though I suspect we can't eliminate some form of polution inducing a genetic mutation. We have humans with high-pitched voices so anything is possible.

But fair play to the chap in carrying on trying to find a mate in over 20 years, now that is tenacity.

sageikosa 14 hours ago 0 replies      
Evolution in action? For natural selection to work some critters have to end up on the losing team.
eck 17 hours ago 0 replies      
Let's be clear. This guy operates at 52Hz, but he probably has more spatial resolution than cobra dane.
beedogs 15 hours ago 1 reply      
the last two sentences of that story made me want to strangle the author. :|
kahawe 16 hours ago 2 replies      
I can understand that his migration routes are away from most other whales but one thing that keeps coming up, especially in the linked articles:

> And here's the cry of the lonely 52-Hertz whale, which no other whale can return -- as if whale songs weren't mournful enough.

Does anyone know whether this is true? Other whales could not hear/understand him even IF they were close-by because of the higher frequency? And he could not hear other whales either?? Both of these seem very unlikely to me, especially the second one, but I am no expert. I am just assuming if his signature is that of a baleen whale just at a higher frequency, wouldn't others still recognize that IF they were close?

If anything, following the human interpretation of this as the "poor lonely-heart whale", he just has to get out of his comfort zone and explore the waters more... this too "could be viewed as inspiration to anyone with a lonely heart"!

pohl 10 hours ago 0 replies      
It would be interesting to fit her with a prosthesis that dynamically adjusts the frequencey and rebroadcasts the song in the normal range.
y4m4 16 hours ago 1 reply      
Loneliness probably has a new meaning! - 52hz and 2 decades on - a whale trying to communicate has been so lonely in the vastness of sea. It is truly invigorating and unimaginable .. Their 10million years of evolution far greater than the Man himself must be a remarkable insight towards our own evolution. Reading this story i kind of feel moved and touched at a much deeper psychological level than ever ...
INTPenis 8 hours ago 0 replies      
Wow that's sad, aside from casual flings I've been living alone 7 years longer than this whale has been known to.
dogan 16 hours ago 0 replies      
maybe he just want to be left alone
TobbenTM 18 hours ago 0 replies      
Gosh, what a hipster.
OSX password script for everyone to know songz.me
219 points by songzme  4 days ago   90 comments top 20
sil3ntmac 4 days ago 3 replies      
Ugh, the people I work with (I work for a security firm) consider this a "hack" as well. This is expected behavior! How do you expect your passwords to autofill across browsers? It is called the login keychain for a reason. If someone has access to your user account, and your user account has associated web passwords that can be summoned without re-entering your login password, then the logical conclusion is that your web passwords are not safe.

However, Keychain Access is perfectly secure as a dead-simple manual password manager. Just create a new keychain (I call mine "webpasses"), give it a password different than your login password, and manually save your web passwords in that. Yes you have to open Keychain Access every time you want to save (or copy the plaintext of) a password. Yes it's a bitch. But if you save your passwords in the correct format (description=website URL, username=website username) then Chrome and Safari will find it, ask for your "webpasses" keychain password, and autofill, no questions asked. Bonus points because you can save your new keychain in your dropbox and use it across multiple (osx) machines. I store all my credit card numbers in one keychain file, everything is AES encrypted IIRC so it's as good a solution as any as far as "one-password-auth" goes.


(note: I chose this solution because I am paranoid -- er, security conscious. The average user will NOT want to enter a password anytime he/she wants to autofill, and there's really no way to do this in a secure manner)

EDIT: grammar

dkokelley 4 days ago 1 reply      
First of all, if someone has unauthorized physical access to your device, you're pretty hosed. Especially if they happen to have a current logged in session. Forget passwords, they have cookies and mail.app and bookmarks. Second, if you must lend your computer to an untrusted person, use the Guest session. I just tried this and confirmed that there is no immediately obvious way for a person logged in to a guest session to access my keychain.

Knowing this, I will rewrite the opening line to the article.

Original line: "Here's a reason why you shouldn't let anyone use your computer."

My revised line: "Here's a reason why you shouldn't let [untrusted persons] use [a non-guest session on] your computer."

aidos 4 days ago 2 replies      
The reason this is strange behaviour is that when you try to access private info from within keychain you have to enter your user password each time. Using this command you just need to click on the allow button.

The keychain only allows applications that you authorize to access a given password, right? So for example, when I upgrade Transmit, it needs to ask for my permission to access the passwords again. Does that give it access to everything or just a specific password / set of passwords?

brockrockman 4 days ago 2 replies      
Hardly a security flaw. How do you expect Safari/Chrome autofill the same passwords? And after the password is auto-filled any JavaScript can access the input's value attribute.

I use this in my .emacs so Emacs can grab passwords from Keychain, but the same approach would work in bash too:
(defun find-keychain-password (host) ()
(condition-case nil
(let ((passstr (second (split-string (first (process-lines "/usr/bin/security" "find-internet-password" "-gs" host)) ": "))))
(substring passstr 1 (1- (length passstr))))
(error nil)))

jtokoph 4 days ago 4 replies      
You may want to setup autolocking:

1. Launch "Keychain Access".

2. Right click on "login" keychain.

3. Click "Change Settings for Keychain 'login'".

4. Check the "Lock after:" box.

5. Change the minutes of activity to whatever you want.

You have the option of auto-locking after zero minutes of inactivity.

javajosh 3 days ago 2 replies      
While it is shocking to see your passwords scroll by in plaintext, a careful consideration of how to fix the problem, one realizes that the offered solution really isn't good enough. Many applications require your passwords in order to run, and the Keychain is the way OSX apps get those passwords.

After a little thought, there are two solutions. First, and best, is to log out, and let your guest use a guest account. Or second, watch over the persons shoulder (which is probably a good idea anyway for the security conscious.)

But, personally my biggest concern is that it highlights how trivial it is for locally installed software to access my other passwords! It means that all of my passwords are only as protected as my least-trusted local app. And I have to say, my least trusted app is pretty untrusted. The only saving grace is that OSX asks me if I want to allow an app to access that password.

droithomme 3 days ago 1 reply      
Keychain Access and the general security model is poor.

There should be a way for web passwords that are saved from a browser to be restricted for use from a set of authorized browsers only, without also allowing any random program from just grabbing the plaintext.

From what I observe using this system, once you lock the entire keychain, then you have to unlock and relock it everytime you use a web password, or if you forget to relock, after authorizing one time access from the browser popup, it unlocks the whole keychain for the entire system. Unlocking my throwaway yahoo junk mail account in Safari should not also unlock the password to my banking account across the whole system.

This is not the best design and those who say "works as designed", in my opinion, are suffering from myopic tunnel vision where they assume a current design is the only possible design.

tlrobinson 4 days ago 1 reply      
Is 1Password more or less secure than Keychain? If my 1Password is unlocked can any application get passwords out of it?
kristopher 3 days ago 0 replies      
Apple provides an easy way to lock your desktop when you go for coffee. To set it up:

  1. Launch "Keychain Access".
2. Open Preferences from the "Keychain Access" menu
3. Check the option labeled "Show keychain status in menu bar"
4. (optional) While holding the cmd-key, click and drag the menu item over to the far right of the menu bar for easy access.


paupino_masano 4 days ago 2 replies      
Admittedly I was a bit shocked to see my passwords start pumping out: all I needed to do was click "Allow" and away it went. Why would keychain remain unlocked? Why doesn't that command need sudo? This seems like a pretty decent security flaw to me...
tomwalsham 3 days ago 1 reply      
A nice visible reason why the Rails/Node/OSX FOSS community really need to stop doing the following sort of thing for their installations (seen most recently on yeoman.io, but common to get.pow.cx, npm...)::

curl get.totallytrustworthyapp.io | bash

The above examples are obviously legit, but encouraging this kind of lazy access to even local privileges from arbitrary remote scripts (and Yeoman even asks for sudo in a super-friendly way), is the modern equivalent of padlock.gif on your payment page - training poor security practices.

kreek 4 days ago 0 replies      
Locking the keychain works until you unlock it from another app. If you enter your keychain password for Mail app or for a web password it becomes unlocked for the terminal command. Which is unexpected behavior as from within keychain, even if it is unlocked, you must reenter your password if you want to see a saved password.
muyuu 3 days ago 0 replies      
In Firefox and Chrome you can see all web passwords in plain text. It used to be the same in Safari but apparently not anymore. And that's when they don't leave their webmail logged in, which a lot of people do and they lend you their computer like nothing happened. This is often a master key to somebody's privacy, usually more critical than the kind of stuff have in their keychain most often (WLAN passwords and the like).

People around me are not the most security conscious, or they just know they can trust me.

I guess there's also the cultural bias to allow people "check their email" and stuff like that.

My keychain is always locked, I don't save sensitive web passwords in browsers, and I still don't let people use my computer unsupervised.

delinka 4 days ago 0 replies      
Or maybe, just maybe, you should never let random people use your computer under your account. Create an account for randoms, switch users before loaning them the keyboard.
leejoramo 4 days ago 1 reply      
I ran this command and for at least the first 10 items, I was prompted by a GUI dialog to allow the export of the keychain item. (I have close to 2,000 items in my keychain, so it is a small sample.)

I think that this is more of a lesson to:

1) Have reason able auto locking time outs setup via the Keychain and Screen Saver

2) when Keychain Access prompts you to access info that you should normally click "Allow" and not "Always Allow".

stuartd 4 days ago 2 replies      
I run as a non-admin user on Mountain Lion (stops the kids messing stuff up) and it sometimes has unexpected benefits - like in this case, when I run security dump-keychain -d ~/Library/Keychains/login.keychain in terminal the output is most definitely not plain text even after I press 'Allow' - see http://pastebin.com/TH63R9sM for a sample
corwinstephen 4 days ago 0 replies      
I'm totally going to use this for way more bad than good.
ninjac0der 4 days ago 0 replies      
Apple doesn't introduce security flaws. They are far to big and awesome for that. This is a clear compromise between security and user experience....
dhruvtv 4 days ago 1 reply      
How is this command line method any different/better than opening Keychain Access, clicking on each entry and checking 'Show Password'?
induscreep 4 days ago 1 reply      
ooh look I can access my .config folder on linux.
Steve Wozniak on Samsung patent verdict: ‘I hate it and I don't agree with it' thenextweb.com
216 points by talhof8  4 days ago   102 comments top 20
BenoitEssiambre 4 days ago 1 reply      
Wise man. The way I see it, Apple had a case regarding "trade dress". Some Samsung devices, for example the Galaxy Tab 10.1, do look too much like Apple products. However, the rest of the patents were ridiculous. If the bar for patent validity is going to be this low, most software developers will not be able to do a day's work without accidentally infringing on something. Every piece of software I've seen being built most certainly uses methods that are described somewhere in patents, especially if it is leading edge in terms of communicating, collecting, syncing or displaying information through the web or mobile devices. If court decisions keep going this way, it is going to become impossible to code legally without the costly burden of acquiring a patent war chest and a team of layers to defend your organisation. We might as well shut down the industry to newcomers.
creamyhorror 4 days ago 4 replies      
This will just get him disavowed as a cofounder of Apple by the hardcore supporters. Eventually no one will remember he helped start Apple and everyone will think Jobs was the only one. (edit: true enough that they already see him as the black sheep, the embarrassing uncle everyone tries to ignore)

No one cares what the "naive, idealistic" engineer clueless about business thinks. That's the battle we're fighting - to fix patents, we have to tell people how it's not mere idealism or ideology, but how real businesses can get squeezed out by patent trolls or assholes if software patents don't get reformed soon.

On the bright side, I'm noticing more friends getting Androids, even around this time when the iPhone 5 is being launched. Only the core Apple supporters are going straight for the iPhone. The tide may be turning and Apple losing a bit of its shine, at least in my circles.

ericdykstra 4 days ago 3 replies      
I hope he's right that this gets reversed.

Apple makes a lot of best-in-class products (and I know some people that think everything they make is best-in-class).

Do they think they need to do this kind of litigation to keep making products people will buy? Are they trying to discredit Samsung as copycats? Or is it just a case of "if it costs us $100m to pursue 10 lawsuits with a 5% chance of any one of them getting us a $1b reward, it's a positive business move" sort of thing?

robomartin 4 days ago 3 replies      
I am not taking sides. Don't have all the data. I'll just say that there's a huge difference between "Research & Development" and only "Development". The first is far more time consuming, risky and expensive. The second is a clear and guided roadmap that you simply follow to completion.

I used to be an idealist. I bought the whole idea of "just build a better product" without question. And so I did. Many years ago I embarked in the development of electronic products for a specific industry while trenching new territory and bringing new ideas to the user base. I opted not to file for patents because, well, they were expensive and I was going to just beat them with a better product. Or so I thought.

The first product took about a year and a half in R&D. Lots of work. Lots of problems to solve. Lots to learn. It finally got out and we did really good business right out of the gate. Hundreds of thousands of dollars per month. Eight months later competitors came out with devices offering about 60% of what we were doing at half the price.

It nearly killed the business. A six month month run with a hardware product isn't enough to recoup your R&D. Our competitors had the advantage of only having to do the "D" part because they copied and stole as much as they could. Never mind the fact that they did not have to trench new territory and actually test to see if there was a market there.

The lessons I learned during this period were invaluable (and very painful). Patents do have reason to exist and should not be ignored. People will cheat and steal in business the first chance they get. It takes a special kind of person to honor an agreement without the threat of serious financial harm through litigation if violated. People will violate NDA's and use them to get your ideas and insight under all kinds of pretenses.

Business is war. I was an idealist. An idiot. Live and learn.

I don't know about the Apple vs. Samsung issue. Frankly, I don't have the time to dive into the details. Even if it did, it would be a huge waste of my time as I have nothing to gain from such an exercise. Not taking sides, here's hoping that the courts get it right.

thechut 4 days ago 3 replies      
I've said it before and I will say it again. Apple needs to compete on, and thus focus on the quality of their products. Not sue everyone else into the ground because they feel threatened. Apple will just keep squeezing out incremental changes to their devices and suing everyone else until they are the only ones left standing.

Maybe they should let Woz run the company, he seems to be the last innovator left.

motoford 4 days ago 4 replies      
I can't believe these guys just called the Woz "infamous".
harshpotatoes 4 days ago 2 replies      
It's interesting that camera quality is so important for people, yet I find it difficult to find information on image quality beyond how many megapixels the sesnor has. The least they could do is tell me the sensor size/aperture size too.

You really have to search the specialized review sites to find good comparisons on image quality.

greghinch 4 days ago 0 replies      
I agree with the sentiment, admire respect the man for his contibutions to where technology is, but I really don't understand why Woz's opionion is solicited for every step that Apple of any time in the past 10 years has made. Even at the gestation of the company, his idea of how they should proceed was completely at odds with Jobs' (the latter actually wanted to turn a profit, among other things). I would call it safe to say modern Apple is all but devoid of Woz's influence
megaman821 4 days ago 1 reply      
Apple should have won a copyright case against Samsung clearly copying too much of the overall iPhone design. Instead Apple won a patent case which sucks for everyone, not just Samsung. A litigious Apple could use this win against other Android (and smart-phone in general) manufactures.
mycodebreaks 4 days ago 3 replies      
Turn-by-Turn navigation came on Android way earlier than it came with iPhone 5 yesterday.

How fair it is for Apple complain about stealing ideas?

headShrinker 4 days ago 2 replies      
We know Woz is an 'outside looking in' type person. His remarks remind me of all the people who are really upset with Apple for pursuing this lawsuit. People seem to have this conception that Apple saw an opportunity to sue the pants of a harmless company so it did. This is not the case at all. The two corporations were in meetings with lawyers for a year trying to iron out a deal. The deals fell through and they went to court.

The truth is everyone has been and is suing Apple, all the time. http://c4sif.org/2012/04/web-of-tech-patent-lawsuits-infogra... This graphic is now 9 month old. Truth is Apple is the most sued company in tech! I just don't get this 'down with Apple' mentality. It's completely irrational.

When Apple entered the phone telecom industry, it turned telecoms on their head. Apple started to take control from these awful companies (see my article on t-mobile: http://news.nucleusdevelopment.com/2012/09/11/t-mobile-infla...) and give it to consumers. Remember verizon didn't want any part of the iPhone because 'it gave the consumer too much control'?

Google and Samsung have been helping the telecoms regain control, allowing crapware and bloatware to go right back on the phones. That is one of the very things that Apple fought so hard to keep off their phones, and one of the main reasons Verizon didn't initially want Apple as a vendor. Not to mention, The spyware that gets installed with out our knowledge, ie: Carrier IQ. Controlling the software OS on the phones (ei: why it takes so long to get a new version of Android on your existing phone).

css771 4 days ago 0 replies      
Samsung may have copied the shapes and a few gestures like slide to unlock with the original galaxy s. But anyone who claims that it gave them a market advantage is being disingenuous.

Woz has always been rational about stuff and what he says. I hope the verdict gets overturned.

swang720 4 days ago 2 replies      
This is lazy journalism.

Will people stop posting what Steve Wozniak thinks about everything? Just because he's Steve Wozniak doesn't make him a foremost expert on everything related to technology. Does this quote add any insight or value at all?

“I don't agree with it " very small things I don't really call that innovative. I wish everybody would just agree to exchange all the patents and everybody can build the best forms they want to use everybody's technologies.”

npguy 4 days ago 0 replies      
Patents are living proof that ideas are overrated.
barista 4 days ago 1 reply      
I respect the guy but is he influential enough that it matters what he thinks?
kno 4 days ago 0 replies      
Why use expression like "The infamous engineer"? what does it mean? some writers just go overboard sometimes.
JimmaDaRustla 4 days ago 0 replies      
I love the head on that man's shoulders.
Empro 4 days ago 1 reply      
I feel like the craziness is only just beginning.
sigzero 4 days ago 0 replies      
So what? Really. His opinion isn't any more or any less valuable that anybody else.
the_expert 4 days ago 0 replies      
So how would things have turned out if we dropped all the software patent claims and Apple could only sue on trade dress?

Apple is a hardware company. A hardware enclosures design company, really; they outsource most everything to do with producingthe hardware. For a company like Apple, trade dress claims make sense. Software patents seem a little fishy.

(Even for software companies software patents are a bit fishy. That's why they've traditionally relied on copyright. And if I'm not mistaken that's why the USPTO is soon going to be issuing new rules and a new system to deal with software/business method patents since they cause so much concern.)

Ideas sequoiacap.com
207 points by ct  4 days ago   40 comments top 8
chubot 3 days ago 4 replies      
Playing devil's advocate:

"Pick the one thing that is of burning importance to the customer then delight them with a compelling solution."

"Customers will only buy a simple product with a singular value proposition."

What about iPhone, probably the most profitable product of the last 5 years? Is it really that focused?

I don't think that many people in 2006 would have said: my phone is not enough like a computer. I would have said that cell phone call quality and battery life sucks, so give me something that will hold charge for a week, has the quality of a land line, is ultra light, small, can be dropped, etc. That would have been focused.

Steve Jobs said it was 3 products I think... it's a phone, an ipod, and a computer in your pocket. It's this thing where you can play music, surf the web, call your friends, text them, take notes, download apps, and the interface is better than predecessors because you can use your finger.

Not to say their advice is wrong... it's just that thing kind of advice is applicable in limited ways. It sounds like conventional wisdom, and isn't one of their points to challenge conventional wisdom? :)

bcantrill 3 days ago 2 replies      
Nice list and all, but I find myself wondering just how many of these elements of sustainable companies were exhibited by (Sequoia-funded) Color Labs...
jpk 3 days ago 2 replies      
The left-hand side: Pretty good, and most would do well to follow this advice. Remember, however, this was written by a VC firm. This isn't a list of things good companies do, it's a list of things that Sequoia portfolio companies do when they make Sequoia money. To be fair, the overlap is notable. Just remember where the incentives are for a piece like this.

The right-hand side: Steve Blank aptly defines a startup as "an organization formed to search for a repeatable and scalable business model." So a business plan written by a startup is, by definition, all lies. They're a fine exercise as long as you're grounded by the fact that you'll end up with 20 slides of pure bullshit. (Read: Don't put real effort into writing business plans, build a company instead.)

dm8 3 days ago 1 reply      
This one page succinctly conveys what any entrepreneur should think when building a startup be at starting phase or fundraising phase.

Btw, Sequoia has one of the best "about us" page (http://www.sequoiacap.com/about). It's focused on their customers (showing entrepreneur's pictures in early days and how they serve entrepreneurs) rather than glorifying their ninja investing skills.

hcarvalhoalves 3 days ago 1 reply      
Address existing markets poised for rapid growth or change. A market on the path to a $1B potential allows for error and time for real margins to develop.

Target customers who will move fast and pay a premium for a unique offering.

Sure, I too would love to invest only on huge markets composed only by the world's 1%.

wtvanhest 3 days ago 1 reply      
"Your browser appears to be out of date. We highly recommend you upgrade to avoid problems while you use our site."

Then it won't go to the page. I know I'm one of the few stuck with a browser version at work I have no control over, but come on.

brandoncapecci 3 days ago 1 reply      
Sequoia should take out or redesign the leaf in their mark. It looks like cannabis and conflicts with their image.
adrianwaj 3 days ago 0 replies      
Here's an idea: avoid funding 1 company per year and blanket fund with minimal due diligence a whole batch for <$30,000 each so long as they have a business plan (as seen in article) meeting those objectives (as seen in article.)
Google's "Bacon number" search google.com
195 points by nsns  4 days ago   82 comments top 24
mixmax 4 days ago 4 replies      
I'm disappointed it doesn't work with Erdös numbers.

I thought Google was supposed to be a geeky company.

waterlesscloud 4 days ago 2 replies      
I wonder what the cutoff for notability is. It seems to work for big names but not bit part players. Oracle Of Bacon works with all of imdb, but I guess google can't use that resource...
smcl 4 days ago 1 reply      
Weird, Adolf Hitler is meant to have a Bacon number of 3, but he doesn't return anything on Google. From the Wikipedia page:

Adolf Hitler was in Ewige Jude, Der (1940) with Curt Bois
Curt Bois was in Great Sinner, The (1949) with Kenneth Tobey
Kenneth Tobey was in Hero at Large (1980) with Kevin Bacon

engtech 4 days ago 1 reply      
Turns out that Kevin Bacon is only the 444th best candidate for being the center of a six degrees search of Hollywood.


feefie 4 days ago 0 replies      
Google says Justin Bieber's bacon number is 4, but he was in Men In Black III with Josh Brolin and Josh Brolin was in Hollow Man with Keven Bacon.
soupboy 4 days ago 2 replies      
Doesn't work with Erdös number, in case any of you were wondering.
chubot 4 days ago 14 replies      
Hm, it seems like basically any actor you can think of off the top of your head has a Bacon number of 2 (or less). I guess that makes sense. Anyone have some interesting examples of 4+ bacon numbers??
rurounijones 4 days ago 1 reply      
Well colour me shocked, I thought I would give Google a workout and try "Orson Welles"... turns out his number is a very run-of-the-mill 2
essayist 4 days ago 3 replies      
It took me a while to find someone with a Bacon number>2:
Jun8 3 days ago 0 replies      
What would be the most intuitive way to define negative Bacon numbers? If we take this suggestion for negative Erdos numbers (http://infactorium.blogspot.com/2009/01/negative-erdos-numbe...), then this would be people who turned down an offer to star in a movie with Bacon. There must be many people in this category.
mhartl 4 days ago 0 replies      
For the curious, confused, or uninitiated, this whole phenomenon is almost certainly based on the coincidence that "separation" and "Kevin Bacon" sound similar, combined with the well-known phrase "six degrees of separation" (https://en.wikipedia.org/wiki/Six_degrees_of_separation). Thus, "six degrees of Kevin Bacon".
c3d 2 days ago 0 replies      
Not using IMDB sometimes leads to incorrect results. For "Louis de Funès", Google finds a Bacon number of 3:

Louis de Funès and Terry-Thomas appeared in Don't Look Now... We're Being Shot At!.
Terry-Thomas and Tom Aldredge appeared in The Mouse on the Moon.
Tom Aldredge and Kevin Bacon appeared in Taking Chance.

The Oracle finds 2:
Louis de Funès
was in
Les aventures de Rabbi Jacob (1973)
Janet Brandt
was in
Queens Logic (1991)
Kevin Bacon

ColinWright 4 days ago 1 reply      
I have an Erdös number of the first kind of 2, and an Erdös number of the second kind of at most 3. I'm working on my Bacon number. So far I've appeared on television with: Carol Vorderman, Gareth Jones, Angela Rippon, Fred Dineage, and several others that I need to track down, but are even less well known.

My challenge is working out who I have been with that might have been in a film.

kevinpacheco 4 days ago 1 reply      
It's flawed. Google claims a Bacon number of > 1 for Johnny Carson, Rosie O'Donnell and Jay Leno, but he sat for interviews on their talk shows. Also, the results for some musicians include recorded-footage appearances in movies where they had no interaction with the cast.
hds 4 days ago 1 reply      
It doesn't appear to work if you are using google (even .com) in another language, confirmed with Spanish (Castilian).
mey 4 days ago 1 reply      
Does this mean you can ask Google Now for Bacon numbers?
mammalfriend 4 days ago 1 reply      
What this tells me is that someone in the Google PR department had an idea, and a bunch of really smart people actually were resourced to work on it. While at the same time, my search results for useful queries have more spam than ever.


seangransee 4 days ago 0 replies      
so far, the highest bacon number i've found is from another actor with the last name "Bacon"


jdechko 4 days ago 1 reply      
Apparently I have a Bacon Number of 4. I dated a girl who was an extra in "Footloose" (2011 remake), with Dennis Quaid, who was in "The Right Stuff" with Fred Ward, who was in "Tremors" with Mr. Bacon.


mcmire 4 days ago 0 replies      
Well, I guess this makes the Oracle of Bacon obsolete. Wonder how those guys feel about this.
gyaresu 4 days ago 0 replies      
There's a Gareth Bacon...


GitHub availability this week github.com
191 points by tanoku  3 days ago   59 comments top 15
cagenut 3 days ago 2 replies      
I'd like to welcome the github ops/dbas to the club of people who've learned the hard way that automated database failover usually causes more downtime than it prevents.

Here's sortof the seminal post on the matter in the mysql community: http://www.xaprb.com/blog/2009/08/30/failure-scenarios-and-s...

Though it turns into an MMM pile-on the tool doesn't matter so much as the scenarios. Automated failover is simply unlikely to make things better, and likely to make things worse, in most scenarios.

WestCoastJustin 3 days ago 1 reply      
Here are the makings of a bad week (Monday of all things)

- MySQL schema migration causes high load, automated HA solution causes cascading database failure

- MySQL cluster becomes out of sync

- HA solution segfaults

- Redis and MySQL become out of sync

- Incorrect users have access to private repositories!

Cleanup and recovery takes time, all I can say is, I'm glad it was not me who had that mess to clean up. I'm sure they are still working on it too!

This brings to mind some my bad days.. OOM killer decides your Sybase database is using too much memory. Hardware error on DRBD master causes silent data corruption (this took a lot of recovery time on TBs of data). I've been bitten by the MySQL master/slave become out of sync. That is a bad place to be in.. do you copy your master database to the slaves.. that takes a long time even of a fast network.

andrewljohnson 3 days ago 1 reply      
The lack of any negative response on this thread is a testament both to the thoroughness of the post-mortem, and the outstanding quality of GitHub in general.

In GitHub we trust. I can't imagine putting my code anywhere else right now.

pbiggar 3 days ago 0 replies      
I know that they have to be apologetic like this, but the simple fact is that GitHub's uptime is fantastic.

I run http://CircleCi.com, and so we have upwards of 10,000 interactions with GitHub per day, whether API calls, clones, pulls, webhooks, etc. A seriously seriously small number of them fail. They know what they're doing, and they do a great job.

jyap 2 days ago 0 replies      
"As traffic to the status site began to ramp up, we increased the number of dynos running from 8 to 64 and finally 90."

Wait, why isn't there some caching layer? eg. Generate a static page or use Varnish.

This part makes no sense at all.

At most you're then firing up another 5 dynos (or none) to handle the traffic. 90 is ridiculous.

aaronblohowiak 3 days ago 3 replies      
If Github hasn't gotten their custom HA solution right, will you?

Digging into their fix, they disabled automatic failover -- so all DB failures will now require manual intervention. While addressing this particular (erroneous) failover condition, it does raise minimum down time for true failures. Also, their mysql replicant's misconfiguration upon switching masters is also tied to their (stopgap) approach to preventing the hot failover. So, the second problem was due to a mis-use/misunderstanding of maintenance-mode.

How is it possible that the slave could be pointed at the wrong master and have nobody notice for a day? What is the checklist to confirm that failover has occurred correctly?

There is also lesson to be learned in the fact that their status page had scaling issues due to db connection limits. Static files are the most dependable!

jluxenberg 3 days ago 2 replies      
"16 of these repositories were private, and for seven minutes from 8:19 AM to 8:26 AM PDT on Tuesday, Sept 11th, were accessible to people outside of the repository's list of collaborators or team members"


druiid 3 days ago 1 reply      
Well, I have to say... replication related issues like this are why I/we are now using a Galera backed DB cluster. No need to worry about which server is active/passive. You can technically have them all live all the time. In our case we have two live and one failover that only gets accessed by backup scripts and some maintenance tasks.

Once we got the kinks worked out it has been performing amazingly! Wonder if GitHub looked into this kind of a setup before selecting the cluster they did.

cwb71 3 days ago 2 replies      
The part of this post that really blew my mind:

  We host our status site on Heroku to ensure its availability
during an outage. However, during our downtime on Tuesday
our status site experienced some availability issues.

As traffic to the status site began to ramp up, we increased
the number of dynos running from 8 to 64 and finally 90.
This had a negative effect since we were running an old
development database addon (shared database). The number of
dynos maxed out the available connections to the database
causing additional processes to crash.

Ninety dynos for a status page? What was going on there?

cschep 3 days ago 2 replies      
Interesting to read about github using MySQL instead of Postgres. Anyone know why? I am just curious because of all the MySQL bashing I hear in the echo chamber.
akoumjian 3 days ago 1 reply      
I would love to know more about this two pass migration strategy.
donavanm 2 days ago 0 replies      
Update strategy of master first is interesting. I've always seen the other way with update standby, flip to standby, verify, update original master.
Auto inc db keys once again cause horribleness. Nothing new there I suppose.
And as mentioned the multi dyno + DB read status page is craaaazy. Why oh why isnt this a couple static objects. Automagically generate and push if you want. Give 'em a 60 second TTL and call it a day. Put them behind a different CDN & DNS then the rest of your site for bonus points.
gbog 2 days ago 1 reply      
Genuine question: github is built upon git, which is a rock solid system for storing dataand in these reports we read that github relies a lot on MySQL, so... Did the github guys ponder using git as their data store? Just an example, in git one can add comments on commits, would it be possible to use it for the github comment function? Or maybe it is?
dumbluck 2 days ago 0 replies      
This was the awesome kind of explanation about what went wrong and what was learned that I wish everyone would do.
lokotecla1 3 days ago 0 replies      
para que sirve esta pagina soy nuevo
We Need a Warby Parker for Mattresses priceonomics.com
189 points by rohin  3 days ago   165 comments top 38
rscale 3 days ago 4 replies      
I believe that entrepreneurs could do well, generally, by looking for opportunities in industries that are dominated by private-equity players.

If an industry is overweight PE, you can bet that the market analysis looks fantastically attractive (competition isn't too fierce, suppliers have little power, buyers have little power, not many substitutes, and little perceived threat from new entrants). If a clever entrepreneur can render that last condition false and enter that market, that entrepreneur has the opportunity to shrink and consolidate a $huge market that's owned by PE players into a $smaller market that is owned by the entrepreneur.

PE controlled competitors will, generally, not be particularly agile, because PE tends to capture value by leveraging the heck out of a currently viable business model. It's a model that works really well as long as base assumptions hold true, but startups can ruin that for them.

eastdakota 3 days ago 1 reply      
The core problems of the mattress industry (which are not present in eyeglasses industry) are the high costs of shipping and expensive warehouse costs.

Given these, Bed In A Box (http://www.bedinabox.com/) started with what seemed like it could be a potentially disruptive business model. They make-to-order mattresses (will even make custom sizes) and ship Tempurpedic-like memory foam mattresses directly to you via UPS. They suck all the air out of the mattresses so the boxes they come in are reasonably sized. Inside the box, there's a backpack-style sack which makes the mattress easier to carry. I hauled a Queen-sized mattress up four flights of stairs easily.

I've purchased two mattresses through them and they are high quality and extremely comfortable. The first purchase they were easily 50% the cost of any quality mattress I could find elsewhere (including Costco, Sams Club, etc.), especially if you factored in the cost of delivery. I was surprised that when I went to buy another mattress from them their prices were markedly higher.

I wonder if consumers were concerned that the low prices indicated low quality (not the case in my experience) or if they were unable to get the volume to sustain a low margin, high velocity business.

raldi 3 days ago 2 replies      
If you attempt this, I suggest you make a deal with a motel chain: When a customer checks into a room, they discover a little sign on the bed. The sign says, "Like this mattress? Get a brand-new copy delivered to your home for $X00 by visiting mattressr.com and entering bed code MEDIUMSOFT-23."
Spooky23 3 days ago 3 replies      
There are all sorts of outlets for reasonably priced, what you see is what you get mattresses: Sam's Club. Costco. Ikea. You can get a decent name brand mainstream mattress for ~$500.

The problem with mattresses is that it's a product where you need a salesman. There's a bunch of different products that look similar, but have significant differences. You want to match the customer with what they want (or tell them what they want) so that they don't return the thing.

Plus, there are some inherent logistical differences between a pair of eyeglasses that can be dropped in an envelope and shipped to anywhere in a day or two. Distribution and warehousing is expensive, the product needs to be delivered quickly (and picked up if the customer is displeased).

There is a market for discount mattress sales outlets on the internet -- but just as online furniture and appliance outlets haven't "disrupted" the market, mattresses online are unlikely to either.

MartinCron 3 days ago 4 replies      
While you're disrupting the mattress industry, please consider re-thinking the King form factor. Changing the aspect ratio by just a few inches would make it perfectly square, which allows for you to rotate 90 degrees as well as flip, so the whole thing would wear out more evenly.

As an extra bonus, this would make putting sheets on easier as there's no wrong way (short of inside-out, I guess).

silverbax88 3 days ago 2 replies      
Having worked for one of the major mattress firms, there are truths in the article, but also some serious mistakes.

The pricing structure, where they hide the models by using different names across retailers, is 100% true. They absolutely do that to prevent price shopping.

The markup math is off. Mattresses are a high margin business, but most of those mattresses you see in specialty retailers are not built until someone buys one. You see, those mattresses are custom to the customer - from the tick (stitching pattern, which creates a firmer or softer surface) to the foam density, to EVERYTHING. It's like ordering a car where the car is measured to a specific person's height, weight and engine preference. You can imagine what a returned mattress is worth. Pretty much nothing. The margins have to cover all of that. Are the margins good? Yes. Would a small company be able to cut their margins to make one-off custom mattresses and compete? ...maybe.

Finally, there are retail outlets - Costco, Ikea, that buy from those mattress companies in bulk and sell generic mattresses much cheaper.

So, yeah, there's some market there but not as rich as some might think.

Fluxx 3 days ago 3 replies      
I'm not sure if you can count this as a startup, but I bought my King-sized Sleep Innovations (memory foam) mattress with Amazon Prime for $530. And if I wanted the less-think 10" one, it would be $400.


The damn thing was ~100lbs in a giant box, and I got it shipped to me free. It's super comfortable and well worth the money - remember you sleep for like 25% of your life.

Mattresses seem like less of a specialty-item than eye glasses, so I wonder if big online retailers like Amazon can just cut out the middle man and service 80-90% of customers?

ryanwaggoner 3 days ago 1 reply      
Like any startup idea, there will be objections. Shipping mattresses is expensive, people want to lie on them first, mattresses require research and development spending to develop, a mattress purchase only happens once a decade, etc. All these objections might be right, but they all sound surmountable.

They might be surmountable, but that doesn't make this a better opportunity than a lot of the other opportunities out there, especially for a startup. The costs involved with disrupting the mattress industry as a manufacturer AND retailer are better left to a larger company. Like IKEA, as the article itself pointed out.

MattRogish 3 days ago 1 reply      
"By the time a customer buys a mattress, it costs them ~74% more than the production cost of the product."

I'm not arguing that the mattress industry isn't ripe for disruption, but very rarely is value delivered directly related to the cost of production.

COGS is often difficult to accurately estimate (how much do you allocate R&D and other overhead?).

An iPhone 5 may only contain $110 worth of silicon, but the value delivered is a lot more than the raw material cost. Jony Ive's salary represents a tiny fraction of each iPhone, but his design and influence represents a significant chunk of the profit.

startupfounder 3 days ago 5 replies      
We need a Warby Parker for Diamonds!

1. Oligopoly market structure CHECK
2. Insane gross margins CHECK
3. Opaque and misleading product naming CHECK
4. Expensive distribution through unpleasant channels CHECK CHECK CHECK

streptomycin 3 days ago 3 replies      
FWIW, Warby Parker was not the first web-based retailer to undercut traditional eyewear sales, nor are they the cheapest. They do seem to have the best PR, though.
kbrower 3 days ago 0 replies      
I am working at a company that is trying to do just that.


twoodfin 3 days ago 0 replies      
One advantage that the eyeglass market has is massive tax favorability in the U.S.

I believe it's still the case that prescription eyeglasses can be bought with pre-tax dollars under a "use it or lose it" flex savings plan. I assume vision plans, which often include large purchase credits for eyeglasses at least biennially, are also tax deductible benefits.

The result is often relatively price-insensitive consumers who "have" to spend $200+ on glasses lest they not be taking full advantage of their benefit.

larrys 3 days ago 0 replies      
For reference, here is a publicly traded retail mattress seller and it doesn't appear from their profile that they manufacture but only resell:


Take note of the margins, this isn't Microsoft sized here.

They have almost 900 stores in 27 states.

The article therefore is based on the idea of manufacturing your own mattress and selling web based. Unfortunately this would require warehouses around the country and a manufacturing facility in this country to make the mattresses. Although I'm not sure, I would imagine it would not be cost effective to ship a mattress from China (although I guess Mexico is possible) because of the size and weight. So this is not selling sunglasses or fashion eyewear which can easily be manufactured overseas as well as easily shipped (and returned).

ksherlock 3 days ago 0 replies      
I'd think a better model for disruption would be Priceline. Name a price and let local mattress stores supply it.

My Luxotica/Ray Bans were made in Italy and (on sale) aren't any more expensive than the Chinese made Warby Parker sunglasses.

markerdmann 3 days ago 0 replies      
I just bought a mattress a few months ago, and I agree whole-heartedly with this post. My solution was to buy a foam mattress from bedinabox.com, which I would say is the Warby Parker for mattresses.
pkulak 3 days ago 0 replies      
It's really easy to spot the industries that have ridiculous margins; just find the shops that stay open forever, yet seem to make about 1-2 sales a day. I've seen mattress stores that seem to be able to sustain one full-time employee and about 20000 square feet of showroom on a couple purchases a day. Some with sunglass stores.
uptown 2 days ago 0 replies      
Warby Parker's name has crossed my radar a few times in the past month, but I know nothing about what makes them special. Can somebody please enlighten me, because even after looking at their site, I still don't get what the big deal is. Then again, I've got 20/15 vision, and don't wear glasses, so I'm not their target market.
latchkey 3 days ago 2 replies      
I bought a keetsa mattress years ago and love it. The op bought one too. It seems like the best thing to do here would be to just continue to support keetsa as they really are doing a good job on pretty much all angles. Keetsa is the Warby Parker here.
debacle 3 days ago 0 replies      
When I bought my last mattress, it was a relatively painless experience, and the cost was incredibly reasonable (considering a rough estimate of what the manufacture labor might have cost).

What kind of mattresses are people buying, and what sort of retailers are they going to, where this seems like an immensely extortionist industry?

tomjen3 3 days ago 0 replies      
Maybe instead of focussing on selling mattresses you should focus on some sort of price comparison machine where you can enter what characteristica you want to (must have memory foam, must be this size, must be x, y and z) and then have the machine find close matches and display the variours prices? That way it won't matter if they fix the name, since you don't compare the mattresses on names, but on features.
dirtae 3 days ago 0 replies      
I was a big fan of The Original Mattress Factory when I lived in Pennsylvania. They manufacture their own mattresses and sell them direct to consumers.


Unfortunately they don't have a presence on the West Coast.

olalonde 2 days ago 0 replies      
I'm starting to wonder if priceonomics.com shouldn't pivot to become a full-fledged data driven publication. They have been publishing some amazingly high quality content lately.
ChuckMcM 3 days ago 1 reply      
Clearly there is a distribution challenge (high transportation / storage costs) but I like the idea of disrupting them.
johnzimmerman 3 days ago 0 replies      
A couple of years ago I was looking for a Tempur-Pedic style mattress, but didn't want to spend thousands for one. After doing a lot of research I found Isoform mattresses. They are only available through the mail and have a 90-day return window if you're not happy. It would be very expensive to ship numerous mattresses, but the trial of one with no commitment to buy is pretty good.
stretchwithme 2 days ago 0 replies      
Wouldn't it be cool if a mattress came in 8 pieces so you can easily move it and flip it, and rearrange or even replace saggy sections?

I'm sure the need for the entire thing to respond to your body the way it does probably prevents such a thing, but that sure would make it easier to own one.

daveman 3 days ago 0 replies      
Like glasses, it's an interesting disruption opportunity due to the sheer size of demand. Just about 100% of the population sleeps on a mattress. It's hard to find other industries with so much penetration of demand and such inefficient competition.

These days it doesn't seem like outbound distribution is too big of a deal (many mattresses are shippable in rolled or compressed-box form), it's the reverse logistics that are tricky. Once the genie is out of the bottle, good luck getting it back in. I'd love to be able to try out a mattress, like Zappos shoes or Bonobos pants, and return them for free if I'm not 100% happy. Maybe someone needs to invent an easily-compressable mattress so I can purchase online with total confidence.

geoka9 3 days ago 1 reply      
Incidentally, $120 for a frame from Warby Parker (which is only "a couple of pieces of plastic and metal") is still too high IMO.
nisbet 3 days ago 0 replies      
The Author shouldn't have credited Dornob for the first picture of a dreamer, but the original project, which was done by students: http://www.behance.net/gallery/Dreamers/313618
Wasn't hard to find out - Dornob linked to it. So should everybody who uses other's images.
benatkin 3 days ago 0 replies      
This needs "Mattresses" added to its database: http://nonstartr.com/
ry0ohki 3 days ago 0 replies      
Is it so bad that an industry has high margins? $500-1000 doesn't seem that expensive for a once every 10 years purchase. Mattress salesman gotta make a living! Seems very hypocritical while we make 90% margins on software.
jameshsi 3 days ago 0 replies      
Interesting post. Perhaps on the incumbent end, the equivalent would be "We Need an OPEC of Mattresses."
techcofounder 3 days ago 1 reply      
I completely agree! I recently went shopping for a mattress at Sleep Train and they admitted that they mask the model numbers of their mattresses so you can't find them online for cheaper. Someone please build this.
cloudwalking 3 days ago 0 replies      
What is a "Google-esque margin"?
fowkswe 3 days ago 0 replies      
The article hints at this, but Ikea solves all these problems. They have a small set of easily discernable mattress lines that are priced extremely well.
BroNamath 3 days ago 0 replies      
I just got 5 frames from WP in the mail for "in home try on." The quality of the glasses are sup-par. They feel like frames you would find at the gas station. Yes the frames are stylish, but for anyone who has bought glasses their entire lives, you would know right away why these cost $95. There is a company that is the WP of mattresses: Ikea. The product is cheap and of low quality.
knes 3 days ago 1 reply      
Someone should do a Warby Parker for Wheelchairs.
medell 3 days ago 1 reply      
100% agree.
But if you must buy a mattress go to SleepCountry, they price match anything.
       cached 18 September 2012 02:11:01 GMT