Since I’ve been spending more time on reddit I’ve been somewhat annoyed at how some subreddits hide conversations inside emoticon text, mostly because it takes so long to read with all the hovering.
Since Google didn’t bring up any leads, and the Reddit Enhancement Suite didn’t help, I created my own! Though when people find this they’ll probably tell me all about the much better solutions people have already made.
The code was inspired by, but not based on, the (Super Reddit Alt-Text Display)[http://userscripts.org/scripts/show/109869] userscript.
Go from this
So here is the aptly named titletext.safariextz
There’s been a seal hanging around the Wellington waterfront, and I managed to get this shot of the contented seal face
So I’ve been moving in to hardware hacking rather than software. I’ve been working in IT software for 8 years now, so something new is fun! Plus if you get hardware wrong you definitely know about it.
First thing I noticed was lighting adequate for software work is useless for tiny hardware work, so I set about building a custom lamp for it.
So, I started with a cheap clip-on desk lamp, and with some components from eBay and a LED pattern laser cut by Ponoko I set to work (pics in full post)
A couple of months ago I decided to do a little DIY air conditioning, more for fun designing circuits and programming microcontrollers. One thing led to another, and now I’m making a mini CNC mill out of spare printer and scanner parts. This will probably take most of the year to complete, but the planning is fun!
I’m sure everyone knows that Chrome is dropping h.264 video support for WebM. They claim it will enable “open innovation”. I have a few problems with this.
Firstly, VP8 is probably patented (though it may not be), the algorithms are very similar to the h.264 algorithms, so the MPEG LA may have a claim. Also Google haven’t offered any form of indemnification or analysis to show the patents aren’t infringed. In many cases we’ve seen companies wait for popularity then sue those who can’t defend, one reason GNU doesn’t use GIF.
Secondly, VP8 may be the future, but h.264 is here now. While looking to the future is all well and good, it shouldn’t be at the expense of current usability unless the two are mutually exclusive. The ‘for the future’ argument also falls down with quality comparisons, VP8 and h.264 are of comparable quality, with VP8 falling short at the moment, though that may pick up with more development. VP8 is not a next generation codec, it’s current generation. Arguably VP8 has better peak signal-to-noise ratio (PSNR), but PSNR doesn’t reflect visual quality.
I believe that Google can push WebM in more effective ways. They are working on VP8 hardware acceleration for mobile devices and presumably re-encoding a lot of YouTube content to VP8. I assume they’re also working on WebM support in Flash Player, as once that’s complete non-WebM browsers will have a fallback. All that’s happened in the short term is Chrome users will see h.264 content in Flash Player, rather than in native video, which gives awful playback on Linux. Given Firefox’s performance it seems I’ll be stuck with proprietary browsers if I want performant video playback. Thanks Google.
If you have Comic Sans Be Gone installed the check your extensions updates, else grab it
While F# is a first-class .NET 4 citizen it’s not really a first-class Visual Studio citizen, even in 2010. A lot of the application setup tools we have for C# aren’t present in F#.
I was recently making a quick and dirty tool in F# that needed some basic user settings, so I went with the ApplicationSettings infrastructure in .NET, as it’s the easiest way to implement this. In C# this is easy, the GUI designer writes the code for you. In F# you have to do it yourself. Microsoft’s documentation is in C#, so there’s some adaptation to do.
You’ll need a type that inherits
ApplicationSettingsBase class from
System.Configuration, and then add some property members with the attribute
UserScopedSettingAttribute(). You can also use
ApplicationScopedSettingAttribute() for application-level settings, but these require editing the XML in your App.Config, something that I’m not that familiar with yet.
There’s a little boilerplate for each setting, but other than that it’s a breeze.
Here’s a sample settings class:
open System.Configuration type MySettings() = inherit ApplicationSettingsBase() [<UserScopedSettingAttribute()>] member this.UserSetting with get() = this.Item("UserSetting") :?> string and set(value : string) = this.Item("UserSetting") <- value [<ApplicationScopedSettingAttribute()>] member this.AppSetting with get() = this.Item("AppSetting") :?> string
For a fair few months I’ve been working on a nifty app to do notifications for PowerShop products and power balances.
It’s finally released! I present EMPing.
No, it’s not free. Servers aren’t free either and I have to run one to do notifications.
If only I had a million-dollar game idea.
For Chrome users goblindegook’s Allvetica replaces Arial and optionally Comic Sans with Helvetica.
We all love to hate Comic Sans, so I whipped up a little Safari extension to remove it from any page and replace it with a much more pleasing font.
I was concerned that changing the font would mess up designs, but then I remembered that they were using comic sans, so it wasn’t a real concern.
However, it will slow down all web pages, as it iterates all stylesheet rules. If you notice your browser going slow this is probably why. Caveat Emptor.
So with that, I present Comic Sans Be Gone.
The latest information will be on the product page, and I’ve made an update manifest for it.