uMatrix extension for Firefox


uMatrix is an addon for Firefox which you can use to control exactly what network requests are made by the browser and thus what is loaded in the webpage you have requested. It is of similar use as ad-blockers (like AdBlock) or script blockers (NoScript) or other blockers like uBlock. But, uMatrix is more fine-grained and a bit more complicated but gives you a lot more idea of what a webpage is trying to load and if you want to allow that. uMatrix is a fork and improvement over an earlier addon called HTTP Switchboard.

  • Install: It can be installed from here. No browser restart is required. You will find its icon added to the toolbar.

  • Settings: Before you try anything, head over to its dashboard. In the Privacy tab, you can turn off the feature of clearing browser cache every 60 minutes. The My rules tab is where you can find the list of rules that are applied by uMatrix to decide if a network request on a webpage should be allowed or not. You will find the default rules that uMatrix starts off with under Permanent Rules and the rules that you have set under Temporary Rules. Do not worry if it looks complicated cause you usually set these rules using the colorful 2D matrix UI of uMatrix. In the Hosts files tab, click the Update Now button to update all the hostnames to block from the various popular lists maintained on the internet.

  • Content is blocked by default: By default, uMatrix blocks all types of content from the blocked hostnames (see above) and allows CSS and image content only from the domain you are visiting. Many websites may not render or work correctly due to this and you will need to step in to tell uMatrix to allow other content from other domains. This default behavior is called Block All / Allow Exceptionally. To allow everything by default is called Allow All / Block Exceptionally. You can find detailed information about these two modes here.

  • Control content: On any webpage, click the uMatrix icon in the toolbar to reveal the 2D matrix where you can click to enable or disable loading from particular hostnames (the rows) or loading particular types of content (the columns). Red color means disabled and green means enabled. Clicking upper part of a cell enables and lower part disables. Clicking rows or columns should usually be enough, if you want finer control you can click the cells, that is controlling a particular content from a particular hostname. Click the Refresh icon to re-render the webpage with these changes. The rules you set here are the rules you can see in the Dashboard (see above).

  • Whitelist a domain: The top-left cell is the Z axis to this 2D matrix. Clicking it you can choose if you want to set rules for every page (asterisk) or this particular hostname. For example, if I enable in the every page (asterisk) section, then content coming from will be allowed no matter which website I visit.

  • Undo or Save: Click the Lock icon to save the rules for this webpage. Click the Eraser icon to revert back to last saved rules for this webpage.

  • Persist settings: By default, the rules you painstakingly set for websites will persist only in a Firefox session. They will be forgotten if you restart Firefox. To make them persist, go to the Dashboard → My Rules section and move the rules from Temporary Rules to Permanent Rules section.


Tried with: Firefox 50.1.0 and Ubuntu 16.04


How to install Visual Studio Code

Visual Studio Code (VSCode) is easy to install and configure. You just need to remember a few keyboard shortcuts.

  • Download the latest .deb file of VSCode from here.

  • VSCode is being developed rapidly and new releases appear frequently. If you have an older version of VSCode, uninstall it first:

$ sudo apt remove code
  • Install the downloaded VSCode:
$ sudo dpkg -i vscode-you-downloaded.deb
  • Start in a root directory of your code:
$ code .
  • VSCode will start up using all the files and directories inside the current directory as belonging to a project. While it is indexing the files, you will see a red flame icon in bottom-right corner. Once the flame goes away, you are ready to edit files!

  • Extensions: VSCode is no fun without extensions for your favorite languages (say C++ or Python) or your favorite features (say Vim). To install extensions use keyboard shortcut Ctrl+P and type ext install. You can search and install extensions from the VSCode Marketplace. Many extensions might restart VSCode to get enabled.

  • Settings: VSCode can handle both user settings (works across all projects) and workspace settings (works only for a particular project). All settings are set in JSON files. You can choose File → Preferences to open these. To set something, you need to copy that line from default settings to settings.json.

Tried with: Visual Studio Code 1.4 and Ubuntu 16.04

Visual Studio Code extensions that I use

  • CPP Tools: The official extension for working with C++ code. Automatically indexes all code in the currently open directory, offers auto-completion and syntax highlighting.

  • Python by Don Jayamanne: There are many Python extensions, but this seems to be the most popular one. Syntax highlighting, indexing and code completion.

  • Vim: There are many Vim extensions, but this seems to be the most popular one. It has entire universes to traverse before it can be as good as Vrapper, the Vim extension for Eclipse. This VSCode extension offers very basic navigation and editing commands.

  • Git Blame: This extension does one little thing that I need everyday to work with code from other people: know who modified a line of code. This extension shows that for the current line in the status bar.

  • Matlab: I need to regularly browse through some MATLAB files. This extension offers syntax highlighting of Matlab files.

Tried with: Visual Studio Code 1.4 and Ubuntu 16.04

RefControl extension for Firefox

RefControl is an extension for Firefox that can be used to set the value of referer field sent to HTTP servers for certain webpages. This extension is similar to the Referer Control extension for Chrome.

You can change the referer directly in the extension preferences. A more friendly method is to visit the webpage and then click on this extension’s icon and choose RefControl options for this site to set for this specific website. The changes will take effect only if you start browsing from a new tab or might require a restart of Firefox.

More details on the usage of this extension from its author can be found here.

Tried with: RefControl, Firefox 41 and Ubuntu 14.04

Live HTTP Headers extension for Firefox

Live HTTP Headers is an extension for Firefox that can be used to view the HTTP headers sent and received when a webpage is loaded. This is useful, for example, to determine what the values in certain header fields are.

Installation requires a reboot. After that, click on the extension icon to open its recording window. Visit the webpage you want to monitor and you can see the HTTP headers logged in this extension window. You can save all the headers to a text file to analyze them.

Tried with: Live HTTP Headers 0.17.1, Firefox 41 and Ubuntu 14.04

Shareaholic extension for Firefox

Shareaholic is a service for sharing content to different social networks and services. I only use its extension for Firefox from here. This provides me ability to share the current URL to other services, just like I can do in Android.

  • It adds a button to the addressbar. Click it to view your services you can share to and to customize its Options.

  • I recommend going through its Options and enabling only the services you need.

  • I use Shareaholic to share the URL of a webpage I’m viewing using Gmail or Twitter to other friends.

Tried with: Shareaholic, Firefox 41 and Ubuntu 14.04

Emoji Cheatsheet extension for Firefox

It has become common to view and add Emoji 😝😈😬 to emails, tweets, blogposts or any text on the web.

Emoji Cheatsheet (also known as Emoji Helper) is a fantastic extension for Firefox that is an emoji picker. It helps to pick emoji from a gallery and insert into any text input or copy to clipboard. The emoji you picked can be inserted as Unicode character, as text code (like that used in Github) or an image (for old applications). Almost all the emoji you see available on your smartphone seems to be in its collection.

  • Emoji Cheatsheet can be installed from here.

  • Check the extension preferences for picking your preferred mode (Unicode, text code or image), keyboard shortcut and other goodies!

Tried with: Emoji Cheatsheet 1.1.1, Firefox 41.0 and Ubuntu 14.04

How to customize Firefox UI

Most of the components of the Firefox user interface can be removed, added or moved around easily. This is quite a difference from Chrome, where such functionality is quite limited.

For example, I like to hide the search bar, remove or move around the buttons that my extensions put in the toolbar.

Doing all this is easy. Just go to Settings -> Customize. Now you can grab any UI component (bar or button) and move them between the toolbar, the Additional Tools and Features window or the Customize window.

Tried with: Firefox 41 and Ubuntu 15.10

Emoji Input extension for Chrome


Emoji has become a popular feature in smartphone messaging apps like Whatsapp. The Emoji Input extension can be used to similarly pick Emoji to insert into emails and other websites in Chrome.

Just install, click its smiley face icon in the taskbar and click on any emoticon to insert it into your text field. The emoticon can also be copied to clipboard, so this extension can also act as a emoji picker on Ubuntu/Linux where no such tool is available.

Tried with: Emoji Input 2.6.4, Chrome 44.0.2403.125 (64-bit) and Ubuntu 14.04

LivePage extension for Chrome

The LivePage extension for Chrome is useful if you want to view a HTML page or file and want it to be refreshed as soon as it is updated. This can be useful if you are editing or producing the HTML file. For example, I use it to view the HTML file produced by compiling a ASCIIDoc or ASCIIDoctor file.

  • Open the local or internet webpage and click the LivePage icon. The page will be refreshed as soon as it is changed.

  • Note: If you want to refresh local HTML files, head to Chrome Extensions section, scroll down to LivePage and enable the Allow access to file URLs checkbox.

Tried with: LivePage 1.5.2, Chrome 40.0.2214.115 (64-bit) and Ubuntu 14.04