When you start developing, whether it is for internet or not, one of the first choices you will have to make is which programming language to use. I’ve been around for a while now and every now and then the following question pops up on the forums I visit:
“I’ve been playing with scripting (JScript / VBScript) a little and I would like to begin with something more challenging. Which language should I start in?”
It seems that people love to get started in VBScript, guess that has to do with it being included in just about every Microsoft product. But once your done playing around with this somewhat basic programming language it is time for the big works. Unfortunately every one you talk to will tell you something different. Some will tell you to start with VisualBasic or C# others will refer you to C++. But all these self claimed experts cannot give you one advice how are the newbies to pick the right language.
Now before continuing please know that what I will advice is not perfect and everybody likes something else to get started or has a different goal. But I think it to be a good place to start and I hope it will help you along.
Picking your goal
Before you are ready to choose a programming language you must first set a goal for yourself. Do you want to develop websites or is your interest more in the creation of tools and desktop software. If you are going to develop for the web then C, VisualBasic and other languages like that will be less of an obvious choice. However if it is desktop software you want to create then these languages are perfect.
Advancing on established knowledge
A second thing you should keep in mind is the knowledge you already have, which may be more then you think! If you have been programming in VBScript so far then VisualBasic (desktop) or ASP (web) may be the best choice for you. If you are already familiar with JavaScript then C++/C# (desktop) or JAVA/JSP/PHP (web) will fit your needs.
Problem is that there are still several languages to pick from at this stage. So what now? Well it depends on what you like. If you want to pick up a language quickly and build small yet somewhat advanced tools then the .Net languages are what you need. Quickly taught and easy to build good applications. If you’re in for the long howl then C++ or JAVA is what you will like.
Chosen my style and language now what?
Now comes the difficult part. You will need to buy some books or find some very good tutorials on the internet. With these reading materials you can slowly start learning the language you picked. In this don’t shy away from trying out what you learn straight away. I’ve found that the best learning ground is the computer and your programming language.
External source:
 - CodeProject, source for some tutorials and tons of half finished objects
 - Visual Studio Express, programming environment for C++, C#, VisualBasic (FREE)
I’ve recently gotten a few questions on the issue of multilingual website implementation and the usage of a language indicator (eg: nl, uk, de). So today it’s time to look into best practice, both from the visitors point of view as well as that of the programmer.
Visitors like confirmation
That was easy. I just summed up the reason why it could be important for your visitor to include a language indicator in the URL. If I am browsing your website I would like to know what language the information is that I can expect. And I mean all of the information, not just this page. Because of that reason I would prefer to see a URL like:
http://www.mydomain.com/en/MyProduct.html
As apposed to something like:
http://www.mydomain.com/MyProduct.html
With the first of the two I know what to expect, even when just looking at the URL. The second one leaves me guessing, especially when I haven’t yet visited the website and I know it to be translated in multiple languages. You might think that stupid and visitors don’t care. If you do you’re unlikely to ever get a visit from me!
Aiding the programmer
The second part of the little equation is the programmer. May sound dumb, after all they will do what ever you want. But it may be important to lower development cost or decrease development time. If you want to make it easy for the programmer leave out the language indicator. After all the contents of the pages is similar, it’s only the language that varies. And for the navigation the language can be indicated in the database so that only pages in the same language appear.
Having said this about the development part, I also need to add that it should not be too difficult to add multilingual support with language indication. It will just mean some careful planning in advance so the developers can keep it in mind programming the website.
Concluding
When you look at the fact that visitors will love the language indication and it should not pose to much difficulty in implementation why not do it! I mean aren’t your visitors the reason you stay in business. And those darn developers shouldn’t complaint about something which should not be more then a day or two of work.
A little while back I announced that I’d be changing the lay-out of one of my websites, as a part of also changing to a new CMS(Content Management System). So today a quick follow up on that.
As it stands today I’ve finished the colour scheme for the website as well as the general lay-out, picture is included in this post to get some feedback on the colour scheme and the lay-out. Which means as much as I’m ready to start coding the initial template. (Below is an image of the new lay-out, and no I’m no photoshop wizard!)

Having done that I can start developing the various templates that will be used by the content management system. Last, but not least, I gotta figure out a way to build the template in with Typo3. Should be easy enough, considering I started testing with the old lay-out of the website.
For historical fun I’ve included the various different versions of the website that have been used over the years. (note that the first version had a different name as I didn’t buy a domain until later on).
    
As you might have noticed the posts on this site started being bundled and published at once. This is because unfortunately my internet connection failed a week or 2 back. As of today I finally got it working again and will start blogging more regularly again.
I really hated writing posts in advanced and waiting until Sunday to mass post them!
Are you one of those prestige web developers that wants to create websites for as large a public as possible? Yes, good for you! But what to do when browsers can’t agree on what is standard and what is not?
Most professional web developers will agree when I say that you should try and stick with the standard as much as possible. (Note that with standards I mean W3 Consortium) But what if most of your visitors use Internet Explorer or Firefox and something works only in one of them but not in both at the same time.
I’ll make a more practical point of it, one I actually encountered several times when using CSS to build the lay-out. Lets say you have two layers that are laying next to one-and-other. Using tables would be a very easy option, and will work. But it won’t comply to the standards as these dictate you should use DIV elements combined with CSS to style and position objects. No problem just write a bit of CSS code to do that for you. Well wrong!
Let me sketch a better picture of the exact situation. You have a navigation bar at the left, a banner at the top (which is right of the navigation) and a content area that is below the top banner and right of the navigation bar. All of these parts of the websites are DIV elements which should make their alignment easy according to the CSS 1.1 standards. I used the following code:
 #divNavigation{
  background-image: url(img/nav_background.png);
 background-repeat: no-repeat;
 background-color: #93AC2D;
 height: 80%;
 width: 100px;
 float: left;
 }
#divTopBanner{
 background-image: url(img/top_background.png);
 background-color: #42D2A2E;
 background-repeat: no-repeat;
 background-position: right top;
 text-align: right;
 padding-right: 3px;
 padding-top: 3px;
 right: 0px;
}
So far everything is alright and all the browsers handle the CSS and webpage similar. Well given the fact that Internet Explorer tends to start counting borders from a different location then Firefox, but that’s not to big of an issue. When you add the next part of CSS for the main body content the trouble starts.
#divMainBody{
 background-image: url(img/body_top_left_corner.png);
 background-repeat: no-repeat;
 background-color: #FFFFFF;
 width: auto;
 right: 0px;
 height: 85%;
}
No I’d expect this to show beautifully next to the navigation menu and below the top banner. Here comes the big surprise: “It doesn’t�.
If you open this page in Internet Explorer you get to see everything as you would expect it, but for some reason it adds space between the content DIV and the navigation DIV (removes it if you leave the height out of the CSS). But even worse is the fact that Firefox chokes on this CSS style. Instead of displaying the DIV right of the navigation it displays it below it. Granted the text does appear right of the navigation DIV, but any background image disappears behind the navigation DIV. Even worse is the fact that the content div seems to wrap to the left below the navigation.
Now either I’m really stupid (could it be??) or Firefox does not seem to abide by the defined standards. I don’t blame them, but this does make developers have to choose for one platform over another. So like in the past it comes down to looking at your visitor base and which browser they use.
Given all this, trust me my example is just the tip of the iceberg (the different colour pallets is even worse), it makes you wonder. Is it really best to develop according to the standards if browsers tend to ignore them for their own versions?
 I’ve come to the conclusions that for the moment it is better to either develop with a table style lay-out or focus on one browser for compatibility. Don’t get me wrong you should try and optimize the website for as many browsers as possible, but be realistic you probably won’t. If you disagree don’t be shy and let me hear so.