Tuesday, September 13, 2011

Why i use only Linux in my laptop and desktop ?

In a few days ago, saturday evening, 2 of my friends visited my parent's house where it is also my place to work. I am a freelancer in Web Development and Linux Consultant besides teaching in an academy and writing a book. My parent's house is my basecamp in Freelancer activity besides my own house. One of my friend said that i am a Linux mania, what 's going on with Linux, he asked himself ?. What is behind that ? At that time, i just quiet, no answer and i want to answer it here. An Answer for public.

There are some reasons why some people choose Linux only as his Operating System (OS). Some because Linux is free, gratis to get, immune from virus and stable particularly for a server. Here are my reasons choosing Linux only which i already use since about 4 years and about 9 years i use Linux together with another OS (at that time that another OS is illegal).

1. I am uncomfortable using illegal OS but i don't have enough money to buy all of software licenses for my pc. As i know, using illegal software is forbidden, in Islam terms, Haram and i am afraid using, moreover eating some haram things. This is my main reason. In Linux besides OS itself, i can get so many free softwares i can use. Not just free but a lot of them are good software and some of them amazing . Linux as OS is amazing.

2. I feel secure from virus and Linux security is very good.

3. I like Linux Openness. When we boot and shutdown our PC, we can see what process Linux is running.

I think those are some 3 reasons why i choose only use Linux in my PC. But that doesn't mean that i am anti proprietary software. Maybe if i need use a/some proprietary software in my pc i can install it and i try as possible as i can to use legal software but so far, Linux can fulfill almost all of my need in software except one, i can't install Internet Explorer for testing my web application or website compatibility running under it but it's okay , i just make sure my css is compatible for major browser including IE.

Thank you.

Image source :

Sunday, July 17, 2011

For you, a computer science student, learn Programming well !

According to IEEE Computing Curricula 2005, there are 5 majors in computer science, they are : Computer Engineer (CE), Information Systems (IS), Computer Science (CS), Information Technology (IT) and Software Engineer (SE). Each has different subjects respectively, for example, for Computer Engineer, it consists subjects about Integration system development and for Software Engineering (SE) consists software development and SDLC. But all of them has programming fields that have to be mastered by students.

In Indonesia, in computer science faculty, we can find Teknik Informatika, Sistem Komputer, Sistem Informasi and Komputerisasi Akuntansi. They are derived from IEEE Computing curricula 2005 above. And also, programming is exists in all of majors and become core subject for computer science. So, every student has to learn and able in programming. But in fact, a lot of computer science students are not able in programming or just a low level in programming and worse for the final task the program or software is made by other people. The result after graduated, he/she could graduate with good GPA but low level in programming.

Good in programming not just for requirements to get good score but also for life skill in the future for every student and also we can learn easier other subjects such as networking and design if we already good in programming. Also learning programming can sharpen our logical and thinking ability.
The challenge in the future is predicted more complex and heavier than now so a degree is not enough to be "someone", there are other competency and skill need to be learned, such as programming, creativity and enterpreneurship.

You can be a network engineer, web designer or System Engineer but don't forget the programming skill.
Related Link :

Picture By : http ://

Reference :

Friday, May 27, 2011

How to become a great software programmer for an IT University Student ?

"Sudah lulus, tapi seperti mahasiswa tahun pertama ...(Already graduate but like a first-year student)". That was a sentence my friend uttered to me in a chat to show his disappointment about IT student quality in skill and knowledge in programming. He also add, they are a lot. Masya Allah, a lot ?!. My friend is a young IT-Enterpreneur, he has an IT company and that is his experience to has employees as a programmer. From that sentence, it shows that a new graduate from diploma or Bachelor degree is low in programming skill and knowledge. Actually not in programming only but also in knowledge in computer science in general that he should know after graduate, but he doesn't. Here, i make a difference between skill and knowledge, skill refer to practising while knowledge refer to theory.

There are other statements to express a disappointment about IT graduate student in Indonesia, particularly in programming skill and knowledge, mostly said by people in industry. Most of the graduate seems just get a certificate without thinking that they have to learn more by themselves because course in a class is never enough. Worse, if they get the degree by cheating, such as a project final created by other people.

If they find a company which train its candidate of employee before work, they are lucky, but if not, they have to train himself or autodidact. But actually, autodidact is the ability we have to have, because a training has a certain period while learning is always we have to do along our life.

This article is my opinion to try to explain How to become a software developer for an IT student. So after he graduate, he already becomes a great software developer at least just need next one to two years to become a great software developer.

Programming is a core skill and knowledge for every IT student with every major, whether they are Informatics, Information System, Computer Engineering or Accounting Computerize. Specific for Informatics or Teknik Informatika, programming must be mastered well.

I mean with a "Software programmer" is a person who has skill and knowledge to build a software. Not only programming skill, but also well-knowledge in database, software engineering including software development life cycle. Has well knowledge in software design is better.

These are some steps to be a great software programmer for an IT student :

1. You must come from Natural science / IPA in your high school. A good high school with good score in math and natural sciences subjects is better.

Before enter an IT University/College, you should has ability in Math and logics well. It can make you easier to learn subjects related with Math and Algorithm in campus.

2. Choose a good Computer Science campus. Good friends and an atmosphere in academic very influence ourselves for learning.

3. Although there are some language programmings are taught in campus, you do not need to master them all until advanced level. Just pick one or two language programmings you like and master it/them. In class, programming subjects are taught mostly until low-intermediate only, not until advanced. Your own effort to make it.

4. Get score "A" is not enough for programming related subjects (Algorithm, Data Structure, Database, Java Programming (If you want Java as your language), OOP and Software Engineering also Software Design and analysis). Try to have your own book, English edition is better or/and learn via internet. Join a forum, milis, read articles in Internet.

5. Get score "A" for math subjects. Make math is your favorite subjects.

6. Other subjects besides math and programming or software related subject is important too to get a high score. Good GPA is easier for your future, such as for looking a job and get a scholarship for next degree (Master/Doctor). But focus your attention to math and programming related subjects only.

7. Mastering English. So many good books and articles related in programming written in English.

8. Take a course outside class is good but the ability to learn autodidact is very important. After you graduate, you have to learn programming too by autodidact. It's impossible to take course continuously while you have to learn programming continuously, that's why, autodidact is very important.

9. Marketing yourself if you already good in programming. Let other people know it by showing your creation in application and your writing by publishing them in internet.

10. The last but not the least. Practise, Practise and practise. Practise as many as possible with solve the programming problems in a book or website, make a simple to middle size of application and try sample codes in a book and internet in your computer. You can join Programming contest to practise and measure your programming skill among other students. You also can to make a full version application. Making a final project including this step. Don't let other people to make your final project. Helped is okay but do alone/team (depend on the requirement). One key word, PRACTISE.

Don't forget, if you already has knowledge and skill, don't wait until advanced level, you can share your knowledge to other people by teaching and/or writing. Writing a book and scientific journal as well as free article shared in internet are a challenging and enjoyable matter, i think.

You can make money too by become a freelancer or/and IT enterpreneur by using your skill and knowledge in Programming. Become an employee ?. Don't mention, you will be top-wanted or/and hunted by companies, Insya Allah, don't forget to publish your good creation or invention.

A degree and certification are important but the far more important thing is knowledge and skill. Continuous learning and never think to stop learning until The death come to us.

Thank You.

Image by

Saturday, March 19, 2011

Linux for prosperity

A few weeks ago, there was an agricultural expo on Jakarta Convention Center, Jakarta. Agrinex, is the name of that expo with the tag, "Agriculture for prosperity". I have another idea, "Linux for prosperity".

As we know, we can get Linux as Operating System and a lot of GNU license applications bundled with it freely, meaning, free to use, to distribute and to modify. By this principles, for someone like me :) who doesn't have much money, he/she doesn't need to spend a lot of money to buy software license for starting a business, which need software help. For example, for those who want to build an Internet Cafe, they just think about hardware, space rental and employee cost without need to allocate some money for buying software licenses. In Linux, he can download freely a certain distro (Linux distribution)  in internet, such as Mandriva, Fedora and Ubuntu. They can install it in all of PCs they have without thinking of license charge for every PC. There are some Linux distributions need to pay, but a little such as Redhat, most of distro is able to download and install freely.

In another example, for those who want to enter the freelance field in web development , but don't have much money for software licenses, Linux can be an alternative.They can use Linux for software or development tools. Not just free in charge but also he can get high quality OS and applications for building applications . He just think for computer and internet link, doesn't need to think about high-cost software licenses. By using Linux, the Not Have but Have skills and knowledge in Software Development should dare to have a dream for building a World class IT Firm which serves various clients from different countries, has some high quality products and of course very profitable and prospectable also useful for Nation economy movement in software industry.

In this article, i state that from Hopeless because lack of money to become Hopeful because of Linux and of course Allah Ta'ala's help we beg for it. We don't need to use illegal software because lack of money to start a business especially for software license cost. We can use Linux.

Currently Linux is not strong in Server Only, but also like a heaven for developers and good in Office Automation and also can be used for Image creation and manipulation. You can use Linux well if your business needs those requirements.
For game, it's a good too but , i realize, it's not in the same level with the proprietary software which very good in Heavy Games. So, for those who want to build a Game center, you still consider for using proprietary OS and proprietary game software :).
So, Let's work hard and work smart by using Linux. Change !

Note : Talking about Web Development tools or PHP Development tools in Linux, you can read more details here. It's in Bahasa.

Friday, February 18, 2011

Why i am comfortable with Netbeans IDE ?

I am a fulltime freelance web developer. My daily work is making website and web based application and i found comfortable with the tools i use.

One of a great tool i use for development is Netbeans, it's IDE or Integrated Development Environment. In web development i use some scripts such as php, code igniter php framework, java script, jquery js framework,css,mysql for database and of course html/xhtml and for the platform, i use Linux, mandriva 2010.1 spring. mandriva ... the great OS !!.

Back to the Netbeans, it is a great IDE for php programmer like me. In itself, it is said "A free, open-source Integrated Development Environment for software developers. You get all the tools you need to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as C/C++, PHP, JavaScript, Groovy, and Ruby". Yes, not only php, but also other programming language and script supported.

The site also mention "Netbeans IDE - The smart way to code" and i think it's true because netbeans give us as programmer, some great features to make us more productive and easier to code.

Some features i use and useful are :
- syntax highlighting : particularly on html script and open and close parenthesis, it's useful for me.
- projects window to display project's folder and its files inside
- Navigator window to display class and functions
- css helper
- variable helper
- etc

Netbeans also support for cake and zend framework but for framework i use, Code Igniter, it's not supported yet, but it's oke, current condition, it's still very useful and great IDE for Code Igniter PHP, because support for PHP,css and html also sql which they are used in Code Igniter Programming,but i hope in the future Netbeans also support for Code Igniter, considering that Code Igniter is also popular php framework.

Besides a php developer, i also teach some classes in an IT campus ,I use java for programming language and again, i use Netbeans. In Java, the excellency of Netbeans is greater than in PHP, no wonder, because Netbeans created by java and well known in Java Environment. I found Netbeans syntax helper is very useful and great and Netbeans provides for creating GUI like Visual Basic, drag and drop the components.

Before use netbeans, i have ever use other great IDE, made by Java and it's a great IDE too but Netbeans provides more useful features and until right now, i feel comfort with it.

Is there other great IDE there ?. I am sure of course yes, the free and open source or the commercial product. Let's say, Eclipse for free tool and Zend Studio for commercial product. I ever use eclipse and i found it's good IDE for php programmer and i am sure it's great for java developer. For Zend Studio, i have never use but i have ever heard that it's great IDE for PHP, the best one, and i believe it, considering zend is one and the best php company in the world founded by PHP master, Zeev Suraski and Andi Gutmans.Both of them also create php above version 3.0.

Netbeans is free to download and we can make a commercial application use it. The IDE is keep in development to be better and now it's on 6.9.1 version. I wonder, why netbeans developer want to develop a great and free to use application ? without charge and it's also for other open source developer too. Thank you so much for them, i appreciate highly what you have done.

So, if you are a C/C++, Java or PHP programmer, and want to use one of the best IDE, why not try netbeans ?.

For more details about Netbeans, please visit the Netbeans website