Thursday, June 02, 2011

Registering a Sunone 7 node to the admin server

We have a number of SunONE 7 (now renamed to iPlanet) servers and the documentation online is fast fading, thanks to Oracle.

To register a node after install:

webserver7/bin

/wadm --host= --port= --user=admin

It will prompt for a password.
wadm> register-node

That should register the host successfully.

If you have renamed your server, navigate to the admin-server/config directory and fix the server.xml with the new hostname.

Thursday, February 24, 2011

Tablespace Utilization in Oracle

Taken from: http://vsbabu.org/oracle/sect03.html
Usage

TABLESPACE USAGE NOTES:
Tablespace Name - Name of the tablespace
Bytes Used - Size of the file in bytes
Bytes Free - Size of free space in bytes
Largest - Largest free space in bytes



select a.TABLESPACE_NAME,
a.BYTES bytes_used,
b.BYTES bytes_free,
b.largest,
round(((a.BYTES-b.BYTES)/a.BYTES)*100,2) percent_used
from
(
select TABLESPACE_NAME,
sum(BYTES) BYTES
from dba_data_files
group by TABLESPACE_NAME
)
a,
(
select TABLESPACE_NAME,
sum(BYTES) BYTES ,
max(BYTES) largest
from dba_free_space
group by TABLESPACE_NAME
)
b
where a.TABLESPACE_NAME=b.TABLESPACE_NAME
order by ((a.BYTES-b.BYTES)/a.BYTES) desc

Files modified between times

Sometimes, I get this task to find out files that changed between 2 dates. I never seem to remember it, so I figured it out (googling) and here it is. Hopefully someone else also can use it!

olddate="201001010001"
newdate="201012312359"
touch -t $olddate ./tmp/oldfile
touch -t $newdate ./tmp/newfile
find /path/to/directory -type f -newer ./tmp/oldfile ! -newer ./tmp/newfile

Monday, January 17, 2011

Good Bye 2010, Hello 2011

Where did 2010 go? Everything almost seems to be a blur...I spent almost 350 days working last year I think (yes, that includes, nights, weekends etc).

I'm going to try to recount some happy times ...

January as always is a happy time, as I celebrate my anniversary with my lovely wife. This time, we decided to go to Las Vegas as our friends were staying there and celebrate. A couple of nights at their house, and one night at MGM Grand. It was a good trip! Here is a picture I could find, of giving my wife a surprise gift. I had my Brother In Law bring a pair of ear rings from India, and then send it to my friends place in Las Vegas without telling Lavanya :) (Yes, thats her acting surprised :D)



The rest of the year moved quickly, as we announced that we were going to have our second child!

Ofcourse, who can forget the monstrous winter of 2009 / 2010!


Time quickly flew by after that. We had my uncle, aunt & mom come from India in May / June (I think). They went on an US Tour and Alaska cruise and returned.
We went to a great airshow in May. This was our first time ever, and unfortunately we were a little late, but got to see some awesome acrobatics. Next time, I think we're going to go there for the whole day. Pranav had a blast!




In June, Lavanya had her surprise "Seemantham" or Baby shower at our neighbours house.






Then my In-laws arrived in August to help with our upcoming kid.




September rolled around, and my second son -- Vaibhav Chandra decided he wanted to be born before his due date, and he was born on Sept 3rd.

My parents flew down on the 10th, and so our house was full with family and joy!


On a side note, I flew so often to Toronto this year, it was crazy. I think I made 6 trips in about a span of 3 months, often staying there a week at a time.

After all the excitement was over, we all went to Minneapolis for a week to visit my brother in law (I flew in from Toronto and returned to Toronto !)

November came around, and my birthday passed silently this year, without a party or much fan fare! I think its owed to my little one :)

December came around, and time just flew. I was super busy with work, going to Toronto once that month as well I think.

2010 was definitely a year to remember because of the birth of Vaibhav, but not many things else, as it was a year of constant work and no play! I look forward to a great 2011!

Monday, December 27, 2010

Solaris Jumpstart - setting up the ISO

Step 1: Download the Solaris OS from Oracle
wget --http-user= --http-password= --no-check-certificate --output-document=sol-10-u9-ga-sparc-dvd-iso.zip http://download.oracle.com/otn/solaris/10/sol-10-u9-ga-sparc-dvd-iso.zip &

a. wget may be installed in /usr/sfw/bin, so check that location as well, before you go hunting for wget.
b. This command will seem like it's hanging, but tail the output file, and you'll see the download status.


Step2:
Unzip the file.

Step 3:
Mount the ISO
a. Create a block device for the ISO:

[root@gpadev-sol-x86:/export/depot]# lofiadm -a /export/depot/sol-10-u9-ga-sparc-dvd.iso
/dev/lofi/1

b. Mount it.
[root@gpadev-sol-x86:/export/depot]# mount -F hsfs /dev/lofi/1 /mnt

Step 3

a. Create a directory where you want the media to reside at.
mkdir -p /export/depot/s10upd9

b. Use the Solaris Tools to copy over the Install media to the directory you want. Dont just to a cp!

[root@gpadev-sol-x86:/export/depot/s10upd9]# cd /mnt/Solaris_10/Tools/
[root@gpadev-sol-x86:/mnt/Solaris_10/Tools]# ls
add_install_client Boot dial Installers rm_install_client setup_install_server

c. Use the "setup_install_server" command
[root@gpadev-sol-x86:/mnt/Solaris_10/Tools]# ./setup_install_server -w /export/depot/s10upd9 /export/depot/s10upd9
Verifying target directory...
Calculating the required disk space for the Solaris_10 product
Calculating space required for the installation boot image
Copying the CD image to disk...
Copying Install Boot Image hierarchy...
Copying /boot netboot hierarchy...
Install Server setup complete


Step 4:
Add to the Jumpstart server the location.

Step 5:
Remove the lofi device.

lofiadm -d /dev/lofi/1

Verify:
lofiadm

Sun Hardware handy tools

I came across ipmitool recently, and it is really handy when you need information about your machine (Serial Number, amount of memory etc)

Eg:
Whats the Serial Number of the Sun Blade?

ipmitool -H blade ILO IP-U root fru | grep "Product Serial"

Whats the Serial Number of the Sun Chassis
ipmitool -H chassis ilo ip -U root fru | grep "Product Serial"

How much memory do I have? (I had just installed some 4Gb dimms)
ipmitool -H blade ilo ip -U root fru | grep 4096MB | wc -l
Password:
24

i.e 24 dimms installed.

Friday, December 10, 2010

Oracle Grid control -- Removing EM Targets cleanly

Update: I found that this works in Enterprise Manager 12c as well.

I was installing Grid Control agents on some of my middleware boxes, and ofcourse, the hostname got messed up when I did the silent install. My number of attempts to remove the entry from Grid control had no use. A quick google search revealed, I had to connect to the EMREP database on the Grid Control Server and remove it.

On the Grid Control Server

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
emrep


Get a list of all the targets...

oragrid@emhost$ sqlplus '/ as sysdba'

SQL> select target_name from mgmt_targets where target_type='oracle_emd';

Remove the offending target:
SQL> exec mgmt_admin.cleanup_agent('offendingTarget:3872');

After a minute or more, voila, "PL/SQL procedure successfully completed."

Refresh my Grid Control screen, and it's all gone.

Got to give credit where due: I found it here

Wednesday, September 22, 2010

Solaris things...

I've been working with Solaris a lot, and we recently started with ZFS as well. Perhaps I'm missing something, but "top" & prstat dont report the correct amount of Memory free (RAM) on the machine when using zfs and neither does vmstat.

After some google searching, I found this helpful blog and thought I'd report. Thanks to "milek.blogspot.com" for this:



#!/bin/bash
#########
# Copied from http://milek.blogspot.com/2006/09/how-much-memory-does-zfs-consume.html
# to get correct reading of Free Memory
#

FREE=$(($(pagesize)*$(kstat -p unix:0:system_pages:freemem|awk '{print $NF}')))
ZIO_BUF=$(kstat -p zfs:0:arcstats:size|awk '{print $NF}')
FREE_MEM=$(((FREE+ZIO_BUF)/1024))
echo "Free Memory: $FREE_MEM MB"
FREE_MEM=$(((FREE+ZIO_BUF)/1024/1024))
echo "Free Memory: $FREE_MEM GB"



Next one was backups. We use Solaris 8 Branded Zones heavily to migrate off from our old Solaris environment. I started using ufsdump for backups, since this was not ZFS.

Well, trying to restore using ufsrestore, caused a ton of problems.

The simple
zoneadm -z s8zone install -a dumpfile

would give me weird errors such as " Sanity Check: Missing etc at /mnt"


Decided to use a ufsrestore, and that didnt help since zoneadm didn't know how to get it up.

Long story short, I did the following

1. Do a ufsrestore on to the disk
2. Used Zonecfg to create the configuration
3. Manually edited the /etc/zones/index file to modify the entry to match the backup version (with new name).

The index file would look like this:

global:installed:/
hostname:installed:/export/zones/app30qa:some id
hostname:installed:/export/zones/s8qa2flar:some id


This made zoneadm think that it was "installed" and I was finally able to boot up.

Thursday, September 09, 2010

11 years....

Whoa! I just realized, that this past August, it's been a full 11 years since I landed in the good ol' US of A in 1999. The twists and turns life has taken is interesting to say nonetheless. However, there is a small part of me that has regrets....

I didn't go back to India as I once thought I would by this time, but more than that, the fact that I'vent been able to be an entrepreneur in this country is hitting me the hardest. I keep thinking of going back, but life keeps taking turns. The worst part however, is the American immigration system that allows illegals to do what they please, but the ones like me who are following the law, be at the end of the line to get a Green Card. Bah!

The positives are definitely there too....better quality of life. A nice townhome, a lovely wife, two wonderful sons now (the second one just born) are all positives....

Now, if I can just get through the sleepless nights and refocus on being back on the entrepreneur path, it would just be so awesome.

Thursday, May 13, 2010

Sucky Airlines

A friend of mine recently commented on how awesome Southwest is, and how sucky the rest of the airlines are on his blog post here

Today, the WSJ had an article regarding Frequent Flyer miles and how easy it is to redeem them. Results are not surprising. Here's the link: "The Road to Redemption"

US Air & Delta were the suckiest of the lot. Southwest came up on top.

I hate almost all US based carriers, but United, Delta & US Air take top spots. For international travel, travelling by a US based carrier is like throwing away money to get tortured (atleast the few trips I've been on)


Thursday, March 11, 2010

What have I been doing?

Well...the past few months have been grueling at work (and still continues to be). My friends keep telling me to take a break, and its high time I do, but unfortunately...I'm addicted to it (for now)...

So...what have I done / learnt this past few months (starting November) with work?

Well...designed, architected (with a colleague) and currently leading the build of a Highly available Geo Clustered Oracle RAC cluster with Weblogic running on Sun Blades.

Whats cool about it....well ..everything is :-)
1. Implementing virtualization with Sun LDOMs & Zones.
2. Implemented a Sun Cluster to provide highly available Network File Storage (I keep thinking this would have been incredibly useful at my previous job, since we used to only NFS mount our shared storage area) instead of spending tons of money on redundant NAS devices (filers as some people like to call them in the Sun world)
3. Created an infrastructure so that any new Solaris or Linux machines can be quickly imaged with Jumpstart.
4. Implemented Sun directory server for LDAP with replication.
5. Java memory troubleshooting....

and many more...but those are some of the highlights.

On the personal front though....
We celebrated our 6 year anniversary...
and ofcourse we announced that we're expecting another child due in September!

Wednesday, February 24, 2010

Sun Cluster 3.2 with LDOM 1.3

I had to get a Sun Cluster 3.2 to create a HA-NFS on LDOM 1.3. LDOM 1.3 and Sun Cluster 3.2 now fully support Sun Clusters on Guest Domains not just the I/O Domain. This makes it incredibly useful.
I faced plenty of issues, and hoping that this post will serve as a guide to those who need to do it.
Setup:
1. 2 Physical T-6340 blades.
2. Control Domain that also serves as our I/O Domain.
3. 1 Guest Domain on each Server for Sun Cluster.
3. EMC Powerpath installed on the Control Domain

Storage:
Managed by EMC Powerpath
The devices will be seen as : emcpowerXa
1 LUN for each Sun Cluster domain
1 Shared LUN between the 2 physical blades

I want to note STRONGLY that you should first try using the powerdevices for the LDOM & Sun Cluster, and only if that doesnt work use the cXtXdX devices. Each configuration may be different and you may have better luck or a patch that I did not have at the time of my trial.

powermt display dev= will give you the underlying cXtXdX number (in the I/O Domain).
Present all devices in MPGroups to the LDOM (even for boot disk since we'll be using SVM with Sun Cluster) as cXtXdX devices.

3 disks to be presented in this example
1. Boot Disk (mpgroup: bdskgroup)
2. Quorum Disk (mpgroup: quroumgroup)
3. Shared Disk for storage (mpgroup: cludskgroup)

(Make sure to give an id to each of the vdisks that are presented to the LDOM so that they always are presented in the same order even on a reboot)

For each Sun Cluster LDOM present the VNETs from the VSWs in the order they're cabled for the private interconnect. This is important.

I used cross over cables.

Jumpstart and boot up the LDOM.
If you've done everything correctly you should see 3 devices when you do "format".

Install the Sun Cluster software with the NFS packages. Patch it appropriately.

I used the below instructions to create the cluster, however, its far easier in 3.2. Just create the metadb by configuring the SVM (instructions in link below) and then run scinstall. Once thats done run clsetup and follow the instructions for the NFS Service.
Copied from the above link:
2 nodes (hostname: node1, node2) with installed Solaris 10 01/06, patches, Sun Cluster, NFS agent for Sun Cluster, VxFS
Both nodes are connected to the FC SAN storage, 8 storage LUNs are mapped to each node.

Configure SVM
On both nodes
Create the 25MB partition on the boot disk (s7)
Create the SVM database replica
metadb -afc 3 c0d0s7 (c0t0d0s7 on sparc)

On one node (node1)
- Create disk sets :
metaset -s nfs1 -a -h node1 node2
metaset -s nfs1 -t -f
metaset -s nfs1 -a /dev/did/rdsk/d2 /dev/did/rdsk/d3 /dev/did/rdsk/d4 /dev/did/rdsk/d5
metainit -s nfs1 d1 4 1 /dev/did/rdsk/d2s0 1 /dev/did/rdsk/d3s0 1 /dev/did/rdsk/d4s0 1 /dev/did/rdsk/d5s0
metastat -s nfs1 -p >> /etc/lvm/md.tab

metaset -s nfs2 -a -h node2 node1
metaset -s nfs2 -t -f
metaset -s nfs2 -a /dev/did/rdsk/d6 /dev/did/rdsk/d7 /dev/did/rdsk/d8 /dev/did/rdsk/d9
metainit -s nfs2 d1 4 1 /dev/did/rdsk/d6s0 1 /dev/did/rdsk/d7s0 1 /dev/did/rdsk/d8s0 1 /dev/did/rdsk/d9s0
metastat -s nfs2 -p >> /etc/lvm/md.tab
scp /etc/lvm/md.tab node2:/tmp/md.tab
ssh node2 'cat /tmp/md.tab >> /etc/lvm/md.tab'

- Create VxFS on shared devices -- I didnt do this.. I just did a newfs.
mkfs -F vxfs /dev/md/nfs1/rdsk/d1
mkfs -F vxfs /dev/md/nfs2/rdsk/d1

On both nodes
- Create the directories
mkdir -p /global/nfs1
mkdir -p /global/nfs2


http://docs.sun.com/app/docs/doc/819-0912/chapter1-1?l=en&a=view is the quick start guide, is some help as well (especially with the metadb setup), but they talk about LOCAL devices as HA-NFS, and that isn't want we're doing. :-)



Thursday, January 28, 2010

iPad

Yaay...the new Tablet. The name sucks, seriously iPAD? Sounds like a feminine hygiene product (thats what everyone else is saying too :P )

Anyways...I read through the specs and I really wanted to think it was cool, but...
1. Wheres the USB port?

Why the hell would I want to connect to my computer for everything? If you're making a revolutionary and magical device, wouldn't you want people to use it even without a bloddy computer to get my files? So, if I am in class and the other guy has his documents on a USB drive, how is he supposed to magically send it to my iPad?

2. No Flash Support? If I want to have a full media web browser, then I certainly want flash! Heck, you can't even log an Oracle support ticket without flash now! LAME.

3. Lame resolution. 1024 x 768 makes it sound like an age old monitor. Bah.

Whats cool is the price point. If it had a USB port, I'd probably pre order it and find a hack to get flash working...but now I'm really thinking if I need the device, even though it would have been an awesome replacement for my dieing laptop.

Travel in the US

I recently had to travel to Toronto (after the Christmas day attempted attack) and boy do I hate the airlines even more. I also travelled to Las Vegas which was mildly better but not by much... Where do I start?

1. Charging for checking in bags? Totally blows. Why would people travel without their f'ing clothes?
2. Airport security -- WTF. Why is America so scared? I think it's more political than actual fact. Seriously....on the way back from Toronto I wasn't allowed to carry my laptop bag, had to check it in (it was a bloddy Swiss Backpack).
2.1 The security check at the gate (no not the first x-ray check, one more before all the gates that lead to ANY US bound flights). They were Canadians, so they atleast smiled. Took out every single thing from my pocket and double signed my boarding pass and then someone else checked the double signature....seriously???
3. I hate hate hate all the bloddy airlines for their lack of professional service. Just hate them. We really need a new airline.

I think the Republicans should shut the f**k up and not create a hysteria. Sure some idiot tried to set off a firecracker, but wtf, seriously. Just really dumb. Makes us appear more scared than brave.

Monday, December 28, 2009

Wow..2009 is over

With 2009 coming to an end, I thought i'd write a little on what went on this year. Perhaps for me to reflect in the coming years....

January marked the 5th Year of me being married. Time does fly. The days munged by to April where my Son turned 4 years old. We got him a bike to start off...



and he got plenty more gifts at his birthday party...His nanamma (grandmother) was here as well which made it all the more fun.






I changed jobs in October and then left for my holiday trip to India.
We had an exciting trip to India this time. We stopped over in Dubai on the way there. We spent 3 days, seeing the sights and sounds of Dubai. The iconic Burj Al Dubai:




The gold souk, the indoor ski place, all exciting stuff. Pranav had a blast as well. The one thing that sucked in Dubai was it's beach near the Hotel Atlantis. The water was all murky and pretty disgusting. It was surprising that a 7 star hotel had such a crappy beach, but I guess thats what you get when you over build. However, the city itself was excellent.

One of the displays at Dubai Gold Souk:


One thing that did catch me offguard was, you had to pay for water at the hotel. Most hotels, when you sit down, bring you a bottle of water, and at the end they put it on your bill as well. There is no concept of "free" water.

I also tasted an unbelievably tasty Chocolate Praline Cake. A small piece was about 25 Dhirams (~$6.5), but was amazing!

Dubai is known for it's malls. But, they're really trying to outdo one another there. The Dubai Mall has one of the best musical fountains in the world:



Not to forget, we also went for Dune bashing, followed by a Dune buggy ride & a belly dance with arabic food (was mostly Indian. The only Arabic dish there was Khoobs (bread) and Hummus)







Then our India trip was fun as well.
My Dad turned 60, and as tradition would have it, we celebrated by calling our near and dear friends & family along with the traditional rituals.




Following that we went to Tirpuati, Vijayanagram (the small town my dad is from, and met many of our relatives and some of his childhood friends) and my dad's aunt who pretty much brought him up. Then we went to Vizag, a beautiful coastal city, with a beautiful sea shore.




Then I spent Diwali with my in-laws, back to Chennai with my grandparents and then it was time for me to get back to work. Ofcourse, I probably gained about 5 lbs with all the eating (more like stuffing :) ) the delicious food back home.



Once I came back from India though work got really busy. We're bringing about 60 servers online for a very critical application and managing it all is as awesome as it's tiring. Yes I am a geek and I enjoy working on Sun / Oracle Hardware / Software :).


Somewhere along the way I did turn 31. My wife threw an awesome surprise Birthday bash for me.

Saturday, December 26, 2009

Sixth Sense technology....AMAZING

Ok...I feel really bad that I haven't seen this video from TED for so long.

Pranav Mistry talk at TED

Please check it out. This is amazing.

"Why use a tablet computer, why not just a piece of paper"?
"Why get stuck to only paper, how about moving that to a computer for more work"?

All those and more answered....

Thursday, December 24, 2009

Health Care bill

I just want to say a couple of quick things ...

In no particular order...

* Not a perfect bill by any means, but it's the right intention, and it'll turn out to be very good for the country.

* The Pharama industry shouldn't be taken out to a beating because of profits. They make profits because they risk a lot more (all those lawsuits over Vioxx?) Unfortunately it's viewed with the same glasses as Wall Street Bonuses but for Wall Street, its only during recessions. For the Pharama industry it's all the bloddy time. (Not that they dont have their own faults)

* The insurance industry really should be jumping up and down, because they just got about 20 million people paying them, without doing ANYTHING to market to them. Absolutely freaking nothing. This by far should have had a larger republican participation because of the insurance pay off than the Democrats.

And lastly
Republicans you suck. You Suck more than ever. Not a single one of you voted for the most historic thing in the US of A. Perhaps the OPT OUT would have been awesome for you guys, or perhaps they should say every senator or house rep who doesn't vote for it, should have their state automatically excluded. That would get all of you so much more in line.

Monday, November 30, 2009

Microsoft being sneaky (again!)

I never ever go to MSN.com, but read a comment on ZDNet that MSN was using it's home page to shore up Bing's results. I thought I'd check it out to see if it was true, and lo and behold it was!

Go to the MSN.com home page and see for yourself. Even news articles, that should be direct links, are somehow tied to a bing.com search.

So -- thats how they get "more" traffic! hehe!
Oh well.

Sunday, November 29, 2009

E-bills & Comcast

When I put the word Comcast in the title, many of you may have already cringed. Anyways, here's my story.

I called Comcast this weekend (the 2nd time nonetheless in 3 days), to figure out why I didn't have an IP. The first time, they resolved it without any stupid questions. Here's how the second call went.

Me: xxx-xxxx is my account number. I can't connect to the internet
Comcast Lady: Can I have your name and address
Me: Sure.
Comcast Lady: For security purposes, can I have the account number.
Me: I don't know. I can't get to it, since I CANT connect to the internet.
Comcast Lady: Can you tell me the last amount you paid.
Me: Again, I dont know, I can't connect to the internet.
Comcast Lady: Can you tell me the date you paid the bill
Me: No I cannot. On second thoughts, I paid it in the month of November.

At this point she "helped" me.

Shows you why, we can't trust only E-bills. I like the comfort of getting everything online, but WTF, if you can't get online, you're screwed. Something to think about.

Wednesday, July 08, 2009

Redline Metro (Washington DC)

About 2 weeks ago there was an unfortunate accident on the Red line of the Washington DC Metro. A few people died including the train operator.

However, to put it in perspective 1000's of people travel on the redline every day (not to mention every trip during rush hour). Is it too much to ask that the Red line be brought back to normal service even after 2 weeks?

I was reading the examiner this morning when I read this article: Redline delays irk customersThere was a comment by the president of the Metro's largest union Jackie Jater:

But Jackie Jeter, president of Metro's largest union that represents train operators, did not have such kind words for disgruntled commuters.

"I understand that you want to get to work a little sooner," she said, but "everybody should back off that. ... At least you're alive."



That ticked me off. If you've traveled on the metro, and especially the red line, you'll probably already know, it's overcrowded most of the time. If you've traveled by metro anytime at all, you'll have encountered bad drivers, with absolutely no sense of customer service. I've personally witnessed a train driver letting a guy sweat it out after his bag got caught in the door. She saw him (it was the first door after next to her window), and when someone brought it up, she said "I know I know" with an expression " I want to teach him a lesson". I wanted to go up to her and tell her to DO HER JOB, but then, I didn't want to start a fight and have 1000 people on the line hate me!

These drivers, more often than not, are obnoxious (and increasingly the metro staff, because 3 yrs ago, I was pleasantly surprised at their courteousness) and don't care. They think they're doing the world a favor.

There was another article that mentioned that the drivers are scared to drive the trains after the accident (because of the system)! What BULLSHIT! I think, as a passenger, I'm more scared that the driver is driving the train and not an automated system.

I want to find out how much a train operator is paid and what benefits they get as compared to a different city and also compared to a cab driver on the DC streets. I would hazard a guess that they're paid significantly better than a cab driver (and work less hours than a cab driver).

So - Ms. Jackie Jeter, DO YOUR JOB. TELL YOUR PEOPLE TO DO THEIR JOB. The circuit as far as we understand was replaced about 5 days before BY YOUR OWN MEMBERS and it still malfunctioned! So, as passengers we probably should be MORE SCARED, that you guys show SO MUCH INCOMPETENCE after being in existence for over 30 years.

Perhaps its time for a large scale privatization of the metro and some large scale firings. I'm supposed to work hard and do my job well. Why the hell aren't you?

End of rant....