Planet Linode

Planet Linode is an aggregate of blogs by Linode Subscribers. You can subscribe to a feed of this content from your favorite RSS reader in RSS 1.0, RSS 2.0, or OPML format. All times used on this page are expressed in GMT.

To have your blog listed, please open a Support Ticket with subject "Planet Linode" and include the URL for your blog's feed in RSS format and the name you would like it displayed under.

DISCLAIMER: The views expressed herein are those of the authors and not necessarily the views of Linode, LLC.



July 02, 2009

Real Time Photo: Mmm, bready

0702091736.jpg
Originally uploaded by nflect on 2nd July, 2009.


Some bread I baked the slow way, using a recipe from Maggie Glezer's Artisan Baking. No idea how they taste yet, but they look great.

July 02, 2009 09:38 PM

RX on the Dragon

Slayed a dragon this weekend, aka, US-129.

Image

View the full set of photos at my flickr account.

July 02, 2009 08:53 PM

Easy Web Spidering in Ruby with Anemone

anemone Anemone is a free, multi-threaded Ruby web spider framework from Chris Kite, which is useful for collecting information about websites. With Anemone you can write tasks to generate some interesting statistics on a site just by giving it the URL.

Its only dependency is Nokogiri (an HTML and XML parser). Other than that, you just need to install the gem to get started using Anemone's simple syntax which, among other things, allows you to tell it which pages to include (based on regular expressions) or define callbacks.

This example taken from Anemone's homepage prints out the URL of every page on a site:

require 'anemone'

Anemone.crawl("http://www.example.com/") do |anemone|
  anemone.on_every_page do |page|
    puts page.url
  end
end

The bin folder in the project contains some more in-depth examples, including tasks for counting the number of unique pages on a site, the number of pages at a certain depth in a site, or a list of urls encountered.  There's also a combined-task which wraps up a few of these, intended to be run as a daily cron job.

You can install Anemone as a gem or get the source from Github of course, and there's some fairly comprehensive RDoc documentation available in the source or online.

rupho.pngAlso worth seeing.. Mobile Orchard's Beginning iPhone Programming Workshop. Bay Area/July 30-31. Seattle/Aug 20-21. Ruby Inside discount of $200 -- use "ri" discount code.

July 02, 2009 08:40 PM

Waterford Glass

Waterford Glass

It’s funny the things that catch your eye. On a corner on Patrick’s Street there are these 3 signs: “Seiko”, “Waterford Glass” and “HMV”.

Related Posts

July 02, 2009 08:45 AM

Our dog, Hippo, is really scar…

Our dog, Hippo, is really scared of thunderboomers.

July 02, 2009 12:59 AM



July 01, 2009

Twitter Updates for 2009-07-01

Powered by Twitter Tools.

July 01, 2009 11:40 PM

Warning: When subsisting entirely on Kirkland diet shakes, do not chug three immediately before bed.

July 01, 2009 11:36 PM

twuuenc the uuencode of web2.0

For far too long now, you have been limited by those 140 characters of microblogging sites like twitter. I present you with twuuenc, take your tweet that is longer than 140 characters and stuff it into fewer unicode characters.

Take for instance the beginning of the Gettysburg Address:
Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.

That's a total of 175 characters, twitter just won't have it. But if you run it through twuuenc you get:

ɹҺξɌǶᖜᘫᓿϧѶ`✢Εǚᖣ¼Ј|ᓅɋöᖛӪ❡Ѯ9ᒡ✲ᐑᖨᙃ¥ѰҺΨᙦɖǞᗍʼО;◆ɌɺǪᙃ¦јѺĖ◐ΑȕөŤѐƢᘟ◐ýǪᗌᘋŇğ◆ᘕ˼ᖸᒋӽШѥÛᙵŶᖨ᙮ŰŇ{ᒧɋɸᕰᔋоҀƞ`✲❼ȖᓫᓿѠᑺ◊◡ǹᖰᔌ❚ŇᓹĆ✮Pᖐᕣ°ЈѥĆ✒˘ǒᘫᕀҀƞ`ᘶýᕤᕤᗟ

That tweet is only 128 characters (130 with markers), there's still 12 characters left for you to insert a wise crack!

What's better is that this allows you send binary data over twitter, imagine the possibilities! Just for starters, let's add some additional compression to the address through Zlib

ңᙦ˥ᖐąᒟǐТ;ӤУᗔ○Õ¢Ñ◀ᓫӆᕪ✼ᙜ❉ӆʃ%ᗽᐉᘰҫᑻǧɪȰŠᖔᙱ¯ķ▭ᑜᔨɳĺᘗŐ◇ᔇђʗᑵËᘎᙁᑶʓǿ⟘nΗˀЧЏȜ➒⟘Ɲᖁʉᘧ➳ːȰ✩❈❢✜¨Ȁѣ➫ᗧңᔯᓞϓ❯ᒑȰ❰˒Ӝń

Now our tweet only takes up 93 characters (95 with markers), You have a full 47 characters to be clever!

You can also optionally include the markers around the message to signify that the following message should be twuuenc decoded. A message wrapped in ☹ means it is twuuenc encoded but not compressed; while a message wrapped in ☺ means it's encoded and compressed with zlib.

The alphabet twuuenc uses only has 2048 characters, but if you can get that up to 4096 that's another whole bit you can store per character in your tweet.

You can find the source for the encoding and decoding here with an MIT license. The code relies on http://code.google.com/p/python-bitstring/ which is also in the git repo (similarly licensed).

July 01, 2009 11:34 PM

Please help the World Health Organisation

I received a nice polite email from a man asking for my help last week. He was a bit cryptic but he replied this morning saying he works with the World Health Organisation.

Help the World Heath Organisation

Hi Donncha O Caiomh,
there is something to talk about , i want your assistance coz i work with W.H.O ( world health organisation ) and i bought some goods in state and i am in finland here for official purpose.
Will you kindly send me your address so i can send the goods to you and also maybe when am through with my official assignment i will come down there and collect the goods bought.
Pls kindly reply me so as to know what to do.
THANKS
JUNIOR BENRICHARD.

Oh the poor guy! He’s stuck in Finland and needs goods delivered? As I was about to reply with my full address, I remembered getting another email from him. He had contacted me about a post I wrote. That was last week when I was on holiday and I still haven’t got around to clearing out my inbox. I went searching and here it is:

electric car info

hi
yea i drive an electric car. i work with the car construction company. if you wanna know, kindly send me 3000usd via western union and i will get back to you as possible.
you can call me on +2348029479959. am junior by name.

Oh what a talented guy! He works for W.H.O. and for a car company! I don’t know if I want to know about electric cars that much. I mean, $3000? That’s a lot of money!

Oh, and Ben, since you’re subscribed to my blog, please get in touch again. The Irish Police want a word with you.

Related Posts

July 01, 2009 03:33 PM

Integrity: A Fun And Easy Continuous Integration Server

IntegrityIntegrity is a simple and lightweight Continuous Integration server written in Sinatra (a DSL for quickly creating web-applications in Ruby). When commits are pushed to a Git repository, Integrity builds, runs tests, and reports the build status to each team member. It supports a variety of notifiers including Email, IRC, and Twitter.

When it comes to developing large projects with multiple team members, it’s common nowadays to set up a Continuous Integration (CI) server. CI is a development practice where developers combine their work frequently and run tests over the whole project in order to identify errors early. Wikipedia has a good summary of the practice.

Integrity makes it easy to setup a CI server for your Ruby apps. It lowers the barrier for people starting out with Continuous Integration, as well as provide a simpler and minimal alternative. The project’s homepage includes helpful installation instructions for Phusion Passenger, Thin, and Heroku.

Matt Sears is a Ruby developer and co-founder of Littlelines, a Rails development and web design company.

July 01, 2009 03:10 PM

How Healthy Is Your Salad? (and other hidden food dangers)

In our fast paced world we often struggle to find a balance in our diet between convenience and health. We all know the dangers of the fast food industry, high levels of salt and fat in many restaurant foods, of portion sizes being too large (particularly here in America), but we rarely question the "healthy" options we are choosing. I have many patients, for example, who eat energy bars as snacks. They are touted and marketed as "healthy" but many contain enormous amounts of calories and fat - enough to replace a meal or two in any given day.

read more

July 01, 2009 02:39 PM

Heroes Con Comic - Page 4

Heroes Con Comic - Page 4

And here’s page 4! Thanks to all who contributed!

  • Pretzels
  • Donut
  • Conundrum - Travis, Martinsville, VA
  • Glockenspiel - Rich, Charlotte, NC
  • Deep-fried - Jeff, Colin, and Matthew, Concord, NC
  • Ticket - Dave, Tennessee
  • Pragmatic - Rashad, Savannah, GA
  • Juxtapose - Tabitha, Texas
  • Fudgy lumpkin - Nicole, Charlotte, NC
    Yet another fun expletive!
  • “Rock Forever!” - Alex, Charlotte, NC
    OK, maybe accepting short phrases isn’t a bad idea after all…
  • Squirrel - Ashley, Charlotte, NC

Page 5 on Friday, then more guest comics!

July 01, 2009 02:00 PM

To much information…..

I’ve just surprised myself with the amount of email addresses i currently have, i think i need to consolidate them and have one, currently i have

hotmail
gmail
yahoo
own hosted email [about 4 here]

Do i really need this many email addresses :) I think it’s time to close accounts :)

It’s a shame apps i use are linked to these, flickr for instance is linked to my yahoo account….picasa is linked to my gmail, is it time to go totally self hosted?

I’ve probably mentioned this sometime in the past so apologies if i’m repeating myself.

Related posts:

  1. Picasa – Ubuntu

July 01, 2009 12:48 PM

Haircut, pint and hangover pills

Haircut, Pint and hangover pills

So, start off in the College of Hairdressing to tighten up that stylish hair of yours, then off to the “Hi B” for a pint (but turn your mobile phone off!) and then downstairs to Minihan’s Pharmacy for the Alkazelser.

Actually, I don’t like the Hi B. Any pub owner who verbally attacks his customers is a pub I don’t want to frequent. Lovely people in the pharmacy though.

Related Posts

July 01, 2009 08:34 AM

Bibliotarian: Good for You and Us

You can now help Book Wish whenever you buy books online, and we'll help you find the lowest prices in return. Just start all your book shopping at bibliotarian.org, our new fast book price comparison service. Bibliotarian can find you the lowest prices from Amazon, AbeBooks, Alibris, Half.com, etc., and we (and, optionally, another charity of your choice) can benefit from the affiliate revenue provided by the bookseller. It's a win-win situation.

read more

July 01, 2009 03:46 AM

Open Education Conference 2009 Vancouver, Canada - Scholarship Application

This blog post is my application for a travel scholarship to attend OpenEd 2009.

Last year I applied for, and was awarded a scholarship to attend OpenEd in Logan, Utah. I came all the way from Hong Kong, and I'm tremendously glad that I did. My experience at OpenEd has made an enormous impact on my life. I met some great people, found a great project, and subsequently landed an excellent job in Open Education.

There are four main reasons I plan to attend OpenEd 2009:

  1. P2PU - Most (if not all) the people from the Peer2Peer University will be there, it's a perfect time to meet up and move forward.
  2. Open Everything - I'm facilitating the organization of Open Everything unconferences in more than 10 cities around the world. OpenEd will be a great place to find more people to get involved. Open Everything NYC featured an entire Open Education track.
  3. Flat World Knowledge - I've recently taken a position at this innovative Open textbook publishing company. I'll be there to share and answer questions.
  4. Open Sessions - I thrive on Open sessions. I'm sure I'll lead at least one, and will be active in many.
  5. There are plenty more good reasons for me to be there, who knows what new things I'll discover.

    The most important issue I'm currently facing relates to the commercialization of the Open Education field. If I'm selected to attend OpenEd 2009, I'll be there to gather information and discuss the topic of for-profit commercialization of Open Education. Important decisions lie ahead and I want to be sure to do the right thing. It will be valuable to interact with people who have experience in commercializing Open and building sustainable business models.

    Thanks for reading, feel free to contact me. I appreciate your consideration for this opportunity and I hope to see you all at OpenEd 2009.

 

July 01, 2009 03:40 AM

Auditing Time…

Time is critical in security systems; specifically, having systems know the time  is very important. Adequate clock synchronization is important for:

  • Operational Integrity (things happen when they are supposed to happen – backups, tasks, etc.)
  • Reproducibility of events (meaningful logs and records)
  • Validation of SSL certificate expiration (or other tokens, etc.)
  • Correct application of time restricted controls
  • Etc.

So, the big question is, what is “adequate clock synchronization”, and how do we achieve it ?

But First, What Time Is It ?

Time itself is of course a natural phenomenon. Just like distance, volume, and weight, the measurements for time are artificial and man-made.  The dominant time standard (especially from a computer and therefore Information Security perspective) is Coordinated Universal Time (UTC). This could probably have been called Universal Compromise Time, as it turns out that getting the whole world to drop their cultural biases, deployed technology, etc. and move to a single time system has been a long and complicated road (and it isn’t over yet).

One major component of UTC is an agreement on what time it in fact is, and how that is determined. Also, there are  questions surrounding how to adjust leap seconds, leap years,  and other “measurement vs reality” anomalies.  Time (and its measurement) is quite complex in itself, but for the purposes of Information Security (system operation, log correlation, certificate expiration, etc.), the good news is that UTC provides a solid time standard.

Now, all we need to do is synchronize our clocks to UTC !
(and adjust for our local time zone…)

Network Time Protocol (NTP)

Network Time Protocol (NTP) is a well established, but often misconfigured and misunderstood, internet protocol. NTP utilizes Marzullo’s Algorithm to synchronize clocks in spite of the fact that:

  • The travel time for information passed between systems via a network is constantly changing
  • Remote clocks themselves may contain some error (noise) vs UTC
  • Remote clocks may themselves be using NTP to determine the time

In spite of this, a properly configured NTP client can synchronize its clock to within 10 milliseconds (1/100 s) of UTC over the public internet. Servers on the same LAN can synchronize much more closely . For Information Security purposes, clock synchronization among systems and to UTC, within 1/5 or 1/10 of a second, should be sufficient.

Classic Misconfiguration Mistakes (and how to avoid them)

The misconfiguration mistakes that folks make tend to be the result of:

  • Overestimating the importance of Stratum 1 servers
  • Over-thinking the NTP configuration

NTP Servers are divided into Stratums based on what time source. A Stratum 1 server is directly connected to a device that provides a time reference. Some examples of reference time sources include:

NTP servers which synchronize with a Stratum 1 time source are Stratum 2 servers, with the Stratum number increasing by one for each level.

Big Mistake – Using a Well Known NTP Reference

The most frequent mistake people make when configuring NTP on a server is assuming that they need (or will get the best time synchronization) by using one of the well known atomic clock sources. This tends (thought not always) to be a bad idea because it overloads a small number of servers. Also, a server with a simpler network access path will generally provide better synchronization than a more remote one.

When configuring the NTP protocol, it is a good idea to specify several servers. The general rule of thumb is 2-4 NTP servers. If everyone specifies the same servers, then those servers become overloaded and their response times become erratic (which doesn’t help things). In some cases, an unintended denial of service attack is caused.

Both Trinity College of Dublin, Ireland and the University of Wisconsin at Madison experienced unintended denial of service attacks caused by misconfigured product deployments. In the case of the University of Wisconsin at Madison, NETGEAR shipped over 700,000 routers which were set-up to all pull time references from the university’s servers. NETGEAR is not the only router or product manufacturer to have made such an error.

Enter the NTP Pool…

“The pool.ntp.org project is a big virtual cluster of timeservers striving to provide reliable easy to use NTP service for millions of clients without putting a strain on the big popular timeservers.” quoted from pool.ntp.org

Basically, the NTP pool is a set of over 1500 time servers, all of which are volunteering to participate in a large load-balanced virtual time service. The quality and availability of the time service provided by each of the NTP servers in the pool is monitored, and servers are removed if they fail to meet certain guidelines.

Unless a system itself is going to be an NTP server, then use of the NTP Pool is your best bet 100% of the time. It is a good idea to use the sub-pool that is associated with your region on the globe. Here is ta sample configuration: (/etc/ntp.conf file)

server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

It may not be necessary for your to run the NTP service itself. Running the ntpdate command at boot and then in a cron job once or twice a day may be sufficient. The command would look like:

ntpdate 0.us.pool.ntp.org 1.us.pool.ntp.org 2.us.pool.ntp.org 3.us.pool.ntp.org

If you do need to install ntp on Ubuntu, the commands are:

sudo apt-get install ntp

and then edit the /etc/ntp.conf file and add the server lines from above. On my OSX workstation, the entire /etc/ntp.conf file is:

driftfile /var/ntp/ntp.drift

server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

Overthinking the Configuration

The “server” parameter in the configuration file has a number of additional directives that can be specified. These are almost never needed, but can generate a lot of extra traffic on the NTP server. Avoid over thinking the server configurations and avoid using prefer, iburst, or burst.

When Should I Run NTP Service Rather Than Use The NTPDate Command ?

There is almost no downside to running the NTP service. It is very low overhead and generates almost no network traffic. That being said, the only downside to running the ntpdate command a few times a day, is that the clock can drift more. If I were performing an audit, and the shop-practice was to use ntpdate on everything except infrastructure service machines (directory servers, syslog concentrators, etc.), I would accept that practice. I would be more concerned about how time synchronization was being managed on HSMs, directory services, NIDS, firewalls, etc.

When Should I Run My Own NTP Server ?

There are two cases when you should consider running your own server:

  • You have a large number of machines that need time services
  • You wish to participate in NTP Pool
In both, cases your options for running a server are:
  1. Purchase a time reference (such as a GPS card)
  2. Arrange for authenticated NTP from a Stratum 1 server
  3. Local (short network hop) servers to sync with

A Stratum 1 time server appliance or a GPS/CDMA card can be purchased for costs similar to a rack mounted server (of course you will need two). If that is just out of the (budgetary) question, then I would look for the time servers to use authenticated time sources. NIST and several other Stratum 1 NTP providers have servers which are only available to folks who have requested access, and are authenticating to the server. If time accuracy is critical to risk management, and GPS/CDMA is not available, then I would push for authenticated NTP.

Option 3 is acceptable in the vast majority of situations, including cases where logs and events are only correlated locally, or where no compelling need exists.

NTP and Network Security

NTP uses UDP on port 123. This traffic should be restricted in DMZ or other secure network zones to only route to authorized NTP servers. Tools like hping can be used to turn any open port into a file transfer gateway or tunnel.

One option is to set-up a transparent proxy on your firewalls and to direct all 123/UDP traffic to your NTP server or to one you trust. (The risk of the open port involves providing a data path out of the organization, not rogue clocks…)

Resources and More Information

Cheers,

Erik

Auditing Time…


July 01, 2009 01:26 AM



June 30, 2009

Getting Started with MongoDB and Ruby

mongo mapper MongoDB a is a high-performance, open source, schema-free, document-oriented database written in C++. It's sort of a cross between scalable key/value stores and traditional functionality-rich relational databases.

MongoDB might be useful as a fast, simple, non-transactional data store for a web application, or as a caching mechanism. You don't ever need to worry about migrations due to Mongo's schema-less nature.

Getting started with MongoDB using Ruby is now fairly straightforward thanks to the Mongo Ruby driver. This provides access to the core Mongo database operations, and natively supports many Ruby objects without requiring conversion (including nested hashes). There's even an ActiveRecord connection adapter for Mongo.

Earlier this week, John Nunemaker announced his MongoMapper, a wrapper for MongoDB which includes typecasting, callbacks, validations and other ActiveRecord-like features. The project is heading towards drop-in Rails compatibility.

MongoMapper uses a default connection from the Ruby driver, and to create a MongoMapper model you just need to include MongoMapper::Document in the class (as opposed to ActiveRecord's inheritance pattern). From there, it's simple to define your document's keys, validations and callbacks.

The MongoMapper gem is available from RubyForge or Github, and you can read more on RailsTips.

rupho.pngAlso worth seeing.. Mobile Orchard's Beginning iPhone Programming Workshop. Bay Area/July 30-31. Seattle/Aug 20-21. Ruby Inside discount of $200 -- use "ri" discount code.

June 30, 2009 11:45 PM

Patio flooding? Tennant already tried to fix it? Rental agency will take credit for your work.

Back to the subject of my patio flooding, I got an e-mail from the rental agency saying that they'd resolved my problem.... with no mention of what the problem was, or what they'd done to fix it. A phone call later, I find out that they'd "redirected the downpour pipes" ... something that I did, they tried to take credit for. Thanks!

So I stroll over to the office, and explain that no it wasn't them that went to Home Depot and paid $9 for a plastic rain downspout redirector tube thingy, it was me. Got a maintenance guy, described the puddle that turns into a lake that overflows into my patio, and they're going to talk to the landscaping guys. *prays for rain resolution*

June 30, 2009 08:41 PM

Chicken and the Hard Drive

I had a Western Digital 1TB Green Power fail on me last week. No major disappointment, just a lot of stuff MythTV had recorded for me that I had either watched and was keeping on the off-chance I'd watch it again, or it was CSI Miami and I hadn't suffered from enough insomnia to need to watch it.

Anyway, the model I had is obsolete after a few months (big surprise there), and ebuyer don't have any in stock, so I have the purchase price of the old drive to spend on a new one, I choose a Samsung EcoGreen F2 1.5TB.

Now on the the WD I'd had to set the jumper on the back to limit the drive to SATA I (150Gbit/s) in order for my old Asus/Nvidia socket 754 motherboard to recognise it. It runs quiet and cool and should I need to replace it it'd probably be a bigger power supply, a new case, and PCI Express graphics card. This would be expensive and overkill when the Nvidia FX5200 graphics card is perfectly adequate for displaying digital TV. I digress.

The new samsung disk requires one to use their software (ES-Tool, well hidden on their website and the kind of thing that expects you not to need a manual) to adjust drive settings. The problem is the computer needs to be able to detect the disk before the software can adjust the settings, but when the problem is the computer can't detect the disk in the first place there's a bit of a problem. The software in question is a dos-based bootable CD. I try using the the much newer PC in my room, that can't boot the CD, something to do with an out of memory error. This might be something to do with said PC being a modern multi-core multi-GPU 64-bit machine. It can, however, communicate with the disk so I know it works. My trusty Dell Precision is similarly too old to cope with the new disk.

Finally I get both the disk and the setup software running on my mum's desktop, which appears to finally have a feature that's made it really useful. It's an early EMT-64 capable 3Ghz P4, not as fast or as economical or as stable as anything else in the house but today the damn thing redeemed itself. I, on the other hand, need a small dose of public ridicule for not checking how to set the drive to 150Gbit/s before ordering it.

Having complained lots, it is very quiet, draws very little power, and and is more than quick enough to serve as a repository for myth recordings, however it'll be obsolete by the time I can tell you whether I think mine's reliable.

June 30, 2009 06:14 PM

34 isn’t too bad!

34 isn’t too bad!

June 30, 2009 05:42 PM

Using my soapbox for a second… Support the ENDA.

Hey All… Allow me to step up onto this soap box here for a second. Ok, there we go.

There’s an important piece of legislation that has been introduced into the House of Representatives. It’s officially called “H.R. 2981: To prohibit employment discrimination on the basis of sexual orientation or gender identity” but most people will know it by its short title, “Employment Non-Discrimination Act of 2009.” It’s currently in committee, so there may or may not be much that you can do, depending on your Representative’s committee assignment. HOWEVER, please do call or write your Representative anyway and show them that you support the bill.

Now.. You’re probably wondering, what all this bill does, and asking “wait, aren’t those groups already protected under current discrimination laws?” Well to answer the second question first, it’s a simple, No, they’re not. So yes, if you do not live in one of the states that has a local ENDA, you can be fired for being gay, lesbian, bisexual or transgendered. Stupid, no? Join The Impact has a good summary, too, as to what this bill does:

ENDA will add sexual orientation and gender identity to pre-existing employment non-discrimination laws. ENDA is such a common sense idea that most people believe it is already illegal to fire someone for being Gay, Lesbian, Bisexual, or Transgender. While there are already 12 states and 100 localities that protect 40 percent of the population, millions are still at risk.

This is an important bill that needs to pass, and is going to require pressure from constituents to make sure that Representatives (and in the future, Senators, though nothing has been introduced there yet,) to pass it. Oh, one other important point….any version that passes needs to be INCLUSIVE to all, as it stands right now. A similar bill had been introduced to the last Congress, however, it only covered sexual orientation, and not gender identity, which is something that also needs to be on the list of protections. (And no, gender identity is not the same as sexual orientation, but that is beyond the scope of this post.)

Anyway, here’s some links for you to find out more information:

Text of the bill
Act NOW to support ENDA!
UnitedENDA
President Obama’s support for the bill

*steps off soapbox*

Technorati Tags: , , , , ,

June 30, 2009 12:17 PM

CFUnited Early Bird Pricing Ends Today

If you're still on the fence about whether you are going to CFUnited 2009 now would be a good time to make up your mind. Early bird pricing ends today after which the 3 and 4 day package prices will go up by $100 and the Saturday only package price will go up by $50. Register now to lock in the better deal!

If for some reason you aren't sure if CFUnited is for you I recommend checking out the schedule which lists all the topics and speakers. I'd be willing to bet there are lots of ColdFusion, Flex, and AIR sessions you would enjoy.

June 30, 2009 12:00 PM

Samskip Pioneer

Samskip Pioneer

Samskip Pioneer, a container ship, docked in Cork last weekend. We were down by the Marina in Blackrock on a blistering hot Saturday. While us Irish sat in the shade, Spanish students sat out in the 3pm sun, some wearing long sleeve tshirts! I know, I know, they’re used to the heat but the mind still boggles. I’m useless if the temperature goes above 25C.

Anyway, I went searching and found aprs.fi where you can track the radio transmissions from shipping and found this map showing the location of Samskip Pioneer last Saturday. Login as “V2BT5″, the callsign of the ship. Yes, it’s in Cork Harbour!
The lines might be wrong but then they’re as the crow flies and a big ship doesn’t fly.

What do you think of the border? I adjusted the image in Bibblepro using it’s lens guide which created the border. Normally I’d resize it out but this time I liked the effect.

Related Posts

  • No related posts

June 30, 2009 08:10 AM

Linux Events

I’ve decided that next year I’m going to attend at least one major linux show, after seeing numerous reports from SELF, LinuxTag, various FUDcons, it’s about time i went to one. Now i’m in the UK so where to go? Europe? the US? who knows, i’ve still got plenty of time to think about it :)

Related posts:

  1. Linux Fests
  2. Linux Foundation – “We’re Linux”
  3. Women in Linux

June 30, 2009 06:55 AM



June 29, 2009

Failbag

I had a load of frosting left over from another project, so I looked for a really quick way to use it up, other than show up to my monday game with a bowl of frosting and some spoons. For some reason I decided to ignore the big "NO!" scribbled on the swiss roll recipe in my BeRo book. Needless to say my swiss roll tin was slightly the wrong size and the planned swiss roll kind of turned half way over and cracked. I think I remember why the grafitti is on that recipe now. I can't be bothered to take a photo, but as it's currently sat in my fridge wrapped in greaseproof paper and will be fed to sugar-addict gamers anyway, I'm going to call it the Doncaster Failbag.

June 29, 2009 06:08 PM

Review: Garrido’s (Austin, TX)

Posted by johngl

Last Sunday (June 21) while dining at Fino, a small group of us decided that we’d hit Garrido’s this weekend.  What we didn’t know at the time was that the restaurant located at 360 Nueces was going to get a large favorable write-up in the Austin American Stateman three days later. I thought that getting into the place at 1pm Sunday (June 28) would be next to impossible.

Garrido's

Lucky for us, we met up at the bar and after a few minutes, were led to our table.

The restaurant is really quite contemporary in style:

Contemporary style

The rich color of the stained concrete floor contrasts the bright light colors of the ceiling.  There are bare concrete pillars here and there along with some areas of exposed concrete block walls.  The back wall, which stylishly hides the restroom doors, is covered with some interesting terra cotta tiles:

terra cotta tiles

Not only is the interior clean and sleek, the large expanse of patio area is completed in a similar vein.  I learned from the American Statesman article that the tables are reclaimed Spanish cedar and the building itself is city-certified “green.”

Nice Patio!

Had it not been 102° in the shade, we would have dined outdoors.  It really is a beautiful setting and Chef Garrido has done a marvelous job setting up the entire facility.

Enough about the physical plant, what’s the food like?

Shrimp Cocktail
Shrimp Cocktail “Acapulco” with Avocado and Cucumber

I opened by ordering the shrimp cocktail.  The shrimp were wonderfully cooked and not a bit chewy.  The avocado brings some fat to the dish which is nicely offset by the tangy lime.  I didn’t notice the cucumber nor did I seek it out.  The red sauce added a bit of zest without being “hot”.  I could easily rip through a couple of these servings.

Lamp pops
Lamb Pops with Plantain Chips and Roasted Garlic Ancho Chili Sauce

Perhaps my favorite on the day, the grilled lamb had just the right amount of chew to it.  Cooked to medium, the lamb is flavorful without being overpowering.  The chiles again added a dimension of flavor that worked well even with the chips and greens. They come three to a plate on the appetizer menu and, for those that really like lamb, it would be easy to order two of these and consider them an entree.

Oysters
Oyster Tostadas on Yucca Root Chips with Honey Habanero Salsa

Obviously an homage to those killer oysters Chef Garrido made famous during his 16 years at Jeffrey’s, these do not disappoint.  Perfectly cooked with just the right amount of crunch.  Damn, these are good!

Mahi Mahi "BLT"
Mahi Mahi “BLT”

I’ve not normally a big fan of fish tacos as they have to be done exactly right — and these are really quite nice.  This really did have the “BLT” taste boosted by the protein of the Mahi Mahi.

Since I’ve now ventured into the tacos, I have to say something about the tortillas.  These are definitely not your typical flour or corn tortillas.  These are more like crepes — thin and very flexible adding just a hint of texture without getting in the way of the other flavors.  I am now quite spoiled.

It’s also a nice touch that a variety tacos are available ala carte and range in price from $3.00 for the vegetarian to $4.25 for the ribeye. It’s easy to experience a lot of different flavors without spending too much.

Oyster Taco
Oyster Taco

Couple the fried oysters with those wonderful tortillas.  It’s a match made in heaven.

Grilled Chicken, Cheese, Avocado, and Salsa
Grilled Chicken, Cheese, Avocado, and Salsa served with Refried Black Beans and Rice

The most glorious spousal unit likes her beans and rice, so she ordered a taco plate. It’s almost like getting the beans and rice for free.

Pair of Tacos, Oyster and Ribeye
Oyster Taco (left) and Ribeye Taco (right)

This is another of my samplings. The ribeye taco had the full rich flavor of a nice cut of beef. There were even caramelized onions in there. They’re a great way to get a hit of red meat without going for the heaviness of a whole steak.

Pork Quesadilla
Roasted Pork Quesadilla with Asadero Cheese, Sliced Avocado, and Pineapple Habanero Salsa

The cheese and pork were great, but these were a little heavy on the salsa.  That is to say, these were just a bit too “wet” for my liking.  Pulling back a bit would help escalate these to the level of the other dishes.

I can certainly forgive this one little misstep.

At Garrido’s, you can get a lot of flavor in a tight little package.  The coolest thing is that there are a lot of different tight little packages from which to choose.

I will definately be heading back!

June 29, 2009 05:57 PM

Adding Akismet and Project Honeypot to BlogCFC

Comment spam on my blog has increased immensely over the last four to six weeks. I'm getting, on average, 150 spam comments per week. In order to help combat the scum of the earth I have implemented both Akismet and Project Honeypot by way of activating these two features in CFFormProtect (which ships with BlogCFC). [More]

June 29, 2009 05:30 PM

386

386

C386, a fishing boat in Kinsale, photographed just over a year ago.

Related Posts

  • No related posts

June 29, 2009 05:11 PM

Heroes Con Comic - Page 3

Heroes Con Comic - Page 3

…and now time for page 3! Here’s the contributors:

  • Amalgamated - Jody, Dacusville, SC
  • Syzygy
    Ok, I’d need three nerds for this to be true, but…oh well.
  • No!
    A little kid came up to my table. I asked him for a word. He yelled, “No!” I said, “Thanks!” That confused him. :)
  • Teeth - Chris, Dayton, OH who was visiting the show and is part of Studio Akumakaze
  • Scrap - Bjay, Dayton, OH who I think is also with Studio Akumakaze
  • Butter - Effzlin, Greenville, SC who was there with Legal Aliens
  • Onomatopoeia - Ed, Princeton, WV
  • Existentialism - Mike, Bluefield, VA
  • Daisy - Daisy, Charlotte, NC
    Now I don’t feel so bad when I get the word “dawn” and use it in the most obvious way…
  • “WAAAGH!” - Kingman, Cullowhee, NC
    Luckily I played Warhammer 40,000 for the first time a week prior so I knew what this was. Please don’t sue.

Page 4 coming on Wednesday!

June 29, 2009 02:00 PM

New Xzibit Video Clip - Young De And Xzibit Feat. Mykestro – Figure It Out

This video has been out for a few days now and has been getting a lot of views, check it out:Source: XzibitCentral.com Exclusive!


June 29, 2009 09:35 AM



June 28, 2009

Creating OmniFocus Tasks From E-mail

I've blogged about the OmniFocus task management application before and today I want to talk about a small but very useful feature: creating tasks via e-mail. As much as I dislike e-mail it is hard to exist or do business today without it. No matter where you are, at the office, home, or on the road e-mail is sure to follow. If you always looking at it wouldn't it be nice if you could create OmniFocus tasks from any e-mail client? After all, using this method would certainly fall under the category of getting things out of your head and into your trusted system. [More]

June 28, 2009 08:32 PM

corehackers: process work

Several suggestions/requests have reached me regarding corehackers. First, #corehackers on irc.perl.org now exists. Second, a task list is very high on my priority list. The only thing higher is getting basic maintenance planned and running. I need to get the mindless tasks sorted out so that I can focus fully on corehackers. I think I've github maintenance figured out. All going well, that will get much more simple shortly. Next I need to get a non-github wiki set up someplace. I know where I'll host it; I just haven't picked the software. That said, I do need your help getting started. What do you need to start working? I've heard "C Primer", "Intro To The Core", and the task list. Send me email or a message on twitter or identi.ca if you think of anything else.

June 28, 2009 08:26 PM

Find My iPhone - A Short Demo

When the iPhone 3.0 software was announced earlier this year I was excited to hear about the Find My iPhone feature. I've been a MobileMe subscriber since it launched alongside the original iPhone and the prospect of finding my iPhone if it were lost was intriguing.

In order to use the feature you first turn enable it on your iPhone, which must be running iPhone software version 3.0. To do this, go to the Settings screen and tap Mail, Contacts, and Calendars. Ensure Fetch New Data is set to Push. Next, access your MobileMe account in the same settings screen and make sure Find My iPhone is turned on. [More]

June 28, 2009 07:41 PM

Hirb: An Easy-to-Use View Framework for irb

hirb The Interactive Ruby Shell (irb) and the Rails console are great for interacting and experimenting with your ruby application code, but sometimes it's hard to visualize the output. Gabriel Horner has come to the rescue with Hirb: a 'mini view framework' for irb which is designed to improve the default output to make it more human-readable.

Hirb does this by formatting console output according to its type, and paging if there's more than a screenful to display. For example, Hirb will automatically display ActiveRecord model instances in a non-wrapping, table-like view.

irb>> Tag.last
+-----+-------------------------+-------------+
| id  | created_at              | description |
+-----+-------------------------+-------------+
| 907 | 2009-03-06 21:10:41 UTC | blah        |
+-----+-------------------------+-------------+
1 row in set

There's also a helper provided which displays a collection of arrays or hashes as a tree. This might be useful for visualizing class inheritance trees, nested classes or relationships between ActiveRecord models (as this blog post describes).

In addition to the defaults you can specify your own reusable views, as the author explains in the documentation, leading you through an example of displaying hashes as YAML.

Hirb prints to the standard output by default, but you can configure it to write to anywhere you like, such as a log file.

The source code is on Github (or it can be installed as a gem), with documentation available on the author's site. Hirb users are invited to share any views they have written by forking the Github repository and adding them into the project structure.

June 28, 2009 07:23 PM

Vanilla Ice Cream with Caramelized Figs and Sherry Reduction

Posted by johngl

Desserts aren’t really my thing since I am a meat guy, but when my fig tree decided it was going to fully fruit out this year, what’s a guy to do?

Carmelized figs and sherry

Besides, some friends were getting together to welcome Billo Naravane, winemaker at Rasa Vineyards, back to Austin.  I needed something original.

As I said, one of my fig trees decided that this year was its year:

Lots of fruit
This little tree is all of five feet tall, but it is loaded with figs.

The first thing I had to do was caramelize the figs.  I peeled them (since I thought the skin was a little tough) and split them, then popped them under the broiler for about five minutes.

broiled figs

The juices inside the figs bubbled and turned brown and the edges just started to char. Perfect.

Now I needed a sauce.  Hmmm.  What did I have around that would go nicely with figs?

1971 PX SherryThis bottle of 38 year-old sherry (click the pic to enlarge) would be just the ticket.  Right out of the bottle, this stuff resembles motor oil in both color and viscosity.  Luckily, it tastes more like figs, dates, and raisins with a little almond extract thrown in. You would never believe this juice came from grapes.

All I needed to do was reduce it and tweak it a bit.

I poured about a cupful into a saucepan and began to heat it up.  As it started to bubble around the edges, I fired up the evaporating alcohol to speed things up.  Since this is around 20% alcohol by volume, it reduced quickly.

To that reduction, I added a couple of heaping tablespoons of dark brown sugar.  Letting the sugar dissolve completely, it thickened things nicely.  I then turned off the heat and whisked in some European style butter to finish the sauce.

By this time, the aromas emanating from the kitchen caught the attention of the most glorious spousal unit. “Whatcha cookin’?” she asked.

“Here, just try some.”  I’ve found that this is the quickest way to answer that question.  I spooned some up.

“We’ll never need any other sauce for ice cream. Wow!”  Apparently, I got it right.

Off to the party we went.

A few months ago, the host of the party caught a fish:

Not a fish story

What usually happens at these sorts of events is that I wind up in the kitchen helping out.  I helped with that salmon:

Grilled Salmon with Guajillo Pepper Sauce
Grilled Salmon with Guajillo Pepper Sauce

The fish was really tasty.  That wasn’t my doing. As I have said numerous times, with product this good, it is our job as cooks not to screw it up.

The host acquired the sauce, a blend of guajillo and smoked paprika, from a friend who works at a local restaurant.  All we had to do was heat it up.

The salmon was simply seasoned with some sea salt, fresh cracked black pepper, and rubbed down with a nice, fruity olive oil.  The host grilled this slab of fish to perfection.

We also had a pile of bbq brisket and sausage:

Brisket and Sausage

And of course there was wine:

1987 Double Magnum

This double magnum of 1987 Mondavi Cabernet had held up nicely and went wonderfully with the Q.  Naturally, lots of other wines appeared, but it was really great to again sample Billo’s offering:

QED

From the Rasa Vineyard’s website:

This wine is a beauty displaying wonderful purity of fruit, a gorgeous mid-palate and a long, enticing finish. It’s a wine with impeccable balance that will drink well young and age beautifully.

The majority of the Syrah fruit comes from the Les Collines Vineyard in Walla Walla with Syrah from Seven Hills Vineyard (Walla Walla) and Lewis Vineyard (Yakima) playing supporting roles.

A little bit of Mourvedre and Grenache (both from Minick Vineyards in Yakima) help fill out the wine and give it more structure and nuance.

The name QED comes from our strong mathematics backgrounds. QED is traditionally written at the end of a mathematical proof. In essence, it means “I’ve proven what I set out to prove.”

All that I can say is buy some before they run out.

June 28, 2009 04:58 PM

My favorite software quality metric is the income statement

I’ve been working on an open-source project for the better part of a year. It is very complex, very fancy, and has no users except for me. But I love it. It sharpens my skills and gives me a chance to discover puzzles and solve them in the most elegant solution possible.

But in the business world, this approach is downright silly. Nobody writes blank checks to vendors. Nothing in nature works like this either.

When a shark chases down and eats an unlucky spring breaker, the shark burns some calories during the swim, and then gets some calories back during the meal.

On average, the shark has to extract at least many calories while eating as it burned during the chase.

So on to the income statement. The shark makes a good metaphor for a software business. The hunt is the process of acquiring customers. The calories are the firm’s revenues and expenses. A lot of the quality of a software team can be measured in the income statement.

The perfect product is written once and it solves all problems and never needs any updates or extensions or bug fixes. The worst product has to be rewritten from scratch for every new customer and requires lots of bug fixes. Really well-written software falls somewhere between. It supports extensions, but they are quick and safe to do. Bugs can be quickly patched.

It wasn’t obvious to me initially, but this aspect is easy to measure in the cost of goods sold. If a firm lands a deal for $60k, but burns 160 hours rushing some tweaks through, then those hours drive up the cost of goods sold and drive down the firm’s margins.

You can look at the firm’s margins over time and watch whether the app is getting better or worse. Sure, there are mitigating factors, but in the long run, you can’t maintain an attractive income statement and a shitty code base.

June 28, 2009 04:10 PM

Youghal Post Office

Youghal Post Office

A disused post box near the beach in Youghal, County Cork.

Related Posts

June 28, 2009 08:44 AM

Announcing: Swedish Chef wave robot


Swedish Chef wave robot

I managed to score myself a Google Wave account by promising to write a Swedish Chef robot. So this afternoon I wrote one, in a language I've never used before (Python) and to a target platform I've never explored (Google App Engine). Mostly I ripped off code from other sources, especially Dive Into Python.

Screenshot

So if you have a Google Wave sandbox account, add borkforceone@appspot.com to a wave and your text will be translated into cod-Swedish.

Contact me

June 28, 2009 05:09 AM



June 27, 2009

Twitter Updates for 2009-06-27

Powered by Twitter Tools.

June 27, 2009 11:40 PM

Couch Surfing Day 2009 - Beijingers Featured in Wanderlust

Last year I organized a gathering in Beijing's Beihai Park for Couch Surfing Day 2008. This year we were featured in the Wanderlust Newsletter. Check it out!
Screenshot of Wanderlust Newsletter

 

June 27, 2009 09:58 PM

Cool new-to-me stuff from the past few whiles

As part of my efforts to increase efficiency and productivity, I've found a number of things on the Internet lately that are, in my opinion, totally awesome.

  • Joule (joule.marnanel.org): This site keeps tabs of who is following/friending you on a variety of social mumblemrf sites, such as Digg, LiveJournal, and Twitter. It produces a daily summary of changes (optionally sent via Twitter direct message) as well as a handy chart showing you the lifespan of some of your more ephemeral followers.
  • Hiveminder (hiveminder.com): From the makers of Request Tracker comes this web-based to-do manager. It's got plenty of features for the geek crowd, and is designed with collaboration in mind. I'm still getting used to it, but I've already moved my to-do list over with great rejoicing. Thanks to mikegrb for attending YAPC and telling me about this.
  • GitHub (github.com): I am not a programmer. Well, actually, I take that back: I've written a number of tools to make my life better. I've now realized that I'm enough of a programmer that I can extract value from "real programmer tools" like revision control and online repositories. Based on the Git distributed revision coontrol system, GitHub allows programmers (and people who write code) to store stuff online and work collaboratively on it. Git's decentralized nature makes something like GitHub both essential and possible, and for that I enjoy it. You can find me on GitHub as rtucker.
  • The Fucking Weather (thefuckingweather.com): Sometimes you just need to know what the weather is doing, without all that hubbly-bub and happenpants of real, professional weather people. Thanks to thefuckingweather.com, I know that it's fucking nice outside, and I may now safely remove my ball-mittens.

And, another quick reminder: as previously mentioned in this space, tomorrow is the First Annual RocWiki Picnic! If you're in the Rochester area and interested in RocWiki, swing by.

June 27, 2009 08:14 PM

made cucumber salsa. Cucumbers…

made cucumber salsa. Cucumbers, tomatoes, bell pepper, sweet pepper, salsa pepper, cilantro, and the juice of 1 lime. Next time, onion. Yum!

June 27, 2009 06:15 PM

The Mighty Stephen Taber (Day 3)

Posted by johngl

Yes, I am trying to get as much mileage as I can out of our vacation photos.  Going back to work has this way of making you think you never left.  The time off is a distant memory already. I want it back!

A new day begins

With views like this, who wouldn’t?

The day began like any other on board the Taber:  I had to figure out how to get out of my bunk without whacking my head or wrenching my back.  Cramming a 6′5″ 220 lb body into a double-wide coffin isn’t the easiest thing to begin with and it isn’t any easier getting out.  Each morning brought its own set of challenges and a lot of laughter.  Laughing is a good way to start a day.

Donning my Nike sweats, I headed up the ladder and out into the morning light. The glorious fresh sea air filled my nostrils with the scent of…of…scones?

fresh-baked scones

Cara was out, setting up for breakfast:

great smile!

How can you possibly go wrong being greeted with a smile like that?

It was another calm morning, so after breakfast, we headed out under the power of the Babe. The engine on Babe is really pretty quiet so it doesn’t ruin the serenity of our surroundings and moving around at a pace of about 3 knots isn’t so bad.

Calm and a bit chilly

Everyone is standing on this side of the deck because the crew is doing the morning deck rinse on the port side. It is best to just stay out of the way.

calm seas are evident

The Taber barely created a ripple as we moved through the still water. I had a great time just standing there experiencing the gentle motion and taking in the sites.

Alison at the wheel

Alison, the deck hand, takes the wheel as the Captain toured the boat — the crew gets antsy when he does this knowing he will find something for them to work on.

Captain Noah Barnes literally grew up aboard this vessel and he knows every inch of it intimately. He is a curious case study: he can move seamlessly between boyish playfulness to absolute seriousness in a heartbeat.

The Captain

He loves his crew and isn’t afraid to say that openly. He leads by example and jumps in whenever it’s necessary.  I never did see him on the anchor winch though.  I firmly believe he derives more than a bit of pleasure watching the passengers nearly pass out while weighing anchor. His wit is sabre sharp.

First Mate, “Super” Dave, is the Captain’s right hand:

"Super" Dave, looking atypically serious

Shown here looking (atypically) serious, Dave clearly loves both the Taber and Plain Jane. Certainly adventurous, he spends as much time on the ski slopes (in the off season) as he can and has the injuries to prove it. He is also working on getting his Captain credentials.  In his spare time (or while recovering from injuries), he trades futures options.  Most of the time he’s sporting a huge smile (or he’s laughing), so I seem to have caught him deep in thought.  Telephoto lenses are great for that.

Down in the galley (the galley so low), Cara was pounding the hell out of a helpless piece of cow flesh:

tenderizing dinner

I think she wasn’t too pleased with the cut of meat the butcher provided.  He should be glad he wasn’t on board.

After the pounding, which drew observers from all over the ship (What the heck is that noise?), she prepared and served-up lunch:

Cara, serving up the soup!

A great salad and some really tasty soup!

yummy soup

After lunch, the wind picked up and everyone jumped into action.  By this time, everyone had the routine down and we worked more like a crew than the bunch of land-lubbers who came aboard just a few days earlier.

Seemingly, out of nowhere, other sailing vessels appeared:

Sailboats everywhere

And look, off to starboard, it’s the Nathaniel Bowditch!

The Nathaniel Bowditch

It’s a race!  We got really close!

Close one!

The Bowditch is another old schooner.  It’s just a kid compared to the Taber; the Bowditch was built 35 years later.

It was a great race.  Everyone on both vessels got really excited, the Captains were shouting out orders and time passed amazingly quickly.  We were ripping along at about 8-1/2 knots (top speed is about 9) and the vessels heeled over in the wind…

Island shooting past

We were getting a might close to some islands, so we backed off a bit to give the Bowditch room to get through the channel:

Allowing them by...

Words cannot describe the feelings I experienced — I could do this again and again and never tire of it.  It is way better than any carnival ride — two tall ships zipping across the water in silence. Amazing!

But alas, it all ended just a bit too soon.  We zipped into port behind the Bowditch and dropped anchor.  The captain was clearly as pumped as the rest of us as he went around “high fiving” everyone.  What an afternoon!

After dropping anchor, the Captain took off in the Babe.

Captain in the Babe

Wine appeared:

Wine

And the Captain reappeared with his family in tow:

The Captains Family

Father (Ken), Mother (Ellen), Wife (Jane) and six-month-old Son (Oscar) all came aboard the Taber. This was Oscar’s first trip in the Babe.

Captains Ken and Noah, chewing the homemade pizza and drinking wine:

Father and son

This was an amazing spread.

Pizza:

Pizza

Charcuterie:

cured meats

Cheeses:

charcuterie

And this was just to get things started!

More wine:

more Italian wines

Dinner arrived!

Rolled beef

All that pounding paid off, the beef (above) was moist and tender.

The roasted tomatoes were sprinkled with herbs and very flavorful.

Roasted tomatoes

I piled the beef, tomatoes, green beans, and risotto upon my plate.

Beef, Tomatoes, Green Beans, and Risoto

A full moon greeted us:

full moon appeared

We had some more wine, then the sun set on our wonderful day:

The sunset

This was our last full day on the Taber and I was sad that the trip was nearly over.

The following morning, I awakened to the greatest sunrise ever:

sunrise

The sky was brilliant…

better and better

I was mesmerized.

In the morning’s silence, I reflected upon our journey…

quiet reflections

looked to the sky…

looked into the sky

gazed upon the bay…

gazed upon the water

and realized that I would never be the same again.

June 27, 2009 05:13 PM

Twitter Weekly Updates for 2009-06-28

  • Outlook 2010 - who cares, html emails annoy the hell out of me anyway #
  • time for a new chapter in my life http://bit.ly/s0D1n #
  • getting mixed messages #
  • aparently all i have to offer are babies! http://bit.ly/8LZNg #
  • Hello darkness my old friend, I’ve come to talk with you again #
  • Rip MJ-The legend of pop #

Powered by Twitter Tools.

June 27, 2009 04:50 PM