Categories
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 PHP.net 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.

Danny

 

Categories
Web Design

DannyBrown.net – Restyled and Rewritten

As some of you may have noticed over the past few weeks dannybrown.net has been updated — not only has the style changed, but so has  much of the content. Previously my old domain, dantonybrown.com, showcased a portfolio, contact information and linked to this blog, but did so over a number of pages. Then when I bought dannybrown.net I got rid of the old site and simply redirected the domain to this blog. This new website showcases everything you need to know about me at a glance in one, simple to navigate page.

Planning

When I was in the planning stage of the project I decided very early on that I wanted the site to work just as well on mobile devices as it would on desktops. This is partly because an ever increasing number of people use their smartphone as their primary web browser and partly because I envisage many of the sites users to visit it after I give them one of my business cards, presumably whilst on the move or sat in a conference on their mobile device.

Whilst planning I also contacted my friend Harry Galuszka to get some professional graphic design done for my logo and some of the images I use. I’d like to thank him for his help 🙂

DannyBrown.net Tablet View
DannyBrown.net Tablet View

Development

The website is written in HTML 5 with CSS 3 providing the responsive styles and JavaScript providing some of the interactivity. Whilst developing the website I tried to keep everything really simple, and human readable, without producing really bloated code. I feel I achieved this aim because the entire website is only 120 lines of HTML, 270 lines of CSS and a few libraries.

I used Notepad++ as the source editor for this project, due to its fantastic syntax highlighting, and a Custom-built Linux Virtual Machine on Windows Azure as the host, which I FTP’d my files to, to test them in action.

DannyBrown.net Desktop View
DannyBrown.net Desktop View

Testing

As part of a campaign to get developers writing code that is well optimized for internet explorer Microsoft have started giving away 3 month subscriptions to a fantastic service called BrowserStack. BrowserStack allow you to test your code in Virtual Machines hosted online, allowing you access to devices and operating systems you might not normally have access to. Below is a screenshot of me testing my website on an iPhone 5, a device to which I would normally have no access:

DannyBrown.net iPhone Emulator
DannyBrown.net in an iPhone Emulator

Using this service I was able to test my website against, and make changes to fix layout issues in the following Browsers:

  • Internet Explorer 6/7/8/9/10/11
  • Firefox 3.5 onwards
  • Safari on Mac
  • Safari on iOS
  • Opera Mini
  • Opera Mobile
  • The Android Browser
  • Chrome for Android
  • Google Chrome

On the following OS’s

  • GNU/Linux
  • Windows XP/Vista/ 7 / 8 / 8.1
  • Mac OSX
  • Android (tablets and mobile versions)
  • iOS (iPads and iPhones)

Therefore ensuring I had tested my website on a wide variety of hardware. Its a shame to see that Windows Phone and Windows RT is not currently supported, but this was not too much of an issue as I own devices which run those operating systems myself.

The Future

The website is now installed on a shared Website instance on Windows Azure, in future I will be restyling this blog to fit in more with my website, however I think I will keep it hosted in WordPress.com as I like the fact that they automate backups and installation of new features and bug fixes to the WordPress platform, saving me a few jobs.

On the site itself I think I will be adding more information about my projects, and my education — e.g. module grades and links to download or view software made as part of coursework — soon.

Thanks for reading,

Danny

Categories
Life

A Saturday Night at Sarries

(A Worrying Image…Shaun, Jess and I impersonating the V for Victory Hand Sign Harry Galuszka uses in all his damn uni pictures ;))

Today I spent at home, playing Minecraft with Michael (I seriously still don’t understand it) working on his website and watching TV with the family for a bit, as well as eating some tasty, tasty home cooked bacon. I like when I dont have to cook for myself :P. In the late afternoon I met Jess from work and we had a meal at the Harvester in Hockliffe who seriously need to work on their portions of chips (more than 4 or 5 would be nice)

As you can see, tonight was great fun as is every night that has even a dashing of Snakebite. We spent the whole night in the Saracens Head in Dunstable because our usual drinking hole, The Old Sugar Loaf, is under renovation and closed for a few weeks, this meant that the Sarries was the most packed I’ve ever seen it, to the point where I could only get in once someone had left for Health and Safety reasons.

We drunk probably too much before heading to KFC for a snackbox — my first in 3 months (I was previously an addict :P) and them stumbling back to Jess’ house. Good times.

Danny