It has been quite a while since my last post but this one I really felt I needed to get off my chest. Microsoft have just released Windows 7 and as of yet, nothing bad has really been said. They really seem to have took a little more time with this one and it really seems to have paid off. At the moment I still got Vista running on my workstation purely because it works. But I now feel it is time to make a change over.
Why would I change over to quicky?…. Because I get it free now. Microsoft have allowed education licences on all of their software for the college at which I am currentlying attending so I get all of the old software and all of the new stuff, all totally free. This was always one of my big problems with Microsoft, they wanted money for people to even learn how to use their software but now it really seems to be changing, maybe they finally realised that nobody really uses the lab computers, we all use laptops and need to install it ourselves.
Now I have everything I ever needed for developing on the Microsoft platform.. granted in a few years I’l have to pay when I leave the academic world.. But thats not happening for a long, long time.
Thanks Microsoft you finally fixed the two things I hated
– Making academics pay to learn
– Made an alright OS
Tags: code c#, IDE, java, linux, programming, windows
Following up on the same theme as my previous post, “I’m Sorry Linux” talking about how money really does make the world go round and that we really would be fooling ourselves if we thought it didnt, it got me thinking on the old theory of the best tool for the job. When writing an application various different things comes to mind. One of the biggest questions asked on forums is “Java or C#”, Ruby or Python, JSP or ASP?”. And we all together get sick of answering the same question, that usually you should just pick the best tool for the job.
But what is the best tool for the job?
When it comes to the open source community, the followers could not say a single bad thing about any of the tools they have created and on the other side the advertising team of the companies will tell you that the product they made was the best, but who do you really believe?
When it comes down to it, comparing them all can be easy as long as you don’t listen to the trolls on forums!. Here are the simply points I usually follow when it comes to picking tools.
1. Was it created for the system?
This can really go a long way. If the tool was native to windows and ported somewhat to linux, then at times it can be seen as alarm bells. When it comes to things such as programming languages where parts such as libraries really do matter, why shoot yourself in the foot and use something that was ported in some half ass way and barely documented adding hours of headaches. Stick to native tools.
2. Does money back it, or does it have a strong community?
Notice how I said “Does it have a strong community?” I am not leaving out you FOSS people. If money is backing the project or tool, it really does help. People may say otherwise, but having a million dollars worth of developers hacking away on a tool does eventually make it good as would having a strong community of people digging for bugs and push out releases.
3. What will the future hold?
Always look a little into the future when it comes to picking a tool. If you pick a tool that everyone is starting to drop the support for or people are starting to show a lack of interest in it, you may be flogging a dead horse. But yes, it can be argued that COBOL ect are still alive and well after all these years, but what about the host of other languages and tools that never made the cut because, (see point 2), the backing and interest died.
4. If its cool.
Yeah we all just like a neat little tool from time to time and all the above doesn’t matter in the slightest to stop you using it, code on my friends!
Tags: development, jvm, linux, programming, visual studio, windows
I have been developing for quite a long time and on various different systems. When I was younger I started on a windows machine then as time passed I progressed onto a Linux machine. I’ve always loved open source software, the concept, the actual end product and everything in between, but at times I start to wonder is it all worth it.
I’ve developed some open source software and also saw the other side of the coin, a year or so ago I got a chance to go into the Microsoft head quarters in Dublin, Ireland and I personally know various different developers working for them and I too was (and could possibly still be) a little brainwashed by the whole process.
Growing up with windows I have always noticed the problems, the blue screens and the anger associated with Microsoft products, but now I really have started to look the other way. Using Linux on my home machine and developing on Linux over time I started to get a little annoyed with the small things.
Even when I needed to create a document, open offices spellchecker was inferior to that of open office, it was as if the damn machine was out to get me.
But we love Linux, we let little things slide. Over time the lack of documentation for software started to get to me, no unified way of doing things…. parts of systems that were integrated but in the next release just don’t work as well… it all started to mount.
I began to get a little sick of netbeans… and eclipse, some simple things were just not working for me and the added annoyance of having to run the JVM was always present.
Then one day I started the process of building a PHP debugger for a project I was working on and I decided to give Visual Studio one more chance. As sad as I was to admit it I loved it. What was not to like, it was as if everything was where it was supposed to be and CLICK… your application is running smoothly no added jars, no plugins, no nothing.
Was it the documentation available, The simple IDE, The one click and run of the application… something sold it to me. It still all feels a little dirty, but I will continue to hold my Linux users card close to my chest, but when the sun goes down, its visual studio time.
I’m not raining down on open source tools and community, it always will be an amazing thing that has helped me and so many other people understand how various different parts of systems are created. But then, when it comes down to the wire money really seems to help the process.
So from now on I will not glare across the room at someone if they boot up a window laptop, or even call them noobish for using visual studio. Call it what you want, the whole proprietary world doesn’t seem to be bad after all.
And no. I won’t go around telling people “Im a pc!”, thats still really sad.
I have been programming for a number of years, but one area I always kept away from was WEB DESIGN. When starting most college courses they require a brief introduction to web design and this usually contains two main elements.
1. Make it do something interesting with the code
2. Make it look pretty.
Wait a second… what was that last one? Yes you read it right “MAKE IT LOOK PRETTY”. You would be shocked to see how many marks actually got to student project when it comes to how good the acutal page looks. But what about the rest of us? What about those of us who just can not draw or design things if our lives depended on it.
All of the websites I have made in the past have been horrible because I have no concept as to how things should look. This is why I wear blue jeans every day and also why I only own two pairs of shoes, I have no clue as to what two things look together, I just follow what is the standard.
I feel that the two elements of creating websites should be kept completely and utterly apart, the coder should have a bond with the designer and maybe have coffee with them, but by no means should the process or title ever be put together. Yes they are closely linked because they are in the same field but I use a car and have no idea how the engine actually works.
Lets try keep these two professions separate and then we will all be fine and great young coders will not be shot for the bad graphic design elements.
Over the last night this blog seems to have got quite a lot of traffic, now it is listed as #4 on the Dashboard in the “Fastest Growing” Thanks for all the views!
Tags: best developer, c#, development, good programmer, java, points to be a good developer, programming
What do you think makes a good developer? Here are a few points that I think make a good developer
1) The developer must be Passionate. If the developer is really bad at everything else but is completely passionate, that is enough for me! It is amazing when you see the work difference in someone who really loves what they are doing and someone who just likes what they are doing. This stretches to so many different aspects of development, extra reading, better direction, better “bigger picture” view of everything that is going on.
2) Know their technology. This may seem like a fairly simple one, but you would be surprised with the amount of people that send of the impression that they know what they are doing and know the best way to do things, but really don’t.
3) Can admit when they don’t know something. I have worked with so many developers that just send of the impression that they know what they are doing and would rather die then admit a failure. It happens! don’t worry! when working on a project with a group of people it is a thousand times better if the person admits they are unsure so it can be fixed rather then having a developer guessing and pretending until the worst comes to very worse and the time runs out and nothing has been done.
4) Can take criticism. Some developers rather then learning from an experience like to hammer home exactly what they feel is right and why they feel it was right. Sometimes you are not always right.
5) Step back from an argument. Sometimes it is good to get things out in the open, but others times it’s better to just let some things rest. Think about it from the other persons perspective, its 3pm, they are tired, they are a little stressed for what ever reason and they will just snap and make poor judgments. It may be time to cool it and just ride this one out.
6) Do what you were supposed to be doing, not what you think you should be doing. This one goes a very long way. More times then ever I have seen very little work get done, because they decided to do something else. Stick to what you should be doing and it will save one big amount of hassle. Some other developer may be waiting on what you are doing, to you it may be something small that can wait, to them its the last piece in their puzzle.
That’s it for now! What do you think makes a good programmer?
Happy St Patrick’s Day!
Tags: Art of computer programming, Donald E. Knuth, knuth, seminumerical algorithms, technical writing, verbose writing
One pattern that I would love to see gone from books these days is when a simple topic becomes long, repetitive and boring. The content of the book could be great but the minute you pass the line into being repetitive and boring, all your readers go away as well. A great example of this is the book “Code Complete” by Steve McConnell. It is a great book don’t get me wrong on that, but at times things get repeated over and over again, some points can be said two or three different times in different ways. This doesn’t lead to a better understanding of the book, it adds more confusion.
A great example of where you don’t see this is in The Art of Computer Programming by Donald E. Knuth. They are a long series of books, but they are concise. The same point is never made over and over again, they are just told once in great detail. I think that really is the main point people need to remember when doing any writing, distinguish between a Verbose Explanation and a Repetitive Explanation. If you need to keep trying to explain something over and over again, your doing something wrong.
I think I have made my point, so this post ends now. (Not in three more paragraphs about the same point).
Tags: device drivers, linux, mcu, pc interfacing, pic microcontrollers, programming, usb
I have always wondered about interfacing some device with a computer, but the downside was I never really knew where to start. I bought “USB Complete” which is a great book, but it really describes USB in some levels that I found a little useless and it was very verbose at times. Then I later went off and bought “PC Interfacing using USB” from my local Maplin. It was a pretty good book and described alot of what I needed to know, but it left a lot of blank spots.
Recently I decided to step back a level and just figure out what the chip is doing itself before any of the USB stuff gets integrated. I went onto amazon and bought the #1 book under PIC Microcontrollers. It is called “PIC Microcontrollers” by Bert Van Dam. So far, the book takes you though all of the basics of PIC Microcontrollers and tells you everything you need to know and I mean everything!. That little LED on the diagram, if you wonder at all, on the next page is a great description.
I have two small problems with this book. #1 Is that all of the programs are wrote in JAL, not assembly. Yes, it can be seen as trying to not compliate things for the beginner but for me writing in assembly was the one thing I really wanted to get to grips with. #2 The hardware used is not standard microchip stuff, which can confuse the novice if they have just bought the basic PIC Microcontroller programming package from Microchip.com.
The main problem I came across was that, being a programmer I know very very little about electronics! So this caused me to buy “Starting Electronics” by Keith Brindley. All in all, “PIC Microcontrollers” by Bert Van Dam is a great book, its rare you get a very good book but this is one of them!.
I always feel that the best way to learn something is to get a book written by someone who really knows that they are talking about rather then just reading lots of little incomplete articles all over the Internet about a topic.
So far, on my quest to figure out USB and making devices this has been my book buying adventure:
Professional Assembly Language – Richard Blum
Essential Linux Device Drivers – reekrishnan Venkateswaran (GREAT book!)
PC Interfacing using USB – Peter Bates
USB Complete - Jan Axelson (Verbose but good)
PIC Microcontrollers – Bert Van Dam
Starting Electronics – Keith Brindley
If over the next month I don’t figure it out, im handing in badge!.
Anyway, The reason I am doing all of this is to create a mini weather station. The first on the list is an Anemometer. The general plan is to have weather stats from my website (www.goslin.org) and to keeps a track of the weather everyday from outside my house at given intervals. Due to the amount of college projects ect, I don’t think I will actually get around to building the device untill June this year.
I’ll upload the progress of the project as it happens!
Tags: cnr, installers, linux, software, standards
To paint a picture you want to download a piece of software for your linux system and in most cases you are faced with different styles of installers, one for each flavor of linux, is it time to get around to making a standard that every system sticks with?
CNR (Click’n’Run) made a very good attempt at making an install system that can be used on any system but it will never really work unless all of the different creators all sit down and agree that it will be the standard that they will all use.
I have always stood by linux but time after time when i try to cover people problems involved with installing software always in the end puts them off using it.
Tags: c#, java, linux, microsoft, os war
Growing up I spent a lot of time on IRC channels. It became apparent to me at a very early age through the voices of other people and the error messages that were popping up on my screen that Microsoft had not really done me any great help. You were always looked down on for running windows and Red Hat Linux was always the answer to most of the problems you had.
As time went on I began to form an opinion on the subject and I changed from Microsoft programming languages to Java. From the start I always thought that when I write software I am writing it for the Linux platform and that is it. My reasons were:
1: Linux is Free
2: If anything ever needs tweaking it can be done very easily.
3: Open Source ect is for the better of man kind.
After attending the Microsoft Imagine cup and going into the Microsoft head quarters and seeing everything first hand I then began to see what all the money was being used for, to further development. (But yes, I was also shocked how brain washed everyone was).
Then over the last year SilverLight and a host of other technologies have been released, but with Linux left a little in the dark. Yes I understand that a lot of development is done by people for free because they love programming (and who doesn’t) and the end result can always be given away for free, but if there was a cost, even something small like 10 Euro would it really cause that much of a problem?.
I have always loved Linux and everything it stands for, but I also feel that if a cost was involved we could be going a lot further then we have already. Better documentation, better products and better overall coverage.
Linux has always not been a money making thing and it probably would have never got to where it is now if it was, but now that we are here maybe its time to fund everything and go that extra step.