#personal

Posts tagged personal

My new toy: Wacom Bamboo

After almost two weeks of waiting for it I finally picked up my Wacom Bamboo today.

So, here comes the obvious for a programmer:

image

So, I got myself a pen tablet. Why would I do something like that?

First: Rest assured, I didn’t jump on the designer bandwagon, I still suck at drawing and that Hello World up there took me 3 tries and still looks bad.

It just happened that I loved Jon Skeet’s presentation slides he had for the OS Jam at Google London on C# 4 and DLR. The idea is just brilliant. Almost no real content on the slides, just some pointers in a very “human” style.

While I was preparing for this years summer-camp at the University (I’m instructing some kids on XNA game programming again) I used a CintiQ 21UX we have sitting at the company to try this with some pretty cool results:

image

image

Obviously, a bunch of 16 year olds isn’t the perfect gauge for presentation slides, but almost everyone who saw that slide deck loved it. It’s so totally different and less formal and tense that it was totally worth the work. I just didn’t want to make a habit out of using other people’s PCs at work so I obviously needed something similar, yet much cheaper. And that’s where the Bamboo A6 really came in handy: 70€ at my local DiTech store was quite a bargain. (Although it took them 2 weeks to order and deliver that thing!)

On the Bamboo side of things, it just works. You plug it in and it works. After installing the driver I had around 30 minutes of trouble finding the settings dialog to make the tablet not target my whole screen (A6 pointing at a 24” screen is just awful), but once I reduced that it became a joy to work with. Recognition is very sharp and very precise, the different pressure levels are nice in Photoshop.

I’m also amazed about how well the Windows Vista handwriting recognition has become. Obviously as a programmer I’m still a thousand times faster when using the keyboard, but it’s nice see it working.

Another application besides presentations is obviously my blog. I hate UML modeling software with all my heart. So much that my drafts folder has accumulated 3 different rants about how clumsy and slow it is to throw together a UML with the current tools. I usually end up writing code to generate a class diagram instead of trying to model a class without coding it.
With the power of a tablet I can just throw together a raw sketch out the UML to illustrate my point without having to jump through all the hoops current modeling software puts you through. So in the future, expect some of these:

image 

Btw: Thanks for all the feedback on the iC-Website design (if you didn’t already vote, please tell us what you think)!

Read more →

New office feels liberating – outside is still better

It’s been kind of a slow week for me in programming, but I made up for it in renovating my office and learning new stuff! I managed to get hold of some really nice office furniture so decided it’s time to repaint and throw out the old crap I’ve been sitting at for years.

Sadly I don’t have a before-shot of what my setup used to look like, but it was basically a combination of two tiny desks (one actually being a very old dressing table), one holding my screen and the other hosting keyboard and mouse. While it worked for many years, especially when working with paper it was very uncomfortable since there was hardly any space left besides keyboard and mouse. Also, I have to admit it always felt very cramped since the desk was hardly bigger than the chair I’m sitting in.

So, this is how awesome it looks now:

The old furniture was dark wood and the walls needed new paint pretty badly, so by repainting and putting in bright furniture the whole room has lit up. Everything feels bigger and less depressing :).

The new setup allows me to easily switch between my PC and the little workspace on the right (where I plan to have my laptop sitting mostly) and also makes room for a second screen I’ve been planning on buying for quite some time now.

Now, the only problem that remains is cooling. Without air conditioning I frequently get temperature to rise above 30°, making work during the day almost unbearable. 3 computers generate a lot of heat in a small room, and the big screen doesn’t really help either. Unfortunately having AC setup is nearly impossible without breaking the wall’s insulation so I’ll have to abandon base during the hot hours:

This picture is taken from a very nice little cafe at Wörthersee called Schamandra. They have good ice cream and really nice coffee and view. Unfortunately there is no free wifi, but 3G reception is very good. Another place I love to go to when in need of piece and quiet is Unterkreuth. A very nice bar on the top of a mountain usually frequented by paragliding enthusiasts, since they started serving coffee there is really no better place to be.

Both places are easily reachable from Klagenfurt in 10-15 minutes by car and provide exactly the piece and quiet I require when I need to watch a screencast or read a book.

Ps: I’d like to thank Robert for lending me his superhuman strength for two days and making the new office happen.

Read more →

Help! My provider hijacks my DNS requests!

Today I followed a link to a no longer active domain and suddenly found myself on UPC’s (my provider) search looking for that URL:

image

My first reflex was to check if my default search provider may be set wrong:

image

Woot? No, my search provider is Google. I just queried a DNS record that does not exist, and I got a result back instead of a DNS error. Now, imagine my head going red and some danger lights starting to flash.

First test I did to confirm my suspicions: open a raw putty connection on port 80 to some random DNS I know doesn’t exist:

image

Then I just did a basic HTTP GET request from my console to see what the server would return:

image

Ok, so what just happened here? First of all, there should be no web server to accept my connection! Hell, I shouldn’t even be able to resolve to an IP address!

So, running a quick nslookup turned up something interesting:

nslookup www.lksdafklsdlkfdsf.com Server:  viedns09.chello.at Address:  195.34.133.21
Apparently, UPC is abusing the trust I place in them (by using their DNS server) and resolves ALL requests that can’t be resolved (don’t exist) to their own server that will redirect all HTTP traffic with a 302 status code to their search service.

Now, why is this bad? Isn’t search something I like when mistyping a URL?

Oh, it’s bad I promise you. It’s bad for many different reasons:

  1. All browsers will search anyway if a URL can’t be resolved
  2. My browser thinks the bad domain name actually exists
  3. UPC search sucks
  4. I can’t do anything about it short for changing my DNS server
I do set that search provider inside my browser quite consciously, and I do that for a reason. Google knows my preferences, Google has a search history I use quite often, Google is set to US so it won’t sort German results to the top of the list. And most important: Google has a cached version of almost every page on the interwebz so even expired sites can be looked at with Google.

So, whenever UPC is hijacking my bad DNS request to redirect me to their stupid little search, they take away my freedom of choice and force me (and all users of Chello/Inode in Austria) to override my browsers default behavior in favor of an inferior solution so they generate more search volume on their stupid service!

Only Solution: Pick another DNS. There are plenty of DNS servers out there that will gladly satisfy requests, only drawback is that they aren’t located in my provider’s subnet and therefore won’t be as fast as the one I used before.

This is just sad. Very very sad.

Read more →

Medical Guesswork

Warning: This post is strictly non-technical. No .NET code was harmed during the writing of this and if you go on reading this you may lose 10 minutes of your life you’ll never get back! So proceed with caution and only if you don’t mind reading about my personal life.

My girlfriend recently went to see an orthopedist because her right wrist was hurting. After examining her for some time he said:

Could be [weird desease that involves necrosis inside the joint], let’s run some tests.

And off she went with an appointment 2 weeks down the road, waiting for the tests to prove that she has a necrotic bone inside her right wrist.

At 21 you don’t take such things very lightly (especially if they involve permanent damage to the right hand), and those two weeks of waiting for the “real thing" proved to be quite stressful for her. Thank god the tests came back and proved that the pain was caused by something else!

Now, fast forward one month, I went to see the same doctor because I felt pain in my left wrist over the last week. After doing a 3 minute examination (if you want to call some touching my wrist that way) he said:

Could be carpal tunnel, otherwise the wrist looks fine. Let’s run some more tests.

He then gave me the number of 3 other doctors to go to and run tests, to find out if I’ve really got carpal tunnel.

Guess what? I don’t care. I won’t go to see any of those and I certainly won’t ever go back to see that one again.

Why? Simple: I’m a programmer, my wrists are a very very valuable thing to me. I just wanted to make sure that everything is ok, not embark on a 3 week roundtrip to 3 doctors with the thought in mind “This CTS thing could ruin my life”. (And the pain was really just a small annoyance I wanted to get checked out, nowhere near actual pain)

Seriously? What doctor tells his 21/24 year old patient his “first guess” at a diagnosis? Especially such a bad one? Do I walk around my customers and tell them “Hey, from the look of the app I get the impression this codebase is unrecoverable, I’ll run some analysis but prepare to pay for a rewrite.”?

I guess you have figured out that I’m slightly annoyed right now. But rest assured that I am currently at perfect health. If my wrist-pain comes back I’ll see a (better) doctor – I promise.

Read more →

imagineClub – Students for Students

In Austria every university has a institution called ÖH that is there to support students throughout their studies. They provide legal advice, course material and many other things.
The downside of this great service is that it’s directly associated with the university and therefore subject to some regulations regarding what they can do and what not.

Amongst the things that the regular ÖH isn’t able to do is provide course material other than the official things the professors provide. Student generated content could be wrong and that would look bad for the organization.
imagineClub was founded to solve this problem in 2007 and had a lot of success by requiring members to pay for their membership through term-paper submissions to contribute to the overall knowledgebase.

imagineClub also managed to partner with Microsoft and therefore was allowed to offer the MSDN-Academic Alliance service to all of their members. Allowing members to freely download and use Microsoft development software like Visual Studio, Windows etc..

Why am I telling you all of this?

Well, half a year ago I agreed to become the assistant chairman of imagineClub! The old team is still there, but jobs and other things have taken over, so I was brought in to try to get iC back on track and to again provide real value to our members.

Right now, one of the major roadblocks for imagineClub is it’s website. In it’s current state none of the board members are able to add news or change anything about the site since the input forms are broken. Paper submissions have to go through email and get added to the database through raw SQL, making the MSDN-AA subsection of the site the only “working” part that doesn’t require direct SQL manipulation. Naturally, all of this has led to a terribly outdated website, no new papers since 2008 and besides MSDN-AA no real service for our members.

I’m planning to change this through writing a completely new website that does what it’s supposed to do, but also is completely open source!
I decided to go with the Castle MonoRail framework on this one since I already did enough ASP.NET MVC Projects in the past. A positive side-effect of this should also be to work on the MonoRail documentation to get it updated once again.

The whole project is once again up on Bitbucket, currently more of a project skeleton than a real application. But I do plan to finish the site sometime in July. I’m also very happy to announce that Kristof, a young designer/artist I’ve had the pleasure working with during my last projects, has agreed to contribute a brand new site design. He promised me to finish it this week, so work on the site should start pretty soon.

Read more →

My beef with Ruby/Python

I just spent some time poking around Ruby after some poking around Python. And both times I find the typing concept awkward.
Not so much because there is none, but because there is one visible to the trained programmer, implicit but still there.

That being true for primitive types, for classes this makes a whole lot more sense, since we can use the concept of duck typing:

"when I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck."

Some patterns we came to use in static languages are just obsolete in dynamic settings. But the cost to me is that I also have no metadata present about the object I am currently dealing with. It could be anything, and I don’t know before I execute it.  
In C# I can simply hit object. and see all available methods/properties/events, allowing me to look at their documentation and so on. In Ruby, not even the smarter IDEs like RubyMine can do that for you. 

That in itself is no big deal if you are only working with your own classes and methods, where you know how they work or have a general understanding of how they work. Where I really need this metadata is when working with complex frameworks and libraries that expose tons of stuff through protected members from superclasses, that are just invisible to me. That said, to me the whole Ruby/Python experience was more of a running around and hunting method signatures rather than getting something done.

I guess that experience is normal and I am rather sure I’ll get the hang of it rather sooner than later. But coming from years of static typing dynamic languages just feel weird and especially their way of interacting with you as a programmer are different (no Intellisense being my #1 problem with all of them)

Read more →

QA fail : Gothic III

My little brother bought himself the RPG epos Gothic III and came to me with a rather interesting problem:
After a clean install the game wouldn’t start in full screen mode but rather restrained itself to a 1024x768 window.

I found the glitch pretty fast, a configuration file caused it:

fullscreen = trues

Changing the trues to true did the trick and everything went smoothly.

Bugs are quite common in computer games, but how on earth someone can ship a game with a so apparently wrong configuration file is beyond my knowledge. Sorry to say, but someone failed when a vital config file contains a typo!

Read more →

Why the secrecy?

Although I am still actively working for Pixelpoint, running strong on finishing my projects, I also went back to Klagenfurt University to finally finish my computer science bachelor degree.

Only problem being that (since I am now caught up somewhere between work and university) I can’t fit any lectures into my schedule. I can barely attain courses that require me to do so, so lecture slides are a rather vital part of my studying right now, and not being able to access them is really a showstopper.

What really bothers me is that a university professor who is teaching computer science, doesn’t get the concept of an open exchange of information and knowledge!

All educational material for courses by the syssec group is accessible through an external website that is password protected and where username/password combination is only given out during lectures.

Why?

We are talking about slides for a university lecture, by Austrian law a public event that anyone can attain (yes! every person who wishes to can simply sit in there and listen). Anyone who wants to can simply walk into the ÖH office and can buy a printed copy of exactly those slides for less than 1€. Heck, everyone can get to those slides anyway so why are we keeping people out?

I’ve seen them, there are no state secrets in there. To be honest: I don’t even like these slides too much (they were meant to be presented by a professor mind you). Still they are a valuable source of information that I believe shouldn’t be kept away from anyone.

On the other hand there is O. Univ.-Prof. Dipl.-Ing. Dr. Laszlo Böszörmenyi who manages to somehow have ALL of his course material be publicly (and freely) available to anyone. So, I doubt there is any legal reasoning behind locking away the course material and I demand that those password protections for the lecture slides are released. A university ought to be a place where knowledge is shared, so why stop at the boundary of a small institution like the University of Klagenfurt?

Read more →

Rant: BIOS update procedure fail

Upon helping a friend of mine assembling a new kick-ass gaming PC. Once the whole system was put together he called me the next day stating that the system feels incredibly slow and crashes whenever he starts up a 3d game.

I rushed to help and after some tinkering we found out that the CPU (a Core 2 E8500 2x3.16 Ghz) was operating at almost 80°C. By contrast, my Core2 E6600 (2x2,4) reaches 36°C under full load.
So, since the CPU cooler was spinning, I am quite convinced that it has something to do with a faulty mainboard or (rather unlikely) a faulty CPU.
My initial thought was to try updating the BIOS in case the problem may go away.

So I went to the ASUS download site, selected the appropriate mainboard model (P5Q) and downloaded a zip file containing the newest BIOS. Now imagine my excitement when I was presented with a .ROM file inside that zip. Pretty cool huh?
So I went on to download the Afudos BIOS update tool V2.36 that should install the .ROM bios. 
Started it: sorry doesn’t work on Windows. (WTF?)

So, following the instructions provided by ASUS I’m supposed to:

Please insert a clean, unformatted disk into A:\ drive and boot the system into DOS mode. In DOS mode, please type in C:\> FORMAT A: /S or click on“My Computer”icon under Windows O/S, right click on drive A:\ and choose“Format”. By using the procedure above, you can create a boot disk without AUTOEXEC.BAT and CONFIG.SYS files.

Drive A:\ ? DOS? Autoexec.bat? Config.sys?

ASUS: Are you out of your mind?

When I needed to flash my Dell XPS M1330 Bios with a new version, I didn’t even have to leave my browser to do so. Some weird ActiveX thingy just started and updated my BIOS revision while I was casually checking my email. And ASUS is really telling me this is the way to go if I want to update my brand new socket 775 P45?
C’mon, that’s so 1994 – not even funny any more.

Read more →

Google Reader Feature Request: Don’t mark feed as new

I’ve been using Google reader for a very very long time now, and it’s besides Gmail one of the most important tools out there for me to stay informed. I don’t read newspapers, I don’t read blogs directly, I only stop once in Gmail and once in Reader.

The only thing I really consider “missing” from Reader is some way to declare a rule that Reader should never mark a feed as “unread”.

Why? Simple: Many online newspapers and sites give out full-text feeds and I subscribe to them to occasionally read some articles.
But, in case of sites like Engadget or Gizmondo, there is no way you can keep up with 30+ posts per day and still do work in between reading. So, my “News” folder in Reader grows pretty fast to 1000+ unread items and I have to go in and mark them all as read every now an then.

I consider those feeds as a constant stream of information, so I don’t want Reader to track their read/unread status. If I’ve got free time I go in there to see what’s going on right now, while most of the time I simply ignore those feeds.

What do you think is missing from Google Reader?

Read more →