Hello World!
I'm a Developer at Master of Malt, a University of Brighton graduate, a 1st Kyu in Kyokushinkai Karate, a video gamer and technology enthusiast. Read more about me over here.
CloudANDTidus
Search
Games


Entries in web development (4)

Monday
May302011

At some point in their lives 1 out of 6 children will be abducted by the Dutch.

Instead of doing the sensible thing and actually revise for my exams, I've been working on my little side project the last couple days. As I mentioned in an earlier post, the imaginatively named "my e-penis.com" is a database for tracking game collections and progression. As it stands a user can register for an account, login, search for games and provide basic information about the status of each game, such as ownership (whether you have the game, had the game or want the game), completion progress (if you completed it, gave up on it or if the game is uncompletable in the case of an MMO or puzzle game), completion date and how many hours have been played.

Technology wise, I'm using a combination of PHP and jQuery on the front end and a MySQL database on the back end. I've had very little practical experience with jQuery despite being aware of it for a while now, so the whole thing has been a learning experience. Its also been quite a while since I last designed a site from scratch, so I've had to come up with a fresh design that feels more modern than the last site I built. And yes, I'm making a green website. You have a problem with that?

The internet doesn't have enough green if you ask me.

The site uses Giant Bomb's API (which was a nice crash course in JSON) to provide the game database. Back in the FWXD days one of the major issues with the site was trying to get users to enter game information into the database. Using an external wiki that is always growing and correcting itself is certainly the better solution, especially as the site is really only designed for myself. I would love for others to get some use out of it, however I don't really intend for it to gain traction. If I did, I would have chosen a more politically correct name...

The site is currently in alpha, but if you want to play with it and give me feedback, you can check it out here.

In other news, on Thursday I was offered full time employment at my day job. This July will mark two years with the company. I joined them for my placement year and stayed on part time (currently only a day a week) during my final year of University. This offer marks the first time I will be "employed for reals", and includes the obvious benefit of a pay rise, as well as the promise of 20% time to work on personal side projects that can benefit the company. 

I had done a lot of thinking leading up to this week as to what I wanted to do once I graduated. Should I do a masters degree? Look at what other job opportunities are available? Or maybe live up to my threat and go back to college and do an art degree? After the last year it didn't take me long to decide that I had had enough of the education system, and frankly I don't know how well I would fit in with a more "professional" company. 

Despite the fact they claim to be getting more "proper" (with a real office and everything), you gotta love the idea that your company is making its millions on porn star rum.

So I accepted. If nothing else, I feel more comfortable graduating with a secure job, which will allow me to more casually monitor other opportunities than if I had graduated unemployed. Not that I expect to be leaving them any time soon. They tried and failed to find a replacement for me, so I must be doing something right.

I wont be joining them full time until after graduation at the end of July, so I have some time before then.

On another topic entirely, SEO is a funny thing. I use quotes from TV shows and video games for the title of all my posts. This has resulted in my blog ranking highly in a Google search for "Do you know who I am? I'm the man who's going to burn your house down", which is just wonderful. I found this out when looking at the referrals this site has been getting. Some of the more interesting (and non-SEO abusing) referrals have been for searches such as "nsurl asynchronous download image progress", "uisearchdisplaycontroller coredata" and "iphone development sqlite or core data". I don't claim to be an expert in any of these subjects, but I'm thinking of writing a few posts on how I did a few things in my project to help people searching for these subjects. There was a lot of work involved in understanding some of this stuff, so maybe I can give developers taking on the insane task of learning object-c in the future a hand.

Tuesday
May102011

Do you know who I am? I'm the man who's gonna burn your house down! With the lemons!

What's up world?

As I showed in the previous post, I completed the documentation for my project, an epic tome of a report. The last month has been a fairly stressful period in which I spent consecutive days in the same room typing away, while being constantly concerned that all the work simply wasn't going to get done. It was certainly close, but I can now happily say it is done. For those interested in reading more about my project than was represented on this blog, you can check out the two main portions of my report in delightful PDF form.

The Exaiminers Report - This is a short report designed to give a complete overview of the project, aimed at the non-technical reader.

The Product Report - This is a more in-depth report designed to explain, in unnecessary detail, how each individual component of the app works.

This Friday is Poster Day, where we get to show of the final product and get questioned about the project. That will draw a close to my final year project as a whole.

In this glorious post-project world we now live in, I'm moving focus to the last waining weeks of the semester. Last week I had to (quickly) complete two more essays for deadlines, and next week I have a presentation and a multiplayer flash game to hand in. The flash game is a team project and has been quite enjoyable after all this essay writing. Our game is going to be a turn based tank game where you play as either Maria Sharapova on the Soviets team or Sarah Palin on the Republican team.

This screenshot shows the development of the game itself. Ignore the rather unsightly grid, that is there for development purposes only. Currently each client can control their own tank (move forward, backward, rotate the tank and rotate the turret), and the movements of your tank is reflected on your opponents screen. The rocks littering the play field are also randomly positioned when the game begins.

Between all this I've also begun working on a little personal side project in the last couple weeks to get away from all this work. It's a website that allows you to build a list of the games you own and track your progression in them, how long you've played them, if you completed it, etc. It's using Giant Bomb's API so that I don't have to build my own game's database and is coming along nicely. I don't intend to really promote or pimp the final product, its really much more for my own OCD, but I will add sign up functionality should anyone else like to use it. If nothing else, its a fun way to get back into PHP and learn some jQuery. I asked Sputin on MSN for a name that I could get the domain for, and after batting ideas back and forth I eventually settled on "My e-penis.com". If you don't get the joke, its the fact gamer's have refereed to achievements and gamer score as your "e-penis". Its hilarious I know...

Speaking of video games, I really want to blog about them some more now that I'm starting to have some time. I finished Portal 2 (twice!) in breaks from writing my project documentation and this weekend I returned to Assassin's Creed: Brotherhood after a long break. Man is that game fun.

Of course, exams are just over three weeks away, so I'm not off the hook yet.

Monday
Feb072011

Don't answer to twinkle toes, its not manly!

Halló world!

I've done a lot of work on my project over the last few days in the navigation department, best described by these pictures!

At the bottom of the screen I've added the tab bar control that will allow the user to switch between browsing products and their three lists (wish list, shopping basket and collection). Currently the three lists are multiple instances of the same view that is currently empty as a place holder. In the browse section you have the ability to either browse all products, or browse by a category such as country, style, distillery or price range. Clicking on any of the categories takes you to a view where you can select an option within that category. Clicking one of those (or all products on the top level) takes you to the product list view, where the products for that section are populated.

I've broken up the product listings by letters of the alphabet, which you can jump between using the bar of letters down the right hand side of the screen (which really helps with long lists). On the product list view you also have the option to use the search box at the top to filter the current list of products by a search query.

Both this site, and this one were very useful in showing me how to break up the product list by letter and add the letter index on the right. I didn't end up following their exact implementations as they weren't quite fit for my purpose. Instead I used a single NSMutableDictionary which contained an array list of products for each letter of the alphabet. I then used an NSMutableArray to store all the letters the current product list actually had (there are only 24 letters in the all products list for example), so that I know what to display in the index and which letters to query the dictionary when building the list.

The first site also had a tutorial on how to build a search box, but after some more research I found out that in 3.0 of the SDK Apple added a UISearchDisplayController which basicly does all the work for you. They have some great documentation for this object over here.

All you have to do is create and add a search bar to your table view and then attach the search bar to the search display controller. From here everything is mostly handled for you and you can use some delegate methods to update the datasource of the table view for the query searched.

- (void)viewDidLoad {
    if (!self.tableView.tableHeaderView) {
        
        // Add the search bar
        UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 45)];
        self.tableView.tableHeaderView = searchBar;
        
        UISearchDisplayController *searchController = [[UISearchDisplayController alloc]
                                                       initWithSearchBar:searchBar
                                                       contentsController:self];
        searchController.delegate = self;
        searchController.searchResultsDataSource = self;
        searchController.searchResultsDelegate = self;
    }
}

In non-project news, the week before last I started learning how to build a proper WordPress theme. I've dabbled in WordPress before, most using other peoples themes or hacking a pre-made theme to my need, however it seems a lot simpler just to start from scratch. I've been the webmaster of the Final Fantasy VII Citadel for a little while now, but I've really neglected it due to other commitments. One of my biggest desires has been to move its static html pages into a content management system and generally modernise the look of the site, without loosing its look and feel. I took a look at a lot of pre-made WordPress templates, but finally accepted I wasn't going to find anything quite right.

I'm using some of the images of how the site used to look like back in 2001, 2004 and now as some of my inspiration to try and keep some of the look and feel. This is how it currently looks, although obviously there is still a lot to do. Feedback is most welcome!

Inspired by working on a new version of the Citadel, I fired up Final Fantasy VII on my PS3 and ended up getting 40 hours into it (I'm at the start of disc 3). It's been a long time since I had a working copy of the game (my disc one is fucked, so thank you PSN), and man did I forget how much I liked the game. I'm thinking of marathoning through VIII, IX and X once I finish this one, just for the hell of it...

Today was the first day of the second (and last!) semester of my University degree, so it really should be all work from here, but you gotta relax sometime right? Last week I (finally) completed a project I've been doing at work for the last few months (I built a stock ordering system for them, its not at all exciting), so I plan to do a lot less for them in the next couple months (except for my project of course) as we lead up to deadlines and exams.

Oh, I almost forgot; after two weeks I finally got my MacBook back from Apple (if you don't remember, the backlight was turning off at random). If you Google the issue it seems to be a common problem with an "inverter board" (an £18 part) which the Genius said was probably the issue when I took it in. When I picked it up they had replaced the inverter board (which hadn't fixed the problem), logic board and lcd, plus they gave me a new palm rest, keyboard and track pad (the second one in a year) because it was showing signs of getting the crack of doom again. In all a £18 repair became £650 including VAT. Thank God I got the student Apple Care for just £40. Including the palm rest repair last year, Apple has spent over £750 repairing a machine I only paid £800 for. I'm surprised they still like me...

Sunday
Apr252010

Hey mum, I'm on the internets!

Will build databases for food!!!It's been a while hasn't it?

I decided to make a fresh start with this page and moved it to a better platform (check 'em out here) with the intention of actually keeping it updated. I've been pretty bad at this over the last year, but I'm pretty sure it will work out this time. Let's call it an new years april resolution and never speak of this subject again.

So what's the haps chicken wing, as the hipsters would say? Well I've been working at this place since June and by Jebus has it been a train ride and a half. Among the many things I intend to talk about on this blog is the stuff I've been working on there (shameless shelf promotion if you like), but as a general overview it's been a blast. The peeps that I work with are highly motivated, great fun and I've learnt so much. It's certainly put a lot of things into perspective that you can't get in a lecture theatre and I certainly don't regret doing this placement year.

If you've come across this page without prior knowledge of me I guess I should provide some background so that you can become a better stalker. I believe everyone should have at least a couple quality stalkers and I don't think mine are up to snuff... I'm a guy from a little ol' town called Hastings (you may remember us from a famous battle that never actually happened in the town of it's namesake) in the UK (that places under the ash cloud of doom). I have a BTEC National Diploma in Computing and am currently studying for a BSc(Hons) Internet Degree in Computing at the University of Brighton (they conveniently have a campus right here).

As well as being a "web developer" (does that even mean anything these days? It's such a vague title... I don't really like it) I do many other things. To combat the issue of sitting at a computer all day I run when I can and train in the art of Kyokushinkai Karate. To resolve the issue of all that exercise I also love video games. They give me a chance to sit in front of a TV all day when I'm not at a computer.

Well this has been fun, maybe I'll update this page again before 2011! 

Only time will tell...