Deprecated: Assigning the return value of new by reference is deprecated in /f2/blendedtechnologies/public/wp-content/plugins/pmetrics.php on line 1192
Blended Technologies

New Web Tool to Find Freelance Gigs

August 10th, 2009


I just put the finishing touches on the first version of Gigbayes, the learning gig filter.

Screenshot-GigBayes - Find smart gigs smartly - Mozilla Firefox.png

It aggregates the newest freelance listings from all of the US Craigslists as well as other freelance sites such as rentacoder and elance. It presents the newest gigs to you in one simple box with infinite scrolling.

You train the filter by starring the gigs, or following their links. Over time I’ve found* it gets pretty good at figuring out what you’re looking for.

Go try it out now.

Under the Hood

I made the site with Python, MySQL and jQuery. I hadn’t worked with jQuery before so I was amazed at how productive it was, how easy it was to learn, and just how well designed it seemed. Javascript is finally as fun as Python.

I hosted the site on nearly free speech, which is bad because they don’t have mod_whatever’s, everything just runs as plain CGI. But it’s good because it’s so easy put up a quick site, and it’s really cheap since they charge you only by the bandwidth you use. So failed projects cost me nothing.

By the way, my Python framework was the CGI module :-) . It’s very flexible, and doesn’t get in your way. Besides, I find frameworks are too heavy to import anew for every page request (I’m on plain CGI, remember).

I use a modified version of Reverend to do the Bayesian filtering. It seems to be working pretty well.

This is also my first time trying out the gradual user engagement model. So as you can see, you can start viewing and rating gigs right away. You only have to register if you want to save your training. This way there’s no barrier to trying out the tool.

So those are the basics. Let me know in the comments if you have any specific questions about the design. General feedback would also be very appreciated.

* I’m not looking for any freelance gigs right now, so for me, Gigbayes learned that I want quick projects involving no more than pasting some input into one of my already made utilities.
(Well, learned to some degree at least.)

del.icio.us |  Digg |  FURL |  Yahoo! My Web 2.0 |  Reddit

Realtime Plot of Arduino Serial Data Using Python

July 8th, 2009

So I got an Arduino a few weeks ago, and just made my second little project:

Arduino Knock Sensor Circuit

It simply has a piezo element connected to an analog input pin. The Arduino polls the value every 100ms and prints it to the serial port. Here is the sketch:

/* Knock Poller
 * ----------------
 * We listen to an analog pin, sample the
 * signal and write it to the serial port.
 */

int knockSensor = 5;
byte val = 0;

void setup() {
 Serial.begin(9600);
}

void loop() {
    val = analogRead(knockSensor);
    Serial.println(val,DEC);
    delay(100);  // we have to make a delay to avoid overloading the serial port
}

The problem was that I found it was hard to tell what was happening just by reading the values printed to the serial monitor in the Arduino IDE’s serial monitor.

So I researched realtime plots/graphs/charts in Python, and sadly didn’t find too much. Finally I came across
Eli Bendersky’s live graph demo using wxPython and matplotlib
which was exactly what I was looking for.

I repurposed it to listen to the Arduino and set it listening:

arduino_plot_screenshot.PNG

You can see how my pushing on the knock sensor makes the voltage go up and down.

You can get the code here. (I only tested it on Windows XP.)
It should work for any Arduino sketch that sends numeric data to the serial port at least a few times per second. It’s smart enough to ignore non-numeric lines.

I got a lot of help from the folks at Stack Overflow on how to use pySerial.

Update:

It turns out the proper search term would have been “arduino oscilloscope” which does bring back some useful projects:

http://code.google.com/p/arduinoscope/

http://accrochages.drone.ws/en/node/90

But I still like mine since you don’t have to compile anything to run it, and it doesn’t dictate what Arduino sketch you use.

del.icio.us |  Digg |  FURL |  Yahoo! My Web 2.0 |  Reddit

Just One Club Card Mentioned on Attack of the Show

December 10th, 2008


My site www.justoneclubcard.com was mentioned on Attack of the Show. Pretty cool!

del.icio.us |  Digg |  FURL |  Yahoo! My Web 2.0 |  Reddit

Read XKCD on the iPhone .. Finally

September 26th, 2008

I always want to read the great web comic XKCD when I’m on the go, but alas half the humor is in each comic’s HTML image title attribute which the iPhone won’t let me see.

Thus I present you with a solution: A nice little bookmarklet you can run when viewing an XKCD comic (or any other page with images with title attributes), and it will show you the title in an alert.

(It chooses longest image title on page to show you which is usually what you want.)

XKCD Image Title Attribute Viewer Bookmarklet

Here is the version of the bookmarklet install on your iPhone (The page it opens will give you further instructions on installing):
ShowImageTitles (iPhone version)

Here is the version for a standard browser. Just drag it into your toolbar:
ShowImageTitle

Here’s the nicely formatted source in case you want to modify it:

function get_img_w_longest_title(){
	var imgs = document.getElementsByTagName('img');
	max_title_length=0;
	max_img = '';
	for (var i=0; i<imgs .length; i++) {
		if (imgs[i].title.length > max_title_length) {
			max_title_length=imgs[i].title.length;
			max_img = imgs[i];
		}
	}
	return max_img;
}
alert(get_img_w_longest_title().title);

and I used this handy converter to turn that source into a functioning one line bookmarklet.

Enjoy!

del.icio.us |  Digg |  FURL |  Yahoo! My Web 2.0 |  Reddit

Utility Mill Featured in Python Magazine

August 29th, 2008

How exciting! Check it out:
http://pymag.phparch.com/c/issue/view/79

Behind the Scenes at utilitymill.com
by Greg Pinero
In this article, Greg introduces a tool he has developed that helps you get your Python code onto the web fast. He explains how to leverage utilitymill.com to create web utilities without leaving the comfort of your browser.

And here’s Utility Mill if you haven’t seen it yet.

del.icio.us |  Digg |  FURL |  Yahoo! My Web 2.0 |  Reddit