a new app pricing model

Personally, I don’t like the idea of “in app purchases” which seems to be the norm these days in the current app pricing model. You get the app for free, try to use it and then find out that you can’t save your results unless you pay the author for this feature. If you’re like me then you usually feel like they’ve wasted your time.

I would suggest that a better model is how we now buy music.

Changes in the recording industry

You used to have to purchase the entire album just to get a single song, that was just how things were. If an artist or band had one killer song that was enjoying a lot of airplay on the radio and assuming that you really wanted that song then you had to pay the $12 or so for the entire album. And you just crossed your fingers that one or two of the other songs made it worthwhile.

With the advent of iTunes and similar websites, we now have the ability to sample and purchase exactly which songs we want to pay for. If half of the album isn’t worth it, you don’t have to buy all of it. If the artist only has one good song then there’s no reward for them to pad the album with a lot of junk.

A new model for app pricing

So why shouldn’t we just show our app’s prices up front instead of hiding them inside? Currently, a new customer can’t see how much of the app is crippled and how much is functional until it’s been downloaded and used. How many times have you downloaded and demo’d two or even three different free apps of the same kind, trying to find one that was reasonably useful?

What we need is a venue for selling our apps like musicians sell their songs. Theoretically, it might look something like this:


More feature transparency

The biggest benefit to a model like this is that it shows the potential customer what’s included in the full program and the cost of each feature. If, like me, they’re not interested in the social connector feature then they simply don’t purchase it. You pay for what you need and nothing more.

As developers, we would distribute modules of functionality and charge the user on a per-module basis. I would suggest that features be priced differently based upon the perceived value. In fact, there’s nothing to prevent the price of a popular feature from increasing over time.

Like in the iTunes model, clicking a play button next to the feature ought to bring up a demo or screenshot of the feature in action.

a call-to-arms to open-sourcers

If you are passionate about the freedoms afforded to us by the open-source community, I encourage you to surf over to Kik corp’s blog post and tell these lawyer-threatening types how you feel about it. The original article describes the situation below.

“My two cents on the npm scandal”

If you haven’t heard the story, here’s the gist of it. A guy named Azer Koçulu published 250(!) open source packages in the popular repository npmjs.org, which is a central repo for all…

Source: My two cents on the npm scandal

creative marketing

Beware the incredibly-addictive game agar.io that will turn you into a cannibal in the microbial sense. The goal of the game appears to be: eat or be eaten.

a∙gar  noun  gelatinous substance obtained from various kinds of red seaweed and used in biological culture media…

This stuff’s interesting if your day job is at a pharmaceutical company. I find the game enjoyable and yet maddening at the same time. You can’t believe how mean people can be until you’ve been at this for an hour… or a day. Did I mention that it’s addictive?

Gaming as marketing

And so I find that I need to market a new website that I’ve created, myJS.io. The game itself actually includes an advertising venue and yet those ads couldn’t be displayed at a worse time: your session’s game death. Seriously, your game death is a time for mourning (and usually some well-deserved cursing) but decidedly not for marketing purposes. On that note, if you play the game you need to turn off your sound and be ready to just quit the game and restart it—it’s much faster than trying to endure the inserted advertisements.

It’s interesting to note that Arnold Schwarzenegger appears to be in one of the ads and he’s trying to sell something to me. I couldn’t tell you what it is because I never watch the ad. I say this as a cautionary tail to Arnold and anyone else who wants to get your attention in the wrong way: you’re wasting your money.

Changing up the advertising model

And so, I play the game as I normally would only I opt out of any skins I’ve earned (I’m level 30 because I’m cool like that) and I tag myself with my new website’s domain name. And then—now this is important—I play in such a way that I’m hopefully not perceived to be a jerk.


Game play

The game incorporates features so that you can move your player in all directions plus two more options: 1) direct/shoot a small uncontrollable part of your mass away from you and 2) split and direct about half of your mass which you can control at someone else.

Your speed is determined inversely from your mass. You begin the game tiny and fast. As you progressively get larger, your speed is vastly diminished.

You increase mass by moving over (eating) small circles which represent nutrients, (possibly sugar), or by eating other smaller players or their parts which they’ve split off somehow.

Add to this a collection of green spiky viruses. If you run into a virus and you’re slightly larger than it is then you’re blown into smithereens and yet you still get to control the collection. And yet this is usually the trigger for a feeding frenzy as your neighbors eat you for lunch. If you’re the same size as the virus or smaller you can pass through safely.


A normal strategy for most appears to be to eat anything around them that they can. Some form alliances by sharing mass with another player then teaming up on others. Yet others hide behind viruses. Another strategy is to shoot enough of your mass into a virus so that it creates and shoots another virus at some larger player, causing them to blow up (with the subsequent feeding frenzy).

There are splitting attacks, multiple splitting attacks, baiting attacks, corner attacks and one that I really hate: a smaller player approaches you and at the last moment their team mate gives them enough mass to eat you.

But nowhere in all that did I describe the strategy of simply: eating the sugar and being nice to others. Apparently, that strategy doesn’t appear to exist, until now at least.

Enter the marketing strategy

So now, I visit agar.io and play the game with my website’s domain name as my tag. My strategy is to eat sugar, play nice, avoid eating the small/helpless and just survive as long as possible. The longer I survive, the more people will see my domain name.


Is it better than standard advertising? It’s certainly better than others I can think of. The only money it costs me is my time but it’s a fun game so I don’t mind. I’d bet that hundreds of the habitual players have even memorized my domain name by now and some of those have even visited the website. In fact, there have been many times when another player shows up and then rewards me out of the blue, seemingly, with mass. Presumably they remember me from some previous session. Think of this as karma-based game marketing.

Eventually, someone who sees my website might want their own website or app designed and all this will have paid off. And even if it doesn’t, what did I lose ultimately?

database app, no server-side

This is new for me. As a long-time website developer I consider myself a hardcore backend developer. For years I’ve contracted out as the guy you’d go to for the database design and subsequent server-side code to access that database. And now I find myself working on a website with a slick-looking frontend and—gasp!—no server-side coding at all.

“How is this even possible?” you ask. Even a week ago, I’d have been just as confused as you may be now.


Fortunately, there’s a platform called Firebase which actually allows you to write a database application with no server-side code whatsoever.

Here’s a list of things you’d normally need backend code to do on behalf of activities initiated by client code (on both your users’ and your admins’ browsers):

  1. Authentication, password maintenancerights control and logged-in state management
  2. Creating database records or objects
  3. Reading from database records or objects
  4. Updating database records or objects
  5. Deleting database records or objects

It turns out that you can configure Firebase to use email/password authentication and as a result of this decision you can do your entire site design without necessarily writing any server code.

As an added benefit you then don’t have to find a hosting provider for that server-side code either. And since Firebase allows you to serve up your static HTML website then this is appears to be a win-win.

Changing your perspective


In other systems like Node.js, e.g., you write your application from a server-centric perspective. You might begin by creating something which listens to a particular port, sets up a router for which pages are delivered and then you setup handlers for when a page is requested or when form data is submitted to a page. Lastly, you might then write some separate templates which then are rendered to the client when a page is requested. The design approach is very much: server-side first, client-side second.


Firebase appears to be turning things completely around. In this case you might begin with the page design itself using something new like Google’s Polymer framework. You would focus a lot of attention on how great that design looks. But then at some point, you need to register a new account and then authenticate and this is where you’d code it from client-side JavaScript. Here, the design approach is: client look-and-feel first, client JavaScript to authenticate second.

Rendering static plus dynamic content

In the past we might have rendered pages with server-side code, merging data in with a template of some kind, say, something written in Jade. In this new version we still might have a template but it’s just on the client now. Additionally, Polymer allows custom elements to be created. If you’ve ever written server-side code Polymer does allow you to bind data as you might expect.

Page routing

The Polymer framework includes a client-side routing mechanism so that you may serve up different pages from the same HTML document. But even if you don’t use this approach then Firebase‘s hosting provider will do that for you; just create separate pages and upload them and they’ll take care of the rest.

Why you might want this

Like me, you might have built up a level of comfort with earlier approaches. I myself often think about a website design from the server’s perspective. One downside to this approach is that you possibly could end up with a website design that looks like you spent 90% of your effort on the backend code and didn’t have enough time in your schedule to make things look really awesome for your users.

By beginning your design with the UI you are now forcing yourself to break out of those old habits. You work up something that looks great and only then do you begin the process of persisting data to the database server.


This now allows you to focus on how the application will look on many different devices, screen resolutions and whether or not those devices include a touchscreen and features such as GPS, re-orientation, etc.

Google and Firebase

All of this Firebase approach works rather well with the Polymer framework and I’m sure this is the intent. In fact, there seems to be a fair bit of collaboration going on between the two with Google suggesting that you host on Firebase from their own website.


I think one big benefit to no server-side is that there is no server-side app to scale up. The downside then is that you’ll likely have to upgrade your hosting plan with Firebase at that point and the pricing may or may not be as attractive as other platforms like Node.js on Heroku, e.g.

Custom domain

Of course, you have to pay $5/month minimally to bind your custom domain name to your free instance. I wouldn’t call that expensive necessarily unless this is just a development site for you. In this case, feel free to use the issued instance name for your design site. At this $60/year level you get 1GB of storage which is likely enough for most projects.

Pricing note

Firebase‘s pricing page mentions that if you exceed your plan’s storage and transfer limits then you will be charged for those overages. Obviously, for the free plan you haven’t entered your credit card information yet so they would instead do something in the way of a denial-of-service at that point. If you have opted for that minimum pricing tier please note that this could incur additional charges if you’ve poorly-sized your pricing tier.

Overall thoughts

So far, I think I like this. Google and Firebase may have a good approach to the future of app development. By removing the server you’ve saved the website designer a fair bit of work. By removing the client-side mobile app for smartphones then you’ve removed the necessity to digitally-sign your code with your iOS/Microsoft/Android developer certificates nor to purchase and maintain them.

All of this appears to target the very latest browser versions out there, the ones which support the very cool, new parallax scrolling effects, to name one new feature. The following illustration demonstrates how different parts of your content scroll at different rates as your end-user navigates down the page.


Since parallax scrolling is now “the new, new thing” of website design I’d suggest that this client-centric approach with Polymer and Firebase is worth taking a look.

crowd-sourcing my lost keys

I don’t usually buy gadgets but I thought this one would be useful. The Tile is supposed to allow you to easily find your stuff in the event that you lose it or, say, someone steals it.


The Packaging

Seriously, the packaging at the Apple store is your typical work of art and designed as carefully as was the Eiffel Tower or Da Vinci’s “The Last Supper”. Each progressive step in opening up the box was a moment of discovery as each of the layers was unveiled. If you’ve ever opened up a new MacBook or iPod or iPhone or Magic Keyboard or Magic Mouse then you’ll know what I’m talking about. There’s probably some law of nature that states: It can’t be evil if its box is beautiful.

“There’s probably some law of nature that states:  It can’t be evil if its box is so beautifully-designed.”

The Cost

At $70 for four, that’s about $1,400 per pound for the product itself minus the packaging. (I guess it sounds a little over-priced if you say it like that.)

The Setup

Step 1:  Discover that this doesn’t work for your iPad II. Er, what? I bought this at the Apple store. What do you mean this isn’t compatible with my iPad?

Of course, the Apple salesperson I asked told me that it was compatible. And the external packaging and even the internal documentation failed to mention this incompatibility. You find this out when you attempt to download the app and it informs you of this.

Step 2:  Download the Android version and put it on your smartphone instead.

Step 3:  Push and hold the ‘e’ on the Tile itself to discover it within the app. Name it with the thing you’ll be using it with like “My Keys” or “Dude, where’s my car?” or similar.

Step 3.d:  Push and hold the ‘e’ multiple times on that pesky fourth Tile which really doesn’t want to behave itself like the other three. Stop and start the app and try again. Power off and on the phone and try again. Push the ‘e’ while saying encouraging things like “Seriously?” and “I’m going to send you to the drawer of lost things…” and eventually it will be discovered within the app just like its well-behaved brothers.

The Understanding

Visit their website because you feel special now. You want to commune with the maker of this product. You have a vague wondering of how all this can work when Bluetooth—the underlying technology—only has a range of maybe 9′ on a good day. How can this find my car when it’s nowhere near me?

And then it hits you. It’s a crowdsourcing paradigm. They’re using all their customers to crowdsource where my keys are. All the time. As in, 24×7. As in, I’ve just paid $70 so that they can conscript my phone for their own business model.

“…I’ve just paid $70 so that they [Tile] can conscript my phone for their business model.”

The Aftermath

When GPS goes out on Halloween it probably dresses up as Count Dracula. It consumes that much power from my phone, at least it does when it’s crowdsourcing everyone else’s lost keys. If I’m lucky, a 100% charge on my Android phone will last almost 24 hours while this thing is running. Am I wrong to believe that it should last longer?

What Now?

So now I’m left with two alternatives:

  1. Leave the app on, support the vast community of poor unfortunate ones who’ve lost their stuff and charge my phone often, knowing that the system will be there for me when I lose my stuff. Buy more chargers. And a bigger data plan from my carrier.
  2. Turn off the app, screw the vast community of idiots who’ve stupidly misplaced their junk and then turn it back on when I need it. Feel guilty and hypocritical that I’m doing that. And taking advantage of their generosity. (Gah.)

In Conclusion

That’s my review of the Tile Bluetooth Tracker. The industry should have some kind of rating system in the form of cute graphics so that you can tell in advance the character of your new app.

So on a scale of 1 to 5 I’m giving the Tile 5-1/2 vampires.


pushing the envelope

I’m a cash person. I deal in cash and I don’t consume credit. I don’t have a checking account, savings account, no IRA and no ATM or credit cards which are bound to a checking account. From time to time I purchase a pre-paid Visa card so that I might make online purchases, but I prefer in-person cash payments over any other.

When I want something in the future, I put the money into an envelope, seal it and mark it with its purpose. I don’t allow myself to open that envelope to re-purpose those funds to something else I want or need. I exercise person fiscal responsibility.

I try to refrain from recurring payments if possible. Notable exceptions are my rent and my Internet bill.

Remembering the Past

At one time, I had a wallet full of credit cards. I recall that one of them alone had a credit limit of over $115,000 on it. That’s a lot of room to get into trouble if you think about it. I do remember making payments to those credit card companies. I can’t even remember how much combined interest I paid since we’re not really conditioned to think of such things—we only remember the things we bought at the time. And this is how we’re programmed to think within the credit-buying space:  focus on the reward and forget about the cost.

“And this is how we’re programmed to think within the credit-buying space:  focus on the reward and forget about the cost.”

Planning For the Future

I am proud to say that I have the next eight months rent in their respective envelopes. I think the average person in the U.S. is living paycheck to paycheck. In fact, it looks like 76% of Americans are living paycheck to paycheck (according to a bankrate.com survey) so I guess that makes me special.

“…76% of Americans are living paycheck to paycheck…”

Minimize Consumption and Buy Locally

As a personal goal I try to minimize consumption, that is to say the purchasing of retail goods within the description of “shopping therapy”. When I do, I try to buy locally. If I can accomplish this, I’m moving more of my economical support to the same place where I live and that helps my local community instead of someone else’s.

Just think of the drop in the U.S.’s dependency on oil imports if we could cut our transportation costs by 80% across the board. And yet everyday the highways have a constant stream of trucks bringing goods and food interstate. We’re conditioned to believe that cost alone is the most critical factor in deciding from which vendor we purchase those goods. Maybe we should change our thinking to select instead the best vendors who are the closest to us. The fewer the miles, the less the transportation cost ultimately. This should go beyond which store we buy from but also from where that store gets its goods. Do all of our manufactured goods need to come from China? Well, they do if you’re shopping by price alone.

Re-use, Recycle, Maintain

I buy used cars and you should, too. The average person panics when their car’s odometer reaches the 100K mark but don’t fear a number, the car will continue to drive even at the six-digit mark, trust me. It does help to understand some basic car maintenance. Change your own spark plugs, the job isn’t that difficult.

I spend an extra $2 for the really good milk in glass bottles (some sort of pre-paid deposit). And then I use that bottle to store dry goods purchased in bulk at the grocery store. The average quart-sized glass storage container might cost from $5 to $30, by the way. As an added benefit the bugs that formerly lived in my cupboard have given up completely and moved on.

Learn how to fix things. Sew. Solder. Sand and refinish. I recently converted a pile of recycled PCs into a private cloud. The skills you learn now you get to keep for life.

Recognize That the Economy and the Market are Fickle

You can’t predict the future, you can only plan for it. I’m old enough to have survived lay-offs, company buy-outs, company closures and the like. I lost my largest customer one day to outsourcing and it took me quite some time to rebound because I wasn’t prepared for such an eventuality. The entire software development industry almost overnight changed and I didn’t see it coming. Although I was making great amounts of money I still wasn’t adequately setup to bounce back from such a sudden loss of income.

So now I think I’m a little more pessimistic about the market in general and I take pains to avoid repeating any past mistakes.

Push the Envelope

And finally, I come to the meaning behind this post’s title. Each paycheck I try to do what I can to seal yet another month’s rent into a new envelope, pushing my savings out into the future. It’s not a bad system. I’d suggest that you’ve been programmed to believe that you can’t exist without a checking account but I assure you, you can.


free energy from ocean waves

The LA Times reports a water shortage on Catalina Island at reasonably the same time that the Jamaica Observer reports similar news. Wouldn’t it be nice if there were a way to generate clean drinking water from sea water? I’ve been thinking about this for half of my lifetime and I’m sure that there’s a way. Consider this idea then published to the public domain as a royalty-free attempt to create energy and fresh water from the ocean.

Faraday’s Law of Induction

“The induced electromotive force in any closed circuit is equal to the negative of the time rate of change of the magnetic flux enclosed by the circuit.”

What this really means is that if you move a magnet in proximity to an electrical coil it will produce power.

Imagine wrapping some wire around a cylinder and then—using a donut-shaped magnet—move this up and down to create power. All you need is a plastic torus which holds the magnet and since it’s mostly filled with air, it floats with each incoming ocean wave.

So now imagine an electrical coil of wire which is wrapped around a smaller-diameter PVC pipe and this assembly is then inserted into a larger-diameter PVC pipe. Embed the end of this in a sand screw anchor and place it so that the average height of an ocean wave hits it halfway up. The rising and falling waves will lift and lower the external magnet, producing power of the alternating current (AC) variety in the coil.


AC to DC

From this point, we’ll probably want to gang several of these together so the easiest method is to first convert the power from alternating to direct current (DC). A simple piece of solid state electronics is available which is called a Rectifier and one of these would be necessary on the output side of the coil mentioned earlier.

Output So Far

The power output of a rectifier in this scenario is pulsating direct current. It will vary from zero to some number of volts. The upper range of that voltage will depend upon the strength of the magnet(s) being moved as well as the distance from the magnet to the coil and factors like the number of turns overall in the coil itself. Additionally, the speed and size of the incoming waves would determine how much power gets transformed into the output of the rectifier.


Power = Current * Voltage

The usable power is a combination of both the amount of current that flows times the voltage across the circuit. Think of the voltage as the difference of cars between Los Angeles and San Diego (assuming that everyone is going south for Spring Break) and the current is a measure of the number of cars per hour seen on Highway 5 going southbound.

Admittedly, the current for one rig like this probably isn’t much. In a case like this you would want to create many of these rigs in one area and gang them together. Now that the power has been converted to DC, you can run these “in series” to increase the voltage or “in parallel” to increase the current. Regardless, adding additional units increases the power overall.

What To Do With That Power

Here is where things get interesting. We only have one moving part in this contraption, a wave-driven plastic donut that moves up and down to generate power. We can go a number of different routes from here.

  1. Build a pier that is suspended by these as a base and use the power to charge batteries. Imagine a pier which incorporates these columns to hold it up, only each column now has a large-scale bead which moves up and down. Inside each column is the necessary wiring which is terminated at a charging station on the pier. The power could then be used to run services on the pier such as lighting, for example.
  2. Route the DC power to a proton exchange membrane (PEM) fuel cell to split off hydrogen and oxygen. Note that a typical input voltage is usually less than 1.5V.
  3. Route the DC power to a more simple electrolysis circuit to split off both hydrogen and oxygen. Again, the typical input voltage is usually less than 1.5V.
  4. Store and later recombine the hydrogen/oxygen again using a PEM cell but this time producing power.


Decomposition of Salt

Seawater contains a healthy amount of salt. It may be worth noting that when you add a voltage to a solution with salt you split salt (NaCl) into ions at this point. With respect to the recombination of hydrogen and oxygen to produce drinking water, the chlorine itself would be a useful component with respect to keeping that water clean until it can ultimately be filtered for use.

In fact, there are a number of saltwater swimming pool options now which do just this; they split the salt to form chlorine which is used to then kill waterborne pathogens in the filter stage.

If we recombine water near our pier we could then use the extra chlorine to prevent the accumulation of water-borne diseases during storage and transmission. But we need not recombine that hydrogen and oxygen locally. In some cases, we need that water further from our project.

How to Lift a Gallon of Water to the Top of a Mountain

It may be worth noting that the country of Peru has 90% of its water on the east side of the Andes and yet 90% of its people live to the west of this same mountain range. If there were an easy method of moving water a great distance, you could solve their water shortage problems almost overnight.

Likewise, there are many cities which need water and the shoreline is some distance below the city in altitude. If you could generate drinking water from the ocean wouldn’t it be great if you could then transport it without needing more power to do so?

Imagine a water ladder, if you will. One of the two components of water is hydrogen and is decidedly lighter than air. This water ladder would be a tube which extends from our pier on the shore and the tube then runs diagonally (or even vertically) up the cliff to where that water is needed, say, to the top of a water tower.

In this case, we only trap the hydrogen output from the PEM cells and we allow this to bubble up through the pipe, arriving eventually to accumulate in a reservoir above a water tower. Here, a collection of PEM cells will recombine that hydrogen with air in the vicinity to create fresh water and to store it in the water tower. These towers are built to be high so that they will naturally create the water pressure that’s used to distribute it throughout a community. But fortunately, the nature of hydrogen is that it wants to rise all on its own. We use this aspect of hydrogen to lift half the component of water to the top of the tower and the oxygen freely available in air itself is the other half—we’ve solved a part of the transportation problem of moving water vertically up some distance and with a power gain instead of a loss.

A Sawtooth Water Delivery System

If you visualized that last suggestion as a diagonal (or vertical) water ladder which lifts hydrogen to the top of a tower, now imagine a diagonal water pipe which transports water to the next tower some distance away. A reasonable decline might be a 5-10% downgrade to easily transport water like this. Once the water arrives at the bottom of the next tower, split it again using PEM cells and have the hydrogen portion raise itself again to to the top where you repeat the process.

The following diagram is that of a sawtooth wave in electronics which has the shape of the path I’m suggesting. Hydrogen is lifted vertically from the base of each tower and then, using gravity, we’re allowing water to flow diagonally to the base of the next tower in the series. Of course, the slope would be much more gradual than this rendering.


Remember, each recombination of hydrogen and oxygen creates power and each splitting consumes power. Think of each tower as both creating and consuming power. The set of PEM cells at the top produce most of the power necessary for the set of PEM cells at the bottom.  This may of course be augmented by solar cells which can make up the deficit power required, which shouldn’t be much. Electrically, each tower is a closed system and self-sufficient.

Using traditional methods of moving water over distances, raising water usually consumes great amounts of energy in the form of pumping stations as powered by electricity. Here, though, the weight of air or water itself is the pump which pushes hydrogen ever higher up a water ladder and doing the work for us. And once it’s arrived it produces water and power at its destination (as long as there is a source of air). In the traditional model, each HP of power used to pump water costs about $500/year. If you could see the average motor in a pumping station you would understand that this is an expensive task.

Given a typical water tower height of 130 feet and a decline rate of 10% to the next tower a conservative estimate might be to stage these towers at a 1,300 feet distance from each other. Lowering the decline rate to 5% would push the distances to about half a mile.


Storing hydrogen is difficult and costly. For it to be usable as a fuel it usually needs to be dried to remove any water vapor. Hydrogen itself is the active part of acids so it has the potential of being quite corrosive. Any untrapped hydrogen could create a hazard.

Batteries by their nature have metal connectors and in a marine setting will corrode more quickly than in drier locales. Most charging batteries of the lead-acid variety will produce untrapped hydrogen gas which itself could create a hazard.

Barnacles like to attach to most marine structures and could eventually prevent the free moment of our magnetic floatation bead. There are some coatings which might hinder the growth of these types of creatures from the surface of the PVC or similar materials.

Marine conditions could lower the lifespan of an average PEM cell’s internal surface. A specialized coating might be necessary for seawater.


The underlying source of this power is the combined masses of the sun, the moon and the Earth as they contribute to ocean wave height in an intricate dance. There is no foreseeable end to this energy source.

The device produces hydrogen & oxygen and produces energy which may or not be local to the device itself. The included transportation model allows the water to be moved along with minimal cost other than the tower system itself and its maintenance. In some communities shorter distances would minimize this cost and could be implemented with a single storage tower. The steeper the grade, the more efficient the movement of water within this system which is quite the reverse for conventional methods of pumping water.

The cost of a PEM cell is around US$60 these days. They are readily available commercially.

how to ruin your open-source creds

Submitted for your laughter, a Forrester Consulting announcement which completely misses the point of open-source and its underlying concept of freedom. And when I say freedom, I mean as in “free speech”. Notice that big TM symbol which appears prominently in the middle of the page. Forrester, in touting IBM’s attempt at open-source, has managed to completely trample over the concept in their announcement. Forrester means to prevent anyone else from using the phrase “Total Economic Impact” without indicating that this phrase seemingly is owned by them. I don’t recall voting on this loss of my freedom of speech, do you? And since IBM commissioned Forrester for this work this means that IBM still doesn’t understand the spirit of open-source. Patents, trademarks and copyrights are the antithesis to the open-source movement.

“Patents, trademarks and copyrights are the antithesis to the open-source movement.”

Don’t be fooled by huge corporations like IBM and like Microsoft who pretend to embrace the open-source community. They don’t see things like you or I do. You and I might see open-source as a means of making the world better. They see open-source as a means of getting software made for free. And yet, this won’t convert into lowered prices for consumers, it will convert into higher profits for the owners of their stock.

In a similar manner, I should claim a trademark for the term Bite My Shiny Metal Open-Sourced Ass, ________™. But then again, that would just limit your free speech and I’m not into that. Tell you what, I’ve decided to be generous and instead claim a copyleft for that phrase—the public is now free to repeat that as much as they want as long as they not alter the infringement status. In fact, I encourage you to use that phrase when you are annoyed by any patent-holding company trying to pretend to be open-source friendly.

Go and do likewise. If you see a big corporation claiming to love open-source and yet they have a habit of patenting common phrases then you know they’re full of it. Call them on it and let others know.

Versus the good friendlier better guys:

crowd-sourcing your bugs

Most of us in the contracting space are interested in alternate ways of making money. Personally, I enjoy straight programming to almost any other means of earning it but I discovered something recently that looks interesting. There’s a website now that seemingly pays for finding bugs in the code of others. As programmers we are often good at spotting problems early and we’re probably the best at finding them. Troubleshooting is usually something that isn’t seen as a profit center so why not flip things and make some money doing it?


Enter the new website which appears to be crowd-sourcing the problem of code testing. Various companies then work with the website to outsource this task to others who attempt to identify a problem worth fixing. If they decide that it’s indeed a bug then they usually pay some form of money to the researcher.

My Anecdote

From my own limited experience, I created an account, reviewed the many offers and picked the Tesla Motors website to look for security problems. Within an hour I identified something from a third-party webtiming partner which turned out to be flagged by Microsoft Security Essentials as the Win32/Spursint.A Trojan. (Not bad for just an hour’s work, I thought.) I then wrote up my findings and awaited  a response. Someone  did respond within 24 hours.

But then the fun began as I attempted to communicate what I’d found. Since they couldn’t recreate what I’d seen they submitted the linked JavaScript to other antivirus sites which found it to be clean.

Next, I tried to explain the nature of the Akamai network of caching servers and how a local version of their server might be delivering different content than what I’d received: some get the Trojan and some do not, in other words. Again, this was falling upon deaf ears.

I then tried to convince them that development-related timing code isn’t normally pushed to production, that their build process should have groomed this out in the first place. Again, no sale. They just didn’t want to hear that their third-party JavaScript provider could have been compromised. Lesson learned: don’t waste your time twice with the same company who won’t listen to reason.

Closing Thoughts

Will I use Bugcrowd again? I like the concept. I think I had rather spend my time, though, in a more fruitful venture with a less risky return.

New wisdom: Avoid systems in which you perform labor and then someone else decides whether or not your labor deserves getting paid for. Oh, and unless you have an up-to-date virus checker you may want to avoid the Tesla website since it sometimes delivers a Trojan to your browser.