Out of the box, Fedora 19 doesn’t have support for the broadcom wifi chip in the MacBook Pro 15″ Retina. There are quite a few complex instructions for adjusting firmware and compiling bits and bobs etc, but the easiest way to get it up and running on Fedora is using rpmfusion.
You can do it by downloading a bunch of rpms and stuffing around with USB drives, but its way easier if you setup network access first via either a thunderbolt ethernet adapter (make sure its plugged in before starting up as hotplugging thunderbolt doesn’t work under Linux), or via bluetooth. The bluetooth connection can either be to a mobile phone sharing its data connection or if you have another Mac around, it can share its wifi network over bluetooth (turn on Internet Sharing in the Sharing settings panel).
Once you have network access, run a yum update so you have the latest packages from fedora. It didn’t work for me with the plain Fedora 19 install.
Then go to rpmfusion.org and install first the “RPM Fusion free for Fedora 19″ then the “RPM Fusion nonfree for Fedora 19″ RPMs.
Finally, run ‘sudo yum install broadcom-wl’. After a reboot Linux should come back up with wifi working.
UPDATE (2014-01-13): I’ve found that each time a kernel upgrade comes through I’ve had to uninstall then reinstall broadcom-wl which is kind of annoying. This time round I’m experimenting with installing ‘kmod-wl’ which brings in broadcom-wl as a dependency but I’m hoping does better at tracking kernel updates.
Also worth noting that this approach continues to work with Fedora 20.
Ah Apple maps, ever the source of a good sensationalist headline. This time the Victorian police have warned people not to use Apple Maps to get to Mildura. This is definitely a bug with Apple maps, no question it should be and has been fixed. What’s interesting though is that the Victorian police thought it would be easier to attempt to notify every iOS 6 user about the problem via the media and get them to use an alternate mapping application than it would be to call Apple and get them to fix the source data.
Users complaining publicly instead of being constructive and reporting the problem to the manufacturer certainly isn’t new, but in the age of web services its more self-defeating than ever. Apple can fix the problem in one place and its fixed for every user, surely the Victorian police have a better way of getting in touch with Apple than through the media?
And lets not even start asking why anyone would blindly follow GPS directions into the Australia bush despite the fact that they are looking at a satellite photo that clearly shows there isn’t a town there.
The power of user feedback and cloud hosted data was very clear with my recent experience of using Apple maps – on the way to my destination was some road works which diverted the road and replaced a round about with a set of lights. Despite the fact that the roadworks were actually still in progress, Apple maps gave exactly correct instructions for the new layout. Meanwhile my TomTom GPS will still think there’s a round about there for up to another year and then require me to pay nearly $100 to get the updated maps. It wasn’t too long ago that I’d be looking up a book of maps to get my outdated driving instructions (and then have to memorise it or stop regularly to have another look).
Makes you realise what an incredible time we live in.
A flier aboard Sunday’s Swiss airline flight – a 57-year-old Chinese man [...] felt disturbed during his meal when the passenger in front of him reclined his chair.[...]
“The older of the two felt disturbed during his dinner. When the younger did not respond to his protests, he hit him on the head with the flat of his hand. It was a real slap,” said the guide, Ms Valerie Sprenger.
A fight then broke out between the two men, who rolled in the plane’s aisle. A crew member and a well-muscled passenger restrained the aggressor, bound his hands and placed him at the back of the plane, where he shouted for an hour, the newspaper said.
I can sympathise. In fact I’d have probably tied up the douchebag who put his seat back during meal service.
CSS3 makes it trivial to have alternating row colours for tables, but when the table is in a fixed height scroll panel, it’s much more difficult to have those alternating row colours extend beyond the bottom of the table content to fill the available space. Here’s the approach I use.
First let’s start with a simple table with alternating colours in a scroll panel:
That gets us alternating row colours where there is table content. To get it to extend beyond the table content we need to add a filler row:
This gives us an extra row in the table that we know will always start immediately after the last row of content in the table and line up. We can now set a prepared image as the background of that row that preserves the alternating colours and stretch it out to take up the remaining space:
Apart from the background image, we set the height to 100% so that our filler row fills the remaining space. If the table is empty, the filler row will get 100% height and fill all available space, if however the table has other rows in it, the table rendering algorithm will shrink our filler row down so that it can fit within the bounds of the table – preventing the filler row from overflowing the scroll container and activating the scroll bar.
Since our background image starts with an odd row colour, if the filler row is an even row, we use background-position to shift the background image down by the height of a stripe so it effectively starts with an odd row colour.
We also add line-height: 0 and padding: 0 so that when the table content fills all available space (or starts scrolling), the filler row has no minimum height and disappears entirely.
Note that this approach will adjust perfectly well even if the content rows vary in height, because the filler row will always start immediately after the last content row and fill the available space. The height of the alternating colours in our image will just provide the default row height in the filler space.
If we’re only targeting modern browsers anyway, we can go ahead and replace the background image with a dynamically generated gradient:
Following on from my last post, Jason Adam Young has some excellent advice to help you continually get better and better and building software and perhaps more importantly, be more and more valuable to whoever you happen to be working for.