The Hacker Attitude

Posted by Mark Turner Sat, 28 Mar 2009 05:57:00 GMT

1. The world is full of fascinating problems waiting to be solved.


2. No problem should ever have to be solved twice.


3. Boredom and drudgery are evil.


4. Freedom is good.


5. Attitude is no substitute for competence.


 



Every once in a while we need to remind our peers what we’re all about and show them how to get there. 


http://catb.org/~esr/faqs/hacker-howto.html


RMM from the Source.

Posted by Mark Turner Thu, 05 Mar 2009 07:56:00 GMT

I have to admit that after watching the RMM discussion happen on the rails-business mailing list as well as twitter I was a little skeptical about the idea. But… After watching this idea session from Hashrocket I’m starting to think that its not a bad idea. Especially when Obie mentions that the best practices will get decided based on the number of endorsements for that practice.

Makes sense to me. Watch the video over at Vimeo to see for yourself.

http://vimeo.com/3248799

Testing, Stubs & Shoulda from Hashrocket. 1

Posted by Mark Turner Mon, 23 Feb 2009 19:51:00 GMT

This was an interesting talk. I wouldn’t mind spending a few hours with Corey Haines






Testing, Stubs, & Shoulda, vs. RSpec from Hashrocket on Vimeo.

Building a Scaleable Rails hosting infrastructure on OpenSolaris Series 3

Posted by Mark Turner Thu, 15 Jan 2009 17:09:00 GMT

Shortly I am going to start releasing series of screencasts showing how to build a scaleable hosting infrastructure on OpenSolaris. Its going to be focused on Rails but it should work well for most hosting needs. Its going to focus on scaling, almost the beginnings of your own cloud infrastructure. Stay tuned

Rails + Merb = Rails 3

Posted by Mark Turner Wed, 24 Dec 2008 20:49:00 GMT

Yesterday it was announced that merb and rails would merge and be released as Rails 3.0. I never saw this coming, and to be honest I am super happy that it did. I’m glad the the Rails and Merb core teams understand the value of both frameworks, and they can now enhance Rails with the best ideas from merb. 

I’m still going to hole my breath to see how the team members points of view clash or come together… but so far its looking like a great ride.

Rails::Rack::Metal

Posted by Mark Turner Wed, 17 Dec 2008 09:19:00 GMT

As usual there has been quit the storm over a commit in edge rails. Link 

Some people don’t understand Metal, but its pretty simple and I wanted to put out a post explaining it and hopefully you learn a little bit. 

Metal(s) allows you to design data access points that bypass most of the rails routing and rendering code. So instead of exposing data through normal controllers we can write better performing actions through metal(s). Metal allows you to run ruby right at the webserver layer, and the main reason for that is speed.

In this example I am offering a simple service where someone can hit a URL(‘/grab/’ in this case) and get back the User objects name attribute.

 

# Allow the metal piece to run in isolation

require(File.dirname(__FILE__) + "/../../config/environment") unless defined?(Rails)

class Grab < Rails::Rack::Metal
def call(env)
if env["PATH_INFO"] =~ /^\/grab/
request = env['REQUEST_URI'].split('/')
if request.size != 3
response_text = "No ID Provided"
response_code = 200
else
begin
username = User.find(request[2]).name
response_text = username
response_code = 200
rescue
response_text = "Request Failed"
response_code = 400
end
end
[response_code.to_i, {"Content-Type" => "text/html"}, response_text]
else
super
end
end
end

 

 

This is a very simple example, but more complex ones are VERY easy to implement. Outputting XML or Binary data is just as easy as long as you know what the requester expects (text/xml for example). 

Its does require a more work to present data through Metal(s) but the speed benefits may come in handy on you’re next project. I assume that anyone that has to provide an API would love to avoid some of the other rails "baggage" when processing requests. 

 

SCRUM In Under 10 Minutes

Posted by Mark Turner Mon, 15 Dec 2008 07:55:00 GMT

So many Ideas. No actions. I've failed. I'm going to fix it. 1

Posted by Mark Turner Sat, 08 Nov 2008 10:22:00 GMT

I have came to the realization tonight that I’ve failed at working on any of the ideas I’ve had outside of $work (including blogging here and @ counix.com). Most of the projects that I have thought about personally have never seen the light of day. Now I’m sitting here writing this in hopes that I can figure out what the problem is. Is there such thing as "personal developer block"? 

At $work I have to balance my main responsibilities (management) and my passions for the things that interest me (rails, ruby, etc…).  When I can escape into code at $work its liberating, it frees me from the other duties that in all honesty are not the funnest things in the world. When I spend my time developing, no matter how short… I enjoy it, it brings a smile to my face. I enjoy talking about code. I enjoy brainstorming with my team. I enjoy fixing problems. I enjoy finding new solutions. 

So what’s the problem at home? Why can’t I find that same passion for the personal projects that I have burning in the back of my mind? Why do I care about the projects at $work more than the things at home?

Don’t get me wrong, I am constantly hacking.. its just never projects just little chunks of code or routines here and there but nothing seems to evolve into a full blown projects.  

 

Why have I failed?

 

 

I think I know what’s wrong:


  1. I need to find the right projects - With every idea that I tend the think about my mind wanders to the money factor almost immediately. Thats where I fail. I need to focus on projects that I would use and be interested in, not the apps that I "think" someone would be interested in. If I don’t care about the project it will die.

  2. I need community/teams/mentors - I’m the type of guy that thrives when I have one or two other people around working with me. I am the most productive when I am pair programming. Without that other person there pushing an driving me things will fall to the wayside. I will miss problems and my designs will suck. Without the right team I can’t function. 

  3. I don’t contribute back enough - For as much as I depend on FOSS I have barely done anything to help the projects I depend on. No one will learn who I am without giving back. 

  4. I’m not good enough - Over the past year I have absolutely blown at making myself a better developer. 

Solutions:

1) I will find projects that interest me until I get out of this funk I need to focus on items that get me excited.

2) I will take a more proactive role in the developer groups around my area… maybe establish a local Ruby Group. I plan on taking a close look at the team at $work and consider some changes to make the environment better. I can’t be a single developer anymore. When the other developer left I fell off track. I plan on sharing my knowledge with the world. Expect to see more posts here talking about things I consider myself to be an expert in.

3)  I just need to work on FOSS projects. Period. I will begin fixing bugs in Rails, Capistrano & other projects I depend on immediately. I will also begin moving a lot of personal code out to the wild. I plan on becoming an advocate for the projects I depend on, ie Linux, OpenSolaris and MySQL. The only way to get more people using them is to show their strengths and being honest about their limitations.

 4) I need to broaden my knowledge base. I plan on finishing the stack of books I haven’t touched this year. I plan on getting way better in erlang. I plan on writing a book, handing it to a friend and seeing if I’ve added anything to his life. I plan on getting better organized. I will use a better way to track my tasks than a combination of email, scribbles on small pieces of paper and memory. 

 

Its late, I’m hitting the sack. This post is going to help me, and I’m happy to share it with the world. 

Thanks America!

Posted by Mark Turner Wed, 05 Nov 2008 16:00:00 GMT

We did it.

 

Torvalds Kills Unix

Posted by Mark Turner Mon, 03 Nov 2008 07:16:00 GMT

Funny things happen when you play games…. They seem to mimic reality.

Torvlads Kills Unix Picture