Quantcast

Sno Globe

deep.jpg

This is a photo of my friend Deep from many halloweens ago. I just wanted to post it here because this photo made my day today. Best costume EVER! :-)

tens(ion)

Not far from the truth. I just see this a minute a go. I think I should forward it to you. I copy and paste it.

no past tense

ThirstyLight

thirstylight.jpg This is pretty neat. ThirstyLight is a plant sensor that you stick in the dirt next to your plant and when your plant needs watering, it’ll start to blink!

I have a feeling I wouldn’t notice the blinky light on some of my plants though (because they’re tucked away in a corner)…but if they also made a small beeping noise when they’re thirsty, they would definitely get watered.

Still, it’s a great idea!

SoCha

socha.jpg

SoCha is a cozy cafe in Bernal that just opened up 2 weeks ago. The food and coffee seem to be standard cafe fare but some nice things about this place are:

  1. live music almost every night! Here’s the schedule. I’m sitting in the cafe right now and a couple guys are playing the cello and piano.
  2. free wifi…and magazines to peruse
  3. a large back room with cozy bench seats.
  4. a small beer and wine list.
  5. movie night on wednesdays
  6. unlike Ritual further up the street, it’s not totally packed. There are lots of tables!

I think there’s also a brunch menu on the weekends so we should come here for brunch one day!

Rescued from the electronic trash bin

spamart.jpg

Rescued from our collective electronic trash bins and lovingly preserved for posterity, here’s a set of doodles inspired by spam subject lines. viagra and boob boosting vitamins never looked so good.

Memories of Programming the Mac, Pre-OSX

Last night, I had a dream about programming the Mac back in the old days, before OS X. The more I think about it, the more I think I’m still dreaming. Did this stuff really happen? I remember:

  • MPW, the Macintosh Programmers Workshop. The old mac didn’t have a console, or even run.exe. We had MPW, which gave us a commandline of sorts. We could access cvs using MPW. It is still being distributed by Apple.
  • MacsBug. The low-level debugger. Its hard to believe this is all we had. We loved it. DebugStr() was the poor Mac Programmer’s console. My SE/30 (and all Macs) had a “Programmer’s Key” that would invoke MacsBug. If you didn’t have MacsBug installed, the built-in MicroBug would come up instead. Apple still distributes MacsBug. Fortunately, I’ll never need it again.
  • Vague memories of Projector, which was Apple’s version control thing, and Jasik Debugger (The Debugger)
  • MrC. This was Apple’s C compiler. We used MPW to compile our code with MrC. Even if we used Metrowerks to initially write the code, MrC was what we used to compile the engineering builds. Back in the the day, the shipping versions were actually compiled by a *third* compiler, from Motorola, which ran on an AIX box or something.
  • Metrowerks CodeWarrior. I loved CodeWarrior. It was blazingly fast. It has a source-level debugger, which often ignored my breakpoints. It had a great IDE. It had a great Editor. The project files had a .µ extension, no joke. I bought my first copy of CodeWarrior in 1995, at the student rate, using the proceeds of my first real programming job (which is where I met peliom). CodeWarrior still brings back warm memories.
  • BBEdit. I’ve been using BBEdit since forever. It doesn’t suck. It makes me happy, in a security blanket kind of way.
  • Pascal. The Mac Toolbox interface was originally Pascal. Pascal was *the* way to write mac apps way back when. I tried to learn Pascal before I learned C, but never got anywhere.
  • Think C and Think Pascal. Compilers sold by Symantec. I learned C programming using Think C on a SE/30.
  • EvenBetterBusError. I don’t remember BusError, or BetterBusError, but EvenBetterBusError sticks in my mind. I don’t remember what it did, or why I needed it, but I think it was a System Extension.
  • System Extensions. Marching across the screen on boot up. Little friends there to make your life better. The thing people noticed when booting OS X for the first time was that their little friends were all gone.
  • Inside Macintosh. This was the Mac API documentation, originally in Pascal. A giant set of bound volumes, or available in electronic form. I think they were in HelpViewer or DocView format or something..
  • Pascal strings. You still needed them for DebugStr and window titles and such. c2pstr() was often used.
  • PlayMPEGInWindow(). I don’t remember if this was the exact function name, but peliom and I were trying to display MPEG video, and when we tried to see how QuickTime programmers did it, we found this function, and it cracked us up. So easy! When peliom and I both ended up working at Apple, we ended up working directly with the guy that wrote PlayMPEGInWindow(). Small world.
  • System7 Pack. SpeedyFinder7. Greg’s Buttons. These were crazy programs that modified the system in crazy ways.
  • Talking Moose.
  • Hypercard. A programming environment that was way too easy to use. Kids could write awesome, fully-functional programs. It was obviously too powerful, and had to be killed off. One day I found out the guy who worked across the hall was the guy that wrote the HyperCard parser. I was in awe.
  • MoreMasters(). You had to call this several times at app startup to allocate master pointers. Really.
  • WaitNextEvent(). You had to call it in your stupid event loop. If you didn’t, no other apps would get scheduled on the CPU.
  • The MultiFinder. WTF? Finder->Special->Set Startup->Start Up System with MULTIFINDER!!!
  • The Chooser. Background Printing. AppleTalk. I never understood the Chooser.
  • RAM Cache. Built right into the System 6 Control Panel.
  • Command-I Get Info. Increase the Application memory size.
  • Option+”About this Mac”. You can see the sun setting over the hills in Cupertino. When I worked at the lab with peliom, we made a video streaming app, and I rendered a 3D version of this scene using Bryce for our About Box. I wish I still had that around somewhere. When I got to Apple, I saw this same view out of my office every day.

That’s all for now. I’ll leave by thanking all those responsible for gcc and gdb. And UNIX. Thank you.

Thanksgiving

A Thanksgiving Pie, made with the apples from our apple tree:
IMG_3646.JPG

A Thanksgiving Prayer, by William S. Burroughs:

Creative Commons Radio from archive.org

Shag and I are testing a netradio station, streaming CC ShareAlike-licensed tracks from archive.org. Give these a listen and let us know what you think!

Ambient Drone Electronic Folk Indie IDM Pop

Ambient:
Drone:
Electronic:
Folk:
Indie:
IDM:
Pop:

Something for you to listen to: CC-licensed ShareAlike Albums

Here are roughly 2000 albums, all licensed under a Creative Commons ShareAlike license. Tons of awesome stuff for you to listen to, all tagged by genre, artist, and label!

The code used to make the list of albums can be found at the NetLabelShareAlike wiki page.

Kerosene Lamps at Pigeon Point

Once per year at the Pigeon Point Lighthouse they shut down the weak insipid modern (presumably electric) light and switch over the the 5 kerosene lamps and fresnel lens of the original, as it was 135 years ago.

CC-licensed (by-nc-nd) photo by MumbleyJoe:

via

The Z-Line: The Fastest Way Across The Bay!

Zero to 85 mpg in 4.6 seconds with no carbon emissions!?? The Z-Line is even awesomer than the Alameda-Weehawken Burrito Tunnel and even the Golden Gate Tunnel, which has a donut court with NINE different donut vendors.

The Z-Line is one of the Wish You Were Here! Postcards From Our Awesome Future posters, designed for the Art on Market Street Project by Steve Lambert and Packard Jennings.

Also, since this is one of those Eyebeam projects, a lot of the art from these posters is up on openclipart.org. Check out the F-line:

via LaughingSquid

Only One More Year of Email!

Prof. Knuth on email:

I have been a happy man ever since January 1, 1990, when I no longer had an email address. I’d used email since about 1975, and it seems to me that 15 years of email is plenty for one lifetime

I’ve been using email since 1993, and I am so done with it. One more year, and then I can pull a Knuth.(via)

Timelapse: OSS Secrets

I thought I would share a couple of helpful GPL command lines that really get the job done if you want to animate a sequence of images.

First (via Mike) is news of the jhead project. Unbelievably the ImageCapture.app application that ships with Mac OS X cannot handle more than several thousand images. ImageCapture.app will copy all of the image files, but the number sequence wraps around and it overwrites thousands of the earlier images in the sequence!! jhead fixes all that by renaming all of the image files based on the EXIF timestamp in the JPG file. brilliant! Here is the commandline he recommends:

jhead -nfpx%Y%m%d-%H%M%S -dt -ft $*

Now you have a nifty sequence of hopefully hi-res images. One of the cool things about timelapse is you can shoot 5 megapixel images and then scale them down to NTSC (720×480) or HD (1920×1024) resolution. In fact if some crazy 5 megapixel video format comes out 10 years from now, you will be able to support that as well! (As an aside, the Digital Cinema releases that are dribbling out to theaters these days are at 2,000 pixels wide. Eventually that will go up to 4,000 pixels wide, but there are not currently projectors that can support that resolution!)

So anyway, megapixels. How do you scale the images without fudging it up? A little known fact is that most video that looks crappy because of “the video compression” actually looks crappy because of the way the video was scaled down to its postage stamp resolution. So here is what you do: Use the fantastic ImageMagick “convert” command to scale your images down at even higher quality than photoshop! for free! and without using a dumb GUI scripting language. You can read about image scaling in laborious detail or you can just use this command line:

convert  -filter sinc -resize 720x480 foo.JPG foo_ntsc.JPG

I put the following bash script into a makefile to process my timelapse library:

for i in *; do  if [  ! -e "$i/ntsc_jpg/" ]; then  mkdir "$i/ntsc_jpg"; for i in orig_jpg/*.JPG; do echo $i; echo convert  -filter sinc -resize 720x480 ntsc_jpg/`basename $i`;  done fi done

And finally I would like to share the “ghetto HD” format that VJ Science came up with for doing 16:9 format on an XGA projector. This command includes cropping to get my 1600×1200 images into 16:9 aspect ratio … if you have a different source resolution, I’m going to leave it to you multiply your image width by 9 and divide by 16 to figure out the how many pixels to crop on top and bottom. The idea is to crop first and then scale down. Although I guess in terms of quality it doesn’t matter the order.

convert  -crop 1600x900+0+150 -filter sinc -resize 1024x576 foo.JPG foo_xga.JPG

Now you’ve got a nifty sequence of beautifully scaled images. Time to make video! Which of the 7 bajillion video codecs are you going to use? My recommendation is to use ffmpeg to make an mpeg-2 “master” that you can distribute by uploading to youtube, archive.org, and so on. ffmpeg understands image sequences! So here is a quick way to get your mpeg-2 video (no audio). This command assumes your images are named like “IMG_0001.JPG” and so on … I know that doesn’t jive with the jhead naming I’ve outlined above, but you are a big unix haxor and can figure that out.

ffmpeg  -i "IMG_%04d.JPG" -b 10000 test.m2v

For my purpose I am building up a video library for doing VJ/video mixing stuff. In this use case video quality and decode speed is much more important than bitrate. Since decoding mpeg-2 “I” frames is about 3x faster than decoding “P” or “B” (difference) frames I use this command to get a high quality I-frame only mpeg-2 stream:

ffmpeg  -i "IMG_%04d.JPG" -vcodec mpeg2video -intra -qscale 4 test.m2v

You can get higher quality by dropping qscale down even lower, but I think if you do qscale=1 your video basically won’t be compressed at all :-) rajbot?

So there you have it! The basics of an Open Source timelapse production pipeline. I use these tools on Mac OS X. Of course they are available on GNU/Linux. And you can also get them working under windows using Cygwin … We need more timelapse!

Link to jhead project
Link to ImageMagick project
Link to FFmpeg project

bronze spider crawls onto Embarcadero

Crouching Spider (2003), Bourgeoissometime last week this amazing bronze spider [Crouching Spider (2003), Louise Bourgeois (b. 1911)] crawled onto the Embarcadero near Pier 14 in San Francisco. it’s just sitting there, waiting. like a scene from The Host: it appeared, people gathered, and some didn’t make it back – particularly the small ones. i was lucky … more photos

Stunning Timplapse Sunset Over the Pacific

Check out this gorgeous timelapse that Mike made:


(click play to start) (link to other sizes)

Ruby is SERIOUS BUSINESS!

Tim Bray is MAD that RubyConf was on a weekend. _why agrees:

People, Ruby isn’t a game. It isn’t a hobby. It’s certainly not a very good food source and it’s not an article of clothing. You can’t just put Ruby in the wash with a load of whites. Nice try, but no. No. Jeez, grow a brain. Ruby isn’t a tambourine you can bang loudly in my ear. I’m trying to use my iPhone here, guy.

And Ruby is not some bachelor’s party with a foxy lady in a sherlock holmes hat. Hardly: Ruby is all dads. Put a petticoat on, woman. Pop those balloons. We’re all getting paid here and we’re all having kids here. Get with the program.

Ruby is serious business. Real business and totally bankable. Fact: You cannot do it late at night. The office is closed during those hours. You should be in bed like all the other dads. Now, have a nightcap and go put your PJs on, we’ve got to wake up early tomorrow, it’s pancake day.

I love why. Read the whole thing, it’s spot on.

Killing My Lobster @ the ODC

kml_firsttime.jpg

I think it’s time for our semi-annual lobster event. Killing My Lobster’s new show is at the ODC every Friday through December 8. They were awesome last year. We should go!

More info here.

Multitouch finger tracking using a Wii Remote

Check out this awesome project:

Using an IR led array and some reflective tape, you can track fingers in thin air using the Wii Remote by Johnny Lee, Carnegie Mellon University

How to quickly convert a bunch of JPEG2000s to JPEGs

Let’s say you have a directory full of jp2 files, and you want to convert them to jpg. The usual way of doing something like this is to use ImageMagick’s mogrify command:
mogrify -format jpg *.jp2
ImageMagick uses JasPer to decompress the jp2, and it is unbelievably slow. If you want to do the same conversion, but five times faster, use the free Kakadu software instead.

Here is a script that will quickly convert the jp2s in the current directory to jpegs. You will have to edit the paths to the Kakadu binary and library.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/python
 
"""
mogrify -format jpg *.jp2 is taking 24.5 seconds/image.
The same jp2->jpg process takes 4.5 seconds/image on the same box when using 
Kakadu, even when creating a temporary ppm file.
 
You can get the free Kakadu binary here:
http://www.kakadusoftware.com/
 
This script operates on jp2 files in the current dir.
"""
 
import commands
import glob
 
files = glob.glob("*.jp2")
 
for file in files:
    print "Processing " + file
 
    cmd = "LD_LIBRARY_PATH=/usr/local/lib/kakadu /usr/local/bin/kdu_expand -i %s -o tmp.ppm" %(file)    
    retval = commands.getstatusoutput(cmd)[0]
    assert (0 == retval)
 
    cmd = "pnmtojpeg tmp.ppm > %s" % (file.replace('.jp2', '.jpg'))
    retval = commands.getstatusoutput(cmd)[0]
    assert (0 == retval)
 
from os import unlink
unlink('tmp.ppm')

Let me see… I think I can pencil you in between Ubuntu installs.

I did two things last week: sleep, and install Ubuntu. That’s all I did. Acutally, I didn’t really sleep very much, because I was busy installing Ubuntu about 54,000 times. Here, I made a chart:

This is the YouTube Post

The other day, may and peliom came over and we couldn’t find anything good on YouTube! I know that sounds impossible, but it really did happen. That will not happen again. I will keep adding to this post as I find more great videos. Feel free to add to this post, or post links in the comments.


Also, Adam’s post Growing Up on YouTube is very good. You should read it.

QuickSilver Now Open Source

QuickSilver is now open source! Check it out on Google Code..

Pizza + India = Awesome

This video is from a Pizza Hut. Can you imagine what Zante’s would be like in India???

Via this Mefi post, which links to lots of other dancing pizza videos!

Almost as exciting as Zara learning to roll over…except it’s about hemoglobin

It seems that researchers have found a new reaction carried out by the hemoglobin molecules in our red blood cells. Specifically, the researchers have discovered a method of converting nitrate salt stored in the blood cell into nitric oxide by oxidized hemoglobin. I found this article interesting not simply because of the new finding, but because it supports the idea that hemoglobin has undiscovered functions in the human body.

The main purpose of hemoglobin is to pick up oxygen molecules as blood passes through the lungs, then deposit the oxygen in the tissues that need oxygen. However, the average person has a hemoglobin concentration of about 15mg per deciliter of blood. This hemoglobin is 100% saturated with oxygen when leaving the lungs. At the end of the round trip through your body, it is about 70% saturated with oxygen before picking up more oxygen in your lungs. Think about all the energy that your body spends pumping blood around your body during the course of a day. If the only purpose of hemoglobin is as an oxygen transporter, that is a lot of reserve! The human body is generally more efficient that this, suggesting that hemoglobin serves some as of yet undefined purposes, making it even more of an elegant molecule than presently known. Of course, the role of this newly discovered reaction on vascular hemodynamics is yet to be defined.

Link to article

SF Prop J: ZOMG WIFI EATS BABIES!!!!11!!!

After the Earthlink/Google deal fell apart, Mayor Newsom took the matter of free city-wide WiFi directly to the people with Proposition J. The Opponents of J bring up several great reasons why Prop J isn’t the best idea. From the voter guide:

  • Why should San Francisco turn over its public infrastructure to private corporations for their profit at our expense?
  • Proposition J does not restrict a vendor like Google from monitoring users’ web-surfing habits.
  • San Francisco already has a fiber optic network – let’s use and extend that instead.

And then there is this paid argument from David Tornheim:

BEWARE— NOTHING COMES FOR FREE!

Your HEALTH is AT RISK.

Are San Franciscans to be guinea pigs in a “blanket”of radiation?

Independent scientific studies show that radiation at the levels proposed is associated with increases in these negative health effects:

  • cancer
  • headaches
  • dizziness
  • sleep disturbances / insomnia
  • childhood leukemia
  • nerve damage

The wireless industry funded its own studies saying not to worry, just like tobacco,oil and pesticide companies. Who are you going to trust?

Fiber optic broadband is safer and more reliable.

Vote NO to WiFi radiation.

David Tornheim

Someone should have paid to include this comic by Wellington Grey in the voter guide.

Creative Commons Attirbution-NonCommerical licensed comic, resized to fit.

Older Posts »