Sunday, April 01, 2012

Must watch technology/CS related videos!

No matter who you are and what you do, you MUST watch these 19 technology related videos (filled with fun field trips and interviews; nothing technical).

This starts with a trip to Computer History Museum (California) to see world's first computer (Babbage Engine), world's first hard drive, a good old Google server rack etc.:

Computer History Museum
Next is a visit to Stanford's SLAC National Accelerator Lab (and SLAC's 'hugey' datacenter):
Present Of Computing
Slac And Big Data
This is followed by trip to Mozilla's and Benetech's offices (with 'tiny' talks with Directors  of Firefox and Benetech):
Mozilla
Open Source
Getting Involved
Having An Impact
Benetech
And, then a visit to University of California at Berkeley (UCB) to see the future of computing (quantum computing, energy aware computing etc.):
Future Of Computing
Text Analysis
Energy Aware Computing
Computer Security
Theory Of Computation
Quantum Computing
Stay Udacious (featuring Professor David Evans of Udacity and University of Virginia)

Note: These videos are posted in Unit-7 of free, online CS101 "Building a Search Engine" course taught by Professor David Evans (of University of Virginia). This introductory level Computer Science course (with no prerequisites, no programming experience, no Computer Science background) will be re-offered starting April 18, 2012. Visit www.udacity.com to sign up and enroll for this and other free courses offered by professors/experts from top notch organizations in the world (Stanford University, University of Virginia, Google etc.).

Wednesday, February 29, 2012

Installing MATLAB on Linux

Notes:
  1. These instructions have been tested for MATLAB R2011a on Lubuntu 11.10.
  2. For more details, refer to install_guide.pdf in MATLAB setup ISO/folder. You can get this file (and complete official MATLAB documentation) for free (just create a free MathWorks account) at:
I followed these steps to install MATLAB on Lubuntu Linux:
  1. Extract or mount the MATLAB ISO file. Let's assume that you extracted MATLAB ISO file to
    /home/user/matlab
  2. Change to the extracted directory and run:
    cd /home/user/matlab
    sudo ./install
  3. When I ran above command, I got this error message (and installer exited without completing the install):
    user@system:~/matlab$ sudo ./install 
    [sudo] password for user: 
    Preparing installation files ...
    Installing ...
    eval: 1: /tmp/mathworks_2463/java/jre/glnx86/jre/bin/java: Permission denied
    Finished
    user@system:~/matlab$
    MathWorks India has a solution page to this problem. It lists the cause of problem and a solution. But this solution is better (imho) and worked very well for me! All you need to do is run following command on terminal/console:
    • For Linux (32-bit):
      chmod ugo+x /home/user/matlab/java/jre/glnx86/jre/bin/java
    • For Linux (64-bit):
      chmod ugo+x /home/user/matlab/java/jre/glnxa64/jre/bin/java
    Google has loads of related stuff if you search for "matlab java Permission denied".
  4. Don't start MATLAB after installation. Run these commands on terminal [1]:
    mkdir ~/.matlab
    sudo chown -R ${USER}:${USER} ~/.matlab
  5. MATLAB got installed (by default) to /usr/local/MATLAB. To run matlab use:
    /usr/local/MATLAB/R2011a/bin/matlab
[1] http://thameera.wordpress.com/2010/10/21/installing-matlab-2008a-on-ubuntu-10-10/

Monday, February 27, 2012

Access remote shared space from PCManFM

Notes:
  • PCManFM uses SSHFS to connect to mount and interact with files and directories located on remote system.
  • Methods 1 and 2 (below) have been tested on PCManFM 0.9.9.

Method 1:
  1. Open PCManFM.
  2. Type following in address/location bar (and then press Enter/Return key):
    ssh://user@server/dir/to/mount 
    where user is your username on remote server, server is remote server's URL/IP and /dir/to/mount is a directory on remote system which you need to access (you need to have appropriate access privileges on the directory on remote server to be able to access it).
  3. Depending on your connection speed, a new window will open prompting you to "Enter password for ssh as user on server". Enter your password in the text box (and then press Enter/Return key again).
This will connect you to your remote shared space in PCManFM.

Method 2:
(Source: http://en.wikipedia.org/wiki/SSHFS) 
  1. Mount a remote SSHFS share using:
    sshfs user@server: /path/to/mount/point
    where user is your username on remote server, server is remote server's URL/IP and /path/to/mount/point is the mount point on your local system.
  2. Browse to mount point (specified in previous command) in PCManFM.
  3. To unmount from a remote SSHFS share:
    fusermount -u /path/to/mount/point
PS: Methods 1 and 2 (above) are same (in the context of approach they take to mount a remote SSHFS share).

      Sunday, February 19, 2012

      Error: USB device over current status detected

      A few days ago when I booted my system, I was stuck at POST screen with following error message:
      USB device over current status detected.
      00 USB mass storage devices found and configured. 
      I searched the internet (on another system) and found out few solutions but nothing could solve my problem. Then luckily, I looked at my front panel USB port on my computer cabinet and found out that someone (not me!) had mistakenly inserted 3.5mm TRS plug into USB female. I removed it, then rebooted my system and everything was back to normal.

      Friday, February 17, 2012

      Key points in Professor Thrun's "Higher Education 2.0" talk at DLD 2012

      This is an excerpt from Professor Sebastian Thrun's talk at DLD 2012 titled "Higher Education 2.0". He announced Udacity in the same conference. The complete video of his talk is available on youtube (If you have ~22 minutes to spare, go watch it. This excerpt is nothing when compared with his talk).


      "...So, we scrambled. We put together a small technology team. We built a really ugly website. And, we started recording ourselves day and night. And just to show you how primitive our technology was, there was literally a camera, a pen and a webcam...

      We decided to flip the entire way we teach. Rather than lecturing students, we decided to quiz students... The principle way of engaging is that the student has to think. We are doing this to empower the student to learn which is fundamentally different from the way the lectures take place in universities today... And, we recorded this day and night at the expense of my family life, my sleep; one class took me about maybe 10 to 15 hours to record. And, then something bizarre happened. I was teaching the same class at Stanford to 200 students. On day 1, we had this full class of 200 students. And just 2 or 3 weeks in, class was empty. There were only 30 students showing up. So, I asked the students: "What's happening? Why are you not coming to class?". And they all said: "We actually prefer you on video"... You got to think about this. These are students who pay 30000 dollars a year at Stanford University to see the best and most famous of all professors. And, they prefer some video. That was a big shock to us.

      ...Here's my favourite critical email. Here is the very short sentence that moved me. The complaint is that this is a "weeder" class...the class is setup in a way that doesn't motivate but puts really harsh materials in front of students. And, tests them whether they can do it...[This email] was absolutely true. ...in my 20 years of teaching, at Carnegie-Melon, at Stanford, I'd always been a tough teacher. I'd always given students really hard question, I'd always let them fail, and would come to their rescue, making myself look really smart. Here was no purpose of weeding. This was an open university, there was no reason to reduce class size, there was no certificate to be earned; and here I was teaching a weeder class". Then I started to realize that we really set up our students not for success but for failure. We really empower professors by looking smart, and we don't really help the students to become smart. And this was just one example of a person who was dropping out, because I was the smart-ass who didn't help her.

      I started realizing that grades are the failure of the education system.

      Giving somebody three, or four, ... just means that really educators failed to get them to A+ level. So rather than grading students, with grades, as I'd done in the beginning of the class, my task had to be to make students successful, to get everybody to an A+ level. So it couldn't be about harsh questions and difficult questions, where they had one chance, and when they got it wrong they got a C, we changed the entire system to make it so that the questions were still hard, we gave more assistance, we let them take it multiple times, when they finally got them right they would get an A+ and I think it was much better for that.

      That really made me think about the education system as a whole.

      Salman Khan (of Khan Academy) has this wonderful story: when you learn to ride a bicycle, and that's quoting from his talk, and you fail to learn a bicycle, then you don't stop learning a bicycle, give the person a D, and move on to a unicycle. You keep training them as long as it takes to ride a bicycle, and then they can ride a bicycle.

      Our classes today, in math for example, when someone fails, we don't take the time or the needs  to make the student a strong student, we give them a C or a D or an F, then we move to the next class, and now they're already brain-marked as losers, they miss the necessary skills and knowledge, and they're set up for failure.

      This medium has the opportunity to fundamentally change all of this.

      ... Maybe we should rethink education. Universities were invented in 1088, about a thousand years ago.... The lectures were the most effective way to convey information. ...[we had the invention] of digital media. And, miraculously, professors today teach exactly the same way they taught 100 years ago. University has been the most suprisingly the least innovative of all places in society. Perhaps we should reconsider and think about new media, for teaching, that can personalise themselves and helps us to become effective."


      PS: I plan to annotate this post except that I don't know when it'll happen. In the meantime, bolded text in above quoted text will further highlight some points that are worth noting.

      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 (http://www.7-zip.org/). 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).
        • Or, you can install and use 7zip in wine (http://www.winehq.org/).
        • Or, use p7zip POSIX/Linux x86 binary (http://sourceforge.net/projects/p7zip/files/p7zip/)
          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.

          1. http://arxiv.org/
          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.

          2. http://oaister.worldcat.org/
          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.


          3. http://www.opendoar.org/search.php
          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.

          4. http://www.base-search.net/
          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. http://infomine.ucr.edu/cgi-bin/search (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.

          6. http://shodhganga.inflibnet.ac.in/
          Shodhganga@INFLIBNET Centre is a reservoir of Indian thesis and dissertations.

          7. http://shodhgangotri.inflibnet.ac.in/
          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.

          8. http://www.inflibnet.ac.in/ojs/
          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 (irc.freenode.net) 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).
          3. Advertisements on project's website.
          5. Paid support: Provide support to customers in return for money.

          I'll append more revenue sources to this list whenever I encounter them myself.

          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.

          Notes:
          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.