Saturday, February 28, 2009
Anyone Can Share an App!!!
Anyone can go to the app store and share there app for anyone to easily download.
I recently uploaded this paint app for free.
Friday, February 27, 2009
How to make your own bottle raft and get in trouble
P.S. this post has nothing to do with Arduino, Open Source Hardware, Open Source Economics, or anything like that. I was just going through my old pictures and found this, so I thought I'd share!
This story is a little old now, but a few summers ago Chris and I decided we didn't have enough danger in our lives, so we were going to build a sail boat to learn the principles of sailing. We didn't have enough money to justify buying a used boat, or even renting one, so we built a bottle raft and then later stuck a sail into the middle of it. Unfortunately, I don't have any pictures of the raft when it had it's blue tarp sail, but I'll say this much: it didn't work. We had to paddle pretty hard to keep it going, and it definitely did *not* tack against the wind.
So without further ado, here is my personal guide to building a bottle raft -the getting in trouble part comes at the end of the post:
Step 1: Find bottles
Find lots and lots of bottles. This was really hard for Chris and me until we discovered something... Thursday night was recycle night a few towns over. So we popped along in a little nearly broken down Subaru, and went from house to house picking out all of their nice bottles. We had the pick of the litter too, so we chose hardy, durable bottles.
You might think that 2-litre soda bottles are nice, but they're not. The problem is that they're too narrow, and they'll slip and pop out from under the boat if you're not careful in later steps. Also, I've seen a lot of tutorials recommend using 1 gallon Poland Spring water bottles - which are equally terribly, because the tops just pop off when you submerge the bottle. A good rule of thumb is: if you can take the cap off the bottle in a popping motion with your thumb, the bottle will leak, let in water, and you'll sink. On the other hand, using bottles with screw caps is ideal because they're thicker.
The perfect bottles are detergent and bottled water ones:
No, I'm not sponsored by Tide. In fact, I hate the way it makes clothes smell, but they make great raft bottles. Chris and I did calculate that it was almost worth just buying detergent just for the bottles, since we'd just dump out the detergent and save time scouring the neighborhood for the good bottles. If you value your time, then yes, it's worth just buying detergent and dumping it out. But if you don't, and you have good music to listen to, and a good story to tell neighbors when they see you taking their bottles, it'll probably just take a few hours. Another rule of thumb:
- An average family household does laundry once a week, and runs 2-4 loads of laundry
- The average bottle of detergent is good for 20-30 loads of laundry
- On average, a household is buying a new bottle of detergent once every 8 weeks, or every 2 months
- That means a household throws out a detergent bottle once every 2 months, or ~60 days - this is about right from my experiences growing up having to do laundry, so this checks out
- That means that you'd need to visit 60 households before finding 1 detergent bottle
- Not all households put their bottles in a recycling bin (let's say optimistically 80% do), so now you have to go to 75 households
- This seems bad, but there's a catch - recycling only happens 1 day a week, so everybody batches their bottles together at once, and so you actually get to reduce the time step earlier by 7, since you're synchronizing when you're checking everyone's detergent-throwing-out-status, so now you have a good chance of finding a bottle with every 10-11 houses you check
- The final step is a good and bad thing: some people seem to employ a multi-phase, or "stage-gated" recycling process (if you will), by which they keep a recycle bin in the garage, that they fill up first, and only when it's full will they put it out for collection. This is bad because this means there are some houses just sitting there - in front of your eyes, and you KNOW they MUST have a detergent bottle waiting to recycle, but you just can't GET IT! On the flip side, however, you know that when they finally do put their bins out, there's a pretty good chance (about 50%) that it will have a detergent bottle if they took 1 month to fill up the bin. On the other hand, there's a 25% chance the bin will have a detergent bottle in it if they let the bin sit for 2 weeks
- The nice thing is that you can easily tell if someone has put a recycle bin in front of their houses, so the transaction costs of checking are very low - just drive by the house, and if there's a recycle bin in front of the house, then check it for bottles. If not, don't check for bottles.
- Last tip: there's about a 1 in 50 chance there's a detergent bottle in the trash bin, hidden from plain site, but luckily most people put detergent bins on top of the trash, so there's a fairly good chance that if they didn't recycle it, it's the huge thing preventing the trash lid from fitting on snuggly, and you can see it. Again, visual inspection reduces time taken.
I can't help it - here's the Laundry-Dumpster-Diving-Time-Tradeoff-Equivalence equation:
W - loads of laundry / week (typical: 2-4)
L - loads of laundry / bottle (typical: 20-30)
New bottle bought = bottle thrown out
New bottle bought = L / W (range: 5-15 weeks)
New bottle bought (days) = L / W * 7 (range: 35-105 days, or ~1-3 months)
Pr - probability that house throws out detergent bin in recycling (assume: 80%)
Divide by 7 for single day-synchronization:
L / W * 7 / Pr / 7
Pt - probability that house throws out detergent bin in trash vs. bin disappears as kid's school project (assume 90%, round lower for technically-inclined neighborhood, or around the date of science fairs)
((1/Pr)(L / W * 7 / 7) + (1/(1-Pr))(Pt)(L / W * 7 / 7))
Tr - Time required to visually inspect recycle-bin (~5 seconds)
Tt - Time required to rifle through trash bin deposited detergent bin (~30 seconds)
Simplified:
((1/Pr)(L / W) + (1/(1-Pr))(Pt)(L / W))
So clearly, for the return, it's not worth spending the ratio of time on checking garbage, since you'd expend a *lot* (~20x) more labor for a garbage-bin collected detergent bin than a recycle bin collected one. Plus they're really messy.
So:
Number of houses to check: (1/Pr)(L / W)
Time spent checking: (1/Pr)(Tr)(L / W)
Time spent fetching: Tf (assume: ~10 seconds)
Time driving from one house (with recycle bin) to another: Th (assume ~60 seconds)
Total bottles needed: B
You have to drive and check every house: (1/Pr)(L / W)(Th + Tr)
You only have to fetch when you find: Tf * B
Total time needed: B* ((1/Pr)(L / W)(Th + Tr) + Tf)
Search: ~700 seconds / detergent bottle
Fetch: ~10 seconds / detergent bottle
B (from next section): ~35 bottles
Total time required: ~7 hours of driving around looking for bottles
How does this funny math validate empirically? From experience, about 1 in 8 houses has a detergent bottle, you're willing to do it for about 3 hours before you get sick of the smell and want to shower, so you spread it across two nights, and two weeks...
Which is just what Chris and I did :)
Step 2: Calculate how many bottles you'll need
You would have thought this step would come first, but here experience has taught me otherwise. Start by finding out how difficult it is to acquire good, solid, quality bottles, and then work backwards. This will tell you what kind of design to go with. For instance, I've noticed that the Northeast seems to be a fiend for large detergent bottles, while the Midwest prefers the smaller types. The South seems to not use detergent, so you don't find too many in their trash (oh, and I don't think all Southern states have recycle night trash collection either, which makes finding bottles even harder).
Anyway:
- Each gallon of displaced water is about 8 pounds (about)
- 2 grown guys plus non-floating part of the boat is about 400 pounds (adjust accordingly)
- 400 lbs / 8 lbs = 50 gallon bottles
1 detergent bottle is between 1.5 and 2 gallons, so you'd need about: 25-33 bottles
Here's the part that trips up mathematicians. Notice that this is only for break-even. If you meet break-even, as Chris and I discovered, you get a boat that usually is partially submerged on one side, or just sort of hovers there in the water, bobbing in and out.
Add another 10-20% bottle buoyancy, however, and you're actually capable of floating above the water most of the time.
The truth is, you never really know, so Chris and I grabbed tons of extras, and we chose the number based on how many we thought we'd need, and then brought extras just in case.
Step 3: Design ideal boat
For Chris and me, it was something like this:
Notice the punt-style main mast sail (forget how we thought it was going to attached to the base), the triangle shape out in front (forget that it would just steer sideways and not help thrust at all), and the outboard motor (for when we got tired of rowing).
Step 4: Reality sets in
A trip to Home Depot indicated a few problems with the plan: how to attach the mast to the platform?
Nevermind the outboard motor, since Chris actually had one lying around. We did notice, however, that it would require it's own ~25 bottles to float, not to mention the undercurrent would probably rip the bottles off the base, so we scrapped that idea. But only after debating about it furiously.
So instead, we got a few wood planks and 2x4's, and built a solid reinforced base (that's Chris with the drill):
Construction fencing makes a great way to secure the bottles to the underside:
You'll actually notice that there were some 1 gallon jugs in there... that's how we discovered that they're horrible sources of "robust buoyancy."
It was quite simple, actually - we used a staple gun to attach the orange fencing to the board, and that was pretty much it.
Step 5: Put "boat" in water
And, if religious, this would be the appropriate time to pray to an appropriate deity... actually, we also started to draw a crowd, since it was a weekend, and this was the New Haven shoreline. I'm pretty certain the New Haven shore crowd doesn't usually get a chance to see this type of work (stupidity?) in action...
That smug grim on my face is because someone just yelled out, "you're going to sink" and I'm thinking, "you're not on a homemade bottle raft, and I am, mwhahahahaha." Chris and I took turns on the "manual outboard engine location". We built a separate platform for the outboard engine, thinking at worst if it tore up the bottles underneath it, we'd still have the other section to be safe on. Seemed to make sense at the time.
Step 6: Get in trouble
We stayed on the raft for about 5? hours, and had no problems. In fact, these pictures were taken at night time, for proof - this is us looking back at the New Haven coast.
The one problem we had, was we made a serious tactical error. We brought a Weber grill on the boat too, thinking, sure, at some point we were going to get hungry and why not cook out on the boat?
Both Chris and I failed to anticipate what the view from land would look like with a fully lit Weber grill and charcoals starting light up. Apparently, someone called the police, thinking we were in danger and on fire and maybe trying to commit suicide in a blaze, when really we weren't, we were just hungry. The police drove up on that ramp in the second picture above, turned his siren on, fired a flare into the air, and called the mini-coast guard (do they exist?).
Anyway, we threw the Weber grill into the water to douse the fire, and rowed back into shore. The policeman said we were perhaps the dumbest guys he'd ever seen, but said it looked fun, and next time we should either not try the cook-out part, or maybe pre-cook everything and bring it out in a cooler.
Thursday, February 26, 2009
The Life and Times of an Open Source Hardware Newbie
Hi! I’m Chris (Chris #2 it seems), and it’s been months since I’ve gotten to hang out with Matt. We live in different cities but met through mutual friends who are into DIY electronics and used to hang out all the time. During the past few months or so I accepted that he was just incredibly busy with whatever it was he was doing. Well, as it turns out, he’s become better friends with someone/something by the name of Arduino. :-)
After looking deeper into the details of Matt's hobby, I realized that I didn’t understand a word that was coming out of his mouth, so I tried to figure out whether my incomprehension was a result of stupidity, or sheer, bent up, jealous rage. It was both. At any rate, I found myself wanting to fit in and decided to sort out what the hurdles of adopting this new hobby would be. I also found myself facing a challenge, not having any kind of engineering background, or any experience dealing with electronics (you know, besides iPods and every other trendy consumer electronic device that 99% of the world owns).
Matt was curious as to whether or not someone so inexperienced, incompetent, and pedestrian (remember when we were friends?) could crawl their way into open source hardware and start understanding his passion. So I asked him how I could get started. Before I finished this sentence he blurted out, "Arduino Duemilanove", which I made him spell of course. I was told that they were about $30 and he was nice enough to tell me that I could get one here...
He left me with these two steps to begin with:
1) Buy an Arduino
2) Explore the official Arduino website here
I’m excited and can’t wait to report my progress. I know that when I was an undergrad the best way I picked up new subjects and topics was to learn them in parallel with my friends taking the same courses. If anyone wants to tag along and has any questions for me, or Matt, or the other experts out there, please let me know so we can struggle together and feel sorry for each other when things don’t work - ha!
Thanks guys,
Chris D, #2, etc.
Wednesday, February 25, 2009
The First Meeting of the Open Source Economics Council
Suffice to say I came away with more questions than answers it seems, and as I’m pulling together some of the notes I jotted down from our chat, I wanted to share a couple of the big ones:
- Since hardware is actually tangible and costs money to build, how do you deal with inventory risk that isn’t sold?
- If things are cheaper at higher quantities, and there are enough people who want one, how do you achieve scale without having a company?
- Open source is about collaborating in terms of time, and tools, and in the case of hardware, money. Time and tools are easily shared in the realm of open source software (through systems like Github), but what systems need to be built for open source hardware? How would they be structured?
Thinking from the standpoint of a community of engineers, the system should:
- Reduce margins and cost for the community
- Minimize the risk and opportunity cost of unsold inventory
- Provide incentives for Open Source projects that do not want to incur transaction cost of establishing a corporation
- Allow the build and distribution of low-quantity products (e.g. niche applications)
- Allow the build and distribution of non-scalable products (e.g. non-VC fundable) –these two would be the “scale issue”
- Align rewards and profits as closely as possible to those who contributed – that sense that of wanting my money to go to the right cause and the right people. John put it really nicely during the discussion, “It’s not about someone making money, but rather that the money being made is going to fund someone doing something, rather than someone doing nothing”. So I’m happy with whoever spent their time, knowledge and energy, to get some of those profits to keep going…but it’s a different feeling when I pay a whole bunch to support the investors behind the people who invested in the builder, because those folks didn’t actually build my gadget.
- Minimize economic transaction costs to high-paid non-laborer economic types
- Reduce barriers to contribution
- Reward innovation and encourage new ideas
- Encourage project-level (not necessarily firm-level) competition
- Participate because they are getting as much or more out as they put in
- Do it not just to make money and profit off of others for free
- Have rare, inimitable skills who volunteer their talents for recognition or fun
- Are willing to build a more sustainable hardware innovation system
- Are willing to teach others for the gratification of helping others learn new skills
Even now, when "sustainable open source" comes up, it focuses on sustaining a single project rather than the environment. Don't get me wrong, there are certainly ways of making money from open source hardware, but it still feels like all the business models are on a one-off basis, where I build something for someone funding it, and there has to be a secondary purpose for it to get off the ground. I’m starting to go down the path of an open source, community bank or foundation. Something that can sustainably fund open source products or projects and cycles earnings back into the community. I'm really excited and it definitely feels like we're all one step closer to figuring open source economics! Of course, if I learned anything from yesterday, this is just one angle, so if there's something I've missed, I'd love to hear it!
Aardvark Gadgets!
1.) Chris uploaded an app for his Arduino
2.) Matt uploaded an app; he actually used his app for his TouchShield, and Chris' app for his Arduino
3.) Omar uploaded an app; he created an gadget file for the ide so you can merge these 2 apps into 1 file
4.) My Turn!
I first downloaded all the apps, starting with the Arduino Windows version.
Next I installed the Aardvark
Now Matt's App...
I selected the TouchShield Slide picture in the gadget window on the left
Then I pasted Matt's InputShield_Display code into the code tab
Friday, February 20, 2009
Illuminato, Part 2 - and the open source economics experiment
Besides the community, there's one other way to get inspiration - from someone who's recently returned from a cross country drive thinking about nothing but this stuff! After reading through Zen and the Art of Open Source Hardware, I talked with Matt over a whiteboard and lots of paper. The end result? My eyes are red (I imagine Matt's are too), I have a ton of loose, scribbled paper, and dry erase on my hands and face. I'm really not sure here, and maybe it would be nice to have a little chat about this in person. But I think I might just have an idea, and I'm going to spend this weekend drawing this out a little more neatly.
Well, there's this little pizza place right by me, in midtown Manhattan, and I'd love to chat with anyone who can join me for some pepperoni and the first session of the "Open Source Economic Council" (Sorry, I was watching the news when I came up with it, and I couldn't resist!)
Open Source Economic Council
Date: Tuesday, Feb 24
Time: 8 PM
Location (in NYC): Famous Ray's, 831 7th Ave (btw 53rd and 54th).
Pizza's on me. See you there!
Wednesday, February 18, 2009
A little bit of spaghetti...
It was the Spring semester of my senior year, I was almost ready to graduate but I caught something…infectious…Hardware. I had spent 3.5 years avoiding anything silca related but I guess my will wasn't strong enough. Something about making a light flash on a circuit board was just so cool; I was hooked to the Arduino. I started attaching more light, and then more lights until I had attached all of the light that I could…and then came the accelerometer and well…you get the idea.
In the flurry of wires and LED's that I was tossing around I did poke around the Arduino source code (I am a CS major…after all)…I even made some changes and added a kind of packaging; simple but it was there…I needed it to keep track of the gadgets I was making and, being a poor college student, I would reuse the same parts over and over again so nothing stayed the same. I had such a hard time keeping track of things with so many open sketches and transferring things to the wrong board etc…that, in the spirit Larry Wall, I just created a tool to help me keep track of things. It was a simple file format that would load into the Arduino IDE and allow me to switch between things…nothing fancy but fully functional. I would've continued working on my little enhancement had I not graduated and become victim of the 9 to 5….
Flash forward to an Alumni two months ago where I ran into my old lab buddy Mike and my excitement when I found out he's still playing with Arduinos. After getting into a discussion about open source he asked me what ever happened to that edit I made of the Arduino IDE source. The source was on my old computer that was collecting dust in the basement and…well…long story short he convinced me that the community was in need of something like this and I figured this was my chance to stop being such a leech…so I dragged my computer out of storage and fired up my Java juices (and a pot of coffee)!
I was a little slow at first getting back into coding a Java app, but I took a strand of code here, a little bit over there…tossed in some of the updates that had been made since the last time I had coded and viola! The Aardvark Release. Why the Aardvark? Because I'm a sucker for alliteration and African noctournal mammals of the Orycteropus genus.
In the sprit of open source and social coding I've committed everything to gitHub. By the way, github is awesome, I can't even call it version control because it is just so cool to work with. Chris and I had a lot of fun collaborating together on this and I want to see more commits so we can do this flashy disco light thing so please if you've got an idea, go ahead and stick a fork in this angel hair :)
Head over to the App Exchange to get a copy!
And now for a little screen scrape action...
Gamepack with InputShield_Ellipses
Since then, I've been selfishly wanting to build my own creations off those apps, so I simply slotted my own code into Matt's main loop, and deleted his text display stuff.
Which morphed this App into a graphical display of the Joystick position. It also shows how to scale and translate analog values into more meaningful data. Sinced I mostly used ellipse's to draw the graphics, I called it InputShield_Ellipses!
Tuesday, February 17, 2009
Getting started with the GamePack in 3 steps
The general idea is that the GamePack is an Arduino, InputShield, and TouchShield (either Stealth or Slide), and this tutorial will get anyone up and running with a very simple app to start writing a simple game on the GamePack. It includes two programs: one program for the Arduino that polls the InputShield and sends a packet of information to the TouchShield, and another program for the TouchShield that displays the information on the screen.
Step 0
Build the GamePack by snapping the Arduino and Lithium Backpack to the back of a DoubleWide or DoubleTall ExtenderShield, and then place the InputShield and TouchShield on the top of the ExtenderShield. Wire up the Lithium Backpack to the TouchShield using two small wires so the circuit is battery powered and portable. Then use a USB cable to connect the Arduino to your computer.
Step 1
Download the InputShield forwarder app here. Open the application pde file with the Arduino IDE. If the GamePack is connected to the computer, go to the Tools->Board menu option and select "Arduino". In my case, I have a Diecimila, so I select "Arduino Diecimila". Then select from the Tools->Serial Port menu option the serial port the GamePack is connected to the computer via, which in my case is COM9.
Press the Play button in the Arduino IDE to compile the code, and then press the "Upload to IO Board" button to download the code to the Arduino module of the GamePack.
Now the Arduino has code that continuously polls the InputShield. The InputShield needs to be set to "Mode A" using the mode selector switch.
Step 2
Download the InputShield Display app here. This code runs on the TouchShield Slide and displays the coordinates of the Joystick, and the status of the buttons as simple text. Open the pde and source code with the Arduino IDE. Since this code runs on the TouchShield, go to the Tools->Board menu option and select the TouchShield option. In my case, I selected "TouchShield Slide".
Press the Play button to compile the code, press the reset button on the TouchShield, and then click the "Upload to IO Board" button to download the code to the TouchShield module of the GamePack.
Step 3
This shouldn't totally be necessary, but just in case it didn't work, reset the GamePack. If it's running on USB power (probably, if it just got programmed), I usually just unplug it and plug it back in. On the other hand, if it's running the Lithium Backpack battery, just flip the switch and it will reset the battery.
Step 4
Wiggle the joystick around, and press the buttons, and have fun :)
Step 5
Laugh at how mundane and simple this little app is, and hack up the TouchShield code to make it into a real game... and maybe email me too if you want to write it together!
In the meantime, I'm working on a mini version of Mario right now, which I'll publish just as soon as I get it in a basic working form...
TouchShield processing bubbles
This is made possible with Mark's new and improved super-fast (and I'll add, actually functional!) graphics library :)
I've uploaded the code to the app store here, but in the meantime here's the heart of the functionality (notice it's still copied line for line from the Processing demo book, since all the functions are ported!):
for(int i = 0; i <= width; i += 20) {
for(int j = 0; j <= width; j += 20) {
float size = dist(mouseX, mouseY, i, j);
size = size/max_distance * 15;
ellipse(i, j, size, size);
}
}
Monday, February 16, 2009
Zen and the Art of Open Source Hardware - Finale
The Open Source Economy
There’s been a lot of talk in newspapers, and even Slashdot about the potential for Open Source principles to aid the current economic crisis. Hype aside, one thing is sure; there are more than superficial overlaps between the Open Source system and the real economy.
How can this be? In any economy, the basic units of analysis are markets, exchanges, values, and products. In Open Source, though, almost every one of these “concepts” has an analogy...
So this means that the system of Open Source isn’t so different from the real economy – at least in theory. Both involve the production of a thing, or output, they involve coordinated effort on top of systems or exchanges, and there is an implicit or explicit value to things. So there’s a translation between both systems, probably a little like the chart above.
But what makes each system work? What is the “WD-40” of each system, that allows any analysis or meaningful production happen? In the real economy, some would argue it all comes down to money. There is some notion of economic value that all activities, behaviors, or contributions can be expressed. In the Open Source system, it’s not as clear. Some of the “conceptuals” would say that trust is the underlying unit, and that the whole system only works because people value trust, and because there is an exchange in trust. On the other hand, from a practical note, speaking from my own experience, Open Source Software feels a lot like time. When contributing to a project, people are making a conscious decision to spend time on one project over another. Projects take a lot of time to make and complete, whereas the economy takes a lot of money to operate.
And that brings us to Open Source Hardware. The problem is, OSHW requires a lot of time and it takes money too. It can’t work with only one, and not the other. If you throw a lot of time at making a project schematic, it doesn’t become a real thing unless you also throw money at it. Likewise, you can’t just throw money at building a project or paying someone to build it, without also taking the time to design it, architect it, and eventually code it and debug it.
Here are some theories that might need to be tested in order to really understand the differences between the Open Source Software time-based economy, and the Open Source Hardware time and money-based economy:
- Maybe Open Source Software works because people dramatically undervalue their time when contributed to causes
- Maybe Open Source Software can work but Hardware can’t because the same reasons why people might donate time are different when it comes to money
- Maybe the same reciprocity or “pay-it-forward” mentality of time doesn’t hold true with money?
Where do Time and Money Come From?
If Open Source Hardware takes time and money, where do they come from? Currently, time comes from individuals (like me) that have faith in the system, and believe that Open Source Hardware means something. So I spend my time hacking away at gadgets and projects making them work, just because.
Meanwhile, the money comes from a number of places. One place it comes from is companies and stores. Other times (like all the stuff at the liquidware store), it comes from individuals that pool their money together just for fun. It can also come from grants, donations, or institutional causes.
When money comes from individuals, it needs coordination mechanisms to make sure individuals are repaid, or get their money’s worth. When it comes from institutions, it often needs to support a cause or mission. And finally, when it comes from companies, it usually needs to make a profit. This last one is particularly nagging in the Open Source Hardware economy, because it suggests someone is making money off of Open Source. This tends to contradict the notion of the “free as in beer” ideas of Open Source. But is it necessary? Open Source Software can work without the presence of a profit-making corporate entity. Can the same be true for hardware?
Assuming for a second that it’s not true, and companies are required, then I’d put forth a simple framework for when it’s appropriate for someone, anywhere in the ecosystem, to make a profit from Open Source Hardware:
By this framework, profit-making is a good thing when it’s maximized and re-invested back to the community. On the other hand, profit-making is a “bad” thing (or “less good”) when it funds traditional business model reasons, like mitigating risk, distribution, portfolio, or scaling. Why? Because each of these business models involve taking advantage of the efforts of others to make profit. The profit doesn’t make its way back to the individuals who contributed, so it’s “less good” than a system that directly rewards and incents individuals and their time. This assumes that the end-state desired outcome is a system in which individuals are directly contributing to a shared community, and collecting as many of the benefits of their time as possible.
Clusters in an Open Source Economy?
While we’re talking about Open Source economics, I’m not taking anything for granted. Just because there are companies and stores in the real economy, doesn’t really mean you need them in the Open Source Hardware economy. To put it another way, if you were going to build an economy from scratch around Open Source ideals, what would it include?
I’ll start by describing what I imagine is the Open Source Hardware process. Like a chemical reaction, Open Source Software starts with people who contribute time, a “reaction” occurs, and the output is a set of source code that does something. Meanwhile, Open Source Hardware starts with people who contribute time, and money, a “reaction” occurs, and the output is a set of physical, tangible hardware products.
As groups of people contribute, eventually they coalesce into “clusters” in which there is a critical mass, center of gravity, and a formal “project” is created. Sometimes there is a single, large cluster, like Linux, Firefox or Wikipedia. The field of Open Source Hardware, however, is far from mass-centralized, and instead there are groups and clusters of mini projects. One could argue that today there is a central Open Source Hardware project, the “Arduino” platform, surrounded by a set of smaller communities. It might look something like this:
This “cluster”-based theory of Open Source Software and Hardware treats the Open Source Economy as a collection, or centralization of time and money. To have Open Source Software, you need clusters of time. To have Open Source Hardware, you need clusters of time and money.
Well, we all know where the time comes from – it comes from nights and weekends when you’re not working, and you decide to work or play on a project. You learn the project architecture, formulate an opinion, and decide to contribute to it. Actually, on a personal note, that summarizes my experiences with Open Source Software quite nicely!
But now that we want to do Open Source Hardware, I have to answer a more difficult set of questions:
- Where does the money come from?
- What is the best way to coordinate and centralize money?
- How can the money be best structured so that the community reaps the benefit?
- Can money be sourced from a distributed group of individuals or institutions, or does it have to come from one party?
- Does money always need to generate interest through profit?
- Are there other ways to sustain money in a community?
- Who is incented to contribute money, and why?
- What are good and bad reasons to contribute money to Open Source Hardware?
- Does money always have to be structured in a corporate form?
- Should Open Source Hardware have companies that make profit, or are there other ways?
- What are examples of successful production economies that didn’t involve profit-seeking corporations? Can they provide lessons or motivation for Open Source Hardware?
Clearly, this is far from over. I guess I should have expected it, but it left me with more questions than answers. At the minimum, however, I feel satisfied knowing that the questions I’m confronted with now are much more precise than the ones I started out with. I now know my next challenge: solving the Open Source Hardware financial structuring problem.
Sunday, February 15, 2009
Paint Program for My Slide
6 Different Brush Sizes
The brush radius can vary from 1 pixel to 6 pixels.
7 Different Colors: Red, Green, Blue, Yellow, Orange, Magenta, and White
I am sharing my code for this project over on the app exchange...
I even made an icon for the app!
Friday, February 13, 2009
10 things the arduino *can't* do...number #1
On the lighter side, Chris D, a.k.a. Dungo, and myself, self-proclaimed n00bs to the Arduino made these videos about what the Arduino *can't* do. Chris and I thought really hard and came up with a list of ten things...here's number 1.
Hope you enjoy it!
Tuesday, February 10, 2009
Antipasto_cores commits MessageScroller
Fast forward a few months later, passing through some github maturity scenes, and I eating my own words, while being spoon fed by Curtis Morehead's oled_objects branch of the antipasto_cores code base.
Curtis made some some sophisticated updates to the TouchShield Stealth's Oled drivers, that conceptualize the screen as an object, well done! In fact, I had a difficult time photographing the app because of the super efficient text scrolling capability,
It sprinkles in some object orientated design to allow for console applications, such as the one above, that can consume text data. This could be especially interesting to someone who spends 25% of their time serial debugging messages, like me.
Antipasto Cores activity feeds are now active, so with a quick glance at liquidware.com, checkout how Matt B made some tricky web hacks to capture the github data stream with his "Latest Code on github" section.
Thanks Matt, but now everyone can see how I typecasted a (float) to an (int) on that release. Yea, yea, spotted, but I should have known better, whoops ;-)
Anyways, I just finished testing and merging Curtis's fork back into the TouchShield Stealth core. So you want to play with it, pull down the cores and drop them into the Arduino hardware/cores directory to test with some example code,
//*******************************
//*
//* MessageScroller Example
//* for the TouchShield Stealth
//* By: Curtis Morehead
//*
//*******************************
#include "Oled.h"
#include "MessageScroller.h"
#include "colors.h"
MessageScroller scroller = MessageScroller(&Display, &BLUE, &BLACK);
int i = 0;
void setup()
{
Display.Initialize();
}
void loop()
{
if(i%250 == 0)
scroller.AddFormattedText("This is line %d", i);
i++;
}
Saturday, February 7, 2009
Zen and the Art of Open Source Hardware - Day 4
Hi it’s Chris this time,… I’m posting this a day late because it took a while to edit together from the notes Matt and I have been taking. In the meantime, hello
Chris: So how did you get started in open source hardware?
Matt: What made Open Source hardware approachable for you?
Matt: Realizing it was real stuff. Sounds mundane, but that really took me a while to “click.” I’d also come from coding websites, software algorithms, and what some guys might call “computer science.” A lot of guys like computers, then go into computer science, and somewhere along the way I think they get a little misled into thinking that’s all there is to it. I think some guys just go out and build websites for the sake of websites, and they don’t actually do anything useful in the real world. That’s how I feel about a lot of those funny Web 2.0 sites out there… it really surprises me that people are trying to make them into companies. A lot of them would work much better as cool little hobby projects and things you build because you like to do it, not companies that only make money from ad-revenue! I guess the other thing is that you can be sloppy in source code, and you only really need to focus on the algorithm. Memory leaks, tables that don’t have closing tags, etc. don’t really mess anything up until things get really big, so you don’t have to be perfect. But physical stuff is like making art… there’s a role for a different type of craftsmanship in hardware design versus building a website. When I built the Illuminato, it hit me on the head all of a sudden. I guess the last thing is that for all the talk about collaboration and community, I was surprised that all the open source hardware projects tended to be just the creation of one guy. Like Dave Mellis and the Arduino. I still really haven’t found what I’d call a “distributed, collaborative” hardware development project, where a lot of people build a device together, sharing files and whatnot. But how would you have fixed that?
Chris: I can just imagine that. Here I am, getting this mental image of thousands of distributed hackers programming away in their apartments late at night, when actually they’re commuting into work from 9-to-5, sitting in cubes like me and you during the day. I wonder how many truly lone, non-employed open source hackers there really are? I guess the biggest problem I can see is that full time coders are going to write more code than part time guys working nights and weekends. And a platform isn’t as strong if you have just a few guys coding and testing it. Anyway, I also wonder what it is about
Chris: Well, at the end of every day, we’ve asked ourselves whether what we talked about has changed how we think about the meaning and practice of open source hardware. Has it?