Firestorm 3.2 Release: In-depth

Note: thie version reviewed here is 3.2.2.24336 with the openGL fixes. If you continue to have issues with Firestorm, try 3.2.1.24179

firestorm-logoIt’s here, and it has the OpenGL fixes. And it is quite simply superb.

Firestorm 3 is everything a Second Life Viewer should be – and so much more. So much, in fact, that putting together a review has been something of a headache for me – where do I start, how do I order things?

One thing I will say right off the bat – and that is to give a very personal thank you to Jessica Lyon in particular for giving me the means to get started on this review ahead of the official release.

The Log-in Screen

The first of the big changes hit you right from the start: the log-in / splash screen has been significantly revised, incorporating much of the Viewer 3 log-in screen capabilities and, in some areas, extending them.

FS3-1
Making a Splash: the Firestorm log-in screen

At the top of the screen are four headers. The first three of these, Destinations, Events and What’s Hot Now, pull information directly from the Viewer 3 log-in screen I reviewed back in August 2011.  For those who have not encountered this up until now:

  • Clicking on any of the drop-downs will display a sliding panel of Destinations, Upcoming Events, and “hot” places to visit (the latter determined by the number of people currently visiting it)
Finding a place to go has never been so easy
Finding a place to go has never been so easy
  • Opening any one of those drop-down will, very tidily, close the previously-open drop-down
  • Hovering the mouse over the middle of any of the images in a panel will display a SELECT button; clicking on this will open a pop-up of further information, together with a notice that your start location on logging-in has been set to the selected location

FS3-3

  • You can still switch back to your Home or Last Location via the START AT option at the bottom of the log-in screen.

The last option is that of Firestorm Information, which is open by default. This provides links to the Firestorm download page, the wiki pages and the JIRA; the Firestorm Blog; and information on the Viewer version currently under development. most significantly of all, it includes links to the SL Grid Status Page, allowing users to immediately see if there are any known problems of which they need to be aware.

I am an unabashed fan of the Viewer 3 log-in screen; that Firestorm has adopted it is a major plus in my book. That they are further willing to go where Linden Lab apparently refuse, despite repeated cajoling through the likes of Twitter by a lot of people, gains it another huge tick in the Pey Book of Viewer Satisfaction. Would that LL understood the need to put this information front-and-centre, especially given that with the best will in the world, the grid dows tend to go Swedish Chef every so often and bork, bork, bork. But then, the Firestorm developers are all regular users of the platform…

At the bottom of the log-in screen are the familiar log-in credentials boxes. As is common for TPVs (and previous versions of Firestorm), the Viewer can store log-in information for different accounts, making logging-in with an Alt, etc, a matter of simply selecting a name (or indeed, name / grid combination) from a drop-down list. A DELETE THIS ENTRY button allows for the removal of any selected account from the Viewer’s records.

Default Settings (Viewer Modes)

Choose your desired mode
Choose your desired mode

The log-in area also includes a DEFAULT SETTINGS drop-down. This allows you to chose from one of three operating modes for the Viewer. These are: Phoenix, Hybrid, and V3.

I’ve already outlined the three UI looks, and this version doesn’t change them that much, so I won’t spend time on them here per se; however, for the curious of mind, the default settings for each mode can be found in the table below (from the Firestorm wiki).

Defaults for the three Viewer modes
Defaults for the three Viewer modes

Note: Phoenix does not mean the Viewer will present a Phoenix / Viewer 1.x-style interface.

Preferences

Firestorm’s preferences have had a major overhaul, with many options being more pragmatically grouped and thus hopefully easier to find. I’ve tried out outline the key changes below. You can also find a quick reference table to the changes in the Firestorm wiki.

General

Move or type: you choose
Move or type: you choose

The general tab now includes and EXTRAS panel that allows you to:

  • Select whether the Viewer display your own or other people’s in-world profile or your / their web profile
  • Whether the WASD keys will move your avatar or focus the cursor on the chat bar (also found in the Chat tab).

Note: By default, Pressing Letter Keys is set to START LOCAL CHAT for the Phoenix mode, but set to AFFECTS MOVEMENT for the Hybrid / V3 modes.

Chat

The Chat tab rationalises the majority of options associated with setting chat preferences. As well as presenting the expected Chat options, the tabs originally located in Preferences->Firestorm->Chat (General (renamed “Firestorm”), Radar and Keyword Alerts). This tab also includes:

  • Popular chat log options also found in Preferences->Privacy
  • The option to auto-hide the main Chat Bar
  • The new Viewer translation tool options
  • A Notifications tab, allowing you to define how IM and Group Chat notifications are handled using either the Viewer 3 pop-ups an/or in the chat console (i.e. lower left-hand corner of your screen, as per Phoenix / Viewer 1.x)
  • A Text Input tab comprising the Spell Check and AutoCorrect functions
AutoCorrect and Spell Check - together under Preferences->Chat
AutoCorrect and Spell Check – together under Preferences->Chat

Graphics

The graphics tab see the arrival of a FULLSCREEN mode for Firestorm. The option requires a restart to take effect, but renders the Viewer beautifully on screen without the usual application window.

Sound & Media

The Sound & Media tab has been refreshed, splitting media and Voice functions into two sub-tabs: General and Voice Settings. The General tab now includes the Media Audio Rolloff Distance settings originally located in Preferences->Advanced.

Sound & Media: new Voice tab and the Media Audio Rolloff sliders
Sound & Media: new Voice tab and the Media Audio Rolloff sliders

Move & View

The Move & View tab includes the Viewer 3.2 “click-to-move” functionality (which will reverse avatar mouse steering if you use it!), and moves the Firestorm Camera options originally found under PREFERENCES->FIRSTORM->VIEW to a new sub-tab called Firestorm.

Move & View: incorporate click-to-move and Firestorm's camera options
Move & View: incorporate click-to-move and Firestorm’s camera options

Privacy and Advanced

The Privacy tab is rationalised so that LookAt options are now located on their own sub-tab, including the LookAt Target option originally found in Preferences->Firestorm-General.

The Advanced tab has been reduced to the Viewer / grid / Advance / Developer Menu options.

User Interface

Originally called UI Extras, this tab now:

  • Includes the UI Scaling slider (originally in Preferences->Advanced)
  • Includes the lag meter check box (originally in Preferences->Firestorm->General)
  • Includes the Avatar Head movement options ( originally in Preferences->Firestorm–>Avatar)
  • Allows both script dialogue and Group notices to be displayed in the top right of the screen a-la Phoenix / Viewer 1.x.

The Font tab has been expanded to include options to adjust chat line spacing and folder item height.

Firestorm

The Firestorm tab has undergone significant changes

  • The General sub-tab has been rationalised as a result of options being either moved elsewhere or dropped
  • The Protection tab now include the Phoenix Spam Protection options
  • The Avatar tab replaces the View tab and combines the Avatar Head movement options with Selection Beam Particle options
Preferences->Firestorm->Avatar
Preferences->Firestorm->Avatar
  • The Windlight tab includes additional options for accepting region settings and cross-fading changes.

Chat Bar and Chat

The Chat Bar now includes two buttons: the first opens / closes the Nearby Chat floater, while the second opens the Conversations floater. However:

  • If the Nearby Chat floater is docked with Conversations (as it is by default), then both will appear to perform the same function.
  • With Nearby Chat undocked, Conversations opens to display your Contacts.

New Feature: Hiding the Chat Bar

Like Phoenix, the Firestorm Chat Bar can now be hidden:

  • Go to Avatar->Preferences->Chat->Firestorm and check AUTOHIDE MAIN CHAT BAR
  • The Chat Bar is now hidden.
  • To access it, tap ENTER – the Chat Bar will open at full window width
  • Type your text and press ENTER – the text is sent and displayed in the chat console or Nearby Chat (if open)
  • If you open the Chat in error, simply tap ENTER or ESC to close it without typing anything.

If you prefer, you can set the Chat Bar to open as soon as you start typing:

  • Go to Preferences->General->Extras or Preferences->Chat->General and make sure PRESSING LETTER KEYS is set to STARTS LOCAL CHAT
  • Pressing any letter, number or character key will now open the Chat Bar and capture your typing
  • As above, pressing ENTER will both display the test and close the Chat Bar

Note: setting this behaviour will disable the WASD keys as avatar movement keys.

To disable Chat Bar hide, the feature, go to Go to Avatar->Preferences->Chat->Firestorm and uncheck AUTOHIDE MAIN CHAT BAR. Remember to reset your the WASD functions, if required.

Additional New Chat Features

There are two further new chat options in this release:

  • Visible hint for when someone is typing: go to Preferences->Chat-> and check SHOW TYPING INDICATOR IN BUBBLES… tags will update to show if someone is typing, even if they have the typing animation turned off
  • You can display an optional channel selection box in Nearby Chat. Go to: Preferences->Chat-> and check SHOW CHANNEL SELECTION IN CHAT BAR
Channel display in chat

Chat Echo Fix

In previous versions of Firestorm, both the chat bar and Nearby Chat would echo whatever was typed into the other. This has been fixed so that text can be typed separately into each.

Camera Floater

FS3-13The Camera floater used within the Phoenix /Hybrid modes has been refined, with the view buttons (rear, front, 3/4s, zoom & Mouselook) now along the top of the floater. This makes the floater more compact, by some may find it harder to reposition once undocked from the toolbar as a result.

Quick Preferences

The Quick Preferences button now includes options to turn name tags over avatars off / on, and a time-of day slider for altering the region daylight in your own Viewer.

Mesh Uploads

One of the most eagerly-awaited capabilities within both Firestorm and Phoenix is that of mesh object uploads.

This release sees Firestorm gain the capability, thanks to Nicky Dasmijn. The upload process uses the latest Viewer 3 upload window, and while I am no mesh expert, it appears to match the official Viewer in terms of smoothness of operation.

FS3-20

Note that the upload feature includes the fix for CTS-627 (Mesh upload crashes Linux).

Advertisements

Viewer 3.x to get a speling cheker

Spelling checkers are something TPV users tend to take for granted; or if you’re a Guardian reader, quite possibly for grunted (sorry, a little English humour….). We’ve been able to bask in the glory of having our misspellings highlighted ready for us to correct (or in some instances, had them auto-corrected, depending on the sophistication of the checker code itself). Those using the official Viewer, however, haven’t been so lucky.

But that is about to change. Enter Storm 83. A year plus old, barely watched or voted upon, and now a coming soon feature. So as Oz comments on the JIRA, “Everyone thank Kitty for volunteering to contribute this feature!” Kitty being Kitty Barnett, who is the assignee for the project, and who has been a prolific contributor to TPV code, including RLV/a.

It’s not clear exactly how the feature will be integrated – different TPVs have added it in various tabs within Preferences. However, if we take Kitty’s own Catznip Viewer as a lead (given it is based on Viewer 3), one might hazard a guess and say that rather than being hidden away inside Preferences, as is the case with come TPVs, the Spell Check option will get a tab of its own.

With Catznip the spelling checker is very straightforward: simply tick the check box to enable. American English is the default, but other options are available from a drop-down menu. Spelling errors are then underlined in red in chat, and right-clicking on them will display a nice little menu listing alternatives as well as an option to add the word to a custom dictionary, should you prefer. One suspects the Viewer 3 functionality will be similar.

I’ve no idea whether the dictionary will include the ability to download other language dictionaries, a-la the likes of Phoenix and (shortly) Firestorm. I’ll hopefully take a closer look once the code reaches a Development Viewer or enters the Beta code base.

 

Communications and the Lab. Again

So, Kimberly Salzer (Kim Linden), former VP of Marketing, has gone from Linden Research.

Reactions to the news have been mixed. Hamlet Au’s overall tone is one of regret, while Aeonix Aeon (aka Will Burns) is more forthright and views it as good news.

Kimberly Salzer

Both state that among other things, Kimberly Salzer was responsible for the most recent communications regime at Linden Lab which not only regimented internal communications, but also impacted how the Lab engages and communicates with the user community and the world at large.

If this is true, then I would tend to stand on Will’s side of the fence where her departure is concerned. It’s an inescapable fact that since late last year (Kim Salzer arrived at the Lab in September 2010), outward communications have not so much continued to decline as they have apparently tumbled headlong into a void.

The inability for the Lab to effectively and efficiently engage and communicate with its own user community is nothing new; it’s a fact of life, sadly. Regular readers of this blog will know it is something I’ve repeatedly banged on about over the course of the last couple of years. Indeed, such was the downturn during the first quarter of this year, that I wrote at some length on the need for, and value in, more constructive engagement from Linden Lab towards its user base.

Catherine Smith

The origins for the collapse can be traced back to early 2008, when after years of encouraging users to embrace and use the company’s trademark, it was announced that henceforth there would be a new Trademark Policy which would severely curtail people’s ability to use it. This initiative was spearheaded by Catherine Smith (Catherine Linden) who was at that time Linden Lab’s Director of Marketing. That the company had the right to define how and where its trademark could be used was never the issue; the problem was the way in which the company summarily went about setting up the new rules, which many saw as a betrayal of Lab / user trust.

It was the start of a long and steady decline in open communications between Lab and the user community which has, in many respects, now reached rock bottom. In the course of the last twelve months alone we’ve seen:

Amanda Van Nuys

Amanda Van Nuys (Amanda Linden, another now ex-Linden Lab Marketing executive – spotting a trend here?) announcing the forthcoming arrival of the new Community Communications Platform (CCP) – and then promptly championing its future use by telling users that actually, if they want to keep up with the news from LL, then really they should go elsewhere.

In a near total re-hash of the Jive platform roll-out two or so years previously, LL ignored all requests for a General Discussion forum to be included in the new CCP. Instead, on rolling it out, they instigated a heavy-handed moderation process, arbitrary shutting down threads and discouraging discourse. At the same time they introduced some kind of “keep it clean” censorship policy that meant, as Ciaran Laval memorably blogged, the name “Dick van Dyke” became “bleep van bleep”. The result of these actions were to a) actively discourage the use of the new platform, driving many users elsewhere; b) turn the whole CCP into something of an item of derision.

Office Hours have, for a variety of reasons, have been replaced by User Group meetings. Some of these have thrived, but when reading the transcripts of others (when available), the information flow out of LL in these meetings often comes across as cautious and stilted – almost as if staff have been told to mind what they say to the point of being unable / unwilling to say anything at all.

JIRA policy was arbitrarily changed. Rather than voting for issues, people were told that, henceforth, they’d have to watch issues. Given the fact the watching leads to people receiving an e-mail each and every time someone else comments on (or otherwise edits) an issue, and that for hot topics, this can lead to dozens of e-mails per day hitting one’s in-box, this could only be interpreted as an attempt by LL to actively discourage people from engaging in the JIRA.

Any attempt at structured communication seems to have ended. I’ve nothing against the company using Facebook, Twitter, Plurk and what have you, as long as they are consistent in the use of such channels. The problem is, LL isn’t. Rather, what seems to be in place is a “heads-its-the-blog-tails-its-Twitter” approach. And while it is good to see the CEO engaging in discourse on third-party forums, even going so far as to provide information on upcoming changes to things like the Viewer, one has to ask why the hell such conversations aren’t being encouraged in LL’s own blogs and forums.

It’s fair to say that during the first four months of the year, communications from the Lab were close to non-existent to any meaningful degree. Tateru Nino summed it up beautifully by referring to it as “The Silence of the Lab”. It’s something I’ve failed to understand, particularly as Kim Salzer came to Linden Lab from Blizzard, a company known for its willingness to engage with (and indeed listen to) its user community through its blogs and fora.

Come May, Rod Humble was indicating (via Twitter) that we could expect a resumption in communications from the Lab. If only that were so. Other than totally vapid “monthly updates”, we’ve seen very little improvement in the use of the channels at LL’s disposal, much less a more disciplined use of their own Community Communications Platform.

The other side of the coin is in the matter of the Lab’s outward communications to the world at large – and here things are, in many respects, very much worse. Simply put, and as Tateru comments on her blog, Linden Lab appears to have relinquished all control over the presentation of the Second Life brand to third-parties – many of whom do not have the brand’s best interests at heart.

The most recent example of this is Dan and Chip Heath – and forgive me fr bringing this up again; it’s been done to death a dozen times over, I know, but it does serve as a timely example.

In their latest book, they offer up Second Life as an example of a “failed” venture. To them, Second Life is dead and done. That their viewpoint is largely incorrect isn’t actually the point in the context of this piece. Rather the issues of note here are that:

  1. They picked on Second Life as an example of a failed enterprise (note past tense);
  2. Of all the chapters in the book, it was the one on Second Life that media outlets chose to go to press about.

However you look at it and regardless of the inaccuracy of the Heath brother’s conclusions, both these points demonstrate that the prevalent view among pundits and the media alike is that Second Life has failed and should thus be referred to in the past tense. Not, I would venture to suggest, the kind of message most companies would want to have in the mainstream media regarding their sole product.

Nor do LL particularly help themselves. The last time LL issued a press release was December 2010. That’s an awfully long time ago; which is odd, because there is much going on in SL that is worth celebrating and promotion in the media. Indeed, LL actually do keep track of things that reflect positively on Second Life through the In The News page (although admittedly, you’d never know they actually had an In The News page given the distinct lack of obvious links to it – great going on the communications front again, guys).

Again, one doesn’t expect LL to create a song-and-dance about absolutely everything that happens in SL and which gets a positive light shone upon it; but by the same token, it doesn’t mean all should be left with only passing mention.

Take the SL Relay For Life. This is a stunning annual event which this year smashed all records: $375,000 USD raised – $100,000 more than the hoped-for target – which took the total raised by the event in-world over the years to over the $1 million USD mark. However you look at it, this is a remarkable achievement, one deserving of being placed squarely in the public eye,  as indeed ACS did, yet Linden Lab gave it little more than passing mention.

Given the lack of this kind of pro-active management – which any marketing executive should be able to handle – is it any real wonder that the media at large refer to Second Life in the past tense?

Communications are the lifeblood of an organisation. Yes, they can  be difficult to manage where there is the added complication of a large and active user base – but this doesn’t mean they should be pushed to one side and looked upon as anathema (which is only how one can view LL’s own reluctance to openly engage with its user community). Similarly, outward engagement with the press is a vital part of any organisation’s activities: you either control the message and respond to misleading and potentially damaging articles  – or you allow others to define the message for you, and allow their perceptions control how others see you.

Tateru hopes that we’ve now hit rock bottom, and the only direction left is up. Frankly, and despite my enthusiasm for the platform and the overall technical direction LL are taking, I’m not so sure. In terms of communications over the last four years (2008-2011), LL have behaved like an existential elevator, demonstrating that whenever down isn’t an option, there’s always sideways until such time as entropy resumes its natural course.

Text Clients 5: Mobile Grid Client

Over the weekend, and being an impulsive fool, I decided to upgrade my mobile phone. Well, actually I blame my service provider for playing games with my tariff & offering me a more competitive deal if I upgraded… but I digress.

So, here I am with a Samsung Galaxy S2 I9100. It’s a very nice phone – although after 5 years with my purse-and-pocket friendly Sony Ericsson W810i Walkman, it’s taking a little getting used to size-wise. It does have lots of whizzy on it I’ll probably never use (just give me my music when I’m on the go, and I’m happy) but it has allowed me to take a look at another SL text client that is out there – the Mobile Grid Client for Android.

The app itself is free via the Android Market, although you can only use it for 14 days prior to being asked to pay a minimum of L$250 a month to continue to access SL. Not a steep price by any means, but a little unusual in the client stakes. Once installed the app appears in your application listing / grid, and tapping it takes you directly to the local chat screen (if using it for the first time) or the last screen you were using when you logged out, with the message Not logged in.

Login screen – 14-day trial expired (click to enlarge)

Tapping your ‘phone’s menu button should display the application’s About and Login buttons, together with the phone’s Settings option. Tapping Login unsurprisingly pops-up the login overlay.

You’ll need to enter your avatar name entirely in lower case, although the password field is case sensitive. Note that if your initial 14-day trial period has expired, you will see the payment option (left). The minimum amount for continued use of the application is L$250 for a month’s usage, although you can optionally pay more.

The charge itself is non-recurring, so there is no danger of your SL account being repeatedly billed whether or not you continue to use the app; the payment prompt will simply appear once more when your month’s use is up, and you can then make a further payment and continue using the application or simply stop using the app – the choice is yours.

Also on the login screen there is a CHANGE option that you can use to access any OpenSim grid. Tapping this will display a series of options (below left) which in turn allow you to set your login location, and choose from a list of pre-defined grids (below centre).

MGC login options

There is also an option to set-up a custom grid URI, but slightly confusingingly, this is initially greyed-out and unavailable – you have to go into the pre-defined list first, scroll to the end, click on an option to enable custom URIs there, which takes you back to the initial screen with the Custom option now enabled. Tapping on it then takes you to a screen where you can enter the required URI (above right).

The logging-in process takes a long as you’d expect a Viewer to take – no surprises, given the same steps are being taken – and chat will display things like the MotD as things progress, followed by a confirmation that you are logged-in.

The layout of the app is crisp and clear and highly intuitive: at the top are four primary buttons: Chat, IMs, People and Map – all of which are self-explanatory, although some detail on each is provided below. There is also a status icon that appears in the ‘phones icon bar, which indicates the following:

Client Status icons
  • White: the client is connected to the server and you’re logged in
  • Yellow: the client is connecting or reconnecting to the server
  • Red: the connection to the server was lost and couldn’t be reestablished or you were disconnected by the server or Linden Lab
  • Green: you received a new IM, group IM (group chat message) friendship offer or teleport offer.

As well as displaying your chat history (below left), Chat has a MORE button which displays a menu to further chat-related options (below centre), while pressing and holding the SAY button brings-up a menu alloing you to switch between Say, Shout and Whisper for your own chat.

Chat (left and centre) and IM list (right)

The IMs button displays a list of you current IM conversations (above right), allowing you to quickly swap back and forth between them. When you are in an IM with somone, a MORE button is displayed, providing you with all the actions you’ve expect to be able to use: view their profile, offer a teleport, invite into a Group, pay them, give inventory, and so on.

People combines the functions of Nearby People, Friends and Groups, again allowing you to carry out a range of actions – IMing an individual, viewing their profile, offering friendship / teleport, teleporting to them, paying them, giving inventory, etc – simply tap on a name to display a menu of options.

The profile view is interesting – selecting it take you to an initial screen that asks you to select Personals – personal information; Groups – group information or Picks. Once in any of the three options, you can swap between them easily by scrolling down / up and tapping the relevant heading.

The personal view combines SL information with any available RL info a person has added to their profile. Making full use of Android, any links are enabled and tapping them will launch your phone’s browser and seemlessly display the relevant webpage. Tapping the phone’s RETURN key drops you neatly back into the profile view. The Picks option doesn’t actually display any images associated with a person’s Picks, but when tapped, will offer to teleport you to that location.

People button options and viewing a profile

Map brings up the map of your current location, with an option to call up additional information (region name, parcel details, your exact position, music stream URL, etc., with items such as the region SLurl being clickable).

Map – easy to see (click to enlarge)

The map itself displays cleanly and is easy to read – the screen capture doesn’t really do it justice compared to seeing it on the screen of an S2.

Tapping your ‘phone’s menu button will bring up additional buttons at the bottom of the display for:

  • People search
  • Your profile
  • Creating a Landmark
  • Inventory
  • Logging out

A MORE button calls up an additional menu which has opens to teleport yourself home and to open SLurl.com.

Inventory functions are very well represented, allowing you to carry out a wide range of tasks associated with your inventory – browse, search, create folders, move and / or rename items, read notecards. trash items, and so on.

Inventory is accessed by tapping you phone’s menu button and then selecting the Inventory option from the pop-up menu. Your inventory is displayed much as it appears in a Viewer (below left), and tapping on a folder will open it (together with a BACK open at the top), tapping on an item in a folder will bring up a context-sensitive menu (below centre). Sadly, when it comes to clothing and attachments there are no WEAR or ADD otpions, but you can view properties, give items, deleted them, move them, etc., and in the case of notecards, biew the contents.

Inventory options

You can also create new folders and sub-folders in your inventory (above right) using your ‘phone’s menu button and tapping Create Folder from the displayed options. You can also access an inventory sort option via your ‘phone’s menu button as well.

Opinion

This is a fast, effective text client that offers an excellent means of rapid-fire access to SL should you need it when out roaming. Data fees being what they are, unless you have an inordinate download allowance on your tariff, however, this is not the application for casual use over 3G or similar; SL eats bandwidth as we all know – even when running a text-based application.

However, where wifi is concerned, the Android’s networking makes accessing SL when you can’t get to your computer a very clean and easy task – I actually grabbed some of the screen captures used in this article while in the kitchen and watching over the cat / preparing dinner via my household wifi…

The UI is highly intuitive, uncluttered and a joy to use; it’s quite possibly the most intuitive text client I’ve used to date, requiring little in the way of documentation assistance to help guide the novice user (would that some other Android applications were this easy to get to grips with!). All-in-all a great little package, well thought-out and nicely delivered.

Related Links