bitman

About Recent Entries

Feb. 5th, 2006 @ 09:34 pm
In case anyone was wondering, I am still alive and doing well. I have not posted anything in over a year not because nothing has happened in all that time, but because there has been too much. If I can't say enough to do it justice, I never find the motivation to say anything at all.

And in case anyone was worried, I don't intend to delete my journal. The whole point of a journal is to be able to look back and laugh at how naive we once were. I'm a chronic archivist who can't bear to lose any information to the ravages of time, no matter how I feel about it now. I suppose it's only fitting that I ended up working at a database software company.

Perhaps I will post more in the future. If anyone is interested, I can summarize the past year, but for myself I think I have said enough. I can still be reached by email and through comments, though I'm a bit slow to respond as some of you have noticed.

Vale!
Current Mood: quixotic

Change is part of life Jun. 9th, 2004 @ 09:04 pm
Another successful school year concludes with tomorrow morning's 8:30 final. I may be changing jobs very soon, moving out of the book-shelving industry and into the computer industry. This is a very smart move for a Computer Science student like myself. And best of all, my experience with Linux and C/C++ will totally pay off. I was afraid for a while that I might end up somewhere like Microsoft and have to learn how to make drag-and-drop user interfaces in .NET. Or something.

All-in-all it's been a heck of a quarter. Spring quarter is always the worst, because you had already run out of incentive to work about halfway through Winter. That's why I plan to graduate a quarter early next year and just skip Spring quarter entirely. Well, that and I'll have enough credits, so why not; I mean, really, I only have 17 credits left to complete, but I would have to take about 5 or 6 senior-level CS courses at once to cram them into one quarter. So I'll spread it over 2 quarters and take it easy. Easy... yeah right.

Now, if you will excuse me, I have a library to close. Vale!

Cats and dogs Apr. 27th, 2004 @ 04:24 pm
Arg! It's raining cats and dogs outside and I didn't bring even a jacket to school today. It was just so sunny and warm yesterday, and I couldn't find my jacket this morning... I'm doomed. Hopefully the bus isn't late today.

Tamirindo warning Mar. 23rd, 2004 @ 10:50 pm
If you ever happen to find yourself buying random flavours of Kool-Aid, do not buy tamarindo. Kool-Aid should not be dark brown like apple cider. Or smell like... bark. Or taste like... tamarind...

Consider yourself warned.

Spring quarter schedule Mar. 19th, 2004 @ 02:23 pm
Spring Quarter 2004 Schedule )

Everything is very compact. :) There are no huge gaps like this last quarter, I don't have to get up until 10:00 most days, I only stay at school late 2 nights a week, and I get to do band. Now as long as I don't have everything due on Thursday mornings I should be fine.
Current Mood: listless
Other entries
» Life
Finished my last final of the quarter just now. Waiting for the bus... Looks like I skated through 2nd quarter Latin pretty well (and it's the hardest of the three).

Programming languages was fairly easy. I now have a bit more of an understanding for the features that C lacks, and an appreciation for the features C does have that make it beautiful. Oh yeah, and C++'s template syntax still looks ugly to me. ML did it much better.

Operating systems was fun, but hard to take seriously. I didn't really learn anything I couldn't have thought out on my own, given enough time, but the professor was so knowledgable, with plenty of anecdotes, so the material seemed really interesting.

Theory of Computation was probably my hardest CS class (Latin trumps all classes). I learned all about these "Finite Automata" things which are really good at representing regular expressions (in a way, they are regular expressions). And then there are these "Push-Down Automata", which are a bit more powerful (they have a stack!). Finally there are Turring Machines, which can do anything we would label a "computation". Practically the only thing they can't tell you is whether or not another Turring machine is going to run forever. Pretty weird, huh?

Sadly, anime.fm went off the air some time ago due to lack of money. It was a very sad day for everyone. But I've found another internet radio station for all my J-pop needs: Japan-A-Radio. It'll do; I'm not picky.

I've switched to Linux full-time at home. I realized that the only thing I really needed to stay in Windows for was to keep Kazaa Lite running all the time ('cause I can't ever find any of the obscure files that I'm after on any other network). But now that I'm back on dial-up, it's a moot point. Plus there's giFT now.

So now I'm running Debian unstable with a few things pulled out of testing (like Subversion 1.0! w00t!). I like Debian very much, now that it's installed and running. If I had made my own distro, it would be much like Debian, so it's really easy to figure out how to do something -- just think about how I would do it... except that many of the utilities have cryptic names, but that's Linux. "apt-cache search" is my friend.

I haven't posted much this quarter. On one hand I've been busy, but on another, I have Lori now to share everything I do with. I guess I don't really need LiveJournal as much as I used to. This isn't goodbye or anything; I'm not deleting my journal and anybody can still contact me in one of many ways. I just have another life and it's winning right now. So,

See you, space cowboy...
» (No Subject)
Happy Valentines Day everyone!

Lori, Libby, and I made truffles last night. They don't exactly look like truffles... but they sure taste good. And we had fun getting chocolate everywhere.
» Worst workday ever
I gain no solice when I turn out to be right after my judegement has been offensively called into question. I resent being put in a situation where I must solve problems which my superiors believe I am not able to handle, when in fact I am quite capable.

And I am sorry for the person who is stuck in a long line behind somebody who is taking a very long time to serve, because of a technical problem. But I will not tell that person that they must wait for you simply because your transaction will be faster. Not to their face. Shame on you for even asking.

Thanks everyone for letting me vent this.
» Jewelry that plays music
I saw somebody wearing a Rio player on a lanyard around their neck. Music players are getting so small now, I can imagine them being disguised as necklaces. The chain of the necklace can conceal the headphone cords up until either side of the neck. The player itself could be disguised as some sort of gaudy ornament.

I can see this becoming fasionable in the near future. (For guys and girls!) Just you watch.

On a totally unrelated note, I've been having spam problems lately. Somebody's been spoofing my sourceforge address and so I'm getting tons of returned spam, all in Russian. I've got it forwarding to my UW account now, which has excellent filtering, so I only see a few spam a day from there instead of hundreds.

The new W32/MyDoom-A virus has been flying everywhere on the campus networks. I even recieved a copy yesterday. I took a good look at the virus file in less before trashing it (someday I will pay for my complacency -- assuming that using UNIX to read my mail makes me immune to infection). There were some strings like ABCDEF... and 0123456789 in there, and a list of .dll's at the end, but mostly it just looked like binary garbage.

Today I got an automatic message from one of the campus servers telling me that this virus was recieved IN MAIL FROM ME (in caps even). Apparently the new virus .dat files have propogated now. Anyway, the headers indicated that it originated on Qwest's network (phone company -- they do DSL too). I don't use Qwest's internet service, so it wasn't from me. I hate spoofing.

What this needs is a brand new email protocol that (1) requires that you send mail through the server you expect to recieve responses at, (2) verifies the sending server's identity, and (3) requires SSL or future equivalent for all transactions. The first ensures that a mail server can hold its users accountable for the messages they send, the second ensures that other servers can hold the sending server accountable, and the third just makes sense now that we have such good encryption technology.

It would almost certainly have to break compatability with SMTP, but it would so be worth it. POP3 and IMAP would be unaffected.
» Google weirdness
Okay, so a few days ago I noticed that Google's homepage looked a little bit... different. All of the links at the top (Web, Images, Groups, etc) became more compact, and some of them were replaced with the text "more ยป". Have I stumbled upon some sort of "magic cookie" that makes everything appear more compact? Is Google discriminating based on my user-agent string, serving a slightly different page to Firebird users?

Has [info]bitman finally gone crazy?

Find out for yourself )

I mean, it's not as though I mind; I like the compact interface much better. What bugs me is that I can't reproduce it anywhere but at home.

Update

Okay, so I tracked it down to this seemingly innocent cookie:

.google.com TRUE / FALSE 2147368759 PREF ID=33e7cf87274a7184:TM=1033083790:LM=1033083790:S=hlSuDrbFAkmzbiIq

I still have no idea how I aquired this cookie. It's handy, though, so I think I'll hang onto it.
» Winter class schedule
I just realized I haven't posted my class schedule for this quarter yet.

Winter Quarter 2004 Schedule )

And now some brief thoughts on my classes:

CSE 341: Programming Languages
This class is so much fun. We're learning ML right now, which is like the most polymorphic language ever. I soak up new programming languages so easily that I'm doing really well in this class, even though I've already missed class 3 times -- once due to freezing rain, once intentionally because I needed more sleep, and once because my alarm was set to 7:00PM (stupid AM/PM dot). I expected them to teach us LISP, but apparently that got dropped from the curruculum this quarter. How can I live with myself without having at least a little LISP?
CSE 451: Operating Systems
Fun but time-consuming. Our first project involved adding a system call to the Linux kernel. Fortunately the labs had VMware set up to make testing the modified kernel really easy. I really didn't have the time to learn how to use bochs or user mode Linux. We also had to write a simple shell program that used the new system call, as well as fork() and friends. And all in C! I rock at C! My shell was all uber-well-designed, too. They suggested using strtok() to do the command parsing, but strtok() sucks (it's own man page says to never use it, but if you do...), so I did my own parsing using techniques learned from working on KevEdit. It was almost overkill for such a simple assignment.
CSE 322: Introduction to Formal Models
Ever heard of finite automata? They're apparently these abstract things that know how to recognize languages. Thought you knew what a language was? Well, in this class a language is just a set of strings. For example, the English language would be something like the set of all meaningful English sentences. That's a freek'n huge set. The C language? That's the set of all possible C programs. So what a finite automaton does is take in a string one character at a time and tell you whether it's in some language or not. It's pretty easy stuff, but only mildly interesting. We've just now started on regular expressions.
LATIN 102: Latin, take two
OMG, I thought Latin was hard last quarter. This quarter my teacher actually cares about us doing our homework every day. I mean really, how can one expect so much from sleep-deprived college students? In addition to the test at the end of every week, now we have biweekly vocab quizzes. It's crazy. I actually have to spend more time on this class than the hour and a half of time on the bus each morning that I alloted for Latin last quarter.
</dl>
» The lessons of life
When the instructions on a pizza say "make sure that neither the pizza nor the paper tray don't touch the sides of the oven", you had better make certain to pay attention. Even if your oven is exactly the same size as the pizza and you really don't feel like cutting it in half, don't ignore the warning. It's there for a reason.

You know you have too much laundry when you have to stop after six loads because you ran out of quarters. To be fair, we only have two loads left to be done. It's so nice to have clean clothes again. :)
» (No Subject)
As of this moment, I am officially free of cygwin. Until now, I depended on cygwin to provide a unixy enough environment to build KevEdit under Windows. Now I have MSYS, the minimal shell environment for MingW. Not only does it build and run KevEdit's configure script better than cygwin, but it also works with the precompiled SDL libraries so I don't have to compile SDL myself.

Cygwin has so many weird behaviors, like not being able to find libraries in obvious places for reasons I've never quite figured out. You also have to be careful not to build your program so that it depends on the cygwin DLL, since that file cannot be distributed very freely. Vanilla MingW with MSYS doesn't have any such problems.

And MSYS uses rxvt, a fast minimal xterm client that I loved using in Linux back in my 486 days. rxvt has trouble hooking into stdin and stdout correctly when running some (DOS?) programs, but I can live with that. It's so nice finally having the select-to-copy and middle-click-to-paste features in Windows now. DJGPP could never deliver that. To be fair, I had rxvt working in Cygwin at one point, but it was hard to set up right.

Sorry if all that was a bit obscure, but hey, so am I.
» Oh the agony.
Lori was editing a story written by one of her friends, and this sentence cropped up:

"Something had just taken afoot, and no one was even aware to what would be looming their shadow of death and plague upon our green Earth."

I believe it speaks for itself.
» Linux in the lab
Spiff. The computer science lab now has almost an entire wall of linux machines. Okay, so it's only 6 machines, but nobody else seems interested in them, so it's okay. I haven't recieved any information about these systems, but I was able to log in, so I guess I'm allowed to use them.

Anyway, there's no GNOME or KDE installed, so I'm getting used to AfterStep again. Ah well, the first thing that popped up when I logged in was twm, clock, and an xterm window. Talk about lame!

And the damn xsession script was written in csh, and I don't feel like learning csh or porting it to bash. Ah well.

For some reason Mozilla scrolls really slowly, too. It's not a remote X session, so I don't get it. Meh.
» Let's review my week so far, shall we?
Okay, so Monday morning I woke up to find my shower inoperable. That is, I could not pull out the knob that turns the water on without great effort (and fear of breaking the thing), and even then no water gushed forth as one would expect. No doubt about it, the pipes were frozen. Fortunately, the sinks and toilet still worked, so I was not worried and immediately hurried to my first day of class.

My classes are going to be interesting this quarter. In "Programming Languages" I will learn all about ML, Scheme, Squeek? and several other languages you only ever vaguely hear about. But no LISP! Previous takers of this class spent almost half the quarter on LISP. I'm disappointed.

I did look up the best method to defrost frozen plumbing on the internet (incidentally, "frozen pipes" is a better search phrase than "frozen plumbing" for this). The most popular method is to apply heat via hair dryer. Some people suggest using a torch because it's fast, others suggest not using a torch because it is dangerous and you have to water to put out a fire (that's why you're using it -- ironic, eh?). Fortunately, when I got home, turning on the water brought forth a tiny trickle of water, followed by some hacking and coughing, then a full stream of water. Monday day was not as cold as yesterday. The management for my apartment also stuffed big orange fliers in everyone's doorway explaining that 2-6 inches of snow were expected the next day and that we should all run a trickle of hot water through our faucets to keep them from freezing. Since they pay the water bill, I had no problem complying.

Moving on to Tuesday, yesterday, I woke up to a winter wonder land with snow still falling. (When it snows in Seattle, it snows at night. It does not keep snowing during the day; this is just not right.) Arrived at school, found school closed, waited 1 hour for bus that runs every 15 minutes, and finally got home 5 hours after I left, having accomplished only purchasing most (but not all) of my textbooks.

And finally today, Wednesday. What did I find when I woke up this morning? No power. Again. This time I had a nice battery powered clock ticking away, so at least I knew what time it was. I didn't trust the freshness of the batteries, though, so I still called the telephone number that gives you the time. (The telephone service almost never goes out with the power for me. It must be buried, redundant, or something.) It was correct.

So I left for school the same time I always do: 8:00. That gets me to school just in time for my 9:30 class. Except that today the bus was something like 20 minutes late, traffic was terrible, we had to reroute to avoid some nasty snow-covered hills, and did I mention we had freezing rain last night so all the tree-limbs were covered in ice and falling down everywhere? Long story short, I arrived at 10:30, just in time to completely miss the entirety of my first class, with an hour to go before my next one. Fortunately, lecture notes are online. :)

My feet are cold and wet and I'm going to be here until 9:00 PM. Good think I brought extra socks; I'll have to be careful when I use them, though.
» I have been branded.
bitman
LJ Barcode
LJ username:


I fail to see the use of a barcode that encodes my username (if that is what that does), but it looks cool anyway.
» Snow in Seattle
Here I am at school, having traveled by bus for 1 + 1/2 hours and arrived 15 minutes late for class and I find a note on the door stating that class is canceled. My next move? Find a computer in the library where I work and pull up the University of Washington homepage. I find this announcement:

UW Seattle remains open, but due to continuing weather conditions classes will be cancelled as of 12:30 p.m. Department heads may consider early dismissal for staff consistent with the Inclement Weather Policy. UW Bothell will suspend operations at 12 noon today, and all Bothell campus classes have been cancelled as of 11 AM. UW Tacoma has suspended operations and all Tacoma campus classes have been cancelled. This message will be updated if campus conditions change. Updated: 11 AM


So as of 45 minutes before I arrived here, classes will be cancelled. Okay but I still have to go to work at 1:00. Wait, no, they just announced over the intercom that the library will close at 12:30. When classes stop, apparently everything must close.

I'm going home.

Here's a post showing what the fountain on campus looked like yesterday. Everything is covered in snow today.

Also, check out the campus webcams. The one for Red Square is covered in snow just now, but you can see the Tacoma campus.
» Sed tamen est
I've had such a busy time recently, I don't have much time to keep my journal up to date. And I have people to talk with about my exploits, so I don't feel the need so much to record them here. But I really should, and I have some unallocated time just now.

Last week I implemented a floating point adder hardware unit from basic components (integer adders, shifters, and gates) using the SMOK environment.
If you haven't used SMOK before, don't. It's a tool developed by grad students here at the UW that lets us undergrads simulate hardware using fairly high-level components. It's probably pretty decent as a C++ library, but the user interface is terrible; it's very easy to use, very easy to do things by accident that you don't want to, and prone to random crashes. Plus the documentation is out of date, apparently. For example, to connect two components with a wire, you click on an input on one component, then click another component. If there is only one input, just clicking one component then another will connect them, requiring you to click in an empty place if you want to do something to a different component without creating a wire.

SMOK has a heirarchy of "containers" that you can embed within on another. When you embed one container within another, you see all the components inside of it, albeit scaled to a very small size with fonts scaled disproportionately so that it just looks ugly. The best part is, when you're in the highest level container and you try going up a level, it actually does zoom out, realizes something isn't quite right, and crashes. Now that's kwality. Oh yeah, and it's next to impossible to control the wires that connect everything, so they just turn into a huge rat's nest.

In another class, last week I worked on a group project comparing several different data structures using fairly meticulous tests. We finished just before the electronic turn-in deadline (as in, within the last minute), but we got it done is the important part. It was fun finding out that my data structure scaled very badly (slowing way down at about 8 Megs of data) because of changes to a base class that one of my partners made to speed up his structure. :P But we fixed it, so all is well, though it was an ugly hack. I hate those.

I still take a stab at KevEdit now and then. I've started posting to the forums SourceForge has provided for the project. The mailing list has been depricated due to spam, having a 98% spam, 2% bitman post ratio. Seriously. There's an interesting post about doxygen (source code documentation) in the Developers forum with a link to the very sparse documenation I've generated so far. And some posts inviting people to post more posts. I was going to hype it on Z2, but I don't feel like it right now. I am subscribed to these forums, though, so I'll get an email if anything happens. Anything at all.

If you've used KevEdit, you're probably familiar with the text (object code) editor. It's crammed with many features: open, save, copy, paste, syntax highlighting, music playback, ZZM import, and tons of things I've even forgotten about myself. Not to mention the exact same code is used by the help system, the load word dialog, and a bunch of other dialogs. And somehow I managed to cram almost the entire thing into one giant monster of a function (called editbox, for no especially good reason). So I set out a while back to break the whole thing into many many distinct, well-defined, easy to use functions. Right. Except that there's no way to do this in stages, so until I'm done with it, it doesn't do anything. I think it's almost done (I can't remember), but I haven't written the part the displays everything to the screen, so I can't test it properly yet. Maybe I should have started small, rather than trying to convert the whole thing at once...... hmmm.... I can still try that.

Anyway, that much really has to be done before I can really move on to adding new features (like I want to do, and everyone else wants me to). But all the code is at home; I don't commit broken code to the CVS repository. And when I'm at home I have other things to do: dishes, food, games, and doing stuff with Lori.

Speaking of CVS, I've been trying out Subversion in the form of TortoiseSVN just with local repositories on my own machine. I don't have any remote subversion servers I can use as I do with CVS, so it's no good for must things. But I realized that I've been archiving most of my saved games since the dawn of time every time I uninstall something, and it's been a pain figuring out which is the most recent copy. I also like to keep backup saved games in case I've done something badly and have to regress, but it's usually not necessary any more. I think ZZT and Unreal got me started on it, and now I'm paranoid. Finally, I never need these files on any machine but my own, so it's a perfect chance to try out subversion.

Subversion has some really cool features, like the ability to mess with the repository heirarchy without actually having it checked out. I thought I might have trouble checking things out into a heirarchy that doesn't match the repository exactly; games get install in many places depending on disk space issues, but my repository has a much cleaner structure. Since CVS just stores everything as individual files in individual folders, it's easy to make it check out just a subfolder of a repository. Subversion puts the whole repository in a database, though, so I thought you might have to check the whole thing out together. It turns out to actually be even easier to check things out piecewise in Subversion, and more intuitive even. I was quite impressed.

I haven't even mentioned Thanksgiving or Lori's birthday and already I've spent an hour on this. I wish I had more time to spend with Lori. As it is, most of our quality time is spent playing Diablo II together at midnight while the rest of the world sleeps.

Lori helped me breed a golden chocobo in Final Fantasy VII. I have finally developed an appreciation for the Chocobo races, now that I know I can stuff them with greens to give them uber stamina and decent speed. A mastered All sells for so much that I can finance them no problem, and I can always master more. Then I can do dishes while my chocobo takes names on the race track and collect items, GP, and stuff. The battle arena turned out to be much easier and cheaper than I expected (I hoard my GP since it's so dang hard to aquire). Now that I have Cloud's final limit break and Knights of the Round (the longest attack ever; I have time to wash five bowls before it finishes), I can probably finish the game. But I still haven't touched emeral or ruby weapons, and I have so many other things to do...

I like this song.

Oh yes, and "sed tamen est" (the title of this post) is a nice Latin way of saying "that's just how it is," or more literally, "but still, it is." I think it's going to be my new motto for a time.
» (No Subject)
I saw some random person in the computer science lab using my Schedule Builder (and LiveJournal). It's weird seeing total strangers browsing your webpage. Woot!
Top of Page Powered by LiveJournal.com