Saturday 9 October 2010

Final Year Project III

And what would probably be the final installment of my final year project followup. This is an update to project idea. So I emailed Alexandar Bolotov late on Thursday 7th Oct 2010 at probably about 12:25am to confirm to him that I will be following his advice and be doing a game engine for Chess. So basically I requested Alexandar to be my supervisor for the project and to complete that process I had to get his signature on a form which had the last day of submission as 8th Oct 2010. He prompty replied back at about 7:30am (which is way better than some other lecturers) saying that he will not be in office on the 8th but he does agree in being my supervisor. At this point needless to say I did start freaking out because it was the last day for the form submission, my sister was coming back to London and I would finally get to spend some time with her and I had to sort out my final year fees...

Although since I was reading on my phone I scrolled slightly down to read the rest of the message after having freaked out that is. He went on to say that I should put his name down and leave his signature blank and he will sort it out with the campus office and stuff. I truely can not thank him enough for not giving me a hard time about the whole situation.

OK one down and two major things to do... So at about 9:00 am I got out of the house (trying to avoid rush hour :)) and got into London at about 10:10am and headed directly towards the university's international students' office. This was because I did my foundation year at this university which meant that I am entitled to getting a refund of my foundation year fees. This would therefore mean that instead of paying £10,000 for this year I would have to pay less than that (which made me a very happy bunny). On my way I ran into Peter and I do recommend that you guys check out his website by clicking on this link. Peter came with me to the international office and they told me to talk to the finance office. Cutting a long story short I am eligible and I am now a very happy bunny :P.

And finally the part of the day that I was actually looking forward to I headed to Victoria station to pick my sister up :) (btw this is her blog so check it out for a small break :)). She was in the UK for about 10 days for an education conference from work and was just getting back from Brighton. So the plan was that she would spend the rest of the day with me and we would watch movies the whole night and she would be leaving for Kenya the next day in the morning.

So basically spent some time with her and she knocked out while watching the movie... lol... she was pretty tired in her defence. And on Saturday I had to see her off :( so pretty sad about that... But enjoyed the time with her :D.

Thursday 7 October 2010

Final Year Project II

A followup from my last post :)... So I had a very nice 45 min long meeting with a tentative supervisor to discuss my project. The idea that I pitched to him was a Chess game that utilises Artificial Intelligence to play against a player. I had thought of this project as sort of a last resort if all else fails (pretty clever :p). This idea actually got the tutor pretty excited and he suggested a couple of things that I could look into if I do want to go on with this project.

I was initially not too keen in doing the chess project because I think it has been done so many times that it may not impress anyone, but my tutor (it would probably be better to give his name here :)...) Alexander Bolotov (guy not a girl) reassured me that the project is complex enough to impress most people. He also suggested on creating a game engine for chess rather than the complete game and make it modular enough to be reused by other people. To be honest, I have always been intrigued by AI and this project will definately feed my curiousity but I was really hoping to do something for the developers and specific to web development. Hopefully, I will find a way to start both projects in parallel and make the browser open source with limited functionality and publish it on source forge. I will definately keep my fingers crossed and hope this will not be one of my projects I never get down to.

At this point I may have been sorted for my project but funny enough I had scheduled another meeting for the project with Sean Tohill anoth tutor of mine. This idea actually came from him and he said that it has never been done before atleast at this university. The idea was benchmarking networks. Which would mean that I would setup a small network and use skype or some other similar VoIP software to communicate internally. Then I would keep on adding load to the network and seen how good/bad the voice quality would be and so on so forth.

This idea has me a bit excited as it deals with some sort of hacking the network and causing interference and stuff. But this has also added to the difficulty of me having to chose one project.

I am taking the whole of this day to research on what each project will involve and should hopefully make up my mind on which one I should chose. Please help me make my mind by commenting on which project you would do.

Wednesday 6 October 2010

Final Year Project

So, its the middle of the night, I have a cold and I absolutely cannot sleep. What do I do you ask? I take out my Android phone, fire up Blogger Droid and start typing this post :).

As always a post after a long time discussing future plans of my life. As those of you who know me I am in my final year of my undergraduate degree in Software Engineering and desperately looking for a project idea that could possibly blow peoples mind and also be simple enough for me to finish over the course of this year.

I have been thinking of doing a developer tool for programmers of any platform and possibly any language could use. This got me thinking of what I have been doing over summer, which has been loads of web development and design with creating cross-browser friendly CSS, which contrary to my belief is not easy. You have to first make a base stylesheet which is compatible with your favourite browser (in my case FireFox) and code for it, then you open your second browser and check the website there and so on so forth. At the end of the day you hope to come up with code that makes the website look more or less the same throughout all the browsers and screen sizes you could get your hands on (i actually recommend using different operating systems as well cause for some reason FireFox for ubuntu doesn't render the page the same way as FireFox for Windows, who knew). So anyway after hours and hours and possibly days of tweaking a testing your finally done with the website and are happy with the way it looks and feels everywhere. After this you give your client the good news and he/she decides to check in an obsolete browser like internet explorer 6 or something and calls you back with hopefully a screens of how the page is rendering.

Know I do know that IE6 should not be supported and a lot of my friends feel very strongly about that but sometimes you just don't have a choice.

So anyway before I go on another tangent, I just got an idea of making a web browser with interchangeable rendering engines, screen simulations, OS simulations and etc. This is however just an idea and I hope to have a word with one of my lecturers tomorrow. In the meantime please leave a comment on this post with any ideas, or just anything you would like to say of my half baked project proposal. I do hope to read your comments soon.

Good night.
Published with Blogger-droid v1.6.2

Wednesday 2 June 2010

First Screencast/Tutorial

Hi everyone, as some of you might know I released my first tutorial yesterday which marked the start of my screencasting/podcasting project that I planned to do over the summer.


YouTube link of screencast

The tutorial was about a feature in Microsoft Word that I think is the most underused. I am saying this because when I look at fellow students writting reports I often see them on the last minute sorting out the table of contents by hand which is weird cause Word allows you to totally automate the process and finish the table of contents in less than 4 clicks. Anyway I hope you enjoy it and please leave some feedback so I can try and incorporate it in the next screencast.

Monday 31 May 2010

Update 31-May-2010

Hey guys and girls :). Hope everyone is in high spirits. Its been really long since I last blogged and this was partly because of the huge amount of courseworks that I and the rest of my classmates had to hand and partly also because I have just been plain lazy (big character flaw). Anyway I had my last exam on the 24th of May 2010 (which frankly speaking was terrible) and so I decided to take a break from anything and everything computer and work related and chill out. Anyway alot has happened over the past couple of months that has got me really interested in doing several things some of which I hope to start as off tomorrow (1st June) God willing.

Heres the breakdown of what I hope to achive.
  1. Update blog more frequently
  2. Start a series of video tutorials (hopefully technical based)
  3. Plan out my final year project and blog about it so I can get some input from you guys about it
  4. Learn programming from the ground up to have a very strong foundation in
    • C++
    • C
    • Java
    • JavaScript(including the frameworks such as AJAX and JQuery)
    • PHP
    • MySQL
  5. Develop apps for the Android platform and hopefully document that as well
  6. And probably the most important thing LEARN NEW THINGS!!!
Hopefully I will even get a job over this summer and get a chance to earn some cash because my freelancing isn't really getting anywhere :(.

Anyway guys and girls hope you can join me in this weird sort of quest thingy that I have got going on. See you later ;).

Monday 18 January 2010

XMLHttpRequest

Hi guys hope everything is going well. Its been a hacktic 2 weeks for me and I am really glad to finally be able to finish the AJAX tutorials that I started a couple of weeks ago as an endeavour to teach myself the concept. By the way if anyone wants to check out my coursework for the AJAX based dictionary click here and log in using your university id and password. For those who are not at the university sorry I don't have a domain where I could upload my scripts but I am looking into it.

Now getting back to business. At the beginning of your JavaScript you need to make a new XMLHttpRequest object which can be made by simply typing in var xmlHttp = new XMLHttpRequest(); please note that JavaScript IS case sensitive so if you make a mistake in the declaration it will not work. Now abit about what this code does. The line of code is placed outside any JavaScript function so that it is available globally to all the functions that will be written later on and any changes that have been made to it in one function will affect the next time it is being used. This way of coding is somewhat lazy but works as good as any other method. A sort of better way of achieving the same outcome would be to declare the request object in the first function that you want to make the request from and send it as a param to any other function that will be using it.

At this point let me add that the code written for the declaration will only work in Internet Explorer 7 and later and any non-Microsoft browser that exists. If you want to check for what browser your client is using to still run AJAX on it, it is recommended by almost everyone I know to check for the existance of the XMLHttpRequest object which will be a simple if-statement if(XMLHttpRequest) than create a new instance of the object by executing the declaration above. Otherwise declare the request object as follows xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");. At this point I would also like to say that the variable in which I declare the request object I call it xmlHttp but please feel free to use any name that makes sence to you because you will be the one writing the code but please make sure that if anyone else was to read your code it should be readable and understandable by everyone.

So after you make the declaration and it is successfully executed you will have to tell the object which file you want to open on the server, how you want to access it and whether or not this process should go on in the background while the user continues to browse. To open a file called "openThis.txt" and get information from it the code will be as follows xmlHttp.open("get", "openThis.txt", true). What this is doing is pretty much self explaintory it uses the "get" method to get information from the file "openThis.txt" in a true asychronise manner. At this point I would just like to remind you that for HTML forms there are usually two methods of dealing with them, the POST method and the GET method. Where the POST method sends data somewhere and the GET method gets data from somewhere.

At this point I would also like to add that the file being fetched can be an XML file a PHP script or a normal text file. I am not entirely sure what types of files the request object can open but for our purposes lets just say that these are the only types of files that can be opened.

After opening the file the next thing you would like to do with it would probably do something with it, like display the contents or something of that sort. However, we need an event to trigger the action and that event will be xmlHttp.onreadstatechange;. Now since you will be communicating with the server there are some steps and states you have to go through before you can actually get stuff off the server and onto the client machine. The state in which the connection is in. The way you find out about this is using the readyState property of the request object. The readyState property may have 1 of 5 values that are listed below:
ValueMeaning
0Unintialised or connection established but nothing is being done
1Initialised or connection established and something has started to be done
2Request has been sent
3Interactive or the request is in the process of execution
4Ready or request has been executed and the server is ready for the next one

Now the thing that I didn't include in the xmlHttp.onreadystatechange event was sending this action somewhere which would usually be a function that you would define later on in the script but for the sake of completing the code I will be sending to a function that does absolutely nothing :P. xmlHttp.onreadystatechange = function (){};.

Now typically in this function you which would first check if the readyState property is 4 which means that everything has been executed with no problem and than tell it to do something.

Ammm seeing that this has turned out to be a longer post than intended I will be continuing on how to display the file to the user in the next which should be the last step in AJAX. Remember if you have problems with your program let me know I just may be able to sort out the error that you get if not will try and give you some advice. Untill next time take care.

Sunday 3 January 2010

Sorry :(

Hi guys hope everyone had an excellent New Year. I know I sure did :D... Guys this message is an apology for not being able to continue with the tutorials on AJAX and not having started Samba yet. You the New Year started really well for me as I got a freelancing project through one of the programming forums where I sorta help out. The project is to make an event poster, tickets and several other graphical elements for it. Know although it would usually take me about 3-4 days to complete this task its taking me longer because I finally made the jump from the Adobe CS3 products to the Adobe CS4 products which has forced me to relearn all the command locations again. The project is due to be completed on the 4th of Jan and after which I should be in a better position to post another tutorial. Again my apologies for the delay and Happy New Year.