Monthly Archives: August 2006

Email semi-hosted @ Gmail

I’ve got a domain name which need to be able to receive email from (anything)@domainname.com (catch all). However, as you know already, these days it means getting a lot of spam. And by a lot I’m talking like hundreds everyday.

I’ve setup a server with all sorts of anti spam & anti virus defenses. Unfortunately, the spam is still coming through in bulk. These vermints really need to be on the receiving end sometimes, enjoying their important mailbox bombarded by torrents of cheap viagra offers. Anyway …

I got an idea 2 days ago – how about if I redirect the incoming email to a Gmail account, let Gmail kill the spam, then I can fetch the (clean) mailbox with their POP3 feature ?
Sounds good to me, since I assumed Google would have far better resources to deal with spam, and therefore able to defend their mailbox better that me.

So I setup my mailserver to redirect the incoming mail for that domain to Google, and I waited.

After a day, I got about 5 spam in my Gmail Inbox… and 300 of them in the Spam folder. Hooray ! 😀

My server loves Google too now. SpamAssassin (and others) has been torturing it for some time, especially with those massive influx of spam. Now it just redirect the whole lot, and forget about it.
And I’m happy for obvious reasons.

Kudos to Google.

Esia sering nada sibuk

Akhir-akhir ini saya sering gagal menelpon relasi dengan menggunakan telpon Esia saya, mendapatkan nada sibuk. Tadinya saya kira memang sedang dipakai telponnya.
Tapi sekali iseng saya telpon dengan handphone XL saya – lha, bisa.

Lalu saya makin sering mengkomparasi ini. Ternyata, nyaris semua koneksi yang gagal dengan Esia kemudian bisa ketika langsung dicoba dengan XL.

Saya bingung, apakah handphone Esia saya rusak ?

Lalu saya membaca artikel detikcom berjudul Kapasitas Interkoneksi Terbatas Ancam Pertumbuhan Esia. Oalah… apa mungkin ini gara-garanya.
Saya kemudian juga menemukan posting Balada Telkom Flexi – Esia

What, Telkom can’t stand a bit of competition ? 🙂
(Esia – 1 juta pelanggan, Telkomsel – 21 juta pelanggan)

Anyway, ada yang punya informasi lebih lanjut? Silahkan tinggalkan komentarnya disini.

Save the Indonesian Catholics

I read a news titled “Indonesian Catholics to face firing squad on Saturday” on Catholic News this morning. Seems like many Catholic groups are asking Indonesian Gov’t to spare the life of the accused.

Actually some non-Catholic groups are asking the same thing too. Although for different reason – several Muslim organization suspected that these 3 men are just puppets. The masters are still safe behind the curtain.
If these men got executed, then the secrets will die with them. And justice will not be delivered.

By saving the life of these 3 men, then hopefully we’d be able to investigate further and find the real masters behind the massacre. The ones who really responsible for it.

The chance is really slim though.

PHP: ajax without XMLHTTP-request

Got a request to make a quick hack; but this quick hack will be immensely helpful and able to cut like 3 hours of work / employee everyday. Naturally, seeing such huge cost / benefit ratio, I agreed to make it my priority.

The hack is to make pricing become automatic for a client. At the moment, they have to look up a pricing table manually for each order that they received. Even though they’re pretty big, built their own IT system from scratch, they’re still doing this particular topic manually. I can’t believe that their previous developer missed this stuff.

Until I realized the full scope of the job…. suffice to say, it’s complicated enough to scare most programmers. Their pricing scheme almost got no pattern at all, almost fully customized for every client. Yet we can’t afford to just enter the whole thing as it is to the database – it’d be too cumbersome.
The previous developers spent 3 years developing the system, and still managed to avoid this particular bit.

More time would be required to develop the algorithm and proper database schema, than the actual coding itself. Anyway, more to that probably later; one particular thing that I’d like to avoid in this job is the XMLHTTP-request stuff.
Why ? Because I’m too lazy 🙂 too lazy to implement it myself from scratch, and I don’t have the time to use the available implementations (and deal with their quirks/bugs).

I like things as simple and as fast as possible. I think I’m kinda a control freak, yes that explains it.

Anyway, here’s the requirement:

1. Once the staff entered an order into the system, he’ll clink into a link on the form.
This link will fill the textbox next to it with the right price for that order

That’s it. What’s going on behind the curtain is of course much more than that. Here you go :

1. The link actually invokes a JavaScript function called do_ajax()
2. The function will then append a JS element – which actually a PHP script. Thus executing the “AJAX” call
3. The JavaScript function can communicate with the server-side PHP script by way of GET method.
4. The PHP script produced its output as JavaScript code.

As simple as that.

Here are the details:

The HTML form

cn-ajax.js

cn-ajax.php

It may look complicated at first, but if you think of the cn-ajax.js as a blackbox,
then it became very simple.

NOTE: Another plus is that this form become usable for mobile warriors as well. Sure today’s PDA can do JavaScript – but speedily? Thought so.
This trick moves most of the processing to the server, with as little JavaScript code as possible. Therefore giving the best performance for these audience.

Other advantages are : clean, cross browsers, adherence to standards.
(thanks rendy ak)

Credit goes to PHPit.com for figuring these out.

TIP: Use Firefox while debugging this stuff. Its JavaScript console was a massive help to me.

OK, back to work.

Seminar Homeschooling : MENYUSUN KURIKULUM di RUMAH

To: asahpenaindonesia@yahoogroups.com
From: Yayah Komariah
Subject: [asahpenaindonesia] Undangan Workshop

Assalamu’alaikum Wr. Wb.

Untuk ke-3 kalinya Komunitas Homeschooling BERKEMAS akan menyelenggarakan Workshop tentang homeschooling, yang kali ini akan mengambil topik:

MENYUSUN KURIKULUM di RUMAH

yang insya Allah akan kami selenggarakan pada:

Hari/Tanggal: Sabtu, 12 Agustus 2006
Waktu: pk. 09.00 – 12.00 WIB
Tempat: Aula Peternakan, Jl. HR. Darsono, Ragunan, Ps.Minggu-Jaksel

Pembicara:

1. Ibu Yayah Komariah (praktisi pendidikan/homeschooler/ketua Komunitas Homeschooling BERKEMAS)
2. Ibu Emmy Soekresno (praktisi pendidikan/homeschooler/kepala Sekolah JERAPAH KECIL)

Biaya: Rp. 30.000,-/peserta

Bagi homeschooler yang berminat dapat langsung menghubungi ibu Yayah Komariah (0888 176 5303)

Wassalamu’alaikum Wr.Wb.

< *> To visit your group on the web, go to:
http://groups.yahoo.com/group/asahpenaindonesia/

PayPal “Buy Now” problems

Just setup PayPal “Buy Now” buttons in an eCommerce website. In short, with this facility, people can pay even without becoming a PayPal member. Very convenient indeed.

First I created one “Buy Now” button, and tested it. It worked very well.
So I created several more.

Then the problems started.

I got all sort of errors, including “Message 3104”. Basically, all the error messages asked me to login with existing PayPal account. Which pretty much defeats the purpose.

Googling around, all suggestions are about lowering security settings, allow cookies, and so on. Tried them, and still the same problem occured.

After hours of messing around, finally I found the culprit – instead of one <form> tag for EACH button, there was only one of it for ALL buttons.
No wonder PayPal got so confused with it.

I put one <form> tag for each button, and tried again – voila, I can pay for the goods just with my credit card now.

Hope it helps someone out there.

WordPress 2.0.4

WordPress 2.0.4 has been released. Not only it closes down critical security holes, it also fixes at least 50 bugs. So you really should install this version.

Thankfully this website is hosted on Dreamhost.com, and one click is all it took me to upgrade it.
Kudos again to Dreamhost.

Bullies @ Office

When you’re a kid, bullies intimidates you physically. You are constantly under risk of getting physical abuse whenever he/she sees fit.

When you’re an adult, bullies now also does psychological intimidation. Which is worse.
It kills your productivity, and your boss will become upset at your lack of performance – which in turn makes you more frustated (because it’s not your fault)

On developed countries, there are numerous laws that intended to curb bullying. An example of such law in action can be read in this excellent BBC article.

However;
The more corrupt the state, the more numerous the laws” — Tacitus

And vice versa, the more numerous the laws, the more corrupt the state — because there will be numerous loopholes that can be exploited by the wicked.
Therefore, even a victim can be actually the bully.

An example; one of my past colleague is actually a bully. He talks sweet to important people, but he stomps on the less significants. He tried to stomp on me too, trying to make me do what he wished. I stood up, and, quite wisely, he never tried to cross path with me again.

My manager was not so lucky.

This bully is actually quite incompetent and lazy. And to think that he’s paid more than me (at first). Anyway, I can see that he kept on trying to avoid doing his task, and finally he hit jackpot.

One thing about this bully is he’s very well-versed with employment laws, and he keeps on trying to find a loophole that he can exploit for his own gain. One day he got it – my manager got a bit harsh on him, he got the proof, and before my manager knew it; he was reported for bullying to the HR department.

I was flabbergasted.

HR department is tend to be politically correct, and this bully has a way with words. He managed to convince HR guys that he’s the victim here, and he won the case.
Since then, my manager no longer able to fully control this bully, and he was able to do whatever he pleases. Leaving US to do his job.

Needless to say, I was VERY pissed off.

Applying law/rules without knowing what really happened is plain dumb. Yet, this is what happens today. Criminals got away with their crime, for their knowledge of loopholes in the system. And honest people got punished for things others did.

Thankfully, it has a kinda happy ending. After some time, and a few lobbying from our side (here’s the key folks – you have to do something [1] about it), finally senior management realized what he really is, and pressed him to do his work. Bumbling his way around, because he’s really not an IT expert (even I, with my weaknesses, am still much better than him), he finally had to earn his pay.

It may not always the case everywhere though.
So, just say no to bullies !

[1] – Among the work I’ve done was hacking his computer to find evidence of his bullying activities. A colleague said that he suspected this bully was stupid enough to store his private files in his office computer, and asked me to hack my way into it. I was only too happy to comply, and managed to found several evidence there.
My manager also managed to find several evidence on his own, and together we worked to bring this bully down.

Mission (almost) Impossible

On December 2005 I was asked to help manage a shop which is in brink of closure due to mismanagement. By May 2006, the shop is ranked #2 best performer.
Work is still ongoing to make it to become the number #1, but suffice to say that everyone’s already happy with that result.

On May 2006 I was asked to help manage another shop, located near to Pondok Indah. This shop is about to be closed down too, since it’s been plagued by multitude of problems. Worse, the revenue is only about 25% of the previous shop.
Seemed like an impossible case to me, but I accepted it nonetheless.

Summary :

The problems:

1. Very low staff morale
2. Very low sales, most likely due to market saturation (about 6 competitors in the same area)
3. Low profit margin
4. Losing money every month / not profitable.

Actions:

1. Working together with the staff. Developing team work. Increasing staff morale.
2. Diversifying into stationery business
3. Process optimizations
4. Profit margin increase, by various stock optimization methods
5. Creative promotion strategies
6. etc

Results so far :

1. Since May 2006, revenue has been climbing steadily. Average revenue nowadays are about 33% more than before.

2. Profit margin is becoming better

3. The shop is no longer losing money.

Not too bad for 3 months job I think.

The owner is very happy with the result. He’s extended the shop’s lifeline until December 2006 – the shop will have to start performing (target: increase revenue by at least 33% more), or it will be closed down then.

So it’s clear that my work is not yet done here, because of these:

1. Again, this is a management problem. I may have to fire the second-in-command. I’ll give him chance to change until end of this month, otherwise he’s gone.
Problem: lack of initiative, lazyness, failure to keep promises, lack of discipline.

2. Staff morale is still rather low. It’s a bit better, but it’s now clear that the human resources in this shop is not of good quality. Some of them are lazy, lacking in initiative, avoid tasks that they don’t like, etc.

Some of them are plain idiots too. Example; we have a profit-sharing policy in this shop.
Any profit will be shared with the employee. I don’t think Indomart, Alfamart, or others has such generous policy.
However, some of these employees are keep asking for their share – to which I replied, rather sarcastically, “from which profit ?”

When there’s no profit (the shop is not losing money, but it’s not making money too at the moment), what’s there to share ?
I wonder if some people actually have brain inside their head.

I may have to fire some of them, but again I will first give them chance to change. If they still refuse to change, then it’s their own fault.

Note that your employees are your most important asset. We value them highly – we treat them as colleagues, we try to understand their problems and help them resolve it, we even share our profits with them. We believe in fairness and wealth distribution.

Usually, this works wonders. However, some people are not able to appreciate this.
It may seem cruel of me to fire these kind of people (of course, after giving them chance to change first). But :

1. They may just not belong here. They may be happier working somewhere else.

2. A non-performer not only cost the shop money, but most importantly, they’re a burden to their colleagues.

I’ve worked with some non-performers before, and I have had to work twice or thrice as hard to cover their inabilities / laziness. And, to say it politely, I don’t like that. So I can empathize with my employees in such similar position.

3. There are people out there that can use a good job like these

Note that this is not the only thing that I’m doing. I’m also handling about 3 IT projects, and some personal businesses too. And of course, most importantly, my family.
I’ve went over my (previously thought) limits many times, and although it’s very tiring, it’s definitely is very rewarding to my own personal developments.
I felt like dying at times, but what doesn’t kill you makes you stronger.

So we’ll see this shop again in Dec 2006, and see how it fare then.
Wish me luck. I’ll need it, and a lot of Paracetamol 🙂

Indonesian Bloggers Condemns Israel

I just posted a simple script on the sidebar of this blog to support Indonesian Blogger’s movement to condemn Israel. Instructions to join are available here.

In short, Israel is the root of the problems in Middle East.
First, it took over other people’s land, so it can create the country of Israel. Second, it has now employed policies so racist, it has became the Nazi of middle east. And so on.

There are propaganda campaigns going on all over the Internet that says the points above are wrong. But when you check with unbiased sources, you will find out that they are correct.

We have been invaded as well (Dutch & Japan), so we know that the ordeal of the Palestinians and others around Israel are worse. Back at that time, our freedom fighters too were branded as terrorists. Guess who ended up unmasked as the real terrorist ?

My heart goes to the victims of Israel’s atrocities.

To other Indonesian bloggers – you can do something. You are not helpless.