Gaze upon my newest creation. This setup is probably the first of its kind. The black clock showing 2:17 is a digital alarm clock. It sits on top of a clear box holding a circuit board that I made. The white clock showing the wrong time is an analog alarm clock. I can confidently say that when the digital clock reaches the alarm setpoint, the mechanical bells on top of the analog clock will ring.
I use a very old laptop which only has USB 1.1 ports built into the motherboard. In order to use cameras, external drives and printers, I have always put a PCMCIA expansion card in my computer that provides two USB 2.0 ports. The PCMCIA bus is based on PCI, so it supports transfer speeds of 1Gbps... more than enough for the 480Mbps of the USB 2.0 standard.
Since 2004, I've owned a ThinkPad A22m - a laptop that came out in 2001. Much to the dismay of certain friends, I still feel no need to purchase a newer computer. I've often said that this old hardware can do everything I need while still letting me run modern software. However, it now seems like I will have to take some responsibility for the code if I want that to still be true in the future.
Specifically, I am talking about open source ATI drivers on GNU / Linux. The four main video card lines released by ATI (now owned by AMD) have been Wonder, Mach, Rage and Radeon. I don't think Wonder cards have any features that would warrant the development of a dedicated driver but Linux drivers for the other three have been written.
The Radeon driver is actively maintained by software engineers at AMD and some people who work for other software companies. The other two? Not so much. The Rage 128 driver was especially in need of a major update recently. And since my computer has a Rage Mobility graphics card, I felt motivated to start working on the code even though I had never hacked such a low-level piece of software before. Since the effort has largely succeeded, I would like to share my experiences with editing an open source video driver. The learning curve was quite steep and when I first started reading documentation, it seemed like it was written for a different audience. This post is going to be an unadultered attempt to get a completely new reader to catch on to what I did. I'm sure I will later find out that many things written in this post are technically incorrect, but I will not edit them. I want the only knowledge communicated in this piece to be the knowledge that one might reasonably be expected to have after jumping into driver development for the first time.
The only mobile phone that I have ever owned is the Samsung SPH-N270. In 2003, when The Matrix Reloaded came out, 2500 of these phones were made and sold for $500 each to promote the movie. Mine is number 551. They were by no means the most feature-rich phones of their day but they may have been the coolest. Few phones are able to divide a community in this way. Everyone who knows about the N270 either thinks it is the ugliest phone ever or the sexiest phone ever. My opinion is obviously the latter.
The only carrier participating in the promotion was the American network Sprint PCS. Figuring out how to use the phone in Canada was a minor hurdle to overcome, but that is nothing compared to the hoops I had to go through to get this phone fixed. The phone is now 8 years old which is probably twice the average lifespan of a cell phone. The only forum posts about the phone that I have seen recently say something like "I used to use my Samsung N270 but now either the phone or the battery is broken." This happened to me but to make a long story short I found a company that is willing and able to do internal repairs on this phone and other phones from that era. That company is CellFix and they did an amazing job.
While I was stuck with a broken cell phone, I briefly considered doing what normal people do and purchasing something more modern (like an Android phone). But now that it is clear that my matrix phone is still usable, I will proudly recount my experiences with this phone and mention some tips to anyone who has one or wants one. It's not like I will stop using it any time soon!
As part of a summer internship, I got to put together several electronic components, and for the first time, use something more permanent than a breadboard. I found my first circuit very frustrating because my solder connections kept coming loose and I was told to make it as small as possible. But seriously... am I so used to learning about algebraic varieties and Feynman diagrams that I have become allergic to learning a real transferable skill?
The need for my first circuit arose because the photodiode that we used to measure the power in various lasers had a proportionality constant that was too small. For every Watt of power, the diode was calibrated to put only across two pins. We wanted to amplify this to a larger value. The component typically used for these applications that you can buy off the shelf is the operational amplifier.