I’ve been busy doing two things over the past week: playing The Witcher III (it’s awesome) and developing a WPF application for my dad. I originally built him a similar application years ago as part of my college course. The application allowed him to keep track of when he was offshore, and calculated his available days off and vacations for him. It was written in Java, and since I need to practice WPF, I decided to write a new one for him. I have chosen to call the new one “OffshoreCalCal” because it’s kinda like both a calculator and a calendar… get it?

A screenshot of OffshoreCalCal.

A beautiful screenshot of my WPF application.

So far, I have done the following:

  • Wrote a Python script to convert the old data to XML
  • Created classes to both load and save the data
  • Created the main UI using XAML
  • Used data binding to join the view with the view model
  • Avoided CodeBehind like the plague
  • Spent ages trying to get those little ellipses to show (when the text is too long)

I have yet to add a few things: buttons that do what they’re supposed to do, behind-the-scenes math stuff, a basic backup tool, an options window, some little dots of colour to help identify certain day types at a glance, performance enhancements to make the list load faster, and that dialog box that comes up when you try to close the window without saving. I’ve been at it for about a week (on and off), and I think I have made good progress and learned a lot from this. Hopefully another week and my dad can start using a beta version!

About a month ago, I thought to myself “Why am I sitting on my bottom playing games? I need to get out there and learn as much as I can about programming!”, and just a single month later, I have gained so much experience in PHP, MySQL, and CSS. However, there is still so much more to learn – especially on the Microsoft side of things. Pretty much every job these days is Microsoft this, ASP.NET that, so I am basically required to learn this stuff.

Today, I have begun looking into some of the newer Microsoft technologies. These include WPF (Windows Presentation Foundation) and C#. I have had absolutely no prior experience with WPF, but I have used C# before during a temporary job. The best way of learning is by doing, so I am going to use these Microsoft technologies to create an application.

I am going to try and build my dad a new version of an offshore calculator thing I wrote for him about two and a half years ago. The old one runs in Java, and while there’s nothing wrong with it, I believe I have gotten better at programming in general over the last two years. Additionally, I will be able to add more features and improve those that are already there. I might even be able to hook it into a database and have some proper storage instead of just using a text file. I hope my dad will be happy with it…

I’m a little late with this post, as I was really tired after two days of hard work at CTC5 and had a good 12 hour sleep. Anyways, after the doors were opened, we all got back onto our laptops and continued with the development of our projects.

My team began working on getting more jazz musicians into XML format and then into the database. I worked on adding more tables to the database (separating the musicians from their instruments) while other team members converted the data. At the end of the day, we had nearly six thousand musicians (out of the total nine thousand) in the database, and a user interface design developed by another team member. I also worked on creating a PHP front end and API, and while I didn’t get everything finished before the end of the event, our team did manage to create a functional prototype.

Other teams worked hard on their projects too, and all of them gave some great presentations. It was awesome to see how fast development can be when a good team is put together. I learned so much about MySQL, PHP, and Python in the process, and I’m sure everyone else at the event learned something new too. A couple of the ideas of other teams have shown some real potential, and could be picked up and worked on by a larger team with more time and turned into something brilliant.

I would like to thank the event’s sponsors: The University of Aberdeen, Aberdeen City Council, Fifth Ring, DANS-ON, and Eventifier. They helped pay for the food and drinks, and provided us with useful tools to help develop our ideas (such as Stattys Notes and marker pens).

Today, I attended a local hacker/developer weekend meetup event at the University of Aberdeen. This is the fifth iteration of the event, the previous one being around 3-4 months ago. Each time, there is a theme that the developers are encouraged to stick to. This time, it’s culture.

I arrived nice, early, and soaking wet due to the rain (which thankfully cleared up throughout the day). After a quick introduction, we began creating ideas around the theme. The main ideas that stuck out were a calendar system for arranging multiple events and ensuring they didn’t clash with each other, and an interactive music project involving MIDI. One team is using Unity to create a virtual version of Aberdeen and discover the past of our streets. There’s also an Oculus Rift floating around somewhere – I don’t know what that’s being used for yet (perhaps the virtual Aberdeen thing?).

The team I decided to join were working on creating a database of jazz musicians. Everyone got some jobs, and I was tasked with creating a Python script to import an XML file into a MySQL database (which I also created). I am also working on the PHP side of things – creating a front-end for users and an API for further developers.

Other team members are working on converting the unstructured Word document with the details of the musicians into an XML file for me to use. This is proving to be troublesome, but we’ll all be back together tomorrow morning and afternoon to do some additional work on the project. If any of you happen to be reading this, see you tomorrow!

Still no job, so here I am doing more with my theme. I’ve added in the portfolio page now with some nice customization options too, including some randomly coloured portfolio blocks (when the pages don’t have images assigned to them) and an awesome library that allows me to have multi-line text overflow ellipses that no one will see because everyone uses screens with ridiculous resolutions nowadays! I also fixed a couple minor things mentioned in the previous post.

I have added a portfolio section to this site, go check it out if you want to see what I’ve been working on. Only one thing there at the moment unfortunately, but with time, that section will grow. I’m going to start work building a 3D printer soon, that’ll be going up there. I might also stick some of this theme development stuff there too, since I have spent a long time on it.

I have deployed an early version of the theme I am developing to this site. There are still issues (for example, one of the pages is using Bootstrap responsive grid parameters when it shouldn’t be). These issues will hopefully be fixed soon.

I’ve been busy implementing the WordPress customization API into the theme, so that I can change various things such as colours and text that would otherwise be hard-coded into the site. So far, the navigational bar at the top of the site, the posts/pages, the comments, and the footer are all able to be customized.

For those who are interested, the code is available here on Github. Don’t expect it to be amazing; I still need to work on it!