Monthly Archives: May 2009

TypingWeb Offers Free Typing Lessons [Keyboards]

Whether you’re an able but slow touch typist, or you never graduated beyond hunting and pecking, TypingWeb is a free and easy to use online typing tutor that will help you hone your keyboard chops.

There is no registration necessary, you can dive right in and try out the basic lessons. Registering for an account lets you save your progress and other statistics. Along with a clean and easy to use interface, what sets TypingWeb apart from other free typing tutors is the ability to change the language and keyboard layout. Want to learn Dvorak without tearing your current keyboard apart? Learning to type on a keyboard other than an English QWERTY layout? Swap out the keyboard in the settings section.

TypingWeb is structured to take you from the home row all the way to efficiently using infrequent keys and key combination. There are also actually enjoyable typing games, unlike the lame typing games you may recall from grade school typing tutors. TypingWeb is free, but if you want to get rid of the ads, you can pay a one-time $9.99 fee to turn TypingWeb ad-free. Thanks Kratos!





Digest authentication with Apache

This article is in continuation with previous and talks about setting up digest authentication with Apache.

There are few changes compared to the steps for Basic authentication.

1. Generating the password file for digest auth.

htdigest -c digest.txt secret prash

digest.txt is the password file, secret – the realm and prash is the username.

2. Create htaccess.acl under c:wampwwwdigest-auth with following data

AuthUserFile C:wampbinapacheApache2.2.11bindigest.txt
AuthName "Protected by Digest auth"
AuthType Digest
AuthDigestProvider file

<Limit GET POST>
require valid-user
</Limit>

‘AuthDigestProvider file’ is an additional property that needs to be mentioned for proper working of digest authentication.

3. And, last but not the least. Enable auth_digest_module by un-commenting the following line if its already commented in httpd.conf.

LoadModule auth_digest_module modules/mod_auth_digest.so

Reference : httpd.apache.org/docs/2.2/mod/mod_auth_digest.html

Setting up HTTP Basic authentication with Apache

Last week, I had a chance to setup our test Apache server for Basic and Digest authentication. The setup was required to verify few of the HTTP authentication related test cases.

I’m blogging it here so that I’ll not forget, if I need it again :)

I had WAMP Server v2.0  which included Apache v2.2.11 web server.

Setting up Basic authentication was straight forward.

1. Update http.conf by adding :

AccessFileName htaccess.acl .htaccess

An htaccess file can be used to modify the Apache configuration on a per-directory basis.

On some operating systems ‘htaccess.acl’ is not required. Ex, on Linux, you can just mention it as .htaccess. This is because, on Linux you can create a file with name .htaccess.

2. Add “Directory” tag into http.conf as shown below :

<Directory "c:/wamp/www/basic-auth/">
    Options None
    AllowOverride all
    Order Deny,Allow
</Directory>

c:/wamp/www/basic-auth/ is the folder which needs to be secured by the authentication scheme which we are trying to impose.

3. Next step is to create password file.

cd C:wampbinapacheApache2.2.11bin
htpasswd -c pwd.txt prash

This prompts for the password for the username – ‘prash’. After supplying the password we will be ready with the password file – ‘pwd.txt’ under ‘C:wampbinapacheApache2.2.11bin’.

4. Create the htaccess file – ‘htaccess.acl’ file with the following data.

AuthUserFile C:wampbinapacheApache2.2.11binpwd.txt
AuthName "Protected"
AuthType Basic

<Limit GET POST>
require valid-user
</Limit>

This specifies which password file need to be considered for the authentication – ‘C:/wamp/bin/apache/Apache2.2.11/bin/pwd.txt’ also the type of authentication scheme – Basic.

Place this file under the folder ‘c:/wamp/www/basic-auth/’ along with other live data and restart the server.

Now, try accessing the folder localhost/basic-auth. This should prompt for username and password.

Reference : httpd.apache.org/docs/2.2/mod/mod_auth_basic.html

Build a $14 Video Camera Stabilizer [DIY]

Professional video stabilizers are prohibitively expensive. You won’t get $10,000 worth of stabilization out of a $14 DIY model, but you will get radically smoother video for a tiny fraction of the price.

How does the DIY model provide smooth video? Instead of the complex arrangement of balancing mechanisms, resistance bands, and springs, the DIY stabilizer relies on a simpler system. Your arms and a counter weight at the bottom of the stabilizer work together to minimize the movement. Camera shake is radically reduced when the weight of the camera is offset by a equal or slightly heavier weight at the bottom. Sound about right for your needs? You’ll need some pipe, a disc weight, some hand tools and a power drill to put this one together.

For photos and a step by step build guide, check out the PDF below. If you need to stabilize video in a car, check out how to make a dashboard stabilizer out of a sponge.





Build Your Own Outdoor Movie Theater [Weekend Project]

There’s a certain allure to seeing a movie outside on a nice summer night, whether it’s the nostalgia of drive-in movies or seasonal ambience. Recreate the experience with your own outdoor theater.

Dave Banks, writing for Wired’s Geek Dad column, saw an outdoor theater system advertised in a catalog and immediately started dreaming of recreating the magic of those outdoor movie experiences. The price for the small projector, screen, and two speakers was a whopping $3,500. He shopped around online, priced out components individually, but ended up still priced over $2,000 to buy speakers, a comparable projector, and a collapsible screen. He wouldn’t be worth his Geek Dad moniker if he didn’t follow up his sticker shock with some creative DIY magic. The first order of business was to scrounge as many parts as he could:

My company had a projector that – with a little work – could be repurposed for an outdoor event (and it had nearly 1,000 more lumens than the piddly projector in the catalog). The speakers could be borrowed from an audiophile friend and I dusted off an old receiver to drive the sound. Finally, the dvd player was disconnected from the kitchen tv to contribute to the cause.

It wouldn’t be an outdoor theater without an enormous screen however. The cheapest commercial screen at the size he wanted was over a grand. With some creative use of pvc piping, buckets, rope and cement, he built his own, shown in the picture above. The most important part, the screen material, only cost him $25. The total cost for the materials was $123 with an additional $125 spent on getting grommets and reinforcing stitches put in by a local awning company. Dave notes in hindsight that if he hadn’t been racing towards a memorial day unveiling, he would have done the grommet and stitch work himself and cut the cost of the screen in half. For more pictures of the build and some tips and tricks he learned along the way, check out full article below.





Turn a Five Gallon Bucket into a Rust Removal Tank [Weekend Project]

Rust removal is an enormous hassle, normally involving lots of elbow grease, steel wool, and sweat. Build your own electrolytic anti-rust tank out of a five gallon bucket instead and you’ll clobber your oxidized iron with science

This project relies on a few simple components—a five gallon bucket, some pieces of rebar or other narrow steel, a trickle battery charger, and some wire—and a washing soda/water solution to create an energized solution that's really tough on rust. The simple summary of how it works: you clip the negative charging lead to the item to be cleaned, the positive to the rebar, and then hit the juice and watch as the combination of electricity and washing-soda-laced water channel the rust right off your tool and towards the rebar anode.

Want to know the science behind how this Frankenstein cleaning tools works? Read through this Wikipedia entry about electrolysis. If, on the other hand, you want to dive right in and restore some rusty tools, check out the Instructables tutorial below for more information, appropriate warnings, and lots of pictures.





The Clean Glass Firefox Customization [Downloads]

Windows only: After we wrote about the All-Glass Firefox theme, reader bc//G_A wrote in with an even more impressive customization that enables the Aero Glass effect across almost every UI element.

Enabling the complete glass look requires more than a few steps—you'll need to install the Glasser extension, the Stylish extension, a number of user styles, and another extension to fix up the font colors. All of the instructions for setting up the glass theme can be found in the DeviantART guide, but the glass menus in the screenshot are thanks to the userstyles.org link sent in by reader Scott. Readers should note that the glass menus are a little buggy, and the overall style hides a lot of UI elements you might be used to, so while it’s not for everybody it’s an interesting customization worth a look for those serious about tweaking their browser.

You’ll need to be running the latest beta of Firefox under Windows 7 or Vista to be able to use the glass menus, but you can install an older version of Glasser and use the rest of the glass effects. For more, check out All-Glass Firefox, or take a look at the more productive Aero Geek customization.





WindowTabs Groups Program Windows into Chrome-Like Tabs [Downloads]

Windows: You’ve got a web page, a file folder, and a chat window open, and they’re all about the same project. WindowTabs, a free-to-try utility, can group together all those app windows with top-most, Google-Chrome-like tabs.

The system tray utility, which used about 11MB of memory to manage five open windows on my system, only does a few things, but it does them fairly smoothly. It adds a tab to the top of your Windows, either on the top-left corner when a window is sized, or as a drop-down, centered tab when maximized. Grab that tab and place it next to another window tab, and the two windows will group, no matter what programs they are. You can drag tabs out of the group again to remove them, and use a familiar Control+Tab keyboard shortcut to switch between open windows in each tab group.

The free trial of WindowTabs doesn’t have a time expiration on it, but does limit you to three tabs per group. The fully-unlocked application goes for $19. That’s pretty limiting in some ways, but WindowTabs lets you pick and choose which applications it allows tabbing for, either by an inclusive or exclusive list of program executable names. So if you already use Google Chrome, or don’t think you want email windows stacked, you can add “chrome” and “outlook” to your exclude list. Alternately, you can use that three-tab limit only for applications where it would really help, like folder views and non-tabbed chat windows.

Here’s what it looks like in action:

WindowTabs is a free download for, technically, XP and Vista systems, but it seemed to run fine on Windows 7 as well. Thanks Clem!





WebNotes Highlights, Sticky-Notes, and Organizes Web Research [Research]

WebNotes, a research tool developed by, and for, serious researchers, allows anyone to highlight and add sticky notes to web pages and have those notes instantly added to a web-based research file. For anyone flying through HTML pages like so much paper, it could be really handy.

At first glance, long-time Firefox users might recognize certain similarities to Scrapbook, an award-winning Firefox extension previously featured here. The main competitive advantages WebNotes has against its predecessor is that it syncs everything to an online account rather than a local database, offers an easily exportable “report” of all your highlights and notes, and, in the paid “Pro” and “Group” solutions, offers annotation of PDFs that are uploaded and converted through WebNotes’ site. The main difference, which is really a user preference, is that WebNotes operates through a (hide-able, optional) toolbar or a bookmarklet that works on all browsers, while Scrapbook, a dedicated Firefox project, pops out from a sidebar.

Signing up at WebNotes nets any new user a 14-day Pro account trial, which includes the PDF annotation powers, so college students working on a big project (or, more likely, working on one when they return this fall) should keep that little freebie offering in mind. WebNotes is free to use with a sign-up.





Images and Caching

If you are working with a large number of images in an iPhone application, read on, chances are I can save you some trouble when it comes to memory management. Let me provide some background information…

I’ve been working on an application which has images divided into several sub-directories:

/imageSet01/thumbnails/pic01.png
/imageSet01/thumbnails/pic02.png

/imageSet10/thumbnails/pic01.png
/imageSet10/thumbnails/pic02.png

In addition, for each set of thumnails there is also an image that is viewable fullscreen, this image can also be saved to the camera roll if the user opts to do so.

/imageSet10/wallpaper/pic01.png
/imageSet10/wallpaper/pic02.png

/imageSet10/wallpaper/pic01.png
/imageSet10/wallpaper/pic02.png

All told, there are more 12 images sets, with up to 70 images per set. In addition, I’ve integrated a coverflow viewer that allows users to view a series of thumnails images by swiping left/right. To give you an idea of the space allocated for the coverflow, each image has a texture allocated that consumes 256K. With 70 images, I’m pushing 17MB. That does not include allocating each UIImage resource (from a file) to be shown on the texture.

With all that going for me, when it came to loading images for backgrounds, creating views, data structures, etc, you can see why it was important to keep a tight reign on allocation/releasing of objects.

One concept that wasn’t apparent up front, and the primary reason for this post, is that your choice of how you allocate UIImage can make a significant impact on your memory usage. What follows is a typical line of code, found in many examples and applications, for allocating images:

UIImageView *wallpaper = [[UIImageView alloc]    initWithImage:[UIImage imageNamed:@"/imageSet02/wallpaper/pic02.png"]];

The good news is, the iPhone will cache this image, so if you make this same request again, the image will be loaded from an internal cache versus loading from a resource. Bad news is, the iPhone will cache this image. In my application, this subtle caching of images for the coverflow as well as the fullscreen image preview, led to a significant problem, ultimately causing the application to crash.

Here’s another means to allocate an image and avoid the system caching:

UIImageView *wallpaper = [[UIImageView alloc]   initWithImage:[UIImage imageWithContentsOfFile:@"/imageSet02/wallpaper/pic02.png"]];

So, with that long intro it really comes down to choosing between imageWithContentsOfFile and imageNamed, depending on your whether or not you prefer to have images cached. Now mind you, all of this is documented in the API, which is the segue to the second reason for this post – read the documentation closely! Finally, if you find a code example that looks to fit the bill for your application, again, consult the docs before simply copying/pasting.

WP Like Button Plugin by Free WordPress Templates