I’ve been wanting to do this ever since I bought my first Macbook.

My desktop now has a Macbook 13″ and a beautiful 22″ Viewsonic monitor powered by and awful space/electricity/Qi consuming PC. So my objective was to get rid of the PC but keep the monitor and the Macbook, and of course get a keyboard (other than the Macbook’s) to use everyday.

To do so I needed to be able to work on Mac first so I:

  • Downloaded Mono, since my primary work occurs on .net, but the IDE was simply awful, buggy, slow and didn’t run ASP.net.
  • Tried installing virtual machines (both Parallels Desktop and VMWare*), but 80 Gbs of HD and 2Gbs of RAM are just not enough for that (multiple clients => multiple environments => multiple 10Gbs VMs).
  • Started working on iPhone projects.
  • Even tried to leave ASP.net for Python! Throw 10 years of work on MS environments just to get rid of the PC… Woah!
  • Thought of buying a MacbookPro, but they are too damn big!
  • Thought of buying a new Macbook 13″ Core 2 Duo @ 2.4Ghz, 4Gbs of RAM, 250 Gbs of HD, but they are too damn expensive!

I have a buyer for the PC so my plan now is:

  1. Sell the PC (Core 2 Duo @ 1.67Ghz, 2Gbs RAM, 250 HD). + 250 USD
  2. Buy two Kingston’s 2Gbs DDR2 SDRAM @ 667Mhz. -67.80 USD
  3. Buy a Seagate 250 Gbs HD @5400 rpm. -129.72 USD
  4. Buy a Apple Wireless keyboard. -79.00 USD

Total budget: 26.52 USD

So I’d be changing two computers for one with VM and Portability capabilities… I guess that’d be a smart move. I just hope my Macbook doesn’t break or get steal. This move will leave me with no backup machine.

* By the way, I kept VMWare since it was the only VM that will port from Mac to PC with no problem. Parallels doesn’t exists on PC, MS Virtual PC doesn’t exists on Mac.


This came up while trying to write a really good architecture, one that doesn’t require the programmer to write almost a thing to access its data.

I’ve seen a lot of systems architecture and the all have these things in common:

  • They have a Service a Model and a DataAccess projects
  • Most of this projects files are likely to be added to a Generic file, as they do pretty much the same
  • They hold the application’s logic
  • They authenticate the user, return and save data, managing transactions
  • Nowadays, most of them use a Object Relation Mapper software.

Don’t we already have something that does all that? Right! The database… They are even capable of publishing there stored procedures as WebServices.

All this, for sor long just to avoid maintaining Stored Procedures, Views and Rules? Is it that hard to do it that way? If so, shouldn’t we start thinking of a High level language instead of a whole set of projects?


Well, yes. LINQ. But again, why use LINQ if it’s almost a DB Query? Can’t we just start using the Database for what it was created?

Shouldn’t this work?

November 6, 2008



Well it doesn’t… I get this error: “Root element is missing.”

Code attached:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace SerializationTest
    class Program
        static void Main(string[] args)
            XmlSerializer serializer = new XmlSerializer(typeof(SerializeThis));
            Stream stream = new MemoryStream();  

            SerializeThis st = new SerializeThis();
            st.Name = "Name123Test";

            serializer.Serialize(stream, st);

            SerializeThis stDeserialized =


    public class SerializeThis
        public string Name;

        public override bool Equals(object obj)
            return ((SerializeThis)obj).Name == this.Name;

Forums usage is a good way of measuring design. If your design is good and your users are not stupid, you won’t have many questions in your forums and most of them will be new features/bug related.

Let’s say you find in your bank’s support page something like: “Hey, how do I get to see my account balance?”, wouldn’t you fire someone? There are a lot of this questions on Infragistics forums. And it’s not that we (users) are stupid… just look at the responses to something as simple as “How do I add a row?”.





Infragistics is plain unpredictable. Its design seems to be alien made… little green guys with 18 fingers and big n-dimensional viewing brains (not at all natural to our species).

Yes, it’s cute. It’s cute like an all pink 14 years old girl’s room cute (and messy). Once you start using it you just start turning off all the cute stuff, why? Because they are unmanageable. All their classes are sealed like saying “This is my mess, don’t you dare getting it sorted”. Very teenager. Oh… and there’s no one comment on any class, attribute or method.

Infragistics celebrity feature is the grid. You can sort, filter and group with almost no work. Until you need to add some features of your own, like lazzy-loading the rows, having cache or similar.


I won’t take more of your time giving you examples of this… just know that I would never recommend Infragistics.

Almost a year ago, a friend of mine and me decided to put out a site with free classified ads. As the time passed I learned some basic, but necessary, rules to get your internet brand to work.

  1. It doesn’t matter how good is your name if it’s not a .com

    So, you thought of a really cool name, but of course it’s already taken. You should try to buy it at this time or think of another one. The sooner you buy, the cheaper it’ll be. If it’s not cheap enough now, it’ll never be. We started with publicaloya.com.ar and our competence got publicaloya.com.

  2. Location, location, location

    Being found, being found, being found. You need to be found. 85% of our site’s traffic comes from search engines. Think of it this way: it’s not that a blog gets more readers because their late posts are better; it’s because of the amount of posts that it has. To be found on search engines you need to things:

    a. Quality: so that others link to your site.

    b. Quantity: so that many different things links to your site.

  3. Get a good hosting

    We bought a hosting on mgb: big error. The service is poor to say the least and in 6 months we had no less that 10 site crashes (from lack of connection to the database to “Service unavailable”) and its tech support is plain rude. Getting a cheap hosting can cost you a lot.

    Here’s the evolution of visits of our site, do you see where the curve goes down?

    Thank mgb for that. We lost a month of growth because of the crashes.

  4. Promote your site, DO NOT SPAM

    If you’re reading this is because you don’t have a million dollars to spend on advertise. First thing people with a new site think of to promote his site is sending an email to his entire address book. You’d be marked as spam.

    If you want to promote your site you can IM people one by one, trying to convince them to give you feedback, and let them know when you update your site.

    Other way of doing this is giving your customer its page on your site. That way they’d be promoting your site by promoting their page.

    If you are a classified ads site you can give them a personalized virtual store; if you have a college site you can give them a profile page with all articles written by them. Every type of site has its ways of having users promoting your site by promoting theirs.

  5. Be constant

    It takes long for a site to grow and become known. It’s not use on uploading 200 articles one day and absolutely nothing the next entire month. If you can control this, try to save some for the slow days. That will give the users an excuse to enter your site daily. Search engines privileges this behavior, constant changing pages goes up on searches.

  6. Measure your progress

    You need to know how your site is doing. Every statistics provider provides more les the same data, but you’d find useful to have a couple of them. I recommend you to use Google analytics and Alexa to measure the evolution of your site. Pay attention to it, any change here might be showing you a problem or a chance of success. Don’t ignore it.

Internet Explorer vs. Firefox

Imagine you want to watch a movie… Rocky IV for instance. Should the movie end differently in different tv’s? Should the russian win if you are watching the movie on a Panasonic? What if you’re watching it in a Sanyo?! No, it shouldn’t! And that’s because there are standards which are used by all television’s manufacturer to make their tv’s standard.

Maybe we should tell Internet Explorer’s and Firefox’s manufacturers that the WWW also has standards, because there are lots of differences on the rendering of the same html on both of them.

Let’s see an example that drove me nuts a few days ago: The center align, as simple as that.

As you may see for yourself, if you try aligning a table by

<table style=”text-align: center;”>

It’ll work on Internet Explorer, but not in Firefox! For Firefox you should use:

<table style=”text-align: -moz-center;”>

But this won’t work on Internet Explorer. UN-F**KING-BELIAVEABLE!!!

So, what you should do to make both of them work is:

<table style=”text-align: -moz-center; #text-align: center;”>

I don’t even know why this last thing works, but it does…

But, the question is, Why, Oh, Why does -moz-center even exists?!

Chief Information Officer

September 13, 2007


– Hi, my name is John Smith, I’m the CIO of Techiename corp. Let me tell you about which will be the services I’ll be providing to you: Development, Testing and Graphical design.

– Will you personally be doing it, aren’t you the CIO of a corporation?

– (Small silence) Sure, you are a very important client for Techiname corp. and… we like to treat our customers with our very best.

Did it ever happen to you?

I rather call me an independent professional than the CIO of my ghost unipersonal corporation!

Dilbert‘s comics doesn’t seem so funny any more.

Now that I don’t have the office to remind me that everything in that comic actually hapends in reality, it just seems too untruth to be funny.

Whenever I think of making business I think what it was like to trade cards as a child. Making good business would always bring you good business friends, and good personal friends were the last people on earth you’d want to make some business with. If you have to do some hard negotiation business, and most of the time that’s what you’re doing, you don’t want friendship to came up in the middle of a negotiation, but still even when you dislike the person you’re dealing with there are some codes. Consulting

Once you shook hands, you can’t change the rules. If you’ve shook hands with someone and he changes the rules, simply discard him as a person to make business with. Someone who won’t stand for his word is not going to help you getting anywhere. I’d say that making good business will bring you good friends, and making bad business is the best (probably the only) way of knowing with who you should be making business with and with who you shouldn’t.