Monday 12 December 2011

#Know11 -- Service Now Conference

For those who follow me on twitter and elsewhere, you may have found out (through many many tweets) that I have been out of the office the past two weeks for work.  7 or 8 airports over the course of two weeks!  Not many people get excited by that.

I presented at the Knowledge 11 Conference for ServiceNow! on December 8, 2011.  It was nice to be able to share some of the success stories we are developing here at Swiss Re related to IT Service Management.


The presentation was with one of our colleagues (exceptional chap) from Infosys, Subbarao Chaganty about the concept and IT Capability we developed around "Task Management" in ServiceNow!

Some people will tout the values of Runbook Automation in ServiceNow.  I think they've done a great job at developing something cool ... but it really is only applicable in circumstances where you have a fully repeatable end-to-end process you can automate.  After working in this space for almost 10 years (automation related to IT services and infrastructure) it's a daunting and often impossible task to get buy in from all of the key stakeholders to support the documentation, agree to an end to end process, and the subsidiary tasks --- all are strong requirements before you can automate fully and properly.

How did we differentiate ourselves so that we can contribute value back to the business?

You'll have to wait and see ... The presentation should be available online at some point in time:  http://www.slideshare.net/servicenowdotcom/tag/knowledge11-europe

Monday 17 October 2011

6 days to go....@jdolgy

Jack turns two in less than a week.  I thought I'd take a non-technical interlude to reflect.  Two years ago now ... Lucy had encountered a few problems with the pregnancy and I'd rushed her super duper quick (i broke a few traffic laws) to Al-Ahli Hospital in Doha, Qatar.

For those who are new to reading this and that, I had this fantastic idea 30 months ago to move my wife who was six months pregnant to Doha for what was sold as an epic work adventure in "thought leadership" and a genuine opportunity to work on some pretty neat things.

We have a lot of fond memories from our time in Doha, especially the ones that happened the week after October 24, 2009.  Jack was born on the 24th via emergency c-section.  A little over 5lbs.  Not bad for being 2 months early!  He spent 5 days in NICU and neither of us could hold him that entire time.  On the 5th day, they said right ... Lucy, discharged.  Jack, discharged IF we could bottle feed him.  ha ha.

A lot of people told us before, during and after, how time flies ... It really has.  Jack is a proper boy now ... full weight, full menace.  Terrible 2's have started early and he fully enjoys testing the limits of Lucy.  He's trying to find his boundaries and is enjoying each and every minute of it.

Here is Jack from Yesterday:


I had written a bit on his blog the other day too.  http://jack.dolgy.com/

Anyway ... the next post will be back to uber geeking.  Just thought I'd duck out while my computer is being rebuilt and leave some candid thoughts..

Friday 14 October 2011

Ubuntu 11.04 -> 11.10

July 2, 2011:  

I swapped to Ubuntu from Windows.  What a great experience.  So good, here is the link to the original blog post and a nice ubuntu graphic.


October 14, 2011:

To my surprise, my computer prompts me to upgrade to 11.10.  Fancy.  New.  Minor changes.  "Cosmetic".  Well, you know what?  The upgrade didn't work so well.  Why?  Well, [ Bug 811441 ] reported on July16, 2011, is why.

I followed one of the suggested fixes.  Basically, moving all contents of /var/run and /var/lock to /run and /run/lock ... removing /var/run and /var/lock and then creating sym links from /run and /run/lock to /var/run and /var/lock ... That's how I'm online now, writing this rant.

Reading the bug report, it feels as though, my next reboot will cause me to have the same problems again.  Honestly.  This is why Linux has never been able to catch up with Microsoft or Mac ... a normal user who doesn't have resources and a knack for typing and hacking will never, in technical terms, unfuck themselves ... or at least their system.

At what point will developers do proper regression testing and QA before something is unleashed publicly as an official release?

For as much as I don't enjoy Windows ... I never had these problems.  Ever.  That's something to admire ...

On the flip side, with Fedora, RedHat previously and now Ubuntu ... it's just one nasty fart under the sheets after another that leaves a bitter taste in my mouth and sours the overall experience that was going so well...

Wednesday 28 September 2011

FC Bayern Munich vs Manchester City FC

Been there, done that.  It's been some years, but the opportunity finally arose where I could watch a live professional football match.  Imagine my surprise when I found out it was a UEFA champions league match ... nice.  


The game was in Munich.  I live in Zurich.  Train to Munich from here takes 6 hours.  Driving, 3 hours.  Flying ... too much $$ 


I drove.  Of course.  Headed out Monday evening and arrived in Munich just in time to grab a few pints with a former colleague.  The next day ... game day ... a lot of MCFC supporters were flying in.  4 of them met up with us at the Hofbräuhaus ... here we had some food and beer.  Unfortunately, the night before I had a bad beer.  So bad in fact, it joins only one other beer on the banned list.  


Beer Banned List:

The beer gave me the worst heart burn and hiccups.  They continued all day on Tuesday that I did not participate all that much in the festivities.  Shame really.  

The Game:

Ok ... I don't get football.  I don't really watch it on TV by choice.  I will, however, join people who watch it as the atmosphere is interesting and entertaining.  The way people can string a half dozen profanities into a sentence that works and is amusing ... why not!  Usually makes a lot of sense too.  A lost skill.  

The stadium, Allianz, is quite impressive.  Here's a panoramic from inside:


In the end ... City lost.  2-0 ... Shame ... but on the positive ... it's sometimes nice to be at a home stadium when the home team wins ... you get a real feel for the vibe.  

After the game, as I hadn't had any drinks the entire day due to the hiccups ... I opted to get in the car and boot it back to Zurich ... deviating from the original plan of staying Tuesday night and heading back Wednesday morning.  I'm not a morning person.  I can stay up late without trying ... and traffic is less at night than it is in the morning ... arrived home at 2am.  3 hours non-stop in the car with me and the hiccups ... it's brutal.  BRUTAL ... That beer that caused it will forever live in the bowels of the beer list ... it's so bad it'll always be last on the bad beer list ...


There is something for next time.  I went to Munich during Oktoberfest and DIDN'T go to a beer tent .. means I have to go back sometime in the future to try Oktoberfest proper...

-sd

Saturday 27 August 2011

updating the Samsung GalaxyS in Ubuntu with heimdall

A while ago I opted to drop Windows 7 and move back to a *nix variant.  Ubuntu was the one.  One big issue I had was with regards to my phone.  I am constantly upgrading the firmware on it, and the only way to do it was via Odin in Windows.

If you want to root your Galaxy S, here's a good page, but it's not good if you don't have Odin:  http://androidflip.com/how-to-root-samsung-galaxy-s-running-xxjvr-android-2-3-4-gingebread/
  1. I downloaded the “CF-Root-XX_OXA_JVR-v4.1-CWM3RFS.tar”
  2. Extracted it which left me with a zImage file
  3. Ran the command:  heimdall flash --kernel zImage

 Simple.  Right?  Well, what if you wanted to upgrade the full OS on your Galaxy S to something like uh, Gingerbread ... (2.3.4) or even (3) when it comes out?   Same principle really, just a few more arguments for heimdall.  I came across this on the site:  http://wmarkito.wordpress.com/2011/02/11/flashing-android-froyo-in-a-galaxy-s-with-ubuntu-and-heimdall/

heimdall flash --factoryfs factoryfs.rfs --cache cache.rfs  --param param.lfs --kernel zImage --modem modem.bin --pit s1_odin_20100512.pit


Friday 15 July 2011

some stackoverflow.com flair!

I can't resist



profile for sdolgy at Stack Overflow, Q&A for professional and enthusiast programmers


I've been using StackOverflow.com quite a bit over the past few weeks.  Similar to a car accident happening before your eyes ... the amount of amusement I get out of some of the questions is brilliant.  

Saturday 2 July 2011

Swapped to Ubuntu

Over the past few weeks, I have noticed that my Windows 7 laptop was performing worse and worse.  Today, after having it lock up well after 3 separate reboots, I had had enough.  I went and grabbed 2 USB keys, and the 2TB drive I have kicking around.

  1. Made a USB boot of 11.04 Ubuntu
  2. Made a USB boot of Windows 7 Premium
  3. Backed everything up that I had ....
I have to admit, the Ubuntu install was the fastest, cleanest and easiest of all the ones I've tried.  I have been a die hard Fedora fan for years.  The last version I installed was Fedora V12.  I believe 15 is out now.  

Of course ... having said that, there are some things that remind me why I continually drift back to Windows as my primary operating system after a few weeks / months of gradual frustration:
  • I have a touch pad on my laptop.  I hate it.  It's a Lenovo ... I have a nice track ball.  I LOVE IT.  Problem is, disabling the touch pad isn't as simple as right clicking somewhere and doing something.  You have to install another application that does this and that ... or you can edit the X11.conf ... yeah, not today.  Thanks.
  • I am extremely cautious to only install "stuff" from the Ubuntu Software Center.  I have absolutely no issues downloading crap, compiling it and installing it ... however, I want to see how long I can last without fundamentally making changes to what's going on underneath this pretty facade.  Which brings me to my next gripe.  The software I want, doesn't exist.  For 10 years, it has been this continuous battle I've had deep down about passion versus productivity ... seems you can have both ...?
  • Exchange 2010 connectivity.  I have my Samsung Galaxy S (Android) configured to connect to my Exchange server and get emails and calendar and all that.  In a full blown operating system (Ubuntu 11.04) I cannot.  I have tried Evolution.  I have tried Zimbra.  It's sad really.  Sad and pathetic that a little phone can out function and out feature my all mightly laptop and operating system.  Guess what?  This is a reminder to future generations why iPods / iPads and smart phones are taking over ... they work.  they just work. 
What about some good?
  • Multi-screen display, and HDMI are working beautifully.
  • Performance is what I had expected ... Fantastic.  I now have a Windows 7 VM running while I have my development environment running in another CentOS VM.  At the same time, my Ubuntu experience is not slowing down and is not chewing away memory ... 
  • Hardware support.  If you have experience with Linux, and Red Hat....going back over the years, getting the right level of support for your hardware was horrible.  It's only just recently I've forgotten what the chip-set was on the network card for my old computer ... the reason why it was etched into my brain?  very poor support ... compiling kernel modules, trying fancy things that didn't work ... it was a nightmare.  EVERYTHING on my Lenovo laptop works.  Bluetooth, wireless, camera, touchpad :(, trackball, HDMI ... That's super..
That's all for now.  Back to grinding out some more code and "stuff"

Monday 6 June 2011

Weekend in England

It wasnt just a weekend in England....it was a weekend ALL over England.

Landed at London City which is fantastic if you want to be in the city.  Instead, DLR and tube to Euston to get a train to Birmingham International and then the 30min drive to the in-laws and Jack.

The next day (Friday), back to International to pick up a rental and drive down to Midhurst and a wedding on Saturday at Cowdray ruins. 

Sunday it was up super early to drive to our newest niece's Christening...to which Lucy and I are Godparents.  This was outside Tamworth. 

After the Christening....headed back to Four Oaks and then to The Lodge for a wonderful curry. 

This morning, up early...rental back to International.  Train to London Euston.  Tube & DLR to LCY..flight back to Zurich.

I'm tired but wanted to show off the happy family in the picture on this post.


Thursday 2 June 2011

wedding photos

not sure if we ever posted our wedding photos properly on the internet for folks to mock, gawk or whatever.... if not, here you go.


Unfiltered.


Sunday 22 May 2011

Apache Cassandra & RESTful API

Over the past few months I have been heavily involved in an uber-top-secret nights & weekends project.  Is it selling a virtual Chia-Pet?  I wish.  That would be COOL.  Regardless of what it is, I jumped into the 21st century and got on board with the REST of the world.

REST:  Representational State Transfer:  http://en.wikipedia.org/wiki/Representational_State_Transfer

Without getting into too many details, what I love is how easily I was able to create a REST API that interfaces with Apache Cassandra.  I have an API that fully supports PUT / POST / GET / DELETE / SEARCH without having to write all that much code.  Admittedly, I did it with phpcassa which may not be the best, most efficient, or whatever .. but I have to say.  It works and I rarely touch the code.

Some simple concepts I implemented:

  • A resource is a 1:1 mapping to a Cassandra column family.  For example:
    • http://api.example.com/user/ is a reference to the "user" column family
  • The element that follows the resource is a 1:1 mapping to a key in a Cassandra column family
    • http://api.example.com/user/sdolgy is a reference to the key "sdolgy" in the column family "user"
What is great here is that as the design changes or new information is added to Cassandra, I am making no changes to the REST API code.  New column families, new keys ... it's all good.  Simple.  

The only issues I continue to have are the ones around security.  This is always an epic or regal battle / debate on the best way to approach and tackle this problem.  Some people are big into OAuth.  There are still security concerns over OAuth and even some references to that, despite the big boys (facebook / google / twitter / etc. ) are using it ... it doesn't mean it's more secure or the best way to secure a REST API.  For now, I have implemented my own variation and will have to revisit in the future before we launch the online CHIA PET....

Here is a good tutorial on creating a PHP REST API if you are keen to get started:


-sd

Friday 13 May 2011

hong kong or bust

some of you may know, and some of you may not, that i am currently in hong kong.  why am i here?  that's a very good question.  originally, i wasn't supposed to be here.  this is the week that the Hong Kong 5's Ice Hockey tournament is on.  I had scheduling conflicts at the time of planning a few months ago and opted out ...

fast forward to 3 weeks ago and i received an email about a player getting hurt and not being able to play.  checked my schedule and some other things and the planets had aligned.  this dolgy was going to hong kong.  there were some other reasons for the trip too.  met up with some old friends and old colleagues i haven't seen in a few years.  that was nice.

the tournament itself is as always, very well organized.  if you ever get a chance ... find Keith Fong at MegaBox and let him know that the tournament is, and you'll find out if you are ever here, one of the best organized tournaments and facilities around.

the team this year didn't fair very well.  0 wins, 4 losses.  2 goals scored.  but that's ok.  it was still fun.

the food here is brilliant.  the mtr here is brilliant.  i really do enjoy coming here... but it's time to go.  i miss this guy:


gone a week without seeing or speaking to Lucy and Jack has been very hard.  The timing and schedules and all of that haven't worked out ... been insanely busy days of hilarity and hi-jinx

British Airways.  Take me home.    

Tuesday 5 April 2011

Toronto Q1/2011

We spent the last 9 days in Toronto.  here is a photo of us all on our last morning.  i look like a goof and ruin the photo....but how awesome do jack and lucy look? 

videos can be seen at:  http://youtube.com/sdolgy
photos are on picasa:  google search picasa sdolgy

highlights from the trip:

- $7.00 for 1 week of smartphone data plan on rogers
- jack used a straw for the first time
- jack said the word 'car'
- uncle jake and jack got on very well...nice to.see


Friday 18 March 2011

2006, thanks for saving me some time.

Tonight, I was trying to get subversion to work.  Normally, this isn't an issue ... except when you are tunnelling through SSH and SSH is on a non-standard port.  The default port is 22.  If you aren't using that, subversion is a little mental.  The solution?

http://peat.wordpress.com/2006/09/08/subversion-alternate-ssh-ports/

So nice.  Now it works.

Tuesday 15 March 2011

how awesome is jack?

awesome.  i have been posting on Jack's blog, but not a lot on mine, related to all of us.  as such, some people may  (if you care) have been missing out on all the photos and videos.  each month I have been uploading photographs straight to my picasa account:


March 2011


above are the photos for march.  you'll see some good photos, some decent photos and some awesome photos of jack with his new audi...

Friday 11 March 2011

i love ice hockey ... but...

Air Canada published a letter to the NHL following a hit the other night during the Montreal / Boston game:
"From a corporate social responsibility standpoint, it is becoming increasingly difficult to associate our brand with sports events which could lead to serious and irresponsible accidents; action must be taken by the NHL before we are encountered with a fatality,"
http://www.thestar.com/sports/hockey/nhl/article/952137--air-canada-tells-nhl-to-take-off

Normally, I am not a fan of Air Canada, but this is great. 

I love hockey, and like others, I am sitting around, waiting (not by choice) to hear news of a fatality in the NHL. 

With a little boy who will one day play ice hockey -- he has no choice in this matter -- it's important that he grows up aware of the good and bad.  Growing up, I knew all too well how devestating checking from behind is.  This was rampant in the late 80's and 90's ... Now, it's rare to see and it's great.  Kids grow up knowing its bad and it promotes better behaviour.  Sure, some kids will never get it...that's just life.  Some people grow up to be murderers.  We can't fix everyone ...

For me, I want Jack to grow up knowing right from wrong.  I believe fights and hitting must exist in ice hockey ... but deliberate intents to injure ... WWE styles ... they have no place.  If your hit or actions are good enough to get on a Don Cherry -- Rock em' Sock em' video ... I think you have overstepped the boundaries. 

Well done Air Canada for stepping up. 

Thursday 10 March 2011

HipHop-PHP

Where do I begin on this one.  Over the past 12 or so years, I have always enjoyed PHP.  Despite it's failings, I still prefer to prototype and throw together web applications with it, over anything else.  Sometimes I come up with something pretty cool.  Often, this is for a friend.  Although I am happy to give them that cool thing, sometimes I regret giving away the intellectual property.

https://github.com/facebook/hiphop-php/

"HipHop for PHP transforms PHP source code into highly optimized C++. It was developed by Facebook and was released as open source in early 2010."
Much to my surprise, tonight, I downloaded, configured, installed and tested.  It all worked, first pass.  No tinkering, no nothing.

Second, I took the most complex PHP project I have, with lots of different dependencies and pushed it through. Guess what?

It works.  It really works.

Awesome.

Wednesday 9 March 2011

Apache Cassandra & nodetool

Today I was playing around with a cluster of 3.  How can I have new apache cassandra instances join and leave and allow the cluster add/remove to function somewhat autonmous.  Joining is not a problem.  The auto-bootstrap feature works a treat.  Leaving on the other hand.

$CASSANDRA_HOME/bin/nodetool -h 10.0.0.1 decommission

As I understand, when this is run, the node will stream all it's data out to other nodes in the cluster and remove itself.

When I view the ring from another node:


10.0.0.1    Down   Leaving 218.71 KB       21.76%  61078635599166706937511052402724559481

I see this message.  Great ... but after an hour of waiting, I give up and try to force the removal of the token:

nodetool -h 10.0.0.2 removetoken 61078635599166706937511052402724559481
Exception in thread "main" java.lang.UnsupportedOperationException: Node /10.0.0.1 is already being removed.

Ok then... this is interesting:  

nodetool -h 10.0.0.2 removetoken status
RemovalStatus: No token removals in process.

I don't get it.  How do I gracefully remove a node?  Finally, I killed the node on 10.0.0.1 and removed it's data.  Ungraceful.  I then went to the other nodes, still couldn't force it's removal.  Started the node back up on 10.0.0.1 and it's rejoined the cluster ... with data spread evenly around.  Not exactly what I wanted ... oh well....

I'm sure I've missed a concept.  So, now that I have a 3 node cluster working and balanced, I turn off cassandra on 10.0.0.1 and check the ring from another node:

nodetool -h 10.0.0.2 ring

10.0.0.3  Up     Normal  224.21 KB       40.78%  24053088190195663439419935163232881936
10.0.0.1    Down   Normal  213.51 KB       36.78%  86624712919272143003828971968762407027
10.0.0.2    Up     Normal  244.42 KB       22.44%  124804735337540159479107746638263794797

Now, to try and remove that node by removing the token:

nodetool -h 10.0.0.1 removetoken 86624712919272143003828971968762407027

Job done, the node is gone...

nodetool -h 10.0.0.2 ring
10.0.0.3  Up     Normal  224.21 KB       40.78%  24053088190195663439419935163232881936
10.0.0.2    Up     Normal  244.42 KB       59.22%  124804735337540159479107746638263794797

-sd

-- maybe this is my problem:  CASSANDRA-2072

Security Groups & Amazon Web Services (AWS)

It's funny.  Been playing with amazon web services quite a bit over the past few weeks and didn't give much attention to security groups.  It's only now, after this past weekend have I developed a strong appreciation and respect for them.  Some background:

The way amazon operates is quite interesting.  All instances get a dynamic internal IP.  That IP stays for the duration of that machine being on.  If you restart, the IP changes.  Now, you can pay for an elastic IP which maps to the instance ... and that never changes.  But it's mapped.  The instance never really knows anything about it.  It always has this internal IP .... 10.10.10.10 one day, reboot, 10.20.10.20 the next ....

Now, security groups.  It's one big glorified access list.  You have to specify which security group your instance belongs to.  Fair enough.  By default, it's deny all.  You can start opening things up, saying that 0.0.0.0/0 can access your instance on TCP/80.  That means the world can get to that instance on port 80.

With me so far?

So what if you wanted to deploy a multi-tier LAMP application to AWS:

2 x web server
2 x application server
2 x mysql ....

How would the security groups look then?

security group 1:  web servers
security group 2:  application servers
security group 3:  database servers

Simple!  You then configure your access lists ... right?  Sort of.  If you want to do it properly, you define that only TCP/80 & TCP/443 are open to 0.0.0.0/0 for security group 1.  

Security group 1 should have access to security group 2 on some ports .. like 8080 or 80 or 8443 ....
Security group 2 should have access to security group 3 on some ports ... like 3306 (mysql)

Normal instinct would say, let's put in the IP's of each machine ( 10.20.10.20/32 and 10.10.10.10/32) for example ... well ... in the AWS world, this isn't correct.  When you restart your machine, the IP will change and your rules will not be valid.

Now unfortunately, the way to get around this is not available through the AWS management console.  The only way I've found so far (limited amount of looking) is to download the ec2 client tools, generate an X509 key pair, and use the tools:

ec2-authorize us-app -P tcp -p 8080 -o us-www

What this does, is says that the security group "us-app" allows the origin "us-www" on TCP/8080

You are defining the policies with other groups.  This is great because you can then add new instances into whatever group you want, or restart an instance, and the policies will still be valid.

Hopefully this is of use to someone one day.  I'm glad I've stumbled upon it now after some small pain points and not later when the pain points would be much higher ....!

-sd

Friday 25 February 2011

amazon web services

finally got around to jumping on the bandwagon and converting from a 1and1 customer over to amazon web services.  let's be honest, $100usd a month versus less than 1% of that.  it was a no brainer.  to do my part in the IPv4 running out of IP issues, by moving, I've free'd up 3 IP's!

oh well. a new chapter ... a single IP

Monday 14 February 2011

PHP Sessions & Apache Cassandra

A week ago I had an idea to write an interface allowing PHP sessions to use Cassandra as a data store.  A benefit I quickly found is that I could rely on Cassandra to expire the sessions and not PHP session garbage collection.  nice.  


The code here and uses phpcassa as the interface to thrift.  


Sessions were given their own column family, with the row key defined as the site name.  each column is a session id with the column data being the session data.  

Works a treat.  Each time PHP session_start() is called, the expiry on the column resets back to the original value.  So, if the expiry is set to 1 hour, it's 1 hour after the last session_start() was invoked.  


Is this the right way to do it?  Good question....

Thursday 3 February 2011

phpcassa and windows 7.

after years and years of not logging into IRC, I found myself logging in this evening and connecting to freenode.net ... #cassandra ... I was having some big problems with PHP connecting to Cassandra.

In the end, you know what the problem was?

C:\windows\System32\drivers\etc\hosts

The default is to have localhost commented out.  For whatever reason, PHP on windows was unable to resolve localhost and could not connect to Cassandra.  Once this was uncommented, the flood gates opened and some phpcassa goodness arrived.

thobbs was great.  the project url, to which he is the author:  https://github.com/thobbs/phpcassa

Tuesday 1 February 2011

When is 100mbps 100mbps?

Answer:  Not sure.  We pay for 100mbps but are defo not getting it according to these results....

Test 1 -- via linksys wifi connection to ubee router
http://www.speedtest.net/result/1137725804.png (Zurich)


Test 2 -- Direct connection to ubee router
http://www.speedtest.net/result/1137728815.png (Zurich, CH)
http://www.speedtest.net/result/1137730549.png (Herndon, VA (US))
http://www.speedtest.net/result/1137736648.png (Dubendorf, CH)
http://www.speedtest.net/result/1137738064.png (Zurich, CH)

Monday 31 January 2011

@sdolgy & Oxford Bulls HC vs Solihull Goalie

Going through my archives, I found A LOT of old videos. Here's one. It's not the most flattering. Goalies, remember ... if you come out to the blue line to play the puck ... and it's a full contact tournament ... you are fair game

Wednesday 19 January 2011

playing with technology...again!

My 9-5 job has been going well.  Challenging, motivating and interesting.  A very good combination.  The one thing it lacks is the direct hands-on with COOL technology.  In the past week or so I have revisited an old friend called Cassandra.  I had turned to Cassandra in a moment of extreme delirium caused by a very steep and difficult learning curve I was having with respects to DFS and Hadoop / HDFS.  

At the time, Cassandra wasn't mature.  This has changed.  

Concepts for me are much more clear, and a technology now exists that I can use to help further my desire to challenge myself and to help create some fantastic "things".

This evening I endeavoured with some degree of success to install Nginx on Windows instead of the Apache web server. Subsequently, I installed PHP (non-threaded version) and integrated that with Nginx.  Now, the problem I have is trying to get Thrift running with this setup so that I can quickly model some concepts.  

Regardless, it's fun to challenge yourself.