Computing and Electronics and Science02 May 2008 01:21 am

It is unbelievable, but look around you right now. Every piece of electronic equipment is now obsolete. No joke, the fourth circuit element type following resistors, capacitors, and inductors has been realized in our lifetime. Called the memristor (which I am now having to add to my spell check dictionary as a new word), has been invented by Hewlett Packard Senior Fellow R. Stanley Williams at HP Labs of Palo Alto, California.

To paraphrase an article found online here

The development of the memristor comes after realization that the fundamental relationship in passive circuitry is actually not between voltage and charge, but rather between flux and charge (flux being a change in voltage). All it took was a change in the variables.

Just like when Dmitri Mendeleev invented the periodic table, it was incomplete. He believed that there must be missing elements from the table. The same held true for a professor named Leon Chua in a 1971 paper he wrote for the IEEE Transactions on Circuit Theory, in which he postulated that there must be a fourth circuit element type. Chua’s postulation was apparently materialized last month at HP Labs when they produced the first memristor, which could only be developed using the corrected variables.

Like “Aristotle’s Laws of Motion,” circuit theorists have been using the wrong pair of variables all this time. Under Aristotle’s Laws of Motion, he claimed that force was proportional to velocity. A misleading statement that remained so for 2000 years, until Newton discovered that the wrong variables were in use.

So that said, I think about my fellow EE and CE students at Florida Tech, and all over the world for that matter, who have been taught, and have practiced, a fundamentally flawed circuit theory. I also think back on my Physics II class where these topics were discussed, and the professor described scenarios where anomalies occur. Now it is known that these anomalies are mere inaccuracies. Everyone was wrong, and now textbooks in physics and electronics must be rewritten.

Interestingly, some internet sites have called the memristor a “Flux Capacitor” since “memristance is a relation between magnetic flux and charge” (according to source WikiPedia).

All I can say right now, before I head off to sleep, is that we are in for major changes in electronic design and functionality. Heat and size will no longer be limitations, and electronic devices will be able to “save state” when they’re turned off and back on at a later time. Though HP Labs are applying their new component to new circuits, the potential has not been fully tapped yet. Who knows what we will see as a result of this incredible scientific discovery?! I can’t wait to find out… But I gotta get some sleep and go to work tomorrow… :)

UPDATE 5/2/08:
I was beginning to think this was a grand hoax. Nobody I talked to has ever heard of this before, and no news outlets on TV even mentioned this. People I know studying EE and CE have never heard of this before. Every day I search ‘memristor’ I see more and more validation, verification, and corroboration that this is indeed a real discovery and will really change how the electronics industry works. Even EETimes comes up as the number 1 result on Google searches. This is very, very exciting news. It feels like vindication for all those really well written April Fool jokes I’ve read about in years past. Looks like the Ecraf EC-909 is no joke now. If it can be imagined, it can be designed and implemented. Just give it time. I cannot wait to use a computer designed by these new principles!

Journal28 Apr 2008 02:04 am

It looks like I’ve been bitten by the blog bug and now have the desire to write a ton of posts. I want to keep more of a journal of activities on here in addition to my technology postings, so if you’re a reader of the technological stuff you can safely ignore anything in the Journal category. Unless it falls under other categories of interest to you. Whatever the case, this will be a journal posting. Read at your own risk.

Today was mildly uneventful. I spent a better part of the morning trying to build up motivation to study for final exams, but fell victim to YouTube for a few hours. I knew that at some point in the day, I’d be meeting up with my group for the Requirements Engineering project that we will be presenting on Tuesday evening. Email on and off throughout the day with group members revealed nothing about when or where we were to meet. Then out of nowhere, at 4pm, I get an email from Matt saying that he’s heading to Olin Engineering Open Lab. Oh crap, I wonder if he is meeting everyone or just going by himself. I’m crusty, haven’t eaten much, and have been waiting on an email from a student trying to sell his 5 string bass guitar that I want to buy. (I still haven’t heard anything back from him… It’s a great deal and a quality Dean instrument that I’d love to own. You can’t go wrong at a $200 negotiable price that includes a hardshell case). I think I’m going to start collecting stringed instruments. This is going to kill my Drum Set fund… that’s another story. I’m saving to buy Roland V-Drums. I can’t do the real thing because the neighbors would kill me.

So anyway, I get this email. My phone didn’t ring though, and other group members were asking me if and when we were to meet today. I didn’t know. I really didn’t care. I just needed time to shower and grab a bite to eat before running out the door like a chicken..well you get my drift. Checking my phone, I noticed there was one missed call. The ringer was turned off! I didn’t even hear the phone fart its way across the bookshelf! Crap! It was Stephen. “We’re meeting in the open lab like, now. Didn’t you get the email?” Nope, not the one that said we were meeting now. Shower time.

One banana and glass of grape juice later, and I was riding down A1A with Snakes & Arrows blasting on the car stereo. The album is growing on me, and I really like a lot of the tracks. Spindrift and The Main Monkey Business are standouts for me, in addition to the strongholds of Far Cry, Armor and Sword, and Workin’ Them Angels. The whole album motif intertwines with the music conjuring up this southwestern summertime feel that I can really open up and relax to. At first listen, I didn’t really connect with the music, but after a second listening I am beginning to think that this is quite clearly RUSH’s best album in this fourth or fifth phase of stylistic change (depending on how you define their phases). Because of their longevity as a band, they have gone through a number of stylistic changes, bringing about one or two albums during each of these phases which has a very distinct and new feel to it. Because this isn’t a RUSH posting, I’ll just quickly say that Moving Pictures, Power Windows / Hold Your Fire, Counterparts, and Snakes & Arrows make up the sonic pinnacles of the period. Other albums between these are transitions that work their way toward their next redefinition. I agree with many that the latest album is a return to their roots, and it’s a welcome return. The recording was done so well that they don’t even need the fancy electronic effects or excessive use of synths. Each instrument just adds the perfect amount of music and sound to each song– just enough. Very enjoyable.

Anyway, I digress, so I’m at FIT now… Well, almost… when I get a call from Stephen wondering if I died. I know I was taking a long time to get there, but dude, call when I’m like 3000 feet from campus. I’ll give you the benefit of the doubt since you can’t see where I am located and it’s taking me 40 minutes to get there. But I got there. I met everyone up in the Open Lab, and we worked on cleaning up our Alternate and Misuse cases. I also gave my updates to the Requirements Trawling section, and got shot down for using PowerPoint animated transitions on my slides. Apparently nobody likes them. Please, someone, correct me if I’m wrong, but that sounds nuts. According to Stephen, it’s unprofessional looking. Personally, I liked it, and think that my creativity and effort level in the matter clashed with the lack thereof in the slides that I wasn’t responsible for. (Flame me guys, see if I care… :) ) That’s what I initially thought, but when I showed my “Personas” to Stephen, he thought they were great. Jared’s picture (with pink hair), Derek’s picture, and a picture of Chuck Norris at a computer (screen-capped from the Mountain Dew commercial I found on YouTube). No wonder Google bought YouTube. The concepts are ubiquitous with daily life.

Shortly after I got there, everyone got stuck on the misuse case. And then they got hungry. I was already hungry, having had only cereal and a banana all day. So we trekked to the Rathskeller for some good eats. Matt still had over a hundred dollars in flex cash, and once again offered to buy us food. Because I was so hungry and the food was so free, I went all out and got a 6 oz cheeseburger, large plate of onion rings, and a large plate of corn nuggets with a cherry Coke to wash it all down. There are your five basic food groups: Meat (burger), Vegetables (onions, corn), Fruit (cherry Coke), Grease (deep-fry oil), and Trans-Fat (deep-fry oil). I ate it all up pretty fast, and this worried my group. For once in my life, someone wanted me to live until at least Tuesday, because they needed me for the Requirements Project presentation, and hence their grades. J/K.. They got a good laugh and so did I. They couldn’t care less if I lived til Tuesday. Uh oh, isn’t that Aimee Mann’s band? No, I refrain from making any more RUSH references.

Afterwards, we digested for a few minutes, worked some more on Requirements slides, and generally waited around until the Black Kats Kafe opened up. Matt was going to buy us milkshakes for dessert at the “kafe.” And so we got milkshakes not too long after that. We stood around and discussed computer hardware (at least Chip and I did). He has the same old motherboard that I document in great detail on this site, the Abit KA7, and he is now beginning to experience the same problems I had with mine– leaky capacitors. He didn’t see any of them leaking, but did experience the delayed startup (no response to the power button when left off for extended periods of time).

Then we left, and I drove back to Wal-Mart enjoying another round of Snakes & Arrows while taking in the beautiful views over the Melbourne Causeway and up A1A back to my hometown of Indian Harbour Beach.

The day was beautiful. There was an art festival in old downtown Melbourne. And the thought crossed my mind that I will soon be able to enjoy such events on weekends instead of spending countless hours studying for tests and projects.

Tomorrow I will be heading back to FIT for more of the same, and for Linear Algebra group study. I’ll also be buying a blue Dean 5-string electric bass guitar. A nice deal from another student. I hope to use this for recording new music over the summer in addition to my Austin “custom fretless” (a story in itself). My Co-Op of the Year scholarship should pay for most of this instrument, so I’m good (no, I’m not crazy.. I go full-time at work in a matter of days). Stay tuned for a bass-related post!

Good night!

Computing and Programming and School27 Apr 2008 11:48 pm

This spring, my Operating System Concepts class had us complete a number of challenging projects, all under the Linux operating system. Initially, I thought this would be a repeat of the Windows Systems Programming course I took a few semesters back, but with more of a focus on Linux. I was very wrong. Since this is a very long post, I’ll spare the details and say that the Chdir Monitor for Linux 2.6 is a few paragraphs down in the Module section of this posting (project 5).

Our first project was a given. Recompile the kernel with a new static system call which should print “Hello World” to the system log. Since I’ve been a Linux user since kernel version 0.99, this was a warmup for projects to come. Adding a system call to Linux is not very difficult at all. Neither is recompiling the kernel.

The next project fell under the category of assignments that I call “busywork.” It’s not something done in a programmatic manner… draw the process tree with information such as UID, GID, and SID. The only way to lose points on this assignment is to leave one of the required ‘fields’ out. I pulled through without losing anything. I used a combination of output from the ‘pstree’ utility, and ‘ps.’ Pstree prints out a nicely formatted tree of processes and their children. Ps was used to get more detailed process information such as the session ID, and other required pieces of information. The trick is to run both at the same time, or in close succession (especially if being run on a busy server), or there will be a gap in the information presented by pstree and ps. The other trick is to just use one of the two outputs as the basis. I chose the pstree output, and merely added the appropriate information from ps output to each node of the text-based tree. After a few short iterations of work, you don’t even need to refer back to ps for a lot of the requested information. Very simple project.

Next up was a project that used semaphores and shared memory to control a timer. Two programs had to be written for this project; a server and a client. The server had to be written as a daemon, while the client had to connect to the server’s mapped memory and be able to display and modify the counter that the server updated. We could use any of the available shared memory schemes, and could use any available thread synchronization option. Between PThreads and System V IPC, I chose the latter. All of the functions for memory mapping and synchronization have very similar signatures, are well-documented, and easy enough to use. I’ll admit, I went a little overboard in comparison to the rest of the projects submitted, but after coding in a professional environment for almost two years, I can’t just lump everything together into one file. Something interesting that I learned while doing this project is that it is completely possible to attach to any other user’s shared memory segment (and semaphores) granted the permissions are open for read and/or write. If write is enabled, you can really screw up their memory segment. Needless to say, I did connect to other student shared memory segments and watched their counters tick by. They weren’t logged in anymore– they didn’t kill their daemons and didn’t properly clean up the shared memory. For my own project, I have made the code available below, since Dr. Silaghi will not be teaching this course next semester, and thus the code won’t be used as a basis for plagiarism. (If this changes, please let me know and I will remove it from my site.)

Project 3: Controlling a server-based counter using shared memory

For our next project, I managed to shake things up by accident. We were covering EXT2 and EXT3 filesystems in one of our classes. Our next project was to create a file, format the file as an EXT2 filesystem, mount the filesystem as a loopback device, and drop 5 files onto the filesystem. In class, I answered the professor’s question about circular links in an EXT2 filesystem, and suggested the use of a hard link, completely forgetting that hard links are not possible to directories, as they would violate the acyclic law of the filesystem structure. The professor got this wonderful idea to add something new to the project; in addition to the 5 files, create another directory and create a hard link to that directory from a file within that directory (a file that points to its parent directory, basically). At first this sounds hard, but it’s actually very easy if you simply use a hex editor.. But he wanted us to write a second program that does this. Unfortunately, this portion of the project wasn’t made clear in the instructions so half the class didn’t do the hard link, and of those who did, they used a hex editor and only earned half credit. I wrote the program, as he naturally wants us to do everything programmatically (and because I asked to confirm my suspicion). Needless to say, I wrote a program that lets you see what files are in the root directory, and a second program that traverses to the block containing the directory contents of the subdirectory, and which adds a hard link to itself. I left the hard link program very flexible, so you can provide a directory name, and it will attempt to create a link to that dir. It also senses if you supplied a valid directory name or not. I took into account the possibility that the filesystem’s block size could be 1024, 2048, or 4096. The only thing I did wrong here was that I assumed that the directory listing spanned only one block. Easy fix, haven’t done it yet. Here’s the code I turned in:

Project 4: Listing contents of / in an EXT2 filesystem, and creating a hardlink to a directory.

Finally, we were required to write a loadable kernel module that does something that we choose (but it can’t be the “Hello World” module so widely found on the internet). So I thought about this for a few days. Well, like half a day. While I was in one of my classes, to be more specific. I also knew that this project was due on the night of Tuesday, April 15, 2008… If you read a couple of previous postings, you know that this is the night that I had tickets for the RUSH concert. You’d also know that I had a test in Software Design Methods the next day, and had a quiz in Linear Algebra the day before. So there was no way I was going to procrastinate on this one. I started and completed the project in a few short hours of focused work. What does my module do? Well, I wanted to hook the chdir system call in the kernel and monitor/control what users on the system could do. Easy, right? Sure, if you’re using kernel 2.4. But we needed to use 2.6. Linus and friends decided (and rightly so) to remove the sys_call_table export. This effectively makes locating the system call table entry point much more difficult. FYI, sys_call_table is an array of pointers to system call entries (a double pointer, effectively) which points to all the system call entry points. If we can find the address of the chdir system call, we can intercept the call by replacing the address of the system call with that of our own replacement function, do something to the inbound data in our function, and call the original function to complete the system call.

There are solutions to the 2.4 vs. 2.6 problem, however, which are not portable and require much care to implement.

One way is to go into your /boot directory, and open the System.map file for your kernel version/build. The entries in this file should indicate where in memory each export should be located. Though it’s not guaranteed (and I found this out the hard way on my server). Once the address of sys_call_table is located, it can be supplied to insmod as a parameter to your module. Nice, but really not safe, nor guaranteed.

The other alternative is to find some system call that is exported by the kernel, and use this to find sys_call_table. Since all of the system call entries are part of the table, if we know its offset into the table we can track back to the start of the table, thus locating sys_call_table. Sounds easy, eh? It actually is pretty easy, but you need to search within a block of addresses where the table might be located. That’s the hard part. And that’s really not hard, it’s just not guaranteed. I also tried this on my server, with a variety of start and end addresses, as well as a variety of pointer sizes, and never found the address. I also had to shut the power off because my traversal took place at the kernel level, and slowed the computer to a literal freeze while it sat there searching and searching to no avail.

So I decided to make my life easy, and installed the Mandriva Linux VM that was provided to us for the OS Concepts class. Using this VM installation, I verified that the latter solution worked perfectly. I also wrote the professor to see which of the two methods to use, and to tell him that if either are acceptable that I would like to make sure he grades it using the VM. This guarantees everything for the project, and grade. He wrote back within minutes letting me know that the latter solution was the most acceptable, and that it was OK to do this for the project.

A couple of hours later, I had a working module that allowed me to not only monitor which users on the system are changing to which directories, but to perform exclusion/inclusion locks to their home directory. That means, I could prevent them from changing to their home directory, or prevent them from changing from their home directory. I’ll admit, the former is not perfect by any means. It does no checking to see where their request to change dirs comes from, so in practice they can back into their directory by changing to a sub dir and changing to .., effectively moving back into the home dir. There are other flaws, but these could all eventually be worked out to create something of a chroot jail. Well, almost. There’s nothing preventing these restricted users from executing files within folders they’re not allowed to enter. But again, it’s a class project that forms the beginnings of a larger, much better project. Here’s my code:

Project 5: A Kernel Module of Your Choice.

In addition to the module, we had to turn in two papers. One paper described our module, and the other described what modules are. Both had to be at least 3 pages. Mine were 5 and 3, respectively.

Because I got a 96 on the mid-term, did relatively well on quizzes, and got 100s on 4 out of 5 projects, there was another nice little policy in this class: You don’t need to take the final exam if you have an A. So my semester ends two days shorter than it would have if I screwed any of this up. The company where I work has a picnic the day of the final, and now I won’t miss it!

Well, my slacking must end and I must get back to studying for finals… Actually, I must get to sleep now so I can spend the day studying tomorrow!

Uncategorized26 Apr 2008 04:23 pm

Because I’ve been so busy with other things over the past few months (read “year”), I haven’t logged into Wordpress nearly enough. As a result, I missed many people’s interesting comments that got lost in literally hundreds of spam postings. I spent about an hour just now hand filtering most of these comments, and approved some. It is scary to find that these date back almost a year.

Again, stay tuned, as I will be working on this more over the next few days. (when I’m either not studying for final exams, or after they’re over)….

Life and Music and School and Work25 Apr 2008 01:40 am

It has been an age since posting anything on here. Another semester come… and gone. Well, almost. One more day of class, two more days of finals (if I get out of taking another final, otherwise make that three more days of finals). Luckily for me, my final exams all fall on separate days this time. One of these finals is a Requirements Engineering presentation, the other a Linear Algebra test. The presentation takes place the night before an early-morning math test. No fun. But who really cares?

My last post concerned burning and cutting infrared lasers. Funny because I just bought a wireless laser mouse recently. My old Microsoft Optical mouse died on me. The wire went bad, and although I had long planned to replace the ailing wire, it was the idea of dealing with anymore wires that turned me completely off to the endeavor. So while over at Best Buy looking at a replacement washing machine for one they “Lemon Lawed” I decided to take a quick trip over to the computer hardware section to take a quick look at their mice, and their prices. I tried all the wireless mice for comfort, feel, and the kinds of buttons available to me. My Microsoft mouse had back and forth browsing buttons, and I really didn’t want to give those up. Ultimately, and to make a lengthy story shorter, I decided on one of the more expensive options. The Logitech VX-Nano. Designed to be used with notebooks primarily, the receiver fits into the USB port of the computer, and is so small that it can safely be left there even when storing the computer in the carrying case. In fact, it is deemed the world’s smallest wireless USB receiver, measuring in at what looks no larger than 3/16 of an inch. The USB connector, itself, dwarfs the hardware component of the receiver. I may be wrong about this, but I have a feeling they may have stuffed some of the circuitry beneath the USB pins of the connector itself.

The price of the mouse was way too expensive at Best Buy, coming in at a hefty $72. So I did what any smart buyer would do… sign up for Google Checkout and buy online. To my surprise, I got it for about $50 total, and it arrived sooner than I anticipated. If you haven’t switched over to wireless, you won’t know how you lived without it once you do. In my opinion it is almost up there with broadband versus dialup, or getting a laptop for the first time.

So what else has happened lately? A lot. I presented a design project at FIT. For the last year and a half I wanted to design something that could tie fingerprint sensor technology with music technology. Last semester, I sold one professor (a musician himself) on the idea, under the condition that I find a partner. That was not hard, as a good friend who I frequently perform live shows with, was ready to register for the design projects class also. The idea that I envisioned was a VST plugin that could instantiate the fingerprint sensor library, and translate data coming off the fp sensor into either some kind of audio filter, or better yet, MIDI data. As we quickly found, VST is a relatively easy standard to adopt, but the idea of filtering audio falls under the umbrella of DSP processing. Since there is limited time, we had to set limitations on what we could and could not handle in two semesters. Ultimately, we opted for a MIDI controller. Called Tactus Concordia, the VST plugin can be loaded into any standard host (we used Steinberg’s Cubase SX), and is capable of using the X and Y axes of the slide sensor to control up to four dynamically assignable MIDI CCs and/or Pitch Bend. We also built a simple state-machine into the technology where we can tap the sensor and switch between various states which have other pre-defined CCs and/or Pitch Bend controls assigned to each axis. There are four controls, as each axis can handle two controls (think cross-fading). The project was targeted for use with the Akai EWI 4000s Electronic Wind Instrument. The plugin will be refined this summer and potentially sold as a new product. My partner, Kleber, will continue the VST Plugin project next semester, this time incorporating the use of a camera for interactive MIDI control. In addition, I will be modifying driver-level code to provide other useful structures up the pipe from the fp sensor for use in this project.

Kleber and I also have similar musical tastes. A number of months back I discovered that RUSH was coming to Orlando on a second leg of their Snakes and Arrows tour. So we had to get tickets. On Feb 27, we bought tickets online from my cube at work. Not knowing if we’d have a busy week (that is, busy with tests/quizzes/projects/etc), we bought them with the full intention of not only going to the show, but to prepare all work and make preparations in advance with professors if needed. As it worked out, I had 2 tests and 2 quizzes that week in 3 different classes, and a project due the night of the show in a 4th class! Not to mention I had a test the next morning in a class which I didn’t have a great start in this semester (due to Tactus Concordia taking up most of my time). The first thing we did upon entering the arena was buy a T-Shirt. We both got the black S&A (circular logo) shirt. I wanted one of the jackets, but I hadn’t yet sold my house to buy it (they wanted $500 for that freaking jacket!).

Ticketmaster promised the best seats for the cheapest price we could afford, $45. I haven’t been to Amway since it was still called the “Orlando Arena,” and didn’t realize that Row T, Section 204, seats 17 and 18 were not only in the upper deck, but against the wall almost all the way against the closed-off sections. In fact, I have seen RUSH once before in 1994, and it was at this arena in the second row. We walked up to the second landing, asked the guard where the seats were, and he said “all the way up at the top in the back.” I almost laughed out loud… that is, until I got up there and turned around. Then I almost fell forward from vertigo! It took me 5 minutes to get comfortable with the view, which looked very much like sitting on the summit of a small mountain. I overheard two dudes next to me talking about BASE jumping off the seats. At least we had a nice view of the big snakes and arrows logo on the stage, and the sound mixing stage. We were in awe of the technology that would go into the show we were about to see. I was just looking for the rotisserie ovens at that point.

Windows On The Show!

The first half of the show was great. Even though we were far away–and every few minutes my mind drifted back to school and the fact that I had a big test the next day–RUSH played songs we didn’t see as listed on the first leg of their tour… songs we actually hoped that they would play! Red Barchetta is one that immediately comes to mind. (I’ll admit, I only heard the S&A album once before going to the show. It’s not a bad album, it’s just that I’ve been listening to a lot of old alternative music, like the Smiths and the Sundays lately). I also didn’t bother looking up teaser or spoiler info from their Puerto Rico or Ft. Lauderdale show. We were just having a great time! During the intermission, we thought it’d be a good idea to run down and get some food. We tried, but the lines were so long that the show would start up again by the time we were face to face with any of the vendors. When we turned around to walk back up to our seats, there was a beer vendor with a tray of cheap lite beer strapped around his neck. It looked heavy, so we decided to help him out and lighten it a bit. Besides, beer counts for a couple of food groups at least– wheat, alcohol, water… It counts as a complete dinner in my book (or at least when the food “line” looks more like a giant mob).

We grabbed our $11 worth of “cheap” beer and hung out on the landing afoot the upper deck seating. The guard had no problem during the intermission, but politely asked that we don’t lean on the railing. We obliged and talked music and RUSH for the next few minutes. Somewhere in there we thought how cool it would be down on the main floor, or at least in the lower deck seating. I suggested that if we even tried doing that, they’d throw us clean out of the arena. So the show started again and we ran up to our seats.

What’s that smell?
They went through Far Cry and some really cool laser light shows during their performance, which we had trouble seeing as people kept walking back to their seats. Every time the lasers turned on, some dude walked up the steps blocking our view. Then some guy walked all the way up to our row, but we never saw him in the first half of the show and everyone around us was already in their seats. He stopped, looked at Kleber and I, and asked us, “are these your seats?” Kleber was closer, so he looked at the guy and hesitantly said “yes?” I didn’t know what was going on, still trying to watch the show. I thought maybe some dork was trying to dispute our seats which we paid so very much for (that’s sarcasm at its finest). He replied, “then come with me.” My attention quickly shifted from RUSH to this person standing next to us. Now looking at the man, he was clearly a member of security or staff personnel, and I was now thinking that we were about to get kicked out of the arena for taking pictures on our cell phones! Kleber replied with a “what? No!” The staff member moved closer, held up his neck tag, which read “RUSH” in holographic letters, his ID, etc, and said as quietly as he could over the music, “look, you’ll be happy if you come with me.”

Free trade on RUSH tickets!!

I looked at Kleber, and he looked at me for confirmation. I said, “let’s go….” We walked fast down the stairs after this guy, and all I could think was, we saw a great first half, and if we get kicked out for whatever reason, it was fun. If we don’t get kicked out, then it couldn’t be anything bad… Walking down to the lobby level from the bottom of the upper deck landing, the guy had handcuffs and SECURITY written on his shirt, a radio, etc.. I thought, this may not be good. We followed him around some corners, and back into the arena seating. This time at the lower deck level. But, we passed all those seats and found ourselves walking down the bleachers ONTO THE FLOOR!! We must have walked from the rear-most sections of floor seating up toward the stage. I looked at Kleber and asked if this was some kind of dream! I thought they were walking us on stage, but the guard stopped us at the front row, and directed us into row A seats! As we turned, he handed me two new tickets. I tried asking him why we were being given this unbelievable treat, but the music was so loud I couldn’t hear a word of his response as he disappeared left of the stage behind the fence, where another guard walked us into the row. He stopped us at seats 25 and 26, which were against the left side of the center stage where Alex and Geddy walked up to on many occasions during the performance! Neither one of us could believe what was happening! Needless to say, we were so close, Alex and Geddy frequently stopped in front of us and made funny faces at us and others around us during the show! Alex even made some kind of gesture to a woman to our right, almost like he knew her. Before disappearing sometime before the encore performances, I heard her talking to a guy she was with about going to their shows since 1988. I cold even see that Geddy was playing a genuine Fender bass, complete with 30 years of wear and tear on the body (I have watched the website videos to know that they had to retire the neck a couple of years ago). We got a great view of the back of Alex’s foot controllers, with all the MIDI connections visible.

Then a different guard wearing ear protection wormed his way up to us, apparently spotting our lack of appropriate wrist bands, and tried to get us to leave. I was yelling over the music that another guard just put us there, but he just kept insisting that we had to leave, almost ready to grab Kleber. I whipped the tickets out of my pocket, nearly forgetting that they were given to me. He immediately changed his tune and said, “OK! You can stay.”

It was unreal. People around us were surprised and happy for us, and Kleber and I decided that when they play YYZ we would jump up and down to the jam waving our new RUSH T-Shirts in the air… here are shots from YYZ… We can actually be seen on a couple of Amway YouTube videos during the YYZ performance… well, you can see our two T-Shirts flailing up by the stage. I also did a lot of air-drumming to all the songs from our new front row seats!

Chicken basting the chickens!

Right over us!

Solo!

Plucking feathers.. I mean them thick strings!

Solo again!

The pyrotechnics were incredible. The heat could be felt from the front row, and even Neil had to duck behind the drums whenever they were set off to avoid a Michael Jackson, or James Hetfield moment for that matter, from occurring.

So that was the highlight of the semester. Going to see RUSH for probably the last time in the near future at the very least, only able to afford $45 seats, getting stuck in the back, and ending up with seats worth more than $500 each on the black market! And doing it in the middle of clearly the busiest academic week of the semester without a hitch.

The next day I had that test. I slept 7 hours, from 1am to 8am, awoke, and studied. I got a 93% on that sucker!

And so we’ve come full circle from a conversation about burning and cutting laser-pens to the laser light show at a RUSH concert nearly 5 months later.

The next day at work, I was telling some of my colleagues upstairs what happened at the show, when another of my colleagues approached me with his cellphone out telling me I had a phone call and that I had just won something… It was my manager on the line, informing me that I had won the Florida Tech Co-op/Intern of the Year award, and that I was entered into the state finals. So I basically won a tiny cash scholarship, a plaque, certificate, and a Barnes & Noble gift card! Needless to say, I did play lotto that night. But apparently my luck ran out haha!

Tomorrow closes out another big semester. Then next week are the finals. After that, who knows what life will bring my way.
Stay tuned!

Edit:

Here’s something neat I picked out:

Here’s the close-up photo of Alex that we took at the show…

Alex close-up...

Now, here is a screencap from one of the YouTube videos posted by user MetalMystro showing the above photo being taken (I circled us in red):

Photo of a photo of Alex Lifeson...

Silly, but thought it was kinda cool.

Edit 2:

I uploaded a couple of new videos to YouTube that my friend and I took on cell phones. Enjoy:

Neil Peart\'s drum solo from front row!

Alex Lifeson from the front row during YYZ!

Uncategorized01 Jan 2008 06:38 pm

Here’s one that caught my attention this morning when randomly looking up the infrared light spectrum online… I came across a large number of YouTube videos showing how the average computer or technology enthusiast can turn a cheap DVD burner diode into a cutting and burning laser “gun.” These seemingly low-powered devices can actually be run at higher currents producing higher powered optical output- enough to pop balloons, cut through plastic, and ignite matches. There is even an instructional video demonstrating how and where to order parts to build one of these devices, which is then used in a quick demo to pop a balloon at what looks like a 3 or 4 foot distance from the diode. The kicker– it was produced and narrated by a young teenager. If you remember the late 1990’s episode of kids and laser pointers, you can only imagine what could happen if they ran around wielding these kinds of devices.

With the price of the laser diodes dropping, and defunct computer equipment easy to find almost anywhere, I guess we’ll just have to wait and see what happens. In the meantime, check out this infomercial quality video that shows just how to turn a mini MagLite flashlight into a “cutting and burning laser poitner.” http://www.metacafe.com/watch/756433/laser_flashlight_hack/
Please don’t try any of this at home!

Computing01 Jan 2008 05:34 pm

If you’re like me, you typically find yourself seated in front of a few computers, perhaps running different operating systems, and having to use either multiple keyboards and mice, or relegating to the likes of a slow KVM switch. Suffer no more! There is a software solution that allows multiple computers, even running different operating systems, to share a single keyboard and mouse. Synergy is an open-source project that runs on Windows, Linux, and other operating systems to do just this by creating a virtual screen that encompasses each individual desktop. Basically, it is like running a system with multiple monitors, and allows the user to cut and paste text, HTML, and pictures across machines. And it does so seamlessly.

Visit http://synergy2.sourceforge.net for more information!

Computing and Life01 Jan 2008 05:09 pm

First of all, it has been a very long time since I’ve last posted anything. I’ve been very hard at work, radically modifying and writing image processing algorithms from scratch. Swipe that finger, and what you see is processed and displayed by work I’ve done on a small team of very intelligent people who I’m fortunate enough to work with. Now I’m suddenly catching up with server maintenance at home, getting my print server working once again, setting up a local Perforce code revision system, and also installing a ton of development software and tools on a new HP Centrino Duo I was issued.

So now for the post… I want to share something that may be affecting other Linux users out there who use their Linux boxes as file and print servers with very little disk, mouse, and keyboard activity. For starters, I run Fedora Core 5. If you are unable to print using CUPS, and when you attempt to connect to the web interface (at http://localhost:631/) which, when attempting to manage the printer in any way, brings you to a page that reports an error:

426 Upgrade Required

and hangs indefinitely when you click the link, then check your CUPS error log. Mine is located in /var/log/cups, and is called, not surprisingly, error_log. Tail this file with the command

tail -f error_log

which will allow you to monitor the file as it is written to. If you see it waiting on “Generating SSL server key…” then there is not enough activity on that machine to generate a key. Mouse, keyboard, and disk activity are used to fill the entropy pool under Linux and other UNIX operating systems (which you can read about on this Wikipedia page). Since my server is rarely used for anything other than occasionally listening to MP3s or watching DivX movies over the home network, this is very likely the reason. One way to confirm that this is, in fact, the problem is to view kernel entropy pool availability using the following command:

sysctl kernel.random.entropy_avail

Since my pool was virtually empty, there was no way it could generate a session key to allow me to reset the printer. No wonder. One way to remedy this situation is to start generating large amounts of disk activity. The quickest thing I could think of was to run find with the command:

find /

This will search through all files on your system. Try this while tailing the error_log file, and within a few seconds the key generation will complete and you should be able to connect to the web interface using a secure session. Finally, log in using root, and you should be able to reset your printer.

In my case, lpoptions was reporting that my printer was paused and in state=5. There was no way to edit this directly using the lpoptions command. After resetting the printer, its state changed to 3, ready to print. And it did just that when I fed it a quick test page!

Now I just need to go out and buy some new ink. Good luck! And Happy New Year!

Life and Work22 Jul 2007 11:18 pm

What a weekend… A company sponsored trip to Universal Studios and Islands of Adventure have left me dizzy! I made it a point to go on as many of the most intense rides as possible and never sit-it-out, and it was well worth it. Moreover is the fact that I have a moderate fear of heights and freefall, which I more than confronted without hesitation. I’d do it all over again…

We started our day off at 9am at Islands of Adventure, and almost immediately got in line at the Hulk. Even at that time of day, the line was 45 minutes long. Going from near 0 to 45 MPH in 2 seconds on the way up the launch tube was totally unexpected and exhilarating! I thought they would build up fear by slowly climbing to the top and then dropping out, but no! You slowly move into the tube, hear some character dialog, and then fly up and immediately into an zero-g twist, reaching speeds of up to 65 MPH on the way down.

There is a really great video of this ride here. This is a site I found on the net by Robert Viands, which has a lot of excellent videos of the various rides at the Universal parks. The videos are excellent for someone just holding the camera, but there’s nothing like actually riding these monsters. Here’s a picture I took after the ride…

Click for a larger picture!

We then made our way to Doctor Doom’s Fearfall, which is right next to The Hulk (if you look carefully near the end of the Hulk video above, you can actually see Fearfall in action off to the right at one point). On the way into the park, I looked at this ride and didn’t immediately like the idea. But why pass up a perfectly good opportunity to go on a relatively new thrill-ride technology? About half our group actually did pass it up, but they watched our bottles of water and electronics for us. The normal wait time was roughly 30 minutes, but we decided to go for the much faster single-rider line and got in there in about 15 to 20 minutes.

Robert’s site mentioned above also has a couple of videos of the ride, one of which is here.

Here’s a photo I took before getting on the ride (I rode on the left tower facing right and to the back):

Click for a larger picture!

Next, we headed over to Spiderman. I literally received a phone call when I was stepping onto the ride (another co-worker called from Melbourne), and told him that I was… well… about to step onto the ride. The attendant forced the safety rail down across my row, which pressed into my clip-on sunglasses in my pocket. Nothing happened to them, but the clips were pressing into my leg. I did manage to move around enough so they were fine and so was my leg.

Next it was onto Jurassic Park, where we all ate. Ride times were too long in the far end of that part of the park, so we decided to head back to Ripsaw Falls. Ahh, there was a single-rider line! The standard ride wait was 45 minutes, so we thought this might not be such a bad wait. The line looked short enough. But no. We waited outside in a short bit of the line that wormed its way around in circles on the inside. After close to an hour and a half of waiting, we were right near the entry way to the ride itself. Then one in our group says something to the effect that, “Wouldn’t it be horrible if the ride broke now that we’ve made it this far and long?!” Well, guess what? We were all left standing in the line for another half hour and then briefed that there was a log jam and their “beavers” were hard at work fixing the problem!! But in all, it was well worth the wait, because it had been getting so hot outside that a splash of water felt pretty good at that point in time. Plus, I was lucky enough to sit in the front of the log so my lower extremities remained dry (wet shoes and pants are no fun).

Then we made our way over to Universal Studios.

The sky was turning dark and was about to rain (good news, as the lines begin to disperse). Inside the Terminator 2 3D lobby, we waited on a brief technical difficulty and watched as it started to rain outside. The air-conditioning in there made it very cold wearing the Ripsaw Falls-dampened shirt, but the show was as good as I remembered it to be last time I was at the park… like 8 years ago.

We then walked in a light drizzle up to the Men In Black ride. The single rider line was so short, nobody was in it except for us and a few other people who arrived after us. This ride was cool because of its interactive theme. It’s the kind of ride you want to go on again and again just to get a higher score each time. Probably one of the few rides I’ve been on that requires skill.

Heavy late afternoon rains started up just as we got off the ride, forcing us to wait until it lightened up enough to walk through. Our next and final stop was the Mummy. There were many reasons to like this ride. First off, the wait was not terrible for single riders. Next, there was a fair amount of fire. And where there’s fire, there’s heat. And heat is good when you’re wearing cold, damp clothing :). And to top it off, I was again fortunate enough to sit in the front row of the ride (no sarcasm, it was the best)! Even in the front on this ride, it’s nearly impossible to see the drops that await the rider, with all the smoke and lighting effects going on. One truly great ride. I think they should have run the ride backwards at the point where the ceiling turns to fire. That would have been a nightmare! (I was waiting for that, but it never happened).

The weather wasn’t looking any better, it was getting late, so we called it a day at that point and headed home. Probably the best visit to Universal thus far!

Computing08 Jul 2007 12:15 pm

A year ago, when I built the server this site runs on, I installed Fedora Core 5 on it. At the time, I had seen the flashy XGL desktop on a Kororra installation, and decided to give it a try under Fedora. This did not work. I broke a lot of software on the system shortly after setting it all up, and then looked into switching over to another Linux flavor that had better support for XGL. SuSE was first on the list, as it is well known, widely used, and had documented XGL support. So I spent a day switching over, attempting not to lose close to 250GB of media that only existed on the media drive and nowhere else. If I lost that, I would have lost weeks worth of downloading time.

The switch went well, but that is where the fun began. Maybe I was ignorant to all that SuSE had to offer, but the system did not install all of the software I desired out-of-the-box. So I figured it was time to go back and install what was missing off the CD set. Unfortunately, none of it was on the CDs. Time to resort to the Internet. This helped, but most of the software I wanted was not yet built for 10.1 SuSE!! Next step, I got source distributions and attempted to compile them. Not a chance in hell. Libraries were missing. So I searched the CDs for the libraries and attempted to have Yast install them. Nothing seemed to work right. The whole installation turned into a hodge-podge of binaries from all sorts of SuSE distros, dating back to versions 8.x. It was ugly.

Then the quirks set in. For whatever reason, the X server decided to randomly restart. At first, I honestly thought SuSE came with a security feature that automatically logged inactive users out of the GUI. I rarely used the system for anything other than a file server, until I started using as a television set.. That’s when I learned that there was no way this was a security feature; it logged me out while I sat using the GUI and even watching TV shows, and logs showed the X server terminated unexpectedly. This became very annoying, especially in the last 2 months I have been using the system as a television. And forget about watching movies on it.. The console blanking kicked in even though I set noblank and blank time to 0 on the console. It made absolutely no sense. Under Slackware and Fedora (and even back in the days of Red Hat) I was able to turn off blanking in less than 10 seconds, and it worked. No, not with SuSE 10.1.

The server was also used as a print-server for the various computers around my apartment. Fedora had no problem with this, so why should SuSE? They both used CUPS. No. Again, SuSE displayed some very odd behavior that I could not even find a description of through Google searches. Whenever I selected the printer on the SuSE box from a Windows machine, the Windows machine’s print properties window would freeze and the network traffic between the properties window and the SuSE box would dominate the connection for about 30 seconds on a 100 MBps LAN connection. And that was just selecting the print properties… printing took another few minutes before all that seemingly random traffic would end. If I tried printing from my work laptop which only has a 10MBps Wifi connection, forget it. I could cook a meal and eat most of it before the thing would start printing. Unbelievable. I even tried sniffing the connection, but the data was meaningless.

Then last week, for whatever reason, the audio drivers would crap out when I turned off the TV application (kdetv). I had to start Yast Control Center, and open the Audio Hardware control panel, and simply click Finish to get the audio to come back to life. Of course, I figured this out after an hour of tinkering with all kinds of audio settings here and there and everywhere. I did absolutely nothing to cause this to start happening. No software installs, nothing. It was another one of those things that just makes no sense. To top it off, the printer no longer worked under SuSE. I tried printing from two different computers and they both queued the print job and sat there patiently for two days waiting to print. We all know about IJW, but this was IJMNS, It Just Makes No Sense. Or IJS, It Just Sucks. At this point, IJDC, or I Just Don’t Care.

Yesterday I decided enough was enough. I tarred the home dirs, configuration files, and web dirs, and exported the mysql database to file. Moved it all to the home dir partition and downloaded the Fedora Core 7 iso file. Just under a half-dozen episodes of Mythbusters and two failed burn attempts later, I finally had a DVD copy of FC7! Last night I installed the system and today I installed my desired applications, all while leaving the home dirs untouched. Absolutely everything has gone according to plan, and even faster than I anticipated. I am now about to set up the domain controller, and remote TV card software I wrote, in addition to the VLC server and mplayer for watching movies. Oh yeah, and as pointless as it may seem, I will finally be able to watch movies using aalib. I had this working out-of-box a year ago with the last Fedora install, but SuSE did not have this either. It’s just a neat little conversation piece that has absolutely no point.

So you may be wondering why I didn’t give-in and switch back much sooner. Or complain much about it until now. Good question. The main reason is, when switching to SuSE, I nearly lost all my data, and didn’t want to risk it. Plus, I had absolutely no time to go through all of the hassle of installing an entire new OS that needs to be reconfigured, much less gripe about it. I just couldn’t take it any longer. I still don’t really have the time to do this, but it needs to be done now before it’s too late, before I lose my sanity.

I’m just happy everything’s roughly back to normal. And after all this, I find that XGL is very likely supported under Fedora Core 7. Nice going Fedora. I will never migrate away from you again.

Next Page »