This Blog

Syndication

News

Awards

Microsoft MVP Logo
Grab this badge here!

Certificates

Transcript ID#: 6724122
Brainbench ASP.NET Certificate
 
Brainbench ASP.NET 2.0 Certificate
 
Brainbench .NET Framework 2.0 Certificate

Ahmad Masykur

var myObject = { "languages" : [ "C#", "VB.NET", "ASP.NET", "Javascript", "SDCC", "Assembler" ] }; //

January 2008 - Posts

  • Ajax: FileUpload dengan Hidden IFrame

    Teknologi Web yang interaktif dan responsif saat ini sedang menjadi tren. Ajax menjadi salah satu mekanisme komunikasi antara client dan server tanpa mentransmisikan seluruh halaman alias hanya data yang ditransmisikan. Hal ini membuat aplikasi web berbasis Ajax terlihat lebih interaktif dan responsif. Banyak pustaka (library) yang tersedia untuk membangun web dengan kemampuan Ajax seperti glm-ajax, Anthem.NET, ASP.NET AJAX dan lain-lain. Dari kebanyakan pustaka yang ada, menggunakan object XMLHttpRequest (XHR) untuk melakukan komunikasi asinkron antara client dan server.

    Salah satu dari pustaka Ajax yang memiliki fitur lengkap adalah ASP.NET AJAX. ASP.NET AJAX saat ini telah menyatu dalam Microsoft .NET Framework 3.5. Salah satu fitur dari ASP.NET AJAX yang cukup tangguh adalah UpdatePanel yaitu untuk mengupdate sebagian dari halaman tanpa melakukan postback. Beberapa keterbatasan UpdatePanel salah satunya adalah tidak dapat dimasukkan kontrol FileUpload. Dengan keterbatasan ini saya coba untuk menulis trik bagaimana membuat kontrol FileUpload dapat digunakan dalam aplikasi web Ajax. Salah satu cara adalah dengan menggunakan teknik hidden IFrame. Trik penggunakan hidden IFrame pada kontrol FileUpload secara lengkap saya tulis di http://www.masykur.web.id/post/Ajax-Upload-dengan-Hidden-IFrame.aspx

    Semoga tulisan tersebut dapat digunakan sebagai referensi atas permasalahan yang selama ini banyak ditanyakan di milis INDC.

    Share this post: | | | |
  • Selamat Tahun Baru 1429

    Hari ini merupakan hari terahir di tahun 1428, dan saat maghrib tiba bergantilah kita pada tahun baru 1429. Mari kita bersama-membaca doa akhir tahun dan awal tahun. Semoga Allah SWT. mengampuni segala dosa dan kesalahan kita.

    Do'a akhir tahun.

    image

    Artinya:

    "Dengan menyebut nama Allah Yang Maha Pemurah lagi Maha Penyayang.

    Semoga Allah melimpahkan rahmat dan keselamatan kepada junjungan kami nabi Muhammad SAW,beserta para keluarga dan sahabatnya.

    Ya Allah, segala yang telah ku kerjakan selama tahun ini dari apa yang menjadi larangan-Mu, sedang kami belum bertaubat,padahal Engkau tidak melupakannya dan Engkau bersabar (dengan kasih sayang-Mu), yang sesungguhnya Engkau berkuasa memberikan siksa untuk saya, dan Engkau telah mengajak saya untuk bertaubat sesudah melakukan maksiat.Karena itu ya Allah, saya mohon ampunan-Mu dan berilah ampunan kepada saya dengan kemurahan-Mu.

    Segala apa yang telah saya kerjakan, selama tahun ini, berupa amal perbuatan yang Engkau ridhai dan Engkau janjikan akan membalasnya dengan pahala, saya mohon kepada-Mu, wahai Dzat YangMaha Pemurah, wahai Dzat Yang Mempunyai Kebesaran dan Kemuliaan,semoga berkenan menerima amal kami dan semoga Engkau tidak memutuskan harapan kami kepada-Mu, wahai Dzat Yang MahaPemurah.

    Dan semoga Allah memberikan rahmat dan kesejahteraan atas penghulu kami Muhammad,keluarga dan sahabatnya."

    Amin yaa rabbal 'alamin.

    Doa awal tahun.

    image

    Artinya:

    "Dengan nama Allah Yang Maha Pengasih lagi Maha Penyayang. Semoga rahmat dan salam Allah tetap tercurahkan kepada junjungan kami Nabi Muhammad teriring keluarga serta sahabat beliau.
    Wahai Tuhanku, Paduka adalah Dzat Yang Maha Kekal, dahulu dan Awal. Hanya denga anugrah dan kemurahan-Mu yang agung, telah datang tahun baru. Di tahun ini kami memohon pemeliharaan-Mu dari Syetan, kekasihnya dan balatentaranya, dan kami memohon pertolongan-Mu atas hawa nafsu yang mengajak kepada kejelekan, dan kami memohon kesibukan dengan perbuatan yang dapat mendekatkan diri kami kepada-Mu wahai Dzat yang memiliki kebesaran dan kemuliaan. Semoga rahmat dan salam Allah tetap tercurahkan kepada junjungan kami Nabi Muhammad teriring keluarga serta sahabat beliau."
    Amiin ya robbal 'alamiin...

    Share this post: | | | |
    Posted Jan 09 2008, 04:09 PM by cahnom with 4 comment(s)
    Filed under:
  • Menyiapkan Project Silverlight 1.1

    Silverlight Project 1.1 oleh Microsoft hanya disediakan untuk Visual Studio 2008. Setelah melakukan instalasi Visual Studio 2008, langkah selanjutnya adalah memasang Microsoft Silverlight 1.1 Tools Alpha for Visual Studio 2008.

    image

    Selanjutnya kita bisa membuat project Silverlight 1.1 dengan Visual Studio 2008 dengan memilih Silverlight Project

    image

    Jangan lupa untuk menginstall Silverlight 1.1 Plugins karena jika tidak, referensi assembly pada project tidak dapat ditemukan.

    image 

    Dan jika belum install Silverlight 1.1 Plugins, pada browser akan muncul logo Get Silverlight

    image

    Jangan ikuti klik pada logo untuk download Silverlight Plugins yang akan mengarahkan URL pada browser Anda ke http://www.microsoft.com/Silverlight/Install.aspx Link tersebut akan mengarah ke Silverlight 1.0. Buka halaman http://www.microsoft.com/Silverlight/downloads.aspx dan klik pada tulisan Windows di bawah tulisan Download Silverlight 1.1.

    image

    Jangan lupa uninstall Silverlight 1.0 sebelum download Silverlight 1.1, jika ada Silverlight 1.0 sudah terpasang. Dan akhirnya jadi deh, bisa bikin project Silverlight 1.1 pake Visual Studio 2008.

    image

    Project Silverlight 1.1 juga dapat dibuat menggunakan Visual Studio 2005. Dengan memasang Silverlight Project Template. Template saya sertakan dalam blog ini, silakan download dan install pada komputer untuk dapat membuat project Silverlight 1.1 dengan Visual Studio 2005.

    Share this post: | | | |
  • Extend Objek Date JavaScript untuk Parsing Format Tanggal ISO 8601

    Perbedaan format tanggal memang menjadi permasalahan para programmer saat melakukan pertukaran data dengan tipe data Date antara satu sistem dengan sistem lainnya, antara format negara satu dengan negara lainnya. Dengan adanya perbedaan ini, dibuat standar ISO dalam merepresentasikan tanggal dalam string. Standar tersebut disebut sebagai ISO 8601. Pada standar ISO 8601, tanggal ditulis dalam format YYYY-MM-DDThh:mm:ss.sTZD. Standar ISO 8601 ini telah bayak digunakan dalam format pertukaran data seperti XML Web-Service.

    Constructor Date JavaScript hanya memiliki empat bentuk sebagai berikut.

    new Date()
    new Date(milliseconds)
    new Date(dateString)
    new Date(yr_num, mo_num, day_num
            [, hr_num, min_num, sec_num, ms_num]) 
    

    Keempat bentuk constructor tersebut tidak memiliki parameter input dalam format string ISO 8601. Pada parameter string hanya menerima tanggal dalam standar IETF seperti "Thu, 3 Jan 2008 18:30:00 GMT". Untuk melakukan parsing tanggal dalam format ISO 8601 dapat dilakukan dengan meng-extend object Date yang sudah ada (hal ini seperti penurunan/inheritance pada konsep Object Oriented Programming). Berikut kode untuk melakukan extend object Date.

     

    Date.prototype.parseFromISO8601 = function (string) {
        var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
            "(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
            "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
        var d = string.match(new RegExp(regexp));
    
        var offset = 0;
        var date = new Date(d[1], 0, 1);
    
        if (d[3]) { date.setMonth(d[3] - 1); }
        if (d[5]) { date.setDate(d[5]); }
        if (d[7]) { date.setHours(d[7]); }
        if (dMusic) { date.setMinutes(dMusic); }
        if (d[10]) { date.setSeconds(d[10]); }
        if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
        if (d[14]) {
            offset = (Number(d[16]) * 60) + Number(d[17]);
            offset *= ((d[15] == '-') ? 1 : -1);
        }
    
        offset -= date.getTimezoneOffset();
        time = (Number(date) + (offset * 60 * 1000));
        this.setTime(Number(time));
    }

    Dengan menggunakan regular expression, string tanggal dipecah ke dalam nilai tahun, bulan, tanggal, jam, menit, detik, milidetik dan offset zona waktu. Penggunaan parser ini sangat sederhana seperti pada contoh berikut.

    var tgl = new Date();
    tgl.parseFromISO8601('2008-01-03T18:30:00');

    Sebaliknya, untuk merubah objek Date menjadi string ISO 8601 juga dapat dilakukan dengan menambahkan fungsi toISO8601String ke dalam objek Date.

    Date.prototype.toISO8601String = function (format, offset) {
        /* accepted values for the format [1-6]:
         1 Year:
           YYYY (eg 1997)
         2 Year and month:
           YYYY-MM (eg 1997-07)
         3 Complete date:
           YYYY-MM-DD (eg 1997-07-16)
         4 Complete date plus hours and minutes:
           YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
         5 Complete date plus hours, minutes and seconds:
           YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
         6 Complete date plus hours, minutes, seconds and a decimal
           fraction of a second
           YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
        */
        if (!format) { var format = 6; }
        if (!offset) {
            var offset = 'Z';
            var date = this;
        } else {
            var d = offset.match(/([-+])([0-9]{2}):([0-9]{2})/);
            var offsetnum = (Number(d[2]) * 60) + Number(d[3]);
            offsetnum *= ((d[1] == '-') ? -1 : 1);
            var date = new Date(Number(Number(this) + (offsetnum * 60000)));
        }
    
        var zeropad = function (num) { return ((num < 10) ? '0' : '') + num; }
    
        var str = "";
        str += date.getUTCFullYear();
        if (format > 1) { str += "-" + zeropad(date.getUTCMonth() + 1); }
        if (format > 2) { str += "-" + zeropad(date.getUTCDate()); }
        if (format > 3) {
            str += "T" + zeropad(date.getUTCHours()) +
                   ":" + zeropad(date.getUTCMinutes());
        }
        if (format > 5) {
            var secs = Number(date.getUTCSeconds() + "." +
                       ((date.getUTCMilliseconds() < 100) ? '0' : '') +
                       zeropad(date.getUTCMilliseconds()));
            str += ":" + zeropad(secs);
        } else if (format > 4) { str += ":" + zeropad(date.getUTCSeconds()); }
    
        if (format > 3) { str += offset; }
        return str;
    }

    Fungsi di atas memiliki dua parameter yang pertama adalah format yang disediakan dan kedua adalah offset zona waktu. Penggunaannya juga sangat sederhana seperti terlihat pada contoh berikut.

    var strISO = tgl.toISO8601String(6);

    Dengan menambahkan kedua fungsi tersebut di atas, maka data dalam format ISO 8601 seperti yang berasal dari call webservice melalui AJAX dapat diparsing dengan mudah.

    Share this post: | | | |
    Posted Jan 03 2008, 08:19 PM by cahnom with no comments
    Filed under: ,
  • Upgrade BlogEngine.NET ke versi 1.3

    Alhamdulillah situs www.masykur.web.id telah berhasil diupgrade ke BlogEngine.NET versi terbaru (v1.3). Walaupun masih repot dalam proses upgrade, Alhamdulillah setelah lebih dari satu jam upload semua file yang dibutuhkan melalui web2ftp.de (karena direct FTP dari PC kantor saya tidak bisa). Sekarang www.masykur.web.id telah memiliki tenaga baru.

    Untuk melakukan upgrade dari versi lama ke baru berikut sedikit tips yang mungkin berguna.

    1. Pastikan tidak ada file versi lama di dalam direktori App_Code, karena biasanya tiap kenaikan versi minor, ada beberapa file yang dihapus.
    2. Selamatkan theme yang telah dikustomisasi supaya tidak tertimpa dengan yang baru.
    3. Jangan timpa file yang ada di direktori App_Data karena direktori ini digunakan untuk menyimpan semua data dari daftar user dan password serta seting blog ada dalam direktori tersebut.
    4. Tidak perlu upload file dalam direktori admin\tiny_mce dan pics\flags karena tidak berisi file yang sama dari versi awal hingga sekarang.

    Demikian sedikit informasi yang mungkin berguna bagi para pengguna BlogEngine.NET dalam melakukan upgrade.

    Share this post: | | | |
    Posted Jan 03 2008, 07:29 PM by cahnom with no comments
    Filed under:
  • Selamat Tahun Baru 2008

    Tahun baru selalu disambut dengan kegembiraan dan harapan-harapan baru. Semoga di tahun ini, semua komponen bangsa ini lebih arif menyikapi permasalahan yang timbul. Terdapat kerjasama yang baik antara ulama (baik ulama dalam arti kiyai atau ulama dalam arti cendikiawan dalam ilmu lain seperti programmer) dan umaro (baik umaro dalam arti pemerintah maupun umaro dalam arti pimpinan perusahaan [tempat programmer mencari sesuap nasi dan sebuah mercy]).

    Pada tahun 2008 diperkirakan akan ada banyak perubahan bagi programmer .NET. Tahun ini banyak produk Microsoft akan diluncurkan seperti Visual Studio 2008 (walaupun sudah diluncurkan akhir tahun lalu di US, tapi di Indonesia belum), Microsoft SQL Server 2008, IIS7 bersama dengan keluarnya Longhorn dan mungkin juga Silverlight 2.0 akan dirilis tahun ini.

    Akhir kata, selamat berkarya untuk kemajuan bangsa.

    Wassalam

    Share this post: | | | |
    Posted Jan 02 2008, 06:52 AM by cahnom with no comments
    Filed under: