Worn out gear (5.10 Camp Fours are the new hotness!)

5.10campfours.jpg Now that summer has arrived, despite the wet weather, I decided to go through the gear and chuck or giveaway the worn footwear and replace that which needed replacing.

Many of you will recognize the dislike of removing well broken in gear… stuff I’ve been happy with for years. At the same time, the companies move on and you sometimes can’t replace stuff. However, sometimes, stuff works out.

I’ve been wearing Five Ten shoes for a long time. It started way back when I was hiking and climbing. Their slippers were a standard amongst the crowd, and I very quickly fell in love with their Guide Tennies (the down to the toe lace adjustment, super sticky stealth rubber, and supportively stiff soles) and have worn them ever since (about 4 pairs worth at this point).

Naturally, looking to replace some light hikers I’ve had for a while, I turned to them and found their Camp Four model a mid ankle style that I like for hiking (not too high, not too low), a sole stiff where it needs to be, a nice fitting heel cup, and the down to the toe lacing. Some were suggesting a half size larger, but I found my regular size was best.

It’s been a few days and I can assure you they’re as good as one would hope. They’re light, comfortable, have the right balance of cushion to stiffness. They’d make an excellent hiker even with a heavyish pack (although I’m from the “go light” school myself (Tuckerize that pack!)).

Anyway, If you’ve never tried Five Ten, give them a whirl, they have a nice range, are a family owned business, and produce some of the stickiest rubber for hiking and climbing. (The pair of Teva sandals that I use for river running has 5.10 stealth rubber on the bottoms… they are so much better than everything else I’ve tried on slick wet rocks.)

More gear stuff (which everyone seems to ask me about) as I have time.

Disclaimer: I have no relationship with Five Ten other than that of happy customer.

Where are the true believers?

Where are the true believers? – Good Experience: Or should we invest $50 billion in a new electronic medical record? That’s the proposal from the government, and I can’t imagine it changing anything. [I know they won’t for two reasons… and in this case I will stick to the computer tech of the situation. When I worked at a compnay that worked with hospitals, i saw first hand the mess that is many hospitals data infrastructure. I mean it’s really truly horrible. Monolithic, badly engineered hacks rule the day. I can imagine how it got there… but I blame the administrators who obviously invested the bare minimum in their infrastructure and now have a huge morass out of which to climb. Second is at a more personal level. I have a fine primary care physician. I trust him, he pays attention, knows the family history, etc. Because of the business side of the doctoring business he joined the equivalent of a conglomerate, which naturally centers their IT cost. All good, except they have a EMR system and when it fails to connect to the database (I wasn’t there as a tech, but as a patient) the system is worthless. No EKG or other tests. No access to records, no updates. Just a few simple paper pages to record new information that no doubt will have to be transcribed (with errors) by the staff. It’s 2009 for criminies sake… what the hell is that? No local storage? No syncing of records? What a freakin mess. And this from a major player in health care in my area. “Sucks” doesn’t begin to describe it…

BTW, as for the true believers… I think they’re there. I’m just not sure there’s enough of them where it matters.]

Me Tube

I’ve enjoyed the explosion of video resources on the net. People have yet another way to share moments from their lives, etc. etc. And along with that come life’s little mishaps. And as almost everyone will admit, viewing a prat fall, a slip, a fall, or a splash can be funny. It’s part sympathy, recognition that we all walk a tight rope with dignity on one side and humiliation on the other… and partially just the simple fun of watching others get in to trouble.

But I’m troubled by something as I watch some of these videos.

People face plant, bang their heads against rocks, launch themselves onto all manner of nasty surfaces and time and again the person taking the video (and you can tell when it’s hand held and when it’s not) does absolutely nothing besides watch. I was horrified when I saw one sampling from the Fail blog where a cyclist smacked their head against a rock with significant force and the person behind the camera did nothing besides ask the person (eventually) if he was alright.

Folks, two thoughts. If you witness an “unintentional result” in front of a camera… see if the person needs help rather than worry about “the shot”. The second thought is, if you’re going to do something in front of a camera know that Heisenberg understood that the camera was going to have an affect on the proceedings. For some reason, these effects seem to be almost universally negative for the person being observed for any “cusp” event.

Practical Improvements

Practical Improvements: The result? A non-leaking, non-dribbling, non-spilling way to drink that Susan can easily find even in the dark. She doesn’t have to lift a bottle or cup, and can just let the bite valve fall out of her mouth when she’s done.

I believe this may be the best use of Camelbak technology, ever. I’m surprised that they don’t have setups like these in hospitals; they’re much easier for a sick patient to get to than a traditional cup.

[Many years ago (way more than 5, which puts its in the misty, hazy, time before my reckoning) my mother had shoulder surgery to repair a torn rotator cuff due to a fall. The confluence of “her side of the bed” and the shoulder surgery made it extremely painful to pick up a glass to have something to drink. So I grabbed my Camelbak, hung it over the post of her bed, and left the tube on the other side where she could reach it pain free. Not only is it easier to handle, but you can adjust the height easily. While Eldon was ingenious, he was not breaking new ground, as I doubt I was, even back then.]
Source: Fat Cyclist

Stirling engine car

Stirling engine car: Installed in the car’s trunk compartment is a Stirling engine invented at DEKA, Kamen’s technology company in the Manchester Millyard. It powers the features that would normally drain huge power from the battery, notably the defroster and heater.

That leaves the battery primarily for propulsion. “You’re running a pure electric, which is enormously cheaper to operate and enormously more environmentally friendly,” Kamen explained. [I’ve always enjoyed the small Stirling engine models you buy for your desk… and always wondered why something seemingly so useful, has always been labeled as not useful. Maybe not…]
Source: MAKE Magazine

Merb 1.0 Released So Here’s 44 Links and Resources To Get You Going

Merb 1.0 Released So Here’s 44 Links and Resources To Get You Going:

merb.pngMerb – a much heralded, highly flexible Ruby-based Web application framework – has reached version 1.0 after two years of development. Congratulations to Merb’s creator, Ezra Zygmuntowicz, and to the large group of associated developers (such as Yehuda Katz and Matt Aimonetti) who’ve kept adding features and pushed Merb forward to be a significant alternative to Rails.

Ruby Inside has been some surveys for the past couple of months, and they still show that only 25% of Ruby Inside’s visitors have ever developed a Merb application. With the stability that the 1.0 release offers (older versions of Merb had a reputation – fair or not – for a constantly shifting API), it’s now a great time to give Merb a try. It’s also a great time to get into writing tutorials and documentation!

Quick Start

Install Merb from Rubyforge: gem install merb

If you’d rather go from Merb’s “edge” repository: gem install merb –source http://edge.merbivore.com

NOTE: Make sure that you are running RubyGems 1.3.0 or higher (run gem -v to check). If not, you need to upgrade (I found this page very useful for doing that.

Then follow a tutorial such as Life On The Edge with Merb, DataMapper & RSpec, Slapp: A Simple Chat Wall Merb Tutorial or Move Over Rails. Here Comes Merb.

Once you’re ready to roll, bookmark this page for safe keeping and read on for our Merb resources! We’ve divided them up into sections to make it easier. Some will also be left in the comments by other readers!

Merb News and Community Sites

merbunity.png

Merbunity – A community news site that focuses entirely on Merb. So far it’s not been updated particularly often, but this is likely to change, and what they do have is great.

Merbivore – The official Merb homepage. It provides links to all of the major things you’d need – docs, a wiki, downloads, and information on how to help the Merb project.

merboverheard.png

Merb Overheard – A “planet” / aggregation blog for Merb related content. It also features some of the latest Merb related Twitter messages. A good looking site and well worth following if you want to stay up to date on Merb news.

Planet Merb – A “planet” site for Merb-related blogs. Currently only has the blogs of several Merb developers and the official Merb blog, but it’s bound to grow over time.

The Merbist – A Ruby Inside-esque blog for the Merb world. It’s run by Matt Aimonetti, a Merb core team member. Well worth subscribing to if you want a look at high level news related to Merb.

Merb Google Group – A Google Groups hosted mailing list for Merb developers. It has over 800 members and is pretty busy!

#merb on irc.freenode.net – Not a Web link, but an IRC channel. If you want to chat live about Merb but aren’t familiar with IRC, learn more here.

Ezra Zygmuntowicz’s Brainspl.at – The personal blog of Merb creator, Ezra Zugmuntowicz. A lot of it is Merb related in some way or another.

Katz Got Your Tongue? – The personal blog of Yehuda Katz, a key Merb developer and evangelist. A lot of Merb related posts.

Merb Tutorials and Documentation

Note that some tutorials may be slightly out of date or use features that have changed in Merb 1.0. Use these tutorials as a guide, not as canon (for that, you’ll want a book, see next section).

The Merb Book: Life On The Edge With Merb, Datamapper & RSpec – An online book started by the guys of London development team, New Bamboo, but now contributed to by many Merb developers. It’s very indepth and changing over time. There’s definitely no lack of detail here.

Merborial: Getting Started with Merb and DataMapper – A simple and straightforward tutorial by Chris Kaukis.

Move Over Rails. Here Comes Merb. – A tutorial by Mark Watson that demonstrates how to create a “planet” type Ruby blog aggregator using Merb. Very complete – doesn’t include Ruby Inside though? Heresy!

Relax with Merb and CouchDB – A very clean and to the point guide by Paul Carey on developing a Merb application that uses CouchDB for the DB backend (using RelaxDB).

7 Merb Questions Answered – Justin Pease answers some Merb related questions. How to access environment variables, partial rendering, how to use HAML, how to start in production mode, how to log data, and how to get the current URL in a view.

Slapp: A Simple Chat Wall Merb Tutorial – SocialFace presents a great tutorial on how to use Merb to develop a basic “chat wall” application. If you’d rather just look at the resulting code, check out the Slapp Git repository.

Merb + Shoes = Interesting Web / GUI App Crossovers – Gregory Brown and Brad Ediger wrote a six page tutorial on how to develop a cross-platform GUI app using Shoes and Merb on the backend.

Multi Environment Merb+DM Deployment with Vlad+Git – Corey Donohoe (a.k.a. atmos) demonstrates how to use Vlad and Git to deploy your Merb apps.

MerbCamp Videos – Videos of all of the main sessions from MerbCamp. Lots of awesome stuff to watch here on how to write Merb plugins, how to deploy a Merb app, Merb primers, DataMapper tutorial sessions, how to migrate from Rails to Merb, and more!

MerbAuth – The Basics – An excellent overview of the MerbAuth authentication framework and how to use it to perform authentication in your Merb app.

Merb Books

mia.png

Merb in Action – A general Merb book being written by Michael Ivey, Yehuda Katz, and Ezra Zygmuntowicz. It’s not due out in print till May 2009, but so far three chapters are available in PDF form via an “Early Access Edition” right now. With the soldier on the cover, I guarantee this will end up being called the “MIA” or “Soldier” book :)

The Merb Way – Following in the mold of the awesome The Ruby Way and The Rails Way books will come The Merb Way by Foy Savas. Publishing date is still uncertain, but likely to be next year. Given the history of Addison Wesley’s * Way series, I expect this will be a gigantic reference book spilling out all of the guts of Merb for us to see and enjoy.

Beginning Merb – Apress continue their Beginning * series with a Merb entry. Due out in February 2009, it’ll be about 500 pages in length.

Merb Sample Apps

Feather – An “uber lightweight” Merb blogging engine / system. A blog is always a great app to take inspiration from :)

Panda: Open source video platform – An open source video transcoding and streaming platform built mostly around a Merb app.

PmpknPi – A RESTful Blog API written in Merb.

Slapp – A “chat wall” Web app.

Merb-OpenID-Example – An example OpenID consumer application written in Merb using merb-auth’s OpenID functionality.

merb_mart – An open source e-commerce engine built on Merb.

merb-dm-couchdb-sample – A quick sample application showing how to use CouchDB with a Merb / DataMapper app.

Merb Events

merbcamp.png

MerbCamp – MerbCamp was the first official gathering for the Merb community, but it’s likely to happen again next year, so make sure you keep your eyes peeled for it. Also be sure to watch the videos of the MerbCamp presentations.

Merb Outpost – A London based “outpost” of MerbCamp where 29 Merbists watched MerbCamp on a live webfeed. I’d be surprised if they didn’t try to revive this for the next MerbCamp. If you’re in London and want to be in contact with other local Merbists, however, get on there and check them out.

Merb Miscellaneous

FiveRuns TuneUp for Merb – FiveRuns is a leading provider of monitoring and development products for Ruby on Rails and other popular open source and commercial systems. They’ve got a version of their performance tuning and debugging tool, TuneUp, available for Merb developers.

Google Tech Talk: Merb, Rubinius and the Engine Yard Stack – Ezra Zygmuntowicz gave a tech talk to Googlers on Merb and Rubinius. This is very new and well worth watching for its full 47 minutes.

A Quick Jaunt Through Merb’s Framework Code – Ezra Zygmuntowicz presents a tutorial for those who want to see how a request travels through the Merb framework in its quest to get a proper response. Some nice indepth stuff here.

Merbcamp – notes from the edge – Some excellent notes taken based on what happened at Merbcamp.

Authlogic – A framework agnostic authentication system that works well with Merb. Get awesome authentication on your Merb app – fast.

Merb on RubyForge – All of the Merb libraries and gems directly from RubyForge.

Merb on Github – All of the Merb libraries collectively within a Git repository on Github.

DataMapper – While Merb forces no specific ORM on you, DataMapper has become the de facto standard when developing Merb applications. Learn more about it here.

Merb TextMate bundle – A Merb bundle for TextMate by Dr Nic Williams.

Merb_global – Localization and internationalization support for Merb. Experimental.

merb_cucumber – A library offering Cucumber (a BDD testing tool) integration with Merb.

21 Merb Links, Tutorials and Other Resources – A set of Merb resources on Ruby Inside from February! Might still be some stuff worth checking out in there. It’s a real bran tub of Merb delights.

Why Engine Yard, Rubinius and Merb Matter – Antonio Cangiano looks at some of the motivation behind Engine Yard’s progress on Merb and Rubinius.

Got any more Merb resources? Please leave a comment!

[This was too good not to repeat…]
Source: Ruby Inside

Workling, BackgroundJob, and some config file and UTC caution.

One of the features of the software I’m building is the ability to upload images and other binary files. Like so many other Rails apps we’re using attachment_fu. So far so good. We expected the “client” could pull these assets when they needed them and store them wherever they desired. And the developers rejoiced.

A follow up story required that we move those assets over to the website via SFTP. Since we use Capistrano I wrapped Net::SFTP (a Capistrano dependency). We wired it into the Model via after_save, and after_destroy, and again the developers rejoiced.

I decided to move the “hard coded” user, pass, etc. stuff to a config file, so created a YAML file and added the aforementioned sftp stuff, and some other application specific that was crufting up the place. I created an initializer to load the file, and again the… yeah, ok, you got it. Soon after there was some stuff that was environment specific so I created the 3 basic environment sections (development, production, and test) and moved along. I figured I could test for them in just one spot (for now) and all would be good. I’ve since had a change of heart, but no matter for now.

A short while later I accidently demo’ed the new transfer code with a very large image file, and was less than impressed by the way it went. Since Rails is single threaded (still, for the moment, although about to change as I write this) the file transfer absorbed copious resources on this somewhat long lived transfer. Genius that I am, I said we should run the transfer as a background process, and since I know we have other similar requirements coming up Real Soon Now(tm), decided to implement a queue as well. After looking around the landscape I decided on Workling and BackgroundJob. It looked like they would play nicely, and keep thing clean and straightforward.

In go the plugins, get things setup and migrated, create a worker class, and fire off the MyWorker.asynch_test_method. Cool! I see stuff in the database… hmmm nothing happened. I’m going to skip through the process at this point, and just discuss what we (I was pairing with Evan during most of this) found.

One of the recent changes in Rails (we started with 2.1 and have since moved to 2.1.2 as I write this) includes control over Time Zones. We had talked and played around with this a bit and decided that for our purposes UTC was just fine, and so left the default setting. Stuff in the database gets stored as UTC and when everything works as expected is converted to a local time setting, if you set one. Here’s the first gotcha. Since this is fairly new, folks have liberally sprinkled libraries with calls to Time.now(). Which is fine for what it is, but at least with the version of Ruby we’re using (1.8.6 as I write this) returns local time… but the database is living over in UTC land. I wouldn’t notice if my time zone was Greenwich Mean, but over here on the East Coast of the US there’s a five hour difference. So we hunted down (not for the first time mind you) the use of Time.now in the BJ runnner.rb an changed it to Time.now.utc. One bug down.

The next one was bug in the bj_invoker.rb that is installed by Workling in the script folder. Stuff happens (and a patch is being submitted) but there’s a bit of meta-programming going on, and it was hard to find the places where STDOUT was being nullified, and because it’s trying to act as background or async process, exceptions are being swallowed. So no significant logging, and no exceptions. In the end we patched the runner code in BJ to display STDERR and STDOUT, and we wrapped a method call in a begin/rescue in Workling to enable some exception logging at least in this common case.

Having done that we found our error, fixed our bugs, and watched everything work. And the developers rejoiced.

The lessons so far: Developers do not pay enough attention to time zones so watch for gotchas like how time is being stored in your database vs. how you test for time stuff. Secondly, only the main path will be well worn. All others will have bumps. Workling is commonly used with Starling and so using with other, even supported libs may be a somewhat more bug laden experience than one would hope for. This wasn’t too bad, but the process was methodically annoying and to a degree, orthogonal to our goals.

So… next we have the config file caution. So there’s this nice thing known as the Rails environment. It’s a beautiful thing as it makes it easy to separate development from testing and production. You can point each environment to a unique database. Excellent! You can change key settings about caching, and reloading of classes that makes development smoother and production faster. Yay! So what’s the caution? While those three are standard folks make up others. In addition to those three we have two others which are not common. They serve they’re purpose, but they’re not conventional.

Today I had a deploy fail. Hmm, that’s odd, they’re usually so smooth. Migration failed… nothing strange in there. Hmm there’s a couple of lines about config files… so what it turned out to be were two plugins that each rely on a config file. In one case the developers did the right thing and when they could not find a config file section that matched the environment, shut themselves down and wrote about it in the log. Excellent! The second was seriously hard wired to the config file, and so tossed an unhandled exception when it couldn’t find the matching environment section. Worse, the config file isn’t necessary for the setup we used, and the docs say it can be removed. (It can’t, for the same reason). So an unnecessary config file, missing an unnecessary environment hung my deploy. Sad. But it made me realize that I was missing those sections in my own little config file, so I added them in there as well, and have a card to rewrite the loading code to ensure that we always do the right thing if the environment section is not there.

A coupe more… it’s worthwhile in your Capistrano deploy stuff to be able to run migrations with –trace turned on. You should have matching environments on your development machine as you do elsewhere… I know I do… now. Lastly, as much as possible have a match to your production environment where you can make a mess without consequence. We use VMWare to slice up a hefty machine, and it’s a great tool for the purpose. It doesn’t hurt that we use Engineyard as our host and so can use the Express vm for testing.

Fat Tires

Fat Tires: The horrible roads don’t seem as bad, the bumps not quite so severe. I didn’t lose much in the form of performance, in many ways I’ve gained. In many situations the fatties handle better. [snip -ed] I don’t plan on riding skinny ever again.

Here’s another blog entry with a similar theme. [I can’t make such an emphatic statement. I love both for what they are. There’s a time and a place. At the moments my tires run from 2.35 (Schwalbe Big Apple) fatties to 35c and 33 middle of the roads, to 21/23c skinnies. They all have their place, and they’re all lovely. I will add that as the weather turns colder I spend more time on fatter tires. Seems like part of the cycle of life.]
Source: MnBicycleCommuter