Hulu.com, I love you, and I'm blocking your ads.

1. February 2010

An advertisement has never persuaded me in my life. Okay, I'm lying. When I was a wee little boy I distinctly remember seeing Batman and TMNT toys, and LEGO bricks, and other fantastic things on television and begging my mom to buy them for me, and she did. Even then they were never as fun I was manipulated into believing. So, they got me there, and then I grew up.

Beyond that, I'm being honest and forthright. I have never bought something from a commercial, and I wouldn't even say I've been persuaded by a commercial. Influenced? Yes. I've been pissed off (no not at something they intended), and I've had my train of thought and viewing experience interrupted.

Let me tell you how much I love to see televised material that is strictly relevant to my interests, and yes, let us phrase it this way. I will speak of that which I love, staying constructive. Attention is creation. I didn't name this blog Code Optimism for nothing. ;)

Everything I watch on my television is through the DVR system. Yes, that's right, everything. If I bump into a show airing I enjoy, I schedule it to record and I watch it an hour later, where I can hit that wondrous fast-forward button. I'm so good at it I count and automatically average the number of large forward skips between my material on a per-show basis for rapid precision. How I love being constructive with my entertainment time! :) If it's a live show? Same thing. Important news relevant to me? Same.

Now Hulu, I love your service, and I understand the advertisement based model. I'm glad there's such a model (though I contest most is utterly broken in their interest-based irrelevance) and that it can support you (I hope it's enough for you, perhaps not!). Additionally many of the things I love rely on advertising. Favorite websites, and consumer goods too.

That said, I have never clicked an ad seriously. ;) Never. This is a pull society, not a push one. Sorry, welcome to the future. I don't watch the news. I don't read the newspaper. When I wish to know something, or what's happening in a particular field, I perform a search, just when I want to. I use Google Voice for my cell phone. I sign things with disposable email addresses, I don't get coupons in the mail. I even do my cleaning this way. Why would I want all of this garbage when I can seek it out precisely when I need it?

So I use Adblock software. So I screen my calls. So I only fake sign-up for subscriptions. I don't mean to be rude by blocking your ads, advertisers. I'm saving you bandwidth! I'm not ever going to click one of your ads. I'm never going to watch one of your commercials. I don't even second-hand listen or watch your commercials when someone else is. I wear headphones and listen to Sirius BPM, pop dance station. You know what's so wonderful about it? Loud, fast, energetic music, with seamless track changes. The music consistently peaks, no low acoustic style pauses where background noise bleeds through, these are dance mixes! Constant changing wonderful music that makes me smile.

I imagine those remarks about the headphones might seem facetious, but no, I'm quite serious. :) Not only do I avoid something that makes me unhappy, its replacement actually makes me happy! It's fantastic, and I really recommend everyone try it. SiriusWM6 for Windows Mobile, right on my cell phone.

So, I'm passionate about this. I'm so passionate I spend hours, even weeks programming around these sorts of things. :) The payoff is immensely worthwhile to me when I can watch entertainment without my mood ruined with advertising drivel, and emotions are highly important! Good feelings get to keep flowing. :)

So, Hulu, I blocked your ads. I blocked them in the most reliable "you can't do anything about it and you never will be able to" sort of way. I screen scraped your advertisement notice and you'd do far more inconvenience to your users by discarding it, which I'm sure is quite obvious. That simple fact means I will always be able to detect ads. If you let the user know, you let me know. If it's on the screen, I can see it. It's like trying to prevent someone from copy-pasting your text or saving an image from a website. It can't be done. Once it's on my screen my computer has it, and everything else is a completely pointless waste of resources in an unending war of escalation. This is all easily grasped for those in the know.

I don't think you'll mind though, that I'm opting out. I'm not the issue though am I? Someone may package my code in a tidy little consumable and disappear your ads with nary a consideration. The occasional or rare advertisement sucker may cease being suckered altogether, or miss something they'd enjoy. There must be enough of these characters to make a difference, maybe even the ones that knowingly use an Adblocker! I can safely say I'm not one though, no not even the rarest of clicks or purchases that would still soundly register from me. Zero.

So here I offer my crude and personal, barely working code for those like me. I'd love to refine it, to present it neatly with simple instructions and ironclad reliability, but this is my blog, you get the crap I'm working on in its crappy probably can't make it work unless you're a developer anyway state or you get nothing, and it's better the internet get something. ;)

If you're not like me, if you'd rather watch an ad than black nothingness (later I'll add fun replacement things), or if you occasionally are persuaded by an advertisement, or they simply get into your awareness and on your tongue and you do not mind, then enjoy your advertisements and support Hulu, because they deserve it.

Crappy code available here. ;)
Install AutoHotkey... double click main .ahk file

Blanked out Hulu.com advertisement.

Coders: better gamers than you. Take FreeSpace 2.

18. January 2010

(Because we cheat!) Well that's the theory anyway. Except then we stop gaming because we're bored and we go back to coding our cheats.

So I recently dusted off the game FreeSpace 2. Still fantastic, and thanks to the FreeSpace 2 Source Code Project it has new and pretty graphics and mods. Metacritic thinks it's awesome too... if that means anything.

MediaVP updated graphics screenshot, enemy ship targeted at 367 meters.

In a space combat sim, deftness and accuracy are your best friends. Unfortunately in FreeSpace it didn't seem that you could have both. With the sensitivity maxed you could pivot, bank, and pitch with maximum speed, but your target would bounce around your reticle, and you'd miss most of your shots.

Perhaps a very nice gamepad joystick would register a wider range of the slower, gentler movements. Mine certainly didn't, and that may be the most likely scenario. A standard computer mouse absolutely doesn't work, as there's no "center" to return to, you're constantly turning.

I of course thought, "Ha ha! I can fix this" and turned toward AutoHotkey. I was going to code an ugly hack, and have a button or joystick open the key configuration and adjust the sensitivity in a lightning quick second, preserving the state of my other buttons and ship movement.

That is until I spotted an example script in the (very awesome) help file for using a joystick as a mouse. Programmatically controlled sensitivity, some significant rewriting, and yeah. Dominating.

I have one joystick for movement, the other to adjust the sensitivity/speed of that movement for excellent ship tracking, and a button which brings it to the absolute maximum for rapid orientation changes. Also many other intuitive combinations for interacting with enemy/friendly/escort ships, such as targeting, targeting attacker, and so on.

Have at the AutoHotkey script here. Code skillz required, sorry.

General productivity enhancements for Vista (and XP): Taskbar

18. November 2007

This is the first installment of my own personal list of general productivity enhancements for XP/Vista, many of which involve small, resource friendly 3rd-party tools. My general criteria for OS supplementation tools is as follows: They should be simplistic, small, and speedy. It's not much use if it doesn't feel as if it's a part of the operating system itself.

Unfortunately problems and incompatibilities can arise, and there will be a section at the end to address these.

The Taskbar

If you're like me you would prefer to have all of your notification area icons visible. However you may find yourself with less than sufficient room on the taskbar for the tasks themselves. This is especially true if you have a rather wide quick launch area - which can be very valuable, as you'll see in a moment. Some attempt to alleviate this issue by expanding their taskbar to two separate rows, but the additional bulk at the edge of your screen isn't very pleasing, nor will your pointer movement be as precise now that you've introduced a soft edge instead of the single hard edge of your monitor.

Likewise XP/Vista's similar task grouping feature has always struck me as a rather primitive and ineffective solution since you lose quick access to all of your tasks.

A very neat way of opening up space on your taskbar is to move minimized windows to an auto-hidden dock using RocketDock: a minimally intrusive, adequately configurable, speedy little Apple-esque application dock.

Configuring RocketDock version 1.3.5 as a Minimized Window Dock

RocketDock in action as a minimized window dock.

Although RocketDock is primarily an application launcher, it can be configured to only display minimized windows, as well as be out of your way. Windows minimized to the dock are not displayed on the main taskbar.

I went to the trouble of exporting my RocketDock registry settings and comparing them to the defaults. What remains is a Windows Registry file of only the relevant settings for the particular transformation you see pictured above. I have annotated each of the settings in the file, and you may download it here: RocketDock v1.3.5 minimized window configuration.

I strongly advise that registry files from every source be previewed in a text-editor before being imported to the registry, due to the awesome and unchecked power that registry modifications can have on your system. Previewing the above file you should be able to note that the only registry key affected is RocketDock's current user settings at HKEY_CURRENT_USER\Software\RocketDock.

Be advised: Holding the Ctrl key when minimizing a window is designed to bypass minimizing to the dock. Holding Ctrl+Alt+Shift will toggle whether or not to minimize that window to the dock normally (these are stored in the registry as the process and window class names I believe).

2-16-08 On Windows Vista systems RocketDock utilizes Desktop Window Manager (DWM)'s public API for reliable live window thumbnails. However, rather unfortunately, in this mode the application's icon is no longer overlayed on the thumbnail. If you can stomach semi-frequent inaccurate thumbnails, then adjust RocketDock.exe's properties and enable Windows XP compatibility for the old (and in my opinion, more useful) behavior seen in the updated screenshot. Or, as I will be doing, you could register with RocketDock's bugtracker and gently persuade PolyVector to add the icon overlay to Vista DWM thumbnails as well.

Your taskbar is on the wrong edge

Taskbar at top of screen, near application menus.

This may be a subject of contention, and you should of course use whatever you prefer, but in my opinion the taskbar is on the wrong side of the screen. It should be on the top, not the bottom. Although perhaps jaded from all of the separate versions of Windows happily placing the taskbar at the bottom, I had a moment of clarity in which I questioned the traditional, and I moved beyond. Why is the top edge the better edge? The reason is fairly simple: that's where everything else is. Application menus and buttons have a long history of residence near the top, as well as address bars. I find it preferable that my eyes and pointer need no longer unnecessarily traverse back and forth between edges.

Now it's true that this will place a buffer between the top edge and maximized windows - potentially slowing down the time it takes to target the titlebar (for double-click restoring) or the window buttons, but I find those too slow anyways, and don't use them (subject of a future post). (Also, maximized windows aren't quite as useful as they once were.)

Use a persistent stand-alone OS toolbar for mouse application launching

A persistent stand-alone OS toolbar.

The Quick Launch toolbar is underrated. What appears to be a small space for launching a few specific applications in an unorganized manner need not be any of these things. It is rather apparent that the quickest application launching possible with the mouse alone would require the least input and thought from the user. The start menu is not in the least suitable, requiring far too much scrolling, clicking, and searching for company branded folders, all with the same generic folder icon. Quick Launch is always immediatly present and visible (unless you use autohide) and it's a one click solution. Once we've learned to associate an icon with its respective purpose they are much faster to process and far more compact than text.

Unlock your taskkbar if it's locked (context menu). On XP you could simply grab the Quick Launch toolbar by its border and drag it anywhere you would like - leaving it as a floating toolbar, docking it against an edge, or adding it to an existing toolbar. On Vista you can't drag around toolbars like this - but you can drag the folder itself to an edge to create a toolbar, and then as in XP, add additional folders to this toolbar with Toolbars in the context menu.

So to give Quick Launch its own stand-alone toolbar in Vista it may be fastest to right click the current Quick Launch toolbar, select Open Folder, navigate up to its parent, and then go ahead and drag "Quick Launch" to an absolute edge of your desktop. Be careful not to drop the folder on your desktop itself. Note that there is no cursor change or other indication for this, which is a bit bizarre.

On my 22" widescreen monitor at 1680 x 1050 resolution I can fit a maximum of about 70 icons across the bottom (the natural place for the toolbar, since my taskbar is at the top).

"Now wait a minute Chris. 70? You said organized."

70 maximum. Use as many program shortcuts as you find agreeable, and would like to launch in a single click. For everything else there's a two click solution:

Never navigate your start menu again: Quick Launch pop up menus

My menuApp configuration as an example.You can view a little video of my full configuration for organizational ideas.

I know of two beautiful universal pop-up menu applications.ShortPopUp and menuApp. They both operate the same: they show a pop-up menu of the contents of the folder in which they are run. Therefore creating a shortcut to either of these programs and specifying a folder full of shortcuts (or files) as the folder to "Start in" yields a fantastic menu for your toolbar. There are essential differences between the two.

menuApp v1.04

Pros: very fast with a background server and cache (but server crashes under Vista)

still faster than ShortPopUp under Vista with server disabled

easily use separate configurations in one ini file

very little configuration, would "just work" if not for the Vista problem

support for special folders, like a task list

never displays shortcut arrow overlay on menu items

sorting always works

Cons: context menu problems for menu items (untested on XP): Properties doesn't work, Delete doesn't give a confirmation, etc.

non-shortcut file extension text is always visible ".txt" etc. (if bothersome you can always create shortcuts to work around this in small instances)

ShortPopUp v4.1

Pros: highly configurable: display, sorting, etc.

easily use separate ini configurations

invalid shortcuts display disabled

can access Properties, etc. of menu items through context menu

easily hide any or all file extension suffixes

little bits of humor in the documentation (okay, this doesn't count)

Cons: context menu problems for menu items (untested on XP): they can't be escaped/dismissed without a selection, and selections click through to the underlying menu

can't hide every shortcut arrow overlay

slower than MenuApp

requires configuration (default is very bare bones, no icons, etc.)

sorting seems to fail in several cases, I have yet to understand why, different sorting configurations don't seem to fix it

When I made my decision between the two some time ago, I believe I chose ShortPopUp, configured to be quite similar to menuApp, because it was more stable. I seem to recall that menuApp would not work at all in some common cases unless I used Vista's compatibility mode - but this slowed it down. However, while compiling this list I deleted menuApp's configuration file and allowed it to be recreated (there was at least one peculiar entry in there), and I also have Windows Aero enabled (having it disabled has given me compatibility problems before). I compared each of my menus with each program, and menuApp's speed is just too appreciated; it is my tool of choice.

Middle click close and rearrange tasks with Taskbar Shuffle

Repositioning my 'Downloads' folder task with Taskbar Shuffle.

Taskbar Shuffle is a fantastic lightweight tool which enables you to rearrange tasks with drag and drop, and most importantly, middle click close. (If you don't already use the middle mouse button to open and close tabs in your web browser, you may want to start.) Taskbar Shuffle also provides the means to rearrange notification area icons via holding down Ctrl.

A small issue or two, which may or may not apply to you

Unfortunately there are some minor problems with these recommendations.

  1. Upper edge taskbar: Many programs attempt to be helpful by positioning themselves at the very top of your screen in an unintelligent manner. If your taskkbar is at the top edge then these windows will be obscured and you'll have to resort to using the keyboard to reposition them (or temporarily repositioning the taskbar). Right click their task in the taskbar, select Move, and press a directional arrow key on your keyboard. The window will now be attached to your mouse and free to reposition. (As Alt+Spacebar opens the same menu for the focused window, I tend to use Alt+Spacebar+M+directional arrow.)

    I'm sure this can in fact be automatically worked around with an AutoHotkey script for instance. Since I have a bit of a love affair with AutoHotkey I don't find this too inconvenient of a solution, and will likely whip up a script when I have time.

  2. RocketDock and UltraMon: Unfortunately the extremely helpful Move window to next monitor hotkey feature of UltraMon (which isn't discussed in this entry) has a very annoying issue with RocketDock, where windows, while technically moved, are minimized to the dock. Neither program is really to blame for this problem.

    I indeed crafted an AutoHotkey script to fix this, but then realized a much simpler solution was to include Ctrl (but not Ctrl+Alt+Shift, see above) in the hotkey, since minimizing a window with Ctrl bypasses RocketDock. So that's an easy fix. However, since this means Ctrl must be held down until the window is minimized, you can't make a mouse binding (or some other automation) which rapidly sends the hotkey and expect it to work. Since I use a mouse binding I may be resurrecting an extremely simplified AutoHotkey script which merely waits for the minimization before releasing Ctrl.

    3-25-08 Fix available here. Requires AutoHotkey. Modify the opening lines for your (true) hotkey and UltraMon's, respectfully. It even refocuses window controls beyond UltraMon's ability.