Archive for January 2008

I dug up some old code from last summer. It was a PHP-based AJAX photomanipulator. Well, I decided to move it off free hosting and put it on my dedicated Debian dev server, so I could feel physically closer to it.

It didn’t work. Well, parts of it. The reason was that the php5-gd package I used didn’t provide the imagefilter and imageconvolute functions. So I set off to rebuild php5-cgi, with the statically-linked version of GD that does provide these functions. Here we go:

apt get update && apt get upgrade
cd /usr/src
apt-get source php5-cgi
apt-get build-dep php5-cgi
cd php5-5.2.0

Okay, so we now have the source package. The configuration should be edited to indicate that we want statically-linked GD. Any text editor should do.

nano debian/rules

Change all instances of -fix-with-gd=shared,… to -fix-with-gd. Also add -fix-with-gd -fix-enable-gd-native-ttf to the configure-cgi-stamp: patch-stamp section. Now we save the files and start the build process.

./debian/rules binary

This takes a while. When it’s done, there should be some new debs in the parent directory. Let’s install them.

dpkg -i php5-cgi_5.2.0-8+etch7_i386.deb

At this point, the Web server should be restarted.

I just took a trip to Columbia University’s core curriculum office, and it just about ruined my day completely. I am appalled at the level of service these people render for $45K a year.

There’s a lecture class that every Columbia College student must take, called Frontiers of Science. With this class, one must also take a discussion class called, not surprisingly, Frontiers of Science – Discussion. As a student of science, I was fairly excited about this class; nonetheless, I had to defer taking it for a year because of scheduling conflicts. When registering for the class again, I found that while I could place myself into a discussion class, I was not able to register for the lecture. So I went to the core office yesterday to ask to be placed into Frontiers of Science. The representative presented me with a form, titled Petition to Section Change or Enroll in FRONTIERS OF SCIENCE 2007-2008, with which I could petition for a seat in the class.

It is strange that I have to petition to get into a class that I’m required to take, but the representative assured me that this is a standard process. Understanding that Frontiers of Science is a popular class, I complied. But I was uncertain when I was asked to select a class time from a list of 11 choices. My understanding was that there was only one lecture per week. I asked the representative again, and she confirmed that these were, indeed, the times that Frontiers of Science was taught. At this point, an authoritative figure by the name of Clarence D. Coaxum stepped out and supported her assertion. When I submitted the form, I was told that the changes would be in effect by 4:00 PM the same day.

Well, at 5:00 PM when I checked my course listing, I still did not see Frontiers of Science anywhere; I decided to go back to the office today for an explanation. When I checked the listing again in the morning, I was still not in the lecture class. To top that off, I had been moved to a different discussion class, which completely ruins my schedule.

Back at the office, Mr. Coaxum told me that they had not received any request from me to be enrolled in the class, and promptly told someone to register me in the class. When I asked about the discussion class, he said that I had petitioned for my class time to be changed. He asked if I had read the form fully, implying that I was somehow incapable of reading. Of course I had read the form fully! I had even received an explanation. I challenged him to read the form himself, and he found no valid indication that it’s for the discussion class and not the lecture class. However, he said that the office would not do anything about it because, quite simply, “[I was] the only one who had a problem.”

This absolutely unprofessional behavior left me speechless. I cannot believe that I paid these people to refuse to help me and to mislead me. I am not a happy customer. The way this case was handled is deplorable. It is difficult to imagine that an office at such a prestigious college as Columbia would treat students this way.

Being misleading may get you one unfortunate customer, but it’s just not the way to do business.

Time passes too slowly, too quickly, never at just the right pace. When you’re working and you’ve got a deadline… When you’re studying for an exam… When you’re actually taking the exam and you’re well-prepared or not… When it’s the end of the year and you’re waiting for the next… When it’s already seven days into the new year and you haven’t gotten anything useful done… When you just can’t wait to see him/her again… When you’re with him/her and it’s the end of the day… When you’ve made your promise to meet again…

Oh, what we’d give to be able to always live in the present; yet, that can be very difficult to achieve. Why do we tend to dwell in the past, fear the future, and live in our imagination? Are some parts of our history so difficult to let go of? Do events in our history define us? Is the future so intimidating, uncertain? Can we accept who we are about to become? But we can always imagine what we hope to be, what we wish had been. Is it this constant disparity between the ideal and the real that drives us?

I believe that we are defined by our history, and that we cannot be separated from our past. Thus, our past shapes our future. It’s like when you drop a pebble into a pond and the ripples spread forever, reflecting off objects, mixing with other waves. We’re like waves — a sum of what we were, what we are, and what we will be. And when waves mix and interact, patterns are generated that take on lives of their own, endlessly propagating. And if we take one wave by itself with no boundaries… how lonely it must be, radiating forever into nothingness! A wave needs company to make something of itself, a beautiful pattern. So do we. We cannot ever be alone… and everything that we do has a consequence.

Do waves like to interact with other waves? Do waves make promises to other waves? Well. They must — for a wave is itself a promise of a future grounded in its past. And when a wave makes a pattern with another wave, they become linked… and the pattern tells of a promise fulfilled.

The baby railgun was fired for the first time tonight. I was surprised that it actually worked, being so tiny. It’s also horribly inefficient. At the moment, it’s a hot rail type railgun, which means that the rails are energized before firing, and the projectile completes the circuit when injected into the barrel. Currently, I use a bamboo toothpick to push the projectile into the barrel. There’s a problem with that — because my hand is relatively slow, the moment any part of the projectile contacts the rails, that part is blown off, leaving the rest of it behind. I can certainly use compressed gas to inject the projectile, but that defeats the purpose of having a small and cheap demonstration railgun. The other choice is to use a neutral rail design, and use a switch to close the circuit. The switch would be exposed to sparks and arcs, so it would not last long.

That’s enough talk for now. On to the pictures!

Read on »

So… I broke another blade today. I really need a bandsaw… oh, well. But the beauty of this project is that it can be done without power tools, just not as quickly or neatly. I hacked out a couple of rails from an aluminum busbar, sandwiched them between microscope slides for heat resistance, and sandwiched the resulting unit between acrylic sheets for impact resistance. The whole assembly was held together using a couple of binder clips, so it can be taken apart easily and serviced.

The rails were 3.5″ x 0.5″ x 0.125″ and placed 1/16″ apart. The microscope slides were 3″ x 1″ and just enough to cover the rails and let 0.5″ stick out for the electrical connections. The acrylic sheets were 3″ long and wider than the microscope slides; this makes handling the barrel safer, because no metal is exposed at the sides.

Now the only thing I’m worried about is unwanted capacitance forming between the metal binder clips and the rails. We’ll see how it goes.

Its time for pictures!

Read on »

A railgun needs a pretty beefy power supply that’s able to dump loads of current across the rails. Trying to keep costs low, I decided to borrow the charging circuit of a disposable camera. I removed the capacitor, xenon flash lamp, and a bunch of nonessential parts. Then I soldered on some switches, resoldered the indicator LED onto longer wires, and added alligator clips that will lead to the capacitor bank. Obviously, the capacitors are also to come from disposable cameras.

Here’re some pictures.

Read on »

The fun thing about WordPress is that it’s easy to install and easier to upgrade.

When I upgraded to version 2.3.2, however, there was a pretty annoying issue with every single page redirecting to itself. It turned out that this was a feature, not a bug. I deployed the one-line plugin and the infinite loops stopped. This needs to be fixed someday…

I received an absolutely refreshing bottle of perfume today (thanks, dearest), which inspired me to Google for perfumes and stuff.  Interestingly, this turned up in the results:

Eau de Google 1

Eau de Google 2

Fun, eh? I wonder what Google for Men smells like…[via TecnoCHICA]

Happy New Year, all! And in the spirit of starting the year with a bang…

I felt like having some fun, so I started designing a tiny railgun. A tiny, kid-safe railgun. Eh, who am I kidding?

Anyhow, I imagine a small power supply based on the charging circuit in a disposable flash camera and a capacitor bank made from capacitors found in more disposable flash cameras. The rails would be short copper bars — somewhere in the range of three inches long, positioned about a millimeter apart. They’d be secured in a glass and plexiglas barrel using cheap clamps, and connected to the circuit using alligator clips. Unfortunately, there won’t be a real high voltage switch until I find something like an SCR rated for high currents; instead, I’ll just make do with a spark gap trigger.

What about the projectile? Ha. What projectile? The power supply should be able to dump 330V of high direct current across the rails for a split second. I imagine there to be just enough oomph to vaporize/ionize a tiny piece of aluminum foil and sling the plasma a couple of feet. Not bad for a baby model, eh?

The power supply’s pretty much done; now I just need to get me some copper bars and really thick copper wire…