Categories
- ajax
- backup
- barcamp
- barcampamsterdam
- dojo
- experiments
- flash
- Federating Social Networks
- greasemonkey
- happyclog
- internet
- itunes
- Jaiku
- javascript
- jotspot
- life
- LIFT
- linux
- meetings
- music
- no-tech
- odd
- odeo
- optimizing
- osx
- plazes
- reboot7
- reboot8
- seo
- sifr
- sIFR 3
- site
- stories
- textdrive
- textmeet
- textpattern
- weakerthans
- thoughts
- university
- web
- wiki
- woes
- xopus
- xtech
All articles
sIFR 3 without Flash Pro
On sIFR Generator and sIFR Font Maker, two tools to create sIFR 3 movies without the Flash IDE.
Mark your calendars, BarCamp Copenhagen, Nov 22nd!
BarCamp Copenhagen is going down in three weeks, on November 22nd. Hope to see you there.
http://barcamp.org/BarCampCopenhagen
P.S. There’ll be a great pre-BarCamp game, details of which are kept secret.
P.P.S. The team is on the lookout for sponsors, for food, drinks and T-Shirts. More on the BarCamp page.
Comment [1]
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.
- Forum.
- 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!
Comment [9]
Right!
Let’s see, where were we?
I went to Mediamatic Social RFID Hackers Camp at PICNIC in Amsterdam. Blogged about it on Supercollider.
Then I went to Lisbon, for SHiFT 08, and gave a talk on Home Made Ubicomp.
Sunday, I’m speaking at on Web Typography with sIFR 3. It’s an online conference, so I’m presenting at home or perhaps with some friends, through my laptop. They’re using Adobe Acrobat Connect, which for some reason does not support PDF documents, nor does it support Keynote files, so I had a lot of fun converting to PowerPoint, opening in crappy software also known as OpenOffice, and patching the presentation to a reasonable level of sucktitude. We’ll see what happens.
On November 16th, I’m physically giving pretty much the same presentation, but with working slides, at DrupalCamp CPH. Henriette would not be amused.
I’m now also in the Danish systems, and started Twittering after not using my account for over two years. Then I reached 42 followers, so what choice did I have? Public for now, if that keeps working mentally.
That’s it then, short update. I suggest you subscribe to the Supercollider blog for more technical articles, as I’m turning Novemberborn into a more personal website. Which may mean that the posting activity may go down even further, we’ll see what happens.
I also blog at Toothless Tiger these days.
By the way, Supercollider is my freelance alter ego. Yes, I’m for hire.
sIFR 2.0.7: Flash 10 / Safari Compatibility Release
sIFR 2.0.6 fails to recognize transparency support under Safari and Flash 10. This has been resolved in sIFR 2.0.7.
Comment [37]
In memoriam Mark Hoekstra
Mark Hoekstra, hardwarke hacker and tinkerer extraordinaire, passed away last Friday.
Mark, you will be missed.
iPhoneDevCamp Copenhagen
October 3rd and 4th is iPhoneDevCamp Copenhagen, co-organized by yours truly. We’ve got 27 places left, so sign up now!
For more info, see http://iphone.devcamp.dk
Location Identity
Over the past 13 days I’ve been in five different countries. It started by taking the train down to Enschede, from Denmark, through Germany. After spending some time in The Netherlands, I boarded a flight for Brighton, in the UK. I got back to Copenhagen yesterday, and spent a few hours in Malmö, Sweden this evening.
I don’t have a very clear feeling anymore of being in a foreign country. The sense of wonder is gone…
Comment [7]
Autumn’s Coming
Travels, Enschede, The Hague, Brighton, Copenhagen, Amsterdam. dConstruct, PICNIC. Toothless Tiger. Supercollider.
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.
Comment [16]
(JavaScript) Hackmeetup Oresund, July 22nd
Quick pointer to tomorrow’s hackmeetup in Malmö: http://upcoming.yahoo.com/event/921335/. Yours truly will be doing a very speedy version of my sIFR talk at Singularity, hopefully combined with some weird JavaScript hacks.
sIFR 2.0.6: Flash 10 Compatibility Release
sIFR 2 fails to detect the Flash 10 player, and therefore falls back to normal HTML text. This has been resolved in sIFR 2.0.6.
Comment [22]
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 ;-)
Comment [8]
Two LIFT Quotes
A lie is a conscious prevention of reality. A lie is not the opposite of truth; a lie is the opposite of reality.
Quoted from Peter Steignitz, Austrian social-psychologist, in a presentation.
The complexity of the name is part of the story. This is not technology as usual.
Rafi Haladjian about the naming scheme for Nabaztag. Subsequent versions of Nabaztag have /tag added to them, recursively, so the 4th would be Nabaztag/tag/tag/tag.
Unfortunately I didn’t write down any other quotes.
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!
Web Hacker For Hire
Well hello! Within a few months I’ll be graduating from Twente University with my Bachelors degree in Computer Science. I’ve decided not to take a Masters, but to venture out into the world. More specifically, I’d like to venture out to Copenhagen. And since I’m not keen on moving to Copenhagen while still working for Xopus, I need a new job!
Forgetful Interfaces Workshop/Discussion @ LIFT
At last week’s most amazing LIFT conference I organized a workshop / discussion on forgetful interfaces. I’ve posted a report from the workshop on my very own LIFT blog, and it’s reposted here as well.
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.
Comment [55]
The Kill Switch
So. The good news is that IE8 will be much, much better than anything before it. The bad news, Microsoft doesn’t dare release it and make it render existing websites, because there’s no way they’re going to render properly. Why? Because of the browser specific hacks put in to make the site render properly in IE6/7.
A “kill switch” is proposed, which will cause websites to render in the new or updated engine, whilst not breaking existing websites relying on IEs quirks.
Fair enough.
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.
Comment [72]
Detecting Page Zoom in Firefox 3 (And Others)
Firefox 3, or, technically, Gecko 1.9, comes with support for full page zoom. It works by scaling CSS pixels when the page is rendered – from the perspective of JavaScript or CSS there is no difference between a page zoomed to 200%, 50% or 100%. The article explains two ways of detecting zoom levels.
Comment [8]
Browser Wars!
- Let browser vendors innovate as fast as they can
- With the end-goal of interoperability through standardization
- Increasing pressure on other vendors to interoperate, since there are actually four major vendors now, which are all important to most developers
And thereby a better world can be had.
Case in point: Incredibly useful features that used to be IE only, but are now being standardized and implemented by other vendors, such as XMLHTTPRequest, getBoundingClientRect, getClientRects, innerHTML, contentEditable and support for XML/XSLT. Uhm, that basically explains why Xopus is still very much IE oriented – despite all it’s grievances.
Comment [3]
sIFR 2.0.5 Compatibility Release
sIFR 2’s links do not work with the new Flash Player 9,0,115,0 if a hover color is specified. Additionally, no elements are replaced in Safari 3 if the content type of the XHTML document is application/xhtml+xml. This has been resolved in sIFR 2.0.5.
If you’re using sIFR 2.0.3 or older, and have a hover color specified for links, or are using XHTML documents with the proper content type, you are advised to upgrade immediately. You must upgrade the sifr.js JavaScript code and re-export the Flash movies.
If you’re using sIFR 2.0.4, and are using XHTML documents with the proper content type, you are advised to upgrade immediately. You must upgrade the sifr.js JavaScript code and re-export the Flash movies.
sIFR 3 is not affected by the Flash player issue. Revision 341 is no longer affected by the Safari XHTML issue.
Comment [21]
Federating Social Networks – An Introduction
Last Saturday I participated in the Federating Social Networks workshop organized by the fine peeps of Mediamatic (Lab), most especially Ralph. Reduced to its essence, the goal of FSN is to enable websites (“social networks”) to stream data to each other. Rather than pulling data in via feeds and API calls, websites can push data out over an XMPP stream.
Comment [2]
On DOM Load (and CSS, too)
On solutions for DOM load and CSS applied.
Comment [3]
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!
The Craziest DHTML Hack Ever
Over at the Xopus blog, I’m discussing what I spent my summer on: a DHTML caret! Go read it and see the demo!
On Guilds and Certifications
Last month Peter-Paul Koch wrote about a Dutch Guild of Front-End Programmers he is starting. Its purpose is to further professionalise the front-end programming discipline within the Netherlands
and improve web design education. The primary means of doing this is by forming a certification body which will certify individual front-end programmers in the fields of HTML, CSS, JavaScript and possibly Flash. Clients can hire certified developers, which will then improve the quality of their websites.
I believe this is misguided.
Comment [13]
Maximum Call Stack Size in Modern Day Browsers
I had to write a depth-first tree iterator recently – at Xopus of course – and I wondered about the call stack size. Here is the test, and the results.
Comment [25]
San Francisco, Ajax Experience, Vancouver
I’m going to be in San Francisco July 21st - 28th, and Vancouver July 28th - August 4th. While in San Francisco I’m speaking at the Ajax Experience. If you’re based in SF or YVR or are attending the conference let me know, cause I’d love to meet up.
Comment [4]
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 2.0.3 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 currently using sIFR 2, you are advised to update to version 2.0.3.
Memory Leaks: Gone!
At Xopus we develop a pretty big (~50k lines) JavaScript application to edit XML documents through a WYSIWYG interface. With such a large application there’s a large risk of memory leaks. Indeed, this is what we’ve been experiencing in Internet Explorer 6. We’ve also seen a decrease in performance as memory usage increased. These leaks, however, do not occur in Internet Explorer 7. And, as of just 10 days ago, they no longer occur in IE6 on Windows XP.
Comment [17]
Plazes Survey Results
For a university project we researched location-based services and how they can improve social interaction. As part of the research we conducted a survey under 23 Plazes users, all contacts of mine. The results are from March 12th, 2007.
In short, Plazes is a web service which tracks the location of their users via software applications those users run on their machines, a mobile phone application and SMS “check-ins”. A location is called a Plaze, a location history a Traze. The software application uses the identity of the network router as an identifier for the Plaze.
Here are the questions asked and the results.
Comment [5]
sIFR 3: Revision 229
sIFR updates!
Conferencing
I’ll be in Geneva Tuesday - Sunday morning for LIFT. I’m hoping to go to FOSDEM as well, although Nadya and Marco still need to book the hotel. April 18th it’s off to London for Future of Web Design (thanks, Malarkey!) for which I’ll be needing a place to crash on the Wednesday night.
Comment [1]
sIFR 3: Revision 209
Cool updates for sIFR 3.
Jot’s Alive!
I just received word that all Jot wikis will be upgraded to version 2.9 next week. A change close to my heart is the addition of RSS feeds to the To-Do Lists app. Good stuff!
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.
Port Scanning Without JavaScript
For the past few months I’ve been following the ha.ckers weblog, which talks about hacking websites and otherwise internet-connected systems. In the most recent two posts (part 1, part 2) a way to do port scanning without JavaScript is discussed. This all harks back to early August, when SPI Dynamics discussed port scanning using JavaScript. An often heard counter measure to this technique is disabling JavaScript, but it turns out that won’t be enough.
Jaiku: Online Presence and Automating
Back at Reboot 8.0 Jyri Engeström introduced us to Jaiku. Jaiku is an online presence service: you can post small notes about what you’re doing, either through the website or by texting or using the mobile application. Together with web feeds you can specify this is all combined into a presence stream. I signed up today and quickly found a way to automate setting my presence.
Comment [2]
DOMContentLoaded: Test Cases and Musings
Discusses how to properly do DOMContentLoaded in Internet Explorer and tackles issues with Safari and Opera.
Comment [2]
The German Spam Ring
Over the past few months I’ve been getting comments on this blog from Germans. Now, that’s great, especially since a lot of them are regarding sIFR. Something smells fishy, however. The sites behind these comments aren’t the typical sites you would expect from web developers, they are quite ugly and don’t seem to serve a real purpose. After seeing yet another weird comment today, I decided to dive into this a bit further.
Comment [9]
The Summer I Almost Worked at Google
Congrats to my friends at Jot for being acquired by Google. Wish I could be there to celebrate :)
iTunes 6 Icons
If you dislike the new iTunes 7 icon set, you can replace the icons with the iTunes 6 versions. Download the set, unarchive, and copy to /Applications/iTunes.app/Content/Resources/.
These icons are copyrighted by Apple Computer. Enjoy!
Plazes: Freed from the Network
About a month ago I gave a presentation at Web Monday about Plazes. I proposed that there should be a Plazes client which uses RFID tags to identify the Plaze, and connect automatically.
Comment [4]
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.
Comment [4]
Back in .nl
I’m back in the Netherlands. Thank you Jot for this amazing summer!
Introducing To-Do Lists
About the launch of my internship project at JotSpot.
Comment [1]
JavaScript Threading: Quick Tip
How to run JavaScript code after the current thread has finished executing.
Comment [9]
Leaky Abstractions in DOM Programming
In which a close look is taken at how platform characteristics influence DOM programming.
Comment [5]
And So It Begins
Tomorrow morning, 9am, final exam of the year. Immediately thereafter I’m off to the parents, carrying a suitcase full of clothes and a backpack filled with tech. I’ve only got a few hours to be with my family, because Friday morning the flight to San Francisco awaits me!
Comment [7]
Reboot 8.0
Reboot was a blast. Meeting with people from last year, meeting new people. Talking to the Plazes guys, hanging out in wonderful Copenhagen with Marten and Anne and everyone else we had the luck to run into or meet with. Joyent folks, Opera folks. Copenhagen folks. Like last year, this has been the best couple days of I ever took off.
Comment [9]
Flash? Pure Evil
On Flash, filters and Reboot.
Comment [7]
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 2.0.2 Final Release
I’ve just released sIFR 2.0.2, which is a maintenance release for the problems caused by the “Eolas patch”. There is still no insight into what is causing these problems, so please deploy this patch to ensure everyone can see the headlines.
Comment [27]
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.
A Jot Summer
Barring any suprises from the American Consulate, I’ll be doing a summer internship at JotSpot this July and August. California, here I come!
Comment [7]
Beers with the Dojo Guru
Alex Russell is coming to Amsterdam for XTech, so here’s your chance to drink a beer with the guy!
Comment [15]
sIFR and Eolas, Testing the Patching
While working with Microsoft to fix the mentioned problems with sIFR and the Eolas patch (the security updates for Internet Explorer released on April 11th) I’ve also been working on a patch for sIFR itself.
Comment [4]
On sIFR and the Eolas Patch
After Microsoft rolled out their Eolas patch I got a few reports about sIFR not working correctly. As sIFR is a script which creates the Flash movies there shouldn’t be any issues, but unfortunately that is not the case.
There are two problems, one is easy to fix and is the result of extra steps taken in the deployement of sIFR. The other seems to be a system issue, and as such is harder to fix.
Comment [9]
Reviewing the Plazes APIs
Plazes is an extremely cool location awareness service. Recently the first version of the Plazes API was released. Together with the Launcher and WhereAmI APIs there now are three public APIs for the service. As a hobby project I’ve updated the RubyForPlazes project, run by Peter Rukavina, to work with the new API. The new version hasn’t officially been announced yet, as there is still some work to do with regards to testing and examples, but it is already in the repository at Peter’s site. During the development of the new Ruby implementation I’ve run across a number of issues with the API design, which are documented in this article.
Comment [1]
Pre-fetching Flash
One of the advantages of sIFR is that the Flash files are cached on the client, saving bandwith. Except, of course, when they aren’t cached, as was pointed out on the sIFR forum. Luckily a solution was hinted at by Marc van den Dobbelsteen from Webbforce. Requesting the Flash file using a document.write() call fixes the problem. Thus, I set out on a journey through seemingly endless browser reloads and cache emptying…
Comment [10]
Externally Declared Global Variable Leak
It is possible to create a memory leak in Internet Explorer… by not referencing an object more than once. This article explains how and gives tips on avoiding the problem.
Comment [14]
Reboot 8.0 & BarCamp AMS II
Anne, Marten and I are going to be at Reboot 8.0 this year. See you there!
In related news, BarCamp Amsterdam II has been announced. See you there as well!
Comment [5]
DHTML as a Straw-man
DHTML is, like HTML before it, painted in a bad light, whereas XHTML and DOM Scripting are purportedly the best (and therefore only) way ahead. When you look more closely at the practices so easily associated with XHTML and DOM Scripting you see a different picture.
Comment [11]
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!
Comment [17]
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.
Caught Redhanded: QuickTime Stealing Flash
Sometimes QuickTime may take over handling Flash content. As QuickTime is only compatible with Flash 5, this can pose major problems.
Getting Funky With Scopes and Closures
The most powerful thing about the JavaScript programming language are it’s scoping rules. In this article I’ll talk about scope and how it relates to functions and closures. There’s some kick-ass stuff you can do with it!
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.
Comment [1]
TextMeet February 4th, Utrecht
If you’re in Holland in early February, Utrecht is going to be the place to be. Marten and me are setting up a TextMeet: the event of the year where you can meet your fellow TextDrivers. And, shocker, the Dean is coming! Jason Hoffman might fly over as well. As I said, the place to be!
Comment [2]
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.
Comment [8]
2005 Randoms
We’re nearing the end of the year (less than twelve hours in my time zone) and it has become time to write down some final random notes…
Back It Up Back It Up
As you are hopefully aware, backups are the only way to make sure you don’t lose your data in case of a crash or theft or an other disaster. There are several ways to back up your data, such as writing it to a tape-recorder stuck away in a fireproof vault.
Luckily there are easier methods as well.
Comment [9]
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.
Comment [60]
Optimizations
When optimizing, you have to make sure it actually helps.
Comment [10]
They Searched, Came, and Left in Utter Confusion
Or: how good markup and interesting content can lead to absurd search engine rankings.
Nine down, one to go
On my way to being a twenty-something.
Comment [11]
Paul Graham on “Ajax”
Paul Graham on “Ajax”.
TextPattern and HTML 4.01
How to make TextPattern output HTML 4.01 code.
Travelogue Slash Crash
About the past few days.
Million Dollar Question
What are the two ways HTTP can request an image from a server?
Comment [3]
War and UDP
UDP packets are like soldiers, running across the battle field, trying to reach their destination.
sIFR 3: A Request for Requests
What do you wanna see in sIFR 3?
Astronaut Suits on the BBC
Flock/BarCamp on the Beeb!
No-Tech
No-tech is important, don’t let all the shiny tech blind you from that.
Unconference Thougths
BarCamp rocked. Thirty-two hours (and then some) of hanging out with cool people talking and learning and hacking.
Comment [4]
BarCamp Amsterdam…
BarCamp Amsterdam is really cool.
Experiment: Function.$case
(Partially) implementing Ruby’s case/when/else in JavaScript, as inspired by Java’s signature-identified methods.
Comment [1]
More Site Updates
More updates!
Comment [7]
Rip
Ripping CDs with a Mac? No problem!
Comment [1]
BarCamp Amsterdam
Next week I’ll be in Amsterdam for BarCampAmsterdam. Two days of hanging out, hacking, and other cool, interesting stuff. Rock.
Comment [2]
Shiny
Look! All new, all shiny! Running on a somewhat hacked version of TextPattern, valid HTML 4.0.1 Strict and Atom 1.0. Now with comments. And article-level feeds. Yay!
Comment [10]
Entmoot
We had Entmoot in Utrecht.
Adding Events, Recoded
My entry for the addEvent() recoding contest.
Upcoming Happy Clog Meeting
There’s a new Happy Clog meeting coming up!
Netscape is a Network App, and without…
My Telematics professor has a thing for Netscape…
One Hundred Rabbits and an Elephant
I moved house!
Song
One of the many great songs by The Weakerthans.
Happy Clog
Giving ourselves new names.
Hacking Linux
Linux hacks.
iPod Giveaway #4: Entry #2
Here’s another submission for Mike Davidson’s iPod Giveaway #4.
Open Letter to the DOM Scripting Task Force
A couple days ago the DOM Scripting Task Force emerged into the public. But I’m wondering if their focus is correct.
iPod Giveaway #4: Entry #1
Here’s a submission for Mike Davidson’s iPod Giveaway #4.
Time To Get
A meeting will be coming up at July 24, 2005 at 14:00 in Leiden.
Spamming Reboot
Robert Scoble found an “innovative” way to promote Channel 9.
For A While, I Had Two Reboot T-Shirts
How I lost my second Reboot t-shirt.
But One Year Ago
One year ago exactly I was in London. Now today happened.
Books
I’m in a book, and I closed a book, and the opening of another has to wait for a few days.
Saturday
I walked into a store today.
Odeo - Pronounced Like Rodeo
An overview of the first beta offering by Odeo.
Later
Some more about my graduation from highschool, MyBlogLog, Odeo, Enschede and an upcoming Javascript meetup in Amsterdam.
Bye bye
I graduated from highschool :)
Mindboggling
I returned from Reboot7.
Hi from Admiral Gjeddes Gaard, Copenhagen!
A short message from the Thursday Meetup in Copenhagen…
Event Cache Follow-up
Kryptonite
Recap of the past two weeks.
Somebody Shoot Me
I’ve been passed the musical baton.
An Observation About Ajax
Why DHTML hackers hate Ajax, and everybody else loves it.
Photos
Photos of the trip to France are online!
Holidays
From May 1 to May 7 I’ll be on holiday in the Vesges, France. I also want to go to Reboot7 in Copenhagen.
sIFR 2.0
A post celebrating the release of sIFR 2.0.
Implementing :target in IE
A way to implement :target in IE.
More Seriously: Why CSS Doesn’t Define Behaviour
Why CSS doesn’t define behaviour. The more serious follow-up on How to use the DOM for :hover.
How to use the DOM for :hover
How to use the DOM in order to do :hover.
You’ll also want to read the more serious follow-up.
The Myth of Object Detection
Why object detection doesn’t always work.
JavaScript Terminology
This is an introductory tutorial to the sIFR Explained series. It’ll be updated from time to time when more information is necessary.
sIFR Explained
This is a series about how the JavaScript code in sIFR works.
Event Cache
Provides a way for automagically removing events from nodes and thus preventing memory leakage. Licensed under [CC-GNU LGPL][license]. Download the [source][].
Secure Gmail
A GreaseMonkey extension which ensures Gmail uses the secure connection. Written and published on Tuesday, March 8, 2005. Licensed under CC-GNU LGPL. Download the source.
MyBlogLog Dissected
In this article I dissect the MyBlogLog JavaScript code, suggest improvements and quickly discuss some of the privacy concerns scripts like these create.
Named Arguments
Implementation of named arguments in JavaScript. Written in December 2004 for sIFR. Licensed under CC-GNU LGPL. Download the source.
Named Arguments
Implementation of named arguments in JavaScript. Written in December 2004 for sIFR. Licensed under CC-GNU LGPL. Download the source.
Where to Replace
Explanation of where to place the replacement code of sIFR.
2005
Happy holidays!
The One Man Company With Three Employees
I wrote this story on Sunday, November 21st, 2004 at about 1am. The idea for the story came to me while driving to a birthday party earlier that evening, listening to Good News For People Who Love Bad News by Modest Mouse.