Archive for the ‘blurps’ Category

iPad Keynote issues

Friday, May 14th, 2010
KeynoteImage via Wikipedia

A lot has been said about why Keynote on the iPad is bad. I agree that most of the issues mentioned are a problem, but there are just a few I really care about:

  1. No presenter notes. I like my numbers in notes and not on slides. In case anybody asks I’d like to be able to check the screen and tell them. How about a drawer similar to the slide index that comes from the bottom of the screen? Oh, and not removing notes on import…
  2. Can’t see which slide I’m on. I have the problem of checking the projection as it is, I don’t need the software to make me do it even more. This is also problematic when using “the laser pointer” – you have no idea what you’re pointing at unless you check the projection. I could do with a faded slide in the background.

Most of the others would be nice to have, but these are just a big pain. Until they’re fixed the iPad to VGA connector was just a waste of money…

Enhanced by Zemanta

Update

Tuesday, May 4th, 2010
Image representing iPad as depicted in CrunchBaseImage via CrunchBase

I’ve been trying to write something for some time now. As I obviously suck at blogging I decided to just post this short list of stuff that happened in between.

  1. I now work part time at Zemanta. I’ve also downgraded to Head of Frontend as knowing everything as VP Engineering would be kind of hard. This gives me more time to work on my own projects.
  2. I’ve been to Seattle for An Event Apart and I have proof. It was a great conference and I’m writing a review post. It’s taking more time than I expected. I should have known better.
  3. I’ve been to Phoenix for IASummit. Another great conference and a great community. The closing plenary by Whitney Hess made me want to go again next year and help out. I promised to write a rookie review, but haven’t yet. I also hope to make it a review post.
  4. I have an iPad. I love it. I should write a post about it but I probably won’t. First observations? I tweet more. I attribute that I’m chattier on Twitter to that and to the conferences. I need to upgrade my blog so I can blog from it. Maybe then I’ll blog more.
  5. At An Event Apart Jeremy Keith said that it would be lovely if somebody made a tool that would check HTML5 for more than the validator does. I did the first version on the plane (SEA-PHX and PHX-ZUR). Marko Samastur wrote most of the Django app and it’s now online at http://lint.brihten.com. It has an API and will be opensourced soon. It is the first MMM project.
  6. I started thinking of doing something very cool next year due to Andy Budd‘s convincing at the IASummit karaoke, hosted by the very cool Kevin M. Hoffman. I shall disclose the details at a later date, but it will be also a MMM thing.
  7. EuroIA call for papers is open and it will only be open until Sunday, May 16 24:00 CET. The conference will be in Paris in September and I think you should check it out.

Enough about me, how about you? Who am I kidding, there’s no one out there…

Enhanced by Zemanta

jQuery 1.4 and 1.4.1 considered harmful – use jQuery 1.4.2!

Wednesday, February 24th, 2010

I never thought I’d write a “considered harmful” post, but this is really way too serious.

Do not use jQuery 1.4 or 1.4.1 with user generated content!

jQuery 1.4 branch added some great stuff, but let a really ugly bug through. Something that you could call jQuery injection.

replaceWith: function( value ) {
	if ( this[0] && this[0].parentNode ) {
		// Make sure that the elements are removed from the DOM before they are inserted
		// this can help fix replacing a parent with child elements
		if ( !jQuery.isFunction( value ) ) {
			value = jQuery( value ).detach();
		}
...

With previous versions you could easily do $('#myElement').replaceWith('some text'); to replace the selected node with a text node. In jQuery 1.4 and 1.4.1 you can’t – but just failing does not constitute a huge bug.

If you take a good look at the code above you can easily find that if value passed is a string that looks like a selector, it will detach nodes from the document. Consider calling $('#myElement').replaceWith('html'); – the screen goes blank and everything the user has been working on is gone.

Fortunately…

jQuery 1.4.2 fixed this issue by properly using detach only when value is not a string. If you are using jQuery 1.4 or 1.4.1 and for some reason cannot upgrade to 1.4.2 (or just don’t want to), you can still just copy the whole replaceWith method from jQuery 1.4.2 to your version.

Reblog this post [with Zemanta]

Setting innerHTML wraps content with DIVs!?

Wednesday, February 24th, 2010

Trying to add some HTML to an element with innerHTML and weird stuff happens in Firefox (3.5, 3.6)?

var elm = document.getElementById('myElement');
elm.innerHTML = 'Test';
alert(elm.innerHTML);
// alerts '<div xmlns="http://www.w3.org/1999/xhtml">Test</div>'

I just figured out the problem is that one of myElement ancestors is attached to a table as a non-table element. In my case there was a div attached to a tr. Changing that div to td fixed the problem.

And they say web development isn’t full of surprises…

Reblog this post [with Zemanta]

On Jetpack

Saturday, May 23rd, 2009
Aza Raskin of MozillaImage by gkanai via Flickr

MozillaLabs released Jetpack – a lightweight way of extending the browser. It’s essentially an API that allows you to write extensions for Firefox with web technologies. You can check out the video here:

Mozilla Labs Jetpack – Intro & Tutorial from Aza Raskin on Vimeo.

While you’re at it you should also read the guiding principles.

What I want to do here is list what I want from a lightweight extending system (in no specific order):

  • Only web technologies should be used in the development process (CHECK)
  • Installing as easy as Greasemonkey user scripts (CHECK)
  • Should take care that add-on authors don’t need to update for every version (CHECK)
  • Provides local storage and cross-domain posting capabilities
  • Add-on updates are handled automatically
  • Central add-on repository with usage & install statistics
  • Easy access to add-on options (think options button in add-ons list)
  • Possibility to use web pages as configuration interfaces for add-on settings

My current way of creating Firefox add-ons is to build Greasemonkey user scripts and compiling them to add-ons into a full .xpi. This provides a good framework to add other things that normal Greasemonkey scripts cannot do.

As I checked Jetpack I missed a lot of the things from the list – too many to be able to create a Jetpack version of Tweecious. Since it’s still in 0.1 my hopes are still high.

Reblog this post [with Zemanta]

Recent developments

Tuesday, March 10th, 2009

A few news about some recent projects I’ve been working on:

  1. The Guardian Open Platform launchImage by codepo8 via Flickr

    Guardian topic researcher is a API launch demo we at Zemanta did with The Guardian. It’s a simple mash-up that uses Guardian’s search API to get articles about a selected topic and then Zemifies them with the Zemanta API to get links to related concepts, be it people, places, bands, technologies… It’s buit using only jQuery (with the exception of a server-side proxy so the requests to Zemanta API are a bit faster) and jQuery UI. If you check it out you’ll see that we did a few things that one would normally not do on a regular web page – we did that here as an experiment in usability and browser speed.

  2. I found a really annoying bug in my jQuery.windowName plug-in for jQuery due to a feature in jQueries param function that serialises JavaScript objects into a query string. It replaces %20 (space) with a + (plus) which broke the form creation. Don’t know how I didn’t get this sooner but it’s fixed now. I also fixed a bug with breaking IE when data object has fields with name method, target or action.

  3. Tweecious is a small mash-up I’ve written in my first montly hack day. It’s an application that goes through your twitter feed, finds any links you posted and posts them to delicious. In between it does some less interesting but important stuff like expanding the link via longurl.org and tagging the content of the page via Zemanta API. Everything is done inside the browser so the app doesn’t need any credentials – if you’re logged into delicious it can post, if you’re not it will let you know. Expect a release soon – probably this week.

  4. I decided to have monthly hack days. I will create small apps or just little snippets of JavaScript code that seem like a good idea at the time. The first one produced Tweecious which was actually a challenge from Brian King at Briks. I’m looking for ideas for the next one – it might be a generic bookmarks exporter.

Reblog this post [with Zemanta]