Software Engineering University

Introducing Dollar IDE – An Update on my Final Year Project

In the past few weeks, since the semester 1 exams in January, we third years have been blessed with some calm time without any exams to revise for or coursework to work on, just two days a week of lectures. During this free time I have been working on my final year project.

User Interface, Icons and a Name

As recently as two weeks ago I had very little to show anyone who asked to see my project due to it all being technical back-end stuff without user interaction, which was a shame as I’ve actually done a reasonable amount of work on it, however now I have developed some of the UI and finally have something I can ‘show off’.

My previously unnamed PHP IDE is now known as Dollar IDE, so called because of how all variables in PHP are denoted by a $ sign. At the top of this blog post you can see a fantastic logo which my friend, Harry Galuszka, who studies Graphic Design at Lincoln University designed for me.

The colour scheme I have chosen for the user interface and logos consists of various shades of purple,  an unusual choice for me because I don’t usually like the colour, however it is the ‘official’ colour of PHP, as you can see from the website, and it also fits in quite well with the design language I am using, which is based on Microsoft’s Modern (formally metro) ideas.

The program doesn’t contain any bitmap images, instead I use XAML vectors, and is built using Windows Presentation Foundation meaning that the program works well on all screen resolutions and pixel densities, including Apples famous “retina displays”.

The main code editing screen isn’t ready to be shown off just yet, but below you can see some images of the “Start Screen”, which is the first window shown to the user when they launch the program. From here the user can opt to create a new Dollar IDE project, or open an existing Dollar IDE project or stand-alone PHP file. The 5 most recent projects and displayed in order to allow the user to rapidly get back to work on their website or web-app.

Dollar IDE - New Project Information Validation
Dollar IDE – New Project Information Validation

An important aspect of the start screen is its ability to inform the user of any issues in creating a new project before they continue, as you can see in the above screenshot issues are denoted by a red circle with a cross in, and fields which are OK are denoted by a green circle with a tick in.

This as-you-type validation means that mistakes can be spotted earlier, thus saving the user time and the exact cause of any issues can be determined and displayed. It’s always annoying when you enter some data into a program only to be told its wrong when you try to save… and then not be told what is wrong with it, being forced to make an educated guess. Dollar IDE gives you no such hassle.

Git Integration

Dollar IDE - Git and GitHub Integration
Dollar IDE – Git and GitHub Integration

One of the coolest aspect of my new IDE is its tight integration with the git revision control system. The program can interface with any git repository, hosted either locally or on a remote server, and has additional support for repositories hosted on the popular GitHub service.

In the main IDE window, which I will show off soon, the user will be able to

  • See which files have uncommitted changes
  • Commit files and projects
  • Merge files with conflicts
  • Pull changes from a remote server

Other Progress So Far

Other than what I’ve shown you in this very quick preview I have the following features working:

  • Correct tokenization of the most common PHP tokens
  • Complete coverage of the tokenizer with unit tests to ensure program correctness
  • A source code editing window with colour highlighted text and line numbers
  • Project loading and saving
  • File associations (to allow project files and PHP files to be loaded from Windows Explorer)

What’s Left to Do

There’s still rather a lot left to do on this project, but fortunately there’s still around another 2 months to do it in. I’m now feeling rather confident that I will finish my product on time with all of my primary functionality and a lot of my secondary functionality implemented.

I will of course keep the blog up to date on my progress.



Modern Experience Development

Getting A Windows 8 Developer Account

Can you spot an issue with this web page? (Hint: Circled in Red)

For a few days now I have been working on porting Hull CS Blogs for Windows Phone 7 to Windows 8 Modern Experience (formerly metro) using the new WinRT API’s. In preparation for the final product today I registered for a Windows 8 Developer Account in order to give me access to the Windows 8 store.

This means I will be able to distribute and update my application through the Windows Store.

It’s pretty simple to do, and setting up a paying out account (to receive money from anything you sell) is very streamlined compared to setting up a paying out account for Windows Phone. To start the process click here, or if you’re a student and would quite enjoy getting access for free click here.


Modern Experience Development

Windows 8 App Excellence Lab

A few weeks ago I attended an App Excellence Lab which I had previously booked at the WP7 – W8 conference in London a few months ago. This meant a trip to Microsoft’s UK headquarters, which was an experience in and of itself. The headquarters is located in the Thames Valley Park in Reading, a plot formally owned entirely by Oracle. When Oracle realized they had no use for such a large area of land they sold it off to a holding company who allowed other tech companies to move in including Microsoft, Websense and Computacenter – creating England’s mini Silicon Valley.

My appointment was in building 3 of Microsoft’s campus and you can see the reception in the above photo. Once I had gone to the desk to get my security card – which allowed me to move around the building for that day – and had got hold of the wireless password (always important!) I proceeded to wait for my mentor to arrive and take me to the lab.

Once he did to I was shown to quite a nice office in the Microsoft Tech Center, where we worked though a tick sheet of requirements for the Windows 8 marketplace and compared them to what I had achieved with my application. I haven’t as of yet got any of the front end done, but my ideas all seemed to fit within Marketplace guidelines. To help me produce a good user experience, which is what the lab was all about, we had a look at some well designed applications together and worked on an improvement of the design I had worked on with Andrew Spooner at the WP7 – W8 conference.

After this we had a bit of a mini Question and Answer session in which I could ask any questions I had about Windows 8, the Windows 8 ecosystem and developing for both, I learnt a lot and would recommend an AEL to any aspiring Windows 8 Developer for this alone!

Once all my questions had been answered we discussed the next steps, which include a virtual App Excellence Lab once my application’s front end is finished and then hopefully I will recieve a token which will allow me early access to the Windows 8 store, well before general availability on the 26th of October.

As an interesting side note, the day I went for my Lab was the day all Microsoft Employees got an email telling them to stop the use of the word “Metro” in regards to the Windows 8 Design language. The news didn’t come out until the next day, but it seems there has been confusion ever since about what Windows RT apps are going to be called for marketing purposes. Personally I think “Windows 8 Experience Apps” is too long, and “Windows 8 Apps” will make no sense assuming they will be compatible with Windows 9. Similarly “Windows RT” isn’t exactly a marketing friendly term. The term I like to most is “Modern Experience App” or “Modern App”, shortened to “MX”, which is what Microsoft have called their own Windows RT app for OneNote. 🙂



So, I’ve gone ahead about bought my own custom domain for all my content and hopefully, in the future, a pretty impressive portfolio.

The site itself is hosted on Freeside, the University of Hull’s Free and Open Source Software Student Run Organisation, which is great because it’s free as in beer and free as in speach. This means there’s no cost to myself financially and I can physically access the server that hosts my webpages if need be, as the servers are in the Robert Blackburn building at The University of Hull.

As you can see from the above screenshot my user interface is heavily inspired by Microsoft’s Metro Design language, as made famous by the Windows Phone 7, Xbox and “Windows Codename 8” platforms.

So far I have pages for showing off my work – both applications and websites – as well as “about” and “blog” pages which are more about me as a person and potential employee.

As you will see if you head over to not all the functionality is there (particularly the Blog – which will be moved from here to there) and not everything is 100% done yet, but I’m working on it.

So, I’d appreciate any feedback anyone has.



University of Hull Windows Phone Camp

(Above you can see my Windows Phone 7 Version of Programming 1 ACW2 game Evil Squash – The first screen shows the set up page where players select the number of human and computer players – The second screen shows the page where users enter their name and select the name of the AI player they want to play against. The third page is the actual Game UI)

Today was good fun, it all started with a somewhat boring IT and Professionalism lecture however which was about Computer Misuse & Software Liability and Contracts. After this we had a two hour break in which I worked on my Windows Phone 7 version of Evil Squash, which you can see above. After this break, which included a few well earn’t pints of coke, we had a computer systems lecture about multi-theading in the context of SPARC architectures, which Dr. Mike seemed rather animated about…

Welcome to Windows Phone Camp
Welcome to Windows Phone Camp Slide (with motion blur, which I totally meant to add and isn't due to my lack of photography skills)

After Computer Systems Rob, James, Lewis, Louis and I headed over to Robert Blackburn Lecture Theatre D in which Ben Nunney and Joanna Tong were ready to present our Windows Phone Camp. The 2 hour or so lecture consisted of information on:

  • How to develop Silverlight apps
  • Information on the ideas behind Live Tiles and Hubs
  • How to get add polish to applications and get them Marketplace Ready
  • How to submit applications to the marketplace
  • Requirements of the Marketplace
  • Advantages and Disadvantages of Windows Phone
  • The Convergence of Windows, Windows Phone and Xbox
  • The Metro Design Language
  • Using Blend and Visual Studio Side by Side
  • Launchers and Choosers
  • Making money on the Marketplace
  • much much more I’m sure I’ve forgotten to write down
  • and most importantly “Witty comments” by Ben 😉

Once the lecture had ended we all walked on to RB-312 for Tea (or in my case coke) and some programming time whilst we waited for our pizza (paid for by Microsoft!) to turn up. In this time I added custom counter functionality to my Evil Squash Application. My users can now use a “CameraChooser” to take a picture of themselves or an object to use as their counter on the gameboard, pretty cool I think!

Tonight I’ve been adding to the game.

Thats all for now,

PS: HTC updated all their phones, including my model – The HTC 7 Mozart – with Internet Sharing. Neat.