• SE1SA5 - Programming, Final Project (Card Game)

    May 4, 2010

    You may have read my review for the final project for Programming (SE1SA5). This project was completed over a number of weeks.

    I decided to produce a Card Game over a Text Prediction program as I felt it would be easier and that I could incorporate classes into it more easily to gain credit.

    Project progress was monitored by student helpers and members of staff to ensure that the work was under way enough to be completed on time. I felt that it was also good to simulate a real life situation in which it would be expected to show progress throughout the project.

    I encountered a few issues whilst programming, as I did not fully understand certain function calls, along with a more specific difficulty in a vast number of instances of a class. I posted a little frustration on how I had initially attempted to implement this on Twitter. Chris Alexander (@chris_alexander) quickly provided a possible solution of 'Class Wrapping', which at first I had to ask the meaning of. This saved me a great deal of work and gave my code readability.

    The other issue I had initially was that I was seeding the random number generator each time the random function was called. This meant that I was constantly getting the same random numbers. Patrick Parslow (@PatParslow) aided me with this issue and I learnt that seeding the random number generator should only be done once per program in order to correctly generate random numbers.

    Looking back at my program I now realise it would have been more professional and user friendly if I were to prevent an 'infinite loop' (this is not quite true as it quickly causes a stack overflow and stops program execution), which occurred when a user entered anything other than an integer value when prompted for input.


    Syntax highlighting thanks to pastie.org

    I have some ideas in which to expand upon it, which I may do over the summer as I have, so far, been unable to find a part time job:

    •  Allow user to chose the value of an Ace
    • Add support for multiple players
    • Prevent the loop on character entry
    This project taught me a lot and helped me to apply the knowledge that the module has taught me. It really goes to show how diverse programming can be. Such a wide field makes me want to dabble in a number of different situations. Game development, software development, web development. During the course of the summer I hope to have tried out most of these a bit further than I have already. But first... Exams

  • Web Development - Getting my feet wet

    Apr 30, 2010

    Yesterday I got my teeth into some near first-time Web Development. My previous experience was a GCSE website (using frames *shudder*) and styling my no-longer-used MySpace page (css).

    I initially doodled the idea of the layout and a brief list of content/features of the site. Tabs featured heavily in the design. So I set out to produce this using CSS and HTML. After browsing I found a few guides of how best to do it, however this wasn't quite right for me as I wanted the tabs to be within a single page, which wouldn't need a complete reload. The way to avoid this was to use PHP in order to set a styling attribute (id) to the 'active tab' with some help from Gary Mardell and Josh Homerston (Twitter: @jhomerston)  I soon managed this.

    The site can be viewed here. It may be up, down or altered at any time though! I'm hoping to develop it further after exams.

    In order to host the site I used the free SSE hosting service, which allowed me to set up an FTP connection through MS Expression Web 3.

    Upon Gary's advice I have set the goal of hand coding each element and style as I feel it gives me more experience and better control over the site.

  • Google Wave Review

    Mar 22, 2010

    The coursework in the Software Engineering module in Computer Science at the University of Reading has been to design and implement a Board game. The game had to incorporate Software Engineering. It has been great fun to do, although testing at times with team indecision and dispute.

    One member of the group was unable to be contactable whilst not at home and also only limited communication whilst he was at home due to lacking a broadband connection. However, amongst the rest of us I thought it would be a great test, experience and useful to use Google Wave in order to collaborate and communicate. Upon receiving an invite from Shirley Williams to join Google Wave I set about inviting the other members of the team.

    Being completely new to the concept of Google Wave it took me a while to find my way around the application and begin to use it in the way I wanted. This didn't take too long and in no time I was collaborating with Pete in no time. Quite a change from seeing 'X is writing a message' to actually seeing the message they are typing, this both has advantages and disadvantages. It means that you may start to anticipate what they are about to say and begin a response of your own, however, some of the time it is wasted as the other decides to change what they are typing.

    My Google Wave experience was made easier by using a Google Chrome extension (Google Wave Notifier). This meant that I could see if I had new messages without going to Google Wave itself. It also enabled me to customise the page as I saw it by hiding the navigation pane etc. It is possible to just bookmark it to do the same though just a search and you can find it easily enough.

    During the more pressing times of our project, deadlines mainly, we were unfortunate enough to experience a few wave crashes and, it seemed, data corruption. Certain files would not load, others would not be available to view or download. This meant some delays occurred during our busiest times.

    Effectively the way our team used Google Wave was like a collaborative word processing document. With the ease of correcting later on and the playback feature, it was easy to see the changes that others had made upon viewing the updated wave.

    As it is still in preview; features come and go, go offline, break, but that's all part of the fun of using something different and new. It allowed us to refer to the 'document' in team meetings as well as each of us having access once at home. However, with just a few miss-clicks the Wave can become cluttered and messy as un-deletable objects can appear, but I guess that's because it's something they want to monitor in the preview.
    Overall a great experience with Google Wave. I'm sure I will continue to use it in the future as well. Give it a shot, see what you use it for.

  • Personal Project 1

    Mar 20, 2010

    I am now embarking on the production of a Social Networking application. I am starting the process using C# of which I am partially familiar with. Along the way I will no doubt come across some issues with things I have not learnt, come across or do not understand.
    I will be learning about some C# libraries and various APIs. Neither of which I have used before.
    So far I have managed to produce a program which will post a tweet for me using the API:

    A small achievement for me really. I found it all a little daunting at first but now feel with that timid step I may be able to succeed in the overall goal, which I will reveal once the program development is fully under-way.