Running ESLint in Atom for Mozilla Development

Due to some recent changes in the way that we use eslint to check that our coding style linting Mozilla source code in Atom has been broken for a month or two. I have recently spent some time working on Atom’s linter-eslint plugin making it possible to bring all of that linting goodness back to life! From the root of the project type: ./mach eslint --setup Install the linter-eslint package v.8.00 or above.... »

Installing VPN from the Linux Command Line

To stop people snooping on what we are doing on the internet or when restrictive governments prevent people from accessing popular websites you can use a VPN to protect your privacy and allow you to access the internet without restrictions. Most VPN providers provide simple step-by-step instructions to get VPN set up on most operating systems but many fail to give instructions about how to autostart a VPN in a non graphical environment.... »

View jQuery and jQuery Live events in Firefox DevTools

A little while back we landed a feature that made it possible to interact with events from the markup panel of Firefox developer tools. A lot of people were excited about this but we soon realized that jQuery wraps event handlers in a proxy making all handlers look like this: function() { return fn.apply( thisObject || this, arguments ); }; Numerous facepalms later and we now have support for jQuery and jQuery Live... »

Debugging Thunderbird using Firefox Developer Tools

I recently discovered that it is possible to use Firefox Developer Tools with Thunderbird. Philipp Kewisch has done a fantastic job of his Google Summer of Code 2013 Project to bring Firefox Developer Tools to Thunderbird. Starting with Thunderbird 24.0a1 and a matching version of Firefox, it is possible to debug Thunderbird code using Firefox Developer Tools. If your version of Thunderbird is 14.x then please go to Help → About Thunderbird and... »

Disable JavaScript option now available in Firefox Developer Tools

At the beginning of April Alex Limi decided that we should remove the Enable JavaScript checkbox from Firefox’s preferences dialog. His reasoning was that clearing that checkbox breaks a huge amount of websites and therefore breaks the web. Alex was completely correct and I wholeheartedly agree with the removal of this option but if you look at the bug’s comments you will see that a bunch of people are not so happy with... »

Moving your Contacts and Calendar Away from Google

For the past few years I have used Google Contacts to store my contacts and Google Calendar to store my calendars. These services really are excellent, particularly because they allow me to keep my data synchronized between my Android phone and numerous instances of Thunderbird on PCs and Laptops. Unfortunately, I have had issues with my contacts becoming duplicated and even disappearing altogether. I figure that out of roughly 500 contacts I have... »

How to install Django on JustHost (and maybe other shared hosts)

Frustrated developer If you search Google for “how to install Django on JustHost” you may be surprised to find tens of thousands of articles claiming that it can’t be done and none claiming that it can. Well, it can and here’s how: Log in using SSH access In the Security section of your control panel click SSH/Shell Access → Manage SSH Keys. Click Generate a new key, enter a password and click Generate... »

How well does your browser protect your privacy?

Having downsized my home a couple of times in the last year it is no understatement to say I have urgent space issues. I have power tools, large kitchen devices and surplus everything else. I looked online for a new shed, comparing reviews and investigating the UK’s top shed building companies in my typically obsessive way. Having found “the one”, I paid the company and am currently waiting for the timber that I... »

How Browsers Work

Preface Introduction The Browsers We Will Talk About The Browser’s Main Functionality The Browser’s High Level Structure Communication Between the Components The Rendering Engine Rendering Engines The Main Flow Main Flow Examples Parsing and DOM Tree Construction Parsing - General Grammars Parser - Lexer Combination Translation Parsing Example Formal Definitions for Vocabulary and Syntax Types of Parsers Generating Parsers Automatically HTML Parser The HTML Grammar Definition Not a Context Free Grammar HTML DTD... »

Firebug Inspector Improvements

Almost a year since I last posted, I can’t believe it. I am no longer spending time working on Firebug Lite, but am spending my spare time these days working on Firebug’s inspector. There are three versions of the inspector’s highlighter: The frame highlighter is the blue frame that appears around elements when you click the inspect button and move the mouse cursor around the screen. The box highlighter appears when you mouse... »