Most recent posts: page 1 of 6
1 2 3 4 5 6
Browse the complete archive by category or month.
May 8, 2008
DIY multi-touch on OS X

Bridger Maxwell has been blogging his progress on creating a homebrew multi-touch platform in OS X. Prior to this, there's been a lot of activity around building multi-touch systems on Windows using the Touchlib library, but this is the first time I've seen a concerted effort on OS X.
The basic hardware is the same for both environments: LEDs surround a sheet of acrylic, causing a backscatter of IR when fingers are pressed to the screen. On the software side, though, the multi-touch interface is provided through Pawel Solyga's OpenTouch library. From the sounds of things, though, it's not super simple getting the interface messages from OpenTouch to your multi-touch enabled Cocoa apps:
Both OpenTouch and TouchLib send the touch data to other applications by sending Tangible User Interface Object (TUIO) network messages. TUIO is a protocol that is designed for transmitting the state of multi-touch systems. TUIO is built upon another protocol, Open Sound Control (OSC). While libraries for receiving TUIO messages are available in a few languages such as C++ or Java, there was not a solution for Cocoa applications. My first step was to build a library for receiving TUIO messages in Cocoa.Because TUIO is built upon OSC, I looked for a library that could parse OSC messages. Unfortunately, I could not find one that would fill all my needs. WSOSC was a library that came close though. There were a few issues to work around (use NSData instead of NSString), but eventually I was able to use WSOSC to parse the OSC packets. When finished, my framework had the ability to parse TUIO messages and had a method to delegate the TUIOCursor objects it created to another application.
From the blog comments, it sounds like Bridger is planning on releasing this middle layer when it gets a little further along. At the moment, though, he's released a demo comic viewing application that uses his multi-touch project framework. If you're interested in developing multi-touch apps for OS X, some of the discussions on Bridger's blog would be a good place to start.
Bridger's Multi-Touch Blog
OpenTouch Library
See also:
Make your own multitouch displays and software apps
Posted by Jason Striegel |
May 8, 2008 08:43 PM
Mac, Software Engineering |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 7, 2008
Radio controlled lawn mower

It's finally starting to warm up where I live on the 45th parallel, which means it's just about lawn mowing season. It's not a chore I typically enjoy, but this RC lawn mower designed and documented by Terry Creer looks like it might be a kick.
Here's the best feature, from the project website:
THE METHODS OF CONTROLLING AN UNMANNED VEHICLE DETAILED BELOW ARE POTENTIALLY LETHAL. YOU CAN KILL SOMEONE, AN ANIMAL OR A ROSE GARDEN IF YOU ARE NOT CAREFUL.
Sign me up! That also goes for anything else involving combustion, electronics and spinning blades of lopping frenzy. Here's a video on YouTube. I'm not sure you're going to get those nice striped patterns without a lot of practice, but I'm also not sure that it really matters.
If you're keen on making your own, it's basically an electric wheelchair with the joystick control replaced with the receiver circuitry and the lawn mover hardware bolted to the frame. The site has all the circuit and mechanical details. You should be able to scrounge for parts and put one together for $450 or so - less if you don't count the mower you've already got that you'd rather be driving from the porch.
DIY Radio Controlled Lawn Mower
Posted by Jason Striegel |
May 7, 2008 08:23 PM
Electronics, Life |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 6, 2008
Using the Canon Hacker's Development Kit

Lifehacker's Adam Pash put together a nice overview for using CDHK, the firmware enhancement toolkit for consumer-grade Canon point and shoot cameras. With CHDK and a compatible Canon device, you can capture images in RAW format, display live RGB histograms while shooting, and even write custom UBASIC scripts to take time-lapse photos or capture lightning strikes. It does all this while running from an SDCard, so it doesn't require permanent modification to the camera's firmware.
Turn Your Point-and-Shoot into a Super-Camera
Canon Hacker's Development Kit WIki
UBASIC Script Programming
Posted by Jason Striegel |
May 6, 2008 08:23 PM
Photography |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 5, 2008
Cornell University's student microcontroller projects - Spring08

Another semester's worth of cool microcontroller projects has come to a close at Cornell University and Bruce Land sent us the results for the Spring 2008 ECE 4760 course:
Students in ECE 4760 at Cornell University were given the responsibility of choosing, designing and building a project using Atmel Mega32 microcontrollers. Over 30 projects this year include a trumpet MIDI contoller, a motorized guitar tuner, a eyeblink/head-motion computer controller, Biometric Authentication system, and a rocket inertial guidance system.
There are a number of projects worth commenting on, but I really thought the rocket guidance system that one of the teams created was a particularly smart idea. It's a bit of a misnomer - it's not the rocket that's guided during flight, but the post-flight payload. The microcontroller, an accelerometer and two stepper motors are employed to steer a simplified parafoil-style parachute on the descent, ideally delivering the payload to a specified location, such as the launch point.
It sounds like this particular project had some launch-day engine malfunctions, but the idea is great. Something like this could someday be used to help direct food payloads and other cargo drops to a specific, controlled destination.
I think this marks 10 years worth of great work that's been documented online for this course. As always, these projects are incredibly well documented, both on the hardware and software side.
Cornell University ECE 4760 Student Microcontroller Projects
Rocket Inertial Navigation System
Posted by Jason Striegel |
May 5, 2008 10:19 PM
Education, Electronics, Flying Things |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 4, 2008
Videos from past DEFCONs
I wasn't able to make it to last years DEFCON hacker/security conference, and DEFCON 16 isn't until later this summer. As you can imagine, I've been a little impatient for a good ol' info-security paranoia fix. Thankfully, it looks like a ton of videos from past conferences have been posted to the DEFCON site. This might be pretty interesting to even the die-hards in the crowd who religiously attend. Having been to a couple of these, it's pretty hard (read: impossible) to get into all the sessions you would like to hit.
The more recent content is encoded as mp4's. Unfortunately, you'll need Real Player to view much of the older content. It's better than nothing, though.
It also looks like there have been a number of sessions from DEFCON 15 encoded and uploaded to Google Video. I've included a link to a list of these below as well.
Defcon Media Archives: 1993 - Present
Links to DefCon 15 Session and Panel Videos on Google Video
Posted by Jason Striegel |
May 4, 2008 08:36 PM
Cryptography, Government, Network Security |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 3, 2008
Update the hacker map

When I created the "Hackers in Your Neighborhood" map last December, I wasn't sure what the response would be. I was really happy to see it end up being really positive, with lots of hackers and organizations adding their marker to the map.
I was just peeking in on its progress today and it looks like it's still alive with minimal vandalization and with lots of individuals and user groups making it to the list.
Some of the momentum has died down a bit, though, so now seems like a good time to do a little spring cleaning. Update your own record, if necessary, and make sure you list or update any hacker-friendly clubs or organizations that you know about. My hope is that this will make it easier for people to network and discover groups near them that they can participate in.
The same instructions still apply: Click the link to connect to the map, log in to your Google account, and you'll find an "Edit" button on the left. Clicking this will put the map in edit mode, where you can drag a new marker onto the map for yourself. Then just toss your name into the title and put your interests and project websites in the description field. If you're already on them map, select the marker you want to edit (try not to screw up others) and then update the text field.
For your personal icons, don't put it right on your address unless you really don't mind giving that info out. Centered on your city, town or neighborhood works fine too.
Some big goals for this round:
- A club listed in every metropolitan area of the U.S. (red icon)
- More resources for places to buy related parts or electronics ($ icon)
- Coffee shops with free WiFi where fellow hackers are typically found (coffee icon)
- Better representation in South America,
Africa, Eastern Europe, Asia, and Australia
Big shout outs go to the Philly Linux User's Group, which is the most recent addition to the map, the Twin Cities Robotics Club, who are doing a fine job representing my home base, and Raj, our sole hacker in all of India.
It goes without saying, but when you're done updating the map, try and track down an organization or a few interested folks in your area. You have your assignment. Now get out there and go put some brains together.
The Hackers in Your Neighborhood: Collaborative Hacker Map
Posted by Jason Striegel |
May 3, 2008 08:45 PM
Google Maps, Life |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 2, 2008
HOWTO - embed fonts from a SWF into a Flex app

I haven't done any coding in Flex yet, but I came across this howto today that illustrates how simple it is to pull in a Flash SWF that has an embedded font and use it within the Flex application. Embedding the bold, italic, and bold-italic sets for a font allows you to use the standard <b> and <i> tags in an htmlText element that is using the embedded font.
As an aside, it appears that Flex even allows you to do a rotation on the text even when it's not using a standard system font. This is something that was a total pain with embedded fonts in Flash/AS2, requiring rendering the text on the fly as a bitmap and then rotating the bitmap version. Major headache.
I'm pretty excited to see that text effects like this have become so simple to achieve. Now, if only someone could figure out how to lighten the file size when you're trying to embed a traditional Chinese character set.
Embedding fonts from a Flash SWF file into a Flex application
Posted by Jason Striegel |
May 2, 2008 11:39 PM
Flash |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
May 1, 2008
Server-side Google Analytics
Peter van der Graaf did a little analysis of the URLs that are generated by the Google Analytics Javascript API and put together a very useful tutorial for building Analytics-enabled applications without the use of Javascript.
When you look at the analytics javascript code you see that it combines several sets of data into an image request. This image request sends the right data to Google (not the javascript). When you know what url you should use for the image, you can call the image directly and send the same data. Of course you need to be able to request the image url and that isn't easy from another image, rss feed or pdf. This is why we request it "server side".
You can add the code to the PHP that drives a blog site, for instance, and generate page views when your RSS feed is hit. You can even write a very simple script to proxy images and downloads, which will let you track hit data for all files on your site, not just the html pages viewed by a javascript enabled browser.
Taken a step further, you could even use this on the client side, triggering analytics views from standalone Flash apps or even desktop applications.
The one thing you need to keep in mind is that server-side analytics requests will appear to come from your server, not the client's machine. So while you can track page views and download events this way, you'll loose a lot of the information about your user base. Because of this, it would probably make sense to use a separate tracking ID for the server side events.
Google Analytics Without Javascript
Posted by Jason Striegel |
May 1, 2008 08:27 PM
Google, PHP, Statistics, Web, Web Site Measurement |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 30, 2008
Remember before you forget, but no sooner.
There's a fascinating article by Gary Wolf in this month's Wired titled "Want to Remember Everything You'll Ever Learn? Surrender to This Algorithm" about using software to help optimize an individuals memorization process.
We're all familiar with the notion that memorizing facts takes persistence, time and repetition. What isn't so obvious is that there's an optimum time to practice the recollection of facts you are trying to learn, and that time is precisely before you are about to forget that fact:
Practice too soon and you waste your time. Practice too late and you've forgotten the material and have to relearn it. The right time to practice is just at the moment you're about to forget. Unfortunately, this moment is different for every person and each bit of information....
Fortunately, human forgetting follows a pattern. We forget exponentially.
Wolf's article primarily discusses Piotr Wozniak's SuperMemo software, an application which is designed to take advantage of this insight. You fill it with a database of things you'd like to remember, and it attempts to model your retention curve for each of the facts while you use it, prompting you to recall information at just the right time to optimally burn it into memory.
Unfortunately, I couldn't track down an open source tool that does anything similar. Some of the legacy versions of SuperMemo appear to be freeware, and the full application itself isn't expensive, but I can't help but think this would make for a really cool open source package.
Software aside, I wonder how effective a person could become at general studying and fact retention by taking this insight into consideration. Are any readers actively using this tool or something similar? I'd love to hear your comments.
Posted by Jason Striegel |
Apr 30, 2008 08:31 PM
Mind, Mind Performance |
Permalink
| Comments (5)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 29, 2008
Stop XSS attacks with SafeHTML
If you allow user-contributed content in your site, you run into the problem of dealing with user supplied HTML in a safe manner. The most secure way of dealing with things, of course, is to strip or escape all HTML from user input fields. Unfortunately, there are many situations where it would be nice to allow a large subset of HTML input, but block out anything potentially dangerous.
SafeHTML is a lightweight PHP user input sanitizer that does just that. Just run any input field through the SafeHTML filter and any javascript, object tags, or layout breaking tags will be stripped from the supplied text. It also does a reasonable job of correcting any gnarly, malformed code, which is also a common problem with user-contributed data.
Using it is easy. Just instantiate the SafeHTML object and call its parse method:
require_once('classes/safehtml.php');
$safehtml =& new SafeHTML();
if ( isset( $_POST["inputfield"] ) )
{
$inputfield=$_POST["inputfield"];
$cleaninput = $safehtml->parse($inputfield);
}
This will take the posted "inputfield" parameter, strip any baddies, XHTMLify what's left, and the result will be stored in the $cleaninput variable. It's a simple addition to your code, and a lot more straightforward than trying to roll your own.
My only beef with the package is that it's written with a default allow policy, stripping out tags that are in its deleteTags array, but essentially allowing anything else through. If you'd rather only let through tags that you specifically want to allow, I'd recommend adding an allowTags array and adjusting the _openHandler method, adding the following after the deleteTags check:
if ( ! in_array($name, $this->allowTags)) {
return true;
}
You'll need to fill allowTags with everything you know to be safe and welcome, and you may miss a few that people will end up wanting to legitimately use, but this is easily corrected and the default deny policy is much safer in the long run.
SafeHTML - an anti-XSS HTML parser, written in PHP
Posted by Jason Striegel |
Apr 29, 2008 08:49 PM
Network Security, PHP, Web |
Permalink
| Comments (4)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 28, 2008
Improving astronomical video using VirtualDub
YouTube user kwakhed23 pushed out this video showing before and after imagery of the Moon. In the "before" part of the video, you can see the effects of the atmosphere warping the Moon's image as it passes over the frame. In the "after" video, a temporal noise reduction filter is applied using the open source video tool VirtualDub. It's difficult to tell for sure in the YouTube compressed video, but it appears to have cleaned up the image nicely.
i thought this might be useful to other amateur astronomers who use the "mount the camera on a tripod and point it at the eyepiece" technique. you should be able to get much more detail this way.
I've used VirtualDub for deinterlacing and other random video cleanup projects before, and it's a very handy tool. I'm not certain exactly which filter is being used by kwakhed23, but in addition to the built-ins, you can check out Donald Graft's site for numerous other contributed filters which might be worth playing around with.
Better Astronomical Images Via Filtering
VirtualDub
Donald Graft's Collection of VirtualDub Filters
Posted by Jason Striegel |
Apr 28, 2008 09:27 PM
Astronomy, Video |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 27, 2008
DIY 7x5 LED scroller

Kalanda sent in this 7x5 dot matrix LED scroller based on the Attiny2313 AVR microcontroller.
It looks like a fun little project, but the part I really dug was the way the animation is programmed. The author created a simple LED Composer HTML/Javascript page that lets you visually construct the layout of the animation, its speed, and the animation style (scrolling or frame by frame animation). You simply click on the virtual LEDs, make it look the way you wish, and a textbox spits out the necessary array for you place in your program.
Here's a link to the project site, both in original form, and lovingly translated by caged typing monkeys at Google:
7x5 LED scroller based on micro Attiny2313, English translation
Posted by Jason Striegel |
Apr 27, 2008 07:27 PM
Electronics |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 26, 2008
iPhone LoJack - location tracking for your iPhone
Erica Sadun put together a great tool for iPhone users who'd like to keep tabs on their iPhone's location. Instead of GPS tracking, a small binary called 'findme' is used to geolocate the device based on nearby cell towers.
Combined with a simple curl shell script, a private Twitter account, and a scheduled launch daemon, your iPhone can then report its location at regular intervals, which you (or anyone you authorize) can follow using Twitter and Google Maps. You could use this to find your phone if it's lost or stolen, or you might just use it to give your friends and family a way to track your current location.
Related posts:
Command Line Twitter
Open GPS Tracker
Posted by Jason Striegel |
Apr 26, 2008 08:21 PM
Google Maps, Life, Mapping, iPhone |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 25, 2008
Simple bike computer from scratch

Here's an excellent tutorial that'll show you how to build and program a bike computer using a PIC and a homemade PCB, all from scratch using free tools:
The bulk of the article that follows is to try and take the mystique out of the many steps involved in going from an idea to a finished product.You won't of course be ready to go into full scale industrial production, but you will now be aware of the things that have to be done, and know how to do them.
We will look at and master:Hardware steps
- Making a PCB from scratch
- How to use the FREE tools
- Software steps
Very basic Pic source coding
- Using MPASM
- Getting the HEX into the PIC
With the nice months ahead, you might as well be out riding. Why not keep track of all those miles on a computer of your own design?
Simple Bike Computer - Learn how to program a PIC
Posted by Jason Striegel |
Apr 25, 2008 10:35 PM
Electronics, Transportation |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 24, 2008
Open GPS Tracker
![]()
Now this looks like fun:
The Open GPS Tracker is a small device which plugs into a $20 prepaid mobile phone to make a GPS tracker. The Tracker responds to text message commands, detects motion, and sends you its exact position, ready for Google Maps or your mapping software. The Tracker firmware is open source and user-customizable.
From the looks of things, the total cost to build a remote-operated GPS tracking unit is on the order of $100. The design uses a prepaid cell phone to receive commands and report its position via SMS.
I'm sure there are a number of boring nefarious application for this that will freak out a lot of folks, but just think about the more interesting possibilities. You could add this to a weather balloon or autonomous flying vehicle easily track it down if there were any flight problems. A bunch of people in any city could put these in their cars on a short time delay and automatically report traffic flow conditions. You could even roll your own "lo-jack" system that would let you find your car if it was stolen, only with this your car's location is only being reported to you instead of a monitoring station, actually increasing your privacy.
Posted by Jason Striegel |
Apr 24, 2008 08:38 PM
Electronics, Google Maps, Mobile Phones, Transportation |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 23, 2008
Scriptographer - Javascript for Illustrator

My friend Barrett sent along a link today to an Illustrator scripting plugin called Scriptographer. I'm sort of a slouch at Illustrator, so I had him give me the quick 411 and I must say, this is pretty cool.
If you're familiar with Javascript, Scriptographer will enable you to crank out little scripts that can generate illustrations procedurally. As an example, the bubbelbubbling script, show above, tuns your pen tool into a fountain of random bubbles that follow your drawing path. There are certain styles of artwork that could really lend themselves to a procedural drawing tool: fractals, patterns, random "particle" effects. These things would take forever to generate manually, but by defining the effect programatically, you can quickly experiment with your work in a more dynamic fashion, tweaking variables and fine-tuning your work as you go.
The project website also has a growing library of user-contributed scripts that are worth checking out. It's a good place to start for your own creations, or you may just find exactly what you're looking for, already crafted for you by another designer-coder.
Posted by Jason Striegel |
Apr 23, 2008 09:11 PM
Design, Life, Mac, Software Engineering |
Permalink
| Comments (1)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 22, 2008
Encoding JPEGs client-side in AS3
I've been doing a bunch of Flash Actionscript 3 development lately at work, and one of my favorite features with the new drawing API is the ease and speed with which you can rasterize vector data and manipulate image bitmaps.
What's killer is that Adobe's as3corelib addon library finally gives us some essential tools that have been sorely lacking, none the least of which is a client side JPEG encoder. With this, you can turn any drawable object like a sprite or a movieclip into a ByteArray holding the compressed JPEG data in just a few lines of code. It's as simple as this:
import com.adobe.images.JPGEncoder;
var clipbmp:BitmapData = new BitmapData (aclip.width, aclip.height);
clipbmp.draw(aclip);
var jpgEnc:JPGEncoder = new JPGEncoder(90);
var jpgbytes:ByteArray = jpgEnc.encode(clipbmp);
This turns the "aclip" sprite or movieclip into a rasterized, flattened, BitmapData object. The BitmapData is then run through the JPEG encoder with the quality setting of 90 and you're left with the raw JPEG-compressed image in a ByteArray object. The as3corelib also provides a PNG encoder, with which you can just use the static method PNGEncoder.encode(clipbmp).
This is perfect for saving a capture of user-generated artwork to the server. Just set the data member of a URLRequest object to the ByteArray and post it. For more detailed information on how to put all the pieces together, Henry Jones has a really thorough post of compressing JPEG data and pinging it off a server to force an image download.
Unfortunately, to trigger a JPEG download, you still need to post the image data up to a server script and have it echo it back to the browser. The difference now, though, is that you can do the compression on the client end, saving both server CPU time and the time to upload the image data. This means saving a large image is a few second process instead of taking a minute and a half.
Actionscript 3 Core Library (as3corelib)
Posted by Jason Striegel |
Apr 22, 2008 10:03 PM
Flash, Software Engineering, Web |
Permalink
| Comments (2)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 21, 2008
Post your Earth Day hacks

In celebration of my favorite planet, I'd like to open the comments up to any and all Earth Day hacks, links and activities. Think of it as an opportunity to quickly catalog a list of ideas and tools that can be used for the other 364 days of the year.
Here are a few simple things that you can do tomorrow. I figure it's as good a day as any to start forming a few practical habits, so for my list, I just chose a number of things that you can easily make a regular part of your day.
- Bike to work. If you need to find a route, citybikemap.com is a good user contributed resource
- Compost the garbage. If you don't have a composter, here are some construction ideas from Instructables: Sinmple Pentagon Composter; Mini Wooden Portable Compost Bin; Trench Composter
- Avoid the purchase of anything with excess packaging
- Turn lights off when not in use. Convert remaining incandescent bulbs to CFL
- Check faucets and toilets for leaky valves. For your toilets, shut off the water while you are at work and see if the water level goes down in the tank. It's a common problem that's easy to fix.
- Print no emails.
- Bring a mug to work and use it instead of styrofoam or paper cups.
- Reconnect with nature: start a garden; go for a hike; take the kids out and identify some plants and birds.
- Reclaim some of the yard for native plants and grasses.
- Encourage others to do the same, and share your own Earth-friendly tips and hacks.
You may be more or less ambitious, but I think this represents something that's feasible for much of the year. It'd be cool to get a read on what the hacker community is doing to make a positive impact on the globe, so make sure to post your own Earth Day hacks and resolutions in the comments.
Posted by Jason Striegel |
Apr 21, 2008 11:38 PM
Energy, Life, Lifehacker, Science, Transportation, World |
Permalink
| Comments (3)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 20, 2008
64HDD - PC hard drive for your Commodore 64

I've been searching for a way to resurrect my old C64 in all its glory, so I can someday try to introduce my son to programming. The two problems I've run into is that I've lost most of my software, and I've only been able to find a couple of blank floppies. It's only an assumption they will still hold data reliably.
I came across the 64HDD project. It's a promising looking solution to my problem, and looks like it's been actively developed since 1999. Using a DOS PC with a parallel port and a xe1541 cable, pictured above, you can supposedly use the PC as a mass storage device for the C64. Essentially, it turns your PC into a 1541 floppy drive emulator, so you can load and save files on your C64 without trying to track down a working 1541 or disk media.
It also means that you could presumably download a bunch of disk images using your broadband connection, shove them onto a hard disk, and then access everything without having to rifle through piles of disks to find the program you want to run.
Has anyone used this before, or do you have any other recommendations or ideas for bringing a legacy system back to life?
Posted by Jason Striegel |
Apr 20, 2008 08:37 PM
Retro Computing |
Permalink
| Comments (3)
| TrackBack
| Digg It
| Tag w/del.icio.us
April 19, 2008
Manipulating Mac keyboard LEDs through software
Amit Singh, the Google Mac Team hacker who taught us all how to use the Mac motion sensor as a human interface device and manipulate the keyboard backlight on the MacBook Pro, wrote a short program that demonstrates how to control the LEDs on your keyboard through a user space program:
If you have an irrepressible urge to turn these LEDs on or off through software, here is a program that shows you how. (Note that the program only manipulates the LEDs -- it will not actually cause caps lock or num lock to be engaged.) The program also serves as an example of how to do user-space Human Interface Device (HID) programming through the I/O Kit.
I'm not sure what you could use this for, but that's for you to sort out, right?
Manipulating keyboard LEDs through software
Reading and manipulating the keyboard backlight on the MacBook Pro
Hacking the sudden motion sensor
Posted by Jason Striegel |
Apr 19, 2008 09:46 PM
Mac |
Permalink
| Comments (0)
| TrackBack
| Digg It
| Tag w/del.icio.us
Bloggers
Welcome to the Hacks Blog!
Categories
- Ajax
- Amazon
- AppleTV
- Astronomy
- 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
- OpenOffice
- Outdoor
- Parenting
- PCs
- PDAs
- Perl
- Philosophy
- Photography
- PHP
- Pleo
- Podcast
- Podcasting
- Productivity
- PSP
- Retro Computing
- Retro Gaming
- Science
- Screencasts
- Shopping
- Skype
- Smart Home
- Software Engineering
- Sports
- SQL
- Statistics
- Survival
- TiVo
- Transportation
- Travel
- Ubuntu
- Video
- Virtualization
- Visual Studio
- VoIP
- Web
- Web Site Measurement
- Windows
- Windows Server
- Wireless
- Word
- World
- Xbox
- Yahoo!
- YouTube
Archives
Recent Posts
- Radio controlled lawn mower
- Using the Canon Hacker's Development Kit
- Cornell University's student microcontroller projects - Spring08
- Videos from past DEFCONs
- Update the hacker map
- HOWTO - embed fonts from a SWF into a Flex app
- Server-side Google Analytics
- Remember before you forget, but no sooner.
- Stop XSS attacks with SafeHTML
- Improving astronomical video using VirtualDub
www.flickr.com
|





Recent comments