HN user

AndrewGreen

38 karma
Posts0
Comments19
View on HN
No posts found.

I met him once. Right after Shoemaker-Levy 9 impacted Jupiter there was an event at the Mountain View Holiday Inn where he talked about it. I'd arrived a bit early (as an attendee), and while waiting for things to kick off I snuck out for a cigarette. Halfway through it, there was Carl (f*cking) Sagan walking across the parking lot towards me! I dropped/stubbed my cig and told him how much I was inspired by 'Cosmos' and especially by the Library of Alexandria episode/ He said yes, it was really good and that was mainly down to his wife's work. And then he signed my cheap paperback copy of 'Cosmos' and headed in to the seminar. I'm sure he could be a dick. But that certainly wasn't all he was.

Maybe he got more hardcore over time. I was (one of) his undergrads at UCL when he was a newly minted professor and I think he was one of the socks-with-sandals crew (vs sandals without, and those who wore regular shoes).

SEEKING WORK - California/Mexico, Remote only.

Andrew Green ag@em.net

http://www.em.net/portfolio/resume.html

Github: https://github.com/zoolib

I’m a programmer with 30 years experience, looking for remote freelance or fulltime projects. My preference is C++/Objective C application development for Mac, Windows, iOS and Android, or indeed all at once.

You can see a good summary of pretty much everything I've done at <http://www.em.net/portfolio/>.

Some high points:

* C++ developer since 1989 * Wrote and marketed the first 14.4K modem-usable VOIP application. * Raw OpenGL-based game on Mac/iOS/Android. * 'Tuplebase' a schema-less database engine (NoSQL I suppose) in 2002 * Lots of custom client/server stuff, as well as spec-compliant (e.g. HTTP, SSL, Jabber, AOL IM client) * Generally everything I do is multi-platform (Mac/Windows/Linux, or Mac/iOS/Windows, but also Android). * Full QuickDraw-style portable graphics engine, and windowing implementation. * Filesystem-in-a-file (ZBlockStore_PhaseTree) * setjmp/longjmp-based multi-threading implementation * Developer of ZooLib <https://github.com/zoolib/zoolib_cxx> since 1992.

Dropbox Webhooks 12 years ago

Nope. Actually turned out not to be such a bad thing as it forced me to rethink an implementation approach (using Dropbox APIs) that had seemed like a good idea, and was getting really sticky.

This was one of the few titles available on CAV laser disc in 1990 -- I watched it over and over in the course of working on MediaMaker, but for some reason I didn't discover the title till stumbling across it online a couple of years ago.

What most impressed me about ADITS was how I was brought to feel great empathy and even affection for the spiders, not till the end do we see just how truly alien they and their environment are.

Apologies for blowing my own trumpet, but pound for pound, the neatest thing I've worked with this year is a C++ template I wrote. I like to have the tightest possible scoping of names, but a common pattern makes that difficult. If you've got a function that produces a good value or indicates that it couldn't do so one way to write it is:

  Type theVar;
  if (theFunction(theVar)
    { /*do something with theVar*/ }
theFunction returns true if it set theVar, false otherwise. The problem is that theVar's visibility extends beyond our interest in it. The ZQ template lets me write this:
  if (ZQ<Type> theQ = theFunction())
    { /*do something with theQ.Get()*/}
and all of a sudden I don't have to come up with anywhere near as many meaningful names as before.

To me it's neat because I've found many unanticipated uses for it e.g. wrapping the values in option-specifying structures where a default is cleanly indicated with a default-inited (or subsequently Clear()ed) ZQ, rather than having a separate 'use default' boolean, or 'set default' function.

http://zoolib.svn.sourceforge.net/viewvc/zoolib/trunk/zoolib...