All Posts in the ‘Made by isnoop’ Category

WiiSaber: A Wii, Mac, and Lightsaber Sandwich

December 7th, 2006 | By Ian in Apple, Development, Made by isnoop, Misc, WiiSaber | 196 Comments »

You might recall an application I wrote earlier this year called MacSaber. If so, my new Cocoa application should be quite familiar.

Hiroaky just released a handy bit of code that adapts the Nintendo Wii’s “WiiMote” wireless controllers for use on the Mac. I have taken his idea and merged it with the magic that made MacSaber to bring you a new breed of audio Lightsaber simulator.

This application looks and works just like MacSaber, but the input device is the WiiMote instead of your Apple laptop. I plan on adding more features including more visual response and multi-controller capabilities soon, so check back again later.

Download WiiSaber 1.0 Beta 1 Here

MacSaber 1.1: Attack of the Backlight

June 22nd, 2006 | By Ian in Apple, Development, MacSaber, Made by isnoop, Misc | 132 Comments »

MacSaber 1.1 has been released, now with expanded 17″ PowerBook support and keyboard backlight effects. I invite you to take your very expensive laptop into a dark room and swing it around* for improved dramatic effect.

Download MacSaber 1.1.

*Don’t break your laptop, okay? If you do, don’t blame me.

MacSaber 1.0 Released

May 26th, 2006 | By Ian in Apple, Development, MacSaber, Made by isnoop | 129 Comments »

UPDATE: Version 1.1 is now available. It includes keyboard backlight effects.

MacSaber 1.0 Final has been released. This new version includes support for iBooks and PowerBooks equipped with SMS. It also includes a “Check for updates” menu item and debug output if you are having problems (the report button is not yet available).

Compatibility notes:
iBook: SMS only exists on iBooks built after July 26, 2005. These iBooks are either 1.33GHz or 1.42GHz. All 1.42GHz iBooks have SMS. Only 1.33 GHz iBooks with a scrolling trackpad, 512MB RAM (stock), and 40GB HDD (stock) have SMS.

PowerBook: SMS only exists on PowerBooks built after January 31, 2005. These PowerBooks are either 1.5GHz or 1.67GHz. All 1.67GHz PowerBooks have SMS. All 1.5GHz PowerBooks without backlit keyboard have SMS. 1.5GHz PowerBooks with both backlit keyboard and the 8X superdrive have SMS.

Download MacSaber 1.0 here

MacSaber Beta4: iBook and PowerBook Test

May 24th, 2006 | By Ian in Apple, Development, MacSaber, Made by isnoop | 31 Comments »

Thank you to those who have provided their feedback. I have released MacSaber 1.0 with support for iBook and PowerBook machines. Please read here for more information.

I sure wish I had a PowerBook and an iBook right now. In lieu of that, I am calling on you to test for me.

Beta4 of MacSaber is available below. Please read this whole post before downloading. This is a limited test release that *should* work on iBook and PowerBook model laptops.

To report your results:
1) Please make sure you are running “Version 1.0 BETA4i”
2) Include the second value for “tilt” in your results. This should be either “t1″ or “t3″ if you are running an iBook or PowerBook.
3) Post your results here.

This version isn’t for MacBook users. Please stick with the previous version for now.

iBook Note: Sudden Motion Sensor (SMS) technology only exists on iBooks built after July 26, 2005. These iBooks are either 1.33GHz or 1.42GHz. All 1.42GHz iBooks have SMS. Only 1.33 GHz iBooks with a scrolling trackpad, 512MB RAM (stock), and 40GB HDD (stock) have SMS.

PowerBook Note: Sudden Motion Sensor (SMS) technology only exists on PowerBooks built after January 31, 2005. These PowerBooks are either 1.5GHz or 1.67GHz. All 1.67GHz PowerBooks have SMS. All 1.5GHz PowerBooks without backlit keyboard have SMS. 1.5GHz PowerBooks with both backlit keyboard and the 8X superdrive have SMS.

If your iBook or PowerBook does not meet the specs above, it is not SMS equipped. Otherwise, download MacSaber Beta4i here.

Thank you for your help!

MacSaber: Turn Your Mac Into A Jedi Weapon

May 20th, 2006 | By Ian in Apple, Development, MacSaber, Made by isnoop | 499 Comments »

UPDATE: Version 1.1 is now available.

Now that you’ve spent entirely too much money on your fancy sudden motion sensor equipped Mac laptop, I predict you’ll soon be swinging it around like a loon.

Introducing MacSaber. Using your Mac’s sudden motion sensor, this software turns your computer into a Jedi weapon almost worthy of taking on the real thing by making authentic lightsaber sound effects. It senses speed for the lightsaber movement sounds and acceleration for different levels of striking sounds.

This beta is not yet compatible with the motion sensors in older Mac laptops, but I understand you can move the window arond to get the idea.

Update: Thanks go to Sak from Lot23 for the fancy icon!

Download the latest version of MacSaber

Don’t Click My Ads (Dot Com)

April 29th, 2006 | By Ian in Google, Made by isnoop, PHP, Related sites | 9 Comments »

After last month’s Google AdWords Policy Reminder, I’ve decided to make it perfectly clear that you are by no means authorized to click my ads. You should avoid them at all costs, even to your own peril.

In case this isn’t clear, I have repurposed my magnetic words script to serve as entertainment on a new site dedicated to reminding you that you should not click my ads. Check it out:

http://dontclickmyads.com

AdBrite vs AdSense

April 7th, 2006 | By Ian in Google, Made by isnoop | 34 Comments »

If you’re a website owner, you might be wondering how to make the biggest buck for your bang online. Selling text ads is a proven technique of making money from a site. Two of the most popular ad-serving services are AdBrite and Google’s AdSense.

I still get quite a bit of traffic to the Gmail spooler, so I decided to split test the two ad services. Each was randomly displayed with the a 50% chance of showing up. I reformatted both services to look similar. Here are my results (click for un-squished version):

First, you’ll notice that Google’s AdSense got less traffic overall. My guess is that is because more people have blocked the AdSense script. Despite this, Google took in more clicks overall. I assume this is because people trust the “Ads by Google” text and the ads were more relevant.

The real surprise comes with the earnings. I had AdBrite ads running on the page during the height of the spooler’s popularity, and all I can do is wonder if that earnings differential would have held up under much greater traffic.

The Megapus

April 2nd, 2006 | By Ian in Hobbies, Made by isnoop | 12 Comments »


I worked at a company that made accessories for telecommunications equipment. Most of the telco equipment still uses deprecated RS-232 serial ports, and so all of their products do too.

At one point, I was tasked with making a device that could send an identical serial port data stream to several devices at once. Shortly thereafter, the Megapus was born.

This crazy device took 1 serial port data stream and a 12VAC power supply and split it out into twenty devices at once.

We considered calling it the Icosapus considering the 20 outputs, but I actually crated the device to be infinitely scalable simply by adding more I/O cards with a power supply every fifth one.

The PCBs (printed circuit boards) I used happened to be unpopulated parts for other products that repurposed nicely after shuffing a few components around. Hence the two circuit boards for each layer of four outputs.

Protect Your Bandwidth From Leeches

March 26th, 2006 | By Ian in Made by isnoop, PHP, Site Features | No Comments »

For those with concerns about limited bandwidth and images that others might frequently link to, you will benefit from my anti-leech script generator.

This easy to use page will quickly generate a mod_rewrite script that you store in an .htaccess file in the root of your website or the directory you wish to protect. I’ve added images.google.com to the allowed domains by default so you don’t block innocent searchers.

Convert Your Website to Subversion

March 23rd, 2006 | By Ian in Development, Made by isnoop | 18 Comments »


This guide is a simple step-by-step guide to help you convert your currently live website to a handy-dandy revision-control system called Subversion. It also contains information on how to create a discrete development environment where you can modify your site and test your changes without affecting live traffic.

If you:
…want a place to beta test your code
…want to keep a revision history of your code
…have every modified or deleted a file on your website and wished you hadn’t done that
…realize that CVS sucks cat ass
You should try subversion!

Assumptions:
•You are hosted on a *nix machine*.
•You have SVN installed or can install it.
•You have SSH access to your site.
•Your web host allows for the creation of subdomains (if you want a dev environment).
•Your HTTP document root is not the root of your home directory. For example, when you log in to SSH, you see a list of system directories but one of them contains all of your web content.

Notes:
•The command syntaxes that I provide are those used by FreeBSD. If you’re savvy on another system and you notice a syntax difference, please speak up.
•Throughout this text, I will refer to your web documents directory’s absolute path as docroot, the repository as repos, and your home path (the full path from the drive root to your home directory) as homepath.
•The paths described above do not contain trailing slashes. Do not add a trailing slash to paths unless specifically indicated.
•Always always always back up your data, especially before attempting something like this!
Subversion official documentation

Preparation:

You backed up, right?

1) First, start by running svn –version to verify you have Subversion installed. If not, you or your sysadmin should install it for you!

2) In your web root (~), create a directory named svn_import.

3) Within svn_import, create the following directories: trunk, branches, and tags. **

4) As a security precaution, add the following line to a file called .htaccess in your document root: RewriteRule (^|/)\.svn – [F]

5a) If you wish to add your entire site to revision control, use the command cp -R -p -v docroot/* ~/svn_import/trunk/ to copy your entire site into the import directory.
Note: The -p tag on the copy command is important, as some files on your site may have nonstandard permissions that you wish to preserve.

5b) If you only wish to add parts of your site, copy only those files and directories into ~/svn_import/trunk/

Creating and importing:

6) Create the repository: svnadmin create ~/.svnrepos

7) Import your site: svn import ~/svn_import file:///homepath/.svnrepos -m “Initial import”
Note: Yes, file:/// is correct. Make sure you’re using the full system path to your home directory for homepath

Creating your development area:
(optional, but highly recommended)

8) Using whatever means you use to manage your web site, create a subdomain for your web site called dev.yourdomain.com.

9) HTTP password protect your new subdomain, so people don’t go poking around your work in progress. After all, you’re creating this dev area for a little privacy while you’re working.

10) Check out the repository into the beta site document root: svn checkout file:///homepath/.svnrepos/trunk dev_docroot
When this process completes, you should see the message At revision 1.

11) Look over your new dev subdomain. All of your pages *should* work on this new site, but if you hard-coded any full system paths, these ought to be changed to relative or dynamic.

Converting your live site to SVN

12) Create a temporary checkout directory: mkdir ~/svn_stage

13) Check out the repository to the temp dir: svn checkout file:///homepath/.svnrepos/trunk ~/svn_stage

14) If you got this far without backing up your site content, you should do so right now and then kick yourself in the ass for not paying attention to important instructions.

15) Move your repository onto your live content: mv ~/svn_stage/* docroot/
This previous step may seem odd, but the SVN repository you just moved onto the live site contains lots of .svn directories that are required to make your site act like a repository. It also helps ensure the shift doesn’t interrupt your site traffic, and if you opted for #5b, it doesn’t harm the files you didn’t want to add into SVN but still want to keep.

16) Test your fancy new revision control-enhanced web site!

Post-Conversion

17) Remove ~/svn_import

18) Remove ~/svn_stage

19) Edit the file ~/.subversion/config and uncomment the global-ignores line. You may wish to add space-delimited files that you want SVN to ignore. If you chose to follow step 5b, you should add the files and directories you didn’t want to import here.

Usage
•Now that your site is under this wonderful new revision control system, you can FTP all of your file changes into the dev_docroot path and test them on your dev subdomain. Whenever you make a change you want to store to SVN, you should commit your changes with the following command:
svn commit dev_docroot
•If you don’t provide during a commit using the -m flag, you will be prompted for notes about the commit. Add a brief description of the changes you made so you can revisit that version later on.
•Once you have checked in your fancy changes, you can check them out in your changes by running the following: svn update docroot
•Both your regular and beta document root are now repositories. This way, you can technically make and commit changes from either location. Whether or not you choose to do that is up to you, but the entire point of a dev area is that you don’t ever program in the live path again. It is my suggestion that you don’t directly modify SVN-controlled files in your live path.
•Now might be a good time to remind you to RTFM. This manual is well written and contains gobs of good information on how to use SVN.

If you’re used to CVS
First, congrats. You’re on the road to saner and happier revision control.
Next, you should read this.
Perhaps the biggest shift that you should know about is that revisions in SVN are commit-based, not file based. It is not accurate to say “file X is version 56.” You should say “file X was modified in version 43.” The key difference here is that any number of files and directories can be changed in any revision.

As an interesting aside to all of this, I like to keep a repository of every binary I download and install (applications and drivers). So I don’t have to keep the entire collection on my laptop or desktop, I have a media server that is also running SVN for Windows. My laptop and desktop use the SVN server to store all of the binaries I’ve downloaded. I can delete all but the most recent versions of the apps so they don’t appear on my other computers, but I’ll always have a backup copy of old versions within SVN.

* This document was written based on FreeBSD commands. If you are running RedHat or some other linux, the command flags may differ slightly. Refer to your help documentation to verify command flag differences.

**Click here for an explanation of the trunk, branches, and tags directories. If you don’t care about branching or tagging, you really don’t need to worry your little head about this.