## Change default location of Desktop folder in Windows 7

Navigate to folder containing current Desktop folder (usually C:\Users\<user_name>)and Right click on it. Then go to ‘Location’ tab. Follow the instruction over there. The same steps are valid for other user folders like Downloads, My Documents etc.

PS: I am trying Windows Live Writer for the first time to write and publish a post. At first, I could not figure out where to put post title. It seems Live writer had tough time detecting my blog theme correctly. Turning off the ‘Blog theme’ in ‘Blog Account’ tab fixed the problem.

## Useful applications for Windows 7

• TeraCopy - Enhanced copy / move
• xplorer2 Lite - Better Windows explorer
• 4t Tray Minimizer - Additional options in windows title bar
• Cute PDF Writer - Free PDF converter
• AutoHotKey - Change keyboard key behavior
• Foobar2000 - Highly customizable music player
• Handbrake - Convert video formats for iPod etc.
• WinDirStat - Hard-disk usage statistics
• Foxit reader - Free, light PDF viewer
• MPlayer WW - Video player (best mplayer) for windows
• LockHunter - File unlocker

## Google & native language

(Resolved: see last line of the post)
I am facing a strange problem with google homepage. The homepage loads in a different language (check the pictures attached), which even google auto-translate cannot detect. Few of the writings look like: ᏧᎵᎦᏚᎢᏓ ᎣᏚᏓᎸ ᏚᏙᏢᏒ ,  ᏂᎦᏓᏊ ᎫᎦᎵ ᎨᏒᎢ, ᎢᏳᏍᏗ ᎨᏒ ᎣᏲᎲᎢ, ᎠᏱᏍᏗ, ᎬᎾᎨᏒ ᎢᏗᎬᏁᏗ ᏗᏟᎶᏍᏔᏅ.

I can change the language going into the settings of page, which was is not easy as "English" in not one of the options in language list (most probably "English" is written using that strange script). I first switched to one of the languages ('Hindi' in my case) which was familiar to me and then again changed the language to English. But the problem is that the settings are lost whenever the relevant (google's) cookies are cleared. I am curious about why google loaded this strange language. I googled (aka searched) and found that there were few other similar incidents.

Following are the other observations which might be relevant.
• Using Ubuntu Lucid Lynx (10.04) 64-bit installation  (not relevant)
• Noticed this behavior after fresh installation of Ubuntu 64-bit (not relevant)
• Other browsers (chrome and opera) seems to be working fine
• The problem can be solved by setting language to "English" in settings, but it reappears when the stored cookies are deleted.
• This strange language is the default language even after logging into google/gmail account which has English(US) as the default language.
I will be posting more details and workaround here, if I can figure it out. You can find the solution here.

## Configuration Files

Updated weekly irrespective of the date of this blog post.

## Monday as first day of week - Ubuntu

Tested on: Ubuntu 10.04 (Lucid Lynx)

The calendar, which pops on mouse click over clock in Gnome panel, generally has Sunday as first day of week. This may not be a desired behavior if you use this calendar to manage all your appointments etc. Following are the steps to make Monday or any other day as first day of week.

The calendar and time etc are associated with the local settings. Use following command to know current locale-specific information.
locale In my case it produces the following output: LANG=en_US.utf8 LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL= Locale in my case is en_US. Then the specific locale file have to edited for the required change. Use following command (replace en_US by your locale):
sudo nano /usr/share/i18n/locales/en_US Search for "first_weekday" & "first_workday" and set both of them to 2 or any other value depending on your choice of first day of week. Sunday is represented by number 1.
first_weekday    2 first_workday    2 Then run following to compile the changes to locale definition files.
sudo locale-gen Logout and login. Or you can also run the following to avoid logout: killall gnome-panel It should do the trick.

## apt-get behind proxy server

Tested on: Ubuntu 9.10 (Karmic Koala)
• Using Synaptic
Navigate to Settings->Preference->Network in Synaptic package manager. Enter your proxy server details like: username:password@proxyserver, and put the proxy server port

• Using Command Line
Add following lines to the end of ~/.bashrc http_proxy=http://username:password@proxyserver:port/ ftp_proxy=http://username:password@proxyserver:port/ https_proxy=http://username:password@proxyserver:port/ HTTP_PROXY=http://username:password@proxyserver:port/ FTP_PROXY=http://username:password@proxyserver:port/ HTTPS_PROXY=http://username:password@proxyserver:port/ no_proxy=server1,server2 NO_PROXY=server1,server2 Replace username, password, proxyserver and port by relevant value. You can omit username:password if your proxy server do not require any authentication. All the names, like http_proxy, are obvious and self-explanatory. no_proxy can take any number of servers separated by comma. Then type following command in shell sudo visudo It will open up a text editor in shell. Add the following line at the end of the file Defaults env_keep += "ftp_proxy http_proxy https_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY no_proxy" It instructs to keep the variables from user environment to the sudo environment.

## LXDE

Tested on: Ubuntu 9.10 (Karmic Koala) I found about LXDE few days back and found it to be suitable for my need of fast and configurable desktop environment. Most of the gnome applications (except automatic wallpaper changers like wallpaper-tray) also work without any flaw.

Note: I did not install lubuntu-desktop package. I just installed lxde & dependent packages.

Here are few configuration changes I made:
• Changed default browser to firefox: sudo ln -sf /usr/bin/firefox /etc/alternatives/x-www-browser as /etc/bin/x-www-browser is symbolic link to /etc/alternatives/x-www-browser
• Changed clock format to %a, %d %b, %I:%M %p in "Digital Clock" Settings. It displays in this format: Tue, 09 Mar, 10:22 AM
• Added global keyboard hotkeys/shortcuts for Rhythmbox & Volume control by editing ~/.config/openbox/lxde-rc.xml and adding following to <keyboard> section <!-- Keybindings for audio volume --> <keybind key="W-Down"> <action name="Execute"> <execute>amixer -q set PCM 2- unmute</execute> </action> </keybind> <keybind key="W-Up"> <action name="Execute"> <execute>amixer -q set PCM 2+ unmute</execute> </action> </keybind> <keybind key="W-m"> <action name="Execute"> <execute>amixer -q set Master toggle</execute> </action> </keybind> <!-- Rhythmbox Shortcuts --> <keybind key="W-z"> <action name="Execute"> <command>rhythmbox-client --previous</command> </action> </keybind> <keybind key="W-x"> <action name="Execute"> <command>rhythmbox-client --play-pause</command> </action> </keybind> <keybind key="W-c"> <action name="Execute"> <command>rhythmbox-client --pause</command> </action> </keybind> <keybind key="W-v"> <action name="Execute"> <command>rhythmbox-client --next&nbsp;</command> </action> </keybind> More about key-bindings can be found on openbox binding help page.
• Edited .desktop files in /home/chitresh/.local/share/applications using commands like lxshortcut -i firefox.desktop
Most of the answers to frequently asked questions can be found here.

## Gmail address alias

Gmail is probably the best free email service available. Along with huge storage (7419.900081 MB & counting at time of writing this post), it also provides free pop and imap serivces. Gmail also offers some very interesting features like undo send, offline gmail etc. Here is a partial list of features.

One of the most coolest feature is email alias. Gmail neglects anything in between + (plus) and @. So any email address can be appended by string of your choice. This is particularly useful when you want to sign in to some less reliable site and you suspicious that the site can start spaming you. In case, a filter can easily take care of these spams. Similarly, Gmail do not recognize . (periods) in any email address. Thus you can insert any number of periods in your email id.
So, if your email address is firstname.lastname@gmail.com, then any email sent to any of the following address will be delivered to your inbox:
• firstnamelastname@gmail.com
• first.name.last.name@gmail.com
• firstname....lastname@gmail.com
• f.i.r.s.t.n.a.m.e.l.a.s.t.n.a.m.e@gmail.com
• first.name...last.name@gmail.com
• firstname.lastname+blog@gmail.com
• firstname.lastname+my.blog@gmail.com
• first.name...last.name+bank@gmail.com
• firstname.lastname+this.site.is.not.good@gmail.com
• firstname.lastname+@gmail.com
• firstname.lastname+...+@gmail.com
• firstname.lastname...+@gmail.com

To matter more interesting Gmail also offers another bonus. Any email ending in @googlemail.com is same as @gmail.com. So, any email sent to firstname.lastname@googlemail.com will also be delivered to your inbox. And yeah, you can replace gmail by googlemail in all the examples above without ruining anything.

Check unofficial user guide and complete gmail tips, if you want to get more out of your gmail.

Enjoy Gmail!!

## cron scripts being executed at wrong time

Checked on: Ubuntu Karmic Koala 9.10

Few days back I was shocked to see that one of my cron scripts was being executed at 3:24PM, which was actually scheduled to be executed at 4AM. Probing with the system logs further revealed that none of the cron scripts were following the specified schedule. After googling a little bit I found that it is a common problem and has been discussed in many forums. Here is a synopsis of the all the discussions.

Cron is a utility, which is supposed to automatically execute specific commands periodically (daily, monthly etc). The preferences of the schedule for root is stored in /etc/crontab file and can be edited directly to make changes. Check this link to understand structure of crontab. Non-root users can also have their own cron schedule but their crontab file are located at different location. So, non-root users are suggested to use following command for editing their crontab. crontab -e Default entry of /etc/crontab is given below: # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user    command 17 *    * * *    root    cd / && run-parts --report /etc/cron.hourly 25 4    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6    * * 7    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6    1 * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) # Let us examine following line from crontab. 25 4    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) It means that cron will execute following command daily at 04:25 AM as root. test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )` The problem lies in first part of the command i.e. test -x /usr/sbin/anacron. The test command checks that whether the file /usr/sbin/anacron exists (& is executable), and if it exists then do not execute the next part (where actually scripts are being called). So, crontab is actually instructing to skip the execution of scripts at the scheduled time, if anacron is installed !! Sounds funny :) Clearly, this anacron is the culprit of all the chaos in schedule.

Anacron performs periodic command scheduling but without assuming that the system is running continuously. Cron schedules are not executed if the system is not running at the scheduled time. Anacron makes sure that these commands are run at the specified intervals as closely as machine uptime permits. Anacron reads a configuration file (/etc/anacrontab) that specifies the jobs Anacron controls, and their periods in days. If a job wasn't executed in the last n days, where n is the period of that job, Anacron executes it. Anacron then records the date in a special timestamp file that it keeps for each job, so it can know when to run it again. So, when a schedule is missed, the job is execute after next boot and a timestamp (depending on period of the job) is fixed for next run. This process may ultimately lead to timestamps which are too much out of the cron schedule. And this creates all the chaos.

Anacron is cron-complement (it requires cron) for laptop and home PC which are not running 24x7. So, Ubuntu Desktop edition have anacron installed by default and the crontab is configured so that cron is over ridden by anacron, if installed. The test commands can be removed from crontab as given below, if this default behavior is not required.

Note:
1. There are some known issues with hardware-clock time, when timezone is different. Check last few sections of this page.
2. fcron is intended to provide better features for periodic command scheduling.