Friday, January 06, 2012

Marco has a point. When you read his blogpost, this is how you should actually read it:
Apple:
  • We'd like you to use our web app or social network instead and will annoy you until you do.
  • Our app-review rules are always in someone's best interest.
  • Anyone who wants a [popular new product category that Apple doesn’t make yet] should just curl up and die.
Google:
  • Android is using other people's work.
  • Don't look evil.
  • We solicit all of your personal information and track everything you do because that's how we make money.
Facebook:
  • Our brands want to push their products onto our users.
  • We value your privacy as much as we think you do.
  • We're not tracking you when you log out. We simply never log you out.

Thursday, September 22, 2011

Building a house!

The contract has been signed.
That's it for now. Later I'll tell you all about the house I'm building. As a teaser: I'm programming the PLC to do the home automation myself. It isn't much, but it's geeky enough to talk about.

Wednesday, April 27, 2011

Techdays, and a movie afterwards

Today was the second day of the TechDays Belgium 2011 conference. It was a blast, and I learned a bunch of new stuff that will keep me busy over the next couple of months as I begin to digest the information overload that I experienced over the last couple of days.
All the editions that I've participated in so far have been organized at the Metropolis in Antwerp. It's a movie theatre complex from the Kinepolis Group that I particularly like for their wide range of theatres and predictable service and choice of catering, and quality of their projections. Using it as a venue for a development conference pays off as you get to use the high quality projectors and screens and audio to do what a conference does best: show stuff to people. The catering is not bad either and all in all it's a wonderful experience that's very well handled by their staff. I'm sure tons of stuff went wrong behind the scenes that us "devs" will never even realize has happened because of the professionalism with which such as big event is organized.
Which leaves me with a sad note. We were all given some nice swag to go along with the conference, like a bag with goodies (mostly marketing junk, but the bag is nice) to put the stuff in that you trade your soul for (as in: have your badge scanned and therefore agree to be spammed the remainder of your days). I also like to take the opportunity of attending this conference each year by finishing it with a visit to a movie. Except, this time I was met with the "other" side of the theatre.
Even though there were like a 1000 guys like me walking around the complex with this issued bag for two days, I was promptly denied access to the theatre because this "bag" was deemed a security risk. It doesn't matter that this particular complex as a vast underground parking area from which one could easily plant some sort of explosive device that could do some serious damange. No, sir, your bag is a security risk, and we can't allow you to enter unless you're willing to part with your proudly received swag for a couple of hours in one of our fine locker rooms.
It's not so much that I was discomforted by not being able to carry my bag inside (which contained the Oatmeal book that I planned to read during the commercial breakdown) but the fact that I felt seriously violated. Here I paid 9 euros to enter a theatre to watch a movie ("The Adjustment Bureau" and it's a nice one) and even before I entered the room I was assured to be treated like a criminal. And yet they keep wondering why they're losing customers. Apparently being subjected to anti-piracy campaigns before the start of the movie wasn't enough. What's next? Strip searches? Full body scanners? Uniformed company drones with blue gloves?
I am truly disgusted.

Thursday, March 03, 2011

Setting up Mono on Amazon EC2

A while ago I managed to set up Mono on an Amazon EC2 instance running the standard Amazon Linux AMI, by compiling from sources. Boy, that was a pain, took a while (I was stupid enough to do it on a Micro instance) and turned out to be totally unnecessary.

Today I found a better way to do it, thanks to this post on StackOverflow. You'll have to modify the steps that the poster follows, though, mostly because you can't log in as root on an Amazon Linux instance, but everything is available using sudo.

First you have to set up an instance (use a Large instance, you won't regret it), and the easiest way to do that is through the Amazon Management Console. Once you have your instance running and you can log in, do the following:

First, add the official Mono repository to yum. I'm quite new to yum, but the SO post made it quite clear. In your home directory, issue the command 'vi mono.repo', and press 'i' to enter 'insert mode', then paste the following snippet:


[Mono]
name=Mono Stack (RHEL_5)
type=rpm-md
baseurl=http://ftp.novell.com/pub/mono/download-stable/RHEL_5/
gpgcheck=1
gpgkey=http://ftp.novell.com/pub/mono/download-stable/RHEL_5/repodata/repomd.xml.key
enabled=1

Then, press the 'escape' key, and type ':w' and ':q'. I'm not used to vi, but I know it's on there and this happens to work. Now you have the repo file in your home directory and you need to move it to the /etc/yum.repos.d directory, but only root can do that, so issue the command 'sudo mv mono.repo /etc/yum.repos.d'.

Next, you'll need to clear the cache using 'sudo yum clean' and install the Mono stack using 'sudo yum install monotools-addon-server'. That will install the latest stable version of Mono, currently 2.10.1.

You can do this on a Large instance and make it quicker, then shutdown your instance, make a snapshot, terminate the instance and make a new 'Micro' instance using the instance and you'll be set up. For some funny reason Micro instances are 64-bit and Large instances are too, but Normal instances are 32-bit only.

Now I have to figure out how to set up a decent web server so I can try to get ASP.NET MVC going.

UPDATE: I definitely needed the following to make ASP.NET MVC work: I had to install WCF, by issuing this command: ‘sudo yum install mono-addon-wcf’. The mod_mono module is autohosting, which means that when installed, it automatically loads so ASP.NET should work out of the box, and the example site is located at /opt/novell/mono/lib/xsp/test.

Saturday, November 27, 2010

Dear Proximus, tell your telemarketeers to stop lying in my face.

I had a call, the other day. It was a blocked number. I don't usually answer blocked numbers. They're usually telemarketeers. I hate telemarketeers. I don't want to answer the phone when it's a telemarketeer. But you're not really sure, right? So they called again, the day after. I answered, figuring that if I didn't answer, this would go on and on.

It was Proximus, my mobile carrier. The nice voice on the other line started like this: "Hello sir, we've done an analysis of your mobile usage. This won't take long. Can I ask you, how much do you pay, on average, every month?".

I thought to myself, if they've done an analysis, they probably know more about my usage than me, since I rarely check my phonebill. I'll spare you the details, but everything else was a plot to trick me into signing up to a different plan that would stick for 18 months where I would pay a lot more than what I pay today. Her words: "that's not so bad, is it?"

Hmmm..... no thanks.

Friday, November 19, 2010

10 steps to become a better .NET developer

In response to this blog article, I'd like to present to you my very own list of tips to become a better .NET developer.


  • Read a bunch of .NET related books. From each book, try to remember the stuff you feel will make you a better developer, and forget the rest.
  • Read a bunch of programming books. From each book, try to remember the stuff you feel will make you a better developer, and forget the rest.
  • Learn Unit Testing, so that when that day comes when your senior developer or manager coerces you into using it that at least you can defend yourself if you feel it’s not what you need.
  • Idem dito about Continuous Integration, Cloud Computing, ORMs, Scrum, BDD, DDD, TDD, EDD, ServiceBus, Messaging Architectures, CQRS, IoC Containers.
  • Keep yourself up to date by reading popular blogs and following popular people on Twitter. Many of these are biased or outright zealots, but that’s ok because you should follow all sides at once. While you do, keep an eye out for “the next big thing” and keep a ton of salt ready.
  • Realize that, if you’re not a passionate developer, there’s not much use in reading these tips and you probably won’t ever become a better developer. If that makes you unhappy, find a different career.
  • Learn about version control systems. Regardless of how many you know already, there may be more that you’ll never ever encounter, but it’s nice to see just how green the grass is on the other side. It may be greener, but it’s probably browner once you’re past the marketing fluff.
  • Realize that, if you’re a passionate developer, you probably know most of these “tips” already, or at least you’re convinced you did and you’re just scanning over them to see if there’s any new acronyms in there that you didn’t hear about yet. Good boy.
  • Listen to whatever Anders Hejlsberg says. He’s the next best thing to God himself. If he’s in town, clear your schedule.
  • Realize that every list of tips you read is written by a passionate developer, who has his own personal beliefs that may cloud his judgement from time to time when he prepares such list of tips. Such as yours truly.


Thursday, September 23, 2010

So Dave Newman announces he’s leaving .NET

Dave Newman recently announced that he’s leaving .NET for Ruby. Fine. But he’s giving a bunch of reasons that I strongly disagree with.

Dave thinks that the .NET community is “cut off from the world”, because he’s seen “developers build their own libraries and frameworks in curiously terrible ways”. Sure, fine. But is that a problem with .NET developers?

I’ve been around for a while now, and I’ve worked in .NET, C, C++ and Delphi. Yes, that Delphi, but that period of my life is over. I’ve worked as a freelancer for many years, and I’ve been in a lot of projects using a lot of different development tools and I can tell you this: it’s not a .NET problem. The problem is everywhere. In every project, in every company, there’s always a bunch of problems that need to be dealt with that could have been dealt with using some open-source library somewhere, code that was already written by someone else, but that just wasn’t good enough to do it. Joel has written good stuff in defense of not-invented-here syndrome.

In fact, I wouldn’t consider the phenomenon a problem as there may be very well good reasons why such a problem should be tackled in-house. Whether it’s a problem in such case depends on a lot of factors. But there you are, thinking that this .NET thing is over and that the community sucks and that the grass is greener on the other side. That’s a natural thing. The grass is always greener on the other side because you’re too far off to see how not so much greener it really is.

Dave goes on bashing ASP.NET MVC and how not open source it is because Microsoft doesn’t accept outside contributions. Well, check your facts, Dave. Accepting contributions is not a requirement of a project to be open-source. Some really high-profile open source products don’t accept outside contributions. qmail is such a nice example. Does that mean that no-one can contribute to qmail? Of course not. There’s patches everywhere! Will they work when/if qmail 2.0 comes out? That remains to be seen…

If you want, Dave, you can go and fork ASP.NET MVC yourself, set it up somewhere and start making and distributing your changes. In fact, that’s what you’re talking about when you mention someone setting up a github repository that is dead in the water. Oh, I’m sorry, can you expect from Microsoft to support every little fork out there?

So is Ruby very different?

Ruby, first of all, is a language. So it doesn’t really compare to ASP.NET MVC. You should actually compare it to C#, which has a much bigger community than just ASP.NET MVC. Ruby on Rails, on the other hand, compares much better than ASP.NET MVC, and is equally open source. If you go out and fork Ruby on Rails, will you expect to get support from the Ruby on Rails community? I don’t think so. And if you implement your own feature on top of it, will it be taken up upstream, garantueed? I don’t think so either. Not with David Heinemeier Hansson’s seal of approval. He likes to keep things tight, y’know?

Lastly,

To those who want to be part of a vibrant community of passionate developers crafting new and innovative solutions, start hanging out with people who aren’t tied to a particular language or framework.

says the man who just jumped ship to Ruby.

Tuesday, September 14, 2010

The problem of “pre-owned games”

Today, while checking up on one of my favorite game franchises, I ran into this article about how Treyarch are going to “defeat” the problem of pre-owned games. For a minute I was under the impression this article was going to be about how difficult it is these days for gamers to trade, swap and resell their old games, but no. It seems the “problem” is not the game itself, but the honest gamer who paid good money to buy the game in the first place.

You see, they still don’t get it. They think that they’re going to lose money when those gamers are able to trade in or swap games, just like you could swap books or DVD’s. Surely that criminal activity must be stopped! I should note that the article itself details how Treyarch is going to handle the “problem” by providing more quality. Uhmm, sure. But between the lines you can read how the industry feels about its consumer base. How long do they think those honest gamers will stay honest? Surely none of them will have the guts to look for a no-cd patch or any other way to circumvent the roadblocks put in place to stop their malicious behavior.

It happened before with DRM on music, and it will happen again with games and tomorrow with ebooks. Copy protection has had and will have zero effect on those who are not willing to fall in line with the publisher’s demands. Instead, it will keep pushing the paying customers away from spending their hard-earned cash.

Monday, September 06, 2010

The Great App Bubble? I don't think so...

Another day, another "article" that gathers random facts and applies some strange statistics to it, only to come to some conclusion that, frankly, I don't see.

In this article, the blogger named Aaron Shapiro aims to take a stab at Apple's App Store, claiming that we're now in an App Bubble, that everybody wants to have an App whether it will make them money or not. 

In his first claim, that apps don't make money for developers, the author simply takes the grand total of revenue for all the apps and divides it by the number of apps available, while at the same time guesstimating what a 'typical' app would cost to make to conclude that the cost of a typical app is greater than the average revenue, and that therefore no profit can be made. First, there is no "typical" app, and can't see how you come to that "typical" cost of $35000 when most of the apps share a common platform on which they are built. Have a look at the list of recently released 'music' apps to find out how many of them are simply copies with different content and you'll see what I mean.

Second, not every app is made to be profitable. Sometimes the apps aren't the products being sold, but simply exist to support the products being sold. I bought a WiThings scale the other day, and installed the free app that comes with it. Does that mean that the app doesn't make them money? Of course it does, because it provides value to the product that is really being sold: the scale. Or have a look at all the apps that guide you through a music festival, or a museum. There's plenty of examples of apps that don't even need ads to be profitable.

In his second claim, Aaron states that apps don't make money for Apple. While that isn't a false claim, I don't see how it supports his idea of an App Bubble in the first place.

The rest of the article is an amalgam of unrelated facts and trivia, with little or no substance to validate his claim. "Marketers are spending money on iDevice apps at the expense of improving their mobile Web sites that everyone with a smart phone can access." How many? Who? Of course, there will always be people making the wrong decisions. Does that imply a climate? Of course not.

What's needed are bloggers that don't give in to primal urges to come up with sensationalist ideas about the world we live in and then try to validate their claims by retrofitting unrelated and unsupportive facts.

Wednesday, August 25, 2010

When debugging WCF ...

...remember this attribute:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]