Revision: Computer and Internet Technologies

Posted on May 20, 2007 by Andy Callaghan.
Categories: Uni, Work.

In a desperate last attempt to help me revise my first year course, I'm going to publish rewritten notes to help someone revise Computer Science topics – this first post will be about Internet Communications. Sorry that I'm deviating away from the usual blog theme of my website!

There are many different areas to look at when thinking of Internet Communications. In this revision page,  I will go through the following:

  1. Quality of Service
  2. Layer system of protocol

1. Quality of Service (QoS)

Following is a rough list of network services that computing can achieve. 

  • Shared Resources
    • Storage
    • Programs
    • Databases
    • Printing
  • File transfer
  • Email and instant messaging
  • World-wide-web access (through 'The internet' or an Intranet)
  • E-commerce
  • Voice and/or video transfer
  • Peer-to-peer services
  • Scatter-gather networks (Bittorrent and others)

Quality of Service is measured using the following metrics:

  • Throughput
    -  The overall speed of data transfer, taking into account all protocols and losses.
  • Delay
    -  The time taken for the first bit to arrice and its destination.
  • Bandwidth
    -  In modern terms means an amalgamation of throughput and delay.
    -  High bandwidth -> High throughput, Low delay
    -  Low bandwidth  -> Low throughput, High delay.
  • Jitter
    -  The variation in delay between packets/frames.
  • Packet loss
    -  Defined as the probability that a given packet will never reach its intended destination.
  • Error rate
    -  The proportion of arrived bits with error
    -  Can be burst errors, or random errrors
  • Availability
    -  Measured in % uptime
  • Maintainability
    -  How easy are faults to repair when things fail?
  • Security
    -  What do you want to protect your data against?
  • Cost
    -  The overall cost of using and maintaining the network

A high-definition, wide-screen, full motion video has:

  • 1366 x 768 pixels per frame
  • 24 bit of colour per pixel
  • 100 frames per second 

If the video is transferred without compression, we need a throughput of no less than 2.5 Gbps!

2. Layer system of protocols

To aid maintainability and logical thinking, the internet protocol is broken down into 'layers'. Lowest to highest.

  1. "Transfer of bits" — Physical layer (most important)
    -  Voltage, sampling, wireless etc. The physical voltages and currents of electronic bits.
  2. "Perfect data delivery" — Data link layer
    -  Error correction, repeat requests, CRC etc…
  3. "Choosing the route" — Network layer
    -  Path control & routing, addressing scheme, IPv4/6, segmentation & reassembly of frames
  4. "Reliable end-to-end delivery" — Transport layer
    - Further error, flow and sequence control
  5. "Right program" — Application addressing layer
    - Achieved through ports, ie. (182.16.10.30)  :80 – http, :21 – ftp, :6842 – msn etc…
  6. "Make it useful to the user" — Application layer
    - User interface, web browser, email client, applications

We’re in the second round of the Imagine Cup 2007!

Posted on March 31, 2007 by Andy Callaghan.
Categories: Microsoft, Scoop!, Work.

Me and my team, Rediverse entered the Web Development invitational for the 2007 Imagine Cup competition in Korea run by Microsoft and other companies.

Stage one consisted of around 200 teams and required each team to produce a document detailing what we would do if were to go through.

Our plan is secret at the moment, as we don’t want people to nick ideas off of us, but it involves education, the web, ASP, .NET, C# and plenty of pizza, beer and late night coding sessions!

We and 59 other teams go through to the second round, and get to actually make our product. We will also present our final product to judges at the UK Finals around the 20th May.

I’m so excited about this; I can’t wait to get my little fingers whirring, coding a complete web system with my friends.

Lots of work, stress and virus troubles. Cancel or Allow?

Posted on March 16, 2007 by Andy Callaghan.
Categories: Microsoft, Rant, Uni, Work.

I have got alot of work to complete recently – my algorithms assignment, software engineering and final programming project (to be uploaded in the not to distant future).

So I, Andy Callaghan, officially blame Windows Vista for making my life even more stressful by ‘contracting’ a virus mid-programming and doing my work.

Due to the Windows virus, I got banned from the Uni network. The viral traffic was detected by the Universities firewalls. They completely locked me down… no email or web (except the windows update site, naturally). I was crapping myself. I couldn’t access (still can’t to a degree) my network drive in the University so none of my work could be accessed.

After installing all the anti-virus software they could throw at me, they unbanned then quickly banned me again a day after with the same reason – Poebot virus traffic.

All of this, was occurring on a fully up-to-date legal version of Windows Vista – reportedly the most secure operating system that M$ have ever produced. Safe? Yeah right. The user-access control is a joke! (but you can Cancel of Allow anything that the system may do!).

It is simply not sensible to trust all my work and grades in an insecure system.

I duly formatted the Vista infestation off of my machine, and reinstalled Win XP.

To add insult to injury the Windows installer, of course, completely scrubbed the boot sector of my drive for it’s own boot loader, erasing GRUB – so I couldn’t boot into openSuse. I rebuilt the boot-loader from the openSuse disk, to then find that Windows had corrupted my root drive for Linux.

A re-install of openSuse allowed me to see that my t’internet connection had been re-enabled as my entire machine was functioning in openSuse. However in Windows, after a fresh install and driver install of what I could, the following still don’t work.

  • Network
  • Sound
  • Dual screen (even with Nvidia drivers installed)
  • Webcam, printer and scanner (but these are less important)

I am now enjoying openSuse, merely because it works perfectly and is a lot less likely to lose my work by viruses. Kdevelop rocks!

openSuse dual-screen transparency

This is a picture of my openSuse desktop, in all of it’s dual-head transparency loveliness.

Ending comments:

If (exoskeleton || (green && wiggles)) eat_it();

Various C++ algorithms

Posted on February 24, 2007 by Andy Callaghan.
Categories: Open source, Uni, Work.

All code is released under GPL. If you wish to use, modify, hack it etc, please attribute me.
All of the following code is cross-platform certified on Win32 and openSUSE Linux 10.2.
Maximum algorithm

Unique algorithm

Greedy algorithm

Composition algorithm

Recursive algorithm (Collatz conjecture)

C++ project: Battle royale and mind warping avatars

Posted on February 12, 2007 by Andy Callaghan.
Categories: Open source, Work.

This is the most recent C++ project that i’ve completed – got 100%! Woot!

It involved using classes and OOP to create a kinda mini-game where a set of Avatar (12) are assigned random IQs, then battle and the winner is based on probability between the two avatars.

My next project will be my end of term practical: either designing an SDL based Mastermind game clone, or an intellegent chat-bot.

Enjoy this for now though!

.tar.gz sources
Avatar C++ project source

.tar.gz binary (Win 32)
Avatar C++ project executable

.zip sources
Avatar C++ project executable (zip)

.zip binary (Win 32)
Avatar C++ project source (zip)

To use the executable, call it from the command line.

This code is released with no warranty. You can use, change and learn from my code but if you use it, please attribute the code to me, Andy Callaghan.

Program in C: Character Sorting

Posted on December 14, 2006 by Andy Callaghan.
Categories: Open source, Work.

This is the final program in my C part of my programming course, and involves using file IO, characters and arrays to sort a file, in.txt into two seperate files, one with just alphabetics – alpha.txt, the other with just non-alphabetic characters – nonalpha.txt.

I offer the program but you can get the source if you reply to this entry, or email to andy at microplop dot com.

Main executable

Sample text file

Instructions: place both practical9a.exe and in.txt in same folder and run the exe.

This program was able to process a 32Mb text file into alphabetics and non-alphabetics in just under 8 seconds on my machine, so it’s nice and optimised code!

Happy Sorting!

Hand Made Music

Posted on December 12, 2006 by Andy Callaghan.
Categories: News, Scoop!, Work.

My sister has just gone into business with her new company, Hand Made Music – the chance for you to give an extremely thoughtful and unique present for christmas or beyond. Her company are able to make a custom peice of music which is composed for the person you are giving it to.

Hand Made Music also make music for documentaries, television adverts, computer games and more.

Take a look, please!!

www.hand-made-music.co.uk

asc

Script.aculo.us

Posted on September 21, 2006 by Andy Callaghan.
Categories: Internet, Open source, Tips and tricks, Work.

Various effects are available from the open-source http://script.aculo.us library. They include simple fades to drag-and-drop shopping list to server-side database acccess in autocomplete names or email adresses. Their code is also used by top peeps such as Apple and Gucci. It’s well worth a look.