• 22 Oct 2009 /  Life, Order vs Chaos, Technology

    Yeah, we all pretty much agree, aviation checklists are good. It’s reasonable, it’s smart, it just plain makes sense. Conversely, most of us have seen Office Space (or, we got that memo) and agree that, never mind TPS reports themselves, TPS Cover Sheets are stupid mindless paperwork keeping us from just gettin’ on with our jobs! Most people probably have not actually dealt with a TPS Report, per se, but we’re familiar with the metaphor – stupid worthless paperwork.

    So what am I getting at? Aviation Checklists and TPS Report Cover Sheets are really the same thing.

    tpscover
    Aviation Checklist (Yup, there’s an App for that!) TPR Report Cover Sheet (did you get that memo?)

    The purpose of the aviation check list is pretty straight forward. To keep you un-deadified.The purpose of the TPS Cover is a little more convoluted, but it’s essentially a management checklist.

    So how did the aviation checklist come into being? Did someone, one day, say for no reason “Let’s have a checklist. Yeah!”. No. First, somebody messed up. Bad. Then, people got together and had a meeting to discuss what went wrong and how to solve the problem.

    A similar history lies behind much “mindless” paperwork similar to TPS Covers. A young or growing company, without the proper process or individual accountability, can turn a team of young, energetic, and enthusiastic recent college grads into a collection of sleep-deprived jaded suicidal alcoholics in mere days. After one, or more, projects have missed deadlines horribly, a meeting is called. In that meeting it’s asked “Why was the project so late? The original time line still looks reasonable – something went wrong. How can we fix this?”. The answer is often more process, more checklists, more paperwork.

    So, TPS Cover Sheets are the end result of a project (or three) gone wrong. As much as a pain as they may be, they may actually be saving you from being driven into a jaded state of suicidal alcoholism. Conversely, there’s definitely the possibility that too much process and paperwork comes out of the meeting – perhaps an email to an email list for a memo for the coversheet for the tps report, which is ultimately for the test process for the actual product. There’s obviously a balance, but TPS Report Cover Sheets are probably not as bad as Peter Gibbons would have you believe. In the end – Damn, it feels good to be a gansta.

    Tags: , , , ,

  • 19 Oct 2009 /  Life

    Just a few night-pics of my city. Click on any image for full-resolution version.

    San Diego Night Skyline

    San Diego Night Skyline

    San Diego Skyline, Zoomed In

    San Diego Skyline, Zoomed In

    San Diego Gaslamp Quarter, Downtown

    San Diego Gaslamp Quarter, Downtown

    Downtown San Diego, 6th Ave & C St

    Downtown San Diego, 6th Ave & C St

    Tags: , ,

  • 02 Oct 2009 /  Code, Technology

    A lot of people don’t like to put their e-mail address directly on a web-page. You may have seen e-mail addresses that look like “jondoeATgmailDOTcom”, or “j o h n do e @ gma il . c o m!”. Strangeness such as spelling out words like “AT”, odd spaces, or non e-mail address characters such as ! are all tricks employed to avoid having your e-mail address scopped up by someone looking to spam you.

    The way in which I approach the problem is by having javascript write my e-mail address for me. I get both a well formed and clickable e-mail link, as well as avoid getting my e-mail address scooped up by a web crawler. Now, I know that the javascript document.write() function is shunned in most circles, but below is some example code.
    [cc lang="javascript"]
    // File is contactInfo.js
    document.write(”David Kennedy:
    Web
    http://davidwkennedy.com|
    E-Mail dave@orderinchaos.org |
    Phone: 435.770.6865 “);
    [/cc]
    Which is then called in the HTML file as seen below
    [cc lang="html"]

    [/cc]
    I’m sure that it’s probably quite possible to write a web crawler that will be smart enough to pick it up, but I think most web crawlers won’t.

    For example, when I use the web crawler below on my personal site davidwkennedy.com you can see that the results do not contain my e-mail address!

    Below is a web crawler, written in Python & borrowed from IBM’s site on web spiders.
    [cc lang="python"]
    #!/usr/local/bin/python

    import httplib
    import sys
    import re
    from HTMLParser import HTMLParser

    class miniHTMLParser( HTMLParser ):

    viewedQueue = []
    instQueue = []

    def get_next_link( self ):
    if self.instQueue == []:
    return ”
    else:
    return self.instQueue.pop(0)

    def gethtmlfile( self, site, page ):
    try:
    httpconn = httplib.HTTPConnection(site)
    httpconn.request(”GET”, page)
    resp = httpconn.getresponse()
    resppage = resp.read()
    except:
    resppage = “”

    return resppage

    def handle_starttag( self, tag, attrs ):
    if tag == ‘a’:
    newstr = str(attrs[0][1])
    if re.search(’http’, newstr) == None:
    if re.search(’mailto’, newstr) == None:
    if re.search(’htm’, newstr) != None:
    if (newstr in self.viewedQueue) == False:
    print ” adding”, newstr
    self.instQueue.append( newstr )
    self.viewedQueue.append( newstr )
    else:
    print ” ignoring”, newstr
    else:
    print ” ignoring”, newstr
    else:
    print ” ignoring”, newstr

    def main():

    if sys.argv[1] == ”:
    print “usage is ./minispider.py site link”
    sys.exit(2)

    mySpider = miniHTMLParser()

    link = sys.argv[2]

    while link != ”:

    print “\nChecking link “, link

    retfile = mySpider.gethtmlfile( sys.argv[1], link )
    mySpider.feed(retfile)
    link = mySpider.get_next_link()

    mySpider.close()

    print “\ndone\n”

    if __name__ == “__main__”:
    main()
    [/cc]
    Below are the results of the above crawler on davidwkennedy.com
    [cc lang="bash"]
    dave@dave-sparta:~$ python miniCrawler.py davidwkennedy.com /

    Checking link /
    adding index.htm
    adding photos.htm
    adding videos.htm
    adding projects.htm
    ignoring http://orderinchaos.davidwkennedy.com
    adding funstuff.htm
    adding about.htm
    ignoring http://twitter.com/davidwkennedy
    ignoring statcounter

    Checking link index.htm
    Checking link photos.htm
    Checking link videos.htm
    Checking link projects.htm
    Checking link funstuff.htm
    Checking link about.htm
    done

    dave@dave-sparta:~$

    [/cc]

    Tags: , , , ,