This page lists every article published on IBM developerWorks, in (roughly) reverse chronological order.
Real time visual effects, Use EffecTV and Simple DirectMedia Layer (SDL) to create your own
real-time visual effects on live video. Learn how to integrate geometric
primitives, bitmap image loading, and simple motion tracking to create your own
games, leading-edge user interfaces, or immersive environments. Explore the
EffecTV and SDL architectures, and learn how to harness the power of open
source video processing on Linux. Local cached text.
Future versions to be published here shortly include more advanced
manipulations of the video input to make interesting games.
version 0.1 is a simple "ball falling down the screen game" where you have to
jump around and duck and dodge.
versions 0.2 adds shrinking of your image on the video screen, and occlusion of
your head with funny images.
Mentioned in the crazy ideas section of Gnome Cheese project. Actual proof that some of these articles are being read.
How-to article for distributed multi-head X windows support, Learn about the tools available to develop your own multiscreen
configuration and physical layout to enhance your computing experience. You can
use Linux and Xdmx to create one contiguous desktop across multiple display
devices attached to separate computers. Combine your available laptop and
desktop computers running Linux to create one large display for enhanced
productivity. Explore large-scale display-wall setups and the creation of
multihead setups without purchasing graphics cards. Local cached text.
Photo mosaics with Perl and ImageMagick, use simple Perl scripts to automate the image manipulation, text
creation, and compositing of arbitrary mosaic images. Learn how to use
ImageMagick, GD, and The Gimp to create your own mosaic images suitable for
static display and dynamic content. Explore the capabilities of ImageMagick and
open source graphical editing tools. Local cached text.
Knock based commands for linux laptops, for the first time, you can hit your computer and get a meaningful
response! Using Linux and the Hard Drive Active Protection System (HDAPS)
kernel drivers, you can access the embedded accelerometers on IBM and Lenovo
ThinkPads, then process the accelerometer data to read specific sequences of
"knocking" events -- literally rapping on the laptop case with your knuckles -
and run commands based on those knocks. Give your computer a double tap to
lock the screen, and knock in your secret code to unlock. Tap the display lid
once to move your mp3 player to the next track -- the possibilities are
endless. Local cached text. IBM developerWorks podcast with Scott Laningham. (local copy of podcast)
On youtube.com and
video.google.com.
News article on newscientist.com.
Slashdot discussion, if only for the e.a. poe homage.
Among the Top 10 IT Stories of the week at cio.com.
Entry in the Make blog.
Let system events kick off on-screen alerts displaying text and images, Use Perl, Ghosd, and some network programming to display on-screen
overlays of text and graphics based on messages from your local system and
remote computers. Define custom images, font sizes, and colors to convey
information integrated with your desktop. Local cached text.
Control your computer with tones and patterns, Use Linux or Microsoft Windows, the open source sndpeek program,and a simple Perl script to read specific sequences of tonal events - literally whistling, humming, or singing at your computer -- and run commands based on those tones. Give your computer a short low whistle to check your e-mail or unlock your your screensaver with the opening bars of Beethoven's Fifth Symphony. Whistle while you work for higher efficiency. Local cached text.
O'Reilly Radar Release 2.0 'magic' link.
Cached copy.
Coverage and comments from Lifehacker.com.
Interesting implementation example at: perlmonks.org
Demonstation video of raising and lowering windows on video.google.com and
youtube.com.
IBM developerWorks podcast with Scott Laningham. (local copy of podcast)
Make incoming e-mail play custom tunes, Use SoX, and a Perl script to do simple keyword matching and create
sound files played back upon receipt of e-mail. No more simple ding to indicate
the arrival of an e-mail regardless of recipient, sender, or subject. You can
now hear a ding-bang-whoosh signifying an e-mail from your manager, or a
bell-squawk-chirp to let you know your bank statement is available.
Local cached text. Audio example with glasses, sparcle, space2.Another example with glasses, laser, space3.
Frustration communication for your linux laptop, Modify the kernel to automatically reset your linux laptop when
shaken during a kernel panic. Implement a shake detection algorithm in the
kernel and user space to perform automatic shutdowns and restarts when certain
kinetic conditions are met. Place your computer on the leading edge of
cathartic interfaces. Local cached text.
Videos: On youtube.com and
video.google.com
Explore relationships among Web pages visually, The Graphviz program from AT&T Research and others is a fantastic tool for
automating the visualization of complicated link sets. This article shows how
to combine the Graphviz tool set with Web-page thumbnail generators to create
new ways of visualizing any Web page's link structures. You can use these
techniques and descriptions to refine your display logic, and create directed
and undirected Graphviz charts to enhance your understanding of organizational,
software, and other complex linked data sets. Local cached text.
Create custom data charting tools using Perl and GD, Create professional-looking charts for data visualization using Perl and GD.
Move beyond standard pie charts to incorporate annotations, indicators, and
layering for enhanced informational delivery. Local cached text.
Custom cartographics with CAIDA's plot-latlong, Using world and custom U.S. maps, Perl, GD, and the Cooperative Association for
Internet Data Analysis (CAIDA) plot-latlong tool, this article demonstrates how
to create your own effective data visualizations in the spirit of Google maps
and the U.S. national atlas. Local cached text.
Use Perl and a regular-expression generator to search for and display LDAP database records (part 1), Find out how to use Perl and a regular-expression generator to search
and display records from your Lightweight Directory Access Protocol (LDAP)
database using simple keyword-type searches. Search and process your LDAP data
without knowing precisely which field the data is in or how it is formatted.
Part 2 of this "LDAP search engines" series introduces scoring and metaphone
suggestions to the code. Local cached text.
IBM developerWorks podcast with Scott Laningham. (local copy of podcast)
Search structured LDAP data with a vector-space engine, Use Perl and a vector-space search engine to search and display records from
your Lightweight Directory Access Protocol (LDAP) database. Use inflected
letters and numbers to create a useful vector space from structured LDAP data.
Compensate for typographical and spelling errors automatically while showing the
most appropriate match for any query entered. Local cached text.
IBM developerWorks podcast with Scott Laningham. (local copy of podcast)
Make your 404 pages smarter with metaphone matching, Create your own 404 error-message handler to provide useful links and redirects
for the contents of your site. Use metaphone matching and a simple weighted
score file to make typographical, spelling, and bad-link redirect suggestions.
Customize the suggestions based solely on your Web site's content and preferred
redirection locations. Catch multiple errors in incoming URL requests and
process them for corrections in directory, script, and HTML page names. Local cached text.
Map places, people, and relationships inside a building, Google and MapQuest do a great job of creating maps of the outside world on the
fly. But what about our workspaces? This article shows how to define and map
places and people inside a building. Search, track, and plot individual
cubicles, rooms, employees, or assets. Graph the location of individuals or
groups of employees based on job function, or track unused office space visually.
Local cached text.
Precipitation proximity alerts using WSR-88D radar data, Traditional weather reports will give notice of vague forecasts and severe
weather alerts in your general area. The code and tools presented in this
article will allow you to create precise detection zones so you can receive a
page, SMS, or e-mail a few minutes before a precipitation event is likely to
occur at the monitored location. Use GD and Perl for image processing of the
NOAA WSR-88D radar data to create your own precipitation alerts for precise
areas. Choose your notification method and let users know when the rain will
begin and when it will clear. Local cached
text.
Take your ThinkPad out for a walk to create wireless site surveys, Use the accelerometer embedded in a ThinkPad to record your movements while
monitoring your network connectivity. Use custom algorithms to extract footstep
features from the recorded data, then automatically plot signal strengths on a
floor-plan map to determine the best areas of coverage. Local cached text.
Expand your text entry options with keystroke dynamics, Measure the total time of entry and verify the time between keystrokes to help
authenticate a user regardless of the data being entered. Require nonprintable
characters, such as backspace and break, in the password to enable new levels
of password obfuscation. Learn how to apply the open source tools xev and Perl
in keystroke dynamics to measure the more-subtle characteristics of human-computer interaction. Local cached text.
Create automated verbal conversation annotations, Use the open source Sphinx-4 speech-recognition package to capture letters and
numbers from spoken conversations in near real time to create notes. Employ a
custom Sphinx-4 dictionary file to extract likely matches to spoken letters and
numbers. Process the text for higher order values such as phone numbers and
acronyms, and create a meeting annotator through search-engine lookups and local
databases. Local cached text.
Add multitouch gesture support to a TouchPad-equipped laptop, published on IBM developerWorks. Implement swipe and pinch gestures for Linux applications by analyzing
tools and code needed to add some of this new gesture support on older
Linux-enabled hardware. Building on the output of the synclient program, the
Perl code presented here allows you to assign specific application functions
to "Three-Finger Swipe," as well as Open- and Close-Pinch gestures.
Local cached text.
Demonstration video at youtube.com Comments on digg. Writeup at hackszine and lwn.net.
Identify speakers with sndpeek, Use sndpeek and custom algorithms to match voices to a pre-recorded library.
Create applications to let you know who is speaking in teleconferences,
podcasts, and live media events. Build basic assistance programs to help the
hearing-impaired identify speakers in a bandwidth-limited context. Local cached text. Demonstration video at youtube.com
Identify and verify users based on how they type, Modify the GNOME Display Manager (GDM) to support user verification through
keystroke-dynamics processing. Create and store a one-way encrypted hash of
your keystroke patterns when entering your user name. Add code to GDM to read
current keystroke patterns and permit a user to log in when the characteristics are a match. Local cached text. Slashdot discussion. Writeup at hackszine
ThinkPad aerobics: Rotate and shake your laptop to control applications, Use synthetic X Window System events and embedded accelerometers to control
applications by the movement of a laptop computer. Translate gestures, such as
shaking, into mode-switching commands with detection algorithms to interact with
applications in new ways. Develop tools to help build the next generation of
interfaces that use accelerometers, such as applications for laptops and
iPhones. Local cached text. Demonstration video at youtube.com
Create time-availability maps with Perl and Google Earth, Time-availability maps provide a listing of who is most likely to be available for a certain hour in a certain location. Find out how to use Google Earth and a log of your communications to map and identify the time and place when
availabilities match. Local cached text. Featured in an IBM developerWorks podcast with Scott Laningham. (local copy of podcast)
Beef up the Find command in Firefox, The Find command in Firefox locates the user-specified text in the body of a
Web page. The command is an easy-to-use tool that works well enough for most
users most of the time. Sometimes, however, a more powerful Find-like tool
would make locating text easier. This article shows how to build a tool that
isolates relevant text in Web pages faster by detecting the presence and absence of nearby words. Local cached text.
Integrate encryption into Google Calendar with Firefox extensions, Provide basic encryption support for user data in one of the most popular
online calendar applications. Building on the incredible flexibility of Firefox
extensions and the Gnu Privacy Guard, this article shows you how to store only
encrypted event descriptions in Google's Calendar application, while displaying
a plain text version to anyone with the appropriate decryption keys.
Local cached text,
Slashdot Discussion
Visualizing time-dependent data with distortion portals, Create an SDL-enabled application that allows you to create distortion portals
in sequential image frames to explore the relationship of data sets through
time. This article demonstrates code and techniques to create "animated
distortion portals" in the data to provide time-dependent visualizations of
various parts of the image. Additionally, certain aspects of the code are
presented that allow for effective visualization on slower-computing platforms
without sacrificing usefulness.
Local cached text, Demonstration video at youtube.com
Write a Firefox extension to rotate images in online mapping applications, Most online mapping applications assume that the desired view is always north at the top of the image. This article presents tools and code that show how to replace the map image with an inverted copy, where south is at the top. Using a Firefox extension and the Imager Perl module, each tile that comprises the full image is extracted, rotated, and placed back in the image at the appropriate spot. cached text.
Create a continuous keystroke-dynamics monitor with Perl and xev, Keystroke dynamics is a relatively new field that enables identification of individuals through statistical analysis of their typing patterns. Previously published articles on developerWorks have shown how to integrate the concept of keystroke dynamics into your applications, as well as a real-world example of modifying Gnome Display Manager (GDM) to require a correct password and a "correctly typed" password. This article presents tools and code allowing you to move beyond a single application of keystroke dynamics, and monitor your entire X Window System environment continuously for characteristic patterns of the typist. Local cached text.
Creating altitude attribute-enhanced image overlay maps in Google Earth, Recent applications have greatly increased the ease of development and ubiquity
of 2-D maps. Tools like Microsoft® Live Search Maps and Google Maps offer a
wealth of tools for enhancing these single-plane maps, but often ignore
altitude as the third dimension of information. This article presents tools and
code to allow you to extract height information based on pixel colors, and apply
that height information across the mapping context. The end result is a third
dimension of data, showing more information in the same space and opening up new
methods of visualization for your map users. Local cached text.
Improve focus tracking indicators across multiple monitors, Unlike traditional single-screen setups, multi-screen display systems require
special consideration for user interfaces (UIs). This article presents tools
and code designed to address the acquisition and change of input focus across
multiple displays. By enhancing existing X Window System focus information
using Ghosd displays and the Synergy debug-level output, multi-screen users can
know precisely where their input focus is even on displays 4200x3150 pixels and
larger. Local cached text.
Shut down idle computers on your network automatically, recent pushes for
"green" technology focus mostly on talk, with little action for the typical home- or small-office environment. Many users leave their systems online continuously through laziness or ignorance, resulting in a significant source of power consumption, as
well as an additional vector for malware propagation. The tools and code presented here allow you to find those inactive systems and securely start the shutdown process. With a Linux® box monitoring your network connections using Argus and some custo Perl code, any system that supports Perl can be set to be remotely shut down when a centralized set of inactivity rules are m
et. Local cached text.
Reduce your PC's power consumption through smart activity monitors, Monitor application usage, system attributes, and user activity to more effectively use the power-management systems of your laptop or desktop computer. This article provides tools and code to build on existing power-saving measures by monitoring your application-usage patterns. Use the techniques presented here to change your power settings based on the application in focus, user activity, and general system performance. Local cached text. IBM developerWorks podcast with Scott Laningham (Local copy of podcast)
Expand your user-authentication options with mouse dynamics, Use Perl, cnee, and custom algorithms to measure how specific users move the mouse and click buttons. In this article, we discuss how mouse-click hold times, or a combination of keyboard and mouse activity can enable new levels of access-requirements obfuscation. Learn how to apply the open source tools cnee and Perl in applications to measure the characteristic attributes of how users manipulate the mouse. Local cached text.
How to ungrab Firefox hotkeys from Flash players, Flash players and o
ther embedded applications in Firefox require their own hooks for keyboard and mouse input
. For years, Flash has grabbed Firefox keypresses, which stops people from using the keybo
ard for navigation, creating new tabs, or even exiting the Flash focus. Learn how to creat
e a Perl program that communicates with a Firefox extension and cnee to restore your keybo
ard functionality, Local cached text.
Social-networking
open source visualization aids, Social-networking data
analysis can help you understand content, connections, and
opportunities for your personal and business associations.
This article presents tools and code to extract key components
of your social network using the Twitter API to chart,
geolocate, and visualize your social-networking data. Local
cached text. IBM
developerWorks Podcast
with Scott Laningham. Local copy of Podcast.