Sunday, September 20, 2015

Monday, September 5, 2011

Are Indian Speculators About to Find Religion?

Wow! Its been a long break from blogging. My last post was in April 2009. And I have enjoyed all this time doing my computer science studies, researching and learning new technologies.

But, there is something else about this period. There was a bull market in stocks, commodities since March 2009 of historical proportions. Credit has flown big time in emerging markets during this time and India has been a big receiver.

Speculators made hell lot of money during this time. Stocks, commodities, real estate, bla bla. And what were Indian businesses doing all this time. Any guess? Speculation. Very easy :) My logic behind saying so is that people who were playing government policies, money flow etc made good money. Everyone seem stressed to recover from 2008 blow.

Availability of easy credit encourages speculation and kills innovation. India was already on very low side of innovation since economic boom starting in 1990, but bull market since 2009 caused even more damage.

For me, its easy to see that actual long term growth comes from real innovation. America has grown in 20th century not because of fast food drive thru chains, but because of industrial, rail road, aviation, computer, internet, & telecommunication boom. Market for American banks contracted after 1970 due to rise of corporate bonds and they starting looking for growth outside. They are good at engineering boom bust cycle, making truck loads of profit in between. All they need is "favorable government policies". And what goes into favorable government policies.
  • Willingness to force people in speculative assets by lowering bank saving interest rate.
  • Stealing money out of common men pocket by creating inflation and making sure that debtor gets paid for foolish speculation.
And India has favorable policy response by running 10% inflation for more than a year. RBI was "behind the curve" for major portion of this time in interest rate tightening.

Who gains for this "favorable government policies"? If one thinks technology companies like Infosys etc. then he/she is wrong. Infact, technology companies come under pressure to raise salaries because employees can't keep up with rising prices of all the stuff we need and want (home/property).

I have seen a lot of guys (especially since start of 2003 commodity and stock bull) who were poor in studies, lazy, dilatory make good money. And lately they have been feeling very confident. They feel as if guys who burnt mid night oil in their teens, studied in 115 F temperature without A/C were fools. And they have gone neck deep in speculation.

Stocks and other speculations are stairs up and elevators down. Losses come fast and wash out profits of last few years. Stock markets are like NBA. Only difference being its easy to jump in and start playing. But, organizers of this game are not lame and they are not here to distribute paper money among incompetent people. James has presented this fact really well in his article CAN THE AVERAGE JOE MAKE IT IN THE MARKET? that one is more likely going to get his butt handed to him in market.

Unfortunately, for speculators, bull market in India came when world was beginning to enter prolonged bear phase. Fed's low interest rate policy enabled hot money flow to emerging markets and Fed's low interest policy is in place because US and world economy is on shaky grounds.

Recently, I have seen 2 casualties in my circle due to speculation. And I am sure this count will continue to increase till 2015-2016 by which time I think assets around the world will correct severely to the downside. This will be good for free markets in long run. And I am sure that Indian businessmen and speculators will find religion by that time.

I only wish that things remain good and favorable for innovative, hard working people. Though some pain will be inevitable.

And those who think technology or software is dead.. Software is not dead, it's just the beginning. If software become less profitable, that doesn't mean software is dead. It can be very profitable at some time in future. And software is not just able microsoft, apple, google, or facebook. I would like to quote Prof. Hal Abelson from Lecture 1a "Introduction to Lisp" 

"thousands of years ago Egyptians thought Geometry was about surveying instruments (measuring earth).. when some field is really starting, its easy to confuse the essence of what you are doing with the tools that you use.. right now we know less about essence of computer science like ancient Egyptians knew about geometry.. Now when we look back at Egyptians, we know that they were actually trying to formalize the notion about space and time, to start a way of talking about mathematical truth formally, that led to all the modern mathematics.. Similarly, in future people will look back and say those primitives in 20th century were fiddling around with gadgets called computers but really what they were doing is starting to learn how to formalize intuition about process.. how to do thing.. "

With all due respect to Prof. Hal Abelson, I agree with him. And my thoughts on software are very similar to those expressed in the article Why Software is Eating the World.

Friday, April 17, 2009

Lower your CO2 emissions

If you are reading this, then you may be a frequent computer user. Desktop or laptop computer run on electricity and hence appear very environment friendly against a car or any other fossil fuel burning machine. 

But, most of the electricity generated at present (2009 AD) across the world comes from thermal power stations which generate electricity by burning coal or petrol. These power stations release millions of tons of CO2 (Carbon Dioxide) every year. CO2 is a green house gas and is making our planet earth warmer. 

We all computer users can help prevent our earth by following a few easy tips:
  • Turn off computer/laptop completely when away for more than a day or so.
  • Change settings to turn off monitor if idle for more than 2 minutes.
  • Use stand-by mode if stepping away for more than 1/2 hr. You may automate settings for stand-by mode if system is idle for more than 1/2 hr (I personal don't like automatic setting for stand-by)
  • Some Operating system has very fast hibernate and stand-by mode. Fast mode saves frustration by avoiding 1-2 minute wait while the system wakes up. I have heard Apple computer go to sleep and stand-by in a flash and wake up is also equally fast. Apple users shutdown system rarely. They simply press the sleep button.

Personally, I have been following these tips for last few months. Shutting down office computer during weekend and hibernating personal laptop while stepping away saves many pounds of CO2 emissions every week. Turning car engine off at night might sound intuitive but turning off computer isn't that hard either. Isn't it.

Thursday, April 16, 2009

When do companies issue common stock?

Companies issue common stock under 2 circumstances:

  1. when they absolutely have to
  2. when they're stupid not to
Case 1: In bad times, companies may issue common stock to raise money and pay off their debt or fulfill other obligations.

Case 2: In good times, companies can raise huge amount of money taking advantage of high stock prices. The money may be used for fueling further growth and projects or for nothing :). Just because other companies are taking advantage of high stock prices some rouge companies do follow the trend.

Wednesday, March 11, 2009

How to mount/format a USB mass storage device (pen drive) in Linux

Using a USB mass storage device with Linux is not difficult at all. Linux is well equipped with command line utilities which can help accomplish this task in few easy steps.

Step1: Determine device file

When a USB device is connected to a machine running Linux, Linux kernel (brain of Operating System) will detect that a device has been connected to it and will log a message like this:

usb.c: registered new driver usb-storage
scsi3 : SCSI emulation for USB Mass Storage devices
Vendor: Generic Model: USB Disk Rev: 1.10
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi removable disk sdb at scsi3, channel 0, id 0, lun 0
SCSI device sdb: 7897088 512-byte hdwr sectors (4043 MB)
sdb: Write Protect is off
sdb: sdb1 sdb2 sdb3 sdb4
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
USB Mass Storage support registered.

The message above is obtained by running command

dmesg command display message logged by Linux kernel. The message displayed above can be found at the end of log for a device connected a while ago. You can also run dmesg|tail to see last few lines.

The message above says that a USB device has been detected and the device file (don't bother what a device file is) is sdb for the whole device and 4 partitions are available at sdb1 sdb2 sdb3 sdb4. The device file are usually located under /dev directory. So
/dev/sdb is the device file for whole USB device and partitions are

Skip Step2 and Step3 if you don't want to change partitions and reformat partitions.

Step2: Alter partition table

fdisk utility helps in add/delete partitions. In our example, we have 4 partitions, lets delete them and create 1 partition of type FAT32.

Run fdisk as root user or sudo

1. Type sudo fdisk /dev/sdb to run fdisk program. It will display a command line interface.

#sudo fdisk /dev/sdb

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

2. Type p to print partition table

Command (m for help): p

Disk /dev/sdb: 4043 MB, 4043309056 bytes
125 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 ? 100405 247697 570754815+ 72 Unknown
Partition 1 has different physical/logical beginnings (non-Linux?):
phys=(357, 116, 40) logical=(100404, 79, 11)
Partition 1 has different physical/logical endings:
phys=(357, 32, 45) logical=(247696, 24, 51)
Partition 1 does not end on cylinder boundary.
/dev/sdb2 ? 21767 271577 968014120 65 Novell Netware 386
Partition 2 has different physical/logical beginnings (non-Linux?):
phys=(288, 115, 43) logical=(21766, 48, 47)
Partition 2 has different physical/logical endings:
phys=(367, 114, 50) logical=(271576, 60, 42)
Partition 2 does not end on cylinder boundary.
/dev/sdb3 ? 241276 491086 968014096 79 Unknown
Partition 3 has different physical/logical beginnings (non-Linux?):
phys=(366, 32, 33) logical=(241275, 3, 30)
Partition 3 has different physical/logical endings:
phys=(357, 32, 43) logical=(491085, 14, 39)
Partition 3 does not end on cylinder boundary.
/dev/sdb4 ? 372346 372354 27749+ d Unknown
Partition 4 has different physical/logical beginnings (non-Linux?):
phys=(372, 97, 50) logical=(372345, 119, 25)
Partition 4 has different physical/logical endings:
phys=(0, 10, 0) logical=(372353, 14, 33)
Partition 4 does not end on cylinder boundary.

Partition table entries are not in disk order

3. Type d then 1 to delete first partition.

Command (m for help): d
Partition number (1-4): 1

4. Repeat command d to delete other partitions.

5. See current partition table with command p

Command (m for help): p

Disk /dev/sdb: 4043 MB, 4043309056 bytes
125 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes

Device Boot Start End Blocks Id System

Note: These changes are still not saved to the device. So if you want to quit, exit fdisk using command q

6. Create new partition with command n and then enter p for primary e for extended partition. If you want to have less than 5 partitions in your device, then enter p and create a primary partition.

Command (m for help): n
Command action
e extended
p primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-1018, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1018, default 1018):
Using default value 1018

Command (m for help): p

Disk /dev/sdb: 4043 MB, 4043309056 bytes
125 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 1018 3944719 83 Linux

7. The new partition is type Linux. If you want to create partition of type say "FAT32" then use t command to toggle partition's ID.

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): b
Changed system type of partition 1 to b (Win95 FAT32)

8. See you changes and if fine with it, then save changes and exit fdisk.

Command (m for help): p

Disk /dev/sdb: 4043 MB, 4043309056 bytes
125 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 1018 3944719 b Win95 FAT32

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
Syncing disks.

Step3: Format partition

If you have create new partition(s), then fdisk command just create/alters partition table. The partition still need to be formatted to make it usable.

Command mkfs helps in formatting a partition. For example:

#sudo mkfs -t vfat /dev/sdb1
mkfs.vfat 2.8 (28 Feb 2001)

Step4: Mount a partition

When we connect a device to Windows, it mounts it automatically as some drive such as F:. In linux, we need to do it manually. Lets say we want to mount /dev/sdb1 (First partition) at /mnt/d. So create this directory
#sudo mkdir /mnt/d

and run command
#sudo mount -t vfat /dev/sdb1 /mnt/d to mount the partition.

Finally, We have mounted the USB device and its available for use under directory /mnt/d.

Step5: Unmount partition

To disconnect device, we have to unmount all the partitions previously mounted. This can be done as follows:
#sudo umount /dev/sdb1
#sudo eject /dev/sdb

With these easy steps, we can easily use USB mass storage devices with Linux.