<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6167476510374402746</id><updated>2024-10-31T23:47:53.858-07:00</updated><category term="software"/><category term="organizational"/><category term="ideas"/><category term="Chrome"/><category term="Chromium"/><category term="Firefox"/><category term="General Motors"/><category term="Google"/><category term="JavaScript Firefox Chrome privilege message-passing message passing"/><category term="Kixx"/><category term="Microsoft"/><category term="Mozilla"/><category term="car companies"/><category term="chocolate factory"/><category term="communicating"/><category term="computer programming"/><category term="corporate structure"/><category term="design open"/><category term="dynmaic capitalism member corporation"/><category term="iPhone"/><category term="innovation"/><category term="innovation Internet &quot;World Wide Web&quot;"/><category term="open source design"/><category term="open source innovation"/><category term="security"/><category term="tutorial"/><category term="viruses"/><category term="voting"/><title type='text'>Fireworks Factory</title><subtitle type='html'>Bootstrapping a software company :: &#xa;www.fireworksproject.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-2431178685759488998</id><published>2010-05-08T03:56:00.000-07:00</published><updated>2010-05-11T15:40:01.373-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dynmaic capitalism member corporation"/><title type='text'>Hacking on Dynamic Capitalism</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGZtabCUQg6JzGuwFNWSMNFO4HmNrq8Jy7LTTnS_-zgCay37EL2jrzfcALdZwl4do_E-cMSAx8e0Xii1JGNQHHN8gss7CvTpdG3g-7uSLCRKC8RcfgDug_pbkv8p91AnTvUXfphPuK6rg/s1600/cactus_petes_casino_400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGZtabCUQg6JzGuwFNWSMNFO4HmNrq8Jy7LTTnS_-zgCay37EL2jrzfcALdZwl4do_E-cMSAx8e0Xii1JGNQHHN8gss7CvTpdG3g-7uSLCRKC8RcfgDug_pbkv8p91AnTvUXfphPuK6rg/s320/cactus_petes_casino_400.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
There is something magical about starting an organization. You start
with nothing, and then POW! You&#39;ve created something from nothing. Done right, it will create much more value for the World than
it extracts from it. The entrepreneurial process makes me feel lucky to live in a nation that embraces
this form of &lt;a href=&quot;http://www.opinionjournal.com/editorial/feature.html?id=110009068&quot;&gt;Dynamic Capitalism&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
However, I feel like the enthusiasm for Dynamic Capitalism has become a racket.
The financial markets are only partially serving their mission of funneling money
into innovative thinking. The majority of investment capital is just
casino money made up of complex derivatives and automated trading. Firms seem
to be extracting more value from the world than they are adding to it these
days.&lt;br /&gt;
&lt;br /&gt;
Even worse, the entrepreneurial spirit seems to have sold itself out. I find the weak knees of
entrepreneurs when it comes to true innovation particularly troubling. The
macroeconomic situation in America depends on innovating as does the rest of the World.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;

The system is failing us.&lt;/h2&gt;
&lt;br /&gt;
&lt;h3&gt;

The sell out.&lt;/h3&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Many start ups, especially in the technology sector, are in the game only to
get noticed and then sell. The buyer either wants to hire the founders or put
them out of business. Or, perhaps the buyer is attempting to capture any value
they believe might be created in the &lt;em&gt;future&lt;/em&gt;. But, let&#39;s face it, if a start
up has a good chance of creating significant value, it would not be selling
itself.&lt;br /&gt;
&lt;br /&gt;
The sellout mentality causes money to flow into businesses that are in business
for the wrong reason.  How can sellout businesses possibly care about their
customers or the good they could be doing for the World?  And the problem is
not just an ethical or ideological gripe. From a capitalist standpoint the
purpose of investment is to move money into enterprises that create value.
Warren Buffet gets it. Most of silicon valley does not.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEytHpvblDGdgBfhqIT86UztKZZIHEfJwTeXG9r2lM0HTAL9T9tXxjuYrqV5ruf7egofllYMDkIvkGwxvvbniwcmJEJbHtNfDJDwJmteuBWMBPPezF8u0uAr3jyqJYOfDjoZaMBFSvZdE/s1600/warren_buffet_mustache_400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEytHpvblDGdgBfhqIT86UztKZZIHEfJwTeXG9r2lM0HTAL9T9tXxjuYrqV5ruf7egofllYMDkIvkGwxvvbniwcmJEJbHtNfDJDwJmteuBWMBPPezF8u0uAr3jyqJYOfDjoZaMBFSvZdE/s320/warren_buffet_mustache_400.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Don&#39;t get me wrong, under certain circumstances I would sell. First, like DHH
from 37Signals has said, you should &lt;a href=&quot;http://37signals.com/svn/posts/2235-work-on-your-best-idea&quot;&gt;always be working on your best idea&lt;/a&gt;.
If I have another idea I think is better, you can bet I&#39;ll be itching to sell
and exit quickly. Under the capitalist model, money and talent should always be
flowing into our best ideas. Secondly, if everyone else with a significant
ownership stake wants out, I can&#39;t argue with that.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
The Ponzi Scheme.&lt;/h3&gt;
&lt;br /&gt;
With no viable business model a start-up is just a money pit.  Google did it
right and everyone points to them as proof that it&#39;s a good idea to funnel
money into a business that does not have a plan to make money. This is
misleading because, in fact, Google did have a plan.&lt;br /&gt;
&lt;br /&gt;
Google&#39;s business model was carefully and skillfully conceived.  Then, more
importantly, it was extremely well executed before they got too big to execute
it. Google investors knew this and put their money behind the plan.  Not true
for Twitter and Facebook.&lt;br /&gt;
&lt;br /&gt;
Twitter, Facebook, and the others like them have no plan, and no indication
that they ever had one. Further, they are so embedded into the fabric of the
web, I doubt they could execute any kind of plan that would make a significant
business out of them at this point. &lt;a href=&quot;http://blog.jperla.com/facebook-is-a-ponzi-scheme-0&quot;&gt;By definition, they are a ponzi scheme&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
The bandwagon.&lt;/h3&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Investors like to wait to see what everyone else is going to do, and then pile
on. They want to see proven ideas that come with people who have a track
record.  As &lt;a href=&quot;http://www.whattofix.com/blog/archives/2010/04/the-startup-rac.php&quot;&gt;Daniel Markham has said&lt;/a&gt; recently &quot;everybody wants the deal all
wrapped up with a bow&quot;. Besides, the bandwagon start ups are sexy and everyone
likes to drop names. I worked in Hollywood for a while, and this scene is all
too familiar.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2vkELgAF5A7Gnq_USLlFG1cMt3N-QjYtAQNGBDlG9KvKHReZIW-gu12oN0OWGGnXYtuDkL3jPsLJVV3DX6JG0JqX623ORaxhCBcvIgzHu7m7H5AapD1VRJ-tkiqQJZZmFQI7KbwIuGvs/s1600/yellow_electric_car_400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2vkELgAF5A7Gnq_USLlFG1cMt3N-QjYtAQNGBDlG9KvKHReZIW-gu12oN0OWGGnXYtuDkL3jPsLJVV3DX6JG0JqX623ORaxhCBcvIgzHu7m7H5AapD1VRJ-tkiqQJZZmFQI7KbwIuGvs/s320/yellow_electric_car_400.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
I don&#39;t mean to be a buzz killer, but the bandwagon mentality stifles
innovation. Adopting the latest and most sexy technology or gravitating towards
the current buzzwords is not innovation. This is a leading symptom of the
followers following the followers. Investing in proven ideas executed by people
with a track record of selling out does not result in added value, and most
certainly does not incubate innovative thinking.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
Incompetent Management.&lt;/h3&gt;
&lt;br /&gt;
In the world of organizational structuring, one of the biggest problems is that
managers are continuously promoted until they reach a position which they are
incompetent to handle. This phenomenon actually has a name. It&#39;s called the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Peter_Principle&quot;&gt;Peter Principle&lt;/a&gt;. Incompetent managers stake out a claim in their
inherited position and vigorously defend it for the rest of their career. How
often have you heard a statement begin with &quot;My idiot boss...&quot;?&lt;br /&gt;
&lt;br /&gt;
To incompetent managers innovation is a liability. It threatens to expose the
true breadth of their incompetence. Even worse, this attitude suffocates
innovative thinkers who are forced to abandon their ideas for fear of losing
their livelihood. It has been said that &quot;nobody ever got fired for buying from
IBM.&quot; People lose their jobs for choosing not to take the tried and true path,
risking failure. But failing is a prerequisite for innovation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
I&#39;m just pressing my face against the glass.&lt;/h2&gt;
&lt;br /&gt;
I&#39;m not going to claim to have a magic pill to fix the system.  Frankly, I
don&#39;t think there is one. However, after spending the last 5 years rolling
possible fixes around in my head, I think I&#39;ve managed to discover a
reasonable hack that works around the broken parts.&lt;br /&gt;
&lt;br /&gt;
Granted, this discovery has a lot to do with the fact that it is very unlikely
that I would ever be allowed to enter the technology start-up arena through
conventional means. Although I do have experience starting a business with
someone else&#39;s money, I never had any equity in it myself. Even worse, that
company was a residential moving company, and schlepping furniture has very
little to do with the software company I&#39;m working on now. I have no background
in technology and I only learned to write code beyond HTML three years ago. I
graduated from Ithaca College 9 years ago with a degree in film, so I didn&#39;t
even get the chance to drop out of an Ivy League School to start Facebook.&lt;br /&gt;
&lt;br /&gt;
In my case, I have to take a hard look at the facts and come to terms with the
reality that I&#39;m never going to be able to take part in the start up racket.
It will be a long time before I would even get a glancing look from an
investor. Besides, by then our company will be a risk free cash cow. In which
case, why would we give those vultures one dime? It didn&#39;t take me very long to
come to an understanding that, while it would be difficult, it may be in my
best interest to be an outsider anyway. I&#39;ve always liked being an underdog.
That&#39;s when I work the best.&lt;br /&gt;
&lt;br /&gt;
So, I founded a software firm without seeking capital investment, and no plans
to do so in the foreseeable future. But that&#39;s not enough, I also wanted to
hack on the corporate legal system to come up with a fix for the sell out
mentality and the business model myopia that makes ideas into ponzi schemes.
And, while we&#39;re at it, we might as well take a crack at incompetence as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Introducing the member owned and managed corporation.&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
In early 2009 I started a mailing list and dubbed it my advisory board. From
January 2009 through early March 2009 we hacked at some ideas and began to
converge on a legal structure we thought might work. As luck would have it,
some progressive legal thinkers much smarter than we are had been working on
the same thing. I was able to get in touch with them, and on April 1st, 2009 we
were officially incorporated under the new virtual corporation law in Vermont.
(Yes, that is April Fools day, but this is no joke.)&lt;br /&gt;
&lt;br /&gt;
Under our legal structure we&#39;re defined as members instead of shareholders or
partners. I&#39;ll get into the distinct differences later, but the way it works is
that the members vote points to one another each month. Members may not vote
any more points to any other member than they have themselves and are not
mandated to vote points if they choose not to. Points are never taken away, so
every time points are voted, point inflation occurs. Inflation is included by
design so that idle members who are not voted points will experience a decay in
their holdings over time.&lt;br /&gt;
&lt;br /&gt;
The points get you three things. First, revenue after operating costs will be
dispersed every month to all the members according to the percentage of total
points each member has. This is similar to stock dividends. Second, members get
to vote for a board of directors at 1 vote per point. Just like a conventional
corporation, the board of directors is responsible for assigning executives to
act on behalf of the members in day to day business affairs. Third, if the members
decide to sell the company, they will each be given a portion of the sale price
according to the percentage of the total points each member has. Again, this
mechanism mostly works like the classic shareholder and partnership systems.&lt;br /&gt;
&lt;br /&gt;
The major difference from the shareholder and partnership arrangement is the
way it is designed to embrace collaboration and innovation. The influence for
the member owned and managed structure comes from open source software
development as well as &lt;a href=&quot;http://en.wikipedia.org/wiki/Game_theory&quot;&gt;Game Theory&lt;/a&gt;, most notably the &lt;a href=&quot;http://en.wikipedia.org/wiki/Nash_equilibrium&quot;&gt;Nash
equilibrium&lt;/a&gt;. The goal is to reach an equilibrium where players of the game
have all settled on the best strategy and are unlikely to change it. By design,
the legal structure of the corporation is meant to arrive at an equilibrium
where all the members act in self interest while still benefiting the group as
a whole. When you think about it, this is not really anything new. Classical
corporate structure, financial markets, and organized religion all depend on an
equilibrium where an individual acting in self interest benefits the whole
group.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8pUpDQJDBa3oadqJfPQIE-GUr8oqNvnhe52AJGQBNmn_775Lus5Oiq3WgM9iLz7kEgocoMC5Atq5DqRNw3JdUSsjJofmkvXmIKPwmW3NySJ5jum-ComprIC7kvCmEDgdRc8EVspkx2wk/s1600/game_board_closeup_400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8pUpDQJDBa3oadqJfPQIE-GUr8oqNvnhe52AJGQBNmn_775Lus5Oiq3WgM9iLz7kEgocoMC5Atq5DqRNw3JdUSsjJofmkvXmIKPwmW3NySJ5jum-ComprIC7kvCmEDgdRc8EVspkx2wk/s320/game_board_closeup_400.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The real breakthrough of the member owned and managed corporation is the
management structure, which is derived from the compensation
structure. We do this through some assumptions we can make about
the strategies the members will use to play the game. &lt;br /&gt;
&lt;br /&gt;
As a member, when I am faced with my voting decisions at the end of the month I have to take
three factors into consideration. First, if any member does not feel they are
fairly compensated for their contributions to the organization, they are going
to be unmotivated to contribute further. To avoid losing them I want to be sure
to vote an adequate number of points to valuable members. Second, although I
want to keep valuable members motivated, and even though it is not possible for
me to lose points, I don&#39;t want to vote too many points into the pool. Voting
points into the pool causes inflation and will lower my own valuation in the
company. Third, I know that the members whom I don&#39;t vote any points to will
probably withhold points from me in retaliation next month.  For members with
low point valuations this is not really as important as it is when considering
how much to vote to high value members.&lt;br /&gt;
&lt;br /&gt;
As I make my voting decisions you can see that while I am playing the game with
my best interests in mind, a management structure benefiting the entire group
emerges. It&#39;s been said that the Internal Revenue Service could save loads of
money on collection costs if they could simply post every taxpayers&#39; tax return
on a public website. Nobody would cheat on their taxes if returns were filed in
the open.&lt;br /&gt;
&lt;br /&gt;
The member managed corporation sidesteps the epidemic of incompetence by
requiring members to put their competence on display. Even better, it
requires them to continue to demonstrate competence throughout their ascent in
the organization.  A member who is competent in a technical skill and is also
able to successfully evangelize a cause will be the most likely to gain
valuation from other members. In turn, the members with the most valuation will
have the most influence because of their large point pools and our natural
tribal tendencies.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
However, high value members must also understand the importance of rewarding
other valuable members, or risk losing their valuation. If other members feel
that a high value member is shortchanging the rest of the members, the well
will dry up for the points hoarder. High value members must be committed to
making sure that all boats rise with the tide, or find themselves rapidly
losing valuation as other members withhold points in disgust. This gaming
mechanism keeps power and influence in check while rewarding competence.&lt;br /&gt;
&lt;br /&gt;
Conversely, members who do not add value, or are not adept at communicating the
value they are adding, will gain very little or no points at all. There is no
reason for me to vote points to a member who contributes little value and does
not have many points to vote back to me. If the rest of the group generally
agrees with me, this low value member will either be working for free, or soon
give up. Either way, a member without value is effectively fired.&lt;br /&gt;
&lt;br /&gt;
In a member owned and managed corporation we do away with job titles and
resumes.  Instead, management, recruiting, and hiring is naturally organized
around the performance and competence of an individual. In my opinion, that is
the way it should be.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
The legal nitty gritty.&lt;/h2&gt;
&lt;br /&gt;
Like I said before, there is a subtle but important difference between the
definition of a member and that of a classic shareholder or partner. I once
heard a corporate lawyer describe a corporation as a perfect blend of different
classes of equity and debt to suit the pallet of the founders. Well, the legal
definition of a member in a member owned and managed corporation is the secret
sauce that ties the whole meal together for us.&lt;br /&gt;
&lt;br /&gt;
A member is a person who holds any number of &lt;em&gt;nontransferable points&lt;/em&gt;. Even
though we could conceivably grow to thousands of members around the World, we
are not beholden to the Securities and Exchange Commission. We are allowed to
make the distinction between a member and a shareholder or partner by making
points nontransferable. In other words, there is no market, public or private,
for points or equity in a member owned and managed corporation.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwuXwHj8JLYsd5DiZ075AVlHGnht8w2h9kReB1xhPDfFiCgeR8IaPGA7dM4FxrFjw1d5nWbNyD_uikJ6bG1gnI-WTj1QmA6U_I468Qh74FtJ3qaFSmAQ75HLfJ-EKjbLgJgavX6iglddY/s1600/lawyers_without_pants_400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwuXwHj8JLYsd5DiZ075AVlHGnht8w2h9kReB1xhPDfFiCgeR8IaPGA7dM4FxrFjw1d5nWbNyD_uikJ6bG1gnI-WTj1QmA6U_I468Qh74FtJ3qaFSmAQ75HLfJ-EKjbLgJgavX6iglddY/s320/lawyers_without_pants_400.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
That&#39;s it.&lt;br /&gt;
&lt;br /&gt;
The legal minds working on the member owned and managed corporate structure
come from the &lt;a href=&quot;http://cyber.law.harvard.edu/&quot;&gt;Berkman Center&lt;/a&gt; at Harvard Law. In 2009 they &lt;a href=&quot;http://cyber.law.harvard.edu/interactive/events/luncheons/2009/10/lawlab&quot;&gt;published
a video&lt;/a&gt; detailing the thinking behind a new legal structure for corporations.
In the most recent form it is known as the &lt;a href=&quot;http://lawlab.org/digital-institutions/vermont-project/&quot;&gt;Vermont Project&lt;/a&gt; and is paired with
a software tool for forming the legal entity itself.&lt;br /&gt;
&lt;br /&gt;
The project was not so mature when The Fireworks Project adopted it, but we
were pretty happy nonetheless. I had some serious concerns about how viable we
would be if we had not found great legal minds that had prior work with similar structures, so it was very fortunate that we found them.&lt;br /&gt;
&lt;br /&gt;
I&#39;m optimistic about what we&#39;ll be
able to do with this corporate structure. You can have a look at our &lt;a href=&quot;http://www.fireworksproject.com/join&quot;&gt;operating agreement&lt;/a&gt; to get a feel for our actual legal structure. It is designed to create the perfect storm for
true innovation. More than anything I hope.... no, I believe we&#39;ll create far
more value for the world than we extract from it. Isn&#39;t that the reason for it all in the first place?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Fireworks Project is
&lt;a href=&quot;http://www.fireworksproject.com/pages/extraordinary_people.html&quot;&gt;
looking for more than just competent people.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Photo Attribution&lt;/h4&gt;
&lt;br /&gt;
Yellow Electric Car: http://www.flickr.com/photos/jurvetson/&lt;br /&gt;
Cactus Pete&#39;s Roadside Casino: http://www.flickr.com/photos/roadsidepictures/&lt;br /&gt;
Warren Buffet Finger Mustache: http://www.flickr.com/photos/apfriedman/&lt;br /&gt;
Game Board: http://www.flickr.com/photos/mkuram/&lt;br /&gt;
Lawyers without pants: http://www.flickr.com/photos/lordkhan/</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/2431178685759488998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2010/05/hacking-on-dynamic-capitalism.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/2431178685759488998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/2431178685759488998'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2010/05/hacking-on-dynamic-capitalism.html' title='Hacking on Dynamic Capitalism'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGZtabCUQg6JzGuwFNWSMNFO4HmNrq8Jy7LTTnS_-zgCay37EL2jrzfcALdZwl4do_E-cMSAx8e0Xii1JGNQHHN8gss7CvTpdG3g-7uSLCRKC8RcfgDug_pbkv8p91AnTvUXfphPuK6rg/s72-c/cactus_petes_casino_400.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7167197566601154738</id><published>2010-01-25T12:36:00.000-08:00</published><updated>2010-01-25T16:21:02.056-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript Firefox Chrome privilege message-passing message passing"/><title type='text'>Extending Chrome and Firefox privileges with message passing.</title><content type='html'>&lt;p&gt;I&#39;m going off on a technical tangent for this post because I&#39;d like to take the time to write a little about the design of our application platform, &lt;a href=&quot;http://www.fireworksproject.com/projects/kixx&quot;&gt;Kixx&lt;/a&gt;.  Specifically, I&#39;m going to outline how I think we can build privileged applications using the web browser as a platform.  By privileged, I mean applications that can make cross domain network calls and have access to a local storage system among many other things that normal web pages cannot do.
&lt;/p&gt;&lt;p&gt;The Firefox and Chrome web browsers both have some notion of a background page running with extended local privileges available to extension developers. For Firefox, this takes the form of an undocumented and hidden window running within the the core of the browser referred to as the &quot;chrome&quot; by Mozilla developers.  In the Chrome browser, extension authors can &lt;a href=&quot;http://code.google.com/chrome/extensions/background_pages.html&quot;&gt;explicitly load an HTML&lt;/a&gt; document (with JavaScript) into a background page using the manifest configuration of an installed extension.&lt;/p&gt;&lt;p&gt;We can build an extension for both the Chrome and Firefox browsers that takes advantage of these features to give extended privileges to pages running in the normal browser window tabs. This way, we can build locally installed applications which run in the browser and can do things like make cross domain XMLHttpRequest Ajax calls, open new browser tabs, and do other stuff that web pages should not normally be allowed to do.&lt;/p&gt;&lt;p&gt;Firefox extension developers are able to make actual JavaScript objects available to content pages from the internal JavaScript of the browser. On the other hand, Chrome extension developers must create a message passing API between the privileged extension scripts and the DOM of the content page.&lt;/p&gt;&lt;p&gt;For security reasons, and because of the Chrome browser design for page interaction, our design will be using a message passing API.  There are also some other side benefits of the message passing design that I&#39;ll mention later.&lt;/p&gt;&lt;p&gt;In the Firefox extension, we will dynamically place an iframe element into the hidden window from the JavaScript in our extension. We&#39;ll then load our own page, which implements the privileged half of our message passing API, within our iframe element as the browser loads.&lt;/p&gt;&lt;p&gt;In the Chrome extension our message passing API will be implemented in a simple background page. We&#39;ll be able to use a content script explicitly declared in the extension manifest to facilitate communication with normal content pages.
&lt;/p&gt;&lt;p&gt;In both browsers, this scheme will look something like fig 1.
&lt;/p&gt;&lt;div styl=&quot;text-align:center&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 229px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh712kcTHGIdprxV1rrf_UN9BG5YBEleGUAM7XpvnAu1sr8CBtHaouR3s9R3PR4_cPiRoAcC00hhkKDW4aaHz8fU__4fj-JFaCAoP3O81jS_wePfH5-uQvK7E59qr-O-FD0xQO64rZakws/s320/kixx-diagram_browser-before.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5430779759502953442&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;&lt;p&gt;The &quot;privileged execution frame&quot; in fig 1 is the background page we loaded from our browser extension.  The &quot;bridge API script&quot; is the script running in that page which implements the privileged side of our message passing system.&lt;/p&gt;&lt;p&gt;The &quot;content execution frame&quot; contains the normal tabbed browsing pages.&lt;/p&gt;&lt;p&gt;However, for good reason, we do not want to give any web page that the user loads into the browser these extended privileges.  We only want certain pages that we designate to be able to have access to our message passing API.&lt;/p&gt;&lt;p&gt;To accomplish this, we&#39;ll set up a folder somewhere on the local file system to contain our privileged applications. We&#39;ll call these mini applications &lt;span style=&quot;font-style: italic;&quot;&gt;toolpacks&lt;/span&gt;.  Only pages loaded using the &lt;code&gt;file://&lt;/code&gt; URL scheme from our toolpacks will have access to our message passing API.&lt;/p&gt;&lt;p&gt;The design for our toolpacks will look something like fig 2.
&lt;/p&gt;&lt;p&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 189px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJj-7gFPd8_zUeXe-aTOc1pf05bNluHBOKcP1SlvY8YqClOdzLWR0LhGblImkp3U2SCDs8vQ1qPvwh0Y6fBZGYWrhcWmMWxDhnVYx4y3dYHwrKpVwUbcNOxEe3FPypQaXC-tlrMKKxdx4/s320/kixx-diagram_local-fs.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5430779759826114194&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;
&lt;div styl=&quot;text-align:center&quot;&gt;Each toolpack exists in its own folder on the local file system. A toolpack may consist of HTML pages, JavaScript files, CSS, and images.  One toolpack will contain the JavaScript file for the non-privileged side of our message passing bridge API (shown in the red in fig 2).

As shown in fig 3, toolpacks can access the message passing API by importing it using a script tag in an HTML file.

&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 228px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitwDv4kUck7myGV4lLOr9ueq0tSQ_zjYuv6pXzbcMv0Kwp4AznCa_0t6eqM0zxjpYJQNE_hR9biwwcRcYxbGG7ylWpnnAku1_W35f4WKVYpLexaNxIryi1gq2eg50OXBrY8u4eVMhrdlg/s320/kixx-diagram_browser-after.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5430779763828373026&quot; border=&quot;0&quot; /&gt;
When a toolpack is loaded from a &lt;code&gt;file://&lt;/code&gt; URL that contains a reference to the messaging passing bridge script via a script src=&quot;...&quot; tag, the toolpack can use only the privileges given to it by the message passing API.  Further, no pages loaded from any other URL scheme (ie. from the Web) will be given the message passing API, even if it tries to load it.

There are some additional benefits of the message passing design besides just security (that I promised to talk about earlier). First, we can poach the basic API design from the &lt;a href=&quot;http://www.whatwg.org/specs/web-workers/current-work/&quot;&gt;web worker scheme being specified by the WHATWG clan&lt;/a&gt;. Second, the message passing design allows for better concurrent processes within complex applications, &lt;a href=&quot;http://en.wikipedia.org/wiki/Erlang_%28programming_language%29&quot;&gt;sort of like Erlang&lt;/a&gt;.

As far as I know, this scheme will only work for the Chrome and Firefox web browsers because of their capability to run background pages. To support other browsers we&#39;ll probably have to learn some different tricks.

So, anyway, that is the basic idea of the design.  I&#39;ll talk about API design and implementation ideas in later posts.
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7167197566601154738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2010/01/extending-chrome-and-firefox-privileges.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7167197566601154738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7167197566601154738'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2010/01/extending-chrome-and-firefox-privileges.html' title='Extending Chrome and Firefox privileges with message passing.'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh712kcTHGIdprxV1rrf_UN9BG5YBEleGUAM7XpvnAu1sr8CBtHaouR3s9R3PR4_cPiRoAcC00hhkKDW4aaHz8fU__4fj-JFaCAoP3O81jS_wePfH5-uQvK7E59qr-O-FD0xQO64rZakws/s72-c/kixx-diagram_browser-before.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-5490487555936307144</id><published>2010-01-07T12:23:00.000-08:00</published><updated>2010-01-07T12:58:44.108-08:00</updated><title type='text'>Setting a Goal. The flag in the distance.</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxVhjFVEfK1h-HkoOZ3RzI_3ezOA8ii64B6KfGoFV69jCJTRRcjuHXxhWl30zghyphenhyphenSpOL1WLo_1qHjxbPWaSycskuCyNCCgXthA3MSW1jcksQjnXNLilzYYgYllVMKtKg0A_mCODRV3SkM/s1600-h/jfk_speech.jpg&quot;&gt;&lt;img style=&quot;margin: 5%; float: left; cursor: pointer; width: 240px; height: 180px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxVhjFVEfK1h-HkoOZ3RzI_3ezOA8ii64B6KfGoFV69jCJTRRcjuHXxhWl30zghyphenhyphenSpOL1WLo_1qHjxbPWaSycskuCyNCCgXthA3MSW1jcksQjnXNLilzYYgYllVMKtKg0A_mCODRV3SkM/s320/jfk_speech.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5424104714811105698&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;p&gt;I just thought I would throw my 2 cents into the popular theme of setting goals in the new year.&lt;/p&gt;&lt;p&gt;I think we are wrong to think of goals as an end game. I don&#39;t think that achieving a goal has much value.  It is the process of getting it that arms you to handle larger challenges in the future.&lt;/p&gt;&lt;p&gt;Don&#39;t get me wrong, I&#39;m not against the idea of setting goals for the new year. In fact, I&#39;m all for setting goals any time of year. I just think that we need to focus on why we are trying to achieve our goals, and how we plan to get there. And then, we should reserve the right to change our minds about how we plan to get there, while the goal itself remains a flagpole stuck in the sand way off in the distance, reminding us of which direction we need to ultimately go in.&lt;/p&gt;&lt;p&gt;Some of the tactics we use to get to that flag may not work, and we&#39;ll need to revise them.  Sometimes we may need to cross a river to get there, and our plans will need to be revised again. This is an important and valuable process.&lt;/p&gt;&lt;p&gt;The flag in the sand keeps us going, but it is the problems we encounter along the way to reach that flag that really make us who we are.&lt;/p&gt;&lt;p&gt;John F. Kennedy understood this when he decided that the nation needed a rally in the middle of the cold war.  He made the point well during his &quot;Moon&quot; speech at Rice University.  If you have not listened to the speech, you should Google it and listen to the whole thing.&lt;/p&gt; &lt;blockquote&gt;&lt;span style=&quot;font-style: italic; font-family: georgia;font-family:times new roman;font-size:130%;&quot;  &gt;&quot;We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win.&quot;&lt;/span&gt;
&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/5490487555936307144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2010/01/i-just-thought-i-would-throw-my-2-cents.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/5490487555936307144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/5490487555936307144'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2010/01/i-just-thought-i-would-throw-my-2-cents.html' title='Setting a Goal. The flag in the distance.'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxVhjFVEfK1h-HkoOZ3RzI_3ezOA8ii64B6KfGoFV69jCJTRRcjuHXxhWl30zghyphenhyphenSpOL1WLo_1qHjxbPWaSycskuCyNCCgXthA3MSW1jcksQjnXNLilzYYgYllVMKtKg0A_mCODRV3SkM/s72-c/jfk_speech.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-3468628120622550576</id><published>2010-01-01T14:57:00.000-08:00</published><updated>2010-01-01T15:03:41.700-08:00</updated><title type='text'>Your specification documents need to be driven deep into the woods and &quot;eliminated.&quot;</title><content type='html'>&lt;p&gt;Spec docs are just an excuse to pretend that you are doing something important.
Nobody really needs them, because all that really matters is that the code
ships and people like it enough to use it. Developers who get stuff done don&#39;t
write spec docs. Sure, they take part in the flame wars on the open standards
mailing lists, and they might even write a spec after implementing it, but
while all this is going on, the developers that really matter are shipping
code at the same time.&lt;/p&gt;
&lt;p&gt;The worst offenders are the committees of so called &quot;open standards&quot; people
posturing in their academic micro environment.  And who is impressed? The
users? I don&#39;t think so.  Doug Crockford came up with the &lt;a href=&quot;http://www.json.org/&quot;&gt;JSON&lt;/a&gt; standard
all by himself. He even joked in a presentation, calling himself &quot;the one man
standards body&quot;.  I think that&#39;s the best standards body I&#39;ve ever heard of.&lt;/p&gt;
&lt;p&gt;Go to this &lt;a href=&quot;http://diveintomark.org/archives/2009/11/02/why-do-we-have-an-img-element&quot;&gt;link and read it&lt;/a&gt;.  Its a walking tour of a mailing list
where the early web browser developers are kicking around some ideas for what
HTML would become. Go there and read it now, and then come back.
You&#39;ll notice some ideas on there, some good, and some really bad.  But you
know what else? Marc Andreesen shipped the code for his browser without waiting
for everyone else, and it changed the world forever.&lt;/p&gt;
&lt;p&gt;You might complain that HTML doesn&#39;t really work very well and needs to be
thrown away. But, is the big fat pile of steaming poop called HTML5 any better?
HTML5 is the camel created by a committee that set out to create a horse.&lt;/p&gt;
&lt;p&gt;Dave Winer recently had this to say in a &lt;a href=&quot;http://www.scripting.com/stories/2010/01/01/oauthIsBecomingACautionary.html&quot;&gt;blog post&lt;/a&gt; about the OAuth
spec:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;If you want to get smart about open standards, you have to watch how these
  things play out in another open thing -- the market. Because it&#39;s the market
  that just as often shapes a standard as it is a standard that shapes the
  market.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My sentiments exactly Dave.&lt;/p&gt;
&lt;p&gt;I think the best strategy is to take the only the good stuff from open specs
and then use whatever you can lay your hands on that will create a minimum
viable product the fastest. Don&#39;t bother with writing a spec, the code is the
best spec you could write. So, let&#39;s ship some code this year!&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/3468628120622550576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2010/01/your-specification-documents-need-to-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/3468628120622550576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/3468628120622550576'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2010/01/your-specification-documents-need-to-be.html' title='Your specification documents need to be driven deep into the woods and &quot;eliminated.&quot;'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-6667469244026361579</id><published>2009-12-18T16:38:00.001-08:00</published><updated>2009-12-23T18:32:22.580-08:00</updated><title type='text'>Software should be like bicycles.</title><content type='html'>&lt;div style=&quot;margin: 2em; float: right;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhujx1pOfAGE4BcV9fF2QSeCIHlEN4T6V-0yHnCLGUYpHxrM0yTjGixk2omLH278k8A893xHcu10EEof4Y3z_hRrtdyMtKdzEKL22mNzKe6_zhwzZ00nLtkT5ozZV4Wp-r0D1jxXYqprfA/s1600-h/manonbike.jpg&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 213px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhujx1pOfAGE4BcV9fF2QSeCIHlEN4T6V-0yHnCLGUYpHxrM0yTjGixk2omLH278k8A893xHcu10EEof4Y3z_hRrtdyMtKdzEKL22mNzKe6_zhwzZ00nLtkT5ozZV4Wp-r0D1jxXYqprfA/s320/manonbike.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416742061869817234&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/stopdown/&quot; style=&quot;font-size: 0.7em;&quot;&gt;image by jesse.millan&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;width: 50%;&quot;&gt;
&lt;li&gt;The complex machinery of a bicycle is restricted to the absolute minimum needed to get the job done.&lt;/li&gt;
&lt;li&gt;A bicycle is so efficient that physical fitness and wind drag become the most limiting factors of speed.&lt;/li&gt;
&lt;li&gt;A bicycle is a modular machine made of parts that are interchangeable with the parts of other bicycles, even those made by different manufacturers.&lt;/li&gt;
&lt;li&gt;The controls of a bicycle are universally used and understood by almost everyone.&lt;/li&gt;
&lt;li&gt;Bicycles are everywhere! Almost anyone can find one that fits their budget and faithfully serves their purpose.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I think more people should use bicycles for daily transportation, I think drivers should be more respectful of people who ride bicycles on the road.&lt;/p&gt;&lt;p&gt;I also think that software developers need to learn a lesson from bicycle builders.  We need more bicycles and fewer aircraft carriers. Yahoo! is &lt;a href=&quot;http://www.techcrunch.com/2009/12/18/yahoo-cycling/&quot;&gt;getting a lot of grief&lt;/a&gt; for &lt;a href=&quot;http://www.cyclingnews.com/news/yahoo-cycling-team-to-launch-in-2010&quot;&gt;Starting! a! Cycling! Team!&lt;/a&gt;, but maybe they are on to something?&lt;/p&gt;&lt;p&gt;I&#39;ve never been able to find bicycle software, (except for &lt;a href=&quot;http://www.slackware.com/info/&quot;&gt;my favorite Linux distribution&lt;/a&gt;) so I decided to create my own.  It is called &lt;a href=&quot;http://www.fireworksproject.com/projects/kixx&quot;&gt;Kixx&lt;/a&gt; and I&#39;m working really hard on it at &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;The Fireworks Project&lt;/a&gt;. Someday I hope everyone will use it to be more productive, have more fun, and be able to get more out of the stuff that really matters in life.&lt;/p&gt;&lt;p&gt;I fondly recall the years I spent riding my bike to work through the streets of Boston. Maybe that&#39;s a little strange, but too often we take simple things like that for granted.&lt;/p&gt;&lt;p&gt;(edit: I would like to add 37Signals as a bicycle software maker: http://37signals.com/)
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/6667469244026361579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/12/software-should-be-like-bicycles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6667469244026361579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6667469244026361579'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/12/software-should-be-like-bicycles.html' title='Software should be like bicycles.'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhujx1pOfAGE4BcV9fF2QSeCIHlEN4T6V-0yHnCLGUYpHxrM0yTjGixk2omLH278k8A893xHcu10EEof4Y3z_hRrtdyMtKdzEKL22mNzKe6_zhwzZ00nLtkT5ozZV4Wp-r0D1jxXYqprfA/s72-c/manonbike.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-1493824109799231920</id><published>2009-09-20T17:12:00.000-07:00</published><updated>2009-09-20T19:13:04.490-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Chromium"/><category scheme="http://www.blogger.com/atom/ns#" term="Firefox"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="Kixx"/><category scheme="http://www.blogger.com/atom/ns#" term="Mozilla"/><title type='text'>iPhone, Firefox, Chromium, and the Future of the Web</title><content type='html'>In the world of software there are really only two paths a chunk of computer code can follow. The first is to live life as an application.  The second is to compete in the big leagues as a platform. Applications live on top of other software platforms, typically an operating system of some sort. Applications are things like Microsoft Word for PC and iCal for Mac.  Platforms handle all the behind the scenes stuff that makes computers work, so that applications can just do things for the user without having to worry about it.  Examples are Microsoft Windows and &lt;a href=&quot;http://www.ubuntu.com/&quot;&gt;Ubuntu Linux.&lt;/a&gt;

However, these days it seems our choices are not so binary any more. In recent years folks have been shouting &quot;The internet is the new platform.&quot;  They seem to think that everything we do on a computer can be done through an internet connection, without having to install any software on our computers.  There are a few problems with this.

1. Microsoft is a big and powerful corporation that makes all its money by being the &quot;gatekeeper&quot; with the most popular platform; Windows.  If the internet becomes the new platform, Microsoft looses.  Giants in an industry don&#39;t go down without a fight.

2. Despite all the claims that high speed internet connections will become ubiquitous, it just isn&#39;t going to happen.  Private network infrastructures are not going to run cables to towns with only a dozen users, and  I don&#39;t think most people want the government to subsidize high speed internet to everywhere.

3. The mobile device tsunami is going to overtake wired internet access anyway.  Mobile devices are smaller, cheaper, simpler, more available, easier to use, and always on whenever you want to have another look at the map.  From a Nokia to an iPhone, these are going to be the majority of clients on the future internet.  However, mobile bandwidth is more expensive, and so must be used much more scrupulously.  That makes web based applications unsuitable for mobile devices.

&lt;span style=&quot;font-weight: bold;font-size:100%;&quot; &gt;I think there is something far more interesting going on, and it is not getting any airplay.  What if there was a hybrid situation, where half of an application lived on the internet, and the other half lived right in the palm of your hand, in your lap, or on your desktop?  Think it&#39;s crazy?  Just look at the iPhone a little closer.&lt;/span&gt;

I have a good friend who is building an iPhone app.  All the data the app needs, pertaining to it&#39;s owner, can be stored on the phone.  However, as the user drives down the road, the phone detects it&#39;s GPS coordinates, and sends a request to a server somewhere on the internet to get the latest information about highway speed traps in that area, and then warns the user about them.  In fact most iPhone apps work this way.  The app lives in the palm of your hand, but the database, its backend, lives somewhere in the clouds.
&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;
Why is the hybrid app so much better?&lt;/span&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdQ7BE6dDlS3Q6f13s9A8nPpioVUstCIFNPExpxvrC_Q4H6mW4ODPT65J3cN-kOvYwPKc5-jHuboifO7gNxrgaxN_mCMBB8dE_URjkgDAoXMBxPKgurwfwc8pldtoyyigA9LA8jAuVYgE/s1600-h/toolbox.jpg&quot;&gt;&lt;img style=&quot;margin: 1em 1em 1em 1em; cursor: pointer; width: 357px; height: 279px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdQ7BE6dDlS3Q6f13s9A8nPpioVUstCIFNPExpxvrC_Q4H6mW4ODPT65J3cN-kOvYwPKc5-jHuboifO7gNxrgaxN_mCMBB8dE_URjkgDAoXMBxPKgurwfwc8pldtoyyigA9LA8jAuVYgE/s400/toolbox.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5383733631087426418&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;

1. Only raw data is being sent over the cell towers and the wires.  This is different than a web app, which must send a full page from a server whenever the user requests a different view or more information.  How slow and annoying is Facebook, a web app, compared to any of the iPhone apps, which are mostly hybrid applications.

2. You can use a hybrid app whenever you want, even if you have a slow internet connection, spotty cell signal, or no connection.

3. Having your information on your own device is reassuring.

4. Developers and designers can create more useful, rich, and user friendly software without the technological restrictions imposed by a web app.

However, though the iPhone is great, Mozilla and Google have hybrid platforms for netbooks, laptops, and desktop computers.  Firefox, Mozilla&#39;s popular browser, has a mature and and comprehensive extension system.  Extensions to Firefox, or addons as they are often called, make the browser more like a hybrid application platfom than simply a web browser.  For Google&#39;s part, they are making quick progress on the Chromium project yielding the Chrome web browser, which, as we would expect from Google, has included an extension system similar to, though not as comprehensive as, Firefox.

&lt;span style=&quot;font-weight: bold;&quot;&gt;While Apple runs away from the field of hybrid platforms on mobile devices with the iPhone, Chrome and Firefox are quietly establishing themselves as the future of the hybrid platform on laptops, desktops, and netbooks.  In fact, Firefox, the far more mature of the two, already has two experimental extensions that are attempting to show off the potential of the hybrid app with &lt;/span&gt;&lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://ubiquity.mozilla.com/&quot;&gt;Ubiquity&lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; and &lt;/span&gt;&lt;a style=&quot;font-weight: bold;&quot; href=&quot;https://jetpack.mozillalabs.com/&quot;&gt;Jetpack&lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;.&lt;/span&gt;

At the &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;Fireworks Project&lt;/a&gt;, we want to be a part of hybrid application renaissance.  In fact, more than that, we want to help define it. While it is unwise to duplicate the efforts of Google and Mozilla to build the hybrid platform, we can still define how the platform will evolve by creating the code that actually does what they are designing these platforms to do.  Enable the user to work freely and quickly, connected or not, and with complete freedom from having their data tied up in some web app in the cloud.

I&#39;m currently working frantically on extensions to both Firefox and Chrome that will make building, packaging, and distributing hybrid applications a quick, painless, and profitable process.  My goals are:

&lt;ul style=&quot;font-weight: bold;&quot;&gt;&lt;li style=&quot;margin-bottom:0.5em;&quot;&gt;Create a platform for code modules to be installed and imported on the client device.&lt;/li&gt;&lt;li style=&quot;margin-bottom:0.5em;&quot;&gt;Create a platform for user facing application extensions (&quot;toolpacks&quot;) to be installed and executed by the user.&lt;/li&gt;&lt;li style=&quot;margin-bottom:0.5em;&quot;&gt;Design an environment that encourages the creation of many small tools that do one thing, and do it well. (the Unix philosophy)&lt;/li&gt;&lt;li style=&quot;margin-bottom:0.5em;&quot;&gt;Allow for portability between Chrome and Firefox.&lt;/li&gt;&lt;li style=&quot;margin-bottom:0.5em;&quot;&gt;Automatic dependency management for code modules and toolpacks.&lt;/li&gt;&lt;li style=&quot;margin-bottom:0.5em;&quot;&gt;Use common web technologies like HTML, CSS, and JavaScript.&lt;/li&gt;&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;The running theme is &quot;modular&quot;.  If we can stay disciplined with the modular approach, we have a very good shot at realizing the full potential of the hybrid online/offline platforms.

I&#39;m really excited about what I&#39;ve done so far on this project, and I can&#39;t wait to see it in action. I&#39;ll be sure to be posting updates as they come along.

&lt;span style=&quot;color: rgb(0, 0, 102);font-size:85%;&quot; &gt;Note: People in the know will wonder why I did not include these:

&lt;a href=&quot;http://www.adobe.com/products/air/&quot;&gt;Adobe Air&lt;/a&gt;
&lt;a href=&quot;http://silverlight.net/&quot;&gt;Microsoft Silverlight&lt;/a&gt;
&lt;a href=&quot;http://www.microsoft.com/azure/default.mspx&quot;&gt;Microsoft Azure&lt;/a&gt;

Drop a note in the comments, and I&#39;ll be happy to explain.&lt;/span&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/1493824109799231920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/09/iphone-firefox-chromium-and-future-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/1493824109799231920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/1493824109799231920'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/09/iphone-firefox-chromium-and-future-of.html' title='iPhone, Firefox, Chromium, and the Future of the Web'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdQ7BE6dDlS3Q6f13s9A8nPpioVUstCIFNPExpxvrC_Q4H6mW4ODPT65J3cN-kOvYwPKc5-jHuboifO7gNxrgaxN_mCMBB8dE_URjkgDAoXMBxPKgurwfwc8pldtoyyigA9LA8jAuVYgE/s72-c/toolbox.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-6477140319954688476</id><published>2009-08-25T16:12:00.002-07:00</published><updated>2009-08-25T17:01:15.087-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer programming"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Start Programming Quick and Dirty</title><content type='html'>&lt;span style=&quot;color: rgb(204, 153, 51);font-size:85%;&quot; &gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Warning: This really is a quick and dirty start to computer programming, and if you know anything about software development, I&#39;m sure you will find plenty of defects in my crude descriptions of computing.  The point here is to communicate the basic understanding to begin learning without submarining a person&#39;s brain with useless detail. If a beginning programmer learns the quick and dirty way, then as their&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;knowledge and interest grows, they can go back and fill in all the little details later.&lt;/span&gt;&lt;/span&gt;

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;When you are writing computer code&lt;/span&gt;&lt;/span&gt;, or even just using a computer, it really helps if you keep in mind the three things that make up all computing devices.

&lt;ol&gt;&lt;li&gt;The processor.&lt;/li&gt;&lt;li&gt;The memory.&lt;/li&gt;&lt;li&gt;The storage.&lt;/li&gt;&lt;/ol&gt;
These are the building blocks of every computer program and the only things we know for sure that all computing devices have in common. An iPhone, a laptop, or a server; Each of these computers has these three components in common.

&lt;span style=&quot;font-weight: bold;&quot;&gt;1. Processor&lt;/span&gt;
The processor is a collection of transistors that can do simple computing operations like evaluating if two bytes are equal, or adding two integers together, etc. A processor fetches values from memory, performs operations on them, and then puts them back into memory.

&lt;span style=&quot;font-weight: bold;&quot;&gt;2. Memory&lt;/span&gt;
System memory is a collection of computer chips that are able to store bits of
information while the power is on. As soon as these memory chips lose power,
the information is lost. Inside each memory chip there are &#39;rows&#39; of data, and
each &#39;row&#39; is addressed with a special addressing number. The processor can
remember where values are stored in memory using these addresses, but as soon
as the power is shut off, it is all gone.

&lt;span style=&quot;font-weight: bold;&quot;&gt;3. Storage&lt;/span&gt;
The system storage can come in two forms.  First is a set of spinning disks called a &#39;disk drive&#39; and the second is a set of computer chips called &#39;solid state&#39;. Most desktop and laptop computers have disk drives, while cell phones and memory sticks use solid state.  Disk drives can be thought of like a record player, but imagine a record player that could play records and write them too.  Solid state storage devices are banks of computer chips that do not lose the information stored in them when they lose power.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;So how does a programmer link these 3 fundamental computing functions together to make a computer program?&lt;/span&gt;&lt;/span&gt;

We can demonstrate this process with a program called Python.  Python is actually a computer programming language, which we will learn more about later. But for now, you should start the Python interpreter in your terminal by simply typing:

&lt;span style=&quot;font-family:courier new;&quot;&gt;python&lt;/span&gt;

and hitting enter.

&lt;span style=&quot;color: rgb(204, 153, 51);font-size:85%;&quot; &gt;(if you do not know what a &#39;terminal&#39; is, please post a comment and I&#39;ll send you some more detailed instructions.  If you type &#39;python&#39; in you terminal and nothing happens, then you probably need to install it.  Some good instructions can be found here: &lt;a href=&quot;http://diveintopython.org/installing_python/index.html&quot;&gt;http://diveintopython.org/installing_python/index.html&lt;/a&gt; )&lt;/span&gt;

You should see something like this on your screen:

&lt;span style=&quot;font-family:courier new;&quot;&gt;Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) &lt;/span&gt; &lt;span style=&quot;font-family:courier new;&quot;&gt;[GCC 4.3.3] on linux2&lt;/span&gt; &lt;span style=&quot;font-family:courier new;&quot;&gt;Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.&lt;/span&gt; &lt;span style=&quot;font-family:courier new;&quot;&gt;
&gt;&gt;&gt; &lt;/span&gt;

The &#39;&gt;&gt;&gt;&#39; is what we will call the Python prompt.

Now enter in this program, hitting enter after you have typed in each line:

&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; myvar = 1&lt;/span&gt;
&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; myOtherVar = 2&lt;/span&gt;
&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; mySum = myvar + myOtherVar&lt;/span&gt;
&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; print myvar&lt;/span&gt;
&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; print myOtherVar&lt;/span&gt;
&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; print mySum&lt;/span&gt;

See what has happened?

First we stored a value, the integer 1, in the computer&#39;s memory.  Remember that each value stored in memory has an address?  Well that address would look something like &#39;f8a9b6&#39; to the computer, which is really hard to remember for humans when we are trying to write a computer program.  So, Python does us a favor and remembers that when we refer to &#39;myvar&#39; we are really referring to the 1 we stored at address &#39;f8a9b6&#39;.


Second we stored another value, this time the integer &#39;2&#39; into memory.

Now, if we were to keep adding values to memory without removing any of them we would eventually fill it up and cause our computer to crash.  So, the Python interpreter also does something else really useful for us; It can tell when we are done with a value and it will remove unused values from memory so that we can go on with our program without having to remember to remove all our values when we&#39;re done with them.

Third, we told Python to add the two values together. However, adding two values together is not much fun unless we store the result somewhere in memory so we can use it again.  What actually happened here is that the Python interpreter remembered the address in memory pointed to by &#39;myvar&#39; and &#39;myOtherVar&#39;, and then sent those addresses to the processor along with the instruction to add them together.  A processor always does exactly as it is told, and so it fetched the values from their addresses in memory, added them together and put the result back into the memory location that Python pointed to with &#39;mySum&#39;.

Last, we used the &#39;print&#39; statement of Python to retrieve each of our values from memory and print them out on the screen.  Statements like &#39;print&#39; are just shortcuts for longer instructions to the processor.  So instead of saying:

&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; send value from memory address at myVar to the graphics card to display&lt;/span&gt;

We can just say:

&lt;span style=&quot;font-family:courier new;&quot;&gt;&gt;&gt;&gt; print myVar&lt;/span&gt;

or instead of saying:

&gt;&gt;&gt; take the value at myInteger and add 1

we can say

&gt;&gt;&gt; myInteger++

This is why computer programmers often refer to the terms &#39;writing code&#39;.  Because, all a programming language really is, is a set of statements or verbs that tell the computer to do something. So, instead of writing out long instructions in plain English, each programming language has a list of codes we can use to save time and space.

So, that is only half of the story on a programming language. The other half is what is called the interpreter or compiler.  We don&#39;t need to get into the specifics on each of these but what we do need to know is that the programming language we are writing must be translated out of the code, and into a language the computer can understand.  Computers don&#39;t understand English, Latin, or even any programming languages for that matter. The only thing that the processor, memory, and storage understand is something called machine-code.  Machine-code is written as a series of 1&#39;s and 0&#39;s like this:

100011 00011 01000 00000 00001 000100

While this is the only thing that a computer understands, it is very hard for humans to read and write, so in the early days of computing some smart folks came up with an answer. They would create an interpreter to translate machine-code into a programming language and vice verse.  Today there are many different kinds of interpreters and compilers, one for each of the many different programming languages. Incidentally, an interpreter or compiler is a computer program written in machine code, but the nice thing about them is that once an interpreter or compiler program is completed by the smart people who write them, the rest of us can use it to write our programs in a language a little easier to understand.

So, with a basic understanding of what is going on, and the right programming language interpreters in hand, we can tackle larger problems, like designing the interface to our program.  There are many ways to do this, but one of the most popular, and the easiest to learn is XML and CSS. We&#39;ll move on to those later. At this point, I would encourage you to continue to learn a little more Python, and this is one of my favorite tutorials:

&lt;a href=&quot;http://diveintopython.org/toc/index.html&quot;&gt;Dive Into Python&lt;/a&gt;

You can skip section 1, but you should thoroughly understand sections 2 and 3.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/6477140319954688476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/08/start-programming-quick-and-dirty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6477140319954688476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6477140319954688476'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/08/start-programming-quick-and-dirty.html' title='Start Programming Quick and Dirty'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-2784068887611206448</id><published>2009-06-15T08:58:00.000-07:00</published><updated>2009-06-15T09:24:36.265-07:00</updated><title type='text'>The Fireworks Project Logo is Done</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf6mY6NneMyPrBph_KdmzKbD1bjP3M2XIQCLOUBWxkiAbaH_8IpX2RZmnbXDY8jZpMSSgTIb7eTfaeN0_7OpflxIm-6G8gOe8xCr73mHyeqiStynD_paA_ZGVwHvLE0WZgvUd3mHAGSc0/s1600-h/fireworks_project_logo.png&quot;&gt;&lt;img style=&quot;margin: 10px 20px 20px 30px; float: left; cursor: pointer; width: 200px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf6mY6NneMyPrBph_KdmzKbD1bjP3M2XIQCLOUBWxkiAbaH_8IpX2RZmnbXDY8jZpMSSgTIb7eTfaeN0_7OpflxIm-6G8gOe8xCr73mHyeqiStynD_paA_ZGVwHvLE0WZgvUd3mHAGSc0/s400/fireworks_project_logo.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5347590198182752994&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
I&#39;m really excited to be done with our logo. It seems silly, but this is a big milestone for the Fireworks project.  We&#39;re an open, online company, and &lt;a href=&quot;http://groups.google.com/group/fireworks-project/web/logo-sketch-summary&quot;&gt;we designed&lt;/a&gt; this logo using only online collaboration tools. Most of the credit is due to &lt;a href=&quot;http://www.martinhipp.com/&quot;&gt;Martin Hipp&lt;/a&gt;, who did the lion share of the graphical design work.

Why is this significant?  Because, if we can learn to design, build, and innovate using online collaboration tools, then we can engage with and share ideas with anyone in the world who has access to an occasional internet connection.  Our talent pool then becomes much larger than just the people who work within the 4 walls of a typical brick and mortar organization.

So, while a logo is not such a big deal, leaning to design and build something online is a big deal.  So what did we learn?

Constant communication is key.  Use twitter, instant chat, and news groups to leave messages and critique to everyone working on the project.  Do this constantly.  Nobody should go more than a day without either responding to an ongoing discussion or starting a new one.  We didn&#39;t do this very well and the project lost momentum whenever we lost contact.

When designing it is also very easy to get caught up in a design contest of sorts.  This should be avoided, because it is an inefficient use of everyone&#39;s time.  Instead of trying to create &quot;knock your socks of&quot; designs right out of the gate, the whole team would be better served if each member worked on creating minimal sketches of their ideas. Each sketch should only have enough detail to simply communicate the idea, and nothing more. A sketch could be on any medium, but for graphical design it is often easiest to use the typical computer graphics tools.

In general, &lt;a href=&quot;http://fireworksfactory.blogspot.com/2009/05/challenge-of-open-design.html&quot;&gt;the guidelines I outlined in a previous post&lt;/a&gt; still hold true.  Now, with our first project under our belt, I&#39;m really excited to keep moving and learn how to improve our online workflow.  Our next project is our website, and you can follow along &lt;a href=&quot;http://groups.google.com/group/fireworks-project/browse_thread/thread/ca935539ee1ad095/bc4fa1844aec14bb#bc4fa1844aec14bb&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/2784068887611206448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/06/fireworks-project-logo-is-done.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/2784068887611206448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/2784068887611206448'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/06/fireworks-project-logo-is-done.html' title='The Fireworks Project Logo is Done'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf6mY6NneMyPrBph_KdmzKbD1bjP3M2XIQCLOUBWxkiAbaH_8IpX2RZmnbXDY8jZpMSSgTIb7eTfaeN0_7OpflxIm-6G8gOe8xCr73mHyeqiStynD_paA_ZGVwHvLE0WZgvUd3mHAGSc0/s72-c/fireworks_project_logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7358665325649376024</id><published>2009-06-09T16:27:00.001-07:00</published><updated>2009-06-09T17:20:50.448-07:00</updated><title type='text'>The Fireworks Project Website Design</title><content type='html'>At the &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;Fireworks Project&lt;/a&gt;, we are in the midst of designing our home page. We are an open, member managed company, so we are working with a team from around the globe without any face to face collaboration time. There are some challenges, but it is going to be interesting to see what comes out of it, and a big sense of satisfaction in having done it.

So at the time of this post we are in the layout and navigational wire frame phase.  We have some constraints, and a couple of wire frames that we are currently working on.  Remember, that this phase of the design process is focused on layout and navigational elements, so although suggestions for colours, logo, and other graphical elements is welcome, what we really need to hear is your thoughts on the layout. So let&#39;s get down to business and get some critique.

&lt;span style=&quot;font-weight: bold;&quot;&gt;Concept A is available &lt;/span&gt;&lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://www.kixx.name/fireworks/&quot;&gt;here.&lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Concept B is available &lt;/span&gt;&lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://www.kixx.name/fireworks2/&quot;&gt;here&lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;.&lt;/span&gt;

&lt;span style=&quot;font-size:130%;&quot;&gt;1. The first bit we need some comments on is the content switching mechanism we are using.&lt;/span&gt;
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggOsXXNn7jqz_hYLjyo94FBBpj7xbg9zYoIOcpyi23ki5NEaiWHLwDiDuKvXJdlNfDtjSFtBLV-G37YT1g4GQOyovRu-Z-tEBnUn8wsh2TAgjZPOx6skHC1NPiS7jlE6FpyPkk_qytxUQ/s1600-h/content-switching.png&quot;&gt;&lt;img style=&quot;margin: 20px; float: left; cursor: pointer; width: 129px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggOsXXNn7jqz_hYLjyo94FBBpj7xbg9zYoIOcpyi23ki5NEaiWHLwDiDuKvXJdlNfDtjSFtBLV-G37YT1g4GQOyovRu-Z-tEBnUn8wsh2TAgjZPOx6skHC1NPiS7jlE6FpyPkk_qytxUQ/s400/content-switching.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5345482089145965682&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;The problem:&lt;/span&gt;
Our home website needs to reach late adopter users of our software, whom we target. (They are not on Facebook or Twitter and often enter URL&#39;s into the Google search bar). The site also needs to reach technically proficient graphical designers and user experience designers. And, to make things even more difficult, we also need to reach an open source community of developers.  Each of these knowledge domains has a unique language jargon used within the domain, and cannot be mixed with others... A content strategists nightmare.

&lt;span style=&quot;font-weight: bold;&quot;&gt;The solution:&lt;/span&gt;
Available in Concept A and B are content switching tabs on the left side of the relevant content area which you can see in this screen shot on the left.  JavaScript code smoothly transitions the content from one knowledge domain language to another.

&lt;span style=&quot;font-weight: bold;&quot;&gt;Pitfalls:&lt;/span&gt;
Accessibility issues will have to be worked out for users that have to use screen readers or are unable to use a mouse.

&lt;span style=&quot;font-weight: bold;&quot;&gt;Awesomeness:&lt;/span&gt;
We don&#39;t need to have different websites, which creates brand confusion, and we don&#39;t have to have different URL&#39;s for different content types.


&lt;span style=&quot;font-size:130%;&quot;&gt;2. Our second sticky bit is the layout of the navigational elements.&lt;/span&gt;

&lt;span style=&quot;font-weight: bold;&quot;&gt;The problem:&lt;/span&gt;
As a company focused on user experience, we want more than 1 word hints on our navigation buttons indicating where they will take you and what you will find when you get there. This means our buttons are going to be larger than normal to fit the extra text.

&lt;span style=&quot;font-weight: bold;&quot;&gt;The Solution:&lt;/span&gt;
Well, we don&#39;t have a good solution yet... So, a little help would be appreciated.  &lt;a href=&quot;http://www.kixx.name/fireworks/&quot;&gt;Concept A&lt;/a&gt; lays them out horizontally, while &lt;a href=&quot;http://www.kixx.name/fireworks2/&quot;&gt;concept B&lt;/a&gt; lays them out vertically. Personally I like the look of horizontal navigation, but in our case the typeface within them would need to be quite small to fit 5 large buttons across the top of the screen along side a logo header.  While the vertical buttons in concept B provides plenty of space for large text, they complicate the layout of the rest of the page by hanging down so far.

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizqTfBHmgWQgvdnz1lNvpcA0Yr2qK4kAWJP1wnRsQEM2woM6EcVgIE3mn9Zs5t3gK1Ii9fDBH7w4PQXr4jWB5xsDke-C-8SYEsrEp3h4dSoAJgzrnqkOfy6iT23Mn4kbDZLaT5JtYmcpw/s1600-h/horizontal-nav.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 255px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizqTfBHmgWQgvdnz1lNvpcA0Yr2qK4kAWJP1wnRsQEM2woM6EcVgIE3mn9Zs5t3gK1Ii9fDBH7w4PQXr4jWB5xsDke-C-8SYEsrEp3h4dSoAJgzrnqkOfy6iT23Mn4kbDZLaT5JtYmcpw/s400/horizontal-nav.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5345484267142845298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEFcFddF29EfTiIERMg3ICAPrIDJdtQXyi6OsT5I_nTskkl7Yxnsv6VkFslrO5u7qRlCdcgQ8uLdMqvzCJVyeifEg2OHpyPbIZwbytFyS9RMFT4C3zktsIf8qpV-BieCN1GC-30HHOcGA/s1600-h/vertical-nav.png&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 282px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEFcFddF29EfTiIERMg3ICAPrIDJdtQXyi6OsT5I_nTskkl7Yxnsv6VkFslrO5u7qRlCdcgQ8uLdMqvzCJVyeifEg2OHpyPbIZwbytFyS9RMFT4C3zktsIf8qpV-BieCN1GC-30HHOcGA/s400/vertical-nav.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5345484578845919346&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;


&lt;div style=&quot;clear: both;&quot;&gt;
So, help us out and lend your expertise in the comments here.  And while you&#39;re at it, if you are not already a member of the &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;Fireworks Project&lt;/a&gt;, then &lt;a href=&quot;http://groups.google.com/group/fireworks-project&quot;&gt;check it out&lt;/a&gt;.
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7358665325649376024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/06/fireworks-project-website-design.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7358665325649376024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7358665325649376024'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/06/fireworks-project-website-design.html' title='The Fireworks Project Website Design'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggOsXXNn7jqz_hYLjyo94FBBpj7xbg9zYoIOcpyi23ki5NEaiWHLwDiDuKvXJdlNfDtjSFtBLV-G37YT1g4GQOyovRu-Z-tEBnUn8wsh2TAgjZPOx6skHC1NPiS7jlE6FpyPkk_qytxUQ/s72-c/content-switching.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-3647989035011141194</id><published>2009-06-01T16:53:00.000-07:00</published><updated>2009-06-01T17:26:28.738-07:00</updated><title type='text'>Open Cloud Manifesto</title><content type='html'>I hate the term &#39;cloud computing&#39;.  The term is constantly redefined by firms slapping the &#39;cloud computing&#39; label on all their products to encourage a sale.  What&#39;s more, it is mostly just a bunch of ideas that have been around for a while, and now the technology industry seems ready to embrace it as a way to push more product.

But, we have to admit that, love it or hate it, cloud computing is going to define the future of our economy, our social structure, and our culture. At the &lt;a href=&quot;http://groups.google.com/group/cloud-computing-use-cases&quot;&gt;Fireworks Project&lt;/a&gt; we are betting all our money on one horse named cloud computing.  It is a big leap of faith, but then you don&#39;t cross a chasm by taking little steps. But, there are a few things that need to get fixed first.

So, the trick to making all this work is to, first, get the IT industry to make up its mind about what cloud computing actually means. The second problem, which is just as hairy as the first, is to decide on the standards that will actually make the whole notion tangible.  There are many well established standards that can simply be applied &quot;as is&quot;, but there are a couple of holes that have yet to be filled in, despite the valiant efforts of &lt;a href=&quot;http://wave.google.com/help/wave/about.html&quot;&gt;Google&lt;/a&gt; and &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/#structured&quot;&gt;WHATWG&lt;/a&gt;.

The technology industry can benefit greatly from a multilateral agreement, and avoiding an all out nuclear war of proprietary protocols.  I&#39;m advocating the &lt;a href=&quot;http://opencloudmanifesto.org/&quot;&gt;Open Cloud Manifesto&lt;/a&gt;, which has set up a &lt;a href=&quot;http://groups.google.com/group/cloud-computing-use-cases&quot;&gt;discussion forum to explore cloud computing&lt;/a&gt;, of which the &lt;a href=&quot;http://www.fireworksproject.com&quot;&gt;Fireworks Project&lt;/a&gt; intends to be a part of.

&lt;a href=&quot;http://radar.oreilly.com/2008/10/web-20-and-cloud-computing.html&quot;&gt;Also, some interesting reading material on cloud computing by Time O&#39;Reilly if you have not read it already&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/3647989035011141194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/06/open-cloud-manifesto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/3647989035011141194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/3647989035011141194'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/06/open-cloud-manifesto.html' title='Open Cloud Manifesto'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7761814448402333674</id><published>2009-05-31T04:37:00.000-07:00</published><updated>2009-05-31T06:23:43.141-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="corporate structure"/><category scheme="http://www.blogger.com/atom/ns#" term="General Motors"/><category scheme="http://www.blogger.com/atom/ns#" term="innovation"/><title type='text'>We Need Innovation in Corporate Structure</title><content type='html'>This morning I came across an article called &lt;a href=&quot;http://www.freep.com/article/20090531/COL33/905310442/Michigan+workers+must+now+build+a+new+mind-set&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Michigan Workers Must Build a New Mind-set&lt;/span&gt;&lt;/a&gt;. I could not agree more.  In fact we all need to build a new mind-set to meet the new economy that just pulled into the train station. An icon of the way things are &quot;supposed&quot; to be, is now bankrupt.  General Motors was more than a company.  It was a belief system.  People believed they could get a public education, join a big corporation, maybe move up the ladder a little bit, and retire comfortably.  To quote:

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;It&#39;s hard to say that the folks hurt most by GM&#39;s decline -- the thousands who have lost their jobs and the thousands more who will -- did anything wrong. They bought into a system that rewarded work with &quot;golden handcuffs.&#39;&quot;&lt;/span&gt;&lt;/span&gt;

Jim Collins, of &lt;a style=&quot;font-style: italic; font-weight: bold;&quot; href=&quot;http://books.google.com/books?id=2eaetGtO9HYC&amp;amp;dq=good+to+great&quot;&gt;Good to Great&lt;/a&gt; fame, had this to say in a &lt;a href=&quot;http://www.inc.com/magazine/20090401/in-times-like-these-you-get-a-chance_pagen_2.html&quot;&gt;recent article in Inc Magazine&lt;/a&gt;.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;What&#39;s the first thing you learn about investing? Never put all your eggs in one basket. [When you join a big firm] You&#39;ve just put all your eggs in one basket that is held by somebody else. As an entrepreneur, you know what the risks are. You see them. You understand them. You manage them. If you join someone else&#39;s company, you may not know those risks, and not because they don&#39;t exist. You just can&#39;t see them, and so you can&#39;t manage them. That&#39;s a much more exposed position.&quot;&lt;/span&gt;&lt;/span&gt;

We are moving uphill, trying to close the gap between our expectations of what the World will offer us, and the reality of the changes we are facing. Innovation in corporate structuring can help us get over this hump and into the future of work life.  Look at what the the &lt;a href=&quot;http://en.wikipedia.org/wiki/Copy_left&quot;&gt;&quot;copy left&quot;&lt;/a&gt; movement has done for software with the &lt;a href=&quot;http://www.gnu.org/copyleft/gpl.html&quot;&gt;General Public License&lt;/a&gt; and creative materials with the &lt;a href=&quot;http://creativecommons.org/license/&quot;&gt;Creative Commons&lt;/a&gt;.

The move is already being made by companies like &lt;a href=&quot;http://www.mozilla.com/en-US/&quot;&gt;Mozilla&lt;/a&gt; and &lt;a href=&quot;http://www.srcholdings.com/&quot;&gt;SRC Holdings&lt;/a&gt;, but we can go even further.  With the Fireworks Project we are committed to a member managed organizational structure, and we&#39;re doing this with the help of a &lt;a href=&quot;http://www.cfo.com/article.cfm/11654091&quot;&gt;new statute in the US state of Vermont called a &#39;virtual company&#39;&lt;/a&gt;.  It is a piece of legislation that is just the beginning of the changes that we need to see in corporate structuring while putting General Motors behind us.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7761814448402333674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/we-need-innovation-in-corporate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7761814448402333674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7761814448402333674'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/we-need-innovation-in-corporate.html' title='We Need Innovation in Corporate Structure'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-5580370045087379941</id><published>2009-05-29T03:52:00.000-07:00</published><updated>2009-05-29T04:06:52.925-07:00</updated><title type='text'>Designing Life Experience</title><content type='html'>The main purpose of our new company, the Fireworks Project, is to find a better way to work and live.  In our current capacity, we build software, focusing on improving the user experience design process.  However, what we are really trying to do is design a better work experience.  I believe the world is at a technological and cultural cross roads that is going to allow us to improve our quality of life with a greater degree of success than we ever have before.

The tool we&#39;re using to do this is an &lt;a href=&quot;http://groups.google.com/group/fireworks-project/web/operating-agreement-explained&quot;&gt;open, member managed organizational structure&lt;/a&gt;.

I came across &lt;a href=&quot;http://asummeroffun.com/&quot;&gt;&quot;A Summer of Fun&quot; manifesto&lt;/a&gt; the other day and I hope the Fireworks Project can live up to that.  If you have not checked out this little tid bit, then you should go take a peek at it now.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/5580370045087379941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/main-purpose-of-our-new-company.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/5580370045087379941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/5580370045087379941'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/main-purpose-of-our-new-company.html' title='Designing Life Experience'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-6232048919493815712</id><published>2009-05-19T12:42:00.000-07:00</published><updated>2009-05-19T12:58:59.346-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="innovation Internet &quot;World Wide Web&quot;"/><title type='text'>Long live the Internet!</title><content type='html'>I just had an interesting twitter conversation with &lt;a href=&quot;http://twitter.com/pfinette&quot;&gt;@pfinette&lt;/a&gt; who had recently done a presentation for students at the Royal College of Art in the UK he called &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;The browser is the new black&quot;&lt;/span&gt;. He discovered that there are some students there who are not overly excited about the World Wide Web as a place to innovate.  I must say, I agree with that sentiment.  I agree so much, I&#39;ve started a &lt;a href=&quot;http://www.fireworksproject.com&quot;&gt;whole company&lt;/a&gt; based on the idea that the World Wide Web has been extended as far as it can go.

The World Wide Web is a system of linked documents, whereas the Internet is a network if data sharing. The Internet is the platform on which the WWW was built, and will continue to be the platform for additional innovation.  That is something to get excited about.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;The WWW is not dead, but there is certainly room for another great innovation along side it on the Internet.&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/6232048919493815712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/long-live-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6232048919493815712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6232048919493815712'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/long-live-internet.html' title='Long live the Internet!'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7654187267780522072</id><published>2009-05-13T13:19:00.000-07:00</published><updated>2009-05-14T05:14:23.509-07:00</updated><title type='text'>Customer Service is User Experience</title><content type='html'>A political campaign, a not-for-profit, a business. They all have something in common: A &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;movement&lt;/span&gt;.

Does the political campaign have volunteers or &lt;span style=&quot;font-weight: bold;&quot;&gt;followers&lt;/span&gt;?
Does the not-for-profit have donors or community &lt;span style=&quot;font-weight: bold;&quot;&gt;members&lt;/span&gt;?
Does the business have customers or &lt;span style=&quot;font-weight: bold;&quot;&gt;fans&lt;/span&gt;?

&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;In the future, change will be made by movements, not by pushing products or ideas.&lt;/span&gt;

How does that change customer service?  Maybe customer service should be reinvented within the &quot;user experience design&quot; ubrella.  To build a strong following, a large membership, or devoted fans we need to deliver an experience.

&lt;span style=&quot;font-size:130%;&quot;&gt;In the economy of the future, &lt;span style=&quot;font-weight: bold;&quot;&gt;experience = value&lt;/span&gt;.&lt;/span&gt;

There are too many organizations out there that are going to fail simply because they do not recognize the move from marketing and customer service to user experience design.

Can you remember the last time you told a friend about a good product?  How about the last time you told a friend about a great &lt;span style=&quot;font-style: italic;&quot;&gt;experience&lt;/span&gt; with an organization?  See the difference?

&lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://www.gentlegiant.com/index.php&quot;&gt;Gentle Giant Moving Company&lt;/a&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; gets it.&lt;/span&gt;

&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;a href=&quot;http://www.zappos.com/&quot;&gt;Zappos&lt;/a&gt; gets it.&lt;/span&gt;
&quot;Zappos does not have specific policies for dealing with each customer service situation. He (the CEO, Tony Hsieh) claims that the company&#39;s culture allows it to do extraordinary things. I saw him make this point earlier this year in New York City, when he told a story about a woman whose husband died in a car accident after she had ordered boots for him from Zappos. The day after she called to ask for help with the return, she received a flower delivery. The call center rep had ordered the flowers without checking with a supervisor and billed them to the company. &quot;At the funeral, the widow told her friends and family about the experience,&quot; Hsieh said, his voice cracking and his eyes tearing up ever so slightly. &quot;Not only was she a customer for life, but so were those 30 or 40 people at the funeral.&quot;&quot;
&lt;a href=&quot;http://www.inc.com/magazine/20090501/the-zappos-way-of-managing.html&quot;&gt;Inc Magazine article&lt;/a&gt;.


&lt;span style=&quot;font-weight: bold;&quot;&gt;Seth Godin gets it&lt;/span&gt;.
&lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2009/05/mechanics-vs-intent.html&quot;&gt;Blog Post&lt;/a&gt;
&lt;a href=&quot;http://www.ted.com/index.php/talks/seth_godin_on_the_tribes_we_lead.html&quot;&gt;Video&lt;/a&gt;

&lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://support.microsoft.com/kb/295539&quot;&gt;Microsoft does not get it.&lt;/a&gt;

The &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;Fireworks Project&lt;/a&gt; will be built to deliver a great experience to everyone that touches it.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7654187267780522072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/political-campaign-not-for-profit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7654187267780522072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7654187267780522072'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/political-campaign-not-for-profit.html' title='Customer Service is User Experience'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-4785424867047905515</id><published>2009-05-07T07:11:00.000-07:00</published><updated>2009-05-07T08:48:43.397-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="design open"/><title type='text'>The Challenge of Open Design</title><content type='html'>Open design is getting a bunch of people together, often without any face to face contact, and designing something that everyone in the World will love. This is hard to do with a closed design process, and even harder to do with an open design process.

So why do it? I believe, as do many other people, that open design holds far more potential than closed design because of the larger talent pool that can take part in the process. The problem is that this is a young discipline, and there is still a lot we don&#39;t know about it. Because of it&#39;s immature status, open design often ends in failure, and many of the participants concede that it cannot work.

But, open design can survive and thrive if we are persistent and continue to document the lessons of our failures as well as success.

So, to kick off design within the &lt;a href=&quot;http://www.fireworksproject.com&quot;&gt;Fireworks Project&lt;/a&gt;, I thought I would start by outlining a theory of how the open design process might work, using another &lt;a href=&quot;http://www.azarask.in/blog/post/open-design-four-lessons/&quot;&gt;blog post by Aza Raskin&lt;/a&gt; as a jumping off point. Aza is the lead on user experience with &lt;a href=&quot;http://labs.mozilla.com/&quot;&gt;Mozilla Labs&lt;/a&gt;, among many many other things.  One of the latest projects he is working on is &lt;a href=&quot;http://ubiquity.mozilla.com/&quot;&gt;Ubiquity&lt;/a&gt;, which used an &lt;a href=&quot;http://www.azarask.in/blog/post/new-ubiquity-logo-semi-final-round/&quot;&gt;open design process to create the latest logo&lt;/a&gt;. Aza was gracious enough to document the lessons they learned from the process, giving us a leg up to begin our own experimentation.

With the &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;Fireworks Project&lt;/a&gt;, we also have the perfect opportunity to try out open design with our own &lt;a href=&quot;http://groups.google.com/group/fireworks-project/browse_thread/thread/9435995d0f2e071f#&quot;&gt;logo creation process&lt;/a&gt;.

The objective is to create a great logo, but also to reach a &lt;a href=&quot;http://noisebetweenstations.com/personal/weblogs/?page_id=1688&quot;&gt;state of design thinking through the process of design&lt;/a&gt;.

This is my vision of the process:

&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Focus&lt;/span&gt;
What is the design objective and &lt;a href=&quot;http://www.wired.com/culture/design/magazine/17-03/dp_intro&quot;&gt;what are the constraints&lt;/a&gt;? Identifying what the project is not rather than what it is can be a helpful exercise at this point. A clear focus for the project will provide a visible rubric for judging our work as we move through the design process.

&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Lead&lt;/span&gt;
Designate a leader for the project that will facilitate discussion, incorporate feedback, and keep the iterations moving. A good leader will ask focused, concrete questions that get focused, concrete feedback.

&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Iterate&lt;/span&gt;
The design process will need to iterate many times to get a good result in the end.  Each iteration is a three step process:

1. Expand the idea into as many corners of our creative minds as we can. Open design projects will be particularly good at that.

2. Revise and &quot;sketch&quot; out most of the ideas. Sketch is defined in this context as anything that acts as an aide to our thought processes, not necessarily the common pencil and paper.

3. Narrow the body of work with a structured critique process. This step relies heavily on the Focus part of the design. What are we trying to achieve, what are our constraints, and what are we not trying to do?

We need to plan for many iterations and accept that the process will take some time. We cannot cut the process off prematurely because we become impatient.

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Communicate&lt;/span&gt; &lt;/span&gt;Effective communication is constant communication. Use every tool available. Blog about ideas, use Twitter, instant chat, and news groups.

&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;Wait&lt;/span&gt;
Ideas need time to sink in, and inspiration never seems to strike whenever we snap our fingers. Leave the project behind, move on with life, and then get back to it with a fresh mind for the next iteration.

I tried to sum this theory up with a diagram inspired by &lt;a href=&quot;http://www.amazon.com/gp/product/0123740371&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Sketching User Experiences&lt;/span&gt;&lt;/a&gt;.

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5nhiLUog2HXzqp7sPMu2EQMIak8Bq7mFG4pOzU40R1d2Q8nvLGWA7AtrkKYSZxJs7ZRw6rjS4w0PpxduHregQ6B55QxPzqwYT8LPo-v1yOmz3yNadxAOfKCfMCfSLdYhkACCLZHMQ4w0/s1600-h/designprocess.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5nhiLUog2HXzqp7sPMu2EQMIak8Bq7mFG4pOzU40R1d2Q8nvLGWA7AtrkKYSZxJs7ZRw6rjS4w0PpxduHregQ6B55QxPzqwYT8LPo-v1yOmz3yNadxAOfKCfMCfSLdYhkACCLZHMQ4w0/s400/designprocess.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5333105769645260578&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;Concepts are fed into the process on the left, and emerge in a refined state on the right.  Each vertical bar in the diagram represents an iteration of the design process. This diagram has 5 iterations, but there could be more or less, depending on what it takes to reach the desired outcome outlined in the Focus.  Also, some iterations explore additional possibilities while others refine ideas toward the Focus.  This is represented by the black lines that end in a point on the right.


&lt;a href=&quot;http://groups.google.com/group/fireworks-project/browse_thread/thread/9435995d0f2e071f#&quot;&gt;Follow along to see how well we do.&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/4785424867047905515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/challenge-of-open-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/4785424867047905515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/4785424867047905515'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/05/challenge-of-open-design.html' title='The Challenge of Open Design'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5nhiLUog2HXzqp7sPMu2EQMIak8Bq7mFG4pOzU40R1d2Q8nvLGWA7AtrkKYSZxJs7ZRw6rjS4w0PpxduHregQ6B55QxPzqwYT8LPo-v1yOmz3yNadxAOfKCfMCfSLdYhkACCLZHMQ4w0/s72-c/designprocess.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7521152534785010881</id><published>2009-04-10T05:40:00.000-07:00</published><updated>2009-04-10T06:09:58.162-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chocolate factory"/><category scheme="http://www.blogger.com/atom/ns#" term="open source design"/><category scheme="http://www.blogger.com/atom/ns#" term="open source innovation"/><category scheme="http://www.blogger.com/atom/ns#" term="voting"/><title type='text'>A More Thoughtful Voting Tool</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7eJTD7zjsmakmvMFd4kTkBOixFRdPLpaG4PljxBSC9gyOzvSuoVM6kTo_D6lsYMd9-0naKOukHJG5FWDmV26jDpiBFA_3uUw_SjdJxjvQmBL3rjtRFWeGgl_cleL6iEMTTbLj9Yc3oK0/s1600-h/voting_mockup.png&quot;&gt;The &lt;/a&gt;&lt;a href=&quot;https://wiki.mozilla.org/Labs/Chocolate_Factory&quot;&gt;Chocolate Factory project&lt;/a&gt; out of &lt;a href=&quot;https://labs.mozilla.com/&quot;&gt;Mozilla Labs&lt;/a&gt; has really captured my imagination lately.  Open source design in software is &lt;a href=&quot;http://www.fireworksproject.com/&quot;&gt;obviously something I&#39;m really passionate about&lt;/a&gt;, and something that has not been done very successfully yet. The Chocolate Factory is a bold experiment to bring some high level thinking in open source design down to earth. And that is really exciting!

One of the most important tools within this project will be the voting or rating system used to collaboratively advance the best projects through a development cycle. Because of the importance of this tool, and the lack of any good implementation examples out in the real world, it has been a little tricky to get right.

Yesterday, &lt;a href=&quot;http://www.finette.co.uk/&quot;&gt;Pascal Finette&lt;/a&gt;, a lead on Chocolate Factory, came accross a &lt;a href=&quot;http://www.finette.co.uk/blog/index.php/2009/04/on-rating-mechanisms/&quot;&gt;new idea for voting&lt;/a&gt; that keeps it simple, gives good user feedback via the UI, and generates some meaningful data for number crunching on the back end.

I really liked it, but this morning I had another thought that extends it. There is really nothing very different about it, except by adding a chart as a backdrop, the UI presents a canvas for more meaningful feadback to the user.

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7eJTD7zjsmakmvMFd4kTkBOixFRdPLpaG4PljxBSC9gyOzvSuoVM6kTo_D6lsYMd9-0naKOukHJG5FWDmV26jDpiBFA_3uUw_SjdJxjvQmBL3rjtRFWeGgl_cleL6iEMTTbLj9Yc3oK0/s1600-h/voting_mockup.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 289px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7eJTD7zjsmakmvMFd4kTkBOixFRdPLpaG4PljxBSC9gyOzvSuoVM6kTo_D6lsYMd9-0naKOukHJG5FWDmV26jDpiBFA_3uUw_SjdJxjvQmBL3rjtRFWeGgl_cleL6iEMTTbLj9Yc3oK0/s320/voting_mockup.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5323048715242602450&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
There would be a slider that followed the blue line when dragged by a mouse (or arrows for people like me who do not use a mouse).  A horizontal or vertical drag would result in the same action of the slider along the blue line.  The chart could be labeled with numbers on the x and y axis, and the stripes in the chart could represent various &quot;human interpretations&quot; of the project like &quot;very incomplete&quot;, &quot;confusing&quot;, &quot;has potential&quot;, &quot;will take over the world&quot;.

Maybe that will all be too complicated in the end, but even without it, I kinda like the chart.  It helps me understand that as I move the slider, my extreme opinions will carry more wieght than my more moderate ones.

The whole point is to avoid pidgen holing the user, and the data, into a system like this:

&lt;a href=&quot;http://www.babynamewizard.com/namipedia/boy/kris&quot;&gt;http://www.babynamewizard.com/namipedia/boy/kris&lt;/a&gt;

( Feel free to push all the sliders on that page all the way to the right )</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7521152534785010881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/04/more-thoughtful-voting-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7521152534785010881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7521152534785010881'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/04/more-thoughtful-voting-tool.html' title='A More Thoughtful Voting Tool'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7eJTD7zjsmakmvMFd4kTkBOixFRdPLpaG4PljxBSC9gyOzvSuoVM6kTo_D6lsYMd9-0naKOukHJG5FWDmV26jDpiBFA_3uUw_SjdJxjvQmBL3rjtRFWeGgl_cleL6iEMTTbLj9Yc3oK0/s72-c/voting_mockup.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7700904544675941189</id><published>2009-03-31T18:10:00.000-07:00</published><updated>2009-04-01T07:22:51.753-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="viruses"/><title type='text'>The Fear Factory</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZetwv4v5udbi9tG_RUAdWUz48Tlu89yXxaseu8yZzfdbYqmUaC6gu-AcO71VXIjZ9NlCvF-3_hFmqD2njfWCIrON-W1M9zDfOe5CC-XF5btCVsjOXbanORErjF_ARSjCff72w9oabM3w/s1600-h/cbs_60mins.png&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 136px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZetwv4v5udbi9tG_RUAdWUz48Tlu89yXxaseu8yZzfdbYqmUaC6gu-AcO71VXIjZ9NlCvF-3_hFmqD2njfWCIrON-W1M9zDfOe5CC-XF5btCVsjOXbanORErjF_ARSjCff72w9oabM3w/s320/cbs_60mins.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5319530033507755666&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
CBS &lt;span style=&quot;font-style: italic;&quot;&gt;sixty minutes&lt;/span&gt; really put me in a bad way sunday night.  They ran a &lt;a href=&quot;http://www.cbsnews.com/stories/2009/03/27/60minutes/main4897053.shtml&quot;&gt;story on the &quot;infected internet&quot;&lt;/a&gt; that turned out to be a 15 minute commercial for anti virus software.  The president of Symantec got most of the airtime.  You can catch another blog post on it that pretty much &lt;a href=&quot;http://blogs.kansascity.com/tvbarn/2009/03/60-minutes-freaks-out-over-conficker-wheres-john-hodgman-when-you-need-him.html&quot;&gt;sums up my feelings&lt;/a&gt;.

Nowhere was it mentioned that the star of the show, the conficker virus, can only infect Windows computers.  You can come up with any number of reasons why that might be, depending on how much you like a good conspiracy theory.

What do we do? Laugh? Cry? I don&#39;t know, but I&#39;m just mad.  I&#39;m mad that technogists are not responsible enough to tell the truth rather than base their products on lies. I&#39;m mad Microsoft does not bother to re build their operating system to quelch most of the problems.  And I&#39;m especially mad that web users will just accept this fear mongering as truth.  But really, what choice do they have?

I&#39;m not sure how to react to the growing fear factory motivated by greed, but for now we&#39;re going to continue to focus on a great user experience, and hope that doing good begets good.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7700904544675941189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/03/fear-factory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7700904544675941189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7700904544675941189'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/03/fear-factory.html' title='The Fear Factory'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZetwv4v5udbi9tG_RUAdWUz48Tlu89yXxaseu8yZzfdbYqmUaC6gu-AcO71VXIjZ9NlCvF-3_hFmqD2njfWCIrON-W1M9zDfOe5CC-XF5btCVsjOXbanORErjF_ARSjCff72w9oabM3w/s72-c/cbs_60mins.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-7492583002486293694</id><published>2009-03-30T14:00:00.000-07:00</published><updated>2009-04-01T07:25:08.751-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="car companies"/><category scheme="http://www.blogger.com/atom/ns#" term="ideas"/><category scheme="http://www.blogger.com/atom/ns#" term="organizational"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Flying Cars</title><content type='html'>Why is it that we are so fixated on marginal improvements in our lives.  I came across a &lt;a href=&quot;http://www.theregister.co.uk/2009/03/18/transition_flies/&quot;&gt;story in the Register&lt;/a&gt; this past week that reminded me of the tunnel vision we often have of the future.  The story is a tongue in cheek bit on a &quot;real&quot; flying car.  It&#39;s comforting to know that there are other people who find the humor in this.  A flying car is only a marginal improvement to the car, but is fundamentally the same solution to the transportation problem.

One of my favorite quotes of all time is

&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; font-family: times new roman;&quot;&gt;&quot;If I had built what everyone wanted, I would have built a better horse.&quot;&lt;/span&gt;&lt;/span&gt;

from Henry Ford.  The truth is that we have the ability to think outside the margins as children, but sadly, it gets &quot;educated&quot; out of us, and we grow up to be reasonable adults.  I wish everyone would be a little less reasonable.

General Motors, Ford, and Chrysler are like a characters in a high school horror movie who step through a broken door.  You know there&#39;s a guy in there with chainsaw, but no matter how much you scream at them to stop, they keep going.  Not even a flying car is going to save them.  Not even an electric car for that matter.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/7492583002486293694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/03/flying-cars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7492583002486293694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/7492583002486293694'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/03/flying-cars.html' title='Flying Cars'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-6618941944631860342</id><published>2009-03-01T17:13:00.000-08:00</published><updated>2009-04-01T07:23:41.990-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="organizational"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Don&#39;t forget simplicity.</title><content type='html'>We hear it so often in the small business and entrepreneurial world, that it has started to lose value.  Yes, small businesses and entrepreneurs have an advantage over larger competitors because of our ability to remain nimble and move quickly. Yes, we all hope to capitalize on that advantage.

I just returned from a &lt;a href=&quot;http://barcamp.org/ProductCampBoston&quot;&gt;great gathering and open discussion&lt;/a&gt; on ideas and best practices in product management in Boston over the past weekend.  I got the chance to hear stories and learn from the practices of product managers in large organizations, small organiziations, and start ups.

In particular, I noticed the complexity of effectively managing a product from within a large organization.  Now, I have never worked for a very large organization, but I can only assume a level of bureaucracy needed to manage a large number of people as being neccessary, like &lt;a href=&quot;http://www.brainshark.com/brainshark/brainshark.net/portal/title.aspx?pid=451824025&quot;&gt;this example.&lt;/a&gt;
&lt;span style=&quot;display: block;&quot; id=&quot;formatbar_Buttons&quot;&gt;&lt;span class=&quot;on down&quot; style=&quot;display: block;&quot; id=&quot;formatbar_CreateLink&quot; title=&quot;Link&quot; onmouseover=&quot;ButtonHoverOn(this);&quot; onmouseout=&quot;ButtonHoverOff(this);&quot; onmouseup=&quot;&quot; onmousedown=&quot;CheckFormatting(event);FormatbarButton(&#39;richeditorframe&#39;, this, 8);ButtonMouseDown(this);&quot;&gt;&lt;img src=&quot;img/blank.gif&quot; alt=&quot;Link&quot; class=&quot;gl_link&quot; border=&quot;0&quot; /&gt;&lt;/span&gt;&lt;/span&gt;
Unfortunately, I also spoke with a lot of people working in small organizations or startups that had intoroduced some very complex methods of product management into their organizations.  This is too bad, because by doing this we lose one of our strongest characteristics.

While I never promote ignorance, a certain level of nievity can&#39;t hurt in a small organization either.  While I&#39;m interested in seeing how large production teams manage their products, I can&#39;t imagine implementing their methods or best practices into a startup.  Nor can I understand how a person would want to introduce such complexity into a small organization abeit for their own job security.
&lt;span style=&quot;font-family: times new roman;font-size:180%;&quot; &gt;
&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-family: times new roman;font-size:180%;&quot; &gt;&quot;Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.&quot;&lt;/span&gt;
&lt;span style=&quot;font-style: italic;&quot;&gt;--&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-size:100%;&quot; &gt; &lt;/span&gt;&lt;span style=&quot;font-style: italic;font-size:100%;&quot; &gt;Antoine de Saint-Exupery
&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;In &lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;my&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; view we can start a company that is so complex that it must be slow moving, or &lt;span style=&quot;font-weight: bold;&quot;&gt;so simple that it is not possible to be slow.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-size:100%;&quot; &gt;
&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;
As we work on our organization (and it is always a work in progress), we need make the reduction of complexity our top priority for our business and for our customers.&lt;/span&gt;&lt;span style=&quot;font-style: italic;font-size:100%;&quot; &gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/6618941944631860342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/03/dont-forget-simplicity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6618941944631860342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/6618941944631860342'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/03/dont-forget-simplicity.html' title='Don&#39;t forget simplicity.'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6167476510374402746.post-417222293286153789</id><published>2009-02-26T18:48:00.000-08:00</published><updated>2009-04-01T07:24:03.247-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="communicating"/><category scheme="http://www.blogger.com/atom/ns#" term="ideas"/><category scheme="http://www.blogger.com/atom/ns#" term="organizational"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Abstract Thought is a Practiced Skill</title><content type='html'>While starting a new organization, there&#39;s a lot of abstract ideas that need to be discussed and agreed upon.  In fact, where there is any concept that exists outside of our norms, there is very little tangible stuff to talk about.  What were the discussions like during the framing of the United States Democracy?  How did Henry Ford explain his assembly line to investors? Think about that.  How would you explain an assembly line to somebody who had never seen or heard the idea before?

I think most people dislike abstraction.  The required skills to deal with intangible thought take time and effort to learn.  For most people these days, I think the effort is really not worth it.  That&#39;s a tragedy.

But, how can we avoid talking about things that do not yet exist without talking about the intangible?  In my experience over the last 6 weeks, it is not possible, or even desirable to do so.  We must grapple with abstraction if we ever hope to innovate.

That does not mean we need to be way out in orbit either.  To make an idea into reality takes people.  It takes people who understand the idea, and who believe in it enough to make it happen.   An idea that is not effectively communicated, is a dead one.

Don&#39;t give up hope yet.  There are simple tools available to us that we have been using for thousands of years to pass important intangible information.

&lt;ul&gt;&lt;li&gt;Stories.&lt;/li&gt;&lt;li&gt;Parables.&lt;/li&gt;&lt;li&gt;Scenarios.&lt;/li&gt;&lt;/ul&gt;
Take the recent efforts of the new Obama administration during their first 30 days in office.  Their initiatives are bold, they are well thought out, and yet they continue to elicit cries of protests from our citizens.  &quot;Where are the details?!&quot;, &quot;It makes no common sense!&quot;, &quot;Exactly how do you plan to do this?!&quot;, &quot;It&#39;s never been done like that before!&quot;

The early initiatives of the new president are different, and need I say, innovative.  Any long term failure they suffer will not come from the substance of theses initiatives, but from innefectively communicating complex and intangible ideas. It&#39;s too bad that the Obama administration failed to do this, but it is a tragedy that such a large percentage of Amercan people have not been exposed to abstract thought processes.

So, get out there and grab a book, find articles, and most of all, learn to craft stories, parables, and scenarios to effectively communicate your ideas.  Dealing with abstraction is a learned skill.  It takes practice and patience to get good at it.  But, stick with it, because there&#39;s a whole new world out there just waiting for us when we get it.</content><link rel='replies' type='application/atom+xml' href='http://fireworksfactory.blogspot.com/feeds/417222293286153789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fireworksfactory.blogspot.com/2009/02/while-starting-new-organization-theres.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/417222293286153789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6167476510374402746/posts/default/417222293286153789'/><link rel='alternate' type='text/html' href='http://fireworksfactory.blogspot.com/2009/02/while-starting-new-organization-theres.html' title='Abstract Thought is a Practiced Skill'/><author><name>Kris Walker</name><uri>http://www.blogger.com/profile/18287341885389776641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwKiCro1PYuSQHgawTMklpbWmZ6qqFjkntj7BaQxVfY7E_w7HIpMjGtCkpE6fzJO0uxBtdNzkO46u6xKQbUXXu0zfrI1ld2Y8bmlyTVBacOmQ0JPusJQWjChOeUDZp5aY/s220/watercolor-200.jpg'/></author><thr:total>0</thr:total></entry></feed>