Archive for category Uncategorized
An exciting month for Google
Posted by aaron in Uncategorized on December 8th, 2009
A recap of all the things Google has announced in this first week of December. The big ones are Google Goggles, new versions of Chrome, and real time searching, but they’ve also launched some less flashy things like a dictionary and public DNS service.

Augmented reality becomes a ... reality
Google Chrome for Mac and Linux
Vevo, a venture between major music labels and Youtube.

Liquid Galaxy: 8 screens of Google Earth
Liquid Galaxy, because eight screens are better than one.
Google Public DNS, at 8.8.8.8 and 8.8.4.4
8×8 RGB Buttons Project Description
Posted by aaron in Uncategorized on February 16th, 2008
Project Description
We are creating an 8×8 matrix of RGB LED buttons. SparkFun sells a 4×4 button pad and circuit board for this. We’re going to connect four of those together to make an 8×8 grid. When you press a button, it will cycle through 8 colors: red, yellow, green, cyan, blue, purple, black and white.
It would be cool if you could save these images that you make, and then show them as a slideshow, although that will be a secondary goal that we’ll shoot for only after we get the LEDs and buttons working in the first place. The Arduino has 512 bytes of EEPROM memory (which will not be lost when you turn off the board.) You can read and write to this with the EEPROM functions. This would allow us to store 512/64 = 8 images.
Parts List
4 Button pad breakout boards
4 Rubber button pads
100 RGB LEDs (Common Cathode) There are also lots of other listings of the same item.
4 or 16 MAX7219 LED matrix drivers (maxim-ic, digi-key)
Helpful Links
A good explanation of keyboard scanning
Arduino code for using the MAX7219 chips
Development Info
I am unsure at this point whether we can run the 8×8 leds with one LED driver per color, or if we’ll need one LED driver per 4×4 board. I think it depends on how the boards are wired. Since the drivers are not as cheap as I thought, it is kind of important that we figure this out soon. Or we could just order 16 of them and plan on adding them to the pool of available electronics, since they’ll be useful for something else some day anyway.
Ultrasonic Sensors – continued
Posted by aaron in Uncategorized on November 21st, 2007

Haven’t posted on this project in a while, but there have been some developments.
I determined that the reason I wasn’t seeing anything at all was because I had inadvertently grounded one of the output pins on the receiver. Whoops, I figured it would be something stupid like that.
However, that did not immediately solve my problems. Luckily, I was working in an electronics lab, where there was some handy equipment like an oscilloscope and an RF spectrum analyzer. Using the oscilloscope to monitor the receiver, it quickly became clear that there were some interesting timing issues to resolve. The receiver kept getting out of sync with the transmitter, which was characterized by a slowly rising voltage on the output pin. It took a half-cycle for the receiver to lock on to the transmitter’s signal when it first starts, and if the transmitter was silent for longer than ~100ms, the receiver would lose its lock. This basically means I would have to work pretty hard to keep them in sync.
After that little experiment, I decided to look around for some alternative wireless modules that would do some of the lower-level signal processing for me, so I could focus on the main goal of the project. Craig Hickman told me he has successfully used the xbee modules in the past. These are relatively cheap ($19 each) modules which can both transmit and receive serial data.
Best of all, the xbees have a built-in ADC converter! This pretty much means all the hard work is done for me, and I don’t need an Arduino in the transmitter at all! I can connect the analog output of the Ultrasonic sensor directly to the xbee module. This data will be transmitted serially to the receiving xbee module. The receiver will automatically convert that data to a PWM signal! I can then read the PWM signal on the Arduino. Since the receivers will be sending PWM instead of serial, it will be super easy to connect three of these to one Arduino, avoiding the problem of rigging up additional serial ports on the Arduino, or coordinating three transmitters sending to one receiver.
The only remaining question I have is: will I need to do some sort of conversion to step up the 3.3v pwm value from the xbee to the 5v arduino on the receiving end?
Installing majordomo mailing list manager
Posted by aaron in Uncategorized on April 25th, 2006
First, I downloaded the Majordomo source code from here. Following the instructions in the included INSTALL file, I was able to get Majordomo installed relatively quickly. I ran into problems when I started trying to actually send email to the new list. The first problem I ran into was that sendmail wasn’t started, but that was just silly.
The first real problem was something they actually mentioned in the FAQ. I sent a message to the list, and got a response back:
550 5.2.4 :include:/usr/local/majordomo/lists/asuoweb… Cannot open /usr/local/majordomo/lists/asuoweb: Group writable file
This error is mentioned in the FAQ page here. I added the line into the sendmail configuration file, but that didn’t fix the problem. I did the other thing they mentioned which was removing group write permissions on the lists folder and all its contents. That should have fixed it, but it didn’t. I figured it had something to do with the group that owned the files. I originally set up majordomo to use the ‘majordomo’ user and group, so the files were owned by the ‘majordomo’ group. I changed all the files to be owned by ‘daemon,’ and that seems to have fixed the problem. Although, I did a poor job of narrowing down the problem, so I’m not sure which of the steps I tried actually was necessary. For example, I don’t think adding “DontBlameSendmail=groupwritabledirpathsafe” to the configuration was necessary, since now there is no group write bit set.
Now I have a mailing list server running on the Honors College server. I have yet to try to install Majordomo on my VPS which is running Postfix.
/etc/hosts – The hosts file
Posted by aaron in Uncategorized on April 19th, 2006
The other day I decided to set up my iBook so that I can do web development on it.
While setting up my new server, I was moving a domain name to the new server, but didn’t want to actually change the DNS for the domain until I knew Apache was configured properly. I needed some way to test Apache’s virtual host configuration without actually making the DNS change. Turns out, since OS X is based on UNIX, you can add dns entries to your computer manually.
Edit the file /etc/hosts, and include the name and IP address for the host you want to add. For example:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
123.123.123.123 domainname.com
You’ll need to do this with root privileges, since it is a system file. You’ll have to do something like
sudo vi /etc/hosts
Update: In OS X 10.5 it is no longer necessary to reload the hosts file. It will happen automatically.
After you save the file, you’ll need to get OS X to refresh its hosts database.
sudo niload -v -m hosts . < /etc/hosts
After that, you should be all set! Your computer will resolve dommainname.com to 123.123.123.123 without contacting any DNS servers.
Note, this is not an OSX-specific feature. Windows also has a hosts file. It is usually located at:
c:\windows\system32\drivers\etc\hosts
To get Windows to recognize the changes, you need to flush the DNS.
ipconfig /flushdns
You can also read about the hosts file on Wikipedia.
TeX markup
Posted by aaron in Uncategorized on April 16th, 2006
I just found the TeX plugin for Serendipity. It lets you draw cool math symbols like
[tex]\LARGE x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}[/tex]
The Serendipity plugin is on this page, or you can download the zip file directly.
You’ll also need the mimetex program, which actually creates the gif image from the text expression.
I downloaded the mimetex binary directly, from here. I moved it to the /usr/src/ directory.
There was one trick with getting it to work with serendipity. That was making sure the “images” folder inside the plugin’s folder was writable by the web server. Either “chown apache images” or “chmod 777 images” will work. This is necessary because the plugin will cache the image once it’s created, so it only has to use the mimetex binary file once to generate that first image, and from that point on it will always use the cached one. It uses an md5 hash to generate a unique string to identify each math expression. Very clever.
Lorem ipsum dolor
Posted by aaron in Uncategorized on April 15th, 2006
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
If you’ve ever used a desktop publishing program or something similar, you probably recognize this text. It is commonly seen as dummy text when creating page layouts for print or web. If instead you were to use phrases such as “Your content here” or “The quick brown fox jumps over the lazy dog,” you would have to repeat these sentences to fill up the allotted space. Your eye would immediately pick up on the stacking patterns that would be created, distracting you from what you are really interested in, which is the layout as opposed to the content.
I’ve always wondered what exactly “Lorem ipsum dolor…” was and where it came from. Today I needed to plop some dummy text down in a new website design, so I did a search for the phrase, and came upon a great website describing its history and usage. Lorem ipsum dolor. It has a neat feature which lets you generate an arbitrary length of this dummy text to use.

