I live in Omaha.
 
Navigation
 
Search
 
Random Image
CBSet_121954108204.jpg
 
Me. Elsewhere.
 
Archives
 
Darcy
 
Recently Read
 
Things I Like
Demonoid.com
 
License
 

Review: Canon Pixma MX320

A Pixma MX320A week or two ago I bought this mutli-function to replace the loathsome Lexmark I’d had for several years. I didn’t have a chance to try it out until today. Since I’m home sick I drug it into the bedroom (yes, it is big and heavy) and tinkered from the comfort of bed.

All around it’s a nice machine. It copies fine without a computer attached, and it works like a dream with Kubuntu; scans and prints. It even shows up as an image source in Gimp. Nice.

For those you wanting to get it going on Linux, don’t bother looking for the drivers on the US support site, you have to hit the Europe one. Don’t ask me why, just go here: http://software.canon-europe.com/products/0010697.asp. They offer deb’s, rpm’s and source, so it should work pretty universally on a modern system. The debs went in flawlessly for me, and poof, the thing worked.

Print quality is good, crisp and clean. Scanning is another matter. I ran through some prints I got back the other day, and there is grain everywhere. It’s not unbearable, but check the next post to see what I mean.

All in all and good Linux compatible printer/scanner, for only $49 at Wal-Mart (oh the shame)

Also it has this weird thing called a “fax”. I’ve yet to figure out what that is or why you would want one.

Posted July 14th, 2010 - Permalink
Categories: Consume - Geek
Tags: , ,
3 Comments »
 

Review: Skullcandy Lowrider Headphones

Last week I had two sets of headphones go bad on me in the space of three days. The first pair was my set of Sony Pysc over-the-ear headphones.

Pretty nice, I’ve had them for years and I really love them. Planning on giving it a shot to bring them back to life with the soldering iron.

The second pair was some cheap Wal-Mart replacements for the Pysc’s.

After those died I decided to suck it up and grab a new pair of good headphones. I headed over to The Mart over lunch and picked out a pair of Skullcandy Lowrider headphones for sub-$30 before tax.

Good Looking Headphones

They aren’t bad, especially for a quick buy. Snazzy looks, 40mm driver, comfy padding, good isolation and they fold up nice. They are a bit floppy in the joints until you get them on your head, which feels (and probably looks) pretty silly. Cord is a bit shorter than I would expect too.

The unfortunate surprise came when I hooked them up. They sounded great in the store, but back at the office they were flat. Too much bass and mids. My guess is that they are optimized for hip-hop or something else. Either way, it wasn’t what I liked.

No problem though, after some experimentation I found an EQ curve to make up for the difference. This is what I worked out in Amarok. It feels right to me, I ran it through some Say Anything, Pedro The Lion, and Showbread. Reasonably diverse and fits my music taste.

1.2 dB 1.9 dB 0.0 dB 0.5 dB 1.9 dB 1.2 dB 0.0 dB 2.3 dB 4.2 dB 4.2 dB
60 Hz 170 Hz 310 Hz 600 Hz 1 kHz 3 kHz 6 kHz 12 kHz 14 kHz 16 kHz

End result? I like them, probably won’t take them to the coffee shop for fear of looking goofy, but they are pretty good for home or work listening.

Bonus Review – Skullcandy Warranty Registration

The Skullcandy website says it takes “only 10 minutes” to register your headphones for warranty. Plus you have to register on their site. Really Skullcandy? That’s the best you can do? No thanks, I’ll take my chances without a warranty.

Posted July 8th, 2010 - Permalink
Categories: Consume - Geek
Tags: , ,
No Comments »
 

Thursday Quote: David Thornburg

“Any teacher that can be replaced by a computer, deserves to be.”

- David Thornburg
Educational Technologies Researcher

Posted July 8th, 2010 - Permalink
Categories: Geek - Life
Tags: ,
No Comments »
 

Charting Weight Change With Google Visualizations

I started trying to lose weight a while back, since we both know I’m a bit heavy and sitting in front of a computer isn’t going to lose the weight for me.

Naturally, it’s important that I incorporate technology into my weight loss somehow, right? So I decided to give the Google Visualizations API a spin.

I worked up a quick data format and a method to pop the data out. Nothing fancy, just a fixed width flat file. This doesn’t deserve a database.

1
2
2010-06-30 235.4
2010-06-29 236.8

Easy to read, easy to edit, and easy to consume. Every morning I just hop on the server, add the day’s weight and log off.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
  // Get the max days back we want to look.
  $max_days = 7;
  if( isset( $_REQUEST['days'] ) and ! empty( $_REQUEST['days'] ) )
    $max_days = intval( $_REQUEST['days'] );
 
  $i = 0;
  $lines = array();
 
  $fh = fopen( 'data.txt', 'r' );
  while( ! feof( $fh ) and ++$i <= $max_days ) {
    $line = fgets( $fh );
    if( empty( $line ) ) { continue; }
    array_unshift( $lines, $line );
  }
  fclose( $fh );

Now I just needed to represent it. The API is very object oriented and easy to work with. I wish there was a less verbose way of presenting the data, but you can’t have everything.

Actually, there may be a better way, I just didn’t come across it while speed reading the docs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn( 'string', 'Date' );
  data.addColumn( 'number', 'Weight' );
 
  data.addRows( <?php echo count( $lines ); ?> );
 
  <?php
    $i = 0;
    foreach( $lines as $line ):
  ?>
  data.setValue( 
    <?php echo $i; ?>, 
    0,
    '<?php echo substr( $line, 0, 10 ); ?>'
  );
 
  data.setValue(
    <?php echo $i; ?>,
    1,
    <?php echo floatval( substr( $line, 11 ) ); ?>
  );
  <?php
    ++$i;
    endforeach;
  ?>
 
  var chart_div = document.getElementById( 'chart_div' );
  var chart = new google.visualization.LineChart( chart_div );
  chart.draw(
    data,
    {
      width: 800,
      height: 600,
      title: 'Weight Over Time'
    }
  );
}

And there you have it, fancy charting in no time.

Example Chart

See it in action at http://static.velvetcache.org/weight.php

Get the full source at http://gist.github.com/459148.

Posted July 5th, 2010 - Permalink
Categories: Consume - Geek - Life
Tags: , , , , , , ,
No Comments »
 

Streaming Tweets With Tweepy

I’ve been meaning to check out the Tweepy for a while and got around to it today. It’s a Python library for interacting with Twitter. The feature I’m most interested in is the streaming API support, which isn’t advertised much by Tweepy but seems pretty solid.

Tweepy has pretty good documentation, and the code is terse and readable, but what I found most useful was the examples repository, which had the only example of streaming with Tweepy that I could find in the official documentation.

It’s really straightforward. Implement a tweepy.streaming.StreamListener to consume data, set up a tweepy.streaming.Stream with that listener, then pull the trigger on the streaming function you want to use.

Here’s a quick example I set up to track the filter keyword “omaha”.

# -*- coding: utf-8 -*-
 
from tweepy.streaming import StreamListener, Stream
 
class Listener ( StreamListener ):
  def on_status( self, status ):
    print '-' * 20
    print status.text
    return
 
if __name__ == "__main__":
 
  USERNAME = "YourUsernameHere"
  PASSWORD = "YourPasswordHere"
 
  listener = Listener()
  stream = Stream(
    USERNAME,
    PASSWORD,
    listener
  );
 
  stream.filter( track=( "omaha", ) )

Posted July 5th, 2010 - Permalink
Categories: Consume - Geek
Tags: , , , ,
No Comments »
 
More Posts
 
Copyright © 2006 - 2010 John Hobbs
get userping