<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7528188420697728587</id><updated>2011-11-28T12:04:46.746+11:00</updated><category term='Software'/><category term='Life In General'/><category term='Database Administration'/><category term='System Administration'/><category term='A'/><category term='epic fail'/><category term='IT'/><category term='...'/><title type='text'>Methodology F</title><subtitle type='html'>Computer Science is still considered to be an artform by many - a process of trial, error, elimination and refinement. 

So often we are left with one plan - plan F.

Given the state of play, seeing where others have stepped is most excellent for our industry and our art. This is my contribution - trying to skip over the methodologies designated A through E.

This is Methodology F</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5978401902605826976</id><published>2011-01-15T01:20:00.003+11:00</published><updated>2011-01-15T17:04:12.106+11:00</updated><title type='text'>If I ran the ACCC (The Group of Four).....</title><content type='html'>For those not in the wonderful country of Australia, we have an odd situation here in terms of IP connectivity.&lt;br /&gt;&lt;br /&gt;In most of the world, there are carriers who call themselves "Tier 1" who are deserving of the title - they have world-wide networks, own prodigious amounts of international and domestic capacity and provide services at a reasonable price. These companies achieve such status via success in business - they've become successful by running their companies well and providing products that have captured a market. Even "&lt;a href="http://www.cogentco.com/"&gt;near&lt;/a&gt; &lt;a href="http://www.he.net/"&gt;Tier 1&lt;/a&gt;" carriers have become impressive by the same means.&lt;br /&gt;&lt;br /&gt;In Australia, things are a little bit different.&lt;br /&gt;&lt;br /&gt;Here we have this delightful monstrosity called &lt;a href="http://en.wikipedia.org/wiki/Group_of_Four_(Australia)"&gt;The Group of Four&lt;/a&gt;. In 1998 the &lt;a href="http://en.wikipedia.org/wiki/Australian_Competition_and_Consumer_Commission"&gt;ACCC&lt;/a&gt;&amp;nbsp;decided that they would react to various grumbles by other carriers and force four carriers to engage in peering, creating the GoF. for those not interested in Wikipedia's ramblings, the four carriers today are:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Telstra&lt;/li&gt;&lt;li&gt;Optus&lt;/li&gt;&lt;li&gt;AAPT&lt;/li&gt;&lt;li&gt;Verizon Business&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;As a result of the ACCC's decision over a decade ago, if any other organisation or individual wishes to provide&amp;nbsp;guaranteed&amp;nbsp;access to or from all areas of the internet that terminates within Australia, they have to (directly or indirectly) source connectivity from one of these companies. The impact of this braindead truth is a bit worrying, in a number of ways:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Two very large residential ISPs (&lt;a href="http://www.iinet.net.au/"&gt;iiNet &lt;/a&gt;and &lt;a href="http://www.tpg.com.au/"&gt;TPG&lt;/a&gt;) provide inferior access to their customers to many domestic destinations. Instead of connecting to a GoF member at each of their state Points of Presence, they instead only provide connectivity in Sydney (and in Perth in the case of iiNet, only because they wanted to satisfy WoW addicts). Obviously this choice is a business decision, not a technical one.&lt;/li&gt;&lt;li&gt;One most excellent carrier (&lt;a href="http://www.internode.on.net/"&gt;Internode&lt;/a&gt;) connects to Optus in almost every state and Verizon in Sydney. Ironically, this can cause inferior access paths to be presented to customers due to the way BGP works. As good as this is for customers in terms of service, it surely drives up Internode's provisioning costs, eating into their profits and resulting in higher prices for customers out of simple business sense.&lt;/li&gt;&lt;li&gt;Telstra and Optus have significantly lower network costs than any other provider of residential services thanks to their significant access network assets coupled with their completely free access to the &amp;nbsp;Australian internet. In every case, a host within Australia is a customer, a customer of one of their three settlement-free peers or a customer of one of the two previous groups of company. AAPT's sale of their residential customer base and Verizon's absence from the residential market allows them to concentrate on the more lucrative business space.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;All that said, the title of this post is "If I ran the ACCC...". So, without further ado, I would:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Forcibly dissolve the Group of Four, divulging the details of the agreement brought about in 1998 to the public.&lt;/li&gt;&lt;li&gt;Require that peering at at least one peering point with an MPLA with an opening peering policy that existed on January 1st, 2011 in a given State or Territory be a requirement for any access to the NBN and associated services in said State or Territory.&lt;/li&gt;&lt;li&gt;Require that peering at&amp;nbsp;at least one peering point with an MPLA with an opening peering policy that existed on January 1st, 2011 in a given State or Territory be a requirement for any access to radio spectrum auctions.&lt;/li&gt;&lt;li&gt;Require that peering at at least one peering point with an MPLA with an opening peering policy that existed on January 1st, 2011 in a given State or Territory be a requirement for any awarding of construction contracts for the NBN (yes, I'm looking at you &lt;a href="http://www.nextgennetworks.com.au/"&gt;Nextgen Networks&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Require that utilisation graphs for links to MPLA-governed peering internet exchanges be made public by all participating carriers, to ensure that salespeople do not become the solution to congestion problems.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Before anyone thinks I'm mad, let's look at the arguments against my suggestions:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;But the GoF will have their businesses impacted - &lt;/b&gt;No, they won't. Companies that are stupid enough to buy business services directly from any of these companies will continue to be stupid enough to do so. Residential customers of similar inclination will continue to be similarly inclined. Given the treatment carriers receive when attempting to source services from the GoF, it's quite clear that such business arrangements aren't too valuable to the GoF, and my proposed points have precisely zero impact on non-transit products.&lt;/li&gt;&lt;li&gt;&lt;b&gt;But you're swapping one government-created cartel for another! Equinix, Pipe/TPG and WAIA will be the new Group of Three - &lt;/b&gt;If I was to show up and tell David Teoh, Simon Hackett, Michael Malone, Ravi Bhatia and John Linton that they could stop paying Optus, Telstra, Verizon and AAPT for domestic transit, I'm sure they'd provide space in their various PoPs across the country for interconnection free of charge in some sort of non-profit structure. Better yet, we'll just look back in Australia's internet history and ask AARNet nicely to provide a neutral peering option.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Investment in telecommunications will be stalled thanks to large players having less power &lt;/b&gt;- yes, these changes that will result in more competition will disincline the government to spend $43 billion, or not.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Of course, if anyone has any counterpoints to my arguments, I would love to hear them.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5978401902605826976?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5978401902605826976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5978401902605826976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5978401902605826976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5978401902605826976'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2011/01/if-i-ran-accc-group-of-four.html' title='If I ran the ACCC (The Group of Four).....'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-4064068421960185030</id><published>2011-01-03T23:27:00.000+11:00</published><updated>2011-01-03T23:27:01.525+11:00</updated><title type='text'>EMC, IBM, HP, NetApp and Sun - undeserving monopolists</title><content type='html'>Storage.&lt;br /&gt;&lt;br /&gt;For those of us who use computers, it is the most boring and basic element of involvement.&lt;br /&gt;&lt;br /&gt;Adding 200% of the current storage throughput available rarely gives us more than a 10% increase in real-life benefits thanks to applications being more interested in order of operations than scheduling, and operating systems being more interested in scheduling than order of operations.&lt;br /&gt;&lt;br /&gt;With the rise and rise (and subsequent fall) of ZFS, the role of the FS to do the right thing in the best way possible without delegating responsibilities to logical volume managers, RAID controllers and/or remote storage targets has been realised (and then discarded).&lt;br /&gt;&lt;br /&gt;Thanks to a combination of geeks focusing on issues that are "fun", application developers focusing on issues entirely within their constrained domain and Linux kernel developers ignorantly choosing their targets without any regard for the direct employers and (n + 1) indirect benefactors who make their employment possible (indirect FFS/extX FS inodes - you all know about such things), Linux is in a sad and embarrassing state in this area. DRBD is a great piece of software, but it may very well propagate file system problems as fast as your well-designed (and implemented) network will allow.&lt;br /&gt;&lt;br /&gt;Don't take my word for it - there are plenty of people beyond my rambling self &lt;a href="http://shearer.org/WANDataReplication"&gt;who agree&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, as a direct consequence of this current shortcoming, I am announcing a project (name to be made public in the next week) that will provide architecture and OS independent CDP and near-CDP, with appropriate knobs to allow System Administrators to decide which trade-off they need to allow between performance and availability whilst allowing for implementation of local, near and remote DR in &lt;b&gt;any conceivable combination&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;In terms of implementation, the implementation couldn't care less which OS, filesystem or hardware you use. The implementation writes bytes to files as requested - exactly as write() and pwrite() do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-4064068421960185030?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/4064068421960185030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=4064068421960185030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4064068421960185030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4064068421960185030'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2011/01/emc-ibm-hp-netapp-and-sun-undeserving.html' title='EMC, IBM, HP, NetApp and Sun - undeserving monopolists'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-866978119322421909</id><published>2010-12-28T03:52:00.001+11:00</published><updated>2010-12-28T03:52:44.703+11:00</updated><title type='text'>I want to know about writes.... (Linux Kernel Team - EPIC FAIL)</title><content type='html'>Yet Linux tells you, in no uncertain terms, to fuck off.&lt;br /&gt;&lt;br /&gt;Here's my scenario in a current software project:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Process W attempts to write X bytes to file Y at offset Z&lt;/li&gt;&lt;li&gt;My filter examines said request and based on some specific criteria (that some overworked, under-financed system administrator is mandated to enforce) allows or denies such request&lt;/li&gt;&lt;li&gt;I have no desire to diminish the performance of the host running my software more than is absolutely required - this means that implementing a FUSE solution is bad (userspace-&amp;gt;kernelspace-&amp;gt;userspace-&amp;gt;my software-&amp;gt;kernelspace-&amp;gt;fs verses userspace-&amp;gt;kernelspace-&amp;gt;my software-&amp;gt;kernelspace continue),&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Reading the above, it all looks quite routine. For those of you thinking this, you are&amp;nbsp;unfortunately&amp;nbsp;wrong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It seems that the Linux kernel team have precisely zero regard for commercial reality. I will happily apologise in the most public arena possible if this is incorrect but the supporting evidence is in my favour:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* Windows has provided this functionality in a standard fashion for 15+ years. Please, please, please don't make me explain why this is a terrible indictment.&amp;nbsp;&lt;/div&gt;&lt;div&gt;* Other UNIXes have offered this functionality in well-defined ways for a decade&lt;/div&gt;&lt;div&gt;* DOS offered such functionality to user-space applications&lt;/div&gt;&lt;div&gt;* Linux Security Modules offered the "hooks" to make this happen, but LSM was let into the kernel without any regard to multiple users of said functionality - the next step was to remove the API.&amp;nbsp;&lt;/div&gt;&lt;div&gt;* grsecurity, RSBAC, Dazuko, RedirFS, McAfee, CA, AVG and Trend Micro are all at a stupid disadvantage with regard to your indifference to reality - access control to file system assets is a modern requirement, and Linux is alone in providing no standardised API for these applications to provide such in a standardised, efficient and simple-to-implement fashion. The teams responsible for OSSEC, Osiris and Tripwire curse you in a similar fashion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before the more versed of you respond:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* syscall hooking - yes, I'll totally interfere in the kernel's operations by inserting code not at all verified by the OS vendor. And while I'm at it, I'll disable any software taking a similar approach, or forgo any decently weighty contract of my own software being in effect and disable SELinux, AppArmor and so on. Grow up.&lt;/div&gt;&lt;div&gt;* FUSE - sure, let's engage in 5 copies of data instead of 2. Learn to count.&lt;/div&gt;&lt;div&gt;* Kernel patching - without taking away from the work of DazukoFS (Dazuko and RedirFS are precisely worthless for this application), DazukoFS doesn't actually work on any Linux&amp;nbsp;distribution&amp;nbsp;that anyone who isn't&amp;nbsp;planning&amp;nbsp;to upgrade in the next 4 months actually uses or is supported by any application that any business actually cares about other than Samba. As good as DazukoFS is, it may as well not exist at the moment (see&amp;nbsp;&lt;a href="http://dazuko.dnsalias.org/wiki/index.php/Dazuko-based_Applications"&gt;http://dazuko.dnsalias.org/wiki/index.php/Dazuko-based_Applications&lt;/a&gt;&amp;nbsp;if you don't believe me).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, in summary, it's easier to implement anything that worries about the specific operations on files cleanly on Windows than it is on Linux. One is an OS that I love, promote at every possible opportunity, performs better on every modern hardware platform under the sun, provides more out of the box functionality and the other is Microsoft Windows.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sorry Linux Kernel Team - EPIC FAIL.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-866978119322421909?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/866978119322421909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=866978119322421909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/866978119322421909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/866978119322421909'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2010/12/i-want-to-know-about-writes.html' title='I want to know about writes.... (Linux Kernel Team - EPIC FAIL)'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-8556599010281951375</id><published>2010-05-16T22:30:00.000+10:00</published><updated>2010-05-16T22:30:51.090+10:00</updated><title type='text'>Sydney is not the center of the Internet</title><content type='html'>Definitely not in Australia, and even more so anywhere else.&lt;br /&gt;&lt;br /&gt;Here is a list of ISPs and carriers that have a problem that I shall verbalise on:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Three*&lt;/li&gt;&lt;li&gt;Vodafone*&lt;/li&gt;&lt;li&gt;TPG&lt;/li&gt;&lt;li&gt;SuperNerd*&lt;/li&gt;&lt;li&gt;iiNet&lt;/li&gt;&lt;li&gt;Virgin*&lt;/li&gt;&lt;li&gt;Nextgen Networks*&lt;/li&gt;&lt;li&gt;Digital River*&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The list could go on, but there is no need.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All of these providers have the following problem - all of their transit is in Sydney. Not their international transit, all of it. The starred entries fail additionally, as they peer poorly, if at all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Traffic from any of these providers for a Melbourne-terminated connection will be tromboned to Sydney, out to the internet and then back again. In the case of the unstarred entries, they do much better in that they peer at Pipe's Melbourne IX and announce at least part of their network there. This alleviates the problem in many cases, but not all.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, my home ADSL2+ connection is provided by Mr Teoh's elves from TPG. Connecting to gear that uses connectivity from those miserable proles in the Group of Four results in this delightful tromboning I mentioned above. The same is true of iiNet, and iiNet only have a single PoP in Melbourne so they're ironically spending less on their core infrastructure than TPG is.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The point is that the captive nature of the Australian transit market results in such patterns emerging for savvy businesses such as TPG and iiNet - peer everywhere and use transit where needed. As for the other entries, there is another explanation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They're inept, each and every one of them. Failing to peer in Melbourne, Brisbane or Perth when you have a local Point of Presence AND relying on intercaptial backhaul for all connectivity is just braindead. SuperNerd are extremely guilty of this, as are Nextgen and Virgin. There is no excuse whatsoever to not pay Pipe the&amp;nbsp;comparatively&amp;nbsp;tiny sum of $1000/month for 100Mb/s peering in Melbourne and Brisbane and even less excuse to not connect to WAIX in Perth.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;TPG's stance is almost understandable, given their pricing and their incredibly lazy approach to their usage of their SX/PPC-1 bandwidth, but iiNet's stance is a bit more puzzling. They have a large number of customers on-net, they're the 3rd largest ISP by customers in Australia, have managed to get a price on Telstra+Reach transit that makes sense commercially yet still refuse to terminate domestic transit anywhere other than Sydney. Fail!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-8556599010281951375?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/8556599010281951375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=8556599010281951375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/8556599010281951375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/8556599010281951375'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2010/05/sydney-is-not-center-of-internet.html' title='Sydney is not the center of the Internet'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5669656205791021889</id><published>2010-05-16T21:43:00.000+10:00</published><updated>2010-05-16T21:43:43.606+10:00</updated><title type='text'>Tier 1 Servers, or not</title><content type='html'>At work I always find myself buying stuff to make other stuff possible.&lt;br /&gt;&lt;br /&gt;Recently we needed to make a small purchase of about $80k to complete a HA project I've been working on for a while. We decided to ask for quotes from both Dell and an IBM partner for this project, as we've been looking at diversifying our hardware base for a while now.&lt;br /&gt;&lt;br /&gt;For some reason that doesn't have any bearing to this story, a company had been&amp;nbsp;harassing&amp;nbsp;one of my coworkers for the opportunity to quote on our hardware needs. They insisted they could save us money and replace our Dell servers with "Tier 1 hardware". This leads to a number of questions.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What is Tier 1 hardware?&lt;/li&gt;&lt;li&gt;Why do I want it?&lt;/li&gt;&lt;li&gt;How much is it worth?&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;The answers to these questions seem to be:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Anything not made by Dell&lt;/li&gt;&lt;li&gt;Because some sales person with a target for the month says so&lt;/li&gt;&lt;li&gt;More than any sane person should pay&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;For reasons I am yet to fathom, two quotes were provided by said company. Their quotation for the HP gear was around $90k and their quotation for the IBM gear was around $185k. So much for the saving money part of the bargain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I find it hard to believe that IBM would actually charge such a premium for their gear. Turns out they don't, as a better specified quotation came in from our preferred IBM partner at around $80k. I've no idea where to start in figuring out how such things happen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Regardless, I relayed this information back to the all-promising vendor and was told that they'd go back to HP to get a lower quote. They did so, sort of.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the end I didn't bring the HP quotation to the boss as it was clear that I was getting a bad deal in many ways. The hardware on offer featured higher prices, a lack of integrated management, fewer NICs and a complete lack of redundant and hot-swappable cooling.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I sent a very to-the-point message to the all-promising-supplier after the fact, quoted verbatim here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Hi Supplier-Representative-7G,&lt;/blockquote&gt;&lt;blockquote&gt;I've spoken with my MD and he's looked at the quotations we received from Dell, yourself and another IBM partner.&lt;/blockquote&gt;&lt;blockquote&gt;For a number of reasons, such as the HP servers lacking redundant cooling and being the most expensive options by far, we've opted not to engage All-Promising-Supplier as a hardware supplier.&lt;/blockquote&gt;&lt;blockquote&gt;Best regards,&lt;/blockquote&gt;&lt;blockquote&gt;Methodology F&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet, my phone rings at regular intervals, displaying the number of Supplier-Representative-7G. I do not answer these calls, yet still they come.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next lesson shall be "Tier 1 connectivity, or not"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5669656205791021889?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5669656205791021889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5669656205791021889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5669656205791021889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5669656205791021889'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2010/05/tier-1-servers-or-not.html' title='Tier 1 Servers, or not'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-6299853954801089975</id><published>2010-05-07T23:31:00.002+10:00</published><updated>2010-05-08T00:52:02.187+10:00</updated><title type='text'>NBN - get a clue</title><content type='html'>I live in Australia. The current Labour government is very limited in their outlook on certain issues.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is much talk of filtering the web and building out fibre. For fuck's sake - get a clue.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Regarding filtering, anyone with 3 braincells and/or a slight want for dissent can easily circumvent any measure you're proposing to put in place. As most of your constituency are bogans, they'll engage in circumvention not for any reason that serves their own purposes, but because their mate Robbo told them about such possibilities at the pub whilst flooding his gullet with &lt;a href="http://en.wikipedia.org/wiki/Victoria_Bitter"&gt;Vaginal Backwash&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is no mention of IPv6, no mention of resiliency and no statement of application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What will the average Australian moron do with a 100Mb/s link to the rest of the world? Read poorly composed e-mail from his mate Johnno? Watch the latest YouTube viral in 1080p resolution? Upload pornography featuring his girlfriend/wife to some amateur site or transmit the same to that brilliant bloke ORSM?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The vast majority of Australia's population has no idea how their IP feed is provided. Most of them still refer to such connectivity as "my internet" because they're ignorant of the world they live in and are more comfortable with cars, darts and getting into fights at the local pub that considers Victoria Bitter, Carlton Draft and Toohey's New to be a diverse beer selection and get quite agitated if someone dares remove Today Tonight or A Current Affair from the ludicrously large screen whilst they're engaging in drunken escapism between their drudgery of employment and their unhappy de-facto+spawn home life.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Idiot bogans make up a worrying proportion of our populace. The outcome of my ramblings can be summarised thusly:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The bogan wants faster. Not because they want or need it, simply because it is available.&lt;/li&gt;&lt;li&gt;The bogan demands lower prices. It does not matter if their provider of choice is making $1.00 of profit per month, they want a lower price.&lt;/li&gt;&lt;li&gt;The bogan insists that it is being ripped off and that all decisions of their chosen service provider are designed to disadvantage said bogan. A change to any terms or conditions attached to the bogan's service are clearly a personal attack on the bogan.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It clearly follows that all home IP services in my fair country are designed to snare and placate the bogan. Thus, bogans are the problem.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-6299853954801089975?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/6299853954801089975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=6299853954801089975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/6299853954801089975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/6299853954801089975'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2010/05/nbn-get-clue.html' title='NBN - get a clue'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-6419044555998137960</id><published>2010-05-07T23:08:00.002+10:00</published><updated>2010-05-07T23:29:38.407+10:00</updated><title type='text'>Greatness</title><content type='html'>Early in my career, an RMIT professor asked me which I should pursue of two choices - achievement or greatness. My answer was greatness, and he chastised me in a most eloquent way.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How appropriate for a man of age 52 to belittle a child of 19 on issues that he'd spent his career examining and lecturing on. Unfortunately my memory is better than his, and my current thinking allows me to respond to his shallow and morally-determined outlook on the path of the individual. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;C, Cobol, VAX, TCP/IP, Cisco, Linux, C++, Java, .Net, Cray, Amdahl, The Art, Google, Microsoft&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All of these companies, standards and languages have one simple thing in common - greatness. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A limited group of people was involved in each, and their names are synonymous with their creations and legacy. They are identified for their contribution to the world we live in and the communities they created.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Achievement is a very loose and qualitative term from one point of view. A couple's otherwise unremarkable child has "achieved" by getting the best score in the class on a mathematics test or appearing in the school play. As much as my writing will offend some, such outcomes have precisely zero impact on the limited and wider community in general.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In every single case I have cited, the persons involved aspired to something greater. None of them sought the outcomes of fame, recognition or authority - each had their own particular goals that they achieved. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are many other groups that have aspired and have not been recognised, but there are examples of this that have given rise to better ideas, more concrete outcomes and further-reaching initiatives. The contributions of such individuals cannot be disregarded. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To the professor who shouted me down almost a decade ago: inferiority - what's it like?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-6419044555998137960?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/6419044555998137960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=6419044555998137960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/6419044555998137960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/6419044555998137960'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2010/05/greatness.html' title='Greatness'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-7355042041502906054</id><published>2009-09-14T00:39:00.003+10:00</published><updated>2009-09-14T00:44:34.871+10:00</updated><title type='text'>The media is awful</title><content type='html'>This evening, I watched Fighting - a movie of questionable utility.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The lead actress was, as is always the case in movies, seemingly perfect in every respect physically. Slim, curvy, attractive and well spoken.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet, in the movie, she was earning $11.00 an hour, and supporting her daughter and grandmother. At no point was there any indication that she ate particularly well, worked out or slept enough to remain healthy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How incredibly beneficial it is to look to mediums of entertainment for reflections on society.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Or not.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-7355042041502906054?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/7355042041502906054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=7355042041502906054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7355042041502906054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7355042041502906054'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/09/media-is-awful.html' title='The media is awful'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-8765437249811106138</id><published>2009-08-25T01:26:00.003+10:00</published><updated>2009-08-25T01:38:44.165+10:00</updated><title type='text'>PacNet are retarded (and so are AINS)</title><content type='html'>PacNet, the strange and no-more-relevant merger of AsiaNetcom and Pacific Internet (at least, it's of no relevance here in Australia),  are retarded. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Looking at Pipe's website, PacNet's Sydney DC is a "Pipe Approved" DC. In theory, this means they peer with Pipe. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Taking an IP in their Sydney DC (say 61.14.142.1) and shoving it in Pipe's "Am I Connected?" tool yields most interesting results.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Melbourne, Adelaide and Brisbane IX points show the IP as reachable, but NSW does not. Which idiot decided to stop announcing that subnet at Pipe NSW? They even announce it at WAIX.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Take iiNet and Internode - their networks will telegraph the traffic to a peering point they can reach in another city for their Sydney users, and then PacNet will carry the traffic &lt;b&gt;back&lt;/b&gt; to Sydney! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PacNet are definitely connected to Pipe in Sydney, as their looking glass gets back onto iiNet's network via Pipe NSW. PacNet peer directly with Internode, but Matthew Moyle-Croft (who answers questions about Internode's network on Whirlpool) has made some very "interesting" statements about PacNet's policies since the merger, and the resultant value of the peering relationship. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why anyone would use their transit capacity or intercapital backhaul when perfectly good peering options are available at a much lower cost is beyond me. The only other carrier/provider I know of that does this are those inept fools at AINS/SuperNerd. That said, they did manage to get one of their peers to announce one of their subnets today but not route the traffic for some reason I'm yet to be informed of.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-8765437249811106138?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/8765437249811106138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=8765437249811106138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/8765437249811106138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/8765437249811106138'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/08/pacnet-are-retarded-and-so-are-ains.html' title='PacNet are retarded (and so are AINS)'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-3548793119535185831</id><published>2009-07-07T23:07:00.003+10:00</published><updated>2009-07-07T23:28:38.929+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='epic fail'/><title type='text'>Thanks to the internet....</title><content type='html'>I have learned the following, obviously true things:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;I am obese, almost morbidly so (thanks, &lt;a href="http://www.nhlbisupport.com/bmi/"&gt;National Heart Lung and Blood Institute&lt;/a&gt;!)&lt;/li&gt;&lt;li&gt;Milk is the answer to getting thin, and will also cause large amounts of fat gain (thanks, &lt;a href="http://www.bodybuilding.com"&gt;BodyBuilding.com&lt;/a&gt;!)&lt;/li&gt;&lt;li&gt;My legs hurt when I run because of bad shoes, overtraining, sodium deficiency, too much sodium, or one of 5 different STIs (thanks, &lt;a href="http://en.wikipedia.org"&gt;Wikipedia&lt;/a&gt; and the &lt;a href="http://www.betterhealth.vic.gov.au"&gt;Better Health Channel&lt;/a&gt;!)&lt;/li&gt;&lt;li&gt;The best way to get from Alaska to Queensland is &lt;a href="http://maps.google.com.au/maps?f=d&amp;amp;saddr=Anchorage&amp;amp;daddr=Miami&amp;amp;hl=en&amp;amp;geocode=&amp;amp;mra=ls&amp;amp;sll=37.649034,-86.923828&amp;amp;sspn=58.623542,135.351562&amp;amp;ie=UTF8&amp;amp;z=3"&gt;in a kayak&lt;/a&gt;....&lt;/li&gt;&lt;li&gt;I can empower myself as a man by making a few &lt;a href="http://www.eunuch.org/main/"&gt;modifications&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The pot at the &lt;a href="http://www.boners.com/grub/805023.html"&gt;end of the rainbow&lt;/a&gt; isn't always filled with gold.&lt;/li&gt;&lt;li&gt;Now that I know I'm obese, I may as well &lt;a href="http://www.bigguts.com/forum/index.php"&gt;get some support&lt;/a&gt; in getting to can't-leave-the-house-fat.&lt;/li&gt;&lt;li&gt;I'm apparently Jewish, lactating and keep a &lt;a href="http://rescuebubba.blogspot.com/"&gt;bloke locked inside a box&lt;/a&gt; in my appartment.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Two words. Epic Fail.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-3548793119535185831?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/3548793119535185831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=3548793119535185831' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/3548793119535185831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/3548793119535185831'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/07/thanks-to-internet.html' title='Thanks to the internet....'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-2049567859648377607</id><published>2009-05-31T19:47:00.003+10:00</published><updated>2009-05-31T20:37:58.983+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>AVS is a really bad idea</title><content type='html'>For those not familiar with AVS, you may (or may not) know it as the Sun StorageTek Availability Suite. The basic idea is that you can have two storage devices attached to different hosts that stay in sync. This product forms the core of the &lt;a href="http://en.wikipedia.org/wiki/Continuous_data_protection"&gt;CDP&lt;/a&gt; (no, not that &lt;a href="http://en.wikipedia.org/wiki/Cisco_Discovery_Protocol"&gt;CDP&lt;/a&gt;) capabilities of the StorageTek and Sun Unified Storage Server product ranges. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Too bad it is completely and totally useless when using some of the standout features of Sun's current opus, ZFS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's take one feature that shows ZFS in all its brilliance - resilvering. &lt;a href="http://ramge.org/solaris/index.php?/archives/6-Why-AVS-on-a-X4500-is-a-bad-idea.html"&gt;As detailed previously&lt;/a&gt;, doing this is going to be very bad for anyone who uses big disks and/or less than 10GbE connectivity between AVS nodes. Jim Dunham responded to this, saying he doesn't see a way of making AVS "smarter" or "ZFS aware". The man makes good points, but both he and the original post's author have totally missed the point.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sun have done the wrong thing here with AVS:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;AVS is a paid-for add on for Solaris. Even though AVS is a Sun internal product, it's just as bad as VxFS or Veritas Volume Manager. Way to go, Sun!&lt;/li&gt;&lt;li&gt;AVS in OpenSolaris is outdated. Really - why bother?&lt;/li&gt;&lt;li&gt;AVS + ZFS just doesn't work, ever. It's a half-hearted effort that provides support for getting your data from one box to another, but no support from the vendor for failover unless you buy some black boxes. Take up religion if you hope to fail back gracefully.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;ZFS is transactional and has intelligent operation management at its core. Send those transactional operations across the wire. A device resilvering should &lt;b&gt;never&lt;/b&gt; have block rewrites replicated to the passive host and a scrub can happen in parallel to normal file system activities. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Take each of the above operations:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;A scrub completing with corrections successfully on the active host says &lt;b&gt;nothing&lt;/b&gt; about disc consistency on the passive host. Begin the operation on both hosts.&lt;/li&gt;&lt;li&gt;Even if you have two dedicated, nerdy and doomed-to-be-virgins-forever system administrators in your colo replacing disks in the active and passive nodes at the same time, there will be a difference between the two new disks as ZFS begins to resilver. Your disks are definitely inconsistant, unless you're using hardware RAID...WHICH MANAGES TO ROB YOU OF MANY OF THE BENFITS OF ZFS. For those in the audience that pledge an answer of "full AVS replication", see above. You fail.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If someone were to give me the means to satisfy my financial obligations and work on only ZFS, I would give you the solution to this problem inside of six months without a problem. Seriously Sun - if your (admittedly brilliant) software engineers can deliver the marvel that is RAID-Z in &lt;a href="http://blogs.sun.com/bonwick/entry/raid_z"&gt;599&lt;/a&gt; lines, then I can do it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For those who didn't read the intro of the blog, yes I am a software engineer and yes I am proficient in C, system programming and mathematics. My assertions are justified.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is a horrible injustice that the greatest filesystem ever is treated in this way.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-2049567859648377607?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/2049567859648377607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=2049567859648377607' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2049567859648377607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2049567859648377607'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/05/avs-is-really-bad-idea.html' title='AVS is a really bad idea'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5155358740977045160</id><published>2009-05-31T19:24:00.002+10:00</published><updated>2009-05-31T19:41:21.594+10:00</updated><title type='text'>Enterprise-level hardware</title><content type='html'>The enterprise, and hardware designed to service it, is concerned with a few simple things:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Visibility - Every piece of the server/switch/router/appliance should be easily monitorable and notify of issues before they become problematic&lt;/li&gt;&lt;li&gt;Reliability - Failure is not an option. Everything is redundant.&lt;/li&gt;&lt;li&gt;Availability - The hardware should never give reason for reboot - ever.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;How horribly far away from this we are. Taking the same three points:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Visibility - All of the major "enterprise" hardware vendors ship hardware that falls short. ESX and ESXi on modern boxes is just one example of things going horribly wrong in this regard. Internode's most recent mail server failure is a particularly dark mark on whoever their SAN vendor was - the same can be said for the poor people at WebCentral. I've seen plenty of servers reboot when vendor monitoring and health metrics indicate everything is fine prior, only to see RAM, RAID controller, battery and backplane failures become painfully apparent as the system boots afterward.&lt;/li&gt;&lt;li&gt;Reliability - This is an interesting one. Take Dell (please, take them) - the 2850 featured redundant memory and dual RAID controllers. The 2950 does not for some strange reason!  The replacement for the 2950-III, the R710 reintroduces these features - thanks Dell!&lt;/li&gt;&lt;li&gt;Availability - How can this be so incredibly hard? Foundry, Cisco and Juniper can all give me gear that allows me to upgrade firmware online whilst coordinating BGP, OSPF, IS-IS and MPLS. Take a modern server - firmware for the BIOS, DRAC/iLO controller, RAID controller, IPMI/BMC and the list goes on. Why can't all of these be upgraded and be exposed while the system is online? How hard can it be?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It gets worse. Recently we received a package from Dell containing a firmware update CD for Seagate Barracuda drives. Although we don't use any of the affected drives in production, the included literature was very worrying:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Sorry - everything will be offline when you upgrade this firmware.&lt;/li&gt;&lt;li&gt;If you've connected the drives in certain ways to our high-end RAID controllers, you'll need to power down and change that before you apply the update.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;WTF? Even though Dell is a relative latecomer to the enterprise world, surely they're not that far behind. Even though their blade servers are a pathetic joke compared to everyone else (it's called a redundant midplane - all the cool kids have them).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tomorrow morning I'm going to ask my boss, the benevolent dictator, for 2 SANs set up in a redundant multipathed configuration for these reasons. I'll also ask for a bunch of VSphere 4 licenses so I can use VMotion to get around these horrible shortcomings.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sometimes I really hate computers.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5155358740977045160?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5155358740977045160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5155358740977045160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5155358740977045160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5155358740977045160'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/05/enterprise-level-hardware.html' title='Enterprise-level hardware'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-7285991984073830945</id><published>2009-04-05T02:50:00.002+11:00</published><updated>2009-04-05T02:56:54.035+10:00</updated><title type='text'>You made the time change</title><content type='html'>So pay me for my effort, you inconsiderate worthless excuses for human beings.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I write this as I sit here watching systems fail due to various reasons that all stem from the Victorian government changing the demarcation points for daylight saving changes, again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a brilliant set of ideas:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The orbit of the earth isn't changing. Pick a set of dates and stick to it. Let me actually have a life and get some sleep.&lt;/li&gt;&lt;li&gt;Accept that daylight saving has no impact whatsoever on power consumption. People will find ways of doing whatever it is they do regardless of the outdoor conditions. Thanks to the state of the economy everywhere, staying inside at home is more attractive than ever.&lt;/li&gt;&lt;li&gt;Daylight saving is a stupid idea. If you are so incredibly stupid that you think that a government specified time offset change will make a major impact on your life, society's workings or the "useful" hours available to each person, please move far away from here.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Every time some set of idiots decides to yet again change the dates where the UTC offset changes, IT professionals everywhere have to put in wasted effort. Thanks to tonight's events, I'll spend part of my Sunday writing up incident reports. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks to the Victorian government - you should be forced to compensate me and everyone else who does what I do. You're pathetic and have no business running a small kindergarten, let alone a state. Be ashamed - it's the only appropriate action.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-7285991984073830945?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/7285991984073830945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=7285991984073830945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7285991984073830945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7285991984073830945'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/04/you-made-time-change.html' title='You made the time change'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-4604344388092009813</id><published>2009-03-29T21:11:00.003+11:00</published><updated>2009-03-29T21:15:58.466+11:00</updated><title type='text'>Windows into society...</title><content type='html'>...or not....&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Craigslist is special. For many values of "special".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Where else can you state that you want:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;To sell cinderblocks&lt;/li&gt;&lt;li&gt;Have a fantasy involving Super Mario Bros on NES&lt;/li&gt;&lt;li&gt;Criticise people for almost any inconsequential wrong they've commited against you in a public forum&lt;/li&gt;&lt;li&gt;Ask someone to meet up with you for some random encounter under worringly specific circumstances&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Seriously - where else can you?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned for a series of delightful social experiments!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-4604344388092009813?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/4604344388092009813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=4604344388092009813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4604344388092009813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4604344388092009813'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/03/windows-into-society.html' title='Windows into society...'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-1252649218219222900</id><published>2009-03-12T01:05:00.002+11:00</published><updated>2009-03-12T01:07:17.108+11:00</updated><title type='text'>I know where your gear is</title><content type='html'>So you may as well just tell me.&lt;br /&gt;&lt;br /&gt;Many ISPs, web hosts, service providers and other connected enterprises make a big deal out of not stating where they host their assets.&lt;br /&gt;&lt;br /&gt;Here's some news for all the groups who think in that fashion - it's trivial to figure such things out in the vast majority of cases. Just be honest - it's easier.&lt;br /&gt;&lt;br /&gt;Unless of course you're hosted in Fujitsu in Melbourne, in which case we'd really rather not know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-1252649218219222900?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/1252649218219222900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=1252649218219222900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/1252649218219222900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/1252649218219222900'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/03/i-know-where-your-gear-is.html' title='I know where your gear is'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5499307259113879129</id><published>2009-03-10T01:25:00.002+11:00</published><updated>2009-03-10T01:30:21.054+11:00</updated><title type='text'>Here's an unusual test</title><content type='html'>In a here-to unrevealed factoid, Null is a guy. This is hardly a surprise, as most geeks are guys. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Every now and then, Null will meet up with someone of the opposite sex (as Null is currently single). Null never actually calls and/or contacts this member of the opposite sex after the meeting though unless they contact Null first.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The reason for this is very simple - people are people. If you subscribe to everything being "the man's job" in terms of follow up then you're probably in need of a bit of introspection. If not, then you're genuinely not interested. Either way is ok, and leads to the same outcome - good for them!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just go after what you want, and disregard what you don't - it won't hurt.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5499307259113879129?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5499307259113879129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5499307259113879129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5499307259113879129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5499307259113879129'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/03/heres-unusual-test.html' title='Here&apos;s an unusual test'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-4261145048641004027</id><published>2009-03-10T00:49:00.003+11:00</published><updated>2009-03-12T01:04:00.323+11:00</updated><title type='text'>Rules for the first date</title><content type='html'>Here's a (possibly welcome) departure. Recommended rules of engagement for a first date from a geek...who has a cat...and two degrees...oh dear.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Don't do the following::&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Talk about loss and hardship - it'll either scare off your date or create a type of closeness that will become either &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;entrapping&lt;/span&gt; or awkward. Just don't.&lt;/li&gt;&lt;li&gt;Mention your former partner(s). Creating a yardstick on the first meeting is never good - give the person you've chosen to meet up with at least a bit of a chance!&lt;/li&gt;&lt;li&gt;Make jokes about your genitals and/or sexual prowess - if you're making jokes about either of these things one or both are probably worthy of a laugh.&lt;/li&gt;&lt;li&gt;Mention your recent tragedies - sympathy and fun are totally separate. See above.&lt;/li&gt;&lt;li&gt;Your achievements on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WoW&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Xbox&lt;/span&gt; Live or the PS3 trophy case. If your date is just "something different", then you are just "something different" and should probably stay that way.&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Detail&lt;/span&gt; where it all went wrong - we've all got problems. They'll become apparent in time, and more acceptable once your redeeming qualities and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;underlying&lt;/span&gt; decency (don't &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;snigger&lt;/span&gt;)  are accepted if things get that far.&lt;/li&gt;&lt;li&gt;Profess emotional attachment and need. In fact, don't be needy. Be confident, stupid.&lt;/li&gt;&lt;li&gt;Show how better you are than your mate, same sex &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;sibling&lt;/span&gt;, date's former &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;defacto&lt;/span&gt;/spouse/friend with benefits/&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;miscellaneous&lt;/span&gt; object of desire explicitly - &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;provoke&lt;/span&gt; a thought process and stop being insecure.&lt;/li&gt;&lt;li&gt;Perform feats of physical domination with your date, friends nearby, random strangers and/or the police. You'll end up hurting yourself, sweating profusely, injuring yourself, injuring someone else, getting arrested or soiling your pants and releasing a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;fragrance&lt;/span&gt;. &lt;/li&gt;&lt;li&gt;Challenging anyone to a contest involving shots and/or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Yagerbombs&lt;/span&gt;. What are you -16? This statement is especially relevant if the other party is your date! Who exactly is going to make sure you both get home (no, not both to your home or their home - chances are you'll both be useless if it comes to that).&lt;/li&gt;&lt;li&gt;Talking about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;STDs&lt;/span&gt;, even as jokes. See the point about former partners above.&lt;/li&gt;&lt;li&gt;Impressing with money by discussion and flaunting. This reeks of desperation and will make your date either feel uncomfortable or obliged - if you want either actuality I pity you.&lt;/li&gt;&lt;li&gt;Displaying pictures of family. A photo is worth a thousand words - most of them sound like "taxi" if you fill conversation space in that fashion.&lt;/li&gt;&lt;li&gt;Disregard talk and/or pictures of pets - what on earth is wrong with you if you don't like animals!?!&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;All that said, kissing and sex on the first date is completely and totally fine.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-4261145048641004027?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/4261145048641004027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=4261145048641004027' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4261145048641004027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4261145048641004027'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/03/rules-for-first-date.html' title='Rules for the first date'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-2132756936438436468</id><published>2009-03-10T00:38:00.002+11:00</published><updated>2009-03-10T00:49:19.278+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='...'/><title type='text'>Assumption is easier....</title><content type='html'>..no matter how vacuous, stupid, inadvisable and negligent.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Assuming that you know the answer is quicker and involves less effort.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you are in a technical role, assumption allows you to rest on your laurells without resorting to checking. If you are in a managrial role, assumption excuses you from executing your assigned duties.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In either case, you are guilty of commiting an epic fail. I sincerely hope that your immediate superior disapproves of the pornography you're trying to hide from everyone in an extremely lame fashion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you are a true professional, you should be dedicated to correctness, completeness and inclusion at all times. Else, you are a hack - please move to the back of the queue. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is not a sign of weakness, stupidity, admission or surrender. You can disguise it as having authority over a person or group of people, as checking the correctness of other people's work or having your lowers validate your authority. Better yet, you could be truthful and open and state that you want to know what people think so that discussion and debate allows everyone to arrive at an answer facilitated by leveraging and recognising the collective knowledge, experience, intelligence and insight affored to you by the people who have chosen to work with you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're not talking to the people you work with, either move on or get with the program.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-2132756936438436468?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/2132756936438436468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=2132756936438436468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2132756936438436468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2132756936438436468'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/03/assumption-is-easier.html' title='Assumption is easier....'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-8105256449110465382</id><published>2009-02-08T02:25:00.002+11:00</published><updated>2009-02-08T02:30:37.383+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Do less work</title><content type='html'>It's better for all involved.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All forms of optimisation involve doing less work. There is no debating this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quicksort is optimal. Sedgewick showed this mathematically (and his mentor, the great Knuth agreed) in terms of the amount of work done and movement of data elements required.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The rules are simple:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Don't poll - let the runtime / OS tell you when there is work to do&lt;/li&gt;&lt;li&gt;Respond to events, don't anticipate conditions.&lt;/li&gt;&lt;li&gt;Dispatch quickly&lt;/li&gt;&lt;li&gt;Decouple and hand off work units - seeing to completion only increases latency and reduces throughput&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;No number of threads and processors negate these rules. Sorry Sun - Niagra doesn't relieve us of thinking at least somewhat.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-8105256449110465382?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/8105256449110465382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=8105256449110465382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/8105256449110465382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/8105256449110465382'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/02/do-less-work.html' title='Do less work'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-2238286774257983119</id><published>2009-01-19T00:48:00.002+11:00</published><updated>2009-01-19T01:42:53.087+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='...'/><title type='text'>Is humanity getting worse...</title><content type='html'>...or just more thoroughly exposed and understood?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At my workplace, there is a contest. The contest was originally something along the lines of "whoever finds the worst thing on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Internet&lt;/span&gt; wins." Of course there was no real prize other than the respect and/or disgust of the other people that worked there.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The contest then devolved into "whoever finds something that makes Null do anything but laugh wins." Changing the contest to this was a bad idea, as it turns out that the contest is now seemingly not able to be won, and I have to play by the old rules. That doesn't really matter though, as I always win.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting back to the topic of this post, is it that humanity is getting worse or that we're seeing more of it, thanks partially to the internet. Personally I'm in favour of more exposure as opposed to greater descent.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That said, I'm not quite sure that things &lt;a href="http://www.cockchopper.com/"&gt;have&lt;/a&gt; &lt;a href="http://www.jarsquatter.com/"&gt;always&lt;/a&gt; &lt;a href="http://yellaface.com/"&gt;been&lt;/a&gt; &lt;a href="http://www.canadianteaparty.com/"&gt;quite&lt;/a&gt; &lt;a href="http://www.2guys1hole.com/"&gt;this&lt;/a&gt; &lt;a href="http://www.1girl1pitcher.com"&gt;"open"&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What does everyone else think?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-2238286774257983119?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/2238286774257983119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=2238286774257983119' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2238286774257983119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2238286774257983119'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/01/is-humanity-getting-worse.html' title='Is humanity getting worse...'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-1903438755159830596</id><published>2009-01-07T00:22:00.002+11:00</published><updated>2009-01-07T00:52:45.904+11:00</updated><title type='text'>Some knowledge is best withheld.</title><content type='html'>Really, it is. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Take this delightful example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://windowshelp.microsoft.com/Windows/en-US/Help/2e680b8d-211e-41c5-a0bf-9ccc6d7e62a21033.mspx"&gt;Opening the Windows Vista Box&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are few facts that could possibly facilitate the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;necessity&lt;/span&gt; of this information existing:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The box is incredibly difficult to open, thus needing instructions. This indicates a terrible design flaw which should be well outside of Microsoft's domain of folly (stop &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;sniggering&lt;/span&gt; all of you in the back)&lt;/li&gt;&lt;li&gt;You suspect the people likely to use your product are completely and totally mentally vacant. &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Either way you've insulted the people tasked with opening the box. You've done everyone a grave disservice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the same level, it is often not in your interest to give complete details to people you task with getting something technical achieved. From first principals comes understanding and many other useful things.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A non-technical person (they call themselves that - they don't let on how much they know) and a very scientifically minded person (who has also written code, administered systems and brewed their own beer) where I work subscribe to this idea in their own way. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The non-technical person favours provoking thought over prescribing action. The scientific guy favours proving you are correct as opposed to following a prescribed &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;recipe&lt;/span&gt;. I'm slightly different again, but have adopted parts of both approaches.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the theme of being profound through brevity:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Listen - Learn - Think - Question&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;It's rare someone has nothing to teach you, so listen. It's rare that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;someone's&lt;/span&gt; viewpoint entirely aligns with yours, so think and consider. And it's also rare (in professional life) that you have nothing to contribute, so question.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple really.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-1903438755159830596?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/1903438755159830596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=1903438755159830596' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/1903438755159830596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/1903438755159830596'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/01/some-knowledge-is-best-withheld.html' title='Some knowledge is best withheld.'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-7381310313720064235</id><published>2009-01-06T00:36:00.003+11:00</published><updated>2009-01-06T01:29:23.799+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='A'/><title type='text'>The "art" of being "right"</title><content type='html'>And, while we're at it:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;RIGHT != CORRECT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;For the purposes of this post at least!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Right - acknowledged as the correct viewpoint; accepted as correct by other parties; articulation of popular opinion.&lt;/li&gt;&lt;li&gt;Correct - a strongly founded standpoint derived from evidence, logical deduction and process; undeniably applicable and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;unchallengeable&lt;/span&gt; by any.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Better definitions of the above are welcomed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The two are different for a few reasons. For those familiar with the history of our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;artform&lt;/span&gt; and industry, the "correct" option has not always won. The Amiga was superior to the Macintosh when both were in the marketplace, MCI was superior to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;EISA&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;NetWare&lt;/span&gt; was superior to Windows NT and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;IPX&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SPX&lt;/span&gt; (and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;AppleTalk&lt;/span&gt; for that matter) was superior to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;TCP&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;IP&lt;/span&gt;.  All these statements are true on a purely technical level, but the outcomes would have the casual observer conclude otherwise.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In all cases, the surviving technologies above were right, if not at all correct. The Macintosh won due to software support and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;marketing&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;EISA&lt;/span&gt; won due to backward compatibility and ubiquity, Windows NT won due to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;marketing&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;identifiability&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;TCP&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;IP&lt;/span&gt; won due to existing vendor support (and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;AppleTalk&lt;/span&gt; for similar reasons). The surviving solutions were all right though.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In our industry, being right will serve you better than being correct (if it is a choice between the two). The correct solution tends to involve more time, effort and dedication than less technically-inclined and passionate stakeholders are willing to accept and tolerate. Our dedication to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;skill set&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;furtherment&lt;/span&gt; are tempered by others - it is the reality.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which brings me to the "art" of being "right". In the words of my benevolent dictator who is almost always right "it isn't that hard":&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Be undeniably clear&lt;/span&gt; - Leave no fact or detail up to interpretation. Expound, explain and clarify. Leave no room for debate or deviation.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Be correct in your use of language&lt;/span&gt; - Do not misuse terms. The moment you do, the nerd in the corner can unravel your otherwise well-weaved fabric of assertion and logic. Be prepared to define and explain.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;Concede&lt;/span&gt; as quickly as possible&lt;/span&gt; - Harder than it seems. The moment you need to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;concede&lt;/span&gt;, you may need to rethink a large amount of what you have left to say or have already said. It is much better to show that you're in command of the subject matter in the face of challenge instead of holding steadfast to belligerent malfeasance.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Tell people they are wrong&lt;/span&gt; - You're doing them a favour if they're dedicated to learning, correctness, doing their job properly or being remotely professional. They're not lying, they're presenting facts as they know them. Just be prepared to support your point in a fashion that focuses on facts as opposed to personal failing.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Stay focused&lt;/span&gt; - Make a point, not a stand. You're not there to witness the pontification of others, as that doesn't serve anyone (see point 3).&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Listen and respond - don't hear and disregard&lt;/span&gt; - If you have surrounded yourself with people who are one of Yes Men, people you consider your &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;lessors&lt;/span&gt; or those with nothing to contribute no amount of reading or thought can possibly help you. Thus you are either beyond help or surrounded by people who are there to help you and are more than capable of doing so. Leverage expertise and have your expertise leveraged.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Challenge - don't quash &lt;/span&gt;- Being prepared to challenge and demeaning a person are two different and incompatible actions. The challenge improves all involved - being quashed improves no one.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Be deliberate and thorough in accepting concession&lt;/span&gt; - Someone accepting your viewpoint as correct and vacating their own is no different to the reverse &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;occurring&lt;/span&gt;. Confirm why they see your assertions are now correct in their view. &lt;/li&gt;&lt;/ol&gt;&lt;div&gt;The strange thing with this points is that being correct will not require these rules to be followed when in the company of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;faithful&lt;/span&gt; - they will convince themselves. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-7381310313720064235?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/7381310313720064235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=7381310313720064235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7381310313720064235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7381310313720064235'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2009/01/art-of-being-right.html' title='The &quot;art&quot; of being &quot;right&quot;'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-9006926553198114536</id><published>2008-12-27T01:15:00.002+11:00</published><updated>2008-12-27T01:25:06.836+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life In General'/><title type='text'>What is wrong with people!?!?</title><content type='html'>Honesty is seemingly core to almost every society. Seemingly...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course not everyone learns the lessons society seeks to teach them. Arrogance, ignorance, belligerence and emotional depravity all detract from the learning process.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How hard is it to tell someone that they've acted in the wrong way - a fashion inappropriate given the community in which they lead their lives? It's seemingly impossible without being branded harsh, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;prickish&lt;/span&gt;, inconsiderate, lacking in compassion, insular or cruel. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As parents such enforcement is often associated with being overly disciplinarian, as an employer totalitarian and selfish if done as a friend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Every know and then someone needs to be dealt with harshly for their own benefit. Unfortunately, even if the person dealing out the seemingly harsh treatment is doing so for reasons more personally invested than professional duty, the true intent is very rarely recognised.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some people really, really need to wake up and take a good look at themselves.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-9006926553198114536?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/9006926553198114536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=9006926553198114536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/9006926553198114536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/9006926553198114536'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/12/what-is-wrong-with-people.html' title='What is wrong with people!?!?'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-2311836523301257457</id><published>2008-12-21T23:40:00.002+11:00</published><updated>2008-12-22T00:00:55.719+11:00</updated><title type='text'>Joel is wrong</title><content type='html'>&lt;div&gt;Like many of you (I think, and possibly hope), I've read Joel of Fog Creek Software's &lt;a href="http://www.joelonsoftware.com"&gt;blog&lt;/a&gt; on occassion.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The man tends to be correct. Every now and then though, the man is just completely and totally wrong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I remember a blog post where he advocates hiring the best programmers exclusively. What on earth is wrong with the man!?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He's wrong on two levels:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Hiring only "the best" creates a terrible culture of elitism and exclusivity. Do you really want to make the cost of hiring escallate that much as time goes on?&lt;/li&gt;&lt;li&gt;"The best" are, by definition, an extremely finite resource. You want to cut down your potential workforce and then make it all the more difficult to integrate them?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Good grief. These two facts are actually the lesser of your problems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's assume you get a team of 4 brilliant developers who write amazing code, backed by perfect design. Your problems have begun.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Over the next 5 years, all 4 of your developers move on. Face it, they're "the best" - if you've only got 4 developers what are the chances you can keep them interested? What happens when you replace them? Are the replacements going to be equiped to handle whatever they produced in terms of maintanance? Will they be able to support your sales staff, support staff, technical writers, strategists and other stakeholders?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These are questions that need to be asked - Joel doesn't seem to cover them all that thoroughly at all.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-2311836523301257457?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/2311836523301257457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=2311836523301257457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2311836523301257457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2311836523301257457'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/12/joel-is-wrong.html' title='Joel is wrong'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-3874571636205791101</id><published>2008-12-21T23:15:00.002+11:00</published><updated>2008-12-21T23:34:47.556+11:00</updated><title type='text'>Logs are an admin's best friend....</title><content type='html'>Or their absolute worst enemy, depending on what's producing them.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One part of my employer's network needs to satisfy one of the industry's most intense and invasive standards - the Payment Card Industry Data Security Standard. Many organisations are grappling with gaining compliance at the moment - it's not at all easy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the major parts of compliance (and an aspect that our QSA identifies as a regular failing of organisations aiming to achieve compliance) is logging. Specifically the retention of logs and protection of logs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Proven, standardised solutions work best so we of course deploy syslog servers to capture the huge log traffic from the myriad of devices we deploy to obtain our tick each year.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last Tuesday morning at 0:15 I was about to push some scheduled firewall changes to one of our production firewall clusters. As I'm not a complete and utter nutter (commenters may disagree), I was at home at the time and doing this remotely. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All attempts to bring up either the SSH or web interface to the firewall cluster failed. Logging in to the office VPN and trying from there failed. I could get into our production network without issue but even from there, getting to the firewall simply wasn't happening. Down to one of Melbourne's tier 3 data centers I went.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At no time was there any indication of any network slowdown at that time, and all our monitoring showed no issues at all. I managed to get to the console on the then active firewall and couldn't see anything standing out as being a problem but the CPU usage was 5 times normal - never good, but at least I had an explaination for the lack of reachability. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given these lovely devices are clusted together and no indication otherwise existed, I suspected some weird software fault and forced the other node of the cluster to take over. Access to the main administrative interface was restored...for about 75 seconds. The high CPU usage returned and the SSH and web access dropped away. Our SNMP monitoring was still working, and showing no increase in session count, attacks or memory usage - just high CPU usage. Failing back didn't help either.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After an awful lot of buggering around, I managed to trace the problem to one of our syslog servers. A quick reboot fixed the problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Logs were the cause of the problem, and there was no indication anywhere that the syslog server was at fault - we use Juniper gear and the syslog connections did not appear in the output of "get session". This is the second time we've discovered a "silent failure" on our Juniper devices.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've raised this with Juniper. I suspect that I'll never get a solid resolution - just like we didn't last time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-3874571636205791101?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/3874571636205791101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=3874571636205791101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/3874571636205791101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/3874571636205791101'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/12/logs-are-admins-best-friend.html' title='Logs are an admin&apos;s best friend....'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5919297906459989760</id><published>2008-12-21T22:57:00.003+11:00</published><updated>2008-12-21T23:13:57.461+11:00</updated><title type='text'>Tolerance above all else</title><content type='html'>For my bretheren, you already know the following. For those who we report to (and pay us - we have the utmost respect for you, really), please take note:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* All processes fail&lt;/div&gt;&lt;div&gt;* Something is always missed&lt;/div&gt;&lt;div&gt;* Failures happen at the worst possible time&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The corollary of this is simple, obvious and an instructive bastardisation of an oft quoted phrase:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;One must plan to fail&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ironically it is the best admins, developers and DBAs that tend to understand and work with this particular factoid. The ones who have gotten well past the stage of "my work is perfect" and "not my problem". &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are developers, admins and DBAs much more experienced and older than myself who fail to embrace this simple idea. We have a long, long way to go.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5919297906459989760?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5919297906459989760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5919297906459989760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5919297906459989760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5919297906459989760'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/12/tolerance-above-all-else.html' title='Tolerance above all else'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5323802722327815857</id><published>2008-10-26T05:16:00.002+11:00</published><updated>2008-10-26T05:51:17.697+11:00</updated><title type='text'>There are no marbles</title><content type='html'>Recently my boss asked me how I ensured that two database servers contained the same data.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The two servers in question ran Microsoft SQL Server 2000 (don't hate me - I inheritted them) and the only replication option available was Log Shipping.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Those who have had to go through this process will know that a log either applies fully or does not. Microsoft SQL Server 2005 (and Sybase ASE 15) are more generous - they allow you to apply a previously applied log without error. Regardless, a hard error occurs if a log is applied that does not pick up where the previous log application left off.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If change # 13559 was the last change in the previously applied log, the current log better start with change # 13560, or else the system administrator is going to be alerted / woken up / distracted from drinking / stopped mid-coutis.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, most IT professionals have to deal with managers who have limited (putting it kindly) knowledge of software in general, let alone enterprise systems. Upon being asked about our database failover status, my description was met with the most interesting statement:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"If I want to ensure that two buckets have the same number of marbles, I need to count the number of marbles in each bucket."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The sillines of this statement is left as an exercise to the reader.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5323802722327815857?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5323802722327815857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5323802722327815857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5323802722327815857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5323802722327815857'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/10/there-are-no-marbles.html' title='There are no marbles'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-7698219611553598846</id><published>2008-10-26T04:50:00.002+11:00</published><updated>2008-10-26T05:13:29.429+11:00</updated><title type='text'>Basics - 3</title><content type='html'>The greatest error you can make is to forget your earliest lessons.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm not referring to forgetting the detail - I write code most days and I haven't written a fundamental algorithm method/function/predicate in years, but the detail can be the &lt;a href="http://methodologyf.blogspot.com/2008/07/basics-2.html"&gt;thing that holds us back&lt;/a&gt; and isn't relevant here.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whether you're a system admin, software developer or some other form of IT slave, you are dealing with other people's software. Even if you're an OS/compiler/VM/embedded developer, you are dealing with other people's code. Given such preconditions, none of us are special - we've all been taught the same basic lessons (we hope - surely no one is using a linear search in their performance-critical code...&lt;a href="http://www.lemis.com/grog/SCO/code-comparison.html"&gt;oh wait&lt;/a&gt;....).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Concepts are the critical thing here - applying operations on any form of efficient data structure tends to eliminate said efficenices, remembering that sorts depend on data size, that searches depend on the structure of the input data and minimising structure size is always in your best interest unless there is some other imperitive that is far more pressing (of which I'm yet to see an example).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why then I still see queries like this in production software is beyond me:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SELECT * FROM some_table AS t1 INNER JOIN some_other_table AS t2 ON RIGHT(t1.field1, 3) = RIGHT(t2.field1, 3) WHERE LEFT(t1.field2, 3) = 'XYZ' AND LEFT(t2.field3, 3) = 'ABC') ORDER BY t1.field4 ASC LIMIT 0,2001&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(No, it's not a MySQL or PostgreSQL database - MySQL would not cope given it's 1-index-per-table-in-most-cases evaluation and PostgreSQL would have filled its logs with rewrite-your-query-already-you-idiot - the query has been recomposed to protect the guilty).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As soon as I spoke to the person who wrote this query, they were &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;very &lt;/span&gt;interested in what they did wrong and how to fix the problem (even though no performance isues were evident). Since then they have always checked their work and have done the perfectly right thing in terms of getting queries, code and other artefacts dead right.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next time you're called a geek by your fellow code warriors or system grunts, remember that you're probably going to be the person who finds the cause of the next big issue. We're all taught the fundamentals early on for a reason. The fact that so many engineering and mathematics students perform poorly on basic operations of addition and multiplication (and their associated inverses) betrays the problem seen in industry here - don't move with the herd.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-7698219611553598846?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/7698219611553598846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=7698219611553598846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7698219611553598846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7698219611553598846'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/10/basics-3.html' title='Basics - 3'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-1071108984336056883</id><published>2008-10-26T04:36:00.003+11:00</published><updated>2008-10-26T04:50:02.891+11:00</updated><title type='text'>We are taught be be lazy</title><content type='html'>So it makes sense we do less work. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A recent post on &lt;a href="http://thedailywtf.com/Articles/Out-of-All-the-Possible-Answers.aspx"&gt;The Daily WTF&lt;/a&gt; reminded me of something. Specifically it reminded me about the most basic rule of making things happen more quickly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The particular problem is unlikely to be encountered by anyone building the vast majority of conceivable software thingits, but that doesn't matter - the example is still instructive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For those not following the link, the basic problem is to find the lowest common multiple of a set of contiguous integers from 1 to X inclusive. The specific case set X = 20.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The brute force solution (as opposed to the "I'm a moron" solution presented in the link) is to try every integer from 1 onwards. For all those thinking that such an approach is acceptable, think again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Seriously, you have two important facts in front of you:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* The answer has to be evenly divisable by the largest integer in the range presented (we'll call this value Y).&lt;/div&gt;&lt;div&gt;* The answer has to be evenly divisable by the largest prime in the range presented (we'll call this value Z).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Taking the linked example, the largest number is 20, and the largest prime is 19.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the lowest possible value is the largest integer in the range multiplied by the largest prime in the range - 20 * 19 = 380. The smallest step in the check is 19 - the largest prime. For anyone who queries this, please feel free to leave comments - I like comments and I like maths (yes, I am weird and insane).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From such a simple observation you can easily go further, but a large reduction in the search space has already been achieved with very little effort. In terms of return as a function of effort, a local maxima has most probably been observed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The moral of the diatribe is similarly simple - the basis of all optimisation is to do less work on a nett basis. The old school world of precalculating sine and cosine values of angles is long past, as is designing systems around binary values, but reusing values and avoiding duplication of work and un-needed work is just as valid as ever.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-1071108984336056883?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/1071108984336056883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=1071108984336056883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/1071108984336056883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/1071108984336056883'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/10/we-are-taught-be-be-lazy.html' title='We are taught be be lazy'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5582132003754084114</id><published>2008-07-14T01:04:00.002+10:00</published><updated>2008-07-14T01:39:11.243+10:00</updated><title type='text'>Basics - 2</title><content type='html'>For those in our industry, know this - we stradle many disciplines, savour your place.&lt;br /&gt;&lt;br /&gt;For those who work with us - as detailed as we need to be, detail is often the problem.&lt;br /&gt;&lt;br /&gt;As ironic as it is, many of my greatest insights have come as the result of a non-technical person speaking their mind.&lt;br /&gt;&lt;br /&gt;I'm sure a lot of people in our industry have found that as they've gained more experience, they've spent more time focusing on the basics and finding solutions at that end of the spectrum.&lt;br /&gt;&lt;br /&gt;As this is a basic exercise, the message and justification is basic. Just because someone hasn't gone through the same education and experience as you doesn't relegate their input to the level of uselessness. In fact, the exact opposite may be true.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5582132003754084114?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5582132003754084114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5582132003754084114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5582132003754084114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5582132003754084114'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/07/basics-2.html' title='Basics - 2'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-2763756821887824854</id><published>2008-07-13T23:42:00.005+10:00</published><updated>2008-12-21T23:39:21.988+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>malloc, free, repeat, repeat ad infinitum</title><content type='html'>In the current development climate, you'll be using one of two types of development environments:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An environment where the developer is responsible for allocating and freeing resources&lt;/li&gt;&lt;li&gt;An environment where the developer acquires resources, and (generally) the environment takes care of freeing them&lt;/li&gt;&lt;/ul&gt;Of course, it's not quite so clear-cut. Maintaining a static (or Shared for you VB.Net developers) list of allocated resources will stop any sort of reclaimation from happening, but the distinction is sufficient for this article.&lt;br /&gt;&lt;br /&gt;Recently, I had to deal with a delightful issue involving a memory leak on every developer's favourite OS, Windows NT (2000, 2003, XP, Vista, 2008 etc).&lt;br /&gt;&lt;br /&gt;For those not familiar with the way that the Windows kernel "works", here's a minimal introduction:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The Windows kernel has two important memory pools, both critical to the correct operation of the kernel. One is the paged pool, able to be swapped to disk as required. The other is the non-paged pool, permanently in RAM. If either of these pools is exhausted, stability will be impacted.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is why the UNIX world embraces redirection into user space for most high-level tasks. Virus scanning, remote access, graphical interfaces, intrusion detection, complex firewall rules and logging (to name a few that come to mind) are all handled mainly in user space, where crashes and incorrect behaviour are handled with a process kill and respawn.&lt;br /&gt;&lt;br /&gt;Windows handles things in a, how shall we say, different way. Drivers for the vast majority of remotely low-level tasks do complex work inside kernel space. There are multiple cases from Network Associates, Symantec, Computer Associates and Roxio of causing massive stability problems due to their drivers. My employer has various requirements mandating the use of various packages from vendors that install an assortment of drivers that do non-trivial things in kernel space. In every case, these drivers have resulted in major stability problems.&lt;br /&gt;&lt;br /&gt;This gives rise to two very important questions:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How hard can it be to do a decent amount of testing to find these problems, given they require me to reboot my servers every week to "work around" them?&lt;/li&gt;&lt;li&gt;Why aren't these drivers a boring, stone-simple stub that pass the required data to a user space process that won't bring down the server in question due to a simple development error?&lt;/li&gt;&lt;/ul&gt;This week, I was faced with an agonising decision. A server running Windows 2003 Server (Standard Edition, 32 bit) that normally shows a Paged Pool usage of 30MB - 40MB was showing usage of 320MB.&lt;br /&gt;&lt;br /&gt;After promptly panicing, I went looking for the cause. This has happened before, and I'd maximised the size of both pools. The idea wasn't to prevent the problem, but rather to at least get the chance to both see the problem and diagnose it. We've ensured that Pool Tagging was enabled on all of the Windows machines we take care of and that Poolmon was readily accessible.&lt;br /&gt;&lt;br /&gt;As soon as I saw the problem I fired up Poolmon and saw that the tag for the biggest user of the pool (280 MB of usage) was SevI. A quick check showed this was Symantec's SymEvent driver. And this is where my frustration began:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The SymEvent driver isn't advertised as being included with or used by pcAnywhere. It's mainly associated with Norton AntiVirus and Symantec AntiVirus&lt;/li&gt;&lt;li&gt;Executing LiveUpdate against pcAnywhere doesn't update the driver&lt;/li&gt;&lt;li&gt;The latest version of pcAnywhere no longer uses the SymEvent driver&lt;/li&gt;&lt;li&gt;There isn't a program available that will clean up the paged pool usage to allow me to forgo reboot of a critical production server&lt;/li&gt;&lt;/ul&gt;As much as I disagree with Microsoft's business practices, they actually make very good tools for verifying drivers (PreFAST is actually quite fantastic). You could also use Purify and Valgrind (yes, it runs on Windows). Symantec are also a compiler developer.&lt;br /&gt;&lt;br /&gt;Because of some programmer's inability to understand that you should free what you malloc, I was forced to reboot a critical server before the "acceptable" hours of 3am - 6am.  I applied the patch, and rebooted to a situation where I am expected to believe the problem is solved.&lt;br /&gt;&lt;br /&gt;There are several worrying morals to this awful story:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Windows is too complicated. As my boss does say (he's not a developer or sysadmin), you should always seek to make things more simple&lt;/li&gt;&lt;li&gt;Many eyes make all bugs shallow. Open source software is held up high by geeks for a reason.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Don't use pcAnywhere. There is no possible justification for using it.&lt;/li&gt;&lt;li&gt;The companies expecting us to trust them with our host-based security systems expect  our uptime in return without consequence (NAI, Symantec and CA are all guilty)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We (those in the industry) are cynical because we're given valid reasons to be that way&lt;/li&gt;&lt;/ul&gt;So to those responsible for my pain, those at the biggest security companies in the world, thanks for bringing down our industry in the eyes of the outsiders. You owe we in the trenches an apology, and it's way overdue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-2763756821887824854?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/2763756821887824854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=2763756821887824854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2763756821887824854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/2763756821887824854'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/07/malloc-free-repeat-repeat-ad-infinitum.html' title='malloc, free, repeat, repeat ad infinitum'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-4545191394961841798</id><published>2008-03-17T00:24:00.003+11:00</published><updated>2008-04-02T20:38:33.830+11:00</updated><title type='text'>Basics - 1</title><content type='html'>The basic things tend to be what trip up complicated applications and systems. For instance, just the other day one of my colleagues asked me what the last packet sent to close a TCP socket connection was. He was working with a package that seemingly wasn't playing by the normal rules.&lt;br /&gt;&lt;br /&gt;"FIN" was my reply - and I was right. That's not the point of the story though.&lt;br /&gt;&lt;br /&gt;The developer working on this project is extremely good at what he does. The fact that he found this problem quickly and solved it quickly highlights two important aspects of the way he does things:&lt;br /&gt;&lt;br /&gt;1. He looked for a cause, not tried a solution without basis&lt;br /&gt;2. He asked for clarification to speed up the fix&lt;br /&gt;&lt;br /&gt;The number of cases that exist where the words and phrases "maybe", "probably" and "what else could it be" appear in response to a problem without having a proper look is worrying.&lt;br /&gt;&lt;br /&gt;The most important thing to remember when it comes to solving problems is that you should call on the experience and insight of others. Simple really.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-4545191394961841798?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/4545191394961841798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=4545191394961841798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4545191394961841798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4545191394961841798'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/03/basics-1.html' title='Basics - 1'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-7770859484834271915</id><published>2008-03-16T23:29:00.002+11:00</published><updated>2008-03-16T23:42:41.388+11:00</updated><title type='text'>Apparently I have cancer. Thanks Internet!</title><content type='html'>Yes, according to the Internet, I have cancer:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.healthline.com/symptomsearch?addterm=back+pain&amp;amp;picklist="&gt;http://www.healthline.com/symptomsearch?addterm=back+pain&amp;amp;picklist=&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course, it should be painfully obvious that this is just not even close to being helpful but really - listing cancer, cardiovascular disease and many other things must either be someone's idea of a joke or protectionism gone mad.&lt;br /&gt;&lt;br /&gt;Observe that this isn't BMEzine, Rotten, Portal Of Evil or any other shock site but could quite easily have a much more profound effect than those sites on unsuspecting persons (or those silly enough to trust the internet and its contents).&lt;br /&gt;&lt;br /&gt;As I always say, browsers should place a modal dialog in front of users upon start up with the following content:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Welcome to the internet. Those responsible are sorry.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-7770859484834271915?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/7770859484834271915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=7770859484834271915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7770859484834271915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/7770859484834271915'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/03/apparently-i-have-cancer-thanks.html' title='Apparently I have cancer. Thanks Internet!'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-4401521920430315064</id><published>2008-03-02T23:57:00.002+11:00</published><updated>2008-03-03T00:48:22.995+11:00</updated><title type='text'>If you can't measure it....</title><content type='html'>If you can't measure a quantity that you need to examine for your job or current task, then you're focusing in the wrong place.&lt;br /&gt;&lt;br /&gt;When it comes to computing, visibility is key to maintainability, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;serviceability&lt;/span&gt;, reliability and success. Visibility means measurement.&lt;br /&gt;&lt;br /&gt;This is a concept not lost on those who have come before us, given the multitude of packages and protocols dedicated to this end.&lt;br /&gt;&lt;br /&gt;I'm lucky enough to work with people who understand the critical importance of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;measurability&lt;/span&gt; and monitoring. Unfortunately, the industry isn't lucky enough to have had this most basic and fundamental fact become a pervasive truth. Let's take a simple example.&lt;br /&gt;&lt;br /&gt;Today, I reinstalled Microsoft's latest attempt at a desktop OS, Vista. My desktop rig has 2 RAID controllers, both of which have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;WHQL&lt;/span&gt; accredited drivers available.&lt;br /&gt;&lt;br /&gt;Anyway, the initial leg of the install went perfectly. Upon rebooting and Vista actually launching from the hard disc, I was greeted with the box rebooting at a certain point. While I figured out what the problem was and how to fix it, would an error message of any type or description really be too much to ask? Even a stack trace is more helpful than a reboot.&lt;br /&gt;&lt;br /&gt;At a higher level, I have taken care of many networks where monitoring and measurements amounts to testing ping response times and little else. And the examples of this happening were for very big, very valuable networks. Networks of over 100 devices have not had even this level of monitoring.&lt;br /&gt;&lt;br /&gt;Thankfully, the excuses of mundane, involved setup routines for monitoring are all but gone these days. Take &lt;a href="http://www.zenoss.com"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Zenoss&lt;/span&gt;&lt;/a&gt; and &lt;a href="www.hyperic.com"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Hyperic&lt;/span&gt;&lt;/a&gt; - both excellent packages that provide excellent visibility and monitoring of many different types of software and both easily customisable and extensible.&lt;br /&gt;&lt;br /&gt;If you have a system that involves two or more interconnected programs, hosts, networks, switches, routers, firewalls or any other type of device may I suggest you monitor it - for your own sanity if nothing else?&lt;br /&gt;&lt;br /&gt;Correlation is best seen when nice uniform measurement is in place and "just happens". The number of problems you find may not change, but the time to resolution and the preemptive options you have will increase and there are no exceptions to this as long as your monitoring is extensive and complete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-4401521920430315064?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/4401521920430315064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=4401521920430315064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4401521920430315064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/4401521920430315064'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/03/if-you-cant-measure-it.html' title='If you can&apos;t measure it....'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-218952000540470421</id><published>2008-02-28T00:50:00.003+11:00</published><updated>2008-02-28T01:14:08.051+11:00</updated><title type='text'>More performance = more problems</title><content type='html'>Problems are, at their most simple level, manifestations of undesired outcomes.&lt;br /&gt;&lt;br /&gt;Of course this is a wide and far-reaching definition, but it serves the purpose for this little diatribe.&lt;br /&gt;&lt;br /&gt;Recently, a service was moved from a shared host to a dedicated host. This increased performance considerably and made &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;maintenance&lt;/span&gt; of the moved service much easier. All initial tests went perfectly, and the benefit looked to be everything that was expected.&lt;br /&gt;&lt;br /&gt;Then, we noticed strange set of characteristics in the application that had been moved. Other systems (not on the shared host) started to display similar characteristics. The most odd of these was an inverse correlation between connection count and thread count through a number of systems. As good as the monitoring that's in place is, accurate data doesn't help with baffling behaviour.&lt;br /&gt;&lt;br /&gt;In the end, our added performance was the cause of our problems. We have a few services that are called on by a number of applications. The way one of those services was used had never seen the sort of loads that the reorganisation had resulted in. Our clients loved the additional speed, and they used it.&lt;br /&gt;&lt;br /&gt;In the end, making a few minor changes allowed us to retain our performance improvements whilst &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;eliminating&lt;/span&gt; the odd behaviour.&lt;br /&gt;&lt;br /&gt;A case that is delightfully counter-intuitive, but brilliantly instructive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-218952000540470421?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/218952000540470421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=218952000540470421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/218952000540470421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/218952000540470421'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/02/more-performance-more-problems.html' title='More performance = more problems'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-5520907072466521442</id><published>2008-02-25T23:19:00.003+11:00</published><updated>2008-02-26T00:01:54.618+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>We are all connected - A tale of system failure</title><content type='html'>Over the last 48 hours, a coworker and I have had to deal with a number of system problems across the many hetrogenous setups we take care of.&lt;br /&gt;&lt;br /&gt;This is not unusual in our line of work - we have in-house produced, third-party and software-as-service style systems to take care of. We've seen the symptoms manifest from the known causes in the past as well, but this incident served as a most excellent reminder.&lt;br /&gt;&lt;br /&gt;One particular service we take care of does real-time information lookups against a third-party's systems. The interconnection between our gear and theirs is not all that complicated, but does require some understanding and care.&lt;br /&gt;&lt;br /&gt;Anyway, the third-party in this case had some network problems that knocked out parts of their systems. The problems were such that no lookups could be done, thus the service on our side wouldn't work.&lt;br /&gt;&lt;br /&gt;We have a number of companies we interact with via the same interconnection method, and a number of them share infrastructure on our end. As is so often the case, systems often have follow-on effects to the systems they are connected to. A busy database server can cause problems in an application's web tier for example.&lt;br /&gt;&lt;br /&gt;In this case, the interconnectivity used means that, without the due care and understanding, a lack of responsiveness from one lookup source and impact the deliverability of the entire service.&lt;br /&gt;&lt;br /&gt;All of this is due to one aspect of the system's overall design - a single choice made many years ago (before myself or any of my workmates were involved - the system was acquired from a competitor).&lt;br /&gt;&lt;br /&gt;This single choice was the result of vendor loyalty and narrow thinking. Vendor loyalty, in that using technologies recommended by and/or created by a particular vendor without regard for what other systems and technologies will be involved. Narrow thinking in that a single technology, designed for a specific purpose was considered to be the best solution for the wide array of environments that were part of the project's brief from day one.&lt;br /&gt;&lt;br /&gt;With so many systems connected to other systems, there are still worrying recurrances of old, well-worn mistakes. Three small facts should be kept in mind when designing any system that interacts with another:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Networks fail&lt;/li&gt;&lt;li&gt;Bandwidth is finite&lt;/li&gt;&lt;li&gt;Latency changes, constantly&lt;/li&gt;&lt;/ul&gt;Simple really.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-5520907072466521442?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/5520907072466521442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=5520907072466521442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5520907072466521442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/5520907072466521442'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/02/we-are-all-connected-tale-of-system.html' title='We are all connected - A tale of system failure'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-226969459155163220</id><published>2008-02-25T01:59:00.004+11:00</published><updated>2008-02-25T02:21:57.802+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life In General'/><category scheme='http://www.blogger.com/atom/ns#' term='IT'/><title type='text'>What you know doesn't matter</title><content type='html'>I have a number of colleagues that base their job security on one metric and one metric alone.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;What they know&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Unfortunately when questioned further what they mean becomes clearer and more worrying. It's not that their training, insight or approach is unique and not able to be reproduced. Rather, they are referring to (as a most excellent friend of mine put it) "esoteric knowledge" about their environment. Some choose policy as their instrument of security, some choose belligerence and some choose a combination of these and other foundations to ensure their place in an organisation is secure and indispensable.&lt;br /&gt;&lt;br /&gt;To all those who think this way - please take a good look at what you are doing. I can assure you that your security is short term and the impact to yourself and others is at best tolerated. As the original &lt;a href="http://www.slashdot.org"&gt;aggregator&lt;/a&gt; did recently bring to my attention, those who are good at their job inevitably get away from it, at least in IT. Those who do otherwise are &lt;a href="http://www.cio.com/article/186800"&gt;characterised quite simply&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Seemingly counter intuitive perhaps, but entirely normal. A great software developer will not be writing code forever and will instead elevate their peers and eventually those who work for them. A great system administrator will not be writing shell scripts forever and will be asked to build a team to continue their most excellent work. Every DBA seeks to take care of bigger and better resourced data warehouses and can surely not expect to do so alone.&lt;br /&gt;&lt;br /&gt;In all industries, we all seek to move into better pay rates, better work conditions and generally better lifestyle.&lt;br /&gt;&lt;br /&gt;To actually improve your pay rate against the cost of living, you need to increase your value to whichever organisation you work for (even if, and especially if, you work for yourself) - no amount of hard work will offset the gains made through efficiency and knowledge transfer.&lt;br /&gt;&lt;br /&gt;To improve your work conditions, the need to maximise your options for growth and advancement whilst minimising your need to perform mundane and repetitive tasks must surely be paramount.&lt;br /&gt;&lt;br /&gt;Improvements in lifestyle are a product of both these things - your family and friends are surely not wanting to see you happy and growing as opposed to satisfied and surviving.&lt;br /&gt;&lt;br /&gt;We are all human, and advancement is what separates us from the animals. Not passing on knowledge, empowering those around you and failing to relinquish control serves no one, least of all yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-226969459155163220?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/226969459155163220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=226969459155163220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/226969459155163220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/226969459155163220'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/02/what-you-know-doesnt-matter.html' title='What you know doesn&apos;t matter'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528188420697728587.post-3632646944896931941</id><published>2008-02-25T01:11:00.000+11:00</published><updated>2008-02-25T01:33:50.377+11:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='System Administration'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Database Administration'/><title type='text'>The best move is no move at all</title><content type='html'>It's worryingly simple. In all of software development, system administration and database administration, the best move is so often no move at all. In fact, it often applies to life in general.&lt;br /&gt;&lt;br /&gt;Yes, it's non-sensical and somewhat circular but is a statement that makes much sense. Thinking about it though:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;As a software developer, it is extremely unlikely that you'll come across a problem that no one else has had to solve and solve repeatedly. The first rule of writing great code is not to - if libraries exist, use them!&lt;/li&gt;&lt;li&gt;As a sysadmin you are most probably administering systems that plenty of other people take care of, satisfying similar requirements to those that many of your contemporaries are burdened with. The chances that none of them have posted or blogged their solutions and thoughts are quite low.&lt;/li&gt;&lt;li&gt;As a DBA, unless you have an environment the rest of us envy, then you'll have an environment the rest of us have relevant experience on - please use it.&lt;/li&gt;&lt;/ul&gt;It was &lt;a href="http://en.wikipedia.org/wiki/Issac_Newton#Religious_views"&gt;Newton&lt;/a&gt; who said "If I have seen further it is by standing on the shoulders of giants" - the man was stupidly intelligent and listening to him makes an awful lot of sense.&lt;br /&gt;&lt;br /&gt;If you can find a library, a set of scripts, a whitepaper or a blog entry/post that describes a suitable solution, you'll benefit. One of two things shall happen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Your problem will be solved, and you can do something else&lt;/li&gt;&lt;li&gt;A possible approach will have been explored and excluded, narrowing your search&lt;/li&gt;&lt;/ul&gt;Additionally, either outcome will hopefully further contribute to the knowledge at hand of yourself and those who do as you do. If you find a suitable "off-the-net" solution, the mere mention of the specifics of your environment as a comment or reply will extend the suitability of the solution for everyone else. If a solution you find does not fit, mentioning why will either result in the information you found being updated and adapted or people saving time through your contributed analysis.&lt;br /&gt;&lt;br /&gt;Simple really - but as &lt;a href="http://en.wikipedia.org/wiki/Donald_Knuth#Awards"&gt;the great one&lt;/a&gt; did say, it's much harder to be simple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528188420697728587-3632646944896931941?l=methodologyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://methodologyf.blogspot.com/feeds/3632646944896931941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528188420697728587&amp;postID=3632646944896931941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/3632646944896931941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528188420697728587/posts/default/3632646944896931941'/><link rel='alternate' type='text/html' href='http://methodologyf.blogspot.com/2008/02/best-move-is-no-move-at-all.html' title='The best move is no move at all'/><author><name>Null</name><uri>http://www.blogger.com/profile/02188387405399474551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
