- Fields for typing-in a credit card
- Fields for typing-in an e-mail address
- Fields for typing-in a U.S. street address
There are widely-known techniques for optimizing data entry for these fields, yet these techniques aren't widely adopted, and further yet they're known to increase conversation rates.
Then, the fields would render on the page. The performance of the fields (their effect on conversion rates) could be measured continuously. New variants of the labels and fields could be A/B tested continuously as well. That is, the performance of the fields would improve over time.
If there's interest I'll elaborate in a blog post (with mockups).
made a few edits
Off-the-shelf usefulness would be improved a lot if the plugin contained a list of say 100 or so of the most commonly-found email domains.
We experimented with doing something like this on Quizlet, but didn't actually launch anything. We first looked at a lot of the data and doing based on string distance is the wrong approach.
For example, if you type hotmail.de into that checker, it suggests hotmail.fr. Another is ymail.com --> gmail.com. The more valid domains you add, the more (correct) permutations get marked as invalid. We have 20k users with ymail accounts.
I think a blacklist approach is much more solid than a whitelist approach, I just haven't gotten around to building it.
Edit: Another good idea from hinathan.
This checks email addresses using regexps and DNS.
casema.nl, chello.nl, hetnet.nl, home.nl, kpnmail.nl, kpnplanet.nl, live.nl, online.nl, planet.nl, quicknet.nl, schuttelaar.nl, skynet.be, t-online.de, tiscali.nl, upcmail.nl, wanadoo.nl, wxs.nl, xs4all.nl, zeelandnet.nl, ziggo.nl, zonnet.nl.
One thing we do differently on http://www.queondaspanish.com/ though is allow users who haven't confirmed there email use the logged in features but with limitations. They can keep track of their lesson progress for example, but not send messages to other users. They can also change misspelled email addresses, which I think would help in your case.
Saying the weekday on each would be great too (ex: Friday, March 21). When you're working with Australia it can be hard to remember that they're almost a full day ahead.
I designed it this way because none of the time zone tools out there reflect the actual nature of time (zones): simultaneous, overlapping lines thru time. ETZ doesn't just give you the answer, it helps you create a useful model of understanding to take with you & use even when you're not looking at ETZ.
We've been slowly improving it, so expect more options for customizing the tz's you see & static links to times in the future, etc.
EDIT: if you like the design of ETZ, you will probably love Freckle, which is our time tracking / productivity tool -- all about making your data painless to get, then super useful & actionable: http://letsfreckle.com/startups/
I'm sure there was an article on the front page where they talked about the build and stuff like local storage on iPad. (it started life as an iPad web app).
I'm aware that "dupes" are bound to occur, but this was big news last time around and I'm surprised no one remembers it.
It shows completely random cities I don't care about. As a bonus it doesn't mention what timezone they are in. Also, I'm pretty sure my locale doesn't use 12h format.
Anyway, I don't mind the "Freckle" ad at the end, but please don't hijack my clicks. If I want to open it in a new tab, don't use a js on_click, and put a simple link to the website.
The main consumer problem it solves for me is the "I'm in Barcelona on Tuesday and need a conference call between Atlanta and Ukraine. What is a time that's workable for everyone"
It's indispensable for that problem for me. Filtering TZ and adding TZ would be a nice additional feature though.
I have a cron script that runs every hour that pulls in sat images of cloud cover, the earth, and then the daylight lines and composites them together with imagemagick. I got the script from a lifehacker article where they used it for wallpaper.
$ TZ=Australia/Sydney date Thu Mar 22 19:16:41 EST 2012
My problem with Google (and this site) is sometimes I don't know a city and am only given a timezone (e.g. on the phone someone says "Call me back before 7:30 Pacific").
Content marketing at its finest. Great job.
EDIT: ooh actually, could do with an option to remove/add the sliding time selection. I'm finding it hard to revert to my current local time once I've moved the selection.
For the moment I prefer www.time.is which takes a different approach but what I want.
Could you also put the timezone (both GMT and other name) besides the city name? (as subscript & subscript, one over the orther)[ex: San Francisco (PDT/GMT-x)]
I've been a fan of Aziz for a long time- I'll be buying.
"OH SHIITTTT!!!! Thanks for buying my new comedy special!!! THAT $5 IS MINE SON. Just kidding, but seriously it is."
He made a good amount of money, but given Louis CK is probably the most popular working comedian today, it didn't seem like ENOUGH money to justify the entire business model (assuming no one else would make as much doing the same).
But now Aziz Ansari is doing it. Jim Gaffigan has announced plans to do so as well.
I know we'll have to wait for their numbers to come in to find out if Louis CK was a fluke or a trend, but I'm really hoping I was wrong and it's the latter.
If this is the future of selling online content, sign me up.
I remember last time someone linked to something similar, but they had DRM and draconian payment methods (no paypal etc).
But it puzzles me why did they build their own digital delivery solution from scratch instead of using something like GumRoad?
The download is hosted on Amazon S3 where I'm barely getting 500k/s. The stream and download limits would then limit his delivery costs to ~$1.50 per customer with S3's bandwidth pricing. PayPal is taking out $0.41. He could be getting as little as $3 of each $5 for the special.
It's one of the best comedies on TV right now. I'd even say that it is approaching Arrested Development-levels.
Got a Rails 500 error after paying, but just refreshing the page got me through.
The page has a humans.txt, but it looks like it's just the blank template(?)
If a comedian's routine is recorded and widely disseminated, a lot of people might become fans and want to see him/her, but they're probably not going to want to see the same jokes again. The comedian will need to come up with new material.
Writing and perfecting a good comedy bit might be comparable in time and effort to writing and perfecting a good song. Anyone know?
How do these considerations affect which business model works best for different types of artists online?
If people think it's a good idea I'll add a bunch of other fancy stuff :)
Linking to our site"You must not establish a link from any website that is not owned by you."
That rules out 90% of social media..
Create enough value that you establish yourself as an expert in whatever your art is and then exploit secondary pursuits. I constantly refer back to Diddy getting famous with music, but also establishing himself as a partying/lifestyle expert and then making a killing on Ciroc. 50 cent did it with vitamin water and fitness, Athletes do it with endorsements.
It is the Tony Robbins model. His books didn't make him rich but they allowed him to charge 500k a speaking gig.
Your initial art is your marketing that develops your right to charge money for future art.
Update: http://azizansari.com/tos says, All downloads are for use on one device only. You may keep one backup copy of the digital content downloaded from this site on any digital media of your choice.
All of which is a long way of saying that he runs very slowly, his wings are very small, and they flap very slowly. The first couple seconds of him after take off our patently absurd; you need to be applying - somehow - hundreds of pounds of force to the air to push you off the ground. Yes, fine, he has a wonderful wing design and some amazing motors and (apparently) zero weight batteries. Fantastic! But none of the components in that video are producing hundreds of pounds of force. (A commenter at Wired estimates that the servo motors are theoretically applying enough force to pick up a two ton load, in fraction of a second. If we had this tech, we could fly, although that wing design probably couldn't. We could also make Iron Man-style powered armour. Unfortunately, we don't have this tech.) The whole thing is multiple orders of magnitude off from the realm of "remotely possible".
There are just so many red flags. The bizarre edits, the poor filming, the ridiculous design of the wing, the secrecy, the way nobody in the video acts right, the way the wing magically changes designs in different shots, the fact that the wing is clearly not fully loaded, the weird clothing and gear choices, etc., etc., etc. Wired has been hoaxed hard.
1) You have the engineering fortitude to come up with something that has never been done before, and you choose to attach it to your body with a consumer grade backback? And not even a full hiking one with multiple points of attachment? No rock-climbing harness?
2) Fabric is waaay too loose on the wings to be effective in any kind of aerodynamic sense. At best this is a kite
3) He would "only be able to come up with 5% of the power needed", so he used a bunch of Turnigy motors and some magical super-compact power supply to provide the necessary lift? Not to mention, motors aren't exactly built for rapid oscillation back and forth, and I see no complex mechanisms to turn rotations into a very strong/rapid oscillating force
4) There are ZERO control surfaces on those wings to be able to pull up for a landing like he does. No, that pillow case between his legs doesn't count.
5) An Android operated system, that dynamically reads two separate wii remotes, and converts that accelerometer input into wing movements would not be that responsive.
6) No continuous shot from take-off to landing
7) No shot of the gear used to accomplish this, whether it be the motors/batteries/wiring/pulleys
1. He's received criticism about his videos before, but still insists on filming in random parks, only releasing to press after the event, and using blurry/shaky footage.
2. When he takes off, the camera shakes heavily. When he lands, someone steps in front to block the view.
3. At 0:35, his legs lift up so that his body is parallel to the ground (necessary for flight.) If he had been placing his legs on some sort of device for flight, why would the liftup be that smooth?
This would be awesome if it were real, but... just seems fishy.
My guess is that the wings are not mechanical at all beyond being flexible, and he's just pulling on them to flap, and they pulled the guy from an ATV or something. His motion looks like a kite, when he's flapping wildly the front of his chest stays pretty stable and looks like it's anchored. The wings look like they could be modified versions of those kite-surfing things people use.
It's a hell of a lot easier to paint out a wire and a vehicle than it is to put in a synthetic flying dude. and that would get you the helmet-cam footage without having to do extra work.
Also there's tire tracks on the ground from previous takes.
edit: for example:
It might not even be the wings providing the lift, he could have a whole chute behind it like in these videos.
Give it a couple of years and those distracting-from-transition tricks probably won't be necessary any more. Then what?
As comparison, a human-powered articulated wing: http://www.youtube.com/watch?v=0E77j1imdhQ A non-articulated wing http://video.google.com/videoplay?docid=-1638710914506519616 18km) And the famous Gossamer Albatross flew from England to France http://en.wikipedia.org/wiki/Gossamer_AlbatrossAlso http://en.wikipedia.org/wiki/Ornithopter#Manned_flight
To the downvoters: haters gonna hate, hackers gonna hack
*editNow that I've actually watched the video, there's something I'd like to add to the list of red flags others have already pointed out: His landing trajectory. It's way too steep and forward. He'd have to enjoy a near 1:1 thrust ratio to land at that angle, and he'd have to have been pitched up and back to apply all of that thrust against gravity and his forward motion.
The grass in the second one (suspected CGI) isn't even the same color or saturation level.
The guys reaction at the end of the video is not one of triumph and excitement. Here are some videos of what real reactions look like:
First time skydiving:
Breaking a world record:
*Edit - Fixed last link
I am sure since we are only 10 days away from April 1st, that will be the reveal.
There is simply not enough surface area, not enough motor power and not enough battery power for it to be real.
The first person to really fly like this may well be a double amputee or other person generally thought of as "disabled". Someone like Bob Wieland would have an enormous advantage on paper over someone like the guy in the video.
Hint: It's fake.
Edit: OK at 0:23 you catch a glimpse of someone by the lake that might be in position for that shot.
I can't find any reliable mention of Jarno Smeets on the web before May 2011.
His blog, his domain, his Twitter and YouTube accounts all seem to have started about June of last year.
His Linkedin lists some plausible employment for a mechanical engineer, but comparing his userid to mine, that account hasn't been around too long either.
The Biomechanics professor he interviews in the video seems legit: http://www.kalons.nl/otten/ http://www.rug.nl/corporate/nieuws/opinie/2011/opinie29_2011... But the professor only speaks in general terms about the requirements for flight and is never seen again in the building or the testing videos.
Perhaps someone could check his Facebook. Does FB say when he signed up for that?
None of this is completely incriminating of course but sadly it does fit the pattern of an ad agency project.
There are many more details on his blog http://www.humanbirdwings.net/project-timeline/
Edit: JoeCortopassi raised some good points in his comment. I'm not so sure this is plausible, even with the 4 motors.
1. GoPro-camera viral ad... 20%2. funny joke... 10%3. this is real ... 70%
damn... the track record of incredible, but fake videos in the recent past makes me feel skeptical, but I wish it was real
btw 0:57 the tracks on the grass.. look suspicious ;)
http://gawker.com/5539222/how-not-to-fall-for-a-viral-market... (Yes it's Gawker but they did have one of the better write-ups :/ ).
A few minutes browsing the project homepage (http://www.humanbirdwings.net) and WHOIS (http://whois.net/whois/humanbirdwings.net) makes it look more legit though...
The only part that really ruins it for me is, where is the battery powering the electric motors?
I mean, since I am ignorant about aerodynamics and a bunch of stuff, I can suspend my disbelief about the wing actually providing enough lift, and suppose that there exist incredibly powerful motors that could operate in that way.
I would even like to believe that there is an ultrapowerful battery that would be able to provide enough juice for these incredible motors. But where is it?
Man I hope Mythbusters does this one!
The fact that they haven't makes me think it's fake.
I wish it were real though.
This one seems to be much better however when he lifts his legs you can see it's too smooth.
Yes the dream of human flight is alive - but it looks like this - http://vimeo.com/20775072
Closeup of backpack here:
I also see a bit of CGI in his legs when he is shown to be flapping in the air.
(Not for any logical reasons, but the video just looks fake!)
The article insinuates this is human powered flight.
Any realistic attempt at a solely human powered flying machine would utilize leg power, not arms which pale in comparison in terms of power output.
Also seems a bit fishy a buzzing sound, much like that of an engine, starts the same time as the wing flapping.
Interesting engineering feat but definitely not the holy grail of man powered flight. This is Turnigy powered flight, big deal.
"The design is based on mechanics used in robotic prosthetics."
This makes me wonder what Leonardo da Vinci could've accomplished given some base robotics technology to work off of.
1) It is never said that 3 levels is the maximum depth of a dream until Limbo occurs. My interpretation has always been that Cobb and Ariadne hooked up a shared-dream machine to Fisher's dead body, which brought them into Limbo.
2) Why are there 2 Limbos? There's the one Cobb and Ariadne follow Fisher and Mal into (which has the architecture of the Limbo that Cobb and Mal shared all those years ago). There's then the Limbo that Cobb and Saito share, where it looks like Saito architected the environment (Asian influences). And if they were the same Limbo, why was Cobb washed up on a shore with no memory of how he got there in Saito's Limbo?
3) In the Limbo that Cobb and Mal shared, all they needed to do was kill themselves to wake up. Why then was the defibrillator needed to wake Fisher up from death in Limbo to Dream 3?
It was (I thought) very straight-forward. The bigger problems with the movie come from the plot holes pointed out by Pewpewarrows. Do those holes perhaps contribute to the confusion?
Maybe because of the scroll speed the animations have fewer frames to animate which makes it look choppy? I'm not sure.
The content might be interesting, but it's impossible to tell since this might be the worst way of presenting data I've seen this year. Which is quite an achievement, congratulations :-)
It's a little strange to see these controls which are currently very anchored in the corner of the window to be moving and sliding around, especially when the view inside the window is scrolling off the screen.
I could see people running into trouble when they've somehow moved the window partially obscuring controls. But if the controls are off the screen, I think it reinforces the idea that this "box" is a window into an application. It doesn't resize unless you grab an edge. (1) I don't mind making the tradeoff towards beginners understanding the computer when there are keyboard shortcuts for advanced users.
(1) This is now worse in OS X from a metaphor perspective. Before you could only resize from the bottom-right where there was a gripper. Now you can resize from any outside edge and there are no grippers/indicators. http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.a...
Quite a few programs do custom rendering up there in a way that would make it difficult to retrofit this in a universally compatible way. These programs would at a minimum need to get events to know that the various elements have moved which would require code changes in the programs to listen for and react to those events. Given how much Microsoft bends over backwards to maintain Win32 compatibility (less than in the past, but still far more than average), I doubt they'd put something like this in unless it was a wholesale interface change (similar to Metro... which avoids this issue altogether by just not having title bars).
For the Windows version, dragging it pretty far to the right leaves essentially just the close button group left. So what if I want to drag it back? I'm incredibly more likely to accidentally click one of those buttons instead of correctly grab the tiny sliver of space to redrag. (Because when I drag things off-screen, I usually bring them back eventually, not to close them, but to use them.) This seems like a solution ot a non-problem. Do most people really close/minimize/maximize windows immediately after dragging them back fully on-screen?
It would also force the priority of responsive design. Now that we all work at so many different resolutions, apps and sites should adapt seamlessly to resizing.
Both Windows and Mac OS try pretty hard to avoid this, but with two monitors it happens every now and then--especially when unpluggin/plugging the secondary monitor.
Without the title bar, it can be really hard to get the window back on the screen. Usually involves, if possible, resizing the window so it shows on both screens or unplugging/re-plugging the secondary monitor.
- Menu (to list available context options)
- Help (to show context help)
- Maximize/Restore (toggle mode)
And the potentially very useful directional arrows keys are almost completely useless except when editing text (although game developers use them meaningfully)
The keyboard is also littered with buttons whose function are designed specifically for text editing, not necesarily a bad thing, but when was the last time anybody actually reviewed the efficiency of the modern keyboard to discover if it is doing a good job or not!?!?!
The Windows version isn't confusing at all though (in its current implementation). I think this would be a really nice feature on Windows.
If I do, it's probably because I want it easily accessible but not obstructing other windows, so these buttons would make it harder to drag it back.
For multiple monitors - the controls are dragged to the other monitor as well...
"""The slope of this graph is the whole story. The complicated general purpose computers are at the bottom, and the simpler specialized computers are at the top."""
This is a terrible graph. The Mac has always been a premium niche computer. 28 years ago computing was in its infancy and computers were expensive, unnetworked with limited benefit to the average household.
Compare this the iPad / iPod Touch and iPhone. These are main stream devices that achieved immediate traction. It is unrealistic to compare Mac sales with those of main stream devices.
You then have the desktop market as a whole. If you compare any single company or brand of desktop against iPad sales, desktop sales would look in trouble. However, if you compare desktop sales to tablet sales it is clear that tablets are still only in their infancy.
BUT TABLETS ARE SELLING FASTER THAN DESKTOPS!
I don't know if this true but it doesn't matter and it doesn't say much about the state of desktops. Everyone has a computer, the market is saturated. No one has a tablet. It makes sense that tablet sales would rocket.
Buying tablets also make a lot of sense for people who just consume content. The fact is though that the iPad isn't great for productivity. It is far better for consuming content. This is what most people do.
However if you want to program, edit images, write a novel, maintain spreadsheets, make movies etc a desktop / laptop is what you need.
The PC isn't dead and it isn't dying. It has reached a point where people only buy replacements. Now yes, some people may switch perminantly to a tablet. Thats fine. For the forseeable future though there will be a large market of business and consumers who require more than a tablet can provide.
The article also touches on how great the new iPad screen is. I don't think its all that. I walked past the demo of 'the new iPad' twice before asking a sales guy to point to which one was 'the new iPad'. Yes, if you put the screen close to your face you see less pixelation on icons. For general web surfing though I saw no perceived difference. Hell, I don't really see any pixelation on my iPad2. Perhaps I am not holding it close enough to my face...
(I'm a Mac user and I find myself spending a lot less time on tech support type issues than back in the day when I was using Linux and Windows, still it's hard to deny that iPads are currently the epitome of simplicity, compared to their power.)
And that's what I'm worried about: "No user serviceable parts inside". I'm concerned the very reason tablets will take over the PC market will also mean that tomorrow's kids' experience is very different from, and I would argue poorer than, my experience when I got my first computer, a Commodore VIC 20.
Ironically, my VIC 20 also was very user friendly. You turn it on, it's on. You put in a diskette -- well, it didn't load automatically but making it load was a very simple incantation, and once the game started, it was started. Things were simple and worked, for the most part, quite well. No tech support needed. But the BASIC shell was there right at your fingertips -- hell, the manual came with example BASIC programs.
Quibbling over the merits of BASIC aside, it was a simple experience but it was also tremendously open.
Things got much more complicated since then; network connectivity in particular introduced previously unknown threats to users, so of course this is a simplified comparison. Still, I wonder, is giving up the freedom to tinker with the system really the price tomorrow's consumers will have to pay in order to buy simplicity?
And if you're thinking about replying with links to IDEs running on the iPad: no, something that runs in the cloud and has no direct access whatsoever to the internals of the machine does not qualify as a modern-day replacement for this experience, no matter how sophisticated.
The original Droid came out in Nov '09 and had a 265ppi screen (same as the new iPad). When I upgraded from my 1st gen iPhone to the Nexus One shortly after that and put the two side-by-side, I simply could not stop admiring how incredible the screen was.
Sorry, but it really was just simple economics and we would've gotten high-DPI displays regardless.
I agree with him that the updated display is the killer feature. But you have to give props to a high performance wireless network architecture too.
That being said, two tablets with identical specs, I prefer an Android tablet and a more accessible ecosystem, the problem for Android right now is the R&D and supply chain investment competition. Ten manufacturers each investing 10 million in their tablet design is not nearly as efficient as one person investing 100 million in their tablet design.
I keep hoping Google will address that issue by providing hardware/manufacturing R&D but it isn't one of their core competencies. When I worked there folks would call me to get in introduction to the folks designing the next Android phone, I'd chuckle and explain they had to go talk to Motorola or HTC. Perhaps now with their Motorola acquisition they will be in a place to make that investment, time will tell.
Or code, test & deploy web apps from an iPad.
Or design & layout web pages on an iPad.
We live in a post-mainframe era even though mainframes are still alive an kicking. But a mainframe isn't required create, test and deploy PC software. Once PCs are no longer required to create, test and deploy code for mobile devices we'll be in a post-PC era - that is, once PCs are no longer a required part of the general purpose computing ecosystem.
The desktop computer industry is dead. Innovation has virtually ceased. Microsoft dominates with very little innovation. That's over. Apple lost. The desktop market has entered the dark ages, and it's going to be in the dark ages for the next 10 years, or certainly for the rest of this decade.
If I were running Apple, I would milk the Macintosh for all it's worth â" and get busy on the next great thing. The PC wars are over. Done. Microsoft won a long time ago.
The fact that Steve jobs could see this coming from back in 1996 is incredible. Add to that, that Steve also knew all through the Tablet PC initiatives of the early 2000's that it was too soon, technology wasn't able to properly support the post-PC form factors yet, and that styluses were a loser proposition. Bill Gates also saw the same forces at play, but he responded in the early 2000's with a failed attempt to move the PC into the next era. I guess that's a natural reaction for the winner of the PC era -- to try and carry it on.
You can see the same forces at play in the audio industry. Audio has gone beyond the early DIY tinkerer days, through a period of standardization and ubiquity, through an era where big, complicated, elaborate machinery was a status display, to a time of maturity where convenience and design prevails and the technology fades into the background.
The problem with audio, is that it doesn't let us extrapolate to the future. What's next? I can see a period where feature-phones increase in capability to the point where they're like the 1st generation smartphones, but with networks that are 1000X more capable -- just in time for widespread adoption by the developing world.
Will the developing world leapfrog the developed world in much the same way that it skipped over the era of hardwired networks straight to mobile? Will they be coming to economic power just as the digital realm has obsoleted many forms of material wealth?
While I agree that the display improvements are noteworthy, I would say that tablets are not "by definition all display." The tactile interaction is as much a part of a tablet's worth.
"Post-pc" is just a talking point. The post-PC era will eliminate PCs like McDonalds eliminated kitchens.
Atwood does not say "hey throw out your PCs". In fact, he opens by stating that PCs are already ubiquitous. This article examines the idea that major innovation is currently happening in the post PC area. He posits that the new iPad display is a killer feature.
This is a much more interesting talking point than "o noes but my Linux netbook is kewler".
As a consumer, I worry about "buying" a closed, networked device and discovering that I don't really own it, but merely have a licence to use it under draconian terms of service. I don't want to "buy" a book or a movie or a piece of software, only to have it yanked off my device remotely.
Meanwhile, the government of my country (Canada) is rolling out a new copyright law that will make it a criminal offence to circumvent "digital locks", even if it's for legitimate, legal personal use.
However, I still hold out hope that as the technology matures, costs fall and competitors catch up to Apple's tight vertical integration, it becomes more feasible to run a full-featured open source device with a healthy ecosystem built around it.
The thing is, most of my computer use is programming and writing. I need a keyboard, support for a term window, Emacs and IntelliJ, TeXShop, etc.
I might be able to earn a living using just an iPad by running a term app and doing development using a remote Linux server with SSH, Emacs, etc. and do writing using Pages, but that would be like running a race hopping on one foot.
I think that "iPad 5" might do it for me however: a larger physical screen size, about half the weight, and great IDE support for doing Lisp, Java, Clojure, etc. I'll wait 2 years and see. I think that this will require new paradigms in writing and programming tools. Mind is open.
My wife is not an advanced user of computers by any stretch of the imagination, but I would never buy an iPad for her.
She has a DSLR and 60k photos in iPhoto (~320G). iPads will eventually store this much in 3 years, but you will want it backed up somewhere (and in 3 years the "cloud" still won't be doing this much (personal) data at a reasonable personal cost compared to a physical device). And she will not be tolerant of doing edits or looking at photos on a 10" screen.
Not to mention that once you increase the screen size, portability goes out the window -- you will have a monitor. And guess what? Touch input doesn't really work ergonomically on a 24" monitor.
There are solutions, Airplay will obviously be involved, as will BT input devices. But it's not quite ready for prime-time yet.
Well, I'd have to say the OS's interface and overall UX is more important. Maybe not for some, but it's a big deal for me.
Most people here are actually producers when it comes to computers, so most people say things like "I still need to product (spreadsheet | programming | lolcat images)" and the pc will never go away. But I think this article was talking about your websurfing, facebook updating, web reading consumers.
Turns out the iPad does everything he and the wife want, which is mostly surfing the web, listening to iTunes and getting pictures from their point-and-shoot camera to someplace safe. Remaining issue: printing the odd document. But you can get an AirPrint enabled smearjet for ÂŁ35.
Our recommendation: Get the iPad now, see if it does everything you want. If it does, get another iPad for the wife instead of that Mac you'd share between you.
 Explaining iTunes Match made his eyes light up: "So I won't need to back it up to an USB disk anymore? And I don't need to buy the 64 GB iPad to fit it all on?" (Hey, it's like someone designed this service for people like him).
 Most casual computer users seem to do this these days because they've already learnt the hard lesson of losing all their stuff once.
It's a great couch device, but it's too heavy to carry with you. I don't carry a murse, and I'd rather sling a Macbook Air than this for the extra functionality.
Minor things include it running too hot, and the flip cover leaving striated streaks on the display. In my opinion, iOS doesn't scale properly at this size - there is too much white space between the icons on the home screen, for example, and I would prefer to see widgets to show more information without having to open an app.
Ultimately, whether you're happy with the iPad is how much you buy into the Apple cloud versus the Google cloud.
In all truth, there is very little difference between the iPad 2 and the iPad HD. If you squint and peer very close to the screen you can see how high quality the screen is, but looking at the device from where it rests in your hands it's almost impossible to tell the difference.
Workstations killed mainframes, because you didn't need that stupid command line. You could point and click. But real software engineers would install UNIX tools, or SSH (or telnet) into a server, and take advantage of the pretty display for richer reports.
PCs killed workstations, because they were cheaper, and their OS was more user friendly. Unfortunately, "user friendly" meant "dumbed down". You could take advantage of innovations in IDEs, word processors, email programs, and web browser; but it was harder to instal UNIX tools. You could still SSH into a server (which would be a workstation, if you were on a tight budget) and get UNIX stuff done. You could also configure X, and do workstation stuff.
Now, tablets are killing PCs, because they are cheaper, more portable, and more "user friendly" (dumbed down). There's probably no way to install UNIX tools. But you can get a virtual server for peanuts (or set up a home PC), hook up a USB keyboard, and an SSH "app", and everything is fine. The display is a bit small, but many tablets these days can power a HD display (look at the Raspberry Pi, which uses mobile phone components). Apple may or may not include the right port, but Android tablets can. And you can take advantage of innovations in touch interfaces.
I see the iOS devices (iPhone/iPod Touch/iPad), as just the beginning. Apple has made astounding progress on these mobile devices where their competitors haven't really caught up to yet:
1) The display, amazingly higher-res than HDTVs now (2048-by-1536-pixel resolution at 264 pixels per inch (ppi))
2) Connectivity (Wifi/multiple carriers/LTE even)
3) Battery life to weight ratio (9hrs using cellular network, at 1.46lbs)*
4) Graphics/Processor punch (Dual A5X processor with quad-core graphics)
5) An ecosystem of applications that are on the whole, of good quality, and generate a lot of revenue (25 Billion apps sold )
When I say "just the beginning", I really mean that. And I don't mean that Apple will always be at the top, probably not by a long shot. What I want to ask, and I wonder why everyone else isn't asking is, what's next? Apple won't be at the tippy top forever, so won't the next generation of innovators please stand up?
 Anyone remember lugging around their 8+ lbs Dell laptop, that had a battery that lasted maybe 2 hours in 2005? I do. My back still hurts.
However, by dubbing the tablet the "post-pc", its very definition still depends on the pc, being a definition ex negativo. Many of the arguments here are about whether the tablet can do everything a pc does.
The tablet does not revolutionise cultural artifacts or cultural goods, it merely allows for a consumption that is somewhat different from the consumption the pc offers. The consumed goods do not change, social media, media, art and science remain exactly the same, namely consumable goods.
The established dichotomy between the pc and the tablet is a fake one, used to artificially create demand that can then be met through new supplies.
The tablet does not change the mode of production, it is merely another facet of consumption, this time even more openly advertised as such by being advertised a "consumer device".
Calling it innovation is in my opinion a misrepresentation, because it basically reinvents the wheel once more, it undergoes the same syntheses and evolution as the pc did, just accelerated thanks to already available knowledge.
The tablet is a clever remix of technologies already available. It combines different modes of consumption previously divided, but it only changes the mode of reception, not production.
True innovation on the other hand has to change the modes of production first. The tablet cannot achieve anything other items cannot also do, and is thus not innovation or revolution, it is merely evolution, or even just another playing field added alongside others.
Film, recorded music, books and the radio changed the means of production, as did the pc. The walkman, the tablet and the tv may have changed the modes of reception, but nothing new can be created through them that wasn't already available beforehand and is merely refined, not substantially altered.
The "war" of tablets vs pc is just another sales pitch to make either more appealing to their individual audiences.
>> edit (for ease of understanding, an example)
As an example that is less abstract, take the "Hipster". Wearing clothing that is tattered might be "cool" to you and you wear it "ironically, as a statement". If you are poor however, you might have to wear tattered clothes because you lack the means to afford something else. Ironically or not, you are fundamentally still wearing tattered clothes. Irony does not influence the plane of action, but instead the plane of ideas, or in other words: ideology. It's the same in the debate of tablet vs pc: Whether you type a blog-post on your touchscreened tablet or with a keyboard on your pc doesn't change the underlying action, just the mode of action. Whether you prefer one over the other is ideology, the basic action remains unchanged.
>> end edit
Sounds more like a Windows problem then a pc problem. Since converting my family to Macs, I haven't had to handle any of this stuff but when they used Windows it was a monthly annoyance.
What's interesting about Jeff coming around is that he's a pretty hard-core Windows guy. It was funny to have Macs come up on the StackOverFlow podcast. Joel would recommend it for family, etc and you could hear it in Jeff's voice that he didn't see the need. We'll find out in 6 months if it's going to be a 3 horse race.
Now Jeff has a reason to learn C. Not to worry, ObjC on iOS is not your father's C. It's a lot more fun.
By that same token, are we truly in a post-PC era, or is it simply an era where tablet use is on the rise and PC use is on the fall? Nifty charts and screen resolutions aside, I don't see any evidence that we're past the age of the PC. My parents still haven't replaced their computer with an iPad. Neither have any of my old friends from school. I use my tablet for more and more, but I just still can't avoid using my laptop for certain things. And I most certainly don't have a tablet or phone hooked up to my television. And how many offices have you seen where all the PCs have been replaced by mobile devices?
In short, while I see things moving more towards tablets and mobile devices, I'll be convinced that we're in a post-PC era when I see it. Until then, it's all arbitrary speculation.
I would argue that it's more than they need, that a service like OnLive is before its time but not more than a few years from hitting prime. I would say get ready for the Post Hardware Era.
I've seen the screens, they look nice and crisp and clear and...I kind of don't care. Oh, the views on it are great, but it offers me nothing new.
Quite frankly, as product releases go, I question whether Steve would have let this out the door. It's a nice product, but insanely great? In comparison to prior developments, I don't think it meets that bar.
My 5 year old son spends 90% of his supervised 'computer time' on an iPad. He doesn't understand the concept of a pixel, or why it's good that we don't see them. He has an older iMac in his room, but still prefers using the iPad as his 'main computing device'.
Talk about burning a candle at both ends! The term 'desktop' is archaic when thinking about a computer as a tool. Designers and engineers on the forefront of technology are spending their time creating devices for the 'Post PC' generation... not creating a better 'desktop'.
Reading some of the comments here, I cannot help but picture the accountant who still keeps his numbers in a [paper] notebook. At least they still make pencils!
My monitor is 2048 x 1152 23 inches.
20.05" Ă- 11.28" (50.92cm Ă- 28.64cm) = 102.16 PPI, 0.2486mm dot pitch, 10437 PPIÂČ
At one foot away I still cannot see the individual dots.
There's been a 200 PPI option for over a decade now:
If the ipad3 has added expense or limited availability to get ppi above 100, it was a waste.
I think the (not-too-distant) future of home computing will have a lot in common with today's PCs. Articles like this one always seem to underestimate the amount of real creative or productive work people want to do -- something which is still a challenge on the iPads of today. Have YOU compared typing on a small screen to a big one?
With custom manufacturing becoming affordable, as traditional computers start dying, open source hardware will start replacing them. I think we are seeing the first steps in this direction with Raspberry PI, hobbyist open hardware people, 3D printing (in the future: cheap chip printing?), CryogenMod, etc.
once the screen no longer requires a backlight, and can be readable any place a book can, computers will truly be ubiquitous. as for creation tools on these machines they are beginning to arrive now, and they will become more and more mature as time goes on. hopefully a less controlled ecosystem will win out but that much I dont know I can predict.
The end of the PC era may be near but it's not because of 10inch hd screens.
Real world: many people and a business I know use HD resolution on Full HD displays (and 800x600 on 1280x1024 displays) just because letters are bigger.
I really hate current standard resolution: 1366x768. It fits 20 lines of code in Visual Studio. Even 10 years ago we had better monitors.
Now... a small and light PC that is completely intractable with via a touchscreen, wireless data, etc...
That's a goddamn miracle.
Bloggers just love to historicize the present.
Firstly: The iPad is a PC, a 'personal computer'
Secondly: The quotes refer to 'desktop computer' era being over (though one uses the term 'PC' in the context of 'PC wars'), so why not use 'desktop computer era is over' as the title?(more accurate though less shocking)
Thirdly: Through all this conflation, the author also tries to say that the 'general purpose computer' era is over. Personally, I believe there is a big future in 'general-purpose computer' tablets/phones/etc. (non 'desktop'), as well as in desktops and there is not a shred of evidence in the article which challenges this view...
It gives me hope for the future of git that unlike many projects, they are willing to make these kinds of breaking changes to improve usability.
git config --global push.default upstream
EDIT: actually, the proposed change is to "upstream" and not "current", edited the command to reflect this.
I do, however, support "getting the defaults right".
This is, by far, the biggest head scratcher of git. People can get incredibly caught up in the fact that this is the default behavior. +1
As noted elsewhere, it's good to see the folks at git are willing to make breaking changes for the greater good.
The 'Rejected' error message that shows up when you push from one branch and another branch hasn't been merged with the remote recently successfully confuses every single person I've ever introduced to git.
I really don't want to try to remember if I wanted to hold back some change every time I push something. Current branch looks like a much more reasonable default.
If the answer is no, that's that.
If the answer is yes, you can immediately follow up with something like "git rebase origin master". Or not. Separate decision.
So, git's push/pull metaphor never felt like a great fit to me, since it lacks this level of control.
How difficult is that?
The problem with "the rest of us" is that these concepts aren't inherently neat. Disclaimer: I'm not one of "rest of us". I'm learning Haskell, just because I enjoy having to think in a new way.
A lot of FP explanations start off with immutability. After plato and lambda calc, that's where this one goes, too. I think because it's a relatively simple concept, and kind of mind blowing that you could do something useful without incrementing i in a for loop. And then the follow up example is normally how you can replicate a for loop in functional programming. Which is again neat.
But if you aren't into neat things for their own sakes, you've got to ask why? Why replicate a for loop when you could just use one? (answer: you don't really replicate for loops in FP) They aren't asking why, in the sense that they're curious. They're asking why in the sense of "Why would anyone do that? That's stupid."
If you aren't into having your mind blown for no apparent reason (some aren't) the only really compelling thing about the first several pages of the piece is the "Benefits of FP". That's the motivation to learn these crazy new concepts. It should really come first. I think it should come first in any discussion of FP for people who aren't familiar with it.
Because for most people to learn, they need a motivation. Your programs will be faster because you can do concurrency super easy is pretty good motivation. Sadly, "because it's neat," is generally not.
Other than this, all of my experience is in iterative languages. (c++,python,php).
One thing that comes up is "if your program compiles it's almost certain to be correct"; and it has been true again and again for me. It's an odd, eery feeling that honestly I haven't quite groked how it is happening that way.
I don't understand completley what I am doing, a combination of not thinking like a FPer, not knowing the idioms of Yesod, and not being entirely familiar with the syntax of Haskell; so I am sometimes stuck on "how" to get the type that I need.
So I will sometimes try a couple things almost randomly; then it will compile and it basically is always doing what I want it to do.
1. The name "functional programming" doesn't sell us; it just sounds impractical. What we do isn't really "functional programming" in a purist sense. We need side effects all the time. We just have an understanding of the need to manage state (not eliminate it) properly. We need a better term for the hybrid functional-preferred/imperative-when-appropriate/very-occasionally-OO style that good engineers use, but all I can come up with (for how we "functional" programmers do things as opposed to the enterprise hoipolloi) is "non-shitty programming" and that sounds biased.
2. Usually, when we showcase FP, it looks like we're hawking complexity. We get into tail recursion and abstract data types right away. In fact, proper use of FP reduces complexity a great deal. For example, Scala is actually less complex than Java by far. On the other hand, it's hard to present Scala to a Java programmer without it appearing that one is trying to shove more complexity into his workflow, because it's only after a few months of learning how FP works (and that you don't need classes to program, you just need functions, because that's what algorithms actually are) that people realize how much simpler code becomes when done properly, and that functional programming (unlike <managerially-empowered flavor-of-the-month X> in Java) does provide life-long, substantial boosts in productivity and product quality. Until people get to that point, they'll feel like we're just shoving a tough learning curve on them.
"Fire up the time machine. Our walk in the park took place more than two thousand years ago, on a beautiful sunny day of a long forgotten spring in 380 B.C. Outside the city walls of Athens, under the pleasant shade of olive trees Plato was walking towards the Academy with a beautiful slave boy. The weather was lovely, the dinner was filling, and the conversation turned to philosophy."
âIn functional languages automatic analysis of functions and finding good candidates for concurrent execution is as trivial as automatic inlining!â
It isn't exactly trivial. If you can evaluate anything concurrently, then you still have to figure out what's worth the overhead of spinning up a thread to run concurrently. And many operations are inherently sequential even if they aren't imperative or side-effectfulâ"parsing, for example. Still, the gist is that concurrency is easiest in a pure language and a functional style, and I have no bones to pick with that.
ââŠinfinite data structures, something that's much more complicated in a strict language.â
Infinite structures are still pretty easy to construct in strict languages. For example, you can use ranges of the sort in D's std.range library, as described in Alexandrescu's âIterators Must Go!â talk.
One thing I am still a bit hazy on though.He mentions that continuations could be used in the context of a web app to maintain state between HTTP requests.
I'm not quite clear how this would actually work. Lets say you have something like this (in psuedocode):
Let's say we have a counter we want to increment on each request.
renderPage(requestVars) pause() return requestVars + 1
Is that approximately how this works?
In which case, how would it work for doing more than 2 requests in a row?
However I was surprised to be made aware of the existence of a logician named Haskell Curry. The name struck me as the punchline to a joke only told and appreciated by the uber-nerds in the halls of elite university mathematics departments.
there's certainly a need for articles like this, targetting an audience of java devs, if only they were correct. I haven't found much.
The more time you spend Debugging shit, the less likely to you are to Architect something that produces shit.
The more time you spend fixing a million little things caused by poor early decisions, the better Starter you'll become.
The more fun you have conceiving and Starting projects, the more you'll realize how important Finishing is, so that you can get to new stuff.
And the more time you spend doing each of these roles, the better you'll get at doing all of them at the same time, and understanding what conditions are needed to do that. (Hint: Lots of quicker smaller complementary projects that you can wrap your whole head around.)
[This whole discussion reminds me of the time I was a restaurant manager and got tired of the servers and cooks bitching at each other. I had them switch roles for one shift. Once they understood how what they did affected the other, everyone got a little better and the bitching stopped.]
Starter -> Resource Investigator Architect -> Shaper Debugger -> Teamworker Finisher -> Completer Finisher
What I miss most in Jacques' article is the Plant, the person who thinks things over and then comes forward with problems, issues and risks in the chosen approach. It's, fortunately, a very common trait among SW engineers though, so I guess every team has at least a bunch.
When trying to figure out where my limits are I found out another characterization:
- input bandwith
- memory (forgetfulness)
Compared to an average person I am good enough in all of these, but compared to A players I am bad in all of them except deepness. Compared to the very best I am slow to learn a new technology, slow to solve problems on the whiteboard in real-time, I have to re-learn things because I have partly forgotten them, and I am not especially fast in learning other people's theorems, proofs, and algorithms. I ocnstatnly find lots of stuff bullsiht and I constantly question basic beliefs, so I am slow at processing outer information. What I am quite good at is getting a challenging task and thinking about it for a lot of time refactoring my thoughts hundreds of times until I come to interesting insigths. Not that I am that good at it, but I have huge patience for this, because this is what I enjoy. It is more than enjoying this: my brain needs this as a drog. My brain pretty much likes to be detached from the outer world for long-long sessions.:)
When solving easy tasks this does not come out. But when pushing my limits I experience these weaknesses / strongness.
Perhaps it's different in S.V. but in the workaday world of the code mines I've found that the Debugger doesn't get all that appreciated. Rather, management likes the starter since he seems so productive... after all, he just did the 20% of the work that got us 80% of the way there. They just wish he could somehow do 25% and get 100% of the way there.
Few things can doom a project more quickly than putting a "shipper" in charge of an early-stage project or vice-versa. You end up with management that sends all the wrong signals to the team and everybody can tell is looking forward to some later stage.
Of course, for junior people, it's important to just make sure they get through all of them. Not just to pick up the skills mentioned by other commenters here, but also to see which they're good at for when you want to stretch them with a leadership role, without setting them up for an avoidable failure.
And I hate it. I consider it a personality flaw, a flaw in my work ethics, and so on. Whatever it is, I don't want to have it.
What I've found has helped me get beyond this problem is taking on freelancing gigs where I'm mostly the guy who gets a rough prototype and has to make it work. The beauty of this is that I know how to think like a prototyper, so I can become productive on a foreign codebase quickly.
And because I started at a different goalpost, I can still work as a "starter" even though I'm doing the job of a "debugger/finisher".
This is, among other reasons, why I like the YCombinator emphasis on co-founders and teams. Even if you are a superstar you need people around you to work at maximum efficiency (speaking for myself at least).
Also, I'd like to applaud the backstage people (accounts, etc.) that make other things possible. Even when I do reasonably well in all of the roles mentioned in this article, I absolutely fail in the paperwork department.
After that there was a module review by 5 randomly selected engineers that would tell you what parts of the module was a messy hack and make you go fix it. I miss this culture.
I find it easier to be the finisher if i didnt start the project, perhaps i should partner with someone with the same problem and just swap our projects once we get to the finisher stage.
My guess is the population here is dominated by Starters and Architects.
and the Stereotype.
These articles aren't very informative if they don't have some new insight into how to maximize the output of the team by exploiting the traits of the stereotype. The roles outlined in this entry really only fall into two categories: get things going (starter & architect) and get things working (debugger & finisher).
If I had to take a wild guess, I'd say that what the article is really trying to say is that it's easy for people to start projects (I've yet to meet a "debugger" that can't start their own), but it's hard to complete them. It's often even harder to keep something working than when it was put together given the nature of changing requirements.
So my take on the article would be to add the advice: if you consider yourself a "starter" or an "architect", go live in the world of maintenance for a while. Learn to complete your projects. And if people tend to curse a project when your name was on the design doc, perhaps you should spend a bit more time learning about practical programming, design, and algorithms... or mentor with someone who is well regarded.
Next week's article: What happens when the boss is a Sagittarius and the team lead is a Gemini?
There is nothing more than I'd like for someone to just take some designs I've drawn up, critique if necessary, and then get it done. Generally, I get so stuck in the big picture that I have great difficulty getting anything done :(
I CAN debug... often I can identify a problem just from a general description of the problem (when you see me sit down in front of a computer and take over, it's when the problem has dug in deep). Sadly, with all the maintenance work I have to do with some legacy systems, debugging them is not a task I take to fondly.
Definitely not a finisher... I'm a sprinter, not a marathon runner.
1) Generally managers still don't understand the concept of agile and early release and so try to cram as many features, bug fixes amd details into each release as they can think of.
2) There is no possible way that one programmer can take care of all of the bugs, extraneous little features and tasks that the manager was able to think of.
3) Therefore the manager must come up with a division of labor and a simple categorization such as suggested by this article is one of most obvious and is probably attractive to a lot of senior developers because it means they don't have to worry about as many tedious tasks which they know are unlikely to provide real business value.
I think that most programmers with a decent amount of experience don't really fit into any particular one of those boxes because they have done all of those things themselves for one or more projects.
I find it very difficult to be a Finisher, and I think many programmers do. Finishing isn't fun, it's not glamorous, and it's not why we do the work, but it's a skill that we need to develop.
I've noticed a trend in my own development. When I first start a project or I'm working on a hard problem, I'm working 10-12 hour days figuring out the interfaces, making the object model pristine (or as pristine as it can be in the language I'm using), making the error messages helpful and the exception handling consistent.
And then, as I'm closing out the project, I start to lose focus. I start watching the clock. I'm out of work as fast as I can. I'm doing, for lack of a better word, the bitch work, but the bitch work is what makes the system.
I've tried to get better at it, but I think there is a fundamental issue with the project lifecycle that makes human beings phone it in in the last bits of a project. Whether it's building a house or writing an application, those last bits of the project seem the most arduous.
Is there somewhere I can write to get a better Debugger/Finisher?
Most likely explanation is not boredom of keeping working on the same project from start to finish.
Most likely explanation is boredom from working alone.
Also, reading the Fountainhead was a game changer for me.
(1) Paratroopers, who jump into unfamiliar territory. In software, researchers and architects.
(2) Infantry, by far the largest component, responsible for the core task of taking and holding territory. In software, most programmers.
(3) MPs (also quartermaster, community liason, etc.) who maintain order in the held territory. In software, debugging specialists and release engineers.
The problem I have with the OP's metaphor is that the "starter" and "architect" roles are both part of (1) and many people actually can do both pretty well. Similarly, the "debugger" and "finisher" roles are both (3) and also combine well. What's really unfortunate is that (2) seems entirely absent even though in real life it consumes most of the time and resources on a project. These are the folks who take mostly-complete designs from a starter/architect, and get most of the code mostly working before the serious integration/stress testing occur and the debugger/finisher come to the fore. In other words, most of your colleagues most of the time. If you hired four people according to these four roles, you'd have nobody to write most of the code and you'd be abusing your four specialists to do it.
Today you don't really need to be a pure starter or architect anymore. There are so many frameworks that mimic Rails and its philosophy of convention over configuration, that there's not really a lot of effort needed to start and its easy to delegate most of the architectural duties to the framework developers themselves.
As for the debugger and finisher, that is also a lot easier as well. With all the automated integration and behavior driven test frameworks, it's relatively easy to both cross your t's and dot your i's. Today you can have something yelling at you everything second your tests break (assuming that you wrote them, which is key to any project).
+---------+---------+ | | | | | | +-----+ -+- +-----+ | | | | | | +-----+ +-----+ | | | | | | +-----+ +-----+ | | | | | | +-------| |-------+
The bottom and middle side rooms are private offices. They should have doors that close and be reasonably insulated from sound, so that a worker can work without disturbance when they want to. Ideally, the wall wall facing the central area should have a big window (with drapes or blinds!) so that the person in the office can see if anything interesting is going on in the central area. Each office should have its own light switch capable of turning off all lights in that office.
The top two rooms can be bigger offices, or conference rooms, or break rooms for breaks that might be too noisy in the central area.
The break in the bottom wall is the connection to the hallway.
With this environment, you can easily work in private, no distraction mode (go into your office, close the door, and close the blinds), or in full social mode (take your laptop to the middle area), or in between (work in your office, but leave the door and window open, so you can keep an ear and eye on what's going on in the social area.
Note that if you have two groups working on different things, but that have a manager or senior engineer working with both, you can extend this concept and put the two groups side by side, and shift and stretch one of the offices and make it connect to both groups, so that common manager's office is in both groups:
+---------+---------+---------+---------+ | | | | | | | | | | +-----+ -+- +-----+-----+ -+- +-----+ | | | | | | | | | | +-----+ +-----+-----+ +-----+ | | | | | | | | +-----+ +-----+-----+ +-----+ | | | | | | | | | | +-------| |-------+-------| |-------+
1) Cube Farms in large corps2) Private offices for everyone in a startup founded by Microsoft alumni.3) Team Rooms of 3-5 people max.4) Large open areas with no cube walls at all.5) Working from home (what I do right now)
Based on this experience, I think the optimal solution is the 3-5 person team room. It works well because it allows for a high degree of collaboration while keeping folks outside the team at arms length to limit distraction. In this environment, we shipped a working product written from scratch within 3 months.
Open plan offices were by far the single most distracting environment. Ironically, I was at the same company when we switched from a 3 person team room to an open floor plan to cut costs. The productivity hit was enormous.
Cube farms are actually better than open floor plans. They're far less impressive and drab, but the cube walls serve as a minor barrier to interruption since they require getting up and walking to make eye contact.
Working from home is great for productivity as a single programmer, but collaboration is more of a challenge, and it requires solid leadership capable of defining problems very clearly and staying focused. That's a tall order for most startups where the ground is constantly shifting.
Private offices were great for a single programmer working on a well defined problem, but difficult to foster the right collaborative environment. It's hard to institute concepts like pair programming and code review under this setup.
At least with the type of software we build, though, communication is absolutely critical, and it's amazing how much a difference of even 10 feet makes in the frequency with which people talk. The optimum layout for us is roughly 1 or 2 clusters of 4-6 desks per "pod" (i.e. a cross-functional team consisting of developers, product managers, and qa that are all working on the same area of the product). At that level, when people are talking about something, what they're talking about is almost always relevant to you, so it's not necessarily a distraction: they're talking about your code and your project, so it's a good thing that you can overhear and participate in the conversation if you wish. If you didn't hear those conversations, you'd be out of the loop. It's often better to be a little more distracted and all on the same page than have a team of 5 engineers plowing ahead in different directions.
That's a common conflation when talking about software engineering in general: it's not just how much you get done, it's what you get done. If you get a ton of work done on the wrong thing, you might feel really productive, but you're not actually creating any value. At least with our software, a high level of communication is necessary for most projects to ensure that everyone is on the same page and rowing in the same direction. When that communication breaks down, projects start to fail.
Your mileage may vary, of course, depending on the size of your team and the nature of what you're building. (And it goes without saying that a giant warehouse with desks arranged like an 1890's cloth factory is a terrible idea; you have to consider lines of sight, and acoustics, and other environmental things. Not all open plan offices are the same.) But this assumption that open plan offices have been "proven" to be sub-optimal flies in the face of plenty of empirical evidence from companies like mine that have used them very successfully.
I don't understand why there are so many blog posts describing how "X must die" or "Y is the only good approach to doing Z." If something works well for you, then that's wonderful! Please share it and explain the benefits and downsides and convince me to give Your Favorite Method a try. Describing how Your Favorite Method is actually The Only Reasonable Method (and by extension, that I am wrong/stupid/naive/etc. to be doing anything else) will rarely win me over.
In fact, the last company I worked at had hired way too young, and they had a bunch of kids who thought that being in your office writing code was somehow "Bad" because you were "siloed away". They liked to hang out all together at one big table, and chat away all day long with their laptops out.
In the time I was there, I don't think they ever realized they were getting nothing done. (I was curious as to whether they were onto something or not, so I tracked the number of stories and features they committed vs. me and my officemate who at 26 was the "old man" of the bunch, though still much younger than me he was old enough to know what flow was.)
Result: the two of us were about 4 times more productive than the 5 of them.
One of those five, though, was the "director of engineering" (20 years old) and was constantly chastising us for spending too much time in our offices.
When it became clear that this was going to affect my evaluation, I chose to exit that company. (They folded about a year later, never having accomplished the short term goal they were working on while I was there.)
But maybe I'm wrong. Maybe some people are more productive in groups of 2-3. That's fine. Set up offices for them to work that way.
Just let me have some damn peace and quiet so I can get work done! (and I never seem to have a problem hooking up with other engineers to talk about architecture or what have you to keep us coordinated, though often this is via email or chat... which is much less interrupting than a tap on the shoulder.)
I work in an open-plan office. I didn't realize it when I first started, but there's actually quite a bit of white noise from the HVAC system. Maybe it's the nature of white noise that it wasn't immediately apparent.
One day, about a month after I had started, someone changed the thermostat settings. The constant white noise shut off. In the silence, the sense of space of the office immediately changed. Every footstep on the loft floor was suddenly audible. All the design conversations and dev pairing suddenly seemed much nearer, the words much harder to ignore. It was like the office had shrunk.
We tried a few hours this way, and finally set the HVAC system back to how it had been, filling the office once again with a constant, hushing whoosh. The space was back to normal.
I really enjoyed the book, and the info about open plan offices was really interesting. I was previously a fan of the open plan, but now I think if I ever design another office, it would be common areas and offices that close.
Certainly sometimes I want to go away and think by myself. I want that option, but not as the default.
If programmers don't work well together, then by Conway's Law neither will their code. Beyond that, batting ideas around is just more fun than playing the solitary genius - and produces more satisfying results.
The kind of open office I like, though, is one in which the people are all working on the same system. I agree that noise and interference from unrelated activity is a disaster. It's very simple: everything should be organized around the team.
The most critical thing is usually the customer and optimizing for the customer means doing things differently:
* having the developers take customer calls and help requests
* increasing the amount of time the developers spend understanding the users - in order to reduce the amount of irrelevelant work being done
* cultivating a culture of 'code not written'
Do you really think that cranking code is the most important thing your organisation does?
Personally, I can cancel out most distractions by a large enough monitor and headphones, but get really awkward when someone is standing behind me or walking by. So I need to have my back to a wall, whether it's an open office or not.
I think we all do agree that offices without fixed desks are a big no-no. Some companies tried to do that a while ago, where you just have a cart with your stuff and work where you're needed (with thin clients way back when, and laptops a bit later). Yuck.
Having a heavy distraction-oriented work flow forces you into a mode where you segment your tasks as atomically as possible, for example using the pomodoro technique. There are certainly times when a quiet space is necessary, and I will retreat away from my desk to a library or quiet corner where I'm not near people.
I wonder how much of this is because I am young (24). My generation has grown up bombarded by distractions. So much so, in fact, that I find that there are equally many distractions inside of my computer as there are coming from the office plan.
Each has its benefits. Open-plan offices shouldn't die, but people need to realize that they come with ups and downs.
As with the article I agree that there should be some private space for programmers to work alone. Perhaps not 100% of the time but instead have the open plan aspect for communication and then a separate series of offices people can move to and close the door for some privacy. Not sure how well that'd work in some environments but it's something to think about.
Some of these factors are:
* Gathering the team in one place and ideally at the same time. Standup meetings do this, as well as catered breakfasts and lunches.
* Open spaces that provide ready access to other folks, engineers, designers, product owners. It's amazing how high the hurdle of having to get up and open a door can be and how amazing the cost of inferior decisions made by coders is when asking someone requires overcoming hurdles. Remember that the desired behavior must also be the easiest behavior.
* No employee-specific workstations. The easier it is to move around and the more common the computer setup the better collaboration can ensue.
* Subdued noise levels. This can be accomplished through white noise generators, Dj Tiesto, sound swallowing wall fabrics and carpets, etc.
* Systems that capture project data in structured ways, minimizing the need and role of email.
* Separate gathering spaces for socializing, ping pong, lunches, meetings, phone calls to not disturb the main work area.
* A prevailing practice of pair programming and TDD.
Interestingly, some of the most successful development shops like Pivotal Labs and Hashrocket do exactly that.
They can provide a creative, collaborative and egalitarian studio like environment, again when executed well.
What they struggle with primarily is sound isolation, attenuation, and masking. Secondarily they struggle with visual and olfactory distractions.
Designing an open office to look like an Apple store is a mistake. Apple stores are designed to be lively and animated - there's a reason for all those hard surfaces, particularly the glass ceiling. That reason is that they reflect sound. There's also a reason coffee shops provide big overstuffed chairs and carpeted floors.
We're very collaborative, so being locked away in rooms would be a pain. We all sit together, but we reduce the pain of open-plan offices by being careful to minimize distraction. E.g., phone calls happen in other rooms. Meetings that don't involve the whole team go in the conference room.
It is good to have a mix of spaces, but designing people's main work space to be a place for constant interruptions does seem to be a fundamental flaw. Breakout rooms and private spaces should be in the mix.
My current job is at quite old building (70's) with a floor laid out like this, and it's just fantastic. I have enough space for some computers, a room I can work in in peace and quiet, and just enough space for small meetings and co-working when needed.
Any negative effects of being in a private office can be canceled by having office communicator, Yahoo! chat etc.
Typical 70's office buildings seem to often be laid out like this.
I'd love to have an office but I prefer open plans over cubicles.
- cuts out distractions: you can only get distracted if you decide to talk with your office-mate. If either of us wants to chat with someone else, we move our discussion to a meeting room.
- avoids the isolation and slacking off that a single person per office setup generates.
- if office-mates are chosen intelligently, it can result in good collaboration for e.g. pairing a mentor with a junior programmer. A good idea would be to change the pairs every few months.
I understand -- you don't like open-plan offices, you don't think that they're an effective environment. That doesn't mean that they're universally terrible; it may work for some companies, and it may fail for others.
I would also arrange the cubicles such that your back is never to the entrance. So you know when someone is walking into your space.
Even so, I am unable to figure out how to access the document. Perhaps I am missing something relevant?
Thanks for another useful library!
What do you think of parallel coordinates as a widget? (F.ex. http://exposedata.com/parallel/veggie/)
My response is simple: Imagine if you have multiple candidates for the same job, and you are trying to decide which one you will hire. Imagine that the way you go about this is that you write down the things that matter to you from most to least and that you use 3-5 things at the top of that list to decide. Those are your decision drivers. What are they?
[ASIDE: I really don't mean to be disrespectful to OP; this may be one of the better interview hacks I've seen. But that's just the point: it is a hack. Hack ones and zeros and earn our respect. But hack us and earn our contempt.]
Of course smart people you want to hire will never recognize this clever mental trick.
>it explores a candidate's motivation and value system.
Wrong. It explores candidate's ability to guess the answers you want to hear. And you have no way to tell whether candidate is sincere or just trying to please you.
Come on, this is a typical BS question, along the lines of "tell me your weaknesses" etc...
If the things I care about in a job don't jive with the things your company cares about, why would I even want an offer from you? In my specific case, when interviewing in the past, things I've cared strongly about are things like test-driven development, a culture that values code quality as well as shipping products, and having a meaningful stake in the success of the company. If you aren't going to provide these things, or they don't matter to you, I sure as fuck don't want to work for you. If people are strictly upset about the word 'imagine', then that's one thing. Thinking this question is 'overly revealing' or something seems bizarre to me. Don't you want to work somewhere where the things you care about are valued?
For example, if money is my number one driver, yet all positions satisfy that driver by offering more than I want, it ceases to become my main driver, and I move down the list.
It's possible - in fact likely - that I receive one or more offers that fulfill all my drivers. At that point, I'm not making the decision based on these items, but might instead create a new driver - say, the chance to work on a space startup over a social media one - and use that to choose between the offers.
The answers you receive for this question aren't telling you the things they think you are telling you.
In addition to that, imagining anything is going to give you what the candidate thinks they are like, not what they are actually like. If you stick to assessing actions that they have actually done, you'll get a better idea of what they will do in the future, rather than what they think they will do. My experience has told me that - sadly - few people know themselves well at all.
So I don't think it is as useful for placing someone within a coordinate system as you think. It's too easily led astray, and won't have a lot of consistency over time. Your interpretation of the answer will have much of the qualities of a Rorschach test - but on yourself, not the candidate. You can read into it whatever you like.
I'd find it somewhat offensive for a simple reason: because it presumes to psychoanalyze me, to try and figure out what makes me tick. Being a person with an ego, I like to think I'm slightly more subtle than that. So the thought of this question coming up in an interview makes me curl my lip in contempt. I doubt I'd consider an offer from someone who tried this technique.
My reasoning is that if they want to manipulate me in an interview, chances are they would spend too much time manipulating me in my work. I respond far better to direct, honest questions. Ask me honestly and I reward that with the truth. I would tell them this if they asked. They would have their answer, and I would have demonstrated its truth.
Is that a manipulation in its self?
So I reached back into my past hobby work, and pulled out "lottery scheduling". A 30-40 minute conversation on the description, performance, trade-offs, implementation trade-offs, features and misfeatures of lottery scheduling ensued.
This worked more brilliantly as a way to interview than anything else I'd ever been through, because it gave me and my experience a place to shine. Most interviews really don't. They are idiot-test after idiot-test, designed to wash out bad hackers, but in the process producing a crop of Most Assuredly Not Idiots who may not actually be good, while accidentally washing out some really good hackers who, for example (first-hand experience), wrote a recursive function instead of a while-loop and a Stack<T>.
If you want good, give good a chance to shine. If you want not-bad, keep stacking on the idiot tests.
Interviewees: There are people who Need a Job Now and interviewing all over and will likely say yes to almost any opportunity, and there are people who are casually looking around seeing what else is out there, they are in no hurry and they can easily afford to say no. The first type needs money to live, they view themselves as a wage slave; the second type could just as well go start a startup but instead choose to rent out their brain for someone else's use (and they view themselves as this way, renting a service).
Interviewers: The first type, they do a competence test and they do a culture/personality test. This can be accomplished in an informal luncheon or the like. The second type, they pull questions like these, trying to extract as much information from the candidate's personal life as possible--perhaps even asking for a Facebook password--or they put the candidate through coding hoops that don't really test talent but memorization and retention of Java-school-undergrad-level material that's just a single Google away. (Though personally I wouldn't mind being asked to implement the binary search correctly in a statically-sized-int language, especially since even in Java the official version was wrong for quite some time due to integer overflow. But this is just a piece of trivia I enjoy, I don't know if I would ask it unless the job required a good familiarity with architecture and language detail...)
The job-hunters will fit fine with either interviewer. They'll talk at length about their own mothers if they think it will help them get the job offer. The casual brain-renting candidates only match with the casual interviewer, however, and will happily walk away from the nosy interviewers. It's nice to see that principle at work in this community, even if there are some that oppose; we need more people in general, not just hackers, willing to say no to jobs even at the start of the interview stage when they sense something they don't like on principle.
You can't script imaginging, but you can script your answer to this question...
I think it's a reasonable question. I might try it. One I've started asking recently that's interesting is "tell me about some interesting programming books/articles you've read recently." If they have ready answers, it indicates that they're really engaged in the field. If they come up blank, it's not a good sign, though admittedly, they may be in a lull or have other priorities, so the question can't be viewed in isolation.
I think all of these questions can be gamed to some extent, if a candidate really does a lot of research/preparation. Of course. that someone is willing to put in the time to research/prepare for interviews is probably a good sign. But just because I've learned to say "I love solving problems!" doesn't mean I'm great at solving problems.
Hence, when interviewing I prefer to focus on technical problems.
So, aside from being manipulative, which lots of interview questions are, this one also struck me as unethical and borderline illegal.
One important take-away from his question, as he mentioned in the article, is how influenced the person is by events that are difficult for him/her, or anybody else, to control. In general, the more you tie your satisfaction to things within your control the happier you are likely to be.
But the problem with trying to ascertain such things by making up "fake" scenario questions is you can't control how your question is being interpreted. And when you don't know what question is being answered, you are randomly interpreting the response. And that means the question is, literally, a waste of time. Again, you are better off asking a direct question.
His question would probably work, however, if the candidate actually does have such a list for determining which offer to take. If this is the case, the candidate should hopefully recognize that s/he is (or could be) in a negotiation and treat his/her answers appropriately.
I mean, so if the interviewee says that healthcare is incredibly important because they have a sick child, that doesn't tell you anything at all about how well they'll do at the job (but hiring managers often have strong feelings one way or another about the importance of family). And so what if you manage to trick them into saying they felt unappreciated at their last job: you have no idea what the last job was really like, what information could you possibly gain?
It's true that questions like this can be very revealing. They seldom review anything relevant about the interviewee, but they do reveal that the hiring manager is an incompetent jerk.
It is all a head-game, sadly.
Candidates never really know if their dealing with someone who expects smooth, calculated responses or if they're dealing with someone who expects brutal uncomfortable truth.
I'd only ever ask this question by first making clear that I only want to know what you're looking for in a workplace or career goals.
If I got asked this, I'd tell them that the things on the top of my list aren't things I'm willing to discuss with them, at least until I've established a friendship with them , and then tell them what I'm looking for in a workplace, team, and product.
The question I always ask of programmers is this:
You have n=10 computers in a cluster. Every one of them is connected to every other (but not to itself), using bidirectional TCP connections. How many TCP connections total in the cluster?
If they can't figure it out, I change it to n=4, then n=3 and ask them to work their way up from there.
Knowing who you are and what drives you is a very difficult question for most people. Most of us don't take the time to seriously ask the question of what drives us. And yet, once we find those drivers, why not be honest about that insight? What do we have to lose? Isn't this the kind of information we should be shouting from the rooftops, to find like-minded people and to express ourselves most fully?
That said, I would choose to ignore the rather obvious attempt to make me reveal details about past employers and answer the question as if it was about purely about my principles and motivations.
For the record, I want to use technology to combat the ever-growing tyranny of complexity, which is the source of an extraordinary volume of what I term petty injustice. I don't believe in the efficacy of central authority, so my work must empower individuals to take action for themselves - to select simpler contracts for example. It is my belief that fighting for a principle I believe in is the most crucial aspect of selecting a team. That said, competent work-mates and managers, a viable technology platform and good compensation are also important, if only from a simple, practical standpoint.
Bad answers: I've heard you make a lot of money here, I want to work on software development, I like Java. Better: I have friends who've told me about it and it sounds like the kind of place I want to work. The best answer: I understand a lot about how your business works and it is a win-win for me to be here for the following reasons... despite the following minuses...
I was playing Resistance this weekend for the first time. Essentially Resistance is Mafia with rules, blue vs. red. One of the first things I did was ask people, "are you a spy?" Like a melodramatic detective. I think there is an instinct to try this first, and win the game on the basis of a twitching lip or "say no, nod yes" sort of reaction.
This may work on easily startled people. Same with slamming your hand on the table in a security clearance interview.
A smarter candidate will figure out you're playing games, which defeats the purpose. I think you also want to consider the reaction of the candidate after the interview. Suppose they answer honestly, then figure out what you did to them.
There's a big difference between trying to learn a prospective employee's motivations the old fashioned way and trying to trick it out of them. Especially when a highly motivated employee can be lowballed in a salary negotiation.
I feel like it's important to have people who think practically about the kinds of problems they feel like solving and whether they actually make an attempt to solve them. There's nothing wrong with leaving work at the office but we tend to look people who are extremely passionate about technology in general, not just people who use it as a paycheck.
I usually start a job hunt with a spreadsheet so I can track progress and also scoring along my key metrics. When I get asked questions similar to this, I reveal that I have thought about this deeply and discuss my criteria and how I operationalize things like "good coworkers". So far, the reaction to this revelation has been quite telling about the person on the other side of the table; I have gotten everything from disbelief to disgust to admiration. The marginal cost of being organized (and combatting things like recency bias or charisma) is minuscule compared to the marginal gain.
I'd ask the interviewer to answer his own question. He would say something like "smart team, interesting project, ability to work on side projects". And this would be pure bullshit. Why? Because if someone offers him a billion dollars per year, he will take it under any conditions. And so would I.
Asking me to prioritize my decision making process into 3-5 neat little bullet points ranges from annoying and insulting. In asking the question the interviewer sounds like this:
Interviewer: "I'm assuming you haven't thought through your requirements for being an employee of my company. I could engage you in conversation like a normal human being to find out what you want. But I'm too lazy for that. Please summarize what you want in a convenient format that I can easily understand."
Interviewee: "This guy doesn't like to think. He values simple answers over process & conversation. I might have one 'bullet point' that requires a dozen questions to figure out. I might have a dozen bullet points that could be answered with two questions. Instead of talking to me he wants me to tell him what I want to hear. I'm outta here!"
That tells a lot about a candidate, and it gives him/her a chance to talk about what they're good at. It also shows some respect, which is a good thing since it's hard to find and hire good people.
In an interview, anything one says can be used against you. Those who engage in amateur psychobabble are most likely to do so.
To put it another way, it's sincere once salary and benefits have been negotiated.
Second, leaning on the word "imagine" does nothing to "liberate" your candidate from scripted answers; it's a common way of introducing a hypothetical and could be replaced by any number of stock phrases. If you put too much stock in that phrase for the question-design, you're thinking shallowly, and doing a disservice to yourself, the interviewee, and language itself. The ironic is that in posting the question, especially if it circulates widely, you're guaranteed to eventually get scripted answers. Third, what you focus on as externalities vs. interalities seem interrelated, e.g., "I want to do X" is the same as saying "I want to work for a company that allows me to do X".
I understand the desire for interviewers to get past scripted answers and find easier ways to select the right people for the job, but questions like this aren't silver bullets. I also find it funny that people in software would be so against interviewees having scripted answers; it impresses me that people can quickly come up with quick answers to difficult questions, not because
Not wanting to end with all criticisms, I do think the last point about a question like this revealing things about the current/prior employment. If you get people talking about things they like or dislike, unless they give you patently stock crap, they're drawing off recent or salient experience.
My first response would be "Ok, so you're asking me what my job priorities are" and go from there. Let's bring things back to reality, and be honest about what each other is doing.
Also, the question is a classic rehearsal question and its use may be limited. There may be a lack of honesty and even with an honest answer a person's priorities are subject to change.
For the above reasons, it naturally favors older or extremely confident candidates. If this is used as a primary positive filter for employment, then it is possible to discard a lot of talent, especially young talent.
In addition, the value ambiguity and personal depth of this question could confuse or incite negative emotions for many people, including even those with extensive work-life experience. Even if this question were used purely as a filler in order to attempt to relax the candidate, it would most likely achieve the opposite response.
Therefore, if I were a hiring manager, I would never use such a broad question since you could achieve the same with a series of technical questions, resume-focussed questions, specific value questions, or a cup of coffee/tea/hot chocolate/water...
To illustrate my point, my answer would be:
3. Skill set.
An employer is trying to figure out the motivations of the worker. How is this wrong? How is setting up a scenario manipulative? Why is everyone so hostile to this?
In fact, let's make that a challenge. Can anyone here think of an answer to this question that a candidate might plausibly give which would effect your hiring decision?
Any answer you get to that question won't negate the simple reality in the statement above. Just to reiterate because it is too important to forget!
Your Employees (and all people) Just want to be APPRECIATED! and the money you pay them is the best way to measure how much you appreciate them!!!
I'm also not looking to debate/argue over whether or not it's a good question. But here would be my response:
1. The quality of the other employees
2. The quality AND purpose of the products being built
3. The quality of management
4. Required hours.. Do you want me to work 70 hours a week? If so, thanks but no thanks. I'm a team player and willing to pull extra hours when the occasion arises, but I have other hobbies that I like to indulge in.
I'd also note that, if the question is about 'imagining' certain scenarios, then can the answer really be that honest to start with?
I.e., it's easy to think that i'd do X or X in Y circumstance, but if you ask hypotheticals, you'll never get a qualitative answer. I'm sure this scenario actually happens often, but imagining can mean you're imagining an interview with NASA as an astronaut and with McDonald's as a burger flipper.
'Imagine that they way you go
Do I get extra credit?
A few months back I was at the local Petsmart; getting out of my car I noticed a guy walking toward the store. I thought he looked familiar, so I looked back over my shoulder at him again... I didn't really recognize him but I thought he might have been somebody famous for some reason.
Anyway, when I got back to my car I saw that yellow mercedes, and when read the plate holder saying "Mr. Linux. King of Geeks." I figured out who it was, kind of neat.
At the time I don't think I realized he lived in Portland.
Don't drive that car into Texas (http://www.senate.state.tx.us/75r/senate/members/dist25/pr03...) or any other state with similar laws...
I'm mildly disappointed in RD Jr... he had so much geek cred after playing an awesome Iron Man, but I guess that's why it's called acting.
MySpace tapped into this also , allowing people to change their page background, have autoplaying music etc.
The facebook/Twitter came along and spoiled it by prioritizing usability. Now basically everyone has an online presence that looks identical to the point of being sterile. Hell even 90% of wordpress sites look exactly the same.
Applied to itself 4 times. So meta, that we have to go deeper.
Yeah, even today! [edited]
Hard to believe that not too long ago, frames and table-based layouts actually were improvements over the status quo.
Dreamweaver special :)
still can't find the geocities site I had in 1997 though...damn
And web rings! I miss the old internet :'(
That alone was worth the click.
I did find my website made as a 16 year old. Unfortunately all of the images were missing. From what I remember, it was actually a pretty nice design. I think I'd still be proud of it if I had built it today.
The code is quite dumb but it works rather well.
Seriously though if they're going to stick with that column layout, they should look at how pinterest is presenting information.
also - comic sans is classic. i predict a comeback.
cofounder: Hey Ed, it's 6:30. Finish up. Let's go next door and get a beer.
edw519: No, I have to finish <Task X>.
cofounder: Do that later. Have a beer with me.
edw519: No, I have to finish this now.
cofounder: Have a beer with me, then do that tomorrow.
edw519: No, this has to be finished tonight.
cofounder: Then have a beer with me, and come back after the beer and finish it tonight.
edw519: No, I have to finish it first.
cofounder: If you have a beer with me and don't finish that, how will our Annual Report be different?
cofounder: You heard me. If you have a beer with me and don't finish that tonight, how will our Annual Report be different?
edw519: I don't understand.
cofounder: Listen one more time and answer the fucking question! If you have a beer with me and don't finish that tonight, how will our Annual Report be different?
edw519: It won't be.
cofounder: Good. Then let's have that beer now. OK?
Personal life hacks:
1) All the folks telling you that diet and exercise will magically make things better are actually right in micro scale. (You can't pushup your way out of being a salaryman but it is very hard to not get a QOL boost from reguar exercise.) Blew my mind to experience this since I had always assumed it was social signaling.
2) Your startup will always send signals that it really needs you. Consider making a commitment to maintaining family/friendship/church/whatever ties so that you can maintain perspective on how much the bat signal going off really matters.
3) You'll tend to end up like the folks you hang around with. If you steep yourself 100% in startup culture, you'll tend to pick up its cultural pathologies. I mean, do your five closest friends all overwork? That might be why seeing half days off as a luxury item became your new normal. Consider reconnecting with old friends or broadening your social circle.
Despite how it may seem there's no chance your company will die or suffer any irreparable harm in a week. Just do it.
When you come back have a discussion with your co-founders. Try to talk through (calmly and without resentment) the problems you see. Focus on finding the best solutions to the problems. Don't get into arguments about the past. Everything before is water under the bridge. You will have to accept that certain things probably can't be fixed, and that's okay. Fix the things that hinder your company's ability to succeed.
Also, make sure you sleep enough every day. Don't skimp on sleep at all. Nothing will make you burn out faster than chronic sleep deprivation. Everyone can get 8+ hours of sleep per night if they make it a priority.
There is only one working solution. Get professional help.
If your servers crash - you ask an expert. If your car makes funny noises - you go to a garage, were there are professionals. If you have an infection - you consult an M.D.
But we tend to ignore psychological conditions and we tend to ask others (amateurs) for an opinion. But this is really nothing more than a physical illness in respect to the way it has to be treated - by an expert.
So do yourself a favor and ask your favorite search-engine for professionals, that know their stuff, when it comes to burnout. And then make an appointment. You are no good to your startup, if it crashes around you, because you crash and burn. You are no help to anybody, if your condition affects your work (and it will do that soon).
You have the responsibility for everybody, who's paycheck depends on the success of your startup - and that depends on your well being.
And: You owe it to yourself to heal.
just my two cents
I've experienced burnout a number of times in personal and professional contexts and I think nearing 30, I've got a pretty good handle on myself finally.
1. You can ALWAYS and should ALWAYS talk to SOMEONE. My advice is find a great therapist. If you can't afford one, you need to find a friend, confidant, or family member that's away from the action. Talk through things and see if you can wrap your head around what's bothering you.
2. Exercise. Seriously. Exercise helps sleeps, weight loss, anxiety, depression, add--it's a pretty awesome medication. Read "Spark" by John Ratey.
3. Sleep. The times in my life I've felt most burnt out corresponded with awful sleeping patterns. (also see 2)
4. Reflect. After trying to talk through things and getting your body back on track think about your work. Are you happy doing what you're doing? Do you want to do something else? (some might recommend doing this first--I wouldn't; only because in my judgment I've made decisions I regretted because I felt like I wasn't in the right place--not because I really didn't like the opportunity)
This is obviously a reader's digest version, but it took me probably 5 or 6 iterations before I could identify, prevent (or treat) my burnout.
* Sleep like a rock, when you get the chance. Lack of sleep, among alcohol abuse are the most common causes of depression (at least from my personal observation)
* Hang out with friends, family as much as possible, when you get the chance. They'll constantly remind you why you work so hard. Also try to explain them why are you doing certain tradeoffs in your relationship with them.
* Swallow a boatload of Magnesium + B6. IMHO it's the biggest source of happiness one can buy for little money. It keeps your stress levels in control and your heart condition in shape.
* Meditate. I cannot stress this enough. Constantly talk to yourself when you're alone and seek thoroughly for things that cause distress in your life. Debug yourself. You have to like yourself for others to like you!
* Get a girlfriend that understands you or dump the one that doesn't get it (unless you're already married)
I would recommend to take some time off and _travel_, ie. active vacationing. If you just sit around at home that's probably no good. Also, if you can't sleep, take some pills.
This may sound odd, but I found reading books from the Dalai Lama also helps to handle issues like this on an intellectual level, ie. remove the negative emotions and just figure out what's bothering you.
If you're startup is doing good, then thank the Hacker News Gods and don't worry!
Best of luck! Cheers =)
PS.: if you need someone to talk to check my profile for contact info.
Who was it that said if you can't take a month off without telling anyone you don't really have a business? Yes, yes, I know that a startup is not yet a true business, but one of the most important things in a startup is letting go as you grow. It's very easy to convince yourself that you are absolutely essential, but in reality your job is to build a money-making machine where you are not essential. One cause of burnout is being overworked because you are taking on too much personally. When you build something from the ground up, you have a lot of knowledge that others might not have, which makes it psychologically difficult to delegate, but nevertheless you have to find a way to let people make their own mistakes or your own treadmill will go faster and faster until you flare out spectacularly.
1) You are not alone. Most founders will completely sympathize with you and understand your feelings. There are a growing number of founders that are coming out with their stories. Remember pg's articles about the highs and the lows? Also check #3 of YC's survey here: http://www.paulgraham.com/really.html
2) It's normal. Knowing that everybody hurts. It's normal that things are hard. If you can acknowledge this one simple fact, things become much easier.
3) Openness. Talking to friends and family and being open about it. The hardest thing I found was to be vulnerable wit those I feared might abuse it (investors, spouse, co-founders). In the end it actually improved everything about my relationships with most of those (and some that it didn't - it showed their true colors). For example with my gf - for her it was an instant revelation how I was feeling and she understood why I was cranky, tired or otherwise distant. After telling her how I felt - it was like instant intimacy.
4) Time out. Taking constructive time out and feeling happy are correlated immensely. Constructive time out is not watching the newest Walking Dead, but for me an effective time out was writing lists of my thoughts down. Taking the time out meant I would feel more in control. Feeling in control directly leads to more peace and happiness.
5) Doing GTD. The other items in the list are somewhat softer but this is one that has made the biggest practical impact. I religiously follow zero inbox and for me it is a something I pride myself in too -> feel better about things and gives me the brainspace to think about the higher level stuff.
Hope that helps. Feel free to email if you want to discuss more. There's much more back story to this than can be public. ;-)
Adjust your work life balance. This means doing things like (as have been mentioned) getting more exercise and getting better sleep. Both of these will not only help your mood, but they will make you more productive.
You need to talk to your team. Explain what's happening.
You have awareness and insight - you say "despite things going well I'm somewhat depressed" - that's good. Try some cognitive behaviour therapy techniques. A good book is "Mind over mood"; a good website is the Australian "mood gym". You could see a therapist.
Luckily this kind of stress / low mood responds excellently to interventions.
I'd check on sleep deprivation first. Take a week off, sleep 10 hours every night, exercise every day lightly (long walks listening to music are good), read a book. If you do all this and you still think you're at the end of your rope then you need to talk with your cofounder.
You also said it isn't affecting your work yet, but people are smart and social signals are sent without even realizing it. Its impacting your work already, in little ways, and will only get worse. Deal with this now, don't wait.
What happens in such situation is that we naturally and often unconsciously start to think about it trying to find a way to handle it, understand what is going on and how to solve the situation. This is going on 24/24 7/7 and this is what is sucking your energy.
Taking a week off is an emergency protection measure you should indeed apply. But this just puts a spatial distance between what is harming you and yourself. Soon or later you'll have to come back to your startup. You probably know it and you may spend this week off continuing to burn your energy thinking about the problems.
So taking a real step back and a week off requires that you completely switch off from the harmful context. This requires will power but you are aware that your health is in danger now.
The second thing to do is become aware that apparently you are failing to solve the problem by yourself the way you tried so far (probably unconsciously with intuitive methods). So you have two options now. One is to take the step back and, after a recovery time, reanalyse the situation rationaly by trying a different approach you tried so far. The second is to get help from someone who know what you are going through and can help you sort out the solution. In both case it is only you that can identify the problems and the way out. The help is just to help you make a difference between what is important, what is not, what are automatic negative ideas and what is truly positive.
You got aware that something is wrong and you asked for advise. That is great because you've done half of the way to get you out of this situation.
Last point. As other people tell you here. Take this problem very seriously and tackle it NOW, ASAP or get the hell out of this situation if you can't handle it. This can kill you by suicide if you don't handle it. This may sound completely stupid and unbelievable to suicide one self, but you may get into a depression state where the pain you feel is so strong and unbearable, the situation seaming so hopless that sucide will look like a very rational and logic way to stop this. You are apparently far from this stage, but this is what you'll find at the end of the road if you don't solve the situation. I don't want to scare you. It is just to show you what is in the balance and why you should react and take it very serioulsy. The earlier you detect it, the easier you can adjust your course to avoid the dead end.
The options turned out to be worth a lot, by I couldn't enjoy work for 3 years, so I am not sure continuing to work was a good decision.
In my case the reason for a burnout was personal (relations with my boss) and I suspect that the reason is always personal.
I would distill it to 2 advices: ask yourself the 5 whys about the burnout and don't continue working in this state.
I'm not a confounder, but the CEO-founder is a friend and hired me on as soon as he cleared his A-round funding. (We've been confounders before on a project that flopped and he knew I wasn't in the risk position to be a dayjob-quitting early employee this time.) He's a serious workaholic -- claims to enjoy being so -- and the company is doing very well. That said, he's CLEARLY burning out.
He's talked for the last year about taking some time off, but between the birth of a new child, fundraising, strategic partnerships and the continued burden of success, his "week in Florida" kept being pushed off, shrunk to "three days in Florida" to "a day off" to "I'll take some time after this next funding round. Maybe."
Setting aside the fact that he's my CEO (and a ragged chief exec is bad for everybody), he's also a friend. I don't want to see him burn out. This will almost certainly NOT be the last company we work on together, and I'd like to see him survive -- mind, body, marriage and social circle intact -- past our current endeavor.
So, again, how do I convince my workaholic CEO to take some time off?
for every problem there is always a solution, talk to your cofounder, your view on life and your peers is toxic now but this will change very quickly
dont rush into any decision now, wait until you see clear again
It took me several years to pin it down, but in my case getting more sleep completely solved above problems. Try and take a full day off and sleep in. Pull full 9-10 hours of sleep and assess if your irritability level is the same or not.
I was also feeling exhausted and feared the worst, but it was all related to that. If you don't see the sun very often, you will build up a lack of Vitamine D.
I'd time-box it - tell them you are feeling burnt out, and want their help for 2 months. No reasonable person would be annoyed at a co-worker taking it easy for 8 weeks. If you feel better at the end of it, then the crisis (for them) is averted. If not, you can consider your options. Note - I'm not a therapist, and I don't know if that's the best way of handling it. There's plenty of people who are better qualified than me to come up with a good plan for this.
> startup that really needs me right now
You should really re-consider that. No startup needs 100% of your ability. A slightly inferior feature-set won't kill a viable startup. You aren't in a 100m sprint in which you need to do everything that's humanly possible to beat the other guy. It's more like a dance competition, in which strategic decisions are more important. That's assuming you have a ton of competitors.
This happens and in a way it is good that your co-founder is going strong and doesn't need a break too. You badly need to recharge yourself & this has to be time well spent cautiously and consciously chalking out what you do during your break. A hackathlon or doing some sales for a friend can charge you back it need not be necessarily travel or rest. In effect you need to do something very different from the type of thinking that you do everyday (note different in thinking not the work type).
Also give yourself a break from all the headaches on your current startup - consciously keep away from talking to anyone on the team or checking out updates (positive updates are probably fine)
If you are the type of person for whom physical exertion works free up the mind - go for a hard trek or run or swim.
As far as your depressed nature, cofounder resentment etc - you might be blowing it out of proportion right now given you are not able to contribute effectively or thinking too much.
The biggest issue from a business standpoint is your resentment of your cofounder [I'll leave healthcare diagnosis to the professionals].
Basically, you and your cofounder are married. The startup is your baby. I expect [based on personal experience] a marriage counselor would focus on improving communication between the two of you.
I'd ask what the particular resentment is in regards to, but the details don't really matter.
What matters is:
1. Are the causes of resentment something which can be rectified either directly between the two of you, or with mediation?
2. How can the level of trust between the two of you be strengthened to the point where you can work through these problems together?
3. Is there someone who could help both of you work through the issue together?
So, think about that and act.
How exactly to break it, I'm seeing loads of great advice in the rest of this thread so I'm not going to repeat it all. It's a different struggle for everyone.
The "end-game" for burnout is complete dysfunction and possibly worse for an extended period of time. If this happens the first thing your co-founder will say is "Why didn't you tell me?"
One of the most common overlooked things with developers is the fact that your brain strives for equilibrium. Tipping the scale too long can really have disastrous side-effects if you aren't doing some of the things you love doing. I broke down for nearly 2 months unable to code at all but it was the last time that happened since these adjustments.
I was good about exercising even at the depths of my burnout, but I nonetheless still felt tired all the time. The dietary supplements have made a profound difference. I've never felt so energetic in my life (I'm in my mid forties).
I just got laid off from a douche bag boss (who knows, you may have been that boss, for all I know). He was pretty much in your shoes. I imagine in another life he'd be a good guy but his negative attitude was infectious and as a result his protĂ©gĂ©s are now professional douches and everyone around him is miserable. You're going to become THAT GUY if you don't get out.
You: I completely agree with patio11's diet & exercise point. Strenuous exercise (over 30 min) releases endorphines that act as both analgesics and sedatives, and are shown to reduce depression, increase self-esteem, etc. You owe it to yourself and your startup to do this life hack no matter what the cause of your current unhappiness.
Of course, diet, sleeping well, and taking time off/socializing are also great ideas. The important thing is to take action now before it affects your life/startup any more than it has.
Your startup:If you think some of your resentment or depression is due to dysfunction in your startup, then come up with ways you can improve it. Focus on actions you can take rather than on ways other people/the group could change. I also find that people are more likely to change when asked to do something than when asked to "not do" something.
For example, if workaholism is an issue, it's easy to fall into outward/"don't do" thinking like this: telling the group that the amount of time required is making you unhappy, and that it should change. Instead, try saying something like, "I think I'll work better if I take a whole day off every two weeks and I'd love it if people joined me. My first day off will be x day, and I'm going to go hiking, let me know if you want to come." People love to join a good idea.
It sounds to me like you need to get some perspective on things so I would suggest:
1) Talk to your co-founder. They probably see you in ways you don't realise and they should understand that for the sake of the startup it is best to give you a bit of support. If they don't then seriously think about whether you want to continue with someone who won't support you (and the startup) when you need them to.
2) Take a break. By this I mean a real break where your cell phone is off for at least a week if not two. Where you do as little as possible and try not to even think about work. It might take a bit of time to get yourself a chance to do this but you have to.
3) Learn to meditate. It will totally change the way you look at things. The feeling of suffering and pain you have comes from your mind being out of control - you know rationally that it isn't as bad as it seems and said as much above. Learning to calm your mind and get rid of the fog will help you look at what really is important and you will feel more in control and positive.
3) Remember that you are only human. There is nothing wrong with making mistakes and things getting on top of you. You must learn to not be perfect and be happy that you are as you are. There is no shame in needing help.
5) If the above don't work for you go and see a doctor. Depression is a real and sometimes very severe illness. For some people (but only some) medication is the right answer.
Hope that helps.
Take some days off. Soon you will understand that everyone respects your vacation. Don't afraid to pick up the phone and give solutions where it's needed while you are in the middle of your holidays. Picking up the phone will make you feel comfortable.
And always remember: Everyone respects your vaction. Don't afraid to leave for some days and relax.
If you take some time off to rest and you don't feel any better seek professional help. Mental health is just as important as physical health and isn't something that you should feel ashamed about.
1) Not enough sleep and exercise. Get at least three consecutive days of solid sleep and go work out. See how it changes your mood and thoughts.2) Your co-founder is dominant and you have no say. You don't feel ownership. There's an imbalance of power and you're in the second seat. A lot of startups operate this way.
I suppose there are several reasons why someone can burn out, and as well as getting some rest to clean the mind it is also important to find out why that's happening. Otherwise it would happen again.
My first and best manager I had, once told me, that jobs are a bit like relationships, the more you try different ones the more you find out what you _don't_ like.I have found that to be a great piece of advise. So I guess my advise to you would be find out what it is not working for you. Talk to someone outside the whole situation that can have a clear picture of what's happening to you, either a therapist, an old pal or just a family members I guess would be able to help you.
I hope this helps :) I have been there and I was miserable for family and friends.. but having them close to me was a huge help to get back to my old self once again :)
On a personal note, I was (is) feeling the same thing for a long time. You have to decide what your life is going to look like. Pay attention to compromising decisions.
P.S. If you are my co-founder, take a vacation already. You work too much!
Become one of the inspiration junkies. Go to the gym. Work on another side of the business. Schedule your day, leaving time away from your startup. Don't let what's urgent mascarade around with the set of things that actually need to get done. Start taking legal "smart" drugs like Piracetam, Aniracetam, Pramiracetam, Noopept, Acetyl-L-Carnitine, Lion's Mane Mushroom, Magnesium L-Threonate, etc.. in addition to helping you get "smarter" and increasing your productivity/proficiency they'll give you motivation and a serene feeling.
I started a small business that worked in conjunction with title companies. We basically recorded on our own servers deeds, notice of defaults, and other real estate documents and sent them to the county recorders office.
We didn't have much competition because this concept was relatively new and not popular back then. So everything was going great except my partner and I were two completely different people when it came to managing.
He was a strict by-the-book kind of guy that alienated potential clients due to his stubborn nature and unwillingness to compromise. On the other hand, I was too lenient and was letting clients take advantage of us. At the time we didn't know that maybe we could complement each others weakness, so we were constantly arguing.
So we both went to a mediator that suggested we go on a recreational trip together and not talk about business at all. So we did and at first argued about minor stuff, but finally came to a realization that neither of us were going to succeed if we kept it up. How could we run a business together if we couldn't even come to an agreement to which car to rent? We started compromising little by little and eventually it was easy to see the other person's point of view.
We turned the business around, made it even more successful and sold it making both of us very happy. Now we have a new company that we started together and it is also doing pretty well.
My advice would be to take some time off. Maybe spend some time with your co-founder in a non-business way. Get to know him if you don't really know him well. And don't sweat the small stuff.
Knowing your problem is the first step, and I think you've already got that down.
If you still feel down, don't forget you have a growing user-base that is cheering you on.
I'd recommend some sort of mind training... just relaxing doing what other people says is relaxing almost never helps (beach, book, etc).
Check this out [english audio]: http://www.youtube.com/watch?v=vHjyMq6eZB8
This one is good too: http://www.youtube.com/watch?v=ogH3KAge6zw
I can tell he's tired - he comes in to the office later and later, seems more easily irritated, has worked crazy long hours for years with hardly any days or weekends off. I think the daily stresses are just starting to wear on him. (Me too, of course, but that's a subject for a different post!) If I recognize what the OP is going through in my own co-founder, how should I bring it up?
For those of you who have or are going through this kind of thing, any thoughts on the best way to talk to someone who is struggling with this? I really want to help.
The author has some really good points and ideas.
An ounce of prevention...something something.
Don't think it can happen to you? Read about Ben Huh at Cheezeburger.http://www.geekwire.com/2011/cheezburger-ceo-ben-huh-details...
Daily exercise helped me, try getting your pulse up, if you do this regularly you will get much better mood, more energy and things will lighten up.
so I would just say you are not alone!
Also, if you are motivated entirely by making money and are not inspired by what you are doing, this could be a cause.
Find out why you're doing what you're doing, reaffirm it, and it will inspire you again. Stop sulking. A physical break is not going to help if you don't sort yourself out mentally.
I know it's hard to swallow, but try it.
What's wrong with writing, anyway?
Images too are a problem of course, without alt attribute they are totally worthless to blind people.
So if you want to present something to the entire market, be sure to have either an accessible website or a mobile version, both preferably in the local language (you should hear how Dutch text to speech software reads English, sounds more like Chinese--literally). And there are about 160 million people blind around the world, even if only a tenth of that speaks English and has internet access, that are 16 million people. Nearly as much as the entire population of the Netherlands.
W3C has created the Web Acceptability Initiative (WAI) with the goal of creating a common set of web standards so that all people can access content. Check out the WAI homepage for best practices and code examples: http://www.w3.org/WAI/
I sometimes forgive start-ups for not captioning videos, but I think it's inexcusable when a large multinational corporation publishes a video with no captions -- especially if they pay for live captioning for employees in meetings (e.g., by using http://www.captionfirst.com/).
Two of his most popular works, both dating from 2002:
- WAAR of the Worlds, in which aliens invade (and are then repulsed by another player who alternated game sessions with Prufrock451). http://forum.paradoxplaza.com/forum/showthread.php?44563-WAA...
- The Great Game Redux - Sibir, whose plot bears a striking resemblance to Rome Sweet Rome. A Englishman in 1909 is transported to Siberia in 1419 and attempts to transform the tribes into a modern country. http://forum.paradoxplaza.com/forum/showthread.php?35699-The...
Both were written against a backdrop of a (heavily modified) game of Europa Universalis 2 (http://en.wikipedia.org/wiki/Europa_Universalis_II).
The right idea was in front of the eyes of the right person at the right time.
The idea is a staple of light sci-fi, but apparently has not crossed the desk of the right agents in the right mood.
Which is wildly underestimated as a cause of success.
Come on Wired, you can't use "hmm" as a noun - it at least needs quotes!!
Twenty-five were immediate noes.
I think that's also highly questionable. But I'm not certain.
Of course, like any site that thrives on pseudonymity, Reddit attracts its share of the sick and the deluded. There's a subreddit, MensRights, âfor people who believe that men are currently being disadvantaged by society,â and for years the site admins tolerated subreddits devoted to pictures of underage girls.
What? How is MensRights "sick and deluded"? There really are laws (e.g. child custody law in certain US states) that are highly skewed against men.
By the end of his lunch hour, he had gotten as far as Day 6, but he didn't want to post all the entries at once; what if no one read them? So he posted Day 2, then returned to his work, taking screenshots of software buttons and labeling them. ... Erwin dribbled out his story over the course of the afternoon, switching back and forth between Reddit and work.
And here, Prufrock451 is a lucky one. Hollywood is starving for ideas, but even when innovative writers come up with a good idea, Hollywood prefers to go with established money-makers and often red-lights obscure ideas. I think they're so willing to go with Prufrock451's story because it got so popular on reddit. There's lower risk. They see that this story can attract a lot of eyeballs, and are hoping that those eyeballs will translate to box office success.
Hollywood likes to blame its decline on pirating, but in reality there are very few new ideas coming out of Hollywood anymore, and they expect to make money repackaging old ideas, putting them in 3D and charging a premium. Hopefully stories like Prufrock451's become more common and we get to see more original ideas make it to the big screen. I certainly don't want to see more movies with the old stooges and the new Jersey stooges.
I really hope they don't fuck it up when they make the changes. Prufrock, if you're reading this, don't let them ruin it. Please, please, please watch out for your story. Don't let them make it completely different.
Oh, it'll be one of /those/ movies :(
For much of my life, when we spend money on space, we get not-space.
For the money we spent on the X-30, X-33, X-34, and X-38, when Dan Goldin was NASA administrator, what did we get? Not-space. (At least the X-37 is up there spyingflying.)
The orbital space plane program, the one that was Sean O'Keefe's thing - neat plans, more capsules than planes IIRC, but ultimately we got not-space from it.
The Vision for Space Exploration, under Michael Griffin? Rocket designs that were approximately equivalent to throwing your astronauts into a paint mixer. A system about which the review panel said that "If they gave us the system on a silver platter, the first thing we'd have to do is cancel it, because we couldn't afford the ongoing costs." A lot of money, a launch pad rusting in the Florida weather, and a whole lot of not-space.
And for all the money we spend on human spaceflight, we now send Astronauts up as passengers in Soyuz rockets.
Now we're spending $18 billion dollars - figure subject to change, always upward - to build the SLS - the Senate Launch System. (Another estimate has it at $40B for development and the first 4 flights.) If all things go as planned, it will launch once every two years, launching an unmanned trip around the moon in 2017 and a manned trip to the moon in 2019. Schedule subject to change - always slipping.
Does anyone thing that SLS has a chance of working? Or is it just going to become another not-space program?
How about the replacement for the Hubble Space Telescope, the Webb Space Telescope? In 1997, it was going to be launched in 2007, and it was going to have cost 500 million dollars. Now we've spent 3.5 billion on it, and it will launch in 2018. Maybe. That's a ton of money to spend on not-space - and it's money that's been taken away from the moderately successful bits of NASA, like the Mars program, which doesn't have a mission in it after 2013's MAVEN.
I don't mind spending money on space. I like space. I've been following the MER rovers for nearly a decade. I think COTS and Commercial Crew are brilliant, and hope that they will continue to exist with a program structure that rewards results, rather than existence. Commercial space is the last best hope to get a domestic space capability.
But times are tight. We're massively overspending as is - borrowing tons of money our grandchildren will still be paying back. So increased spending is far from free.
Is it worth it? I say yes. Spend money on space. Where do we get that money? Let's stop spending it on not-space, like we have been.
The Chinese explored the Middle East and Africa almost 100 years before the Europeans. Every expedition consisted of 300 ships, some as long as 400 feet with 9 mast and an armada crew totaling 28,000 men. After 30 years of doing it they realized that they were spending too much money on these grand expeditions. The succeeding emperor ended the program. The Europeans on the other hand would send out just a few ships and try to find ways for the expeditions to be profitable (Slaves, gold, land, colonies) in ways the Chinese never thought. These smaller European expeditions could not be stopped by one emperor because Europe was not a unified empire like China. The smaller European kingdoms also competed against each other. This not only made the expeditions sustainable but thrive for the next 500 years. Right now I think we are in China's situation 600 years ago. We stopped the moon landings for the same reason the Chinese stopped landing Eunuchs in Africa. Unless we find a way for these space programs to be profitable I don't see humans colonizing space anytime soon.
A little background. I'm old enough to have been "inspired" by the Space Shuttle Program near the point of its inception. Imagine a young mkn sitting down with a pencil and paper to work out how much it would cost to buy himself a ticket on the Space Shuttle at the promised $50/lb. I weighed 70 lbs. I knew it would be more than $3500 because I'd have to eat and breathe while I was up there. I wondered if I could go naked to save some cash. But still, it was a nice number. And then, the number changed. The promise went up to $100/lb. Fine. The math was easier. Oh, and the number of launches went from 26/year down to 12/year. Not quite the airline-style operations they had promised, but not bad. And then the price went to $500/lb. 3 or 4 launches per year. And then, the media just stopped talking about the costs and launch frequency, probably because it quit showing up in the press kits.
Tyson complains that we don't dream about the future anymore. He's right. We don't. But he complains without the slightest hint of irony. The promise of NASA was that the costs would come down. The promise was that spaceflight would become routine and affordable. The promise tapped into the then-current emphasis on mobility in the American Dream. Tyson is right that we don't dream about the future anymore. But we don't dream about it because NASA has proven to us what the future is. The future is NASA, and the future is stagnation. We have all been "inspired" by NASA. We don't dream because we don't need to. We know.
Tyson breathlessly opines about all the amazing things NASA could do with twice the budget. Missions to Mars! To those, I have this to say: Big fucking deal. The promise of NASA was never its "missions". The missions were a vehicle for the promise. The promise was ubiquitous space access. I'm going to see my cousin on the Moon. We're taking a year and seeing Mars. Sending some highly-selected and highly-trained spam in a can for some fahrt around a crater is not the promise. Sending you and me there for a fahrt around a crater is. Somehow or other, that part of the promise has slipped out of NASA enthusiasts memory. Long live NASA! All we have to do is pay twice as much!
The imagery of the Shuttle and of the new capsule is especially offensive. It's the easiest thing in the world to verify that the Shuttle was the most expensive launch system ever conceived in the history of manned space flight. It is, as I've hinted above, the primary reason for the complete demoralization of the populace with regards to space flight. And it was promised to be so much better than that. The Orion capsule is all that is left of that disgraced launcher program, the one that retained the disgraced SRBs to placate Morton-Thiokol.
NASA can't. That's my new slogan. Unlike other slogans, which are mainly inspirational, mine is intended to remind me of reality. Take any dream you have about space and phrase it as a question, and the answer is "NASA can't". Will we build orbiting habitats in space on a massive scale? NASA can't. Will we ever colonize the Moon or Mars? NASA can't. Will we ever be able to realistically dream of democratic access to space? NASA can't. Every time you hear Tyson speak, just remember: NASA can't. And it ain't for lack of funds.
I wish Tyson would other shut the hell up or direct his energies and oratorical gifts at making NASA an agency worth supporting. But, he won't. He's a cheap shill, and he's just going to keep doing his shabby job.
What if Columbus waited another 100 years for a safer option to cross the mysterious expanse? History would be much different.
NASA no longer innovates. It's coasting on past glories. If a fraction of the billions spent on NASA were left untaxed in the hands of individuals like Carmack, Musk, Thiel, and Branson -- and allowed to wend their way towards NewSpace investments rather than wasted on NASA boondoggles -- we'd all be much better off.
Also, it's not at all obvious that we want to keep focusing on manned missions, which Tyson mentions explicitly. You can iterate much more rapidly on unmanned drones as you need save nothing for the way back, and the costs of failure are far less. Tyson recognizes part of the human psychological factors at play (the motivation of wartime) but doesn't recognize that wanting humans in space instead of far more machines is emotional rather than practical right now.
Get the costs of putting things into orbit down with machines, and humans will follow. But let's not put the cart before the horse.
"We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win, and the others, too"
Or we could just build websites, obsess over stuff that will be forgotten in a year and shit all over other peoples grand ideas.
Kickstarter is still far from mainstream and making million dollar projects. Petridish.org opens the possibility of tax-payers willingly donate a monthly value to science. Now imagine if all of these went mainstream with a celebrity like Neil Tyson as the front face of a project to help fund SpaceX? Viable?
Before going to Mars I would like a decent school on my street.
"More people have walked on the surface of the Moon than have visited the bottom of the Marianas Trench. We've even been to the Moon more recently than we have the very bottom of the sea."
Because we saw what it got us. All that money, effort, and enthusiasm got us a couple dozen guys on a dead rock for a few dozen hours. Adding a couple zeros to the budget improves the situation from grey to red rock. Beyond that, we soon get to what some writer (escaping me at the moment) noted: humans just can't comprehend interstellar distances, the vast effort required to achieve even mundane results. Too much cost for too little result. My hopes remain high, but my expectations are more content with what's happening here on Earth. At 44 I realize how short life is.
On a side note, I think current and recent generations rarely look to space with the complete awe that say, generations in the 60's and 70's did.
How can spacexy be brought back?
Perhaps China will do the honors?
Otherwise the test is still interesting but is: "what is the best language to write a memcached clone without being an expert in a given language, using a few hours", that still says something about how different the three languages are, but does not say much about what is the best language to implement the system.
Btw in a more serious test another parameter that you did not considered much is very important, that is, memory usage per-key in the three versions, and in general, memory behavior.
edit: (that said I am not sure if the C version is thread safe either I haven't read the docs for the hash table he is using.)
edit 2: (looks like the C version is not thread safe either).
As far as raw benchmark goes, it runs faster than the go version on my machine:
# Go version. Changed test.py to 10000 gets and sets. Â± $ time python test.py python test.py 0.48s user 0.60s system 47% cpu 2.289 total # Python epoll version. Changed test.py to 10000 gets and sets. Â± $ time python test.py python test.py 0.20s user 0.26s system 50% cpu 0.903 total
Standard disclaimer: Please note that this comparison is highly unscientific, and take the numbers with a grain of salt.
strtok is not reentrant safe. And why use it, when looking only for " ", use strchr.strlen() is used over and over, instead of keeping lengths somewhere.Also comparison to "set" / "get" could be than char by char, or by using the perfect hash generator somewhat faster code (but even by hand it can be made very fast).'get ' and 'set ' can directly be checked using one uint32_t rather than byte by byte comparison....
And let's not talk about the needless hidden calls to memory allocation, instead of using slabs, or something more appropriate for the task. (strdup so many places too).
But that's all heresy. I'm a video game programmer, give me such code and I'll beat it up, except send/recv. So what? So fucking what?
 The first run is against the diesel one
wmoss@wmoss-mba:~/etc/Key-Value-Polyglot$ time python test.py
epoll is optimized for efficiently handling large numbers of sockets, but here there is only one socket. There is no reason epoll should be faster at blocking socket I/O than blocking socket I/O; if it is, I blame the kernel.
(Incidentally, here on OS X where there is no epoll, all the solutions performed pretty terribly - a few seconds for 50000 iterations.)
C and Python, OTOH, are available pretty much anywhere. Redis builds on say, Solaris, with no problem because the project is written in C and it is trivial to add the needed calls. A KV store written in Go can't support Solaris because Go itself would need to support Solaris first.
Years of tooling centered around C (e.g., autoconf/automake) is what makes most C programs cross-platform out of the box with little or no OS-specific code if you are sticking to POSIX. Until the same ecosystem develops around any new language, authors realize that choice of language alone can immediately limit their cross-platform capabilities.
But it's a overly small test anyway.
This makes the memg.py server > x100 faster. It outperforms a gevent-based implementation by 10%.
EDIT: It does not outperform the gevent-based implementation. More performance testing indicates that gevent is around 2x faster. But it outperforms the original version by an order of magnitude.
I was actually thinking about writing something very similar as an erlang C node just a couple of days a go. I noted that the overhead for storing a mnesia table of 5 million rows of 3 integers was huge - it would take up 1.6gb in memory! If you know the size of the struct, it should pretty easy to make a fast lookup system (assuming the keys are sequential) too.
I wonder if I could wrap this instead...