Tuesday 29 December 2009

On With The Plunge.

There’s not been a whole lot of progress with my Windows Home Server experiments recently. The trial installation would have well and truly expired by now, but it was bought to a crashing halt when I added a third HDD to the machine – suddenly it all stopped booting and this time I couldn’t find a solution.

That wasn’t the main problem though, as a back-up server this would be inconvenient, but not fatal as long as everything else is safely stored elsewhere. What is really still getting me is the 500Gb of data still locked away on the old Ubuntu HDD, and the fact I have decided to run the server with the 1Tb drive currently powering my main desktop PC (in addition to the 500Gb drive and another I already have knocking around.

I decided to go for a couple of Samsung Spinpoint F3 (ordered yesterday to hopefully be delivered tomorrow) drives in the end, putting them in a striped RAID 0 configuration. I was looking at doing a RAID 5 config on 3 drives, but this would use 1Tb for parity data, and I can’t afford a 4 drive RAID 5 array (which interestingly would still only use 1Tb of parity). Besides which, as I’ve probably mentioned before, I don’t even fill 1Tb locally (although I could) so 3Tb would be massive overkill.

I figure RAID 0 with a scheduled backup to WHS should see me OK. If a drive fails it will be a pain, but not the end of the world. Hopefully I’ll get some performance increase in with the newer faster drives and striping as I believe this is what generally holds back my PC, however I'm lead to believe that boot times and application start-up are largely unaffected in RAID 0.

So when these drives arrive, Windows 7 Ultimate will be installed on the new array, I’ll copy off any remaining data from my old drive, then it’s back to getting the WHS box running. I should also have room for a nice collection of VMWare machine images, and I'll have a go attaching some old XP only hardware in XP Mode.

Lets just hope neither of the drives arrive dead, it wouldn’t be the first time.

Thursday 17 December 2009

Drawing to a new conclusion...

As those of you who read my various other web sites (and the earlier incarnation of this blog) may be aware, I started a new job at the end of April this year which resulted in me moving from a Java (and occasionally SQL) developer, on to C# (via Microsoft Visual Studio 2008) and back to (what has become over the years) the nightmare of Delphi 5.

Delphi, specifically version 5 was way ahead of the crowd in it's time, unfortunately that time was 1999. I used to love Delphi, it was so advanced compared to similar offerings such as Visual Basic that anyone who had used it seriously didn't want to go back to other languages unless they were offered a seriously large pay-cheque to do so.

Then a series of events happened which saw Delphi get left behind, the two main (from my perspective) being:

1. Java arrived and offered the opportunity to program in a new object oriented language that allowed code to run across different platforms. Many Delphi developers moved over to Java, and by using JBuilder which also originated at Borland, we felt at home in a familiar IDE too (versions 1 to 3 of JBuilder were written in Delphi, JBuilder 3.5 was the first native Java IDE for JBuilder).
2. Anders Hejlsberg was poached from Borland by Microsoft and as a result the lead architect had gone. Don't get me wrong, there were a lot of very talented people at Borland, but despite this there was always the perception (accurate or otherwise) that after Anders jumpred ship, the product was left in disarray.

Delphi was never as popular again.

This is all a long time before the .Net platform, and more importantly for the remaining Delphi developers, C# started shipping. In fact, Anders Hejlsberg was the chief architecht of C# after his J# language, understandably, upset Sun, so morphed into Cool, which was eventually released as C# (at least that's how I remember it).

Despite remaining a solid language, Delphi started to stagnate and fall behind Java and C# in terms of features and the integration of new technologies at that time. Although Delphi version 7 was a particularly good release (as far as I remember, was it version 4 that was always rubbish, even after two service packs?) it just wasn't enough. The job ads for Delphi were starting to decline, and its hey-day was now behind it. As a develper, that raises some concerns, and for me it was time to move on.

Java became my language of choice. Not only was the JDK free, but I'd been playing around with it since late 1996 in the version 1.0 builds. So it was that I moved to a job offering cross training to Java from Delphi, which after some complaining eventually happened.

And so Java started to pay the bills as well, if not better, than Delphi had in previous years. However apart from a few notable times (such as when James Talbot introduced me to the Spring Framework, thanks James) Java development was never as much fun as Delphi in those early days.

Don't get me wrong, I like Java a lot, but it rarely had the comparatively instant gratification moments that Delphi often provided. I think a lot of this can be down to two points: My Java programming involved little Swing (or indeed any visual) work, so whilst it was immensley satisfying to get JSP being constructed from a web server, or process huge amounts of financial data, it didn't grab my imagination in quite the same way. The second problem is that Java does so much I could never hope to be comfortable with it all. It is true that this is the case with Delphi (DCOM required me to grab a book and ISAPI extensions have never been produced by this particular mortal) and also C#, but with Java you always felt like you should know it all, it's not enough to just be aware it exists until you need to use it.

So now I'm spending a proprtion of my work time developing in C#, and to my great delight I find it has some of the same highlights as Delphi used to, only more applicable to the world of now. I don't wish to be unfair to the latest versions of Delphi, which I believe are very good, but the whole community around C# is massive, and it's not the dog of a language that Visual Basic was (is?)

I'm now re-learning how to implement things like threading in yet another language. I don't regret this for a moment though as not only may the approaches to some things have changed over the years, but I also believe that in doing this you always get a little deeper understanding, and hopefully wash away a few of the bad habits you may have picked up over the years.

One of the new areas I'm interested in investigating further is the Windows Presentation Framework (WPF or Avalon to some). This looks similar in many basic ways to Swing in Java, only it feels like a later revision. As a result hopefully I'll be able to take back some of what I learn to future Swing applications.

WPF is still quite new (having been released alongside Windows Vista) and the plan is eventually to make this and Silverlight one and the same thing (or so I believe, at the moment Silverlight uses a subset of WPF).

The down side on this is that a lot of the announcements about Silverlight 4 seem to be moving away from cross platform solutions towards Windows only technologies such as COM. I guess time will tell on that front.

WPF is also a core component of Windows 7, so there's significant opportunity there. Also, I believe, the Windows Mobile 7 UI will be rendered in WPF... that will be awesome if/when it happens. And if they start to add the tools into Visual Studio Express from installation then the uptake of WM7 will only improve in my opinion (you can code Windows Mobile Apps without Visual Studio, but it's a lot more complicated without Visual Studio Professional of above. See my later Windows 7 follow-up post in a few days for more of what I think about this).

There's lots of new things being offered by .Net and C# that I need to look into, if not become an expert in, but just to be aware and not completely ignorant of them. The way I'm approaching this is far more relaxed than Java, so hopefully it will be more fun and I'll achieve even more, then take some of the positives back to Java some time in the future.

At last I am once again excited about the possibilities. I just need to shed some (or all) of this Delphi work to give it more of the time it deserves. Oh well, needs must.

Tuesday 15 December 2009

Just a quick one...

This quote from The Register made me laugh:

When Jobs petulantly pouted that Windows stole the Mac's look and feel, Gates countered with "Hey, Steve, just because you broke into Xerox's house before I did and stole the TV doesn't mean that I can't go in later and take the stereo."

I think I may be using that particular quote in future.

Here's a thing, reading a book by an ex-Microsoft employee a few years ago I seem to remember the said employee reminising on development of Windows 1.0. The first (or at least an early) version of scroll-bars in windows had a dynamically sizing thumb area to reflect the proportion of the window visible compared to its overall size. When Gates was shown this he ordered it to be removed, not because he didn't like it, but because it looked too much like the Apple OS, so the fixed size area that some of you may remember was born.

It seems like such a bad choice to make now, but there you go. Interpret that as you will, to me it says Gates didn't want to be seen copying, but knew that a WIMP environment was the way to go. Of course, these day's the whole concept would have probably been patented by Xerox on the drawing board and never implemented. Still, that's progress.

Either way, I know who I'd rather work for...

Monday 14 December 2009

Is that a virus in your pocket or are you just pleased to see me?

Whilst on Facebook last night, Emma visited one of the app pages she'd been to before (some kind of family tree app I believe it was). As the page was loading a pop-up appeared warning her that her PC as infected and offered to scan the machine. Hopefully at least about half of you can guess where this story is headed (if not the exact next course of action).

Despite constantly telling me I shouldn't be allowed anywhere near computers (as I tend to break them and are forever re-installing Windows, but as I try to tell her, that's partly due to the fact that I'm forever tinkering to try and learn more), she called me down from upstairs to advise.

As it happens I recently started running the free Microsoft Security Essentials pack (after a year with Avira Premium, which in all fairness caused me no end of trouble by being over secure), and although thus far I've never seen MSE flag a warning, I was pretty sure that this just looked like a web dialog box, and so told her to click the 'Cancel' button. That was probably the wrong thing to do but all that happened was the same dialog box appeared again. This time I told her to click the Close icon (the [X] button in the top right) and the dialog disappeared to be replaced with what looked like a windows explorer dialog with a scan taking place on the hard drives. This scan reported to find countless instances of malware and trojans.

I'll admit at this point I did a double take, again possibly due to the fact that (as yet) I've not been hit by a nasty while running the Security Essentials suite. That was only for a split-second I'm pleased to say, and a quick look at the icon in the top left of the window showed this was indeed another web page trying to scare us into buying a real trojan. We closed the web page, performed a quick scan via MSE (which took much longer than the full scan from the bogus web page) and sure enough the machine was reported as clean.

I was very impressed with this attack. The crooks had done a decent job and your average user, especially those who don't know about this variety of scam, would have been scared and possibly very tempted to download the 'cure', probably paying for the privilege.

Needless to say Emma has deleted this application from her Facebook list.

So what can we learn from this:
1. Beware of this type of scan.
2. Download security software and keep it up to date. Always go back to this to check if you suspect anything untoward is going on. No virus checker will catch everything, but at least you'll be starting from a point you trust.
3. Your main (day-to-day) user accounts should not be set up at an administrator level. Create an administrator account (or two if you are not the only user) and only use this to install software. For day to day usage use a user-level account, as you would under Unix. On this machine Emma’s user hasn't got Admin rights, so she would have needed to jump through many hoops to get the fake software to install. It's not foolproof, but it's actually one of the best defence approaches out there.

I'd also like to suggest to the suppliers of security suites that they have example dialog screen shots for users to refer to. The only time I paused to consider if this was real or fake was because I've never seen the real warning from Microsoft Security Essentials.

I'll be doing a full scan on the machine later this week, but I think it's 1 - 0 to us this time. Well done Emma for being on the ball too! Many wouldn't have been.

Tuesday 8 December 2009

Bloody Linux!

I've just spent all this evening trawling through the Ubuntu community help pages on LaunchPad, and trying various tools in Windows to get my Linux HDD to mount, all with no success.

So in the next couple of days I'll be trying to run from a Ubuntu Live installation to access the drives, after which I'm afraid I'll give up and loose the best part of 400Gb of data.

I'm not happy, there's a lot of work there (not to mention probably a few paid for software apps too).

I imagine won't be coming back to Linux for a long time, not least due to the attitude of some of the community members to people asking for help.

You know what, I don't want to be part of that scene. Goodbye Linux, you served me well right up to the point where you screwed me.

Friday 4 December 2009

PhotoSynth Updated

I see from an old posting on the Channel 9 RSS feed that Photosynth has been updated.

If you are interested in photographing locations or objects you really should take a look at this, it's awesome technology.



In other news you may have seen that Bing Maps is starting to use GeoTagged Photosynth images, so there's another chance to show off your photographic skills. I have images scattered over Google Maps via the postings I've made to Panoramio, so it will be interesting to see if any of my synths make it to Bing.

I should probably check that they're geo-tagged first!

Wednesday 2 December 2009

Windows Home Server – Part IV

Well, I’m down to 10 days before my Windows Home Server trial installation expires, and as promised I’ve had a go at running the box with the graphics card removed. Actually, I also removed the TV tuner card that was still in there from when the box used to perform its Media Center duties.

The box booted, however the HDD was still spinning a few minutes later, then the box rebooted itself. Then the same thing happened again, then on the third (or possibly fourth) reboot everything settled down and now seems to be running normally.

So what’s the power draw with the two cards removed?

Prior to taking the cards out the machine was running at 102 watts (whilst the lower specified Biostar box was running around 90 watts).

The Shuttle box now also runs at about 90 watts, so a decent saving of about 10 watts (or 10%) so I’d get an extra couple of hours a day for free on the electricity bill, or about 3 days a month. Worthwhile.

As a matter of interest, unplugging the power from the DVD re-writer drive drops this to 89 watts, but to be honest the meter I’m using isn’t likely to be that accurate.

The other point to note is that there is only room for 3 HDD inside the box, and this will up the power requirements a little. I’ll investigate this more later, but I reckon that if I install the OS on the 500Gb drive from the Ubuntu machine, then use a 25oGb for the second drive and either another 25oGb or 160Gb drive for the third (depending what I can salvage) then I should be good to go. This also depends somewhat on me getting the stuff off the old Ubuntu installation first. It’s on the to-do list.

Hmmmm, I wonder if I can force another drive in somehow.

(I’ve just had a look and possibly if I mount the drives vertically. Or have one outside the case – risky considering its intended location. We’ll see – perhaps the BIOS won’t allow it….)

Stay tuned.

Tuesday 1 December 2009

Disappearing Code (WHS Update 3)

In my previous post I talked about Mesh and mentioned the pitfalls of the current implementation, specifically the fact that if a file ‘goes bad’ in one location, it will quickly go bad in all synchronized locations, with no option (that I can see) to revert to an earlier version or undelete.

One of the folders I synchronize on Mesh contains code for a personal project I’ve been working on for a few years. Fortunately, most of the work I’ve been doing is getting my head around what I wanted to achieve, and devising the core of a design and an implementation approach to achieve this, meanwhile I’ve cut very little code.

About a year ago I created a few of the basic objects and tests in Java, and have recently been in the process of converting this Java code to C# with the intention that not only would I be able to use this project to aid in my C# education, but that also by the fact that the app would be better solved (at least initially) by a Windows desktop application (and possibly a Windows Mobile incarnation), rather than a generic Java Swing application. My ultimate goal is to make a Java Servlet web based implementation followed by a generic Java client; what better way to show off your skills to prospective employers than a solution implemented in two languages targeting multiple different clients?

Anyway, I’ve strayed a little, the key is that the Java and C# code is kept in folders replicated by Mesh. One evening late last week before setting off home from the office I decided to load the C# version to see what suggestions ReSharper would have to clean things up (ReSharper is an excellent tool – take a look if you work in any of the .NET languages, it’s good enough that it’s changed my style of programming in a few areas due to its suggestions). So I navigated my way to my replicated C# folder and… well you can probably guess: My source files were missing!!!

Bugger.

There’s only a couple of hours work there, but it’s a pain to write such things a second time. I don’t know who deleted (or hopefully moved the files) yet – me or the Mesh. Hopefully it’s me who has moved them (although the fact that some files still exist in the directory makes me wonder), but it does highlight the fragility of the system for longer term work.

So then I set to thinking about this less than ideal situation. I’ve been using Subversion for a couple of years now, and this is exactly what that system is for – source control of code. I did spend several hours trying to set up a subversion server on my (still currently dead) Ubuntu box, but failed, however after a quick search on Google I see several people are running subversion on Windows Home Server with it externally accessible from other locations. This down side of this is that it does open the machine up to the outside world, but I was intending to do this for such things as music streaming anyway, so it looks like the way I’m going to go.

I’m taking a risk here in as much as I haven’t done a test install on my trial version of WHS (which only has a few days of trial time remaining), but there’s enough going for Windows Home Server now that I know I’ll be buying a licence soon (especially since the 120 day activation key has been withdrawn from the Microsoft site – thanks guys!). You can do all this stuff for free in Ubuntu, but frankly it’s not worth the hassle to me, at least for the moment.

I also did some quick investigations into the power requirements of running the old Ubuntu box (Biostar iDeq 210) verses my old PC running the test WHS install (Shuttle SN45V3). Both machines have 2 HDD, but the Shuttle has a graphics card while the Biostar is using the internal graphics chipset (after all it was only running Linux in terminal mode). The Shuttle idles at about 102 Watts, while the BioStar was about 90 Watts. Aside from the fact they both have different processors, Hard Drives and probably memory, the extra power draw on the shuttle can probably be explained by the graphics card (and it has an AMD Athlon XP 3200+ as opposed to the BioStar 3000+). The Biostar would be of ample horsepower to run WHS, but it never properly managed to run XP without problems, it would periodically crash with a display driver warning on the BSOD, a problem I never managed to rectify either with re-installation of the OS and Drivers, or by installing an external graphics card, so I’m cautious of running WHS on this box.

Considering everything, and for the sake of an extra 10% power draw, it looks like the Shuttle box will get the WHS build. 100 Watts is more than the 35-50 Watts of the HP MediaSmart box I was looking at, and it won’t have the expandability of that box, but that machine costs over £400, so even factoring in the WHS operating system (at £66) it would still take several years to recoup the money, based on current energy prices.

The next steps are that I need to take the box apart next to see if it’s feasible to get 4 hard drives in there (3 should work as I’m going to remove the broken DVD drive, but 4 would be better if I can find the space).

The box is going to live in the garage, so I also need to drill a bigger hole in the wall to get a Cat6 cable out there (the box only has a 100 Base-T connection, but I don’t want to be running a cable twice). When I’ve done all that I’ll order the OS, a 10 meter Cat-6 cable and possibly a new bigger HDD and take it from there.

I wonder if WHS will run headless… a quick search suggests it will so I suppose that will probably be my next test (after a re-install of the trial I suppose), after all, if I can take the graphics card out the power draw may drop a little, and as they sat at Tesco “Every little helps!”. By headless I mean without a graphics card at all – not just without a monitor attached. That may sound odd, but I remember the early versions of Java would fail if certain operations were performed without any graphics card present (I think it was something to do with rendering AWT components even if they were to be served up remotely, but I’m probably wrong, this was a long time ago).

Oh, and now I see Power Pack 3 is out!

Stay tuned.