Archive for June, 2009

You are currently browsing the memamsa archives for June, 2009.


Niches – Economic and Ecologic

Eric Mortenson’s report on the economic perseverance and adaptability in Klamath County talks about how Liskey Farms is creating new lines of business. 

Klamath Falls sits on natural geothermal springs, and geothermal power was used to heat homes in the area, starting in 1900. Today, schools and colleges are offering courses and careers in renewable power generation using geothermal energy. 

The economics of geothermal heating allows Liskey Farms to maintain and operate a greenhouse where “lima beans sprout and grow 3 inches in two days”. 

The company leasing the greenhouse intentionally infests the lima beans to grow spider mites. Spider mites are known to feed on more than 180 different plant species in both greenhouse and outdoor environments and are considered a serious pest in agriculture. Strawberry fields, grape vineyards, almond orchards, apple orchards and mint fields are susceptible to spider mite attacks. 

Several companies offer biological controls for spider mite infestations. At $25 per 1000 bugs in a bottle, farmers and growers can get predator mites which attack and feed on spider mites. 

Tetranychus Urticae

Spider Mites

Phytoseiulus Persimilis

Predator Mites

Predator Mite 6-pack

Predator 6-pack

 

 

 

 

 

 

Lima beans are grown in geothermally heated greenhouses to breed spider mites specifically to harvest their eggs and use them as feed for predator mites, which are then bottled and sold to orchards and vineyards to increase their yield. As Liskey simplifies it, in traditional terms:

“We’re the hayfield to the feedlot”

Just another example of ecological niches combined with economic requirements harnessing available resources to create new businesses.

What’s your niche?

TextMate – Thanks, Mate!

TextMate has increased my programming happiness. 

TextMate

A well-crafted, elegant and intelligent text editor, TextMate is a rare combination of graphical power, customizable keyboard shortcuts, sensible project management and extensible smarts. 

Most importantly, it does all this with a speed and responsiveness that keeps you in the code flow. 

Nothing is skimped, nothing is extraneous, nothing forced. You are free to develop your personal interaction style that works best for you. Here are the things that I appreciate the most:

  1. Syntax highlighting and automatic indenting for a range of languages, including multiple scopes such as when HTML combines Javascript and Ruby.
  2. Quickly go to a file by typing just a few characters. The pattern matching for the dynamic file selector is powerful and intuitive. 
  3. Ultra-quick Find/Replace at multiple levels. The Project level find is collapsible at the file level. 
  4. Multiple file tabs that are easy to switch and move around. 
  5. Code navigation, bookmarking and text folding.
  6. Rich set of language and task bundles with code generation snippets, macros for common cases and more.  

Thanks to Allan Odgaard. 

Also, thanks to all those who contributed snippets and bundles to TextMate. 

Opera Unite – Against the Grain, Yay!

Opera – the epitome of nice guys finishing last and maker of the eponymous browser – has launched Opera Unite, an attempt to “reinvent the Web”.

The notion of a web browser as a web server is not new, it simply fell by the wayside in the Internet Gold Rush. Netscape decided to essentially give away the browser and charge a huge premium for the server. Once Microsoft realized that browser market share was critical to control standards, formats and future evolution of the technology, the browser business model was deemed FREE. A dying Netscape spawned the open source Mozilla, and various companies nurtured it to develop Firefox. Not surprisingly, Google feels the need to replay the strategy with Chrome.

Yet Opera has not made much headway. Because, or in effect, they seem to make decisions that go against the grain. For example:  Read the rest of this entry »

Sharing Augmented Reality

I enjoyed exploring the Smithsonian last week while I was in Washington, D.C. The exhibits are impressive, and the curation is enlightening. Here is just one example.

1903 Wright Flyer

1903 Wright Flyer

The National Air and Space Museum has the original Wright Flyer on display. Yes, that is the actual beech and iron frame, with controls and engine from 1903 that flew at Kitty Hawk. The fabric has been replaced, of course, but I am pretty sure that the replica fabric mimics the characteristics of the original as closely as possible. The exhibit is impressive in its regard for history and heritage.

But the care in curating and creating a narrative is what provides the larger context for the Wright Brothers’ accomplishment. It illuminates the inspiring story of two entrepreneurs who use their knowledge and skills to set off on a larger quest. Through artifacts, images, audio-visual displays and hands-on models, our attention is drawn to the process of innovation. A methodical, analytical and empirical approach with the result that:

The basic problems of mechanical flight, lift, propulsion, and control were solved in the Wright design

Even more interesting is how people react to the information and artifacts. Their urge to draw attention to certain aspects to marvel, discuss, and just share. Right then, right there with those present, or later in ruminations and retellings. Imprinting it with their own experiences and absorbing it into their perspectives.

And therein is an idea and possibly a new market.

AirDB Updates

A summary of the several improvements committed to AirDB in the last five weeks. 

  1. Support for has-many and belongs-to associations
  2. Support for multiple associations for a given Modeler class.
  3. More smarts and existence checks for automatic schema migration
  4. Call-chaining for Associations e.g. post.author.comments.count
  5. Miscellaneous fixes, improvements and optimizations

Highlights of the major new additions since I wrote about the initial design

The Migrator handles schema versioning, checking and automatic migrations.

public class Migrator implements IMigratable
{
  public function Migrator(klass:Class, options:Object, directives:Array) {
     // setup table structures, prototype fields, existing schema
     DB.migrate(this);
  }
  // Supported migration directives
 
  // create a table after processing the provided function block
  public function createTable(block:Function):void { ..}
 
  // specify a column, if it does not exist, it is created.
  public function column(name:String, dataType:uint, options:Object = null):void {..}
 
  // make a join table to handle many-many associations with specified class
  public function joinTable(klass:Class):void { .. }
 
  // map a foreign key for belongs-to association
  public function belongsTo(klass:Class):void { .. }
}

The Associator handles associations which are specified via class meta-data. The improvements under the hood make it easier to make associations between Modeler object instances. For example

// Use the record ID of the target to specify associations
// Post has-many comments
post.comments.push(3);
 
// Chain the target for further calls
// Post belongs-to author and Author has-many comments
 
// Obtain field value of associated target
var nm:String = post.author.name;
 
// Make further associations on associated target
post.author.comments.push(new Comment({title: 'hello there'}));

Join queries and foreign-key lookups are now a breeze with AirDB.