Home

Previous 20

Apr. 8th, 2008

a rule of thumb

Committing changes to existing projects means following style guidelines for the project not the language. Its even worse when you have multiple developers that don't follow each others style. Being able to tell who committed the changes by looking at their syntax isn't exactly a good thing. Lastly, if your starting a new project use the languages style guidelines, or at least the closest to a canonical set of rules that you can find. Just my opinion, but if I ever have to maintain your code I hope you agree with me.

Mar. 18th, 2008

An ending and a new beginning

Today was my last day at Oakland University. I've been employed at the University for over 2 years but it was time for me to explore other opportunities. The time spent at Oakland was rewarding in terms of the experience I gained and the friendships that I made. I will see the course I am teaching through until it ends in April. I hope this isn't the end of my teaching career as I rather enjoyed it.

I look forward to my new telecommuting position at a company based in California as a Python and c developer. I start right away tomorrow. I've got a new XPS M1330 preloaded with Ubuntu ready to go. Let the coding commence.

Feb. 1st, 2008

Python 3.0 to be backwards incompatible

Python 3.0 to be backwards incompatibility

Good move. Classic style class compatibility needed to go. It was confusing to new developers in my opinion. New-style and classic classes

In general, backwards compatibility should be avoided more often in my opinion. The driving forces behind frameworks and languages seem to try far to often to not offend anybody. The result is a mess of inconsistency, a sense of complacent negligence, and will undoubtedly cause confusion for new developers. It might be a pain now but you will be better off down the road.

This topic of backwards compatibility and the long term effects reminds me of an article by Joel on Software "How Microsoft Lost the API War".

Jun. 27th, 2007

DSpace

Scholarly journal search engines have to be the worst designed systems in existence. They fail at every point, accuracy, organization, and most of all, usability. Google has attempted to tackle the problem with the Scholar search, but again, remember, every single provider requires access, so your always stuck going back to your university catalog and fumbling through the archaic but extremely expensive pile. If your lucky enough, the journal isn't even available at your university, and some esoteric system for linking and authenticating you to another provider has been contrived. Now your stuck with a new interface, and probably searching for the journal again because the linking didn't maintain your search criteria.

At work I've been asked to setup DSpace, an open source digital catalog system for educational materials. Open source ftw? I'm not sure yet, we'll test it some and see how well it fits.

Apr. 17th, 2007

Getting burned

The age old saying "if you want something done right do it yourself" comes to mind this week. My advice to college students is as follows. If you are forced to work in a group, be the group leader and be prepared to do everything yourself. When you delegate work to group members request that they have everything done at least a few days ahead of time. This will give you time to pick up their slack.

Mar. 24th, 2007

Saturday

I've forced myself to hang at the library all day. Not so bad though, for those in the Detroit area that haven't seen the Southfield Public Library, its really nice. Wifi, cafe, built in power outlets and network jacks at every table. I've had lots of time to catch up on my grading for class. The semester is about 2/3 over. Tonight I'm going to catch 300 (again) with Meredith. Except this time it will be at an IMAX theater. Afterwords we are going to hit-up Bastones in Royal Oak.

In other depressing news my favorite microbrewery Bonfire Bistro shut its doors on Friday. I kind of feel like a nomad right now wondering the desert looking for a good micro-brew.

The United Librarian Front (ULF)

Seems as if rules are getting easier for people to break now-a-days. Drivers squeeze through .5 seconds before the light turns red. People talk during movies, even answer their phones.

No matter how far gone the human race seems to be to you, there is still 1 cardinal rule that people still don't seem to break. Stay quiet well your in a library.

Maybe librarians can share some of their wisdom with humanity. Maybe it all comes down to a getting a good shushing every once and a while.

Mar. 21st, 2007

Good Times

This past weekend a bunch of spent St Patties Day in Chicago.



Mar. 6th, 2007

An original

This past weekend was my friend Sarah's birthday. We had the party at our house. To top it off I had a customized Sushi cake made. Tuna and Salmon on the top with a california roll filling. Surprising, not a single piece was leftover.

Feb. 26th, 2007

Awesome

http://www.youtube.com/watch?v=g-LRuhmFSBU

Feb. 6th, 2007

well its fresh in my head

The difference between an aggregation and a composition is subtle and not specifying the difference seems like somewhat of a over simplification of OOP principles to me. However, as for the course I'm teaching, the material defines an aggregation as being composed of other objects by providing instance data placeholders, and it stops there. The material seems to mix and mingle the differences and I decided to refrain myself from clarifying that there are differences today in class for the sake of not confusing prematurely. However, well the thought is still fresh in my head, below is a refresher on the difference.

A composition contains instance data that exists for the lifetime of the object instance. The instance data in the composition is garbage collected when the object's life ends. A car depends on the engine parts to work. When the car is no longer needed, neither are the parts in the engine. An aggregation contains, as instance data, other instances of objects, but those other objects do not live and die based on the aggregation's lifespan. Mr. Potato Head has glasses and a hat, but neither the glasses nor the hat are required to exist for the lifetime of the Mr. Potato Head object. When Mr. Potato Head gets cooked, it still might be possible to have glasses and a hat lying around.

At this stage in the class 2 of the 3 types of class relationships have been introduced, uses and has-a, is-a will come soon. Both aggregations and compositions would fall into the has-a category. I guess I understand, partially, why the material entirely skips these gory detail in an intro to OOP course.

Jan. 29th, 2007

I for 1 welcome our new LTSP overlords

There is a history behind Oakland University's attempts at providing Linux thin clients to the greater population. Thin clients make sense, inexpensive client hardware, upgrade once run anywhere. The university has attempted 2 separate SunRay distributions. Our Computer Science and Engineering department supported 2 SunRay Linux labs. We also attempted 10 SunRay Linux clients in the library. When all was done and said the projects suffered from instability and a high administrator suicide rate. No, we didn't physically lose any admins, but we came close. After some discussion the projects were depressingly put on ice.

Welcome to LTSP, our saving grace and our way forward. Unfortunately, this means that the SunRay thin clients go to waste. Spilled milk theory applies here.

Now, any of the labs can be booted into Linux. Wow, the implications of that, its no longer necessary to schedule a Windows lab or a Linux lab, any lab can boot into any OS. This might breath new life back into the the Linux thin client implementations at the university.

Dec. 19th, 2006

rpm -Uhv beer.i386.rpm

Last week Jorge, shortly after his publicized departure from Linux, managed 1 last awesome gesture of Linux love by getting me 4 Redhat pint glasses for Xmas.

beer2

beer1

Thanks for the glasses Jorge. Since I'm sticking it out with open source I'll be sure to knock a few in the head well I'm waiting for OpenOffice to load.

Nov. 30th, 2006

Some thoughts

Over the Thanksgiving break I had time to work on the course I'm teaching next semester. I've got a decent amount completed. The course is only a little over a month away, but I'm not sure how far ahead I can lay things out for the semester. I figure that at many points I'll need to adapt the schedule to fit with how quickly the students are progressing.

I'm considering going with BlueJ as an IDE. However, Eclipse seems to be the IDE of choice, and its open source. BlueJ comes under some freeware license. I have no idea why they don't just open source it. However, BlueJ has a real simple and clean interface, its cross-platform, has a simple UML diagramming tool, and the install is only 2.3MB. It's easy to understand for beginners. Eclipse is huge with tons of features. Seems to me like using Eclipse as an IDE to teach Java would be like teaching a 16 year old to drive in a Winnebago. Too many shiny buttons. Small steps sound better. Its been brought up that because the students will be required to use Eclipse in the future that I would be doing them a disservice. I don't see it that way though. Students should learn to use multiple IDEs, not just 1. I think standardizing on any language or tool is actually doing them a disservice. Finally, I'm not going to force anybody, I'm just using BlueJ as a tool to teach with. I'll encourage students to explore other options.

Aug. 31st, 2006

better luck with garnome

I took some time out to grab the latest gnome snapshot via garnome. It worked like a charm. I have had success with garnome in the past, but tried switching tojhbuild due to the positive buzz I've been hearing. However, I was never able to get past jhbuild build errors, and thus was never able to get a working gnome desktop running.

Aug. 23rd, 2006

Gets me every time

This issue gets me every time I run into it. I always start out looking in the wrong place when trying to track down the problem. Instantiating a gobject looks like...

g_object_new (OBJECT_TYPE
             ,"prop1", 1
             ,"prop2", 2
             ,NULL);


However, if you forget to put NULL at the end, you get a runtime error similar to below.

(process:15018): GLib-GObject-WARNING **: IA__g_object_new_valist: object class `ObjectType' has no property \u077x `

This is the exact same error you get when you mess up your generic set_property or get_property methods. Its the default warning thrown in your switch statement by the below macro.

G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec)

Just a random thought...

I had a revelation this morning that during my academic career I was never once asked by a professor to throw out my code and start fresh with a better design. I doubt that I would have liked the idea at the time. In retrospect though, I think it would have been better to learn how to redesign bad design rather then maintain it.

Aug. 22nd, 2006

No lies, its for beer

I spent this past week at LinuxWorld followed by a 2 day Ubucon conference at Google. To kick off the LinuxWorld Nat gave a presentation on SLES 10 and all the eye candy. The audience almost broke into a standing ovation when Nat demoed the ability to set the color of the desktop ipod icon based on the color of the ipod you plug in.

Lawrence Lessig gave the keynote. Anybody not paying attention to him should. To summarize, he addressed the problems of control asserted over our media which in return is killing creativity and turning us into what he called a read-only culture. Lessig received a standing ovation.

It was fun hanging out with the LTSP guys, if they know anything, they know the good places to eat at in San Francisco. I think even Jorge meet his match when this giant sea monster landed on a plate in front of him.

I stopped by the GNOME booth periodically to help out where I could, but Jorge and Corey had the booth locked down well.

I missed the 1st part of the Penguin Bowl, but I arrived just in time to record Jorge, Corey and Malcolm doing the itunes dance. Taking the Penguin home lead to some good times, who knew the Golden Penguin was such a party animal.

Adam, Jorge, Corey, Ryan, I took some time after Ubucon to hang out and enjoy the Google hospitality. Disappointingly, I missed Ryan's presentation on Git for the 3rd time. Maybe its not meant to be.

And last but not least, don't forget.

Aug. 13th, 2006

LinuxWorld 2006

I didn't realize how hard finding a free hotspot in San Francisco would be. After what amounts to a day long search, I found 1, essid Sony, right by the Moscone Center. My hotel room is tiny, it's ok though, I don't plan on spending a ton of time there. The weather here is surprisingly chilly, about 72 right now.

Jul. 31st, 2006

Feels like a 106 here.

Pilots of Japan, best new indie band in a while. Seems crossed between Pavement and Death Cab.

Previous 20