Christian Heilmann

You are currently browsing the Christian Heilmann blog archives for October, 2009.

Archive for October, 2009

Data, data, everywhere – government and museum hack competitions, get them while they are hot!

Friday, October 23rd, 2009

Right now I am a very happy bunny:

CJ Happy Bunny by  TedsBlog.

The reason is that more and more great data sources and mashup competitions are cropping up in my surroundings right now. One of the things that got me most excited is that the UK government is opening its data and calls for a mashup competition. I’ve been at the Guardian last week before leaving for Vienna and Prague to look at the data sources and plans in place and there is a lot of cool data to play with. I found the data format of RDF and SPARQL a bit on the confusing side (yes, it is open, but why make it hard, SPARQL is not the most intuitive of languages) and it seems there will be easier ways to get to the data. If you are interested in the data and the competition, check out the Government open data google group.

Me pimping that on Twitter also brought the Australians out of the undergrowth pointing out the Australian government data competition. Sweet stuff, but zipped excel sheets are not really usable data sources. Maybe hosting them on Google Docs and writing a YQL table to point to them would be a more successful approach?

The next thing I got involved in is the Science Museum of London’s Cosmos and Culture mashup competition. There’s a blog post with more details and I’ve done an interview with Mia Ridge, Lead Developer at the Science Museum where she points out that there is a wiki to collaborate in teams to hack something for the competition. Mia also talked about a wiki of all kind of Museum APIs.

As mentioned before here and on the YDN blog, the National Maritime Museum in London still has a call for developers to astrotag photos and mashup that data. The driving force behind this is Jim O’Donnell who uses YQL extensively to make this data very easy to use.

It is on! Get your keyboards ready, give YQL some thought and let’s show the government and museums what stories geeks can find in data sets.

On being cleverly lazy – my talk at the WebExpo in Prague

Monday, October 19th, 2009

I am currently in Prague, Czech Republic and gave a talk on re-use, professionalism and ease of development at the WebExpo.

Webexpo Prague by  you.Webexpo Prague by  you.

Today I am going to have a longer chat with the people at the University about accessibility and creating a WAI-ARIA enabled framework for web applications.

For now, here are the slides of the WebExpo presentation and the audio recording of the talk. There was a video streaming, too, and it is up to Microsoft now to get this out as a recording.

Slides

Audio recording

You can download on being cleverly lazy as an MP3 - 36MB or see other audio options on archive.org

Notes / Transcript

Today I will talk about the fact that being cleverly lazy will make you a better developer.

First of all, I am Chris, a developer evangelist. This means I am a developer who evolved into a role where I can tell other developers how to have an easier life and tell my company what other things developers would want to make it even easier for them. I’ve written a developer evangelism handbook if you are interested in learning more about this role and why your company would benefit from having someone like me.

Cleverly lazy

Let me quickly define cleverly lazy here. Lazy is “I don’t want to do it” wheres cleverly lazy is “I don’t want to do that ever again so I do it right this time”. In development the difference between lazy and cleverly lazy is that lazy products do the job but are impossible to maintain whereas cleverly lazy products do the job, are easy to understand, extend and are built on a solid base.

Evolving the web

Our job as developers, designers, planners and organisers of web products is to evolve the web. We should have the chance to concentrate on building solutions that make people happy to use them rather than having to work out how one browser or another fails or how we convert data into a format the web technologies can display and understand.

In order to achieve this, we need to be free to do new things rather than worrying about the past.

The feature loop trap.

One problem is that as developers, we stand in our own way. The biggest trap that there is for developers is the feature loop:

  • As developers we love to take a complex problem and tackle it. We love solving problems, that is why we become developers.
  • We then normally and quite quickly find a simple solution to the complex problem.
  • We then release the solution to the world and get feedback.
  • This is where it goes pear-shaped. We get stuck in a feature adding and feedback loop until the elegant, easy and simple solution becomes a complex one again.
  • Other developers will find our former simple solution and will think “hey, this is a complex problem, let’s make that easy!”

This keeps us from evolving as web developers. We don’t develop the web, we fill it up with solutions to the same problem.

My solution

The next issue is that as developers we love to find solutions ourselves and not use other people’s information. We appreciate other people’s work but in the end we only trust ourselves to come up with the best solution ever.

Short attention span

The problem with finding and building own solutions is that we tend to lose interest in them really fast and then leave them behind as we already another complex problem to simplify. This leads to lots of half-finished solutions on the web that don’t get any love any longer.

Unmaintained code is a security problem

All the code that is not getting any love stays unmaintained on the web and becomes a wonderful attack vector for new security threats or vulnerability exploits. Nothing beats being up-to-date when you want to build secure systems.

Things web developers must know to do their job.

Looking at our job as web developers, here are the things you have to be aware of to build things that people can use.

  • The technologies involved
  • How browsers deal with these technologies and how they fail to support them
  • Security concerns and attack vectors
  • Usability and accessibility of the product
  • Internationalisation of our products
  • Performance concerns
  • Multiple platform support
  • Flexibility of the interface

Browsers suck

Browsers are the bane of our existence as they are unpredictable, unreliable, there are hundreds of them (in various configurations) and they are not being updated by people out there.

That is a lot to know and deal with. The good news is that you don’t need to know all of it.

Good developers are like librarians

Librarians are great people. Instead of knowing everything that is in the library they know exactly where to find the information to solve a problem. As a cleverly lazy developer you should do the same.

Build on a solid foundation

Web development libraries came around for one simple purpose: Make our life as developers easier and our work as web developers predictable. They make browsers suck less and work around differences in browsers. They allow us to use web standards and get results instead of bugs to fix.

Build with components

If you build web applications and interfaces take a look around for what has already been created for you. Almost every library comes with widgets that are tested, work for everybody regardless of ability and can be changed to your needs. If you build your own component you are very likely indeed to forget some very necessary functionality that a collaborative product already had put in.

Use a good debugging environment

You can’t write great products without being able to know what is going on. Luckily enough nowadays we have great debugging tools like Firebug, Yahoo Profiler, JSLint and validators of all kind.

Plan for extensions

If you build a solution, plan a way so that people can extend it without having to change the central code. The central code should only have to change when there is a new browser or platform to be supported or there’s a security fix. Other than that people should be allowed to extend by listening for events or using other API hooks into your product.

Read, use and write documentation

If you build something, document it. There is no such thing as code that explains itself, that is a myth and an arrogant one at that.

Use the web

One of the really cleverly lazy things to do these days is to use the web to build your product rather than building your product and putting it on the web. Distribute your content on specialised systems like Flickr, YouTube, Delicious and LinkedIn and then put it together in a centralised CMS. That way your site will be easy to maintain and not vulnerable to a single point of failure.

Use APIs

To achieve this you need to use APIs. APIs can take a lot of your time to read up on and understand which is why it is a good plan to use YQL as an in-between to avoid going crazy on authentication and understanding what parameters go in and what data comes out.

An example

As an example, let’s take a look at a web site built solely from data on the web, using YQL and PHP.

Thanks!

Thank you, remember if you use what is out there you have time to be creative. I want us to write code most of our time, not to fix bugs.

Mein Vortrag am A-Tag 2009 in Wien: Alles aendert sich, warum nicht wir?

Friday, October 16th, 2009


Ich bin gerade in Wien, beim A-Tag 2009 – interaktiv barrierefrei einer accessibilty Konferenz. Heute nachmittag werde ich den folgenden Vortrag zum Thema halten:

Audio Aufnahme

Die Audio Aufnahme des Vortrags liegt bei Archive.org: Panta Rhei – alles aendert sich, warum nicht wir – MP3 - 35MB (andere Formate)

Panta Rhei – das Netz aendert sich, warum nicht wir?

Hallo erstmal, ich bin der Christian und hier um nochmal darueber zu meckern das Barrierefreiheit den anderen Techniken in unserem Markt hinterher hinkt. Mein Hauptproblem ist das die Barrierefreiheit Welt sich wenig dafuer interessiert was in ein paar Jahren interessant wird und statt dessen alte Probleme diskutiert. Dadurch verpassen wir den Anschluss und koennen uns nicht dem Interesse des Marktes an neuen Produkten anschliessen.

Innovation

Apple ist wohl eine der Hauptfirmen die derzeit im Computer Bereich mit dem Begriff Innovation zusammen genannt wird. Und das hat Sinn, da Aepfel schon immer Menschen inspiriert haben.

Masse, Bewegung und Kraft

Sir Isaac Newton bemerkte als Erster das Kraft dadurch entsteht das eine Masse eine bestimmte Beschleunigung erfaehrt. Leonard Euler definierte das dann spaeter als eine einfachere Gleichung. In anderen Worten (definiert von den Fantastischen Vier): In der Bewegung liegt die Kraft.

Wir sind zwar Masse, aber keine Kraft. Das Problem ist das wir nicht in eine Richtung gehen. Mehrere beschleunigte Massen die sich nicht in eine Richtung bewegen resultieren in Kraeften die sich gegenseitig aufheben oder stoeren.

Barrierefreiheit ist ein internationales Problem

Das hat politische und gesetzliche Gründe. Und sprachliche/nationale Gründe. Barrierefreiheit per Definition überschreitet Grenzen. Barrierefreiheit ist genauso wie Umweltverschmutzung ein weltweites Thema und kann nicht in einzelnen Laendern unterschiedlich behandelt werden. Fast jeder kann Englisch lernen. Innovation im Web passiert auf Englisch. Das ist einfach so und es ist nicht schwer diese Sprache zu lernen. Der Grund ist nicht sich auf Amerika zu konzentrieren sondern eine weltweite Kommunikation zu ermoeglichen.

Dichtung und Wahrheit.

Es gibt viele Mythen, die Barrierefreiheit zurueckhalten:

  • Alles ist schwer und kaputt.
  • Die Web Technologien sind nicht auf Barrierefreiheit ausgelegt.
  • Barrierefreie Angebote sind weniger schoen als “normale” Webseiten.

Genug gemeckert

Es wird Zeit das wir aufhoeren uns nur zu beschweren und anstatt dessen uns darauf zu konzentrieren zusammen mit Entwicklern, Designern und den Architekten des Internets barrierefreie Produkte zu erstellen.

Es geht auch anders.

Das ist der Wechselkurs Rechner von Yahoo. Ein Produkt das vollkommen interaktiv, dynamisch erstellt und barrierefrei ist. Ich kann ohne die Seite neu zu laden zwischen verschiedenen Waehrungen wechseln. Wenn kein JavaScript vorhanden ist, laedt die Seite neu. Ich kann den Rechner mit der Tastatur bedienen und Screenreader sind auch unterstuetzt.

Das ist Facebook innerhalb der neuen Yahoo homepage. Mittels cleverer Tastaturunterstuetzung und ARIA ist jetzt endlich Facebook fuer Blinde zugaenglich. Was wir hier gelernt haben ist nun auch in der YUI Bibliothek enthalten und kann von jedem verwendet werden. Moeglich war es Facebook zugaenglich zu machen weil die Daten von Facebook mittels einer API im web zugaenglich sind.

Das Web ist nicht die Seite, das Web ist nicht der Code, das Web besteht aus leckeren Daten!

Diese Daten zu verwenden und Produkte zu erstellen die sie barrierefrei darstellen braucht gute Entwickler, die technisch talentiert sind aber auch und hauptsaechlich eine Leidenschaft fuer Barrierefreiheit besitzen. Denn Leidenschaft + Talent = Barrierefreiheit. Leidenschaft entsteht durch Interesse und positive Erfahrungen.

Mythos SmartPhone

Das iPhone und andere “Smart Phones” sind derzeit wohl das genialste was man als Entwickler haben und als Platform verwenden kann. Wahnsinnig viel Geld wird fuer kleine Programme ausgegeben und generell uebernimmt das Handy alle Aufgaben die wir vorher per Hand gemacht haben. Problem ist natuerlich das ein Touch Interface ganz ganz uebel fuer Barrierefreiheit ist. Richtig?

Falsch. Das iPhone ist beispielsweise zugaenglich fuer Blinde, wie Marco Zehe auf seinem Blog erklaert hat. Der Grund ist das das iPhone wie auch Mac OSX von vorneherein mit einem Screenreader ausgestattet ist.

  • Das ist SoundAmp, ein Programm fuer das iPhone das Klang aufnimmt, verstaerkt und ueber den Kopfhoerer ausgibt. Sozusagen ein sehr einfaches Hoergeraet. Klar ist das keine “richtige” Hilfe, aber es zeigt das Entwickler interesse haben, Barrieren mittels von Technologie zu umgehen.
  • iSign ist ein Schulungsprogramm fuer Amerikanische Gebaerdensprache.
  • Senyala ist ein Experiment, das Touch Interface des iPhones als Eingabekanal zu verwenden um einfache Gesten in vordefinierte Saetze umzuwandeln. Das kann Menschen helfen ueber einfache Gesten in mehreren Sprachen zu kommunizieren. ist ein Experiment, das Touch Interface des iPhones als Eingabekanal zu verwenden um einfache Gesten in vordefinierte Saetze umzuwandeln. Das kann Menschen helfen ueber einfache Gesten in mehreren Sprachen zu kommunizieren (Video von Senyala auf YouTube
    und Audio interview mit den Entwicklern auf archive.org).
  • Nokia entwickelte einen Braille Leser fuer das Touch Interface. Natuerlich ist das zu langsam und schwer als Ausgabe, aber es zeigt das Interesse besteht und wir sollten mit Fachwissen zur Seite stehen.
  • Top Trumps, die Quartett Karten kommen jetzt mit Barcodes auf der Rueckseite die es Kindern erlauben 3D Bilder der Karten mittels einer Webcam zu sehen (Video der Top Trumps barcodes auf YouTube). Weiterhin kann man ueber das Netz miteinander spielen. Diese Technologie koennte auch fuer Kommunikation mittels vordefinierter Karten verwendet werden.
  • Augmented Reality ist eine sehr geniale Technologie. Ueber das live Kamerabild eines Smartphones werden Daten ueberlagert. Zum Beispiel erkennt das Handy, wo man sich befindet und zeigt einem die Ubahn Stationen in der Umgebung, welche Linien unterstuetzt sind und wie weit in welche Richtung man gehen muss (Video der Bahnapplikation auf YouTube und Video einer Immobilienapplikation auf YouTube).

Das gabs alles schon einmal. Witzigerweise gab es das schon vorher in der Barrierefreiheit-Welt. Humanware in Kanada hat ein Produkt erstellt das per GPS es Blinden ermoeglicht sich in der Stadt umzusehen (Video des HumanWare Maestro auf YouTube). Als Sehender weiss ich nicht immer was der Name der Strasse ist und welche kommen werden, dieses Produkt hat diese Information.

Der Spass Faktor

Menschen wollen Spass. Menschen aendern ihre Vorgehensweise am Besten wenn sie Spass daran haben etwas neues auszuprobieren. Dieses Video zeigt ein Experiment in Schweden. In einer Ubahn Station wurde die Treppe neben der Rolltreppe als ein grosses Piano umgebaut. Verschiedene Stufen machten verschiedene Toene und 60% mehr Pendler verwendeten die Treppe anstatt der Rolltreppe.

Hilfe und Sicherheit

Menschen sind hilfreich. Tweenbots war ein Experiment bei dem ein kleiner Roboter mit einem lachenden Gesicht und einer Fahne mit der Bitte “Bring mich zum Suedlichen Ende” in einem Park ausgesetzt wurde. Der Roboter fuhr mit einer vordefinierten Geschwindigkeit in eine Richtung und das Video zeigt wie Menschen dem Roboter halfen wenn er stecken blieb.

Gemuetlichkeit, wo man sich wohl fuehlt. Es ist sehr wichtig das man Menschen ein Gefuehl der Sicherheit gibt. Wenn wir uns wohl fuehlen koennen wir lernen.

Reichweite. Daher ist es eine sehr gute Idee digitale Inhalte anstatt auf einem Computer auf einem bekannten Kanal darzustellen – dem Fernseher.

Positivbeispiel: Nintendo Wii

Nintendo kapierte das am Besten. Mit der Wii gelang es dieser Firma den Markt vollkommen aufzurollen und es Menschen zu ermoeglichen Computerspiele zu spielen indem sie natuerliche Bewegungen vollziehen.

Dieses Video zeigt verschiedene aeltere Menschen die ohne irgendwelche Erklaerungen anfangen mit der Wii zu spielen.

Diese Photos zeigen den Effekt den das Spielen mit der Wii auf Menschen in amerikanischen Altersheimen hat. Spass, Freude, Konzentration und Leidenschaft. Wenn unsere Produkte nur einen Bruchteil dieser Leidenschaft bringen, dann haben wir gewonnen. Es geht so weit das die Wii jetzt anstatt von teueren Spezialgeraeten in einer REHA Klinik verwendet wird. Das YouTube Interface fuer die Wii sieht so aus, ist einfach zu bedienen und unterstuetzt die Tastatur!

Lehrer brauchen Geduld

Was wir brauchen ist mehr Geduld mit den Entwicklern und Designern.

Schulung braucht Geduld. Das ist ein Video das zeigt wie Anne Sullivan der gehoerlosen und blinden Helen Keller sprechen beigebracht hat. Die Technik war es Helen zu erlauben Annes Lippen, Nase und Hals zu ertasten und dann die Muskelaenderungen nachzuahmen. Es ist ein wunderschoenes Beispiel das zeigt das ein Lehrer aus seiner eigenen Komfortzone herausgehen muss um Spitzenresultate zu erzielen.

Integration

Ein schoenes Beispiel fuer Integration sind diese Videos. Auf einem Death Metal Konzert ist ein Rollstuhlfahrer der als grosser Fan der Band mit seinem Elektrorollstuhl Kreise dreht. Die anderen Fans nehmen ihn auf ihre Schultern und heben ihn auf die Buehne um das letzte Lied neben der Band zu erleben. Wenn es Metal fans schaffen Rollis als einen von Ihnen anzuerkennen dann ist es verdammt schade das Stadtverwaltungen das nicht schaffen.

Barrierefreiheit darf kein Zwang sein. Wir koennen Barrierefreiheit nicht von der Kanzel herab der Welt aufzwingen. Das fuehrt nur zu theoretischen und religioesen Debatten.

Zurueck zum Mensch

Barrierefreiheit muss unter die Haut gehen. Anstatt dessen muessen wir uns darauf konzentrieren Barrierefreiheit als Leidenschaft fuer Kommunikation und Menschen eine Freude zu bereiten zu verkaufen. Dieses Foto zeigt eine Frau die sich Implantate in den Arm eingefuehrt hat die zusammen einen Braille Satz ergeben. Andere Menschen taetowieren den Namen ihrer Geliebten auf den Arm. Das hier geht weiter und bringt das Gefuehl als Ersatz fuer das Bildnis.

Es ist also Zeit nicht die Schuld zu suchen, sondern zu inspirieren, Gutes zu tun.

Danke

Christian Heilmann
http://wait-till-i.com
http://developer-evangelism.com
http://twitter.com/codepo8>

Liberté, Accessibilité and Securité – that was Paris Web 2009

Tuesday, October 13th, 2009

Last week I went to Paris, France to speak at a Yahoo Developer Network event and Paris Web. Paris Web is a web development, design and accessibility conference that runs for the fourth year (I think) and I’ve been speaking there for the third time.

My presentation – basic housekeeping

Originally I planned to speak about my favourite topic – the web of data and how to use it – but the organisers had other plans for me. Normally I hate changing my topic and being asked to do specials but I have a fond spot for Paris Web so I talked about web security instead. The slides of my “basic housekeeping” talk are available on SlideShare:

In the talk I covered some very basic measures you can take to protect your web site from becoming a spam hub, part of a botnet or simply get spammed. I pointed out the following mistakes people make:

  • Underestimating the severity of web application security holes – it is not about your server but also about users who use the same passwords all over the place.
  • Keeping folders listable and thereby allowing people to find vulnerable scripts and dig into data they shouldn’t be able to see (the example I showed was eat.co.uk failing to protect their /cgi folder and thus allowing full access to an admin section and listing their DBs)
  • Allowing search engines to index admin sections of web applications (I proposed using robots.txt but as one attendee pointed out in the Q&A protecting with .htaccess makes a lot more sense)
  • Keeping error messaging on and thus allowing people to gain insight into your server setup
  • Having an insecure PHP setup with globals enabled which would allow for overriding security checks and remote code injection (using phpsecinfo can help you find these issues)
  • Blindly relying on software and not testing installs. Also, not overriding preset users and passwords (as an example try the user and password “builtin” on any Ektron-powered web site)
  • Not keeping installs and plugins up-to-date
  • Relying on HTML as a source of data for JavaScript/Ajax (I can easily manipulate this in Firebug)
  • Relying on JavaScript – you can’t and if you use it as the only means of validation turning off JavaScript allows attackers to inject any kind of data.
  • Leaving information inside the HTML by commenting out in HTML - always comment on the server side.
  • Not filtering inputs.
  • Trying to filter instead of whitelisting
  • Allowing for inclusion into iframes and thus allowing for clickjacking.
  • Failing to provide easy to use and stress-free interfaces and thus allowing for social engineering (“This is too hard for you, give me your password and I will fill this out for you”).
  • Staying authenticated and logged in over a longer period and thus allowing attackers to make you click on web sites that contain CSRF traps (the example was demo code that could get protected Twitter updates).
  • Giving users the impression that you are the one responsible for security instead of it being the job of both the user and the site provider.
  • Relying on Captchas as a sole measure against bot attacks (check PWNtcha for a captcha cracking tool).
  • Not keeping their software up-to-date
  • Not periodically checking their logs for hacking attempts.

I then quickly went over some of the ideas we now have in place to make the web easier to use and at the same time safer: Guest Passes, One-off logins, oAuth, OpenID and Caja.

I explained the security threats and trends in phishing social networks, the mobile web, camera access, geo location access and biometric recognition.

I had good feedback and I love speaking in France. You can make jokes and people are happy to laugh out loud when you bring up things that are just not expected.

The rest of the conference

This is a general thing at Paris Web. The speakers do not only really know what they are talking about but are also happy to be unconventional when it comes to presenting. Whilst the slides of ParisWeb do only hint at that you can find some very cool photos of what is going on there.

Paris Web 2009 : Day 2 by  ~Thanh.Paris Web 2009 : Day 2 by  ~Thanh.

Also check out the video:

The location is very luxurious (IBM’s HQ in France) and has all the latest systems you need for presenting – microphones, a great projection system, on-stage monitors, live translation and so on. The catering was very impressive and the food was – well, it is France, we don’t need to say more.

Double budget approach

The other great thing that Paris Web does that other conferences should copy is that on the day after the conference there are workshops with the speakers who are happy to give them for a very low price (last year it was 10 Euro, not sure what it was this year). This allows students that cannot afford the main conference to come only on Saturday and still take advantage of the experts coming to Paris.

All in all I am always very proud to be part of the conference and to see the enthusiasm and great things that happen in France when it comes to advocating web standards, future technologies and ways to work professionally as web designers. The strong streak of accessibility and usability that compliments the high-tech talks makes it a useful conference for anybody who creates any work on the web.

Alas, there is one issue.

The language barrier

As the conference is held predominantly in French, a lot of the great insights, information and practices is lost for non-francophones. This is a shame as I am very impressed with the pragmatic approach of the talks. There is not much “blue sky” thinking but very down-to-earth information on how to build better products, how to talk to your boss in the right way, how to make web development an important part of your company’s portfolio and a lot of talks about quality of our work and pragmatic accessibility. All the talks are filmed and recorded and it would be a great step for Paris Web to translate the transcripts – maybe that is something that can be done with crowdsourcing?

Introduction to Yahoo Open Applications

Sunday, October 11th, 2009

Last week I was in Paris for a Yahoo Developer Network evening and Paris Web and one of the talks I gave was an introduction to Yahoo Open Applications. These are applications that you can embed in the Yahoo homepage or My Yahoo and thus allow you to reach millions of users – or extend the Yahoo homepage with your own personal app. Here are the slides and the audio recording of the talk delivered by Sophie Davies-Patrick (aka “my boss”) and me at La Cantine in Paris:

Yahoo Open Applications use the Yahoo Application Platform – YAP. In essence, you write a small app using CSS, JavaScript and HTML and it will get embedded into the Yahoo Homepage.

TweetTrans – translate Twitter updates

The example I showed was a tool that adds little translation links to a Twitter stream:

The code of TweetTrans is available on GitHub and I’ve built it initially as a bog-standard Ajax web application.

The main step afterwards was to convert the app over. This is less hard than it seems upfront but the fact that YAP uses Caja to make the whole application more secure means you need to restrict yourself. Things you cannot use are:

Caja and HTML

  • Custom attributes
  • Custom tags
  • Unclosed tags
  • EMBED
  • IFRAME
  • javascript:void(0)
  • Radio buttons in IE
  • Relative URLs

Caja and CSS

  • star hacks
  • _ hacks
  • IE conditionals
  • Insert-after clear fix
  • expression()
  • @import
  • Background images in IE

Caja and JavaScript

  • eval()
  • new Function()
  • Strings as event handlers (node.onclick = ‘...’;)
  • Names ending with double / triple underscores
  • with function (with (obj) { ... })
  • Implicit global variables (specify var variable)
  • Calling a method as a function
  • document.write
  • window.event
  • OpenSocial gadgets.io.makeRequest return JS

Get the SDK

The easiest way to build Yahoo Open Apps is to use YML which is a markup language that gives you access to the Yahoo social connections and creates Ajax functionality for you without having to write any JavaScript.

If you want to use the full Yahoo social stack the best place to start is to download the SDK which makes the oAuth authentication very easy for you.

Distribution

Once you have your app done you can easily make people install it by sending them a link. This link contains the application ID. In the case of TweetTrans this is:

http://yahoo.com/add?yapid=zKMBH94k

More info

To get more information, check out the YOS section on the Yahoo Developer Network and the forums on YAP.