Google Reader's "Explore" feature

I recently discovered the new Google Reader "Explore" section, just above my subscriptions in the left-hand panel:

Using it like my screenshot above - not expanded - means that when I click on the "Explore" text, I get an endless, combined feed of everything Google Reader thinks I might like (there's actually been some good stuff there too) for the price of one line of text.

This is much handier than viewing a list of feed titles using the old "Browse for stuff" link and having to make a decision to even click on a feed based on the title, author and number of subscribers.

Well done Google for a smart, non-obtrusive way to help users find more reading.

Tags: , ,

Blockbuster Signup WTF

I love the DailyWTF blog and recently had a WTF moment of my own while signing up at the Blockbuster (Australia) website:

 

In my case the password wasn't long enough, but Blockbuster effectively "threw the book" at me and dumped all the password error text onto the screen.

I read and re-read the highlighted text but it still didn't make sense, especially considering I didn't use any non-alphanumeric characters. If something should "contain at least zero" then it could also be written "should not contain" which might have come off better.

Tags: , , , ,

The Case For Renaming Controls In a Reporting Services Report

Since my Access days, I've believed in renaming important* controls in reports. Now that I use Reporting Services daily, this practice still holds: ambiguous names like "Textbox1" or "Textbox112" become "ReportName" or "FinalBalance", "table1" becomes "WidgetSalesTable", and "chart1" becomes "MonthlyTrendChart".

As well as better organising the report while in development and adding only a small amount of time to actually do, renaming controls is useful to me later when I'm maintaining a report as I can see which controls contain which data points.

There's one further advantage to renaming controls in a Reporting Services report: because reports are stored in XML format, I can extract the static contents of a control (as long as I know it's name) either from the RDL file or from the RDL file stored as XML in the Catalog table in the ReportServer database.

I recently needed this functionality as I wanted a list of reports with the contents of a textbox on each report body called "Purpose".

This was fairly straightforward to accomplish using the XML nodes() method, which is dependent on the control being sought (which is why there's no code for this blog post, sorry!)

* I don't usually rename controls that contain "meta" information, like column headers and blank cells.

Tags: ,

Reporting Services "Execution xxx cannot be found"

Recently I investigated a Reporting Services problem where a user first ran a report with one parameter, then switched applications to do some work, then returned to the report and attempted to run it with a different parameter. The end result was that they received an "execution xxx cannot be found (rsExecutionNotFound)" error.

I too see this "execution cannot be found" error intermittently, sometimes after coming back to a report I'd run earlier and clicking "Back" or trying to expand a section on the report, and sometimes when my browser loads up tabs from a previous session.

And The Reason Is You

Behind the scenes, Reporting Services tracks each user's session (using an "execution" identifier) in the ReportServerTempDB database, storing report snapshot data and information on selected parameters as well as report sections that are expanded. There's an article "Report Session Caching in Reporting Services 2005" on Database Journal that explains the caching in more detail.

The expiry time for the Reporting Services session is set to 10 minutes by default (note this is different to ASP.NET session and/or connection or command timeouts).

And I Will Try, To Fix You

Although there are multiple ways to alleviate the problem, in my case it was following the advice at Emi Baragan's blog which describes how to modify the session timeout using script. John Gallardo goes into more detail where the session might expire while a user is running a report (that takes longer than 10 minutes to run), which wasn't happening in my case, but is also a potential cause of the "execution cannot be found" error.

John's post ends with a note that keeping sessions alive longer can cause the ReportServerTempDB database to increase in size - something which I'm happy with, but will need monitoring.

Tags: , ,

Two Types of Developers

Recently my boss said something like:

There are two types of developers - ones that are into their tools, and those that just use the tools. You don't need to be the first type to get the job done.

With regards to most of the programs I use, I'm the first type (and proud of it). However there's some things I have no desire to get into, and would rather just use; DOS batch files, Oracle TNSNAMES.ORA configuration, HTML help authoring, to name a few.

That one little quote also touched on a tendency that I have to spend too much time fiddling and fine-tuning. Have you ever downloaded a single-use utility to get a task "just right"? Me too!

Maybe there's some programs that I spend a lot of effort on, that I could afford to take a step back from and just use to get the job done.

Tags: , ,

Setting Focus to Control in an IFRAME using JQuery

Had a gnarly problem this afternoon, while trying to set focus to a control in an IFRAME.

Using JQuery, I had created the IFRAME with the JQuery plugin ThickBox. ThickBox provides functionality that can simulate a modal dialog using an IFRAME, loading a page from a URL into the IFRAME (check out the demo here - scroll down to "Inline Content"). The page loaded inside the IFRAME contained code to set the focus which was actually being called, but after the page loaded something else was stealing the focus.

I began to look at the javascript code in the parent that created the IFRAME.

I discovered to set the focus to a control in an IFRAME that has already been loaded, you need to set the focus to the IFRAME first (thanks Alex King). I also benefited from "How to access IFRAME in JQuery" over at ProCoding (thanks Taras Ilnytskyy).

Here's the code to set focus to a control in an IFRAME using JQuery (called from the parent window, after the IFRAME has been loaded and shown):
	
//get the IFRAME element - note no hashes in the name, we're using browser functionality
var iframeRef = document.getElementById("IFRAMEID");
//focus the IFRAME element
$(iframeRef).focus();
//use JQuery to find the control in the IFRAME and set focus
$(iframeRef).contents().find("#CONTROLID").focus();
I hope this helps someone!

UPDATE: Fixed formatting.

Tags: , , ,

Firefox vs Flock

I've blogged previously about how I use the Flock web browser, but recently decided to try my luck at the latest release of Firefox.

Flock had several features that enticed me to adopt it in late 2007: social media sidebar integrated with Facebook, blog post editor, in-built image uploader which connected to Flickr and Picasa, media bar, and one-click access to services I constantly used (like Delicious).

My biggest gripe with Flock was that the user interface was not customisable enough. Also, the browser had more features than I'd ever need.

Buying a widescreen monitor with very limited vertical space was the straw that finally made me switch from Flock to Firefox, permanently. Here's a comparison between the two (the red highlights represent the menu & toolbar space used):

I use a couple of Firefox add-ons to reduce the vertical space used (that's the other thing...Firefox has an unbelievable collection of add-ons):
Flock was good to me. Now, I just need the screen space, and don't need a lot of its features.

Tags: , ,

5 Firefox Add-Ons I Can't Live Without

Inspired by Martin over at gHacks, here's my list of Firefox browser add-ons that I consider essential:

  1. Mouse Gestures RedoxNavigate back and forward, close windows, and more with just the mouse. I turn on "mouse trails" to make it easier to see what I'm doing.
  2. Easy DragToGoDrag a link to open it in a new background or foreground tab.
  3. Adblock PlusBlocks ads, and is very configurable. Having a little "block" link I can click next to images and flash is extremely handy.
  4. FirebugIndispensable for web development, especially the ability to edit, "live", any part of a page. Also has some of its own add-ons available.
  5. SingletonFox, ChromaTabs PlusOK, that's two items at number 5, but I couldn't decide which one was more useful - making sure only a single instance of Firefox is open, or slight tab coloring depending on the site to make for easy identification of tabs.

These are fairly stock-standard add-ons, particularly numbers 1-3 which I've been using in some form or another since 2002 and MyIE. In addition, they're all very unintrusive - between the 6 add-ons, only 1 toolbar button is added (I like to keep my toolbars, menus and status bar lean).

Any browser add-ons that you couldn't live without?

Tags: , ,

Ever wanted to turn off Windows Beep?

The other day my PC started beeping at me. Every "Are you sure?" message box was accompanied by a "beep". I don't know how or why this started...I only wanted to make it go away.

First check, Control Panel -> Sounds. I confirmed that I had my sound scheme set to "No Sounds", but the beep stubbornly refused to budge.

Next, Google. Did you know there's a "Beep" driver? Neither did I! The HowToGeek has a nice article on disabling this driver on XP, only issue is you have to be admin.

I rolled up my sleeves, ran an elevated command prompt using MakeMeAdmin, then ran System Properties from the command prompt using "sysdm.cpl", and finally followed all the instructions in HowToGeek's article to stop the driver, disable the driver, and disable startup of the driver.

Now, I'm beep free - fan-beeping-tastic!

Tags: , ,

The Story Of WordPerfect: Almost Perfect

Jeff Atwood blogged about the free online book Almost Perfect earlier this week. Author Pete Peterson was part of WordPerfect for 12 years and opens a window into development process, marketing, competition, and highs and lows of the company, from a small starter to a big corporation.

I think the broader themes in this book are still applicable today - the enthusiastic team learning on its feet, finding creative ways to compete, dealing with customers and incorporating feedback, handling "feature creep" and release schedules, and the culture of an organisation (in this case, run by programmers). Pete doesn't come across as a particularly sympathetic guy, but tells an interesting tale and gives an insight into the IT culture of the mid 80's to the early 90's.

I was never a WordPerfect user but remember seeing it in shops and magazines; amazingly, WordPerfect was available on almost every operating system under the sun - DOS, AmigaOS, Windows, OS/2, Apple IIe, Apple IIGS, Apricot, Tandy, even Atari (with the enormous differences in architecture and capabilities, that almost equates to x number of different products, aside from all the different versions!)

I'm glad Jeff posted about Almost Perfect. It's well worth the read.

Tags: ,

«February»
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213