Set the controls to lightly toasted muffins... RSS 2.0
 Thursday, June 05, 2008

So I succumbed to peer pressure (or something like that) and got me a Twitter account. I'm still not sure I get the whole 'micro-blogging' thing but I'll give it a go. So if you fancy tuning in and finding out when I've gone to the bathroom, scratched my arse or wiped my nose then get it hot off the press from here: http://twitter.com/cosmicklev.

Thursday, June 05, 2008 6:30:18 PM UTC  #    Comments [0] -
Techy | Web 2.0
 Wednesday, June 04, 2008

Look what we have to put up with in Perth. This is my residential line (Nildram, but shows as Tiscali now):

speedtest-nildram.net

This is the business line:

speedtest-murphx.net

This is on a good day. Neither results them are particularly inspiring and BT refuse to do anything about fixing the residential line to match the business line, other than having replaced the master socket when a fault manifested itself last year. Both copper circuits follow the same path back to the exchange (or so a BT engineer assured me) so I'm guessing the residential line has some pretty crappy jointing along the way. To make matters worse, changes in humidity, temperature and the phases of the moon can reduce the speed by as much as 30%. There's even some folk in the estate who've been turned down by BT Broadband, yet the adjacent business estate which houses HBoS, The Scottish Executive and Scottish and Southern Energy had new fibre especially pulled up to this end of town for them.

There's also Virgin Cable duct roughly a 100 yards round the corner from the estate but sadly they never made it down our street when the houses were built. So much for de-regulation, competition and choice.

Wednesday, June 04, 2008 1:45:29 AM UTC  #    Comments [0] -
Techy
 Friday, October 20, 2006

Having played around with InstantRails for a bit I decided I needed to know how to install Ruby on Rails manually. Now I know there are Ruby MSI installers for windows but there's nothing like doing it the long way to get to know and understand what gets installed, where it belongs and if it breaks then you're familiar with the installation.

So here goes...

1. What Do I Download and Where From?

First off go grab these files -

http://rubyforge.org/frs/?group_id=426&release_id=5757 - Ruby 1.8.5
http://rubyforge.org/frs/download.php/11290/rubygems-0.9.0.zip - RubyGems 0.9.0
http://www.zlib.net/zlib123-dll.zip - zlib 1.2.3
http://prdownloads.sourceforge.net/gettext/libiconv-1.9.1.bin.woe32.zip?download - iconv 1.9.1

It's best to create a subfolder in your favourite downloads directory and download these four files to there and then unzip each one individually to it's own folder.

2. Where Do I Put It All?

Rather than deploy into the Program Files folder (spaces in folder names still seems to send the willies up some of these OS projects occasionally) I created a folder in the root of my c: drive called RubyTools. I then copied the unzipped ruby-1.8.5 folder and rubygems-0.9.0 folders to  c:\RubyTools.

Just a couple of points here - the Ruby interpreter zip file and uncompressed folder is called ruby-1.8.5-i386-mswin32, I shortened it to ruby-1.8.5 after copying to make typing easier. In Winzip or WinRAR if you 'Extract to \rubygems-0.9.0' rather than 'Extract to here' you end up with an extra subfolder called rubygems-0.9.0...just so you know.

So after copying to my RubyTools folder, this is what my folder structure looks like:

>

 

Next copy the zlib1.dll file to your Windows system32 folder and rename it zlib.dll. On my first attempt to install RubyGems (see further on) it crapped out with an error saying it couldn't locate zlib.dll. You may already have zlib installed so try that version first.

Finally copy iconv.dll from the extracted iconv bin folder (.\libiconv-1.9.1.bin.woe32\bin)  to your Windows system32 folder. This is a character set conversion library and the Rails project installer will complain if it's not there. Read more about it here http://wiki.rubyonrails.com/rails/pages/iconv.

3. Set Your PATH

Add the path to the ruby.exe executable to your environment PATH variable. If your forgot or don't know how to do this:

Right Click + My Computer
click on the Advanced Tab
click on the Environment Variables button
    then either -
select the PATH variable in the 'System variables' list
click the Edit button
append the path to the ruby executable
   ...or...
create a new Environment variable called RUBY and set the path here
append ;%RUBY% to PATH (you need to include the semi-colon if it's not there already)

4. Install RubyGem Package Manager

Open a command prompt window and change directory the rubygems-0.9.0 e.g. cd \rubytools\rubygems-0.9.0

Type: ruby setup.rb and hit return. You should see something like this from the installer -

C:\RubyTools\rubygems-0.9.0>ruby setup.rb
---> bin
<--- bin
---> lib
[snipped for brevity]
---> lib/rbconfig
<--- lib/rbconfig
---> lib/rubygems
<--- lib/rubygems
<--- lib
rm -f InstalledFiles
---> bin
mkdir -p C:/RubyTools/ruby-1.8.5/bin/
install gem C:/RubyTools/ruby-1.8.5/bin/
install gemlock C:/RubyTools/ruby-1.8.5/bin/
[snipped for brevity]
As of RubyGems 0.8.0, library stubs are no longer needed.
Searching $LOAD_PATH for stubs to optionally delete (may take a while)...
...done.
No library stubs found.

Successfully built RubyGem
Name: sources
Version: 0.0.1
File: sources-0.0.1.gem

C:\RubyTools\rubygems-0.9.0>

And that's the RubyGems package manager installed.

5. Install Rails

Keep the command prompt window open and type: gem install rails --include-dependencies then hit return. You'll then see Gem work it's magic and grab the latest version of Rails (1.1.6 at the time of writing): 

C:\RubyTools\rubygems-0.9.0>gem install rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-1.1.6
Successfully installed rake-0.7.1
Successfully installed activesupport-1.3.1
Successfully installed activerecord-1.14.4
Successfully installed actionpack-1.12.5
Successfully installed actionmailer-1.2.5
Successfully installed actionwebservice-1.1.6
Installing ri documentation for rake-0.7.1...
Installing ri documentation for activesupport-1.3.1...
[snipped for brevity]
Installing RDoc documentation for rake-0.7.1...
Installing RDoc documentation for activesupport-1.3.1...
Installing RDoc documentation for activerecord-1.14.4...
Installing RDoc documentation for actionpack-1.12.5...
Installing RDoc documentation for actionmailer-1.2.5...
Installing RDoc documentation for actionwebservice-1.1.6...
C:\RubyTools\rubygems-0.9.0>

You might get a couple of messages along the lines of -

While generating documentation for activesupport-1.3.1
... MESSAGE: Unhandled special: Special: type=17, text="<!-- HI -->"
... RDOC args: --ri --op C:/RubyTools/ruby-1.8.5/lib/ruby/gems/1.8/doc/activesu
port-1.3.1/ri --quiet lib
(continuing with the rest of the installation)

...and...

While generating documentation for actionpack-1.12.5
... MESSAGE: Unhandled special: Special: type=17, text="<!-- The header part
f this layout -->"
... RDOC args: --ri --op C:/RubyTools/ruby-1.8.5/lib/ruby/gems/1.8/doc/actionpa
k-1.12.5/ri --quiet lib
(continuing with the rest of the installation)

This is apparently quite common on Windows platforms and it doesn't seem to affect anything from what I could google.

So we're done with the install bit, next time we test our Rails installation to see if it hangs together.

Friday, October 20, 2006 2:10:57 AM UTC  #    Comments [0] -
Techy | Ruby | Rails
 Tuesday, October 17, 2006
 Thursday, May 25, 2006

Yay! MS have a shiney new website just for IIS at http://www.iis.net. If I were you, my first port of call would be the .NET show interview with Bill Staples and Scot Guthrie where they show off some of the really cool features that are going to be part of IIS7.

Thursday, May 25, 2006 11:04:38 PM UTC  #    Comments [3] -
.NET | Techy
 Monday, May 15, 2006

Over the weekend I migrated various databases to SQL Server 2005 only to find that the hierarchical menus on the websites using the databases were incomplete and out of order.

After a few hours of head scratching I discovered some views along the lines of -

SELECT TOP 100 PERCENT col1, col2, col3
FROM sometable
ORDER BY col1, col2

The ORDER BY clause should only be used in views under certain conditions i.e. when using the TOP operator and the above view worked just fine under SQL Server 2000.

However in SQL Server 2005, the query optimiser optimises out TOP 100 PERCENT because it recognises that no rows are being eliminated from the resultset and because of this optimisation it also optimises out the the ORDER BY clause.

Monday, May 15, 2006 12:25:14 AM UTC  #    Comments [1] -
Techy
 Sunday, May 14, 2006

After a few disappointing months with Skype, I decided to try SIP based VOIP. The difference is quite incredible. I bought myself a proper VOIP handset - a Grandstream GXP 2000 and signed up with http://www.voip.co.uk/ and SIPGate.

Both allow me to have proper telephone numbers and even better Perth ones too for just signing up, although voip.co.uk does take your credit card number.

The sound quality of the calls is on par with that of a standard BT voice call or slightly better but the stability of the calls is way better than that of Skype. There's no jitter and delay and it just seems so much more polished.

Another advantage of SIP is that you don't need the PC turned on all the time because the handset plugs into an ethernet port on the switch.

The disadvantages are that for the SIP/VOIP newbies the terminology is pretty opaque and it took me a while to work out why I couldn't receive inbound calls and this is why Skype is a more attractive proposition than SIP/VOIP. There's a UK news group for the technology - uk.telecom.voip - but having lurked on it for a while and posted one message, you are presumed to have a grounding in the workings of SIP/VOIP if you're looking for help. The knowledge on how to get this stuff up and running is pretty technically in-depth and somewhat scattered. It's not really boiled down enough for your average Joe Schmoe who really wants to sign up with a provider and plug in his phone and start making/receiving calls. At the end of the day I don't really care what vocoder to use or what RTP, STUN or SIP/SDP message are, just tell me what I need to get the phone working.

That said, once you overcome the technical hurdles, it's pretty neat.

 

Sunday, May 14, 2006 10:40:23 PM UTC  #    Comments [2] -
Techy
 Friday, February 24, 2006

The last day of DevWeek 2006 was probably my favourite. The day started off with an excellent keynote by Tim Ewald on the state of web services. The second session of the day was a bit disappointing - Understanding .NET Through Patterns by Paul Besly. I'm afraid his card trick analogies just didn't quite cut it and I'm pretty certain that many people with some familiarity with patterns went away feeling less than satisfied.

The first session of the afternoon was Extending ASP.NET 2.0 with Custom Providers by Jeff Prosise and as usual Jeff's excellent oratory skills held everyones attention. The last session of the day was Inside the ASP.NET 2.0 Compilation Model by Dino Esposito. This session was a pretty indepth look at the new compilation model and how to extend it using custom build providers - 10/10.

This was my second DevWeek and again it was a very worthwhile conference with great speakers, great topics and quite informal and friendly.

Friday, February 24, 2006 2:21:27 PM UTC  #    Comments [0] -
Techy
 Saturday, February 11, 2006

This is a hilarious take on the meaningless hyperbole that is 'Web 2.0' - BileBlog - Web TwoPointSchmoe

I couldn't agree more with his closing paragraph -

"There's no doubt that ajax, tagging, semantic fappery and all that other gibberish have some potential. Ultimately though, there is no revolution, nor even an evolution. It's simply the ability to toss in a few more tools in the toolbox. Specialised tools, that can be effective when used against the right obstacle. Nothing more, nothing less."

 

Saturday, February 11, 2006 1:45:51 AM UTC  #    Comments [0] -
Techy
 Tuesday, February 07, 2006

In the evenings I tend to have the laptop on the coffee table and tippy tap away at stuff whilst the telly's on. But it gets uncomfortable sitting on the settee crouched over the laptop and I miss the dual monitors and beefy workstation power that's in my office.

So today I invested in a TV card for a spare PC + monitor and ran a coax cable from the Sky box in the lounge into the office. I gotta say I wish I'd done this ages ago, it works a treat. All I need now is a remote kit for the Sky box handset so I can channel hop without having to run to the lounge and flick.

The card is a Hauppuage WinTV-HVR 1100 which I bought because it had a built in digital terrestrial TV decoder and remote control. But sadly Perth for some reason hasn't made it to the digital age for telly (even though we do get DAB) so I might exchange it for a cheaper model.

 

Tuesday, February 07, 2006 10:48:29 PM UTC  #    Comments [0] -
Techy
 Monday, February 06, 2006

I just noticed that VMware have introduced a free version of VMware server. It's in beta at the moment but they expect to release the finished version in the next few months. You can grab it here. You can also download a bundle of pre-built appliances and virtual machines here which will run using the server, existing products or on the free VMplayer.

Monday, February 06, 2006 5:01:17 PM UTC  #    Comments [1] -
Techy

David Wang is a member of the IIS team and he can be found in the IIS related newsgroups. His blog has loads of good stuff about IIS based on questions asked in the newsgroups and privately. I've been subscribed since September last year, you should too.

Monday, February 06, 2006 10:14:14 AM UTC  #    Comments [0] -
Techy
 Saturday, January 28, 2006
Saturday, January 28, 2006 11:02:29 AM UTC  #    Comments [0] -
Techy
 Thursday, January 12, 2006

Been a while since I posted a playlist so here's the one from last week:

Hayseed Dixie - Whole Lotta Love
Led Zeppelin - When the Levee Breaks
The Fall - Pacifying Joint
Spizzenergi - Where's Captain Kirk
Per Ubu - Non Alignment Pact
The Damned - New Rose
X-Ray Spex - Oh Bondage, Up Yours
Dead Kennedys - A Growing Boy Needs His Lunch
Stereolab - Vonal Declosion
Manitoba - Crayon
Four Tet - Smile Around The Face
Beck - Girl
Dirty Beatnicks - Suicide Mission
Ladytron - Destroy Everything You Touch
Go! Team
The Disposable Heroes of Hiphoprisy - Television the Drug of a Nation
Roots Manuva - Witness (1Hope)
Silo - Those Adopted By People
Mogwai - Sine Wave
Muse - New Born
Lush - Undertow
Doves - Firesuite
Amorphous Androgynous - The Galaxial Pharmaceutical
Boards of Canada - Into The Rainbow Vein + Chromakey Dreamcoat
FC Kahuna - Hayling
Engineers - New Horizons

Also ordered these CD's this week and hopefully they'll arrive on time for the show this Friday -

Thunder, Lightning, Strike - Go! Team
There Goes Concorde Again - Native Hipsters

And in my post christmas spree on Amazon I ordered myself a replacement copy of Tracy Kidder's Soul of a New Machine which I read 20 years ago. It's the story about the team who built Data General's first 32 bit minicomputer to hit the market (the Eclipse MV/8000) and as I remember it was a damn fine read. I used to have a DG CS-200 in my parents dining room when I was at college until they managed to persuade me to give it back to the DG shop I worked part time at. It consisted of 2 19" racks, one rack had an Eclipse S/130 (see pic below) and the other had 2 x 10MB+10MB Gemini disk drives and a 1600bpi reel to reel tape unit. This was back when real computers had switches, dials and keys on the front:

As I remember it was big noisy and sent my folks electricity bill through the roof. The one I had even had a user programmable microcode board so you could write your own custom machine code instructions. I wrote one to clear one of the accumulators but it took weeks to get it working. Hooray for .NET and C#.

Anyway here's another gratuitous shot of a DG box:

Geeky isn't it :)

 

Thursday, January 12, 2006 1:28:23 AM UTC  #    Comments [0] -
Techy
 Wednesday, January 11, 2006

Just spent the last few days immersed (drowning?) in ASP and PHP scripting on some legacy code maintenance.

Response.Write debugging.....mmmmmm!

 

Wednesday, January 11, 2006 12:42:31 AM UTC  #    Comments [0] -
Techy
 Saturday, August 20, 2005

Kinda had enough of the .Text wierdness which I'm sure wasn't instrinsic to the .Text code but it just wouldn't work properly here. So I've bitten the bullet and defected to dasBlog.

All in all quite nice. It's also nice having comments back again and dasBlog has HIP-CAP built in too so hopefully no more comment spam.

Saturday, August 20, 2005 2:46:00 AM UTC  #    Comments [4] -
Techy
 Friday, August 05, 2005

Despite rebuilding and extensively testing on my dev workstation, .Text still persists in displaying January in the LHS post archive on the deployment box. Wierd...I've checked SQL and all sorts of stuff to make sure that the date formats, localisation etc are correct but this needs more than an hour or so to investigate and fix. I also re-enabled comments with HIP-CAPTCHA but it's not working right either ...the wheels have definitely come off the bus with comments, new or historical.

Time to move on and get my blogging module completed for DotNetNuke I think.

So little time.

Friday, August 05, 2005 2:01:24 AM UTC  #    Comments [0] -
Techy

Spence continues his take on undocumented interfaces. I'd also like to extend the argument to the use of reflection to get at values and data-structures that, for reasons known only to themselves, designers of libraries chose to remain private.

Before casting any stones, I'll confess that for one project due to the lack of machine parsable data from the XML Validating Reader Schema Exception (lets face it, the Message property is totally unparsable) I had to resort to reflection in the callback to access data in the schema exception that wasn't and still isn't exposed (in FW 1.1)  (res and args[]) to enable me to generate both machine and human friendly parse failures. I've haven't checked FW2.0 to see if these values are still present and if not this may present a problem for the dev's maintaining this code under FW2.0 in the future.

Anyone else for humble pie?

Friday, August 05, 2005 1:59:14 AM UTC  #    Comments [0] -
Techy
 Friday, July 29, 2005

A house move and rejig of some of my IT bits seemed to have unsettled .Text and I finally got round to sorting it. Anyway...moving along...

Spence has a very good article on reasons why you don't go messing with underlying implementations and undocumented API's. I couldn't agree more. You just end up delivering fragile systems to your customer and when the next hotfix, SP or upgrade comes along the rod for your back arrives a-knocking at your door. If the functionality ain't there in the API then let the vendor know and live with it until it does.

 

Friday, July 29, 2005 2:05:12 AM UTC  #    Comments [0] -
Techy
 Wednesday, April 20, 2005

Downloaded over the weekend, and finally got around to installing into a fresh Virtual Server build. Kicked off the install over an hour ago and its still going...but so far so good.  Looking forward to getting stuck in later this week. All I can report so far is that the installer looks polished :)

Wednesday, April 20, 2005 2:07:40 AM UTC  #    Comments [0] -
Techy
 Thursday, March 03, 2005

Wednesday 23rd Feb

Transactions in .NET 2.0 - Ingo Rammer - http://www.thinktecture.com/staff/ingo/weblog/

Ingo's session covered the present methods of coding transactional components (explicit transactions, implicit transactions using Enterprise Services) and a quick refresher on the DTC and Two-Phase Commit. The .NET 2.0 framework has a new namespace called System.Transactions which provides enhanced support for distributed transactions without the need to inherit from ServicedComponent. The session described the new TransactionScope class which is used in local and distributed implicit transactions and the Transaction class which provides support for explicit transactions. All in all a very good session.


Extending the VS.NET IDE - John Robbins - http://www.wintellect.com/about/instructors/default.aspx#2

The session starting with an intro to building VS.NET macros to automate simple tasks in the IDE. Next we moved onto the IDE extensibility model and all the IDE objects that can be got at e.g. solution and project access, output windows, text manipulation and so on. The session also covered the different types of events that macros and AddIns can be notified of when things happen in the IDE. The last part of the session then covered building fully fledged VS.NET addins and importantly how to overcome some of the hurdles the VS.NET team put in your way when getting started doing this. Another good session and I left with plenty of food for thought on building some addins of my own....yet another SQL Stored Procedure Parameter code generator maybe :) ?


ASP.NET 2.0 Configuration and Instrumentation - Jeff Prosise - http://www.wintellect.com/about/instructors/default.aspx#1

Excellent session covering the new ASP.NET MMC snap-in and WebAdmin.axd tools for configuring ASP.NET which should take the pain out of managing the machine.config and your app's web.config files. We then moved onto the new configuration API features which provide the ability to read and write configuration settings. This API is used by the MMC and WebAdmin.axd tools and gives the programmer strongly typed access to configuration sections. There are too many new neat things to list but I recommend digging around the expanded System.Configuration and System.Web.Configuration namespaces. Next in the session we got into the new ASP.NET 2.0 instrumentation capabilities that provide enhancements such as new perf counters (25 new ones), Windows Event Tracing which facilitates end-to-end tracing of requests through the ASP.NET system and application tracing improvements. We then covered the new config section and HeartBeat event which can be fired at user defined intervals and can be used to gather vital info about the state of your app. The session ended with a couple of demo's on building custom web events that can be wired up to the health monitoring features. One neat one was to ensure that your web.config section (new) was always encrypted.


Script it With ASP.NET 2.0 - Dino Esposito - http://www.wintellect.com/about/instructors/default.aspx#5

Last session of the day and my first proper ASP.NET 2.0 one. Dino covered new features such as script callbacks that allow a page to update it's content without performing a full page refresh, cross page scripting that allow one page to post form values back to a different page, the new HtmlHead class which allows easier access to the tag and its contents, the enhanced HttpBrowserCapabilities class, the new Page.ClientScript property which is used to inject script into ASP.NET pages and  finally the new SetFocus() method of the Page class which permits the programmer to assign the initial input focus on a page to the control of his choice..

All in all a pretty interesting day.


 

Thursday, March 03, 2005 3:08:32 AM UTC  #    Comments [0] -
Techy
 Tuesday, March 01, 2005

Just back from DevWeek 2005 last week - well Sunday night, but felt the need for a IT free day off today. Sadly connectivity issues with the admin bit of my blog prevented me giving a day by day account of the proceedings. I'll post more about it tonight.

Tuesday, March 01, 2005 3:11:49 AM UTC  #    Comments [0] -
Techy
 Friday, January 28, 2005

Didn't notice this behaviour until today when a customer in the hosting environment was experiencing sporadic problems where his web app would just die with Access Denied errors all over the shop. I double checked the environment to make sure that the security was as it should be though I couldn't understand why my diagnostic script would run just fine (write some files, open and update an Access database etc etc) yet his app was failing.

Turns out he was starting a thread in his Global.asax.cs Application_Start() method which would sleep until certain times of the day and then wake up to do some background database tidy up and writing to an XML log file. This was when things just stopped.

Now, in the shared web hosting environment, ASP.NET application web requests are served by ASP.NET impersonating the anonymous user account created for that user and his website. After bit of head scratching I suspected that the thread wasn't running under the impersonated anonymous user account and hence the permissions errors. A quick look at WindowsIdentity.GetCurrent().Name upon entering Application_Start() told me as much and it was the aspnet_wp.exe process account being used. However, because the thread would sleep until certain times of the day his app would run fine for hours and then just suddenly hit the floor.

In a nutshell, when an ASP.NET application starts up, it executes its startup code in the context of the worker process (aspnet_wp.exe or w3wp.exe depending on whether you run 2k or 2k3) account. When the Application_Start() event is fired, it is fired under the worker process identity, not the impersonation account.

So basically his thread was being created and run under the low privileged process account which doesn't have sufficient rights to perform all of the operations it expected to be able to perform.

Something new learned every day

Friday, January 28, 2005 3:14:06 AM UTC  #    Comments [0] -
Techy
Now Playing
Top Artists This Week
Fluff

Powered by FeedBurner
Categories
Archive
<September 2008>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008
Kevin Kenny
Sign In
Statistics
Total Posts: 188
This Year: 35
This Month: 0
This Week: 0
Comments: 94
All Content © 2008, Kevin Kenny
DasBlog theme 'Business' created by Christoph De Baene (delarou)