Bookmarks Toolbar in FireFox Full-Screen Mode

This is a neat trick that I use in FireFox.  I like to use FireFox in full-screen mode and I use the bookmarks toolbar a lot.  The trouble begins when using full-screen mode, toggled with F11 for the uninitiated.

Using full-screen mode really improves the browsing experience.

It gets rid of UI clutter and lets you focus on the web site you’re browsing.  Unfortunately it also hides useful things, such as your bookmarks toolbar.

You still have access to your tab bar by placing your cursor at the top of the view port.

You can also use CTRL+B to toggle your sidebar into view which is useful.  Unfortunately, the bookmarks toolbar will disappear … BOO!  You’re left with this:

bookmarks toolbar missing

Missing bookmarks toolbar

To bring it back whilst also in full-screen mode, you need a spot of profile CSS jiggery pokery but its really straight forward.

How to Show your Bookmarks Toolbar

Firstly, locate your active profile:

  1. Open the Run dialog by:
    1. Pressing Windows Key+R;
    2. Clicking on Start then type “run“;
    3. Press the Windows Key to open the start menu and then type “runbookmarks-toolbar-run-dialog
  2. In the Open command textbox in the Run dialog, type the following following command:
    firefox.exe -P

This will open the Profile Manager view showing your active profile.  To view the location on disk, hover over the  active profile entry shown on the right-hand side of the dialog, a tool-tip will pop up showing the path.


  1. Navigate to this profile directory in explorer then look for a “chrome” directory containing a userChrome.css file.  An example location might look like this:
    \%APP DATA%\Roaming\Mozilla\Firefox\Profiles\<your profile directory>\chrome\userChrome.css
  2. If none of this exist, create what you need.
    1. Create a “chrome” directory if it doesn’t exist
    2. Create a new text file inside the new chrome directory (Right-click -> New -> Text Document)
    3. Name it “userChrome.css“.  Click on yes when asked about the file extension.
  3. Edit userChrome.css by selecting the file and hitting Enter on the keyboard or double-clicking on the file name.
  4. Paste in the following code:
    @namespace url(;
     #navigator-toolbox[inFullscreen] #PersonalToolbar{
     visibility: visible !important;
  5. Save the file

Now restart FireFox and test the full-screen mode (F11).  Going into full-screen mode should now allow access to your bookmarks toolbar.

bookmarks toolbar full-screen mode

Shows the bookmarks toolbar in full-screen mode

Useful Full-Screen Shortcuts

When if full screen mode, you can use these shortcuts:

  • Open new tab – Hold CTRL + T
  • Scroll a page – Press PgUp or PpDn
  • Open Search – Hold CTRL + K
  • Refresh Page – Press F5 or Hold ALT + R
  • Go to saved Home Page – Hold ALT + Home
  • Cycle through open tabs – Forwards – Hold CTRL + TAB – Backwards – Hold CTRL, SHIFT + TAB
  • Close current tab – Hold CTRL + W
  • Undo Close Tab – Hold CTRL, SHIFT + T
  • Navigate history – Hold ALT and then tap an Arrow Key
  • Find in page – Hold CTRL +F then press F3 to continue looking
  • Open developer tools – Press F12
  • Open mobile view port – Hold CTRL, SHIFT + M

You can find many more useful keyboard shortcuts in the FireFox documentation.



The Dangers of Self Build Web Site Platforms

This might at first appear like a form of scare mongering, or a thinly veiled sales pitch on my part but I can assure you it isn’t.  I have too much work to do already!

For a small business owner the attractions are many and varied.  Obviously cost is always a very large consideration.  Probably the at the top of your list of reasons for not engaging with an agency or web site company to do the work for you.  And this doesn’t even consider involving the cost of a designer and a developer (yes they are more often separate roles rather than one all powerful individual!).

The allure of being able to build your own web site is a strong one for a small business.  After all, how hard can it be?

There are now many platforms that offer a kind of DIY E-Commerce solution that sell themselves as a kind of panacea to all web site requirements.  Some are good and some are outright dreadful but all of them will allow you to make very big mistakes along the way.  If it was easy, we would all be experts.  The pitfalls are incalculable in number.  Even after 20 years in the business I’m still learning.  I don’t work on my car for the same kinds of reasons.  Sure I can use a spanner but that doesn’t make me a car mechanic with oodles of experience under my belt.

If you aren’t in the software engineering game by profession what makes you think, other than the aforementioned sales pitches, you can do it?  Even when you have it “working” do you really know it’s working?  Do you know it’s secure?  Most of the time I see people doing these self build web sites 9 times out of 10 it’s for their business and is also an E-Commerce system.  In which case you dealing with some very sensitive data belonging to your customers.

It’s often overlooked by non-professionals that a web site is somehow not software.  It is software.  It’s an application like any, such as the web browser you are viewing this with, it’s just hosted on someone elses computer somewhere “out there” on the internet.

The issues I often see in these sites include things like:

  • Very poor UX (if you don’t know what UX is there’s one reason you shouldn’t build a web site right there)
  • Confusing navigation
  • Insecurities
  • Poor SEO planning
  • Awful design and page layout
  • Untested features
  • Incompatible plugins
  • Poor performance
  • etc.

Granted, some of the platforms negate some of these issues since you are sometimes forced down particular routes by design.  However, all of the platforms I have used will still allow the uninitiated to make huge blunders.  Whilst you are “saving money” by not engaging with a professional you could be dooming your site to complete inactivity due to any of these issues.  How can you calculate that cost to your business?  The short answer to that is, you can’t.

The platforms I’ve used personally and would recommend are not many.  Shopify and Squarespace are probably the only two I would recommend.

You have to remember that any time a user comes to a web site with issues that’s the first experience of you and your business they get.  First impressions do last when it comes to technology and if you don’t fill them with confidence they are not going to convert into a sale.  The point here is that most visits to most sites turn into a bounce statistic, the come to your site, spend 10 seconds (if you’re lucky) on the home page and leave again.  Boom, lost business, sad face.

Don’t make these mistakes, do research and my advice is at least speak to a professional before doing anything or making a decision, either way.  You might learn something useful even from a chat.


Enable ASP.NET 4.5 On Windows 10 or Windows 8/8.1

By default IIS and ASP.NET aren’t configured as part of a Windows setup (for obvious reasons) so developers are used to having to register IIS manually before being able to run and develop ASP.NET web sites on their desktops.  Prior to Windows 8 it was a simple command like this:

aspnet_regiis -r

This no longer works and requires a different command. Depending on what you already have enabled this may work:

dism /online /enable-feature /featurename:IIS-ASPNET45

If you haven’t enabled anything related to IIS yet you can do that at the same time with:

dism /online /enable-feature /all /featurename:IIS-ASPNET45

However!  That might not appear to solve the problem even when it has!  A post from Microsoft makes a bug apparent:

After the installation of the Microsoft .NET Framework 4.6, users may experience the following dialog box displayed in Microsoft Visual Studio when either creating new Web Site or Windows Azure project or when opening existing projects.

Configuring Web http://localhost:64886/ for ASP.NET 4.5 failed. You must manually configure this site for ASP.NET 4.5 in order for the site to run correctly. ASP.NET 4.0 has not been registered on the Web server. You need to manually configure your Web server for ASP.NET 4.0 in order for your site to run correctly.

NOTE: Microsoft .NET Framework 4.6 may also be referred to as Microsoft .NET Framework 4.5.3

This issue may impact the following Microsoft Visual Studio versions: Visual Studio 2013, Visual Studio 2012, Visual Studio 2010 SP1


Select “OK” when the dialog is presented. This dialog box is benign and there will be no impact to the project once the dialog box is cleared. This dialog will continue to be displayed when Web Site Project or Windows Azure Projects are created or opened until the fix has been installed on the machine.


Microsoft has published a fix for all impacted versions of Microsoft Visual Studio.

Visual Studio 2013 –

Visual Studio 2012

  • An update to address this issue for Microsoft Visual Studio 2012 has been published: KB3002339
  • To install this update directly from the Microsoft Download Center, here

Visual Studio 2010 SP1

  • An update to address this issue for Microsoft Visual Studio 2010 SP1 has been published: KB3002340
  • This update is available from Windows Update
    • To install this update directly from the Microsoft Download Center, here

View IISEXpress Hosted Sites On Your Local Network

This is a useful little tidbit of knowledge to have.  Suppose you can browse to your new spanky site using IISExpress at http://localhost:54275/ … now you want to look at it on your phone?  Or your laptop? Or your … you get the picture …

Pre Visual Studio 2015

  1. Open up C:\Users\<yourname>\Documents\IISExpress\config\applicationhost.config
  2. Find your site definition and add in a new binding <binding protocol=”http” bindingInformation=”*:54275:<your-ip-address>” />
  3. Open Command Prompt (as admin) netsh http add urlacl url=http://<your-ip-address>:54275/ user=everyone
  4. Then execute netsh advfirewall firewall add rule name=”IISExpressWeb” dir=in protocol=tcp localport=54275 profile=private remoteip=localsubnet action=allow
  5. Then point your remote machines to http://<your-ip-address>:54275
  6. Voila!

That wasn’t so hard eh!

Visual Studio 2015

You need to complete steps 2 to 5 above, but Visual Studio 2015 by default doesn’t use the global configuration file for these IISExpress bindings.  In order to configure this you know have a couple of options.

The first option is to configure your project to use the global configuration files by added this to your *.csproj file:


Or you can add your addition bindings to the solution specific configuration file Visual Studio 2015 generates here:


Now running your solution under Visual Studio 2015 will behave as required.

Potential Errors

There are obviously too many potential errors to keep track of on a single blog post but I thought I’d detail a few fixes to issues I’ve personally experienced.

Access Denied

sometimes you may see this message when trying to launch your solution in Visual Studio.  To get around this close everything down and re-launch Visual Studio “as admin”.  This should fix the issue and then subsequent launches should work without running Visual Studio as an admin.

Failed to register URL "" for site "<name>" application "/"
Error Description: The Network location cannot be reached.

This was a particularly annoying issue and took quite some time to track down.  It seems that the Threshold 2 update to Windows 10 removed all my listening IP address entries!  You can check that by executing this command in a Command Window:

netsh http show iplisten

If your own IP address isn’t listed here you need to add it.  You can do that by using this command (use your own IP address obviously):

netsh http add iplisten

You can see more information about netsh here.


Upgrading MVC4 to MVC5 and WebAPI1 to WebAPI2 – MEF – DotNetOpenAuth

Originally Written 20 June 2014

So, if you have found this blog post as you are going through this process and have hit numerous brick walls I’m afraid I’ve got no answers.

I wasted 3 days on this process and by 3pm on the 3rd day I simply gave up and reverted my working copy back to MVC4.

it seems there are a number of breaking changes between MVC4 and MVC5 that just simply are not being talked about much and since I have a workload of 10 people at the moment I simply do not have spare capacity to sit down for days on end poking the framework to get it to work for me.

The security model in MVC5 is different meaning that DotNetOpenAuth is no longer working, which means Andrew Arrnott who WAS the lead (yes you read that right – WAS) had to issue a quick fix to DNOA so that it worked – DotNetOpenAuth MVC 5 extensions.

On top of all that faffing around with DNOA I found that I had yet more issues with the Microsoft.Bcl.Build stuff which is frankly a joke. Also the Attribute routing implementation that is now built in to WebAPI isn’t a patch on AttributeRouting. Crap.

Then for some reason which I could never get to the bottom of (hence the rolling back to MVC4) all my MEF code in my WebAPI solution simply stopped working. I have absolutely no idea why but all of a sudden my custom controller factory was simply bypassed by the whole pipeline meaning that anything marked as an import was left null. There is nothing talking about this online and I tried all mannor of code changes to try and figure out the problem and get it working but nothing fixed it. I have two open StackOverflow questions which I will keep an eye on:

So basically, upgrade at your peril, it may just eat through your time like a bastard, I gave up … for now.

UPDATE 30 June 2015

Amazingly this is almost a year to the date of the original post.  Again I have tried to migrate my MVC WebAPI and MVC Site over to the newer versions and again I have utterly failed and rolled it all back.  So many breaking changes and libraries that I’m dependent on that still just won’t play nicely.  I’ve wasted so much time and effort on getting this done that I have simply not got the time to carry on trying to push forwards with it all.

I have absolutely fallen out of love with DotNetOpenAuth.  It is a hugely over complicated library and I cannot wait to ditch it for something better.  It works for now and will have to do but I am not happy about how this library is put together.  It is hugely brittle and even the build process in the source code is horribly complex.

When will package authors realise that the more trickery you put into something the harder and harder it gets to support and for others to pick up and run with.  Not impressed.  Version 5 of this library has been in development since 2013 and is still only in an alpha state.  I’m going to move away from using this package at the first available opportunity I get.

I’ve also come to the conclusion that I’m not going to migrate to a newer version of MVC I’m going to build the MVC6 or maybe even MVC7 version from the ground up to make the most of the new features of the chosen replacement platform.  It seems the changes in 6 are profoundly deep, ASP.NET 5 doesn’t even support Web Forms for instance.  THAT is a huge development on its own.

Anyway, for anyone reading this and planning on doing the migration, good luck!


Microsoft to Retire IE – Project Spartan

This is actually quite a momentus occasion!  Hearing that Microsoft is going to retire the IE brand is something I’ve been waiting to hear for years.  From recent surveys it seems apparent that many people still aren’t really aware of what a brower is let alone know much about them in detail.

IE started out it’s life in conflict and it seems that conflict followed it throughout it’s entire career.  The very reason for it’s existance in the early days was as a reaction to the release of Netscape Navigator.  It was born in order to crush Navigator.  I think the problem stemmed from Netscape also claiming that eventually the browser would be the main deal on the desktop, very forward thinking at more or less true already.  The move to “The Cloud” is certainly moving a lot of things that way, the release of the ChromeBook type machines attests to this fact as well.

The problem has been that IE has never really payed much attesion to standards.  The box model of page layouts for instance.  It’s just never played nicely really making cross-browser issues a full time job for a web developer.  Another major problem with this browser is the number of proprietary “bits” that have appeard through the years.  The idea of a web site that only works in IE is simply laughable but that really was a goal for a while in my opinion.  A hugely stupid motive.

Going back to the idea of conflict I always found it amazing that Microsoft could on one hand argue in court that IE was crucial to the working of it’s operating system thus trying to fend off the anti-trust rulings.  Whilst at the same time IE6 was kicking around as the latest major version for 5 years.  IE6 was released in 2001 and IE7 arrived in 2006.  5 years in the tech world is several lifetimes, 5 years in the interwebs is hundreds of lifetimes.  How they could argue this point is incredible. The conflict coming here in that the idea to split up Microsoft was a very real one, all that risk to crush a competitor …

After they release IE7 they started to slowly try to bring it inline with standards whilst it also had a major problem – backwards compatibility.  Any app that has to sport a compatibility mode had failed in my opinion.  Either the current architecture is wrong or it is having to support an aging set of fuck ups in it’s past.  So not only was IE born in conflict, it nearly killed the company and also creates conflict for the developers that have to work with it daily.  With the next few versions being so different the cross-browser nightmares of the past became the IE-version-cross-browser nightmares.  It actually became harder to cater with all the various issues and rendering modes of all the different versions of IE.  Utterly broken.

In my opinion IE is something Microsoft should have buried a very long time ago.

Lets hope they don’t do it all over again with Project Spartan!


WordPress & IIS Permalinks

When hosting a WordPress site under IIS you can run into some troubles when not getting things set-up exactly right.  I thought I’d post up the configuration file I use for enabling this.  The exact variables for your situation may var depending on the structure of your permalinks.

<?xml version="1.0" encoding="UTF-8"?>
    <httpErrors errorMode="Detailed"/>
        <rule name="Main Rule" stopProcessing="true">
        <match url=".*"/>
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
        <action type="Rewrite" url="index.php/{R:0}"/></rule>
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
        <action type="Rewrite" url="index.php"/>

        <add value="index.php"/>


So we’ve just had the pleasure of building my first Shopify application for a client project.  Am I impressed?  Very.  Very, very impressed.

For e-commerce sites I have built in the past I’ve reached for WordPress and a range of e-commerce plug-ins I either recommend to clients based on their individual requirements.  Generally the sites I have built were bespoke sites for small organisations or individuals.  The solutions have always worked well and been successful.  Wordpress is a great solution and so well supported that is generally a no-brainer for me to recommend.

The latest commission from a client however gave me a little pause for thought as it was basically of a different scale altogether.  The client was a small one-man shop with limited internet experience and absolutely no previous experience of running any on-line systems yet there is a potential for the quantity of products to explode in quantity.  Obviously the performance of any web site is a combination of many factors from the code, the hosting infrastructure and the visitors internet connection to name just a few.  There are lots of ways of keeping WordPress performing well but there is a lot of custom configuration and infrastructure that is needed to turn a blogging engine into an e-commerce system and I didn’t want to overload the client with concerns.

Given this situation I decided to look over the various options for dedicated e-commerce platforms.  I looked over Velution, Big-Commerce and Shopify.  All are really very good platforms but we opted for Shopify as it worked out the cheapest and simplest for this particular project.  Buying into the Shopify system gives absolutely everything you need, right out of the box.  Even SSL is included as standard on the base plans which is really good.

Development of the custom theme was more or less complete within a day and setting up the rest of the back-end configuration was extremely simple.  We’re currently still working through this with the client but it is going really well and they are feeling really confident in their usage of the solution already.  So lenssniper has another happy customer.

If you’re looking for an on-line e-commerce system it’s well worth looking at Shopify and if you need assistance in getting your site designed and built, check out my lenssniper business and drop us a line.


Enabling CSS Hover Selector on Touch Enabled Devices

Most web developers and designer make use of this common CSS selector to help make pages easier to consume by hiding things in the UI like buttons until the context of the application makes sense to show them.  I use this a little to hide things like buttons until such time that it makes sense to show them based on what the user is viewing or doing.  This can help in many ways not least helping to keep the UI simple and uncluttered.

There are lots of solutions out there that whilst they work are in the most part overkill.  The following code snippet will enable the :hover selector on all child elements:

$('body').bind('touchstart', function () { });

So given this HTML:

    <div id="content">
        <div id="nav"></div>
        <div id="content-wrapper"></div>

You might want to limit the scope to target just the actual page content, so you would use:

$('#content-wrapper').bind('touchstart', function () { });

The trick to getting this to work nicely in all instances is by being mindfull of the scope of the main selector. You might want to make sure the scope of the selector excludes any navigation menus and as I saw some odd behaviour in the Dolphin browser on iOS 8. This has been tested on FireFox, Chrome, IE, Dolphin, Opera and Safari on iOS 8.


Safari Web Inspector for iOS Debugging

Whilst I’m building web pages I make a lot of use of the development tools that modern browsers include.  These features are amazing in that they let you inspect the page and make extensive changes to the layout, CSS and other bits of code live in the browser.  A kind of interactive debugging session of sorts.  However, doing this on a mobile device to get to the bottom of issues isn’t always straight forward.  I’ve not found a way to comfortably do this in Chrome or Firefox yet, but Apple have included a nice workflow to do this with iOS and Safari.

If you need to properly diagnose web site issues on an iOS device the process is actually really simple.

  1. Enable the web inspector within Safari on your iOS device (Settings -> Safari -> Web Inspector)
  2. Connect your iOS device via a USB cable to a Mac
  3. Open Safari on the Mac and activate the dev tools (Preferences -> Advanced -> Show develop menu in the menu bar)
  4. In Safari on the iOS device navigate to the web site you want to debug
  5. Open the developer menu and you will see the connected iOS device name as sub menu – choose the site from the list
  6. Start debugging in the inspector window

This works just as you would expect it to.  You can inspect the site just as you would during a normal debugging session within any of the big name browsers on a native platform.  Very cool feature imho.


Gmail & Thunderbird

So, Gmail access using a desktop client. Should be easy right? I ended up going round and round in circles trying to get access to my Gmail account using Thunderbird. I checked settings repeatedly, started from scratch a few times and no joy. Thunderbird has a rather annoying feature when you add accounts in that it tries to do a load of your thinking for you and so far has never worked for me, I always have to resort to doing things manually. Anyway … I’ve got it working.

Turns out that Google considers desktop clients like Microsoft Outlook and Mozillas Thunderbird as “less secure apps” and blocks these by default. Nowhere in the Gmail config instructions does it mention this on the page where it tells you how to access Gmail from a desktop client which isn’t very helpful.

OAuth 2.0

The basic problem is that Google want you to use their web based client and block anything accessing their services that doesn’t implement the OAuth 2.0 standard. Slightly hypocritical since the original author of the OAuth 1.0 standard departed the development of the OAuth 2.0 standard directly as a result of companies like Google wanting to introduce inconsistencies and … yup, you guessed it … less secure methodologies.  This is a perfect example of Embrace, Extend and Extinguish …

Whatever happened to you Google?  “Don’t be evil” used to be your mantra …


SSL Certificate, FindByThumbprint and the Occultist Codepage

Have you ever ran into a situation where for some reason you cannot load an SSL certificate from the store?

Have you checked the thumbprint, like … a thousand times already.  Why does it work over here, but the same code doesn’t work over here?

Place your cursor next to the first quote mark … press delete … if nothing appears to happen you’re officially in the codepage twilight zone …

Actually, it means you probably copied the certificates thumbprint from the MMC snap in, pasted it into your configuration file and saved it … WRONG, FAIL … even if you deleted all the spaces you still left an unrepresentable character at the start of the string and this has made it’s way through to the server you’re testing.

Always do this:

  1. Copy the thumbprint
  2. Paste into Notepad
  3. Copy again
  4. Paste into your code

Happy Days!!

I decided to do a bit of poking around to find out what character it is and found this Microsoft article.


OpenSSL Hits The News Again

Good grief, this latest issue with OpenSSL (the library that keeps most of the internet encrypted and safe) is no less that 16 years old …

“A researcher has uncovered another severe vulnerability in the OpenSSL cryptographic library. It allows attackers to decrypt and modify Web, e-mail, and virtual private network traffic protected by the transport layer security (TLS) protocol, the Internet’s most widely used method for encrypting traffic traveling between end users and servers.

The TLS bypass exploits work only when traffic is sent or received by a server running OpenSSL 1.0.1 and 1.0.2-beta1, maintainers of the open-source library warned in an advisory published Thursday. The advisory went on to say that servers running a version earlier than 1.0.1 should update as a precaution. The vulnerability has existed since the first release of OpenSSL, some 16 years ago. Library updates are available on the front page of the OpenSSL website. People who administer servers running OpenSSL should update as soon as possible.”

The Advisory is here



Google Chrome Auto Complete Hash! (autocomplete=”off”)

Hmm … Not sure I like this one tiny bit Google. Google has decided that it’s policy in regards to how Chrome will handle autocomplete=”off” directives is to completely ignore them, all the time. They are arguing that people use the built in password manager to allow for more diverse and complex passwords to be used for each site. I can sort of agree with this to some extent. Using the same password for lots of sites isn’t a good plan really and that is to some extent part of the good thing about OAuth and OAuth 2.0. At least you aren’t seeing an explosion of user accounts.

Anyway, the problem now is that this going to start impacting on how us web form developers organise our forms. Why? Well look at this example below:

login form problem

Since there is stored password info for this site in the Chrome password manager it attempts to pre-fill the form contents with this information. However, it has gotten it catastrophically wrong. It has in fact done EXACTLY what we don’t want. There is an email address field on the form that is left empty and the display name field is populated with the email address. The very reason there is a display name fields is so that we can show something to other users that ISN’T the email address. It’s ok since we have validation on that field to make sure whatever is entered isn’t an email address but that’s kinda missing the point.

The Solution?

Well it turns out that Chrome has gotten the password into the right box. Now the assumption that Chrome makes is that the any textbox preceding a password box MUST be an email address box, it completely ignores any text or the name of the input control and just plops the email address stored for the web site into that box and since that is the display name box the email address is put in there … great. Anyway, now that we know that we can do this …

login problem solved

And sleep better at night again …


RIP FireFox (at least until v30 anyway).

That’s it.  I’ve stood by you and defended you but today was just it for me.

I really don’t know what’s happened and I’ve exhausted all solutions I can think of.  I’ve reset your settings, removed Firebug and reinstalled it.  I’ve even backed up my profile, reinstalled Firefox and restored  my core profile data (from the reset version of course).  Nada, nothing.  Firefox 29 is just unusable for me now.  Today I wasted an hour trying to locate and fix a bug in an MVC site that just works everywhere else (Chrome, Safari, Opera, IE YES even IE) Firefox just sits there.

Ever since the FF 29 update you just haven’t been the same, slow, crashy and just not fun to use at all.  Even switching from one tab to another has taken a lifetime.

I have switched to Chome …

… for now …



Firefox 29.0.1 Update

What on earth has happened. I’m getting script errors left right and center making my favourite browser extremely lumpy. Seems the theme I was using was causing problems so switched to the default theme. A bit better. Turned off Firebug as it seemed the firebug scripts were causing problems. A bit better again … still not right though! Anyone else seeing this?


MVC Deployment – JavaScript – ReferenceError is not defined …

This had me stumped for a moment.

All the Javascript was there (linkable from bundle links in the page source), all the files were there, everything worked in dev (doesn’t it always?).

Anyway, if you’re seeing this error in your deployed applications there are a couple of steps to take.

Firstly you should download and install the Visual Studio tool JSLint.VS2012. Then set this up to show warnings and don’t set it up to fail the build. JSLint is not kind and very strict about things (your adherence to BP is your choice but recommended for sure!)

So, you deploy your app and BANG all your lovely JS is twatted. Never fear … pop over to your web apps Global.asax file and in the Application_Start method include this:

BundleTable.EnableOptimizations = true;

So now with this setting set you can launch your app in debug mode with all the Optimizations forced on to test minification and more closely model your testing to the deployed version.

Once you have that working and are seeing the problems more clearly you can start to work through the potential issues using the reports from your new JSLint VS plugin to fix the syntax and other formatting issues.