Tuesday, 7 December 2010
Google quite possibly now owns my soul... [Part 1]
In this time I've not carried my laptop to work, instead just using the phone to provide my media consumption (video, audio - both music and books, email checking, surfing, etc.) It's not that the phone does any of these things particularly better than a laptop, it doesn't, the larger screen and keyboard still rate supreme, however for convienience it's a lot easier to transport and use on a crowded train or tube.
Primarily however, it is a consumption device, much like an iPad or other tablet. As a result I fully expect the laptop to be making a welcome return on occasion as I try to actually create content. It's not that either a smart phone or tablet cannot do that, indeed for some applications they may be preferable, however their usefulness when, for example, using Eclipse to code up a small Java application or test, is obviously limited, crippled if you will.
The small need I felt to get a tablet has almost entirely vanished now, if it ever existed, now such a device would be merely a curiosity or just another toy to sit and gather dust within months. That, at the moment is equally applicable to both iOS and Android tablet devices.
The phone is in no way a tablet, but it is, for me at least, filling the exact same uses I would see a tablet covering.
Now if only the price of 32Gb Micro SD cards could half, I could upgrade the 8Gb card that currently lives in my phone and carry around a decent library of music.
Thursday, 11 November 2010
So that's decided then.
So, with a clean phone i powered on, but still I was usually getting nothing. This was with the SD card removed and nothing installed, essentially it was the stock rom.
So it appears the root of many of my problems with the phone have been down to the slow death of the touch functionality of the screen. it's almost certainly a hardware issue.
Fortunately this happened about a week before I was eligible to upgrade to a new phone and tariff, so I loaded myself up with my trusty old N95, and played the waiting game until the magic date arrived. Last Monday, armed with the deal I wanted I called up T-Mobile customer service. I told them what phone I wanted, we analysed my usage patterns, and they offered me a deal better than I had found myself, so I've accepted it.
So now I'm waiting for them to get stock in of my new phone.... I finally went for the HTC Desire HD, although it was a close run thing with the Galaxy S until the last minute (if T-Mobile had stocked the 16Gb version instead of the 8Gb version then I may have gone for that instead).
Although I arranged this over the phone they did tell me if I found a T-Mobile store with stock I should get the unit from there, and Surrey Quays expect some in tomorrow, so I could have two new toys to play with over the weekend - the new phone and hopefully the Kinect will on Friday.
Is it Christmas already?
Friday, 8 October 2010
Windows Phone 7 – Keep up the good work.
My Windows Mobile 6.5.3 based HTC Touch Pro2 is driving me insane at the moment. I'm not due to finish my contract until the end of November, but almost every day is going to be a strain, assuming I don’t just upgrade now, which I could do since I’m probably going to get something SIM free away from a contract anyway.
Strangely after all I’ve said previously, for a while this week I was basing my delay on waiting until Windows Phone 7 is released next week, just to see. Surprisingly the thing that put me off again was reading an article about application development on the device, and how locked down non-Microsoft apps are in this initial release. As an example the Twitter client can’t even get access to the camera or photo album. Good for security, bad for functionality.
Version 1 teething troubles, I’m sure, but they are there just the same, so the operating system must be judged on them. Back in the box for now Windows phone 7, perhaps I’ll see you when you can play with the bigger kids.
If I had to choose a phone to buy today I'd probably go for an HTC Desire or a Samsung Galaxy S, both great little Android phones. The fact Android is under assault by legal terms from Oracle, and Android vendors from Apple and Microsoft worries me only a tiny amount. The Oracle charge seems to be the greatest threat (the others are just play fodder for patent holders).
To a certain extent I sympathise with Oracle, after all they do now own and develop Java, so some licencing would only seem fair. Then again I just know what I read, and having worked on the periphery of media even I know how the truth and reports rarely overlap to and great extent, although I do like to think that for the most part the technical media is more accurate than The Mail.
I'm waiting to get my grubby mitts on an HTC Desire HD or Desire Z, and possibly a look at Android 3 if I can hold out that long.
The Desire HD may be out of the game as the screen is possibly too big. It’s like a tablet device (which would save me buying one of them) but it doesn’t particularly look like it will be comfortable in your pocket.
As for the Desire Z, why not keep the 8MP camera of the HD? Not the end of the world, but frustrating.
I need to see them both before any decision, then weigh up the pricing.
On a related note, I did fancy a Kindle, I am a big fan of eInk screens and I love the way it stores your place in a book between devices, so I could read a book on it from both my laptop and a Kindle and keep my place.
Having said that I’ve been using the Android Kindle application today, and I think for the short periods I get to read these days a backlit screen will be bearable (and it also keeps track of your position). Plus the PDF rendering in Android will be much better than a Kindle I’m sure (must try it), an important consideration with the amount of PDF files I have in my collection. Lastly the £109/£149 I save by not getting a Kindle will help the phone fund nicely.
Of course, for reading the Desire HD screen will be better than the Z…
Gaah!
I guess I’ll just wait and see them in the flesh.
Now, about that Galaxy S...
Is Java Hot Or Cooling?
If you want to take a geeky 40 minutes out at some point I recommend listening to the podcast at https://www.ibm.com/developerworks/mydeveloperworks/blogs/scott/entry/java_still_hot_or_losing?ca=dwpodcastall&lang=en
It give a very good and what appears to me to be unbiased overview on the future health of Java.
Thursday, 29 July 2010
eBook Revolution
A few years ago when the first eBook readers starting hitting the shores of the UK I was mildly interested. I think the main model catching the attention of the media was the Sony PRS-505. It was fairly impressive from a gadget point of view, but when I tried opening a PDF of a book I was reading at that time (password protected) it failed to open. In one stroke that signalled the death of my interest in the device.
That was probably about three years ago, and since that time I've kept one eye half open on the eBook reader market, but the high price of books and limited availability has always meant that I've never really bothered considering getting a device again, it's more been a slight interest in the technology.
Today I read that a new model of the Kindle is being launched in the UK (i.e. from Amazon.co.uk) directly with a 3G and Wi-Fi only version available, which has resurrected my interest once again. There's a few books I need to buy, and even more I already have as PDFs, so do I take the plunge for situations where a laptop is less than ideal?
Two things remain that are putting me off:
1. eBooks are still too expensive. Amazon are discounting at the moment, but as with printed books the deals will slowly fade over time I imagine. Looks like the publishers learnt nothing from the mistakes made by the music industry.
2. I still don't know if all my PDF files will open in the reader.
That said, there is a wealth of free books out there, so that may help sway me. The other driving force is the fact that many of my text books weigh more than the laptop, so it's not nice carting them around.
Either way, it's not going to be on my pre-order list, so I have time to save and read some reviews.
Is now a good time to start bleating on about touch screens again.... yes I know you can get the kindle reader for the iPad, but another selling point for me is the e-ink screen. There's also the price.
Sunday, 25 July 2010
When Did Everyone Turn Against Stored Procedures
I forget when I first started working with Stored Procedures in databases, but it was probably back in 1996 when working on the Teletext Commercial System.
Back in those days we developed against Microsoft SQL Server (as far as I can remember this was version 6) and much of the business logic and database integrity was coded in SQL. I remember we had prefixed the name of the stored procedures with 'sys_'. That wasn't my choice, and I quickly discovered that only the in-built system stored procedures should be named as such. Still it was a small point and since it wasn't my choice and had no detrimental effect it was, by that time, best to leave alone. Regardless, this was a client/server application, and the stored procedures suited us particularly well.
My next position was on a multi tier project (Delphi-Java-Sybase) where we used stored procedures primarily for database integrity and serving the middle tier objects for data retrieval and persistence (that's being a little unfair, it did more than that, but this was the primary role).
On this project 95% of the business logic was stored in the middle tier. By contrast the database used stored procedures, via metadata enabled objects, to quickly retrieve and persist data reliably, and safely. The system, whilst not perfect, was a lesson in good design and worked extremely well. Stored procedures were used in many other places where the data was manipulated (reports spring to mind), after all, if you are relying on retrieving masses data to perform a task, sometimes it's more efficient if (at least the preliminary) processing is done near the source of that data without relying on factors such as network bandwidth getting in the way. Also, the fewer bits you have clogging up the network, the better, especially to a distributed user base and infrastructure.
The stored procedures may have also helped with replication, I don't clearly remember as it was a long time ago, what I do know is that it seemed to work very well, and whilst there was always debate between some of the middle tier developers and the database lead as to who should be doing what, mostly it was harmony between all.
In my next role I initially worked on a system where virtually all the business logic was contained in stored procedures. It was hideous, but this was mainly down to (in my opinion) very poor stored procedure design, and the fact the stored procedures themselves were written in an awful mid-way language (not quite SQL, but not quite any other programming language you've seen before) which was then compiled into very poor SQL code (imagine a stored procedure where the first several hundred lines may be blank lines and you'll get the idea).
The stored procedures in this code could run to thousands of lines and certain members of the team relished the fact they were very nearly un-maintainable. With better organisation (we call it refactoring these days) this diabolical situation could have been eased a little, the bad code wasn't entirely the fault of it being implemented via stored procedures.
This is of course my perception of things, although I doubt many would claim it was good.
The next company I worked for almost had a fear of using databases. Initially this upset me, but after a while you go with what you're given and don't rock the boat (again I say "if it works well enough, leave it alone"). We're talking here a situation where we were storing XML in the database as raw text. Yes, you did read that correctly. I'm going to almost certainly be unfair here (by which I mean I *may* be giving a misleading impression) by saying that one of the primary reasons given to me was that changes could be made to the code, without routinely having to alter the database schema. That's just lame. If one relies on a change in the other then so what? Mind you, this is the same mentality that said procedures running to several pages were "self documenting" and that comments in code were bad as they quickly become out of date (so surely part of making a modification is making sure they are updated... oh, never mind, I've posted about that before).
Essentially (and to cut a long gripe short) the project had moved from Paradox, so the team lead, in my opinion was both unaware of what databases could do (and how well they could do them) and was just plain scared of databases.
In my current position I'm working with, what appears to be, a good codebase. It's Java running against an Oracle Database. One thing has struck me though (and bear in mind I'm new to Oracle) is that I can't find any stored procedures?
I know the code uses Hibernate, with which I'm largely unfamiliar, so this may be why, but as an uneducated outsider I'm a little surprised (although not entirely saddened). If the implementation doesn't need stored procedures then that's fine (but where are the triggers? I know a lot of thinking sees these as evil too).
Oh well, new code, new concepts. That's what it's all about. I look forward to finding out more. Perhaps I'll search the web in a moment for Hibernate introductions.
To close with an aside, many projects are reluctant to use stored procedures as it ties you down to a particular back end technology. That's fair enough for some projects, for example I've written plenty of applications that needed to function against whatever back end they were placed against. The amusing thing is however, in the case of the Teletext system I wouldn't be surprised if the stored procedures outlived the application itself, which was coded in Delphi. I imagine that was converted to C# or Java some time ago (if it's still around). Of course I may be wrong, I've not been back since late 2000.
Friday, 23 July 2010
I wonder how this will pan out...
Well, I don't think Microsoft will be loosing much sleep over it, but it appears that two unrelated situations mean I'm going to start looking into developing Android applications rather than for Windows Phone, at least in the short term, allow me to explain:
The first culprits involve the decisions Microsoft are taking with the direction of Windows Phone 7. It started off with the removal (or is it actually more accurate to say omission?) of Cut and Paste functionality. From articles I've been reading recently this is down to a lack of time for getting it developed by release time, rather than not knowing how to implement it. As a friend from Nokia commented "What, were they worried they could do cut and not paste in the time available?".
The lack of C&P was originally sold to developers as a conscious decision ("A phone doesn't need C&P" - Really? Then why write Office Tools for it?), now we're told "it's coming later". Not the end of the world, but frustrating. Still, I agree it's better to get it right than put in something that's buggy or badly designed and then be stuck with it forever more.
The killer move, for me, is the apparent lack of any way of side-loading applications. As is the case with iOS, you get your applications from Windows Marketplace or not at all. That's essentially shut me out. It's all very well running anything I code in a desktop emulator, but then I may as well have just written a desktop application. If I can't actually get it onto a phone (and possibly those of my friends) what's the point? This is the number one reason why I've avoided Apple phones all this time.
Then there is the work related chain of events.
When I started out at my previous job the plan was to move into C# (as I believed the role required, it's certainly what was advertised and what I interviewed for). Previously I had been working in Java but I was happy to move to C#, it's a great langusge. Being a Java developer a large personal application I had been working on I was also written in Java. When I "moved" to C# I started porting my code over too. Doing such things works as a good aid in getting to grips with a new language or language features.
Now I'm going back the other way to Java as the primary language in my work role, so guess what else I'm now planning on doing? [Moving my application back to Java]
Here's the killer: Just as I was hoping the C# code would allow me to share core components of the application between Windows, Windows Mobile and Phone, and possibly web sites, it turns out that the primary development language for Android appears to be Java.
So now Java potentially gives me access to Android Phones, The Android OS (for Laptops, Slates, etc.), and with a little work (hopefully not too much) Windows, Linux, MacOS, possibly even MeeGo. Oh, and I believe web servers can also run something called servlets too. Oh, and just for fun, the Windows Mobile phone I currently have includes Java too... oh, and I know S60 used to run Java. Wow!
The killer which I'm brushing over is obviously that there will be an incredible amount of work to customise the user experience and display for each system, possibly this could be the lions share of the work, but I do at least take some comfort that at least some of the core business logic may be sharable between systems.
Looks like until my priorities change again this is the logical route for me to get back into Java in my spare time above the demands of work.
So now the new laptop has arrived one of the first things going onto it will be a shiny new install of Eclipse and the Android SDK. Oh, did I mention that's all free? That's possibly a little unfair a comparison, the Express versions of Visual Studio are excellent (that's one of the downsides to all this, I find the Visual Studio IDE an absolute joy to use. For Java development I prefer NetBeans, but since I'm on Eclipse at work, and most of the Android documentation references Eclipse I may as well use that).
Will you ever see any of these fruits of my labour? probably not (almost certainly not), but the point is the more I play, the more I learn, and as long as some of that is relevant I end up getting something out of it over and above the hobby side.
Now, of course, I'm reliant on Oracle not screwing things up with Java (well, no more than Sun managed at the very least).
Fingers crossed.
Thursday, 15 July 2010
Testing Times
Well, it's week number four in my new job. i have a desk, a machine and I'm just about set up with my development environment. There's a few things I've not been briefed on or covered yet, some of them quite basic (like how about giving me a Jira account, that may be useful soon, or on what branch do these guys do all their development, surely not main_latest all the time?!!)
So what have I achieved so far?
Well, not a lot yet, and it's starting to bother me. I've so far been given a single 2 part task with the aim of speeding up the build tests:
- Go through a bunch of JUnit tests and remove anything not testing actual business logic (so for exampe if its a persist or retrieve operation, take it out).
- Investigate getting the JUnit tests to run in parallel.
So I spent just under a day looking at a select bunch of JUnit test code trying to decipher what was and wasn't a business logic test. Sounds quite easy, but since a lot of methods are masking non-business logic, it's very easy to leave them in. Similarly, what looks like a persist operation may be an actual calculation of one variety of another. Then you have the methods that call both responsibilities, or rely on persisted data to pass. It's not as easy as it first looked, especially on an application with which you are not familiar.
The upshot of all this? I came to the conclusion that there probably wasn't any business logic being tested in the set of tests I was looking at. I was, as you might imagine, uneasy with this deduction, it felt wrong and I couldn't be 100% sure my findings were correct, however when I returned to my "mentor" for this task he didn't seem to surprised and commented "I've skimmed over this myself and I didn't see anything leap out either."
Oh thanks.
Actually one thing that did amuse me, I had flagged up one test as possibly being business logic, however as my mentor was looking into this I noticed a section of code that clearly suggested otherwise, so at least I beat him to that one.
With that task out of the way I started looking at making the JUnit tests run in parallel. A little research on the web revealed what was needed (including a version of Spring that's still in RC status). Undeterred I created a small project with a bunch tests to try this stuff out, and sure enough it worked as I expected (albiet without a hint of Spring in sight, unlike the real project). So how did it go once I started applying this new found knowledge to actual project... well I've been on it a week now and I'll be sure to let you know what I find when I finish (if you ask nicely).
I've been hit by numerous issues with my development environment, and on the odd occasion when things do work as expected, a run can take up to 26 minutes (usually closer to 19 for a full run - at least for what I'm covering). The worst thing is I'm only making changes to a handful of POM.xml files and so far the results show no avantage at all. At this rate my findinge will be: "Hey, I've spent over a week and can't get any speed increase". That hardly makes me fell very good and I don't actually feel I've achieved anything yet. Especially when for the most part my day consists of the following routine:
- Start machine. Spend 1 to 2 hours getting the build to work properly.
- Make a small, well trodden modification to all 4 instances of a command in 3 pom files. (5 mins max, probably closer to 2 mins)
- Fire off build and wait to complete (up to 19 minutes if it completes)
- Investigate any errors or note timings (2 to 10 mins).
- Repeat from step 2 until time to go to lunch or home.
I guess deep down I feel the need to prove myself as the new boy, and with this task I feel like I'm coming up short, rightly or wrongly. Oh well, I guess that could be me worrying too much. Sometimes, that's just the way it is.
Wednesday, 14 July 2010
Evernote
Amongst the myriad of other features I also found the collaboration side of OneNote to be excellent, specifically I could open a OneNote notebook from a network drive on my PC, edit it, and it would automatically sync next time I opened it on my laptop. If I was working with a notebook whilst disconnected from my network, when I got home it would sync changes and these would replicate over to other devices. With the advent of Office Web Applications this can now be done over the internet too, and editing can take place within the browser with no need to install or even own a copy of the desktop application.
OneNote is frequently considered the hidden jewel of Office by those who have used it, indeed a while ago it featured as the only Microsoft product in a list of top 10 essential applications that was heavily dominated by open source and free software.
The major downside with OneNote is that the office suite used by many companies is out of date or does not include the app, and I suppose the fact it is not free.
Step-up Evernote (http://www.evernote.com). Evernote is one of the many alternatives to OneNote, and the one I use most regularly. Evernote comes in two flavours, free and paid for. Both use the same client software, both store to the Amazon hosted cloud, the main differences are the amount of traffic you are allowed per month, and the file types you may attach to your notes.
Evernote may be run from a web browser, or clients exist for several of platforms (Windows, MacOs X, iOS, Android, Blackberry, Windows Mobile, Palm Pre/Pixi). No matter what metods you choose, Evernote can sign into the central repository and synchronise your changes between the various clients. Evernote also implements several pieces of functionality found in OneNote, for example finding text in images (which is scanned on the server; paid users having priority in the queue, but this has never been an issue for me).
There's lots of stuff OneNote does that Evernote doesn't, and a few features in Evernote that I'm not aware of in OneNote (for example I tag notes extensively in Evernote). Best of all, because the clients are free I've installed them at work where I can, and use the web version when this is not possible. And because Evernote isn't well know like, for example SkyDrive where OneNote stores its web shared files, it's not blocked by as many corporate firewalls yet.
The free version has been ample for my needs (I've never used more than 3% of my monthly data allowance, despite using the tool extensively) so it's well worth a try even if you do have access to OneNote.
Of the two, OneNote remaind my favourite, however Evernote is currently used far more often. It's well worth looking at.
Monday, 12 July 2010
It’s not me, I’m perfect!
I think I'm in a minority here, but the state of comments in some code is truly appalling, and the worst offenders are those who think their code is so clear or logical it doesn't need commenting.
I've worked with many such delusional characters over the years, and it always seems to be he ones who should know better, the "above average developers", and you can measure that however you feel.
The thing is, they are correct, or at least they would be if they were working on one-man projects. The code is clear to the author as it comes from their thought process. What's obvious to them is often far from obvious to everyone around them, and this state of affairs is made worse when using call-backs, events or making use of things such as multi-threading.
The argument is usually either "the code is self commenting" or "adding comments will confuse the code" and "comments become out of date quickly and therefore misleading". I'll briefly address these points now:
The code is self commenting.
Indeed, the code ideally should be, but how about a general overview of what happens? And is it really? The people who claim the code in such are often the authors of long, convoluted methods, with no clean responsibility, lots of inner classes or methods (depending on the language).
This code is difficult for others not familiar with it (often that equates to everyone other than the original author) to follow, but amusingly it is often tricky for the original author to understand when returning to code after some absence.
The times I've seen such developers struggle to understand what they were trying to achieve in a piece of code is frightening, but they normally get it fairly quickly as it comes from their imagination. If only everyone else was looking at it from the same perspective, then you may have a point.
Yes, the code can be self commenting, but to me this means well named methods with a clear responsibility, not a 40+ line method that covers all branches of execution.
Adding comments confuses or detracts from the code.
Well, it's often subjective, but I agree that adding too many comments does detract from the code and make it more difficult to understand. Having said that, a comment that briefly describes what a particular method is trying to achieve (something akin to JavaDoc or the .Net triple slashes if available) can be an immense aid to a tired developer trying to understand how something is supposed to work. This can occasionally even be a reference to the functional specification if you're lucky enough to have one. Such comments can be easily ignored if you find them offensive.
I'd also go so far at to say an occasional comment before a section of "non trivial" code can help both the initial development (I often use comments to help provide a skeleton and program into them) and future maintenance.
Comments become out of date quickly and therefore misleading
Then you're not treating them with the respect they deserve. Isn't that a bit like saying "it compiles so it will run?". Of course, tracing comments that need updating can be a chore, but if they are finely grained and focused on what is actually happening in the particular concern they are attached to, code and comment modifications can be performed hand in hand. Anything else, go to the specification.
In my opinion you should target your comments at others not yourself (although having said that my memory is sufficiently poor that I will happily use my own comments as a reminder). Assume little and ensure you give a decent starting point for further investigation at the very least. And for the love of god comment any gotchas or what you did to avoid them. Often we add code that looks out of place or redundant just to get around such things (yes, I know there may be a design flaw, but we'll code with a view to make a refactor as soon as we can go more easily and actually get the product out of the door (and that's a whole other post).
I could go on with this post, but in a nutshell I'm just sick of trawling through thousands of lines of uncommented code that should make perfect sense, but are complex enough to only be apparent to the author, and even then the author often struggles.
Friday, 9 July 2010
Willing to drift?
The is remarkable for me as only a few months ago I would not have entertained this thought at all, in fact I was only interested in running Windows 7 on a tablet. I have to admit my ideal device would still be this, but the swish iPad equivalent hardware for PC devices is, I fear, still some time away.
I loved my tablet, but it was too bulky, too underpowered and the screen was too dim/fuzzy due to the touch functionality. However. technology moves on and now all of these issues have now been solved, but strangely not in one device.
Touchscreens are now much clearer and more vibrant. The mobile versions of the Core chips and similar offerings from AMD are very capable. Laptops, whilst not as light as an iPad also weigh much less now. And the deal maker or breaker for my next purchase will be battery life (I had too many occasions with my last tablet where it died half way through a journey home).
I had whittled my choice down to either an HP tm2 tablet, basically an updated version of my current (very sickly) tablet, or an Acer 5820 with an almost 7 hour battery life and Core i5. Out of the two the Acer is a more powerful machine, but lacks the touchscreen, if only they had included this I'd have had the credit card out last week instead of still plucking up the courage to part with my cash.
And that's my point; why is it so hard to put a touchscreen on a decently specified machine? I know it's going to add to the price, weight, and you have to design in the hinge, etc., but it's surely not that difficult is it? Who is going to be the first company to step up to the mark? It's a problem that's been commented on for an age, and now just seems to be accepted: "It you want a tablet or slate you must sacrifice power and other features". Why?
So it seems I'm going to be stumping up for a regular laptop this time, safe in the knowledge that my ideal tablet won't arrive at least until it's time to upgrade again, possibly after this (Did I hear Windows 8?).
So what about the Android slate? Well the reality is I have no neeed for a slate device so it's just a "perhaps one day" thought. An iPad may have appealed if it supported flash and wasn't locked into the app store.
What really strikes me, as I mentioned before, is how I am now even considering an Android device over Windows (be afraid Microsoft, you're starting to loose the faithful like me). But at the same time I take comfort in the fact that I am able to see beyond the brand, and it mirrors what's happening on my desktop too.
Sure I've experimented with Linux over the years from Red Hat to Ubuntu, but for all its sins Windows has suited me far better (yes, even Vista). Linux has always had an air of "not quite" about it, not for everyone, but for my "needs" and probably "wants".
18 months ago I went mental when somebody installed Chrome on my mums PC. I was running mostly Firefox and a little IE7 when required. When IE8 arrived I found it better for my liking than Firefox (which had started to show signs of copying the worst problems of IE) so switched back to mostly IE8. Now I find I'm increasingly using a combination of Chrome and IE8, especially after reading the results from a recent security conference where all the other main browsers were hacked in around 10 minutes, yet for the second year running chrome resisted attack.
On the Java IDE front I used to be a massive fan of JBuilder. This was eventually replaced by Eclipse in my toolbox, then Netbeans, and now, mostly from necessity, I find myself back to Eclipse again. It's just a case of the right tool, or the necessary tool for the job.
As I get older I'm having less of an emotional tie to software and devices, and more of a practical attachment, which is why I don't need to be locked in any more than is necessary. Of course, this is not possible as any software I do buy, unless it is free and available on multiple platforms, will inherently be tied to a platform(s).
That's one of the reasons why things like Adobe Flash, Java and to a (much) lesser extent Silverlight and .Net are important as they facilitate some level of platform drift. And that's the real reason why Apple doesn't want you to have them.
The rumor for Windows 8 is that it too will have an application marketplace. The way Microsoft seem to be mimicking Apple these days, I fear the day when you can only run approved applications in Windows may not be far off. When that happens perhaps it won't just be Google's Chrome that's on my desktop.
Wednesday, 7 July 2010
Damn you HTC...?
My old Nokia N95 was locked to T-Mobile, so many updates never appeared, and those that did usually appeared several months after the generic roms had been released into the wild. This time around, my HTC Touch Pro2 is a geneneric unlocked device, so I'm at the top of the list when it comes to ROM updates.
The TP2 was supplied with Windows Mobile 6.1, and soon after the 6.5 upgrade was released I updated to this. Everything was working very well and the phone was very stable, 6.5 looked fairly impressive. A few months after this another new ROM image was released containing a some bug fixes from Microsoft and an update by HTC to a later Sense UI featuring closer integration to FaceBook and a built in Twitter client, so I duly updated to this - and that's when my troubles started.
I suspected the new Sense UI was ported from the version written for the HD2 or similar recent Windows phone, as the whole responsiveness has became considerably slower than the original WinMo 6.5 Sense UI. I can't help thinking it was therefore aimed at the newer, faster devices, and just slung onto older models with few, if any, modifications.
The first thing I noticed was updating contacts linked to FaceBook. At first I though this just crashed, in actual fact it's taking several hours (even over a Wi-Fi connection) to update the few contacts (sub 20) I have linked to their FaceBook profiles. That's not really acceptable
The bigger problem I've encountered is a couple of times when making a call. What happens is I'll select my contact from the list, and the phone will report it's calling them... until a different contact from my list answers. When you hang up the phone history list correctly states you called the wrong number.
This is simply not acceptable.
Along with this, the phone has become very unstable, locking for minutes at a time or crashing altogether on a frequent basis, I've even missed a couple of calls due to this (and been unable to terminate calls on several occasions ). I can also forget about using the speaker-phone (although that may be yet another hardware fault).
As mentioned I suspected this wasn't so much down to the underlying OS as much as Sense itself. To prove this I turned the Sense UI off and for the first time tried to use the new Windows Mobile 6.5 UI instead. It's not as good, but I figured that if it works it will be bearable until they hopefully release another ROM update.
I'm now a few days in and whilst there's several things about Sense I am missing, the actual 6.5 UI isn't too terrible. Interestingly, I'm not yet sure if things have been made any better on the reliability front. The phone does now boot several seconds faster (as it no longer needs to load Sense), but I have had at least a couple of occasions where it has frozen for several seconds, so if it is better now, it's not by much at the moment (Apple fans please don't tell me this wouldn't happen on an iPhone, I know several iPhone users who regularly curse the reliability of the device, one even has to reboot his phone every time he travels from London City to Docklands for some bizarre reason. This isn't just an issue with Windows Mobile).
I'll probably try a hard reset at some point but since these problems started soon after a bare update, I'm not hopeful. I'll be sure to let you know how I get on.
Of course, the downside of all of this is that I'm now a little wary of getting another HTC phone. I was thinking of a Nexus 2 if that's out by the time my contract comes up for renewal in December. We'll have to see now, mind you if it is down to the underlying OS, I'm unfairly giving HTC the blame. Mind you, I don't suppose Android is flawless...
Monday, 14 June 2010
Is This the New Gameboy?
I do wonder if the hand-held gaming platform may be ending its life as a separate device. Looking at the games offered by the likes of the iPhone, Windows Phone 7 and unfortunately to a lesser extent Android and even NGage, I expect to see this market swallow up the Sony PSP and Nintendo DS devices, perhaps with iPod Touch like derivatives for those who want something a bit bigger to game on.
Of course, only time will tell, and the DS is still the daddy of hand-held gaming, but just as the smart phone has been cosuming, or is consuming devices in other areas (PDA, GPS, Cameras, etc.) so gaming is becoming absorbed too.
When, I wonder, will we see a Nintendo phone? I'm guessing within 5 years.
Friday, 23 April 2010
Apple Rules!
I’m at once both loving and despairing over the spat between Apple and, primarily, Adobe.
In cutting off Adobe and other companies with their rules limiting of the source code requirements of applications (which as a developer strikes me as being quite strange) other tools apart from Flash have been affected. The nature of the development beat these days relies on a variety of tools to get applications delivered, not just a few chosen languages with massive do-it-all libraries.
Add to that the fact that Apple takes advantage of many closed APIs in the OS which other developers are expressly forbidden to utilise (for example the iBooks application uses closed APIs to do things as simple as adjust screen brightness, from what I’m lead to believe), and a lot of developers are getting… frustrated.
If the iPhone/iPad apps keep selling, then they’ll keep being developed, but as more and more competing operating systems rise through the ranks, the appeal will start to waver, developers who have been rejected or withdrawn from the App store will start to question where their time is better spent, and the flow of new apps may (just may) be directed to alternative devices.
Slowly the iPhone will be less appealing, sell fewer units, and the process will enter a cycle like Microsoft is now trying to get out of on their mobile platform (although this was for different reasons, mainly neglect of the OS at Microsoft).
I doubt there will be any measurable effect on Apple sales any time soon, it may not happen at all, but I suspect Apple may currently be sowing the seeds of its own destruction. That would actually be a bad thing as fewer players may lead to less innovation. Having said that, the mobile economy is so large at the moment that this is unlikely to happen any time soon.
Footnote: Don’t give me any rubbish about keeping the iPhone interface consistent over applications in the OS, have you seen iTunes on a PC? Even Sun introduced a Windows look and feel for Java.
Thursday, 22 April 2010
Windows Phone 7 Burning The Boats
Joey deVilla has written an interesting article on the Global Nerdy blog: Apple, Windows Phone 7 and Burning the Boats (or: Why I Think Windows Phone 7 Doesn’t Have Copy and Paste)
It’s a thought, and I see the point, but the fact still remains that I want a phone that will let me do what Windows Mobile allows, so again I’ll re-iterate that I’m probably not the (initial) target market for the new phone. That’s a shame.
In semi-related news, I’ve been playing with Android 2.1 on my HTC Touch Pro2 to get a feel for it. So far the jury is out, but I haven’t given it a fair amount of time, it is, after all, a whole new OS to get to grips with and, for the moment at least, I am literally stabbing around willing things to work. Time will tell, but once I’m used to it (if I get that far) it will gain “likely points” on the “What new phone” decision that will take place at some point.
Friday, 16 April 2010
WPF Phone
I can already hear the iPhone owners: "Windows Phone 7 UI is a copy of the iPhone UI". I will understand this, but it's only looking at the UI from the perspective of an iPhone user.
I've not used an iPhone, primarily because I know that however good the OS looks (and it does look good), it doesn't offer the features I want (neither does Windows Phone 7, as mentioned many times before). However I was just browsing through a few screenshots of apps on the iTunes web pages and one thing repeatedly kept hitting me: "These apps look like they were written in WPF!"
WPF has been around since (AFAICR) the release of Vista, and at that time, as far as I was aware, Microsoft weren't trying to ape the iPhone UI to the desktop (although I dare say some inspiration was drawn from there, as is the nature with these things, although reading some of the documentation and tutorials on WPF I would say they were after a version of HTML for creating Windows clients originally).
WPF is the brother to Silverlight (with the alleged intention apparently to end up with a single technology at some point)
And of course Windows Phone 7 is based on Silverlight and XNA.
I can see where this is going...
On an aside, several years ago there were hot rumours of Microsoft going into competition with the Sony PSP and Nintendo DS. I can't think of any device they are scheduled to launch in the fall that may be doing this...
It's been argued before, but finally I can see mobile killing the likes of the PSP and DS. Perhaps it's a shame NGage never caught on after all.
Wednesday, 14 April 2010
Hard times in the job market.
Apparently the IT industry is getting back on its feet in a big way, at least in the US. I’ve not seen much evidence of this with the number of jobs being advertised online, certainly a few years ago my inbox was being crammed full of emails from job sites, many with several new and exciting opportunities. At the moment I’m subscribed to one list (…just to keep an eye on the market you understand…) and the number of jobs is currently running to about one every week to 10 days. I’ve changed my criteria since a few years ago, but not by much.
All this got me thinking about some interviews I attended at the Halifax when looking for a new job back in late 2006.
Essentially I had sat three interviews, the first a standard technical test which went very well (I vaguely recall this was one of those occasions where I found a problem in the question I was being asked that the interviewer, a question he’s been asking for several years. I’ve done this a few times in interviews, Goldman Sachs being another example*).
The second interview was with the team manager. Apparently several people had passed the technical round, but during the managerial interview she had turned down all the candidates so far. It’s an important step, if you don’t get on with the manager there can be no working relationship of value, and if they think you won’t fit into the team the role becomes very difficult for everybody.
To the delight of the agent (and he really did seem pleased) she liked me and I made it through to the HR round.
HR started off well. The small talk went OK, I’ve done a few of these and generally if you tell the truth, and that includes failures and achievements, then you don’t get caught out and they appreciate your honesty.
Then she asked me the next question on her script: “What projects have you worked on that have failed?”
I’ve worked on an array of software development projects over the years in various roles from development, management and analysis. Some have been more successful than others, but I can’t remember any that you would class as a failure.
There have been difficulties, things that were promised by sales teams which proved ultimately impossible to achieve ‘as sold’, issues getting information or client buy-in required to complete a task, and problems with implementing the ultimate solution. In all cases these have eventually been resolved, usually by consultation with the client. Most clients are reasonable if you demonstrate to them that you are not trying to rip them off.
The upshot has always been a happy (or at the very least, satisfied) client, even if the delivered product needed to deviate from the original specification, such is the nature of the beast.
Often the ultimate solution was more practical and beneficial than the original proposal. Problems encountered often highlight a misunderstanding in the requirements, unrealistic expectations or just plain faulty analysis.
That wasn’t the answer HR wanted to hear. She wanted a failed project from me.
I thought for a moment, what project could I spin into a failure? Some took much longer than expected. Some were canned before completion (or even before we started) due to changing priorities or requirements (but usually because the client “thought” they wanted one thing when they actually wanted something completely different, or nothing at all).
Neither of these satisfied Ms HR. She wanted a failure, and she wanted one NOW!
We had reached an impasse.
I don’t remember much after that, frankly I knew the damage had been done. For all I know she may have shown me ink blots (and I hope if she did I responded with “It looks like a man biting the head off a bunny”, but I know I wouldn’t).
I left dejected. I’ve screwed up plenty of things in my life, but apparently not enough for her.
Needless to say HR advised the team not to take me on as I didn’t have enough experience (the role specified a minimum of 2 years, at this point I had 15 years commercial on and off, 12 years solid).
The agent was astounded, and suggested “the manager was impressed with you, would you like to chase this up?”
I decided against it. By this point I no longer wanted to work with the company. What was the point arguing?
You can probably tell I’m still a little perplexed by these events, possibly more so because the company I ended up going to was so terrible (but I can’t legally tell you about that, well, not in any way that you could use to identify them).
Oh well, you live and learn… although on this occasion I’m not sure I actually learnt anything.
Thursday, 8 April 2010
iPad Mobile 7 [Series]
I've just been reading Why I won't buy an iPad (and think you shouldn't, either) on BoingBoing, and it seems to me much of what Cory Doctorow is saying will apply not only to the iPad but also to Windows Mobile 7 phones, with the exception of the non-replaceable battery.
Yes, Microsoft are giving away some wonderful tools to create applications for the device, but whilst they give this with one hand, the other hand takes this benefit away by restricting distribution channels to one vendor. The way I see it is that this is not a million miles away from the comments Cory makes on the Comic Book application, only in my case applied to software.
I've made this point before, so I won't harp on, but I just thought this was a nice perspective on the iPad/WinMo7 problems.
I was wondering why the iPad was being launched so close to the next revision of the iPhone OS, but I imagine it's so Apple can say "Hey, those gripes you had about Multi-tasking, and x, y, z, we've fixed them already! Look how cool and responsive we are", and thus keep the hype going a little longer and help people "forget" the remaining flaws.
For the record, My current stand on Windows Phone 7 is looking like this:
I'm not interested in getting a phone until some of my concerns are addressed (Multi-tasking, App Marketplace, Copy/Paste, SQL Server CE)
I'm very interested in writing some experimental apps for the device, which will possibly never leave the emulator (proof of concept?), but which I see as helping in my quest to master .Net development.
Time will tell what happens.
Wednesday, 31 March 2010
Scrum
The guys over at AxoSoft, creators of the rather good OnTime software have produced a video Scrum in Under 10 Minutes as a quick introduction to Scrum.
Scrum is nothing earth shattering, and it’s not going to be a silver bullet for many people, but it’s well worth a look, and if followed correctly I’ve no doubt it will help a lot of projects run more smoothly.
Of course, the video is a gentle advert for the AxoSoft OnTime application, but it’s not forced at you so is worth a watch.
As it stands the company I work for has started using OnTime, but at the moment it’s just performing a to-do list and time logging role for me, and I suspect most of the other team. We’re yet to take the bull by the horns and make effective use of the many features.
Oh well, hopefully we’ll get there. Certainly on the task I’m working on at the moment a burn down chart (or even some smaller milestones) may have provided a morale boost that we are actually making progress.
Never mind.
Tuesday, 30 March 2010
Well, it made me laugh…
A little departure from the normal seriousness of this blog, I was recently sent this link to a page on The Reinvigorated Programmer titled A brief, yet helpful, lesson on elementary resource-locking strategy.
Enjoy.
Wednesday, 17 March 2010
Game over WinMo7?
It certainly looks that way.
To be fair to Microsoft, this initial release of Windows Phone 7 offers a lot from what is essentially version 1 of the OS.
That said, (what I consider) stupid decisions like the aforementioned lock-in to the Marketplace and removal of cut and paste functionality have, as you know if you’ve seen my previous entries, made my heart drop.
I’ve also just been reading a quick article on what’s [not] in the first release of Windows Phone 7 which is staggering, little is particularly new news, but put together it’s clear this is a version 1 OS and some of the core benefits to myself and many other users of earlier Windows Mobile incarnations are being discarded.
As a result I really don’t believe WinPh7 will offer what I’m after as a user, at least not in its initial release. This is terrible news because as a developer I was getting genuinely excited.
Obviously I don’t know for sure what route I’ll take when it’s time to upgrade in November, but at the moment Android seems to be ticking way more boxes than as a user.
I may download the development kits and write a few apps, but my enthusiasm will be massively reduced if they never get any further than the emulator, although to be fair I’m not even sure they’d make it to the phone even if I have one, since I’m still unclear what the deployment process involves.
I feel a little cheated as I was really expecting great things from this initial release. Sadly it looks like that’s not likely to happen.
Noooooo!
WTF?
Is the development/design team working on Windows Mobile 7 on drugs?
Apparently they’re deliberately not implementing Cut an Paste functionality!
I’m speechless.
I tried installing the CTP of Visual Studio 2010 for Windows Phone last night before reading the ReadMe.txt telling me it would neither work in a virtual machine (as I was trying to install) or alongside other versions of Visual Studio (which stops me from installing on the main desktop).
Now I’m not bothered.
I use cut and paste all the time on my Windows 6.5 mobile.
As one person has already said, it looks like Android is the best upgrade path for Windows Mobile 6.5 users.
Along with the marketplace announcement, at the moment I tend to agree.
Tuesday, 16 March 2010
So that’s the shine taken off Windows mobile 7
Well, it seems part of my prayers have been answered, the tools to develop applications for Windows Phone 7 will be offered for free! That’s absolutely great news.
However…
It looks like applications will now have to be sold via the Windows Mobile Marketplace, so no downloading and installing apps from anywhere else then?
And they will also be vetted in the same way as Apple currently does I assume. If MS decide they don’t like your app it could presumably be removed (or declined in the first place).
Sure, I understand this means that apps will need to meet a certain quality and that some of the frankly abysmal applications you can find for Windows Mobile and Android will not be accepted, thus keeping the quality higher, but this could be achieved by the marketplace without this unnecessary restriction.
This really is a shame, I have been one of those people deriding the fact that to get an application on an iPhone you need to go through the iTunes app store, now MS are doing the same.
Shame.
So now it’s all about the tools. If I find I can get on with developing apps with the tools available I may still get a Windows 7 phone, if not then I guess it’s over to Android or Symbian.
And what about the fact I develop apps for personal use… will they work?
Tuesday, 9 March 2010
More Windows Phone 7 Speculation
I’ve just been reading through the CNet Windows 7 FAQ and while it doesn’t add too much more information to the mix (as is to be expected until MIX10) there are a couple of little nuggets in there.
Firstly, it seems to confirm that the old Windows Mobile apps won’t run on Windows Phone 7, something we more or less already knew.
Secondly it says Windows Mobile 6.x will continue to be solved for years to come, or as Microsoft say "it's not as though one line ends as soon as the other begins."
I love this comment from Charlie Kindle in his blog:
We took the feedback we gathered from developers, looked at the full potential of Windows Phone 7 Series and landed on 3 basic goals for the platform we’re delivering;
- Enable end users to be able to personalize their phone experience through a large library of innovative, compelling, games and applications.
- Enable developers to profit.
- Advance the “3 screen plus cloud” vision
The first one is pretty obvious: A key value proposition for Windows Phone is personal. We believe consumers will use games and applications to make their phone experience their own.
(Did you notice we always talk about applications and games? A little factoid I heard today: According eMarketer, the number of people playing games on the phone has more than doubled in recent years;340M people will play games on the phone in 2010 up from 155M in 2007).
But what do we mean by “profit” in the second goal? When we talk with developers we hear them talk about three different “currencies”: making money, learning, and recognition. Some developers are in it for the money. They are either literally being paid to write code or they are writing code with the hope it will generate coin.
Other developers tell us they are interested in advancing their knowledge – love of the game. They love learning about computers, programming, games, social connections, etc… So they build software to learn. They profit by being smarter.
Other developers are clearly motivated by pride. Maybe there’s a bit of money and learning involved, but to these developers being noticed or recognized as doing wickedly epic sh*t is top of the list for how they measure profit.
Nice.
From reading a variety of other blogs from the team and developers it seems almost certain that the main UI is indeed based on Silverlight, which is the brother to WPF, so I’m hoping these two technologies will merge over time after all (as opposed to being against this in an earlier post), or at least the line between the two blur significantly. That looks like it’s where we’re going.
With that in mind, I’m off to download the XNA Game Studio to have a play before something better is launched (I’m taking a wild guess here) next week.
Monday, 8 March 2010
Interesting numbers…
I was looking through a post on Reddit discussing reality of learning programming in 21 days, as illustrated by this site (and taken a little more seriously here), when I stumbled across an extremely interesting article What your computer does while you wait by Gustavo Duarte.
If you’re interested in such things this makes a very informative read.
To take a sentence out of this article, whilst talking about how fast instructions are to process on a modern CPU Gustavo makes this comment:
It’s worth keeping this in mind when you’re thinking of optimization - instructions are comically cheap to execute nowadays.
In case you miss it, later on in the comments section he makes the point that should go hand-in-hand with this one:
99% of the time you want the cleanest, simplest code you can possible write. In a few hotspots, which you discover by PROFILING the code rather than guessing, you optimize for performance if it’s really called for.
Everything I’m reading at the moment points in the same direction, basically that software is so complex and code bases so large that it needs to be written to primarily be understood, or as Martin Fowler puts it in his book Refactoring: Improving the Design of Existing Code:
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Amen to that.
One of the points Martin makes is that be refactoring you often don’t make the the code any slower as, by the process of making the code more understandable, you can optimize the code more easily, possibly even as a side product of the refactoring. Even if this is not the case, after the refactor the code is easier to optimize in those areas where this is really needed.
So that’s going to be my mantra outside of the workplace from now on (and inside the workplace where I can, but I’ll describe that as much as I’m allowed to in a later article). In fact, that’s been one of my strong points to a greater or lesser degree since I started out, I try to follow the KISS principle:
Keep It Simple, Stupid!
I’m the stupid part. If you let me keep it simple I’ll write you something that’s useful (but often in the real world we’re thrown into overly complex existing systems that we have to code to without any chance of being able to influence the overall design in a positive direction). Or, to paraphrase Martin Fowler again (since I can’t locate the quote): I’m not a great programmer, I’m a good programmer with great processes.
Just give me the framework that allows this, or allow me to create one, and we’ll all be happy.
Wednesday, 3 March 2010
Here we go…
I see Joe Wilcox of Betanews is at it again. This time he’s having a go about the HTC Touch HD2 not being upgradable to Windows 7 (well, nothing is confirmed on that front, but he is at least right in saying it’s unlikely, very unlikely).
Joe tells us that the HD2 will be dead the moment Windows Phone 7 arrives.
Really?
Is that like corporations all dropped Windows XP the moment Vista came out?
Worse than Vista, Windows Mobile 7 is almost a Version 1 OS that’s being rushed out (that’s possibly a bit harsh as MS are getting no end of flack for not releasing soon enough, and it sounds like the phone will be based around the .Net framework, which is a huge step forward in my opinion).
I’m intrigued to know what happens on Windows 7 launch day to make the HD2 “dead”, especially since Microsoft will still be supporting (possibly developing Windows Mobile “classic” [although lets be honest there won’t be a lot of work going on]).
Perhaps the many years of mature Windows Mobile applications available will stop working all of a sudden? Perhaps it will no longer take calls? Perhaps it will emit a high pitch scream to let your friends know you’re running the “old” OS?
Or perhaps the people who are comfortable with Windows Phone 6.5, who have many years of applications and time invested in these devices, and those few who actually like the old OS, will be happy to buy the latest refresh that will take them forward until WinMo7 settles down after the inevitable initial teething problems are sorted out?
I can see more people will be thinking twice about buying a Windows mobile device until WinMo 7 arrives, but frankly some people will not know, some people will want the old OS, and some just won’t care.
The HD2 will almost certainly have lower sales due to the impending OS release, but I think any announcements of its death are somewhat premature.
Tuesday, 2 March 2010
Misleading or just poorly emphasised?
I was just reading an HTML 5 Cheat sheet by Nick Heath on Silicon.com which makes the following comment on page 2:
“Today the iPhone OS, the world's third most popular mobile OS”
Why focus on the iPhone when Symbian leads by miles? The only reasons I can think of to justify this is that the iPhone buzz is so high (but I’m guessing higher than demand otherwise after a few years in the market it would be above Blackberry in the market share stakes, even if that is a gap it is closing), or that we assume iPhone users are more active users of browsing web sites than Symbian owners. That’s probably true, but still it leaves me shaking my head at this comment.
Read their own link the numbers are actually quite interesting:
- Symbian 46.9% Market share
- Blackberry 19.9%
- iPhone OS 14.4%
- Windows Mobile 8.7%
- Android 3.9%
The iPhone OS is the fastest growing OS, absolutely, but it’s exactly due to this kind of largely (IMHO) unwarranted focus that people think Apple are the only player in town. Likewise Android which has less than half the sales of WinMo, but 1000 times the buzz.
While Apple and, to a lesser extent Android uptake is on the rise, Symbian commands a huge lead. Time will tell if they can hold onto this, but I can see why they might be taking their time getting new UI enhancements and other improvements out of the door, they have plenty of breathing space.
I honestly hope Symbian have something awesome out soon, however even if they do I know it will be largely ignored by the press, Symbian just isn’t exciting enough to write about. Well, not at the moment.
I’m surprised Windows Mobile is at 8.7%, I thought nobody used it, certainly not the almost 1 in 10 (or more accurately almost 9 in 100) reported in these figures. Of course by the time version 7 is released this will be a fair bit smaller as some people will hold off buying until the new OS arrive. Similarly though, I expect some will rush out and buy “classic” devices in order to run their current apps.
I want to see reviews of the final Windows 7 OS, it may not be an upgrade path for me, it largely depends on how they pitch the development tools as much as anything. I wasn’t, for example, happy that the Professional version of Visual Studio 2008 didn’t directly support smart device development (under which Windows Mobile/Phone is classified).
If Microsoft add smart device development to the lower versions of Visual Studio 2010 (yes, probably even the free Express versions) then you’ll end up with more active developers leading to more applications being developed and arriving more quickly, which is what a new OS will be crying out for. If Microsoft don’t do this then it will be a sadly missed opportunity, and in my opinion a stumbling block for acceptance.
Hell, you can even write for their XBox360 console using Visual Studio Express.
Yes, I want free tools. I don’t want to go looking for these in another OS (I was writing stuff for Symbian in their free development studio not so long ago), but I may be tempted to move if the need arises.
Friday, 19 February 2010
Windows Phone 7 Series - First impressions
Times have changed, the advent of smart-phones has meant that where in the past people would go out and choose a new phone for it's size, or later the megapixel count of its camera, the phone is now seen as a "computer in my pocket".
A side effect of which is that even the most unlikely of people are now asking me "what phone should I buy".
I think it's significant that these were once the people who would ask me for advice before going out and purchasing a new PC or (more usually these days) laptop. These days they will happily do this without seeking any advice from me, which is surely a good move on their part ;-)
To my mind this goes to show there is more competition in the phone market than the traditional computer market. In the computer world you either buy Microsoft, or if you've encountered one, an Apple machine (I personally don't know many people outside geekdom that have even heard of Linux, let alone care about it) .
When people ask me what phone I would recommend, as I mentioned in a much earlier posting, I either recommend an iPhone or something running Android (It's interesting how I'm avoiding Symbian, the biggest smart phone OS out there, or any of the other Nokia/Intel variants. For me the once great Symbian is suffering in the same way as the once great Windows Mobile, but hopefully Nokia have that in hand).
However, as I've stated before, I love Windows Mobile for myself, and I put this down to the the fact that I've been using it for years and really don't mind resorting to a stylus once I've moved away from the basic phone functionality, although I'm aware that puts me in the minority, which is just one of the reasons why I don't tend to recommend Windows Mobile to others.
Now Windows Phone Series 7 has been announced I'm quite interested. If the rumours are true then the apps I already have will be useless on the new OS, but I don't care too much, it’s a break they (arguably) need to make, and something they should probably do for Windows (I’ll discuss that soon). What worries me more is ending up with a neutered device in terms of functionality, for the sake of consumer usability. Windows mobile is great because it has real tools written for hardcore developers and sysadmins.
I guess Microsoft can't please all the people. Still, as long as the multitasking remains in place, and if it's build on Siverlight and .Net, then we could end up with a nice OS, and possibly one I'll even be recommending to my friends.
That would be nice. The jury is out...
For a nice article on Windows Mobile 7 see http://www.engadget.com/2010/02/17/windows-phone-7-series-everything-you-ever-wanted-to-know/
Wednesday, 17 February 2010
VHD Trickery
I'm not 100% certain on this, as it's something I've just stumbled upon, but if I'm correct, Microsoft are actually standardising on their VHD (Virtual Hard Disc) file format by putting it to good use. Allow me to explain how I got here:
Those of you who read my Twitter posts (@imorital) will know that I recently managed to kill my work Windows XP installation after installing a new graphics card into the machine (to run the PC dual head) and attempting to apply the ATI Catalyst Video Card Drivers (and I'm talking about the latest versions at the time, not even the decrepit old drivers on the install disc, although they would probably have done less harm).
To cut a long story short, the Catalyst install failed, and soon after, and this may be coincidence, my machine started behaving very badly, from a boot-up to usable time north of 8 minutes, to severe screen drawing issues and poor instability and performance.
I tried various things to fix the computer, but it was going from bad to worse, so after a few days I was given the go-ahead to perform a fresh OS install, and since XP is nearing end of life the OS of choice was Windows 7. This would also allow some testing of our applications under this new environment (remember, the company had skipped Vista, so any changes such as UAC and registry permissions were also being encountered for the first time).
As part of the re-install, the graphics card that spurred all the troubles was removed from my machine, so I'm now running a single monitor again.
That brings us up to where we are today.
I was (am) toying with the idea of using that old graphics card, mainly as I suspect the Windows 7 drivers will be much more reliable than those for XP. It's an ATI Radeon HD4350 card, so there's one or two of them in the wild. Having said that, there's absolutely no way I'm not covering myself this time, and fortunately Windows 7 Professional can help do this by allowing me to do a system image first.
This feature lives in the same general area as the backup functionality and looks quite interesting. From what I can tell it basically does a ghost of the system drive, which you can later either restore from Windows control panel, Windows start-up (alongside the Safe Mode options) or via the Windows7 install discs by choosing repair.
If it works then it should only take a very short time to restore... but here's the interesting part: The image file is written as a VHD, so it can be mounted into Virtual PC and essentially you have a clone of your main PC running in a virtual server, much like VMWare converter would do.
Additionally, I know it is possible to multi-boot using a VHD; so I assume, and this is an area I haven't investigated yet, that I could potentially multi boot into a second copy of the OS which would be identical to the first. I could then add the drivers to the second Windows 7 installation and run with this for a while.
If everything is OK I can then restore this second OS over the top of the main OS (making the machine single boot again and reclaiming the lost disc space), or if it all screws up just boot into the original instance and delete the VHD and all traces of it and the corrupt drivers.
That's the plan, only time will tell how much of this is possible (I suspect re-installing from the modified VHD will be tricky)
The next question is "Will I ever have time or the courage to do it and risk taking out my work PC again", even if it will only be for a few hours next time.
More info on this can be found at: http://www.sevenforums.com/tutorials/675-system-image-recovery.html
*Of course, if I just keep the image in a safe place and do my experiments in the primary OS, then I can still restore if it all goes wrong. That is probably the approach I will take as it’s simpler, but I’ll investigate the whole boot from VHD and run as a Virtual Machine thing at some point, if nothing else it can be used to test the created image is not corrupt!
Friday, 12 February 2010
WHS: The Big Install (Part 3)
After my earlier entry WHS: The Big Install (Part 1) I received a comment from tolonensan noting that they solved a similar problem to mine, namely that my 1TB SATA 300 drive was not being recognised by my nForce2 motherboard. T
olonensan wrote that by setting a jumper on their drive they were able to force it to SATA150. I figured this would be worth a go and set about finding a document that would show which of the jumpers on the back of my drive would allow me to do this, since the label on the drive contained no information.
As it turns out the changes for a Samsung F1 1TB drive is set via a utility called ESTools (downloadable from the Samsung web site), which is both a step forward and a step back. I can see it makes some sense to add this functionality in with the general tool set, however it does rely on you having a machine available that can read the unaltered disc in order to make the changes. Fortunately this was not a problem for me, however some people may not be so fortunate (although I suspect these people also wouldn't know the difference between a SATA 150 and 300 drive anyway). So a catch 22 that could have been avoided by jumpers, but then these bring their own problems too.
Anyway, after making the change on my desktop PC I plugged the drive back into the WHS shuttle box and it was instantly recognised. Unfortunately there wasn't enough physical space for this drive in the machine alongside the others, so I merely added it to the array, then removed the old low capacity SATA drive from the array and waited about half an hour for the data to be moved from the old drive and re-balanced on the new configuration.
It was then just a simple case of unplugging the old drive and powering the machine back on and waiting for the moment of truth... and... it worked flawlessly.
So the machine is now in the configuration I first intended, well almost. I wanted:
- Primary (OS) Drive: SATA 1Tb (An old SATA 300 Samsung F1 from my desktop machine)
- Additional Drive: PATA 500Gb (The data drive from the old Ubuntu Box)
- Additional Drive: PATA 300Gb (The system drive from the old Ubuntu Box)
What I've actually got is:
- Primary (OS) Drive: PATA 500Gb (The data drive from the old Ubuntu Box)
- Additional Drive: PATA 300Gb (The system drive from the old Ubuntu Box)
- Additional Drive: SATA 1Tb (An old SATA 300 Samsung F1 from my desktop machine)
which I'm perfectly happy with. Should I need more space I can either add a USB external drive (or possibly FireWire?) or simply replace the 300Gb PATA drive with a larger SATA drive by following the same process as removing to other SATA drive. I have no idea how difficult it is to remove the drive with the OS on it, but I imagine this is a no-no. It doesn't really matter as by the time that happens either the next version of WHS will be out and I'll have re-installed anyway, and.or more likely I'll be running on other hardware.
And the old SATA 150 drive? Well that's gone into my desktop machine as a scratch drive, but to be honest I'm not really using it at the moment. The grand plan is to have it as a local backup to replace the external 300Gb USB drive I currently have attached, and have one less power drain in the house. I would copy the data from this onto the WHS, but even with duplication I'm a little nervous about this, and as I've discovered to my cost with the Ubuntu box: You may call it a back-up copy on a back-up device, but if that device contains the only copy of your data then it's actually the primary and only copy and it's not backed up at all.
I also took the chance a week ago to take the graphics card out of my WHS box, so it is effectively running headless and hopefully saving about 10W (it's an old card). This didn't worry the installation at all (my trial installation restarted 3 times before it settled down) and a single re-boot had the machine back on the network and running fine.
What has stumped me (and I wonder if this is connected) is that I also updated the LightsOut plugin at about the same time, and this no longer wakes from sleep mode. I didn't change any BIOS settings, but to check I need to plug the graphics card back in and look at the BIOS settings, which isn't ideal.
If, and it's a long shot, LightsOut requires the graphics card to work properly (and I've no idea why it should), then it will be staying in as it's a good add-on, and will likely save me more than the 10W drop in power when the machine is on.
Although if anyone has any ideas what settings I should be using...
Sunday, 31 January 2010
iPad Initial Thoughts
Around the same time a friend and work college of mine, John McDougall, purchased one of the early iPaq devices, a glorious device running a colour screen. It was amazing. Remember, the market at the time wasn’t concerned that these devices had no phone, phones were supposed to be separate from your PDA back then, despite the best efforts of a few manufacturers.
I remember one conversation where John derided my Treo (and I don’t mean that in a nasty way John) for running an OS which did not “properly” multi-task. “It’s a phone!” I told him, “Who cares?” “I can still have multiple applications running – or at least open, at the same time”. However his harsh words still lingered on toiling in the back of my mind...
Both our devices had hundreds of applications, both free and paid for, that we could source from a variety of locations on the web with little effort, and both were a joy to use in different ways.
That was about 8 years ago.
Soon after I bought an ordinary Nokia phone and an iPaq 4150, mainly as the Treo would often crash when answering an incoming call, and it was as uncomfortable as hell to hold against your ear for any length of time.
But that’s not the point I’m trying to make here.
This week Apple announced the iPad (apparently Version 2 will have wings!), a device running the iPhone OS. That means it currently doesn’t multi-task. That means it has no Flash support. That means you can only use Apple approved applications purchased via the App Store. That doesn’t mean rouge diallers and other nasties don’t already exist.
You may not even be able to buy ebooks for it in the UK (at least not initially). It hasn’t even got phone functionality (which would be odd I suppose), so in essence it’s an iPod touch with a very big screen. All this in a device that’s going to be “perceived” as a computer.
Don’t get me wrong, the iPad is a lovely piece of engineering from what I can tell, but it’s only an evolution in the hardware stakes. As far as the OS goes… well I didn’t want it on a phone, but on this, you’ve got to be kidding me! It is beautifully designed as far as presentation goes though, Very slick. However, I guess I’m not an average user. I think I’ll let Mr Stephen Fry buy, and keep, my one.
It’s not that I don’t even like this form factor, I really do. I loved my (now demised) HP Tablet PC (you know, one of those things that had a touch screen, a keyboard, and could be put into slate mode). This was however bulky to use and the battery life was only a couple of hours or so, 10 hours from this device will be very good and sets the benchmark for other devices to follow.
I think my ideal form factor could be something like the Apple iPad (and to me the big bezel around the screen could be a good thing) that slots into a keyboard or other portable type docking station to allow a real keyboard to be used (essentially like a laptop, plonk it into the bottom half of a laptop, with hinges and the additional ports!). How about if this was Bluetooth so I could use it or another keyboard wirelessly too?
It’s no secret that I’m a Windows man primarily, and in this rare case I actually feel a little pleased that the HP slate and others will be running Windows 7, you know, a real OS. Let’s hope the hardware measures up. If only Apple had seen fit to put OS X on the iPad. I still wouldn’t have got one, well, probably not, but I’d be more impressed.
Summary: Fail.
That’s possibly a bit harsh. Let’s just say it’s not what I’m looking for, it ticks the wrong boxes for me. It's a 'consumer device' not only in terms of market, but also in terms of functionality; it's designed more for consuming media than creating it. That's not what I'm after, but many will be, however even on this front I want to say "Must try harder".
Of course, Mr Fry and others will be snapping them up and I'm absolutely sure most people who do will be happy. It does look and will perform well, for what it does. It certainly doesn't deserve some of the accolades it's been getting, at least not in my eyes. Then again, some reviews have also been too harsh.
If you can’t wait to try one out I only have one suggestion to you. Get an iPod touch and put your face very close to it. It’s the next best thing to being there.
In the meantime if somebody brings out something similar, with the detachable wireless keyboard I mention above, and running Windows, well let’s just say I’m reaching for my wallet just at the thought.
Google is probably hoping the “Me Too” manufacturers will adopt either Android or Chrome, and I wonder where Windows Mobile 7 will fit into all of this. Any plans from Symbian in this arena, the last I heard the Nokia web device (MID, or whatever you call it) was running a variant on Linux, but at least this is a capable OS and can be made very pretty too. Not that Symbian isn't, in fact I do have a soft spot for Symbian as the underlying OS, but the UI plastered on top has let it down badly in the past.
I’d still prefer Windows 7 though, that’s where all my investment and knowledge is. Oh if only Windows 7 were multi-touch capable…. Hold on a moment ;-)
Thursday, 28 January 2010
WHS: The Big Install (Part 2)
Now that this is working I'm able to upload files to the home server via drag and drop in Internet Explorer, which will be useful, but not as useful as it was in the days prior to SkyDrive and Mesh. It's nice to know the only limits I'll have are my own disc space though.
And whilst I'm able to connect to the server via remote desktop, I'm not yet able to connect to any client machines. This is probably because I need to re-start, but unfortunately I didn't have time to test the laptop this morning, and the desktop machine is still less that 70% through its first backup at the time of writing (about 10:25), despite having kicked this off at about 20:30 last night (hopefully subsequent backups will be tiny, that's what you'd expect, if that's not the case I'm in trouble for disc space anyway).
One of the things I need to see after the desktop backup completes is if the media files get put into the media directories automatically. If not I'll be copying these with SyncToy periodically, but at least then I'll be able to remove them from the backup cycle, which to be fair is where most of the backup file size comes from.
The other feature I've made use of today is remote desktop via the Mesh client, which is really useful, but also incredibly slow (I guess the backup isn't helping). I've since opened up the required ports, but again I need to restart before these changes take place.
No doubt I'll elaborate in my next post.
Tuesday, 26 January 2010
WHS: The Big Install (Part 1)
I wanted to set the machine up as follows:
Primary Drive: SATA 1Tb (An old SATA 300 Samsung F1 from my desktop machine)
Second Drive: PATA 500Gb (The data drive from the old Ubuntu Box)
Third Drive: PATA 300Gb (The system drive from the old Ubuntu Box)
This was where I fell at the first hurdle however. I know the 1Tb SATA drive is working; however try as I may the BIOS could not detect it (the motherboard is a fairly old nForce 2 model in a Shuttle SN45 V3). After some time trying to work out what was going wrong, I substituted the 1Tb drive for an old 200Gb SATA 150 drive. This was recognised instantly and at a total of 1Tb unformatted storage, I decided to cut my losses and go with it, albeit with an already heavy heart.
So now my machine configuration is:
Primary Drive: PATA 500Gb (The data drive from the old Ubuntu Box)
Second Drive: PATA 300Gb (The system drive from the old Ubuntu Box)
Third Drive: SATA 200Gb (SATA 150)
All good, albeit not optimal, but then I can add more USB drives later, with an additional power cost.
The next step went relatively easily, if slowly, that was to install the Windows Home Server OS onto the machine. I left this running after I'd entered as much information as it required, and went to bed.
The following morning I went through the remainder of the configuration (setting Administrator password, etc.) and after eventually finding the drivers, installed the network card and connected to the network, then stepped through the Windows Update cycle via remote desktop until all updates were downloaded.
After this I hit the second hurdle; although I could connect via remote desktop, the WHS connector application kept telling me the password I was supplying was incorrect, which I knew for sure wasn't the case.
Later that day I Googled the answer which was that the server date and time was incorrect (I was even in the wrong Time Zone despite telling the installation to choose "English (United Kingdom)") and after adjusting these, the connector software did (connect, that is).
So I've now started to install some Add-ins which I'll probably continue doing over the coming weeks.
I also performed the first back-up of my (now only working) laptop, which I left running overnight and was reported as completed this morning.
I've now got to back-up the main desktop machine upstairs, which I'm worried may fill the HDD (so I've done some pruning and will be using that failed 1Tb Samsung F1 drive as a local backup store), and work out the best way of storing my media on the server so that it acts as a mini media hub.
The other task high on my list is to get the machine accessible from the outside world. I'll be referring to my book tonight and will probably be manually configuring the router to do this.
Naturally, I'll let you know how I get on here, but so far it's going fairly well.
Fingers crossed it stays that way.
Saturday, 23 January 2010
All Gone
I have now officially given up trying to retrieve anything.
Let the Windows Home Server installation trials begin.
Watch this space.
Saturday, 16 January 2010
Microsoft Virtual PC 2007
1. Create a Virtual Machine of the OS (Always XP, but could be any OS), ensure all the patches for this OS are applied.
2. Zip up the virtual machine image files and store them in a safe place.
3. Run all the tests etc. inside the VM we just created.
Then when you want to repeat the tests from scratch, it's simply a matter of unzipping the virtual machine image files over the top of the existing files and you're back to a clean machine next time you restart.
I know VMWare would allow you to do things like saving the virtual machine state at a moment in time so that this may not be necessary, but this was an approach I trusted 100% and which worked well for me on several occasions. Best of all you could zip or copy the VM image files at any time to save the machine in various states, allowing quicker testing from different start points or even running multiple simultaneous copies of identical virtual machines.
Recently I wanted to test a deployment against a clean XP machine for work. My immediate response was to download the latest version of VMWare Server and install this, however after the download stage I remembered that whilst installing "XP Mode" on my home PC I had noticed that the underlying Virtual Machine software, Microsoft Virtual PC 2007, was also able to run on windows XP (and all versions of Vista and Win7, not just the top editions), so I thought I'd give it a try.
I'm pleased to report it all just works, with no particular jumping through hoops. There is a Microsoft version of VMWare Tools (although I don't know if there will be a Linux compatible install yet) allowing such things as dragging of files from the host machine to the virtual machine, shared clipboard, and will even dynamically resize the screen resolution when running in a windowed mode, which is all highly useful.
It's all very slick, and allows the machine image files to be manipulated in a slightly easier way then VMWare (where you'd need to manually edit the files to rename them, with this you justload it up, it fails, you point it to the new file and it works).
And whilst it has some things I'd see as an advantage over VMWare such as not installing those nasty network drivers, it does only seem to allow the use of one processor (core) on the virtual machine, although I'm still investigating this.
Overall, Virtual PC feels more integrated than the VMWare equivalents, but somehow the simplicity makes it feel a little less configurable, but I'm still invetigating. Either way it looks like it could be a good choice for getting into running virtual machines. I'll post more if I find anything, either good or bad, worth noting.