Thursday, January 19, 2012

The Reunion of SMPN 245 Jakarta, Year 1994

The day was came, sunday, January 15 2012, the reunion of SMPN 245. That was date, we, students of that school made a reunion in APSG Restaurant, Situ Gintung, Ciputat, Tangerang Selatan.The restaurant is wide, green and has kids playground, a beautiful restaurant i think. It was an 18-year reunion after our graduation.

I came with my family, my wife and my 2 kids at about 11.30 AM. The place was still quiet, only some friends who also as the organizing committee members there.They came before me prepared the place. When i came, the place was ready but still some little preparation seem in some corner and i as a member of the organizing committee too help the rest of preparation. While, My kids and my wife played in kids playground eagerly. Then, one by one, the friends came in the place, alone or accompanied by his/her own spouse and children. We meet with our old friends eagerly. Some of us had not meet each other for some years, of course we were very pleased and surprise. We still knew our friends because our long memory is still good :).

At about 13.00, we had a lunch together, the food was delicious and at about 13.30, the teachers and school staffs came in the place, Masya Allah .... the teachers who had taught us 18 years ago came in and met with us again. The situation was cheerful, fun and impressive. Many teachers did not recognize us, it was reasonable, because it was a long time ago , 18 years ago had not a short time and so many from us had changed physically and face. Oops, there was one teacher still knew me ... ow how happy i am :).

We were gathered and listened a speech from the chairman of the organizing committee, Wirda Kamalia, a speech from teachers, represented by Ibu Ida Dravida (She taught us PMP) and a testimony delivered by Irma. After that, the teachers and school staffs and some of our friends were having lunch accompanied with some songs, sang by professional singer and our friends. We sang and danced together but i just only watched it.

Then,the door prize was started ... mention some lucky numbers and my number, 4 was out as one of the Door Prize winner.

After the Door prize was ended, we took some pictures together and after that, the program was ended. One by one the participants went home. The organizing committee including me went home later cleaning the place but some friends were still talked to each other in different place in a small group.

That is my notes about the reunion of SMPN 245 Jakarta. Remembering from planning, discussing, organizing and running the reunion, it was a sweet and impressive program.

Thank you friends ....

Saturday, January 14, 2012

Java Programming in my perspective as a PHP programmer


I am a fulltime freelance web developer using PHP and i also teach a computer programming but not using PHP, it's using Java. Yes, i teach Java Programming. First, i feel not so like teaching Java, because i don't know Java well. Yes, i am a novice in Java but my department chief still trust me to deliver it, although she knew that. So i receive that task . I am learning Java by reading, practicing and teaching in the same time.

My impression about Java so far is, Java is a very good programming language and rather difficult to learn especially for those who new in OOP concept. Here, I try to compare those 2 languages, Java and PHP.

1. Java is very "Computer Science". We will learn so many computer science terms, more than PHP.

For example :

If we want make a pop menu in GUI, we must know JOptionPane class and its methods and parameter. Comparing with PHP, it just know only "alert" syntax and moreover it's not in PHP, it's in JavaScript. PHP itself can't make a pop up menu . Luckily, PHP can work together with javascript which make pop up menu and JavaScript itself has Framework which able to create various pop up menu.

Pop Menu in Java GUI


2. Java is Object Oriented Programming, no procedural , while PHP is still use procedural besides support OOP too.

Everything is OOP in Java. We have to master OOP Concept. We have to understand what class is, what object is, what inheritance is, etc. There is no Procedural programming anymore, like PHP still can use procedural.

3. Java is very wide in utilization and type. PHP is not so wide.

I just learn and teach Java Standard Edition, while there are Java Enterprise Edition (J2EE) and Java for Mobile (J2ME) too. Other, there is JSP. Don't forget Blackberry and Android using Java as their programming language. Java serves from Enterprise to mobile. We can make interactive games, database, science, geograhical application, etc using Java. Java for all.

PHP is good for enterprise and very strong in web development but it's utilize is not so strong for mobile device and can't use in making Interactive games.

4. So many syntax in Java . PHP has less.
It's so hard use so many syntax in Java, but luckily we are helped by IDE. There are some great IDE for Java. 2 of them and very well known are Eclipse and Netbeans. By using them, we are helped in highlighting, auto-completion, helper window,auto correction for some cases,etc.
I use Netbeans for PHP too. Netbeans is an open source great IDE for C/C++, PHP and Java.

I just mention 4 comparisons between Java and PHP. It doesn't mean that PHP is lower quality than Java particularly in web development. PHP is very good in web application development, even application for enterprise, you won't regret using PHP for web development, but of course you have to also use JavaScript, Html, CSS and Image processing to work with PHP. But for mobile, use Java.

I still choose PHP with other supporting scripts and tools as my main programming language not Java for today, because i am more familiar with PHP and have some experiences and portfolio in PHP application, but i am still eager to keep learn Java.

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 : mddsp.enel.ucalgary.ca

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 :
http://blog.sofwan.net/2011/05/how-to-become-great-software-developer.html

Picture By : http ://www.freeimages.co.uk

Reference :
http://romisatriawahono.net/2009/12/23/gap-akademi-dan-industri-masalah-dan-pemecahan/

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 :www.freeimages.co.uk

Saturday, March 19, 2011

Linux for prosperity

A few weeks ago, there was an agricultural expo at Jakarta Convention Center, Jakarta. Agrinex, it's 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 application bundled with it freely, meaning, free to use, distribute and modify. By this ideology, for someone like me :) who doesn't have much money, they don'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 worker fee without allocate some money for buying software license or allocate just a small amount of money. They can download freely a certain distro of Linux 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.

In another example, for those who want to enter the freelance field in web development , but don't have much money for software license, Linux can be an alternative.They can use Linux for the software or Development tools. Not just free in charge but also they can get high quality OS and applications for building applications . They just think for computer and internet link, doesn't need think about high-cost software license. 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 Linux and of course Allah Ta'ala's hand we beg for it. We don't need to use illegal software because lack of money to start a business especially for software license fee. 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 can be used also 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 Indonesian Language.



Friday, February 18, 2011

Why i am comfortable with Netbeans IDE ?


http://netbeans.org

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 netbeans.org 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