How To Properly Set SVN svn:externals Property In SVN Command Line
Saturday, June 20th, 2009
Introduction
Every time I have to deal with svn:externals in SVN, I forget the command line syntax. Every single damn time. Normally, I use SVN GUI clients, such as SmartSVN, which make it very simple to add an svn:externals property. But for command line, it always takes looking at 25 different sites on google, which are all incredibly unhelpful for this question for some reason. Trying "svn help propset" on the command line was bloated and equally useless.
So this time I needed to write it down and make sure everyone who needed help with svn:externals would find exactly what they need here. I hope this page will soon come up on top of all the unhelpful results on google for "propset svn:externals" and other related queries.
The Problem
I want to set a simple svn:externals property in one of my project's directories, lets say 'plugins' (talking about Wordpress here). The outcome would be a directory called 'akismet' within 'plugins' that points to a remote svn url.
Various combinations of trying to do it produced pathetic results, like
svn propset svn:externals akismet http://plugins.svn.wordpress.org/akismet/trunk svn: Setting property on non-local target 'http://plugins.svn.wordpress.org/akismet/trunk' needs a base revision
svn propset svn:externals . akismet http://plugins.svn.wordpress.org/akismet/trunk svn: Error parsing svn:externals property on 'akismet': '.'
svn propset svn:externals akismet http://plugins.svn.wordpress.org/akismet/trunk akismet svn: Setting property on non-local target 'http://plugins.svn.wordpress.org/akismet/trunk' needs a base revision
The Solution
Finally, thanks to this post, I found the right command:
svn propset svn:externals 'akismet http://plugins.svn.wordpress.org/akismet/trunk' . property 'svn:externals' set on '.'
Note that dot at the end of the command and the quotes around the directory name and url.
Now commit via
svn commit
and then
svn up Fetching external item into 'akismet' A akismet/akismet.gif A akismet/akismet.php A akismet/readme.txt Updated external to revision 127962. Updated to revision 16.
There, was it that hard, forum gurus and blog fiends?
Edit: in order to set multiple directory/url pairs in a single svn:externals property, you should put the individual dir/url pairs into a file (let's call it 'svn.externals'), like so
akismet http://svn.wp-plugins.org/akismet/trunk all-in-one-seo-pack http://svn.wp-plugins.org/all-in-one-seo-pack/trunk
and then apply the property using
svn propset svn:externals -F svn.externals .
You should also just check in 'svn.externals' to easily keep track of it.
Proof That God Does Exist - You Can Finally Block Those Insanely Annoying Facebook Quizzes For Good
Thursday, June 11th, 2009
WTF
I don't know about you, but I'm incredibly sick of Facebook quizzes. Yeah, shit like this which occupies 90% of my news feed:
And to make matters worse, Facebook provides no means to block these quizzes and rid your profile of them forever. The only thing you can do is block each individual quiz. But just like weeds in your backyard, when you block one, three more rise up in its place. I know I am not alone here - there are literally billions of people searching for a solution to the plague.
So, what does the tech community do when it is not happy?
- Runs to mommy, crying.
- Drinks heavily, passes out, and comes to work with a keyboard faceprint, dressed as Koolaid.
- Ignores the problem and lives with it (pussy).
- Takes the matters into its own hands and develops a solution.
The correct answers are:
Enter a true geek at heart by the name of Steeev with his Facebook Purity greasemonkey script that was created with the sole purpose of BLOCKING THE FUCKING QUIZZES. Go Steeve Steeev!
Solution
Installation is as easy as 1, 2, 3:
- Install Firefox (you already have that, right?)
- Install the Firefox greasemonkey extension
- Install the Facebook Purity script
That's it. Now go to your Facebook page (make sure you access it via www.facebook.com or www.new.facebook.com and not YOURUNIVERSITY.facebook.com (like ucdavis.facebook.com)).
Check it out - all quizzes are gone, the script even tells you how many quizzes were blocked:
Pure bliss. Rest quizless now, everyone.
Essential Firefox Extensions (Plugins, Add-Ons) – A Comprehensive Guide :: Part 2 :: Pragmatic Extensions
Wednesday, June 10th, 2009
Introduction
Welcome to part 2 of the Essential Firefox Extensions And Tips – A Comprehensive Guide series. In this article I’m going to describe a number of time saving pragmatic extensions that make me a better, faster, more efficient browser user (browserer?).
Pragmatic Extensions
All-in-One Gestures
All-in-One Gestures introduces customizable gestures for all kinds of actions. To perform a gesture, hold the right (by default) button and move the mouse in the specified direction, drawing the needed shape.
I use it mostly for 3 things: history back/forward and close tab (see below). Once you start using gestures, there is no going back.
Download Statusbar
Download Statusbar is a handy extension that will show your downloads on a dedicated bar right above the status bar. It also adds a much needed “Delete from system” option to each download (why, Firefox, would you not give me an option to delete my downloads at all?). The Download Statusbar only shows up if there’s at least one download not dismissed yet. Double clicking on a finished file will both launch and remove it from the bar.
OpenDownload
Running downloaded files without saving them is probably the only Internet Explorer feature I actually missed, until I found OpenDownload that is. This extension will give you an option to launch a download upon completion in addition to just saving it. I don’t have to worry about finding and deleting it from my system later as it goes to Firefox’s temporary folder.
Tab Mix Plus
This extension is very powerful and versatile. It controls various aspects of the browser tabs, windows, session, and mouse. Here are the settings I find useful:
- open links that open in a new window in a new tab instead
- open all javascript popups in tabs (I hate popups)
- in fact, I enable the single window mode, in which all attempts to open a new window – by webpages or by you, including starting a new Firefox – will be redirected to a new tab
- highlight unread tabs, which would italicize the tab titles of pages that had something new loaded since you last opened them
- show progress meter on tabs
- close tab button on all tabs (instead of a single one on the right side)
- hide the new tab button that occupies extra space
- customize the tab menu options
Here are some option screens:
Google Toolbar
The google toolbar is historically sort of a must for me. It adds a couple of nice features on top of the default search box and frees the latter, so that I can set it to another search engine (IMDB in my case). With the amount of searching one does on google daily, the sheer number of clicks and keystrokes saved will be in the thousands. Daily. I search a lot, OK?
In addition to providing an always present search bar, the toolbar carries a number of useful features, such as live search suggest, instant PageRank (unneeded if you install SEO Toolbar or SearchStatus), search Gmail and News buttons (and many others), clickable search terms good for in-page search, highlighting of the said terms, a simple autofill (though I use an irreplaceable AI Roboform instead), spell check (Firefox has one built-in now), translate (I use the gTranslate extension instead). All in all, one can do without google toolbar, depending on the needed functionality.
Linkification
Linkification is a really pragmatic extension. It hyperlinks any url-looking strings that aren’t already hyperlinked. Take a look.
The extension has a variety of options to satisfy even savvy users but I found that defaults work really well. If for some reason you want to momentarily turn off linkification, just tap the
button in the tray and the page will revert to its original form. By the way, if you really want to put it to the test, install it and head over to the comprehensive test case list.
Greasemonkey
Greasemonkey is the most versatile extension available for Firefox, as it’s essentially a whole framework for scripts that can manipulate any aspect of any page. Head over to userscripts.org and take a look at the myriads of scripts written and submitted by other Greasemonkey users.
Still not clear what these can do? Let me list some that I use and their brief functionality:
- Digg Top 10 Direct – automatically rewrites the digg’s top 10 links to go straight to the articles, instead of the digg comment page. Clicking on the digg icon still goes to the comments page though, and I think this is the ideal functionality.
- Google Image Relinker – rewrites google image search urls to go directly to the corresponding images rather than the page they were found on.
- YousableTubeFix – adds a small smart menu that dynamically shows which qualities a given youtube video is available in and automatically picks the best one, adds download links to the each quality (FLV and MP4), resizes the player to your liking, and a few other things. It is also quite customizable.
- The now world famous Troy's Twitter Script that I reviewed a few week ago - it does everything Twitter currently doesn't, including Autocomplete, Auto URL Expansion, Auto URL Shortener, RT Button, Nested Replies, Inline Media Embed, Search Tabs, and more.
- AideRSS Google Reader Integration – adds AideRSS feed rank to each entry in Google Reader, which allows eyeballing more important articles within a few seconds of seeing a feed. Also available as a separate extension for those not using Greasemonkey.
Show MyIP
Show MyIP does exactly what it says: it displays your current IP. What I like about it is that it queries for it on demand, after you left or right click the icon. This approach avoids unnecessary queries going around.
What I don’t like about it is that there seems to be no way to copy this IP to clipboard. Ideally, a right click option would work great (that’s the way the next extension ShowIP does it). I left a comment about this fact on the extension’s page, so hopefully the author will implement it shortly.
Also, if an error occurs, be prepared for some good old German cursing:
ShowIP
ShowIP, in contrast to Show MyIP, actually displays the IP(s) of the website I’m currently on. It then allows me to copy it (or all of them) into clipboard and provides quick information links, such as whois, ip2country, and traceroute.
ShowIP is useful for both developers who want to know which dev server they’re currently working on as well as regular users who are interested in the location or whois of a site they’re visiting.
iimmgg.com Tools
iimmgg.com is a picture hosting site similar to tinypic.com and photobucket.com. Generally, it allows quick picture uploading with thumbnail creation. This extension makes this process insanely simple, I can’t say enough praise how good my user experience was with this extension. Check this out.
The extension has 2 modes:
1. If you right click on a picture, there’s a single option to upload it to iimmgg.com:
As soon as you click Upload, you are almost immediately redirected to a page on iimmgg.com with your picture and thumbnails already generated. Swoosh, that was fast. Internally, the extension sends the user to something like http://www.iimmgg.com/upload.php?u=http%3A//beerpla.net/wp-content/uploads/BenefitsofMUNI_1E7D/image.png&r=about:blank&s=1&t=, which then redirects to the final picture.
2. If you right click anywhere else on the page, there are now 3 ways to capture an image to iimmgg.com:
Select either of the 3 options: Visible Page, Full Page, or Select Area. Let’s say I select Select Area. A resizable overlay that I can drag it around to select the area I want shows up. Brilliant.
After I figure out what I want to capture, I click on the Capture Selected Area button in a bar that just showed up (btw, the styling of both the bar and the selector are very reminiscent of the Web Developer extension):
The next and final prompt shows up with the Image Format selection (PNG – High Quality, JPEG – High Quality, JPEG – Medium Quality, and JPEG – Low Quality), SFW selection, and capture name:
Click Capture and upload (or save to disk, which is not as fun but also useful):
Voila – the picture is ready for sharing.
Remove Cookie(s) for Site
Remove Cookie(s) for Site does exactly what it says – removes all cookies that belong to a domain and all subdomains of the site you’re currently on. Right click anywhere on the page, click Remove Cookie(s) for Site and the taskbar will update with the number of cookies removed.
You can also pull out a nice little button to a location of your choosing, like so:
Oftentimes I don’t even bother looking for a logout button – deleting all cookies is a lot faster.
Signature
Signature, as you probably guessed, inserts a signature into a text form. It supports as many signatures as you want. The uses can be versatile, here are just some:
- the obvious “first and last name” signature
- a full signature with your site link which can help in site promotion. Mine, for example, is
- disclaimers
- coined replies to emails
- various addresses
- repetitive urls
- any other frequently used set of strings that you have to continuously copy-paste
QuickRestart
QuickRestart adds a Restart Firefox option to the File menu. This is quite handy, especially when you have a lot of extensions and it may take Firefox 30 seconds to shut down.
The only downside of this is that it seems to lose the protected and locked tab properties set by Tab Mix Plus. Shutting down Firefox and starting it manually does not lose such properties.
Resizeable Textarea
Ever seen a comment box this big and got annoyed by the idiot who designed it?
Fear not, as Resizeable Textarea adds resize capabilities to any text area. Move the cursor to the bottom or right borders, or the bottom-right corner, and drag all you want:
TryAgain
TryAgain is a great and very simple extension. It retries loading a failed page up to 5 times instead of just sitting there. This screenshot explains everything:
View Cookies
View Cookies is a simple extension that adds a Cookies tab to the VIew Page Info box. The tab allows viewing, removing, and copying cookie info for the site you’re currently visiting. There is a number of extensions that do similar things, like Firebug and Remove Cookie(s) for Site, but I install View Cookies anyway because its functionality makes sense.
Google Gears
Google Gears is a very useful extension, and it’s a shame that a lot of people don’t seem to understand what it does. Think of it as simply a secure local cache (developed by Google). Quite a few popular websites support Gears, and I think it is best to just give a few examples of actual usage.
- gmail.com – gmail rolled out offline email support quite recently, which is the most useful implementation of Gears to date.
- wordpress – if you host a wordpress blog, you can opt in to cache a few hundred files in Gears that will speed up the wordpress admin interface. Wordpress calls this Turbo mode.
- rememberthemilk.com – RTM, the most advanced and functional TODO list site, offers an excellent implementation of Gears. If you lose your connection, you are free to create, modify, and delete any tasks you want – all the changes will be synchronized when you go back online.
- google reader – the reader can download feed items for offline viewing but the implementation is not very good – you have to explicitly go offline by clicking a
button, at which point Gears will download 2000 items.
From a technical standpoint, Gears uses a local SQLite database for storage. The Gears security model is described here.
gTranslate
GTranslate translates selected text into a language of your choice. It can be set to autodetect the source language or forced to a specific one. I must say so far it worked very well and detected the source language automatically without flaw.
Once the translation is received, gTranslate shows it and links to the google translate page:
Additionally, if the selected text is in an editable field, gTranslate will offer an option to replace the selection with its translation:
SearchStatus
SearchStatus is a useful and relatively simple SEO extension. It shows a quick roundup of page rankings for the current page from Google (PageRank), Alexa, and Compete. This lets me quickly check how popular [or lame] the site I’m on is and keep tabs on my own online properties. Right clicking each metric grants access to a few useful shortcuts and for the lazy pragmatic, right clicking the little
symbol has such links as Show Whois, Show robots.txt, Show sitemap.xml, and others.
Another not so obvious but useful feature of this extension is the ability to mark rel=’nofollow’ links. You rightfully obsessed SEO junkies can quickly see which parts of your site leak the valuable link juice and which ones don’t. Take a look at these nofollow links that SearchStatus marked with light red background:
SEO Toolbar
This toolbar is probably going to be useful for relatively hardcore SEO fiends as most people would do just fine with the above SearchStatus extension. The toolbar seems a bit bulky and slow but has a ton of SEO related functionality. It is, of course, free. It shows Google PageRank, Yahoo linkdomain, Yahoo page links, DMOZ directory, Yahoo directory, Best of the web directory, Archive.org, Compete uniques, and SEMRush traffic value:
It also links to a bunch of tools, like quantcast analysis, google trends, and alexa:
For a quick, more in-depth, exportable overview, press the info button
:
However, the 2 most useful to me features are probably the Rank Checker
:
End of Part 2
This marks the end of part 2 in the series. I expect this page to update pretty often, whenever I find new extensions, so bookmark it using your favorite method by clicking the button below.
The next part in the series (available soon) will describe a number of useful web development extensions.
How To Make Your Site Lightning Fast* By Compressing (deflate/gzip) Your HTML, Javascript, CSS, XML, etc In Apache
Tuesday, June 9th, 2009
Updated: June 10th, 2009
* Lightning Fast is a blatant exaggeration. Got you to look though, didn't it?
Introduction
Whether you are a web developer or a self-hosting business owner, the only excuse for not activating compression capabilities of your web server can be that you didn't know about it. And now that you are reading this, there is no excuse left at all.
Here is how big a single page of this blog was before compression was enabled on CSS and Javascript files (computed by YSlow):
And here it is after compression:
As you see, the difference is quite substantial - almost 30% savings.
Compressing your HTML, XML, Javascript, CSS, etc pages will mean less data transferred between the server and the client which:
- reduces the bandwidth usage.
- provides faster page rendering which in turn leads to less user frustration, higher conversion rates, lower bounce rate, etc etc etc.
Compression is especially important for users with slow connections as every kilobyte of your code is that much more painful to them.
Compression can be very effective - you can easily shrink your text, code (HTML, XML, Javascript, CSS, etc) to 10% of the original size (of course, your mileage may vary). 100KB page that needs only 10KB to transfer? Sign me up!
So, before I talk about the solution, let me describe what exactly happens when compression is turned on and how it affects older browsers that don't support it.
Compression Mechanism Explained
In order for compression to work in the first place, the web server (Apache in my example) needs to support it. This is achieved by enabling one of Apache modules called mod_deflate. The server will then be able to compress the data to the DEFLATE standard using either the zlib (also known as deflate) or gzip implementations. Yeah, DEFLATE is both the standard the one of its implementations, for those confused. I know I was. This is best described in this Wikipedia article.
The following mechanism is used:
- the server with a compression extension enabled is able to serve either compressed (smaller) or uncompressed (larger) pages, depending on what the client supports.
- the client (that is, your browser) sends a special header called "Accept-Encoding" listing the DEFLATE implementations it's capable of decompressing. For example "gzip,deflate".
- the server picks the best compression supported by the client (if any), compresses the files, and sends them over to the client.
- the client receives the compressed files and decompresses them.
If you are using a load balancer, it may already be configured to compress pages that pass through it. In that case, there is no need to separately configure compression on your web servers. In fact, it should be off to save CPU.
Are Your Pages Already Compressed? Test Them!
If you are not sure whether you are already serving compressed pages or not, test them! My favorite way is by using Charles HTTP Debugger. Another option is by downloading Firebug for Firefox and installing Yahoo's YSlow or Google's Page Speed. Just look at the response headers to see if compression is on (look for the Content-Encoding header). Here are some before and after examples:
Theme CSS
Before:
After:
jQuery
Before:
After:
Solution
Create a .htaccess file in the top directory of your site with the following contents:
1 2 3 4 5 6 7 8 | # DEFLATE by type - html, text, css, xml AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml # DEFLATE by type - javascript AddOutputFilterByType DEFLATE application/x-javascript application/javascript text/javascript text/x-js text/x-javascript # DEFLATE by extension AddOutputFilter DEFLATE js css htm html xml |
Alternatively, you could put these lines into your Apache config within the Directory directive.
The AddOutputFilterByType directive adds DEFLATE filters to certain MIME types. I tried to assemble some of the common ones but feel free to add more, as each server may be configured differently and give out MIME types different from mine.
The AddOutputFilter directive binds the DEFLATE filter to specific file extensions, just in case they are not served with a proper MIME type. Feel free to add to this list as well.
Caveats
1. In order to use this whole compression/deflate/gzip business, your Apache server must first have mod_deflate enabled. Without it, you will get the HTTP 500 error (Internal Server error). You can check which mods you already have enabled by checking with the output of phpinfo() function.
In order to enable mod_deflate, uncomment the line with "deflate_module" in your Apache config file. The location of this config file is highly dependant on your system. Some examples include
- /etc/apache2/httpd.conf
- /etc/httpd/conf/httpd.conf
- c:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
- some other place where your system stores Apache config files (read the special note below for OpenSUSE).
Here's what you should have:
LoadModule deflate_module modules/mod_deflate.so
On OpenSUSE, you actually enable modules a bit differently. Go to /etc/sysconfig/apache2 and look for APACHE_MODULES=. Then add "deflate" to the list, if it's not already there.
Now, restart Apache and check the output of phpinfo() again.
2. Adding AddOutputFilter and AddOutputFilterByType to .htaccess requires such overrides to be authorized by the main Apache configuration for that directory, otherwise it will return error 500 as well. The option you are looking for is called "AllowOverride" and mine was set to "AllowOverride AuthConfig" which wasn't enough. Changing it to
AllowOverride AuthConfig FileInfo
or just
AllowOverride All
fixes the problem. You can find more info about AllowOverride here.
3. In Wordpress, if you are using Google Gears (Turbo mode) for caching some core Wordpress files, they will not show up compressed. That is because they're not served by the remote server but rather reside locally (think of it as permanent cache). I was very confused at first when I didn't see jQuery.js in the HTTP log and YSlow reported it uncompressed.
Are you a Wordpress user?
If you are a Wordpress user, don't assume Wordpress is going to automatically compress your pages. In fact, as you install more and more plugins, the payload becomes larger and larger with those additional CSS and Javascript files.
You owe it to yourself and to your users to immediately enable compression on your blog.
Here is what happened after I enabled compression on this blog.
Before:
After:
Bonus - WP Minify
For even better results, I suggest you have a look at my good friend and talented Wordpress master Thaya's plugin called WP Minify. It preprocesses and aggregates all or most of your CSS and Javascript into just 2 files, thus saving on the number of HTTP requests. It also minifies content to achieve smaller size.
My blog before WP Minify:
After WP Minify:
That's all folks. Let me know if something was unclear and I'll be glad to clarify it.
A few references that pointed me in the right direction and allowed me to provide a more complete solution:
- http://brightscape.net/compress-jquery-even-further/
- http://brightscape.net/compress-your-web-pages-with-mod_deflate/
Essential Firefox Extensions (Plugins, Add-Ons) And Tips – A Comprehensive Guide :: Part 1 :: Tips
Saturday, April 11th, 2009
Updated: June 10th, 2009
Introduction
In this article I’m going to discuss a number of useful Firefox extensions and tips. This list is not a “COMPLETE GUIDE TO FIREFOX!!!111!” but a collection of some, albeit many, extensions and techniques I find useful, with detailed descriptions and illustrations. I try to make my reviews as personal as possible and express my own points of view, so I will not be using any boring official descriptions altogether. Short, concise, and useful – that is my goal.
Right now I use 53 extensions in total. If you think that’s a lot, you might be right. However, because Firefox is so mature and new extensions come out every day, it is not as crazy of a number as it was 2 years ago. Firefox gets faster, I download more extensions, and the end result is I’m happier as a user because Firefox suddenly provides me with a lot more features at approximately the same running speed. I plan on continuing to increase this number.
Here’s a quick slightly obsolete screenshot of the extensions I’m using:
Firefox Tips
Before describing extensions, I wanted to mention a few tips about Firefox itself. If you are interested in extensions, proceed to part 2 right away, however I urge you to read these too.
Using the bookmarks bar and shortened names
You can fit a lot of quick bookmarks on the little bookmark bar if you shorten the names to 1 or 2 characters.
Using keywords for bookmarks
A little less known trick is to use the keywords property of your bookmarks. For example, here I assign a keyword ‘d’ to my digg.com bookmark. Then I can just go to the url bar, type in ‘d’, Enter and voila - digg starts loading.
Protecting and locking tabs
Protect a tab will prevent you from closing it.
I use this functionality on my most frequently visited sites – so frequently that I never want to close them. They include the iGoogle homepage, Google calendar, Remember The Milk TODO list, my Trac tickets at work, and a few other things.
These protected states are saved even if you close and open Firefox (but unfortunately, not if you use QuickRestart described in part 2). Protected windows are marked by a
symbol.
Locking a tab is similar, but instead of not being able to close it, you are not able to change the url. Any url change attempts will produce a new tab. I personally never use this feature but some may find it handy. Locked windows are marked by a
symbol.
Note that you need the Tab Mix Plus extension (described in part 2) for these tricks.
Restoring sessions
While Firefox 3 now has a built-in session restore feature, it’s not very robust. That is why I still use the Tab Mix Plus (described in part 2) session restore feature set. TMP’s session manager remembers protect and lock statuses, tab history, selected tab, and everything else about the session. I will describe TMP in more detail later.
Using keyboard shortcuts
In my experience, keyboard shortcuts are primarily used by power users, while the rest of the population uses a mouse. However, shortcuts are immensely effective time savers and, if you mouse a lot, will provide a relief for your wrist. Let’s take a look at a few easy and important ones.
Ctrl-L and TABs
Ctrl-L will put the focus on the url bar, no matter where you are on the page. It is equivalent to F6 in IE, except it’s actually robust. So, when I’m ready to type in the name of the site, my fingers are already on the keyboard. Ctrl-L doesn’t even require extra movements.
TAB (the key, not the Firefox tab) once after you’ve pressed Ctrl-L and you’re in the Firefox search bar (the one I set to imdb a bit later in the article). TAB twice and you’re in the Google toolbar, if you have it installed.
Ctrl-Enter and Shift-Enter
Ctrl-Enter is a tremendous time saver. It appends “.com” to whatever you have in the url bar and prepends “http://www.”. Type in “google”, press Ctrl-Enter, and voila, you’re at www.google.com. Similarly, Shift-Enter, appends “.net”.
Ctrl-T
Ctrl-T opens a new tab.
Ctrl-Shift-T
Ctrl-Shift-T opens the last closed tab(s), in the order they were closed.
Ctrl-Alt-T
Ctrl-Alt-T duplicates the current tab. Yet again, this is a feature of Tab Mix Plus (described in part 2). Oh how much I love you, TMP.
Ctrl-TAB, Ctrl-Shift-TAB
Ctrl-TAB is probably the most frequently used key combination. It cycles between tabs forward while Ctrl-Shift-TAB does it backwards.
Ctrl-W
Ctrl-W closes the current tab.
Space
Pressing space is a quick way to scroll down one page. It’s a lot of times more convenient than finding the small PgDn button, especially if you have fat fingers.
Setting the Firefox search bar to IMDB
Because I already use the Google Toolbar (one of the most useful toolbars out there) there is little point keeping Firefox’s default search box set to Google. I prefer IMDB (Internet Movie DataBase) myself but you can easily set it to another search engine.
End of Part 1
This marks the end of part 1 in the series. Proceed to part 2.

(No Ratings Yet)


beer planet is Artem Russakovskii's blog. Artem is a software engineer at