Bernad Pakpahan Blog

real Geek or young Entrepreneur?
See also: Other Geeks@INDC
DotNetNuke market share
Karena sedang jatuh cinta ama DNN.Aku tadi malam mengadakan research kecil-kecilan tentang DNN market share.Metode yang digunakan adalah seberapa banyak perusahaan di Indonesia yang menggunakan DNN untuk bisnis mereka.  Tool yang aku gunakan untuk mengambil sampling bukan wawancara, kuisiner atau pooling tapi Google. Lho kok google sih...Karena dari google kita bisa indeks portal-portal yang menggunakan DNN. Keyword yang  aku gunakan adalah "FriendlyUrl"nya DNN yaitu tabid. Hasilnya adalah sebagai berikut. 

Sebenarnya ada banyak  portal yang belum disebutkan diatas. Namun aku hanya mengambil  sample dari perusahaan dan instusi penting. Harus diakui popularitas DNN tidak sepopuler open source portal lainnya seperti joomla atau mambo. Namun jika dilihat dari perkembangannya jumlah pengguna DNN semakin lama akan cepat meningkat. Hal ini dilihat dari semakin banyak perusahaan besar seperti BEJ, BNI dan PLN yang menggunakan. Sehingga perkembangan akan mengarah ke perusahaan dengan skala menengah keatas. Ini adalah potensi bisnis!

  Issue clasic yang sering dikemukan adalah hosting cost yang tinggi karena yang gratis cuma portalnya saja (tidak termasuk konsultasi). OS dan dan mungkin databasenya harus license. Mungkin karena database bisa saja SQL Server Express. Meski mana ada hosting yang databasenya SQL Server express.Meskipun demikian DNN memiliki kelebihan dibandingkan dengan CMS lainnya karena DNN bukan hanya CMS tapi juga framework sehingga custom development akan sangat mudah dan professional karena dibangun kaidah development yang benar. Meskipun DNN tidak pernah memaksakan kita harus mendevelop module harus sesuai kaidahnya. 

 

Dari semua portal tersebut hanya BNI dan BEJ yang tidak hanya menggunakan DNN sebagai portal biasa tapi dari hasil-hasil pejelajahan ke beberapa pagenya. DNN juga terhubung dengan bisnis proses mereka seperti indeks saham, simulasi kredit, dll dengan menggunakan custom module. Sedangkan PLN sendiri masih belum mature dengan portal mereka dengan banyaknya broken link dan modul-modul yang tidak bekerja. Yang benar saja simulasi pemasangan baru membuat browserku hang. Walah....

Share this post: | | | |
ASP.NET MVC Framework

A awesome post from ScottGu

ASP.NET MVC Framework expose controller above the process.

1. It is highly extensible and pluggable.
2. Mapping URLs to Controller Classes
3. Mapping URL Parameters to Controller Action Methods ("skinny controllers")
4. Unit Testing support using IOC Container  (I love this feature)

BTW framework ini katanya merupakan adaptasi dari subsonic

 Please keep on eyes on his blog
http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx

Hemmm... can't wait CTP release..katanya akhir tahun ini akan release.

Share this post: | | | |
My First blog after 1 year

Setelah sekian lama tidak ngeblog, Akhirnya aku mulai ngeblog lagi, setelah lihat last blog, woaw aku nggak ngeblog udah 1 tahun 18 hari. Gila abis itu sudah nggak pernah lagi ngumpul di Microsoft. Abis nggak pernah lagi ada Community In touch. Klo developer day sih ngambil jam kantor ya nggak mungkinlah… Secara aku sekarang kerja di perusahaan semi end user.  Hanya bisa mengikuti perkembangan .NET dari milis

 

Pekerjaan dikantor banyak banget, maklum masih kerja sebagai kuli, Gimana mau ngebloog mana malamnya aku kuliah lagi. Capek deh..Ini juga mulai ngeblog karena di kompor-komporin bos  MCA . Om AK aja kuliah juga masih sempat ngeblog and bisnis juga hehehehe….

 

Yang parahnya ketika om MCA memberitahukan bahwa tulisanku tentang ASP.NET dipublish di IlmuKomputer aku nyantai-nyantai aja. Tapi beberapa hari yang lalu aku nyasar ke ilmukomputer dan menemukan artikelku tentang ASP.NET  , di anthornya tertulis kalau aku sudah MCPD, walah info darimana nih, Emang terakhir ketemu beliau aku memang berencana mau ambil MCPD Enterprise Application, tapi sampai sekarang nggak sempat2 ngambilnya padahal tinggal 1 ujian lagi. Ya udah deh bulan depan aku ambil sekalian ambil fasilitas buy 1 get 2. Hehehe promo ini bermanfaat waktu aku pernah sekali gagal ambil MCTS Windows Application, abisnya aku khan web developer.

 

Ini juga bisa ngeblog karena I reach the deadline earlier. Abis itu beberapa hari bosku nggak nerror kerjaanku sibuk nyambut kedatangan BOD dari UK. Review tentang current bisnis dan ngomongin bisnis baru. Nah kalo udah ngomongin bisnis baru siap-siap untuk sibuk R&D mulai dari hanya prototype atau demo. Nah klo prototype disetujui user siap-siap jadi romusha ……kaykaaakakakakaa…..

 Sekarang mau bagi waktu untuk kerja, kuliah dan community. Nggak terasa .NET framework udah 3.5. Padahal waktu itu kita oprek-oprek teknologi masih CTP dan masih add-ins di VS 2005. WWF,WCF dan WPF , dan LINQ. Dan sekarang udah jatuh cinta ama DotNetNuke, padahal i hate VB tapi karena sebulan ini aku dapat project membuat portal lama-lama jadi familiar dengan VB.NET 

Sialnya pertama-pertama belajar DotNetNuke nggak dapat resource dengan C#.  Banyak ebook DNN tapi semua yang ada di perpustakaan cuma menggunakan VB.NET mana aku udah banyak yang lupa sintaksnya. Dan tugas pertama harus membuat custom module. Should I use VB.NET to create DNN module. No absolutely no setelah beberapa saat mengingat syntax-sintax dasar VB aku makin familiar dan gampang belajarnya. Untung otak adalah sebuah compiler yang canggih hehehehe Thanks God.. Setelah contoh  dibaca lalu di compile jadi algoritma. Dan ketika aku mau tulis ulang modul tersebut aku tulis dengan C#. (reflector) Hehehehehe jadi translator nih ceritanya…

  

 

Share this post: | | | |
Beta for NHibernate 1.2 was released!

NHibernate 1.2 Beta 1 Released. There are some features available in this release.

  • Native generics (you no longer have to use the NHibernate.Generics compatability library).
  • Batching support (SQL Server only) - huge perforamance increase in some scenarios.
  • Support for using Stored Procedures.
  • Support for named connection strings.
  • SQL Server 2005 and SQL Server 2005 Everywhere dialects
  • Parametrized types and User Collection Types - for the really advanced scenarios
  • Support for projections in criteria queries - This one looks especially interesting
  • IL-based reflection optimizer - another big performance boost.
  • Error Message Improvement (Hehehe this is hell of new Nhibernate programmer)

You can get the new beta release here, and the full release notes are here.

Share this post: | | | |
After long time, finally time to blogging

It's about four month I didn't write any blog. Yeah I'm very busy in last six months. The most long time activity is preparation for NET 2.0 Framework certification exam.  I have deadlined. What's deadline, its second shoot exam. This promo very useful for me. From five time exam, four times pass, one fail. The fail exam is windows application. Hemm it's coz I have long time doesn't touch any windows application. Fortunately I can pass it in second shoot exam. yeaahh I'm MCTS in Windows, Web and Distributed application now. In further I will take MCPD Enterprise Application (MCSD .NET in net 1.1 and lower). I know its need long time preparation.  

My activity, beside do my current company project I do small research in custom development related issue. From technical issue until to management issue such as methodology, SDLC, framework, technology and its architecture.  My focus is Web and distributed application using .NET technology.

In past I have many discussions with Mr. MCA about that issue. Yap I have much knowledge from him.  But since one month ago he was moving from netway and decided become a trainer in Singapore. Never mind I have one more guru, omwok (the real geek’s coder). But sometimes he is unpredictableJ.

Next time I will write any blog or article on behalf my research. Btw I like this blog engine yeah it’s community server

 

Share this post: | | | |
Indonesia go Open Source! What about .NET?

IGOS, Ini adalah jargon yang lagi ngetren saat ini. Pemerintah terlihat cukup peduli dengan Hak cipta Perangkat Lunak. Semoga hal ini tidak hanya panas sesaat dan akhirnya lenyap ditelan waktu. Dengar open source pasti yang terbayang oleh kita aplikasi-aplikasi yang dibangun oleh bahasa-bahasa seperti Java, PHP, dll. So what about .NET? Apakah dengan .NET kita bisa mendukung IGOS? Jawaban bisa, banyak software open yang dibangun dengan menggunakan teknologi .NET. Dan itu tidak diharamkan oleh microsoft yang melahirkan teknologi ini. Teknologi seperti DotNetNuke yang dibangun menggunakan .NET tidak kalah bersaing dengan software open source lainnya yang dibangun menggunakan Java, PHP, dll.

So bagaimana kalau kita ingin membangun dari awal? Cukup banyak software-software yang mendukung proses development software open source. Software-software ini tidak semuanya open source, tapi pada umumnya gratis, karena tidak semua yang gratis harus open source :D. Namun dengan bantuan-bantuan software kita dapat membangun aplikasi open source dengan cost yang rendah tanpa harus membajak.

Berikut ini teknologi-teknologi alternatif dalam membangun aplikasi open source dengan .NET. Sebagian aplikasi telah banyak digunakan di dunia open source, dan sebagian lagi merupakan porting dari-dari tool-tool tersebut. Sebagian lagi terus melakukan proses “enhancement”, karena open source di .NET masih belum se “mature” rivalnya Java. Sebenarnya beberapa teknologi seperti .NET Framework yang merupakan engine utama dari teknologi ini adalah free alias gratis, namun .NET Framework masih punya dependency dengan Windows OS. So teknologi Mono yang running di Linux dan windows adalah alternatif yang tak kalah menariknya. Meskipun Mono belum selengkap sestabil kembarannya, setidaknya perkembangan teknologi ini cukup menjanjikan. So keep on eyes with this technology.

 

Category

Main Technology/Tools

Alternative Open Source/Free  Technology

1

Operating System

Windows XP/2003

Mandrake Linux
http://www.mandrakelinux.com/

2

Framework

.Net Framework

Mono Project
www.mono-project.com

3

IDE/Editing Tools

Visual Studio 2005

Sharp Develop
http://www.icsharpcode.net/OpenSource/SD
Eclipse
http://www.eclipse.org

Visual Studio Express
http://msdn.microsoft.com/vstudio/express/
ASP.NET Web Matrix
http://www.asp.net/webmatrix/
VIM

http://vim.sourceforge.net
MonoDevelop
http://www.monodevelop.org/Main_Page

4

Documentation Tool

Microsoft Office

Open Office

http://www.openoffice.org/

5

Modeling Tools

Microsoft Visio
Rational Rose
Enterprise Architect

Agro UML
http://www.agrouml.com/

6

Source Control Management

Microsoft Visual Source Safe

WinCVS

http://www.wincvs.org
TortoiseCVS
http://www.tortoisecvs.org)

7

Databases

SQL Server
Oracle

SQl Express
http://msdn.microsoft.com/vstudio/express/sql/
Oracle Express
http://www.oracle.com/technology/products/database/xe
PostgreSQL
www.postgresql.org/
MySQL
www.mysql.com/

8

Web Servers

IIS

Cassini
www.asp.net/Projects/Cassini/
XSP

http://www.mono-project.com/ASP.NET

Apache
http://www.apache.org

9

Build Automation tools

Visual Studio 2005 (MSBuild)

Nant
http://nant.sourceforge.net/

10

Testing Tools

Visual Studio 2005

NUnit
www.nunit.org/

11

Continuous Integration

Microsoft Team Foundation Server

CruiseControl.NET
http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET
Draco.NET
http://draconet.sourceforge.net/

Hippo.NET
http://hipponet.sourceforge.net

….

…..

…..

Mungkin ada aplikasi yang tidak lagi open source atau gratis, mohon diupdate. Bagian yang terakhir, sengaja saya buat titik-titik, jika rekan-rekan sekalian tahu aplikasi-aplikasi lainnya yang free atau open source, silahkan dishare. Untuk menambah wawasan kita...   

Share this post: | | | |
Posted: Jun 20 2006, 08:51 PM by bernardpakpahan | with 8 comment(s)
Filed under:
Why .Net doesn’t fully support Generics?

As we know, purposes of generics introduced in .NET 2.0 are to avoid boxing and unboxing. Generics will be improve our application performance and make it safer. I will not dwell on generics functionality. It’s have more specific topic.

 

I will talk about .NET supports in generics. I’m already making simple code to make generics collection.

 

TList<Orders> list=DataRepository.OrdersProvider.GetAll();  

 

OK, list is a generic collection from Orders domain object. In UI layer I need to bind this object. Fortunately, .NET 2.0 API support object as data source.  In this case I use windows form as UI so I will be use BindingSource class.

 

private BindingSource ordersBindingSource;

ordersBindingSource.DataSource = list;

 

BindingSource support generics data source, but it’s self isn’t generics control. When I see the metadata, I found this.

 

public object DataSource { get; set; }

 

Why BindingSource doesn’t have generics data source property? For example like this

 

public List<T> DataSource { get; set; }

 

Hemm, when I bind my generics object to BindingSource it will be boxing it to object. Also when I need the current object, It will be unboxing again to my domain object.

 

            Orders order =(Orders) ordersBindingSource.Current;

            orderid = order.OrderID;

 

Might I have very little knowledge in .NET, so I don’t know how to avoid boxing and unboxing in this case.  If you have any solution, it will be appreciated. CMIIW

Share this post: | | | |
Posted: Apr 12 2006, 08:21 AM by bernardpakpahan | with 19 comment(s)
Filed under:
Founding ceremony Del Organization of Alumni, I will be there!!

Finally, I has been deliver Mr Risman invitation's for that ceremony. Unfortunately I was late, so I can't met Mr Risman. Oh yeah...I was very busy for this day, not only this day but whole of this week. I have job, I have some assigment from Mr Choirul, I'm also member of committe for this ceremony. I'am also a students....:P.

Do you still remember with my last post? Of course i found an university for continue my study. It's not very great, but also not very bad. I think it's a middle grade. I have considering about it's quality, cost, duration and my available time, and it's acceptable with my standard.

You can imagine, that  I'm very busy.....
I know have I have loose time in my office time because I'm not assign yet to any project. May be, in next two or three weeks. I can do my other duty in this time, but i think it's  bad  idea.  Because  it will be break the IT ethics and IT rule. It can be categorizing to be a corruption. Many employees, not only in IT field, doing this bad habit.

To solve this problem, I must allocating time for other duty to after office time. And if have loose time in office I do some study to improve my skill. It's material must be related with my next project.

I know we are young proffesional, have less experience in IT industry. So we need some share from IT expert, how to become good IT proffessional. My case is only few cases will be force in next time in my career. So I feel very glad that Mr Risman, one of speakers in this event, approve my invitation. I hope, we will be get valuable knowledge from this event. Because I'm very conscious that to become IT proffesional doesn't only need skills and knowledge but also, which the most important is “conduct“.

I will be there....

Share this post: | | | |
Moving from practise to concept!

Huhhh, sore ini browsing semua website-website universitas terkemuka di jakarta tidak membuahkan hasil. Browsing sana sini, klik klak sana sini, hasilnya nihil....

Sulit sekali mencari universitas yang bermutu yang membuka kelas ekstensi dr d3 ke S1 dengan biaya yang tidak terlalu mahal. Biaya kuliah perbulannya hampir-hampir menyamai gaji bulananku, Lantas mau makan apa nanti?

Mau cari kampus yang murah, yang penting lulus, susah juga soalnya belum apa-apa instansi bonafide udah pasang proxy “Lulusan dari Universitas terkemuka“. Belum lagi klo mau ambil S2 harus melewati “proxy” yang sama. Jarang ada instasi/universitas yang passing “proxy” tersebut, dengan lebih mengutamakan pengetahuan dan skill, kayaknya aku harus menggunakan “webservice” nih.....

Cari pekerjaan baru? kayaknya belum ada rencana nih tapi klo terus stack di DIII karirku akan mandek alias jalan ditempat......Soalnya biar bagaimanapun skill dan experiencenya, jarang-jarang lulusan DIII yang melewati level managerial....Dalam istilah ketentaraan dia akan terus menjadi  "pembantu letnan...". Paling paling ada embel-embel “senior” didepannya.

Ini sungguh pranata sosial yang tidak menguntungkan bagiku. Solusi terakhir harus nabung sampai tahun depan nih... Oh So long......

 

Share this post: | | | |
Design Patterns? Why not?

Setelah membaca buku Design Patternnya GoF dan mencoba penerapannya di C#, ada hal baru yang kudapatkan. Ternyata Design Pattern tidak seseram yang selama ini aku bayangkan, seperti materi konseptual lainnya seperti OOAD, Extreme Programming (yang biasanya membuat aku mengantuk membacanya :P). Malahan ada beberapa pattern yang selama ini tidak asing  bagiku seperti factory, prototype, singleton, proxy, adapter, template, observer dan state. Pattern-pattern ini sering aku pakai dan temui diberbagai open-source project. Malahan API/languange di .NET sudah terconstruct menggunakan design Pattern seperti iterator.

Beberapa pattern termasuk baru bagiku. beberapa diantaranya cukup sulit dimengerti. Apa lagi pattern-pattern yang  memiliki fungsi yang cukup mirip seperti decorator, adapter dan factory.
Pattern-pattern ini mengubah interface sebuah atau beberapa class agar lebih cocok/tepat digunakan pada program tertentu. The big challange bagiku adalah bagaimana dan kapan sebuah pattern digunakan? jangan sangking tergila-gila dengan "design pattern" semua implemantasi "dipaksakan" menerapkan design pattern. Kemampuan analisa sangat dibutuhkan disini. Aku sendiri masih belum mature dalam "design pattern". Cukup sulit menentukan pattern yang tepat untuk study case tertentu. Dibutuhkan pengalaman dan pengetahuan OOP yang cukup advance untuk mature dalam design pattern.

Namun dalam mencari resource yang berhubungan dengan "design pattern", aku menemukan sebuah artikel yang menarik untuk newbie. Artikel ini berjudul "Non-Software Examples of Software Design Patterns" karangan Michael Duell. Sangat menarik, artikel ini sangat membantu aku dalam memahami "design pattern" dengan perumpamaan kehidupan kita sehari-hari.

Sebagai contoh untuk proxy pattern, Michael Duell mencontohkannya sebagai sebuah cek. Cek seperti halnya proxy merupakan "surrogate" yang mewakili object target. Cek mewakili object uang dengan jumlah tertentu. Jika seorang mencairkan cek tersebut dia akan akan mendapatkan uang yang menjadi object sesungguhnya, sama halnya dengan proxy, jika si user mengaksesnya, proxy akan menghubungkannya dengaan object sebenarnya.

Contoh lainnya adalah Observer yang diumpamakan sebagai sebuah pelelangan, Setiap bid dari seorang peserta selalu dipublish/diberitahukan kesemua peserta lelang, Peserta lelang dapat mengetahi posisi bid tanpa harus tahu siapa melakukan bid tersebut. Demikianpula observer pattern, yang biasa juga disebut publish-subscribe. Ketika sebuah object mengubah statenya (publishser), maka object dependent lainnya (subscriber) akan diberitahu, dan subscriber akan terupdate secara otomatis.

http://www2.ing.puc.cl/~jnavon/IIC2142/patexamples.htm

Setiap pattern diumpamakan dalam kehidupan sehari-hari dengan baik. Jadi betul juga kata om Norman bahwa design pattern itu bukanlah sebuah penciptaan, namun tak lebih dari sebuah penemuan. Karena jauh sebelum kita mengenal dunia programming, kita sudah menggunakan dengan baik. It's amazing... 

Tapi anehnya kok belum ada artikel atau buku yang membahas design pattern secara lengkap dalam bahasa Indonesia. Mungkin materi ini bisa menjadi salah proyek dalam project otak.

 

Share this post: | | | |
Posted: Mar 16 2006, 08:16 PM by bernardpakpahan | with 3 comment(s)
Filed under:
New Company, new knowledge, new Spirit

Sebelum aku menuliskan blog ini, aku baru saja bercerita banyak dengan om MCA. Sangat menyenangkan para seniorku di Netway, ternyata tidak mempunyai latar belakang computer science. Tapi anehnya mereka bisa sangat expert di dunia programming. Kuncinya cuma satu, autodidak!

Hemmm, gimana kami yang punya latar belakang betul2 di computer science? Aku harus bisa 5 tahun kedepan seperti mereka... Oh iya, perusahaan baru biasanya ilmu baru, soalnya lain perusahaan lain pula framework yang dipergunakan. Kalau dulu di Astra masih pakai enterprise library, disini kami udah pakai nHibernate. Aku sich nggak terkejut, soalnya, om Agus udah kasih warning untuk migrate daru EntLib ke nHibernate. Makanya jauh hari aku udah belajah nHibernate.

Yang menarik, pada saat yang bersamaan aku masuk, omwok juga memperkenalkan framework baru. Dan aku harus bisa menguasai teknologi yang mendukung framework tersebut sebelum terjun ke proyek. Amazing dan sangat menarik soalnya ini sangat baru bagiku. Entah mungkin di Indonesia ini sudah lama. Saat ini yang lain mungkin sibuk mengoprek WinFX and the gank...

Ada beberapa teknologi baru bagiku, yang sangat menarik bagi seperti

  • db4o (Object Oriented Database)
  • CAB (Composite UI Application Block) smart client
  • WSRF (statefull webservice)
  • WSE 3.0 (implementasinya WS * specifications di .NET)
  • WWF, ini bukannya World westlering Federation tapi Windows Workflow Fondation yang umumnya digunakan untuk automation change management.

Hupff...... Setelah 3 minggu mengoprek kelima teknologi ini, akhirnya hari ini aku menyelesaikan hands on lab terakhir untuk WWF. Sangking semangatnya pengen sih ngelanjutin ke “Presenting Windows Workflow Foundation” biar lebih sreg. Tapi begitu melihat example codenya pakai VB.NET, nanti aja deh......Bukannya aku anti dengan bahasa yang satu itu, tapi aku udah banyak lupa sintaxnya, bukannya aku makin ngerti yang ada malah jadi makin puyeng. Lain kali aja deh, but I'm really interest from that all technology.

Kesemua teknologi diatas nantinya akan mendukung framework baru yang berorientasi SOA (Service Oriented Architecture). Hem, tunggu apa tanggapanku setelah mengoprek teknologi diatas....

Padahal masih ada PR lama yang harus aku selesaikan dan tertunda seperti belajar Design Patternnya GoF, serta teknologi seperti Biztalk Server dan Sharepoint. Hari gini masih belajar Design Pattern? Iya donk aku belum punya pondasi yang kuat, untuk apa punya knowledge high, tapi pondasi masih rapuh

Oh ya mengenai WinFX, menarik juga ini! Aku udah download Windows SDKnya, yang terbaru lagi, Windows SDK February 2006 CTP. Sepertinya versinya sudah lumayan stabil. Aku udah coba WWF, lumayan, sampai saat ini belum ada bug. Rencananya kedepan aku mungkin akan terlebih dahulu belajar WCF (codename Indigo). Seperti menarik juga mainan ini, apalagi interoperatebility dan loose couple yang ditawarkan boleh juga tuh. Meskipun kata omwok masih kalah bagus dengan WSRF+WSE 3.0

WSRF+WSE 3.0 vs Indigo? menarik juga nih, itu semua akan aku buktikan setelah aku mengoprek yang namanya Indigo. WPF alias Avalon gimana?
Hemm nanti dulu deh, soalnya masih belum stabil, kulihat waktu Presentasi Om Dondy di dIM february kemarin, masih banyak bugnya, lagipula avalon membutuhkan spec yang lumayan tinggi. VGA Card 64 MB, meskipun dikosan ku udah ada yang 128 MB, tapi tunggu yang lainnya dululah. 

Share this post: | | | |
Boon of this story====>tomorrow will be better

Hueamhemuam.....

Tadi malam aku tidur nyenyak sekali, dan malamnya aku mimpi indah bgt, tapi aku nggak tahu lagi mimpiin apa? :)

Setelah hari-hari berat yang aku lalui selama dua minggu ini. Aku baru bisa nikmati tidur yang nyenyak. Soalnya adik-adiku dikampus, sudah mengerti bahwa yang terjadi selama ini adalah miss-understanding. Thanks buat adikku Inox, Kristina dan Gloria serta itoku Yose, atas dukungannya selama ini.

Tolong ambil segi postifnya dari blog saya tersebut. Agar kalian nantinya lebih matang dan siap terjun kedunia kerja. Agar kritik pedas tersebut tidak pernah terucap lagi, berangkat dari pengalaman yang kami dapat selama ini.
 
Segi negatifnya muncul karena Mis-understanding diantara kita dan murni kecerobohan aku sendiri. Biarlah itu menjadi palajaran yang sangat berharga bagi aku. Tapi meskipun begitu aku nggak akan pernah bosan ngeblog, yang terpenting adalah lebih-lebih hati dalam menempatkan konteks.
 
Seorang anak kecil tidak akan bisa berdiri dan berjalan dengan benar, sebelum merasakan yang namanya terjatuh. Yang terpenting bukan mengapa kita sampai jatuh, namun bagaimana kita dapat berdiri dengan segera.....
 
Oh ya
====>tomorrow will be better
Itu adalah judul dukungan yang Ibu Inge berikan terhadapku. Terima kasih Ibu, selama ini aku pikir kalau ingin berkomunikasi dengan Ibu harus dengan cara yang kaku dan resmi. Tapi aku sekarang mengerti Ibu tidak “segalak” yang aku pikirkan.
 
“Sebetulnya saat menerima forward-an email tsb. sebagai salah satu "ibu"nya sekolah Pidel: reaksi saya yang pertama  melakukan intropeksi.Tujuan yg melakukan forward email tsb di kalangan dosen adalah untuk perbaikan sistem pendidikan. Menurut saya, akan sangat baik kalau lulusan memberikan masukan ttg apa yang kurang dan kesulitan yg dihadapinya saat baru bekerja. Tentu saja berniat baik untuk membantu jika ada yg bisa diperbaiki dan bisa membantu alumni yg masih "fresh" tsb. Jadi, kamu boleh bilang ke rekan semua angkatanmu, bu Inge secara remote masih mau membantu lulusan ya?“

Terima kasih atas pengertian dan dukungannya. Absolutely of course, tomorrow will be better. I believe it, and it's boon from this story.
Share this post: | | | |
About my Almamater

Kemarin sempat terkejut klo blogku tentang “Ilmu yang kudapatkan dari Astra” bukan hanya dibaca oleh teman seangkatanku tapi juga oleh Dosen bahkan sampai ke Ibu Inge (supervisor kampusku dari ITB).

Banyak orang yang merespon positif tapi banyak juga yang merespon negatif. Tapi jujur aja aku bahkan nggak kepikiran bahwa yang aku tulis ini dapat mempengaruhi reputasi kampusku. Karena dalam blogku sedikitpun nggak ada isinya yang mengkritik alamamaterku yang tercinta. Kalau nggak ada kampusku tersebut mungkin saat ini aku nggak akan ada dikantor untuk menuliskan blog ini. Malahan aku berterima kasih dengan memberikan informasi-informasi yang akan meningkatkan pengetahuan dan kesiapan adik-adik kelasku keduania kerja. Terakhir kemarin aku sempat kontak dengan mereka, adik kelasku dalam rangka memberikan informasi dan mendorong mereka ikut dalam “Imagine Cup“. Sayang sekali mereka masih sangat sibuk dengan tugas-tugas kuliah sehingga usulku terbang bersama berlalunya waktu. hehehe macam betul aja. Btw aku masih menunggu respon mereka, terutama mereka yang tertarik dengan teknologi microsoft yang kini sedang aku geluti.

Isi blog tersebut hanya isi curahan perasaanku ketika menjalani masa-masa awal terjun ke dunia kerja bersama dengan teman-teman seangkatan. Dan kurasa hal tersebut dialami oleh semua newbie, tidak hanya kami. Aku sudah banyak menjumpai newbie di kantorku, dan mereka lebih kacau lagi, soalnya kami kami punya starting point yang baik, kami sudah belajar OOP dikampus dan langsung menggunakan .NET (kampus mana sich yang yang menerapkan full perhatian terhadap teknologi yang ini, 8 atau 7 SKS aku lupa tepatnya, dan yang mengajar langsung dosen bersetifikat MCT dan MCSD dari India belum termasuk Java kalau digabung mungkin mencapau 12 SKS). Masalahnya hanya kami malas menggunakan :P. Pada awalnya aku dan kebanyakan newbie pasti merasakan kalau membuat aplikasi menggunakan OOP sangatlah ribet, apalagi kebanyakan proyek dikampus masih sangat sederhana dan deadline yang sangat sempit. hehehehe. Disinilah saat didunia kerja baru kami baru kami sadar kalau dalam dunia programming itu nggak segampang itu. Makanya aku sangat menyayangkan saat lauching VS 2005, microsoft Indonesia membagi-bagikan buku gratis, setelah aku baca isinya betul-betul kacau sang pengarang memperlakukan Visual Studio 2005, tak lebih dari Visual Basic 6.0. Heheheheeh akibatnya sampai sekarang aku nggak pernah lagi baca buku ini. Buku ini hanya akan menyesatkan para newbie, bahwa VS 2005 tak lebih dari VB 6 yang wizard yang diperbanyak dan tampilan yang dipercatik.

Oh ya soal komentar, bahwa ada perusahaan yang tak mau nerima anak Del lagi, komentar itu adalah respon dari satu personal saja (menurutku anak ini hanya under estimate, karena dia pasti berpikir orang kampung tahu apa...)dan akhirnya dia menyesal dengan apa yang dia katakan. Itu terbukti saat dia merestrict supaya temanku yang bekerja sebagai bawahannya dapat menerapkan konsep OOP, dapat menyelesaikan pekerjaan yang diberikan bahkan 5X lebih cepat dari deadline yang diberikan. Ya terang aja man, wong konsepnya temanku itu udah ngerti banget, apalagi teman-temanku tersebut adalah salah satu mahasiswa terbaik dikampusku. Sebenarnya aku ingin sekali bertemu dengan orang tersebut soalnya sampai sakarang masih kesal kalau mengingatnya, Dan  saat teman-temanku ini mau resign, eh atasan mereka memohon agar tidak resign, sampai muncul kata2 “I Like You“, Hemm :) lucu sekali. Sebenarnya bukan karena komentar diatas mereka ingin keluar, namun lebih di masalah salary yang menurutku juga terlalu rendah untuk skill sehebat mereka.

Ngomomg-ngomong soal kampusku, let me describe a little bit. Politeknik Informatika Del sebuah kampus berteknologi mutaktir yang didirikan Bapak Luhut Panjaitan, untuk menjadikan puta-putra bangsa terutama putra sumatra utara untuk menjadi pemimpin terutama dibidang teknologi Informasi. Kampus ini terletak di laguboti Tobasa, Sumatera Utara tepatnya dipinggir danau toba. Kampus ini sangat indah dan megah dilengkapi dengan teknologi komunikasi yang menggunakan VSAT. Dosen pada umunnya berasal dari ITB dan India, dan mengenai kulitas pendidikan langsung diawasi oleh departemen Informatika ITB dan NIIT India. Kampus ini menerapkan sistem pendidikan yang disipilin dengan seleksi yang langsung dilakukan oleh Bagian Psikologi TNI AD, dengan kampus terletak didaerah pedesaan yang terpecil dari kota besar dan disediakanya fasilitas asrama serta kantin. Mahasiswanya diharapkan dapat hidup disiplin dan fokus kepada kegiatan kampus. Soal biaya boleh dibilang sangat murah karena, setiap mahasiswa mendapatkan subsidi. Saat ini kampus Del dipimpin oleh Bapak Prof. Saswinadi, seorang Phd dari Departemen Informatika ITB yang peduli terhadap dunia pendidikan terutama IT di Sumatra Utara.

So, nggak perlu diragukan betapa bangganya aku menjadi alumni dari kampus ini, yang akan dijadikan percontohan untuk kampus yang lain dan peresmiannya dilakukan oleh Presiden SBY. Banyak pihak terutama Industri IT belum mengetahui keberadaan kampus ini. Oleh karena itu tugas kami para alumni untuk mensosialisaikan kampus ini. Untuk informasi lengkapnya bisa dibaca di www.del.ac.id. Btw ini bukan promosi..

Oh ya aku mungkin perlu tanya sama Pak Risman, kalau salah satu mahasiswa kampusku bisa nggak menjadi Student Ambasador(SA), soalnya kampusku jauh sekali, mereka sangat sulit untuk  ikut event  SA seperti Dotnet Internal Meeting seperti yang diadakan jum'at kemarin. SA sangat bermanfaat akan selalu uptodate terhadap perkembangan teknologi dengan support dari microsoft. Diharapkan SA tersebut bisa membagi pengetahuannya dengan teman-temannya yang lain.

 

Share this post: | | | |
Ilmu Yang kudapat dari Astra

Akhirnya....

Hari ini Jum'at 10 Febuari 2006, adalah hari terakhirku di SCS Astra Graphia. Nggak lama sich cuma 2 bulan, memang tidak banyak project yang kuselesaikan buat Agit cuma 2 project, itupun nggak sempat UAT.

Hemm, namun aku sebaliknya berterima kasih kepada perusahaan ini terutama rekan sekerja dan atasanku. Aku lebih banyak mendapatkan ilmu daripada memberikan kontribusi kepada perusahaan.

Baru pertama masuk langsung ngerjain project dengan menggunakan enterprise library dan konsep layering. Thanks to Mr Virgo dan Mr. Agus Kurniawan, yang telah mengajarkan konsep ini. Secara umum dalam mendevelop aplikasi didesain dalam 3 layer, yaitu:

- UI Layer
Berhubungan dengan UI, termasuk didalamnya form.

-Business Layer
berhubungan dengan bisnis logic juga didalamnya terdapat domain object (mapping setiap object didatabase yang ingin kita ambil termasuk didalamnya table, view, store procedure) Didalam domain object biasa terdapat private variable dan public property setiap field dari object database.

-Data Access Layer
Berhubungan dengan operasi yang terkait dengan database didalamnya termasuk operasi CRUD (Create Read Update Delete).

Yang harus diperhatikan setiap layer tidak boleh menginterfensi layer lainnya. Sebagai contoh di UI tidak ada yang namanya koneksi ke database, di Data Access Layer tidak boleh ada business logic. Paradigma ini sangat berguna bagiku ketika membuat dua aplikasi yang hampir sama. Apliaksi pertama untuk Head Office menggunakan SQL Server sebagai backend, dan yang kedua untuk cabang  menggunakan XML sebagai backendnya. Aku hanya perlu mengganti Data Access Layer SQL nya dengan Data Access Layer XML. UI layer dan Business Layer nyaris tidak tersentuh. Coba bayangkan jika aku masih menggunakan paradigma lama, bisa-bisa koding ulang dari awal.... Thanks to my teacher in Astra....

Dan Masih banyak lagi ilmu yang aku dapat seperti Enterprise Library, NHibernate, Generics, ATLAS, AJAX, design pattern, dll. Ditambah lagi dengan rekan kerja (ASC Team) yang ramah, mereka betul-betul team yang kompak. I love it, tak jarang teman2 tim PSS yang datang dari sarangnya yang jauh untuk membantu  team ASC lainnya. Soal Share knowledge yang paling gampang ditemui  disini..

So mengapa aku ingin keluar dari Astra? Itu tidak lebih karena masalah pribadi dan karir. Ok deh, meskipun cuma 2 bulan aku ingin selalu ada komunikasi diantara kami.... Go Ahead ASC Team.....

Credit:

Spesial thanks to:

Mr. Mastur (ASC Team Leader) atas diberikanya kesempatan untuk belajar di Team ini.

Mr Virgo (My teacher) Terima  kasih atas bimbingannya selama ini..
Mr Agus Kurniawan (My favourite MVP)
Mr Andri B(my supervisor)
Mr Yungkie(Thanks untuk masukannya selama ini)
 Jansen (Teman lembur sampai malam)
Candra (Teman guyon)
Luhur (Thanks to sharenya)
Sugeng (Thanks atas tumpangannya yang menyeramkan)
Mbak Wiwiek (I'm really sorry about your PC)
Joko, Yusuf, Liliek, Mr Adi Darmawan, Budi, Rizky (Kapan makan2 ala kelaparanya lagi?)

I hope we always connected, my email bern4d@gmail.com HP 081366019040.

Share this post: | | | |
Use BindingList Generics to replace Dataset

Aku nggak tahu ini ide yang buruk dan bagus yang jelas aku sangat tertarik dengan kemampuan BindingList generics untuk menggantikan dataset. Tools yang kupakai disini adalah Visual C# 2005 Express Edition dan untuk Data Access Layer menggunakan Enterprise Library Juni 2005. Ada beberapa langkah dalam menggunakan BindingList

1. Create Data Access Layer.

2. Create Business Object.

3. Create Generics colection Class yang inheritance terhadap Class BindingList dan override beberapa parent method BindingList serta create beberapa method lainnya

4. Create UI form dan tambahkan data source.

5. Create Object dari Generics collection class

Penjelasannya adalah sbb:

1. Create Data Access Layer.
Untuk create data access layer menggunakan entilib sepertinya sudah biasa dilakukan, jadi nggak perlu diterangkan disini, intinya create method2 untuk melakukan operasi "CRUD" pada database kita.

2. Create Business Object.
Sebagai contoh aku disini menggunakan tabel product dengan field2nya adalah name dan price.

public class Product

{

private string _name;

private Single _price;

public Single price

{

get { return _price; }

set { _price = value;

}

}

public string name

{

get { return _name; }

set { _name = value;

}

}

3. Create Generics colection Class yang inheritance terhadap Class BindingList

public class productlist:BindingList<Product>

{
//variabel ini nantinya digunakan untuk menetukan apakah sebuah record itu merupakan record baru atau record lama
private bool isnew=false;

//Override method addnewcore untuk memberi tanda record baru.
protected override object AddNewCore()
{
isnew = true;
return base.AddNewCore();
}

//Ovveride method removeitem untuk menghapus record tertentu, disini kita tidak perlu melakukan boxing soalnya udah pakai generics
protected override void RemoveItem(int index)
{
base.RemoveItem(index);
Product prod=this[index+1];

//clproduct.Delete adalah static method dari Data Access layer yang digunakan untuk menghapus data database
clProduct.Delete(prod.name);
}

//Disini kita harus buat method baru soalnya di bindinglist aku belum dapat method yang dpt digunakan untuk menyimpan perubahan
public void SaveItem(int indx)
{
Product prod = this[indx];
if (isnew)
{
clProduct.Insert(prod.name, prod.price);
isnew = false;
}
else
{
clProduct.Update(prod.name, prod.price);
}
}

//Method getproduct digunakan untuk memasukan data kedalam object Product
public Product getproduct(string name, Single price)
{
Product prod = new Product();
prod.name = name;
prod.price = price;
return prod;
}

//getallproduct berguna untuk menyimpan semua data kedalam object collection
public void getAllProduct()
{
IDataReader rdr = clProduct.SelectAll();
while (rdr.Read())
{
Add(getproduct(rdr[0].ToString(),Single.Parse(rdr[1].ToString())));
}
}