l33tminion: (L33t)
London was pretty cool.

I really liked the Google office there (at Belgrave House, accross from Victoria Station). Seemed like a really cool place to work, and the food was fantastic (including a juice bar with one of these nifty machines).

Was good to see Xave again. We spent some time wandering the city, visited the museum at Bletchley Park and the Royal Observatory in Greenwich. We saw Tom Stoppard's The Hard Problem (broadcast in cinema by National Theater Live), doesn't hold a candle to Rosencrantz and Guildenstern Are Dead but it was reasonably good. And we also saw a production of Wicked at the Apollo Victoria Theater, that was a really good show and the staging was brilliant.

The European Lisp Symposium was a very interesting conference. I particularly liked the talk on Clasp, an LLVM-based Lisp implementation featuring tight C++ interoperability. (It's not quite there yet performance-wise, but some of the features excite me: Being able to write Lisp macros in place of C++ template libraries, being able to introspect C++ code in Lisp, being able to compile C++ modules into Lisp code and then use LLVM-based debugging and profiling tools that work across that boundary in a seamless way. Good stuff.) Also, the talk about the Woo HTTP server (a pure-Lisp implementation that beats Node.js on performance benchmarks) was impressive and full of interesting ideas. And I enjoyed my colleague's talk about debugging SBCL garbage collection.

I really enjoyed London, I got the sense that I'd enjoy living there as much as I enjoyed visiting. Wonderful food, beautiful architecture, friendly people, really pleasant to travel around.

My trip back was uneventful, after some annoying flight delays (a few passengers missed the flight and their luggage had to be removed, then another passenger had to disembark for medical reasons, forcing them to search the luggage again).

Work's been interesting. Lots to do.
l33tminion: (Enlightened)
Pasadena trip last weekend (a side-trip for Julie, on her way to Synberc) was really good. Got to play in one of the Ingress live events (a win for our team in Pasadena, though still an overall loss for this series). Enjoyed spending some time with Sean and Morgan (my sibs-in-law), catching up with some of Julie's old friends, visiting Caltech, drinking strawberry lemonade at the Caltech Athenaeum, and seeing some of the more touristy spots in LA. Was quite a shock to go from 20 degrees to 90 in the span of a week.

Got back to work in time to wrap up some end of quarter things before heading off to PyCon in Montreal next Tuesday. And I've made further conference plans to go to the European Lisp Symposium in London the following week.

Friday, I was struck down by a horrible stomach bug (or flu or something). The worst. At least it wasn't while I was travelling.

Today, I finally got around to seeing The Golden Compass, which I'd had out from Netflix on DVD for the last far-too-many months. I'll warn those who have read the book to not expect much depth in the adaptation and those who have not to not expect a lot of hand-holding on the exposition. Honestly, I think the movie is probably about as good as a movie that adapts that book into an under-two-hours pulp-fantasy PG-13 pic could be. The pacing is very tight, they have a very talented cast, and the visual style is spectacular. I enjoyed it.
l33tminion: (L33t)
Ingress has really taken over our social life this week. On Friday night, a group of players from our team organized to paint the town green, and Julie and I took a five-hour stroll through downtown (from 11 PM until well after 4 in the morning), with a stop for 3AM coffee and cannoli at Bova's Bakery.

This weekend, we're going to Pasadena for more Ingress and to catch up with some of Julie's Caltech friends. Then Julie's going on to Synberc and we're meeting back in Boston just in time to leave for PyCon in Monreal.

I should come up with some London travel plans, too, while Xave is there.

Busy busy.
l33tminion: (Skilled)
Last weekend, I was at the International Lisp Conference in Montreal, at the beautiful University of Montreal. (I stayed in their ultra-cheap surplus dorm hotel, which was comfortable enough but not at all luxurious. Couldn't beat the location, though.)

There were some cool demos and academic stuff, but I was most focused on all the excitement on the practical side of Common Lisp:
  • ASDF 3 (a buildsystem and portability layer)
  • Quicklisp (a package management system, just (load "quicklisp.lisp") once to set it up, then (ql:quickload :package) to load a package and all of its dependencies, downloading and installing them automatically if necessary)
  • cl-launch (a program for running Common Lisp files as simple scripts (soon will be as simple as #!/usr/bin/cl plus your code) or creating standalone executables)
I'm not going to jump into thinking that a Common Lisp revolution is right around the corner, but the usability is going up.

I liked Robert Smith's presentation on cl-permutation. And Ken Wakita's presentation on ExJS, a hygenic macro system for JavaScript where the intermediate expression is Scheme code! (Seemed a bit like an inversion of the usual "when you have Lisp, you have any language" aphorism.) The proceedings are published here.
l33tminion: (L33t)
The weekend before last, I was out of town at PyCon. It was fun representing Google at the career fair, and I enjoyed the talks I attended. I was able to work from the Montreal office that Monday before heading home. I see why people are so happy at that office, it's a neat little space with a small engineering team. Plus Montreal seemed like a pretty interesting and friendly city.

Some talks of note:A larger set of talks and tutorials is up here.

This weekend was marathon weekend, yet another weekend when all the things happen at once. Bergamot serves an amazing Easter brunch.

Getting ready for wedding season. DJ and Michelle are getting married in two weeks, my cousin Ben's wedding is two weeks after that.

The situation in Ukraine continues to be messed up.
l33tminion: (Junpei)
It seems that my work follows a cycle:
1. I start picking at some complicated issue, solving related problems as I find them.
2. I eventually get something to work, but by that point the fix is a blob of unrelated things.
3. I do some performance testing and find that makes things slower for reasons that are now impossible to determine.
4. Now that I understand the issue better, I can pick off simple sub-problems and solve them individually, testing as I go along, until only the really complicated issue that I still don't understand is left.
5. Repeat.

Still, today was the most productive day I've had at work for a while. I stayed in the flow of things for a long time and just kept chipping away at my work.

(I completed my first open-source contribution as a Googler, too. Well, that was in a while ago, actually, but I just found out that it had been committed today.)

I spent quite a bit of time chipping at my work last weekend, too. Normally I try to avoid work when I'm not on, but being in the middle of a project and having such a short week after getting back from break made me more tempted than usual to log in and prod my testing along.

It wasn't all work, though. Cooking this weekend was very enjoyable. I roasted beets and parsnips from last weeks vegetable box, and prepared a butterflied leg of lamb that had been sitting in our freezer for an alarming number of months (quite possibly more than a year). I used a recipe from the Salt cookbook for Indian-spiced leg of lamb cooked in a salt crust. Was an interesting method of cooking, and a great success (a great dinner and quite a few meals worth of delicious leftovers sandwiches). The technique starts with a standard spice rub, then you wrap the whole thing in an extremely salty dough (almost as much coarse sea salt as flour) before roasting. Once it's ready, you break it open and discard the crust. This particular recipe put curry leaves in the crust. I hadn't cooked with those before, they have a beautiful aroma. I definitely want to experiment more with this technique. There seem to be several variations, some recipes use a salt-and-egg-whites crust instead of salt-and-flour.

There was a warm breeze this morning, the last respite before the cold-snap. This evening wasn't as bad as I'd feared (it stayed fairly dry, so there's not too much ice). But tomorrow is going to be quite cold.

Stay warm, everyone!
l33tminion: (Skilled)
Work is crazy. A lot of work to eke out incremental code quality and performance improvements. Interesting, though.

PyCon was great. It was a huge event this time, sold out at 2500 attendees. Interesting talks, friendly crowd.

Unfortunately, most of the post-con coverage has focused on this one incident, which could have been an opportunity to productively discuss professional conduct at conferences and how that relates to gender issues (I think the PyCon staff acted admirably and did all they could to facilitate things going in that direction), but in fact the outcome was that everyone directly involved lost their job and an army of trolls emerged to set gender relations in the tech industry back infinity years.

This weekend, I'm going to PAX East (just Saturday and Sunday, three-day passes sold out before I could get any this year). I'm looking forward to seeing Supergiant Studios demo their new game. Don't know what else. Maybe want to spend more time on the expo floor this year than last.
l33tminion: (Skilled)
A StackOverflow poster asked if auto-currying functions could be implemented in Lisp dialects, and I decided to take a crack at it in Common Lisp.

Currying is easy enough to implement in Common Lisp, as shown here:
(defun curry (function &rest args)
  (lambda (&rest more-args)
    (apply function (append args more-args))))
But I found my (hopefully correct) implementation of auto-currying rather amusingly self-referential:
(defun auto-curry (function num-args)
  (lambda (&rest args)
    (if (>= (length args) num-args)
        (apply function args)
        (auto-curry (apply (curry #'curry function) args)
                    (- num-args (length args))))))
l33tminion: (Skilled)
Back from PyCon and the Googleplex! On my way back, anyways. There's (surprisingly good) wifi on the plane.

PyCon was great, in particular the tutorials on iPython (the latest versions have an awesome Mathematica-like notebook interface, where you can make rich multimedia documents with runnable code snippets) and the scikit-learn library (a powerful machine-learning toolkit).

Google's HQ is also cool (and huge!). Reminds me of college, really has a "summer camp for engineers"-type vibe. Despite some hassles involved in remoting, I was still able to get a fair amount of work done.

Looking forward to being back in Boston!
l33tminion: (L33t)
Programming: Here's an article on binary math in C. For more practical stuff (in you're a Python programmer), read this bit on the fileinput library in Python (very useful, but I hadn't heard of it previously).

Essays: Ever play Monopoly and wonder why the game (as you were taught) is so slow? That's because you were taught wrong.

Douglas Hofstatder makes a point about language by analogy.

A piece on the book and television series Game of Thrones and how it relates to the aesthetic of fascism.

Economics and Society: Foxconn (major Chinese electronics manufacturer) to replace workers with robots. But of course the increased automation will lead to new opportunities for those workers, once freed of the drudgery of such boring jobs?

Meanwhile, there's this HuffPo article about women increasingly turning to prostitution (called by other names) in order to pay tuition or student loans.

A Bit of History: A story about a computer virus that DDOSed the entire internet in 2003. (The Akami tech featured in the article is a friend of mine, he currently spends his time making the mathematical art published here.)

A story about the short and violent life of Robert "Yummy" Sandifer, gang member, murderer, and murder victim before he was killed in 1994 at the age of 11.

Misc: A talk on organizing an art show featuring 100 different artists, who are all the same artist.

An article on the challenges involved in Arabic-language localization for film.

A short story titled Nanolaw with Daughter.
l33tminion: (Error)
Open Source Software:

Went to the Olin Etherpad FAD this last weekend. (Etherpad being a popular piece of open-source collaborative document-editing software, FAD being a "Fedora Activity Day", a hackathon.) Was good, and I can increase the number of open-source projects I've added useful work to by one. Etherpad's code is a mess, though.

Ubuntu 10.10 ("Maverick Meerkat") was released on 10/10. Upgraded my home computer with no problems, upgrading my work machine now.

OpenOffice developers, not willing to take Oracle's (mis)management of the project have forked it, taking the source code and founding LibreOffice. While the process is not quite complete, I think I'll be recommending that over the old OpenOffice.org in the near future.

Open-source Facebook competitor Diaspora put out their first alpha release, demonstrating that when it comes to security, they're completely unprepared.

Finally, here's a brief post on why some of the most successful Linux-based operating systems don't mention Linux in their marketing copy.

Toxic Mudslide in Hungary:

On October 4, a reservoir containing ~700,000 cubic meters of toxic alumina sludge burst in Hungary, killing eight, injuring 123, destroying towns, and threatening local waterways. Photos here. On October 7, the sludge reached the Danube river.

A Bit of Politics:

President Obama vetoed an act requiring state and federal courts to accept notarizations done outside of their jurisdiction, due to concerns that this would facilitate foreclosures based on fraudulent mortgage papers. Several major banks have halted foreclosures in the 23 states that require some judicial process for foreclosures. Last Friday, Bank of America halted all foreclosures, they have since been joined by Goldman Sachs.

Worth watching: Stephen Colbert's in-character testimony to a congressional committee on immigrant labor. Colbert was asked to testify because he was one of the few people to participate in the United Farm Workers "Take Our Jobs" campaign.

Here's a post on the amount of corporate money being spent in the 2010 election in the wake of the Citizen's United case. I still don't think we'll see the whole impact of that case until 2012,

Finally, a post pointing out that the Republican opposition to healthcare reform basically advocates the same thing as the bill that was actually passed.


Why Groupon may be a terrible deal for small-business owners.

Two videos: Out of Sight (an animated short) and a dance from Genki Sudo (they're odd).

A list of the best Sunday brunch places near Boston, according to followers of BostonTweet.
l33tminion: (Caffeine)
Last weekend: BarCamp Boston, including a panel on ITA's new flexible database / screen-scraping framework, a panel on software for congressional redistricting (an important issue to pay attention to this year!), Wolfram's talk on Wolfram|Alpha, and a programming competition which I won somehow (make a tool in a language or framework you didn't know previously; I did a todo.txt CLI in Lua).

The Boston Marathon was evidently very exciting this year, with Robert Kiprono Cheruiyot of Kenya finishing in 2:05:52 (and under wind conditions that were not exceptionally good), breaking the previous course record set by Robert Kipkoech Cheruiyot of Kenya (not related). One older runner collapsed towards the end of the race, but survived without serious harm due to the timely intervention of bystanders.

Saw Kick-Ass with Film Club this Sunday. It was pretty much as expected from previews, which is to say I enjoyed it a lot, but it's not going to be everyone's cup of tea (not for kids, old people, those who don't really like the super-hero genre, and (probably) those unfamiliar with Watchmen). Also, as a not-quite-satire-of / response to Watchmen, it's rather clever.

In the middle of a few games, including Killer 7 (weird, Suda51 is some sort of genius but that doesn't make his work easily approachable) and Just Cause 2 (a sandbox game with an area hundreds of square miles large, with lots of parasailing and explosions). Still haven't started Sakura Wars.

Set up the Android client of Ushahidi for development on my machine so I can perhaps help with that.

Have games and movies on my shelf, TV shows I want to watch, programming to do, writing for this blog and for Evoke, books piling up in my room, Japanese to study.* Plans for every evening left this week, Boston Independent Film Festival this weekend. Getting to the gym, still need to get back to climbing on a regular basis.

* Is it possible to actually die of media overdose? If so, I'm worried.
l33tminion: (Skilled)
Mostly for my own reference, here's how to set up the Android SDK with Eclipse on Ubuntu (the documentation has most of this information, but it's rather spread out):
  1. Get Eclipse: sudo aptitude install eclipse
  2. In Eclipse, go to Help > Install New Software. Add the following as software sources:
    • http://download.eclipse.org/tools/gef/updates/releases/ (for the Graphical Editing Framework)
    • http://download.eclipse.org/releases/galileo/ (for all the other dependencies, assuming the version of Eclipse you're using is still Galileo)
    • https://dl-ssl.google.com/android/eclipse/ (for the Android SDK itself)
  3. Choose that last entry, select all of Developer Tools, and click Next. It should find all the dependencies at that point. If it doesn't, close and reopen the Install New Software window and try that again.
  4. Download the Android SDK and unpack it somewhere.
  5. Go to Window > Preferences > Android and point that at the directory you unpacked the SDK in (probably named android-sdk-linux_86, with a tools subdirectory). No targets will show up, but that's okay.
  6. If you have a specific project to work on, go ahead and import that now. It will complain about missing a specific API or SDK version, use that in the next step.
  7. Go to Window > Android SDK and AVD Manager > Available Packages, find the version of Android you want to develop for (probably the lowest version you definitely want your app to work in) or the API version your project wants and select the platform, docs, SDK, and APIs for that.
  8. Go back to Window > Preferences > Android and you should see the relevant installed targets.
  9. Go to Android SDK and AVD Manager > Virtual Divices > New, select the desired target, and create the device.
Man that's complicated. Wish it was just "sudo aptitude install eclipse-android-2.1". (Also note that on the emulator points to the emulator, points to localhost on the enclosing machine.)
l33tminion: (Default)
l33tminion: (Chaos)

GREs Over

Dec. 13th, 2008 06:11 pm
l33tminion: (Skilled)
Verbal 710 (lower than on the practice test, the questions were harder; bit disappointing, could have done more with vocab)
Quantitative 800 (I'm surprised, some of the questions were quite hard and I was running out of time at the end; managed to keep my cool, though)
Writing (don't have my scores, obviously, but it went pretty well)

Am now at SIPB's Debian release-critical bugs hack-a-thon for the hell of it.
l33tminion: (Colbert)
Watching the economic situation is stressful, but actually being the ones who destroy the economy is way stressing. Which is why executives at AIG spent hundreds of thousands on a spa vacation. The resulting outrage caused them to cancel their second vacation (a weekend at the Ritz), but not the third (golf retreat) or fourth (hunting trip in England).

In other news, McCain's recent attempt to reboot his campaign sounds suspiciously familiar. His campaign is imploding. McCain points out that he's not Bush, but he's Bush's best buddy, and when he's not like Bush he's like Herbert Hoover (not good news). In lieu of actual concrete policy suggestions, McCain is dredging up levels of fear and hatred that shock even him. On an added note, any morons who think McCain is still pro-choice should look at this: Evidently, all this stuff about women's health is just a liberal lie (Obama's expression from the clip reads, "I am ashamed to be on stage with this man," and for good reason).

Bonus links:
l33tminion: (Matrix Largo)
Google has released their own web browser called Chrome (more info here in comic form). I'm trying it out now. While there are still a few rough spots to smooth over (that's what beta tester feedback is for, after all), the interface is innovative, and the WebKit rendering engine and v8 JavaScript engine make it blazingly fast. I'm unlikely to switch from Firefox as Chrome lacks that level of customizability (there are some extensions I wouldn't want to do without). Still, I'll be keeping this copy installed and watching its development.

I hope the Firefox developers will be inspired to make better optimizations based on this, or even to start using WebKit and/or v8 whole-sale. They're open source, after all.
l33tminion: (Skilled)
I just read an article titled The "Anti-Java" Professor and the Jobless Programmers". The article seems to be a pretty typical piece about declining standards in CS education, and I won't address the main thrust of the argument. Rather, I'm interested in the bit where in which Robert Dewar, the professor in question, suggests these interview questions to separate the wheat from the chaff:

1.) You begin to suspect that a problem you are having is due to the compiler generating incorrect code. How would you track this down? How would you prepare a bug report for the compiler vendor? How would you work around the problem?

2.) You begin to suspect that a problem you are having is due to a hardware problem, where the processor is not conforming to its specification. How would you track this down? How would you prepare a bug report for the chip manufacturer, and how would you work around the problem?

"I am afraid I would be met by blank stares from most recent CS graduates, many of whom have never seen assembly or machine language!" he says.

I'm a bit bothered by the fact that I would indeed be stumped by these questions. I might be able to make some suggestions as how I'd begin to learn how to debug such problems, but I've never really worked on such a low level (although it isn't quite true that I've never seen assembly), and I've never been in a situation where I couldn't trust my compiler or CPU (although I am aware of various high-level issues with runtime environments I've worked in, the faulty garbage collector in SBCL, for example).

On the other hand, such issues are rare, in general modern compilers and hardware are well tested. It seems to me that in most of the cases where a programmer would "begin to suspect" such things they'd be suspecting incorrectly.

So, my programmer friends, what do you think? Am I (or "kids these days" in general) underqualified? Is this evidence why I should have pursued a proper CS degree instead of engineering? Or is Dewar just shaking his proverbial cane and shouting "get off my lawn!"?
l33tminion: (Default)
I went to the Boston Lisp Meetup on Wednesday, which was pretty good. The main talk was on implementing run-time contracts (type-checking or otherwise) in Scheme, a necessary component in a system that uses partially typed Scheme (PDF). In particular, it covered the tricky problem of implementing run-time type contracts for parametric polymorphic functions.

On a diametrically opposed note, I'm going to Sandy Island Camp on Lake Winnipesaukee (map) with my family all of next week (Saturday to Saturday), which means I'll be without phone, computer, and internet. That bit makes me grimace, but I'm still very much looking forward to it, and I'm sure the periodic detox is good for me in the long run.


l33tminion: (Default)Sam

August 2017

13 141516171819
20212223 242526


RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2017 04:24 am
Powered by Dreamwidth Studios