The Ph.D Grind: A Ph.D Student Memoir - <AUTHOR> http://www.pgbovine.net/PhD-memoir/pguo-PhD-grind.pdf <comment><USER3> Wow, I can't believe I just read that whole thing. Maybe it was the excellent writing quality or maybe I just find things like this interesting.

As someone who just graduated with a B.S. in chemical engineering and will start work toward my PhD in the fall (also in chemical engineering, but will actually involve a TON of programming), this strikes a chord with me.

A few takeaways from the article:

-The author does not give himself nearly enough credit. "Self-deprecating" is probably the right term. He considers himself average, but he is far above average. I mean this as a compliment of course.

-I think some of those tools he wrote could actually help me with my work (particularly CDE) -- I'll have to go take a look.

-I am going to have to learn how to focus, and very quickly. I consider myself very motivated/stubborn but I get distracted so easily that it's ridiculous, and this is not going to work for grad school unless I alter my behavior substantially before I get there.

-Before reading his book, I too had the idealized notion of "brilliant idea, years of writing one paper about it". The reality isn't quite as fantastic, but I appreciate learning the truth over belated disillusionment.

-Just realized the author is pgbovine -- excellent work! I currently have a completely free summer to do whatever -- would you have any tips on how I should prepare before I get to grad school? I already know which professor I will be working with, so I'm trying to figure out what level of "initiative" I should take before I arrive.

<comment><USER4> I'm also in chemical engineering and am looking to integrate programming into my work in grad school. What did you find to work on that's programming related?

<comment><USER3> Find a grad school with access to a supercomputer. There's a lot of fun ChemE problems that require one of these to solve. Simulating classical or quantum systems (molecular dynamics) takes a lot of algorithmic knowledge from CS and a lot of chemistry knowledge to understand the principles. Then the engineering knowledge is for scaling it up so that you can make something practical with your results.

</comment></comment></comment><comment><USER5> [ Short on sleep, so the post may sleep incoherent. Excusing myself from any egregious offenses against the English language ]

I read this in its entirety, unable to go to bed before finishing. This is amazing. I'll admit that I started out with skepticism towards Philip's initial research goals.

Instead what I found is an application of immense talent , culminating in software projects that are nothing short of amazing. For what it's worth, something like CDE seems like a holy grail in many scenarios. I've spent some time time thinking about distibuted cluster management software (Google's borg, MS auto-pilot, Hadoop YARN) and the problems these system tend to run into when encountering stateful services. Naturally, I'll spend a bit of time reading up CDE after this.

As Xcelerate said it's quite obvious that the author is _nowhere_ close to average, even in a top-tier program like Stanford. I also admire is that the author was able to maintain this healthy degree of self-deprecation while still doing the inherently (to a research or developer) distasteful but vital work of selling.

Many of my team mates at my current and previous jobs hold PhD. I come from an academic family: my dad was a full professor (e.g., habitulation et al) in our home country, my mom completed her PhD dissertation but wasn't allowed to defend for reasons best answered by a Google search[1]. However, this writeup still shocked me in many ways (the sheer grit and tenacity required on top of extreme mental horsepower). Thank you for sharing this.

[1] [https://www.google.com/search?q=jews%20in%20soviet%20univers...](https://www.google.com/search?q=jews%20in%20soviet%20universities)

Edit: one _tiny_ suggestion -- pgbovine, I like how you've planned for the book to be accessible to those outside of computer science/software engineering fields (e.g., explaining what device drivers, Python, et al were). That said, I still think there are a few pieces that could be improved in terms of the paper's accessibility to non-CS folks: going into more details into potential sources of bugs (to explain the motivation behind your initial research), the full pain of systems' environment management, etc... You should definitely publish this for a wide audience (at the very least gearing this for students or professionals in all natural sciences and other quantitative fields).

<comment><USER6>
      > it's quite obvious that the author is _nowhere_ close to average

I agree with you in general, but he meant he's at best an average _academic_ , because he didn't find a way to frame his work so that an academic community would welcome him. It's a fair assessment, but it's obviously not going to impede him from accomplishing great things.

</comment></comment><comment><USER7> The part that hit home for me was his description of the Prof's frustration with the speed at which he was implementing the enhancement to Klee and the fact that most grad students are not as smart as their advisors.

Most grad students are exhilarated to work with a brilliant researcher but it can crushing when one learns his or her own limitations.

Like the author says, probably 1 in 100 are the equal of their advisor and capable of becoming a professor at a comparable university.

<comment><USER8> Different strokes for different folks. It takes a special kind of person to be a professor, but this doesn't have so much to do with aptitude. There are many ways to contribute to the world, getting a PhD is useful even if you are not dreaming of being a professor.

</comment></comment><comment><USER9> This is great, and thanks for writing it up. I don't think many graduate students would consider doing this right after graduation...I certainly wasn't in a mood to write another detailed document after getting done with my dissertation (also a couple of months ago, and in computer science).

I wanted to add a little about the end-game. For me, the decision of what to do next followed a slightly different path. In the fall of my 5th year, while planning to graduate, I had to really think about what to do next. Academia sounded interesting, so I went ahead and applied to tenure track jobs, and did interviews. Come winter, I had an offer from an Ivy League school. But I had also wanted to do startups for a while.

From my experience, working on projects that were not provided/sanctioned by advisors was somewhat like working on a startup. You have to build things that others find useful/interesting, sell the crap out of it in publications, presentations etc, and I also had to fund it.(my research was building systems software that improves user experience in poor network environments, like those common in developing regions. One of the definite perks was travelling lots and deploying stuff I built.)

In other words, I have no idea why _most_ PhDs are not be expected to go work on a startup when they finish. They are domain experts, and are expected to be good communicators when it is all said and done.

So, when it came time to make the call---an assistant professor, or a startup founder---I chose the later (and disappointed my advisor). Some friends tell me I could have done that without a PhD, and it was a waste of time. I think a PhD naturally leads to a start up. The Grind, as the op calls it, is something that teaches you a lot about yourself, and surrounds you with some of the smartest people you'll find. Your job, every single day, is to innovate [with a more flexible runway]...and you can make (and learn) a lot out of it.

<comment><USER10> When looking at it from a start up point of view...isn't is possible to emulate most (all?) of the lessons you learn from grad school in the start up environment?

</comment></comment><comment><USER11> Wonderfully written and a page turner. Bookmarked it but ended up devouring the thing in one sitting. Deserves widespread publication. Guo is a remarkable dude, and brutally honest. It's a tale of perseverance and canny self- promotion from a guy who is spectacularly good at learning from failure. I felt an almost parental joy upon reading the outcome. Publish this on Kindle, Mr. Guo!

<comment><USER12> wow, thanks for the compliments! i'm looking into rendering in a Kindle- friendly format soon.

<comment><USER13> Yes, +1 for the kindle/mobi version

<comment><USER12> done -- epub/mobi versions online at:

<http://pgbovine.net/PhD-memoir.htm>

<comment><USER13> Excellent and with high quality. Thanks

</comment></comment></comment></comment></comment><comment><USER14> As a current graduate student skeptically considering working toward a Ph.D., this has helped me confirm my suspicion that it's not for me. I started doing research as an undergrad, so I have become somewhat familiar with academia's publication game... and I find it distasteful.

Knowing what goes into a Ph.D. is invaluable in making such a decision, and this book was quite helpful in that regard. Thank you!

<comment><USER12> i have a big fat disclaimer in the preface that this isn't meant to be anything other than me telling my own story; it's one data point, and there's a huge amount of variation in Ph.D. student experiences.

maybe i didn't make the disclaimer big enough, though :)

<comment><USER14> I read the book with that disclaimer in mind.

Please don't take my comment as "you ruined my motivation for further education"; it was meant as "you saved me the trouble of finding out the hard way that this really wasn't what I wanted".

I have never been interested in being a professor, so I would be in it entirely to push my limits. But if I know I won't enjoy it (and as far as Ph.D. programs and publication go hand-in-hand, I know I wouldn't), then is it really worthwhile? That isn't to say I wouldn't emerge a stronger person at the end, but I would rather find ways to push myself intellectually that I will enjoy. I believe they're out there.

Edit: I just read a post about your book at <http://blog.regehr.org/archives/743> which you might be interested in.

<comment><USER8> You could always attend a more relaxed PhD program outside of the first tier schools. These are still great schools and won't exactly be easier, but the pressure dynamics are a bit different and you'll have more time to experiment.

I really enjoyed my PhD experience; I had time to explore who I was and was able to accomplish what I wanted to. It wasn't so much of as a useless grind as it was a journey to enlightment, but my experience is unique.

</comment></comment></comment></comment><comment><USER15> Pretty amazing memoir. Does a nice job of capturing the ups and downs of the grad student experience. Phil - consider distilling this down as a blog post or two - lots of good lessons here, but given the length they might be lost on most or your potential readers.

<comment><USER12> hi matt - wow, i was gonna email you tomorrow, but HN scooped me.

re: distilling -- my main intention in writing this memoir wasn't to provide advice, since it's hard for me to determine how much facets of my experience generalize. i do have plans to convert the "lessons learned" section from the epilogue into a talk, though.

i have this other article from the beginning of my third year that's more of the "advice" type, although again, I'm wary of making generalizations about Ph.D. life: <http://pgbovine.net/PhD-life.htm>

(other fun fact - i used one of your blog quotes as the title slide of my Ph.D. oral defense)

<comment><USER16> Oh, that was from you, too?

I just read this a few days ago (was actually recommended here on HN [1]) and thought it was terrific.

That might be one of my biggest problems in science - I have a hard time memorizing people's names.

[1] <http://news.ycombinator.com/item?id=4141353>

<comment><USER16> Turns out the author wrote about that problem, too [1]. The advice is mostly on how memorize names when you get introduced personally, but admittedly this is an even more important problem. Recommended read.

[1] <http://www.pgbovine.net/on-names.htm>

</comment></comment></comment></comment><comment><USER12> whoa i'm astonished people have the attention span to read this on a friday night :)

here's an HTML version too ... <http://pgbovine.net/PhD-memoir.htm>

<comment><AUTHOR> Hey, sorry for scooping you if that messed something up :)

I heard you'd graduated, so I wandered over to your site today. Didn't realize you'd put up this article so recently.

<comment><USER12> oh, no worries at all! in fact, i just shipped today. thanks for posting, ethan.

</comment></comment></comment><comment><USER17> I'm only halfway through this, but it rings true to my experience. The circumstances are different, but the emotions and lessons I had to learn are much the same. Near the end of my PhD, when I knew that graduating was just a matter of time, I had difficulty explaining to people what the process had been like, and how to answer people when they asked if they should do it, too. In the future, I'll point them to this.

<comment><USER8> I've been out for 7 years now (ended about the same time this guy started). I actually had some experience working at Dawson's bug finding startup a bit at the end, which was an interesting experience, but not what I was interested in, so I went to EPFL to work on Scala for my post doc. I can sympathize with the author's struggles!

I'm only halfway through this, but everything is true, especially about research agendas and insider academic sub-communities.

<comment><USER12> oh thanks for reminding me ... i should forward this to your advisor!

<comment><USER8> Ah, you MIT guys all know each other :)

While you are at google, you might consider continuing to engage with the academic community to a limited extent. Onward! is very different with a new/improved community that is interested in bridging gaps between PL/HCI/systems and isn't so concerned about the publishing rat race.

<comment><USER12> actually i don't know wilson, but he went to grad school with my advisor, so i figure i should ping him!

re: Onward! yes, i've heard good things about it; will keep a look-out.

<comment><USER18> I expect that Wilson will enjoy your writeup, definitely forward it to him. He's a Googler you should get to know anyway...

<comment><USER12> ha you're another person i meant to email today ... i should get on that soon!

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Once I started reading the memoir I couldn't put it down. As an entrepreneur three points stood out for me: i) Give and ask for help: Asking for help is crucial for the success of any venture. But providing help opens many unseens doors. ii) Give and attend talks: By giving talks you expose your work to a wider audience, more importantly you will get real-time feedback and find a potential customer or two for your product. iii) Network with amazingly talented people: Just a half hour or an hour meeting with smart, highly experienced people can light up possibilities that you may have never considered. Then there are chances that they will introduce you to the next investor or big customer.

</comment><comment><USER20> "One possible reason I dreaded was that nobody had previously built something like CDE because it was impossible to get the details right to make it work e ffectively in practice. Maybe it was one of those ideas that looked good on paper but wasn't practically feasible"

No, there was autopackage, alien and any numerous other programs and battles/discussion long email threads that worked not just for python but for any language. Technically speaking as I see CDE, it is useful for python and standard installs in very select cases. For large research projects where the variables and runtimes will differ with no rhyme or reason other than "That's what we started with". It's probably a lot more of an issue to get running properly.

I'm sure there is no easy answer, it's really a human problem. What would really be highly useful is for standardization on a linux distro specifically for research but even then that would only be useful for at most an organization/institution/research lab. Getting researchers to stick to such a distro as a general rule is impossible without weapons.

<comment><USER20> Also, good read.

</comment></comment><comment><USER21> I had no idea you could get faculty from another institution to be on your thesis committee. More importantly, I had no idea PhD students could do summer internships to supplement their measly stipends. If I knew that I might have applied to grad school already. It seemed like the only people in my undergrad program who had a good idea of how to plan out their academic careers were the ones whose parents were university professors. I felt alienated and left to fend for myself and I still don't know how to break back into that world.

</comment><comment><USER22> Philip, I first read your blog 2 years ago when I was starting to think about a PhD and I had a decent academic admit season in Fall 2011 when I finally applied (headed to CMU later this year). Recently, I was going through a slump since a paper out of my undergrad thesis I submitted to a conference was tossed out with very harsh reviews. This manuscript once again has come at a very opportune moment. You are an extremely gifted writer. Congratulations on finishing.

</comment><comment><USER23> This rings true for Humanities Phd's as well. It's difficult to describe the cycle of guilt, drive and passion somehow all wrapped together. This is a great overview.

<comment><USER24> I'll second the motion from the biology department. The trials of finding the right mentor, navigating the waters around the Cape of Publication, and maintaining your passion seem to be common throughout academia. Definitely an informative read, regardless of the specific academic field.

</comment></comment><comment><USER25> I just read the first chapter. Very insightful.

Especially early on, I was so personally attached to my work that any problem (eg, an upper bound not working out right) was devastating. But then, when it did work, ecstasy. And then, uncovering bad algebra in the derivation caused despair. And then, error corrected, euphoria. Round and round.

</comment><comment><USER26> The Google Tech Talk mentioned in the story: <http://www.youtube.com/watch?v=6XdwHo1BWwY>

</comment><comment><USER27> "He was an ardent pragmatist who cared more about achieving compelling results than demonstrating theoretical 'interestingness'..."

Are those people actually rare in academia?

<comment><USER28> I worked in academic research for 6 years (in AI/systems engineering) and I never encountered anyone who was succesful _and_ interested in pragmatic issues.

<comment><USER28> On reflection, this is perhaps a bit harsh to some of the very bright people I used to work with.

What I meant was that in the context of a highly competitive research environment those who were succesful had learned that to succeed they couldn't afford to focus on anything that wouldn't progress their own careers - <USER2> that meant (and presumably still means) publications in the rights places which are usually completely uninterested in practical details and focused more on pure mathematical/conceptual concepts.

</comment></comment></comment><comment><USER29> I must confess, while the grad school parts resonated for me, the part that was most engaging was the vein of applied provenance tools.

Having recently left my program (but enjoying research), I've actually been spending a huge amount of time planning out and slowly executing building a better tool chain for data analysis, and one of the really exciting details that has popped out of my design is a very nIce support for incremental computation and computational provenance, while having all of the constituent parts be libraries (rather than needing to mod a run time)

Point being I was really intrigued to see the thinking behind other folks getting drawn into that space

<comment><USER12> thanks; this might be a presumptuous suggestion, but if you're interested in these topics, please take a look at my dissertation. at the very least, it's useful as a bibliography of work in this field ...

<http://pgbovine.net/projects/pubs/guo_phd_dissertation.pdf>

<comment><USER29> no, not presumptious, I've been trying to figure out where to find a good bibliography of that space!

I'm actually right now figuring out if I can align the stars so I can just support myself while working on this tool chain project of mine, but we really should chat in more detail at some point! (lets one of us get around to emailing the other in the near future)

</comment></comment></comment><comment><USER30> Haven't read the memoir yet, but after reading John's review <http://blog.regehr.org/archives/743> I'm looking forward to it. Good luck at Google Phil.

</comment><comment><USER31> This is absolutely brilliant. Extremely well written, I read the whole book without stoppigng... Thanks for sharing your story with the world.

</comment><comment><USER32> Nice read. Congrats on finishing pgbovine! Did you ever encounter other PhD students taking a similar "entrepreneurial"/independent approach to getting a doctorate?

Off topic, but I chuckled as I'm interning at Microsoft this summer and actually came across a paper on Klee this last week as I was doing research to guide my own testing project. I did a double-take when I saw the name.

</comment><comment><USER33> As I read I thought, wow this dude sounds just like my friend Phillip from high school. Glad to hear you're doing well.

-Frank

</comment><comment><USER34> The IncPy idea is very neat. A cursory look at the github repository indicates that it is released as a modified version of CPython 2.6.x. This is unfortunate, because it guarantees that it will soon be obsolete. Ideally it should become a PEP and be implemented by multiple Python implementations; how difficult would that be? From the repo I cannot see how much extra code is involved here.

Another thought I had is whether you could implement this in pure Python using the introspection features of the language. Finally I was reminded how with certain languages such as Lisp, there is this notion of an "image", which is a dump of the state of the interpreter. Does that achieve the same end as this? If so, wouldn't that be a much more general solution?

</comment><comment><USER35> Amazing piece of writing, can't praise it enough. I am at my second year in the process and already sympathize with most of what you write. Thank you for writing it, hope I will be able to learn from your experience.

</comment><comment><USER36> Thanks for sharing, I find your writing style very engrossing. As someone who doesn't have much experience in academia, I have a new level of respect for Professors and Ph.D.'s.

</comment><comment><USER37> While not a Clancy thriller, I appreciate the well-written insights from this paper. I don't know the author yet, but thanks to him for taking the time to write this.

<comment><USER12> thanks ... wow i hope my Ph.D. didn't have the body count of a clancy thriller

<comment><USER38> heh, I assume you've read Olin Shivers' great writings on guns in academia. Here's a small taste: <http://www.scsh.net/docu/html/man.html>

</comment></comment></comment><comment><USER39> This is a really good read! I'm a first year CS student and I'm interested in going into research later on.

Thanks for writing this.

</comment><comment><USER40> "involved some of the grimiest programming grind that I had ever done."

</comment><comment><USER41> More info on CDE (Code, Data, and Environment) without having to read the memoir: <http://www.pgbovine.net/cde.html>

</comment><comment><USER42> Awesome read, thanks for taking the time to write it :)

</comment><comment><USER43> Amazing post! Thanks for sharing.

</comment><comment><USER44> Just read this in one sitting. In many ways, it parallels an entrepreneur's journey from other stories I read, except at the end the rainbow, there is only graduation.

I'm glad I'm not an academic

</comment><comment><USER45> Ten mins on the website and this strikes me as all being very "needy". I'm still struggling to understand why everyone feels these type of "little ole me" stories are so fantastic. (It's not the author's first either...)

Just wanted to offer the counter opinion. Each to his own...</comment>


Mesh IDE: edit code with a spreadsheet interface - <AUTHOR> https://github.com/chrispsn/mesh/ <comment><USER2> If it meets the guidelines, this might make a good 'Show HN'. Show HN guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><AUTHOR> Cheers - forgot to add that when I first submitted. [https://news.ycombinator.com/item?id=14821186](https://news.ycombinator.com/item?id=14821186)</comment></comment>


Parking Lots Are a Waste of Space - <AUTHOR> http://motherboard.vice.com/read/parking-lots-are-an-incredible-waste-of-space-heres-how-to-end-them <comment><USER3> These are all nice solutions to reduce the number of cars in a dense urban area, but I'm going to go on a limb and guess the author doesn't have to deal with installing and uninstalling cumbersome carseats in every car they use.

Once you start moving around town with little ones, the whole equation changes. We try to be as lightweight as possible, but there is still that stupid carseat. I've tried using Uber for a week in a different city and got really good at installing a carseat in 60 seconds but it's a big hassle. And you have to carry the carseat with you when not in the car.

If the city is dense and there is a desire to reduce cars, this is where public transit shines: your children can either walk or be carried (backpack carrier FTW) without any of the setup/teardown at _every single stop_. Bonus point: no need to strap/unstrap them.

<comment><USER4> Could be an Uber/Lyft business opportunity in some cities to encourage some number of drivers to have a carseat installed?

<comment><USER5> They already have that. $10 for a carseat for your trip [0].

Apparently, it folds up small and fits into the trunk [1].

[0] [https://help.uber.com/h/3abcbae1-132b-42a9-8277-0dab00fa3879](https://help.uber.com/h/3abcbae1-132b-42a9-8277-0dab00fa3879)

[1] [http://www.imminet.com/products/immi-go- seat/](http://www.imminet.com/products/immi-go-seat/)

</comment></comment></comment><comment><USER6> Sure, it's easy to say "parking lots waste space". But (most of them) get used often. For "carsharing" to cover that usage, you'd need enough shared-cars to handle the trips for everyone in the lot. At which point, you'd be parking close to the same number of cars anyway.

If you really want to eliminate parking lots, you have to offer a reliable alternative, such as light rail or subways -- which most intelligent cities have and/or are building more of.

<comment><USER7> That's the elephant in the room. I was surprised that the article left out public transit completely. (Maybe because it has such bad reputation in the US etc.?)

Suburban commute can scale much better with suburban trains. Carsharing/ridesharing/bikesharing can then be used to travel the last mile from home to the station and from the station to work.

<comment><USER6> > (Maybe because it has such bad reputation in the US etc.?)

Author is Berlin-based, according to his bio.

But for Americans, there is so little public transit in the US, and what little that does exist is so rarely useful, that a large majority of Americans don't even remember to think of it at all -- particularly if your not in a top-20 US city.

<comment><USER4> There are even Top 20 US cities whose only public transportation option is still mostly just a public bus system.

</comment></comment></comment></comment><comment><USER8> We were using a 'car share' program for the last couple of years, we decided to get a car instead and ditch the program.

My biggest problem was that the cars always had 1/4 of a tank of gas, so I was always filling the tank and using 30 minutes to find a station and fill the tank. Whenever I needed a car I needed to plan ahead significantly. Also, there is a stop loss incentive, so you get stressed about having to add extra hours to the car. We found if we are using the car more than 2 times a month its better to own a car.

Also, I hate the concept of calling it 'sharing' there is no sharing here, its a short term rental, all-be-it more convenient than traditional rentals.

<comment><USER9> Would you be willing to share your car with others when you're not using it?

I asked ZipCar (many times) to let me buy one of their fleet cars. While it was parked at home or work, I'd be thrilled if someone else could use it. I'd only ask that I got priority reservations (commute, errands, day care, etc).

My notion, at scale, would have solved the ZipCar's capital problem. And renting out my fleet car would have offset my own expenses. Win/win.

But no one seemed interested.

(This notion doesn't solve your empty tank problem. That'd piss me off.)

<comment><USER8> To be honest, I wouldn't want a stranger driving my car, cause only I know how I drive and treat the car... If someone else is driving it, I run the risk they are hard on the brakes, or driving fast on the highway, or don't stick to the right lane, or are less cautious in general (cause its not their car).

</comment></comment></comment><comment><USER10> Are they including deadheading in their 'utilization' metric? Half the time (or more) the car is going to be self-driving to its next pickup point.

Also, any savings in parking needed is going to be eroded by road congestion - in a perfect scenariao cars are all going to be moving around most of the time. That seems like a much worse problem at present - roads are often at peak usage, while reducing parking is only a cost-saving feature.

<comment><USER11> With mass carsharing, the number of cars should fall so this should be less of a concern.

I agree though - if your cities are already gridlocked, this won't make them somehow less gridlocked. You still need mass transit, cycling and walking no matter who's driving the cars.

<comment><USER12> >if your cities are already gridlocked, this won't make them somehow less gridlocked

I disagree. Human drivers use roads very inefficiently: they overreact, have high latency and drive overly selfish.

Computers can drive cars closer together, can maintain higher speed with the same safety margins and without causing traffic jams by overbreaking, and they have no problems obeying traffic laws (and thus won't cause a literal gridlock).

The only reason why self-driving cars won't notably reduce road utilisation is because of induced demand

<comment><USER10> And because with car-sharing it doubles the number of car-miles. Because, deadheading (driving to the next pickup point).

<comment><USER12> It only doubles the car miles if there's nobody nearby to pick up. That would mean that most people are headed in a similar direction (e.g. all from suburbs towards city). But if all head in the same direction, the lane for return traffic has virtually no humans, and car-miles on it don't matter.

So either the traffic patterns allow pickup to be optimized to do much better than doubling the car-miles, or traffic patterns are so that it doesn't matter.

(of course that's overly simplistic, but I don't see how it's a less valid simplification than yours)

<comment><USER10> Of course doubling is a simplification. Even one more car in the congested direction makes auto-driving car-sharing strictly worse for congestion. The question is how much worse. In Silicon Valley for instance, where everybody lives everywhere and works somewhere else, its a mesh of commute traffic and doubling may be a good estimate.

The important case of commuting toward the city is interesting. Car-sharing breaks completely there - everybody starts work at about the same time (commute traffic confirms this). So we'll need as many shared cars as we already have. No savings at all.

Any savings comes down to off-commute traffic. Its a second-order effect. Maybe even too insignificant to bother with the complexity of sharing.

<comment><USER13> It adds almost no cars in the congested direction. That's because there are already many cars going there.

If people are going from everywhere to everywhere, there will be almost no extra cars.

<comment><USER10> Again, the deadheading will double the trips. Compare one trip per person to work and parking their car, versus that trip plus the auto-driving car that got them there _driving to the next pickup point_. That's the extra bit. It could be any length trip. Depending on timing (uncorrelated departure times) then it averages half the width of the city. In any case its strictly worse in the auto-driving situation.

<comment><USER13> It's quite useless to state that "it doubles the trips, regardless of trip size", isn't it?

Yeah, when all directions are congested it will add a lot of very short trips.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> "Those who do not move do not notice their chains."

Yes, using a tiny, shared commuter car is great when all you do is go to and from work with the occasional errand run in between. But what about people who are actually _enjoying their lives_ rather than merely surviving? The author mentions this and then completely fails to address it:

> Because there are two times in a year when you go camping, you commute to > your work in a large sedan or SUV. Alone. When picking a shared car, you use > the lowest common denominator—the smallest car that will get you to your > destination. And two smart cars fit in a single parking space.

So what does our camping friend do? Give up something he enjoys so we can all commute and park more efficiently? Great idea! As if work/life balance isn't already terrible enough, now we're going to shift the burden of parking and transportation management to individuals rather than local governments!

And what about the _millions_ of people who drive from the city to the coast during the summer? And the people who drive to the mountains in the winter? And all the other people who have destinations or hobbies that the author didn't consider because they don't conveniently fit into his calculations?

<comment><USER15> > So what does our camping friend do?

Rent a SUV for his camping trip. Or a _real_ offroad vehicle because he no longer has to make the "needs to be city compatible" trade-off, making offroad driving actually fun.

<comment><USER14> $300/weekend for a small SUV (plus whatever you pay for your ride-sharing commuter car during the week). Not a great solution, especially if you're not a convenient straw man who only ventures outside his little box twice a year.

And that doesn't even take availability into consideration. What happens when spring finally arrives and everyone wants to rent an SUV to go camping on the same weekend? And then summer arrives and everyone wants to head to the shore for a few days? Will our commuter-oriented system be able to accommodate that exodus of vehicles for extended periods of time? Or will people be stuck at home because they don't own a car? I think that's the main thing people fear in a car-sharing scenario: being trapped.

<comment><USER15> > Not a great solution, especially if you're not a convenient straw man who > only ventures outside his little box twice a year.

Must be a terrible fate, being a straw man living in a black-and-white world where personal property of vehicles is completely outlawed just because it's less convenient for the majority of people.

> What happens when spring finally arrives and everyone wants to rent an SUV > to go camping on the same weekend? And then summer arrives and everyone > wants to head to the shore for a few days?

I'd ask the people who figured it all out for public transit systems several decades ago. We already manage to have enough trains and planes, how hard can it be to model the same for cars?

> I think that's the main thing people fear in a car-sharing scenario: being > trapped.

What.

<comment><USER14> > Must be a terrible fate, being a straw man living in a black-and-white world > where personal property of vehicles is completely outlawed just because it's > less convenient for the majority of people.

Seems like you've missed the point entirely.

> I'd ask the people who figured it all out for public transit systems several > decades ago. We already manage to have enough trains and planes, how hard > can it be to model the same for cars?

Good joke. This isn't even close to true in the U.S.

> What.

What's so difficult to understand? People fear being trapped by their lack of a car. If they want to go to the beach for the weekend but there are no cars available Fri-Sun, they're stuck at home.

<comment><USER16> We could dispatch psychological support units in this kind of life-threatening emergencies.

</comment></comment></comment></comment></comment></comment><comment><USER17> Here in Cambridge the city is making a concerted effort to get rid of surface parking lots. Most new construction is putting parking underground, so actually useful structures can go over the space. Cambridge is a very small city with good access to public transit, walkable, and fairly bike-friendly. There's no need at all to waste valuable acreage on car storage.

<comment><USER18> Yup, Cambridge pursues it pretty aggressively. The policies started off as something different though: [https://dspace.mit.edu/handle/1721.1/81630](https://dspace.mit.edu/handle/1721.1/81630)

In summary, Cambridge's parking expansions were frozen in the 70's to help bring car pollution under control.

<comment><USER19> In California, one way space is wasted is with free parking in parking lots attached to businesses. The business wants to reserve the lot for its own customers for various reasons. In the limit they hire guards to keep people from using the lot for nearby businesses. Paid parking would allow one to park once and visit a few places that were within walking distance of each other.

</comment></comment></comment><comment><USER20> I love the idea, but let's be realistic. Until it's convenient for _anyone_ to get from their residence to a place in the city, parking lots aren't going away. There are just too many non-urbanites who want to drive into the city, either for work or for pleasure. And, businesses thrive on them doing so.

Just thinking briefly about the unintended consequences (e.g. more sprawl) makes me think that it would do more harm than good for the ultimate goal. Instead, address the root issue - make it incredibly easy, convenient, cheap, and enjoyable for people to get from point A to point B.

</comment><comment><USER21> Yup. Carsharing, or, you know, public transportation.

<comment><USER18> Public transit is great at reducing congestion. A single subway train can hold a thousand people. With 3 minute intervals, the capacity blows away any road network. However there are different challenges:

* Fan out from a transit stop. You need to layer on buses, bike share, and/or car share. And whatever you add needs to have ADA accessible and family friendly options. I love my Hubway key but if I have my kids with me, I have no place to put them [+].

* Building or expanding the damned thing. In particular for me, Boston is sabotaging itself by not aggressively expanding and maintaining its transit system.

* Changing American mindsets. Even in cities with relatively good transit systems, there's a mindset that it's dirty, for poor people, or too expensive compared to driving/parking. Car-sharing is a familiar concept for these people: I'm an American, I drive a car to places.

+: [http://wamu.org/news/14/06/03/dc_couple_invents_kids_seat_fo...](http://wamu.org/news/14/06/03/dc_couple_invents_kids_seat_for_capital_bikeshare)

<comment><USER22> It doesn't help that most US metro systems have not seen major expansion in literally decades, even as the cities have spread across the local countryside. Lots of people would take the metro if it were a reasonable distance away, but if you're talking about taking a bus to the metro stop to then have to take another bus from the other end to get where you're going the majority people are going to say fuck that. You'll turn a 20 minute commute into a 2 hour one easily.

</comment></comment></comment><comment><USER23> Realistically, as more people move to ride-sharing, other people will move to driving more, as it becomes more convenient to find parking in congested city centers.

Just like how more public transportation only serves to move more people, not get vehicles off the road. Any savings in congestion is re-filled by people who weren't driving because their threshold for traffic was too low.

<comment><USER7> At some point, there just won't be any additional people left to travel. The hard question: Are we at that point? If not, when will it occur?

Also, is the existence of this effect justification enough to stop us from changing anything?

<comment><USER24> The world's population continues to grow, and people worldwide are still migrating from rural to urban areas. So there will be additional people left to travel for at least several decades.

</comment></comment></comment><comment><USER25> Or we could do it like the Japanese and just remove almost all parking lots and replace them with underground parking or parking decks that pack cars a lot more tightly.

<comment><USER26> I'm no expert urban planner, but it seems to me the obvious explanation for this is the lack of space in Japan and its impact on costs.

It makes economic sense in Japan, but without federal/state/city bonuses incentivizing the solutions you describe, why would an American promoter dig underground at a ten/hundredfold cost while they can just use the cheap available space?

<comment><USER25> In many places in the US "free" parking is actually quite expensive. Even in the US land is expensive in some places.

[http://www.nytimes.com/2010/08/15/business/economy/15view.ht...](http://www.nytimes.com/2010/08/15/business/economy/15view.html?_r=0)

<comment><USER26> Sure! And thanks for pointing that out. What I'm suggesting is that it's _even more_ expensive in heavily space-constrained countries like Japan.

</comment></comment></comment></comment><comment><USER27> I use car2go to get to work about 5 days a week, and have for a few years now. The big problem is that the cars move, away from my neighborhood in the morning, camp out downtown all day, and then migrate back in the evening.

Since I leave for work a bit later than my neighbors, there's rarely a car nearby when I want one (though obviously, if I wait long enough, one usually shows up, if not, there's still uber at twice the price). By the time I get home from work, the neighborhood is flooded with them again, exactly when I don't want one.

Being able to "accio car2go!" would be perfect.

</comment><comment><USER28> A culture capable of sharing cars presupposes a displacement of the present dogma of multiculturalism. In other words, without a shared cultural etiquette, dreams of communal property quickly become fantasies.

</comment><comment><USER29> Roads are congested because people commute.

If you ask an engineer you'll get an extremely technologically ambitious complicated system of just in time short term rental logistics, and being engineers they'll handwave away the whole social engineering cultural stuff because that's not on any microcontroller datasheet or EE resume I've ever read. Ah well, build it and they will come. Maybe some authoritarian demands to have the government punish people who don't subscribe to my private profitable service. I mean, what could possibly go wrong with good ole authoritarianism?

If you ask a social sciences type they'll whack the engineer over the head with a 2x4 and ask why we're not applying existing proven legacy technologies for remote working and distributed offices and VPNs and flex time. My employer already has something like 50 offices nationwide, why can't they scale to 2000 including one in my suburb for me and the 30 or so coworkers living here, why do we have to drive to the big city coworking office of 300 people? Most of my work is with coworkers in other states I've never met, why can't I do that from home, for all I know they're already working at home!

If you think its going to be easy to get people to give up private automobile ownership, have I got a homework assignment for you, try getting them to support remote working. It "should" be much easier, so if you can't social engineer 90% of the population into working at home or locally, then you have no point in even trying to socially engineer a new transportation system. Stick to daydreaming about flying cars.

Ditto the supermarket comparison. I used Peapod for years, nothing bad to say. I don't need to invent a nationwide network of short term loan self driving self cleaning distributed dispatched GPS guided semi-autonomous cars to buy a head of lettuce. I just want cheaper Peapod. It works, its cheap, and cheaper would be nicer. Trying to social engineer people into having peapod hand them a head of lettuce is likely a heck of a lot easier than social engineering a new transport system. Wake me when 90% of the population has been social engineered into the simpler task of using peapod for food, then maybe I'll expect a success at re-engineering the entire transportation system.

After all, if you didn't require people to drive, they wouldn't need overloaded roads or parking lots... The obvious solution isn't a fancier car, its less driving.

<comment><USER13> Why do you think remote working is easier to implement than actually used public transportation?

For a start, the latter one already exists on several cities.

And here's where enters the engineer, for making the public transportation more convenient than driving. Technology changes culture all the time - <USER2> just need to get it right (and yes, UX is a big part of getting it right).

But if you want to concentrate on remote work, you have my support. Just don't try to put other people down because their work isn't aligned with it.

<comment><USER29> One option requires massive cultural change plus invention and creation of new technologies and disrupting uncountable entrenched business models, the other merely requires massive cultural change (although I'd argue comparatively less because its existing deployed in use technology). If its not possible to pull off the simpler one there is little point in trying the harder less likely to succeed option.

Its that old advice about minimizing attack surface. Rube Goldberg machines are cool but not good engineering.

</comment></comment></comment><comment><USER30> People aren't giving up their cars and current lifestyles easily.

The simplest solution I see for parking lots is to cover them and generate power. Also keeps them dry and, in warm climates, cooler.

Relatively inexpensive (and becoming ever more so). Quick payback. Minimal modification of extant real estate and behavior.

There you go.

</comment><comment><USER31> Related? Just yesterday I came across [http://www.zedfactory.com/zed- pod](http://www.zedfactory.com/zed-pod) which are micro-apartments that are built above existing land uses (such as parking lots).

</comment><comment><USER32> Parking decks! Enough lots. Build decks.

</comment><comment><USER29> I suspect I'm one of the few people here who've used a "car" sharing service. I have a tiny subcompact car and some large hobbies and home ownership tasks so I rent the home depot truck on a fairly regular basis.

Something not considered often is an old telecom problem of trunk utilization based on random access and special event access using Erlangs of capacity per hour or something. My wife used to program PBXes and its quite complicated and interesting corner of math. There being a car there for you when you want to leave is both a very complicated and very calculable problem and its possible to calculate something legit and honest not just make up numbers or run simulations. With respect to my "car" sharing at home depot it gets to the point of calling ahead and reserving the truck and starting the rent meter before I even leave my house... I drive a cute little Yaris what am I going to do if I buy 2500 pounds of paving bricks and the truck is rented out from under me while I'm standing at the cash register? They're not going to load the pallets into my trunk... This is a problem for car sharing at supermarkets and the like; its 90 degrees outside and you just bought ice cream and there's no rental car within 5 miles because of some sportsball game on the other side of the city. Hmm. So the parking lot is still full of cars waiting for drivers. I would not be comfortable going somewhere without having an iron clad plan to return.

Another aspect of children is I have sad news that all your problems are not over when the car seats go away. Now you "must" be there to pick them up at a certain time or the police are called, etc. The cross country race isn't going to wait for you while you wait an extra 30 minutes to get a rental car. And being a very well paid and very busy dude, that 30 minutes as a fraction of my total time off per day or week is worth a hell of a lot of money to me aside from family friction vs scheduled activities. Suddenly "old faithful" the indestructible and infinitely reliably privately owned car is looking very attractive. How much would you pay to get an extra hour of relaxation per day? Ask a new parent for a likely shocking result. Cars are expensive, but worth every penny and more.

I find rental stressful. The clock is running! Unload those bags quicker. This railroad crossing just cost me $2.75 in waiting. I gotta return this thing in 30 minutes or pay another hour and I'm 25 minutes away. Maybe people burning irreplaceable hydrocarbons should be stressed out. But again, I'm well paid and have little time to relax and stress reduction is valuable to me an I can certainly afford it, so I could see buying my own used beater truck to haul stuff around once a month or whatever. I don't think I'll do it, but its not that unreasonable. You only live once and getting stressed out about stuff that is a solved and affordable problem isn't worth it.

A final problem which doesn't apply to me and my "car" sharing truck is if you hyper optimize car sharing until it actually works, abstract out the task of driving, etc, you end up with bus and taxi service. All that mental self pleasuring to merely poorly re implement something that worked a century ago. Skip all the product development and upheaval and just get a monthly bus pass and be done with it. You'll get faster more reliable cheaper safer cleaner service.

</comment><comment><USER33> I think multi-level parking structures might be repurposed as delivery-drone distribution centers. Most of them have a roof, for the drones, and the lower floors for storage and trucks.

</comment><comment><USER34> We need flying autonomous vehicles to really remove the need for parking in cities.

</comment><comment><USER8> Once heard that Vice was an millennial neoliberal apologist, didn't believe it till seeing this article.

</comment><comment><USER35> The solution to this is to build underground garages and more roads.

I really really want to get out of Europe for all this socialist crap. It's getting on my nerves.</comment>


Why I Dumped My Facebook IPO Shares at the Open Today - <AUTHOR> http://www.wordstream.com/blog/ws/2012/05/18/why-i-dumped-my-facebook-shares

<comment><USER2> or perhaps the author spent last week and the weekend talking up FB stock so that when he sold it on Monday morning there were some buyers, meaning he would not be losing about $5 a share right from the off. Of course the tanking stock (12% as of this comment) probably helped his decison to sell. Perhaps other buyers who were looking for a quick flip on day one or week one realised there was no carpet bagging to be doen and their immediate sell off resulted in the 12% drop. Either way it was overvalued and is now making the long process toward working out what the market rate should be.</comment>


Ask HN: How many programming languages/development frameworks are you currently using? - <AUTHOR>

On my day job, I code in VB.Net. On my side projects, I use Python, Django, and C#.
I'm planning on developing apps on the IPhone and Android soon.
I get confused sometimes when programming (e.g. putting semicolons at the end of the statement (C#) when writing python code).
What's your experience with actively using different languages on a daily basis? <comment><USER2> At justin.tv I program pretty much every day in Python, Javascript, and haXe. Occasionally I do Ruby too. It does get confusing sometimes - it still takes me a couple of seconds to mentally switch gears between the different languages.

</comment><comment><USER3> I am a mono-linguist: Common Lisp for everything, from the hand-optimized webserver (hunchentoot), to the parser scripts that feed the database, to the data-entry software that lets my affiliates/contractors feed the database, and the daemon that runs routinely analyzing the database tables and building in- memory caches of frequently used objects and doing scheduling for the queue, and the other daemon that does backup and reporting. Even the twilio voice menu for the phone is generated by a CL-WHO app :-P

Sometimes I go for so long not touching anything but Lisp, I end up writing weird stuff like "defstruct foo { int bar, char __name};" whenever I need to wrap a C library to call out to :-P

[If any Lispers are reading this: I have this weird problem where I have a slime session running on screen for weeks, during which I write something in a temporary file, or inside another file, evaluate and edit it until it works .. but I forget it there! over time, the running application has little resemblance to the textual representations I have spread over several files, and it gets worse when I delete entire useless regions and refactor them. At least other languages have the decency to bondage-and-discipline me into naming my files and organizing the project hierarchy :-]

<comment><USER4> This may seem really "out there", but I keep all the code of a package in one file. Not only does this reduce or eliminate asdf/defsystem maintenance, which I loathe doing, it also helps avoid the kind of habit you described. After all, the edits are all in one place.

To borrow a quote from the movie Highlander - "There can be only one (file)!"

<comment><USER3> the first thing I do with any new project is create a directory for it, the package.lisp file and the .asd. That much I do (though I should automate it, like weblocks does with defproject, hmmm)

but after that it's one file, until it gets too bloated and redundant, then i break it to two small redundant pieces.

Thought sometimes its too tempting to do everything in the repl: cramming a fat piece of code into one form and save the result as (setf foo *) if I like what I see :-D usually for experimentation with a new library I'm using for the first time.

</comment></comment></comment><comment><USER5> I had this problem (putting or forgetting semicolons) for a while, but it looks to be gone with experience. I constantly switch from Python to Javascript to C to Ruby.

</comment><comment><USER6> Side: Python, Django, web.py, sqlalchemy, D, Javascript/jQuery, Erlang, Postgresql, Mysql, Sqlite, CouchDB, Mercurial, Git

Work: Perl, Bash, Python, PHP, Javascript/jQuery/in house stuff, ASP, Java/Jboss/Fast/JSP, ColdFusion, Soap, XML/XSL, Sql Server, Oracle, Mysql, Subversion

Huge lists on both sides, but there's a main difference: If something is broken over work, I _have_ to fix. I don't exactly know Java or ColdFusion that much, but if the Java guy is away and something needs to be done, I know enough to poke around and consult Google.

On the Side: I don't exactly know all of D, Erlang and CouchDB, but I have fun coding small things on each language from time to time, doing stuff on Project Euler. I wouldn't accept a paying job which required Erlang, for example, but I made simple a distributed crawler just to see what the platform is capable of. I think I know enough of each to at least understand its strengths and weakness on a higher-level, to know when it could be used as a solution. When I want to do something more serious, I choose Python.

Anyway, to trim the lists a little, I would say Python on Side, and PHP on Work. These languages get 75% of my time.

</comment><comment><USER7> Right now I regularly use PHP, perl, and lua.

I've been learning Common Lisp and Python for a while, though because my company uses those languages above, and because I haven't started any new projects yet for new languages, and because PHP has been my primary language for 5 years now, I think in PHP.

I have to broaden my horizons.

I've got some fun ideas for projects to tinker with that would use some other languages (recently bought books on Erlang, Haskell, Clojure, and Ruby). And though they likely wouldn't generate much if any revenue, it's worth doing something practical just to learn some new languages.

Back when I used to do PHP on my own, and VP ASP for my employer, I was regularly messing up if and loop syntaxes, and <? and <%, and either forgetting or adding semicolons.

</comment><comment><USER8> When I write them down I'm surprised at how few I actually use on a daily basis. It boils down to (in order of decreasing frequency):

      1. Matlab
      2. C++
      3. C

<comment><USER9> Matlab? What is a HackerNews reader doing with Matlab?

(I ask because I also use Matlab all the time, but I am curious what others are using it for.)

<comment><USER8> I use it to analyze neural signal data. Every now and again I fantasize about giving python and matplotlib a try, but there is too much inertia to overcome.

<comment><USER9> Is there a YC/HN startup analyzing neural data?

Or rather, _when_ will there be a YC/HN startup analyzing neural data?

</comment></comment></comment></comment><comment><USER10> Perl, Python, PHP, JavaScript

Movable Type, with Perl. Some Django, and non-Django stuff with Python. Hacking on Active Collab, written in PHP. Rely heavily on jQuery for JavaScript these days. Chicken Scheme for some random exploration now and again.

I've become pretty good at context switching between them all. I make mistakes sure, but I don't spend more than 5 seconds writing JavaScript in a .py file.

</comment><comment><USER11> Too many :-|. Ruby, Java, C, Python, Scala, Javascript and when I can't avoid it, C++. If I get the chance then some Haskell, Clojure, or Common Lisp.

</comment><comment><USER12> I have to switch languages a lot too, but I've found that I don't have a problem as long as I use each language regularly. It's when I haven't used a certain language for a few weeks / months that I confuse it with other languages.

edit: For the record, I frequently switch between Flex, Java, PHP/SQL, C, Lisp / Clojure, and a couple of other scripting/markup languages.

</comment><comment><USER13> Personal stuff tends to be in Clojure or Haskell lately. One project is currently using a little bit of Python to tie some things together, but that will probably go away. There's also some occasional Lua.

Various paid projects over the past year have used Ruby, Common Lisp, Javascript and PHP.

Emacs Lisp sees use for both on occasion, for a total of 9.

</comment><comment><USER14> In my project I use Java for the server with a jQuery front end and at work it's Java on the server again with an AS3 front end, so 3 serious languages unless you count RDF, OWL, Jena Rules, SWRL rules in which case it's more like 7, if you want to push the envelope and add XML 8, so taking those not-really- languages appropriately, I'd say about 5.5 (:

</comment><comment><USER15> A ridiculous amount. 12 in fact. I wrote a wiki entry over at stack overflow about this ([http://stackoverflow.com/questions/510261/how-do-you-keep- al...](http://stackoverflow.com/questions/510261/how-do-you-keep-all-your- languages-straight))

I agree, it sometimes seems too much and I wish for some standardization.

</comment><comment><USER16> The more you code in each language, the less severe a problem is. I find that as soon as you lay down a few lines of code in a certain language, your mind switches context to that language and the habits you picked up in that language come back fairly soon. Once you get in the swing of things, it should be straightforward.

</comment><comment><USER17> During the day I use C#, VB.Net, Javascript and Python (also T-SQL, not sure if that really counts for your question though).

At night, I was working on some Smalltalk and Clojure; but a friend of mine has recently convinced me to give Groovy / Grails a go.

</comment><comment><USER18> Java and ActionScript 3 (Flex) at work. Right now, Objective C, Python and JavaScript (jQuery) at home.

Yes, I do occasionally run into idiomatic problems as I switch languages, but it is better than coming home and doing Java. :)

</comment><comment><USER19> C#, VB6 (maintenance), and PHP. My big stumbling block is foreach loops:

foreach (int i in myInts) { ... }

For Each i As Integer In myInts ... Next

foreach ($myInts as $i) { ... }

</comment><comment><USER4> Common Lisp, Erlang, Javascript, and ... Objective C.

I am slowly adding Clojure to this mix.

The most dissonant cognitive shift is going from Lisp to Objective C.

</comment><comment><USER20> For work, ignoring side fun things:

Perl, Smalltalk, Ruby, SQL, bash, make, xhtml, css, Seaside

Dips into python and C from time to time

</comment><comment><USER21> Work: Python, PHP, Javascript, CSS, HTML, SQL; Django, Drupal, jQuery, CleverCSS

Play: LISP, SuperCollider, Max/MSP, Processing

</comment><comment><USER22> At Sponty: Python + Google App Engine + prototype.js at consulting gig: Flex, Java, PHP and some Django.

</comment><comment><USER23> Today and yesterday: PHP/CI, Flex, Javascript, Python/Django, C++, C#/XAML, bash scripting.

Fun!

</comment><comment><USER24> C++ at the day job, Java for hobby projects, and sometimes PHP for freelance projects.</comment>


Introducing Wistia Labs - <AUTHOR> http://wistia.com/blog/wistia-labs/

<comment><USER2> yet another amazing feature / product introduced by Wistia! love that they're always thinking outside the box.</comment>