Monthly Archives: June 2009

The Next 700 Programming Languages

I learned that computer scientist Peter Landin passed away recently. Landin’s research helped refine the direction of my college studies, and was always a great pleasure to read. His derivation and explanation of the SECD machine served as the basis for a more mature and clear understanding of many aspects of programming languages and their evaluation. And, of course, there was his classic paper “The Next 700 Programming Languages”, which provides an interesting perspective on programming languages, where they should were, where they are going, and what is significant about their design. Great stuff!

The Next 700 Programming Languages

Addendum: Here’s my attempt to embed a link to this paper here.

WSPRing via a little HP netbook…

picture-3

When I first began mucking around with WSPR, I was using my Macbook, and I couldn’t get WSPR to compile properly. As a result, I reverse engineered the format a bit, and wrote my own transmit only beacon. That was a lot of fun, but recently I picked up a little netbook (thanks honey for the birthday present), an HP Mini, and since it has Windows XP, I found out I was able to run the real distribution. A side effect of this is that I am both sending and receiving. I seem to be hearing further than I am being heard: for instance, tonight already I’ve got a spot from Germany, whereas I’m pretty much stuck with being heard within the continental United States. I should make a more systematic study comparing who I hear to who can here me.

Test of the HTML 5 video tag…

WARNING: If your browser is “lucky” enough to support the video tag (like certain beta Firefox 3 releases, or Safari) then there should be an image below. It might also slow the loading of the page a bit. Be patient. If you aren’t lucky, it should load really fast.

Finally, finally, HTML 5 is working toward implementing a VIDEO tag (similar to the all pervasive IMG tag) which just works, out of the box. Safari and certain beta versions of Firefox already implement this tag. If I read various news reports properly, the iPhone’s browswer will implement it too.

Wouldn’t it be swell if we could just skip all the plug in nonsense and display video on our webpages as easily as images?

Build Your Own Z80 Computer

Old timers may remember Byte magazine, and Steve Ciarcia’s column therein. Steve went on to publish Circuit Cellar magazine, an electronics magazine which is more or less dedicated to embedded computer systems. Byte books published a book of his called “Build Your Own Z80 Computer”, which now can be downloaded in its entirety with Steve’s Permission from scribd or Google Books.

Why would anyone want this book? After all, the Z80 is pretty primitive compared to even microcontroller chips like the Atmel ATMega series or PICs. For me, it’s a return to my computing roots; a chance to do something that I couldn’t do back then. Z80 parts are still available and inexpensive, and you can still learn a lot about computers by tacking one of these things together.

Build Your Own Z80 Computer.

Z80pack – Z80 Emulator and Crossassembler for UNIX

More “don’t ask” links. I was tinkering with emulators again, and ran across this comprehensive page on the Z80 and the various DRI operating systems that ran on it. Nice emulators and lots of software and archived information.

Z80pack – Z80 Emulator and Crossassembler for UNIX

Addendum: The Z80/CPM were CPU/Operating systems back in the days before PCs, just in case you are too young to know. Back then, using a computer looked something like this:

And yes, the IMSAI 8080 had an 8080 inside it, not a Z80.

DIY Wifi Radio courtesy of mightyOhm

Last weekend, I fought off my head cold and drug my body off to the Maker Faire to get inspired by the projects. I saw some good stuff this year, but didn’t really have a lot of time to talk to people and get in any deep discussions. One of the neater projects was courtesy of Jeff, Tony and Kylie at the mightyOhm blog. They built a very stylish looking Wifi Radio, using an Asus WL-520UG router as its core. I surfed over to their blog, and they have a really excellent 10 part series on how they did it. Awesome.

mightyOhm » Blog Archive » We rocked the Maker Faire!.

I’ve goofed around quite a bit with the Linksys WRT54GL and related routers, using alternative firmware, and I highly recommend them. The nifty thing about the WL-520UG that they used is that it has a USB port, which can be used to add all sorts of peripherals, like sound cards (for their projects) but also webcams and the like. Looking on newegg’s website, I see them available for $44.99, but also with a $10.00 mail in rebate. Verah nice.

Addendum: Jeff has a nice little writeup with lots of pictures on why and how you might want to hack one of these routers. Nifty.

ATMEGA328 suppliers?

I suspect that if I could replace my ATMEGA168 with an ATMEGA 368 (as suggested by Robert, thanks!) life might be better for my Arduino and its attempt to use the waveshield. The problem is ATMEGA328s seem to be scarcer than hen’s teeth, especially in the PDIP package. I found a place in Canada that had some, but the shipping is prohibitive. Adafruit, Digikey, Arrow, NuElectronics, Sparkfun, all out of stock. Groan.

Gordon Bell: Computers, Projects, Patents, Books, and Papers

I was trying to hunt down Gordon Bell’s description of the PDP-8 architecture (don’t ask) which I heard was available in his 1971 book, Computer Structures: Readings and Examples. A bit of googling found that this book is available from his website at Microsoft, along with many other interesting papers and books. Bookmarked for future reading material.

Gordon Bell: Computers, Projects, Patents, Books, and Papers

Arduino Waveshield, sans joy…

At the Maker Faire this weekend, I picked up a Waveshield kit for the Arduino. It’s a cute little board with an SD card interface, an I2C DAC, and a little op amp circuit to provide an audio interface. It took me about an hour and a half to solder together (I’m slow, but careful) but it doesn’t appear to work. I’m suspecting a software, rather than a hardware issue. I downloaded the “playall” example, which simply plays all the audio files on your SD card, but it appears that it runs the setup() code properly, but resets the CPU somehow before ever running loop(). Lady Ada’s documentation suggests that I could be running out of RAM (my Arduino is one of the older NG ones, and has only 1K of ram, but still….) Probing with an oscilloscope reveals relatively few active signals on the top of the board when the program is running, which suggests that it’s not even trying to clock the audio data out. I was thinking of writing a simple program that just exercises the DAC first, to make sure that the board works (generating a square or triangle wav is pretty easier) since I think it’s the SD card that gobbles memory.

Anybody whose gotten one of these to work, I’d appreciate the help.

My idea is to use this to store prerecorded voice messages, and then use it to key a small FM transmitter and send voice telemetry for my balloon project.