Jan 4, 2013
Like last year, here is the list of cities I visited during 2012, in chronological order.
- New York, NY*
- North Kingstown, RI*
- San Antonio, TX
- Boston, MA*
- Southbury, CT
- Highland Park, IL*
- Effingham, IL
- Heidelberg, Germany
- Munich, Germany
- Hamburg, Germany
- Berlin, Germany
- Minneapolis, MN
- Brookline, MA
- Genoa, Italy
- Rapallo, Italy
- Oakland, CA
One or more nights were spent at each. Cities marked with an * were visited multiple times on non-consecutive days.
Oct 9, 2012
When Apple Maps came out, there were a lot of anecdotes about its problems, but not a lot of systematic comparisons with Google Maps. The only one I know of is of town names in Ontario, Canada (Apple Maps, Google Maps), and that wasn't particularly relevant to me. First, I live in the United States, and there's a good possibility that Apple's data is better here because they're a US company (sorry, Canada). Second, and more importantly, I hardly ever search for town names, I almost always search for addresses or business names. The quality of Apple's address data is much more important to me than whether I can find Beeton, Ontario.
So, here's a comparison of both place names in New York State and addresses in New York City.
Disclosure: I'm a Google employee, but I don't work on Maps or anything related to it, and no Google resources or people were used for (or informed of) this project, aside from public APIs. This post does not represent the views of my employer, etc.
There's a big difference between what the Google Maps web API provides and what CLGeocoder under either iOS 5 or iOS 6 provides, and the Google Maps app on iOS 5 appears to match the web API.
The Google Maps web API is consistently great.
CLGeocoder under iOS 5 and iOS 6 differ significantly, with iOS 5 mostly being better, except in Queens.
There's more going on here than we think.
(Or just skip to the results.)
Originally, I ran all the tests using the iOS simulator and the CLGeocoder class, as the other comparisons have done. I also ran one of the tests on an iOS 5.1 device to ensure the simulator gave the same results as the device (and it did), so if you want to replicate these tests you don't need to pay the $100 to get an App Store developer account.
I then spot-checked some of the results on actual iOS 5 and iOS 6 devices using the Maps app. The iOS 6 results matched up with the Maps app (except that the Maps app gives you a "Did you mean?" in a lot of cases), but the iOS 5 CLGeocoder results didn't match up with the Maps app on iOS 5.
Suspecting that iOS 5's CLGeocoder implementation wasn't actually being used by the Maps app on iOS 5, I then ran one of the tests using the Google Maps web API. Indeed, the web API gave an entirely different set of results, one that matched closely with the Maps app on iOS 5, so I reran all the address tests with that as a third set of results (though I only got through about 90% of the New York State place names in the web API before I hit the 15,000 requests per day limit).
New York State places
I used this data set from the USGS that shows all the populated places in the United States along with their coordinates. I eliminated all the ones that didn't have a state code of NY, didn't have coordinate information, or whose name ended with "(historical)". I then geocoded strings of the form "$TOWNNAME, NY" and compared them to the expected coordinates. You could do this for any state, of course, but even after eliminating historical locations there were more than 180,000 populated places in the whole US, so I cut it down to just New York.
I chose 1km as the boundary for a correct location because most towns aren't much bigger than 2km across and the coordinates for a town are generally close to the center. To give an idea of how much margin that is, the correct location to geocode New York City to is City Hall, and 1km reaches down below Wall Street and up to SoHo, so most anywhere in financial district would count, but Battery Park would not. I picked the quite generous 100km for the "close" metric because that would at least mean you're in the right part of the state. For reference here, New York City to Buffalo is about 470km, and New York City to Albany is about 210km.
New York City addresses
I used this data set of all the "public facilities" in New York City. I figured this would give a good sample of the various address forms used in NYC, as well as a selection of data from all five boroughs. Since it includes a lot of government buildings, it probably oversamples the downtowns of each borough and undersamples the residential neighborhoods, but it does include schools, nursing facilities, soup kitchens, and other such things that are spread relatively evenly through the city. The only items I excluded from the list were facility types 1511-1541, which are all the different kinds of parks, because they include such addresses as "East River and Harlem River" (for Randall's Island Park) and "Greenwich Ave @ 7 Ave, NW side of intersection" (for one of the Greenstreets locations). I then geocoded strings of the form "$ADDRESS, $TOWNNAME, NY", where for $TOWNNAME I used "New York" for Manhattan and the borough name for the other boroughs. This is technically incorrect for Queens, because addresses in Queens use the city name they had before Queens became a part of New York City (e.g., "Flushing, NY" or "Astoria, NY"), but I assumed that "Queens, NY" would still work okay.
The biggest wrinkle with dealing with this data set was that the location coordinates were expressed in the New York-Long Island State Plane coordinate system, which is a coordinate system used by surveyors which treats a region as being flat (i.e., without the Earth's curvature). You can find additional information about the State Plane coordinate system on Wikipedia, and instructions on how to convert between it and latitude and longitude in this document from NOAA. Finding the instructions for how to do the conversion and then implementing it properly took a surprisingly long time.
I chose 200m as the boundary for a correct location because a central Manhattan avenue block is approximately 400m long, so that meant that if you gave up and placed a location in the middle of its block, it would count as correct. I chose 2km as the boundary for the "close" metric because that meant that it ended up approximately in the right neighborhood.
New York State places
The bad results may have more to do with the fact that place names in New York State are messy than with their mapping abilities, though. For instance, there's a village in New York near Lake Ontario named Hilton situated within the larger town of Parma. Searching for "Hilton, NY" in iOS 5 gives you the Hilton hotel in Midtown Manhattan, which is almost certainly more likely to be helpful. iOS 6 produces a pointer to the Hilton neighborhood of Maplewood, New Jersey, which isn't very good, but is still probably more likely than that you're actually looking for the village of Hilton.
Even more, the data set includes lots of items that are extremely difficult, if not downright impossible. For instance, there are entries for Adams (in Jefferson County), Adams Basin (Monroe County), Adams Corners (Putnam County), and Adams Cove (Jefferson again). There are two places named Ashland (one in Greene County, one in Cayuga), two named Bellevue, two named Bethel, etc. There are two Brooklyns in the data set, neither of which is the borough of New York City. This puts a pretty low ceiling on just how good any geocoder could be at answering this kind of query (and is yet another reason why I think this isn't a good basis for comparison).
The web API, though, does a reasonable job. As mentioned above, it only included about 90% of the place names, but even if you assume all 10% remaining were bad it would have gotten 68% right, much better than either iOS option.
New York City addresses
Addresses should be much easier to get right, and the consequences for getting them wrong are usually much higher. I divided the addresses by borough and ran them separately.
iOS 6 does way better than iOS 5 here, with more than 50% of addresses correctly mapped to only 15% by iOS 5. They have similar numbers of totally incorrect addresses, though. This is also the first borough where iOS 6 has a negligible number of "no result" responses.
The web API is worse here than it is in the other boroughs, but it still puts out an impressive showing.
None of the requests were made with any context information. In practice, when using a mapping app, it knows where the viewport is currently located and often knows where the person is located, and that information is used to improve results. All of the geocoders would probably improve with that information.
The use of "Queens, NY" might have caused trouble for the iOS geocoders. Then again, it might just be because they can't handle Queens.
I feel safe in making the following conclusions:
- Lists of place names aren't a good way to compare geocoders. Addressees are a much better choice.
- Google Maps' web API consistently gives great results.
- iOS 6's results are extremely varied. Sometimes it's excellent (like in Staten Island), sometimes it's awful (like in Manhattan). I expect this accounts for the variety in people's experiences with it.
- iOS 5's CLGeocoder class definitely isn't backed by the same geocoder as Google Maps on the web, but I have no idea what it is backed with. A third party geocoder? Maybe Bing Maps? Apple was reported to have been in talks with them a couple years ago. (The requests go to an Apple server and are presumably forwarded on from there.)
- Nobody can find anything in Queens.
- Being able to get freely available geographical data in machine-readable formats is awesome. The USGS and NYC do a great public service by providing it.
Please contact me if you have questions or think I've made a mistake somewhere, either by e-mail or @flooey.
Jul 8, 2012
Pat and I just got back from two weeks in Germany, and we had a fantastic time. We visited Heidelberg, Munich, Hamburg, and Berlin.
The following morning, we took the train to Munich. Trains in Germany are a real pleasure to ride; they're clean, they're prompt, and they have a lot of details that make them easier to work with. For instance, when on the platform waiting for the train, there are diagrams of each train that arrive at that platform showing the type of each car (cafe, first class, second class) and its alignment on the platform. They also have platform assignments as part of the schedules, so you always know where your train is going to show up.
Munich, and Bavaria in general, is often what people think of when they think of stereotypical Germany. The city is filled with Biergartens, old buildings, and even the occasional man wearing lederhosen. (I tried to get Pat to consider a dirndl, but she refused.) We spent most of our time there just wandering around the city absorbing the atmosphere, stopping occasionally for food, beer, or a museum.
Speaking of beer, it's definitely the beverage of choice in Germany, and doubly so in Bavaria; as a result, it's cheap and universally available. Even Italian or Vietnamese restaurants had a lengthy list of high quality German beers to choose from. Happily, the beer is also excellent. The beer at Andechs, about an hour outside of the city, particularly stood out. The monks have been brewing beer for hundreds of years, and when we went the tables were filled with large groups of older Germans who were there for lunch on a weekday.Neuschwanstein Castle and its neighbor Hohenschwangau Castle. Neuschwanstein was built by Ludwig II, and is the perfect fairytale castle (among other things, it was the inspiration for the Disneyland castle). The entire area is incredibly picturesque, with the castle set against the wooded mountains above and the pastoral countryside below.
Leaving Munich, we got to take a sleeper train to Hamburg, which was a lot of fun, and when we arrived we met our host there, Sunny. Sunny was a wonderful lady who made us breakfast every day, including traditional local foods like sausage and tiny shrimp, and gave us plenty of suggestions about what to see. Unfortunately, I think we may have disappointed her, as she was very excited about the idea of us going out and partying, whereas we generally spent the evenings at home playing cards and reviewing the day's adventures.Miniatur Wunderland. We spent an entire afternoon there, visiting miniature versions of the United States, Hamburg, Scandinavia, Switzerland, and more. They have a water feature with 33,000 liters of water, including tides, an outdoor concert with tens of thousands of individually-placed fans, and an airport with dozens of aircraft taking off, landing, and taxiing to and from gates. From fire departments that respond to car accidents on the street to a drive-in movie theater playing For The Birds, everything is modeled in astounding detail.
After only a couple days in Hamburg, we took an ICE train to Berlin. Arriving in Berlin, we immediately could tell that we were going to love it. The city has an energy that's similar to New York's, but with more dramatic 20th century history. The first day, we went to the Brandenburg Gate and toured the surrounding area, including the Holocaust Memorial. I was pleased to see that the US Embassy is right next to the Gate (in former East Germany).
We also took day trips to Potsdam and, at the suggestion of Sunny from Hamburg, the town of Lübben in Spreewald. Both of these were fun ways to get out of the city. The former had more palaces than we could count, including the grand Schloss Sanssouci, and a really nice botanical garden, while the latter was a cozy little town on the river Spree, with woods that form part of an UNESCO Biosphere Reserve. Lübben also has a great city museum, which goes from archaeological artifacts from thousands of years ago up to the destruction from World War II and the later rebuilding.
We really enjoyed ourselves, but at the end we were glad to return home. The German culture is marvelous, though it has some room for improvement (for instance, there are basically no water fountains), and by the end of the trip my German had progressed to the point that I could easily manage in a restaurant or shop, though I certainly couldn't handle a conversation. The cats, though, missed us tremendously and were very happy for us to be back.
Feb 24, 2012
I finished My Life In France, which was truly delightful through to the end. My strong recommendation remains, and I continue to reflect on it. Among other things, I'm curious why it's had such an effect on me.
I think a large part of it is that I'm getting old enough that I can feel my options slipping away. There's an amusing David Mitchell's Soapbox episode that addresses this effect (a great show, you should watch it). I'm still young enough that very little is actually foreclosed at this point, but I'm getting old enough that I can see the forks in the road approaching.
On the other hand, I've been feeling like a true adult recently. I'm handling my increasing responsibilities at work reasonably well, then leaving them at work and spending my free time productively, whether that be relearning German, discussing politics or philosophy with Pat, or reading. I'm eliminating wasteful tasks and replacing them with things I simultaneously enjoy more and feel better about doing. And, in general, I feel good about who I am. (Apropos)
Feb 14, 2012
I've been reading My Life In France recently, and it's made me very reflective about the state of my own life.
Life for Julia and Paul is much the same as life for me, in many ways. They go to work during the day, they eat dinner at home or go out to restaurants, on the weekends they take advantage of the wonderful city they live in. They're a young couple in a major metropolis.
The details of how they spend their time are so very different, though, in ways that I envy. As a major example, they make time every week to write letters to Paul's brother. This was, of course, a necessity in the early '50s when even a telephone call would have been inappropriately expensive, but the idea of periodically reflecting on and sharing one's life experiences is quite a pleasant one. In theory, that's what blogs are for, so perhaps I'll start using mine again.
In thinking about how I could find time to do such a thing, my mind also rests on how I use my time as it is. Some of it is productive, but I spend a lot of time wasting time reading forgettable articles on the Internet or playing in virtual Skinner boxes. I know a lot of my peers have expressed similar concerns, and I expect it's a theme I'll return to in the future, but the book is making me resolve to be more mindful in how I spend my time.
In addition, the book is wonderful. Julia's descriptions of her adventures are so filled with excitement and wonder that it's a joy to read. I highly recommend it.
Jan 4, 2012
Like last year, here is the list of cities I visited during 2011, in chronological order.
- Oakland, CA*
- Mountain View, CA
- New York, NY*
- North Kingstown, RI*
- New Orleans, LA
- Boston, MA
- Jamaica Plain, MA
- Minneapolis, MN
- Highland Park, IL
- San Francisco, CA
- Yosemite National Park, CA
- Wellfleet, MA
- Southbury, CT
One or more nights were spent at each. Cities marked with an * were visited multiple times on non-consecutive days.
Nov 8, 2011
Yesterday I encountered a couple articles that questioned the value of going to college for a non-STEM (science, technology, engineering or mathematics) degree, both on a personal and societal level. Ignorning the societal questions, my girlfriend and I were curious about whether the claim that humanities or social science degrees aren't valuable from a personal perspective was borne out in the data.
The one article that provided actual jobs data did so for 25-year-olds, which we felt was a particularly poor choice. If you graduate with a theatre or dance degree, for instance, at 25 there's a very real chance you're working a retail or food service job trying to make it in your chosen field, and that's precisely what you want to be doing. Wage data from that time in a person's life doesn't accurately reflect the value of their education, because they're likely actively ignoring higher-paying jobs because they lack the flexibility necessary to go to auditions and such. Similarly, those who chose to go to graduate school will skew the statistics by not really being in the workforce.
So, we decided to investigate the effect of educational field on income for people in their 40s, because we thought that would be a lot more representative of the long-term value of a college education. All the data comes from the American Community Survey, the Census' annual survey of data about Americans. A lot of people don't realize the actual original data points are available (under the name Public Use Microdata Sample), so you don't have to use the Census' pre-designed tables, you can develop whatever you want. A little Python scripting later and we had our data.
|Discipline||Level of education||Population||Average income|
|None||Below high school||5434718||$18090|
|High school diploma||25516044||$33617|
|Art and Music Education||Bachelor's||27864||$37539|
|Professional or Doctorate||3711||$70742|
|Visual and Performing Arts||Bachelor's||8635||$38013|
|Professional or Doctorate||1033||$74062|
|Professional or Doctorate||2280||$99010|
|Professional or Doctorate||73793||$102719|
|French, German, Latin, and Other Common Foreign Language Studies||Bachelor's||37437||$47966|
|Professional or Doctorate||11750||$99453|
|Social Science or History Teacher Education||Bachelor's||13468||$50386|
|Professional or Doctorate||2006||$102029|
|English Language and Literature||Bachelor's||200549||$52416|
|Professional or Doctorate||58149||$111871|
|Drama and Theater Arts||Bachelor's||28539||$56420|
|Professional or Doctorate||3996||$83334|
|Professional or Doctorate||9400||$86307|
|Professional or Doctorate||14476||$111432|
|Professional or Doctorate||54204||$137564|
|Professional or Doctorate||1046||$133358|
|Professional or Doctorate||28437||$122621|
|Professional or Doctorate||32492||$125672|
|Professional or Doctorate||19521||$121534|
|Professional or Doctorate||4384||$175559|
|Professional or Doctorate||11220||$120176|
|Professional or Doctorate||12439||$145061|
The first rows show the data for people without at least a bachelor's degree, broken out into those that have a high school diploma (or equivalent) and those that don't. After that are rows by discipline of bachelor's degree, sorted in ascending order of income for people who didn't go on to an advanced degree. We picked a sampling of fields we thought would be representative, but there are more than 150 fields in the data set (see field FOD1P), so let me know if you're interested in something in particular.
We were surprised to find that, in a few cases, there is only a small benefit to getting a bachelor's. On average, the holder of a 4-year degree in Art and Music Education only earns $3900 more than someone without a 4-year degree, which is something, but not a lot compared to the many tens of thousands of dollars that the degree cost to obtain.
However, there are relatively few fields that are like that. Even stereotypically underutilized degrees like History, English, or Communications increase earnings by more than 50% by the time you're in your 40s, though as expected, a STEM degree tends to be more valuable than a non-STEM degree.
Jan 1, 2011
Like last year, here is the list of cities I visited during 2010, in chronological order.
- Oakland, CA*
- Sunnyvale, CA
- New York, NY*
- Hebron, NY
- North Kingstown, RI*
- Boston, MA
- Las Vegas, NV
- Pittsburgh, PA
- Morristown, NJ
- Chicago, IL
- St. Louis, MO
- Washington, DC
- Cocoa Beach, FL
- Ashford, Ireland
- Kilkenny, Ireland
- Wexford, Ireland
- Dublin, Ireland
One or more nights were spent at each. Cities marked with an * were visited multiple times on non-consecutive days.
Dec 31, 2009
Like last year, here is the list of cities I visited during 2009, in chronological order.
- New York, NY*
- North Kingstown, RI*
- Oakland, CA*
- Mountain View, CA*
- Niagara Falls, ON
- Pacific Grove, CA*
- Fresno, CA
- Yosemite National Park, CA
- Santa Monica, CA
- Whittier, CA
- Blackrock State Campground, CT
- Cocoa Beach, FL
Nov 21, 2009
Yahoo Pipes is a really awesome product that a lot of people don't know about, and I feel like Yahoo hasn't really done a lot with. It's basically a node-based data editor, but it can fetch source data from places on the Internet, which means you can have pipes with dynamic output. And then, you can subscribe to the results of those pipes or request them via JSON, which gives you a huge amount of flexibility.
I was spurred to write this because Jason Kottke was recently upset that the New York Times had put Errol Morris' blog items, which used to be on their own, into a new thing called Opinionator. This is a great simple use-case for Pipes, since you can fetch data from an RSS feed. Here's the final result:
Pipes looks at the RSS feed and sees that there's a dc:creator tag in it, so we can use that to filter with. It knows the input is RSS items, so you can filter those on an item-by-item basis and it will retain just the items that match. It's really easy to understand exactly what it's doing and build your own pipes. The only problem is sometimes finding the operations you're looking for, since there are a lot of them.
Go ahead and check it out in action. The New York Times Opinionator feed only has 10 items in it, and there are several authors, so this might not have any results at any given time if you go to look at it, but you can clone it and play with the source yourself. I've also noticed that Pipes has been a little flaky when playing with it this morning, so apologies if it doesn't work.
Sep 5, 2009
Last week Monday, in the earliest hours of the morning, my girlfriend and I touched down in Orlando, Florida. We immediately picked up the rental car and drove out to Cocoa Beach, situated along the Atlantic coast, where we were planning on staying for the week. Then we slept. We were in Florida to see the launch of Space Shuttle Discovery on STS-128, which we expected would be pretty cool.
Discovery was supposed to launch at 1:36 AM Tuesday morning. We spent most of Tuesday gathering supplies, looking at exhibits at Kennedy Space Center, and waiting around in lines to get on buses. Despite an 80% favorable outlook, though, bad weather scrubbed the launch about 10 minutes before liftoff. Apparently the Shuttle doesn't respond well to lightning. As an aside, though, we learned that Apollo 12 was struck by lightning twice shortly after liftoff, but the systems in those days were sufficiently simple that it didn't cause major problems.
The next night, we made the same preparations and set out. When we arrived at Kennedy, we learned that the launch had been scrubbed due to a valve problem. The 8-inch liquid hydrogen fill and drain valve hadn't registered as closed when they tried to close it, which obviously was a huge problem. The absolute earliest they could attempt to launch again was 48 hours from then, but they weren't even making any suggestions about scheduling another attempt until they got a chance to look closely at the valve and its associated sensor (which they suspected of being the real source of the problem). They wanted to get it resolved quickly, though: their last chance to launch was Sunday night. If they were still on the ground at that point, the launch window closed and the next opportunity was more than a month later in October.
Disappointed, we headed back to the hotel. Our flight home was Thursday morning, and the next possible launch attempt was just after midnight on Friday morning. What were we going to do, we asked ourselves. Do we eat the cost of the flight and stick around until who knows when? Or head home and risk missing the single event we came to see? We decided to wait and see what they said on Wednesday about the valve. After all, the airline said we could cancel our flight up until an hour before it left, and the valve problem might have been bad enough that they had to delay until October, when we could return.
We went back to Kennedy on Wednesday and took the bus out to the Apollo/Saturn V Center and International Space Station Center, all the while keeping an eye on the Kennedy Space Center Twitter feed. In the early afternoon, they announced that they would indeed make another attempt early Friday morning, so we decided to cancel our tickets and stay. After all, there were four launch opportunities that weekend, so the odds seemed pretty good.
Thursday we spent doing very little, but it didn't pass entirely uneventfully. The mission managers decided they wanted more time to come up with contingency plans in case the valve acted up again, so they pushed the next attempt back another 24 hours to just before midnight on Friday. Just three launch attempts left before the August opportunity was gone.
Friday we decided to do something fun, so we rode out to Orlando to see Epcot at Walt Disney World. We had a great time, and my girlfriend was quite surprised as how much entertainment there is for adults as well as kids. We got a late start leaving Cocoa Beach, though, so all too soon it was time to get back in the car and make yet another trip to Kennedy.
Getting out of the park, back to the car, and out of the parking lot took longer than we anticipated, though. We were a little worried about getting to Kennedy on time, as they block off the roadways several hours before launch attempts to keep people from driving in to see the launch and putting themselves in harm's way. We had a vehicle placard that was supposed to get us past the roadblocks, but we hadn't ever tested it, and it was up to the security guys whether they wanted to honor it anyway. If we were sufficiently late, we'd be out of luck.
Of course, as we got on the freeway, we noticed that we were down to about a quarter of a tank of gas. My memory was that we were at a little under half a tank when we left Cocoa Beach, though, so it didn't seem like it would be a problem. We'd have to get gas shortly before or after the launch, but no big deal. About halfway between Orlando and Kennedy, though, the gas light goes on. In most of the US, that wouldn't be that big a deal, but the stretch of road between Orlando and the coast is basically all fields and wilderness. My girlfriend got rather worried. I told her it'd be fine, and hoped it would be. It wasn't like we could do anything about it, so we had to just keep on driving.
It was at this point that my iPhone saved the day. By finding a gas station? Not really. We did use it to find one, but the closest gas station turned out to be along the road we had to take anyway, so we would have stopped there regardless. No, what it did was give us peace of mind that we weren't going to run out of gas and miss the launch. And boy was that nice at that particular time. Late to where you're going and low on gas, just the knowledge that it's only 3 miles until one of your problems is solved is quite relaxing.
Flush with gas, we breeze onto Kennedy without a barricade in sight and find ourselves at the Visitor Center for the fourth time in five days. As before, we wait around in lines for a while and then board the buses. The crowd had really thinned out from Monday night's attempt, we presumed because they couldn't cancel flights and add vacation days quite as freely as we fortunately could. The weather forecast was only 60% favorable, but the attempt would go forward.
The buses for a launch take you out to the viewing area several hours early. On both the previous attempt and this one, we had gotten on the second or third bus to leave, so we got a prime spot right on the front edge of the seating area. Once you're there, though, there's basically nothing to do. There's a PA system that broadcasts NASA's coverage of the launch attempt, including some snippets from the radio traffic, but the launch timeline has large portions of built-in buffer space in case anything goes wrong, so when nothing has gone wrong there's a lot of just sitting. We got periodic updates on the weather, which were promising, but otherwise you're left to whatever distraction you brought with you. (Professor Layton, in my case.)
The final major decision point in a launch seems to be at about eleven minutes before liftoff, when they decide whether or not to restart the countdown, which has been holding at T-9:00 for about an hour. All the major groups on the launch team have to give a go/no-go signal when polled. When this time came around, a hush came over the crowd as everyone listened for the signals, especially trying to catch when weather went by. All "go". When they finished the poll, all the spectators started cheering.
The final minutes of the countdown flew by, with the NASA commentators describing all the steps the launch controllers and computers were taking as they happened. Final checks of computers and flight control systems, pressurization of suits. And at 11:59:37 PM, the countdown reached zero.
I was born after the advent of the Shuttle program, almost a decade after the last moon landing. I was three years old at the time of the Challenger disaster. Human spaceflight has just been a fact of life for me, along with air travel, radio, television, electricity, and all manner of other technological achievements.
Spending a week immersed in the process of spaceflight, culminating in the launch of one of the most powerful rockets ever built, gives you a new perspective on matters. Spaceflight is neither easy nor routine; it's actually incredibly complicated. Human beings strap themselves onto a rocket that releases more power than a nuclear weapon and then spend days, weeks, or even months at a time in an environment that is completely unlivable for all life as we know it.
Watching the incredible blast from the rocket engines light up the launch area like daylight, with a plume that was painful to look at, I couldn't help but think to myself how amazing it was that I was watching a man-made vehicle rocketing seven people into space. Literally into outer space, hundreds of miles above the surface of the Earth, where there's no water and basically no air and alternately intense solar radiation and freezing night. A place where you see fifteen sunrises a day. Where you can look down and see entire continents laid out before you, not on a map, but really there, with your naked eye.
It's amazing the kinds of things that the human race has managed to achieve, and maybe even more amazing to think that we do it often enough that it doesn't even make the news most of the time. Ho hum. Another group of people just went to space.
Aug 18, 2009
A week ago last Saturday, I helped my family build a fence.
The design is a fairly straightforward one, with the nice feature of giving each property an equal share of the nice side of the fence. I think it turned out pretty well, due in no small part to my dad's do-it-yourself skill. I didn't come here to write about the fence, though.
What I really noticed while helping out with the fence was that I was seriously enjoying myself. The simple act of measuring, cutting, and assembling a bunch of wood was easily one of the best parts of my trip. And I think that that's all due to the pleasure that comes from achieving something meaningful.
One of the facts about my life, and the lives of many people in the industrialized world, is that I probably won't ever go hungry or homeless. In my current job, I'm sufficiently well-situated that I probably wouldn't get fired even if I put in half the effort that I currently do — I wouldn't get promoted, but I wouldn't be out of a job, and I could easily survive for the rest of my life on my current pay. In basically all ways, I could achieve very little of importance and still manage to live a long and healthy life. What this all amounts to is that there aren't any external pressures on me to go out and do anything.
When I'm at home, I usually spend most of my time either chatting with my roommates, playing videogames, or reading things on the Internet. All of these things are enjoyable in the short term, but none of them are really doing something. At the end of the day, I've got just as much under my belt as I did when I woke up in the morning.
So, I plan to start really doing things in my free time, though I haven't decided just what yet. I'm considering learning the drums. I could brush up on my German or Japanese. But whatever I end up doing, I want to be able to look back at my day, my week, or my year, and be proud of what I've achieved.
Aug 3, 2009
Prompted by Andy Ihnatko's glowing review of Posterous, particularly where he mentioned that being able to post by e-mail made him far more likely to actually make posts, I figured I'd give that a shot. After all, my blog is just a collection of text files, so it's trivial to turn e-mails into blog posts. We'll see if it actually encourages me to write more, hopefully it will.
Feb 17, 2009
Mark Dominus posted an article today about states' second-largest cities and their relationship to the largest city. For cities he used Metropolitan Statistical Areas, though, which I felt made the results a little weird. In particular, many MSAs, especially those for large cities in the small eastern states, cross state lines, and it seemed weird to me to count those as belonging to a single state.
Because of that, I re-ran the analysis using the Census Bureau data for incorporated places instead. The table of results is below; I've left in the Census markers for what kind of entity is being considered. In particular, "balance" means that the named entity includes some smaller incorporated places inside it and those are being excluded from the population (ie, the population listed is the larger entity minus the smaller entities).
Under this definition, New York does in fact have the largest ratio between the largest and second-largest cities. Illinois, which previously occupied that spot, has dropped to second place; its previously-second-largest city of Peoria has been replaced with Aurora, which is near Chicago and thus was counted as part of it in the original analysis. Rhode Island, rather than having one city and thus no quotient, now has multiple cities and gets to have a quotient fairly close to the middle of 2.03. Hawaii, however, does not have any incorporated cities, and the only place included in the list is the City and County of Honolulu (as a Census-designated Place), so there is still an item with no quotient. As Mark did, I've placed it at the top and bottom of the list.
I haven't really looked at much of the rest of the list, but it shuffled quite a bit. Pennsylvania, for instance, is now close to the top instead of being buried in the middle; it appears that about a quarter of Philidelphia's MSA population is within Philly, whereas only 13% of Pittsburgh's is in the city proper.
Here's the full set of data:
|State|| Largest city and |
|Second-largest city |
and its population
|New York||New York (city)||8,274,527||Buffalo (city)||272,632||30||.35|
|Illinois||Chicago (city)||2,836,658||Aurora (city)||170,855||16||.60|
|Maryland||Baltimore (city)||637,455||Frederick (city)||59,220||10||.76|
|Alaska||Anchorage (municipality)||279,671||Fairbanks (city)||34,540||8||.10|
|New Mexico||Albuquerque (city)||518,271||Las Cruces (city)||89,722||5||.78|
|Michigan||Detroit (city)||916,952||Grand Rapids (city)||193,627||4||.74|
|Pennsylvania||Philadelphia (city)||1,449,634||Pittsburgh (city)||311,218||4||.66|
|Oregon||Portland (city)||550,396||Salem (city)||151,913||3||.62|
|Massachusetts||Boston (city)||599,351||Worcester (city)||173,966||3||.45|
|Indiana||Indianapolis (city, balance)||795,458||Fort Wayne (city)||251,247||3||.17|
|California||Los Angeles (city)||3,834,340||San Diego (city)||1,266,731||3||.03|
|Washington||Seattle (city)||594,210||Spokane (city)||200,975||2||.96|
|Arizona||Phoenix (city)||1,552,259||Tucson (city)||525,529||2||.95|
|Georgia||Atlanta (city)||519,145||Augusta-Richmond County (consolidated government, balance)||192,142||2||.70|
|Mississippi||Jackson (city)||175,710||Gulfport (city)||66,271||2||.65|
|Wisconsin||Milwaukee (city)||602,191||Madison (city)||228,775||2||.63|
|Idaho||Boise City (city)||202,832||Nampa (city)||79,249||2||.56|
|South Dakota||Sioux Falls (city)||151,505||Rapid City (city)||63,997||2||.37|
|Nevada||Las Vegas (city)||558,880||Henderson (city)||249,386||2||.24|
|Arkansas||Little Rock (city)||187,452||Fort Smith (city)||84,375||2||.22|
|Vermont||Burlington (city)||38,531||South Burlington (city)||17,445||2||.21|
|Kansas||Wichita (city)||361,420||Overland Park (city)||169,403||2||.13|
|Delaware||Wilmington (city)||72,868||Dover (city)||35,811||2||.03|
|Rhode Island||Providence (city)||172,459||Warwick (city)||85,097||2||.03|
|Kentucky||Louisville/Jefferson County (metro government, balance)||557,789||Lexington-Fayette (urban county)||279,044||1||.00|
|Florida||Jacksonville (city)||805,605||Miami (city)||409,719||1||.97|
|Virginia||Virginia Beach (city)||434,743||Norfolk (city)||235,747||1||.84|
|North Carolina||Charlotte (city)||671,588||Raleigh (city)||375,806||1||.79|
|Maine||Portland (city)||62,825||Lewiston (city)||35,234||1||.78|
|Ohio||Columbus (city)||747,755||Cleveland (city)||438,042||1||.71|
|Nebraska||Omaha (city)||424,482||Lincoln (city)||248,744||1||.71|
|Texas||Houston (city)||2,208,180||San Antonio (city)||1,328,984||1||.66|
|Colorado||Denver (city)||588,349||Colorado Springs (city)||376,427||1||.56|
|Iowa||Des Moines (city)||196,998||Cedar Rapids (city)||126,396||1||.56|
|North Dakota||Fargo (city)||92,660||Bismarck (city)||59,503||1||.56|
|Montana||Billings (city)||101,876||Missoula (city)||67,165||1||.52|
|Utah||Salt Lake City (city)||180,651||West Valley City (city)||122,374||1||.48|
|Oklahoma||Oklahoma City (city)||547,274||Tulsa (city)||384,037||1||.43|
|Minnesota||Minneapolis (city)||377,392||St. Paul (city)||277,251||1||.36|
|Missouri||Kansas City (city)||450,375||St. Louis (city)||350,759||1||.28|
|New Hampshire||Manchester (city)||108,874||Nashua (city)||86,837||1||.25|
|New Jersey||Newark (city)||280,135||Jersey City (city)||242,389||1||.16|
|Tennessee||Memphis (city)||674,028||Nashville-Davidson (metropolitan government, balance)||590,807||1||.14|
|South Carolina||Columbia (city)||124,818||Charleston (city)||110,015||1||.13|
|Alabama||Birmingham (city)||229,800||Montgomery (city)||204,086||1||.13|
|Connecticut||Bridgeport (city)||136,695||Hartford (city)||124,563||1||.10|
|Louisiana||New Orleans (city)||239,124||Baton Rouge (city)||227,071||1||.05|
|Wyoming||Cheyenne (city)||55,641||Casper (city)||53,003||1||.05|
|West Virginia||Charleston (city)||50,478||Huntington (city)||48,982||1||.03|
Jan 20, 2009
I thought the inauguration was pretty interesting. I don't think that it'll go down as one of the great speeches of history, but it was good. It started off pretty slow, with a fair amount of rhetoric that didn't seem to tie together very much, but it picked up toward the middle. I was also struck by a few specific moments.
When listing religious affiliations, Obama listed Christians, Muslims, Jews, and Hindus, paused for a moment as if he were done, and then said, "and non-believers". This surprised quite a few people it seemed (and was the only line that triggered a sizeable cheer in my office). Having the President recognize the existence of atheists is almost unheard of, and really gives me confidence that he actually does believe in supporting everyone, despite the fact that inequality towards atheists still seems to be politically acceptable.
Obama also invoked science explicitly, saying that the administration will "restore science to its rightful place", and later counted "curiosity" among the values our nation's success depends on. I can't agree more that the eminence of the United States is due far more to its significant advancements in science and technology than on its particular accidents of religious history (as other administrations have seemed to feel), and that scientific capability is one of the finest products of a free society and one of the first to be diminished when our freedom is curtailed. Restoring the nation's freedom to pursue truth is an investment in our prosperity that will pay off for decades.
And while the speech is unlikely to be invoked during future inaugurations, I think there were two lines that had potency that will last beyond today, both having to do with foreign policy: his admonition to nations that blame their ills on the West that they should "know that your people will judge you on what you can build, not what you destroy" and his mention to oppressive regimes that "we will extend a hand if you are willing to unclench your fist". These are the kinds of lines that I love, and can have a lasting effect on the world.
The ending, I thought, was lackluster. Most of Obama's speeches have a strong arc with a flourish at the end, bringing everything together, but this one stayed steady throughout, covering one topic after another. That makes sense, given its purpose, but it made it less of an experience.
Altogether, though, a solid start to what will hopefully be an inspiring administration.
Dec 29, 2008
Following Jason Kottke's example, here is the list of cities I visited during 2008, in chronological order.
- New York, NY*
- Philadelphia, PA
- Chicago, IL
- London, United Kingdom
- North Kingstown, RI*
- Las Vegas, NV
- Acapulco, Mexico
- Oakland, CA*
- Barkeyville, PA
- St. Louis, MO
The vast majority of my traveling was done early in the year and in spurts; the trips to Chicago, London, and Rhode Island had no weekend at home in between, as did the trips to Acapulco and Oakland.
Dec 11, 2008
The introduction of the R160s is finally making its presence felt in my commute. While none of the lines I regularly ride are getting any of the new cars, the C used to run entirely R38s, which are being retired. So, starting this week, I've been riding entirely on R40Ms and R42s (I can't tell them apart), presumably relocated from the N, Q, W, and other lines that are getting the new 160s.
Interestingly, it seems like they haven't quite gotten all their ducks in a row yet. The C has historically always run 8-car trains, but this week I've definitely run on at least one 10-car train and one 6-car train. I expect it will return to 8-car trains eventually, though (the C is a bit crowded at rush hour, but not painfully so).
Dec 7, 2008
I've worked on Constrictor enough that I feel confident in allowing other people to be exposed to it. Some of the details might not yet be in their final form, but I think it's in pretty good shape right now. You can check out the Constrictor area of my site to get documentation, which still a bit sparse, or a pointer to the code.
If anyone starts using Constrictor, I'd be interested in hearing about your experiences or any suggestions you have.
Oct 28, 2008
This site used to be hosted with Drupal, which is a very capable and high-powered content management system. However, I had always felt that it was a bit more complicated than I needed; I didn't actually know how large portions of it worked, and it had lots of features I had no interest in using but added to the complexity even if turned off.
So, after hearing about it from Mark Dominus' blog, I decided to look at blosxom. It turns out that it's pretty much exactly what I want: a blogging tool that's dead simple but very capable and extensible by plugins (I love plugins). However, it's written in Perl, which I didn't want to have to deal with. There was a port of it to Python, which would be my language of choice, but looking at the documentation, it's a lot more complicated than the original (the distribution has 72 files!).
So, long story short, I wrote my own direct port of blosxom to Python. I'm calling it constrictor, since the whole purpose is to constrict the feature set. I've always been a fan of simple, sharp tools, and having worked with this intimately for a couple weeks this fits the bill pretty well. The plugin architecture is largely the same as blosxom's as well, and as a result I've already got three constrictor plugins going: one for allowing raw python in the interpolation, one to disable posts in a particular directory from being displayed in the date-based listings, and one to massage my posts to add paragraph tags and such. Porting blosxom plugins is pretty direct as well, so I expect to have more shortly.
I'll be futzing with the layout and things for a while, but overall I think things are good to go.
Feb 5, 2008
I forgot to mention that on Sunday afternoon I also headed over to Buckingham Palace while I was waiting for a room to be made available at my hotel. Perhaps 100 yards away from the palace is the Canadian War Memorial.
In my view, the Canadian War Memorial is right beside the Vietnam Veterans Memorial as the most potent war memorial I've ever seen. But where the Vietnam Memorial provides an overall impression of solemness, and possibly sadness or regret, the Canadian War Memorial evokes a profound sense of gratitude. It's a water cascade over a granite diamond that has images of maple leaves embedded into it, and the memorial is surrounded by maple trees. In autumn, the leaves from the trees fall onto the memorial and mix with the carvings. It's just stunning.
If you're ever in London, do yourself a favor and pop over to Green Park, right by Buckingham Palace. The palace is rather nice to look at as well.
Feb 4, 2008
I have arrived in London, where I'll be working for two weeks. So far, everything is going well.
Immigration was ridiculously fast. I mean, literally, I walked into the room and up to an available desk. The immigration officer did the usual routine of complete non-interest except when I mentioned I worked for Google, to which I got a "Oh, mhmm."
The hotel I'm staying in is really nice. Probably nicer than I deserve. The mirror in the bathroom has a section of fogproof glass. I can see the top of Big Ben's tower and the parliament building from the window.
It's also creepy. The minibar is computer controlled. If you remove anything from its spot, it bills your room. When I arrived, I opened up the minibar hoping that it had space to be used as a fridge (it doesn't). About 15 minutes later, a room service guy arrived with a can of Red Bull and put it in the minibar, and he implied that they had noticed that I had opened the minibar but hadn't taken anything out, so they wanted to restock the can in case I wanted it.
I spent last night wandering about the Square Mile, which is also creepy after dark (5:30) on a weekend. Nothing is open, including museums and things, and you can walk for blocks without seeing anyone. I originally went out to go see The Monument, but it's closed for renovations for 18 months, so I decided to just wander about. Guildhall is really impressive, though, even at night when you can't go inside. In fact, the whole city has this really cool feel from being a mixture of old medieval architecture and beautiful modern stuff. Walking along a long slim overstreet walkway and looking over to see a ruined section of the London Wall is awesome. I unfortunately don't have any pictures, as it was dark and my only photographic device is my phone, but trust me, it's great.
Also, 140 London Wall is perhaps the greatest address ever.
Cars driving on the opposite side of the road are kind of unsettling, too. I didn't realize to what extent I have subconscious feelings about what direction I have to watch out for cars, but when you're walking along the left side of the road and a car whips by from behind you, it's quite surprising.
The London office is quite a lot like New York. My major impression is that it's smaller and has better junk food.
So, it appears that my impression of London so far this time is impressive, yet creepy. More tales as the trip progresses.
Dec 30, 2007
As I sit here in my parents' house on the last night before I fly back to New York, gazing into the thick fog that's settled over the neighborhood, I feel compelled to take stock of my life. The last week has been a really great time, and it's going to be tough to leave, though I know I have to. Knowing how hard it is on my mom doesn't help either.
Overall, I feel like my life in New York is pretty good. Looking at it from the outside, it certainly looks awesome: I live in a great place, I work at one of the most desired places to work, and so forth. But for the most part, I feel unfulfilled, and I can't quantify exactly why. Part of it is that work isn't that interesting to me; I work on interesting projects, but the complete disconnect from the customer dampens my enthusiasm dramatically. I don't feel like that's it, though. Hopefully I can find what I need to change to feel better.
In other news, there are some exciting developments on this side of the country.
My parents have a new cat, and she's absolutely adorable. Her name is Gina, and she's quite small, roughly 2/3 the size of what I think of as a normal cat. She's got plenty of spunk, though, as she'll happily climb up onto my (six foot high) bed or chase a wine bottle cork around the house.
There's a new Catholic cathedral going up in Oakland right on Lake Merritt, and it's pretty impressive. It looks to be about eight stories tall, judging by the neighboring buildings, and is faced with glass panels in a elegant curve shape with a angled indent. Andrew Sherman has been keeping a log of its construction with a large helping of pictures.
Speaking of Lake Merritt, they're finally doing planning and construction for the southern end improvements, most notably: redesigning 12th Street and Lakeshore, adding more park space, and removing the horrible tunnels that go under the expressway. The design looks really good, though there are concerns about the number of trees being removed (both there and elsewhere), and I'm not convinced that the new restaurant that's being put where the boathouse used to be will be worth anything. There've previously been restaurants on the Lake and all of them have gone out of business. I wouldn't mind living in a high-rise apartment overlooking the lake someday, though.
Also, SCO was delisted in the last couple days, though not as a result of low share price (which it was already under advisement from NASDAQ about), but due to filing for bankruptcy.
Nov 14, 2007
New York City has had direct current electrical service since 1882, but that ended today with the disconnecting of 10 E. 40th Street, the last DC customer in the city. Plenty of systems still use DC, most notably the subway, but ConEd has gradually moved the responsibility for AC/DC conversion to the customers, allowing ConEd to stop delivering DC power off the grid.
Aug 29, 2007
Aug 13, 2007
New Haven consists largely of parking lots and medical emergencies.
Aug 5, 2007
The God Plays Dice blog that I've been reading recently had an interesting entry on trying to derive the importance of intersections from a map of a city. The core observation is that a good first approximation of importance of an intersection is the number of roads leading into and out of it.
Manhattan has some qualities that make this interesting to ponder. Primarily, the city was allowed to evolve naturally until 1811, when the Commissioner's Plan set forth the layout from 14th Street to the north side of Harlem, and the most important locations in Manhattan (depending on your point of view) are split between the Financial District, which is unplanned, and Midtown, which is planned.
In the planned section, the given approximation works out well. The plan included one major irregularity: Broadway, which cuts across diagonally from about 77th Street to 10th Street. As a result, the grid section includes 6 intersections that have 6 roads leading into and out of them instead of four:
- 72nd and Amsterdam Avenue (10th Avenue in Midtown): a central location on the Upper West Side
- 66th and Columbus Avenue (9th Avenue in Midtown): a corner of Lincoln Center
- 59th and 8th Avenue: Columbus Circle and a corner of Central Park
- 42nd and 7th Avenue: Times Square
- 34th and 6th Avenue: Herald Square and a corner of Macy's
- 23rd and 5th Avenue: Madison Square Park, home (sort of) of the Met Life Tower and Flatiron Building
- 14th and Park Avenue: Union Square
All of these are major intersections, and certainly rank highly among the most important intersections in the City.
Below 14th Street, though, the theory breaks down heavily. The West Village in particular has streets going all different directions and includes many intersections of 6 roads, some of as many as 8. However, none of those intersections are particularly important to the city as a whole (though some have local importance). Partly this is because Greenwich Village is built on land that is unsuitable for large buildings and partly it is because of the history of the area (which was once a literal village for people who didn't want to live in the bustling metropolis that was lower Manhattan).
Perhaps the core of the matter, though, is that the importance of an intersection is proportionate to the importance of the streets that intersect there. Intersections with more streets thus stand a better chance of being important simply because there are more streets that might contribute some importance. In that manner, we could find important intersections by trying to find the important streets. Ideas for what features one might look for to determine that could include unusual streets (such as Broadway), streets which are further apart from similar streets (such as the Avenues), streets that carry two-way traffic (as these tend to be larger than one-way streets), and streets on the edges of major parks.
Isabel also includes a side note about subways and why she feels that Boston has a thorough subway system while Philadelphia doesn't. She compares Manhattan to Philadelphia in that the system is a grid, so there aren't "obvious" places to put subway stops, but that isn't actually true for Manhattan. The Commissioner's Plan designated fifteen Streets (14th, 23rd, 34th, 42nd, etc) to be wider than normal, and many carry two-way traffic nowadays (which is very unusual in Manhattan, even the Avenues are largely one-way). Because they're regularly placed and main thoroughfares, these became the obvious places for subway stops when the system came along. That's why there are 4 separate stops on 125th Street, but no stops on any of 117th-124th or 126th-134th.
Jul 18, 2007
The New York Times posted an article about the recent release of our product to hundreds of thousands of additional advertisers. Pretty exciting stuff.
Jul 15, 2007
Despite football (soccer) being the national sport of Greenland, they are not a member of FIFA. Why, you ask? Because it's impossible to grow grass in Greenland that meets FIFA's standards.
Mar 19, 2007
I've never been so pleased to be denied a service in my life.
Thank you for your interest in Chase Identity Protection
We are sorry to inform you that we are unable to fulfill your request to participate in this program. The benefits of our product are based on the information and activity that takes place in your credit file. At this time, there is not enough information in your credit file so we cannot provide you with this service and you will not be charged.
So, basically, the bank says that they don't know enough about me to have any idea what would be normal or abnormal financial activity. That sounds like good news to me!
Mar 10, 2007
Oh noes, the end is nigh!
Yes, the British launched the first of the Skynet 5 family of satellites. It's rather amusing that a modern high technology product shares its name with the computer from the Terminator movies.
It's less amusing that people persist in accusing the UK of being arrogant or dumb, considering the first Skynet satellite was launched in 1969. Come on, there're plenty of things to make fun of the UK for, pick one that's actually true :)
Mar 5, 2007
"He's trying to phonetically spell words he can't pronounce."
Feb 7, 2007
Unfortunately, Evil Dead: The Musical is closing. I will be sad to see it go, but hopefully it will find a home elsewhere.
Jan 8, 2007
My secret project is finally ready to be revealed! Behold, this xkcd comic translated into a Google Maps map! When I first read that comic and the the associated blag post, I knew the idea had a lot of potential for additional geekiness. Oliver had been messing with the Google Maps API the previous few days for an unrelated project, so this immediately sprung to mind.
The details of exactly what the map is representing are explained in the blag post, but the short version is that this is a map of the IPv4 address space. Each IP address is treated as an integer from 0 to 4,294,967,295 mapped into a 16th order Hilbert curve. The advantage of using Hilbert curves is that any aligned block of 4^n addresses maps to a square and any aligned block of 2^n addresses maps to a rectangle.
To build the maps, I wrote a Python program that reads an input file that represents everything that should show up on the map and then builds the images. Each record in the file contains a name, importance, a range of zoom levels to appear at, a background color, and one or more address blocks in CIDR notation. So, for instance, a record might look like "HP,2,2,,company,,188.8.131.52/8,184.108.40.206/8" or "Multicast,-1,-1,,metaspace,,220.127.116.11/4". The file can also include color aliases, so that I can write "registrar" instead of "#f5eecc".
The program uses the Python Imaging Library to do the drawing. For each zoom level, it begins with a 16k x 16k image and draws all the blocks on that, then resizes it to the proper resolution and tiles it into 256 x 256 images for use by Google Maps. I originally wanted to use a 65k x 65k original image, because then each address maps to a unique pixel, but in 24-bit color that comes out to 12 GB of raw image data. Not entirely surprisingly, trying to allocate that much memory on a 32-bit system causes Python to crash. On the machine I run it on, it takes about half an hour to render all five zoom levels, with about 90% of that time spent downsizing the most zoomed-in level.
The data is obtained through a combination of DNS and the various whois databases, the same as the original. In looking up the address information for the organizations I put on the map, I discovered a lot of interesting bits of trivia. For instance, neither Google nor Yahoo! is assigned a block that's /16 or larger. On the other hand, despite being assigned a /8 block, IBM has many other sizable address blocks scattered all over the IPv4 address space.
Suggestions for other landmarks to include or other improvements are welcome.
Dec 20, 2006
Oliver (12:39:43 PM): I love jared code. Oliver (12:40:03 PM): if (someterriblyobscurecondition) then do some retarded shit else do something bewildering . Oliver (12:40:09 PM): (that's pseudo-code)
Dec 19, 2006
Last night I saw Evil Dead: The Musical at the New World Stages. In short, it was amazingly ridiculous. The entire show takes "not taking itself too seriously" to a new level. The story follows the plot of Evil Dead and Evil Dead 2, with some of the most popular lines from Army of Darkness thrown in to please the crowd. Though the fourth wall isn't ever directly broken, the musical is filled to the brim with references to the essence of the whole thing (such as characters acting confused about the choreography they're performing). And everything is simply done completely over the top, from the incredibly campy lines to the coreography to the immense amount of fake blood and gore.
The writing in particular is just ludicrous. For instance, one of the songs starts with "God damn you bitch / You fucking stabbed me!", sung in full-on musical style. Everything is like that, taking every cheap laugh and stupid idea to its most extreme extent, which turns out absolutely hilarious if you're into that kind of thing.
In particular, the guy doing Ash is the spitting image of Bruce Campbell in almost every way. The only qualm I had was that he really can't deliver Campbell's lines the way Campbell does, but he tries to do so, which leads to a few lines (such as "Lady, I'm going to have to ask you to leave the store") that sort of fall flat. But otherwise, he's just awesome.
Overall, it's highly recommended.
Dec 18, 2006
Wow, it has been a long while since I posted. Here's a quick recap of what's been going on in my busy busy life. I officially received an offer from Google and accepted it, and will be beginning work on March 26th. That should be awesome. To answer the question I receive most: I don't know what project I'll be working on; after I go through training and orientation and such things, I'll be assigned to a project that they and I think I'm suited for.
On Wednesday the 6th and Friday the 8th I went to see New Model Army in Brooklyn and Hoboken, respectively, which was absolutely fantastic. I hadn't heard of them until Kat asked if I wanted to go, but I'm a big fan now. Their studio versions of songs have a different feel than the live ones, which I also enjoy but in a different way.
I'm basically done with school now, only one assignment to go and that's due tomorrow. Assuming I pass all my classes (which I can't imagine I won't), that'll be the end of schooling for me for the next while. I'm very much looking forward to it, homework is just incredibly annoying at this point.
I've been working on a super secret coding project that will be unveiled in the coming days or weeks, depending on how much time I get to work on it. It is far more geeky than probably most people will be interested in.
And tonight, I saw Evil Dead: The Musical. More on that in a follow-up post.
People + Stuff = Fun
Dec 12, 2006
"That joke had perfect forward comedy."
Nov 26, 2006
I have the best family sometimes.
On Thursday, my sister needed some rum for her apple pie, and mentioned that she'd never tried straight rum before, so we gave her a little bit of rum to try, which was very entertaining to watch.
Last night, I'm not entirely sure how it started since I wasn't in the room, but for some reason my dad brought out a green drink that's basically Armenian moonshine and had us try it. That started a whole sequence where we poked through the liquor cabinet and pulled out everything we wanted to try and sampled it.
We ended up pouring samples of fifteen different liquors.
- Armenian moonshine
- Armenian brandy - The label on this was in Cyrillic, so I don't know what brand it was.
- Courvoisier VS cognac
- Hennessey cognac
- Napa valley cognac-like brandy - Since it's not made in France, it's not truly a cognac, but it's made in the same way as a cognac would be.
- Maker's Mark bourbon
- Calvados bourbon
- Peruvian pisco - Don't know the brand
- McCormick bourbon
- Early Times bourbon
- Jack Daniel's whiskey
- Canadian Club whiskey
- Seagram's Canadian whiskey
- Seagram's 7 whiskey
- Baileys Irish Cream - We all knew what Baileys tasted like, we just poured some because we wanted it.
After that, we finished off with tumbleweeds, which are ice cream, Kahlua, and white creme de cacao. Very tasty. Overall, my favorites were the Maker's Mark, Hennessey, McCormick, and Seagram's Canadian whiskey, plus of course Baileys. The Pisco and Armenian moonshine were easily the worst; those were incredibly harsh.
All in all, it was probably the most drinking I've ever done in one sitting. Once we were done, I had a good time annoying Coley and Melissa with my drunken ramblings in instant messages, which they seemed entertained by. I mentioned it to Kat and she thinks there should be a term akin to "drunken dialing" but for IMs, which seems reasonable.
I definitely should drink more often. For most folks the exact opposite is probably true, but I found that I don't really mind myself when drunk. I've always had this fear that if I got really drunk I'd become someone that I don't like, since I'm a very controlled person with lots of stuff I don't like that I've decided against being over the years. It turns out, though, I just do the same things I do when I'm tired (which generally means acting silly and childlike), with the added bonus of a slightly fuzzy feeling and a loss of motor control. It's actually pretty nice to know that I'm not some kind of angry or mean drunk.
Nov 25, 2006
Thanksgiving with my family is an event with a long tradition behind it, and this year followed in the same basic footprints as the others. Since my parents just had their kitchen redone, this year's Thanksgiving was held at our house. A total of fifteen folks were in attendance: our four family, our family friend Mark, and all the Pete Smyths.
I'll start off with the food, which our family does quite well. In all, the menu consisted of two turkeys (one barbecued, one roasted), turkey pilaf, stuffing, borags, yams, brussel sprouts, green beans, spinach salad, and Waldorf salad. Plus the usual selection of breads, olives, pickles, cranberry sauce, and the like. For dessert, there was apple pie, pumpkin pie, and pumpkin cheesecake. It was fantastic.
Aside from the food, pretty much we just hung around and talked. After dinner, in order to clear out the house a bit so that people could clean up, all the little kids, their parents, and myself went off to my old elementary school. I love playing with little kids, it's just a joyous time. I'm not entirely sure about having kids of my own, at least for the time being, but enjoying the kids of other people is just fantastic.
Perhaps most interesting to me about these kinds of days, from an intellectual perspective, is to watch how the social dynamics play out. Aside from Mark and the kids, all these people have known each other for somewhere between several years (for the spouses) to several decades (for the blood relatives). In a group like that, it's very interesting to see what the topics of conversation are, who talks to whom, who sits next to whom at the dinner table, and so forth.
Also interesting is the postmortem that always happens at the end of an event like this. Once all the folks go home, when our four family finally gets a chance to relax, we inevitably discuss all the funny stories and awkward moments, as well as the simple truths about everyone who showed up.
Overall, though, a very enjoyable day.