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 7Trial/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
[0 Comment(s)]
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
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:
"get the information..."
Again, thinking logically in how to get the information, we need to do the following:
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
Thanks,Orb!ter
[5 Comment(s)]
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:
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.
As 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 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 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).
Whilst 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.
Webpages 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
[7 Comment(s)]
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)]
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
Orb!ter
[1 Comment(s)]
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:
The Good:
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.
[Print View]