I’m now planning working towards my ‘Microsoft Certified Solutions Developer’ (MCSD) certification. This will mean taking my next exam ‘Developing ASP.NET MVC 4 Web Applications’ in May time.
Lots of study to do, but I’m looking forward to it
I’ve also been discovering the nuances of the different web-browsers. Chrome and other webkit based browsers are generally my browser of choice. Mainly due to their rapid adoption of rapidly developing standards and also the user interface design which is minimalistic and easy to use.
Although I haven’t even taken the 70-480 exam I already have my eyes set on the next goal of taking the next two exams which would get me the ‘Microsoft Certified Solutions Developer (MCSD): Web Applications’ qualification.
Study continues …
Some of the resources that I am using to help with my studies are:
- http://www.microsoftvirtualacademy.com/tracks/developing-html5-apps-jump-start – This is the recommended Jump Start course for the 40-780 exam. It is very heavily Windows 8 centric although it’s a very good base of information. I would be careful here though as some things which they discuss are not yet avaliable in most browsers or at least not how Microsoft implements them. An example of this is the flex-box and the grid box. At time of writing the flex-box does have support in other browsers but behave very different to the Microsoft implementation. The grid box is only implemented in IE10. Also the Error object is implemented very differently in IE10 than other browsers (I checked Webkit and Firefox).
To give myself interactivity and to let me rapidly prototype things I am using the open source editor Brackets.io which is really starting to come along, easy to use, configurable and intuitive. It also works exceptionally well with Google Chrome so I can very easily change HTML & CSS files and see the results in real time.
Some things which also dawned on me was with getElementById and querySelector calls. So to get the element with id=”myElement” would be getElementById(“myElement”) or querySelector(“#myElement”). The querySelector looks great and is used by quite a few people, but I was wondering about performance. Taking a look at a few projects on JSPerf demonstrates that in many cases querySelector is 58% slower than getElementById which is staggering.
Also in the Microsoft Jump Start they talk about the NodeList returned by querySelectorAll is live, so if you add a new element to the page then the NodeList should automatically update with the new element. I tested this on Chrome and found that it doesn’t, and that I needed to call querySelectorAll again. I would therefore be very wary about some of the content of the Microsoft Jump Start as not everything they spoke about will work on another browsers.
The studies continue.
In the name of creativity and plan curiosity I’ve been looking at lots of different things recently. Quite simply anything which caught my eye or seemed interesting.
WebGL – This has been around for a couple of years now and is simply 3D graphics for the web. Up until recently the only real way to get 3D graphics in browser has been to install a third party plug-in or bloatware software which in most cases doesn’t work and if it does will only work for a very small fraction of devices. WebGL is an open standard being developed by the Khronos Group and supported by Google (Chrome), Opera, Apple (Safari), Firefox a few others. With no great surprise Microsoft Internet Explorer doesn’t support it (though what does it support really?).
WebGL is something to get excited about, and their are lots of people currently developing for it and creating technical demonstrations (see Chrome Experiments and Three.js). I’ve recently started learning how to use WebGL from the book ‘WebGL: Up and Running’ which does a little bit on WebGL and quite a lot on the WebGL wrapper Three.js library. WebGL is development is certainly not an easy one to learn (much like any 3D or OpenGL programming) but there are fantastic libraries such as Three.js which takes quite a bit of the heavy lifting and help to explain some of the more difficult concepts.
Windows 8 Modern UI – I decided to take a look at developing for the new Windows 8 UI, mainly to find out what was involved, how easy / hard it is and to create a comparison between it and Android programming. As this is quite a large change to traditional Windows programming there is a reason amount to take in. Though it works heavily with existing Microsoft programming concepts such as XAML and objects and is generally fairly easy to navigate. I’m still not sure about the new Windows 8 probably as it’s such as major change to a operating system which hasn’t really seem such as dramatic change since the introduction of Windows 95.
Personally I’m sticking with Windows 7 as my main dev environment, why? Well my general philosophy is don’t hide anything from the user, but to show things when they need to be shown. Windows 8 hides a lot, with hidden menus around the screen I can see how it works for tables but it doesn’t work for desktop. I’m one who works in Virtual Machines quite a lot so you have to be quite precise if Windows 8 is on my right screen, the host Windows 7 on my left and I want to click on that precise point in the bottom left to bring up the start menu or top right to bring up this menu, or top left to bring up that menu …. Yes I could just use the Windows key but that not the point. Simply it’s bad design.
Hack Design – I may be a software engineer but I love design, even more I love good design. I also like to play with pens, pencils, paper, scissors, post it notes, glue and all those things you used in primary school. I also love to draw as a hobby at home, I may not be up to some peoples standards but I love it. Hack Design is a web site devoted to engineers, programmers, hackers or anyone who wants to move towards design or at least what design is, what it involves and how to start doing it. Hack Design is a weekly digest which uses text, pictures and videos to talk about and explain design, and design ideas.
These are just a selection of some of the top ones I’ve been looking at. In addition to these I’ve also been looking more into Node.js, Underscore.js, Backbone.js, Phantom.js and many others.
Software updates are increasingly becoming the vogue. It almost seems like each week there is an update for the operating system, software or services running on your computer or mobile devices. For someone who uses computers every day for work software updates are one of my biggest pet hates.
Starting up a piece of software to find a dialog box insisting upon allowing it to update itself to the most recent release are intensely annoying. I started the application for a reason to perform a task or check information, time is precious but it instead insists that I wait for several minutes whilst it downloads then installs the updates. In the meantime time is ticking away, including my patience.
The worst of the worst is Microsoft Windows Update, I use Windows 7 though I’ve had this problem with all older versions too. The default setting is to download and install updates automatically, it will also restart your computer automatically too. So all those important documents and website you painstakingly found and had open on your computer, or that download which had been going on for the last hour due to a slow internet connection are all gone in the time it takes to get a cup of tea. Instead you get a new shiny icon appearing on your desktop for a piece of software you never use, or ever needed. This has in the past cost me dearly and set me back several hours whilst I refound or had to reset up the computer.
At the end of the day a computer, mobile or other devices are a tool for the user. The user is king and their data is important. A lot of automatic update software seems to forget that, instead putting the focus on getting the task or the update software completed, taking the user out of the loop and putting the user at an inconvenience.
I would love it it software development companies would take a leaf out of the book of companies like Google. Google Chrome is constantly being kept up to date, but I never know when this is happening. The Chrome updater puts the user at the centre, performing updates when it will inconvenience the user least.
I think it’s about time software puts the user back in the driving seat, realise that software is merely a tool and that data is important.
I’ve been watching Raspberry Pi for the last year and I’ve been interested in getting one for a while. Today was my first day with the Raspberry Pi so I thought I would share my initial impressions. I bought the Raspberry Pi from RS and as expected due to demand I had quite a long wait between ordering the board and final delivery.
I ordered the board to include a power supply, blank SD card (they were out of stock of the other SD cards) and HDMI cable. I went to the Raspberry Pi website and followed the instructions to get the SD card setup and the board booting. Although I’m a professional in computers and work to bring up operating systems on hardware I decided to look at this from the point of of a novice. I think if I were a novice setting up the card I would be a bit frightened, the instructions in my view seemed fairly technical and I had to go to several places to get the image and the image downloader, it wasn’t all in once place as I would have expected.
I booted up the Debian image to be presented with the black screen console asking for a password. Panic!! If I were a novice this is like a massive wall standing before you, where do you turn? A lot of people reading this may say oh but you just read the FAQ/Wiki/documentation but to a complete technophobe who is trying something new this is a bit scary. To eBay it goes!
I got the user name and password and typed them in, oh look another command prompt! Searching around finally typed in ‘xstart’ and booted into a fairly dull, uninspiring terminal style environment. All in all at this point I wasn’t very inspired, and after a long days work decided to give up.
Some time later I decided to try and tackle it a bit further and instead see if I could get XBMC using Raspbmc to work. Well of to the downloads section finding a big banner warning you off as the feature wasn’t ready for release, didn’t work, but for some reason was there anyway. From a website design point of view if you know a feature on your website doesn’t work don’t put it there. People have a lot to do and tend to scan through websites looking for the information they want. If you give them the option to click a button which gives them want they want they’ll press it. Truth be told I didn’t read the banner, so I went ahead ran the installer and it didn’t work. As I said if the option is there expect it to be pressed.
Also what I don’t like about the Linux community is that it is seems very negative full of people who think they’re clever and who will flame at you as soon you ask a simple question. This tends to put me off Linux ‘a lot’ and why I tend to steer clear of it, so the comment ‘We on the forums are sick and tired of people complaining that the installed was stopped at “Install will continue from here”’ didn’t put me in a good mood as quite simply the option shouldn’t yet be available.
Overall I haven’t had a good experience, and I still haven’t seen anything which would inspire me to recommend it to anyone. To give the Raspberry Pi teams their due this is still very early days, and there is a ‘long way’ to go before it’s ready to be put in the hands of school children or technophobe parent buying one for there child.
I’ve taken the plunge and bought myself a Wacom Bamboo Touch and Pen graphics tablet (CTH-470). The conclusion, it’s amazing!
The Bamboo tablet was very easy to install and came with lots of tutorials talking over all the main features of the graphics tablet. After about half an hour the graphics tablet is very intuitive and I found I didn’t want to put it down.
Over Christmas I was bought Photoshop Elements 10 – you can get some fantastic deals on Photoshop Elements so it’s worth looking out for them. Photoshop Elements isn’t quite Photoshop but for someone just starting out with digital illustration or photo editing it’s perfect and well worth the price. I’ve used Photoshop demos before so the user interface wasn’t too much of a shock.
One of the main draws which the tablet has for me over using a notepad and pen is that I like to learn by tracing. Using the tablet it’s really easy to upload an image, add an overlay over the top and start tracing the image. It’s quite good to quickly get the feel of shapes and much easier if you make a mistake than paper (you can just hit the undo button rather than scrabbling for the rubber). Though I’m sure many purist artists would say that it’s cheating and that I’m missing vital lessons by taking this route, in my defence I’ve tried this route before and keep on getting dishearted and giving up, so this is just a different approach to encourage me by trying it a different way.
Over the next few weeks I’m planning on learning how to use the tablet and improve my drawing. I’ve even come up with a new ideas for a slightly different art related blog, so stay tuned for how I get on.