Follow a user in Lotus Connections 3.0

Davanum Srinivas

January 4, 2012

12:35 pm

One main feature in Lotus Connections 3.0 is the asymmetric follow of someone (like twitter). The API documentation is here. Since sample code is always better here’s a HTTP GET python snippet to lookup the userid, given an email and then a quick HTTP POST to follow that user.


Dear Thunderbird: I know you can’t save my draft; please stop complaining about it

Jono DiCarlo

December 7, 2011

11:27 am

A modal dialog box is the software designer making a claim that the software cannot do anything else until the user makes a decision. Upon closer examination, this claim is almost never justified. It’s usually a case of developer arrogance: developers assuming that because they have to care about some edge case in the software control flow, the user should have to care about it too.

There’s a particularly egregious example in Thunderbird 7.0 which I’ve seen a lot of lately because I’ve been composing a lot of emails offline.

I’ll be on the train or something, happily offline, typing an email in Thunderbird for later sending, and suddenly I’m interrupted by this:

Modal dialog box asking whether to retry saving a draft

Email composition, interrupted. Train of thought, destroyed. Input window, blocked. I cannot continue until I’ve processed what the software is asking me and made a decision.

Alright, Thunderbird, what’s the problem? Oh, you couldn’t save my draft to my mail server? Gee, I wonder why. Maybe because I’m not connected to the internet. There’s no reason I would expect you to be able to save a draft right now.

The correct behavior would be for Thunderbird to keep checking, silently, for an internet connection, and to save the draft to the server as soon as a connection becomes available again. But there’s no button for that, so I click “Cancel”.

Warning message telling me that the draft could not be saved

Argh! Another one! What is it this time?

…An error message telling me my draft could not be saved. Thunderbird, I just told you to stop trying to save my draft. Why are you using an error message to report that you’re doing as I told you? That’s not an error, that’s the expected result of the button I just clicked. Why are you telling me anything at all? Why are you putting another dialog box in my way instead of just letting me get back to my email?

Jef Raskin used to call these “Monolog boxes” — they’re like dialog boxes except there’s no dialogue because the software isn’t asking me for any information. It’s just complaining to me and then making me click a button to acknowledge that I heard its complaint.

So that’s a modal dialog box followed by a modal monolog box just to tell me something I already knew, which is that I’m offline so of course drafts can’t be saved. And this pointless ritual recurs every ten minutes or so when Thunderbird tries to save my draft. If I’m composing multiple emails at the same time, I have to dismiss these pointless dialogs for every composition window!

The way to fix this interface is quite simple. There’s no reason to interrupt the user to report on the status of saving the draft. Thunderbird should allow me to keep typing my email while it displays a discreet warning message — off in the corner of the window, perhaps — to the effect of “This draft has not been backed up.” Even that much is arguably unnecessary, because the right thing to do in this case is obvious: back up the draft to my hard drive, and then sync it to my email server when an internet connection becomes available again. This can be done without any user input at all.

When the right thing to do is obvious, software should just quietly do it. It shouldn’t interrupt me to ask my permission or complain about problems.


Achievement and Playfulness

Atul

November 30, 2011

1:19 pm

Michelle Levesque is tearin’ it up with her rapid pace of blogging and it’s inspiring me to blog more myself.

Yesterday in her post Things I Have Done, she ruminated on different kinds of categories for achievement badges.

I personally have conflicted feelings about badges, and sympathize with something Jessica Klein mentioned in a blog post a few months ago:

My colleague Jack Martin and I participated in this local learning incubator where we told a story with twitter. It was a fantastic and fun day and we loved what we made just as much as we did making it. However, after the activity was over, a learning assessment team came over during our presentation of our story and gave us badges for our story. It somehow cheapened the experience that Jack and I had and sort of reminded me that, yeah this was about learning and grading–not the fun experience.

In Freakonomics, Steven Levitt and Stephen Dubner describe an Israeli day care center which decided to start imposing a fine on parents who arrived late to pick up their child. Rather than reducing the frequency of late pick-ups, however, the opposite occurred, because a moral incentive was replaced by a financial one. The fine made picking up a kid late suddenly seem perfectly acceptable (yet costly), rather than negligent.

This is my main concern with achievements of any kind: they have the ability to twist existing, healthy incentive structures–making stuff for friends is fun and earns you their gratitude–and replace them with less interesting ones–making stuff for friends earns you badges which will increase your earning power.

I’m not certain that badges would actually change things for the worse, of course; it’s just a concern of mine, and I think there are things we can do to help ensure that they add new incentives without taking anything away from existing ones.

One of the ways we can do this is by creating badges for things that don’t currently have any incentives.

Let me use an example from World of Warcraft. One day I was wandering around the desert when the sky turned red. I had no idea what was going on, but I kept walking; after several seconds, my screen was filled with flames and my character was dead.

This kind of thing happens often in massively multiplayer games: giant computer-controlled creatures wander the world and crush unsuspecting players who were in the wrong place at the wrong time. In this case, I had just been slain by Deathwing, the most powerful dragon in the game.

What’s really interesting, though, is that the instant I died, an achievement blazed across my screen: Stood In The Fire.

This achievement is significant to me because it turned an experience that’s normally frustrating into one that’s serendipitous, hilarious, and socially rewarding. It also communicated a few things behind the scenes:

  • Bad stuff happens to everybody. It’s okay.
  • You can gain recognition by doing some weird and unconventional things.

Achievements like these can infuse badges with a sense of playfulness that encourages experimentation, and make earning them feel like fun rather than like getting a report card or a Ship It award.

What might the analog be for Web literacy badges? How about achievements for things like…

  • not closing an HTML tag?
  • writing a CSS rule that never gets applied to a page because it’s overridden by other rules?
  • falling for a harmless phishing scam?
  • having your behavior tracked by the same company across 30 different websites?
  • putting a security vulnerability in your code?
  • making a web page that’s perfectly legible to blind people, but incoherent to those with vision?

Playfulness and Learning

Atul

November 29, 2011

11:45 am

Michelle Levesque recently wrote a post about the importance of play in learning.

We need to change people’s mindsets to make them comfortable fooling around, making things, breaking things, and playing on the web.

I totally agree. This is one of the design goals of the Hackasaurus tools and events, actually—it’s a combination of stylistic touches and emotional design to help people feel that what they’re doing is fun, along with humane functionality that makes experimentation easier, such as infinite undoability.

This is something I feel that Apple has managed to do with their products, too: I see non-technical people like my father who are typically terrified of using their personal computer take joy in installing apps on their iPad and playing with them in a way that they never would have dared to do on their PC. Partly it’s due to concrete features, like the fact that it’s impossible for an app to impair the behavior of another app—but it’s also partly due to stylistic touches, like all the device’s glee-inspiring animations.

It’s ironic that tech-savvy folks like me berate the iPad for its lack of generativity and hackability, yet it manages to orient its users towards a sense of playfulness and empowerment in a way that other tools rarely have.


American Censorship Day

Jono DiCarlo

November 28, 2011

4:09 pm

I don’t usually write about politics here, but there is a terrible Internet censorship bill that the United States congress is threatening to turn into law. Called PROTECTIP in the Senate, and SOPA in the House, it would create a nationwide blacklist of sites that ISPs are required to block at the DNS level. This is intended to be used to fight copyright infringement, but there is no trial required; the site gets blocked just on the say-so of a copyright holder. So it circumvents due process of law and basically opens up every site on the internet to censorship and legal intimidation. It also does away with the safe harbor provisions of the DMCA — making a website responsible for any copyright infringement committed by any of its users — so sites based on user-generated content will be hit especially hard.

Everyone in the United States who cares about Mozilla’s mission of internet freedom should help to oppose the passage of this bill. For the rest of the world, well, unfortunately there’s little you can do directly, even though your website could be blocked from the US under the law.

Several internet organizations declared Wednesday the 16th “American Censorship Day” and used it to launch the counteroffensive. Mozilla put a snippet on our home page with a black censor bar over the Firefox logo to point people at an action page. Our webdev team did a bang-up job of putting that together really fast. Thank you webdev!

Meanwhile, Tumblr alone geneated over 87,000 calls to congress in one day.

I called both senators and my congresswoman on Wednesday and was surprised how fast it was to get through and leave a message with a staffer. They don’t keep you on hold forever like the bank or the telephone company. The staffers will take your message for the congressperson politely and without arguing.

I also wrote a letter that I sent to Senator Boxer, Senator Feinstein, and Congresswoman Eshoo. Here it is; if you like it, please feel free to use it as a basis for your own letter to your senators/congressperson.

Dear [Senator Boxer/Senator Feinstein/Congresswoman Eshoo],
I’m a citizen of California and a professional in the Internet industry. I’m writing to express my alarm and dismay at the “PROTECT IP” act that went through the senate judiciary committee this week, and its House version, “SOPA”. I strongly urge you to either oppose it or to introduce some changes.

I understand the need to enforce copyright law, but the way the bills are currently written, they give too much power to copyright holders and to the Attorney General to ban websites from the Internet without due process of law. I fear these powers will be used for blacklisting and censorship of completely legal and legitimate websites. SOPA/PROTECT IP needs to be modified to ensure that it is only used to go after lawbreakers. Operators of legitimate websites need to have a chance to defend themselves before being blacklisted off the internet.

As I understand the bills, they would empower the Attorney General, at the request of copyright holders, to put websites on a blacklist which all ISPs would be required to block, and to do this without any adversarial hearing.

As an American who believes in free speech, I don’t think our government should be building a national blacklist to block websites from american citizens AT ALL. That’s the sort of thing I would expect to see China or Iran imposing on its citizens, and I would expect the United States of America to be criticizing them for it — not building one of our own!

But if you think that copyright infringement is so serious that we need to resort to building the Great Firewall of America to fight it, then at least give the accused site owners the right to a trial before kicking them off of the internet. Otherwise, if we give the Attorney General the power to unilaterally ban sites without trial, what guarantee do we have that this power will be used only for fighting copyright infringement? It’s a small step from there to political censorship of any foreign sites the U.S. governemnt doesn’t want citizens to see.

The site owner should have the right to a trial before the government censors their site from the internet. The burden of proof needs to be on the accuser and the accused needs a chance to defend themselves in court. That’s the only way we can be sure this power is used only for its intended purpose of enforcing copyright law and doesn’t become a tool of censorship.

Besides free speech issues, as someone who works in the internet industry, I’m alarmed at how much legal risk this bill creates for website owners. PROTECT IP/SOPA would make website owners like me liable for any copyright infringement done by our users. Under PROTECT IP/ SOPA a single file posted to a site by a single user would be enough for an entire internet domain to be blacklisted and all its funding cut off. And all of this just on the word of the copyright owner — they wouldn’t even have to prove in court that their copyright had been violated!

I had been planning to use the Internet to launch a startup company of my own, but how can I do so knowing that my entire company could be wiped off the internet by the actions of a single malicious or ignorant user? There’s no way that Facebook, Twitter, YouTube, Blogger, Wikipedia, or any number of other internet success stories ever could have gotten off the ground under such a law. They relied on the safe harbor provision of the DMCA, which gives sites acting in good faith a chance to comply with the copyright holder’s wishes and remove infringing files before being threatened with legal action. This compromise has worked well for the last 15 years while the Internet has flourished. SOPA/PIPA would end safe harbor and increase the legal risk beyond what small businesses could bear.

Internet businesses are one of the few sectors launching successful startup companies and creating jobs in this grim economic climate, but SOPA/PIPA would shut all that down — or drive entrepreneurs to build their companies overseas.

We can protect the rights of copyright holders while still maintaining a free Internet. SOPA/PIPA must be modified to ensure that it will be used only for fighting copyright infringement and will not be abused for censorship, repression, or harassment of legitimate sites and legal content.

[Senator/Congresswoman], please either add such protections to the bill, or vote against it.

Thank you.

– Jonathan Xia
Palo Alto, California
November 2011

We may be starting to turn the tide. There are hopeful signs. The EFF is cautiously optimistic. The Business Software Alliance, which previously supported the bill, is now backpedaling. And here’s a roundup of progress against SOPA.

But the fight is far from over. The Senate is threatening to bring the PROTECTIP act to the floor on Tuesday. So that’s the next round of the fight. Mozilla’s trying to get everybody to call their senators on Tuesday the 29th (tomorrow). Please sign up here!


Test Pilot Mobile Heatmap study results

Jono DiCarlo

November 16, 2011

4:57 pm

The results of the Test Pilot Mobile Heatmap study are now up in a post at the User Research blog. Read it and see how different browsing patterns are on mobile compared to desktop Firefox!


Video: Demoparty Winners Trip to Helsinki

Tobias Leingruber

November 7, 2011

1:43 pm

AKEMI by Britzpetermann was the winning demo of our Demoparty Online Competition 2011*, 50% voted by our judges and 50% by our community. We flew them out to Helsinki to show their demo at the “Alternative Party“, a classic Demoscene party with more than 1000 code artists attenting.

Video

Hear more about the winning demo and dive into the Alternative Party. Enjoy!

Photos

There’s also a picture set of the Alternative Party up on Flickr:

Thank You! Mozilla Labs Demoparty 2011

A HUUGE thank you goes to Pascal Finette, who initiated this project and supervised it. Credits go to @cyberdees, James Socol, Rainer Cvillink, Matt Claypotch, Julie Choi, Zandr Milewski, Kristoffer Lawson and Antti Hirvonen for their immense support in running this show.

And last but not least: THANK YOU DEMOSCENE + MOZILLA COMMUNITY for submitting +100 demos, co-organizing and running 7 Demoparty events and helping us to inspire others to explore and push open web technologies!

yours, Tobias Leingruber @tbx

*This post is part of “Demoparty 2011“, our initiative to foster artful exploration of open web technologies.


How to Become a WebFWD Scout

Pascal Finette

November 2, 2011

12:12 pm

This is a cross-posting from WebFWD, Mozilla’s accelerator program

Do You Want A Better Web? Become a WebFWD Scout!

WebFWD, Mozilla’s accelerator and incubator program, is looking for awesome scouts around the world to help us find the most amazing open source projects. WebFWD Scouts are our eyes and ears on the ground, pointing us to entrepreneurs and developers with the skills and ideas to make the world a better place. As a scout, you become a key participant in the wider WebFWD team and community.

Intrigued?

Here’s the low-down: We’re looking for people on all seven continents (well – six, as Antarctica might be a stretch) who are well-connected in their communities, active in tech events and meetups, and know people who know people… In a word, you are a connector. You see interesting stuff all the time and other people seek you out for your opinion. And perhaps most importantly, you are driven by a desire to make the Web a better place.

As a WebFWD Scout, you’ll seek out projects which align with the WebFWD framework: Open Source, Open Web, Social Entrepreneurship. At Mozilla, we have a strong current focus on apps that enable a personalized web experience with the user in control, and we are actively seeking projects with a penchant for mobile first.

When you find something you believe is a great fit, you simply get in touch with us. Together, we’ll review the prospective project in more detail.

Ready to sign up?

Sign up here and let’s get to work scouting the world for the best WebFWD projects!


My game demo for Mozilla Festival 2011

Jono DiCarlo

November 1, 2011

10:02 am

I’ll be in London from Thursday to Monday presenting on HTML 5 game development at the Mozilla Festival.

I’ve been working on an HTML 5 side-scroller, as yet unnamed. The plan is to have the game skeleton pretty solid before my session, and then have participants in the session hack on it, add features to it, and flesh it out. That way the participants can get to work on the fun parts of game development, like creating monsters and power-ups, instead of spending the whole session setting up boilerplate code and debugging their event handlers.

The code for the game is on GitHub and there is a playable version hosted on my site. It uses BrowserID for the login. You can give it a try right now — log in and try making a level with the level editor, or play one of the existing levels and try to beat the best time! If you find bugs, please report them in GitHub. Thanks!


Firefox Share Alpha — the next step for fast sharing in Firefox

mixedpuppy

October 28, 2011

5:42 am

We’re pleased to introduce the Firefox Share alpha add-on, a spinoff from the F1 add-on you may already be using. Firefox Share is a descendant of F1, but it differs in a few significant ways that we’ll describe below. We’d love for you to try it and send us feedback to improve it.

We’re developing Firefox Share as an add-on so it can evolve in parallel with the rest of Firefox. Firefox Share works with all current Firefox versions.

Firefox Share alpha screenshot

While Firefox Share is derived from F1, there are changes in the interface and under the hood:

  • Most obviously, Firefox Share looks different. It’s been styled to integrate with the look & feel of Firefox, so it will look Mac-like on a Mac, Windows-like on Windows, and Linux-like on Linux. It will get prettier and more usable as we continue to iterate.
  • Firefox Share uses a different architecture than the original F1. F1 used a stateless server as a proxy to communicate between your browser and the service providers, because it was faster to build that way. For a variety of reasons, we’ve now moved to a pure-client-side solution, and the Share-enabled browser communicates directly with the service providers. This will make scaling to lots of users easier for us (no Mozilla servers needed!), and mitigates some security concerns.
  • We have a plan in place to support a long-tail of service providers, so you won’t have to try and convince us to implement your favorite sharing provider. We want our favorites too! More on that soon.

One other note: Since this alpha has been focused primarily on the re-architecture, we regret that we’ve had to drop a couple of features, including support for LinkedIn, Google Apps, Yahoo, and multiple accounts per service (e.g. multiple Twitter accounts). We hope to add these back over time in upcoming releases. We’ll keep you informed as Firefox Share continues to evolve and moves out of alpha.


Older Posts »