Categories
Uncategorized

The RasterWeb! Report for 2011

Two-Thousand-Eleven was a banner year for RasterWeb!. We published a total of 253 blog posts, and as you can see from the pretty chart, we were fairly consistent, with March and May being the standout months. The rise in March was due to another successful RPM Challenge which I did in February, and then released all the songs in March. May’s activity was due to me joining in for Processing Month, and posting a lot of sketches.

2011 Report

Compared to 2010, we had 35 more posts. But you don’t care about quantity, you care about quality! Were the posts better in 2011? I don’t know, that’s for you to decide. I did however, have a few really popular posts, mostly thanks to Make Magazine, who featured a number of my posts including: Arduino-Controlled CheerLight, Zen Button, DIY Panorama Rig, Make A Sketch Draws With Processing, and the super-popular DIY Photobooth Rig with Custom Button.

Speaking of buttons, my button posts got a lot of attention/traffic from Sparkbooth and from the Teensy Project page. In fact, the post probably has more comments than any other I’ve written. I’ve also got emails from a lot of people who bought a Teensy and then got totally lost trying to build a button. I helped as many people as I could. Which brings us to…

Why I continue this blog…

It’s safe to say that one of the main reasons I started blogging had to do with wanting to give something back, or as the kids say, to “share” things. When I started using the Internet in the mid-1990s, I learned a lot, and at some point I decided that I wanted to share my knowledge as well, so that’s what I did. I didn’t get into it for the money (there was none back then) but for the purpose of putting things out there that would help other people, the same way other people helped me. Sure, I publish a lot of, um, weird stuff that has nothing to do with helping people, but hey, they can’t all be winners.

So with my latest adventures in making, I’ve started telling people that sharing about making is just as important as making. I believe that, and I know that Make Magazine believes that, and Instructables believes that, and Adafruit believes that. It inspires others to make things, and do things, and that’s a good thing.

If I’ve inspired you, that makes me happy… and if you’ve inspired me, I thank you. Let’s keep it up!

Categories
Uncategorized

gnuplot

gnuplot

I’ve started to use gnuplot, which is a “command-line driven graphing utility.” It’s not open source but it is freely available (under some other license) and it’s been around since 1986. I don’t think it’s going to “go commercial” any time soon…

It’s proving challenging to understand gnuplot and get it to do what I want it to do, but I’ve tried using OpenOffice and Numbers and neither one can seem to plot 24,000+ data points. I considered updating my Perl code to write SVG files (and I may revisit that) but gnuplot seems to be the tool to use in this case…

Hopefully by the time I’ve collected a few more weeks worth of data I’ve got a better idea how to use gnuplot… but if you’ve got any pointers, I’d love to hear them.

Categories
Uncategorized

Visitor Stats

For some reason (probably the whole “end of one year, beginning of another” thing, I felt like grabbing the visitor stats for this site.

I hadn’t realized that it was only about 6 months since the last time I did this. Even better, now we can compare! See the July 2010 stats if you want to review.

Visitor Stats

Compared to last time, Firefox is down, while Chrome is up. I guess that’s not surprising. Chrome is gaining in popularity. As for this site, I write about Firefox and Mozilla a lot more than I write about Chrome, so I’d still expect some good Firefox numbers.

Internet Explorer is down (thank goodness!) but so is Safari. I’d almost expect Safari to go up a bit due to the iOS… but I guess not.

Visitor Stats

Windows went up slightly, while the Mac stayed about the same. iPad went from less than 2% to over 11%. I really didn’t write much about the iPad until the end of December, of course, a lot more iPads are out there now.

Visitor Stats

The interesting number here is the second one, 768×1024, which I believe correlates to iPad in portrait mode. Very interesting! The other numbers are all pretty close. Do I really have that many visitors to this site using iPads?

I’ll have to remind myself to check the numbers again in 6 months…

Categories
Uncategorized

The RasterWeb! Report for 2010

Back in June 2010 I somehow got a “renewed interest” in blogging here at RasterWeb! What does that mean as far as numbers? It means I blogged a lot more… How much more? Let’s go to the chart…

Posts Per Month for 2010

We started the year slow, having just a few blog posts at the beginning of the year. Since 1997, I’ve always managed to post at least twice per month (if not more.) I’m glad to see I haven’t gone below that number. Our busiest month in 2010 was August with a whopping 42 posts! We tapered off just a bit after that, but that’s fine…we’re still seeing about 20 to 30 posts per month. It’s not just about the numbers though… I’m not consciously trying to write a zillion posts each month, it’s just (hopefully) a reflection of how many ideas I have, or how many things I have to say, or the amount I have to share with the web.

So what have been a few of the more viewed posts this year?

Recursive FTP using wget. I wrote this in 2007 after I had to get some files from a server. It’s a 4 line post. It gets a lot of traffic, probably because it easily and clearly provides a solution to a problem.

Twitter Monkey. The Twitter Monkey post got a lot of traffic… it was posted on Make and Gizmodo, and a whole lot of other places. The video saw over 5,700 views. It’s amazing how a silly idea and a few hours of hacking got so much attention.

Lanyrd. I just happened to write about Lanyrd the day it was launched. Simon Willison commented on the post, and on his own site.

A few other popular posts included: vCard to CSV Converter, SCP and Spaces, Get your Gmail with Perl, and Fix Your InfoLithium Battery.

I also started tagging posts this year, and it looks like I tend to post the most about barcamp.

As always, visit the Archives page for a list of all the posts by month, or the Archives Legacy page for the older posts that haven’t been put into WordPress yet.

Here’s to 2011 and the start of another 13 years of blogging!

Categories
Uncategorized

Accelerometer Art

Accelerometer Art

Accelerometer Art

Accelerometer Art

At MilwaukeeDevHouse5 Matt and I played with Arduinos, so here, with the fairly uninspiring name of “Accelerometer Art” I present three screen shots of a Processing application displaying data from an ADXL335 accelerometer connected to my MacBook via an Arduino.

Here’s the code that runs on the Arduino…

/*
 * Accelerometer.pde
 */

#define aref_voltage 3.3

int xpin = 1;
int ypin = 2;
int zpin = 3;

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

void loop(void) {
  int xval = (analogRead(xpin));
  int yval = (analogRead(ypin));
  int zval = (analogRead(zpin));

  Serial.print (xval);
  Serial.print (" ");
  Serial.print (yval);
  Serial.print (" ");
  Serial.print (zval);
  Serial.print (" \n");
  
  delay(10);
}

And here’s the code that runs in Processing…

/*
 * Accelerometer_Graph.pde
 */

import processing.serial.*;

Serial myPort;
int xPos = 0;
int yPos = 0;
int zPos = 0;

void setup () {
  size(1024, 768);
  println(Serial.list());
  myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n');
  background(0);
}

void draw () {
  // everything happens in the serialEvent()
}

void serialEvent (Serial myPort) {
  String inString = myPort.readStringUntil('\n');

  String[] nums = split(inString, ' ');
  String inStringx = nums[0];
  String inStringy = nums[1];
  String inStringz = nums[2];


  if (inStringx != null) {
    inStringx = trim(inStringx);
    float inBytex = float(inStringx);
    inBytex = map(inBytex, 0, 1023, 0, height);

    stroke(255,0,0);
    point(xPos, height - inBytex);
    strokeWeight(3);

    if (xPos >= width) {
      xPos = 1;
      background(0);
    }
    else {
      xPos = xPos + 1;
    }
  }

  if (inStringy != null) {
    inStringy = trim(inStringy);
    float inBytey = float(inStringy);
    inBytey = map(inBytey, 0, 1023, 0, height);

    stroke(0,255,0);
    point(yPos, height - inBytey);
    strokeWeight(3);

    if (yPos >= width) {
      yPos = 2;
      background(0);
    }
    else {
      yPos = yPos + 1;
    }
  }

  if (inStringz != null) {
    inStringz = trim(inStringz);
    float inBytez = float(inStringz);
    inBytez = map(inBytez, 0, 1023, 0, height);

    stroke(0,0,255);
    point(zPos, height - inBytez);
    strokeWeight(3);

    if (zPos >= width) {
      zPos = 3;
      background(0);
    }
    else {
      zPos = zPos + 1;
    }
  }
}

void keyPressed() {
  if (int(key) == 113) {
    exit();
  }
}

The Processing code was based on an example from Tom Igoe which he placed in the public domain. (Thanks Tom!)

I heavily violated the DRY rule with this code, so it should really be re-written to be more efficient. Besides all that, it does actually work, as you can see from the awesome graphics above. (Thanks to Matt Gauger for helping with the code, and yes, he scolded me for violating the DRY rule.)

This was a great first step into Processing for me, and I look forward to improving this code, as well as explore some other ideas I have for graphing data.

(If you’ve got any pointers to great tutorials, blogs, or web sites focusing on Processing, let me know!)