<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>MorgLog - general</title>
  <id>tag:blog.roderick-it.net,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://blog.roderick-it.net/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://blog.roderick-it.net/" rel="alternate" type="text/html"/>
  <updated>2008-01-03T22:03:09Z</updated>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2008-01-03:13</id>
    <published>2008-01-03T22:02:00Z</published>
    <updated>2008-01-03T22:03:09Z</updated>
    <link href="http://blog.roderick-it.net/2008/1/3/name-those-elements" rel="alternate" type="text/html"/>
    <title>Name those elements</title>
<content type="html">
            &lt;a href=&quot;http://www.justsayhi.com/bb/html_quiz&quot;&gt;&lt;strong&gt;50&lt;/strong&gt;&lt;/a&gt;&lt;div&gt;&lt;small&gt;Find &lt;a href=&quot;http://www.medical-assistant-training-schools.org/ultrasounddiagnosticschools.htm&quot;&gt;Sonography schools&lt;/a&gt; near you&lt;/small&gt;&lt;/div&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-12-21:12</id>
    <published>2007-12-21T09:53:00Z</published>
    <updated>2007-12-21T10:04:40Z</updated>
    <category term="Mac"/>
    <link href="http://blog.roderick-it.net/2007/12/21/slightly-easier-web-testing-from-parallels" rel="alternate" type="text/html"/>
    <title>(slightly) Easier web testing from Parallels</title>
<content type="html">
            &lt;p&gt;Since I do most of my work on my MacBook Pro, and take it with me just about everywhere, I always end up with new dhcp assigned ip adresses. This means that when I need to test my stuff in IE under Parallels, I first have to look up what ip I am currently assigned.&lt;/p&gt;


	&lt;p&gt;So I usually end up with a test url like: http://10.0.1.197:3000 &#8230; and then the next day, I am on another network, and end up with http://192.168.1.203:3000 &#8230; as you can tell, this get&#8217;s old very quickly.&lt;/p&gt;


	&lt;p&gt;Today I figured out how to overcome this.&lt;/p&gt;


	&lt;p&gt;In the Windows installation under Parallels simply install &lt;a href=&quot;http://www.apple.com/support/downloads/bonjourforwindows.html&quot;&gt;Bonjour for Windows&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Reboot for good measure&lt;/p&gt;


	&lt;p&gt;And presto, I can now access my development server from Windows using http://morgbook.local:3000/ no matter what network I am currently on.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; To find your mac&#8217;s hostname, simply type &#8220;hostname&#8221; in Terminal :-)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-11-19:11</id>
    <published>2007-11-19T18:26:00Z</published>
    <updated>2007-11-19T18:29:27Z</updated>
    <link href="http://blog.roderick-it.net/2007/11/19/bye-bye-windows-easily-use-multiple-ie-on-os-x" rel="alternate" type="text/html"/>
    <title>Bye bye Windows, Easily use multiple IE on OS X</title>
<content type="html">
            &lt;p&gt;The last reason for me to have Windows on my mac seems it might soon be going out the door.&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://www.kronenberg.org/ies4osx/?lan=english&quot;&gt;ie4osx&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Ok, maybe not entirely, since I probably won&#8217;t be able to test security bugs and such, but having easy access to testing in IE on my mac, will certainly make life soo much easier.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-09-27:10</id>
    <published>2007-09-27T10:10:00Z</published>
    <updated>2007-09-27T10:12:46Z</updated>
    <category term="Mac"/>
    <link href="http://blog.roderick-it.net/2007/9/27/google-maps-from-addressbook" rel="alternate" type="text/html"/>
    <title>Google Maps from Addressbook</title>
<content type="html">
            I just discovered the &lt;a href=&quot;http://www.briantoth.com/addressbook/&quot;&gt;Google Maps plugin for Addressbook&lt;/a&gt; and am in love already.

Installed it, did a few tests, seems to be working just fine on my MacBook Pro. Give it a try, I'll certainly be using it a lot from now on.
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-08-21:9</id>
    <published>2007-08-21T16:29:00Z</published>
    <updated>2007-08-21T16:35:58Z</updated>
    <category term="Javascript"/>
    <link href="http://blog.roderick-it.net/2007/8/21/impact-of-web-tracking-scripts-on-user-experience-part-2" rel="alternate" type="text/html"/>
    <title>Impact of web tracking scripts on user experience - part 2</title>
<content type="html">
            &lt;p&gt;Well, it&#8217;s been a few weeks, and we ended up getting the SiteCatalyst tracking script working just fine &#8230; and we even managed to get part of it moved into an external file, to allow for better client side caching.&lt;/p&gt;


	&lt;p&gt;In the end, we ended up with a newer version of the tracking script, which I am quite happy about, as it should have fewer bugs and provides more accurate tracking for my client.&lt;/p&gt;


	&lt;p&gt;But, it did cost my client something like 2,5 working days of billable hours for me to finally get the script to behave. And considering the hefty fees my client already pays to use SiteCatalyst, you&#8217;d have thought that support would be really good.&lt;/p&gt;


	&lt;p&gt;Anyhow, these numbers just in:&lt;/p&gt;


	&lt;p&gt;In it&#8217;s current incarnation on the very same test page as &lt;a href=&quot;http://blog.roderick-it.net/2007/7/28/impact-of-web-tracking-scripts-on-user-experience&quot;&gt;I profiled in part one&lt;/a&gt;, the impact of SiteCatalyst is now:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;1107 extra javascript calls&lt;/li&gt;
		&lt;li&gt;70,64ms extra execution time.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;This means that SiteCatalyst is now responsible for about half the javascript calls and about 57% of the execution time of all the scripting on the page. The new version of SiteCatalysts tracking script is actually performing worse than the previous one.&lt;/p&gt;


	&lt;p&gt;Considering the fact that SiteCatalyst provides absolutely &lt;span class=&quot;caps&quot;&gt;NOTHING&lt;/span&gt; to the visitor experience, I think it&#8217;s a quite significant impact.&lt;/p&gt;


	&lt;p&gt;But at least I finally got round to cleaning up some of my older code as well, so it went from somewhat sluggish to immeasurable impact. 1 call, too fast to measure. Thanks to Chris Heillman for providing &lt;a href=&quot;http://icant.co.uk/sandbox/eventdelegation/&quot;&gt;the article / experiment that got me to think in new ways&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I find it rather shocking that &#8220;Enterprise&#8221; software can suck so hard, but maybe I am just too focused on creating good user experience and providing a base for my clients to increase their revenue and sustain their business &#8230; ironically, most clients expects their &#8220;Enterprise&#8221; software to do that for them ;-)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-07-28:8</id>
    <published>2007-07-28T13:30:00Z</published>
    <updated>2007-08-21T16:36:37Z</updated>
    <category term="Javascript"/>
    <link href="http://blog.roderick-it.net/2007/7/28/impact-of-web-tracking-scripts-on-user-experience" rel="alternate" type="text/html"/>
    <title>Impact of web tracking scripts on user experience - part 1</title>
<content type="html">
            &lt;p&gt;Recently, coming back to do some work for one of my favourite clients, they asked me to look into slowdowns on their site, reported by their loyal customers as well as admin staff.&lt;/p&gt;


	&lt;p&gt;Once in a while the users browsers would give a warning about scripts taking excessive time to complete. After a little investigation, I found a couple of scripts taking quite a while to execute when the page loads. One script I&#8217;d written myself, and did execute somewhat slowly, and I&#8217;ll rewrite that sometime next week. For now I&#8217;ve tweaked it to use about 50% less time, but it can run a lot faster.&lt;/p&gt;


	&lt;p&gt;The biggest slowdown, and the cause of the increase in mails to customer support, was the recent addition of a tracking script from Omnitures SiteCatalyst, a web tracking tool.&lt;/p&gt;


	&lt;p&gt;On an admin page on the clients site, the script showed 1500+ calls to the same (anonymous) function &#8230; so I thought I&#8217;d stress it a bit, and created some extra data for the same admin page &#8230; well a lot of extra data, about three times as much as it had been exposed to before. Soon I had the script at 4500+ calls to the same function, and execution time had skyrocketed to 20+ seconds!!! All of this was at page load, effectively preventing any interaction with the site, ultimately very bad for business.&lt;/p&gt;


	&lt;p&gt;Now the client had implemented SiteCatalyst by request of Enterprise Decision Makers. Basically the entire enterprise is running SiteCatalyst on all their major sites. Having one tool for keeping track of your websites makes very good sense.&lt;/p&gt;


	&lt;p&gt;The client is also running Google Analytics, a tool they chose themselves, to allow them to make educated decisions about their website.&lt;/p&gt;


	&lt;p&gt;So, back to the problem of SiteCatalyst tracking script taking excessive time to run.&lt;/p&gt;


	&lt;p&gt;Since Omniture protects their scripts by obfuscation, my only option was to call their support hotline. No worries, I thought, the client already had a support agreement and the name of  guy to speak to, so I just called him. Very pleasant guy, gave me instructions on how to get hime some data to work with. I saved the offending page and all associated assets, allowing it to be run from a folder on a local machine. Sent it off via email, praying for a quick resolution.&lt;/p&gt;


	&lt;p&gt;No repsonse, no call, no email, nothing. After calling them several times over several days, leaving messages for the guy to call me back, I finally get a mail (two days later), saying we&#8217;re running the wrong version of the script. Fine, I replace the script with the most current version, same result. Grrrr. Ok, so maybe there&#8217;s some misconfiguration on our end, but everything looks fine so far. I suspect that we&#8217;re in part to blame for misconfiguring the script in some way, but wading through their documentation, I&#8217;ve yet to find a clue to why it behaves so badly.&lt;/p&gt;


	&lt;p&gt;Meanwhile, I&#8217;ve been looking at the implementation of the script &#8230; one global object seems to control everything &#8230; ok, fine, that makes perfect sense, and is a practice that many vendors in the industry use &#8230; the object&#8217;s name is &#8230; &#8220;s&#8221;. Ouch.&lt;/p&gt;


	&lt;p&gt;Fortunately, we&#8217;ve tried to keep our scripting as robust as possible, and I don&#8217;t see any clashes with this (so far), but still &#8230; &#8220;s&#8221;.&lt;/p&gt;


	&lt;p&gt;So, while waiting on Omnitures somewhat slow support, let&#8217;s try to evaluate the impact that both Google Analytics and SiteCatalyst has on the user experience.&lt;/p&gt;


	&lt;p&gt;Firstly, the page I am using for the profiling, is a real world page on the clients site, with a fair amount of scripting. It&#8217;s the first page a user sees after being logged into the website. Most of the scripting we&#8217;ve done, improves the user experience in some way, allowing the users to do more with the site. Analytics scripting does nothing to directly improve user experience, and it&#8217;s impact on the whole user experience should be kept to an absolute minimum.&lt;/p&gt;


	&lt;p&gt;Gathering data using the profiler in Firebug, yields some interesting results.&lt;/p&gt;


	&lt;table&gt;
		&lt;tr&gt;
			&lt;td&gt;&amp;nbsp;&lt;/td&gt;
			&lt;th&gt;Custom&lt;/th&gt;
			&lt;th&gt;Google Analytics&lt;/th&gt;
			&lt;th&gt;SiteCatalyst&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;# Calls&lt;/td&gt;
			&lt;td&gt;728&lt;/td&gt;
			&lt;td&gt;33&lt;/td&gt;
			&lt;td&gt;850&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Execution time (ms)&lt;/td&gt;
			&lt;td&gt;38,45&lt;/td&gt;
			&lt;td&gt;2,21&lt;/td&gt;
			&lt;td&gt;18&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Increase in calls&lt;/td&gt;
			&lt;td&gt;&amp;nbsp;&lt;/td&gt;
			&lt;td&gt;4,5%&lt;/td&gt;
			&lt;td&gt;116%&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Increase in execution time&lt;/td&gt;
			&lt;td&gt;&amp;nbsp;&lt;/td&gt;
			&lt;td&gt;5,74&lt;/td&gt;
			&lt;td&gt;46,8&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;




	&lt;p&gt;The custom scripting is both scripts written for the site specifically, as well as library scripts such as Prototype, Scriptaculous, LowPro and more.&lt;/p&gt;


	&lt;p&gt;The page for the test has 25 links in total. Comparing these results with the ones from the admin page, I am guessing that the SiteCatalyst tracking script has some serious scaling issues.&lt;/p&gt;


	&lt;p&gt;It&#8217;s yet unclear to me what the conclusion of all this should be, other than for this particular page, Google Analytics has an insignificant impact on the user experience, where SiteCatalyst on the other hand, has a noticable impact, and goes completely nuts when the page grows to a certain size and complexity.&lt;/p&gt;


	&lt;p&gt;From a business perspective, I can see several disadvantages of SiteCatalyst compared to Google Analytics.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Significant impact on user experience &amp;ndash; Going from 46% increase in load time to completely unusable.&lt;/li&gt;
		&lt;li&gt;Monthly service fee &amp;ndash; I don&#8217;t know how big, since it&#8217;s nowhere to be found on Omnitures website&lt;/li&gt;
		&lt;li&gt;Very hard to configure &amp;ndash; Google Analytics in comparison, takes about 5mins to set up succesfully&lt;/li&gt;
		&lt;li&gt;Substandard support &amp;ndash; Not even confirming emails or setting any kind of expected time of response does not win many customers&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;It would be really interesting if I could get my hands on a non-obfuscated version of both the tracking scripts to see what&#8217;s really going on, but am not holding my breath. While I wait for the support guy to come back to me, I think I&#8217;ll rewrite some of the slow(er) scripts I&#8217;ve done myself.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-06-19:7</id>
    <published>2007-06-19T16:21:00Z</published>
    <updated>2007-06-19T17:57:05Z</updated>
    <link href="http://blog.roderick-it.net/2007/6/19/securing-your-email-on-os-x" rel="alternate" type="text/html"/>
    <title>Securing your email on OS X</title>
<content type="html">
            &lt;p&gt;Still being rather noobish mac user, I am still uncovering all sorts of useful stuff in &lt;span class=&quot;caps&quot;&gt;OS X&lt;/span&gt; and it&#8217;s bundled applications.&lt;/p&gt;


	&lt;p&gt;So, after being rather jealous of &lt;a href=&quot;http://hilli.dk/&quot;&gt;Jens&lt;/a&gt; being able to send me signed emails, I decided to investigate it a bit on my own.&lt;/p&gt;


	&lt;p&gt;And, that&#8217;s when I discovered the excellent guide to better email security in Mail.app&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://allforces.com/2007/03/02/email-security/&quot;&gt;Email Security&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Depending on how agressive spam filtering your mailserver has, it might take a few hours to get all the email ping poing over with, but once that&#8217;s done, it&#8217;s a walk in the park.&lt;/p&gt;


	&lt;p&gt;Now go out into the world with signed, sometimes encrypted, emails.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-04-16:6</id>
    <published>2007-04-16T22:01:00Z</published>
    <updated>2007-04-16T22:04:38Z</updated>
    <link href="http://blog.roderick-it.net/2007/4/16/keep-your-os-x-apps-fresh" rel="alternate" type="text/html"/>
    <title>Keep your OS X apps fresh</title>
<content type="html">
            &lt;p&gt;A friend of mine pointed me towards &lt;a href=&quot;http://metaquark.de/appfresh/&quot;&gt;AppFresh&lt;/a&gt; today &#8230; an amazing little tool, to make the task of keeping all your apps updated. Give it go, I am :-)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-04-12:5</id>
    <published>2007-04-12T11:24:00Z</published>
    <updated>2007-04-12T11:27:53Z</updated>
    <link href="http://blog.roderick-it.net/2007/4/12/add-tab-completion-for-svn-commands" rel="alternate" type="text/html"/>
    <title>Add tab completion for svn commands</title>
<content type="html">
            &lt;p&gt;For bash users,&lt;/p&gt;


&lt;pre&gt; 
&lt;code&gt; 
curl -O http://svn.collab.net/repos/svn/trunk/tools/client-side/bash_completion
mv bash_completion ~/.bash_svn_completion
echo source ~/.bash_svn_completion &amp;gt;&amp;gt; ~/.bash_profile
&lt;/code&gt; 
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://blog.roderick-it.net/">
    <author>
      <name>Morgan</name>
    </author>
    <id>tag:blog.roderick-it.net,2007-03-07:4</id>
    <published>2007-03-07T09:03:00Z</published>
    <updated>2007-03-07T09:13:46Z</updated>
    <link href="http://blog.roderick-it.net/2007/3/7/margin-collapsing-weirdness-in-ie-and-haslayout" rel="alternate" type="text/html"/>
    <title>Margin collapsing weirdness in IE and hasLayout</title>
<content type="html">
            &lt;p&gt;Over the past couple of days, I&#8217;ve been struggling to get IE to accept my margins and do margin collapsing properly.&lt;/p&gt;


	&lt;p&gt;After doing quite a bit of research, and not even getting it to work in &lt;span class=&quot;caps&quot;&gt;IE7&lt;/span&gt; with strict rendering, I eventually had to give up on my idea of actually using margin collapsing properly, thanks again IE team!&lt;/p&gt;


	&lt;p&gt;But, I did discover a very valuable resource for further reader: &lt;a href=&quot;http://www.satzansatz.de/cssd/onhavinglayout.html&quot;&gt;On having layout&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The article can be classified as &lt;strong&gt;very&lt;/strong&gt; recommended reading.&lt;/p&gt;


	&lt;p&gt;Oh, and Hello World!&lt;/p&gt;
          </content>  </entry>
</feed>
