Skip to main content

Internet Explorer - the bane of bank holidays

I'm pretty sure that my last bank holiday was ruined by Internet Explorer 8, and now that our clients have dropped that from their supported version list, its younger brother has stepped up to the plate to try to ruin this bank holiday for me.

A stylesheet which works fine on Firefox, Safari, and Chrome (and even works tolerably on IE8, incidentally), inexplicably fails to apply a huge number of styles on IE9. This is a delightful thing to find out essentially 1 working day before a planned release. We can of course go into some life lessons learnt, but they might come out a bit on the grim side (i.e. never trust anyone else to check anything, you will always have to fix everything yourself). So nuts to that. This is about technical lessons learned.

Here are some things I've found so far:


  • This project has some pretty terrible CSS, a product of stuff being layered on top of other stuff forever. Code decays, and CSS decays particularly fast, it seems. When you look at the code in a CSS3 Validator, the validator does not look kindly on it (115 errors, 341 warnings).
  • Select2 has some pretty terrible CSS. Almost half of the errors come from the Select2 stylesheet.
  • Opacity (filter: alpha) for IE <= 8 is not valid CSS3. If you're not supporting IE8, get rid of those filter rules.
  • IE <= 9 has limits on how many CSS selectors you can have in a page. It's 4096. That might seem like a lot, but it's apparently the sort of thing complex projects can violate, especially if they use @extend and other sorts of thing. You can work out how many css selectors are on your page by loading it and then pasting in a bit of JS to the console. https://gist.github.com/krisbulman/0f5e27bba375b151515d - which suggests that this site has 2466 rules and 5451 selectors - meaning that IE will ignore the last 1355 styles!
  • Something about SASS @extend seems to cause IE9 to choke on some files.

Hopefully while I'm on holiday our team abroad will hunt down the problem and solve it in one fell swoop. But if not, I may have to learn some more things.

Comments

Popular posts from this blog

4Store with Snorql on Raspberry Pi

Problem I need to access triple-store data for a work thing, but the data I have to test with isn't in their (sesame) triple store yet. There are RDF files, though. Solution Install 4Store on a pi (I had one with a default Raspbian running because it's the mumble server). sudo apt-get install 4store ...then I set up the 4store with instructions from here : sudo 4s-backend-setup saws sudo 4s-backend saws 4s-httpd saws then import the RDF files with a convoluted command: curl --verbose --header 'Content-type: application/rdf+xml' --upload-file MSH_Thales_Trans.rdf --url 'http://localhost:8080/data/http%3A%2F%2Fwww.purl.org%2Fsaws%2Fontology%23' (for each file - the url is the saws url encoded, the .rdf bit was done for each file). Then fix the RDF, because rapper rejects it all. To validate the RDF I used this: http://www.rdfabout.com/demo/validator/ Okay, now I can see things on the pi: http:// <pi ip address...

Chrome Extension: iPlayer to XMBC

There's a Chrome extension called Play To XBMC which adds a little button that will send a YouTube, Vimeo, or CollegeHumor video to XBMC - provided you have the YouTube plugin installed. This is a lot more convenient that using XBMC to search directly, if you don't have a keyboard plugged into the XBMC box. The XBMC iPlayer plugin suffers from the same problem that browsing/searching aren't easy without a keyboard, so I wondered if I could make a chrome extension that would do the same for iPlayer. Chrome extensions are packages of javascript, html, and image files that get unpacked by Chrome when they're installed. You make a Manifest file (which is a JSON file) that tells Chrome what icons to include, what sort of package it is, etc. The Play To XBMC extension is a browser one - the button is always there. I made mine page specific - it only appears on valid iPlayer episode pages. You do this by putting in a javascript page that runs in the background every time ...

Mumble and Murmur on Raspberry Pi

Problem:  Skype kind of sucks for games night things. Potential Solution: People have suggested ventrilo, etc., but murmur (the mumble server) will run on a raspberry pi. As I have a few of them, I reimaged an SD card with the newest raspbian, then followed the instructions here: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=36&t=8615 If I put it in the DMZ, hopefully people from outside Nerdvana should be able to connect to it. It supports positional audio for games - I wonder if I could make a plugin that would just allow you to set your position, so that we could be around a virtual table with positional audio? ...Looks like there is: Mumble comes with a plugin for manually positioning audio. http://mumble.sourceforge.net/Games#Manual_Positional_Audio_Plugin