Archive for February, 2008

Manhattan congestion controls

February 28, 2008

A group of politicians in New York have proposed another solution to Manhattan’s traffic problems to counter Bloomberg’s congestion pricing idea. The group’s full report is here (pdf). The report notes that for-hire vehicles (taxis, limos, “black cars”) are responsible for 40% of Vehicle Miles of Travel (VMT). Interestingly, 13% of all VMTs are just taxis cruising around looking for passengers. The report proposes these excellent ideas:

  • Substantially increasing the number of cab stands in the central business district, especially at sites that generate large numbers of trips
  • Expanding the number of Taxi and Limousine Commission (TLC) – designated locations from which group rides are permitted
  • Expand “electronic hailing” of cabs via mobile phone and text messaging

The last two are similar to Christopher Alexander’s proposal in “A Pattern Language” for city transit: small shared-ride taxis can take different people to different locations on the same route, kind of like SuperShuttle. Lots of people in Midtown are taking cabs between the same general areas. If they had shared taxis that left every 5 minutes, this could reduce some traffic in hotspots.

In my opinion, traffic can be improved markedly if drivers are allowed to run over pedestrians who walk across the street when cars have a green light. There’s not much traffic in Grand Theft Auto.

Need fine-grained concurrency primitives

February 19, 2008

Buried in this very long post about ObjectStore is a quote from Dave Moon:

Looking into the future, Dave Moon says: “The illusion of random access memory is becoming increasingly unconvincing on modern hardware. Although dereferencing a pointer takes only one instruction, when the target of the pointer is not cached in the CPU that instruction can take as long to execute as 1000 ordinary instructions executed at peak speed. [snip] But at the same time, the advantage of C++ and other conventional programming languages is being eroded in the same way. It is not unreasonable to predict that we will see widespread abandonment of the illusion of random access memory in the next two decades. The IBM Cell processor used in video games is the first crack in the dam.”

[ed: below is my nonsensical idea, not Weinreb's nor Moon's. I'm just thinking out loud based on the quote above. Both disagreed in the comments.]

When RAM is so terribly expensive to access, the way to squeeze out additional performance is to get lots of work done with the data that’s already in the cache. A compiler needs to find and exploit fine-grained concurrency in a program, but conventional languages often get in the way. Most popular languages are assumed to be single-threaded programs, where multi-threaded features are thrown in later as a library (threads, mutex, semaphores, etc). This gives you coarse-grained parallelism. Some libraries offer higher level support, such as the Task Parallel Library. This still uses threads to exploit multiple cores, but fails to arrange computation on a single core to maximize use of the cache. I don’t know how exactly, but I think lazy languages can help here. Right now laziness is used to avoid execution (e.g. infinite lists), but it could be used to radically reorder programs to process data aggressively while it is still in the cache.

Google Calendar annoyances

February 19, 2008

I mostly like Google Calendar because I don’t need much help with scheduling. But there are a few minor annoyances…

  1. There’s no “Next available time” button that finds a convenient open time on multiple people’s calendars to schedule an event.
  2. When sharing a calendar, you can’t type in a group name from your contact list. I’d like my family to see my schedule, and work mates to see my free/busy time only.
  3. Using Quick Add, if I say “Meeting in LA on 3/10″ it changes the title to “Meeting in LA” because it puts the date in the “When” field. But since it also correctly puts the location in the “Where” field, I’d prefer it change the title to just “Meeting”.
  4. If I schedule a meeting within Gmail and the other person adds a comment, I won’t see the comment or get an indicator in Gmail. Instead, the comment is buried inside the meeting details.
  5. If I search for a multi-day event, it lists every single day. For example, if I’m at Conference X for a week then the search would return 5 separate entries for this. I’d rather see one entry that says it lasts 5 days.