Tuesday, August 11, 2009

Bing Webmaster Central - Broken?

Having very strange issues with Bing Webmaster Central today.

Some of my sites are reported as failing authentication even though they were previously via the XML file and I have checked that the authentication files are still in place and crawlable.

On another site http://www.lostandfoundpets.ie, I can not view any information on the status screeen - just seeing N/A for date last crawled, number of pages indexed etc, even though I could previously view values for these bits of information. No errors displayed under the errors section and no indication that the site has been blocked.

Furthermore it seems that the site has dropped from the SERPs though it had quite a prominent position for my main keywords just a couple of days ago.

Anyone else seeing behaviour like this. Left a message on the community forum but no response so far..

Friday, June 5, 2009

Google Toolbar Hijacking Style and Tooltip

Quick update on this. The tooltip stealing behaviour I have observed seems to happen in Firefox 3 on Vista, in IE 7 on XP and IE 8 on Vista, the tooltips are left intact. Those who have checked other platforms may add their findings to the comments.

Well I have been looking into this issue over the last couple of days and I am surprised that more web developers aren't voicing their displeasure about the way that Google Toolbar hijacks the background-color style of form elements it thinks it can autofill and how it overwrites the title attribute on these fields as well.

Now, let me begin by saying that I think browser enhancements like this can be a great addition to any browser but there should be an option on the development side to disable them, particularly when they can have such an impact on the usability of forms. The main issues I have with the toolbar are:

1. Autofill is turned on by default. Google's position is that the user should decide whether they want this behaviour or not but if that is the case then the user is quite capable of turning it on themselves. Many times clients, who I assume are pretty representitive of the average web user have asked me why it was that some fields in their forms are yellow. Therefore it seems that this visual prompt is of little use to users in any case unless they know about the autofill functionality in Google Toolbar.
2. Autofill may break usability. Frequently, web developers would use CSS styled visual queues on form fields to indicate validation status and would also wish to provide extra information about the data expected in the field to the user via the tooltip. Both these tasks become very difficult to accomplish when the Google Toolbar hijacks these properties. If users don't recognise the meaning of the yellow background, they may think the field has some other significance that it does not. Also, what happens if a developer wants to style their form with a background color that is the same as the highlighted field colour? Should a plugin really have the power do dictate the design choices made - I don't believe so.
3. There is no 'Off' switch. Some browser plugins I have encountered allow the developer to disable them. For instance, the Skype plugin which attempts to identify phone numbers on a web page and render them as a clickable button which launches a call to that number via Skype can be disabled with a META tag.
4. There are issues of aesthetics here - many clients have remarked to me that the highlighted fields look ugly in the overall context of the syle of the form.

On a site I am currently engaged on, the colour change isn't really an issue but the tooltip hijacking is. I had hoped to provide extra information for users in the tooltip describing in more detail than I could in a label, the data they should enter in each field. Now it seems that I can attempt to 'fool' the toolbar by giving my fields non-standard names. However, what I seem to be finding is that if I have label's who's for attribute points to the field, the toolbar will use the content of the label as a hint to the kind of data expected in the field.

For example, I have the following code:

<label for="txt_ccn">Mobile</label><input id="txt_ccn" name="txt_ccn">

Now the name txt_ccn seems fairly ambiguous to me, yet the field is flagged by the toolbar as a field it can autofill. I can only conclude in this case that either the toolbar is psychic or that it is using the content of the label element associated with the field to figure out the data expected in the field.

The other problem I have with a naming based solution is that it really should be in the developer's domain to choose whatever field names suit their project. Many developers for instnace, like to map field names to object members in their server-side code.

With all these considerations in mind I began to look for workarounds to these issues. I found precious little on the topic out there (maybe most developers just don't care) but I did find a great article here though it is somewhat dated.

Using some of the ideas from that article, and given that I am using JQuery already in this project I decided I would write a small JQuery Plugin to address these issues. For IE browsers I was able to use the onpropertychange event to prevent the toolbar from modifying the background color of the fields. Similarly for Mozilla based browsers, I was able to use the onDomAttrModified event to catch the toolbar and remove the background color change.

Sadly though, this approach did not work for the title attributes on the fields in Firefox 3 with the toolbar installed. The toolbar replaced those regardless so I guess it makes these changes outside the scope of the document DOM - very annoying!

In any case, here is my JQuery plugin code which some may find useful to at least address the aesthetic and some of the usability issues. Basically, it itterates through the input elements in a document, attaching an event listener fuction which simply prevents the Google Toolbar applying the background color style on all input elements by resetting the style attribute on the field to an empty string each time it detects an attempt to change the attributes of the field.

$.fn.googleToolbarStyleRemover = function(options){
function setListeners(){
if (typeof (this.onpropertychange) == "object"){
else if ($.browser.mozilla){
return false;
return setListeners();

To use the plugin you would simply paste the above code into a javascript file named jquery.googleToolbarStyleRemover-1.0.js and link that to your documents using:

<script type="text/javascript" src="path_to_file/jquery.googleToolbarStyleRemover-1.0.js"></script>
<script type="text/javascript">

Obviously this code would need to appear after you had called the main JQuery file.

If anyone out there has found a way to address the tooltip issue or those who have trie experimented with the toolbar's behaviour in a wider range of browsers and operating systems, I would love to hear from them.

3 Ireland Finally Gets Webtexts

I've had a pretty rocky relationship with telco 3 Ireland over the past couple of years. Their customer service is appalling so even getting the simplest things done can be a nightmare but their data packages are second to none in terms of value and their 3 like home 'promotion' is unrivaled in the current Irish market.

Yesterday, I discovered that they are now offering 333 free webtexts per month to their 3 pay, pay monthly and best of both customers. The service seems limited to national numbers only, probably reflecting 3's lack of roaming agreements with foreign telcos but still, particularly for those of us who spend a significant chunk of our day in front of a PC, this is great news.

You can find full details here - http://www.three.ie/on3/webtext.htm.

Tuesday, May 26, 2009

PHP & IIS - INI File Location

OK, so normally I wouldn't be seen dead running PHP on Windows but I'm currently doing some odds and ends for MiCandidate and one of the things they needed was to run some PHP code in their otherwise ASP.NET based site.

One of the ASP.NET developers attempted to install the current release of PHP (5.2.9-2), first from the MSI and then using the ZIP package but in the end failed to get their customised php.ini file to load.

After a less than delightful morning of reading and testing, I have discovered the following. The phpinfo() function will apparantly always return a value of 'c:\windows' for the configuration file path setting.

The important thing to note here though is where the ini file is being loaded from. By default it will load it from the PHP installation directory. If you want to to load from somewhere else, like say, the windows directory, you must first edit the registry and add/change the following key:


setting its value to 'c:\windows\'

However, this is not enough to force PHP to load this file. You must also ensure that you have removed any copy of php.ini from the installation directory too before the registry setting is respected.

It is also worthwhile noting that you need to ensure that your PHPRC environmental variable is set to your PHP installation folder (usually c:\php).

Finally, it is a good idea to set up a separate application pool in IIS to run PHP so you can just recyle that to see the changes made in php.ini. This obviously minimises distrutpion for other developers using the server.

This experience did nothing to enamor the ASP.NET developer to PHP and I wonder why the MSI installer can not take care of these issues gracefully.

Friday, May 22, 2009

Tip for Irish Companies & Professionals on Twitter - Brand it!

Anyone who has taken the time to look at Twitter can not fail to be struck by its potential for humanising business and the marketing opportunities inherent therein - (FreelanceWebDev).

One thing that has surprised me though, is how little work organisations and professionals in Ireland have put into their branding there. Even those in the business of offering branding as part of their service and those who's main interface with their market IS the web, seem to fall short in this regard. When you look at the efforts kids put into the look and feel of their Bebo profiles you start to realise the increasing importance of this aspect of your presentation.

Successful look and feel branding on Twitter means you need to respect a few constraints in the layout of the pages and you should note how those change for various screen resolutions but even designing for the most common resolution currently of 1024 x 800 will have a big impact on the perception of your Twitter page.

Monday, May 18, 2009

JQuery Plugin nyroModal and Base HREF

I've been using JQuery on my new pet project (excuse the pun) and having tried a few of the modal content plugins available, I have settled on NyroModal, a very compact, flexible and elegant solution.

Yesterday though, I ran into a small issue with the plugin. I am using a base href tag on the site so that I can use URL rewriting but still use relative links in my content. When trying to load a hidden div as the content of a modal, I discovered that because the base href URL is being prepended to the URL NyroModal attempts to load, NyroModal assumes that I am requesting another page rather than an element in the page DOM. The result is a modal displaying a 'content not found' error.

My first thought on discovering this was to remove the base href element from the page in the click event of the link spawning the modal before calling the modal but that didn't work as JQuery removes the element from the DOM but still retains it internally.

I also had no luck removing the value of the href attribute before calling the modal but checking in the NyroModal script, the original URL in the base href was still being used.

Given at that point that I was already looking into the NyroModal script to see what URL was being passed I decided to dig a little deeper and found a rather simple solution.

The script has a line

if(req == currLoc)

This line basically checks if the requested URL (stripped of the specific selector) matches the href property of the current location object to see if the URL is the same as the current page and therefore that it should be loading a DOM element from the current page. However, because the pressence of the base href attribute, it's value gets prepended to the requested URL and this comparison becomes invalid. Amending this check to also compare against the value of the base href attribute as follows addresses this issue.

if(req == currLoc || req == $('base').attr('href'))

I have posted about this on the issue thread for the NyroModal project on Google code.

Saturday, May 16, 2009

.htaccess and PHP4 Vs. PHP5 on Blacknight Shared Hosting

Ah, another weekend and another foray into troubleshooting issues with my recently acquired Blacknight hosting. For the past few weeks I had been using PHP4 but decided today that I should really move to PHP5 for my new personal project.

After some head scratching, it seems that I can not override the display_errors setting in the pho.ini file for PHP5 which by default is set to Off via the .htaccess file though I can do this for PHP4. However, I can override it by using ini_set() within my scripts.

This information might come in handy for some other poor soul wondering why they were getting blank screens. I will have to investigate at some point what options I have for overriding other settings as it is nice to keep all these things centralised.

Friday, May 15, 2009

Irish Email Marketing - What Not to Do

I have just been spammed at my personal email address by the popular Irish insurance website, 123.ie. I really have to wonder what goes through the minds of those involved in the production of these mailouts risking the integrity of their entire list by including addresses they shouldn't.

To the best of my knowledge, I have never given any email address to this site. The email I received was image based so did not render in my email client properly - I had to enable the images in order to discover how to unsubscribe to mailings I never actually knowingly subscribed to. This only increased my sense of privacy violation as it is likely that these image impressions are being tracked.

In any case I followed the remove instructions trusting that they will be honoured - if not, I will be sitting on the data protection regulator to address this meaningfully. I also marked the email as spam in my Gmail which hopefully will have some negative impact on future mailouts by 123.ie.

Irish email spam is relatively rare and I for one, intend to keep it that way :)

Tuesday, May 12, 2009

3 Roam Like Home - R.I.P.?

Reading on Boards.ie that the telco 3 is to axe its 3 like home service which basically meant that a 3 customer was charged abroad exactly as they would be at home for voice and data as long as they roamed on another 3 network.

One of the reasons being proffered for this move is the new reduced EU roaming rates which will, allegedly, deprive 3 of the revenue to support this service. In essence it makes a mockery of the EU roaming charges legislation by suggesting that it has introduced new charges for 3 customers where none previously existed.

I would imagine that the spirit of that legislation was that the telcos should desist from their previous unjustifiable profit taking on customers who travel and it seems from this consumers point of view, a pretty cynical move to just reclassify those charges to maintain profit margins rather than absorbing the reduction in revenue.

While officially 3 Ireland have denied that any changes are coming in this area, it is hard to believe they won't follow the lead of their British and Italian counterparts. To stay in line with their sister networks abroad who are ceasing the service on June 30th and honour their legal obligation to give 30 days notice, they will have to come clean by the end of the month.

I would call COMREG and ask what they think of this if I thought they cared or had the teeth to do anything about it but given that it took the EU, rather than our own regulator to take on the telcos in this regard in the first place, I wouldn't be hopeful of any meaningful response.

TinyMCE & Tables The Easy Way

I am a big fan of the open source CMS ModX which uses the rich text editor TinyMCE by default. While, like most developers, I have moved away for table based layouts for my sites, there are times when the CMS users need to enter tabulated data and doing this is somewhat less than user friendly.

Working on my latest ModX based site for a mutltilingual recruitment agency this morning I've come across this issue as I enter tabulated international salary data. The tables are not complex, we have a header row containing column headings and a number of rows containing data. However, in the table code automatically produced by TinyMCE, it does not distinguish between header rows using table heading tags but rather just produces regular rows.

I have discovered that the easiest way to add and format these tables for non-technical users to TinyMCE is to lay them out in MS Excel and then copy and paste the cells comprising the table into TinyMCE. A user can then add the general table class by right clicking the table in the editor and entering the table class and by placing the cursor in a cell in the heading row and right clicking, choose 'Row Properties' and apply a heading row class.

The specific CSS classes I am using for this project are below. This gives a table with a blue heading with white text and individual cells are bordered in the same blue. Of course, these styles can easily be customised for your own site look & feel.

/* I give the data tables their own class to distinguish them for other content that may be tabulated in the content or layout.*/
border:1px solid #3525CD;
table.datatable tr.header
/* The header row class for my table */

Friday, May 8, 2009

Irish Broadcasting Bill 2009

There is an interesting article and discussion going on at Slashdot on the current Broadcasting Bill wending its way through the system here. Essentially it would seem that under the new legislation, owning an internet connected multimedia PC would be enough to trigger the requirement to pay a TV license.

I can see the need for such legislation amending the licensing law to cater for all the new modes of accessing the state broadcaster's content which don't involve a TV (Slingbox being my personal favourite) but only if we persist with this arcane licensing system, conceived in a very different era.

It is difficult to see any justification any more for actually having this discrete licensing system with all the overhead of administration and enforcement, not to mention all the debates about value for money and where it leaves the commercial broadcasters in terms of competition.

All in all it seems a missed opportunity to reexamine this whole area and apply some fresh thinking.

GMail Out Sick

So this morning I logged into my iGoogle page only to discover that, as written about it several blogs the past few days that the GMail gadget no longer works as I have the 'use https' setting switched on in my GMail.

So as directed I then tried to visit GMail directly at www.gmail.com (using both a http and https connection) and got:

It seems that POP3 access is down at the moment too.

Doesn't seem that long since GMail's last outage. Given that GMail is such a fundamental part of iGoogle, it strikes me as odd that the services seem so fractured and that this issue of https should ever see the light of day and given that it is all Google real estate at the end of the day, it would be a nice idea if the status of the resolution to these outages appeared on my iGoogle page.

No mention yet of the current outage on the official GMail blog.

Tuesday, May 5, 2009

No Shared PEAR Library on Blacknight Minimus :(

I've just got a mail from the Technical Director at Blacknight pointing me to a post regarding PEAR availability on their shared hosting packages. However, it seems I am still having issues with the paths I was given for PEAR originally so am awaiting clarification.
End of Update

Update 2
Just got a mail from frontline tech support pointing me at the original paths. Not overly helpful given I have just pointed out, they don't seem to work.
End of Update

So this long weekend I was busy getting up and running on Blacknight where I've taken out a Minimus hosting package to evaluate their service using my current personal project Lost & Found Pets Ireland after continued very disappointing service from my current main shared hosting provider Namesco (formally Register365).

All was going nicely as I configured my site using their very clear and intuitive control panel, I uploaded my site, set up and imported my database, set folder permissions and configured the email services with no real problem. However, I quickly realised that not everything in the garden was rosy. I use the excellent Pear library to abstract my database interactions and after quite a bit of experimentation and several emails to support I learned that while for PHP4, there is an accessible shared version of Pear, it does not include MDB2 and there is no accessible shared installation of Pear for PHP5.

Getting the paths to Pear for both versions of PHP took a couple of emails and at that point it would have been nice if they could have told me that the PHP5 version wasn't accessible due to open-basedirectory restrictions never mind that the PHP4 version didn't have MDB2 installed. After quite a few mails I established that they did not see prospects for making Pear more available which is pity and means my search for a replacement to Namesco for the majority of my shared hosting still continues. With increasingly complex demands being made on even more basic sites it is a great pity that Blacknight have taken this position given the quality of PEAR and how much it speeds up development time. They had no difficulty with me installing my own copy though for me, that's just one more headache as I have to monitor versions and particularly security issues now - tasks I feel should really be in Blacknight's domain.

I spent the best part of 2 hours on Sunday massaging the web based installer to get a working copy of PEAR with MDb2 and the MySQL driver installed. While the Pear installer ran without issue and installed MDB2 in the root of my webspace, the big problem came when I tried to install the MySQL driver as all the folders Pear created during installation were only read only to me and the web installer didn't have the correct version of the MySQL driver to match the version of MDB2 it installs so a manual install was required.

After a couple of tries I eventually figured out that I had to create all folders created by the Pear installer myself first to guarantee ownership and then install PEAR with the MDB2 option enabled and then manually install the corresponding MySQL driver. A time expenditure I could really have done without.

This doesn't leave me much hope of installing other really useful PEAR modules like Mail or XML-RPC and my search for a small developer friendly host continues...

Tuesday, April 21, 2009

Apache Mod_Rewrite & Shortcodes

I'm a big fan of Apache's Mod_Rewrite module. One of its benefits is that it allows me to take quite complex, user and search engine unfriendly URL's and have them mapped to ones which are easier to remember and more search engine friendly.

On a personal project I'm working on currently (I'll write more about it later), I wanted to implement a shortcode system similar to the one used for properties on www.daft.ie where a user simply has to type in a forward slash and a short code after the domain name to view a property, the code being specific to that property. Of course, short codes are also useful for posting URL's to Twitter which will also be a consideration for this particular project.

I decided I would construct my shortcodes from the characters a-k, m, n and p to z and the digits 2 to 9. Characters and digits that are easy to confuse such as 1 and l and 0 and o I discarded. This gives me a pool of 31 characters to construct my 6 character shortcodes from.

Now to map my shortcode to the full URL that displays a particular record from the database I added the following line to my .htaccess file.

RewriteEngine on
RewriteRule ^([^./]+)/?$ /$1.php [L]
RewriteRule ^([a-kmnp-z2-9]{6}).php$ /destination.php?urlparameter=$1 [L]

The first line turns the mod_rewrite module on, the second allows URL's to be reached without specifying the script extension and the third line takes my 6 character shortcode and maps it to the URL which displays the particular record the shortcode represents. This worked fine until I realised that it was also going to catch other URL's on my site with 6 letters after the domain name such as http://www.mydomain.com/search.

I finally figured out a workaround using the following rewrite condition directly before my third rewrite rule above:

RewriteCond %{REQUEST_URI} !^/search.php

Now while this works, it could be a bit of a maintanance issue as I will have to add a rewrite condition for every script I add to my root directory that has a name of 6 letters. I thought about making the shortcodes uppercase to avoid confusion with other scripts but this seems to take from the user-friendliness of the system.

Any regular expression or mod_rewrite gurus out there see a way to write my original third line to distinguish shortcodes from valid script names?

Wednesday, April 15, 2009

Register365 - First Outage of 2009

Well, once again Register365 (now Namesco) were experiencing difficulties again this morning, this time with one of the machines providing MySQL services. This outage basically brought down any site using either sql4.hosting365.ie or sql6.hosting365.ie including 4 of mine.

This was particularly annoying as, as back as far as last September while I was working on the Industry Research & Development Group site, I had alerted them to issues with the connectivity of sql6.hosting365.ie (at that point I was receiving many 'server has gone away' messages and some more involved queries were not executing) and only last Thursday reported to them that their instance of PHPMyAdmin was running like a dog.

While the sites were down, although they described the issue on the Status site and gave an assurance that they were working to remedy the problem, there was, as usual, no indication of a resolution time much less the cause why one of their Linux boxes had fallen over.

Top of my list for procrastonated jobs to get done if I start feeling the recession slowdown and get some breathing room is to move all my sites from Register365..

Wednesday, April 1, 2009

The Cost of Confusing Print & Web Design

I've been trying hard today to explain to a client in non-techy terms why it is less than ideal to have someone who mainly does print design work on the look & feel for their website update.

Now don't get me wrong here, I think the designer does good work in the print medium and actually I quite like their aesthetic but, when asked by my client how we might go about cutting costs for the site update, I mentioned that in our previous dealings, their graphic designer
1. Was not providing me with PSD files with each graphic element occupying its own well labeled layer for easy slicing and dicing so I was forced to spend time basically digging out graphical elements I needed to implement the design in XHTML.
2. Was causing extra (and otherwise unnecessary) work for me because they had not taken either standard screen size or the size of interface elements such as form controls into account when producing previous designs.
3. Had obviously no eye for adding elements of design that could be rendered via CSS rather than by using graphics thus making the design much less flexible and reusable not to mention a heavier download.
4, Had produced designs in the past with features that were awkward and time consuming to implement in XHTML
and that all these factors were contributing to cost - though, to be fair, probably not as much as the constant revisions of the copy the client made themselves during the last site build.

There are also indirect cost implications in deploying a site that carries usability issues

These are difficult points to communicate to those outside the web design and development fields and I remain unconvinced that I got them across.

Setting Up a Linux NAS in a Vista Workgroup - Things Worth Remembering

Why is a freelance web developer setting up a NAS in the course of his work you might ask? Well, basically because I am freelance and my SME clients frequently mistake me for their goto I.T. tech support, sys admin, and spiritual guide when I build a site for them.

Anyway, I have just completed the setup of a QNAP TS-209 Pro II for a client which is a great piece of kit, featuring a file server with user authentication accessible via the local network and the Web, a print server, media server, web server, frp server, backup location, MySQL server etc and which also happens to run Python so is pretty much potentially infinitely expandable in functionality.

The QNAP setup itself was a snap but remembering the following points when integrating it into a Vista based workgroup will definitely save some time and headscratching.

1. Set the workgroup name in the network settings for the NAS.

2. Set up your users on the NAS with exactly the same credentials as they use to login to their Vista machines. Vista has a nasty habit of not remembering credentials otherwise even when you click the 'remember password' checkbox when you first log on.

3. If you need to clear Vista's cache of network credentials at any time use the command:

rundll32.exe keymgr.dll, KRShowKeyMgr

If you use the offline files facility with Vista and login to the mapped drive fails, Vista won't always tell you so you may find that the Vista user doesn't see updates to files on the shared server with no obvious reason as the login failure isn't reported and no opportunity is offered to update the credentials. When you run the above command you are presented with a list of cached credentials for your various network accesable servers and you can remove the ones you want to reset.

3. Use the IP of your NAS rather than the server's name when you map drives from it to your Vista machines. Netowrk discovery in Vista is a nice feature but it can be sloooooowwwww.

4. If you're using your NAS as a print server make sure that the printer drivers are up to date on all client machines.

5. Finally, specifically for the QNAP models, the support forums are an invaluable resource with such diverse topics as getting the optimum disk spin-down control to running a VPN server (yes, I know, not the greatest idea in terms of network topography but some might want to do it) on your QNAP.

Happy networking!

Wednesday, March 18, 2009

Linux4One - Adding Custom Launchers

At first it wasn't obvious to me how to add icons for custom applications (ones that don't automatically install their own launchers) to the excellent Linux4One launcher interface on my Acer Aspire One.

Basically, the launcher uses the underlying main application menu in Ubuntu to populate itself so all you have to do is add your custom launchers to the main menu to have them display in the launcher.

You can do this by clicking on 'Preferences' in the main application category menu on the left hand side of the Linux4One launcher and click the 'Main Menu' icon which will give you a window where you can easily add the required information to launch your custom application.

Pictured below is a screenshot of my updated Favourites pane with an added icon for Slingplayer which runs pretty well under Wine.

Custom Launcher Icon Linux4One

Howto: Install Slingplayer on Acer Aspire One Running Linux4One


slingplayer on linux4one
It struck me that it would be really great to be able to use my Slingbox from my Acer Aspire One when on the road. Slingplayer on Linux has been covered quite comprehensively in other places at this stage but I just wanted to let those interested know that it runs without any real issue on the Acer Aspire One 8GB running Linux4One under the Windows emulation software Wine.

Note: In the commands below you should replace [user] with your own username.

Here are the steps I took.

1. If you don't already have it, install Wine.
sudo yum install wine
2. Run winecfg to create your Wine environment
4. Close the Wine configuration window - we will return to customise it later.

5. Download Slingplayer from http://www.slingmedia.com and save it to your desktop. Thanks to Jeff (see the comments below) for pointing out that there are as yet unresolved issues with installing version 2.0 so for the time being I suggest doing what I did and choose 'Ireland' as your country on the Slingmedia download site - the default version for download here is still 1.5.

6. Download the dependencies Slingplayer requires to run under Wine from here and here and extract the files to a folder on your desktop.

7. Using your Nautilus file manager open the folder you created in the previous step and copy all the Dll files and paste them in your /home/user/.wine/drive_c/windows/system32 folder choosing to overwrite system files.

8. While still in the system32 folder choose the Terminal option from the File menu in your file manager and issue the following command to register the dll files you just added.
wine regsvr32.exe msxml3.dll qcap.dll quartz.dll
Leave your terminal window open. We will use it again in a minute.

9. Open the Wine configuration window again as you did in step 2 and click on the Libraries tab.and add the following overrides. gdiplus.dll, msxml3.dl quartz.dll. Select gdiplus.dll, click edit and set it to native only. Do the same for msxml3.dll. Click 'Apply' at the bottom of the winecfg window.

10. Click on the Audio tab at the top of the Wine Configuration winodow and select to use the ALSA driver only. Set the Hardware Acceleration option to Emulation, the Default Sample Rate to 22050 and the Default Bits per Sample to 8. Check the Driver Emulation checkbox. Click apply

11. Click the Graphics tab and check the following boxes only. Allow the window manager to decorate the window, Allow the windows manager to control the windows and Enable a virtual desktop. Enter 1024 and 760 in the Desktop size boxes. In the Vertex shader support options choose Hardware and check the box for Allow pixel shader (if supported by hardware).. Click OK to exit winecfg.

12. Now we can install Slingplayer. Go back to your terminal window and change your working directory to your desktop with
cd /home/[user]/Desktop
Then issue the following command to launch the installer.
wine slingplayerinstallerfile.exe
where slingplayerinstallerfile.exe is the name of the setup file you downloaded from http://www.slingmedia.com. Go through the installation wizard just as you would in Windows and when the installer asks you to install Wiindows Media 9 conponents, do so. Complete the installation. When the installation completes it will ask you to restart Windows. Choose to do so. Slingplayer should eventually launch but if it doesn't after a few minutes, close the installer window and launch Slingplayer using the following command from Terminal.
wine /home/[user]/.wine/drive_c/Program\ Files/Sling\ Media/SlingPlayer/SlingPlayer.exe
13. All going well Slingplayer should launch and locate your Slingbox which you can add but before viewing you need to click on the Player menu and then choose Preferences and ensure the 2 VMR9 checkboxes are checked.

14. You may now click the Play button and start streaming. I got a notice informing me that I needed to update the firmware in my Slingbox (which was a bit odd because it ran fine under my Windows installation of Slingplayer moments earlier) and finding that I could not continue streaming without doing so, I took a chance and did without issue.

15. One final optional step enables you to add a custom shortcut to launch Slingplayer to your main menu and consequently to the launcher.

Happy viewing.