Tuesday, 26 October 2010

Stop Being Such Bitches


There have been a lot of discussions on this blog about what it feels like for a geek girl in this IT world. I've even covered the topic of what a geek girl is and isn't. This time, I want to tell you one of the worst things about being a geek woman.

It is other women.

You would think that the sisterhood would encourage women to support each other through tough times in a workplace. Women always refer to the "boys network" in a company. We talk about how they look after their crew and make a lot of deals over a beer. Women work at getting in to these circles of blokes to play the game too. Some are successful. Some aren't.

Over and over again, I see women pushing each other down for what seems to be no other reason than to be mean. Women can be more cruel to each other than any man can be to us.

If you'd help out a guy then a woman should be no different. Women should be building a support network in their careers made up of men and other women.

What happened to innate female empathy?

I refuse to push down or even push back at another woman at work. I don't go to work to fight. I go to work to get stuff done. Help me do this or don't. I simply will not play the games of 15 year old school girls. We are passed that.

Sunday, 17 October 2010

Australians Buying Software Online


It may be obvious to all around but I only just worked it out. When you are buying software to be downloaded from the Internet, choose to pay in US dollars. It is legal to pay in any currency you want but with our almost parity in Australia, US$ end up being a lot cheaper.

Last night, I saved $14 on software by choosing to buy via Paypal and opting for US dollar prices over Australian prices.

This goes for anything you buy online, I guess. Software is just famous for being priced at different levels depending on your currency. Let Paypal do your conversion. They are fairer.

Saturday, 16 October 2010

When do you not generalise your code?


At the moment, I'm working on a Silverlight project. The best way to learn a technology is to build something in it. Reading books and blogs and the rest will give you a vibe for what the technology is but only getting your hands dirty will make it real. Real is when you understand the beast and all its tides and moods. You also get to know the elegance of it and where the shine in its soul radiates from. Yes, I'm still talking about Silverlight.

One of the simple tasks in this current project requires me to parse a CSV file. That's easy enough to write on your own but anyone who has written a parser knows that if someone else has built one that does what you want then you should consume theirs. They would have handled all the exceptions and possible gotch-yas. This means I don't have to worry about that and I can get the task done quickly.

In this case, Fast CSV is a common choice in the .NET world. I've used it in the past on and it does what it promises. With the MIT license, the price is right too.

Sounds easy right? Well not totally. For my Silverlight application to consume this library, it must be a compiled as a SIlverlight library. Easy enough - I'll port it. Thing is, this code extensively uses the System.Data namespace and as I found out quickyly, there will be no talking directly to a database from a Silverlight application. That makes complete sense.

After looking in to it, the main use of System.Data is in the use of the IDataReader to stream the CSV file. There is also some DataTable usage. Nothing that couldn't be wrangled to use another stream reader and a generalised Linq table, in it's place.

But then I stopped...

When is porting the library more trouble than it is worth? My task is such a small simple one that I might as well write a custom parser that takes each line of the CSV file that I'm reading via normal file IO and push it straight to my view models for display.

Robustness of the code is an issue but I'll test drive it and keep it simple and neat. It doesn't have to be so general that it caters for every possible situation. It is just for my situation.

In this case, I have decided that a quick CSV parser that exists as a helper class in my project is good enough for this task. It is not just good enough but it's the right choice. Get the job done in a thorough way but don't over engineer the solution because it is the funnest way.

This has been a good learning experience and has solidified my resolve that sometimes you can write code that isn't so gold-plated and generalised and that's ok.

Thursday, 14 October 2010

Unable to start asp.net development server because port [port number] is in use

After a debugging session was stopped abruptly in VS.NET 2010, the error "Unable to start asp.net development server because port [port number] is in use" would appear every time I tried to debug or run the web application.

Restarting Cassini and killing all instances, restarting VS.NET and ultimately kicking Windows did not release the port. When I checked manually, the port was not in use but Visual Studio insisted it was. Changing the port used or auto generating the port to be used did not work around this issue.

This is a Silverlight application but the issue does not seem to be Silverlight specific.

The fastest way to fix this problem was to Remove the web application project from the solution and re-Add it.