Archive for the ‘Uncategorized’ Category

If you see clouds …

There are 3 different type of cloud implementations that can be adopted by a company :

1. Private clouds. This type of clouds is the most expensive one in terms of implementation, since everything must be provided and maintained by  everything by the company. The good side of it is TOTAL CONTROL. The company can design the cloud as they see fit, and also it won’t have to worry about the data contained in the cloud. For example, some companies and institutions by its nature and regulations won’t allow their data travel to someone else’ machine no matter what.

2. Public clouds. This type of clouds is the opposite of private clouds. All kinds of services, be it infrastructure, platform, service, or business process, is offered in this type of clouds. Although this type is the most expensive one in terms of maintenance, public clouds are the fastest way one can setup business with. Things a company should consider is the nature of data they are about to put in the clouds and the readiness of the software they are about to run in the cloud. While the data needs to met the legal and regulatory prerequisites, the software need to be at least a Software as a Service compliant.

3. Hybrid clouds. This type of clouds is harnessing the other two advantages. But of course there should be a standardized way to communicate between public clouds and private clouds.


Looking at enterprise applications …

Lately i’ve been playing with some applications that supposedly utilized in enterprise scale business. There are some good points they have that i still miss in my daily coding work.

1. Message coding.

Big applications tends to have an organized structure of message code. Its like

[ADM0021] Error occured while setting user role.

Perhaps it needs more effort, but debugging such error should be much easier especially when the error is found by the users which, in some cases, is located somewhere far from us. Beside, it would be easier to document the error so that user can actually solve the problem themselves.

2. Software development management and stuffs

Documents such as software requirements, design, and change management are examples of things we need to NEGOTIATE. Without those, you’re going to have a prolonged projects with everchanging requirements. Other documents such as diagrams are needed to make your projects LOOK SOPHISTICATED. Stupid it is, but important.

3. Versioning

Do you ever make a folder in your desktop named “trash” and put everything in it in every month ? Versioning make it easy to put our work in an orderly manner, plus an option to return when we actually made stupid mistakes.


First step toward OpenLDAP

After getting some revelation from the Big Bro, I finally able to create my own entry 😀

Here’s a few things to do :

  1. Do some config here and there
    Here we have to edit ldap.conf and slapd.conf in /etc/openldap.
    In ldap.conf, we modify URI to point to our LDAP server and Base to point to the root of our LDAP structure. Usually the base is like this

    Base dc=Example, dc=com

    In slapd.conf, we modify the database (we use bdb), suffix (same with the base in ldap), rootdn (in the example they use cn=manager, so the entry would be like this

    rootdn "cn=manager,  dc=Example, dc=com"

    rootpw is the password for the rootdn, mind the password-hash. Read man slapd.conf to know more about the password-hash

  2. Create an .ldif file (Mine looks like this, except I only used one dc. Forgive me if this one is inaccurate)

    dn: o=Example Indonesia, dc=Example, dc=com
    objectClass: top
    objectClass: organization
    o: Example Indonesia
    dc: Example

    dn: ou=Vendor, o=Example Indonesia, dc=Example, dc=com
    objectClass: top
    objectClass: organizationalUnit
    ou: Vendor
    description: project vendor

    dn: uid=baca, ou=Vendor, o=Example Indonesia, dc=Example, dc=com
    objectClass: top
    objectClass: person
    objectClass: organizationalPerson
    objectClass: inetOrgPerson
    cn: Suka Mbaca
    sn: Mbaca
    givenName: Suka
    ou: Vendor
    uid: baca

    this will create user baca under unit Vendor in organization Example Indonesia. We follow basic schema built in openldap. Custom schema can be added by creating .schema files.

  3. run ldapadd -x -D "cn=manager,dc=example,dc=com" -W -f example.ldif
    Example.ldif is the .ldif file we created earlier. The command will add those entries in the file to the ldap.

New Office, New Toys

It’s been 2 weeks since i moved to the new office. Well, of course it has a lot of brand new toys. Here we have Red Hat Enterprise Linux, Liferay Portal, Zimbra Mail Server, and Jabberd … all connected (to be) by OpenLDAP.

OK, here’s today catch :

In order to install Jabberd-2.2.4, we need to install gnu sasl newer than 0.2.27. I was fooled by the ordering in the site and downloaded 0.2.9, which is older than 0.2.27. Then I decided to install 0.2.27. Here I learned that in order to remove the old installation done by make install we can use make uninstall (if the installer is still intact) .

After I installed it, I find that the error we found from ./configure command in jabberd still persist. Random search at google i found this link Here I learned that sometimes for a library to work, we have to modify to include the library and ldconfig to update the links of the library.

Ganymede ’round the world huh


After a long days waiting for the new release of Eclipse, finally Ganymede is available. Hastily, I put all of my download capacity toward it. And as always, I hastily put it into the ongoing project i’ve been working on. So now that there is Ganymede Around the World Contest, i finally able to scream what I dislike about the project.

1. cannot create a Tomcat 6.0 server

2. cannot create a Tomcat 6.0 server

3. cannot create a Tomcat 6.0 server



Gaah … I really wonder why, since even the 3.4 Ms is doing okay on that part…