about img
blogger img

buchos posts img

Corys posts image

scotts posts image

UnderPaidLoveMonkis posts img

Scott's Archive

CSU Chico’s Intelligent Systems Laboratory

Scott Rippee @ 3:53 pm Wednesday, April 2nd, 2008

Came across this document that is the progress report for the first half of the grant that CSU Chico received for robotics while I was there. The report included example project papers, one of which was from one of my groups and included several pictures of my lovely boebot along with some colorful language:

That particular design was used the two sensors pointing at the ground to follow a line and detect the ending point, a perpendicular line.

From the look of the Intelligent Systems Laboratory page they are doing well with several interesting projects in the works.

Ubuntu 8.04 beta in Mac Parallels

Scott Rippee @ 12:31 am Friday, March 28th, 2008

Wooohoo Ubuntu 8.04 beta works perfectly in parallels on Leopard. I had some problems with 7.10 from the iso and cd so instead of using the alternate (text based install that is reported to work) I downloaded 8.04. So far everything is running flawlessly. Parallels tools reportedly has problems running due to an Xorg change, but I haven’t gave it a try for my self yet and that post/bug was submitted a couple of months ago.

Check out the Ubuntu 8.04 features. It’s exciting to see the new apps, features, and versions in open source land that are all being pulled together to create a great user experience.

To LVM or not LVM

Scott Rippee @ 6:13 pm Sunday, March 16th, 2008

So I was sitting here trying to decide whether to re-setup my few small drives into a big chunk of storage with LVM as I had in my previous Gentoo setup. The LVM draw is not having to think about which drives you’ve stuck x, y, and z and the drawback being having to set it up and not being able to easily recover the data in the case of system failure.

However, it turns out that Ubuntu or Linux or some sort of supermagical force made my old volume group that existed in Gentoo still exist in Ubuntu! I mounted the logical volume and walha, all of my old files were still there. LVM must record special LVM data on to the drives in a volume group that dictates the configuration rather than storing the configuration to the system (in a file somewhere). Sweeet

On a side note it was tough to nuke Gentoo after a great 6 year ride and at the same time its really nice not waiting hours for software to compile. Plus Ubuntu is beautiful + just works.

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….).

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.

PERL:
  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. :)

“He who wants to warm himself in old age must build a fireplace in his youth”

Scott Rippee @ 12:32 am Tuesday, December 4th, 2007

Or as I prefer to say it, he who wants to watch cable TV must pay his comcast bill.

For all of comcast's horribleness, specifically in the customer support realm, they do have these wonderful fireplace videos with joyous carols. =]

Desktop Tower Defense

Scott Rippee @ 5:45 pm Sunday, November 18th, 2007

I learned about Desktop Tower Defense from Tom Distler's blog. It's so much fun, but heed Tom's warning.

I made the mistake of watching one of those youtube videos, embedded in google search results, that I would have rather not seen before having a chance to solidify a winning strategy of my own.

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

Googly Leopard Skinned Eyes

Scott Rippee @ 10:45 pm Tuesday, October 30th, 2007

Leopard's here and..... it's beautiful

They hit some of my most desired usability features on the head: virtual desktops, tabbed terminal, and I'll take a cleaner desktop as a bonus. :)

The idea of being able to write an app in ruby with a delicious OS X Cocoa interface and have out-of-the-box distribution ability is very exciting to my googly ruby red eyes as well.

I could go on, but will spare you for now. Instead a concise ruby-leopard summary from infoQ: Ruby on Mac OS X Leopard with DTrace, XCode and Interface Builder support

What's up with not being able to right click on icons in the cool little pop-out from tray folder view or in the new finder view (itunes album view)?

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.

The Spread Toolkit

Scott Rippee @ 11:11 pm Friday, October 12th, 2007

Spread Overview

Spread is a toolkit that provides a high performance messaging service that is resilient to faults across external or internal networks. Spread functions as a unified message bus for distributed applications, and provides highly tuned application-level multicast and group communication support. Spread services range from reliable message passing to fully ordered messages with delivery guarantees, even in case of computer failures and network partitions.

Spread is designed to encapsulate the challenging aspects of asynchronous networks and enable the construction of scalable distributed applications, allowing application builders to focus on the differentiating components of their application.

Powerful, but simple API. Only six basic calls are required to utilize Spread.

After reading the documentation this sounds really impressive. I'm going to need to play around with it to feel it out and find out if it has potential for any future projects.

Check out the platform and language support:

BSDI 4
Linux
Solaris
Irix 6.5.3 (MIPS)
AIX (powerpc)
FreeBSD (x86)
NetBSD (x86, ppc)
OpenBSD (x86)
Mac OS X (ppc)
Windows 95, 98
Windows NT, 2000, XP

C/C++ libraries with and without thread support.
Java Class to be used by applets or applications.
Perl interface.
Python interface.
Ruby interface.

macports expat subversion mac OS X

Scott Rippee @ 10:24 pm Friday, September 28th, 2007

I've been having a very strange problem on the mac the last couple of days. Subversion went from happy camper to sad clown after a MacPorts package update.

  • Subversion says it needs libexpat.so.0 at run time (to commit).
  • libexpat.so* exists no where on the file system
  • Expat only wants to generate static libraries. The port install only generates the static libs (la) and the last release downloaded and configured with --enable-shared still refuses to generate shared libraries. The CVS release blew up so many times I quit wasting my time and moved on.
  • Subversion does not have an option to make without expat
  • An expat mac install package exists, but doesn't contain the desired so file

What I'm confused about is how subversion is able to build without having expat's dynamic library to link to. If it links using the static lib then there should not be the need to load the dynamic library at run time unless it is specifically made to work this way for some reason.

Of course all of this pain and confusion vanquished upon taking a closer look at the error message:

CODE:
  1. svnserve: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory
  2. svn: Commit failed (details follow):
  3. svn: Connection closed unexpectedly

Woops, finally noticed the svnserve. ssh into Gentoo box, create a libexpat.so.0 symbolic link to the existing dynamic library. All is happy camping once again... Think about how there was some emerge -uDv world remote action at the same time as the port upgrade outdated. Slap forhead....

The three lessons learned:

  1. look at error messages carefully
  2. when something is server/client or distributed account for the remote side as a possible cause of the error
  3. don't start writing a blog post mid way though solving a problem =]