blog

[ 06:13 PM on December 31, 2008 ]

thelorax.jpgCheck out The Lorax as told by meta-refreshes or create your own.

I did some marvelous detective work today. When I got back from a meeting around 2pm I noticed my white shag rub was pushed to the side, my window was open, and my bathroom floor was surprisingly clean. Now, I had had my window open last night, but was sure to close it, but I was rushing to leave, so I thought I could have left it open. The placement of the rug could've also been due to rushing, but what about the bathroom floor. And, oh yeah, I left out that the hot water wasn't working this morning; later finding out due to a blown pump in the basement. Anyway, I figured that when checking the hot water in the faucet, after the shower's wasn't working, I had left it on, because no water was flowing. Then once it was flowing it flooded my bathroom and the super had come in and cleaned it up; and I was right! I wasn't right about it flooding two other apartments' bathrooms, though. Sorry 3B and 3C :(.

[ 11:26 AM on December 31, 2008 ]

im-wayne.png

[ 06:22 AM on December 31, 2008 ]

I added little map links to the floto entries that will slide down a map, though the way the page is laid out, the map that slides out is a little too thin. So, now they look like this...

floto-slide1.png
and click the map link does this...

floto-slide2.png
It's supposed to be 'bitterly' cold tonight for new year's... good.

[ 11:42 AM on December 30, 2008 ]

Just got back from a nice run, before that made a English/French (and vice versa) flashcard translation program for java-enabled phones in the J2ME MIDP profile, the source is here. This was promised to a friend. I think a very, very cool system would be one that abstracted over j2me phones, google phones, symbian phones, and iphones, so there was one common language. It would also be very, very cool to be taller, and I'm afraid I have a better chance of the latter.

[ 05:06 PM on December 29, 2008 ]

First, if you've tried to email me in the past three or four days, my server has been down. Apparently the folks at my hosting company were in a sultry mood and took the hamsters off the wheels for a couple wild, crazed nights; so if you need to mail to, do so at my gmail account jeffpalm.

Next, here's my first stab at adding geo-tagging information to floto, though I haven't committed it yet to SVN. I was going to write an iphone app to send them along, but (1) realized that it already embedded EXIF meta-information into the image, and (2) despite having horns and a pointy tail, from what I can gather, the iphone doesn't give you access to the camera if you play by the rules.
geo-floto.png

Anyway, so I made a little light geo-tagging wrapper in PHP that will do just-in-time geotagging for the time being, and then spit out some Javascript to go along with some more Javascript that creates the map. All in all it's pretty straight forward. The file displaying the map looks something like this:
<&php
 define('MAP_KEY','ABQIAAAAs0zM...
 define('SCALE',12);
 include 'map-content.php';
&>
Ugh... still lots of problems with it.

[ 12:10 PM on December 29, 2008 ]

An interesting spam filter google has...
google-spam.png

[ 08:14 AM on December 29, 2008 ]

As noted in a previous post last night, I added normal HTTP post submission to floto in hopes of adding other clients, like the devil phone; so, here is the first submission from my isight taken using a desktop java client I added


source here as a new part of the project. I've re-organized it a little to separate the upload and cron stuff from the java stuff. The way this works is that your start it up, and are prompted with a
count down splash screen.
floto-upload-1.png

Next, you get to preview the image and decide whether to upload it or not.

floto-upload-2.png


Finally, you choose the fields to send, the URL if the path to the new form.php script.
floto-upload-3.png

This is more like the way floto started, because I would do HTTP posts from a J2ME app on a crappy Nokia phone, then once I migrated to the phone with horns, I decided to upload the photo as a mime attachment in an email message, and sending the meta data in the subject and body. So this is really more like the first version, except it's not on a phone. Granted I'll probably never use it again, because I hate taking pictures of myself, but it was fun little project while drinking coffee and listening to the Breaking News in the background.

[ 06:19 AM on December 29, 2008 ]

1000awfulthings started -- it's awful (ha ha), no seriously, it sucks.

[ 05:18 PM on December 28, 2008 ]

Hadn't touched the floto source in a while, just did, revisited the normal post submission that I used originally so I can upload geo information from my ipiece-of-crap (IPOC) and possibly do some other things with isights and other cameras. It's way too warm. Also, they were having old time subways running today, which was cool, but what wasn't is that they didn't actually say the line that was running -- instead of an F or V, there was an S for Special; (This of course brings up a joke that I'll ignore for the moment). Anyway, there were definitely some perks to the old timers...
  1. They had fans!
  2. The seats were really padded and comfortable
  3. The the lights kept on going off for some reason intermittently, at which time I could do inappropriate things to the other passengers without them knowing who done it
Also was working on a site inspired by my crappy hosting company after emails kept getting lost and bounced and a ubiquitous file transfer and syncing thing for the IPOC and other devices... I probably should have spent much of this time cleaning my bathroom.

[ 09:47 PM on December 26, 2008 ]

I think google can suggest something better near Rikers Island than "pizza".
rikers-island.png

[ 08:18 AM on December 25, 2008 ]

I just received this breaking news google alert

google-alert-jeffrey-palm.png
I wonder if there is a google alert setting so that you aren't sent 'alerts' for events occurring over a year ago? I guess these things are powered by CNN now...

[ 11:57 AM on December 24, 2008 ]

Thank heavens I'm not traveling today, but for those who are, happy standing in line...these are some numbers from flightstats.com showing delays

MDW EWR ORD JFK IAH SFO CLE DTW MCI CVG MSP MEM XYZ
MDW 132 132 132 132 132
EWR 175 175 175 175 175 175 175 175 175 175
ORD 102 214 214 102 102 214 214 102 214 102 102
JFK 111 111 111 111 111 111 111 111 111
IAH
SFO 80 80 80 80 80 80 80 80 80 80 80

I thought there would be some variance in the delay for different airport pairs, but not much. The vertical codes shows the departing airport; the horizontal show the arriving airport. For example, the top/left most cell reads "planes leaving Midway (MDW) arriving in Newark (NWR) are delayed 132 minutes." or "passengers coming from the Chicago area to Jersey are going to be really fucking pissed off when they get off the plane, but at least happy they didn't fly out of O'Hare (ORD)."

[ 07:52 AM on December 24, 2008 ]

yam-solo.jpg

YES!

[ 07:23 AM on December 23, 2008 ]

I just made my first purchase of some goods from shopvale.com with my ibrick. Granted it cost $0.01, because I'm still the webtater there, still, it's progress.
Done.

( and yes, the times are off, because I took some screen shots yesterday when I started, then some this morning )

[ 03:56 PM on December 22, 2008 ]

abortion-alertnatives.pngI saw this poster on the train today, and while I see that counseling could be an alternative, I'm still trying to wrap my brain around how pregnancy tests and ultrasounds could be? I'll leave it at that.

It's not even 4pm and already getting dark, although it never was really all that light out today. Today went by fast so far, and I haven't really done all that much. I've eaten some popcorn, then some sushi, then an apple. That just about sums it up. If you've read this far, you should applaud yourself for a grand act of patience.

[ 05:37 AM on December 22, 2008 ]

Going for 1 when down by 2? So, last night the Giants were down by 2, 21-19, Panthers, and decided to go for 1? WTF! But as it turns out, that was a great decision, because having missed the conversion, they would've be down 28-19 a bit later in the game. And, afterall they ended up winning 34-28...so, yeah, yet another reason I'm not a head coach in the NFL.

It's nice a chilly in New York today, a great 16, and it's about time.

Lastly, Hasbro has some new tater offers, and although they have nothing on Darth Tater or Spudtrooper, they're alright. So without further adieu, "Spuda Feet" and "Indiana Jones Taters of the Lost Ark, Idaho Jones Spud"...
spuda-fett.pngindy-spud.png

[ 03:14 PM on December 21, 2008 ]

My mind's been wandering to various places today, and I've been doing various things. Taking a shower hasn't been one of those things yet, but it will. Anyway, I don't think there's a way to subscribe to all of your flickr contacts photo feeds, and I wanted to, flickr_rss will do it -- just pass in your username, e.g.
% flickrss spudtrooper
The feeds will open in firefox, then you can subscribe with whaterever feed reader firefox defaults to for you. Of course this assumes you're running firefox on a mac (see the faq if you want something more robust).

I've also been doing some meaningful iphone stuff, then stopped and began to wander doing some less-than-meaningful iphone stuff. This came from wanting to play around with an app for a non-itunes digital music store; I chose the lime wire store. I'm pretty sure I figured out a way to make a transaction and download over the phone. Either way, this is what it looks like so far from today...
ilws-starting-out-small.pngilws-album-list-small.pngilws-searching-for-album-data-small.pngilws-album-song-list-small.png
Eek! I forgot the song price, oh well, I'm gonna attend to the first thing I mentioned I have not yet done today.

[ 12:17 PM on December 20, 2008 ]

A friend wanted to know their google-rank for certain search terms, and this ruby script came in handy. To use it pass in a domain and search terms, like
% ./firstgoogle potato.com spuds
And it will return the rank and search url for the first hit on potato.com that shows up for the query spuds.

[ 09:28 AM on December 20, 2008 ]

inspectorgadget is a PHP mail system that lets you send and track self-destructing messages.

[ 12:45 AM on December 20, 2008 ]

Here's a little demo of the Get Human Dialer, which is an iPhone app I wrote this afternoon that queries gethuman.com after you initiate a call (namely a call to a customer service number), so that it can promopt you with instructions on how to circumvent the phone menu and talk to an actual human.




The web site gethuman.com lists instructions on how to reach a real person when calling various customer service and support lines. It has a lot of good information, but isn't easy to navigate with the ibrick, so I thought it would be helpful to be promopted of these instructions right after you type a number.

The code is hosted by Google here:
http://code.google.com/p/gethumandialer/
Here are a few screen shots:

On start up.


After dialing a number. Here, I dialed Auto Zone customer support and the apps says that to reach a real person, instead of a phone menu, you should "Press 1; at prompt press 2; at prompt press 0".

[ 05:47 PM on December 18, 2008 ]

First app on a phone...finally.
firstApp.jpg
Yeah, it's cracked...and let me be the first to say, getting the certificates and keys and profiles worked out to actually run on a phone is REALLY fun. So are root canals!!!

[ 09:47 AM on December 18, 2008 ]

Unfuddle is great, but I just editted a comment I made and noticed something strange. I had made a comment last night with a list 1., 2., 3., ..., and I made a comment this morning refererring to number 2.,
unfuddle-1.png
but when it was saved it came out like this
unfuddle-2.png
I have no clue what's going on, maybe they have some sort of templating system? I'm f'ing confused.

[ 04:40 PM on December 17, 2008 ]

With my newly-working version of a gnutella p2p client, I extended iwebapp, which is mostly for iphone stuff to display gnutella search results, like so: lime-search-small.png
Not all that useful, but I can sort of think of one. The source is in google code, the page shown is here and the version you see is here -- append a '?s' to the URL and first part of any file name will be starred out. To run it, check out the code, unzip or untar it, type make limewire and go to the URL above and type the same query you'd type in the client.

[ 02:10 PM on December 17, 2008 ]

Yeah, as in most cases I was wrong, and the almighty Felix the Conqueror lead me in the right direction and saw what was wrong...named 'The Conqueror' because he once brought down a 1 1/2 pound rabbit that was menacing the neighborhood in his hometown of Stuttgart. This rabbit would steal carrots and cigarettes from all the neighbors and impregnate their female bunnies. Having never seen himself in the mirror (i.e. the rabbit), he couldn't really discern between the female bunnies and the smaller cats and gophers, so these creatures also felt the wrath of the rabbit. Anyway, Felix took it upon himself to trap this trouble-maker with a shoebox, two twigs, and a bag of marshmallows and bring sanity back to his neighborhood.

And, if you ever can't connect to limewire, put a host file in your preferences directory -- i.e. ~/Library/Preferences/Limewire/gnutella.net on a mac.

[ 12:14 PM on December 17, 2008 ]

The previous post is pending, as the good folk of the Lime are helping me to resolve this.

[ 02:21 PM on December 16, 2008 ]

All the courageous men and women who slaved day and night to bring you shoesize.org have done it again, and have moved shoesize.org to shoesizes.org...it was a long, hard fought battle, but we did it, thanks to them.

And remember, a shoe that doesn't fit, is just a shoe.

[ 10:46 AM on December 15, 2008 ]

meetoogle is a GM script to search meetup whenever you do a google search. I made this a little while ago, and for some reason it's not working, but when it does, after searching for, say, pugs and having your default google location to somewhere in New York (mine) it looks like this:

It basically grabs the query, grabs your location information following a link, send them to meetup, and then cram them in the DOM. This could work for other sites that either provide a search API or have pages manageable enough to crawl.

[ 04:32 PM on December 14, 2008 ]

Pandora needs an undo button or Apple needs to make track pad buttons that don't stick.

[ 06:27 AM on December 14, 2008 ]

I've been playing with the iphone quite a bit lately and, oh my god, I now liken doing string searching and regular expressions in objective c to sticking my boys in a bear trap...there must be a better way to find the url of an image than this drivel:
NSRange imgStart = [s rangeOfString:@"src=\""];
if (imgStart.location >= 0) {
	NSUInteger loc = 
       imgStart.location + imgStart.length + 1;
	NSUInteger len = [s length] - loc - 1;
	NSRange imgStop = [s rangeOfString:@"\"" 
                       options:NSCaseInsensitiveSearch 
                       range:NSMakeRange(loc,len)];
	if (imgStop.location > imgStart.location) {
		NSString *src = 
        [s substringWithRange:
             NSMakeRange(imgStart.location + imgStart.length, 
               imgStop.location - imgStart.location 
                  - imgStart.length)];
	}
}
I just want this to look like what I'm saying, which is "extract the string inside the quotes after the first instance of src". Ruby says that.
s.scan /src="([^"]+)"/ do |res|
  src = res[0]
end
or even better
src = /src="([^"]+)"/.match(s) ? $1 : nil
Geez.

[ 08:04 AM on December 13, 2008 ]

google_reader.rb is a Ruby client for google reader. Here's an example of getting all the subscriptions of using the GoogleReader class, assuming you are in the same directory as google_reader.rb or it's on your library path:
require 'google_reader'
username = ...
password = ...
r = GoogleReader.new username,password
xml = r.subscription_list
...
I'm not quite sure what to do with it yet, I was thinking about an offline reader, which would be cool, but I can't seem how to find unread items; I would need that. Also, it would probably be better to have the aggregator on a phone, but I would think doing these things are much less painful in Ruby rather than demon objective C. In the meantime, there's a little test file here. You can use it from the command like the following:
% ./google_reader_test name@gmail.com mypassword
<object>
    <list name="subscriptions">
        <object>
            <string name="id">
             user/06674996524717788469/label/drm
            </string>
...

[ 05:47 AM on December 12, 2008 ]

What does Mr. Reznor have to say about the record industry?
My level of contempt for the record industry has never been higher.

[ 02:59 AM on December 11, 2008 ]

So, you drop a potato chip on the ground waiting for the elevator, pick it up and eat it, and notice someone coming in the door saw you; what do you do? Stairs. Then you get out of the stairwell, hear the elevator doors open, and notice that the woman who saw you eat the chip from the floor gets out and is your new neighbor; what do you do?

[ 11:38 AM on December 10, 2008 ]


5.0α
I was told to spread the word on limewire 5.0, so I am, to the 3 people who read this (me and my mom included in that 3).

[ 07:16 AM on December 10, 2008 ]

I have my reservations about a lot of the superficial aspects of objective c -- e.g. verbose syntax and much boilerplate code, use of a lot of weird constants, etc. I also am a big fan of small, clean designs, but the one class that should be bloated is strings, and NSString's API shows that it is, and it's great sometimes. My favorite so far is stringWithContentsOfURL. Nothing huge, and this probably doesn't belong in all immutable data classes, but I think it's a good for strings.

[ 02:16 PM on December 07, 2008 ]

So, I'm on my third iphone after tomorrow, and I just made my reservation for the 'genius bar', and this is a portion of the success page.
apple-store-genius-bar-success-page.png
Wow! Uncle Steve has done it this time, they're stretching the day beyond 24 hours! My reservation tomorrow is at 32:30.

[ 08:33 AM on December 07, 2008 ]

Here's some ruby for creating 'flashcards' for your ipod for learning a new language. It uses the goog's translating service to create a file-based flashcard system. or all of them To use it put words or sentences on individual lines in a file called words.txt and define the language you want -- here I'm using French (i.e. fr) and type make; then copy the resulting directory out to the Notes directory on your ipod.

[ 07:51 AM on December 05, 2008 ]

Who is MSNBC news kidding with their intermission music -- arcade fire, broken social scene, ... ???

[ 02:43 AM on December 05, 2008 ]

What is this?
itunes-genius.png

[ 12:28 AM on December 03, 2008 ]

Yes.
51J4UsXPj4L._SL500_AA280_.jpg

[ 08:36 AM on November 02, 2008 ]

Here are a couple emacs macros for relieving the tedium of 'OO' javascript. Now there are just a couple:
  • prototype-class creates a new class
  • prototype-getter creates a new getter method for the name you enter when prompted.
  • prototype-setter creates a new setter method for the name you enter when prompted.
  • prototype-getter+setter creates new getter and setter methods for the name you enter when prompted.
On another note, I possess nothing that needs its time set today. This is good, because I have no clue which way it's supposed to change.

[ 07:42 AM on November 02, 2008 ]

I made a post to the mailing list of a class I was teaching a few years back about being conscious on details. As an example I used removing emacs twiddle files -- i.e. those ending with ~. My point was that if you're not careful in doing the oh so often rm -f *~ to force the removal of all files ending with ~, you could accidentally switch the arguments around to rm -f ~* removing everything in your home, which wouldn't be good. As a lesser example I just ran across another form of put in the ftp syntax...The normal synax of put file send file to a remote server; another form of which I was not aware until now was put file1 file2, which sends file1 to the remove server and renaming it to file2. A normal interaction for me is to repeatedly type put file until I'm putting sending more than one file, in which case I start with mput file1 file2 ... filen to send multiple files. But when I go from put file1 to put file1 file2 instead of mput file1 file2 I end up writing a long-winded post about a dumb, fucking mistake on my part.

[ 06:03 PM on November 01, 2008 ]

35 - 3. Not over!

The new bloc party is worth a listen...perhaps just that, not sure yet.

[ 05:21 PM on November 01, 2008 ]

[ 12:05 PM on November 01, 2008 ]

preview is a greasemonkey script to allow you to select a region of text containing links, and then create a new page where these links appear as a vertical column on the left opening in a larger pane to the right. A use case of this is when you'd like to run down a list of links quickly previewing them without opening them in separate windows.

So, you can highlight a collection of links (e.g. on alley insider)...



and then, click the 'preview' link to get two new panes to allow you to quickly preview the links.

[ 06:13 AM on October 31, 2008 ]

Uh, yeah. I just turned on the TV and a great news program was on.... how great you ask? The lead in was "according to Scum magazine...".





Yeah.

[ 07:25 AM on October 30, 2008 ]

yammage is growl integration for yammer so you can procrastinate more effectively, since we've been using this lately. To use it, click the icon and enter your username and password (yeah, you have to do it everytime). It will poll your account and show you new messages, such as
To install download and run the installer here: Yammage.pkg.

There seems to be something fishy with it right now, but I don't care at the moment, I'm going for a run.

[ 06:45 AM on October 28, 2008 ]

generate is some Ruby that I use and is of minimal usefulness for generating command-line application boilerplate code; it was about time that I stopped writing the same thing over and over and over and over (blah blah blah). I should really be doing something with reflection, but I'm lazy, and this seems to work. Basically, you run it, tell it the class name, output file name or stdout, and then the options it takes, etc... Then, it will output or print to STDOUT the code needed for having a standard command-line app, having verbose, help, and so on option. Here's a little example interaction, generating a class Potato, outputting it to potato.rb, taking the following parameters: file requires an argument; print takes no arguments.
r3potatoo:ruby jeff$ ./generate
Please enter the following infomation or type 'q' to quit...
classname> potato
outfile or 'stdout' [potato.rb]> 
option #1 name (blank for none)> file
option #1 takes argument [y/N]> y
option #1 description> the file to take
option #2 name (blank for none)> print
option #2 takes argument [y/N]> 
option #2 description> should we print
option #3 name (blank for none)>
  
The output is written to potato.rb, we can now run this file...
r3potatoo:ruby jeff$ ./potato.rb -h
Usage: potato.rb <option>? <argument>?
where <options> include:
  -h     || --help           print this message
  -v     || --verbose        use verbose logging statements
  -f <s> || --file <s>       the file to take
  -p     || --print          should we print
and <arguments> include:
  
And, yes, generate was generated by itself.

I like cherrypeel....

[ 06:34 AM on October 27, 2008 ]

This is a bookmarklet to allow you to have a unique password for every domain you frequent, while only remembering one (also here: jeffpalm.com/gkQcIYYc/). So, if someone steals (borrows) your password, you will only have lost it for that domain. First, this wasn't my idea, it was Felix's. Using this you can visit a site, enter the same password you normally use and then click this link creating a unique hash based on the domain.

To install drag this link to your toolbar...
password
Once you've entered a password into a password <input> field, click the link and those inputs with text in them will turn red indicating the password you entered was converted to a unique one for that domain; those without text, but password fields, will turn red.

before


after

Example

You can try it here... note this isn't a password field, so make sure no one is looking over your shoulder!

Some more from (test.js)...
asdfljka9asdf78   →   IAUkYIsUYgYoWE0
poohead   →   gQMYoYc
poohe@d   →   IsgAIo_
p0000o0he@d   →   KQM6swE6Ck_
jpalm   →   wwsUA
palmj   →   wIUgM
mjpal   →   gYMUA
jeffrey-palm   →   kAwsI(AkUwUA

Notes

The hash created is SHA1-based seeded with the domain host, and ensures the following, since the output has to be a valid password for a particular site:
  1. The output will have the same length as the input
  2. The output will have the exact same number of non-alphanumeric values as the input, not necssarily in the same position
So, if you put the password as abc-123 you are saying that you want "a password of length 7 and 1 symbol". This seems to work alright.

Here is the source.

Since this is dealing with passwords, I'll say this: The author nor anyone else that wouldn't otherwise see your password will see it resulting from using this, and the author is not responsible for any bad things that you do with this or for bad things that happen to you as a result of using it. No bad things are anticipated, but if a bike-helmet maker can waive any responsibility for head injuries I can do likewise.

[ 08:57 PM on October 26, 2008 ]

Its not cheating if you apply thermal glue to your balls and then put the laptop on it.
     - Aksh@y Kum@r, Oct 26, 2008

( kept 'anonymous' to protect the innocent )

[ 08:40 AM on October 26, 2008 ]

popimage opens image links in modal dialogs rather than new windows such as:

There are then links on the dialog to close or view the image fully.

[ 11:35 AM on October 25, 2008 ]

fakeisight is a Java program for Macs to periodically change you IM icon and message from a number of source. Currently there are three
  1. Your isight
  2. flickr explorer
  3. flickr search

Here are the files -- I don't feel like making a DMG or zip, so use the jar.
By default you use your web cam and that image will update every minute. But you can change that by going into the preferences or passing arguments on the command line. Using the former method you'll go to the File -> Preferences menu and see a dialog box like this:


Currently the other values for class names are
  • com.jeffpalm.fakeisight.image.FlickrExploreCapture
  • com.jeffpalm.fakeisight.image.FlickrSearchCapture:term

When it starts up you'll see a frame with the current, like so:



Notice in the second you pass a search term. In general, when specifying a class of Capture device, you can pass parameters to the constructor by appending strings of the form: :param-1:param-2...:param-n, and then param-1...param-n will be passed when we try to construct one of these things by reflection.

On the command line you can look at the help, here:

Usage: java com.jeffpalm.fakeisight.Main <options>                           
where options include:                                                       
    
-c <class> || --capture <class> use 'class' as Capture class     
-s <int  > || --sleep <n>       sleep 'n' seconds between changes
-v         || --verbose         print verbose debugging messages 
-h         || --help            print this message               


[ 06:43 AM on October 24, 2008 ]

annonate now allows you to directly mail a tinyurl'ed link of the page you've annotated to another person easily, so that the message you send looks something like this:

[ 08:14 AM on October 22, 2008 ]

annotate allows you to annotate web pages with message boxes so you can send them to other people. Here is an example where I added two notes (if you haven't installed the script, you won't see anything, yet, but you can click the image to see a larger picture of what you would see had you installed it).


It's a greasemonkey script, and once you install it, when you're on a page just double click and enter a message and then a message box will appear where you clicked. Then when you're ready you click a menu item to reload the page with a new URL that will show the message boxes when someone has installed the script.

[ 10:23 PM on October 21, 2008 ]

I hooked up potatunes to pandora, since I'm usually using that and not itunes and I'm getting a little annoyed at the moment... although today is official apple appreciation day, as they said they would replace the music I bought from them and put on my laptop that was borrowed -- yeah I bought stinkin DRMed stuff from them when I couldn't find it anywhere else and was too lazy to get off my ass. I'd still rather listen to pandora then line Uncle Steve's pockets.

[ 08:14 AM on October 20, 2008 ]

toruby is bookmarklet to generate a Ruby API for submitting a form on a given website. The idea is that when you're on a certain site, and click this link, it generates a Ruby class for submitting a (usually POST) request to that site. For example, if you were looking at the Hopstop site (as I find myself doing a lot) and click this link after dragging it to your toolbar
toruby
You would see this,


which is a Ruby class that provides the accessors, enums from select elements, an initializer, and a method process taking the text inputs, so that you could automate making requests to this site now with code like the following, assuming you put this in hopstop.rb:
require 'hopstop'
html = Hopstop.new.process '123 14th st', '321 41st st'
The original Javascript source is here
toruby.js
and compressed (with this) version is here
out.js

[ 10:45 AM on October 18, 2008 ]

create_bookmarklet is a little Ruby script that's been handy lately in converting a multiline Javascript file to a one-liner and then copying it to the clipboard (assuming you have the command copytoclipboard on your PATH, which you can get here) so you can write bookmarklets in a normal style, and then test them by pasting it into the address bar. Here would be an example using it, assuming I'm writing some Javascript in a file called new.js:
$create_bookmarklet -v -o new.js 
Writing to out.js
Wrote new.js -> out.js
Copying 976 chars to the clipboard
Copied 976 chars to the clipboard
Copied to clipboard
Then I could simply paste into the address bar, and test it out. You can also do the trick of appending a full script from another machine to the DOM, but this is quicker when you're just playing around.

[ 06:13 AM on October 17, 2008 ]

I went to the bodega down the street this morning to get some coffee and a guy from Jamaica (not the one in Queens) was arguing with the Korean shop owner about something and turned to me finally and said, "I should just insult him and tell him to go back to China."

I guess he just decided to insult himself.

[ 08:30 PM on October 16, 2008 ]

Here is a graph built of wikipedia using many eyes starting from the entry on Mr Potato Head.
mr-potato-head-wikipedia.png
Nartually, there is a big hub at potato, but some of the other hubs are a little surprising: Kiss, Featured content, Toy Story, television, Hasbro...This changes dramatically as you increase the number of total nodes...

# 1k 5k 10k 15k 20k 25k 50k
1PotatoJoseph Stalin12-1212-12What links hereWhat links hereA–Z index
2KissGhengis KhanJoseph StalinWhat links hereRelated changesRelated changesWhat links here
3Featured contentCurrent eventsNew York YankeesRelated changes12-12DiscussionDiscussion
4Toy StoryRobert MugabeUSAJoseph StalinDiscussion12-12Related changes
5televisionCommunity portalquality standardsDiscussionJoseph StalinJoseph StalinList of academic disciplines
6HasbroranksWhat links hereNew York YankeesISBN 0-9658794-0-2ISBN 0-9658794-0-2Wikipedia:Outline of Roget's Thesaurus
7mustachebeardRhode IslandUSANew York YankeesNew York Yankeestalk
8Disney's California AdventureFeatured contentGhengis KhanIndiaUSAUSAWikipedia:Template messages/Cleanup
9Main pageMahatma GandhiCurrent eventsquality standardsIndiaIndiaFeatured topics
10ContentsCharlie ChaplinRelated changessulfurOhioOhio12-12

These were all found using these (and some tests): The first abstracts out all the book-keeping, URL resolving, formatting, etc. that I seem to run into whenever I'm trying to create graph-like things using web thingies as the models. The abstraction is that subclasses of CreateGraph need to supply a way to extract links that will be searched next. Here is the entire thing:
require 'create_graph'

class WikiGraph < CreateGraph
  def initialize
    super '/wiki\/[^"]+'
  end
end

WikiGraph.new.main ARGV
The argument to the super call is a regular expression string or an Array of them, and describes the links that we are interested in following; the super class, CreateGraph takes care of the rest. There's certainly more here that could go into the parent class, but I decided to take a run in the early evening and took off.

[ 04:32 PM on October 16, 2008 ]

Awesome...thank you microsoft:
club-dog-sex-small.png
...and spammers.

[ 05:10 AM on October 16, 2008 ]

Today shell-script day in Canada and parts of Spain, so here are two trivial but useful (to me) shell scripts I tend to use a lot.
  1. unarchive takes zero or more arguments and will unarchive each based on extensions. Currently it accepts the following: .zip, .tar, .tar.gz, .tgz, .gz, .jar. It also takes two options, -t to just print what we would do, and -v to pass the v flag to tar and jar. e.g.

    $ ls
    bar.tar baz.tgz bla.tar.gz bug.gz foo.zip jab.jar
    $ unarchive -v *
    a.txt
    b.txt
    c.txt
    . . .
    $ unarchive -t *
    tar xf bar.tar
    tar xfz baz.tgz
    tar xfz bla.tar.gz
    gunzip bug.gz
    unzip foo.zip
    jar xf jab.jar

  2. map takes two or more arguments and maps the first parameter (i.e. the command) to the rest of the arguments, e.g.

    $ ls *.zip
    a.zip b.zip c.zip
    $ map "unzip -o" *.zip
    Archive: a.zip
    extracting: a.txt
    extracting: b.txt
    extracting: c.txt
    . . .

[ 08:30 AM on October 15, 2008 ]

I finally got to use my itunes/iphone remote (appropriately named CrapTunes) for a legit reason. I was updating the iPhone SDK on one crapbook and it wanted me to shut off itunes; I didn't want to shut it off since saved by the bell had ended I want to listen to music instead of listening to Breaking News in the background. My macbook pro was stolen and my powerbook has a bum display, so has to stay across the room. My headphones could reach to my powerbook, but I wanted to control it -- hence CrapTunes.

I have to take up the rest of this space so that the little image to right doesn't wrap to the next post; I lack the skills to prevent this in a normal manner. I hear it was 30 degrees around Boulder yesterday, I'm ready for Winter. Alkaline Trio played last night. My back itches.

[ 12:55 AM on October 15, 2008 ]

sortle will sort Google image search results by area, width, or height; as well as annotating the image with that value. e.g.

normal
sorted by area
sorted by width
sorted byheight

[ 10:28 AM on October 14, 2008 ]

lastfmcal is an ICS version of lastfm's show calendar. That's all, just enter an address, hopefully I cache it, and then either you'll be redirected to the correct page, or if someone else has requested that location, you'll be given a link. You can import into iCal or the goog's calendar following these instructions. Here's what it could look it for NYC in iCal.
lastfmcal-small.png
This is all © lastfm, if they call quits to me grabbing these I'll stop.

[ 09:54 AM on October 14, 2008 ]

I fucking hate shared hosting when they change paths.

[ 03:10 AM on October 14, 2008 ]

pandoralastfm is a Mac app that combines pandora and last.fm so that when you up a track in pandora, it's added to a playlist on your last.fm account. It's an extension of pandoraboy, with some additions, and you can see the CHANGES file for more there. Currently when running it looks like this:

The following are the button assignments:
  • Down a track
  • Up a track
  • Pause the current track (doesn't work right now)
  • Play the current track (doesn't work right now)
  • Skip the current track
When you Up a track, and have set your username in the preferences dialog by clicking the Preferences button,

you'll be sent the first time to a browser and presented with a page showing the following

and once you click Yes, allow access you'll be able to continue and notice that you have a new track in your first play list.

[ 10:42 PM on October 12, 2008 ]

potatunes is my first, hacky attempt at a browser-controlled itunes library... so if you disapprove of my music (I'm sure you do) or even care (I'm sure you don't) you can change what I'm listening to by clicking right or left. You'll just be prompted for your name, because I'd like to know who you are. In order for this to work, the state label has to be showing playing, and I have to be running some stuff on my side. But likely, if this label is set to playing, you can click left and right.

Then there is problem of finding something actually meaningful to do with this...

[ 02:24 PM on October 12, 2008 ]

perm shows some simple performance measures for about five minutes and then I made colorful pictures to show that Emacs isn't the enemy. And while I didn't put legends on these (on purpose), Emacs is NOT the strained-carrot color.

CPU


Memory


Most importantly I had the chance to use this wonderful regular expression and got it right on the first and only try:
^(\w+)\s+(\d+)\s+(\d+\.\d+)\s+(\d+\.\d+)\s+(\d+)\s+(\d+)\s+\??\??\s+(\w+)\s+([\:\w\d]+)\s+(\d+:\d+.\d+)\s+([\:\w\d]+)\s+(\d+:\d+.\d+)\s+(\d+:\d+.\d+)\s+(.*)$

[ 10:52 AM on October 12, 2008 ]

usernamechecked is a greasemonkey script to put check boxes next to the sites on usernamecheck.com so you can select which sites to check. This was in response to a comment here (especially the one about better things to do with your time).

(Why on earth did I do this???)

Whenever you visit usernamecheck.com you'll see check boxes next to all of the sites, select all/none buttons, and a new 'CHECK Selected' button at the top.


When you click the 'CHECK Selected' button, you will only inspect those sites that are selected.

[ 08:08 AM on October 12, 2008 ]

nflschedules is a collection of ICS schedules for the NFL (and the code to create them), so you can import them into iCal or Google Calendar, like so

[ 11:36 AM on October 11, 2008 ]

usernamecheck is a bookmarklet to transform all the available links to sign up links after searching for a username on usernamecheck.com. Currently you search for a username and see whether that username is taken over a number of sites, and when it's not they link to the site; but you really want a link to the sign up page. After clicking this bookmarklet all these links will be transformed.

before


after

[ 08:13 AM on October 11, 2008 ]

Emacs was being a bastard this morning (I know, heresy!) when trying to copy a bunch of text to the clipboard, so I had to write copytoclipboard to copy the contents of the files you pass in to the clipboard....ugh. But then the thing to which I was copying became equally a bastard when trying to paste it...That didn't make sense.

[ 06:24 PM on October 10, 2008 ]

An experiment in presence... now playing on my machine:

[ 11:22 AM on October 10, 2008 ]

It's really hard typing into the iPhone, but sometimes you want to pretend that you're not a complete nerd and always at your computer. So sendlink is a little script to compose a message on your computer, and then mail yourself a mailto: link, so you can simply log into your mail on your phone, click the link, and pretend like you sent it from your phone -- and you have a life. Example:
  $ ./sendlink spudtrooper.org spud@spudtrooper.org greasynuts
  To> jeff@spudtrooper.org
  Subject> hey
  Now type a message and type a single '.' to end.
  I am NOT at my computer
  .
  Sending to spud@spudtrooper.org on spudtrooper.org
  Done.
Then log into your phone and you'll see a message with the following. Click the link.
Click this link

jeff@spudtrooper.org:hey

You can either pass in the hostname, username, and password, or keep them in ~/.sendlink like the following:
  user:spud@spudtrooper.org
  pass:greasynuts
  host:spudtrooper.org

[ 09:25 AM on October 10, 2008 ]

pandoraboy is a little Java calling Applescript for controlling pandora via the real pandoraboy and looks like this:
To use it first start up the real PandoraBoy in your applications and then start this and you can have a small controller instead of using the larger Pandora Boy. There's a shell script in the tar to do both to make it less cumbersome.

The up and down arrows are for voting a song up or down. The pause and play are to pause/play the song. The right arrow is to go to the next song. It's a little smaller and small is good (only in some scenarios). Here is the source:
pandoraboy.tar.gz
Since you need the mac classes or your classpath, run it with the Makefile.
$ make run
javac -g -classpath .:/System/Library/Java PandoraBoy.java
java -classpath .:/System/Library/Java PandoraBoy
There's more to do, like putting the current song, keeping on top, probably more, but I'm taking advantage of the sun and going running.

[ 08:19 AM on October 10, 2008 ]

My ipod broke, so I can't read the New York Times on it anymore offline on the subway, so here is a little ruby to send you an email digest of the day's paper. To run it you need two files or download the tarball: You run it by passing in your email host, email address, and password, e.g.
$ ./nytimes -v mail.spudtrooper.org spud@spudtrooper.org greasynuts
Opening http://nytimes.com/
Opening http://www.nytimes.com/pages/todayspaper/index.html
Opening http://www.nytimes.com/pages/politics/index.html
Opening http://www.nytimes.com/pages/books/index.html
....
Sending mail to spud@spudtrooper.org on mail.spudtrooper.org
then you'll get an email and you can view it on your phone offline: iphone-nytimes-small.png
or just in your browser: nytimes-mail-small.png
To the best of my knowledge this doesn't violate their terms or copyrights, if it does, don't use it.

[ 09:19 AM on October 09, 2008 ]

I haven't played around with grouphug in a while...here's a many eyes view of the word count from grouphug for the first 100 pages or so.

[ 04:42 PM on October 08, 2008 ]

Irony. . .

[ 09:18 AM on October 08, 2008 ]

When you click someone's phone number in an email on your iBrick, the almighty device asks you to call that person; but I want to be able to add that person as a contact, with their name and email as well as that phone number. So, newcontacts is a little system to go through your mail and try to extract probable phone numbers and add them to your address book. It's not totally done, but will handle completely new contacts. Ultimately, I'd like to merge these phone numbers into existing contacts, but this is good enough for now. Like some other things there are basically just three files: or a the tar ball: and an example run would be like this given that <host>, <user>, and <pass> are your mail host, username, and password respectively::

% ./analyze_mail -p <host> <user> <pass> > emails2phones.txt
% ./merge_names emails2phones.txt > merged_emails2phones.txt
% ./import_contacts merged_emails2phones.txt

You're then prompted about every new contact found in your mail, and you have a chance to assign labels to the emails and phones. Some examples are here.

[ 08:53 AM on October 07, 2008 ]

This is a way to view tag collections of flickr images as a big mess of images; you can reveal new images by hovering over the image...

more...

[ 03:35 AM on October 07, 2008 ]

These sites haven't worked in a while, due to PHP-problems:
bandlines Keep track of your favorite bands and artists, view their tours in a number of ways.
kathymaps Allows people to collaborately share narratives using Google Maps as a medium.
geo rss Combine a number of geo rss feeds into one and view it.
They seem to be working -- or at least not creating huge error logs -- now.

[ 02:27 AM on October 07, 2008 ]

I was watching the Saints game tonight when there was still a lot of time left on the clock and Seinfeld came on. I wanted to watch Seinfeld, but see the end of the game, so I made twominutewarnings as a system to attach alarms to certain parts of sporting events (currently just football) games, so you can be notified when certain amounts of time passes -- e.g. get an email at the two minute warning of a certain football game, so you can catch the end of it. Whenever you visit ESPN's scoreboard you'll see a new row at the bottom of a scoreboard with Set and Unset buttons. The value here says to notify you via email when this game reaches this time. Here I want to be notified at the two minute warning in the Saints game.

When you click Set and enter an email address and 'time left' to be notified you'll see something like the following:

Then once the time in the game dips below this number an email will be sent to the address you gave.

It didn't help the Saints win...neither did Automatica Gramatica.

[ 08:30 AM on October 06, 2008 ]

One thing that annoys me about the iBrick is that I have many more contacts' email addresses than phone numbers, so when I go to dial someone's number and look in contacts, most of the contacts don't have phone numbers. So instead of doing an app to present just those people, I thought I could just generate HTML from my Address Book app and then ship it off somewhere on my server. So addressbook2html is a little Ruby script to output an HTML version of your Address Book, but only including those contacts with phone numbers. An example run would look like
r3potatoo:jeff$ ./addressbook2html > contacts.html
Exporting address book to contacts.vcard...
Parsing vcards from contacts.vcard...
Cleaning up...
and an example output would be:
A B C ...
Anderson, Alf 917-123-4567
Turtle, Henry 617-765-4321 fivelegged_turtle@gmail.com
...

[ 09:33 PM on October 05, 2008 ]

seemail is a little look at my email usage for my personal account over the past couple years or so. Each band of color represents a person (I know who they are, you don't), and the X-axis tracks dates.


( click for a larger one )

This is basically a much, much smaller (and not nearly as cool) version of the mountain project that I didn't see until after doing this :/. I focus on each individual bands (i.e. the people) by filtering out people with whom I didn't communicate enough, rather than the humps; though the latter is significant, too. Here is one with a more lenient filter:

( click for a larger one )

The source is here: seemail.tar.gz.

[ 02:02 PM on October 05, 2008 ]

musicgrep is a little Ruby system for searching your music library for a string or regular expression. You can search into the lyrics of the song or just the artist or title. Here are a couple examples and musicgrep is the main file:

Search all songs in ~/Music for songs with lyric change.

musicgrep "change"

Search all songs in ~/Music with artists containing the string Belle.

musicgrep -a "Belle"

Search all songs in ~/Music with titles containing the string Cat.

musicgrep -t "Cat"

[ 11:38 AM on October 04, 2008 ]

createevent is a bookmarklet to add the page that you're on as a google calendar event. So when you're on a page, you can click this bookmark and you'll be prompted with a page to add this page, with its URL as a google calendar event. Possibly useful for shows or other things?

[ 07:49 AM on October 03, 2008 ]

I hate browsers (as I've said many times), so today is a Ruby script to look up google calendars or other ICS feeds and print a text version of the schedule. You can either pass it the names of calendars (e.g. your gmail maybe) or the ICS url found by looking in the settings; you can also list these in ~/.ical for convenience. I need to figure how to better show multiple results, the current method sucks like those thingies on spiderman's hands...here is a snipped example output for a feed listing art events in New York:
r3potatoo:ruby jeff$ ./today \
  s69iupuak9ll5d3tvct0io4pic@group.calendar.google.com
...
12:00 
13:00 Judith Joy Ross: Protest (13:30 - 20:00)
      Josef Koudelka: Invasion 68: Prague (13:30 - 20:00)
      John J. O'Connor (13:00 - 22:00)
14:00 Paris/New York: Design Fashion Culture (14:00 - 21:00)
      Kandinsky in Paris 1934-1944 (14:00 - 23:45)
      Revealing the Collection (14:00 - 22:00)
      Judith Joy Ross: Protest (13:30 - 20:00)
      Josef Koudelka: Invasion 68: Prague (13:30 - 20:00)
...

[ 09:59 AM on September 30, 2008 ]

Yes!

2878681351_76e6388530.jpg

[ 10:52 PM on September 28, 2008 ]

I sometimes think some of the things I write here belong more in Twitter than a blog? My eyes are burning from too many wasabi peas.

[ 10:17 AM on September 27, 2008 ]

The televised games today around 12pm today are:
  1. Michigan State ? at Indiana ?
  2. North Carolina ? at Miami ?
The NON-televised games include:
  1. Mississippi ? at Florida 4
Who is doing the programming on these stations?

On another note, scan_logfiles is a little script to analyze logfiles, in particular user agents. Look at the file for options, but it basically prints out histograms of various components of user agents.

[ 09:47 AM on September 26, 2008 ]

I don't have a coffee pot (or any pots for that matter), but I just came up with a great way to make cold, nasty coffee that involves two sheets of paper towels, a cup, and coffee grounds -- you can do the math. I also don't have a microwave, so this makes this concoction extra gross. But, the upsides are
  1. It has caffeine
  2. At the end you get an extra-special treat of something that most resembles sludge -- but it, too, has caffeine, so no complaints.
  3. And it gives you a sense of accomplishment, so you kind of feel like a caveman

[ 09:30 AM on September 25, 2008 ]

I'm no longer at the Lime, so if you have any fun things throw them at me; ideally something involving crab boats.

[ 12:42 PM on September 10, 2008 ]

icals is the start of collecting rss feeds as ics feeds so I can read these RSS feeds in iCal or google calendar. So far there's only one, but possibly more to come:

[ 10:46 PM on September 09, 2008 ]

mail is some perl to analyze your mail stats. Uh.

[ 10:02 PM on September 09, 2008 ]

regex is a page for converting text strings into regular expressions. There is a very simple ruby version, too, here: regex. This is by no means perfect, but I find myself writing lots of these and it's useful to have a way to take some of the tedium away. To use it, just enter a text string, and the page will try to infer a regular expression.

[ 01:49 PM on September 09, 2008 ]

3 cheers for the Turkey Testicle Festival.
Turkey_colorL.gif

[ 02:35 AM on September 09, 2008 ]

Just received my periodic linked-in updates...
linked-in.png
maybe they should use their resources to find a grammar-checker (names are hidden to protect the innocent from showing they know me).

[ 12:39 AM on September 09, 2008 ]

Here is a little script for calculating simple stats on apache log files and outputting them as HTML to a directory out: logfiles.rb. To use it, pass in the names of Apache log files to inspect, and this will output some HTML to out. Some example output is found here.

[ 11:16 AM on September 08, 2008 ]

Updated craigmails to fix a bug in encoding the email, and also eliminated the need to actually access the posting (via AJAX), so that peoples' IPs won't get banned, the links load more quickly, and the email link is actually valid.

Also, here is some docs on a (sort of) new little project to provide remote-control like interfaces for controlling resources on a laptop with your iphone: http://www.jeffpalm.com/iwebapp/docs/ and the google page is here: http://www.jeffpalm.com/iwebapp/code/. The idea is that the interface is served over a remote computer (e.g. jeffpalm.com) and displayed on an IPhone, but there is a little server running on a local machine that is responsible for communicating with the phone via a Javascript library. There is slightly more of a description on the wiki help page. Here are a couple screen shots:

[ 01:32 PM on September 07, 2008 ]

In the spirit of investigating the domain names of congress persons, here is a list of the expiration dates of the domains of congress persons (whether they own them or not), and here are the owners with a histogram showing an owner and how many congress-people-named domain names they own...
                              OWNER   # HISTOGRAM
                        Henry Poole  20 ********************
             Domains by Proxy, Inc.  15 ***************
         Name Envy Privacy Services   9 *********
             DomainSource.com, Inc.   6 ******
                  RareNames, WebReg   4 ****
                Havana Journal Inc.   3 ***
                     Not Applicable   3 ***
                        Seth Wilkof   2 **
                       NGP Software   2 **
BelgiumDomains LLC Privacy Service    2 **
                         joe glazer   2 **
                               N.A.   2 **
 DomainDoorman LLC Privacy Service    2 **
If you're very googlized, this file is in iCal format here: congress.ics.

[ 11:50 AM on September 07, 2008 ]

Here's a little list of congressmen that aren't taking advantage of their name via a domain name. They aren't all correct, but most are I think (I didn't bother checking all of them):
Congress personURL
Daniel Inouyewww.danielinouye.com
Pat Robertswww.patroberts.com
Norm Colemanwww.normcoleman.com
Arlen Specterwww.arlenspecter.com
John Doolittlewww.johndoolittle.com
Lois Cappswww.loiscapps.com
Adam Schiffwww.adamschiff.com
Brian Bilbraywww.brianbilbray.com
Ric Kellerwww.rickeller.com
Robert Wexlerwww.robertwexler.com
Ron Kleinwww.ronklein.com
Jesse Jackson Jr.www.jessejacksonjr.com
Ray LaHoodwww.raylahood.com
Baron Hillwww.baronhill.com
Ed Whitfieldwww.edwhitfield.com
Candice Millerwww.candicemiller.com
Chip Pickeringwww.chippickering.com
William Lacy Clay Jr.www.williamlacyclayjr.com
Dean Hellerwww.deanheller.com
Steve Israelwww.steveisrael.com
Vito Fossellawww.vitofossella.com
Mary Fallinwww.maryfallin.com
David Daviswww.daviddavis.com
Lloyd Doggettwww.lloyddoggett.com
Rob Bishopwww.robbishop.com
Nick Rahallwww.nickrahall.com
You can do this using this.
./congress.rb > congress.txt
./congree.pl congress.txt
prettify.pl goods.txt > congress.html
or type make.

[ 02:43 AM on September 07, 2008 ]

craigpreview has a quick version 2 that strips HTML tags.

[ 01:59 AM on September 07, 2008 ]

Geez, the Google is mean, look at this capcha!

hard-captcha.png

[ 01:26 AM on September 07, 2008 ]

craigpreview adds tooltip previews to craigslist links when you hover over them. For example:
(Apologies for the low quality, mac's don't capture the tooltips in screen shots)

[ 10:04 PM on September 06, 2008 ]

pollstar.rb is a little script to search pollstar for shows in a city and filter only the artists in your itunes library. You can either pass a city -- such as New York, NY to the program or list this in a file ~/.pollstar. I don't have any music on this machine, but if I did -- and I had these artists -- a sample output would look like this:
r3potatoo:ruby jeff$ ./pollstar.rb 
DATE       ARTIST                         VENUE
09/05/08   Indigenous                     B.B. King's Blues Club
09/13/08   Foxy Brown                     B.B. King's Blues Club

[ 03:49 PM on September 06, 2008 ]

At the request of a fellow-greasemonkeyer, craigmails is a greasemonkey script to add quick links to craiglist postings, so you don't have to actually go to a listing to mail the poster or flag it. Here is a screen shot.

[ 12:47 AM on September 06, 2008 ]

yourwebsitevalue.com claims to attach a value to your website, and I was wondering how accurate they were. They give this one about a $1.5k rating, but claim it could be worth more. They say the same for google (because it has too many pages for its current value...). Here is a little breakdown, sorting the Alexa top-500 sites by value according to this website, then showing the site's Alexa ranking -- essentially correlating yourwebsitevalue.com's ranking with Alexa's ranking.

[ 08:53 PM on September 05, 2008 ]

Here is the first 'real' jloogle release. It's rought, pretty untested, and not very worked out. The grammar, again, is here, and you can say things like name(main) and arg(String[]) to get mai