February 4, 2010

The Joys of Linux

I'm taking a course on Python this semester. I'm really excited about it; there really is no other word for it. I'm sure that my excitement over something as simple as, say, simultaneous assignment, won't be easily conveyed to non-programmers or even anyone besides myself. Nevertheless, the new toys in Python, and particularly the new paradigms (I have never dabbled in functional programming before now, but the potentials offered by yield and generators are making me positively giddy), are very exciting.
The course is just now migrating to Python 3, so in a sense it's good that I didn't get started with the language until now. Unfortunately the default Python documentation (http://docs.python.org/) is for 2.6.4, so it's very easy to get tripped up by outdated information. In a yet more sinister turn, Ubuntu itself uses 2.6 by default! I didn't think this was much of a problem at first. A bit of Googling eventually schooled me in the proper use of update-alternatives, and soon I had set the default python command to call python3. But then the problems came.
The first sign I had that something was wrong was a big red "do not enter"-style notification at the top right, telling me that the update manager wasn't working. I won't go into the details, but I tried all I could to fix it, and somehow I fooled around with dpkg to the extent that GRUB now displayed my install as "Debian". I had all but given up, and I was on the verge of reinstalling, when I booted up today and realized that Dropbox wasn't running, either. Running dropbox in a terminal gave me some strange error, which seemed to hint that the contents of the file were text, not the binary executable itself. So, on a hunch, I opened up /usr/bin/dropbox in a text editor, and what do I see?
#!/usr/bin/python
The dropbox script was formatted for Python 2.x (it was Unicode strings causing this particular error), and my messing around with the default python command was what caused my problems. Evidently the update manager also relied on Python, because resetting the default command back to 2.6 allowed the update manager to run again, and at the moment it looks like everything's going to be okay.

UPDATE: Everything was not okay.

January 17, 2010

Searching for a Clearer View

I'm running on four hours of sleep, and not a whole lot from the previous few nights either, so at the moment (and probably for the rest of the day) I am wracked with the symptoms of sleep deprivation. Nevertheless, I have just caught a glimpse of what it might mean to be a "morning person".
Two things to note here: The first is my penprevious post, in which I used the term "incredible lucid solitude". The second is that I have resolved (only incidentally in January) to wake up at 6 am every day for the entire semester, on the grounds that I will adjust, and it will be easier than waking up at 6 am (thoroughly unadjusted) two days a week. Today was the first day in weeks that I've woken up so early, and I am quite emphatically Not Adjusted yet.
Anyhow, my point is that I have just experienced something akin to the normal lucidity that for me is more common to staying up incredibly late, not waking up incredibly early. The drowsiness has dulled it, of course, but I get the feeling that once I have adjusted, I'll have five days a week containing several hours of clearheadedness, insight, and inner peace. Assuming, of course, that I am capable of adjusting. I've never been a morning person, but I'm starting to see that it might not be so different from being a night owl, after all. Just colder.

January 12, 2010

Clam's Search for Meaning

Sometimes I feel as if I lead a charmed life. I feel privileged, knowing that I can achieve anything I put my mind to, and I remind myself not to take that privilege for granted.
But sometimes I get the feeling that I've been spending my life diligently avoiding any desires that can't be fulfilled. I can always have anything I want, as long as I'm careful about not wanting what I can't have. Far from being uplifting, this is really very sad. What it means is that I can't fail, so not only do I stop before attempting risky-but-surmountable heights, but I also avoid the learning experiences of failure. It's kind of a fox and the grapes thing, although I don't think I'm bitter about it.
This is an exaggeration, of course. I have taken risks before, and I have not led a life entirely free of failure. The degree of it, though, is really quite humbling. I've been trying to write my resume, and I've got it pretty well sorted out now, but I am choking on the "personal statement" part. I know that my first job out of college doesn't determine my entire career, but I'm expected to have some idea of what I want to do in life... a passion. And right now, I'm feeling pretty dispassionate.
It seems to me that the reason for this lack of passion is fear. What I'm going to do in a job is very different from what I've been doing in school, so by necessity my passion will be something I've never done before--I need to be moving forward, essentially. What that means is that I need to want something that hasn't been shown (through experience) to be achievable... so I feel like I'm taking a leap of faith. Yes, I know I've been learning this stuff in school, and I've even been pretty successful doing actual work at my internships. But it's still just far enough out there to give me fear, and we all know what the Bene Gesserit say about fear.
So what are my options? Well, if I'm opposed to stagnation (which, for the record, I am), it seems like there's no option but to face the fear and overcome it. Kind of platitudinous, I admit, but it's much easier said than done. How to face it is the real question. I'll get back to you when I figure out an answer.

January 1, 2010

Waking Up Is Hard to Do

Whenever I find myself scheduling an activity before 6 am (or, more likely, being scheduled), I generally choose to go without sleep rather than wake up that early. Funny that I've never noticed the pattern before, or at least never noticed how tenacious it is. It's not surprising, given that falling asleep can be a difficult thing to do on demand, while waking up on demand is merely painful, not hard to accomplish. In some cases it is the only sane option (as tonight, when the potential sleeping time was between drinking champagne at midnight and heading out at 4 am), and in some cases it can be insanely inadvisable (as my weekend trip to London, when I tried to save a night's hostel money by simply strolling around until my 6 am flight out). There ought to be something profound about the fact that I so despise waking up... or more importantly, the incredible lucid solitude only found at 5 am, when all the world's asleep.
At the moment, though, I can't think of what it is, and I'm just writing this down so I won't forget. I'm awfully tired, you see...

December 9, 2009

High Anxiety

I have a suspicion. I don't know how deeply I've gone into it on this blog, if at all, but the fact is I have a piercing fear of disapproval. Most people do, to some extent--humans are social animals, and being cast out of a group used to be a life and death thing during the long period over which we evolved. Stage fright is probably the most common manifestation. But I've got it bad. Recall the fear you feel while, say, giving a job interview. Now imagine if that sort of fear gripped you about such trifling matters as whether or not to make eye contact while walking past someone you recognize, but don't really know. Yeah, not fun.
Anywhoo, I've been plagued with this for all my life, it seems, and I've had no luck freeing myself from it, and precious little insight into it in the first place. But I've just had the suspicion of an idea. Perhaps this fear is not as maddeningly insubstantial as it seems. What if, instead of being a general fear of "doing it wrong" in any social situation, it was merely a fear of not knowing what it would be to do it right or wrong in the first place? This could explain the intensity of it; for me, at least, there is nothing worse than uncertainty. This could also be a first step towards easing it, as well. If it were merely a fear of failure, then there would be no defense besides mere conditioning: training myself to be less afraid of the possibility of failure; to accept it. But if it were merely the result of ignorance--of not knowing what to do--then the solution is simply education, which is much easier than training. It makes sense, too. I've always been a shy person, so it's no surprise that I find myself lacking the normal experience most people have with social situations. I had no idea the ramifications were so extreme, though.
Even assuming this suspicion is correct, there's still one problem. The rules of social interaction are not fixed, and they vary from person to person. There is no single set of rules to be learned, and I would also have to learn to gauge situations, to find out which set of rules applies at any given time. That's no easy task, and I'm not sure if it can be learned without a whole lot of hands-on experience... which, naturally, would be hard for me to acquire. After all, I'm not just afraid of social situations--I also don't care much for them to begin with. Maybe I should go to finishing school.

November 6, 2009

Was It All Worth It?

I got a letter from the government today. I've been getting them for a while, but this one has special significance. Just recently I confirmed that despite all odds, each one of the six remaining classes I need to graduate is offered next semester, and with very little time overlap as well. I still have to take the GWPE (Graduate Writing Proficiency Exam), and of course I still have to take each course and worry about keeping up my GPA, but passing them is not a concern. I now have no reason to be concerned that I might not graduate in May. This brings with it a huge list of concerns, but it's also very heartening, and I'm quite relieved. I'm particularly enjoying the thought of no longer having to fill out a FAFSA (Free Application for Federal Student Aid). (Basically it's a form where you have to prove how much money you have, so they know how little to loan you.)
The letter I got today was just a statement of how much money I owe in federal loans. I'm not going to take any more loans, so this is it--essentially, this is the bill for five years of college. It comes out to just about $20,000.

I don't really have a framework to understand that amount. It's not horribly much, I suppose... in fact I think it's about average. It could have been more. I guess I won't really know until I find a job, and discover just how much I can expect to pay per month, and how much I'll be making. It's good to have an amount, though. And it'll be even better to have a degree. It's all coming to a close.

October 27, 2009

Wave

I finally got a Wave invite! I've been waiting for this for a while, so I'm kind of excited, but it's tempered a bit by the fact that the purpose of Wave is to be a communications mechanism... so there's not much to do with it if nobody else has it. Also it's still very much unfinished. But I'm excited nevertheless.

For the uninitiated:


October 14, 2009

Auschwitz On Facebook

And I've never been more glad to have gotten out while I still had the chance.

http://news.bbc.co.uk/2/hi/europe/8307162.stm

EDIT: I mean out of Facebook.

October 4, 2009

Victory

Well, the climax has finally come. It's been months since I returned from Germany, and the Robbie project has been marching on, but the competition has come and passed in just a day. Sick Robot Day 2009 took place on October 3rd, and Kobra (Robbie 13's robot day build) took first place.
It's not uniformly good news, because evidently our robot only recognized two of the posts (out of nine), while none of the others recognized more than one. I guess it was a more difficult task than I thought--I hope they put up some video of the competition soon. In the meantime, though, here's the press release--in German--and the official blog--also in German, but with pictures! It's so nice to see the final setup of the robot looking just like I imagined it would. I'd better go now before I get all teary-eyed.

August 27, 2009

Jumping to Conclusions

Just a moment ago I was kind of frazzled. I was handing in the first assignment in Calculus, and it was almost painfully easy--just a single problem, that required nothing more complicated than an application of the Pythagorean theorem. In fact as I was writing it, the math teachers from my past were chiding me in my head that I wasn't "showing my work". The paper looked awfully bare... but there was nothing to show, really. There was no work involved. But the professor rejected the assignment as I was handing it in, saying that I should have written out the question (it was a word problem, by the way, three or four sentences of text describing a single equation), and I shouldn't have written it in pen, and that she would give me a low grade for that reason if I handed it in as-is.
As I was walking out of class, I was feeling kind of upset by this, and briefly considered writing a three-page essay with nested footnotes describing in all possible detail (and then some) the thought processes that went on behind the solving of this problem. In the end all I did was write a blog post about professors who value style over substance--or perhaps are unable to appreciate substance without the proper style. And as I was typing away on my laptop, the professor walked up to me out of the blue, and apologized. She said that she was just trying to set an example, more for the other students than for me (because she had been my precalc teacher and she knew that I wasn't at the same level as most of the other students), and that what seems silly now is necessary to get coherent assignments back from the class when the problems started getting harder.
Needless to say I was mollified, and as I thought about it more I realized that I had noticed that earlier in class the professor was kind of put-off by the questions that other students asked, and the deep lack of understanding thereby revealed. Her response as I tried to turn in the assignment was likely colored by some amount of frustration, and frankly the paper looked pretty desolate. So, once again, I'm simply trying to get through the day, and I nevertheless find myself thrown on an emotional rollercoaster, and learning a valuable lesson besides. And there's a little synchronicity thrown in to take the point home.
The post I started writing was titled "little tyrants". I thought that I remembered the phrase from somewhere, and I decided to look it up to give proper credit, or at least not mangle the original intent of the phrase. I never found out where it came from, but the first Google search that came up was a conservative echo chamber. Please read the post--it's short, and your eyes won't melt a whole lot. Here's the key phrase:
"I am not willing to assume the presence of facts not in evidence that would have recast their behavior in an acceptable light."
This phrase struck a chord with me, because I've known for a long time that this position is thoroughly inadvisable. This particular event was just one in a long string of experiences which taught me the importance of reserving judgement. It's very easy to hear about a situation, or even be in one, and think you know all the facts. If you look at the other side of an issue, there is almost always more information that you weren't aware of. It's very easy to be convinced of something if you're entirely unaware of the facts of the other side. And once you're convinced of something, it's just one small step away from rejecting contradictory evidence, and then you have a feedback loop.
Open your mind from the start, and do your darndest to keep it that way. It needs the fresh air.

Fair Warning?

This popped up on the "Student Center" website recently. I understand where they're coming from, but the last sentence really gets me.


Important Student Fee Information

The CSU makes every effort to keep student costs to a minimum. Fees listed in published schedules or student accounts may need to be increased when public funding is inadequate. Therefore, CSU must reserve the right, even after initial fee payments are made, to increase or modify any listed fees, without notice, until the date when instruction for a particular semester or quarter has begun. All CSU listed fees should be regarded as estimates that are subject to change upon approval by The Board of Trustees.

August 13, 2009

In Absentia

It's difficult to appreciate something in its absence. Ironically enough, this also applies to the appreciation of the absence of something. Say an annoyance, or physical pain. It's easy to look forward to relief, and enjoy the relief as it comes, but once it is gone we quickly return to base levels of happiness. This is true for just about everything, but it seems to happen even faster with negative stimuli.
Specifically I am referring to the dormitory I was living in this summer. It was a pretty awful place, and I couldn't wait to leave. But I have to say that the pleasant, warm feeling I got from being away from that place was more intense while I was still there, merely anticipating it. It was nice for the first hour or so, but a mere day or two after leaving, I find it difficult to enjoy the simple pleasures of quiet, companionship, and sanitation to the extent that I had expected. I'm not going to define myself by what I've left, but I would like it if I could remember it well enough to be thankful.

August 8, 2009

Heidelberg Zoo

I know I'm a little late on this one, but I took a couple of photos and videos that I can't resist posting.
Here's the photos from the Heidelberg Zoo.
And here are some videos I took there:
Headbutting practice.
Mongoose abuse.
Hydrokinetic child labor.
Bouncing weasel.

Thank you for your attention.

Second-Best Headline Ever

But it really only works with the picture.

http://news.bbc.co.uk/2/hi/asia-pacific/8160279.stm

July 27, 2009

Return to Bremen

Last year I spent a semester in Bremen. When I found out I was going back to Germany this summer, I decided I couldn't pass up the chance to visit friends that I had met, and see Bremen again. But things came up, and time went by, as it is wont to do, and it was starting to look like I wouldn't get to visit at all. With that in mind, I decided last Thursday that I should travel to Bremen on Saturday, just for a day, because it was the last day that could possibly work. So I did, and... well, it was at once exactly what I expected, and nothing like I had expected. And I think I'm glad that I went, but I'm not sure how I feel about it, even now.
When I arrived in Bremen it was just like I expected. Everything looked familiar, as if I had never left, and I wandered around the city center like a local (or maybe a local with a camera). It was nice to see the city again, the weather was pleasant, and I took some good photographs. I went for a walk in the park, ate at a cafe, and generally had a nice time. But because of the scheduling rush, and various other coincidences, I never ended up meeting anyone I met last year. Some fell out of touch a long time back, some more recently, and others simply couldn't make it that day... but I just realized that the same applies for this entire summer. I haven't met a single person that I met last year. Not one. It was a strange experience. And then, just a few hours later, I got on the train and left town again. Lately it seems like I can't go anywhere without leaving somewhere else.

July 17, 2009

Back to Work

I have been working this whole time (well, except last week), even though I've kept pretty quiet about it on the blogging front. I think it's about time for an update.
The DynamixelNetwork code is just about finished. That is, it feels very well-rounded, it's densely-commented, and it'll do everything we need it to do. (In fact I think there's now more comments in it than actual code... but I did it for Doxygen, so that you don't even have to open the source code now to find out everything you need to know about it.) There are still one or two problems with it--a couple obscure functions of the servos aren't yet supported, and the latency is pretty high--which I'm hoping to get the chance to iron out before I leave, but I still think it's a nice bit of code, and better than anything else available for Linux for these servos. I hope the university will choose a license for it soon, so I can post a link. It's my first real contribution to the "open-source community", and hopefully not the last. I hope it gets a good response.
On the robot front, I'm making good progress writing the pan-tilt unit module to integrate into the software framework. That's kind of minimal, though--just a bit of code to accept and send messages, which talks to the servos with my library. I've also been tasked with designing the hardware for the robot body... somehow. Heh. When I first got here I started in on the pan-tilt unit, and I had never designed hardware before. What I'm doing isn't really too complicated, it's just a bit of CAD... but I had never done it before, and I didn't have any idea where to start. I did it, though, and it was pretty fun. It turns out that by doing that, I became the most experienced person on the team when it came to hardware. So I was the natural choice to design everything else.
I'm not complaining, though. I'm learning some valuable new skills, and I do like to tinker with gadgets every now and then. It's staves off the drudgery of programming 24/7, and I'm getting better at it, too. So on Tuesday I'm going to take the robot apart again, pull off a few things, walk to the workshop with an armful of aluminum, and slap it all together. Fun times.

I'm leaving Germany on the 12th of August. That means I've got three weeks left to finish up. If I finish the hardware next week, I should be able to get the software wrapped up before I leave. It's really strange to be leaving so soon. Three months isn't really much time at all. It's okay, though--it wasn't long enough to get overly attached to the place, but it was long enough to get a whole lot of stuff done, and get some memorable moments in there, too. I'm not really excited about jumping right back into school again, though...

July 16, 2009

Best Headline Ever

Fiji Freemasons Held for Sorcery

That is all.

July 15, 2009

Crowded Life

(How about a little original fiction to spice things up?)

It was hard at first. The food was awful, and the living space was cramped. Each resident could clearly hear every word uttered by the neighbors; there was no privacy at all. And there was precious little social atmosphere, either--each resident kept to himself, appearing almost fearful of making eye contact, of stepping outside of their own little boxes. They each had their own little distractions, and whether it be a book, an electrical gadget, or merely one's own mind, it kept the fear of human contact and the boredom of the long waking hours at bay. Beyond this there wasn't much to say. At night they slept: a difficult, uncomfortable task made easy only by long repetition.
It was hard at first, harder than anyone had expected it to be. No one had expected to spend their lives this way... it's simply how things worked out. And if they could find no comfort in this life, then at least there was the certainty that their children would be better off. The childless were the most resistant, and it was months before their mourning was no longer heard. Living in such a packed mass of humanity, although it set up rebellious thoughts in some, had over time a profound homogenizing effect. When one is faced with a situation one cannot change, one simply must adapt. Even an impossible reality must be accepted as reality. Although unspoken, this was the consensus they had all reached, in the first few months after they discovered that their plane was not going to land. It hadn't crashed, either, after approximately three years... although by now everyone had stopped counting. The food kept coming in little sealed trays, and they never ran out of crushed ice or cola. It wasn't so bad, once they got used to it.
It was hard at first. But it got easier.

July 11, 2009

Students

Recently I've been in Heidelberg for a meeting of all the RISE students in Germany. And I have to say, it feels like I'm a high school student again. I'm surrounded by stereotypical examples of my age group, universities are vying for my attention, and we're all being herded extremely inefficiently to our crowded rooms, halfhearted events, and cheap food. That sounds very negative, but it wasn't entirely intentional... that really is a pretty accurate description of what happens when one tries to wrangle students. But it's not all bad. Thursday was fun--I saw one or two graduate programs that looked intriguing, and it was nice to feel wanted again. But today was kind of a dud. You see, this program generally caters to the hard sciences, such as biology, chemistry, and particularly engineering. The reasons for this are obvious--the grant money comes from the German government and various German industries, and they are all interested in gaining the most profitable talent for their country/company. There were a few computer science opportunities grouped under "software engineering", and I snuck in on one of those, but today when we did our company visits, I was lumped in with the engineering group. We went to visit Bosch, where we saw an assembly line making fuel injectors, and we also visited the Porsche museum. I got the feeling the engineers were happy enough, but I was bored out of my mind.
Afterwards we went to a dinner, which was nothing special... had some good conversations and okay food, at least. But then, as students do, we all got separated and wandered around the city looking for bars. Our group wound up fragmenting and reforming in some very organic ways, and the entire time everyone was talking intently about where to go, without any decisions being reached. It was my intent from the very beginning to simply find the next bus back to the youth hostel, and I was merely following the other students because I thought, naively, that the general direction of the group might head that way. I was right, as it turned out, but it took almost two hours, and meanwhile I was treated to an endless monologue about every aspect of getting shitfaced drunk for as cheap as possible. (It wasn't just one person, but I hesitate to use the word "dialogue", because everyone just seemed to be shouting into the crowd and waiting for an echo to come back on a close enough subject to continue the "conversation". Amoebalogue, maybe?)
I'd like the emphasize that this... there, now I'm hesitating to even use the word "activity"... that this state of being was not restricted to the hours after dinner and before breakfast. Every waking hour I have been with these students has been the same loop playing over and over. Usually in the same order, too: how drunk we were last night... how drunk we're going to be tonight... how we can get as drunk as possible for as cheap as possible... how hung over we're going to be tomorrow morning. The different hours of the day are like the different states of matter--different behaviors emerge, and reactions are different, but in the end it's all just a bunch of atoms. Or, in this case, alcohols.
To summarize... this trip has been alright, except for all the students. And I am looking forward to having a nice restful Sunday.

Update: The last day was very similar to the second--the tour (this time of the castle overlooking Heidelberg) was quite boring to me, and when it was all over it just sort of... ended. We got together for a group picture, everyone applauded, and then the huge lump of 300 students slowly dissolved into the city. There was one thing that helped a bit, though. The "debriefing" on Saturday morning consisted mostly of a summary of how things went, and a lot of talking about how we were less rowdy than the previous group, and about how difficult it was for them to organize all of this. (Apparently they've only had like two full-time staff members organizing everything and answering emails for the last three months or so.) It may not sound like much of a motivational speech, but it was very humanizing. I think it really did a lot to prevent us from walking away griping about how shoddily this was all planned.

June 29, 2009

Relief

I finally got all my mouse buttons working in Linux. And no, I'm not going to bitch about how unhelpful Linux was this time... I'll leave that task to the simple fact that I've had this laptop for almost a full year now. Granted it mostly worked correctly, and the only thing I was missing specifically was that the back/forward buttons didn't work in Nautilus. But it's nice to have it working fully again, and even nicer that I found a comfortable solution.
It didn't take me long to abandon the "supported method", which is to install imwheel and edit the settings by scratching arcane figures into stone tablets. Fortunately I was quick to find an alternative called btnx, which has a (gasp!) graphical user interface. Although it's not exactly shiny, and it was probably just a lucky break that it supported my mouse, it was simple to use, fully-featured, and worked the very first second time. (It didn't say it had to run as superuser, and didn't warn me, either... it just failed when I tried to save the settings.) But the interface was nothing less than I expected--a straightforward "click the button you want to edit" process. One limitation I think it might have compared to imwheel (I haven't really searched for it, though) is the ability to have different settings for each program. Fortunately that's not one of the things I want to do right now, but hopefully it'll be supported in the future.

I wouldn't exactly call this a glowing recommendation ("Ubuntu: Its inadequacies aren't entirely unsurmountable!"), but it's the closest anything in Linux has come to "just working" in quite a while.