Talkback: Purposes for a Software and Internet Social Purpose Corporation

Briefly the new Washington State Social Purpose Corporations are similar to Benefits Corporations or B Corporations that now exist in 7 states, except that their social purpose isn’t defined by statute but rather can be customized in the corporate charter.  In turn, this provides the opportunity for an SPC to have social purposes not contemplated by the statutes for Benefits Corporations.  More information on WA SPCs can be found here, here, and here.

If you could create the purposes for a Software and Internet company that wanted to register as Social Purpose Corporatiodn (SPC) in Washington State, what would those purposes be?

Here are my initial thoughts on SPC charter terms with social purposes beneficial to customers:

  • A la carte pricing for all products and services.  Not required to to purchase the uber expensive SKU just to get one version not offered in the standard SKU.
  • At least two separate pricing models offered for every product and service.  Examples of pricing models being one-time fee, subscription, actual use fees, free but ad supported.
  • No hybrid pricing models.  No pricing model that includes both a one-time fee and ongoing subscription fees.  No pricing model that includes both a subscription and actual use fees for overages.  No ads when a subscription is being paid.
  • All software licenses and accounts are transferable.
  • Opt-in only and separately for all uses of customer data.  No blanket permission to use data via all or nothing Terms of Service.
  • No changes in Terms of Service without explicit user acknowledgement of the highlighted changes.
  • User service can not be terminated for 90 days after declining changes in Terms of Service.
  • Three strikes rule regarding violations of Terms of Service before service can be terminated.  The service can be suspended for a day, a week, and then a month at each strike.
  • All user services can not be suspected or terminated for violating the Terms of Service for one service.

Here are my initial thoughts on SPC charter terms with social purposes beneficial to employees:

  • Hourly pay for all employees even when not required by law.  No more unpaid overtime for salaried employees.
  • Flexible work hours and locations.
  • Separate sick leave and vacation pools.  No combined PTO that encourages people to come into the office when ill to save PTO days for vacation.
  • Health insurance for all employees including part-time employees.
  • Self-directed 401(k) for all employees.
  • No layoffs with out all of the C-level executives being included in the layoffs.
  • No benefits, forms of compensation, or severance packages made available to some employees and not others.  No golden parachutes just for executives.
  • Quantity of contingent staff, consultants, and vendor staff utilized limited to 10% the number of full-time employees.
Posted in Coding, Web development | Tagged , , , | 2 Comments

Cloud Storage Aggregators

As part of the investigation and planning for Project Cloud Hydra, a survey of software providing similar functionality was completed.  While the survey did not find any client-side software that aggregates multiple cloud storage services to achieve provider independence and increased file resiliency and availability, it did turn up a number of cloud storage service aggregator services.  Unfortunately an aggregator service doesn’t provide independence from it’s own service and thus does not fulfill the primary goal of Cloud Hydra, which is providing service independence through redundant use of multiple cloud storage services.

As for existing client-side software, there are some that are able to present a view of multiple cloud storage services and in turn make it easier to manage using multiple services, and some even provide security via encryption prior to upload.  That said, none of the surveyed software actually provided for automatic synchronization between a local folder and all supported cloud storage services and between a cloud storage service, a local folder, and the other services.

Follows are the relevant software and services that were turned up during the survey:

  • Cloudfogger – currently free to use and supports a number of cloud storage services.  Provides encryption prior to upload and optionally locally as well.
  • SparkleShare – OSS collaboration and sharing tool that utilized GIT repositories as it’s storage solution.
  • Syncany – OSS tool only available on Linux currently.  Has promise, but not done enough and not generally useful without being ported to more widely used PC platforms.
  • AeroFS – still in Beta.  Looks like it will provide p2p file sync and sharing with optional cloud storage provided by the company.
  • ZeroPC – a cloud desktop service that integrates with cloud storage services as well as other online services.  Has “Personal Safety Box” that is encrypted, but unclear how much storage is available.
  • InstallFree Nexus – provides a cloud service that allows LibreOffice (free) and Microsoft Office (paid) and rich web apps to used through a browser including mobile browsers.  Provides ability to connect apps to cloud storage services.
  • SMEStorage – provides a cloud service that aggregates cloud storage services and also provides client tools on some platforms.  Has “Cloud-to-cloud realtime backup” buried in the feature list of two paid accounts, which would appear to allow redundancy to be established.
  • Otixo – provides a cloud service that aggregates cloud storage services and provides a WebDAV interface that local applications can utilize.
  • GladiNet – provides it’s own cloud storage service and also service that aggregates cloud storage services.  Looks like it has cloud-to-cloud backup at a certain level of service, but website is not a model of clarity.
  • CloudHQ – a subscription only cloud storage synchronization service that is able to synchronize files between multiple cloud storage services.
  • DuraCloud – is a enterprise service (starts at $1500 / year) that aggregates the storage services provided by Amazon Webservices, Windows Azure, and Rackspace to achieve increased file resiliency and availability.
Posted in Coding | Tagged , , , , , , , , , , , , , | 1 Comment

Fourteen Cloud Storage Services and their Developer APIs

As part of the investigation and planning for Project Cloud Hydra, fourteen cloud storage services and their developer APIs were surveyed.  Those results follow.  If you are looking for more than 5GB of free storage, then SkyDrive, Symform, 4sync, CX, and Cubby are the services you will want to look at first.  This Verge article also covers some services that I didn’t cover here, but omits some included here.

SkyDrive is Microsoft’s personal cloud storage service.  They have a separate cloud storage service included in their Azure cloud platform.

  • 7GB of free storage.
  • Has RESTful Web Service API that is publicly documented and for which I can’t find any specific terms of use specifically for the API (obviously the ToS for SkyDrive will apply with respect to user data)
  • Appears to have the most restrictive ToS of any service as doesn’t even allow profanity.

Drive is Google’s personal cloud storage service.    They also have a separate cloud storage included in their App Engine cloud platform.

  • 5GB of free storage.
  • Has RESTful Web Service API that is publicly documented and for which I can’t find any specific terms of use specifically for the API (obviously the ToS for Drive will apply with respect to user data)

CX is a company focused on providing cloud storage service.

  • 10 GB of free storage.
  • Has RESTful Web Service API that is publicly documented.  While there isn’t an obvious terms of use specifically for the API on their web site, they want you to register as a developer, but it doesn’t appear they actually provide a developer access key or token.

Box is a company focused on providing cloud storage service.

  • 5GB of free storage.
  • Has RESTful Web Service API that is publicly documented.  While there isn’t an obvious terms of use specifically for the API on their web site, it’s necessary to sign-up and get an API Key to utilize their API, so there could be terms of use presented during that process or they might simply cut off an API Key if don’t like an app.

Dropbox is a company on providing cloud storage service.

  • 2GB of free storage
  • Has RESTful Web Service API that is publicly documented although their Terms and Conditions for using the API allow them to cut off your app at any time and also give them rights to use your marks to promote their service.

Cloud Drive is Amazon’s personal cloud storage service.  They also offer Amazon S3 cloud storage as one of their services.

  • 5GB of free storage.
  • No API, but lot’s of folks asking when they will get one.  Considering Amazon was ahead of Google and Microsoft on cloud storage for businesses and it provides a Web Service API, I find it odd that they haven’t provided an API for their personal cloud storage service offering.

SugarSync is a company focused on providing cloud storage service.

  • 5GB of free storage.
  • Has RESTful Web Service API that is publicly documented but contains in their terms of use a statement that doesn’t appear compatible with Project Cloud Hydra:  “You cannot use the SugarSync API to create a service or application to replicate the user experience of the Service, or to create or operate an App where the primary purpose is to enable the services and/or features competitive with the Service, as determined by SugarSync in its sole discretion.

Cubby is a new service from LogMeIn .  LogMeIn has been in the remote machine access business for a while and is just now jumping into cloud storage.

  • 5GB of free storage.  Get an extra 1GB of free storage for each friend you invite who signs up.
  • Unlimited peer-to-peer syncing between your own machines.  Network infrastructure configuration is likely required for it to work correctly due to being unlimited it likely doesn’t go through their servers at all.
  • FAQ states they do not have an API yet.

Symform is a startup focused on providing on a cloud storage service that appears to be a hybrid of cloud storage and peer-to-peer storage.

  • Up to 200GB of free storage but the amount is limited by how much you share from your own machine.  So, it is technically reciprocal storage rather than free storage.
  • My impression is that the system isn’t pure peer-to-peer and relies on central servers to coordinate peers.  In turn, I suspect that if their servers aren’t accessible to your machine, then you won’t be able to access your data.  Not clear how much network infrastructure configuration is required for it to work correctly.
  • Probably doesn’t have a Web Service API since it is p2p, and their site doesn’t provide any details about client API terms of use and instead require developers to contact them in order to integrate the service into another product.

4sync  is a company focused on providing cloud storage service.

  • 15 GB of free storage.
  • No API.  Nothing is stated on their site regarding APIs, integration, or developers.

Wuala is a cloud storage service offered by LaCie.

  • 5GB of free storage.
  • No API.  Nothing is stated on their site regarding APIs, integration, or developers.

Bitcasa is a company focused on providing cloud storage service.

  • No free storage, but unlimited storage for $10 / month.
  • No API yet.  Has a developer page that is just form to enter your e-mail address.  Didn’t immediately send an e-mail, so I would assume is this is to be notified when they have an API.

Nomadesk is a company focused on providing business class cloud storage services.

  • No free storage, but unlimited storage for $10 / month.
  • No API.  Nothing is stated on their site regarding APIs, integration, or developers.

SpaceMonkey is a startup focused on providing a device that basically appears to be a NAS that backs itself up to a peer-to-peer storage network comprised of the devices.

  • No free storage.  $10 / month for 1TB
  • States it is accessible from the road and can share files with non-users, but not clear how much network infrastructure configuration is required for it work correctly.  No technical details were given on how it works.
  • Probably doesn’t have a Web Service API since it is p2p.  Nothing is stated on their site regarding APIs, integration, or developers.
Posted in Coding, Web development | Tagged , , , , , , , , , , , , , , , , , , , , | 1 Comment

Project Cloud Hydra

Project Cloud Hydra is a campaign I just setup on Indiegogo and will integrate with file system to combine multiple cloud storage services into one local view. Works even when one service is offline.  The primary goal of this project is to provide you independence from any single cloud storage service provider.  Independence from short term outages in the service and from long term changes in the the terms or cost of service and even service being discontinued.  Cloud Hydra is purely client software that installs onto your PC.  Cloud Hydra is not a cloud storage service in and of it self, but rather it integrates with Google Drive and Microsoft SkyDrive ( integration is a stretch goal).

To achieve this goal Cloud Hydra integrates with the file system to allow you to “Enhance folder with Cloud Hydra!” and will then take the contents of that folder and upload it to all of the cloud storage providers that you have enabled.  Cloud Hydra will then keep those files synchronized between the cloud storage providers and your machines.  Cloud Hydra requires you to provide it with your credentials for at least one cloud storage service during installation as the minimum required for it to function.  You can configure as second cloud storage service during installation or do so after installation if you would prefer to sign up for additional services after first giving Cloud Hydra a try.

The reviewers at Kickstarter don’t seem to be very fond of non-game software projects.  There are only 10 active ones there at the moment, which is just a fraction of the software games project active there at the moment.  Kickstarter’s editors rejected both Project Cloud Hydra and Project Kickshirtful.  The latter was a Kickstarter meta-project (a project about Kickstarter projects) to facilitate t-shirt providers in relieving project creators of the burden of receiving, repacking and shipping t-shirts for their projects.

Posted in Coding | Tagged , , , , | Leave a comment

Changes in location, employment, and project II

It’s been nearly three years since my last update on this blog.  During the first two of those three years, I was making some regular updates on Facebook and later Google+, but I haven’t been updating those much of late either.  So, time to get back in the habit of blogging again.

During the last three years I resigned from my position at PC-Doctor in Reno, took a position as a remote Software Engineering Manager at Mindspark, relocated from Reno, NV to Kirkland, WA to open and manage Mindspark’s Bellevue, WA office, was promoted to Senior Engineering Manager, relocated from Kirkland to it’s neighbor Redmond just a half mile from where we used to live in Redmond, resigned from my position at Mindspark last month, and have been looking for a co-founder for a tech startup since then.

While it wasn’t mentioned in my last blog post, I had stopped working on Project Wellinghall and started working on a fictional writing project.  The research and actual writing for that project consumed most of my spare time for just over 2 years, until my position at Mindspark ate away at my free time and didn’t leave anything left for the fictional writing project.  When it came to actual writing, my most productive days started out working on the beach at Tahoe and then continued into the night at home, and I haven’t found a similarly inspiring location here in the Greater Seattle area yet.

Posted in About Me, Fictional Writing | Tagged | Leave a comment

Print-on-demand book publishers (aka self-publishing)

I’ve been researching getting a book published, as I’m considering writing a technical book and/or a fictional work, and have come across a few Print-on-demand (POD) book publishers that stood out from the rest to me.

The first is CreateSpace, the second is Dog Ear Publishing, and the third is Lulu. Depending on retail/list price, page count, quantity sold, and freelancing services you may acquire one of the first two will provide the greatest revenue per unit sale through their website for a black & white paperback with a color cover.

CreateSpace charges $39 per title to get a reduced cost for each copy printed, but there are no humans involved in the process, so you may need to spend some dollars on freelancers services if you do not feel confident that you can do quality cover design yourself. On the other hand Dog Ear Publishing’s most basic package is $1099, but that includes cover design and the interior design of 30 images or 5 tables. In the middle is Lulu with it’s basic package coming in at $369, which also includes cover design and formatting with up to 15 images included.

That said, using modern software application, doing interior layout and formatting probably isn’t going to be a big for anyone writing a software engineering related book, so I’ll assume that the freelancing fee you need to pay when using CreateSpace is $250 for cover design (and that’s may well be high, I’ve noted service posted lower then that). In that case, for a 200 page B&W papaerback, Dog Ear is the better choice for technical books due to their higher price. With a list price of $29.95, Dog Ear comes out ahead at 1000 unit, but with a list price of $39.95 – $49.95 then Dog Ear comes out ahead at 500 units. In all of my scenarios Lulu came in second or third.

For books priced below $30, such as fictional works, CreateSpace provided the greatest revenue per unit sale through their website for all of the scenarios I compared. That said they don’t do hardcovers, while both Dog Ear and Lulu do.

Also of note, CreateSpace is an Amazon company, and Amazon also owns BookSurge. BookSurge has been accused of strong arming POD publishers into switching to BookSurge for their printing services or having the buy links of their books listed on Amazon removed, so I’m thinking of going with Lulu or Dog Ear myself. BookLocker has filed and anti-trust lawsuit against Amazon that just recently passed Amazon’s attempt to have the suit thrown out.

Also worthy of metion is QOOP, as they allow you to “take your QOOP store and embed within an iFrame at your personal site or company site” at no cost and they have no upfront fees at all (at least no mention of that I could find); however the charge they cost for per-copy printing is comparatively steep.

Posted in Fictional Writing, Uncategorized | Tagged , , , , , , , , | 4 Comments

Changes in location, employment, and project.

Since my last post, we’ve moved from Las Vegas, NV to Reno, NV. While a number of NV natives describe the day drive between two as extremely boring, none of those making that comment seem to have driven through the unending flatness of the large parts of the Midwest. At least the drive between Vegas and Reno has mountains.

The move was due to my accepting a position as a Senior Software Engineer at PC-Doctor, Inc. here in Reno. We all like Reno better then Vegas. Prettier geography, trees, less traffic, better dog walking route, and a four season climate with lower summer highs then Vegas.

On Project Wellinghall, I’m now on the third phase of M3 and scenario analysis has been running nearly constantly for the last two months. During this phase I’ve discovered two things .  The first is that even with the current bare minimum feature set, the numbers scenarios required to determine the outcome of every combination already has an exponent of over 100 and that the most prevalent scenario result is a stalemate with wins and mutual defeats being quite sparse.

While these two things are not necessarily bad, they won’t allow for a very interesting arena combat simulator since most combatant designs will result in a stalemate when pitted against each other 1-on-1. So then the question becomes change the game mechanics to provide a more interesting 1-on-1 arena combat simulator or go with a different type of game to determine if these mechanics can provide for a fun gaming experience. I’ve decided to go with the later and push off the arena combat simulator until at least M5 and quite possibly M8. At that time I can determine if 2-on-2 or n-on-m arena combat simulator will be feasible and suspect team arena combat scenarios will have far fewer stalemates then 1-on-1.

This means M4 needs to be restructured to provide for a new game type. I’m thinking of doing either an ecology simulation or a dungeon crawler type game. Note sure which yet, but will be determined as part of M4 planning (or at least I detail out the features that both would need and start working on the common ones if I want to defer the decision until later).

Posted in About Me, Game Development | Tagged | Leave a comment

Project Wellinghall: M3 design complete

While M3 planning was completed last week, parts of the plan had not been fully detailed in terms of the game mechanics or implementation.  That design work is now complete, as it most of the refactoring to use a proper logging mechanism.  The first phase including 3 refactoring work items and 1 new features.

The second phase is to put in some internal consistency checking to ensure a steady state is maintained (i.e. that no energy disappearing or materializing out of no where).  I want to get that done before I spend time on balance to ensure that balancing work isn’t wasted on buggy game mechanics.

The third phase is the balancing phase, which includes creating the scenario manager and 3 then 3 new features.  Before implementing those 3 new features, I wan to have the scenario manager in place so that I can effectively evaluate the impact of the new features to see if they are either overpowered or useless.

Posted in Game Development | Tagged | 1 Comment

Project Wellinghall: M3 planning complete

I finished up the planning for M3 earlier this evening.  Most of the engineering tasks did get pushed from M3 into what had been the empty bucket of M4.  The one I did keep was to add a decent logging infrastructure and replace various statements to print to the console with proper logging.  Late in M2 I started to accumulate a lot of these print statements in my efforts to verify and debug the game mechanics, where in my work previous to that the print statement were only short lived,  so they didn’t cause problem.

Also included in M3 is the tool, which I mentioned previously here, that I’m lamely calling the scenario manager.  I anticipate the scenario manager will be of great help in getting a feel for what kind of game reality the individual game mechanics come together into.  Should that game reality seem wanting of the balance necessary to be fun, then the scenario manager will be very helpful in quickly determining how a tweak to a game mechanics effects the overall game reality.

At this point I’m just looking at the game reality in terms of whether it provides for a fun environment in which to design an automated combatant to duel another automated combatant.  For this to be fun for me, the designs for the top units should not follow a single attribute to extreme (i.e. being the biggest, the fastest, or the most enduring shouldn’t be the win button).  Also there should not be one unit design that can beat all comers in all scenarios at all starting distances.  Going a bit further I hoping that there won’t be one unit design that can beat all comers at a specific starting distance, but its possible that may not be doable.  At the same time I’m not trying for a rock, paper, scissor type balance where each unit design has a design it is strong against and one it is weak against.  I’m fine with some designs being generally better then many others, just so long as it isn’t better then all of the others all of the time.

Now I’m off to go survey what my existing logging options are in Python, so I can either pick one or rule out using a pre-existing one and get one with writing my own.

Posted in Game Development | Tagged , | Leave a comment

Project Wellinghall: M2 complete; M3 planning begins

I spent the day trying out numerous dueling scenarios to get a feel for how the game mechanics. After designing a succession of better units, I think there is likely room from improvement in the game mechanics. I’ve also decided that investing a lot of effort in tweaking the game mechanics with only the M2 feature set was not wise, as based on my experience today I think about half of the features I have planned for M3 really need to be implemented to get a more solid handle on how the game mechanics will play.

When I re-planned M2- M4 after re-designing the game mechanics at the end of M1, I left M4 empty and M3 had very little in it. Since that time, M3 has had a couple more features added to it in addition to a number of engineering tasks, while M4 has remained empty.

Currently, I’m thinking I’ll move the other half of the M3 features, which do not appear necessary to tweaking the game mechanics, off into M4. I also need to weigh the cost of the engineering tasks against their immediate benefit. Although a number of the engineering tasks will help with debugging and the time it takes to understand the impact of a tweak to the game mechanics, but I’m not sure the time saved will be offset by the cost in the short term (long term sure, but there may not be a long term for this project if the game mechanics prove fundamentally flawed).

So my next step is to generate SWAGs for the engineering tasks.

Posted in Game Development | Tagged | Leave a comment