Craig Mattson (Personal Website)
Home - Blog, News, About MePrograms - C#.Net, Java, VB6MusicWebsites

My Blog

Piece of Garbage! (31/05/2007 04:20:38 AM)

Right... Just as I have refreshed a Dell using the System Recovery CD set, this is really pissing me off with the amount of crap that is included with it!

Non-Standard Drivers:

Why on earth couldn't I just use the ATI Catalyst Drivers package I have on my server to update the driver? I was told the package was incompatible by ATI, yet it's a Radeon X1150 and I would have liked to see my updated package work. Instead, I had to download the same package, but from the Dell webpage containing some stupid Dell wrapper just to run.

The Yahoo! Toolbar

Ok, what the hell is up with Dell installing the Yahoo! Toolbar by default? I don't want or use Yahoo, and even if I did want to use a search engine, I know the god-damned URL for the website! For the record, I'm talking about the proper toolbar, not the simple search box in Internet Explorer 7 and Firefox.

Trial Software

Why oh why does a Dell machine include a trial for all of this stupid and pathetic software? Why do I have trials for word processing applications (ok, so Works isn't a trial - but it may aswell be!) and quick books? It is disgusting!

McAfee Security Suite!!!!!!

Ok, so this should be under Trial Software, but WTF! It's a bitch to remove cleanly and even if I did use it, it won't let me scan after the 30 day trial, theoretically making sure there is no security!

So, what are the alternatives that won't cost manufacturers?

Non-Standard Drivers: Very easy to fix - STOP putting stupid features on hardware!
Yahoo! Toolbar: Simply forget it - set Yahoo to the default search engine in Internet Explorer 7
Trial/Crippled Software: Open Office and AVG Anti Virus can easily replace Works and McAfee

Thoughts anyone? hehe... yes I know that these 'companies' pay Dell to include demo's on the PC's... something like $1-$2 each, but it mounts up.

Part 2 of the programming concepts post will be up next - I promise Tongue out

[0 Comment(s)]


Programming Concepts (30/05/2007 11:45:41 AM)

 Hi all,

I'm sure you are well and truly sick of reading about useless (useful?) crap about the wonderful world of Technology, but the way I look at it is if I can help someone out, even the slightest, then it's been worth posting a new blog up. Todays topic (yes, I'm talking about the same day I wrote this on (12:44AM in the morning) is about programming concepts as once again, exam times are coming up and too many students will fail this exam, not because they haven't studied their specific programming language in great detail (ie know the commands, know the importance of programming structures whether it be an Object Oriented approach or a Structured (line by line) approach.) but because they simply do not know how to use logic to create a program.

One of the many things I am appauled to see still happening is there is no emphasis on teaching logical programming. That is, teaching someone how to write a program rather than teaching them syntax. Take any other spoken language such as Japanese, French or even Arabic. You see, it's quite easy to memorise the alphabet, words and even string a few words together to form some sort of coherent speech, but to actually think off the top of your head how to put those words, especially when not taught how to talk pretty much renders your memorisation of words useless. For example, a typical greeting would be "Hello, my name is . Nice to meet you". There is a reason we string these words in this order, and that is because it is considered a logical way of doing so. You wouldn't say "Nice to hello you, my name is meet " because it means something totally different, or even cause so much confusion that no one knows where to begin. The same applies to computing and programming languages.

A Simple Structure:

Lets assume we have a program to store a list of your contacts phone numbers and e-mail addresses. Quite an easy example if you know what you are doing, and can be implemented in all languages. As the people who read this blog have some knowledge of Java, I suppose I had better write this concept using Object Orientation Smile

If I was to hand this example to my current group of tutee's, I am sure they wouldn't know where to begin simply because they have not learnt any concepts in how to think out the program, so here are some basic steps in solving this problem.

Step 1. Collect your data

One thing that most people seem to forget about doing is working out what data is needed for the program to work. Typically in this phonebook example, we have 3 things we need. We need a persons name, the persons email address and the persons phone number. Nothing more, nothing less. We however want say 100 people stored maximum.

Step 2. What do we need to do with this data

Now that we have the data we want, we have to work out what we are going to do with the data. Obviously we want to be able to store these 3 attributes (name, email, phone), and at some stage we would like to manipulate these attributes aswell such as changing the name, email or phone and even retrieving a persons name, email or phone. To do this, we have 6 things we want to do.

Step 3. How are you going to manipulate the data

In this example, we will want to have a user to enter some information, and we also want to get this information aswell.

Step 4. What are the steps to achieve this manipulation

Now that we have all of the information we require, we can start investigating the program. As you can see in step 3, there is only 2 lines there and for those who know any programming language, there isn't a method that randomly springs out of a box to do these things exactly, so we have to work out how we are going to do each of these tasks.

"have a user enter some information..."

So, thinking about this logically in a precise nature, this is the order one would expect to enter data in:

  1. Enter a users name
  2. Enter a users phone number
  3. Enter a users e-mail address
  4. Store the name
  5. Store the phone number
  6. Store the e-mail address

"get the information..."

Again, thinking logically in how to get the information, we need to do the following:

  1. Enter a name
  2. Search for the name
    1. If the name is in the phone book then get the phone number and email address
    2. If the name is not in the phone book, then tell me its not there.

Now that we have some methods written up in some way, we need to use all information gained and put it into a program.

Step 5. Apply this information

Ideally, you will have written your methods suitable to the programming language you know. In this case, Java will be used and as it has an emphasis on Object Orientation, I'll implement it using Objects.

The Java Program:

As we seen from Step 1, we needed 3 pieces of data. To store data, Java includes data types and variables. Therefore, we need 3 data types that will store text and numbers beginning with 0 into this book. Anyone who knows any programming language will realise String achieves this, therefore we can place the following information down:

String name;
String phone_number;
String email_address;

You will notice aswell, these are all properties of a persons phone number, and as they all deal with people, then we can create a class to store these in.

public class Person {
    private String name;
    private String phone_number;
    private String email_address;
}

Above now is an object that contains 3 properties that are hidden away from the application. Anyone who has learnt Java syntax should realise this.

Step 2 contained what we wanted to do with the data, that being we want to store it and get it. We use accessors and mutators in Java to do this. Accessors return something and Mutators set something. Again, if you know Java syntax, this next step isn't tricky.

public class Person {
    private String name;
    private String phone_number;
    private String email_address;

    public Person(String new_name, String new_phone, String new_email)
    {
        this.name = new_name;
        this.phone_number = new_phone;
        this.email_address = new_email;
    }
}

This above code now creates an instance of the object using the constructor method when the person is made. In other words, very important for this program. Now, we need to implement the methods from Step 2 which were we need to get the data and set the data.

public class Person {
    private String name;
    private String phone_number;
    private String email_address;

    public Person(String new_name, String new_phone, String new_email)
    {
        this.name = new_name;
        this.phone_number = new_phone;
        this.email_address = new_email;
    }

    public void setName(String newName)
    {
        this.name = newName;
    }

    public void setPhone(String newPhone)
    {
        this.phone_number = newPhone;
    }

    public void setEmail(String newEmail)
    {
        this.email_address = newEmail;
    }

    public String getName()
    {
        return this.name;
    }

    public String getPhone()
    {
        return this.phone_number;
    }

    public String getEmail()
    {
        return this.email_address;
    }
}

Now all appropriate methods are implemented, we need a driver class, that is - something to run the program. We design this class by thinking about the overall scope of the application. For starters, we need to store 100 peoples details, and we need to take care of the methods in Step 4. This is how it would be structured, and should be easy if you know the Java syntax.

import java.util.Scanner;

public class AddressBook {
    private Person person[];
    Scanner kb = new Scanner(System.in);
   
private boolean isRunning = true;

    public AddressBook()
    {
        person = new Person[100];
    }

    public static void main(String args[])
    {
        AddressBook ab = new AddressBook();
        while(ab.isRunning)
        {
            System.out.println("Menu:");
            System.out.println("");
            System.out.println("1. Add Details");
            System.out.println("2. Search Details");
            System.out.println("3. Exit");
            char choice = kb.findInLine(".").charAt(0);
            switch(choice)
            {
                case '1':
                    ab.addDetails();
                    break;
                case '2':
                    ab.searchDetails();
                    break;
                case '3':
                    System.exit(0);
                    break;
            }
        }
    }
}

There's the basic outline for the menu, and the rest of the methods will be implemented in the next news post. Right now, I have things to do... like sleep Yell

Thanks,
Orb!ter

[5 Comment(s)]


User Interfaces (26/05/2007 04:28:16 AM)

loadup_400Hi all,

Today, I will start with my usual rant about something in life. Today's topic is User Interfaces and I don't know exactly what's brought this discussion up, but probably something to do with me being pissed off yet again with the IT industry and poor designed interface - and finding videos on the topic ;)

It has amased me over the years with 'interesting' designs, and how some professionals automatically reject what would be considered good designs. For starters, lets have a look back in history with DOS. DOS was considered a good interface, could do everything with that one would ever need to do and there was no need to upgrade. When Doug Englebart first came up with the theory of GUI and Xerox came up with their own (then Apple stole his theory to produce the Macintosh GUI), the people in the DOS world were completely convinced that GUI's had no real purpose in the real work environment.

The mouse for example was a device considered stupid, and would never sell - however it does increase productivity, and does work as an easy device to use. I mean, how many people these days could live without a mouse? Dating a bit further, lets have a look at user interfaces in todays environment. Most of you have seen my CMS, if you havent - a video is on my CraDanKa! CMS Version 2 page. The system is apparently quite easy to use by more people than just me. Why is that? Because there are very limited features. It does just a basic website, with a few slight additions. I must admit - I could make this system much more easier, but in the mean time. It's much easier. Let's compare and contrast:

admin_screen_400

My system to create a new page is shown on the left hand side. You can see that there is a simple text entry box using the Open Source TinyMCE editor, and a title for that web page. What ends up being entered here is then shown as a webpage, or simply add it to the webpage. There is a button for uploading and attaching images (the link button also has this function to browse files and upload files to the web server), and well - it functions just about like any other word processor. Clicking submit adds the page to the website.

I believe it's easy enough to follow, even if you have had one to many to drink prior to sitting down attempting to create the website you really should have done prior to opening that can. There are no "confusing" menu's to choose from, just the buttons most people will ever need to use.

Now, lets take a look at doing exactly the same thing in Joomla! which is supposed to be one of the very easy systems to create your website with.

admin_screen2_400As you can see, this screen looks prettier than my one above, but damn... that screen goes FOREVER just to create a simple static webpage. It's not even called Page, or even webpage, or even 'thingamajig to put on the website'. It's called Content Item which well, er... that could be anything. This thing is supposed to be a Content Management System, and you are creating a new Content Undecided Well, er... ok then. It's nice to have the buttons up the top though - something I will implement one day into my Content Management System, but the 2 entry boxes, the tabs with options that are just completely strange. For starters, who uses most of these features?

There is a show in Front Page button, but how many pages do you want there? I for one only want one page, so why is this an 'important' option? The administration level for the content by default should simply be the person/group who created it. Why is there an option there? The Author is probably logged in already! Why is the an option to Alias the author! The created date is rarely changed aswell, yet it is STILL shown there. Oh, lets not get started on page statistics that obviously are NOT SET YET given it's a NEW PAGE! Even look at the editing windows. Notice how the actual page's content is the one in the bottom box? The one called Main Text? Who's bright idea was it to place a main text box called Main Text at the bottom? Both fields are also OPTIONAL! I suppose it's like Microsoft Word and people creating Blank Documents. I don't know too many people who want to create blank documents, but rather documents that contain something in them Tongue out I know my University Lecturers and Tutors don't want to receive "Blank Documents".

So... is Joomla! the only thing I can think of bitching about today? NOPE! One of my personal favourites (and was reiterated by a guy I was watching a little over 2 weeks ago) is the shutdown screens. Here is a typical Microsoft Windows 2000/NT/XP/2003 (XP only with eye candy turned off) shutdown screen:

And here is a typical one for a GUI based Linux Distribution using KDE:

I can think of atleast 2 things wrong with Microsoft's implementation over this Linux based one. First of all, who needs help clicking a button. If someone can't click a button, then HOW THE HELL ARE THEY GOING TO CLICK THE HELP BUTTON? Secondly, given the ample amounts of space in the window, then why on earth do they put the options "Shut Down, Log Off etc..." in the combobox when clearly there is enough space to put buttons? Thirdly (ok, so I have 3), why is this interface so poorly designed that it requires context sensitive text explaining that Shutdown means Turn Off when clearly, the gurus who designed KDE do not require this 'important' piece of text turn off a PC! I mean look for a moment. These screen sizes are not altered, yet the KDE one uses far less pixels to produce the same screen, yet much more user friendly? (With all jokes aside, I have always wondered about the motive to create a start button to turn off a computer. Ok, I know the Start button was always a "Click here to begin using your computer" theory, but a PC user is not new everytime they turn their PC on).

iexploreWhilst  I am on the 'Microsoft Stupidity' band wagon, I may aswell show you another one of those quirks that have existed for 7 (SEVEN) different versions. Have a look at the icon. Notice something about it? Maybe the E rather than another letter to represent the Internet? Who has ever associated the internet with the letter e? I have seen some crazy ones such as the Netscape Navigator icon using the letter N, but I suppose atleast Netscape starts with the letter N. I have always wondered, why though the letter I or an application called Internet has never been used in any operating system apart from linux and KDE? Some versions of Linux call the application Internet which points to a browser? I mean for starters, what significant 'internet meaning' does the word Netscape Navigator have? the Net maybe, but what's the rest of the crap? I don't know what Microsoft has been thinking for all these years, but rather than the gel look, they could have replaced the e with Earth or the letter I.

lang_400Webpages have always amased me and locations. For instance, most websites and computer software now assumes the whole world has computers. For example, lets take a look at Regional and Language Options in Microsoft Windows. Atleast the default language is English (for those who purchase english copies of the operating system). Also, atleast the default country is the United States, but one thing that has amased me is the way the list is structured. Ok, consistancy is a great thing, but is it truely a good thing when if we look at the top of the list in a combo box, the first language is Afrikanns followed by Albanian and many different "versions" of Arabic. ENGLISH DOESN'T APPEAR ON THE FIRST LIST! It's nice to think the whole world is interconnected, but I don't think the amount of users in the United States, Japan, Australia etc... is signficiantly less than those in Africa!

Ok, so Microsoft is learning from their mistakes, especially with Microsoft Office 2007, but is it too late now to change? For the past 10 years, users have been exposed to some attrocious designs and well - people know how to use Office 2003. I for one do not like Office 2007 in general because I find the interface lacks professinality, and it's crippled in my department for just load up something and type.

For School Work on the other hand, the new versions of the Microsoft Office Applications are actually easier to use. Things like citations, reviews and commenting is much easier to carry out, and it is significantly easier to manage the document in its entirety. As far as using the piece of software as a dynamic application (ie page numbers, headings, overall font changes etc...), it is brilliant - I can set up easier in more logical places page numbers that change dependant on the location (excellent for contents page), I can create cover sheets and there is no more times that looking at a menu produces a completely bizarre option when I click new. I mean... in Office 2003 (pictured below), if you click File - New, you are presented with a funky tool down the right hand side of the screen. Funnily enough, this responds to quite a few different options, but take note where the Create a New Document link is actually located! IT'S NOT LOCATED UP THE TOP LIKE A SANE PERSON WOULD LOOK FOR, IT'S LOCATED RIGHT DOWN THE BOTTOM AFTER OPEN, AND HELP LINKS! Atleast this is changed now, so that when you click the New button, you are given the option to create a type of document. I'd still like to see them come up with a creative name for Blank Document. Maybe a Blank Template would be a better word than Document.

Oh well, if anyone actually read through this and is a programmer - take some of these poor examples of good user interface development, and actually make easy interfaces! Remember, less is more - so just think how much more is Wink

 

[7 Comment(s)]


Optimus Maximus Keyboard (17/05/2007 09:10:24 PM)

Hi all,

Just letting you know that the Optimus Maximus keyboard is only 2 days from pre-orders. however I can think of about 1850 reasons why I will not be buying this keyboard.

Ciao

[3 Comment(s)]


Um... er... Cratemen anyone? (16/05/2007 06:22:22 AM)

[0 Comment(s)]


Computers Versus Trains (14/05/2007 09:20:33 AM)

Although this is borrowed by a friend last year, I thought I would proliferate the point again in comparing PC's to Trains.

You should all know by now that there are 2 classes of processors (prior to Core 2 Duo). That was the Pentium-D, Celeron-D, Pentium-M and Celeron-M. Essentially, the D is like the Diesel Service operated by V/Line. Basically, they run faster, they run much further, they get into places others can't, they don't require a huge number of trips, they run express where others dont and are more expensive to purchase. They have a tendancy to sometimes run on time (more-so than others), but when they are late, you really know about it. The M on the other hand is like Metlink. They run slower, they don't travel as far, they work for most people, they have to run more cycles to keep up with demand and they are always delayed, cancelled or just rerouted down the wrong tracks.

Anyone who doesn't agree should be shot Wink

Orb!ter 

[1 Comment(s)]


GreenTubeLAN 5 Review (12/05/2007 09:13:33 AM)
gtl_logo

Ok, so it's been a while since I have made a proper post given how busy I have been. University, Assignments, LAN Parties, and work just seem to mount up quite alot. Whilst I have a few moments, I suppose I had better make a 'review' on GreenTubeLAN.

The Bad:

  • Very very very poor turnout. To only have 15 from the 30 or so who registered actually make an appearance is beyond poor. Generally we don't run with less than 20, but this is the second we have had below this figure. We just simply cannot run with these conditions with the amount of time that goes into preparation.
  • The network seemed to be bottlenecked even with just 15. I've put it down to the DNS server trying to get a hold of the OptusNet Name Servers for each query so yeah - will be improved for next LAN.
  • The gaming consisted of Counter Strike Source and... um... yeah - that's about it. A little bit of variety, but yeah - Counter Strike Source - and I'm not a fan of FPS.
  • Other peoples input. I appreciate peoples input with how to run a LAN Party, but to be told out and out by more than one person that the way Matthew, Nick, Mike and I run the event is on the most part terrible is getting old.
  • Following on from the previous point, we do NOT need any servers. I am sick of people saying they have a server that is a top of the line server, and that we should use it because it's better than what I have. FFS! A Server contains a bunch of services. It is not necessary to have a huge amount of power for a handful of people connecting.
  • Coming through Rokeby Saturday Morning, a stanley knife was on the road. Basically a Tyre popped making sure that I couldn't make the train I needed to catch *sigh*
  • Lack of tournaments and organisation - Mainly due to the poor turnout. Maybe I would have been more inclined to dictate to others what's running if we could all agree on a damn game to play.
  • Lack of prizes. I must apologise to everyone about the lack of any prizes apart from those cheeseburger vouchers. Basically there are no funds left over to give prizes, so yeah.
  • People simply not registering. Seriously - if you want to come, REGISTER. Don't tell me Monday you didn't know about it!
  • Dale not showing up until about 45 minutes later arriving at Dandenong Station with about $2000 worth of equipment.
  • NO V/NACHOS!!!!!!!!!!!!!!!!!!!!!

The Good:

  • Company for a change on the Train.
  • The fact I played more games at this LAN party than I ever played at any other one (mainly Theme Hospital contrary to popular beliefs about CSS being the ONLY game played).
  • More Train Simulator than ever before
  • It was relaxed, no complaints (mind you - I would rather someone tell me they want to play something - I apologise to the one that did where we couldn't get the interest in)
  • The Voucher/Honesty System actually worked. I know it's corny - but then again, so is V/Lines equivalent system ;) It did actually help out the can distribution.
  • I absolutely aniliated Matthew (DasBok) in Counter Strike Source despite his best efforts to knife me.
  • The Gigabit network sponsored by Phoenix LAN Group for the second time - very much appreciated guys.
  • I didn't end up waking up Monday morning with a chronic headache.

GreenTubeLAN's Warragul LAN Party

Anyone who would like a LAN party in Warragul really need to register their interest on the website. No, you aren't registering for the event but rather for the interest so we may have an indication of who would come to a LAN Party in Warragul.

[3 Comment(s)]


LAN This Weekend (03/05/2007 09:16:58 PM)
Ok ok... apart from work, I've been very quiet - LAN THIS WEEKEND OMG!!!

[0 Comment(s)]


[Print View]