Backups

Let’s talk about backups. Hardly anyone has adequate backup of their important files. Even IT professionals, who know better than anyone that backup is important and who should know how to do it, don’t backup their systems appropriately.

A related, but somewhat different, problem is synchronizing your important files across multiple computers. I had used networked filesystems before Dropbox, but now Dropbox has made synchronization so convenient that I think it’s now something I would hate to live without.

What are my actual backup requirements? Can Dropbox solve my backup needs in addition to being a synchronization solution? What about other cloud storage providers, or less expensive options like Carbonite? Is a home-brew solution feasible? These are some questions I will try to answer, mostly for myself, here.

My backup requirements
There is definitely a working set of files that I want to see synced to every machine that I work on. Dropbox has taught me that. When using Dropbox, I know that my most important files are backed up because they are synchronized to multiple computers. As further insurance, Dropbox is storing them “in the cloud”, just in case all of my computers go down. It seems like Dropbox has become a total solution here and I don’t worry about these important files, or backing them up, at all any more.

There is another class of files, though, that Dropbox isn’t right for. I have tens of gigabytes of family photos and videos that I need to back up better than I am doing currently. Part of the reason I haven’t used Dropbox for these files is that I have hesitated to purchase a paid account, but you know what? I’m not going to let that be an issue anymore. I’m willing to pay $10 or $20 per month if that’s the right solution for me. The rest of the reason, though, is that I don’t really need all those files copied to all my computers. I don’t even think I have space on some of my devices. These files, I pretty much just need them backed up. That’s all.

Yet Dropbox has skewed my perspective on what I consider to be effective backup for any files. Carbonite and other “cloud-only” solutions just don’t seem adequate to me anymore. Having my data on just one machine plus stored in the cloud just seems like too brittle of a solution. I had Carbonite installed on my wife’s parents’ computer at one point and when their computer died, they couldn’t recover their files, even with the assistance of Carbonite customer service. I was in Europe at the time, unable to mount a recovery effort of my own. Also, for some reason, I don’t trust Carbonite’s business model. $59/year for unlimited backup seems like it must break down at some point.

There are lots of ways to keep my photo and video file folders synced to another computer so I would at least have two copies of them at my house. That would be better than what I have now (which is nothing), but I have a paranoid side that would always worry about a fire, flood, or burglary that destroys all computers in the household. That’s when the extra comfort of a “cloud” copy comes in handy. I don’t trust the cloud enough to rely on it whenever one hard drive goes bad, but I can trust it as a second layer of backup in those black swan disaster scenarios when two hard drives go bad.

The bottom line is that I won’t be completely comfortable with my backup situation until my photo and video files are stored in two places in my house and in the cloud. This leads me to conclude two things. First, maybe Dropbox will be a good solution for these backup needs as well. Second, the main cost for my backup system is going to be the cloud storage.

Cost
How much does it cost to store extra data at my house? Let’s say a 1 TB drive uses 13 watts. Multiplied by 8776 hours per year and $0.15 per KWh, that’s about $20 per year (per TB). We’ll convert the up-front cost of the drive (about $100) to an annuity of $5-10 per year so the total is $25-30 per year per TB, or about $0.03 per GB per year.

How much does it cost to store data in the cloud? Dropbox costs $200 per year for 100 GB, or $2 per GB per year. Amazon S3 costs $0.14 per GB per month, or $1.68 per year per GB, or $1.116 per year per GB for the reduced redundancy option. (And data transfer in is free now.) Amazon Cloud Drive is about $1 per GB per year, although their current offer is to store all of your music for free. Apple iCloud is $2 per GB per year.

Wow. Storing the data myself is about 30 times cheaper than storing it in the cloud. Yet at this point, it’s not significant enough to cause me to engineer my own solution.

Carbonite
Another thing about these numbers is they make me reconsider my dismissal of Carbonite’s business model. Maybe the marginal cost for data is indeed so small that an unlimited data plan is feasible. And if I’m storing my files on at least two of my own computers, then I wouldn’t mind so much using Carbonite merely as a second layer of backup. This suggests that I could use AeroFS (or an old-school solution like Rsync) to synchronize all my folders onto one machine and then use one Carbonite account to back them all up for $59/year. But I guess it’s not honest to back up multiple computers with one Carbonite account. They want me to pay $59 annually per computer. Then again, at that price, I could afford three Carbonite accounts for less than the price of one 100GB dropbox account.

Short-term Plan
I don’t think I have 100 GB of data that needs to be backed up yet, so I’ll probably go with the $20/month Dropbox plan. I’ll install that main Dropbox account on two computers, then I’ll create some free Dropbox accounts and use Dropbox shared folders to make sure they sync with my main account.

Technical details
Speaking of a home-brew solution, here are some interesting projects that could help you create your own backup solution:

Tarsnap – A very UNIXy solution. You run the “tarsnap” command on your important directories every night and it encrypts, compresses, and copies to the cloud only the bits of data that have changed since the last backup. Still, $3.60 per GB per year. And lots of my files are probably incompressible.

Brackup – Similar to tarsnap, brackup will encrypt your files and only backup the bits of data that change each time. Written in PERL, it can send the files to lots of different places (backends) and you can always write some code if you need a custom “backend”.

A Perfect Solution
It would be great if someone could find some way to take advantage of the cost difference between storing my own data and storing it in the cloud. Say I installed a 1 TB hard drive at my house and used one-third of it for my own backup and dedicated two-thirds of it to storing backups for other people using some kind of peer-to-peer backup arrangement. It would, of course, have to encrypt my data before it gets sent. The big question mark is reliability. If my data is stored on computers that I don’t control, then a program would have to continually monitor my backups to see if they disappear, and recreate them if they do.

Of course, if there were money or credits of some kind involved, then my compensation for storing other people’s data could depend on the reliability of my storage and my network. I’d get paid for storing other people’s data and I’d pay others to store my data. Then I could choose the proper price/reliability/redundancy arrangement for my needs.

Also Related: Distributed Hash Tables – A relatively recent invention that coordinates (in a peer-to-peer sense) the storing of data across lots of computers in a redundant, distributed way. Perhaps they could form the basis for some kind of P2P backup system.

Posted in Uncategorized | Leave a comment

Solution to internet sales tax and the prisoners’ dilemma

In part 1, I gave an overview of the prisoners’ dilemma problem and how it applies to the internet sales tax issue that the US is facing.

Conditional Cooperation

One way to solve the prisoners’ dilemma problem is by introducing conditional cooperation.  (I will be using the terms cooperating and defecting instead of the terms I used last time, staying quiet and confessing, respectively.)  If you choose to “conditionally” cooperate, then you automatically cooperate whenever your friend cooperates and automatically defect whenever your friend defects.  If you both choose to conditionally cooperate, that is the same as both of you cooperating.  With this option, your personal sentence in each possible situation is shown in the following table:

Friend defects Friend conditionally cooperates Friend cooperates
You defect 5 years 5 years Go free
You conditionally cooperate 5 years 1 year 1 year
You cooperate 7 years 1 year 1 year

The important thing to notice about this table is that all of the punishments in the third row are worse than the respective punishments in the second row, which means that it’s never better for you to choose unconditional cooperation over conditional.  A rational person would never choose unconditional cooperation, so we can actually eliminate the entire third row.  We also assume your friend will behave rationally and never unconditionally cooperate, so we eliminate the entire third column.  Then the table looks like this:

Friend defects Friend conditionally cooperates
You defect 5 years 5 years
You conditionally cooperate 5 years 1 year

You can see that it’s in both of your interests to cooperate conditionally and get the one-year sentence.

In terms of the original prisoners’ dilemma, this is obviously cheating.  It’s clear that a prisoner would never really be allowed the option of conditional cooperation, so it doesn’t really solve the original theoretical quandary.  However, where the prisoners’ dilemma appears in real life, often there is room to explore creative solutions.  There is certainly nothing stopping the state legislatures from adopting a conditionally cooperative solution to the internet sales tax problem.

Preliminary solution

Suppose the states start passing laws that say they will collect sales tax on interstate purchases beginning on the earliest date in which at least 45 other states collect sales tax on interstate purchases.

It’s a conditional solution that incentivizes all the states to work together.  It allows the states to come up with a solution instead of waiting for one to be imposed on them by the federal government.  It removes most of Amazon’s power to play one state against each other.  Now Amazon could still choose to pursue sanctions on any state that passed this conditional law, but I think that would be a public relations nightmare for them.

Of course, in this form it would pretty much devastate interstate commerce.  And I’m not talking about the lost sales due to customers having to pay sales tax with their purchases.  If you feel like I do that there’s no reason not to charge sales tax on interstate commerce, then not charging it today amounts to a subsidy of interstate commerce over brick-and-mortar stores, with unfortunate side-effects.

When I say that interstate sales tax would devastate e-commerce, I’m talking mainly about the burden of regulatory compliance.  Consider the headaches for any company, especially a small one, suddenly forced to comply with the state sales tax laws of fifty different states:

  • Different states have different tax rates.  Each state may have totally different definitions for classes of items that are taxed at different rates, or not taxed at all.
  • Even worse, some states may charge sales tax on anything that is shipped from that state and others may charge sales tax on anything shipped to that state, which means customers much pay sales tax two or more times on some goods.
  • States differ in the paperwork that needs to be filled out by companies when they pay sales taxes, in accounting periods for sales tax calculations, in due dates for sales tax payments, and, obviously, in where and how to send the money.

Even though large companies like Amazon are complaining the most about this regulatory burden, it’s difficult to say whether the effect will be more harmful to large businesses or small businesses.  Amazon would certainly have a huge initial project to classify each product they sell under the rules of fifty different states so they can calculate how much tax they owe on each item.  A smaller internet retailer that only sells a thousand items would have a much easier time classifying their items.  However, the ongoing expense of constantly filing different forms in each state and sending the money to fifty different places may require hiring a full-time accountant (or more) at a small company, which is a much larger burden proportionally than a few hires at Amazon who can spread the cost over their millions of annual sales transactions.

With some more creativity, we can come up with some compromises that drastically reduce this compliance burden without impacting the taxes states need to collect:

  • Charge tax on all physical goods, with no special rates or exemptions.
  • Split the tax evenly between the state it’s shipped from and the state it’s shipped to.
  • Set a uniform tax rate for all states.
  • Phase the tax in gradually.
  • Provide a centralized website for companies to report all their sales and pay one tax, which will be distributed to the appropriate states.

Ideally, states would even roll their existing intra-state sales tax collection into this scheme, further simplifying the sales tax collection process.

Refined solution that’s fair to everyone

Incorporating the improvements in the previous section, I propose a sales tax law along these lines:

“This state will charge sales tax on interstate purchases beginning on the earliest date in which at least 45 other states collect sales tax on interstate purchases or on January 1, 2012, whichever is later.  Sales tax must be collected by the selling party.  All physical goods will be taxed at the same rate and no physical goods will be exempt from sales tax.  Items will be taxed at a 2% rate for the first twelve months that the sales tax is in effect, a 5% rate for the next twelve months, and an 8% rate after that.  Half of the sales tax will go to the state where the item is shipped from and half of the sales tax will go to the state where the item is shipped to.  The selling party is required to report their total sales for each tax period divided up in two ways: first, by which state it was shipped from, and second, by which state it was shipped to.  The selling party will then pay one payment, consisting of the total sales amount times the current sales tax rate to a national sales tax body who will then disburse the funds to the appropriate state governments.”

This is still just a sketch.  I’m open to suggestions, and even have a few ideas myself.  But I’m hoping it’s a good start to a simpler and fairer sales tax scheme.  What do you think?

Footnote: It looks like there is already a group trying to do something similar, the Streamlined Sales Tax, and twenty-four states have already signed on.  It doesn’t sound as simple as the scheme outlined above, but it’s definitely an attempt to accomplish the same thing.  Interestingly enough, it exempts “small” online and catalog businesses.  An interesting question is whether it requires a federal statue to legitimize it, which is what the Main Street Fairness Act is trying to do.

Posted in Economics, Ideas | Tagged , | 1 Comment

Opine: an open commenting system for the web

Opine is a proposal for taking the closed comment modules that exist on websites around the world, opening them up and unifying the commenting experience across the internet:

Design details

Here is a prototype (tested in Chrome, Firefox, and Safari).  It’s the same one used in the video and it’s not yet very functional, just motivational.  :)  Once you get there, press any key to pull up the commenting layer or wait a few seconds for it to come up automatically.

(Disclaimer:  The authors’ names I chose are popular internet personalities and bloggers I follow, but the comments are entirely made up just so I could throw a prototype together!  Although they represent some of the sentiments I remember reading around the internet, I made no attempt to match people with their true opinions.  If  I have offended you by the quote I’ve flippantly put next to your name, then first of all I’m honored that you read my blog!  Second, let me know in the comments and I can remove you from my prototype.)

The form on the right is where you can leave comments and rate the underlying article.  The interface should be expandable so it supports long-form comments as well as shorter ones.  It should integrate with a user’s blog and social networks, offering the option to automatically post to those venues, when appropriate.  In the rating options, I have specifically included an evaluation option of “well-written but I disagree”.  Not everyone will use it, but many people are open-minded and willing to hear alternative viewpoints when they are presented in an articulate manner.  An important goal of opine is to help the internet mature from an echo chamber into a place for productive disagreement.

The sections in the other columns are different categories of comments specifically relevant to you, the user.  The one on the top left shows discussion by your friends and those you follow on your social networks.  Only short-form comments are shown, but it is intended that longer responses from blogs and other sites will be referenced even if they can’t be fully included.  These comments are aggregated directly by the browser from blogs and social networks across the internet, which means the content owner can’t censor the discussion or stifle dissent, when it comes from those you respect.

But Opine is not meant to exclude the author from the ensuing discussion.  Indeed, there is probably no voice more important to include.  For this reason, you will see another very important section of the page at the top of the second column, the author’s picks, where the author can provide responses and highlight third-party comments that enhance the discussion.  Additionally, the system will provide hooks for the content owners to be notified when comments are left anywhere on the internet and a plug-in architecture for websites to integrate the comments back into the underlying webpage if they desire.

The other two sections, “recommended” and “popular”, are mainly placeholder sections at this point.  They are examples of categories that would be very useful to people and we hope they can be implemented at some point, but both of them will probably require third-party aggregation services to function properly, so they may not qualify for the initial version of Opine.  In general, the commenting layer will be configurable and extensible with skins and add-ons, and these sections might be great candidates for add-ons by competing aggregation services.

Opine will probably start out as a browser extension, but it is the type of feature that would be useful to people who aren’t technical enough even to install a browser extension.  Since we don’t want to exclude them from the discussion that takes place, hopefully Opine will progress to a point where it can be considered for inclusion in the core browser functionality.

Benefits for news organizations

As a Knight-Mozilla project proposal, it’s important to address the benefits this project from the perspective of a news organization.

Opine can rescue news organizations from the work of implementing and maintaining their own commenting system and save them a lot of the drudgery of moderating it.  It will also allow the news organizations to pool their resources, if they desire, in creating valuable tools to monitor the comment stream, curate the author’s picks section, and provide add-ons to help their users participate in the stream.

As I said in the beginning of the video, commenting on article webpages is becoming less useful by the day as more of our discussion happens on blogs and social networks across the internet.  Comment threads on websites need a fundamental re-organization to maintain their relevance in today’s framework of social discussion.

The ultimate reason for news organizations to get involved in this project might be that it will happen even without them.  Witness Re:Poste, a project by a fellow MozNewsLab participant.  And Google Sidewiki.  And Chatifier.  All are projects to further separate webpages from the commenting and discussion about them.  And, to be honest, as this project has developed in the back of my mind for the past few years, the idea to involve news organizations and make sure they play their deserved role in the open commenting layer never once entered my mind until I became involved with MozNewsLab.  By supporting and promoting the development of an open commenting layer for the internet, news websites can proactively create a future of comment threads that they can be involved in, instead of being increasingly marginalized by the flight of substantive commenting to blogs and social networks.

Posted in Ideas, Software | Tagged | Leave a comment

Knight-Mozilla week 3: Fitting my idea into news organizations

I’ve created a preliminary video for my Knight-Mozilla final project:

The elaboration that I mentioned at the end of the video, well, I’m still working on that.  That is not in this blog post, but will come at a later date.  What I want to do today, since this week’s guest lecturers imparted some excellent perspective on life inside a news organization, is focus on the benefits this project can have to the newsroom.

Saving time and pooling resources

When the commenting layer is pulled into the web browser, then the programming effort of implementing comment threads doesn’t have to be re-done by every website.  Webmasters and content owners will benefit from a unified comment experience even if they don’t do anything to add comment threads to their site.  This commenting functionality will be more powerful than systems that most news sites can implement on their own.  It will even be extensible so the end-users can customize it with browser add-ons.

A plug-in architecture will be created that makes it trivial for sites to integrate this open commenting layer back into the underlying page if they desire.  The data will be open and accessible for the underlying site and all users.

Unified, powerful tools to participate in the discussion stream

Some news organizations may be worried about ceding control of their comment stream to some third-party.  First of all, the data will be open so the underlying webpage owner will have access to it.  Second, most news organizations are quite open and have no desire to censor the comments on their articles.  For these organizations, the main reason to control the comment stream would be to eliminate spam and hide trolls.  With the open commenting layer, these responsibilities will be taken on and performed automatically by the platform and the community, saving news organizations much time and effort in curating their comment streams.  Third, we will provide ways for the content owner to interact with the comment stream, endorsing good comments and highlighting discussion deemed relevant by the original author or news organization.  At this point, the primary vehicle for this interaction is the “Author’s Picks” section of the commenting layer, but additional integration points may be provided in the future.

Again, these tools will be unified and built into the system and will be very easy to use, saving news organizations from having to spend the time and money implementing and maintaining their own management systems.  But the management tools for the content owner will also be open and customizable so those who need more powerful features can create them (and hopefully share them in an open source way).

These are some, but not all, of the ways that an open commenting layer will be a great benefit to news organizations.

Posted in Ideas | Tagged | 3 Comments

Knight-Mozilla week 2: Emphasizing support and openness

This week was week two of the Knight Mozilla learning lab.  The lectures were by Christian Heilmann and John Resig.

John Resig is the programmer who created jQuery.  There was lots of good advice in his lecture, even for people who aren’t creating a programming API.

  • Create a timeline to imagine what it’s like for people getting started with your tool.  This can include working through the tutorial, using it for a toy project, using it for a real project, and giving feedback and contributing.
  • Think of everything possible to make your tool as easy to use as possible for beginners.  Then think some more and make it even easier!
  • Be obsessive about helping people in as many ways as possible.  Good documentation, API (if applicable), forum, IRC, wiki, etc.

Christian works for Mozilla and calls himself a developer evangelist.  He spoke at length about how he prefers open technologies to closed ones, then he showed off the many new features in HTML5 and shared his experience with the HTML standardization process.  It is good to know that the HTML standardization is so much more open and friendly than it has been in the past.

It is indeed an exciting time that we live in.  There are many enhancements and new features in HTML5 which will make the lives of web developers easier.  All the major browser vendors are on board so our code will work the same across browsers.  The committee has tried to implement things in a backward-compatible way, where you can use many of the features today and they will degrade gracefully for users with older browsers.

Interestingly enough, I doubt that the content of Christian’s presentation, as fascinating as it was, is going to be that helpful to those of us creating Knight Mozilla projects and proposals.  The new features of HTML5 are lifesavers when you need them, but they are not transformational enough to build a whole project around them and there are still some legacy browser considerations.  Nonetheless, for me the presentation was very important for its emphasis on open standards and processes.

This week, I have found not one but two other projects around the internet which are similar to the project that I’m going to propose.  And one of them is done by Google.  Instead of being discouraging, I see it instead as exciting.  It validates the idea, and allows me to switch my focus from convincing people that it’s a good idea to deeper and more interesting topics:

  • Envisioning how the tool should really work.  How to take what’s been done in those other projects to the next level.
  • Emphasizing how we need a solution built on open standards and open data.
  • Encouraging a solution that will leverage existing technologies, especially open ones.

I will be unveiling my project soon.  At this point, I don’t even care if I’m the one to implement it.  I’m just excited to share my vision with all the smart people in the Knight Mozilla learning lab and with the world.

Posted in Ideas | Tagged | Leave a comment

Internet sales tax and the prisoners’ dilemma

In the field of game theory, where we study strategic behavior, the prisoners’ dilemma is a classic problem.  It goes like this:  Imagine you and a friend committed a crime together.  You are both caught, put in separate rooms, and given the chance to confess and testify against each other.  If niether of you confesses, you will both get one year in prison for a minor charge.  If one of you confesses, he will go free and the other one will go to prison for seven years.  However, if both of you confess, you will both go to prison for five years.

To understand the dilemma, it helps to take a moment and think about what you would do in this situation.  To help you make your decision, here is a table that shows what your sentence will be depending on what decision you and your friend make:

Friend confesses Friend stays quiet
You confess 5 years Go free
You stay quiet 7 years 1 year

If your friend confesses, is it better for you to confess or stay quiet?  What if your friend stays quiet, is it better for you to confess or stay quiet?

What makes the prisoners’ dilemma problem so interesting is that no matter what the other person does, your sentence will be slightly better if you confess than if you don’t.  If both people give succumb and confess, however, they are both much worse off (five years in prison) than if they had stayed quiet (one year in prison).  In other words, even though both people refusing to confess seems like an ideal outcome, refusing to confess is a very risky strategy because you will be much worse off if your friend chooses to betray you.  It seems like quite a paradox, but it’s true, and it can lead to some tricky situations in real-life, too.

Internet Sales Tax

In the United States, sales tax has never been charged on the sale of physical goods if they are shipped across state lines.  In recent times, however, some states have decided to change this and charge sales tax on inter-state sales.

Some people think that the states are just grasping for any revenue they can find in order to make ends meet.  Others think that not taxing internet sales is a true loophole, an unfair advantage that rewards internet companies and punishes brick-and-mortar stores.  If there are reasons to encourage interstate commerce by not charging sales tax, then Amazon certainly seems to be pushing them to the limit.  They are actually setting up fulfillment centers around the country so many of their shipments don’t actually cross any state lines, but they’re still claiming that they don’t have to pay sales tax in those states as an out-of-state company.  If they can get away with that, it definitely seems like an unlevel playing field, the type of advantage for mega-corporations over small businesses which doesn’t sit right with me.

Ultimately, it seems that taxing sales within a state but not taxing anything that crosses state lines doesn’t make much sense.  If the government deserves to take 6-10% of every dollar we spend to create quality roads, safe cities, and a functioning economy to make commerce possible, then why exempt some things just because they travel longer distances?  Why discourage people from buying locally and encourage them to use distant companies that will waste energy driving things across an imaginary line solely to avoid taxation?

States that are trying to start charging sales tax on internet purchases, however, are having trouble because they’re in a prisoners’ dilemma…

The states’ dilemma

States would like to charge sales tax to recover the revenue they’re losing as people purchase more and more goods online.  The problem is that Amazon can punish any state that enacts an internet sales tax by canceling all Amazon affiliate accounts and ceasing construction spending in that state.  In effect, they’re playing the states against each other, making sure it’s in each state’s best interest to not charge internet sales tax, even though the states would all be better off if they all charged internet sales tax.  If every state charged internet sales tax, it would be better for all of them.  Amazon wouldn’t cancel its affiliate program anywhere, as it’s certainly more profitable to have an affiliate program than not to.  Similarly, having a network of geographically distributed warehouses would still likely be a smart business move, so Amazon would maintain their expansion and construction around the country and would be similarly unable to use that as a bargaining piece to pit the states against each other.

In part 2, I explain a way we can solve the internet sales tax problem in a way that’s fair to all the states and also to internet retailers, and how it relates to the prisoners’ dilemma problem in general.

Posted in Economics, Social Choice | Tagged , , | 1 Comment

Genesis: Very first steps to idea realization

As an idea person, sometimes I find it difficult to take that first step and start implementing something I have envisioned.  This week, as part of the Knight-Mozilla Learning Lab, I attended two online lectures which gave me some new motivation for getting started and some concrete advice for the earliest stages of the implementation process.

Even before attending these lectures, I’ve read a lot about getting to a “Minimum Viable Product” and releasing early, “iterating” (getting user feedback often in the development process and using it to guide your progress), and “dogfooding” (using your product on a day-to-day basis as you build it) when possible.  I was already a believer in these principles of rapid software development, but the lectures this week added another dimension to some of these principles.

Here are some of the key ideas for starting new projects and ramping them up quickly:

Figure out if you want other programmers’ help and how to get it.

You probably want outside help.  Working on something is easier if you know there are others motivated by the same vision.  Technical problems are easier if there are other smart people to talk them over with.  And if you want the help of others, you have to find a way to communicate your vision to them.  Here are some common ways to do that:

  • Written description
  • Graphical mockup
  • Online video
  • Working prototype

The latter ones are more work, but can be much more engaging and much more useful in garnering support for your project.

Constrain yourself to do a prototype in one day, start to finish.

The first payoff for a new project is when others see how great your idea is, and getting your prototype done as soon as possible will shorten the waiting time before this payoff.  Getting it done in one day forces you to distill your idea down to one or two key ideas, and often you will surprise yourself at how simple a first implementation can be.

Knowing that you’re only giving yourself one day to complete your prototype will also help you find creative solutions to any problems you find.  Give up quickly when you hit a wall and find a way around it, instead of through it.

For a mockup or a demo, visual design can be “borrowed”.

Many programmers feel like they can’t do graphical design very well.  The answer to that is to do whatever it takes to get your prototype done as fast as possible, including using someone else’s design.  ”Good artists copy and great artists steal,” as they say.

Posted in Startups | Tagged | Leave a comment

Compilation of ideas for fixing the Google+ sharing model

Since I posted yesterday that Google+ sharing is not revolutionary, I’ve seen several other comments on the internet expressing similar ideas.  The main problem is that Google+ still doesn’t give us a way to broadcast publicly to anyone who is interested without also spamming our circles, which include people we know are probably not interested in certain things.

I wanted to try to collect all of the suggested solutions in one place so they can be compared:

  • Markus Persson suggested: Allowing us to make certain circles public in a way that people can add themselves if they are interested in our posts on certain topics.
  • Tony Lawrence and others have suggested: Allowing us to share a post publicly, but choose to exclude certain circles, or allow us to set some circles as “automatically exclude from public posts”.
  • I suggested: Encouraging people to tag their posts instead of just being selective in who they share with and then letting the stream owner apply powerful but simple filters to control what they see.
  • Jason Gilanfarr suggests: Allowing us to share things with people who are in the intersection of multiple circles. (Added 12 Jul 2011 5:11pm MST)
  • Will says: Let users publish sparks (topic-oriented categories) that their friends can subscribe to. (Added 12 Jul 2011 10:04 MST)
  • Tyler suggests: Making Public another circle (still visible to all) so you can publish something Public and it doesn’t go to your other circles.  (Added 5 Aug 2011 9:00am MST)

Please let me know if there are any other suggested solutions so I can add them here.

Posted in Social Networks | Tagged | 7 Comments

Google+ sharing is not revolutionary

Many people are crowing about how Google+ has revolutionized social communication and sharing.  But I don’t see it.

One thing Google+ does well: privacy

Google+ does allow you to keep something private if you want to.  Something like “I’m so glad to be on vacation this week,” is a very natural thing to post, but I don’t really want to broadcast that I’m out of town to everyone I went to high school with (and their friends when they comment on my post).  Sharing with a limited group and disabling re-sharing is a welcome innovation and it’s something that Google+ definitely does better than Facebook or Twitter.

One thing Google+ tries to solve but doesn’t quite: broadcasting

Google+ tries to integrate Twitter-style following (a broadcast/subscribe model) with Facebook-style friending (a sharing/stream model).  This is admirable, but the broadcast/subscribe model only works if people share things publicly.  Combine this with the fact that Google+ is encouraging us to share selectively, not publicly, and it means that the follow model is just not that useful in Google+.  If you want to communicate with someone, the relationship should be reciprocal, because if they don’t add you to one of their circles, then they won’t share anything with you, and if you don’t add them to a circle, you’ll never see anything from them in your stream.

It’s interesting that even though reciprocal relationships are the only ones that matter, Google+ de-emphasizes them.  It does a few things to help you follow people back when they follow you, but not nearly to the degree that Facebook does.

Google+ ruins: serendipitous discovery

Google+ is encouraging us to put people into their circles and only share things with those for whom it would be relevant.  But if I add someone as a friend on Facebook because they’re interested in voting systems, sometimes it’s great to see their posts that are not related to voting systems.  A post like, “Just completed the longest bike ride of my life,” can help me connect with someone and find out if we have more shared hobbies or interests.  But whether or not I’ll see that post is not up to me and what circle I put the sharer in, but up to the sharer and what circle they put me in.

Another example would be someone who knows that they have different political opinions than I do and puts me in a circle so I won’t receive any of their political posts.  But I like to receive well-thought-out opinions from people on all sides of the political spectrum.  As long as people are thinking for themselves, tune me in!

Now, I definitely don’t want to know ALL the personal details of everyone’s life.  And if they want to keep something private, I can certainly respect that.  But I am definitely interested in big accomplishments and thoughtful opinions of people I used to know or may not know very well yet.  Google+ doesn’t really make that discovery possible.

The big problem that Google+ still does not solve: Too much noise in the stream

Some people have the opposite problem.  They wish there were less information in their news streams.  Part of the hype around Google+ is that it can help solve this problem.

But with Google+, if you put even one person in your circles who thinks they are a broadcaster, then they’re going to share everything publicly and they’re going to fill up your stream with things you’re not interested in.  Even friends who aren’t “broadcasters” might put you in their most personal circle and choose to share too much information with you and there’s nothing you can do about it except remove them from all your circles.

What would be revolutionary: Tagging done by the sharer, filtering done by the receiver!

Why should the sharers have complete control of what shows up in my stream?  If they have something that they’re willing to share, why not let me decide what is the right balance between too much and too little for me?

The “share with” prompt should be replaced with a “tag” prompt and we should be encouraging people to add relevant tags to their posts.  In many cases, the tags you should choose would be very similar to the circles you would choose now.  Friends could suggest tags if the author didn’t select any.

Then the recipient could filter out all political posts by some people, or give priority to all technology posts by other people.  Or not to show anything related to Ultimate Frisbee unless two other friends liked the post.  There are certainly many other valuable filters that could be created.  But the bottom line is that I should have control of what shows up in my feed instead of everyone else.

Posted in Social Networks | Tagged | 7 Comments

Someone invent: A camera that emails photos out automatically

Ever since cameras were invented, photographers have been asked, “Can you get me a copy of that picture you’re taking?”  In the days of film photography, there was the rare picture-taker who was kind enough (and mindful enough) to make extra copies of his prints and distribute them, but usually these requests get forgotten long before the film is ever dropped off for processing.

Eventually, people realized that they were never going to get those copies.  They started bringing their own cameras and asking, “Can you take one with my camera, too?”  In the extreme case, a big group will ask a passing stranger to take a picture for them.  Upon agreeing, however, the stranger is burdened with a dozen or more cameras with which to take the same picture.

With digital photography and the appropriate technology, we should be able to get the best of both worlds: a solution where only one picture needs to be taken and everyone who wants a copy gets one, without requiring any extra work, expense, or remembering on the part of the photographer.

I envision a camera which can register people who want a copy of a picture before it is taken and software which will automatically email those pictures out once they’re downloaded to a computer.  You could use RFID in a keychain fob that people hold up to the camera to register that they want a copy of the picture, but it may be hard to get people to carry the fobs around all the time.  Maybe our cell phones could do the registering with NFC, QR codes, bu.mp or some other technology.

Hopefully someday we’ll have the technology that gives us a hassle-free way to get copies of the pictures other people are taking.

I started an ask for this on AskForIt.com so if it’s something you would like to see as well, join up: http://www.askforit.com/2155/a-camera-that-automatically-emails-photos-to-people-who-want-a-copy.html

Posted in Ideas | Tagged , | Leave a comment