Thursday, August 11, 2011

Decompressing .ZIPX on Unix-like systems

Any new technology tends to go through a 25-year adoption cycle.
-- Marc Andreessen
Newer versions of WinZip introduced the extension .zipx for the ZIP files that use newer compression methods. Many commercial programs offer support for .zipx files but if you want a free and open source program to handle .zipx (especially to decompress .zipx files), you can use 7zip ( 7-zip added support for .zipx files in version 9.18.

On Windows, any installer with version >9.18 will do the trick.
    On Unix-like systems, there are few possibilities to install and use 7zip (mind you, only 7zip versions >9.18 support .zipx format):
    • Find a 7zip package for your distribution's package manager (or, compile 7zip yourself).
      That's it!

      Saturday, July 02, 2011

      Collections of freely available Computer Science research publications

      Information Wants To Be Free. Information also wants to be expensive. ...That tension will not go away. -- Stewart Brand
      Publications (journals, research papers etc.) on IEEE, ACM etc. are not available for free. But there are many websites online that collect and archive freely accessible Computer Science research publications.

      Open access to 685,652 e-prints in Physics, Mathematics, Computer Science, Quantitative Biology, Quantitative Finance and Statistics. Pre-publication versions of many IEEE, ACM etc. publications are available on this website.

      A collection of freely available, previously difficult-to-access, academically-oriented digital resources that are easily searchable by anyone. It has digital resources including born-digital texts, audio files, images, movies, datasets etc. The collections include theses, technical reports, research papers, image collections etc.

      OpenDOAR is an authoritative directory of academic open access repositories. Each OpenDOAR repository has been visited by project staff to check the information that is recorded here. This in-depth approach does not rely on automated analysis and gives a quality-controlled list of repositories.

      Bielefeld Academic Search Engine (BASE) is one of the world's most voluminous search engines especially for academic open access web resources. BASE is operated by Bielefeld University Library.

      5. (This advanced search page has a drop down menu "Resource Access" to display only 'free' publications in search results).
      INFOMINE is a virtual library of Internet resources relevant to faculty, students, and research staff at the university level. It contains useful Internet resources such as databases, electronic journals, electronic books, bulletin boards, mailing lists, online library card catalogs, articles, directories of researchers, and many other types of information.

      Shodhganga@INFLIBNET Centre is a reservoir of Indian thesis and dissertations.

      Under the initiative called “ShodhGangotri”, research scholars / research supervisors in universities are requested to deposit electronic version of approved synopsis submitted by research scholars to the universities for registering themselves for the Ph.D programme.

      Open Journal Academic System (OJAS), another INFLIBNET initiative, archives many journals from Indian colleges and universities (referred to as INFILIBNET Online Journals).

      Wednesday, June 22, 2011

      Assigning keyboard shortcut to easily switch between keyboard layouts

      Never memorize something that you can look up. -- Albert Einstein
      Lubuntu 11.04 has a tool called lxkeymap to easily switch to another keyboard layout , but there was no way to assign a keyboard shortcut to switch back and forth between two or more keyboard layouts using lxkeymap.

      'phillw' on #lubuntu ( pointed me to this post on ubuntu forums.

      To switch between 'standard' QWERTY and DVORAK layouts:
      setxkbmap -option grp:alt_shift_toggle us,dvorak
      This assigns ALT+SHIFT keyboard shortcut to switching layout between QWERTY and DVORAK.

      Wednesday, April 27, 2011

      How do free and open source projects earn revenue?

      Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program. -- Linus Torvalds
      Ever wondered how commercial companies which develop open source software make money? How are they able to thrive in today's competitive world (with competitors employing tactics such as Fear, uncertainity and doubt, Embrace, extend and extinguish etc). Here are some ways using which free and open source projects get their revenue:

      1. Donations (from users).
      2. Microdonation providers such as flattr and Gittip.
      3. Crowdfunding such as Bountysource.
      4. Advertisements on project's website.
      6. Paid support: Provide support to customers in return for money.

      Tuesday, April 26, 2011

      Potential software project ideas

      The fact is the human race is not only slow about borrowing valuable ideas--it sometimes persists in not borrowing them at all. -- Mark Twain in "Some National Stupidities"
      Mind you, this blog post might be blatantly outdated due to me being unable to update this post in future. Quoting Artificial Intelligence: A Modern Approach: What if a cargo door falls off a passing airliner and I'm crushed under it? So, please do your homework before working on any topic from the list below. In short, don't reinvent the wheel (aka NIH syndrome). Also, if a project idea is already being actively worked on by someone (including you), please post details in comments below so that I can update this post accordingly.

      1. Cross-platform (and preferably free and open source) alternative to Windows Live Writer:
      Though there are many similar alternatives, none of them surpasses Windows Live Writer.

      2. Vertical tabs support in chromium/chrome web browser:
      Similar to vertical, (nested) tree style tabs for firefox. There had been some work (removed?) done already on this but there's no consistent implementation for all operating systems (plus, none of methods seem to work on linux and other unix-like systems).

      3. ext4 (as well as better ext3/ext2) FS drivers for Windows OSes:
      There are a few drivers out there but none of them have rock-solid (Todo: Define 'rock-solid') support for ext4 (as well as ext3/ext2).

      4. Better open standard for authorization:
      I'm talking here about alternatives to OpenID and OAuth. Both OpenID and OAuth seem to have potential problems.

      1. Most projects that had participated (or applied) in Google Summer of Code in past years have some sort of ideas/brainstorming page (e.g. 1, 2, 3 etc.). The 'ideas' page are (usually) a rich source for potential project ideas. GIYF.

      I'll append more ideas to this post as and when they pop up in my mind. Post your ideas in comments to be added to this blogpost. Links to similar lists on web are also welcome.

      Wednesday, April 20, 2011

      GRUB bootloader

      Don't bother people for help without first trying to solve the problem yourself. -- Colin Powell
      Source (of most of info in this post): (Reply #2, #5, #7). Thanks 'micmast'.

      If GRUB bootloader was overwritten with Windows bootloader when trying to repair some Windows OS, you may reinstall it without the need of reinstalling your linux distro from scratch. Follow these instructions:

      1. Boot into a linux *live* CD. Choose your favourite distribution. I personally prefer Debian. All the steps after this step should be done as root user in terminal.
      2. Mount the partition on which linux is installed (here /dev/sda1) using something like:
        # mount /dev/sda1 /mnt/sda1
        Use 'fdisk -l', cfdisk or gparted to find your linux partition. Or, you can also try mounting using a graphical file manager and then typing 'mount' to know partition and it's mount location.
      3. Next mount /dev, /proc and /sys:
        # mount --bind /dev /mnt/sda1/dev
        # mount --bind /proc /mnt/sda1/proc
        # mount --bind /sys /mnt/sda1/sys
      4. Now you need to chroot to your linux installation:
        # chroot /mnt/sda1
        From now on, whatever you'll do will be applied to linux installed on partition /dev/sda1. You have got access to your installed linux using a live CD.
      5. Let's install GRUB now:
        # grub-install /dev/sda
        Note that you need to type the name of your hardrive in the above command (and *not* the partition on which linux is installed).
      6. To close chroot environment (not sure about some of steps below):
        # umount /proc
        Now, press CTRL+D (i.e. the keycombination). Then:
        # umount /mnt/sda1/dev
        # umount /mnt/sda1/proc
        # umount /mnt/sda1/sys
      That's it. Reboot and remove your live CD. You'll be greeted with your GRUB.
      You can also try using AutoSuperGrubDisk or Super Grub Disk.

      Note: Also, sometimes GRUB cannot correctly find the OS or kernel version (in case multiple kernel versions are installed) on your computer. If you find any of installed operating system missing from GRUB boot menu, login to your linux installation and run following as root:
      # update-grub
      Ideally, this will find all installed operating systems and update your GRUB menu accordingly.

      Thursday, April 14, 2011

      Getting multimedia keys to work on Unix-like systems

      1. I tested this with Xorg, though it should flawlessly work with Xfree86 too.
      2. Thanks 'macrobat' on #debian ( for help.

      First of all setup your ~/.Xmodmap based on following links:

      Now you need to bind keys using xbindkeys. Install 'xbindkeys', if it's not already installed. Now generate ~/.xbindkeysrc using:

      xbindkeys --defaults > /home/amber/.xbindkeysrc

      Or else, simply start with a new blank file ~/.xbindkeysrc in your text editor. Then edit the code snippet below to match your system and put it in ~/.xbindkeysrc. As you had probably guessed yourself, you can bind other actions/commands specified in your .Xmodmap here.
      # mute
      "amixer sset Master toggle"
        m:0x0 + c:160
      # vol down
      "amixer set Master 2dB- unmute"
        m:0x0 + c:174
      # vol up
      "amixer set Master 2dB+ unmute"
        m:0x0 + c:176
      Note: The lines indented in the code above may be different on your system. To find them, use:
      xbindkeys --key
      Now, put these line to your .xinitrc:
      xmodmap ~/.Xmodmap
      xbindkeys -f ~/.xbindkeysrc
      Then restart X.

      Saturday, April 09, 2011

      Error in virtualbox: "No suitable vboxnetflt module for running kernel found"

      If you get this error during boot on console:
      "No suitable vboxnetflt module for running kernel found"
      and you are unable to run any virtual machines inside virtualbox, then you are missing the linux kernel required to run this version of virtualbox.

      This log (from debian lenny) provides some useful information (Lines 90, 91, 92, 108, 109, 110 are worth noting):

      So, find out the version of linux kernel you need and install it using your package manager.

      Thanks to folks at #debian, #vbox (at freenode) for help. 

      Thursday, April 07, 2011

      Editing PDFs on Unix/BSD/Linux

      Computers make it easier to do a lot of things, but most of the things they make it easier to do don't need to be done. -- Andy Rooney
      Programs in the list that follows are free (at least for non-commerical use) at the time of writing.

      1. PDFedit

      2. flpsed

      3. Xournal

      4. Jarnal

      5. PDF-Xchange viewer (Use Wine to run this program under *nix.)

      Note: Alternatively, there are many online PDF editors available. You know how to use Google...right? 

      If I find other similar applications, I'll append them to this post.