Sunday, August 12, 2007

i am seeing the signs!!!!!!!!!!!!!!!!!!!!!!!!!!!!! o_O


and I am not liking it one bit.

Greener Pastures

someone resigned last week (someone always resigns every week at this office)
"sana makahanap na rin kayo ng greener pastures"
[i hope you all get to find greener pastures]. which roughly translates to: "you are all losers. i found greener pastures and you haven't. ".

this has got to be the most insensitive resignation speech i have ever heard. not that i'm not looking for greener pastures myself. but hey, some people's grass is green enough as it is.

Sunday, May 20, 2007

I'm A Professional

I hate meetings. Some meetings are really needed, like brainstorming or stuff like that. Those meetings are just fine, I still don't like them, but I understand. What I abhor most though, are the "study group" meetings.

There are I think two facts that we can assume here. People want to control how they use their time. I think that's a fair assessment, even if you're not Type-A. And second, people have differing ways of learning. They pace differently, people have different styles. Some study at night, some at day. Some prefer reading from a paper book, some from a PDF. Some learn very quickly, some need the slow ingestion of data. What we can assume rightfully so is that it differs, and no two persons are alike in studying style.

What "study meetings" do is throw those two facts into the air, and when they fall, spit and stomp on them for good measure. It forces people to "use" (I'm using this word very generously) a specific block of time to enforce "studying" (again, used very generously). A topic that could have otherwise been studied by an engineer, by herself/himself, for 15 minutes, is turned into an hour and a half of mind-numbing Powerpoint slide-infested reading session. It forces people to "learn" by reading slides on the screen and ingesting the interpretation of the presenter. Hey, isn't that familiar? Yeah that's right! That's school.

I thought when I graduated I got away from that. Apparently, No. From experience, people spend most of their time trying hard *not* to fall asleep during these meetings (lights closed, and only a slide projection up front as illumination, why not?). To enforce this "study meeting" style is to be callous to the differing needs of people, and is a stark failure in recognizing we are all mature and responsible, professionals.

I don't understand why the engineer can't be told "Study this. We need to learn about it by [date]." Why is that so hard? Is it because the boss doesn't trust the engineer to study it by himself? Excuse me. We're all professionals here. We all know our responsibilities. When I fail to study, that's MY fault and my ass on the line. He did his part by telling me to study. He's absolved! Why does he feel the need to hold my hand through the goddamned process? What am I, eight? Jesus H Christ.

I'm sorry, but I just can't wrap my mind around this shitty "style" for learning. All it does is waste time, which could've been otherwise spent on something more productive. Or I could've spent that time learning by myself, at my cube. I could've finished earlier, and studied some more stuff. About the only thing it is viable now is as a time-eater. And if we're having them for the sake of appearing busy, then that's just sad.

The Job

A job, for most people, has one primary purpose: source of income. We work to obtain money. Money to pay the bills, money to buy stuff, money to eat. In a slightly narrow-minded view of the world, we could say we work in order to live. Something like that.

Now when your job doesn't pay you enough money (its all relative really), you turn to its secondary purpose: satisfaction. It makes you happy. Some are really lucky to find a job they absolutely love. Not just the people they work with, but the job itself. Perhaps the work offers challenges. Or it manages to fill your interest in one specific area or whatnot.

But when your job fails to make you happy and doesn't pay you enough money, then you've got a problem right there. It just doesn't make any sense to stay. Not only are you doing yourself a disservice, but you are almost torturing yourself (masochism is now being served).

And no, logic doesn't make leaving any easier. It makes it heartless and cold, but not easier.

Tuesday, May 15, 2007

Why I'd Rather Burn In Hell Than Fill Up A Design Portfolio Document

A handful for a title, right? Just like a Design Portfolio document.

I don't know whose idea this was originally, but I have to applaud the sheer *ingeniousness* of putting ALL of your accomplishments the past year into one document. I have trouble recalling what I did last week. Let alone LAST YEAR.

If the aim of this document is to make rating as objective as possible by relying on physically recorded accomplishments, then bravo. Riddled with document titles and page numbers, source code files and line count and other nuggets of information deemed "appropriate", this document is to objectivity as cookies are to basil. No, that doesn't make any sense. Neither does a Design Portfolio document.

Sure it makes for good reading of what you've accomplished during the past year. If you just didn't spend an unwarranted excruciating week filling it up.

I know of no person that likes doing this document. The rookies don't like it either. I think the general sentiment toward it is borderline HATE. When the majority of people who have to do one thing don't like it, there's a real problem. Yes, nobody likes throwing out the trash either, but that's a NECESSITY. Doing this unholy abomination of a task, is NOT.

If the aim is to create an objective atmosphere in terms of rating, why not do the rating 4 times a year? That way, the accomplishments will still be fresh in everybody's (the rater's and the ratee's) minds. Plus you don't have to create an ungodly 10-page document that nobody really reads. Rather than waste everybody's time with something that serves no purpose other than for ego-boosting (or deflating, if you find yourself at a complete loss on what to jot down), why not inject a little bit of creativity here and go with a different style. Surely almost a decade of doing this crap has tired somebody out.


Tuesday, May 8, 2007

Oracle solutions...good, great fantastic, but do we have the money?

Today, a bunch of us went to the oracle solutions forum . Aside from nourishing us with the thousand calorie breakfast, we were also fed information regarding the three oracle products in store for application development namely

The Oracle *10 (seems to work 10* faster than Oracle)
The Oracle Berkeley (no SQL needed, straightforward access to database)
Oracle Light (online sub when the server is away)

They also talked about partnership and everything embedded with their product. starting from the Cisco Routers, Google, Amazon, Shisheido, HP, Miscrosoft, Linux and our client whom I will not disclose the name anymore.

It's an eye-opener and a wallet burner maybe, since it seems like a fantastic product, does the company have the budget for it anyway?

o_O

not to mention one of our crack jokes was is their employment opportunities in oracle.

Wednesday, May 2, 2007

because life goes on in the cube farm..

post-release activities. memory leak check! o_O

say hello to Valgrind, a mean little tool that sniffs out the memory leaks in your program. we were all given modules to check, and modules to fix.

running valgrind needs to have your program or library running on some environment first, since the executable will be released later on in the program, frank made a script to dupe our program to say "hey! i'm the _ _ _ exe file, run me so I can run a memory leak check test on you since you aren't the first exe running this show."

#!/bin/bash
BIN=fake executable.bin
valgrind --leak-check=full --leak-resolution=high --log-file="actual executable" ./$BIN $*
memory leaks. wtf are they anyway...if you're those computer g33ks, you'd know right away its those memory that is still all over the place after you run a program in C/C++. most of the problems are with regards to the following:
  • missing free, delete, delete[] - i admit, i am sometimes at fault with this regard of programming principle.
  • mismatched free, delete[] and delete - now this is just....craptastic...enough said.
  • unused memory, memory violations and the like - more other troublesome fixes that you have to either know the codes / classes back to back. or you just blindly stab in the dark hoping it's the right memory you're freeing.
so the usual, check line numbers, trace and fix. the missing and mismatched frees and deletes
were easy to fix, but we encountered a problem with the module that still had some leaks ranging from 48 bytes --> n*16 bytes depending on the number of subscribers.

so we had the following clues (same scenario/sequence all through out):
  1. an n number of subscribers running has a memleak of (random number) + 16*n
  2. infinite loops sequences is okay, doesn't change the memory leak
  3. disconnection detection doesn't really affect the memory leak.
  4. no leaks of that matter detected on an erroneous gsq file (there was 1, and we fixed that one too).
  5. same leak detected on an erroneous cfg file.
  6. happened during start of test execution (scenario was target nodes are disconnected), so nothing about execution.
turns out it was a front memory leak for a BUNCH of memory that wasn't deleted in a certain .cpp the formula on number 1 was just the top level memory. the object in question was a certain
dictionary data structure pointer

what's in the pointer anyway? well, it's an array of Node pointers each containing more node pointers inside it (and inside the nodes contain data).

it was enough to bust my brains out. the actual module owner got to fix this problem, with me in the wings. since you really need to know the ins and out of this module for it to run safely, and not accidentally delete a bunch of vital information. so here's that happened:

old destructor of dictionary file:
Nodes::~Nodes()
{
delete []next;
}

sure, it WOULD work, but doing this would delete only the top level array and leave all the memory inside it hanging and leaking and exploding in the background.

so here's the new added code.
Nodes::~Nodes()
{
//ADDED by XXX XXXXX 05/02/2007 XXXXXXX BEGIN
for (int mIdx_i = 0; mIdx_i < nLength; mIdx_i++)
{
if (next[mIdx_i] != 0)
{
delete ( next[mIdx_i] );
}
}
if (Data != NULL)
{
free (Data);
}
//ADDED by XXX XXXXX 05/02/2007 XXXXXXX END
delete []next;
}


this ensures that the node arrays inside of the node array gets cleanly deleted...
and that was the end of the supposed memory leak problems.

Sunday, April 29, 2007

Cute C/C++ puzzles from meebo

since I couldn't run Yahoo! Messenger, I went to Meebo and curiously browsed at their jobs page. (yeah, right)

anyway, they are hiring c/c++ developers and had these nifty little c/c++ questions that tests if you're alright for the job. Here were the samples.

Puzzlers! Try these out :)

1. With these variable declarations: int i, j[10], *k;
Which of the following are legal?

a. i = *(&(j[2]) + 1);
b. k = &(j[1]);
c. i = &(j[2]) + 1;

2. Assuming the function lookupName is defined, what’s wrong with this code (hint: 2 bugs)?

const char *getName(const char *c) {
std::string name = lookupName(c);
if (name == NULL)
return "Anonymous";
return name.c_str();
}


int main(int argc, char *argv[]) {
const char *name = NULL, *c = NULL;
if (argc >= 2)
c = argv[1];
name = getName(c);

printf("My name is %s\n", name);
return 0;
}

3. What’s wrong with this program? If you were to fix it, what would the intended output be?

void swap(char *str, int index1, int index2) {
char tmp = str[index1];
str[index1] = str[index2];
str[index2] = tmp;
}

int main(int argc, char *argv[]) {
char *planet1;
char *planet2;

planet1 = (char *) malloc(7 * sizeof(char));
if (!planet1)
return 0;

snprintf(planet1, 7, "Jupiter");
planet2 = "Saturn";

swap(planet1, 0, 3);
swap(planet2, 3, 4);

printf("results: %s and %s\n", planet1, planet2);
return 0;
}

yes, I'm so geeky. but it looks fun. :)

a healthy dose of loving from support

I went to the office Saturday in hopes of a quiet and peaceful environment from the hellhole I call home, only to go there to work. o_O

Anyway, client side counterparts complained of the simulator producing a core. the group decided that we valgrind the simulator for memleaks.

So I fixed another memleak yesterday reported by nina and assisted the team assigned that day on their tasks. I had to log in since I wasn't really expecting on doing actual work.

Anyway, I took a lighter load and just watched simpsons and reading ctrl+alt+del comic strips, which I am faithfully reading until i just get the daily dose.

I left my computer running and hopefully, HOPEFULLY, i won't get called for support tomorrow. T_T

Friday, April 27, 2007

gaim-terminal

I think my gaim window looks like a gnome-terminal, or maybe it's just me...

This is my gaim window...

This is my gnome-terminal...

They are totally different but they share similar qualities...
Both allows you to type something
Both may or may not give you response
Both have scrollbars so you can view the history
Both have tabs to managed multiple instances
Both have colors and themes to match your preferences

I sometimes mistakingly type console commands in my gaim window.
Although they do share some qualities, I like my gnome-terminal more.

Why?

1. gnome-terminal is fair
- it does not judge you for what you say

2. gnome-terminal is kind
- it does not say bad words

3. gnome-terminal is obedient
- it does what you tell it to do without asking why

4. gnome-terminal is forgiving
- it does not get mad at you no matter how many times you make mistakes

5. gnome-terminal is patient
- it continuously waits for your response

6. gnome-terminal is smart
- it (bash) completes my words and gives suggestions too

There are just some of the reasons why I like my gnome-terminal more...
I wish gaim behaves more like my gnome-terminal... :)

Thursday, April 26, 2007

well sometimes you really just...blow up.

when I got to work this morning, did the usual, procrastinate, settled on my messy, only-me-can-understand desk, and checked the emails.

so our counterparts have told our AM that they have found (yet again) another set of simulation mistakes from their target environment, which was never installed here because they couldn't really give us proper guidance with regards to their own nodes.

AND, they wanted us to investigate why this is happening, on THEIR target node, because they blamed our simulator for the mistakes of their target node.

he sent an e-mail to the project group, with a little P.S. note after the obligatory closing comments.
Oh, give me a break!
that made me laugh this morning.

Tuesday, April 24, 2007

aging foreigner higher-ups == worthless

i had a very lively conversation with the in-house admin regarding the deployment of some critical systems in the network. This deployment is something I've been planning and gunning for since time eternal (around 3 years). The current item in question is very old, looks like its a thread away from completely disintegrating, and is undeniably flaky, yes, like a girl. :P

The in-house admin has already completed everything. The new item is constructed, tested and is ready to go, deployment plans are completed. Scheduled to the T. The local foreigner higher-up has also OK'd the entire thing. Lo and behold, the foreigner higher-up at the other location is asking for some weird explanation on how it fits into the IT policy. WTF has this to do with policy? This is preventive maintenance you tool! This is standard procedure across the IT industry!

This is a nightmare. The higher-ups, who I am sad to say half the time do not know what they are doing, are turning into hybrid-Americans, fixated on policies and committees and meetings. Had they been as competent as the real norteamericanos, this could be a little more palatable. Sinverguenza.

I told the netad to keep all the correspondence between him and the person in question. Hey, we did what we can, planned, constructed and scheduled. That tool stopped the deployment. We can protect this company from damages resulting from equipment failure. That's what were doing here now. What we can't do is protect it from managers who can't tell where common sense should start and fanatical devotion to policies end.

pointsec == pointless

just because i have installed the wrong windows for my laptop at the office, i have to scrap out my current OS (completely skinned, patched and primped) to go back to a hell of an installation period.

I left the laptop for pointsec and left a sticky explaining to self-righteous people not to shut my laptop down since its still doing some encryption.

Talk about a total waste. It was a darned good thing our group was pretty free of work. For now.

now stitch (my computer at work) looks so plain and drab and so windows. x(

Monday, April 23, 2007

Hoy! Bawal PDA!

Just to make this a bit lively.

I was passing lengua de gato around the nearby cubes when I saw a couple of girl officemates who are hugging.

I shouted to them. "Hoy, bawal PDA" PDA is Prohibited.

Well not only did I startle the two of them, I also startled the guy who was actually using his PDA next to me...

Guilty as charged.