Archive for February, 2005

Spring Break Dates Solidified

Monday, February 28th, 2005

Well I’ve been dancing around the issue of my Spring Break plans for quite some time now, primarily with money concerns and then time concerns also playing a factor, but it’s all solved now.

The clincher came when I found it that I have been making some awesome headway paying on my Capital One card. There’s plenty of room to spare for a plane ticket, especially for as little as $240 bucks.

Here is my flight information, for those of you that like to follow the little planes online:

  • Outgoing, Wednesday March 16

    • United Airlines: Flight 1160 - Economy, Boeing 737-300 Passenger (733), 1hr 32min, 407 miles
      • Depart: 1:26pm, Kansas City International (MCI)
      • Arrive: 2:58pm, Chicago O’Hare International (ORD)
    • Change Planes, 1 hr 7 min between flights
    • United Airlines: Flight 882 - Economy, Boeing 757-200 Passenger (752), 2hr 23min, 858 miles
      • Depart: 4:05pm, Chicago O’Hare International (ORD)
      • Arrive: 7:28pm, Boston Logan International (BOS)
  • Incoming, Tuesday March 22
    • United Airlines: Flight 533 - Economy, Airbus Industrie A320 (320), 2hr 49min, 858 miles
      • Depart: 10:10am, Boston Logan International (BOS)
      • Arrive: 11:59am, Chicago O’Hare International (ORD)
    • No flight change, 0 hr 51 min between flights
    • United Airlines: Flight 533 - Economy, Airbus Industrie A320 (320), 1hr 33min, 407 miles
      • Depart: 12:50pm, Chicago O’Hare International (ORD)
      • Arrive: 2:23pm, Kansas City International (MCI)

Now that I have the flight logistics worked out, I still have some other logistics that I need to work out. Like how I’m getting to the airport, and things like that. I intentionally picked flight times that won’t be hard to make even if I just drive myself and pay for parking, so we’ll see what I can work up to help cut the costs any way that I can.

I’m also pleased to announce that none of my classes have scheduled exams for any of the days right before Spring Break, so it shouldn’t be any problem to let my instructors know that I’m going to be missing classes those days. I’ll have to make one call back for a birthday, but besides that, I’m really happy with the dates.

Most importantly, for the first time in a couple years, I get to be in Boston for St. Patty’s Day! Yiyeah!

I Think It’s Time To Reinstall Speedy

Monday, February 28th, 2005

I think it’s about time that I reinstalled my home workstation, “speedy”. It’s been quite some time since this installation was completed, and I’m ready to start again.

Now does my workstation really need reinstalled? Well no. It’s running great and I don’t really have any serious complaints. There are just a couple reasons that I would like to reinstall.

First, I haven’t really been keeping up with the latest packages. There’s nothing wrong with that on the surface, other than I really just like having the latest packages. It’s been long enough now since I’ve done a full fledged emerge -du world that rebuilding it all would literally rebuild it all. There are also a number of blocks that exist that I don’t feel like resolving. This immediately makes me think, well if I’m going to rebuild all of the packages anyway, why not get a fresh new system and build it up. Then I’ll have all the latest packages and be “so fresh and so clean clean.”

Second, semi-regular reinstallations are just kind of part of my routine. As my skill set and interests move in different directions, I find myself modifying my workflow and computing habits to follow those trends. Since the last time that I’ve started from scratch, I’ve tried a dozen window managers and thousands of applications, each leaving a little mark on how I think my desktop environment “should be”. Soon, my “well used” desktop environment starts to feel a little inefficient, because old habits have changed to new computing styles and what used to be the fastest way for me to do something has changed into something less than optimal. Now and then I just like to start over so that I can clear away the software cruft and start from scratch with a new outlook on computing and desktop habits.

I’ve found a few things here and there that fall right into that position on “speedy”, and so I’m starting to look forward to reinstalling it. Hopefully I’ll find myself the time to give it a crack here very soon.

Finances, Dang It

Monday, February 28th, 2005

Whelp, it’s finally hit. My cavalier lifestyle is catching up to me and I’m about to enter a pinch. I’ve eaten out pretty much every meal for a long time now. I haven’t had a meaningful trip to the grocery store since November. I like it, don’t get me wrong, but I have to stop. I’m broke.

I’ve been living just barely above my means for a while now, but I didn’t completely know it. The primary kicker is that I have forgotten to turn in timecards at work, and so my salary is behind. Tomorrow is rent day, and I’m not going to make it. I’ll probably have to borrow money from a friend until I get paid next. (Which I still owe a hundred bucks to a friend which I keep forgetting about!). However, my wages this semester are likely to suffer a bit. While teaching cis690 is helping, my hours have been cut short to do homework lately. Eighteen hours of mostly 500 level courses is coming with a lot of homework, and I usually need about 30 hours of work each week to maintain my rather comfortable quality of life. I’m not making that 30 hours a week, not even that close. Last week I probably had 20, tops. The week before that might have been as low as 15 (I’d have to consult my records to see for sure, which I just don’t feel like doing right now).

On top of just making the bills, I’ve got a lot of one-shot expenses that need to be handled soon. I really need to get plane tickets purchased to go to Spring Break if I’m going to make it this year, my Jeep still needs registered, tagged, and taxes paid, and my motorcycle needs work before it can start running again for the semester. Oh yeah, and I almost forgot about my car insurance. I totally let that one lapse and I’m sure I have some kind of fees to pay after letting it get cancelled.

I think I’ve got it figured out though. I currently eat out twice a day. I spend between $4 and $8 each lunch, and between $6 and $15 dollars each dinner. That brings me to between $10 and $23 each day on food, or between $70 and $190 a week. There is plenty of room for improvement with the brazen spending involved there.

I’m going to start with a lunch budget. I don’t think there is any way I can expect myself to pack lunches for each day, so instead I’ll just budget myself exactly $25 for the week. That’s $5 a day to eat in the union. If I overspend, then I’ll just have to skip a couple lunches now and then.

Eating out for dinner is just going to have to be completely obliterated. Maybe one meal a week or something. In the meantime, it’s time to hit the “pinch” foods. I’ll make a trip to the International Food Market tomorrow and pick up an impressive assortment of Ramen. I’ll follow that up with a trip to Dillion’s to load up on bologna, miracle whip, cheese, and bread. I expect that for a pretty small amount of cash I should be able to acquire enough supplies for a lot of meals. I’ll completely lose the awesome social aspect of eating, but I wouldn’t be broke if I wasn’t having too much fun anyway. Besides, geeks are supposed to be lonely, eating by themselves in front of the computer. I’m just heading to my roots, that’s all.

I’m also considering going for a multi-vitamin, just to keep up. I already eat “poorly” according to Mo–who is always prepared to deliver the castigation when I start to enjoy a greesy value meal from Burger King. (And she would know, since she’s there almost every time I eat out.) With the degredation from full course meals at places like Applebee’s down to sodium heavy “fillers” like ramen noodle and bologna, I’m sure to start missing some key nutrients here and there. And I’m really tired of being sick all the time.

I’m also really curious if I could save money by buying a rice cooker. I really like white rice, rice is really cheap, and rice is healthy. Seems like a win-win-win. In fact, I totally would have asked for this for Christmas if I was thinking. I got an awesome iron from my Mom, but I rarely use it. A rice cooker would have been much more intellegent for me to ask for. In fact, my iron is so awesome it could probably steam rice…. (kidding, mostly!).

I think that if I could put all of this into action, I could save enough money to easily fall back within my means and stop hemorraging money. My most short term goal is to find a way to Boston for Spring Break. It’s only $222 dollars for plane tickets, and I know I’d mope around feeling like a completely worthless, pathetic, incompetent loser if I miss one of my best weeks of my year because I ate out too much. It’d be good for moral for me to still go.

Anyway, I’m kind of rambling at this point. The general point is that it’s time to cinch up the belt, and I’ve got some good ideas on how I’m going to do it.

Python and SOAP

Monday, February 28th, 2005

In anticipation of working with Dan on the Bunker Bar Software, I’ve been reading up pretty much every night on SOAP, Web Services, RPC, SOAP based RPC, and how all of it works with a Python implementation.

It’s been pretty fun, though it’s not without it’s bumps in the road. Like most w3 specs, it reeks of over-engineering. Not that any of it is actually over-engineered, I’m not really expert enough in the subject matter to be able to tell, but it always feels that way. Every time I’m using some XML technology, it seems that researching and understanding the technology falls into a predictable pattern.

  • Read tons of specifications and documentation.
  • Get an idea for the concepts and “goals” of the specification.
  • Some parts were just “remembered” but not understood, so skim over it again to revisit the “weird” parts that didn’t make sense last time through.
  • With the knowledge assembled, look at some implementations of the spec in action.
  • That generally simplifies what was learned in the specifications to about 20% it’s original mass.
  • That remaining 20% was what was “important” and makes using the technology possible.
  • Start using it.

This process has it’s perks and it’s downfalls. The main perk is that you don’t do anything in practice that you don’t understand “why”. Lots of that 80% of “unused” information was the “why” for the implementations. It’s nice to not have any black magic tokens hiding in there that are just there because you’ve seen them in examples. The primary downfall is that it just seems time intensive to have to learn that 80% just to use 20% of it. However, I have yet to be able to look at an implementation of something W3 XML-ish and have everything just “click” and not need further explaination. So it almost seems to be a necessity to pretty much learn all of it, and then let the implementations that already exist show what the important parts of the specification are.

I’m nearly to the point now that I’m ready to completely focus on implementations of SOAP in action. And while I want nothing more to actually start coding something up, I’m going to give it a little more time to make sure I know exactly what’s going on.

The extra annoying part about this process, is that when I’m done I have no intention what-so-ever of writing a SOAP implementation. I just want to write some software that uses a SOAP implementation. So I just know that the research I’m doing is tons of overkill. But I don’t know what’s important yet, so I’m just going to keep trucking.

Clean Clothes!

Monday, February 28th, 2005

One thing that is immediately noticed by anyone that gets the mini-tour of my room, is that I have a huge amount of clothes. Not necessarily a girl-like endless variety of clothes, but more like an expansive collection of things that I wear… mainly t-shirts that came free from QuakeCon.

I also, with the exception of jeans and shorts, have kept the majority of my clothes since high school or earlier. Meaning that the sock and underwear collection are also pretty expansive. (I could make a section now about all the comments I get about sorting my shirts chromaticly on the hangers, but I just won’t.)

The important part of the story is that because of this massive clothes collection, laundry is a rare event in my life. Rare to the point of happening a little less than four times per year. The last time I had a full set of clean laundry, it was after I had paid Mo to do my laundry sometime in early June.

Since then I’ve had to do a couple loads here and there, mainly jeans, to stay on top of things, but I definitely have’t done that much laundry. While we do have a washer and dryer here, I just plain suck as doing things in parallel like that. I put laundry in, then forget about it, they almost sour, I start to dry them, I forget about it, a roommate needs to use the washer and dryer and so they move my stuff aside, etc.

But recently things were looking pretty dire. I was running out of… well… everything, and I didn’t really have a lot of time to spare either. So, I turned to a previous solution. I offered to pay Mo to do my laundry, again. The first time she did my laundry, we barely knew each other. So I really had to come out of the blue with my laundry request. This time it was a little easier, since we’ve grown to be close friends.

The task was three fold. Buy laundry detergent, fabric softener, and bleach. Borrow my Jeep to haul my laundry to the mat. Complete the laundry and return. On top of this, I’m a little anal, so there were special specifications. Instructions for each type of laundry (everything is highly sorted). Only Tide and Downy brands can be used. Extra Downy. No Downy with towels (makes them hydrophobic!). The pay is also all inclusive. This time I paid Mo $70 for the entire project.

This is the part of the story where everyone wigs out. “You paid someone $70 to do your freaking laundry! Holy crap!,” they say. But no one else seems to bother to do the math. First, there’s the detergent purchasing. That’ll take probably $20 right off the top. Next is the quarters. This many loads of laundry will take between $18 and $25 in change. Probably rght around $20. This leaves about $30 in wages. However, it takes like three freaking hours to do the 16 to 20 loads of laundry that I have. That puts it right at $10 an hour plus expenses.

That’s not unreasonable at all. In fact, to me it’s perfect. I really expect a good job to be done with my laundry, and I happen to take home about $10 an hour myself. So instead of doing laundry, I can focus on being geeky, and I’ll gladly give three hours wages to have clean clothes!

I am pretty broke right now, so it’s not like it was a painless transaction. But it was definitely worth it.

cis505 Assignment 2: Disappointment

Monday, February 28th, 2005

This previous Thursday our second cis505 homework assignment was due. I again waited until the last moment to complete the homework assignment, just like I said I shouldn’t have after last time.

However, it’s not the amount of time or lack of time that is the point of this blog post. It’s the decided change in my level of satisfaction from the homework assignment.

Previously completing the assignment from 505 was a real joy. Not only was it challenging, but the final product was something that I was pretty proud of. It wasn’t always pretty, but it at least was something on the virge of elegant at least. Sometimes it was just damn smooth recursive elegance. Clearly a superior solution to the problem at hand, and probably a solution I wouldn’t have came up with without the context of the class.

This assignment was different. A core feature of this assignment was to abstract out all of the functionality of the previous assignment into a core library (provided to us), and then rewrite those previous functions as one-liners. It sounded great at first. How could generalizing things not be cool? The most generalized solutions are the best, anyway… right?

I’m not convinced anymore. While these solutions are definitely generalized, they are generalized to the point of almost obfuscating what’s going on. I love abstract generalization, but I think very important aspects of well written code is clarity, maintainability, and just plain simplicity. These functions look like they’ve been through a secret agent training session in disguise. You can’t even tell what they are doing until you study the crap out of them for quite some time, and even then you might miss it.

Spoiler Warning! For those that might be taking 505 from Banerjee in some semester after Spring 2005. He does not allow students to use previous assignments done in his class as a homework aid. If you check out the rest of this post, you could be a big fat cheater!

Here’s an example. In the previous week we wrote a function to take an integer and output binary equivilent in the form of a list. Here it is:

let rec bits n =
  if n < = 1 then
    [n]
  else
    (bits (n / 2)) @ [n mod 2]

Pretty slick I think. You just can’t get too much simple or clear than that. So then I was presented with the task of abstracting out all of the functionality of this bits and turning it into something using only the standard list operations provided by Dr. Banerjee in a ListUtils.ml file. Here is the solution that I came up with (though admittedly with some hints from friends):

let bits n = ListUtils.rev (ListUtils.map (fun x -> x mod 2) (ListUtils.gen (fun x -> x/2) ((>) 1) (n)));;

Yeah, I know what you’re thinking. What the hell? Without help from the author, it might take a second to figure out what the hell just happened there. In fact, since ListUtils.gen is not a standard part of the List package in Ocaml, only a real ML stud or someone familiar with cis505 would probably know what gen does. In this case, gen is used to generate a list starting at n, where the next number in the sequence is defined by the function passed as the first argument, and then stops when the function passed as the second argument returns true. After that list of numbers is generated, the numbers are each mod 2‘d, and then that resulting list is divided is reversed to put the most significant bit and least significant bit in the right places. Yowsa.

The official solution from Banerjee looks much better, but it still a little rough (in my opinion):

let bits n =
  if n = 0 then
    [0]
  else
    List.rev (map ((flip (mod)) 2)
		(gen ((flip (/)) 2) ((=) 0) n))

(If that looks weird, it’s because Banerjee mixes tabs and spaces in his code.) How we have some of the original look from the first solution, but again we have about the same thing as what I did at the end. After looking at Banerjee’s solution, I have a feeling that my code is a divide by zero waiting to happen, heh heh.

But either way, does either of the second two solutions look like a better solution to the bits function? I don’t think so. It seems to me that the second two solutions are unnecessarily complicated. What they gain in generalization, they gain only at a very high price to the maintainability and clarity of the solution. As I’ve progressed in computer science (especially outside of our curriculum), I’ve become to value clarity, simplicity, and maintainability more than speed and efficiency in almost all situations. In fact, unless a characteristic of the problem is “this needs to be ultra fast” or “this needs to be super efficient”, clarity and simplicity become the second most important qualities for programming–only losing out to the importance of choosing an algorithm with an appropriate time complexity.

So after the second assignment in cis505, I’m a little turned off. My poor attendence made the assignment harder than it needed to be, but even when it was accomplished I wasn’t very happy about it.

But rather than just dwell on it, I decided to go ahead and email Dr. Banerjee on the subject. I’m hoping that he can shine a little light on this confusion of mine. Hopefully there is some hidden element or elegance that I’m just missing… or something.

Enlightenment 0.17 Impressions

Wednesday, February 23rd, 2005

When I recently heard that Dan had built e17, I couldn’t help but be curious. I asked a bit about his experiences to see if it had made much progress since the last time that I had used it. Turns out that it has made a lot of progress, damn near to the point of being usable. Virtual desktops and everything!

So I then I Slashdot has a post today specifically about Rasterman returning the volley from Seth’s blog regarding the next generation of x rendering. Rasterman was so bold as to say (paraphrased), “Well that’s great talk and all, but check out our libraries with e17, we’re doing all of this right now.”

Challenge accepted! I had to build e17 before I left for class today. I’m running it right now and I have to say that I’m… impressed!

I don’t know that I’m qualified to double check claims to insure that everything that is “supposed” to be happening is happening, but it sure as hell looks like it. I see real dynamic transparency, event driven effects, the whole shabang, running very quickly on my PC.

Disadvantages? Well, it’s just not finished yet, but that’s about all that I can think of. It’s not really progressed to the point that I would consider it all that useable, primarily because I take too many “bells and whistles” for granted when it comes to my graphical work environment. But it’s still pretty damn slick, and I’m really glad I started it building before I left for class this morning so that I could check it out tonight.

I’ve read some of the comments on slashdot though, and I can’t help but agree about some of the issues that were presented on slash. For instance, it’s great that enlightenment is working great, but none of the enlightenment libraries appear to even be vaguely compatible with GTK+ or QT. Is that a big problem? Well I don’t think so as far as enlightenment’s development goes. But I’m not sure if the linux desktop community is willing to make any kind of real switch to a completely different desktop rendering API.

In the end, I think it’s going to take both of these approaches. I think that the enlightenment team could crank out some superb code and a mature window manager… if they don’t decide to trash the whole thing and start over anytime soon. But if they really want to see any of the “major” linux applications fit into the environment that they’ve built, it will probably take Redhat and/or the gnome team moving forward with GTK+ and gnome into enlightenment-like areas. I don’t think there is going to be any shift from GTK to the enlightment toolkit. There’s just too much inertia.

And I don’t even know that it’s a bad thing, I really like what gnome has been doing lately. It’s a little boring at times, but I still love getting an inside look into the development of something like gnome.

I think that might really be my final impression when it comes to this experience checking out enlightenment 17–besides the obvious: go ahead and try it, it’s pretty (even if the theme isn’t)–is that the blog revolution has brought such a great inside look into the workings of the open source world. Before a person would have to join umpteen mailing lists to hear the discourse about software development. Now it’s right on the web for everyone to see.

I love being a geek.

Bar Software Musings

Sunday, February 20th, 2005

So after a party that big, I couldn’t help but be reminded just how important accurate inventory management is–and will continue to be–if we want to not lose our ass having parties. We need an inventory tracking system, and bad. Luckily I already have a project lined up for just that purpose.

After tonight, I’ve made a few more design decisions that I think are going to make things even nicer. First, I’m now planning on having multiple stations for using the software. The will be the touch screen right at the bar, but then another is needed for the bar back to handle inventory management. This came to me while I was trying to figure out how I was going to make a keyboard available to the bartenders. That’s when I realized that they really don’t need a keyboard. The keyboard is used for managerial stuff, not POS bartending stuff. So then it because clear that really want is needed is multiple stations.

I briefly toyed with the idea of making a multihead workstation for the software, with the primary screen out by the bar and the secondary system just by the soda gun system. However, while having two completely different X servers with I/O for both wouldn’t be so rough on Linux, the touch screen has to be run under Windows due to driver issues with the touchscreen. :( And Windows doesn’t even allow multiple people to be logged onto the same workstation, that would clearly cut into licensing profits.

So then the idea hits, Mo donated me her old laptop after I got her hooked up with her new eMac… there’s no reason that I couldn’t just do a client/server implementation for the POS system and just have two completely seperate workstations. Oh oh oh! Then it got better. Since they would both just be relatively simple clients, there’s no reason that I couldn’t run the server on a Linux box… heck, even my own workstation in my room! Yay! Less Windows!

I’m now pretty excited to get started on the Bunker Bar Software, with the new added requirement be that it is a client/server implementation with multiple clients. Now hopefully I can find some time to do some development. I’ll have to ask Dan to see if he’s interested in working on the project with me. We’re having a great time in 520 working together in our team with Cole.

Post Party Statistics, Approximate

Sunday, February 20th, 2005

So it’s Sunday and once again my roommates and I find ourself in the post-party afterglow. Last night we had ourselves another huge Bunker bash, a birthday party for our resident Dave Plumb, along with Jonathan and Kevin. To say it was a huge success would be an understatement. Here are some off the cuff stats:

  • Peak Capacity: ~230 people
  • Total Attendance: ~300 people
  • Bunker Beer Consumed: 3/4 keg of Keystone
  • Bunker Liquor Consumed: 40 liters
  • BYOB Booze Consumed: Lots, but no stats
  • Cups Trashed: ~500, mixed 9 oz and 16 oz
  • Straws Trashed: ~200
  • Total Refuse Volume: ~80 gallons
  • Peak Girl Guy Ratio: 1:1
  • Average Girl Guy Ratio: 4:6
  • Number of Body Shots: 4 m/f, 2 f/f
  • Pukers: ~20
  • Peak Number of Simultaneous Pukers: 7
  • Universities Represented: K-State, KU, Fort Hays, Washburn, and several more colleges and universities in the midwest.

All in all, it was a pretty crazy party. A good time was definitely had by all. There’s no way that we even came close to breaking even, but the losses are reasonable for having a party this big… and we had fun.

Anyone Use Flickr?

Saturday, February 19th, 2005

So I’m kicking back a little today before starting work on the soda gun, and I can’t help but continue my reading regarding blogging software and online collaboration when I notice again this Flickr thing.

I originally noticed it when I stumbled across The Bloggies–which is apparently some yearly awards ceremony for blogs and blogging stuff. There Flickr is nominated for a 2005 Bloggie in the “Best Meme” category, which is described as “A replicating idea that spread about weblogs.”. So then again I’ve noticed it when I found that Flickr has blog support, so that one can somehow blog directly to Flickr which stores the image and then posts the blog to whatever blogging software you want.

This sounds awfully close to what I want from Gallery. Only I had just assumed that a kind of middleware blogging software would take care of the details, instead of having WordPress or Gallery do the dirty work. But after reading a bit on the online website… is Flickr the gallery replacement?

I’m hesitant to even suggest the idea, because this is very similar to the blogger vs. insert-self-hosted-blogging-application-here thought experiment where I decided that I just really liked owning my own data rather than having it tied up in someone else’s “black box”. However, Flickr appears to be quite nice, and gallery2 development is moving pretty slowly in comparison to the feature set that Flickr appears to have.

Anyway, I guess I’m just asking if anyone is using Flickr and has any opinions of how cool/uncool it is. Especially anyone that can stop by my office in Nichols hall sometime and give me a demo of the software.

gnome-blog 0.8… Dangerously Close

Saturday, February 19th, 2005

It’s been quite some time since my last Boof post, mainly just because I’ve been crazy busy with classwork. But tonight I was taking a leisurely reading session of just whatever felt cool at the time to relax–drooling over the latest gnome goodies mentioned on Seth Nickell’s blog, when I stumbled again on gnome-blog. Which is now up to version 0.8.

You know, it’s getting even nicer. My project expectations for Boof really aren’t that advanced, and it seems that gnome-blog has just about everything I was looking for.

I’m posting from gnome-blog right now, and it’s definitely not what I’m looking for, for a couple of reasons.

First, it’s WYSIWYG. It’s nice, but it’s tons faster for me to actually just type Boof than it is for me to use an “Add Link” button. (In Seth’s defense though, he did make keyboard shortcuts for the Add Link… button that makes things pretty damned intuitive if you practice it.) I also like being able to make my own lists and stuff. But I don’t do anything fancy in any blog post, so maybe I could get used to WYSIWYG. I don’t know… jury is out.

Second, no category selections. I don’t know if this is something that’s difficult, but I just can’t live without categorizing my blog posts.

Finally, while it does have image support, it doesn’t appear that the image functionality is modularized away from the blog integration. I would really rather have an image upload system that would work with my Gallery2 based image gallery than to use any blog software based image storage system.

However… these are relatively minor things overall, which makes me wonder if maybe I should be looking at gnome-blog as an application that I might want to start hacking on. It’s done in python, it’s GTK, it’s got spell check (or at least he claims it does, I haven’t seen it work on this post yet), it has a modular blog software backend (already supporting BloggerAPI and WordPress). This really close to what I want.

It makes me wonder if maybe I could graft source based editing on as an option, using GtkSourceView for source editing. Then support for categories… then gnome-blog could be right up my alley for day to day blogging use.

Anyway, I’m excited to check it out. I’m always a big advocate of not reinventing the wheel, and it would be exciting to be a contributer to a gnome project. (Even something as small and trivial as a gnome applet for blog posting). Without getting the contributer angle all blown out of proportion, if Seth wouldn’t be interested in my changes, I’d be fine with that. I know I’d still love having my “perfect” blogging application.

Update: The majority of this post was done with gnome-blog 0.8, this update is me editing the entry in WordPress. First some irregularities:

  • Empty Title — Yeah, I have no idea. For some reason the title of the blog was just the first line in the body, not a title at all. It was a simple cut and paste to fix… but wtf?
  • Kind of gross HTML generation — I suppose this is to be expected from a WYSIWYG editor, but I had high hopes, especially when the widget doing the post rendering during the editing process seemed to be rigorously HTML anyway. Alas, each paragraph ended with </p><p> all on the last line of the paragraph, followed by a single line break, followed by the next paragraph text. Almost like a whitespace removal of \n\n with </p><p>\n. I think should be </p>\n\n<p> so that the post still looks damn good when one goes into the web interface to edit it.

These are little things, of course, so I don’t think there’s anything so far that would keep me from hacking on gnome-blog a little bit to see what’s up. It’s just definitely not ready for me to be using it as my primary blogging application.

cis520 Moving Deadline? NOooo!

Friday, February 18th, 2005

The first group project in cis520 has been great. It’s challenging, time consuming, but just damn fun. I’ve got a great team (myself, Cole Hoosier, and Dan Razafsky), and we’ve just been genuinely enjoying the challenges of the assignment and the crazy shinannigans of working long hours on it.

It’s worked out great, because we all fancy ourselves to be damn good CS students and consider classes like cis520 one of our very top priorities. We’ve been in Nichols enjoying ourselves and making damn fine code pretty much every night this week, timing it perfect to complete today. In fact, Cole got ahead of himself and finished problem 6 today and so all we need to do is meet to clean up our submission and then fire it off.

It was not without price. Dan lost an econ quiz as a deadline passed by in the heat of 520 coding, and sacrificed tons of time from his math assignment this week. Cole had ran himself absolutely ragged with almost zero sleep all week to meet all of his committments. We had a cis520 project, a math551 lab, math551 assignment, econ510 exam, and an econ 510 take-home calculation based exam. Cole and I have the same schedule (nearly, I just have 690 on top of it), and so that what we were both facing this week. Cole spent most days this week on campus 21 hours a day or more getting everything done. And he’s a stud, and he got everything done.

I couldn’t hack it. Well, more like I was hacking all week. I’ve been fighting a nasty chest cough, accidently ate raw meat and went down for the count for Wednesday. Then Friday I crashed and burned again after sleep deprevation shut me down with migraines and nausea.

Result, something had to go. Math551 was the unluckly recipient. The schedule had been made, 520 was more important, and so while math551 was due today I worked on 520 instead last night. I’m okay with that. Taking challenging collegiate classes have opportunity costs, and sometimes I just don’t have time to complete it all. I’d rather have a badass 520 project than a good grade in math551. It probably burnt about 4%, but I can handle that.

Then the ball drops: an email from Dan at 1:00pm today.

Date: Fri, 18 Feb 2005 13:19:14 -0600
Reply-To: cis520sp05
From: Dan Andresen
Subject: [CIS520SP05] deadline extended to Sunday.

Project 1 is now due Sunday night. Project interviews will probably be
late in the week.

Project 2 will be assigned early next week (Mon/Tues).

Regards,
Dan

What, what, what? You mean I didn’t have to sacrifice my math551 grade? You mean I could have budgeted all my time differently to accomplish all of my goals without killing myself? You mean Cole didn’t have to spend 21 hour days on campus? Oh that’s great to know now, after all the damage is done.

I can just think of what I’d do with this knowledge two days ago. I would have slept a little better, I would have finished my math551, and we still would have had an awesome project. But now this deadline is worthless. We’re done. My econ and math grades have already been punished for me caring about this deadline in cis520 more than those classes. And all the slackers or poor time managers that aren’t very busy this weekend get a glorious gift.

But this gift is backwards! A course shouldn’t move deadlines in a way that rewards the undiligent or those that think that 520 is a lower priority than the rest of their life. This is the type of crapola that everyone gets used to in Dr. Hankleys 501 class, where every student learns not to actually do the work, because the deadline will move. I never expected it from one of Dr. Andreson’s classes.

As soon as I read the email, I immediately replied with an email expressing my distaste. It wasn’t quite as ranty as ths blog entry, but it was along the same lines. I’m interested to hear what he thinks about it. In fact, waiting for a reply to that email might be the only thing that my team can use the extra two days for, since we’re done on time.

I should probably make a disclaimer here at the end that I don’t have any beef with any other teams in 520. If these extra two days over the weekend turns out to be a blessing for them, super. I’m just disappointed that the only reward the superb work done by my team to fully design, implement, debug, and test this project, completed on time is lower grades in other classes and a beat up body from lack of sleep. It’s lame.

Update: I received a reply from Dr. Andresen regarding my quick email response to the deadline change:

I agree, and I'm not too fond of them myself. I actually had made the decision
to extend the deadline yesterday morning, but ended up getting so distracted by
everything else going on that it didn't actually get emailed.

Dan

So it seems that Dr. Andresen had made the decision in plenty of time to be reasonable, then just forgot to notify us. I’m not sure if that really helps the situation in this particular case… but at least I have higher hopes that it won’t happen next time.

Arby’s, Why Do You Hurt Me So?

Wednesday, February 16th, 2005

I’ve been fighting off illness since the weekend, which is a difficult prospect by itself when I’ve been having 8am to 2am long days on Monday and Tuesday.

Well last night Arby’s gave me the straw that broke the camel’s back. A fantastic French Dip sub with undercooked beef. I didn’t think it was going to be a big deal, I usually like my red meat on the red side anyway. It turned out to be a big deal.

I’ve been sprinting between the bed and bathroom all morning, and I’ve still got more homework to do this week than I have hours left. Crap.

Moderation in all things…

Monday, February 14th, 2005

So I’m once again learning the lesson of moderation. I’ve always been the kind of guy that has a tendency to just go all out when I get my mind set on something, but it’s starting to get the better of me. Last week was a crazy party week. First Fat Tuesday, then Thursday night.

I had a fantastic night on both nights. Especially Fat Tuesday when Mike and I played pool for almost four hours without a single loss on the table in the back of Pat’s. Of course there was no shortage of festive drinking, and I even had the opportunity to pass out some beads (though not for any of the traditional nudity associated with beads.) Thursday night was marked with an amazing drinking record that would make a “personal best” for me, in a kind of not-exactly-best way.

While I had a great time both nights–and I think it would make funny blog posts–I haven’t really blogged much of it at all. Why? Oh it’s simple really. I know that my Mom reads my blog and I can’t convince myself to blog my drinking habits when I can just picture her face when she reads a blog entry that’s centered around relatively typical collegiate binge drinking. So I’ll abstain.

However, one thing’s for sure, I’m going to have to moderate a little bit more if I’m going to make it through the semester. While I scraped by last week, by the weekend I was sick as a dog with the same kind of nasty hacking lung cough that I had two weeks ago. Obnoxious. This week is going to be much more tame socially during the week, but Saturday is a huge party at The Bunker for Dave and Jonathan’s birthday. Our soda gun will need serviced and nearly rebuilt this week in order to be ready.

This is particuarly shady, because this week is a huge week for homework. This week I have a math551 lab and lab report due Friday, math551 homework Friday, took an exam this morning in econ510, have a take home exam in econ510 due Thursday, and a medium sized cis520 group project due on Sunday. Holy guacamole, Batman!

So now I swing from one extreme to the other. Last week I spent the majority of my time drunk or recovering from being drunk, and this week will be (if I’m lucky) dedicated to homework and projects. The contrast in subject matter is extreme, but the similarities are still striking. Both weeks are hellishly busy. Hopefully this one will be rewarding enough that it can approach the wicked fun of last week. Hopefully I won’t end up even more sick. Hopefully by next week I’ll realize that I’m going to need a little moderation if I’m going to make it through the semester with out a fried out brain and a kaput liver.

An Undergraduate Seminar Series, Wanting More From CS

Thursday, February 10th, 2005

I and the rest of the systems team often have long discussions over what we can do to improve the quality of education here in the Computer Science department. Of course, there isn’t much that we can do. Being undergraduates and systems administrators gives a person just about zero sway in such a highly political arena as higher education.

But one idea that Sterling and I kind of jointly birthed and I have been developing in my head is the idea of a series of seminars targeted at the Undergraduate student. I always read about the seminars that are coming to our department with anticipation and a bit of intimidation. They are clearly very cool stuff that I really would love to know more about, but even the descriptions just whizz right over my head leaving me to imagine the content only through context clues and the occational self-evident jargon.

Then the idea hits! What about a seminar series that isn’t about the edges of computer science, but instead is about the “normals” of computer science. Items that Undergraduate students would be really interested in. It’s almost rare for a computer science or information science student to know anything about a language other than Java until they are dropped from a second story window into 520 or 505. How about a series of seminars just about programming languages? Sterling could give a great seminar on Perl. (Maybe he could even explain why manipulating a symbol table at runtime is a good idea! heh heh!) Dr. Mizuno appears to be a huge advocate of C# when I’ve heard him speak at faculty seminars, perhaps he’d like to give a little short seminar and Q&A session to some eager students that would like to learn what it’s all about. (Hell, most people still don’t know what .NET means after the marketing balogna that Microsoft pulled.) I’ve heard Dr. Schmidt mention scheme, and I know exactly nothing about that language. I’d love for more students to hear about Python, my personal favorite tool, although I don’t know that I’d really be qualified to present about it. I’m sure that the undergraduate body would love to hear something about PHP, or even just something about SQL as a precursor to a “real” database course.

When I suggested the idea of having a seminar about Linux, in general, to my good friend Dan Razafsky he had a very telling response: “You’re going to need a pretty big lecture hall, Travis. I know lots of students that would show up for something like that.”

It doesn’t even have to be just languages operating systems–though I think that might be a good start. There are tons of challenging and rewarding fields in computer science that undergraduates are usually completely oblivious to. Maybe Dr. Banerjee and/or Dr. Amtoft would like to share why language security is so cool and intriging. Perhaps Dr. Hsu would like to give a quick and tasty introduction of data mining, or machine learning, or even computer graphics. Dr. Stoughton might want to light a fire in some students regarding functional programming. (I would imagine most students, like myself, would be quite intrigued at functional programming… even if they aren’t in 505 or a higher related course). I’ve personally had many fun and engaging conversations with Dr. Andresen over so many geeky topics I wouldn’t even guess what he’d like to give a quick seminar on.

It still stuns me just how many cool sounding electives we have in this department… that I’ve never heard of! None of these are marketed. No interest is generated. And it’s a shame, because our core beginning curriculum classes are the biggest weakness of our department. It’s these other courses that really start to be rewarding. I’ve felt more like a geek in 505 and 520 over the last three weeks than I have in any CIS class to date. (I’ve had to go entirely to my own projects to have any kind satisfying geekery over the last several years.)

Of course, everyone is busy. I’m busy. I know that all of our professors are quite busy with their research, and it’s entirely likely that they wouldn’t even be interested in doing any elementary as-much-fun-as-instruction seminars to a bunch of undergrads that show up on a whim.

But when I think of our computer science department, it looks to me like an institution that students look at in passing and then never look back after they’ve escaped. And that sucks. When I read or hear about the great minds of our time, I always remember they have stories of their university experience. It’s usually not about the classes, but about some coffee shop that students and some professors would share in intellectual discourse, or a common lunch venue where heated discussions of life and times would come forth. It’s like the coursework would prepare great people for the enlightenment that would come dynamically from their peers and mentors. Stories like that are what university life is supposed to be like: an all-encompassing, intellegent, and stimulating soup that willing students marinate in and become great people before they leave.

That sometimes happens here at K-State. I search for it every opportunity I get. Right now my greatest intellectual moments are late night philosophical debates with philosophy majors at parties, engrossing political/economic/philosophical inquiries with Matt, introspective sharing with Dave at my home The Bunker, and delightful conversations about life, thought, and the human condition with Mo. I’m well on my way to becoming that “well rounded” individual that university life is supposed to make me… maybe too “rounded”.

I want to know if there any way that I can get this experience in the geek variety? And can I super-size it? Maybe it’s too late to change our department for me. But maybe we can fix it so I can be proud of it when I leave?

cis505 is Fun! Seriously.

Thursday, February 10th, 2005

So last night it was pretty much the last chance that I had to work on my cis505 homework. It was a fairly bulky assignment–reimplementing a large portion of the List module and some set theory stuff–primarily because I still had no idea what was going on with this Ocaml thing.

Needless to say, I didn’t get the entire homework done. I got the vast majority of it done, but a couple that had a little bit more advanced algorithms I just ran out of time around 5am to figure it out completely. Well, that’s probably not true. Most of the algorithms I could have had up and working in python in a matter of seconds. However, I can’t even get Ocaml to behave like an imperative language without fighting syntax errors right up into infinity. Ocaml is a seriously ugly language. This means that I had to resort to writing absolutely everything recursively. Wait… that sounds bad.

I’m not saying that just because a language strongly encourages recursive algorithms means that it’s an ugly language. I mean that it’s ugly, literally. It kind of reminds me of the “write only” properties of perl. The syntax seems unweildy, and because of that I can’t seem to get control flow that “just works” in every other language I’ve used to pass a basic syntax check in Ocaml. On top of that, I just wasn’t very good at recursion… though I’m definitely getting better after this assignment.

However, the main thing that was important about this assignment was how much fun I had doing it. Recursive solutions are almost by definition elegant–especially when solving such simple problems that are just begging for tail recursion as the ideal solution–so each problem completed had a high satisfaction factor. In fact, I’m kind of disappointed that I procrastinated the homework as long as I did. I found a really seksi permutation generation algorithm in Ocaml that I would have liked to really tear apart and figure out, but I ran out of time. Sleep just has to happen now and then, and the assignment was due before 9:30am the next day.

I really look forward to more 505 homework, as sick as that sounds. While it takes some time to complete, the homeworks are very well constructed to provide a good challenge and some nice practice. I can’t even think of the last time I’ve been this satisfied with a homework assignment.

There is one shadow over this otherwise great experience. Code formatting standards. I did my best to make Ocaml easy to read and understand. But Cole went over the “standard” practices and reformatted all of his code, and I have to say. It looks like crap now. And even when the suggested answers came back from Dr. Banerjee… ugly! Crazy ugly! Well at least it was in Thunderbird. Check it out:

(* 20 *)
let rec permutations xs = (* assume xs has no duplicates *)
  match xs with
     []     -> [[]]
   | x::xs' ->
       let rec insertions (x, yss) =
	 match yss with
	    []       -> []
	  | ys::yss' -> (inserts (x,ys)) @ (insertions (x, yss'))
       in insertions (x, permutations xs')

What confused the hell out of me turns out to be a result of mixed tabs and spaces. Currently in Safari it looks great for me, when I looked at it this morning in Thunderbird, the match statement on line six was actually less indented than the match statement on line five. In fact, right up until I started writing this blog entry, I thought for sure I had a great example. Turns out it made more sense than I thought when tabs are rendered properly. (This reinforces my commitment to using all tabs, or all spaces, but never both for the rest of my life.)

Anyway, I’ve never coded more than three or four hours in a language and still generated syntax errors. I clearly don’t understand Ocaml yet–specifically the imperative elements of the language. But I can see myself getting better as I code each solution, so I’m cool with waiting a little longer before it makes complete sense. Now if I could just get my non-sleeping ass into class every time, I bet I’d improve even faster.

It’s All In The Timing

Tuesday, February 8th, 2005

Yeah, so once again I find myself violating my own blogging guidelines. But I’ve already aluded to this situation before, so I figure I’ll go ahead and wrap it up in the most abstract/obfuscated way that comes to mind. It won’t make for much of a coherent blog, but I think I’ll feel better.

So my long running crush has officially came to an end, with a wimper. Of course I had given up on this crush before, however the situations that followed rekindled feelings and left lots of unanswered questions. Almost everyone that knows me well, knows how much I can’t handle unanswered questions. A chat last night with her answered all of the questions that are important, so I think I might have some closure. Technically I think she walked all over me for the course of the dialog, but that’s to be expected from a sucker like me.

As the title of this blog suggests, it was all in the timing. While it was openly acknowledge that there is was something there, it’s not something for her that is worth pursuing. And that’s completely understandable. It turns out that she found what she was looking for about two and a half years ago, and unfortunately I found what I was looking for about two and a half years too late. As far as timing goes, I guess I wasn’t even close.

It still seems a little weird to me, that “something” acknowledged by both people is never meant to be, and I’m still fairly bummed. I think we would have been really awesome for each other, and it’s a shame that it will never happen.

But that’s just how it’s going to be, I guess. I suppose now I can just finish that “relevant” art piece I’ve been working on and get to work on finding other things to think about. Maybe if you readers are lucky, I won’t bore you with this kind of mushy crap anymore and start doing more geeky things to fill this blog instead of being a big sissy.

JD and Kari, Engaged.

Sunday, February 6th, 2005

It wasn’t all that long ago that I was posting about my friends back in El Dorado starting to get married. It was weird then, but for some reason it’s a little less weird now. Tonight, JD Hillen and Kari Strelcheck have officially and cerimoniously started down the road to marriage. Tonight, at the scenic overlook south of Manhattan, JD proposed to Kari and she, of course, said, “Yes.”

It’s really meant to be. They’ve been dating for something like seven years, and they are both awesome for each other. It’s not one of those couples that would be obvious, a digital art major that has spaced out ear loops, likes heavy metal, plays in a bad, and a beautiful, ex-sorority girl (only an ex because she’s graduated), elementary school Spanish teacher. At least, it’s not obvious until you see them together. They are really great together, and I couldn’t be happier for the both of them.

Of course, it does a lot to highlight just how single-and-probably-going-to-remain-single-for-who-knows-how-long I am, especially with recent developments with that girl I’ve had a crush on for about a semester. But that really doesn’t matter, because this night was all about my awesome friend JD and my equally awesome friend Kari. However, I had no idea just how big this kind of thing would be. JD comes home, glowing pretty well. I knew it had been coming for a while, had seen the ring, etc, but Dave didn’t know yet, so that was kind of interesting anyway. So we shake his hand and give him the congrats, but Kari is something else. She’s excited, being all kinds of girlie weird, and starting to call everyone she’s been collectively anticipating this event with. Next thing you know our house is decended on by at least 15 very close friends that are all incredibly excited about this event.

Next thing we have a little insta-party with champagne and cheesecake, and lots of story telling and laughing. I wasn’t really planning on doing anything tonight, so this really filled up the night unexpectedly and with much fun.

I can only hope that whenever that right woman comes into my life–and I pop the question, I can be surrounded by as many awesome friends as we had here tonight.

Shopping With Mo!

Sunday, February 6th, 2005

So for quite some time now I’ve been needing to do some shopping. For quite a few things really. Just recently I picked up new shoes that I wear now on a daily basis. Unfortunately, I no longer have any black belts that work at all for casual wear. My daily wear belt that had have been wearing is a nice brown belt that my Mom picked up for me at The Buckle quite some time ago. Clearly that’s quite the faux pas when wearing black shoes.

I’m also wanting to pick up some more shoes, so that I don’t wear these Doc’s every single day, but I still haven’t gotten to that point yet.

I’ve also been expanding the hat collection, to try and avoid another “favorite hat” scenario, where I wear one single hat every single day for years until it is so amazingly filthy that it’s embarrassing to wear in public (or private).

Just one week ago I had went to the mall to purchase a couple new hats, and in the process decided to look for belts. Eh, totally wasted time. While I know exactly what I like in a good hat, I know exactly nothing about picking out a good and appropriate belt. So I decided that maybe I should just wait until I can get some kind of consultant to help me out.

Enter Mo. My great friend Maureen Mersmann happens to love shopping and absolutely adore shopping for/with guys. So she get’s “drafted” to assist in my belt purchase.

I have to admit, while normally shopping for me is an “okay” time, I had a pretty damn good time shopping with Mo. Her no nonsense attitude and hilarious dialog took a relatively mundane task of shopping and turned it into a really humorous event. It helped that she was also looking for a bit of clothes for work for herself, so we got to trade back and forth a bit between male and female stores in the mall.

So I’m in The Buckle picking out a few belts (unsure if I were to like them), and I’m in the dressing room trying some on. (I only tonight found out that trying on belts in the dressing room just seemed weird to most of the girls that I know.) Then, while I’m changing belts, Mo shouts out, “So… how about I give you a shirt to try on while you’re in there?” It was a setup, but I went ahead and bit. Why not?

So I ended up picking up a new black belt, and went ahead and got the shirt. Mo’s pretty good at raining down praise when she likes something, to surely influence as much as she possibly can. It was a little pricey, but eh, I figured why not. It’s not like I do any clothes shopping often.

After getting home I was coaxed into modeling, and told that I really needed to get some new jeans because none that I had were quite right, and I didn’t have enough jeans anyway. (This is the part where Mo is setting up the next shopping expedition. It’s obvious, but whatever.)

Either way, I had a good time. I’ll try out the new shirt sometime some upcoming Thursday, and we’ll see if there’s any effect, heh heh. And while I have a feeling this is something that I don’t have the budget to get into the habit of, I certainly look forward to shopping with Mo again.

Cooking for Engineers?

Friday, February 4th, 2005

So one of New Year’s Resolutions was “Eat Out Less”.

Well so far I’m failing miserably. I’m still eating out pretty much every single meal that I eat. In fact, the only time that I really “save money” when eating, is when I just skip meals entirely. And that’s getting to be a little more often than it should anyway.

I realize what I really need to do is find some convienence foods that are “healthy enough” that I can just start to get into the habit of eating at home. It’s really hard to do though, when at the drop of a hat I can almost always drum up some great company to go out and eat and chat for hours. The social aspect of eating is probably the most fun anyway!

But, it’s hypothesize that I do get into the habit of eating here at The Bunker with the assistance of some really really convienent (and hopefully tasty) convienience food. Then, hopefully I can ween myself onto some less convienent food that actually takes a little preparation. And then, if I can get that far… maybe I can find the time to try this! Cooking for Engineers.

This entire blog is dedicated to people with analytical minds that like to cook. I used to cook all of the time before the 37 hour day college life took over and I stopped. I remember being damn good at it. And when I did cook, I always used a very “construction” style approach to putting food together. The Cooking for Engineers site looks perfect.

Well, if any of my fellow geeks out there give this a shot and have good results, let me know. I could use the encouragement.