The people who complain that we should cancel 20% projects because it's impossible to spend 20% of your time on a side project are missing the point. The point is, it happens anyway and it's worth it, regardless of whether it's possible.
Says me from the office on a Sunday.
YOU! JAVA! Stop losing at microbenchmarks I specifically designed for you to win!
Python is coming out much faster than java in a trivial tight memory allocation loop. I must be doing something wrong, right?
If you care to look at the code, go here: https://github.com/apenwarr/avebench/tree/master/memtests
It's for my presentation at http://py.codeconf.com. I was sort of hoping my theory that, you know, JITted languages are faster than interpreted ones, would work out.
Slides from my PyCodeConf presentation
Many thanks to Github and friends for hosting PyCodeConf in Miami this year. Normally I don't like conferences, and I imagined I wouldn't like Miami either but I was proven completely wrong on both counts. Call it low expectations, but hey, they delivered!
I quite like the way my presentation turned out. It has real actual facts (tm) including two benchmarks where Java loses to python in literally every possible way. This isn't that surprising - since I hate java, I like python, and I wrote the benchmarks - but my angst was somewhat increased since I had been actually trying on purpose to make a biased benchmark that Java would pass in order to make myself appear more well-balanced... and I completely failed. I was not able to make java appear better than python in any way, be it startup time, memory usage, code execution time, library power, or source code readability. This is surely some kind of perverse marketing gimmick: since it's actually literally impossible to make a benchmark that makes java look good, then everyone who publishes java benchmarks automatically looks biased, so java lovers can discount the opinion of the "haters." Insidious.
But enough with the conspiracy theories. Here are Avery's slides from pycodeconf in pdf form including some detailed speaker notes. I thought about giving them to you in Google Docs format, but naturally Docs is totally incapable of showing speaker notes by default, so forget it. Just open the pdf already. I put a lot of work into the notes so you wouldn't have to try to learn from my (rather sparse) slides.
One audience member said, "I thought about 40% of it was really insightful. The other 60% I had no idea what you were talking about." I consider that a rave review, I think.
Vortex Update: 7 months later
Previously I wrote about my upcoming trip through the Vortex. It's no longer upcoming and I'm still on the other side, so I'm severely biased and you can't trust anything I say about it. But I thought I'd give a quick status update on my stated goals from last time:
- Work on customer-facing real technology products. Success. Not released yet, but you'll see.
- Help solve some serious internet-wide problems, like traffic shaping, etc. Yes, a bit, on my 20% project for now. You'll see that too. :) Must try harder.
- Keep coding, maybe manage a small team. Yes, with more of the latter and less of the former, but the ratio is under my control.
- Keep working on my open source projects. Sort of. Spreading myself so thin with cool projects that these are suffering, but that's nobody's fault but mine.
- Eat a lot of free food. Yes, though in fact I've lost weight, giving lie to the so called "Google 20."
- Avoid the traps of long release cycles and ignoring customer feedback. Total fail. The mechanics of this (totally under my control, but with lots of pressure to do it "wrong") are kind of interesting and I might be able to post about it later. For now let's just admit that I wanted to say my team had a product out by now (at least in public invite-only testing), and we don't, and that's mostly my fault.
- Avoid switching my entire life to Google products. Partial success, I have an Apple TV instead. But they gave me a free Android phone that (as far as I can tell) has actual garbage collection freezes while I'm typing on the virtual keyboard. So... fail.
- Produce more valuable software, including revenue, inside Google than I would have by starting a(nother) startup. Won't know until we release something.
Conclusion: mixed results. But the good news is that where things aren't as good as I'd like, the root cause can be traced to me. Does that sound like a bad thing? No! It's pretty much the ideal case when it comes to motivating me to learn fast and produce more. I'm working on the right stuff in the right ways, and the environment is well configured for me to do some amazing work. There is effectively no management interference (or input) at all. I just need to correct some of my own methodological flaws, especially trimming and prioritizing what I work on.
Big companies have process. Startups have focus.
Startup-like big companies with too much money have neither.
Whenever I see a meeting that just says "busy" my mind automatically substitutes "bathroom break." I don't know why. But some people have bathroom breaks, like, all day long.
ssh+2FA to all your machines, anywhere, without opening firewall ports.