Technology

Four Criteria for Free Network Services

I’m increasingly critical of network services — software that you use on someone else’s server to do your own computing. We rely on computers more and more for our work, social lives, civic engagement, health, education and leisure, and more and more that means relying on networking services rather than our own personal computers. There are serious trade-offs to living as a tenant online, rather than a property owner. I’ve been reconsidering the network services I use and rely on, especially in the shift to mobile computing.

The work of Autonomo.us has heavily influenced my thinking. Also of note is Stallman’s essay on software as a service (though he does more to identify the problems than recommend solutions). I essentially agree with the Franklin Street Statement from Autonomo.us. As a user of network services, I’ve narrowed it down to four major criteria to look for when deciding whether to trust a service on freedom and autonomy.

  1. Free (libre) software
  2. Control over data
  3. Privacy / Encryption
  4. Distributed Systems

Note: This is more of a working list than an attempt at a formal definition. For example, I’m not sure that #3 and #4 should be required, even though I believe they are important. Feedback is welcome.

1. Free (libre) software

Free (libre) or open source software licenses designed for network services, like the GNU AGPL, help guarantee the software will respect users’ freedoms. The arguments for software freedom have been addressed at length elsewhere, but the freedom to run the software yourself is particularly relevant here since, unlike desktop software, you often have the choice of letting someone else run the software for you. Even if you don’t run the software on your own server, having the freedom to do so ensures that you can still run the service in the event that the service provider shuts down — a frequent concern with proprietary web startups after acquisition or failure. And, even if you can’t run the software yourself, with all four freedoms, chances are someone else will. The broader case for software freedom is made at length elsewhere.

Network services should respect users’ freedoms. LibreProjects.net has a good list of free web services and alternatives.

2. Control over data

If users want to leave a service provider, can they take their data with them? Open standards are important. Open standards allow other software to read and understand your data. Open standards also allow you to mix the software you use on the client and server or across multiple devices more easily. Not only does this make migration more realistic, but it makes transitions smoother.

Google’s network services aren’t often free (libre) software, but Google does have a strong commitment to open standards and making your data easily available. I’ve used many Google services from non-Google clients: Gmail from Thunderbird, Evolution and Modest; Google Calendar from Lightning, Evolution, and my N900; Google Reader from Liferea and grr; Google Talk from Empathy, Pidgin, and my N900, etc. I’ve been able to switch my client-side software before changing the back-end. This makes it possible to transition to new services gradually, in smaller steps, with less disruption.

Facebook has a download feature, but it’s slow, and it just chucks all of your data into a giant zip file rather than putting it into formats that other software or services could understand. Facebook has also actively blocked services that export your data to other providers. Your data is available for download, but not in a very useful way.

Migrations are not always planned. On your own server, you have the master key. With a service provider, if you lose access to your account because it’s cracked or cancelled suddenly, will you also lose access to your data? Or will you have an up-to-date copy locally? Open standards often help make it possible to keep a local copy up-to-date, but this isn’t always the default way we use these services. A synchronization service will typically maintain a complete local copy of your data, but services intended to be accessed through the web often require additional client-side set up
on the user’s part to make this happen (e.g. using Thunderbird or OfflineIMAP to keep a local copy of your Gmail email, or using Google Sync to keep a local copy of your calendar and contacts). Or, the services may only offer data dumps as backup. Does a service let you keep a complete local copy of your data easily in your everyday usage? Even if you primarily use the web interface, setting up a desktop client for regular use can help maintain a local copy of your data without having to consciously download backups.

Lastly, public data that is intended to be shared should be available under a free and open licence. Identi.ca uses CC BY for public user data. Libre.fm focuses on freely licensed music. This gives control over public content to the community, rather than just the service provider.

Network services should let users control their data, using open standards to give users control of their personal data and free licences to give the community control over public data. Despite having a very mixed record on other criteria, Google is a good example of open standards done right. Free (libre) and open source tools are also usually good with open standards. Identi.ca is a good example of licensing public data freely.

3. Privacy / Encryption

My concern with privacy isn’t so much what a service provider’s policies are, but who has access to the data in the first place.

With the launch of Google+, I’ve been quite relieved that I’ve moved a lot of my important data out of Google over the past few years. It’s one thing for Google to have my email or my social graph or my documents, but the volume of data that would be in one place using all of Google’s services is astounding. Google is generally a well-meaning company, but I wouldn’t want any single organization to have everything that Google might have: my email (love letters, job applications…), address book (contacts and their private information), documents (budget, resume, business plans), calendar (activities, habits, regular whereabouts), RSS feeds (passions, interests, and political, intellectual, religious leanings), instant messaging (chat logs with friends, lovers, co-workers), my social graph (strong ties, relationships), my phone calls (the ability to recognize my voice from Google Talk or Google Voice), my photos (facial recognition and identification of my family, friends, colleagues) — nevermind all of the revealing personal information contained in web searches! There are lots of questions regarding each type of data and whether or not you’d want to trust it with someone else, but the aggregation of all of it into a single account is a more noticably bad idea. It’s a recipe for disaster in the event of a privacy leak or breach, oppressive government actions, a supeona, the loss or revocation of your account, etc.

Furthermore, some things I simply don’t want on someone else’s computer ever. I’ve felt comfortable trusting service providers like Google with my email in the past, but I’ve never been comfortable trusting them with my entire address book — that’s not just my data, but other people’s private information too. Similarly, I would never want my personal journal on someone else’s computer — that’s just too private.

However, Mozilla does a fantastic job of handling private data. With Mozilla Weave (i.e. Firefox Sync), not only is it free (libre) software that you can run on your own server, but your data is encrypted on the server. A user has two passwords — one to authenticate with the server, another to encrypt the data locally. Since encryption happens locally, the server only sees the encrypted data and never sees your second password. Mozilla doesn’t even ask for the information to decrypt your Firefox Sync data. You can use their server to sync your data across computers, but it’s only ever decrypted on your computers, not the server. If you use Mozilla’s server instead of your own, Mozilla still won’t have access to your data.

I wish more services providers would do this. I understand it doesn’t work for services that are meant to be accessed directly on the server through the web, but at least for synchronization services it seems like a privacy no-brainer. Funambol, for example, is a great libre software data synchronization server for mobile devices, but I don’t think their gratis service at my.funambol.com encrypts your data. I suppose they have a web interface on their server, but I’d rather run my own Funambol server in the absence of Weave-style encryption, whereas I don’t mind using Mozilla’s Firefox Sync service at all.

Encryption of data in transit is another concern. Does a network service or web application offer encrypted methods of communication? Or is your private data being transmitted out in the open? Gmail now offers HTTPS by default. Facebook and Twitter offer an “Always use HTTPS” setting. The EFF has developed a Firefox add-on that uses HTTPS wherever possible. I’ve started using basic StartSSL Class 1 certificates, which are available at no cost to individuals, in order to encrypt traffic on my home servers.

A good network service should take privacy seriously, and offer encryption wherever possible. I’m not sure that this should be a requirement for a free network service, but it’s an important consideration before using a service hosted by somebody else. However, a service that may fail to adequately protect your privacy as a hosted service could still provide an acceptable self-hosted solution.

4. Distributed Systems

Email is a common example of a distributed set of protocols. If Bob uses Hotmail and Sally uses Gmail, they can still communicate with each other. Telephony provides another example; Bell customers can phone Rogers customers, and vice versa. This is the ideal — choosing a service provider independently from the people with whom you want to communicate. Distributed systems strengthen the Internet, creating fewer points of failure or censorship, more opportunities for expression and innovation, more freedom and autonomy for users. This isn’t always relevant for network tools or synchronization services aimed at individuals or small groups compared to social network services and communications tools.

Most online social networking services are walled gardens. Facebook users can only talk to other Facebook users, MySpace users can only talk to other MySpace users, etc. In this environment, social pressure has negative effects on freedom and autonomy. You might not feel comfortable using Facebook, but if that’s where your social circles are active, you’re faced with the choice of being left out or using a service provider with which you’re uncomfortable.

Google Talk makes it clear that it doesn’t have to be this way. Rather than developing their own proprietary walled garden instant messaging service, Google used the open standard XMPP (aka Jabber) for its chat service. With XMPP, you can chat with people on other servers. I have a Jabber account on my own server (and there are dozens of public Jabber servers), and I can still talk with (or call) people on Gmail Chat. I’ve left Google Talk, but I’m not cut off from Google Talk users. Compare that to Skype, which has so far relied on a proprietary VoIP protocol that only lets Skype users call other Skype users (short of bridging to traditional telephony).

In the social networking space, there are efforts like GNU Social/StatusNet and Diaspora to develop distributed solutions. StatusNet has already had some success implementing an open standard for distributed status updates. I’m curious whether Google+ might advance the cause of distributed social networking services (even slightly), given Google’s commitment to distributed systems and open standards elsewhere, and their development of new standards like OpenSocial.

Social network services should be distributed, allowing users to communicate across service providers. Email, traditional telephony, XMPP/Google Talk and GNU Social/Diaspora are all good examples of this. I’m not sure that this should be a strict requirement for a free network service, but the freedom to run the software on your own server is pretty useless for some social applications if you can’t communicate with people on other servers.

Conclusion

Identi.ca, the flagship StatusNet site, is a perfect example of a free network service. It’s free software (AGPL), implements open standards and documented APIs for accessing your data, they’ve pioneered an open standard for distributed networking, and public updates are licensed freely. I’m happy to use Identi.ca.

Mozilla’s Firefox Sync is a good example of a free network synchronization service. Data is encrypted, it’s free software that can be run on another server, and bookmarks are stored locally in a format that other applications can read. I’m comfortable using Mozilla’s service for Firefox Sync.

AGPL network sync services like Funambol and Snowy are also libre services (free software, open standards or documented formats), but in the absence of Mozilla-style encryption, I’d prefer to run them on my own server. The FreedomBox Foundation has been working on an easy way to run libre services from a home server, and make them available to others. I currently use a combination of always-on GNU/Linux home computers available remotely and some dedicated servers that I manage. Even without your own server, you can use free (or more freedom-friendly) hosted services like riseup.net for email, jabber.org or others for instant messaging, my.funambol.com for mobile sync, Mozilla Firefox Sync for bookmarks and browser data, Identi.ca over Twitter, Voip.ms (SIP) over Skype, Libre.fm over Last.fm, etc. If you’re looking to try out some of the self-hosted services, I do have Snowy, Funambol, and Tiny Tiny RSS running on my home server — contact me if you’d like an account to try them out.

The process of disentangling from proprietary network services can take some time, but it’s well worth it for the sake of freedom and autonomy, even when it may be challenging in the short-run. If you can’t leave a proprietary service right away, recognizing where it fails to meet these criteria can help you take some important steps in the meantime.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Comments (7)

Vatican Blogger Meeting Considers Copyright Questions

This post originally appeared on Techdirt. For more general coverage of the Vatican blogger meeting, check out Ironic Catholic, Elizabeth Scalia, Hermeneutic of Continuity, CNA, Catholic Herald, etc.

A recent blogger meet up hosted by the Vatican received some attention for comments with which Techdirt readers would be familiar on copyright, attribution, and new media business models. For example, Italian blogger and author Mattia Marasco highlighted the importance of attribution, but said that copyright is “an old model,” when it comes to new media, and Dutch podcaster Father Roderick Vonhogen said that journalists will have to get used to their material being reused, but those who focus on quality will make it. The ideas are nothing new (and just some of many expressed at the event), but it’ll be interesting to see if the Vatican is listening. Marasco and Father Roderick are not Vatican officials, though in recent years the Pope and other Vatican officials have expressed concern over “an unduly rigid assertion of the right to intellectual property.” (The Holy See has, however, asserted its own right to protect the figure of the Pope, but it’s unclear what exactly that means.) The Vatican also announced an upcoming News.va website, which will make extensive use of social media and apparently use a non-commercial Creative Commons license (according to Father Roderick [33:40]). Not bad for a 2000-year-old institution. There was also a call for the Holy See Press Office to consider bloggers, when releasing advanced copies of Vatican documents. The meeting was intended to open a dialogue between bloggers and the Vatican, so it’ll be interesting to see what the Vatican takes to heart from the encounter and how they continue down the new media path.

The comments are on Techdirt.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Comments Off

Grooveshark Wants To Judge Your Soul

This post originally appeared on Techdirt.

Dante Cullari made an observation on the Music Think Tank Open blog last month that seems to have gone unnoticed: Grooveshark’s privacy policy has a “soul” clause. Unlike other “immortal soul” clauses, I don’t think Grooveshark’s is intentional.

“This [personally identifiable] information may also be kept longer than 6 months by EMG if a user is found by EMG’s soul judgment to be suspect of carrying out illegal, unlawful, or dangerous actions with or in this service. Prior to keeping IP address information for more than 6 months, the user will be notified via email about their suspect status.”

The privacy policy still says that, though Dante also grabbed a screenshot.

grooveshark-soul-judgement-11

Somehow, I don’t think Grooveshark actually intends to judge a person’s immaterial soul for evidence of suspicious activity. But, lest you think it’s a lone typo, the phrase “soul purpose” also appears later in the policy.

“EMG may allow 3d parties to place cookies and other tracking technologies, such as web beacons, clear GIFs, web bugs, tracking pixels on the Site for the soul purpose of allowing that 3d party to record that a User has visited the Site and/or used the Service.”

grooveshark-soul-purpose1

I think they meant “sole.” Somewhere, in the depths of my own soul, it feels like somebody was relying on spell check a bit too much…

Read the comments on Techdirt.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Post a Comment

Ontario Premier Says Cellphones Could Be Useful In The Classroom

This post originally appeared on Techdirt.

With schools, cell phones and a politician in the same headline, you’d think the story would be about another attempt to ban technology, but in Ontario, Premier Dalton McGuinty is telling schools to be open to uses for cellphones in the classroom.

McGuinty, who won’t even let his ministers keep the devices during cabinet meetings, said he understands they can be a major distraction, but there is a “right way” to use them in class.

“Telephones and BlackBerrys and the like are conduits for information today, and one of the things we want to do is to be well-informed,” he said. “And it’s something that we should be looking at in our schools.

The issue came up in light of the Toronto District School Board rethinking its blanket ban, and “exploring ways to make [mobile devices] more acceptable.”

Political opponents are already mocking McGuinty, and his government does have a really mixed track record on technology… but the comments here are actually quite reasonable. There’s room between the “discipline theater” approach of a total ban and the teacher’s nightmare scenario of a total free-for-all. A good acceptable use policy would attempt to reduce distractions while not precluding ways in which mobile technology can be helpful in the classroom.

I attended a strict private high school in Toronto from 2001-2005, and we had a blanket ban on electronic devices… but teachers were smart enough to know when it made sense to ignore the ban. I used my PDA to take notes and manage homework in every class, and another student in my year often used a tablet computer. The ban was eventually lifted after I graduated, acknowledging the fact that more and more students were using laptops and mobile devices in ways that helped them learn, while I’m sure they still have a no nonsense policy for students goofing off or distracting others. Rules are needed to minimize bad uses, but that shouldn’t prevent people from exploring good uses.

So, good for McGuinty for recognizing that we’re better off exploring applications for mobile technology in the classroom than simply trying to ban it.

Read the comments on Techdirt.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Post a Comment

Lawsuit Averted As WordPress and Thesis Settle Differences Over Themes And The GPL

This post originally appeared on Techdirt.

Free (libre) and open source software is one of the best examples of an alternative to restrictive copyright, but even within these communities there can be heated debates about licensing. The WordPress community just witnessed such a debate between the founder of WordPress, Matt Mullenweg, and the developer of a popular premium WordPress theme, Chris Pearson, over whether or not themes are subject to the GPL (WordPress’ license). The GPL applies to derivative works of a program—requiring that they, too, must be licensed freely—but Pearson maintained quite publicly that he wasn’t subject to it and could use a proprietary license for his theme. This caused tension between him and Mullenweg, until last week, when Pearson gave in and switched to a split GPL license.

Without getting too bogged down in the legal details and community politics, the dispute is of interest for a couple reasons. Although some open source developers believe the GPL is too restrictive, copyright enforcement is approached in a very different way by free software projects than proprietary software companies or the entertainment industry. Mullenweg had sought a legal opinion from the Software Freedom Law Center over a year ago, and they agreed that the PHP part of a WordPress theme (which interfaces directly with WordPress code) is subject to the GPL, while JavaScript and CSS are not. Pearson disagreed, relying on some pretty novel legal arguments, but those were countered by others in the community. Mullenweg began to put more social and business pressure on Pearson, offering to pay for people to move away from Thesis to premium WordPress themes fully available under the GPL, and speaking publicly about how he felt Thesis was hurting the community by violating the license. Things became pretty heated, and the two squared off in a joint interview, failing to reach any visible consensus. It seemed like a lawsuit from Mullenweg would be the only way to resolve things—something he’d been trying to avoid at all costs—but a week later, the legal conflict was averted as Pearson switched to a split GPL license (i.e. PHP is GPL, as required; proprietary license for the rest). It was messy, but very different from the sue-first-ask-questions-later approach of so many copyright holders, and a lot less messy than a lawsuit could have been. The business and social pressure caused some tension in the short-term, for sure, but ultimately led to a resolution without nearly as much pain or division as a lawsuit within the community might have caused.

This kind of disagreement also highlights the fact that free software licenses (like the GPL) and the free culture licenses they’ve inspired (like some of those offered by Creative Commons) are ultimately hacks on a restrictive copyright system; they’re merely tactics to reverse the negative effects of overly restrictive copyright, but not at all the ideal scenario. For example, we’ve seen concerns over how Creative Commons licenses act as a contractual layer on top of copyright, and non-commercial restrictions can also be a source of tension. Sometimes these disputes help a community to better develop its position on copyright and licensing, but other times, they’re a sign that these licenses are still just a hack on a less than ideal system.

It’ll be interesting to see how Thesis fares in the long-run with a split licensing approach compared to other premium themes that are 100% GPL. Regardless, it’s nice to have a more or less happy ending where the community was able to resolve things without getting the courts involved.

Read the comments on Techdirt.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Post a Comment

New Canadian Copyright Bill C-32: The Good, The Bad, The Ugly, And What To Do About It

As expected, the Canadian government tabled a new copyright bill today. Despite the consultation last summer, rumour has it that Canadian Heritage Minister James Moore and Industry Minister Tony Clement—the two cabinet ministers responsible for copyright (who seemed to understand the new opportunities technology presents)—couldn’t come to an agreement, and the Prime Minister’s Office sided with Moore’s more hard-line approach. Yet, it appears Clement’s influence was not lost. The proposed legislation, Bill C-32, actually contains many good provisions… but strict digital lock restrictions threaten to undo them all.

Fair Dealing—There’s An Exception For That

The current Canadian concept of fair dealing is more limited that the American doctrine of fair use. The Supreme Court has repeatedly ruled that it should be interpreted broadly, but present law restricts fair dealing to just five categories—research, private study, criticism, news reporting, and review. NDP Member of Parliament Charlie Angus had tabled a private member’s bill to introduce flexible fair dealing back in March, but with Moore’s vision winning out over Clement’s, Bill C-32 rejects flexible fair dealing.

But, it does contain a host of new exceptions for parody and satire, education, time shifting, formating shifting, and backup copies. There’s even a new “Non-Commercial User-generated Content” exception (29.21), which would legalize mashups and remixes under certain circumstances.

While the litany of exceptions fails to introduce real flexibility into the law for new innovations, Michael Geist—leading critic of the last, failed copyright bill—still describes this as “a pretty good compromise.” There are those who strongly oppose the uncertainty that comes with flexibility, so maybe the “there’s an exception for that” approach is the best we can hope for right now.

Though not perfect, it’s still a positive development, and definitely an improvement on the past.

Other Good Compromises

Geist notes two other good compromises. As with the last two copyright bills, C-32 would implement a notice-and-notice system for Internet Service Providers to handle copyright infringement allegations, rather than the guilty-until-proven-innocent American notice-and-takedown system, or the insanely disproportionate three-accusations-and-you’re-kicked-off-the-internet approach. Also, a change to the statutory damages provision would finally distinguish between large scale counterfeiting and non-commercial infringement, limiting the latter between $100-$5000 instead of the current $20,000 maximum. While $5000 per infringement is still pretty ridiculous, cutting the maximum down by 75% for non-commercial infringement would be a positive development.

The Downright Terrible: Digital Lock Provisions Undo The Exceptions

The huge loophole in this bill is the approach to anti-circumvention provisions, which would make it illegal to break a digital lock even if what you are doing is otherwise non-infringing. It’s important to understand how this massively undermines any good which might come from additional fair dealing exceptions: if there’s a digital lock, the exceptions are meaningless. Bill C-32′s rigid digital lock provisions undo the exceptions.

  • Want to make a backup copy? There’s an exception for that… unless there’s a digital lock!
  • Want to transfer songs to your iPod? There’s an exception for that… unless there’s a digital lock!
  • Want to make use of copyrighted content in the classroom? There’s an exception for that… unless there’s a digital lock!
  • Want to remix Louis Armstrong with death metal? There’s an exception for that… unless there’s a digital lock!

This has to change. More importantly, it doesn’t have to be this way. Submissions to last summer’s consultation were overwhelmingly opposed to this approach. Other countries have met their international obligations with anti-circumvention provisions that are actually linked to copyright infringement (e.g. New Zealand‘s passed law, India‘s proposed law). With a flexible anti-circumvention provision, the exceptions would apply to digital locks too.

Why should companies be able to rewrite copyright law and trump exceptions simply because they slap a digital lock onto something? If there’s a backup exception, there should be a backup exception. If there’s allowance for parody and satire, no digital lock should be able to take that away. And what’s the use of a format shifting exception if digital locks will force you to repurchase your content to stay legal anyways?

Canada needs to have a flexible anti-circumvention approach that is actually linked to infringement, or none of the compromises in this bill even matter.

Other Nasty Things

There’s an inducement clause (27 (2.3)) which would make it illegal to provide a service online “that a person knows or should have known is designed primarily to enable acts of copyright infringement.” Would the Internet-equivalent of a VCR pass that test? What about BitTorrent? Both technologies can be used to enable acts of copyright infringement, but they also have legitimate uses. How the “primary use” is determined could have significant implications here.

The time shifting provision (29.23) warrants further review, as it contains a variety of conditions under which you can record a program for later viewing. For example, the bill would require that you “keep the recording no longer than is reasonably necessary in order to listen to or view the program at a more convenient time”—seemingly, a requirement to get rid of recordings once you’ve listened to/watched them.

Also, library provisions allowing for distribution are subject to digital locks, and contain a requirement for copies to be destroyed within five days.

There are lots of details like this in this bill that require further study, and most likely revision.

The Strategy: Let’s Make Some Noise

The Conservatives are seeking support on this bill from the Liberals. Liberal Industry critic, MP Marc Garneau, is keen to work with the government to introduce a new law, and is open to the possibility of summer hearings to get it passed. But Clement told the CBC, “I’m not coming down from the mountain with this chiselled in stone… we could seek some consensus and there could be some positive amendments to this bill.”

When I met with my MP, Liberal Joe Volpe, over Bill C-61 in the summer of 2008, his main question to me was whether to scrap the bill or to fix it. Critically, We must let our MPs know—especially the Liberals—which compromises are acceptable, and which undermine the entire copyright bargain. Flexible fair dealing would have been better than a litany of exceptions, but that compromise could work. However, allowing digital locks to undo those exceptions is simply unacceptable.

Conclusion

Politics is the art of the possible, a complex art of balance between ideals and interests. This bill isn’t perfect, but there is a push from both sides of the floor to get it passed. There are a lot of good compromises, but whether or not the bad provisions get fixed could have huge implications on Canadian culture, technology and business in the years to come. Make your voice heard.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Comments (5)

Acoustic Assaultcast: Free Culture

Back in March, I was invited by my friend Roman Verzub to the first episode of The Acoustic Assaultcast to talk about music and free culture.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Post a Comment

HOWTO: Sync Notes Between Tomboy and Conboy with Snowy [UPDATED]

Updated: I’ve updated this guide to detail a proper sync with Snowy, rather than the old Unison hack (below), since Conboy now supports more than just Ubuntu One, and an experimental version Snowy is operational.

I’ve been a regular user of the fantastic Tomboy note-taking application since I replaced my Palm Pilot with a Nokia N900. With Conboy, a Tomboy client for Maemo, and Snowy, a web application for Tomboy notes, it seems like the perfect platform for uniting personal notes across the desktop, mobile and web (except for one drawback: Tomboy itself is a Mono application…). Initially, I used a hack with Unison to synchronize Tomboy files manually between my N900 and laptop, but I recently moved to proper, albeit still experimental, syncronization through my own Snowy server.

Installing Snowy

Snowy is a Djano-based, AGPL web service for Tomboy notes, currently under heavy development (and still labelled as experimental). I installed Snowy on my own Ubuntu web server using the official installation guides. I went with mod_wsgi, though I have Django running via mod_python on another server.

Installation was very straightforward. Just a few notes:

  • The debugmail step in the INSTALL file within the Snowy source directory didn’t seem to work for me, but I’m not too concerned about email yet. I’m just running this for me and my family. I’ll likely revisit this later.
  • Between the time that I followed the INSTALL steps and when I went to first sync from Tomboy, I had decided to switch the installation to a slightly different URL. I couldn’t figure out why the sync didn’t work, but it turns out I still had the old URL in the Django Sites table. Just a silly mistake on my part.
  • When you log in to your new Snowy server, in the current version, it isn’t obvious where to click to see your notes. You can click on your avatar in the top-right corner, or simply add /<username> to the end of your Snowy URL (e.g. my username is balleyne, so http://<my-snowy-url>/balleyne brings me to my notes

Tomboy

Tomboy comes packaged with the web sync plugin in recent versions of Ubuntu.

  1. Backup your notes!
  2. Log into Snowy in your default web browser.
  3. Open Tomboy, and go to Edit > Preferences > Syncronization
  4. Select Tomboy Web as the Service, and put in the root URL of your Snowy installation as the server.
  5. Follow the instructions to authenticate, save your settings (I set Tomboy to automatically sync every 60 minutes), and synchronize!

Conboy

Conboy focused on supporting the proprietary Ubuntu One web service first, but it now supports synchronization to any Tomboy web service (though the feature is labelled Beta). The only problem I had setting this up was a strange error about a missing api-ref and local time, but it turns out Conboy just didn’t want a trailing slash in the URL (seems like the trailing slash prevented proper authentication at the sync stage).

  1. Backup your notes!
  2. Log into Snowy in your default Maemo web browser.
  3. Open Conboy, and go to Settings in the main application menu.
  4. Enter your Snowy URL — without a trailing slash — as the Synchronization URL
  5. Click Authenticate and follow the instructions.
  6. Synchronize!

Conclusion

I’m super happy that the Tomboy / Conboy / Snowy combination is now ready to use, but do pay attention to the beta nature of Conboy sync, and the experimental nature of Snowy — make sure to backup your notes regularly to avoid any data loss.

I’m happy to be a guinea pig myself.

Old Way: Sync Notes Between Tomboy and Conboy With Unison

Disclaimer: this is a hack from someone who doesn’t know Tomboy well. It worked for me, but YMMV. And I have backups. And, mostly importantly… why aren’t you using Snowy now instead?. The instructions below should be treated as a hack preserved for historical purposes.

I wanted a way to sync Tomboy on my Ubuntu desktop with Conboy on my Nokia N900, but Conboy only syncs to Ubuntu One—a proprietary web service. Snowy synchronization support is supposed to be on the way, but Snowy itself is still under heavy development, so this might be a great option in the near future, but not today.

A comment on maemo.org made me think that rsync over ssh was a possibility, and a quick rsync showed this to work (as far as I can tell). The trick is being able to sync changes back and forth; rsync can’t handle updates to both the source and destination—it’s unidirectional.

Hence, Unison—a bidirectional synchronization utility. In case it’s useful to anyone else, this is how I’ve setup Unison to sync notes between Tomboy and Conboy.

Step 0: Some things you should know

First, I want to be clear that this is a temporary hack while I wait for proper synchronization support through Conboy with Snowy.

Prerequisites: I already have OpenSSH running on my server, and I have key-based ssh access configured from both my laptop and N900. Unison syncs remotely over SSH.

What this does: It allows me to synchronize notes and changes to notes from my N900 to my laptop, and potentially to any number of other computers.

What this doesn’t do: Unison has support for handling conflicts, but it’s not the least bit Tomboy-aware. A proper Tomboy sync might give you the option of renaming a note that has been changed in more than one place, but with Unison, you’ll be looking at diffs and merges of cryptically named XML files. So, I don’t recommend relying on Unison to sort out conflicts. I plan to sync often, backup often, and avoid conflicts as much as possible. This is for advanced users.

Tomboy Concerns: I’m using Tomboy, but actually quite uncomfortable with the risk, since it depends on Mono. I’ve considered switching to Gnote, but haven’t yet because I’m concerned about losing data/synchronization compatibility. But, this solution might work for Gnote too, and I may well s/Tomboy/Gnote/g in the near future.

Step 1: Desktop

1A: Install Unison

Unison is cross-platform and available for a variety of operating systems

I have Ubuntu on both my laptop and server right now, and I’m syncing through that server (instead of directly to my N900, which would be another option).

In Ubuntu, you can install unison with the command:
sudo apt-get install unison

Or, if you want a GUI:
sudo apt-get install unison-gtk

1B: Create a Unison profile for Tomboy

I created a file called ~/.unison/notes.prf with the following text:
# Unison preferences file
root = /home/balleyne/.local/share/tomboy/
root = ssh://alleyne.to/.local/share/tomboy/

I decided to sync my notes with the Tomboy directory on my server, which is also a workstation.

Now, I can synchronize the notes on my laptop with my server by running the command:
unison notes

1C: Enable NoteDirectoryWatcher Add-in for Tomboy

Tomboy doesn’t automatically look for changes to notes on the file system unless you enable the NoteDirectoryWatcher Add-in: Edit > Preferences > Add-Ins > Tools > Note Directory Watcher > Enable. This way, Tomboy will accept any changes you get from the Unison sync.

Step 2: Mobile

2A: Installing Unison in Maemo 5

To compile Unison, you need the OCaml compiler. To compile OCaml, you need the gcc compiler. I began the process of compiling compilers, but then realized that there were some unison .debs available already:

These were compiled for an older version of Maemo, but the command line version seems to be working fine for me in Maemo 5. Note, that if you use the GUI, it’s standard GTK, not a Maemo port, so you might need the stylus to use it.

To install, I ran the following commands:
$ sudo gainroot
# wget http://www.bundyo.org/maemo/unison/unison_2.27.57-2_armel.deb
# dpkg -i unison_2.27.57-2_armel.deb

2B: Create a Unison profile for Conboy

Similar to step 1B, I created a file at ~/.unison/notes.prf:
# Unison preferences file
root = /home/user/.conboy
root = ssh://alleyne.to/.local/share/tomboy

Now, I can sync my mobile computer with the server by running the command:
unison notes

And there was much rejoicing.

Conclusion

With Unison configured, I now have a basic, low-level sync between Tomboy and Conboy. I’m getting into the habit of syncing every time I change anything, to avoid conflicts. This should tie me over until a Conboy Snowy sync is available.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Comments (5)

WIND Mobile Launches Reasonable Data Plans In Canada

WIND Mobile’s pricing plans brought a breath of fresh air to the Canadian wireless landscape last December, but customers have been asking for less expensive data. WIND offered a great $35/month unlimited data add-on, but nothing below that for general purpose data.

Well, today, WIND announced new data add-ons. Just like their voice plans (and unlike what I was used to with Rogers), WIND’s data add-ons are brilliantly simple and easy to understand.




Here’s my take:

Add-On Social Charged Infinite
Cost
$10/month (+ overage)
 

$20/month (+ overage)
 

$35/month. Period.
 
Data Included
50 MB/month
 

500 MB/month
 

unlimited
 
Overage rate
20¢/MB
$10 / 50 MB
 

4¢/MB
$20 / 500 MB
 

n / a
 
Monthly break-even
100 MB
x 20¢/MB = $20
 

875 MB
x 4¢/MB = $35
 

n / a
 
My Thoughts
Makes sense if you only use mobile data occasionally, or for mostly text.

e.g. My mom, who uses mobile data mostly for email, and occasionally to browse the web
 

Makes sense if you browse the web regularly, and stream/download audio or video sometimes.

e.g. My fiancée, an average web user (email, social networking sites, chat, photos, maps, the occasional audio/video stream)
 

Makes sense if you stream/download audio or video a lot, or if you want to tether your mobile device with your laptop.

e.g. A geek like me, especially if I’m tethering, though I might even consider downgrading to Charged.
 

The monthly break-even point is not necessarily the long-term break-even point. Even if you go over the monthly break-even point occasionally, a smaller plan might be less expensive on average over time.

Pay Before to cap spending. If you’re concerned about overage charges, you can go Pay Before and only put in as much money as you’re willing to spend each month. Unlike other carriers, WIND offers Pay Before customers access to the same plans and add-ons.

Although these rates only apply in Home Zones, WIND is expanding it’s Home Zones daily, with the ambition of building a national 3G network. Right now, the Home Zones are Toronto, Calgary, Vancouver, Ottawa and Edmonton.

No More Getting Ripped Off

Coming from a family that’s been ripped off by Rogers for way too long, this is a breath of fresh air. Working through a Rogers bill involves a labyrinth of plans (fixed versus flex rate, Pay-As-You-Go versus regular wireless), vague details, ridiculous contracts, outrageous early cancellation fees, and sales reps who don’t understand half of it. The game is to do a detailed analysis of your usage and their offerings (including the fine print and hidden costs), and try to match them up as best you can. Otherwise, Rogers will happily take as much of your money as it can. Bell and Telus are hardly different.

I’m thankful for a wireless company that is trying to earn money by making things easy to understand, rather than profiting from confusion.

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Comments (3)

SOLUTION: Firefox Fails When Upgrading After Using Mozilla PPA

This is a quick fix for a problem I had when upgrading to Ubuntu 10.04, after having used the Mozilla PPA.

The Firefox upgrade failed during the distribution upgrade process (from 9.10 to 10.04). I was told to run `dpkg -a –configure`, and the same error occurred again (it’s in bold).

$ sudo dpkg -a --configure
Setting up firefox (3.6.3+nobinonly-0ubuntu4) ...
update-alternatives: error: alternative path /usr/bin/firefox doesn't exist.
dpkg: error processing firefox (--configure):
subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of firefox-3.5:
firefox-3.5 depends on firefox; however:
Package firefox is not configured yet.
dpkg: error processing firefox-3.5 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of firefox-3.0:
firefox-3.0 depends on firefox; however:
Package firefox is not configured yet.
dpkg: error processing firefox-3.0 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of firefox-gnome-support:
firefox-gnome-support depends on firefox (= 3.6.3+nobinonly-0ubuntu4); however:
Package firefox is not configured yet.
dpkg: error processing firefox-gnome-support (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of firefox-3.5-gnome-support:
firefox-3.5-gnome-support depends on firefox-gnome-support; however:
Package firefox-gnome-support is not configured yet.
dpkg: error processing firefox-3.5-gnome-support (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
firefox
firefox-3.5
firefox-3.0
firefox-gnome-support
firefox-3.5-gnome-support

A quick web search brought up a bug report, and I was able to figure out this fix with the help of one of the comments:

Update: Fixed.My original solution was only temporary, and had to be repeated for each Firefox update (all the way through every update with 10.04, 10.10, now 11.04…). I’ve found the root of the problem now, by comparing local dpkg diversions for Firefox on my affected machines against an unaffected clean Ubuntu install.

On my laptop:

$ sudo dpkg-divert --list | grep firefox
local diversion of /usr/bin/firefox to /usr/bin/firefox.ubuntu
local diversion of /usr/bin/mozilla-firefox to /usr/bin/mozilla-firefox.ubuntu

The clean Ubuntu install returned no results for the above command. (Also, note that in the full output for dpkg-divert –list, those were the only local diversion — another hint that they were from the PPA upgrade rather than Ubuntu itself.)

So, I ran the following commands to remove the diversions:
$ sudo dpkg-divert --remove /usr/bin/mozilla-firefox
$ sudo dpkg-divert --remove /usr/bin/firefox

Then, the most recent Firefox upgrades worked without a hitch on both of my affected machines. Finally fixed… *fingers crossed*

Updated: This isn’t a complete fix, as the problem reoccurs every time Firefox is updated. If someone knows how to fix this for good, let me know…

$ sudo rm /usr/bin/firefox
$ cd /usr/bin
$ sudo ln -s ../lib/firefox-<your-current-version>/firefox.sh firefox
$ sudo chmod 0777 firefox
$ sudo apt-get -f install

The symlink for /usr/bin/firefox had been pointing to /usr/bin/firefox-3.5, which no longer existed, so the commands above (1) remove the dead-end link; (2) add the proper link (YMMV depending on which version of Firefox you are upgrading to); (3) resume the upgrade process.

Hope that helps!

Creative Commons Attribution-Share Alike 2.5 Canada Permalink | Comments (1)
Creative Commons Attribution-ShareAlike 2.5 Canada
This work by Blaise Alleyne is licensed under a Creative Commons Attribution-ShareAlike 2.5 Canada.