about img
blogger img

UnderPaidLoveMonkis posts img

buchos posts img

Corys posts image

scotts posts image

Programming's Archive


Scott Rippee @ 1:52 pm Sunday, April 20th, 2008

I was going to put in the time and get a forked ruby out to fill in some feature gaps, but the maker of tender love beat me to it.

Brobinus adds some much needed features like Object#tase! and brobinius –screencast my_code.rb for youtube integration. link

ROI on software testing

UnderpaidLoveMonki @ 9:56 pm Thursday, March 6th, 2008

Black, president and principal consultant of RBCS, emphasized the cost-effectiveness of creating quality software. “The money you spend to build it right the first time is always less than the money it costs to fix it,” he said.

He listed four ways testing saves money: Finding bugs that get fixed, finding bugs that don’t get fixed, running tests that mitigate risks and guiding the project to success through timely, accurate, credible information for project tracking.

This article explains it very well the Return of Investment on testing early in the software development lifecycle.

Mono on Linux

UnderpaidLoveMonki @ 1:36 pm Sunday, February 24th, 2008

Is Mono a good thing for open source? It’s for you to decide…

Here’s some interesting arguments:


Rails in browser IDE / instant deployment

Scott Rippee @ 2:13 am Thursday, February 14th, 2008

This caught my eye on Riding Rails Blog the other day. This site has a built in rails IDE. This looks nice in the demos, but it would be interesting to actually give it a spin to see if it’s usable. The coolest thing is the instant deployment of the rails app to Amazon’s EC2! This seems like it would be very attractive to someone just getting started with rails since you would get to put full focus into the development and skip the other pains in the ass (deployment, capistrano, web servers, mongrel instances….).

Are you a n00bz?

UnderpaidLoveMonki @ 11:12 pm Monday, February 11th, 2008

From Steve Yegge’s blog entry,

Does this style look at all familiar? It should! This is, to put it as impolitely as possible, n00b-style. (Incidentally, if u dont no wat a n00b iz, u r 1.)

This is how junior programmers write code. Junior programmers with five to ten years of experience under their belts (still n00bs in their own way) attempt to build giant systems and eventually find themselves stuck on the cliff waiting for a helicopter bailout, telling themselves “my next system rewrite will be better!” Or they fall off the cliff – i.e., the project gets canceled, people get laid off, maybe the company goes under.

Read on for the rest of this great read. After you finish, I want to ask you a question. Are you a n00b? Do you know a n00b? Do tell, I’d like to hear about it! :)

A SCAlable LAnguage — Scala

UnderpaidLoveMonki @ 10:57 pm Tuesday, January 22nd, 2008

From an article under the Java Technology section of IBM’s Developerworks,

Scala is a functional-object hybrid language with several powerful factors working in its favor:

* First, Scala compiles to Java bytecode, meaning it runs on the JVM. In addition to enabling you to continue leveraging the rich Java open-source ecosystem, Scala can be integrated into an existing IT environment with zero migration effort.
* Second, Scala is based on the functional principles of Haskell and ML, yet still borrows heavily from the familiar object-oriented concepts Java programmers love. As a result, it can blend the best of both worlds into a whole that offers significant benefit without sacrificing the familiarity we’ve come to depend on.
* Finally, Scala was developed by Martin Odersky, probably best known in the Java community for the Pizza and GJ languages, the latter of which became the working prototype for Java 5’s generics. As such, it comes with a feeling of “seriousness”; this language was not created on a whim, and it will not be abandoned in the same fashion.

Scala is available in the Ubuntu Gutsy 7.10 repositories. To install, type sudo apt-get install scala. Enjoy.

Being Agile

Scott Rippee @ 8:04 pm Tuesday, January 8th, 2008

Development Driven Development (part 2)

Scott Rippee @ 3:20 pm Saturday, December 29th, 2007

It’s been brought to my attention that many people, perhaps all people :), did not get that I don’t really believe/practice what I coined “Development Driven Development”, which had it’s fat penguin debut here. I wrote it from the approach of “what could out agile agile” and what if it had very little to do with actual agile techniques even thought it was claiming to be such.

I definitely believe there are benefits of agile practices in software development and use several of them. I had also just read the Tom Gilb’s “evolutionary delivery,” a great improvement over its successors post at Lean Software Engineering and had just learned about a new agile practice that I hadn’t known about before. This got me thinking that I need my own agile solution. :)

In my limited knowledge I have to agree with Corey Ladas thoughts:

There’s something odd about a software culture that is so obsessed with novelty and technological determinism that it perpetually loses the knowledge of the past in an endless pursuit of the reinvention of the wheel. The race in the 2000’s to “out-agile” each other and distance ourselves as far as possible from any crusty old notions of “software engineering” in the flight from some phantom bogeyman of the “waterfall” has resulted in the neglect of a great deal of hard-fought knowledge and wisdom from the great systems engineers of the 1960’s-1980’s. It’s our loss. We’re forgetting things that are better than what we think we know now.

I wonder why this seems so true in software land. Maybe it relates to the developers constant search to learn new and exciting programming languages, tools, operating systems, techniques? Part of survival and coming up with elegant, deployable solutions is having a grasp on the “new goods” in the field. It also, however, depends on knowledge of what has already been done with success and failure in the past and there are many great books on these topics. There must be a large number of developers and managers out there with “hard-fought knowledge and wisdom” who are also practicing agile techniques and merging them together in productive ways.

Development Driven Development Growing in Popularity

Scott Rippee @ 2:16 am Sunday, December 23rd, 2007

Development Driven Development (DDD), not to be confused with Domain Driven Design, is a fairly new software development process that’s been gaining a considerable amount of traction in the last few months. While DDD stems from the core lean and agile methodologies, it takes a slightly different approach, which I’ll be summarizing here, to project management than the practices that currently fall under the agile umbrella.

DDD’s sole focus is on the development of software being development. Instead of focusing on the domain, features (FDD), behavior, quick development/test/release cycles, or the customer, focus is placed solely on development. The best way to explain this is via a short example. You have a customer or marketing team saying exactly a, b, and c are required. This is your requirement list. It should be conveyed to the development team very casually, preferably when they are still busy with their current round of DDD. This may sound like it would be highly ineffective, however, it avoids distracting developers (all of which are potentially in the flow/zone) and keeps from providing them with a direction or amount of information that could inhibit creativity.

A core principle of DDD is that other project management and development models entail too much mental overhead to implement successfully. By omitting these overheads the development team is free to quickly and blindly develop whatever is dreamt up on any whim. With all of the saved brain cycles they will be able to develop at such rapid pace that when the software is finished and potentially completely unusable the team will have plenty of time to start over with a much better idea of what the end result should actually be. Since they will be using DDD for the next iteration they will most likely finish in a similar situation as they were in at the end of the first cycle, but with an even clearer idea of the scope of the problem and will be that much closer to a working solution.

Since DDD is extremely rapid and involves many, many iterations, it is clearly more agile than even agile is capable of being, hence earning the name aagile. Aagile (pronounced by extending the amount of time spent saying the a) is the only proper way to refer to DDD and will help keep it from being clumped into the bucket of common agile development techniques.

If you have any DDD success stories I would love to hear about them and what key DDD principles helped make them a success.

Great Perl Script

Scott Rippee @ 1:35 pm Saturday, December 22nd, 2007

Perl's cryptic syntax, powerful regular expressions, and "dynamicness" are more useful than I've previously given it credit. :). As a bonus it's in Christmas colors courtesy of my syntax highlighter.

  1. #
  2.    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
  3.    .('`'        |'!')        .('`'        |',')        .'"'.        '\\$'
  4.    .'=='        .('['        ^'+')        .('`'        |'/')        .('['
  5.    ^'+')        .'||'        .(';'        &'=')        .(';'        &'=')
  6.    .';-'        .'-'.        '\\$'        .'=;'        .('['        ^'(')
  7.    .('['        ^'.')        .('`'        |'"')        .('!'        ^'+')
  8.   .'_\\{'      .'(\\$'      .';=('.      '\\$=|'      ."\|".(      '`'^'.'
  9.  ).(('`')|    '/').').'    .'\\"'.+(    '{'^'[').    ('`'|'"')    .('`'|'/'
  10. ).('['^'/')  .('['^'/')('`'|',').(  '`'|('%'))'\\".\\"'.(  '['^('(')).
  11. '\\"'.('[''#').'!!--'  .'\\$=.\\"'  .('{'^'[')('`'|'/').(  '`'|"\&").(
  12. '{'^"\[").(  '`'|"\"").(  '`'|"\%").(  '`'|"\%").(  '['^(')'))'\\").\\"'.
  13. ('{'^'[').(  '`'|"\/").(  '`'|"\.").(  '{'^"\[").(  '['^"\/").(  '`'|"\(").(
  14. '`'|"\%").(  '{'^"\[").(  '['^"\,").(  '`'|"\!").(  '`'|"\,").(  '`'|(',')).
  15. '\\"\\}'.+(  '['^"\+").(  '['^"\)").(  '`'|"\)").(  '`'|"\.").(  '['^('/')).
  16. '+_,\\",'.(  '{'^('['))('\\$;!').(  '!'^"\+").(  '{'^"\/").(  '`'|"\!").(
  17. '`'|"\+").(  '`'|"\%").(  '{'^"\[").(  '`'|"\/").(  '`'|"\.").(  '`'|"\%").(
  18. '{'^"\[").(  '`'|"\$").(  '`'|"\/").(  '['^"\,").(  '`'|('.'))','.(('{')^
  19. '[').("\["'+').("\`"'!').("\["'(').("\["'(').("\{"'[').("\`"|
  20. ')').("\["'/').("\{"'[').("\`"'!').("\["')').("\`"'/').("\["^
  21. '.').("\`"'.').("\`"'$')."\,".(  '!'^('+'))'\\",_,\\"'  .'!'.("\!"^
  22. '+').("\!"'+').'\\"'('['^',').(  '`'|"\(").(  '`'|"\)").(  '`'|"\,").(
  23. '`'|('%'))'++\\$="})'  );$:=('.')'~';$~='@''(';$^=')''[';$/='`';

Interestingly enough my markup module chooses to remove the trailing pipe "|" from line 19 in "VIEW PLAIN TEXT". So if you want to run it you can either copy it from here or use your text editors fancy block select cut feature to remove the line numbers from the html view. :)

Rails 2.0 is out!

UnderpaidLoveMonki @ 10:00 pm Thursday, December 6th, 2007

Lo and behold after I performed a "gem update" tonight, I started seeing rails 2.0 being installed! WOOHOO! Let the games begin! It's a good christmas afterall! :)

UPDATE, Part 2: Activeresource finally showed up in the mirrors and it is now installed. Rails is running perfectly! Awesome!

UPDATE: Oop, I spoke too soon:

ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find activeresource (= 2.0.0) in any repository


Are you a 80% or 20%?

UnderpaidLoveMonki @ 10:58 pm Tuesday, November 27th, 2007

If you are currently working as a programmer, what kind of a programmer are you? an "80%" or "20%"? If you're not familiar with these types, you may want to read this or that.

Here's a snippet from iBanjo:

The 20% folks are what many would call “alpha” programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90’s; the people who write lisp compilers and learn Haskell on weekends “just for fun”; they actively participate in open source projects; they’re always aware of the latest, coolest new trends in programming and tools.

The 80% folks make up the bulk of the software development industry. They’re not stupid; they’re merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software.

new clarinet +1, RubyConf 0

Scott Rippee @ 6:20 pm Thursday, November 15th, 2007

Ruby is not some bachelor’s party with a foxy lady in a sherlock holmes hat. Enjoy the clarinet _why. link

Erlang?! Something alpha geeks would love…

UnderpaidLoveMonki @ 9:34 pm Wednesday, October 31st, 2007

From Jay Fields...

Knowing that Erlang is a language designed to take advantage of multi-cores is enough to drive interest. Other questions that I would expect from CIOs are: Reliability? Nine nines uptime[1]. Maturity? It's been around for 20 years. Who else is using it? Ericsson, Nortel, T-Mobile. The argument sounds compelling.

To those naysayers about using this language (you know who you are! I'll be haunting you at night, especially today is Halloween! :),

The AXD301 has achieved a NINE nines reliability (yes, you read that right, 99.9999999%). Let’s put this in context: 5 nines is reckoned to be good (5.2 minutes of downtime/year). 7 nines almost unachievable ... but we did 9. (http://www.pragmaticprogrammer.com/articles/erlang.html)

Rock on, Erlang!

Test 93 overwriting neuron 23441952 axon 3

Scott Rippee @ 11:42 pm Sunday, October 28th, 2007

and my hand slaps my face proving that the hand can still successfully slap the face. If only there were not so many commits kicking off the slap suite.

Dstamat at ELC provides a whirl wind of the many options that have come to existence in Ruby automated test land.

As I started to see my test suite slow down, Mocha to the rescue (FlexMock would have done the job too). My controller tests became focused, and my models were simply mocked and stubbed away from them completely. What if I wanted to test my views ?
Enter Selenium and Watir. Now I could even test to make sure my blind_downs were working when a user clicked on my links from browser X, Y, Z. Half way into setting up Selenium, RSpec hit the scene.

Test::Unit, Mocha, Rspec, RCov, Heckle. Throw ci_reporter in the mix for testing in continous integration (CI) setups such as pulse. Rock and roll for what rails has pulled off in the testing arena and more rock and roll considering the benefits gained by all ruby development.

There are so many amazing tools are available that incubate quality and live in complete automation. The learning curve is there, time to implement is there, but the pay off is huge and shouldn't be ignored.

The vague and partially relevant point of this post is to illustrate the agile software development (r)evolution that passionate Rubyists have manifested in such a short amount of time. The creation, porting, adaption and adoption of these testing tools / frameworks alone should clearly exemplify this.

It's an exciting time to be writing software

dstamat, I must agree. I'm completely enthralled.