Entries in the 'About open source' Category

Is Blockchain the Ultimate Open Source Disruptive Technology?

Is blockchain an even more disruptive technology than the web?  Could IOT be the best place for blockchain to take off?

Fred Wilson of Union Square Ventures has been talking a lot about the blockchain recently, so I decided to learn more about it.  I read the Marketing the Blockchain e-book, watched The Grand Vision of a Crypto-Tech Economy video and the video keynote of Overstock CEO Patrick Byrne at the Bitcoin 2014 conference, and did some more research on my own.  While far from an expert, I do see some interesting parallels to the adoption of open source software.  Here’s what I’ve learned — please comment and tell me if I’m wrong:

What’s the Big Deal about the Blockchain?

Blockchain is a distributed ledger system using crytography and open source software.  The goal of the blockchain is to allow anonymous and secure record-keeping.  Record-keeping not of the mundane, high speed data in databases, but more critical information like money, transactions, and identities.

But here’s the big thing: instead of those records being kept in one central, allegedly secure place, it is kept distributed in a peer to peer way, while also being (allegedly?) secure.

Ok, that’s nice.  So what?

Now stop for a moment.  Think about this: What does every institution in our society do?

What does your bank do?

What does the Federal Reserve, European Central Bank, Bank of England, or any other central bank do?

What does your local registrar/recorder do?

What do eBay, etsy, Paypal, uber, airbnb, Facebook, Amazon, Yelp do?

What does every business, big or small, do?

They all keep records in a central, allegedly secure, place.

So what if there was a technology (open source no less!) that could replace every single centrally kept source of information with a peer-to-peer distributed alternative?

The internet is a big deal because it fundamentally replaced centralized information repositories such as newspapers, TV, and encyclopedias with distributed, peer-to-peer alternatives.  If the blockchain could replace all these other parts of our society, right down to our monetary and banking systems, wouldn’t it be a 10x, 100x, 1000x more powerful force for change than the internet?

IF.

Could it Really Happen?

Blockchain enthusiasts would tell you that it is already happening: Openbazaar is out to replace eBay, Amazon, and etsy.  Steemit is out to replace reddit, twitter, and Facebook.  And then, there’s bitcoin, out to replace your money with a digital currency outside the control of any government!  Not only is it accepted at Overstock now, but there’s actually an impressive list of places that take bitcoin for payment, including Expedia, Microsoft, Whole Foods, Dell, Home Depot, and Sears.

But here’s the catch: These places are accepting bitcoin based on its spot exchange rate to mainstream currencies.  For example, when you checkout at Overstock, your shopping cart is quoted in dollars, and then Coinbase will quote you a bitcoin price based on the current bitcoin/dollar exchange rate.  This bitcoin price is good only for a short period of time (10 minutes from when I tried it.)

So in reality, “accepting bitcoin” today is like accepting the Discover card.  It’s certainly a necessary step if bitcoin is to go mainstream, but it doesn’t mean that bitcoin is replacing established currencies.  For that to happen, we’d actually have to see an economy that’s priced in bitcoins.  This means a group of people must be willing to take a relatively fixed amount of bitcoins for their goods or services, instead of pricing them in dollars, euros, or another established currency.  Usually, that means other people must be willing to take their bitcoins in turn.

For example, you might bill $100 per hour for your services.  You probably wouldn’t change that rate as the dollar fluctuates from $1.05 to $1.2, $1.3, or even $1.6 to the euro.  Would you similarly accept 0.1 bitcoins instead of $100 per hour, whether 1 bitcoin was worth $700, $1,000, or $1,300?  That depends on what you can do with it, doesn’t it?  If you live in the United States and pay rent, buy groceries, and go to restaurants and movies with dollars, it won’t matter to you what the dollar to euro exchange rate was, because all your expenses are still (more or less) the same in dollars.  Similarly, until you could buy all sorts of stuff at relatively stable bitcoin prices, you’re taking quite a risk fixing your price in bitcoins.

Hence we have the classic adoption problem for new technologies: Until we get a large group of people to adopt it, most people wouldn’t want to adopt it.

Lessons from the Quiet Revolution

Most blockchain advocates deeply believe that a de-centralized economy is a fundamental virtue, but they also realize that the rest of the world won’t care.  They know that for the blockchain to take off, it must be an invisible part of the apps that power regular people’s lives.

Which sounds just like open source software: Most open source developers believe that software freedom is fundamentally good, and software copyrights and patents are fundamentally evil.  Richard Stallman’s The GNU Manifesto could practically be translated into a manifesto for blockchain just by changing some words.  Yet that’s not what drove the adoption of open source software in the end.  We did not, as a society, all rise up to overthrow the shackles of commercial software.  Instead, open source is a quiet revolution: When you open your smartphone, check some reviews, surf the web, play a game, or buy something online, you’ve probably used at least a dozen different open source technologies.  But most people don’t even know what “open source” means (although it sounds nice.)

What drove this quiet revolution?  In retrospect, open source software has been most successful when three conditions are met:

  1. The market space has no dominant commercial incumbent.
  2. The market space was not deemed mission critical.
  3. Open source was the easiest, lowest friction option available.

For example, Linux, Apache (actually just the httpd web server), MySQL, and PHP (aka “LAMP”) were all successful because they were used for building web-based applications in the early 2000’s.  Commercial alternatives like Solaris, Microsoft IIS, Oracle, and ASP .NET were not dominant the way Microsoft Windows and Office or SAP were.  Funnily enough, back then websites weren’t considered mission critical by most companies, so it wasn’t a big deal to let the geeks try out some new technologies.  And it was much easier for those geeks to download and install LAMP and start making a website than go through the long procurement process with Oracle, Sun, or Microsoft.  So open source took off.

What Don’t You Like About Establishment?

Contrast this with the blockchain today, and we see that in all the niches we’ve talked about, there is a dominant player: Our currencies and banks, major corporations, and social networks are very much established.  Furthermore, they are very much mission-critical.  We get paid with dollars and know that we can pay our rent or buy groceries.  We put it in the bank and trust it’ll be there tomorrow, and we don’t have to worry about losing all our money if our hard drive crashed and we lost our bitcoin keys.  We trust the reviews on Amazon and eBay and know that when we buy something, the goods would get to us.  We trust that uber will send us a driver who is not going to hijack us, and the driver trusts that uber will pay them for our trip.

We may not like everything about them, but how many people are ready for a peer-to-peer, de-centralized alternative?  And if anything went wrong with that alternative, “who would I sue?”

So can we find some non-mission-critical applications where there are no dominant incumbents?

We might think that blockchain is a natural fit for places that fall outside the established monetary and banking system, for example in countries with failing currencies.  But the dominant incumbent currency in those countries is usually the US dollar: there are apparently more dollar bills in circulation outside the United States than inside for that very reason.

We might think that technologically, the blockchain is a natural fit for peer-to-peer transactions, like eBay or uber.  But those are very mission-critical applications.  There are plenty of eBay sellers whose livelihood depends on getting paid and getting good reviews.  They’ve learned how to get those through eBay and Paypal.  Would they trust that livelihood to someone else easily?  As for uber, it’s the driver’s livelihood and the rider’s life that are literally at stake.

And then there’s health care.  Here’s a great one: Our health care system is antiquated.  Records are not even kept electronically.  We don’t trust our doctors, hospitals, and especially insurance companies and government health departments.  There is no dominant incumbent.  Wouldn’t it be great to be able to keep all my health records in the blockchain, so I can share them with doctors and insurers and even other physicians at my choice?

But what if something happened to my health records?  What if they got stolen, tampered with, or simply lost?  It could be life or death.  Talk about mission critical.  So would most people trust Google or a peer-to-peer distributed ledger?

One interesting blockchain application is micro-payments.  Today’s payment networks, such as Paypal and credit cards, have a minimum threshold below which the costs are just too great.  It’s not worth it to send someone $0.05 electronically, but it is with blockchain.  So can we have an economy where blockchain is used to transact in such small amounts?  Perhaps.  I don’t know of anybody who does.

But what if micro-payments is paired up with smart contracts like Ethereum, which allows transactions to happen automatically based on rules.  And then tiny payments, perhaps even smaller than $0.01, could be sent between computers and devices as they connect and work together.  By 2020, we’re supposed to have 20 billion (according to Gartner) to 38 billion (according to Juniper) Internet-Of-Things (IOT) devices in the world.  Maybe all these devices could just accumulate small amounts of money for us on the side, and this could be a new, non-mission-critical field without an incumbent technology.  Hmm….

As you can see, I haven’t figured out a break out application for blockchain.  But then again, like I said at the beginning, I’m far from an expert–not even much of a beginner in fact.  If you think of something, please let me know in the comments.

 

Was Microsoft the Greatest Open Source Business of All Times?

Before you flame, take a look at this ad:

MS-DOS Emerges, courtesy RegMedia.co.uk

MS-DOS Emerges, 1983, courtesy RegMedia.co.uk

This is a historic document that shows the exact moment when Microsoft began taking over the world.  Its main products at the time were BASIC and DOS, but DOS was the indispensable layer of the Personal Computer (PC) industry.   It sat between the hardware and software of the IBM PC and its myriad of compatible clones.

What’s most amazing about Microsoft and DOS, though, is that everything above and below them were open sourced.  If you wanted to build an IBM-compatible PC (like Compaq and Dell), the architecture was openly available, as long as you built it for DOS.  If you wanted to write software for IBM PC’s and compatibles (like Ashton-Tate and Lotus), Microsoft and DOS provided you with open standards too.  As a result, millions of IBM-compatible PC’s were built and millions of programs were written for them — far more than ever was the case for Apple’s Macintosh.  They turned IBM and Microsoft into the standards of the industry and made companies like Dell, Lotus, and Intel wildly successful.

But not as successful as Microsoft.

Because through it all, Microsoft didn’t open source its products.  There were no DOS (or Windows) alternatives that a Compaq could package with its PC’s to run Lotus 1-2-3.   There was never an open “PC operating system standard” that would allow software and hardware vendors to write once (or build once) and run any operating system.   Competing operating systems like CP/M, Xenix, OS/2, and BeOS all failed because there wasn’t enough software written for them to attract hardware manufacturers, and not enough hardware manufacturers making computers to attract software developers.  As a result, Microsoft ended up controlling the entire PC industry, eventually even muscling giant IBM out.

Microsoft’s succeeded during the PC era came by making knowledge freely available, essentially open sourcing the architecture of PC hardware and software.  Decades later, Microsoft would stumble because it couldn’t make ASP.NET, Silverlight, and Windows Mobile the standards for web and mobile.  Today Google is trying the same strategy by making Android the platform of choice for both hardware manufacturers and software developers.  (Funnily enough, Apple didn’t play this game with Microsoft back then and doesn’t care to join Google now.  They just march to a different beat altogether.)

Moral of the story?

For open source developers: Open sourcing of software is just small potatoes.  There is so much information that, if made openly available, could create whole industries and make people’s lives better.  So isn’t it time we stopped thinking just about the code and started thinking about how to create openly available knowledge that could benefit the world — and build great businesses?

For everybody else: Do you still think open source is a charity?  Or are you thinking, “What kind of openly available knowledge could grow my business?”

A World of Possibilities for Open Source

Ten years ago we started with the (immodest?) goal of bringing open source to enterprise software.  Today, there are even greater opportunities for open source — not just in software, but as a fundamental force for positive change in the world.

Imagine a world where smart devices could be 3-d printed anywhere.  Further imagine all those devices connected, through the internet,  to every other person and organization in the world.  This should be a world where our homes could respond to our movements to turn appliances on and off.  We could grow food using less water because sensors would know when to turn the irrigation on and off.  Our physicians could know if we need to come in for a check up.

But will this be a world where a few large companies control all the devices, and only their chosen partners are allowed to provide us services?

Or will this be a world where the designs for smart devices will be openly available?  Where there are open API’s for many startups to innovate and create new business models?

That is the opportunity — and challenge — for open source.

Our Responsibility: Making the World Better with Technology and Open Communities

What do you say when people ask, “Why do you do your job?

Is it a mix of I’ve-done-it-for-years, I’m-good-at-it, and it-makes-me-money?

That’s all fine and good, but please take a moment to think about the bigger picture: Our world is heading to a peak population of 9 billion people within our lifetime.  More than two billion people have no access to drinking water.  Over a billion people live in urban slums.

The same skills that you already have — designing and building technology and online communities — could solve problems like these for billions of people.  So as important as your day job may be, think about how to use what you already know to make a bigger difference.  When you are part of something bigger than yourself, you’ll find it giving you a fresh sense of purpose and making you feel more alive as well.

That is what we are going to be doing as well.  Going forward, please go to opentaps.com to follow the development of our business application software.  Meanwhile, here we will be focusing on how technology — specifically open source software — and open communities could help solve some of the world’s bigger challenges, such as energy, water, and housing.

opentaps.com and the Next Generation of opentaps

When we started opentaps nine years ago, our goal was to create great business software from open source.  And have we ever!  Most people wouldn’t have believed that enterprise-class open source ERP and CRM was possible, but we did it — thanks to Linux, Apache, MySQL, PostgreSQL, OFBiz, JasperReports, and many others open source projects.

The world, meanwhile, has moved forward too.  It’s no secret that the future of software is mobile, social, and big data, and open source software is moving in those directions as well.

What does this mean for real businesses?

Imagine being able to capture all your interactions with customers as they happen: by email, on twitter/Facebook/pinterest, via text messages, or by phone.  Anywhere.  Any time.  Any how.

Then imagine being able to use that information to make your customers happier — and sell more.

That’s what we think a whole new generation of open source software could do for you.  And we’ve started by creating a whole new opentaps to do it.  Because it is built with a whole new different set of open source technologies and a different cloud-open source business model, we’ve created a new site at opentaps.com for this new product.  Meanwhile, the existing open source ERP and CRM lives on at opentaps.org and will continue to evolve.

We hope you’ll join for the next phase of our journey — the best is yet to come.

Has Google Android’s Open Source Business Model Failed?

Yesterday’s WSJ.com video “Tablet Wars: How Are People Using Tablets?” had a shocking statistic: 98% of the web traffic from tablets comes from Apple’s iPad.  Further, most of mobile commerce is from Apple’s iPhone:

[Read more →]

Mail Merge in Google Apps, Javascript, and Open Source

I followed this tutorial on how to do mail merge in Google Apps, and it taught me a lot about Javascript and the future for open source applications.

Doing mail merge in Google Apps was a lot of fun!  With a little copy and paste and about 15 minutes, I had was sending emails attached with customized letters as PDF’s.  Could programming always be this easy?

[Read more →]

Can NoSQL Databases Cure Us of Software Complexity?

If you’ve worked with Apache OFBiz or opentaps 1.x, you’ve probably had moments like this:

Q: What’s the difference between internal name and product name?

A: If your company wants to maintain an internal name for products that’s different than the standard product name, then you can put it in internalName. Otherwise you should keep them the same.

Welcome to software complexity.

[Read more →]

opentaps Open Source ERP + CRM Update

The first proof of concept application is now available.  This new application is based on Apache Geronimo 3, OSGi Blueprint, and openJPA server side and HTML5/Javascript/CSS client side technologies.  Facebook integration is built into the application:

You can try the opentaps v2 Notes application at notes.opentaps.com or see a YouTube video for the new opentaps v2 user interface.  For developer documentation, please see our wiki pages about opentaps 2.

Fedex and Endicia Shipping Integration

The new opentaps OFBiz FedEx integration module provides FedEx web services integration for both opentaps and ofbiz.  Important: because the current Ship Manager Direct API will be discountinued by FedEx on May 31, 2012, you will need to get this module to continue shipping with FedEx.

opentaps Endicia integration module now supports generating USPS shipping labels from opentaps or ofbiz.  See shop.opentaps.org for this and other modules to improve the capabilities of your opentaps system.

opentaps In The Cloud now Available on Amazon EC2 m1.medium Instance Type

opentaps in the Cloud, our popular Amazon EC2 deployment option for opentaps, is now available on the Amazon m1.medium instance type.  This new instance type was introduced recently by Amazon and offers the equivalent of 2 processor cores and 3.75 GB of available RAM and can be used to host opentaps for a small organization.  To use this new instance type, subscribe to the opentaps Mini AMI and choose m1.medium on startup.

Let’s Mash It Up and Make Enterprise Software Fun Again

My New Year’s Resolution: Make building enterprise software fun again.

The Old Way

Almost all enterprise applications follow the same architectural pattern: a single all-encompassing framework housing the data, logic, and presentation layers.  When applied to large-scale applications such as enterprise software, which must cater to the needs of lots of users with many different features, it creates some problems:

  1. Everything that you use in the application must be written in this framework.  You might really like X, but if you want to use in your application, you’d have to re-write X in its framework.
  2. No framework is optimal for all possible features.  For example, order processing and accounting are highly structured, whereas web content management deals primarily with non-structured data.  A relational database driven framework that is well suited for traditional ERP could thus be poorly suited for web content management, and vice versa.

This is why we often hear enterprise users say “We chose [fill in name of your software] because it was good at [fill in the good features], but it’s really not too good at [all the other stuff].”  Conversely, because vendors think this is the only way to build software, they often have to bundle so-so features with their core strengths to create a competitive “enterprise offering.”

A Better Way to Do It?

Sometimes it just takes a shift in the perspective.

Could enterprise software could be built as mash ups of components based on open standards?

Would that make writing business software as easy–and as fun–as putting together blogs with videos, tweets, and maps?

Let’s Try it with Open Source

We’re going to try to do exactly that with opentaps 2.  We plan on building off the OSGi standard and the new Apache Geronimo 3 application server on the server side and the new HTML5 standard for client side applications to create this new kind of enterprise software.  Take a look at our plans for opentaps 2 and follow us.