Software Development

The Big Update

BooksI’ve been slacking off, damn it. Anyway here’s my current status:
Working two jobs, Coles on the weekends and cvMail Wednesdays and Fridays. I much prefer working at cvMail, where I do software quality assurance work, as it is a lot more relevant to what I want to do with my future. I’m in my second year now at University, and this semester I’m taking subjects such as Data Structures and Patterns, Data Communications and Security, Software Development Practices, Careers in the Curriculum and Object Oriented C++. All in all I think I’m doing pretty good. More >

Samurize

desktop artJust found a cool peice of software :)

It’s called Samurize

Samurize is basically just a program which enables a user to display monitored data on their desktop easily and clearly. Such data may include your currently playing mp3, cpu usage, ram usage, weather etc, etc… There are tonnes of different scripts you can download and use with Samurize to display all sorts of different things

Here’s some examples from my desktop:


This is an example of me using Samurize to display my current playing song :)

This is an example of me using Samurize to monitor my cpu, ram, hdd, uptime, and date/time

Samurize is an excellent program. But who knows maybe in a week I’ll have deleted it like most desktop tweaking programs I install.This seems legit though, no bugs or any negative effects so far. Very stable, and even has an excellent config editing tool.

Rating? 10/10 – There’s just nothing to deduct points for

Download Samurize here: Samurize (5.56mb)

You’ll want the crystallite monitors: Crystalite (15kb)

The Monty Hall Problem (three door problem)

OK, lately at uni I’ve been trying to convince many people about the Monty Hall problem.

The problem:
Imagining that you are on a game show, you are given three doors to choose from. Behind two doors are goats, and behind one door is a car. The game show-host knows the location of the car.

You pick a door, one, two or three. No matter which door you choose, there is still going to be a goat you have not picked, because there are two goats.

So the host reveals a goat that Goatyou have not picked, and then asks you if you would like to change your decision.
The problem is, is it better to change your decision or should you stick to your initial decision? Or maybe you believe it makes no difference at all?

The fact is, there is more chance that you have initially chosen a goat (2/3 chance) so you’re more likely to be on a goat if you stay with your initial decision, hence it is best to change your decision, keeping in mind that you cannot change from a goat to a goat, because the other goat has been revealed already.

This explanation, however satisfying for most people, is not good enough for some people (who will remain nameless) at uni. I have tried time and time again to convince these people but they just won’t listen.

So what I did was I wrote a program which creates an array[0,1,2] of string. It RANDOMLY assigns to one of these elements, the value ‘car’, and assigns ‘goat’ to the other two.
It then selects one of the elements, and then disregards a ‘goat’ element that is not currently selected. It then changes the selection to the one which is left and tells you if this is a car or a goat.

Ofcourse I could have just drawn up a tree (there’s one on wikipedia along with other mathematical proofs) and show that the car has greater probability upon changing your decision, but a program is much more fun.

I have uploaded my program, along with the Pascal source code (could have been a more elegant solution but it serves its purpose).

threedoors.zip (69.0 KB)

The program can perform as many test cases as you specify, within the constraints of an integer. It does 1000 tests per second (1 per millisecond)

Hopefully this can bring some clarity to those who dispute the decision to change door!

Enjoy!

PSD: Semester 1 Summary

[warning, long read]

Well as semester 1 exams approach, I suppose this is a good time to reflect on how I’ve taken to the course I am enrolled in (Professional Software Development, aka PSD)

I will comment on individual subjects, in order of most favourite to least favourite.

#1 Favourite: Algorithmic Problem Solving

  • Content and Structure
    • One 2-hour lecture and one 2-hour lab/tute per week
    • I came into this subject pretty much expecting some teacher to be reading some syntax out of a book; “this keyword does this, and to do this we do this, etc”. Surprisingly, and thankfully, the subject actually reflects its title. In APS we were taught the basic foundations upon which programming is built. To learn this, we were using the Delphi Pascal language. We were taught things such as:
      • Data types and how/why we use them
      • Variables and how/why we use them
      • Arrays and their uses
      • Pointers, linked lists
      • Complex algorithms, how complex algorithms can generate elegant solutions
      • Plus a whole bunch of goodies I’ve missed out because of my bad memory
    • The great thing about the content of this subject was the sample programs that were used. Andrew always demonstrated his code in the context of creating a game. Which is an excellent way of keeping young minds interested.
  • Teaching
    • The subject was lectured and tutored by Andrew Cain. The way Andrew taught this subject really made me excited that I can forget about the lame teachers from high school. In high school the teachers always seemed disinterested in their own subject, which always lead me to question “if the teacher isn’t passionate about this subject then why should I be?”. This isn’t the case at uni, or at least with Andrew in APS. Andrew keeps this subject exciting. His clear passion for software development makes his presentations enjoyable and informative.
  • Difficulty
    • I will not deny, the subject was challenging. I don’t think there was a single assignment where I did not read it and think “oh crap”. But a challenge is good, and since the subject was interesting, I had the motivation to do the extra yards to make sure I got those assignments done. I’d say the subject was a comfortable challenge
  • Overview
    • The subject was excellent, couldn’t have hoped for more.
    • 10/10

#2 Favourite: Computing and Logic Essentials

  • Content and Structure
    • 100100101010110111001… Oh whoops. What I mean to say is, this subject was um.. interesting, and had an obvious focus.
    • In two 2-hour classes per week we learnt some important material about computation:
      • How we can digitally represent data
      • How we can manipulate it
      • How we can use electricity to calculate
      • How to measure the complexity of problems
      • How to specify the requirements of computation in a precise and unambiguous way
    • The content was specific, clear, and fun to learn. I found the subject was intimidating at first, with all the new symbols and all, but by the end of this subject, I was lovin’ it!
    • This subject was actually the only subject to inspire my learning in areas other than the scope of the subject itself. To be precise, Computing and Logic Essentials inspired me to do some research on Quantum Computing, which was very interesting.
  • Teaching
    • This subject was taken in two 2-hour classes per week, by Rajesh Vasa. It is obvious from the beginning that Raj knows his stuff. I don’t know whether this is because of a hunch of mine or because of his willingness to skip parts that he believes you should know; “to add binary the computer does this, this, oh and there’s this bit but who cares lets move on”, while we’re left there thinking “argh go back!”. This isn’t bad though. Raj makes sure everything is still covered, and 10 minutes after the class we’re standing at the station laughing about it. As scary as it is to watch Raj assume we know so much, I still have 100% trust that we’re in good hands. The subject was something very different to what I had previously experienced. The teaching was to be enjoyed as much as absorbed.
  • Difficulty
    • The subject was actually so simple that it was hard. That makes sense right? I guess what I’m saying is that the subject practices alot of logic which is so simple that we’re not used to thinking that way. With a bit of practice though, the subject was fairly comfortable in regards to the difficulty.
  • Overview
    • An eye-opener, this subject makes you appreciate the microprocessor. Thoroughly enjoyable.
    • 9/10

#3 Favourite: Database Analysis and Design

  • Content and Structure
    • One 2-hour lecture, 1-hour lab, 1-hour tutorial.
    • DAD is a subject which is definately of valuable use to those chasing a career in software development. I think it achieved exactly what I expected. Not only were we taught what databases are and a bit of SQL etc, we were taught the rock solid stuff. The relationships and complex diagrams to go along with them. How we can take from a case study, our design for a database. To be exact, the subject enabled students to:
      • Understand relational data models
      • Use SQL to define, query and manipulate data
      • Create entity relationship diagrams
      • Perform analysis on entity relationship diagrams and make corrections
    • The content was precise, and had an obvious and clear focus. A solid subject.
  • Teaching
    • Although the subject was interesting at first. I think something surely could have been done to prevent my rapid increase in distraction from this subject. It just became a real arduous task to sit through 2-hour lectures of this subject. But I suppose the subject was delivered adequately, and my attention span can be to blame for my ease of distraction in these lectures. However I did find the lab quite a task. The teacher for my lab had extremely poor english and was only just understandable at the best of times. This made things… well… pretty much impossible when it came to asking help. I did try to ask her for help once, only to find myself asking her to go away within the same 5 minutes because I simply could not understand what she was saying. A shame really, because I knew she was intelligent and was more than qualified in database, just a shame about the communication barrier.
  • Difficulty
    • The subject was fairly easy-going. At least the first half. The second half gets complex pretty quickly, but is still more than do-able.
  • Overview
    • It’s a good subject, I think a few things just weren’t going for me in it (like the lab teacher’s english or lack thereof)
    • 6/10

#4 Favourite: Introduction to Business Information Systems

  • Content and Structure
    • Same structure as Databse Analysis and Design, a 2-hour lecture, a 1-hour lab and a 1-hour tutorial.
    • I’m not going to lie. The content sucked. I still to this day struggle to recall specifics about this subject. The constant beating around the bush sent me chronically fed up with IBIS within the first 2 weeks, if not sooner. Apparantly the subject taught us a whole bunch of stuff to do with the way information systems help in organisations. The subject in my opinion was just a great big ‘state the obvious’ contest.
    • The content of this subject was very unclear, and was in no way relevant to the work completed in the labs.
  • Teaching
    • Lectured by Catherine Lang, I could tell she was confident in the business side of things. But I think it would really help if the subject were lectured by someone with a bit more technical knowledge. I’m not going to go out of my way to belittle the lecturer, I know she didn’t wake up with a degree under her pillow, but she was constantly getting things wrong on the more technical side of the spectrum, which I think would have had negative effects on the students who didn’t know better.
    • I really liked Rajiv. Rajiv took my lab and tutorial. He kept to the topic, made things clear and simple, and taught things in an easy-to-understand manner.
  • Difficulty
    • The subject was VERY easy, the main difficulty about the subject was really just trying to understand what the lectures were supposed to be teaching us.
  • Overview
    • When the PSD team had a meeting, all students recommended that IBIS be removed from semester 1 of the PSD. Not long after this meeting we found out that next year’s lucky PSD students will not be doing IBIS in semester 1 of their course.
    • The subject felt disorganised and undirected.
    • 3/10

I’d hate to finish on a sour note, maybe I should have commented on my subjects from least favourite to most favourite.

Anyway, apart from one particular subject (need I really name it?) the PSD is an excellent course so far! I’m absolutely rapt with it! Ofcourse, it’s not just the subjects and teachers, but the other students which also make the PSD a really enjoyable course. So I’d like to give a thankyou to all the guys doing the PSD!

So far, I give the PSD 9/10. I know there is a fat 3/10 in there but I’d hate to rate PSD lower than 9/10 just because of one crap subject. After all, this is the first year of the PSD! Can’t get it perfect on the first shot.

Next semester I will be looking forward to doing the following subjects:

  • Object Oriented Programming
  • Internet Technologies
  • Usability
  • Computer Systems

Looks like a promising semester (I think I’m supposed to say teaching period 3) 2 coming up!

Good luck to all PSD’ers in the upcoming exams!