Roy's Blog

On Software and Fish.

New Nano 10g Saltwater Tank

| Comments

I’d hate to call this an experiment as it deals with living creatures, many of them plucked from the ocean and thrown in to my new saltwater tank in the hopes they survive, but it is my first attempt at keeping a saltwater tank – so in essence – an experiment. ;–)

So far the inhabitants of this tiny ecosystem are:

  1. Two Clownfish. (Laurel and Hardy)

  2. One Peppermint Shrimp. (Pepe)

  3. One Haitian Anemone, also known as the Pink-Tip Condy.

  4. 5 Hermit Crabs.

  5. 2 Turbo Snails.

  6. Thousands of little copepods floating around being eaten by Laurel and Hardy.

  7. An Asterina starfish (that I did not buy) missing 4 of his arms.

  8. A bristleworm (that I did not buy). This thing is hideous and I wish I could kill it, but it does serve a purpose scavenging.

The Good News

  • Almost two months in to it, no one has died, and new life/creatures are springing to life from the rock and sand bed.

  • Kids love it – although the initial awe has worn off, they’re always finding something new moving around.

  • Hermit crabs and Turbo snails mow through the initial algae spike like a fat guy at an all you can eat buffet.

  • Maintenance is no more time-consuming than my freshwater tanks.

  • Luckily I had a lot of the initial equipment, keeping costs low.

  • Live Sand was given to me by Sal at AllReef in Acworth, GA, which I would think he pulled from his tanks. This surely helped speed up the initial cycling process.

The Bad News (Or what I’ve learned so far)

  • “Nothing good happens in nature quickly. Only bad thing happen quickly in nature.” After you set everything up, you have to sit around for at least a month until the Live Rock “cures” and your ammonia dissipates and your nitrites lower and your nitrates rise. There’s an elaborate chemical cycle that has to complete before you should add even a snail. It’s too much to go in to in one blog post – books have been written over this subject.

  • Lighting, arguably the most important piece of equipment for coral growth, is extremely expensive. A 24” T5 High-Output fixture (with blue LEDs for night-time awesomeness) will run you about $90. Metal Hallide, the gold standard for coral growth, will run you your left arm and part of your left leg.

  • Something I wish I would’ve known: Apparently the smaller the tank in this hobby, the greater the chances of it completely failing (ie, everything dying). Chemical changes in a large tank simply dillute faster over a larger area.

  • To successfully keep a reef tank that is in the 100+ gallon range, you’re talking thousands of dollars on initial setup, and on top of that try and figure out how you’re going to handle water changes or topping off water, because you can only use water that is distilled/reverse-osmosis. My 5-gallon buckets won’t cut it.

[gallery link=“file”]

Cache Control With Tomcat-JBoss

| Comments

I was recently looking for a Cache Control Filter for a Tomcat instance in an effort to speed-up one of my sites serving content. Remembering that I once lifted sample code written by Scott Stark at JBoss. Looking through my libs, I did find his original code with some adjustments I had made for including Expires tag for cross-browser compatibility in caching content for a certain amount of time. I figured I would post a copy, for any of you wanting to add header variables to Tomcat content output.

Note: I normally create two copies of this filter. One for text content like HTML, CSS, and JS files, and another for image content like GIF, JPG, PNG. The reason is because you may want images to be cached for a longer period of time in the user’s browser, as they don’t change as often as markup and code, and you don’t want to hack at your filter code to determine what type of content it is you’re serving. My $.02.

UPDATE: It has come to my attention that Tomcat 7 bundles a cache filter you can find here. More importantly, there is a standalone cache-filter on google code that is actively maintained, here.

SaaS Multi-Tenant MySQL5 - One Schema

| Comments

Over the past 10 years I’ve spent working with multi-tenant software architecture, I’ve seen a lot of clever ideas and collosal mistakes made in designing systems for fault-tolerance and scalability. I decided it was time to note some of the best/worst practices here regarding the deployment of SaaS multi-tenant MySQL database designs, as food-for-thought to others designing a system from the ground-up.

Inevitably one of the initial crossroads a design team will reach is whether to design a system using one global schema or many schema. To put it simply, you are deciding on whether you want every customer’s data in on MySQL schema or you will have one-schema-per-customer within a MySQL instance. This is not a trivial design question, as getting this “right” in the beginning will cost you less headaches in the end. I’ll assume you aren’t designing in a vaccuum, and have a good idea of what the business side of your company would like to achieve with the software you’re deploying, ie. customer numbers, size of user-base, transactions per month, etc…

To make this simple, I’ve broken down some of the pros and cons of designing a multi-tenant database architecture with MySQL using one schema

I Build a Pond

| Comments

Those that know me personally, know my love for fish. It is likely amplified by the fact that I was born and raised in Miami, yet now find myself land-locked in Atlanta with the nearest ocean a 5-hour drive away. I have several fresh-water aquariums (Asian 30g planted tank pictured here) in-house, but this late-summer I decided to take my love for fish outdoors, by building a pond (in a rather muddy and useless part of my backyard).

The goal was to build a pond on a strict budget (I’m cheap!), thus requiring me to build most of it by hand, using the least amount of store-bought parts as possible. So I started digging…

… and I didn’t stop until the hole was 3ft at its deepest point, with several shelves sculpted along the edges at varying depths. Georgia clay is not Miami sand. Digging this 1500gallon hole took me 2 full weekends or 4 days of non-stop pick and shovel work, but once it was complete, it was time to place the under-liner. I found some Uhaul padding cloths that would work nicely, from the garage…

I didn’t skimp on the liner itself and bought 45epdm liner at the Atlanta Water Garden store ($270!) along with a 1800g/hr submersible pump ($150). I looked at the liners available at Lowes/HDepot, and didn’t want the low quality/price, because one hole in a liner would be a mess to fix. Once the liner was in place, the real work/engineering started on the filter. I wasn’t going to spend a minimum of $300 an a filter and another $300 on a skimmer, so I went the homemade bio-filter route. Using the Skippy site and this crazy british guy’s site as a guide, I built my own filter using a plain-old rubbermaid tank, pvc tubing, pvc valves, lava rock, and scotch-brite-like scrubbie pads (Dollar-store – $10). The lava-rock and scrubbies are used as a “house” for all that beneficial bacteria that will live there and eat-up all the junk that algae likes to feed on.

I also added several plants, like Anachris, Water Lettuce, two-leaf and four-leaf water clover. The plants will also compete with the algae and provide oxygen to the fish, so they’re not gasping for air. Within a few months, I should have crystal-clear water. Total cost for the filter was $50. Plants ran about $20.

Once the pond was filled, I bought some cheap-o fish… 20 minnows and 20 goldfish – total cost $7. Most people use these as feeders, and I wasn’t about to spend $200 on a koi!

I’ve done some work on the tubing since I filled the pond, painting all visible parts black with spray paint and burying most of the water-routing. I also got a great deal on stone-work for the edging from Lowes.

Although the original design called for the shape to be of a kidney-bean, somehow when I started digging it turned in to an oval. ;–) Luckily the shape works well with the location of the waterfall and pump, helping circulate water around the planted plants, so there aren’t any dead spots for algae to take hold and junk to collect.

Things left to do…

  • Landscaping the area around the pond and create a viewing/sitting area.

  • Purchase a palette of slate for the waterfall. It is currently using rocks I found during the Big Dig.

As expected, there was an algae bloom within a week of the pond being filled. It’s starting to subside now as the bacteria and plants take hold. I’ll post pictures next month and hopefully, I’m not staring at pea-soup. ;–)

The only design flaw thus far, I didn’t account for, was water overflow. It’s been raining a lot here lately, forcing me to open the drainage valve under the filter manually to drain the pond. If the water breaches the walls (think New Orleans levies), things can get ugly really fast, so building some automated overflow in the system will likely be a winter task.

Open Source Meets Demand Generation

| Comments

(UPDATE: If you have no clue what Demand Generation is, take a look at my Layman’s guide)

Applying open source business models and development methodologies to middleware have seen increasing popularity in recent years. Needless to say, the model has worked with notable companies such as JBoss, Red Hat, Pentaho, Hyperic, and others. Of course, it takes more than just an open source business model to stay in business. These companies all needed sales to close deals, and in turn, sales needed marketing to provide qualified leads. One thing all of these companies have in common is efficient marketing and sales teams, powered by Demand Generation Technology. The use of demand generation, allowed these companies to scale quickly by providing increased ROI in marketing and increased efficiency in sales, via automation of the lead qualification and nurturing process. In essence, sales personnel aren’t wasting their time on cold leads, and marketing isn’t wasting time trying to corral leads that “leak” out of the sales funnel.

I recently wrote an article that mentions why Open Source Companies are uniquely positioned for maximizing demand generation technologies. You can see the article here. In essence, these companies have been able to identify and “upsell” their community in to their support, training, and consulting services. The unique position of OSS companies relying heavily on their community, makes demand generation a high-value proposition for them, and a near-necessity to any OSS company wishing to tap in to its user-base.

If you don’t believe or don’t know of the power of automating your marketing and sales efforts through demand generation, simply look around at the successful batch of open source companies, and you’ll see them using it, or on the brink of implementing it. Proof enough? ;–)

Open Source demand generation for Everyone

LoopFuse, is an open source company, founded by myself and Tom Elrod. After working for years at JBoss and with close to a decade of email marketing experience under our belt, we saw first-hand what demand generation could do when applied to an OSS business. Oddly enough, when we looked across the landscape, all we saw were a hand-full of proprietary players, that we felt were charging way too much for the value they were providing. Applying what we have learned over the years with regards to increasing marketing and sales efficiency, open source business models, and enterprise-class software development, we were certain we could be a disruptive force in this market, innovating faster, providing a complete services offering, and helping expand the market, so “the masses” could benefit from this critical technology that is increasingly becoming a necessity to those wanting to grow their businesses. Additionally, leveraging an open source business model allows us to innovate at a faster-pace than our proprietary competitors and keep our costs low – passing on those savings to our customers.

With that being said, we have recently released our first version of “One View”, our OSS demand generation solution. It is distributed under the GPL, complemented by an Enterprise Edition that is part of our ASP, or SaaS, offering.

Additionally, we will be launching even more enterprise-level features in our second version, due in May 22 (Yes, we move fast). Just in time, for OSBC, where we will have a shiny booth and you can watch me yap away during our presentation, about how implementing LoopFuse’s demand generation solution is painless, and frankly, a no-brainer. ;–)


Roy Russo

Marc Fleury, JBoss, and Entrepreneurship

| Comments

How much should an entrepreneur make once his company is sold? What percentage of equity is “fair” for founders to hold on to? Personally, I despise the word “fair”, because it always leads to some bed-wetting liberal socialist ideal of what they deem to be “right” and “just”. Why I ask these questions, is due to the meandering and degraded thread on TSS, regarding Marc Fleury leaving Red Hat, and what was a “fair” amount of equity he and his family should’ve kept.

Anyone that has ever tried to start/build/market his own startup, fully realizes how much risk, sleepless nights, knots-in-stomach, overwhelming stress, etc… are associated with such an endeavor. A founder absorbs 100% of the risk in the early stages, often going without pay, insurance for himself and family, and simply living life trying to fulfill a dream. This is why most of us stick to working for “the man” where a paycheck and benefits are assured, because we simply don’t have the stomach for it. Its that point, that many of the incessant little whiners on TSS seem to overlook, or simply have never experienced. Whether Marc Fleury walked away with two dollars or a hundred million dollars, is not my problem. At the end of the day, what matters, is what I got out of JBoss, because at the end of the day, its all about me. ;–)

Clearly, the whiners on TSS feel the same way. Don’t let them fool you with their march against “the evil corporate greed monster”. No, many of these guys are angry, because they weren’t part of the equity-event – or didn’t receive their “fair share” (waah!). In fact, most of these clowns decided long ago to leave JBoss and launch a competing product, even while wearing their red floppy shoes. As Bill Burke put it, it was a coupe. Would you reward half a dozen employees of yours that decided to fork off and launch a competing product? Specially, during the most critical times of a startup? I don’t know about you, but I would move to crush them like little grapes.

So that leads me to what everyone “got” out of JBoss, ignoring for a minute the peanut gallery throwing their boogers at Marc. Many of us didn’t make enough to retire – clearly, most of us are still working. What JBoss did for the industry was prove that OSS was able to compete toe-to-toe with commercial vendors, and further proved that the business model was viable. So what do we have now? Alfresco, Mule, Sugar, and others, all emulating (in some form or fashion) the JBoss model. What does that mean for you? More jobs, more growth, more success, and hell… maybe even turning your own OSS project in to something that makes money! In this respect, the whiners should be thanking Marc for putting OSS on the map, as it will, in turn, benefit their own projects (These guys are a bit too shortsighted to see that, however).

For me, there is something more important than immediate cash benefits. There are also intangible benefits to the entire JBoss story for those working here. JBoss projects were, and still are, mostly controlled by their project leads. For our own Portal project, we didn’t just sit around coding all day like a bunch of cube-farm coders (I’d kill myself) taking orders from some clueless architect. No, among other things, we were responsible for marketing, evangelizing, answering support cases, delivering and writing the training materials and certification exams, interfacing with customers/partners/analysts, etc… Essentially, we are a business within a business. This is not only empowering to the project developers but it also exposed them to areas outside of “the code”. From my point of view, in my 2+ years here, I’ve learned the marketing/sales side of the software business better than any MBA could hope to, from some windbag professor. (Some studies show that getting an MBA makes your dumber, but anyway…)

So what was my net benefit working at JBoss? Not only did I put a little cash in my pocket, but more importantly, Fleury taught us all how to run a successful software business. You can let that bake your noodle all you want, but I don’t think anyone can put a price tag on that sort of experience. When I could’ve sat in a cube and worked at some bottomless pit of a corporation, I chose rather to work at JBoss, and I am much wiser for it. So not for the immediate cash, but for my future career potential, do I thank Marc for working things the way he did. What I learned here at JBoss, no one can ever take from me and likely will have a severe positive impact on my future income potential. However, another tenth of a percentage point of equity, would’ve just meant nicer rims on my car. Which would you choose?


Badgeware and Open Source… Again

| Comments

So the debate continues… First, Matt Asay dives in on his blog, and now my good friend and former colleague, Andy Oliver, has decided to reply to my blog post on what I see wrong with OSI’s stance on badgeware licensing. You can view his post in its entirety here. To add fuel to the fire, there’s an interesting thread on TSS, regarding MuleSource that has degenerated in to a licensing discussion, and now Matt Asay has given his opinion on that. This goes to show exactly how passionate the open source community is, when defending/defining “open source”.

On Andy’s Blog… I have only the most respect for Andy, having worked with him in the past, and his being a critical member of the early days of JBoss, but… he’s just plain wrong. My telling Andy he’s wrong is nothing new, but this time, he’s just REALLY wrong. So wrong, in fact, this post is purely dedicated to his twisted view of “open source” and OSI’s stance on badgeware. ;–)

Andy tries to make a point that if most/all libraries used by JBoss required attribution, JBoss would have been unsuccessful as a company. He contends that the sheer amount of screen real-estate would’ve crippled any application built on JBoss.

If this licensing scheme had taken off in the early days then, depending on the most prevalent terms regarding UI persistence, I think JBoss would have been inviable as a company and Alfresco would have never been a customer. In fact, forget the amount of screen real estate. Some “exhibit B” licenses are requesting SPECIFIC screen real estate. If that happened then it would have been inviable to create aggregate works using two packages which use the same licenses.

I hate falling in to the trap of what could’ve/should’ve, but lets entertain Andy’s thoughts for a little bit. IF this licensing scheme had taken off, JBoss had a few choices:

  1. Include those libraries AND their attribution. He’s right, this would’ve made for a really ugly web application.

  2. Sign agreements with the underlying component authors to remove the atributions.

  3. Find another package that does the same thing and doesn’t require attribution.

So there it is… is choice diminished? Is the code any less “open” and free? Is its redistribution negated? Nope. Take his mention of Alfresco… They require attribution, so what are my choices if I want to bundle Alfresco with my web application?

  1. Build a competing product, myself.

  2. Sign an agreement with them for attribution removal.

  3. Find another JCR-compliant DMS. (Magnolia, Nuxeo, Jackrabbit, etc…)

  4. Include the atribution.

  5. Go cry on TSS about their licensing.

I do agree, in this scenario, that badgeware licenses may affect adoption of a product. People still have choice, and most, will likely choose the free options rather than the costly ones. However, its a calculated move by these companies, as they are probably betting that those who choose to sign agreements will offset the lost revenue of those who went elsewhere. My own opinion on attribution licenses is that they will slow down adoption and decrease market share. Is that a price worth paying? Apparently some of these companies think so.

Next, in Andy’s rant… err… rebuttal…

…you guys are potentially creating a class software that can’t be aggregated together even under the same license! A class of software that you wouldn’t use in your product for practical reasons (every screen has millions of pixels dedicated to ads). You want to call that open source?? Get real! (BTW none of their licenses have been approved by OSI YET)

This software can be aggregated just as before. The one clause in many of these licenses is that I must display some attribution in some part of my app (this differs from license to license). So it may appear distasteful to you, Andy, to add the attribution in your application, but guess what? It may also be distasteful for some to bundle their applications with MySQL, being GPL. So what does MySQL offer? A commercial license!

Andy, being Andy, does a good job at self-promotion at the end of his blog about his company BuniSoft and its product, MeldWare. It wouldn’t be fair if I didn’t mention that his product does compete with Zimbra, which just happens to have its own license, ZPL, which just happens to have an attribution clause. Imagine that! ;–)


Badgeware and Open Source

| Comments

A few months ago I stumbled across this well-written article on ZDNet that discusses whether “badgeware” should be considered “Open Source”. For those of you that may not know… the “official” definition of Open Source is maintainted by some self-appointed organization, known as OSI. You can view their definition, in its entirety, here. OSI is responsible for defining “open source” AND adding their stamp of approval for the many licenses that are floating about nowadays. To my knowledge they refuse to add any “badgeware” licenses to their approved list – even though most of these licenses are simply derivatives of the Mozilla Public License.

The term “badgeware”, generally means that a licensee must leave in-place certain image/text hyperlinks that normally point to the author’s website. So yes, you have access to all the source code, but are not allowed to remove these images that identify the original authors. Is that “open source”? To me, it is. To the OSI, it isn’t.

Why does badgeware exist?

Simply put – It stops the Larrys of the world from taking your code, branding it with their big fat “O”, making a mint off of it, and never paying you a nickle. Its another method that open source companies have found to create cash from “free” (or “monetizing” – stupid word).

A lot of these badgeware companies own all of their product’s IP. In other words, they own the rights to the code. This is an important distinction from the opensource companies/projects of before, because when you own all of your IP, you are able to change licenses whenever it pleases you. For example, if Apple wanted to rebrand OpenSourceProductX, its authors could change the license to something Apple would think is appropriate, in exchange for $. So badgeware has two positive effects, 1. Free branding, and 2. Cash.

In fairness, I will also mention that another avenue for a badgeware company turning their products in to cash is that the “badge” serves as a nag of sorts. The MuleSource CEO is pretty clear about his motives in this posting, regarding that:

So, if you use Mule in your software product and sell it commercially, then you are required to either make a licensing deal with us or keep the “powered by Mule” logo visible.

SugarCRM is probably the best known example of this. If you were to download their open source CRM application, you would find their SugarCRM logo at the bottom of every page, and are bound by the license terms to not remove it. Sorry, Larry, you can’t take Sugar and rebrand it Oracle.

Is badgeware open source?

I know… why there’s a stink over this is actually quite silly, but there has always been an overabundance of sillyness and religious fighting in the opensource world, so its par for the course. Why OSI won’t approve of these new licenses, I could not gather from the article. After reading the OSI’s definition of “open source”, I could not find any bullet-point that forbids “badgeware”.

Working for JBoss, I’ve had to listen to the pinheads at BEA launch public crybaby fits over “JBoss is not as open source as BEA, as open source as IBM, as open source as Apache, as open source as your mom”. From them, I expect the ridiculous and incoherent ramblings of a lunatic… from the OSI I would simply expect a coherent and reasonable bulletpoint in their definition of open source.

Badgeware is certainly not going away, and my fear is that if the OSI chooses to ignore it, or worse, refuses to approve the licenses, they will find themselves as irrelevant as the UN in short time.