Thursday, February 10, 2011

Ubuntu: How to Auto Hide top and bottom panels?

Auto hiding top and bottom panels has become essential to have more usable space while working at my 14" laptop.


This is how it is done.
  1. Right click on the panel which you want to auto hide once you move away from it
  2. Goto properties
  3. Pick up 'Auto Hide' option from there
     You can do the same for the top panel.

    The wonderful thing about Ubuntu is that it never comes in your way. Auto Hiding would make you even more distraction free.

    Wednesday, November 3, 2010

    Ubuntu - Input in Tamil | உபுண்டுவில் தமிழ் உள்ளீடு

    ஒரு வழியாக உபுண்டு 10.10ல் (மாவரிக்) தமிழ் உள்ளீடிற்கு வழி செய்து விட்டேன். System > Preferences > Keyboardல் நமக்குத் தேவையான tamilnet99 மற்றும் tamil phonetic (தங்கிலீஷுல தட்ட) layouts இல்லையே என்று நீங்களும் அலை பாய்ந்து கொண்டிருந்தால், இத பண்ணுங்க:
    1. sudo apt-get install ibus ibus-m17n m17n-db m17n-contrib ibus-gtk
    2. System > Administration > Language Support > Keyboard Input Method System [ibus]
    3. System > Preferences > Keyboard Input Methods (ibus ஆரம்பிக்கச் சொல்லுங்க. logout செய்து அப்புறம் login பண்ணுங்க)
    4. திரும்பவும் System > Preferences > Keyboard Input Methods போய் Input Methodல உங்களுக்கு தேவையான layoutஅ தேர்ந்தெடுத்துக்குங்க. நான் tamilnet99 மற்றும் tamil phonetic layouts எனக்கு போதும். வெறும் சைனா layout மட்டும் இருந்துதுனா, முதல்ல குடுத்துருக்கற installationஅ ஒழுங்கா பண்ணுங்க.
    5. இன்னொரு தரம் logout செய்து அப்புறம் login.
    6. ctrl+space குடுத்து தமிழுக்கும் ஆங்கிலத்துக்கும் மாத்திக்கலாம்.

    நன்றி: http://ubuntuforums.org/showthread.php?t=1592226

    Monday, May 17, 2010

    Open source Is Not Charity

    Unlike most people think, open source is not charity. It is a viable business model which has tremendous of success. Let us see how some open source companies/products make money.
    • Whenever you use firefox's search box, mozilla gets paid by the search providers, mostly google of course.
    • Ubuntu sells OS to netbook manufacturers. They also charge for professional support.
    What are the ways to make money?
    • Professional support is something companies would pay for.
    • Make the basic version free; Charge enterprisy features.
    • There are always innovative ways, like firefox, to get revenue without asking money from the user or throwing some flashy ads.
    What do you get?
    • Collaboration with the users. Open source is very close to agile methodologies in this aspect. Probably the user collaboration is the best in open source than the usual commercial development model.
    • Community who volunteers to help other users.
    • Voluntary contribution in all areas of software development like code, testing, packaging, documentation, project management you name it.
    • Good open source products usually don't need much of marketing; or separate training. Internet makes it possible to reach the users, rather user will reach you.
    Challenges

    As they say, there is no such thing as free lunch. Creating a good community is the biggest challenge. Of course creating great product cannot be considered as any less of a challenge either.

    Thursday, September 10, 2009

    Design Patterns Study Group - Strategy


    (click to enlarge)

    This is the mind-map for the material I have created to be discussed in Design Patterns Study Group on Strategy pattern at my office.

    The intention is to trigger the thought process. If you are interested know more about study groups check out this and this.

    Friday, March 27, 2009

    Coolest Way To Google

    Search box is among the cute features (apart from tabs, ad blocking, extensions, etc of course) which made me switch to Firefox. But do you know that is not required anymore?

    You can put in your search text directly in your address bar. If the address bar does not contain a valid url, Firefox would consider it for searching. Here is an illustration:



    Based on the result it will either take directly to the best match or show you the search results page.

    All of the popular browsers (Opera, Chrome, IE) have this feature now.

    Tuesday, September 9, 2008

    Costly Programming Error


    Text: The Ariane-5 launch on June 4, 1996; it crashed 36 seconds after the launch due to a conversion of a 64-bit floating point into a 16-bit integer value.

    Courtesy: Principles Of Model Checking (MIT Press)

    Tuesday, June 17, 2008

    'Temp'ting

    I was working on a personal project. I needed to create my outputs in temporary folder. How do we get the temporary folder path in Ruby?

    In Windows, we have an environment variable named TMP or TEMP to point to the temporary folder path. In order to access environment variables, Ruby defines ENV object. So

    ENV['TMP']
    

    would get me the temporary folder path. But this is windows only. Linux need not have this environment variable defined. So we need some other portable technique.

    As you would know, it is easy to create a temporary file using Tempfile.

    require 'tempfile'
    tmp = Tempfile.new('foo')
    

    It is portable way of creating a temporary file. A temporary file will be created in temporary directory. Tempfile also has a neat path method which would help us.

    require 'tempfile'
    tmp_path = Tempfile.new('foo').path # we got the temporary directory for any platform
    

    But wait. Creating a dummy file just to get temporary folder path? Yuk. There must be a better way. Hey, you know what? There is a better way.

    I almost forgot Ruby is open source. We could take a look at tempfile and see how they did it. Here is what we get. I simplified it a little bit for readability.

    require 'tmpdir'
    class Tempfile
      def initialize(basename, tmpdir=Dir::tmpdir)
      end
    end
    

    We have tmpdir library, which has a neat Dir::tmpdir just fit for our purpose. Let's just try it out with our little friend irb:

    irb(main):008:0> require 'tmpdir'
    => true
    irb(main):009:0> Dir::tmpdir
    => "/tmp"

    I got what I want. I don't have time to snoop around further and see how Dir::tmpdir gets the temp path portably. May be some other time...