Most recent posts: page 1 of 6
1 2 3 4 5 6
Browse the complete archive by category or month.
November 30, 2008
Google Code University - tutorials and course content for CS students
Google's Code University is another great "bootstrap education" resource for CS students. I've written previously about other free resources for the self-guided software engineer, such as MIT's Open Courseware and Standford's Engineering Everywhere. While Google Code University currently offers a smaller subset of courses, it's all geared toward topics related to large scale web application development.
This website provides tutorials and sample course content so CS students and educators can learn more about current computing technologies and paradigms. In particular, this content is Creative Commons licensed which makes it easy for CS educators to use in their own classes.
The Courses section contains tutorials, lecture slides, and problem sets for a variety of topic areas:In the Tools 101 section, you will find a set of introductions to some common tools used in Computer Science such as version control systems and databases.
As you might imaging, there's quite a bit of content that's motivated by the sort of development challenges that Google engineers deal with on their projects. For instance, here's a Lecture by Jeff Dean that discusses distributed storage systems, from the perspective of Google's Big Table technology:
If you're interested in large scale web application design and distributed application development, here's a good opportunity to learn from some of the experts.
Previously:
Bootstrap Education
Stanford Engineering Everywhere
Lecturefox: Free University Lectures
Posted by Jason Striegel |
Nov 30, 2008 09:59 PM
Education, Software Engineering |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 29, 2008
MIDI Hero - Guitar Hero with a drum kit
This Guitar Hero mod posted by Youtube user Egyokeo blew my mind. A MIDI drum kit and some custom software on a PC send button-press input via the Xbox Input Machine (XIM) hardware to an Xbox running Guitar Hero.
Since I injured my middle left finger playing Guitar Hero 2 way too much when it came out, I've been dying to get back to playing it. But my finger hasn't healed. I was holding the neck too tightly on the X-plorer guitar controller and it hurts to bend it anymore. I've never had an injury playing the drums, so I thought "wouldn't it be great to be able to play Guitar Hero on the drums?" So I thought about how that might be accomplished... researched, implemented, borrowed, and here I outline the finished product.
Here's the whole chain of what's going on:
- Me banging on my drumKat MIDI drum pads
- drumKat MIDI Out to MIDI/USB adapter to PC
- PC running my own custom MIDI Hero software
- MIDI Hero calls into XIM which sends input to the Xbox 360 console
To make the songs playable with two-sticked drum input, some of the pads simulate multiple button presses for the 3 note chords and an input buffer on the PC automatically holds all notes until just before sending another hit event. You could tweak the setup to use a MIDI keyboard or even a MIDI guitar.
There are a lot more details on Egyokeo's site as well as the blog maintained by XIM creator OBsIV. Unfortunately, there are no instructions for actually playing like this. I'm pretty sure it involves secret ninja stuff.
MIDI Hero: Play Rhythm Games using any MIDI Instrument
Building your own Xbox 360 Input Machine (XIM)
Posted by Jason Striegel |
Nov 29, 2008 08:42 PM
Gaming, Xbox |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 28, 2008
iPhone Linux
The iPhone dev team, hard at work as usual, announced a successful iPhone Linux port today. It's still at a very early stage, but the kernel boots on first and second generation iPhones and the first generation iPod touch. A framebuffer driver and a working Busybox installation point to an exciting open source future:
What we have:
- Framebuffer driver
- Serial driver
- Serial over USB driver
- Interrupts, MMU, clock, etc.What we have in openiboot (but hasn't been ported yet):
- Read-only support for the NAND
What we don't have (yet!):
- Write support for the NAND
- Wireless networking
- Touchscreen
- Sound
- Accelerometer
- Baseband support
If you're a Linux hacker and want to pitch in with the porting process, hop on the #iphonelinux IRC channel at irc.osx86.hu.
iPhone Linux - Official Announcement
It's just a demo at this point, but if you can't wait to see this running on your own phone, here's what you need:
Installation Instructions
iphonelinux-demo.tar.gz
Posted by Jason Striegel |
Nov 28, 2008 07:36 PM
Linux, iPhone |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 27, 2008
Build a Skype server and replace your land line

With some of my family overseas, Skype and iChat have become important tools for voice communication, second only to the cell phone and face to face protocol. It occurred to me that outside of telemarketers and the very occasional late-night pizza dial, the land line has become a relatively unused service. Unused, yet a consistent and not insubstantial monthly bill.
With thoughts of finally ditching the land line, but still a bit resistant to going completely phoneless in the home (what about when my cell battery dies?), I came across an article in Linux Journal by Andrew Sheppard, author of Skype Hacks, that shows you how to reconfigure your home telephone system to be completely routed through a server running Skype and Linux.
My solution was to build a Skype server that provides 24/7 phone service with the minimum of hassle and fuss. By dumping your regular phone company and taking back control of your home phone wiring using a Skype server, you will have not only a phone system with nearly the same capabilities as before--indeed, in some ways better--you will also save a bundle of money! In my case, I save a little less than $700 US each year (this year, next year, and the year after that, and so on), or about 82% off of my old phone bill.
Using a Skype server plugged in to the existing copper phone wiring of your home means that you can lift a receiver anywhere in your home, at any time, and get a regular dial tone. Incoming calls either from Skype users or regular phones ring all handsets throughout your home. Basically, you can make Skype behave like a regular phone line, but at a tiny fraction of the cost.
There are some big benefits to switching to a Skype server. It's likely a lot cheaper and if you're a regular Skype user, you can now use the service with any handset in the house instead of sitting at your computer.
There are also some downsides. The phone system still remains one of the most reliable services. It's more likely that I'll lose electricity than I won't have a dial tone, which may be of some concern for fire and bugler alarm systems. You also wouldn't have 911 service in this scenario, but if you have a cell phone anyway, this may be a moot point.
What are the rest of you hackers doing for phone service these days? Is it time to give up the land line entirely, simulate it with a Skype server or VoIP service, or are you still happily rocking the POTS? Give us a shout in the comments.
Build a Skype Server for Your Home Phone System
Andrew Sheppard's Skype Hacks - Tips & Tools for Cheap, Fun, Innovative Phone Service
Posted by Jason Striegel |
Nov 27, 2008 08:28 PM
Home, Linux, Skype, VoIP |
Permalink
| Comments (2)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 26, 2008
Springatron 3000 - awesome Slinky reverb

Hackszine pal and music hacker Braden Stadlman wrote in with a link to the Springatron 3000, a gigantic spring reverb made out of Slinky and cucumber:
This is basically a giant spring reverb made from 10 slinkys. I was trying to make the best sounding spring reverb possible, I think I achieved this but it is probably the most inconvenient spring reverb ever made. The reverb time (sustain) is so long that the springs need damping and I found that the best material for doing this is a slice of cucumber wedged under the end of each spring, other materials like foam or rubber tend to kill all the treble.
...Although it is very inconvenient as a reverb, it is very good for making horror sound effects by playing it with a violin bow.
This is just one of several DIY mechanical synths made by Nick of Nick's World of Synthesizers.
Posted by Jason Striegel |
Nov 26, 2008 09:30 PM
Music |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
Iron Man suit powered by BeagleBoard and Arduino
The BeagleBoard is an incredibly little embedded system. It's Linux-powered, easy to hack, and has lots of connectors; everything from an expansion port with GPIO/I2C/SPI on up to HDMI. Pair it up with Arduino (don't miss our great Arduino gift guide), and you're unstoppable.
Enrique wrote in to tell us about the amazing BeagleBoard-powered project he made for his son:
For Halloween, my son wanted to be Iron Man. In about 2 months time, I integrated various gadgets into a store-bought costume. The most powerful components were BeagleBoard and Arduino. If I had more time, I would have added an overhead display in mask, a webcam for night vision, a 3G modem connected to BeagleBoard and maybe more. ;)
The suit is really tricked out:
- Repulsor Air - Blows air with CO2 air pump on hip and hose back to his hand.
- Repulsor Missile - Using CO2 air pump can also launch a paper missile.
- Repulsor Sensor/Light - A magnetic switch sensor lights his repulsor hand light and fades out and in his glowing eyes. Arduino handles this effect.
- Repulsor Sound Effect(s) - Originally not working. Worked around problem by using right-mouse, middle-mouse button and configured Elightenment17 to playback sound effects using Mplayer script. Mouse buttons activated by Arduino Digital output triggered by sensors.
- Arc Reactor - A LED night light from Costco embedded in his chest.
- BeagleBoard: Powerful Computer - With BeagleBoard already running in JARVUS box on my son's back need to add other features. Possibilities: Web cam, mobile router with hotspot and a head-mounted display, VoIP, streaming video of Iron Man view.
- Arduino: Super Input/Output Board - Handles repulsor effects but can add other sensors to enable even cooler special effects!!
LinuxNerd: My son in an Iron Man Suit!
Posted by Brian Jepson |
Nov 26, 2008 07:00 AM
Linux, arduino |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 25, 2008
Fuzebox - open source 8-bit game console

Ladyada released a new guide today which shows you how to make the Fusebox, an open source 8-bit console. It's based on the Uzebox project and provides you a fun Nintendo-like platform on which you can develop and play open source, homebrew games. Below is a video of the original Uzebox running the "AVR Megatris" Tertris clone:
The Fuzebox is a fully open-source, DIY 8-bit game console. It is designed specifically for people who know a little bit of programming to expand into designing and creating their own video games and demos. A full-featured core runs in the background and does all the video and audio processing so that your code stays clean and easy to understand.
You can build your own from scratch with the supplied documentation, or you can buy a kit from the Adafruit store and solder it together. Looks like a pretty fun project.
Posted by Jason Striegel |
Nov 25, 2008 11:00 PM
Electronics, Gaming |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 24, 2008
Tree command for Mac/Linux

Murphy Mac sent us a link to a handy find/sed command that simulates the DOS tree command that you might be missing on your Mac or Linux box.
find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
You can see the result in the image above. Like most things I've seen sed do, it does quite a bit in a single line of code and is completely impossible to read. Sure it's just a couple of substitutions, but like a jack in the box, it remains a surprise every time I run it.
Posted by Jason Striegel |
Nov 24, 2008 10:47 PM
Linux, Mac |
Permalink
| Comments (3)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 23, 2008
iPod Touch can has Street View

I'm not an iPod Touch owner, but from what I understand, the recent 2.2 firmware update killed the Street View feature in the Maps app (even though it's available in the iPhone update). Weird.
Turns out there's already a 2.2 Jailbreak released from the iPhone-Dev team, and as you can see from the photo above, timmyj9 from the iPod Touch Fans forum sorted out a quick hack that enables the missing Street View functionality.
Aside from Jailbreaking your device, the hack only involves making a minor XML update.
Enable Street View on Touch 2.2
Jailbreak tools for the 2.2 firmware
Posted by Jason Striegel |
Nov 23, 2008 09:18 PM
iPhone, iPod |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 22, 2008
Hacking the Wiimote IR camera

You can connect to the Wii remote over bluetooth or use an Arduino to send peripheral data to the Wiimote, but what if you want to interface directly with the Wiimote's IR camera? The sensor is particularly good at tracking coordinates for 1 to 4 points—it could be a simple way to add sophisticated tracking capabilities to your own project.
David Cranor writes,
There is a great site about hacking the wiimote IR camera to interface it with a computer - but it's all in Japanese! Perhaps you could post these links and see if anybody could translate it?
This page details how to desolder the camera itself and build a standalone circuit for it so that it can be connected to an I2C bus, and subsequently a computer (i think, anyway - the schematics are in English, and there's a video).And this page talks about how to connect the camera to an Arduino via some of I2C shield that he's built.
I'd really like to have access to this information for my projects, so if somebody would be able to translate these pages, that would be awesome!
A quick run through Google's Japanese to English translator yielded a reasonably understandable result:
Wii IR sensor connection details
Connecting the Wii IR sensor to Arduino
The second link contains a wealth of information on talking to the IR sensor over I2C, including some details on adjusting sensitivity parameters. The translation is a little rough, but combined with some of the sample code, I think I have the gist of it:
To initialize the IR camera, you have two options: 1) a simple, default initialization or 2) an initialization that allows you to specify 4 configuration parameters that affect the sensitivity of the device.
Simple Initialization:
Just write the following byte sequences, with a small delay between writes (assumes a successful ACK). The first byte on each line is the register you are writing to.
0x30 0x01
0x30 0x08
0x06 0x90
0x08 0xC0
0x1A 0x40
0x33 0x33
Initialization with sensitivity setting:
The author defined 5 sensitivity levels, and there are four parameters (p0, p1, p2, p3) that are adjusted for each level. Here are the settings:
Level 1: p0 = 0x72, p1 = 0x20, p2 = 0x1F, p3 = 0x03
Level 2: p0 = 0xC8, p1 = 0x36, p2 = 0x35, p3 = 0x03
Level 3: p0 = 0xAA, p1 = 0x64, p2 = 0x63, p3 = 0x03
Level 4: p0 = 0x96, p1 = 0xB4, p2 = 0xB3, p3 = 0x04
Level 5: p0 = 0x96, p1 = 0xFE, p2 = 0xFE, p3 = 0x05
Quoting the Wiimote Wiki IR sensor page, these parameters correspond to:
p0: MAXSIZE: Maximum blob size. Wii uses values from 0x62 to 0xc8
p1: GAIN: Sensor Gain. Smaller values = higher gain
p2: GAINLIMIT: Sensor Gain Limit. Must be less than GAIN for camera to function. No other effect?
p3: MINSIZE: Minimum blob size. Wii uses values from 3 to 5
Either pick your own custom settings for the parameters, or choose them from one of the 5 levels above, then send the following data to the device:
0x30, 0x01
0x00, 0x02, 0x00, 0x00, 0x71, 0x01, 0x00, p0
0x07, 0x00, p1
0x1A, p2, p3
0x33, 0x03
0x30, 0x08
The author also links to the following source, which serves as a helloworld for reading sensor data directly from the IR camera:
Wii Remote IR sensor test for Arduino
Wii Remote IR sensor test for ATMEGA168
Finally, since the IR sensor is a 3.3v device, you'll want to do a little voltage conversion before interfacing it directly with a 5v device like your typical Arduino (Arduino Pro users don't have to do a thing). Sparkfun has a guide for using 3.3v electronics with 5v microcontrollers, which should be all you need. It makes me wonder if anyone sells a pre-built 3.3v shield.
Hopefully this is all you'll need to get things working. Make sure to send us a tip if you make something cool using the Wii IR sensor.
Previously:
HOWTO: Make a Wiimote peripheral
Hook your Wii nunchuck up to an Arduino
Posted by Jason Striegel |
Nov 22, 2008 05:59 PM
Electronics |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 21, 2008
Bus Pirate - universal serial interface

Ian Lesnet sent in a link to his Bus Pirate project, a universal bus adapter that lets you interface with most standard integrated circuit serial protocols at different voltages - all from you PC's serial port. The idea is that you can debug, test, and prototype ideas a lot faster if you don't have to breadboard an interface circuit every time you work with a new chip.
the bus pirate is a serial terminal bridge to multiple ic interface protocols. we type commands into a serial terminal on the computer. the commands go to the bus pirate through the pc serial port. the bus pirate talks to a microchip in the proper protocol, and returns the results to the pc.
all pins output 3.3volts, but are 5volt tolerant. on-board 3.3volt and 5volt power supplies are available to power the connected chip. software configurable i2c pull-up resistors complete the package.the serial terminal interface works with any system: pc, mac, linux, palm pilots, wince devices, etc; no crapware required. we considered a usb device, but usb isn't compatible with the huge number of hand-held devices that have a serial port. we also wanted a 3.3volt device with 5volt tolerant inputs, but most popular through-hole usb microcontollers were 5volt parts (e.g. the pic18fx550).
The device supports i2c, spi, uart/serial, and raw 2-wire and 3-wire. It looks like a pretty handy little tool, and Ian has included all the information you need to build one of your own.
Posted by Jason Striegel |
Nov 21, 2008 08:53 PM
Electronics |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 20, 2008
Youtube in 720p HD - viewing and embedding
Last week I mentioned that adding &fmt=18 to a Youtube URL, or &ap=%2526fmt%3D18 to the embed code URLs allows you to view and embed Youtube clips in nice looking 480x360 resolution, encoded with the H.264 codec. The result is a much better playback experience than the standard 320x240 sorenson encoded clips, but a post today on webmonkey gives us another tweak that can produce even better results for some videos.
Above is an example of Collin Cunningham's brilliant LED investigation in high def.
By changing that fmt variable to &fmt=22 or tacking on &ap=%2526fmt%3D22 to the embed URLs—that's right, turn it up twice past 11—Youtube will kick out compatible videos at a whopping 720p resolution.
Here's some example embed code:
<object width="600" height="362"><param name="movie" value="http://www.youtube.com/v/P3PDLsJQcGI&hl=en&fs=1&rel=0&ap=%2526fmt%3D22"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/P3PDLsJQcGI&hl=en&fs=1&rel=0&ap=%2526fmt%3D22" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="362"></embed></object>
The only downside to embedding videos this way is that it really raises the bandwidth requirement for viewers. On my home connection, it can take several seconds before the video begins playback, and depending on how well my wireless is behaving, it's not uncommon that the download rate will be slower thank playback, requiring quite a bit of pre-buffering. On the other hand, some videos are just worth the wait.
How To: Watch YouTube Movies in Full 720p HD Glory
Posted by Jason Striegel |
Nov 20, 2008 09:46 PM
Video, YouTube |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 19, 2008
Wii Theremin
Ken Moore, a user experience designer at Google, created a very convincing Theremin simulator using a Wiimote and a Roland JV-1080 synth.
I've seen a few Theremin simulators that use accelerometer data, in both Wiimote and iPhone form, but this is the first I've seen that does a good job of recreating an authentic Theremin experience in all its 50s sci-fi awesomeness. Using some IR gloves and the Wiimote's CCD, one hand's horizontal movement controls pitch and the other hand's vertical movement controls volume.
At just $35, the Wiimote is an AMAZING piece of technology. It has an infrared camera in it which tracks the position up to 4 infrared light sources. So I bought a pair of leather gloves, wired up a couple infrared LEDs to 1.5 volt batteries, and poked an LED through the tip of the index finger of each glove.
Then, I connected my Wiimote to my computer (the Wiimote also supports Bluetooth connections): building on top of Brian Peek's Wiimote hacking software library, I wrote a program which detects the two infrared gloves and converts the vertical position of the left hand to volume, and converts the horizontal position of the right hand to pitch. That information is then sent via MIDI to the synthesizer which creates the actual sound.
One of the more interesting possibilities with this setup is that by adjusting the synthesizer, you can use a Theremin-like interface to control a huge number of effects, not just the standard sci-fi sine wave. I wonder if Léon Theremin would approve.
Posted by Jason Striegel |
Nov 19, 2008 09:03 PM
Electronics, Music |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 18, 2008
Backyard beekeeping - 120 pounds of honey

treasure stolen gold
low the sun and busy bees
prepare for winter
We collected honey from our two backyard hives this fall and I've finally finished jarring it. The new hive, split from last year's hive, produced over 20 pounds of honey. This is more than our first hive produced last year, but the older hive was not to be outdone.
Queen Ann, in the second year of her reign, ran a very productive operation. Her daughters produced some of the lightest, most delightful honey I've ever had. The water content is so low that it pours out like a sheet of glass, folding at the bottom like you might expect from taffy.

From Ann's hive, we collected 100 pounds of honey, making the grand total 120 pounds between the two hives. This is the part we harvested. We leave enough behind for the bees to survive on during the long Minnesota winter, which amounts to another 80-100 pounds.
What's incredible is that all of this honey is produced from the flowers, trees, and vegetable gardens within a 2-3 mile radius of the hives. Two years ago, before I began this hobby, I wouldn't have thought this was possible in the city.

If you're interested in starting a backyard hive next spring, this is what you can look forward to. The real challenge of this urban agricultural experiment is to figure out what to do with the harvest.
Previously
Backyard beekeeping - splitting a hive
Posted by Jason Striegel |
Nov 18, 2008 10:38 PM
Food, Home, Outdoor, Science, Survival |
Permalink
| Comments (7)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 17, 2008
Android hack - a smarter garage door opener
Brad Fitzpatrick created a garage door application for his G1 Android-based Google Phone. This would be noteworthy enough, but the interesting thing about Brad's hack is that it opens the garage door automatically as he approaches his home.
I got it all working. I now have an Android Activity (GarageDoorActivity) which interacts with an Android Service I wrote (InRangeService), letting me start and stop the service's wifi scanning task. The service gets the system WifiManager, holds a WifiLock to keep the radio active, and then does a Wifi scan every couple seconds, looking for my house.
When my house is in range, it does the magic HTTP request to my garage door opener's webserver (HMAC-signed timestamped URL, for non-replayability/forgeability if sniffed) and my garage door opens. Complete with a bunch of fun Toast notifications (like Growl) and Android Notifications (both persistent ongoing notifications for background scanning, and one-time notifications for things like the garage door actually opening).
So when Brad comes home, he starts the application which scans the WiFi network and then opens the garage door as soon as his home network is in range. He even describes an automated version where the phone constantly monitors the network for common scenarios. For instance, your if your phone sees your work network disappear, followed an hour later by your home network appearing, it could safely assume you have come home from work, opening the door without any interaction.
This is compelling support for a fully hackable, open source device. With normal iPhone development, you don't this level of deep access to be able to monitor WiFi connectivity or run an application as a background process.
Brad's released the source code for this one. If this app gives you any ideas, his code might be a good place to start. Just make sure to send us a link to your Android hack when you get your G1 to turn lights on and off when you walk around the house.
Android Garage Door Opener
Download the Java Source
Posted by Jason Striegel |
Nov 17, 2008 09:25 PM
Android, Home, Java, Life, Mobile Phones |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 16, 2008
Bamboo bike frame

This DIY bamboo frame is absolutely beautiful. Appropriate, since it appears to have hand crafted with love for a significant other. Aaron writes:
The ride quality is TOTALLY SWEET! I realize that I have a bit of a bias, but truthfully I have ridden very few bikes that felt nicer. The bike seems to float over bumpy road surfaces, almost as if it were on giant baloon tires, but nope, they are just 700x23 clinchers pumped hard as rocks. My big worry was that I had not gotten the frame alignment right, but that seems dead on too; riding no-handed is no problem. Oh yeah, and it corners like a fricking roller coaster and it accelerates as fast as anything I've ever ridden. Maybe that's due to the fact that it weighs only 16.5 pounds! I had no idea that it was going to be so light and honestly did a full on "YESSSS!" complete with double fist pump when I hung it on the scale.
There isn't a huge amount of info about the build process, suffice it to say that it began with harvesting carefully selected bamboo and ended with over 100 hours of epoxy and carbon fiber work.
Aaron's Finished Bamboo Bike [thanks, nick]
Details on Making the Bike
Related from Make blog

The Bamboo Bike Project is a collaboration between scientists and engineers at The Earth Institute at Columbia University and a bicycle builder at Calfee Design. The project aims to examine the feasibility of implementing cargo bikes made of bamboo as a sustainable form of transportation in Africa. The ultimate goals of the project are:
1.To build a better bike for poor Africans in rural areas.
2.To stimulate a bicycle building industry in Africa to satisfy local needs.
The Bamboo Bike Project

Making a Carbon Fiber Bike frame
From the pages of MAKE

Working With Carbon Fiber - MAKE:09 p168
Posted by Jason Striegel |
Nov 16, 2008 07:34 PM
Transportation |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 15, 2008
Myvu Crystal as a wearable head mounted display

Ralf Ackermann sent us a tip on using the Myvu Crystal headset in conjunction with a wearable computer. The Myvu glasses were designed to block out the rest of the world for private iPod video watching, but its VGA resolution and device compatibility makes it pretty suitable for tearing apart.
The consumer myvu crystal HMD (sold as a nice though still somewhat "socially unacceptable" 2 eyepiece video output device for the ipod and other devices generating a PAL/NTSC signal can be modified into a much smaller 1 eyepiece version. This one works very well with a multitude of devices like a Parallax propeller, a Nokia N95 via TV out or a Archos PMA 430. It is thus well suited as the core of "another wearable computer".For this purpose it might also be combined with the iphone / ipod touch
Xbee IO extension described earlier this week.
Ralf's project is still a work in progress, but it's a reminder that most of the hardware required for a wearable is now commonly available. Considering most of us already carry a sufficient computer (iPhone, N95, G1, etc.) around with us all the time anyway, it's only a matter of time before a HMD design is made cool enough to dodge the social stigma.
Myvu Crystal HMD Modification (Flickr Photo Set)
Posted by Jason Striegel |
Nov 15, 2008 11:03 PM
Electronics, Hardware, Life, User Interface |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 14, 2008
Linux Tip: super-fast network file copy
If you've ever had to move a huge directory containing many files from one server to another, you may have encountered a situation where the copy rate was significantly less that what you'd expect your network could support. Rsync does a fantastic job of quickly syncing two relatively similar directory structures, but the initial clone can take quite a while, especially as the file count increases.
The problem is that there is a certain amount of per-file overhead when using scp or rsync to copy files from one machine to the other. This is not a problem under most circumstances, but if you are attempting to duplicate tens of thousands of files (think, server or database backup), this per-file overhead can really add up. The solution is to copy the files over in a single stream, which normally means tarring them up on one server, copying the tarball, then untarring on the destination. Unless you are under 50% disk utilization on the source server, this could cause you to run out of space.
Brett Jones has an alternative solution, which uses the handy netcat utility:
After clearing up 10 GBs of log files, we were left with hundreds of thousands of small files that were going to slow us down. We couldn't tarball the file because of a lack of space on the source server. I started searching around and found this nifty tip that takes our encryption and streams all the files as one large file:
This requires netcat on both servers.Destination box: nc -l -p 2342 | tar -C /target/dir -xzf -
Source box: tar -cz /source/dir | nc Target_Box 2342
This causes the source machine to tar the files up and send them over the netcat pipe, where they are extracted on the destination machine, all with no per-file negotiation or unnecessary disk space used. It's also faster than the usual scp or rsync over scp because there is no encryption overhead. If you are on a local protected network, this will perform much better, even for large single-file copies.
If you are on an unprotected network, however, you may still want your data encrypted in transit. You can perform about the same task over ssh:
Run this on the destination machine:
cd /path/to/extract/to/
ssh user@source.server 'tar -cz -C /source/path/ *' | tar -zxv
This command will issue the tar command across the network on the source machine, causing tar's stdout to be sent back over the network. This is then piped to stdin on the destination machine and the files magically appear in the directory you are currently in.
The ssh route is a little slower than using netcat, due to the encryption overhead, but it's still way faster than scping the files individually. It also has the added advantage of potentially being compatible with Windows servers, provided you have a few of the unix tools like ssh and tar installed on your Windows server (using the cygwin linked binaries that are available).
Posted by Jason Striegel |
Nov 14, 2008 08:40 PM
Linux, Linux Server |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 13, 2008
Embed high-res Youtube videos
Here's an example of a normal embedded Youtube video, borrowed from Patti Schiendelman's Gakken Mechamo Inchworm post.
Back in march, it was discovered that when you view a video directly on Youtube, you could add a "&fmt=18" to the URL to enable a higher quality, higher resolution stream which is encoded with the H.264 codec.
To make this work in an embedded video, however, you need a slightly different hack. After pasting the embed code into a blog post, adjust the two video URLs (one in a param tag and one as the src parameter in the embed tag) by adding "&ap=%2526fmt%3D18" to the end.
For example, the above video embed becomes:
<object width="600" height="475"><param name="movie" value="http://www.youtube.com/v/iMQBKkDJY2c&hl=en&fs=1&rel=0&ap=%2526fmt%3D18"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/iMQBKkDJY2c&hl=en&fs=1&rel=0&ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="475"></embed></object>
And here's the result:
The still frame before the video is played is the exact same over-compressed image, but when a user clicks play, they will get a nice surprise. Instead of 320x240 video encoded with the Sorenson codec, the video will come in at a resolution of 480x360, encoded with the superior H.264 codec.
Embedding High Quality Youtube Videos [via Kottke]
View YouTube in high-res
Posted by Jason Striegel |
Nov 13, 2008 08:59 PM
Video, Web, YouTube |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
November 12, 2008
Typeface.js - embedded HTML fonts sans Flash

It's always struck me that font embedding is a huge omission from the web standards toolkit. If you're not satisfied with Georgia and Verdana, you usually need to turn to images or Flash to get the typeface you want. Tools like sIFR have made this a lot more functional, allowing you to write standard HTML and have Flash dynamically replace content in the page, but using Flash just to display HTML text seems a little unsavory. Typeface.js changes all this, providing a standards-compliant way to deliver a rich type experience using HTML and Javascript with no proprietary technologies.
typeface.js uses browsers' vector drawing capabilites to draw text in HTML documents. For a good while, browsers have had support for vector drawing -- Firefox, Safari, and Opera support the <canvas> element (as well as SVG), and IE supports VML.
You declare the particular fonts to use with the font-family attribute, just as you would normally do in CSS. Then you add the "typeface-js" class to any HTML element that should be rendered by the typeface library. The actual embedded font is delivered to the page in the form of another javascript file, which contains the vector information for the particular font face.
The cool part is that any Truetype font can be easily converted to the javascript format using a perl utility that comes with the package (or a web form provided on the typeface.js site). Simply convert any fonts that your page requires and add them to your html using the script tag. The whole process is at least as convenient as building font swfs for use in sIFR, making it a worthy open source alternative.
Typeface.js - HTML/JS Font Embed Library
Previously:
HOWTO - Use rich fonts in your web design with sIFR
Posted by Jason Striegel |
Nov 12, 2008 08:34 PM
Ajax, Design, Web |
Permalink
| Comments (2)
| TrackBack
| Digg It
| Tag w/del.icio.us
Bloggers
Welcome to the Hacks Blog!
Categories
- Ajax
- Amazon
- Android
- AppleTV
- arduino
- Astronomy
- Baseball
- BlackBerry
- Blogging
- Body
- Cars
- Cryptography
- Data
- Design
- Education
- Electronics
- Energy
- Events
- Excel
- Excerpts
- Firefox
- Flash
- Flickr
- Flying Things
- Food
- Gaming
- Gmail
- Google Earth
- Google Maps
- Government
- Greasemonkey
- Hacks Series
- Hackszine Podcast
- Halo
- Hardware
- Home
- Home Theater
- iPhone
- iPod
- IRC
- iTunes
- Java
- Kindle
- Knoppix
- Language
- LEGO
- Life
- Lifehacker
- Linux
- Linux Desktop
- Linux Multimedia
- Linux Server
- Mac
- Mapping
- Math
- Microsoft Office
- Mind
- Mind Performance
- Mobile Phones
- Music
- MySpace
- MySQL
- NetFlix
- Network Security
- olpc
- Online Investing
- OpenOffice
- Outdoor
- Parenting
- PCs
- PDAs
- Perl
- Philosophy
- Photography
- PHP
- Pleo
- Podcast
- Podcasting
- Productivity
- PSP
- Retro Computing
- Retro Gaming
- Science
- Screencasts
- Security
- Shopping
- Skype
- Smart Home
- Software Engineering
- Sports
- SQL
- Statistics
- Survival
- TiVo
- Transportation
- Travel
- Ubuntu
- User Interface
- Video
- Virtualization
- Visual Studio
- VoIP
- Web
- Web Site Measurement
- Windows
- Windows Server
- Wireless
- Word
- World
- Xbox
- Yahoo!
- YouTube
Archives
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
Recent Posts
- Google Code University - tutorials and course content for CS students
- MIDI Hero - Guitar Hero with a drum kit
- iPhone Linux
- Build a Skype server and replace your land line
- Springatron 3000 - awesome Slinky reverb
- Iron Man suit powered by BeagleBoard and Arduino
- Fuzebox - open source 8-bit game console
- Tree command for Mac/Linux
- iPod Touch can has Street View
- Hacking the Wiimote IR camera
www.flickr.com
|






Recent comments