Christian Heilmann

Author Archive

Paypal and Yahoo developer challenge – over $160,000 in prizes

Friday, July 9th, 2010

I am right now working with Paypal on setting up a developer evening in the next few days to talk people through Paypal and Yahoo’s APIs and systems to build something cool for the Paypal X Developer Challenge. All in all the contest has prizes of $160,000 with $100,000 being the main prize and $10,000 prizes sponsored by different Paypal partners.

If you register your product idea by the fourth of August you also enter a special sweepstake for one of 10 iPads.

So what are you supposed to build for this? Mainly a product that uses Paypal’s payment APIs in a new and innovative way.

While PayPal, the external judges, and the X Award sponsors may select winners at their sole discretion, here are some of the general guidelines that they will use:

  • Innovative and “buzzworthy”: Innovative concepts that are able to capture the public imagination will be viewed more favorably than concepts that reflect existing ideas.
  • Viable business: The judges will favor viable business concepts over those that are less likely to succeed.
  • Newer applications favored: We welcome applications that have been built previously, or that have been entered into prior contests, but the judges will tend to favor newer applications and ideas.
  • Merchant integrations are less interesting: While it is possible to enter an online store into the contest because it meets the requirement of using PayPal’s products, classic ecommerce applications are unlikely to win the judges’ hearts.  Tools and services that “change how we pay” will be much more interesting for the judges.

In addition to this we have the X Awards:

We’ve set up some special awards offered by both our partners and us which are designed to reward innovation in key areas. These X Awards are judged independently and a single team could, in theory, win multiple X Awards and/or the Grand Prize. To be considered for an X Award, you will need to meet the eligibility requirements for the overall contest as well as any additional requirements for the X Award(s) for which you are applying. The top X Award entries will be invited to exhibit their applications at the PayPal X Innovate 2010 conference October 26th and 27th in San Francisco.

The Yahoo special award is tied to the following ideas:

Yahoo! Developer Network X Award: Yahoo! Developer Network is excited to participate as a sponsor in the PayPal Developer Challenge. Our prize of $10,000 will go to the application that demonstrates the most useful and inventive integration of PayPal and Yahoo! Technologies. We’re interested in apps that combine PayPal’s open platform technologies with the Yahoo! Application Platform (YAP), our social platform APIs (YOS), and those that use YQL (the Yahoo! Query Language) to access and manipulate web data from multiple sources in combination with PayPal’s transactions platform. Show us apps that solve real world problems in creative new ways; that make it easier or simpler to get transactions done; that enable transactions in new contexts; that create “wow” experiences for consumers, or help us create new business opportunities around the world. Entrants in this category must agree to the Yahoo! Developer Network Terms of Use, located at http://info.yahoo.com/legal/us/yahoo/api/api-2140.html, and the Yahoo! Query Language Terms of use, located at http://info.yahoo.com/legal/us/yahoo/yql/yql-4307.html.   By entering an Application in this category, Entrants agree that Yahoo! may feature your Application in the Yahoo! Developer Network website.  Also note that PayPal remains the sole legal sponsor of this X Award.

I’ll be working with Paypal the next few days to set up an event in London, so watch this space.

TTMMHTM: Accessibility personas, prettier images, Bieber in Korea and lots more!

Wednesday, July 7th, 2010

Things that made me happy this morning

Decreasing the server load of Keywordfinder with YQL

Sunday, July 4th, 2010

Back in the days when Yahoo BOSS came out, I built Keywordfinder to show off the “keywords” functionality of BOSS. BOSS returns you keywords people entered for a certain web site in its results and I used that to list the most popular search terms for a term you enter.

Now, yesterday I got an alert by my host that Keywordfinder is exceeding my GPU limit and checking the logs I realized that it is heavily hit by users from South America. So I decided to add a JavaScript layer to the app that would take away some of the traffic and a lot of the computation from the server.

I could have just replicated the PHP functionality in JavaScript but I thought it is more beneficial for everybody to turn the functionality into a YQL table and use Yahoo’s servers to do the heavy lifting for me.

You can see the keywordfinder open table on GitHub and it will be soon replicated over to datatables and show up in the YQL console. For now you can apply it using the “use” command:

use "http://github.com/yql/yql-tables/raw/master/keywordfinder/keywordfinder.xml" as keywordfinder;
select * from keywordfinder where term="oil spill";

try it in the console or see the results as XML

The results right now are: oil, oil spill, spill, the Gulf of Mexico, BP, the Gulf, BP oil, Oil Spill, Deepwater, gallons, Gulf of Mexico, Gulf oil, Horizon oil, crude oil, Gulf, Gulf Coast, Gulf Oil, oil rig, birds, Mexico oil.

The table returns the search term, the region, the language and the terms. It sanitizes all of them for HTML display. By default, the table uses English as the language and USA as the region. If you provide a different language and region you get other results:

use "http://github.com/yql/yql-tables/raw/master/keywordfinder/keywordfinder.xml" as keywordfinder;
select * from keywordfinder where term="fussball weltmeister"
and language="de" and region="de";
try it out in the console or see the result as XML.

I think it is a nice example how you can speed up an app and help others by adding the functionality to YQL. Enjoy.

Mozilla Add-on workshop and Firefox4 with HTML5, CSS3 and SVG

Thursday, July 1st, 2010

Yesterday night Mozilla invited developers to the Hub in King’s Cross, London to learn about Add-ons and the future of Firefox.

Nick Nguyen on Add-ons

Nick Nguyen The evening started with Nick Nguyen with Mozilla giving us an overview of the reach and numbers of extensions that are currently available for Firefox and Thunderbird. Some of the numbers were:

  • To date there were 2 billion downloads
  • only 40% of the add-ons were created in the US (followed by Germany) – this is the same in the Yahoo Developer Network, the US is the main market but developers are elsewhere
  • 40% of Firefox users have add-ons (8 is the most common amount of installs)
  • People created 588 Themes
  • 1054 Search Engines were added to Firefox
  • Overall the community created 4441 Extensions
  • The surprising number was that people created 156,147 Personas (skins for Firefox)

This, according to Nick, makes the Mozilla stack the “richest extensions platform”.

The move to Jetpack

Nick then went on to explain the changes in add-on architecture, especially the move from XUL based add-ons to Jetpack. Whilst the old school XUL path still yields the most powerful results, Jetpack is the preferred way to build for the future, because of a few reasons:

  • user don’t need to restart the browser to install them
  • updates are a lot easier
  • you only need to know JS, CSS and HTML
  • there’s a user friendly web IDE - the addon builder.

Promoting your add-ons

Nick then explained some of the options for promoting your add-ons. Promotion is possible for targeted markets and promoted add-ons normally tend to get 5-10k downloads/day. Firefox 4 will have add-ons in a tab – full screen and featured instead of the currently somewhat cumbersome add-on manager.

The Rock your Firefox blog describes the story of add-ons and how it improves people’s lives. It is an editorial servers for developers. Featured add-ons get 2-3 days exposure and ten-thousands of downloads.

The Mozilla contributions program allows people to donate money for developers. So far 500 add-ons (12% overall) received money from the programme. It has run for 10 months and so far raised $90,000.

The next step for Mozilla now will be an add-on Marketplace – which is a store for add-ons. They want to try it out and see how it will work out. In a survey conducted amongst the add-on developer community 3 out of 4 developers like the idea of reaching 100 million active add-on users and sell their add-ons for 1 to 5 dollars. Mozilla is very outspoken about never to consider a DRM model and consider fair pricing the better way to fight piracy. The store will accept Paypal and all major credit cards. One of the key requirements is support for non US developers and the store encourages free add-ons that feature more options in the paid versions – much like the Android market does now.

Overall Mozilla like to see their planned app store not like a mall but like an organic farmers market.

Justin Scott – on making add-ons people will love

Icon Brushup challenge by photo Justin Scott talked us through some of the steps how to build a really good add-on and explained some of the pitfalls to avoid. His talk was structured in three stages of add-on deployment: building, marketing and listening.

Building your add-on

One of the biggest feedback items Mozilla users gave in a survey about add-on happiness is that they are expecting a clean first run of the add-on. things people didn’t like at all were:

  • Add-ons that require registration
  • modal dialogs and wizards
  • asking to change the user’s settings
  • pages that pop up after updating and changelogs

If you for example click on a link in an email you don’t want your Firefox to open a different pages as an add-on needed upgrading. This was one of the main reasons why the new add-on manager in Firefox 4 will not pop up any longer but will be much more discreet.

A few tips for good deployment:

  • Put your dialogs on the first run page or have it user triggered instead of forcing users to change setting when the add-on gets upgraded
  • Don’t clutter the UI - instead try to integrate your extension with the UI as if they are a part of Firefox.
  • Stick to one way of showing the extension and allow the user to choose where they want to see it – as an icon in the toolbar, on the bottom right, as a right-click extension and so on.

One bad example Justin showed was the Delicious extension which adds 7 logos to the Firefox chrome in different areas.

The next point Justin brought up is that it is very important to earn and keep the user’s trust. He explained some of the main mistakes that add-on developers do:

  • change the browser’s search provider for ad sales
  • replace ads on websites with own ads
  • install other add-ons with the one you agreed to install

This lead to the “no surprises policy” of Mozilla:

  • Every add-on needs to have a full disclosure of what it does (including the changes mentioned above)
  • Users have to opt-in to these changes
  • Changes have to revert on uninstall
  • All changes have to be included from the start and not on the second or third run

Some tips to avoid annoyances are:

  • Choose a core functionality and stick with it – don’t change the functionality on updates
  • Have a clear privacy policy – install the proper way – not with .exe.
  • Stay current: update compatibility before the next release, avoid conflicts with other add-ons, leverage new features like restartless add-ons, larger icons and mobile support
  • Build fast add-ons. Your add-on should not delay the start up of Firefox. Mozilla are working on tools to measure performance and tell developers how to change them.

Marketing for your add-on

Next up were some of the ideas how to market your add-on. Pretty basic advice but surveys in the community showed that these things constantly get done the wrong way.

  • The name of your add-on should mirror the functionality – don’t get too creative.
  • Have a nice icon (half the extensions don’t have an icon – even 40% of the approved ones – to battle this Mozilla is expanding the default “jigsaw icon” to more descriptive ones. They also offer a design help forum and run a icon redesign contest soon)
  • Provide helpful screenshots and keep them updated – video screenshots are in the planning
  • Avoid EULAs – Firefox now has different install buttons for EULA and non-EULA add-ons. Surveys showed that 44% of the plugins without a EULA got installed, but only 5% of those with a EULA. Another 40% of the installers dropped out after reading the EULA which means that only 3% got installed.

Listening to your audience

Justin’s last point was to listen to your users:

  • Have a good support avenue (email,website,get satisfaction)
  • Monitor user reviews – developer can reply to them
  • Use tools – statistics (how fast do people upgrade), recent activity feed as RSS, compatibility reporter

Myk Melez on Jetpack

Live coding of an extension by photo Next up was Myk Melez with a deep dive on Jetpack. He started with a history and description of Jetpack which came from the Mozilla Labs. The reasons for Jetpack were that it was too hard to build add-ons, that browser updates broke add-ons, that restarting your browser is annoying and that add-ons have system access but probably don’t need it (which of course is a security issue aswell).

The goals of Jetpack subsequently are to simplify add-on development with CSS and JavaScript, to work with upgrades, to limit the power of plugins and to avoid restarts.

Jetpack came around in Spring 2009 and had these features but still allows for full system access. People liked it a lot, especially that you could build add-ons inside the browser which is great for casual developers.
There were however some issues with bootstrapping into Firefox and compatibility with updates and there was no way yet to harness third-party APIs in your extensions with Twitter being the most requested.

In Fall 2009 there was a reboot of Jetpack which included a web application for casual developers, an SDK for developers, XPI bundles + API bundled with add-in to solve bootstrapping and CommonJS Modules for code sharing with third parties.

In 2010 the webapp and SDK came out as a incubation programme of Mozilla instead of labs level and after five SDK releases, Jetpack is now restartless on 4 and betas, has a unit testing harness and documentation tool. The web app allows you to create add-ons and libraries and instant testing via a helper add-on.

Myk then did a live demo building a new extension using the of the add-Ons Builder (which is Bespin inside the browser allowing you to build extensions).

The future of Jetpack will have the limiting of system access, new APIs for window and sidebar, debugging options (console and memory management), compatibility across updates and the web app will get addons.mozilla.org integration.

You can read all about Jetpack at jetpack.mozillalabs.com and try out the builder yourself at builder.mozillalabs.com.

Lightning Talks

After a quick break with awesome food and drinks (really) we headed for some lightning talks.

Artzilla by photoArtzilla's China simulator by photomobile firefox add-ons by codepo8

First up was Evgeny Shadchnev showing his Invisible hand price comparison Add-On. Specifically he explained how they moved from XPI development to Jetpack and how the test driven design allowed them simple development in a way no other browser extension platform does.

Next was Tobias Leingruber from Artzilla.org who talked about the lighter side of add-on development and hacking the web to be a funnier and more interesting place. I loved the talk as I myself have this mean streak for my add-ons (check Touretter as an example). Tobias talked about things artzilla had built, like a Dislike button for Facebook, the China channel firefox add-on that simulates the internet censorship in China and an add-on that finally removes Justin Bieber from the internet – thanks guys!.

Brian King talked about building add-ons for Firefox Mobile and pointed out the slow performance on handsets, the need for a different UI and how you can build cooler add-ons as you can tap into orientation, gps and camera. He also explained that you don’t need a phone to develop as there are nightly builds of desktop Fennec and a Maemo virtual image for Maemo apps (simulating a Nokia N900). One big tip was the Addon collector extension which allows for bunch syncing on extensions from desktop to mobile.

Paul Rouget and Tristan Nitot on Firefox 4 and HTML5

Paul and Tristan from the Paris office were next and blew our minds with some of the cool stuff coming up in Firefox 4
Mozilla Add-on evening by photoPaul Rouget by photoHTML5 embedded inside SVG by photo

A reminder of what XUL is about

Paul started somewhat on a tangent by showing 3 tips for your first add-on. His main point was that you should understand XUL, CSS and JavaScript to build great add-ons (which somewhat contradicted the Jetpack talk but eh, he is French :) SCNR).

Paul explained that the Firefox UI is a big web page. Firefox itself is XUL and you can open it in Firefox itself with chrome://content/browser/browser.xul. He then showed how to build a browser in XUL using the XUL explorer in 20 lines of XML. Once you understood that the whole browser is a XUL document, the next step is to understand Overlay which means that you add to the browser’s chrome. You can find out where to inject your code using the DOM inspector.

All you need to do then is to write a manifest file and an install.rdf and package up your extension. All of this is described in detail at https://addons.mozilla.org/en-US/developers.

New features in Firefox

Firefox is getting a bad reputation right now for being slow and unstable. A lot of these issues are actually not the fault of the main engine but add-ons and – especially on a mac – plugins. Whenever my Firefox dies it is because of some Flash movie. This is why from 3.6.4 onwards Firefox will have a crash protection which means that if a Flash, Quicktime or Silverlight plugin crashes, the browser stays up and just tells you to reload the current page as
the plugin caused an issue.

Tristan re-iterated Mozilla’s cause and idea of the web as an open and free platform and that they are working hard to make it easy for developers to build with free tools what has been done with closed source platforms up to now.

Tristan and Paul then went through some Firefox 4 and Firefox Mobile 2 demos – some of which I had seen before, and others that impressed me a lot. Things Paul showed were:

  • HTML5 Video display
  • Painting with Canvas
  • Image manipulation with Canvas – pixel testing, face detection with opencivitas
  • Green screen technologies in images and video by detecting pixel colours.
  • HTML5 embedded inside SVG (yes!)
  • SVG as an IMG
  • SVG as a CSS background
  • SVG filter/mask/clip
  • SVG animations
  • Inline SVG inside HTML5
  • CSS3 (selectors, @font-face, 2D Transforms, Transitions, Shadow, Gradients ,calculations – calc(2em-10px) )
  • APIs: Geolocation, Offline (IndexDB, localStorage, AppCache, FileAPI – binary content of a file input, file drag and drop, web workers, websockets)
  • Websockets controller running the presentation from the mobile.
  • WebGL

If you want to see some of the cool things they showed, here are some videos:

CSS3 filters and SVG masking on HTML5 Video:

Highly interactive video interface with SVG masking and transitions:

WebGL in Firefox 4 and on Android:

After this, Tristan covered some of the other features of Firefox 4, especially the upcoming speed improvements:

  • TraceMonkey (a new Javascript engine)
  • Lazy Frame Construction
  • Reducing I/O from the main thread
  • Startup Time
  • Hardware accelleration
  • GPU text/graphics/video rendering
  • Using GPU for text rendering
  • JavaScript JIT (JaegerMonkey)
  • HTML5 parser running own thread
  • slicker interface
  • no more modal dialogs
  • no startup interuptions
  • updates in the background

Other features of the upcoming interface are:

  • switch to tab (awesomebar storing open tabs)
  • dedicated application tabs (icon tab instead of text)
  • Permission control per web site – all the different options by domain
  • extensions as own page

The plan is to ship RC1 in October – let’s see if that works out :)

Summary

I had a great time at the event and I am convinced again that Mozilla are doing a great job in building the infrastructure for the Open Web. If you think only webkit is an HTML5 browser, check out some of this. One of my favourite parts of the whole demo at the end was that all of the examples are progressively enhanced, so if you watch them in a browser that is not Firefox you still get the features supported in that browser – something that the Apple showcase of HTML5 for example doesn’t bother to do.

A sickening trend in online dating sites – very dirty scams

Wednesday, June 30th, 2010

A few days ago I was at a party in my neighbourhood and – as it happens when you are the token geek – people talked to me a lot about the internet and how scary it is.

wedding ringsscam

The internets are scary and full of evil people

Normally I shrug at this as a lot of evil things on the web are just plain obvious. For example I never understood the whole thing about the Nigeria scams. If you are really that greedy and thick that you think someone you don’t know needs to dump a gazillion dollars in your account and gives you a share you deserve to be fooled. It is like a guy asking you on the street if he could stash 50kg of Cocaine in your house till the police stops checking on his and you’ll get a share of the sales – would you do that?

Turns out, the internets are scary – at least in a very active subsection

What annoyed and subsequently disgusted me though was a very evil routine a lot of scammers infiltrating dating sites pull right now:

  • They make contact with a person looking for a relationship/shag/meeting and do a great job of flattering you and appearing sincere.
  • Once they got your confidence and offer a meeting they start getting sketchy
  • Reluctantly they admit that it is very hard to meet as they look after a sick sibling/partner/parent and that their time is limited and they can’t travel or afford a hotel
  • Sooner or later they will ask for a “big favour” to lend some money till the end of the month for medication and they swear that you’ll get it back once you meet.

To prove that this really happens I created some fake accounts (with both sexes – the scam works both ways but more women are targeted) and waited. A few winks later and some email back and forth I can safely say that this scam is pretty much rampant on several free dating sites at the moment.

Well, it is obvious that you should never ever give a stranger money – no matter how nice they appear but the sheer amount of deceit in this scam is the really sickening part of it. To a degree it is genius:

  • People on dating sites are already emotionally involved
  • They want to meet a nice, sincere person with feelings
  • Someone tending to a sick person must be a wonderful human being and naturally doesn’t have time to go out and naturally would want to do everything online
  • The scammers really do a great job using the right language to make you feel good and give up some of your information

I don’t even want to think about the other implications – like people sending naughty photos to these scammers and then becoming blackmail victims. This would be especially the case with people who are married and look for fun on the side.

Countermeasures – be safe out there

So the main things I found these scammers to do are a few steps – so be very cautious when this happens:

  • Do not fall for the “let’s email each other instead – this is too slow here”. Granted, they have a point. A lot of dating sites take ages to send messages to each other (I guess as they are monitored for illegal content) and it can be frustrating to wait. If the dating site systems offered an email notification that would make things much easier – and a good live chat on the site. Most offer these things, but only for a paid account and the sites I tried all sucked big time to use on a phone.
  • Scammers delete their profiles really fast – claiming they “found you – I don’t need wait for more”.
  • Don’t believe in photos without a special – it is nice to get a lovely photo but be adamant to get another one that proves this person is real – ask them to hold a candle or a can of soup or whatever and check for obvious photoshop stuff.
  • People who want to go on messenger with you and don’t have a working camera are scammers – why else would you move to messenger? You can chat on other systems. Messenger is as personal as it gets, don’t forget that.
  • Don’t go to any other web site – if they want to send a photo – make it an email attachment.
  • Use a new email dedicated to this – don’t use any where you store other important information and never – ever – use your company email!
  • Be aware of overly warm language – if the “dear”, “sweetie” and “missed you soo much” sentences crop up very early at a stage where you really don’t know anything about each other you have a scammer.
  • Ask for specifics – if a person claims to be from a certain area, ask about things you know that are there. Make up wrong things and see if they claim they are true. “Oh I loved to go to the Ivy there – wonderful pub, is it still around?”

Why this sucks

Despite the obvious sickening piggy-backing on the terrible happening of someone dying of a terminal disease this scam furthermore fortifies the believe that people are all bastards, can’t be trusted and will try to take advantage of you – especially on the internet. In a society that largely stops talking to another in public (unless we live in the state of inebriation) this is where a lot of people go to find someone else which makes that very hard for anyone to find happiness. This also means that if you really are a warm hearted human being on the web who tries to find someone you will have a damn hard time to do so – as people predefine you as fake before you even start saying anything.

It would be interesting to see what dating sites could do to battle this trend.