Geek Meet in Stockholm
I spoke at Geek Meet in Stockholm last night. The slides are now up on Slideshare:
- Web Typography and sIFR 3 is about the current state of web typography, and a quick run through sIFR 3
- Homemade Ubicomp is about ubiquitous computing you can do in your kitchen, with examples from PICNIC and the Copenhagen Institute for Interaction Design.
I had a great time, thanks to Robert Nyman and bwin for organizing.
Heads up: Stockholm soon, London next
Life’s quite lovely here in Copenhagen. Last week was filled with gentle snow, mostly enjoyed from behind my office window. It all vanished on Sunday, however, and I strangely miss it
Therefore, albeit not quite, I’m headed up to Stockholm on Thursday to give two talks at Geek Meet. One on Web Typography and sIFR, and one on Homemade Ubicomp. An older version of that talk – which I gave at SHiFT ‘08 – is available at Supercollider.
I’ll be in Stockholm until Sunday, so if you want to hang out, ping me. I think Robert Nyman is doing a guided tour through Stockholm on Saturday, so if you don’t know the town either (or think that Robert doesn’t!) perhaps you should join us.
I won’t be back in Copenhagen for long, because I’ll be in London for business for a week and a half from Wednesday on. That means I’ll be there during the weekend as well, anything interesting going on then?
sIFR 3 without Flash Pro
On sIFR Generator and sIFR Font Maker, two tools to create sIFR 3 movies without the Flash IDE.
sIFR 3 r436, thoughts on font embedding, presentations
Over the past few days I’ve been making some improvements to sIFR 3, resulting in r436. A quick overview of the important changes since r372:
- Now supporting Opera! Playing it safe with Opera 9.61, but there is not much reason to be using older versions.
sIFR.prefetch()has been merged withsIFR.activate().sIFR.callbacks()has been renamed tosIFR.replacements.- Now using ExternalInterface for Flash - JavaScript communication.
- Improved whitespace filtering before passing on the content HTML to Flash.
- Improved CSS Load detection, which is disabled by default, but helps in making sIFR replace elements faster in Safari and Opera.
- Changed how browser and Flash versions are stored in the
sIFR.uaobject. Please consult the changelog for r408 for full details. - Imitating SWFObject behaviour for inserting Flash movies.
Changes since r419 (which saw close to 12.000 downloads):
- Made some improvements to decrease the jumpiness on the page caused by the replacements.
- Dramatically simplified font size calculation, making it more accurate in Internet Explorer, and removing potential issues with IE 8. This also removes the need for specifying
line-height: 1emfor the elements being replaced. - Fixed 2 pixel cut-off from the
leadingproperty (caused by Flash). - Fixed ratio calculation when
leadingis specified. Theleadingis now removed before doing any ratio calculations. - Enabled Flash transparency on Linux with Flash 10, Gecko 1.9 and Opera.
- Font size of nested HTML elements can now be configured in pixels.
- Merged
sIFR-screen.cssandsIFR-print.cssintosifr.css, using the@mediaattribute to distinguish the media types.
There’s still a number of issues left to figure out, although so far I haven’t had any reports of these issues impacting users. For example, I still have questions about how browsers handle Flash movies that are outside of the viewport, I’d like to see if CSS Load detection could be improved, and what’s up with cross-domain Flash movies. These issues all need extensive research and browser testing.
As always, you can get the latest release from the nightlies.
Other useful links:
- sIFR 3 demo.
- Downloads.
- Nightlies RSS feed.
- Twitter.
- Announce mailing list.
- Development mailing list.
- Stack Overflow.
- Documentation Wiki.
These past few months have seen some interesting new developments. Most important of course is the support for Font Linking in Safari 3.1, as well as the upcoming Firefox 3.1 and Opera 10. Finally it’s becoming possible to embed existing fonts on websites, without going through hacks like sIFR or image generation. That said, the current problem with Font Linking is the required redistribution of original font files to web browsers, forbidden by many font licenses. This leaves many typefaces unavailable for embedding. Furthermore, Chris Wilson of Microsoft expressed that Microsoft (and, by proxy, Internet Explorer) should not support Font Linking in it’s current form. Microsoft does have its own EOT format, which it has proposed to the W3C for standardization, and would solve these issues. Mozilla, Apple and Opera however seem opposed to it, mostly out of fears for DRM. I believe these fears are unfounded, for if EOT is DRM, it’s DRM applied by the licensee, not the licensor. It’s like getting an MP3 from Apple and putting DRM on it before you pass it to a friend, instead of getting DRM from Apple preventing you from passing it to a friend. If we want cross-browser, legal font embedding in the short term, EOT is the way to go.
While we wait for cross-browser font embedding, we’re stuck with the alternative hacks. Some new ones have come up recently. FaceLift now seems to be the best way to use images rather than Flash for displaying the font. It uses server-side image generation through PHP, and cleverly provides a hosted service. In the past week Typeface.js came out, which is a devilishly smart way of actually rendering a typeface using <canvas> or VML, though given the complexity of that problem, Typeface.js probably isn’t ready yet for prime-time.
I’d like to point out that these solutions shouldn’t be seen as much as alternative to sIFR – no matter how eager they are to market themselves as such – but as alternative solutions for the real problem: reliable cross-browser font embedding. We’re merely trying to provide the best hack-that-shouldn’t-be-necessary.
That said, I do think that sIFR 3 provides a better solution in being completely client-side, providing actual selectable text, and supporting a subset of HTML and CSS rendering.
I’ve done a few sIFR presentations and workshops in the past few months, most recently at the web conference. Slides are on Slideshare, however the footnotes have gotten lost in an JSON encoding mishap on their end. Therefore, I’ve put up a PDF with notes (17.3 MB). I’m speaking at DrupalCamp CPH, which takes place November 15th and 16th here in Copenhagen.
If you’re interested in a sIFR workshop at your company, or are looking for a weathered web hacker, please get in touch via Supercollider, my freelance alter-ego.
Now, go try out r436, and report back your findings!
Web Fonts, Licensing and EOT
Over on the IEBlog, Bill Hill recently posted about Font Embedding on the Web. In it, he discusses how Microsoft has submitted it’s Embedded OpenType (EOT) file format to the W3C for standardization. This could be an important development for web typography, and here’s why.
Koebenhavn
So, I’m in Copenhagen now. It’s been a long while since my last post here, and people have been asking me to update more frequently – especially now that I’m an expat! Luckily I set the bar quite low, so no problem there ;-)
Speaking at Internetcreatieven Kennisdag
For the Dutchies reading this, Friday the 29th the Internetcreatieven Kennisdag mini-conference takes place in Delft. Speakers are André Weenink, who’ll be talking about design research in branding, Arjan Westerdiep, who’ll be premiering a pixel-art illustration consisting of no less than 1,664,000 pixels, Gert Hans Berghuis of Fabrique Communicatie & Design, and Bob Corporaal and yours truly. We’ll be speaking about happy marriages between Flash and HTML, with of course sIFR being a prime example.
Registration is only € 23,80, so I hope to see you there!
sIFR 3: r372 Zoom Away!
A quick update with regards to the beta. A number of issues have been found concerning page zoom and Firefox. These issues should all be fixed now. Other changes include:
- Several bugfixes regarding
forceSingleLine. - The XHTML demo was not built properly by the build script.
- Added support for
.sIFR-root { cursor: pointer; }. - Print preview in Firefox/Windows no longer throws errors.
- The
fixFocuscaused infinite recursion, but no more! - sIFR should no longer cause the page to “jump” when the window is resized, although the sIFR elements may flicker a bit.
- Text replaced through
replaceTextis now remembered after moving back to the page through browser history in Firefox.
sIFR 3 Beta 2: Fire Cracker
As years end nears, neighbourhood kids are playing with fireworks around the house. A nice homage to the second beta of sIFR 3 I’d like to imagine. Feature wise sIFR 3 is now complete, and I think it’s gotten pretty awesome. If you’re trying to decide between sIFR 2 and sIFR 3, sIFR 3 is definitely the better choice.
What is sIFR?
sIFR is meant to replace short passages of plain browser text with text rendered in your typeface of choice, regardless of whether or not your users have that font installed on their systems. It accomplishes this by using a combination of JavaScript, CSS, and Flash, which renders the font. It degrades gracefully if Flash is not present. sIFR 3 is open source and licensed under the CC-GNU LGPL.
How Do I Get It?
You can download the most recent version of sIFR 3 from the nightlies. If you want, you can subscribe to a feed for the nigthly releases. Major releases are also announced through the sIFR 3 Announce mailing list.
On DOM Load (and CSS, too)
On solutions for DOM load and CSS applied.
sIFR 3: Updates
Life’s busy as usual, but it’s been too long since I last wrote about sIFR. I’ve been working on sIFR on and off, so it’s moving slowly. That’s not to say nothing is happening, though! Since the last post there have been 40 new revisions. An oft-asked question is which revision should be used. Since sIFR is under constant development, it’s always a good idea to use the most recent nightly. So what’s the plan going forward? I intend to stabilize the current code base and release a second beta. After the beta is out I’ll be improving the speed of the code and writing documentation – this will likely result in some refactoring. Then one or two release candidates and we’re good to go for 3.0. Last Friday I gave two presentations about sIFR. One at Onstuimig in Amersfoort (they’re hiring too!) and one at Info.nl. I had a great time giving these talks and meeting web people here in Holland, so I’d like to do this more often. Let me know if you’re interested!
sIFR 3 Revision 278 Security Update
Yesterday, a security vulnerability was found in sIFR 2 and 3. Malicious websites can trick visitors into running JavaScript code on domains hosting sIFR movies. No exploits are known. If you are using sIFR 3, you are advised to update to revision 278 (or any later revision).
sIFR 3: Revision 229
sIFR updates!
sIFR 3: Revision 209
Cool updates for sIFR 3.
sIFR 3b1: The Mo’ Betta Beta
Just in time for Christmas, I present you a new sIFR release! It’s been a long time coming but with this release I feel sIFR 3 is ready for widespread deployment. There’s great control over how the text is rendered inside the Flash movie: you can easily use bold and italics together, or use different colors. There’s support for leading, kerning and opacity, filters, blend modes and anti-aliasing.
DOMContentLoaded: Test Cases and Musings
Discusses how to properly do DOMContentLoaded in Internet Explorer and tackles issues with Safari and Opera.
Crashing Firefox 1.0.0 in One Line of Code
I was looking at a bug report for sIFR today. It discussed how sIFR 3 crashed Firefox 1.0.0 on Windows. After the better part of the evening, here’s what I found: if you create a non-anonymous method, declare a variable inside it and set a property on the function object with the same name as the variable (and whatever value, I used null), Firefox 1.0.0 will crash after about ten seconds after loading the page.
Flash? Pure Evil
On Flash, filters and Reboot.
sIFR 3: Using SVN and About the Beta
Over the past few days I’ve fixed a number of bugs in the code and added some more Flash 8 related features. Here’s a quick post on how to stay up to date and some information about the beta.
sIFR 3 Alpha: Tasting the 3.0
It’s high time for a release of the new sIFR version, 3.0. With Inman’s Flash Replacement as the original, sIFR 1.0 making it scalabale and sIFR 2.0 bringing it to the masses, this version will really make things rock. Flash 8 has brought a lot of new, cool stuff. Now you can use these features, starting with way better font anti-aliasing and auto-kerning. You’ll also be able to use filters to do shadow effects.
sIFR 3 Feature List
As I’ll have to focus on course-work and money-making-work in the next few weeks here is a feature list for sIFR 3. Of course, when something turns out to be too hard to implement, it’ll be removed from the list. Don’t take it for granted!
Font Sizing with sIFR
Font sizing is the most difficult part of using sIFR. In this post, I’ll discuss how the algorithm in sIFR 2 works, or rather, why it doesn’t work as well as originally intended. Coincidentally, this makes this post an excellent tutorial for font tuning in sIFR 2. We’ll also look at how things will be improved with sIFR 3.
Evolution
sIFR now does multiple colors, configured by CSS, and with better links. And it’s still missing a lot of features, and is probably incredibly buggy, but hey.
http://dev.novemberborn.net/sifr3/svn/test/demo.html
Next step: making it scalable.
Sources Are Telling Me…
I’ve made a development subdomain here at Novemberborn to host SVN exports of the sIFR 3 codetree and other development projects.
Quick: A Wiki!
I’ve updated the wiki software running wiki.novemberborn.net to a customized version of i2, the app behind the Ruby on Rails wiki. At first glance it’s a lot more responsive, and I hope it won’t go down as much as the previous incarnation.
sIFR 3: A Look into the Future
Some time ago Mike and I asked you what features you wanted to see in sIFR 3. While we haven’t defined the exact list of features for the new version it has become time to look into the future to see where sIFR is heading.



