May 2006 - Posts

People Enterprise :: C++ Video Tutorial Untuk Para Akademis, Peniliti, dan Professional

Sebagai orang yang dulu pernah menikmati dunia kampus dan bahkan menjadi salah satu dosen di salah satu kampus di jakarta dan malahan my the long term planning is be become a lecturer and businessman. Akhirnya saya memutuskan membebaskan alias free video tutorial mengenai C++ Programming. Ada 2 compiler yang akan dipakai dalam C++ Video Tutorial ini yaitu

  • C++ dengan compiler dari MS (pakai VC++ 2005 Express Edition - Win32 Based) --> ini yang akan jadi Free
  • C++ dengan compiler GCC under linux mandrax, linux fedora, FreeBSD --> ini tidak free alias akan dijual

Mengapa video tutorial C++ compiler MS free tetapi C++ GCC tidak free ?

Jawabannya sangat simple, People Enterprise memcoba memberikan “keadilan” antara kubu linux dan windows dimana mereka yang coding c++ under OS Windows itu ada effort untuk membeli OS sehingga video dibuat free. Sedangkan OS Linux Mandrax/Federo dan FreeBSD itu kan free sehingga mereka harus ada effort untuk membeli video tutorial GCC selain itu pembuat video juga ada effort untuk membuat video under linux Mandrax/Fedora dan FreeBSD=))

Produk C++ Dari People Enterprise

People Enterprise selain menghasilkan video tutorial untuk .NET Technology juga menghasilkan video tutorial based on C++. Oleh karena itu dibuat sub category baru yaitu University Program. Product-product C++ semaunya antara lain:

CD Retail (Harga Rp. 10.000)

  • Pemrograman Visual C++ (compiler + tool pakai VS C++ 2005 Express Edition - Win32 Based)
  • Pemrograman GCC C++ Under Linux Mandrax dan Fedora
  • Pemrograman GCC C++ Under FreeBSD

University Program (harga bervariasi tergantung materi)

  • Struktur Data dan Algoritma Pemrograman
  • Grafika Komputer
  • Image Processing Programming
  • Pemrograman Jaringan Syaraf Tiruan (Neural Network Programming)

Professional (harga bervariasi tergantung materi)

  • Windows Programming (ini akan mengacu ke buku “Programming Windows“ - Charles Petzold)
  • Network Programming (Menggunakan compiler+tool VS C++ 2005 Express Edition - Win32 Based)
  • MFC 8.0 Programming (Compiler + Tool VS C++ 2005 Professional/Team Suite Edition)
  • ATL 8.0 Programming (Compiler + Tool VS C++ 2005 Professional/Team Suite Edition)
  • 64-bit Programming (Compiler + Tool VS C++ 2005 Professional/Team Suite Edition)

Neural Network Programming Video Tutorial

Video tutorial ini adalah produk unik, disamping Neural Network merupakan salah satu Research Interest ku. Banyak cerita dibalik dibuatnya video tutorial Neural Network. Goal dari video ini adalah memberikan pengetahuan Step-by-step bagaimana memprogram Neural Network. Untuk release pertama, C++ akan digunakan sebagai programming language nya. Next nya akan ada versi C#. Tutorial ini bukan sebagai main reference sehingga para pengguna video ini diharapkan membaca konsep Neural Network dari buku.

Salah satu kegembiraan dari pembuatan video tutorial Neural Network ini adalah bersedianya dosen pembimbing saya (I graduated from Electrical Engineering - ITS) untuk review my work ini yang juga merupakan guru besar dosen ITS - Professor of Artificial Intelligence. Kesempatan ini tidak aku tinggalkan sia-sia. Hal ini juga merupakan my research interest dan juga untuk persiapan research paper for my postgraduate;)

Well..jika ada comment, let me know atau..jika ada a wish for People Enterprise langsung tulis di forum ini

Share this post: | | | |

Build a Data Access Layer in less than 15 minutes

Beberapa dari anda pasti pernah dengar bahkan ada sering memakai Code Smith. Nah, kali ini Code Smith bekerja sama dengan .NET Community (open source .NET project) membuat template DAL yang nanti akan di generate oleh Code Smith., tutorialnya dapat dibaca disini:

http://community.codesmithtools.com/blogs/tutorials/archive/2006/02/13/nettiers.aspx

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under: ,

New Community Portal --> IIS Community

Rob howard dan temannya baru-baru ini launching portal community baru yaitu IIS dan di hosting di www.iis.net . Portal ini banyak membahas fitur-fitur baru dari IIS 7. Don't miss to visit this portal, check out: http://www.iis.net
Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under:

Selecting a Design Pattern

Beberapa ini memang saya lagi menyiapkan materi + video untuk membuat Video tutorial dan akan dijual melalui People Enterprise. Dua product video tutorial unggulan dari People Enterprise adalah Thinking in Object-Oriented dan GOF-Design Pattern (ada dua versi yaitu untuk C++ dan C#). Yang diburu cepat-cepat launching adalah GOF-Design Pattern. Sebenarnya materi ini sudah saya siapkan sejak lama cuman saya mencoba membandingkan antara kebutuhan akademis dan juga professional karena memang targetnya adalah para akademis dan professional sehingga sering melakukan studi banding materi dan juga diskusi. Di tengah pencarian, adalah salah satu professor dari salah satu universitas diluar indonesia, menulis sebuah komentarnya mengenai pendekatan cara pembelajaran GOF Design Pattern, ini mungkin ini sangat berguna..ini dia...

Six Approaches to select design pattern

  • Consider how patterns solve design problems
  • Scan Intent sections
  • Study pattern interrelationships
  • Study patterns categorically
  • Examine causes of redesign
  • Consider what needs to change

Additional Approaches

  • Beg, borrow or steal ideas from other people
  • Do it wrong, then fix it
Share this post: | | | |

Project Otak.....Now and Future

Semua pasti kenal apa itu project otak ? Sepertinya halnya sebuah organisasi, kadang mengalami pasang dan surut. Sama hal nya dengan project otak, juga mengalami hal ini. Padahal diluar sana banyak orang yang membutuh proses pembelajaran dengan mudah dan murah.

Saat ini memang terdapat sebanyak lebih dari 50 penulis di project dan kalau saya buka lagi di portal website project otak rupanya yang mau menjadi penulis project otak lebih dari 50 orang..it's a great!!. Sebagai project manager, saya juga bingung dan bahkan sering diskusi dengan maya, sekretaris project otak..seperti buah simalakama, kalau diterima..trus diapaan, di assign menulis malah molor...ya...ya..ya memang member penulis project otak tidak ada suatu kewajiban/keharusan bahkan aturan yang mengenai kewajiban. Semua didasarkan kepada commitment dan trust. Ada yang ikut tapi tidak menulis dengan berbagai alasan.

Dulu sempat menerapkan bahwa setiap penulis baru diberi waktu 3 bulan harus bisa menghasilkan sebuah tulisan dan jika tidak menulis maka akan di reject dari penulis project otak, dari segi aturan bagus karena bisa memberikan motivasi ketiap penulis cuman untuk ENFORCE itu yang susah. Hal ini mungkin ada perasaan-perasaan yang tidak enak....ya seperti teman baik lah, teman bisnis lah..atau ola lah lah....

Dari ilmu management ini memang challenge..manage people tapi people sendiri jarang ketemu fisik bahkan kebanyakan tidak pernah ketemu fisik....semua kembali ke satu komitmen dan trust. So bagi anda yang berpengalaman mengenai ini, mungkin bisa di share pengalamannya..dan bagaimana mekanisme penerimaan penulis baru di project otak

Next action..Project otak akan meneruskan projectnya phase 4 yang sebenarnya adalah kelanjutan phase 3 so tunggu kabarnya.

Share this post: | | | |
Posted by Agus Kurniawan | 6 comment(s)
Filed under:

Paket Merdeka Project::Getting Version from Your Application

When I create a software, I need users know what my application version. The short solution is to write “hardcode” version in your application but it’s a bad solution. In this article I want to show you how to display our application version by runtime. For example my application, M-Server (Messaging Server for SMS and Email). Here is M-Server Manager:

Getting Application Version
Currently .NET Framework has a solution to get application version but we do wrapping on these .NET classes. The simple solution is to get version from assembly so you should get assembly object. From that you can get current version using GetName().Version.ToString(). Now I create a wrapper class that you can use to get application version (Desktop or Web application) i.e.: DmcVersion. This class returns AssemblyInformation object defines here

public class AssemblyInformation
{
        private string _name;
        private string _ver;
        private string _fullName;
 

        public string Name
        {
            set
            {

                this._name = value;

            }
            get
            {

                return this._name;

            }

        }
        public string Version
        {
            set
            {

                this._ver = value;

            }
            get
            {

                return this._ver;

            }
        }
        public string FullName
        {
            set
            {

                this._fullName = value;

            }
            get
            {

                return this._fullName;

            }
        }

On DmcVersion object has a overloading method, GetVersion. You can pass a parameter such as file name or Assembly object

public bool GetVersion(Assembly asm)
{
            if (asm != null)
            {
                this._info = new AssemblyInformation();
                this._info.Name = asm.GetName().Name;
                this._info.Version = asm.GetName().Version.ToString();
                this._info.FullName = asm.GetName().ToString();
            }
            else
            {
                this._errMsg = "Invalid assembly";
                return false;
            }


            return GetReferenceAssembly(asm);
}

To get reference assembly, we can use GetReferencedAssemblies() method from Assembly object that returns AssemblyName collection objects

private bool GetReferenceAssembly(Assembly asm)
{
            try
            {
                AssemblyName[] list = asm.GetReferencedAssemblies();
                if (list.Length > 0)
                {
                    AssemblyInformation info = null;
                    _lstReferences = new List<AssemblyInformation>();
                    for (int i = 0; i < list.Length; i++)
                    {
                        info = new AssemblyInformation();
                        info.Name = list[i].Name;
                        info.Version = list[i].Version.ToString();
                        info.FullName = list[i].ToString();
 

                        this._lstReferences.Add(info);
                    }
                }
            }
            catch (Exception err)
            {
                this._errMsg = err.Message;
                return false;
            }
 

            return true;
}

Implementation
You can use easily both desktop and web application. For example

DmcVersion ver = new DmcVersion();
if (ver.GetVersion(Assembly.GetExecutingAssembly()))
{

     AssemblyInformation info = ver.CurrentAssemblyInfo;
     this.propertyGrid1.SelectedObject = info;
 

     List<AssemblyInformation> lst = ver.ReferenceAssembly;
     this.dataGridView1.DataSource = lst;
}

Here are samples for Desktop and web application

So where are the source sources for this paper ? yeaah...you download source code (C# 2.0) on http://workspaces.gotdotnet.com/paketmerdeka

Share this post: | | | |
Posted by Agus Kurniawan | 1 comment(s)
Filed under: ,

Threading is Evil

This is a good article about the dangerous of the threading so please be aware when write code multi-threading. Check out:

http://threading.2038bug.com  

Share this post: | | | |

What the Fastest Message Queue ?

Dunia messaging memang susah dilepaskan ketika kita membangun aplikasi yang berbasis server. Isu yang sering didengung suatu aplikasi server adalah masalah performance. Hardware juga turut ambil andil dalam masalah performance terutama processor dan memory. Disisi aplikasi sendiri juga mesti harus dilakukan tuning supaya bisa melayani concurrent yang banyak. Salah satu alternatifnya adalah Message Queue.

Trend teknologi message queue sangat pesat. Beberapa vendor besar mengeluarkan Message Queue yang bisa dibilang sangat Tight couple terhadapa productnya..yeah!!, namanya juga vendor...jadi mesti dimaklumnya, gak ada gunanya marah-marah :p

Saya sendiri juga terlibat dalam coding message queue seperti MSMQ (versi message queue dari Microsoft), MQ-Series (versi message queue dari IBM), dan message queue versi java Beberapa jam lalu, ada teman mengatakan bahwa ada SonicMQ adalah message queue yang tercepat..wui...bener...ada yang bisa jelaskan ? atau ada case study yang memakai ini ?

Share this post: | | | |

People Enterprise::Belajar Software Melalui Media Video

Dengan semakin meningkatnya teknologi informasi maka informasinya layaknya seperti air yang mengalir dan pengaruh IT di berbagai bidang sangatlah terasa sekali, tak terkecuali dengan proses belajar juga mengalami.

Didasarkan dari pengalaman mengajar, mengisi seminar maupun workshop, akhirnya saya mencoba membelokkan arah baru yaitu dengan membuat video tutorial. Kasarannya mengganti media buku, e-book, dan website menjadi media video.

Berbekal 1 kamar dirumah yang dijadikan ruang studio Software Learning Laboratory serta dengan dukungan People Enterprise akhirnya tutorial video terwujud. Ide ini sebenarnya sudah ada di tahun lalu cuman karena keterbatasan waktu, media, dan kemampuan sehingga ide ini bisa terwujud bulan dan tahun ini.

Program ini sendiri dinamakan Software Learning Multimedia yang berfokus ke Teknologi object-oriented, design pattern, Enterprise Application Architecture serta programming language C# dan C++. Software Learning Multimedia sendiri terbagi menjadi

  • Retail Edition , ini ditujukkan kepada para student, dan pemula serta mungkin para professional yang baru belajar. Tutorial video ini akan syarat dengan praktek ketimbang teori alias proporsi prakteknya akan lebih banyak ketimbang konsepnya. Dikarenakan ini retail edition, maka harga Software Learning Multimedia CD dijual dengan harga murah banget!! Sekitar Rp. 10.000,- (harga end-user). Tutorial Video ini bisa berdurasi 45 – 90 menit.
  • Professional Edition, ini ditujukkan kepada para student dan professional yang ingin belajar lagi melalui media video. Disini ada dua media video yaitu CD dan DVD. Topik yang diangkat disini merupakan topik hot di pasaran software development seperti object-oriented, Design Pattern, Enterprise Library, NHibernate, Active Directory Programming dan aplikasi yang berskala Enterprise. Durasinya bervariasi tergantung dari topik.
  • Training Edition, ini ditujukkan bagi mereka yang ingin belajar lengkap mulai dari A sampai Z dari suatu topik. Solusi ini juga bisa digunakan untuk pengganti training conventional yang mungkin harga tidaklah murah.
  • Regular Edition, ini ditujukkan untuk semua level yang ingin belajar secara instan. Topik yang diangkat juga hot dan solution simple.

Selain video yang didapat juga disediakan beberapa material dan source code pendamping video ini. Setiap pembelian akan diberikan serial number untuk masuk ke forum People Enterprise.

Launching Software Learning Multimedia CD/DVD - Quick Win
People Enterprise yang beralamatkan di http://www.PeopleEnterprise.com akan mencoba secepatnya untuk merelease Software Learning Multimedia CD/DVD dalam waktu akhir bulan ini. Untuk itu akan dibagi menjadi beberapa Phase. Sedangkan Phase 1 diharapkan sudah di release pada tanggal 4 Juni 2006. Berikut ini materi berdasarkan phase:

Phase 1
Retail Edition

  • Mengenal Teknologi .NET (MPE 1101)
  • Belajar Dasar Pemrograman C# (MPE 1102)
  • Belajar Pemrograman Berorientasi Object Dengan C# (MPE 1103)
  • Belajar Pemrograman Database Dengan ADO.NET (MPE 1104) 
  • Belajar Pemrograman ASP.NET 2.0 (MPE 1105)
  • Belajar Pemrograman Pocket PC Dengan Visual Studio 2003 (MPE 1106)
  • Membuat Reporting Dengan Crystal Report Dan Visual Studio 2005 (MPE 1107)
  • Belajar Dasar Pemrograman Visual C++ (MPE 1108)

Professional Edition

  • GOF - Design Pattern (Applied 23 GOF Patterns, Video Duration more than 24 hours!!!)
  • Enterprise Library for .NET Framework 2.0
  • Membangun Reporting Dengan Crystal Report XI dan VS.NET 2003

Training Edition

  • Training ASP.NET 2.0

Regular Edition

  • How to .NET Video for June 2006

Phase 2
Retail Edition

  • Belajar Pemrograman GDI+ Dengan C# (MPE 1109)
  • Belajar Pemrograman Game Dengan C# (MPE 1110)
  • Belajar Pemrograman ASP.NET 2.0 Web Service (MPE 1111)
  • Belajar Pemrograman .NET Remoting (MPE 1112)
  • Teknik Packaging dan Deployment Aplikasi .NET 2.0 (MPE 1113)
  • Belajar Teknik Data Binding Pada .NET 2.0 (MPE 1114)
  • Belajar Pemrograman Windows Forms 2.0 Dengan C# (MPE 1115)

Professional Edition

  • Enterprise Integration Application Pattern
  • Develop Multithreading Application
  • Develop ASP.NET 2.0 Security

Training Edition

  • Training Object-Oriented Programming

Regular Edition

  • How to .NET Video for July 2006
People Enterprise Mengajak Bisnis Menjadi Distributor CD Retail Program
Untuk meningkatkan penyebarluasan teknologi dengan harga murah maka People Enterprise Mengajak rekan-rekan semua untuk menjadi distributor Software Learning Multimedia CD Retail. Ini terbuka untuk semua di seluruh kota Indonesia maupun luar negeri. Jika ada tertarik, anda coba membaca FAQ tentang program partnership ini dan persyaratannya, download di http://www.peopleenterprise.com/faq.zip . Jika anda benar-benar tertarik anda bisa kontak saya atau bisa melalui email ini partner@PeopleEnterprise.com dan nantinya anda akan menerima MoU untuk program partnership.
Share this post: | | | |

Call C++ Indonesia Geeks!!

For C++ geek, bulan ini saya mencoba mengumpulkan para C++ geek untuk berkumpul untuk membicarakan community C++ di indonesia. Seperti kita ketahui memang peminat C++ sangat sedikit mungkin sisanya dibagian R&D ataupun under ground area.

Dalam session internal technical meeting, kita akan mencoba untuk update teknologi dan diskusi program kerja di area teknologi C++. So jika memang terpanggil untuk ini, kontak saya.

Share this post: | | | |
Posted by Agus Kurniawan | 9 comment(s)
Filed under:

My Baby....

My baby...fotonya pakai HP jadi agak kurang jelas :p .http://blogs.netindonesia.net/agus/gallery/1179.aspx
Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under:

FAQ about Windows Forms

Artikel FAQ yang bagus mengenai Windows Forms, check out:

http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx

Selain khusus untuk Windows Forms, ada website khusus mengenai ini yaitu http://www.windowsforms.net

Share this post: | | | |
Posted by Agus Kurniawan | with no comments
Filed under:

Review Software Framework for C++ and C# Developers

Berbicara tentang framework, memang kadang kalanya sering terjadi perdebatan mulai dari size dari framework yang harus dibawa ketika di deploy sampai level programming library yang disediakan oleh framework ini. Pada pembahasan diskusi ini saya akan membatasi scope yaitu:

  • Win32 API
  • MFC (Microsoft Foundation Class)
  • STL (Standard Template Library)
  • ATL (Active Template Library)
  • WTL (Window Template Library)
  • .NET Framework

Win32 API

Bagi developer yang sudah touching programming di area 1996-2001, sangatlah familiar dengan istilah Win32 API karena semua programming yang berbasis orientasi OS Windows pasti related to API di OS tersebut. Akibatnya Win32 API merupakan bisa dibilang bacaan wajib.

Semakin berkembangnya dunia software dimana semua serba cepat, serba wizard alias kalau bisa cukup klik Generate bisa langsung aplikasinya jadi..bhah!!..kayak tukang sulap saja. Tentu feature ini sangat digemari oleh para professional developer yang ingin memperoleh uang dengan cepat. Akibatnya Win32 API nyaris-nyari tak tertentu tetapi mereka tidak sadar bahwasannya yang dibuat merupakan refer dari Win32 API.

Sampai saat saya tulis artikel ini, peminat Win32 API bisa dibilang sangat kecil. Padahal Win32 merupakan API yang menjanjikan baik dari segi performance hingga kemudahan deployment.

MFC (Microsoft Foundation Class)

Wah, kalau barang ini ketika kemunculanya banyak ditentang para developer C++ karena ada beberapa issue fundamentel yang membuat orang tidak memakai MFC salah satunya MFC tidak menerapakan Pure OOP dikarena ada beberapa sintak yang menggunakan MACRO untuk memudahkan proses development.

Disamping itu, proses deployment dari MFC dimana harus membawa 3-5 Mb framework MFC sehingga industri software menjadi agak ribet dalam deployment. Ditambah dengan ketidak konsistenya API dari MFC dari versi satu ke versi selanjutnya.

Personali, saya gak menganjurkan untuk memakai MFC bagi mereka yang ingin belajar C++, the best way..ya belajarlah mulai dari Win32, mulai define API, Windows Message hingga membuat kelas. Opini ini juga ada yang menulis mengenai mengapa programmer baru tidak dianjurkan belajar MFC terlebih dahulu. http://users.bigpond.net.au/programming/explanation.htm

STL (Standard Template Library)

Di dunia C++, ada kemudahan dalam membantu suatu class. Seperti diketahui kadang kalanya kita membangun kelas banyak sekali padahal dari kelas-kelas tersebut bisa diambil benang merahnya yaitu kesamaan fungsilitiesnya akibatnya Template merupakan salah satu solusi untuk ini. STL menyediakan standard template yang dapat digunakan oleh C++ Dev sehingga template ini bisa digunakan di project yang lain.

ATL (Active Template Library)

ATL mempunyai kemiripan dengan STL. ATL sendiri lahir sebagai jawaban untuk kompleksitas dari Template C++ Class yang tidak dapat dipenuhi oleh STL. Beberapa aplikasi yang berbasis server di OS Windows kebanyakan sudah tersedia Template nya di ATL ini sehingga framework ini sangat cocok digunakan untuk membuat komponen yang berbasis server selain juga cocok untuk COM/ActiveX. Saat ini Microsoft sudah menyediakan ATL yang support MFC.

WTL (Window Template Library)

WTL disana ada kata Template artinya kedudukan sama dengan STL dan WTL lebih fokus ke template Windows seperti Dialog, Menu, Toolbar...etc.

.NET Framework

Huh!... ini sudah banyak dibahas, bisa dibaca di blog http://blogs.netindonesia.net . Yang jelas .NET menyediakan library yang sangat banyak sehingga beberapa Mb.

Resource C++

So...ada yang mau share ketika membuat product harus memakai software apa ?

Share this post: | | | |
Posted by Agus Kurniawan | 3 comment(s)
Filed under: ,