New beginnings

When I started college, I was confidant in my future: I wanted to be a computer scientist. I started out thinking I would also major in mathematics, but I downgraded to a minor, and eventually, dropped it completely due to disinterest. In spite of this, I always thought that, after graduation, I would get a job and just continue into the “real world”. Now that I’m actually out of college, however, I feel much differently. The job I came out of college with turned out to be terrible, and I’m no longer sure I want to be a computer scientist. This isn’t to say that I don’t want to work with computers: I am still one of the most skilled computer technicians I know and I still love to write small programs to automate tasks. I no longer feel the same zeal, though, towards advancing the field of computer science. The current state of computer-related jobs is deplorable (candidates with extensive experience are sought for menial jobs with low pay and no job-security) and research in computer science doesn’t seem interesting.

After some self-analysis and research, I decided that a different field where I can apply my computer skills towards a meaningful end would be much better. One particular field that caught my attention is BCI research, the study of driving computer circuits using connections with a brain. Initial research in this field involved connecting a monkey’s brain to a computer which drove a mechanical arm; more information can be found in the Wikipedia article. To that end, I have registered for an introductory-level biology class and plan to take biology classes part time until I am able to enter graduate school. Of course, since I no longer have a scholarship, I’ll have to get a part-time job to pay for classes and my bills.

One of the things I miss the most about my college years is my proximity to friends. I still keep in touch with most of the friends I had during college, but now that I live at home, I’m much farther from those who still live on campus or who have also moved back home. I didn’t really know one particular friend too well before my last semester living on campus, but, during that last semester, I started to talk to her more often, eventually getting a phone number so the two of us could talk during the summer. Even before the summer started, I realized I liked her, but was too timid to approach her. I also invented a reason to wait until the fall semester started before approaching her; since she lived so far away from me (6 hours by driving), I didn’t want either of us unable to see the other when we wanted. My other friends decided that I needed deal with this rather than put it off, as I am wont to do, and one of them even approached her for me. I’m aware that isn’t usually a good way to handle things, but in this case, it resulted in something positive: I went to visit her on Monday and we’re “officially” dating now.

If you’re not interested in hearing mushy feelings, find a different webpage to read. It’s truly amazing the feelings one can have in a relationship. Even the simple thought of her makes any problem I’m having seem trivial, and I always come out of it in a better mood. I’m visiting her this weekend, and I hope that I can visit more frequently; a job and gas prices will be big factors in determining that. Of course, I still have to let everyone else know about it, and, considering my lax memory, it may take a while.

Comments

How private are _your_ members?

I like programming in Java. Java has a lot of features that make programming with it very pleasant. For instance, it has a very well documented API and the same code can run on many different operating systems with only small modifications. One feature that I only recently learned about is anonymous inner classes. Once I discovered this feature, it quickly became invaluable. Being able to define a new class, without naming it, anywhere in code allows tight encapsulation of functionality as well as keeping relevant sections of code together. As an example, to handle events generated by pressing a button control in AWT or Swing, I can define an anonymous class right in the method call! This may sound lazy, but this feature allows inner classes to have access to private data that ordinary classes wouldn’t. In the example, my anonymous inner class would have access to any local data, like parameters passed to the method I’m defining the class in.

Now, focus on C++. Its many advantages over Java include small executable size and high-speed code. One feature sorely lacking, though, is the style of anonymous inner classes that Java supports. In C++, in order for an inner class to access the private data of an outer class, the inner class must be a friend of the outer class. In order to be a friend, it must be named, therefore, anonymous inner classes in C++ have severely restricted functionality. As I write this, it feels that, without garbage collection support built into the language, this feature isn’t possible. In C++, local data is deallocated as soon as it goes out of scope unless you allocate it from the heap (either using *alloc or new), and memory allocated from the heap is never automatically deallocated, so supporting this feature without memory management would cause memory leaks. Even so, when working on Aldahar, many situations have come up where I’ve wished for this feature to make coding much simpler.

Comments

Firefox slideshow plugin update

I updated my Firefox slideshow plugin to eliminate consecutive duplicate links from the list so you won’t see exactly the same image twice in a row. Download the new version.

Comments

A failure to communicate

It occurs to me that I ask for feedback in other sections of my site, but I’ve provided no way to contact me, especially since I’ve disabled commenting on any of my entries. If you want to e-mail me, my address is chromus AT gmail DOT com. Sorry for those expecting a link, but I prefer that spam-spiders fail when they try to harvest from my site.

Comments

A winding road to recovery

On 2006 June 20 Liz’s funeral was held. I tried to arrive as early as I could, but I got lost a few times while driving there, so quite a few people had already arrived before I had. I met Liz’s siblings on the corner outside the church, along with Liz’s best friend. They were hiding from the tear-inducing crowd in the basement; I wanted to do the same, but I felt like I should talk to everyone and see where I could help. I was glad to see so many people come and show support for the family. Right up until the end, I managed to keep myself distracted by talking with everyone else and thinking of others, but as the service was ending, I broke down in one of my friend’s arms. It was so hard, and still is, coming to terms with this loss.

After the service, I went to the Juhasz house and spent some time with the family. I ended up going out to a diner with the siblings and best friend to get some ice cream, but it was too late for me to drive home by the time I got back. Due to that, I spent the night at the Juhasz house at the invitation of her parents. The only spot to sleep in, however, was Liz’s bed in the basement. Most people groan when I mention this to them, presumably because they think it would make me feel bad, but in reality, it was somewhat comforting. Having so many of her possessions so close to me actually helped me feel a little better.

The next morning, I woke and got ready to visit the burial site. It was a much smaller ceremony since it wasn’t as widely advertised and took place quite far from the church. I broke down again, after the small speech at the burial, but not quite as severely as the night before. Afterwards, a luncheon was held at a nearby banquet hall. It was uneventful, after which I went back to the Juhasz house. At this point, my parents, who hadn’t seen me in 48 hours, were worried, so I got in contact with them and let them know I was alright and would be coming home that night. After arriving at the Juhasz house and helping them finish off some of the massive amount of food they received from friends, I proceeded home.

I’ve spent much of my time since then putting together everything I can find about Liz. What I’ve collected so far can be found at my Elizabeth Juhasz page. Most of my work has been asking for pictures of her from friends and family, but I have also collected some documents. I have a few audio files, but I’m waiting on permission to release them before I put them online.

Plans are being made to make a trip to the burial site on her birthday. Only after her father mentioned it to me did I realize that this would have marked her 21st birthday; he plans on bringing up a bottle and knocking it back in her honor. I’m aware that 21 is just a number, but the meaning of that age saddens me: Liz had been looking forward to reaching the age of independence so much.

Comments

Loss of a friend

All of us have heard it: you only appreciate something the most after you’ve lost it. In my case, I have only now felt how important someone is to me, now that they have died. We were so close that, even though we weren’t related by blood, we shared our lives like we were. I learned all of her innermost secrets and desires, and tried to help her with anything within my power to do so. I love you so much, Elizabeth Juhasz, and I miss you. Rest in peace.

Elizabeth Juhasz

Comments

Compiling glibc 2.4 on Ubuntu 5.06

A default install of Ubuntu 5.06 might come up with these errors when compiling glibc 2.4:

mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class -- [], [^] or [) mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ] mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...

It turns out that mawk, the AWK interpreter that comes installed on Ubuntu by default, isn’t supported by glibc. To fix this, open up Synaptic (System, Administration, Synaptic Package Manager) and install the gawk package in the Interpreted Computer Languages section. Afterwards, you’ll need to reconfigure glibc before compiling it again so it knows to use gawk instead of mawk. As a side note, make sure you always use the latest release version of packages; trying to compile glibc 2.3.6 won’t work on Ubuntu 5.06.

Comments

Gold trade-in

On the 25th of May, I traded in one gold key for another. My original key was the brass key, which appeared gold when I cleaned it, to my dorm room; I didn’t realize until I handed it over how much that key meant to me. Even though the key had not remained the same over the years, (I had to exchange it for another key when the locks were replaced) its meaning was always the same to me; it represented my residence in a dorm, a place where I was surrounded by friends and could always have a conversation or find something to do. Even during the summers, when I had to turn in my key, I knew I’d get another one as soon as I arrived again in the fall, that I only had to put up with the loneliness of the break for a few months. This time, though, I turned in the key for the last time. Never again will I live just a few minutes from so many friends, never again will I make nightly trips to the on-campus convenience store to pick up soda and snacks, and never again will I be able to have inane philosophical discussions at 1 AM.

The same day, I was inducted into Phi Beta Kappa, the oldest honor’s society in the United States. A key with various symbols engraved on it is PBK’s symbol, representing principles embodied by its members, one of which is the life-long pursuit of knowledge, especially in the liberal arts. This key doesn’t open any literal doors, but membership in PBK, represented by the key, has the potential to open many metaphorical doors. Since I’m a computer science student, I have a feeling that I may have made a mistake becoming a member. Though I haven’t actually received a key, I was given an order form that I may use to obtain one made with gold. One question stands out in my mind: how will my new golden key compare to my old?

Comments

Jim Carrey could do better

My father received an e-mail from a friend of his asking if fixes I made earlier in the year might interfere with the installation of cable internet happening at that moment. Apparently, the cable guy had been there for 2 hours trying to get online from my father’s friend’s laptop. When I showed up to figure out if it was my fault, I immediately diagnosed the problem: the cable modem wasn’t getting an IP address. The laptop had a fine connection to the router/modem, so it couldn’t possibly be something wrong computer-side. I pointed this out to the cable guy, and he relayed my message to tech-support, whom he was on the phone with. The curt reply, “It’s fine”, only vindicated my opinion that the front lines of support for technical services almost never know what’s really going on.

Of course, it wouldn’t be reasonable to think that “solving” the problem would work. To hire technically savvy people on the front lines would be wasting money and aggravating for everyone involved. It would be just like my situation, only in reverse and happening far more frequently; technically savvy people usually become easily frustrated when dealing with those who aren’t technically savvy. Even so, it wouldn’t kill companies to assume that they screw up every once in a while. I predict that the cable guy will be there for another 3 hours before he figures out there’s nothing for him to do.

Comments

One executable to rule them all

Python is a glorious language; a decent amount of documentation (not as much as PHP and Java, but far more than any other language) plus a great library of built-in functions (easy GUI library built-in!) make programming in Python fun. The only headache I’ve discovered thus far is distribution. There are a few projects that exist which are designed to package all your python source code and necessary library files (DLLs on Windows, SOs on Unix/Linux) so you can distribute a folder containing all you need to run the program. Unfortunately, this turns a 2 KB PY file into a 2 MB distribution folder. I know that a lot is required to run a Python program, but this kind of ballooning can be discouraging.

One project, PyInstaller, seems to be able to package all the files together into a single executable and manages to keep the number of imported libraries down to those you actually use. I haven’t tested it on non-Windows, but it took a rudimentary chat-server I wrote and made a stand-alone executable out of it, which ran fine. I also haven’t tested the executable on a computer without Python installed to make sure it doesn’t have any dependencies. PyInstaller is a continuation of a similar installer written by Gordon McMillan whose website seems to have disappeared.

If this works out, I may be able to re-write some of my other useful applications in Python and make them easier to maintain and distribute.

Comments