Skip to main content

Posts

Showing posts from 2012

Maintain Bibliography on the fly

Often while doing research - big or small - we come across a large volume of information which is but spread across the numerous resources on the Internet, in books etc. Finally when writing reports or just maintaining notes it becomes a mess to keep track where the information came from. Further, maintaining a database with all the various bibliographic fields can be time consuming and distracting. Zotero ( www. zotero .org) is an ideal answer to this problem. It is available as a plugin to the Firefox browser. Besides, adding webpages to the bibliography, the tool is capable of extracting bibliographic information from pdf files stored locally or being downloaded. Imagine, clicking a button and the title, author etc. being automatically extracted from the journal paper. It is also available as a standalone application which also provides connectors to other popular browsers. The best part I like is that it can export the bibliography information to a BibTex file. This can be use...

matplotlib.pyplot - A great way to plot

http://matplotlib.org/users/pyplot_tutorial.html It can be confusing in the beginning - there is this pylab module which are used in the examples on the scipy site, then there is pyplot, pylab and matplotlib. As I understand, matplotlib is the main package and it has two modules - matplotlib.pylab, matplotlib.pyplot. The first one is designed for interactive use and the second one for batch/script use. In the light of my experience with matplotlib.pyplot, I have found it to be very similar to MATLAB in usage. Remember, the above are just plotting libraries. For manipulating vectors, matrices etc. it is the job of Numpy/Scipy

Using Google Project Hosting to publish code is very easy !

If you have some code and wish to publish it - Google's Project Hosting service will be a great help. Don't worry if you think version control systems are difficult. The following tutorial shows how easy it is to use one such system and get your code published. http://sraji.wordpress.com/2009/11/15/how-to-upload-the-code-in-code-google-com-via-svn/ Also have a look at my first project - https://code.google.com/p/timetable-generator/

Learning assembly is easy

More than a year ago, in the fourth semester of my engineering studies I was formally introduced to the assembly level programming of the Intel 8086. However, to test my programs I got a special software package installed on my PC. The extra piece of software was justified as there was the need for an emulator - something that mimics the 8086 on anybody's computer. But the question remained ... when am I going to write an assembly program that I can directly run on my own processor and not on an emulator. Now, after a while and having rediscovered my interest for assembly I have finally figured out that it is extremely easy using gcc on my Linux terminal - Write the assembly code and save to a test file with the extension .s. Next on the terminal $ gcc test.s $ ./a.out Done !! Here is a wonderful tutorial http://linuxgazette.net/issue94/ramankutty.html

The Internet saves the day once again

The Internet at its best - A problem solved at one part of the world, often after days of effort by a select few individuals becomes available for the whole of the world to make use of. Definitely, the internet and its search engines exemplify the spirit of sharing.   Please follow the link below, which clearly illustrates how the internet forum facilitated the solution. http://answers.microsoft.com/en-us/office/forum/office_2010-excel/solved-excel-2010-word-2010-powerpoint-2010-paste/f293995c-c52c-458a-86d6-da41e81d507f   The problem is that of the "Paste options" button note being visible in Microsoft Office 2010 products and as it turns out the culprit is a browser plugin from Skype.

Talents and the pursuit of excellence

Described here is a logical argument that seeks to uncover what it takes to pursue excellence, written especially for readers like the author, who doubt if they are talented enough for the pursuit to be meaningful to anyone. What is excellence ? It is about contributions. To take the example of a student, it is about the knowledge he has acquired, the skills he has earned that will eventually enable him to contribute. For a professional, it is about the contributions he has made to his discipline, organisation, nation etc. It is a truth that a person who is more talented can produce more results and be more excellent compared to one who is less talented. Now consider a less talented individual who says, "There are people more talented than me. I cannot contribute anything more than what they can possibly do." and decides not to pursue excellence. In what follows we examine why his decision is logically flawed. Firstly, we differen...

NP Complete

A good and interesting to read article on NP-Completeness. A great place to start if you don't know what an NP complete problem is ? http://web.mat.bham.ac.uk/R.W.Kaye/minesw/ordmsw.htm

Some good books on C++

Following is a list of seemingly good beginners books on C++ that I weeded out solely based on the book reviews in http://accu.org//   Programming -- Principles and Practice using C++, Bjarne Stroustrup http://www2.research.att.com/~bs/programming.html Book from the inventor of the language. The solutions to exercises in this book are available in the following book: C++ Solutions - Companion to The C++ Programming Language, 3rd Edition; David Vandevoorde, Addison-Wesley, 292pp http://accu.org/index.php?module=bookreviews&func=search&rid=358 C++ Primer, 4th ed, Stanley B Lippman et al, Addison Wesley, pp885 A very popular and early primer on C++. http://accu.org/index.php?module=bookreviews&func=search&rid=778 Answer book to this is available: C++ Primer Answer Book, Clovis Tondo & Bruce Leung, Addison-Wesley, 430pp http://accu.org/index.php?module=bookreviews&func=search&rid=436 C++ From the Beginning, Jan Skansholm, Addison-Wesley, 538pp ...

Analysing Disk Usage

I found a tool called Scanner, very effective in determining which files occupy the most space etc. A review is here http://www.makeuseof.com/tag/visualize-disk-usage-windows-scanner/ The download link is towards the end of the review article.

LATEX, LYX, IEEEtran

I assume you are familiar with LaTeX and Lyx. If not please see this good document http://www.ee.iitm.ac.in/~hsr/ec205/lyx-1.pdf Here I discuss how we can get Lyx to create documents that conform to the IEEE style. The essence is that IEEE has provided a LaTeX package called IEEEtran which an author (irrespective of whether he writes LaTeX code by hand or generates using Lyx) should use to make LaTeX generate the desired format. Hence IEEEtran has to be installed. If you are on Linux its easily done by opening (Synaptic) package manager and searching for "IEEEtran". If you think you got the relevant package, just install it. Now open Lyx and run Reconfigure from the Tools menu. Restart Lyx. Done !! Create a new document in Lyx and choose "article (IEEEtran)" as the Document class from Documents -> Settings. By default the document gets formatted into two columns. However there is option for one column as well. This is done by specifying the appropriate...

Computer Aided Design of Circuits / Circuit Optimisation

This is an interesting field of work which turns circuit design into an optimisation problem and thereby bringing in computer programs into circuit design. The following links to dissertations, webpages etc. will help get started. I could also identify a book on this subject. Book: http://www.personal.rdg.ac.uk/~stsgrimb/book.htm An already working code: http://www.personal.rdg.ac.uk/~stsgrimb/netsyndemo.htm http://www.personal.rdg.ac.uk/~stsgrimb/teaching/optimisation_of_electronic_circuits.pdf Thesis: http://web.mit.edu/varun_ag/www/msthesis.pdf Links: http://pradeepchakraborty.wordpress.com/2011/01/15/anxplorer-new-generation-analog-and-rf-circuit-optimization/

32 bit, 64 bit, what all this means ?

Often there is lot of confusion about certain software running only on 32 bit, the operating system being 64 bit etc. ? I think every computer user must know a little bit of theory as to what the difference between the two really is*. To be precise, 32 bit / 64 bit has to do with amount of memory (RAM) the processor can address. Yes, the first thing that we realise is 32 bit / 64 bit originally has to do with the processor more than anything else - software, operating system etc. If you think this is hard to understand recollect the basics of binary number system. How many different numbers can you represent using 1 bit ? Either the bit can be a zero or a one. Thus I can represent two numbers. How many different numbers can be represented using 2 bits ... four. In general using n bits I can represent 2^n different numbers. Now, for a processor each different number corresponds to a different location on your RAM. Thus a processor which has 32 bits at its disposal can address 2^32 me...

Introduction to circuit simulation

Through this article on circuit simulation my goal is to have a useful tutorial for students and enthusiasts to jump start into circuit simulation using taking advantage of the free software available on the WWW. The softwares run on Linux though. However, I felt that writing a tutorial from scratch will be unnecessary as good tutorial are already there, though not all at the same place. Hence, I have identified some very useful resources and have brought them out here. So, lets start and go in steps. Analyzing Circuits with SPICE on Linux,   http://www.linuxjournal.com/article/2169?page=0,0 by Kevin Cosgrove This article written in 1997, covers the essentials to simulate your first circuit and will give you a puritan perspective of SPICE and its usage. However I recommend that we wait before actually trying out the things. This is because the SPICE package Kevin demonstrates is spice3. However, we shall use ngspice which is nothing but an improvement over spice3 and is now th...

Algebra for Circuit Analysis (ALCIRA)

This project would build a GUI front end based on the Maxima Computer Algebra System. Users would be able to import a netlist (involving elementary elements and the four controlled sources and some alcira specific components like opamps) and then derive symbolic expressions for small signal transfer functions etc. God willing I shall start work on this during the summer vacation this year.

An opinion about "Free Software"

I got an opportunity to listen Dr. Richard Stallman . He clarified what " Free Software " actually meant and also tried to remove some misconceptions that has crept in. My motivation behind this post is to give my personal response to what I heard. In doing so I also try to convey what "Free Software", the philosophy that Dr. Stallman upholds mean. First of all, the "Free" in "Free Software" is about freedom and not about the price. More precisely, it values the following four freedoms of a citizen - to use, learn, copy, modify and redistribute - the software. The freedoms of being able to learn the working of the software and to modify/redistribute it entails the freedom of access to source code. ( http://www.gnu.org/philosophy/free-sw.html ). To reiterate the idea, here is an extract from the GNU GPL (Version 3, 29 June 2007), the license used by the majority of software that are considered "free" - "Our General Public Licenses ...

Jump start into Character Recognition - Part 1

Motivation The dawn of computers and their integration into a huge network called the internet has accelerated the sharing of knowledge like never before. However, there exists a divide between the forms of expression familiar to us and the forms in which the information can be fed in at a computer terminal. For example, when writing about scientific material we make extensive use of diagrams to convey the ideas, but, feeding a graphic into the computer, requires special effort and doesn't come naturally. These and other aspects have always been a matter of concern for me, being someone fond of publishing on the web whatever I know :) Any how, the aim of this article and other in this series is not to demonstrate my solution to the above problem ... instead to attract young and curious minds to the problem so that they may contribute to it solution. Start The plan is to build, step by step, a very simple, character recognition program which would take a simple text file contai...

Some good links

Dedicated to my little brother who follows every youtube video on iPhone with great enthusiasm ... http://www.webofstories.com/play/17060 , amazing videos from wise (elderly) men who have made lasting contributions to their own fields. Often times, we complain about the efficiency of our governments and our public servants. But, I must admit that they have started to respond and lets cheer them for that. Get a glimpse into very interesting plans on providing better access to the globe's knowledge through Aakash, Sakshat, Spoken Tutorials and the like ... http://www.sakshat.ac.in/ http://spoken-tutorial.org/What_is_a_Spoken_Tutorial_English

Information interchange on the web

I have always wanted to publish what I learn in class on the web. Except for cases of very limited success, this wish has never been materialized. The major hurdle that I have faced is really to do with feeding the content into the computer. As a student of engineering, I believe the best way to convey the ideas is through a mix of sentences, illustrations and equations. Had it been only for sentences, it would not have been a problem at all - many of us can type in text faster than we can write with the pen. Unfortunately, bringing an illustrations or an equations in my mind to the computer using direct input, will take much much more time than, say, writing it down on paper and then scanning it in. (At this stage, I would like to gratefully remember all those authors on the web who had put in lot of their time and effort to bring out the millions of beautiful illustrations and equations that are already on the web.) This is where, I feel that the web has a long way to go. Hopefu...

Why the Wikipedia blackout ?

The blackout was in protest of SOPA and PIPA - two bills being considered by the US legislation - which aims at addressing the problem of copyright infringement. My interest here is not about how effective the bills are at combating infringement, but, why Wikipedia is protesting against it. The words of Wikimedia Foundations chief, Sue Gardener, will set the background correct. She says: 'The message of the Wikipedia blackout, and the other responses to SOPA and PIPA, wasn't "Let's talk about how we can combat online copyright infringement." It was: "Don't hurt the Internet. It's too important. Let us do our work. Let us learn and create and share."' (see link at the end) If so, what is there in the bills that would "hurt the Internet" ? Let me try to explain. We are all users of the Internet. The internet is also a medium; but unlike other media, say the television or the newspaper, its users are simultaneously content generators...

Workaround the Blackout: Accessing Wikipedia content despite the blackout

While Wikipedia has announced a blackout for 24 hours against the recent US legislative actions, it has left adequate room for someone in desperate need of accessing the articles. The trick is to stop loading of the page before the redirection happens. As this article,  http://venturebeat.com/2012/01/18/wikipedia-blackout-workaround/ , points out the easiest way to do that would be to hit the escape key. The timing is important here though. Nevertheless you can always reload the page and give a second try. 

Record what you hear - using Audacity

This technique is a potential answer to one or more of the situations that could arise while trying to work with sounds / music on a computer, but with limited resources. How to extract the audio from a video / movie ? How to record what I play on a windows PC ?  How to convert audio from one format to the other ? How to extract the audio from a Youtube movie ? The answer: * Windows provides for accessing the signal going from the soundcard to the speakers, through what it calls a 'Stereo Mix', you just have to point your recording software to use the 'Stereo Mix' instead of the microphone. Voila!, any sound that you can hear on the computer can also be recorded. Step by step procedure for doing this is below. The software that use for recording is the well known Audacity. If you don't have it yet, I recommend you download it. Its a great software. ( http://audacity.sourceforge.net/ ) Step 1: Add and enable 'Stereo Mix' to the group of Recording Devices....