.NET Software Tips

Updated: Setting CommandTimeOut di TableAdapter

Ternyata, object this._adapter lebih sering bernilai null sehingga code dalam partial class table adapter tidak memberikan efek apapun. Namun object this.Adapter ternyata memberikan hasil yang ingin dicapai. Jadi rubah code di tahap 4 yang terdapat disini menjadi:

public int CommandTimeout
        {
            get
            {
                if (this.CommandCollection != null)
                    return (this.CommandCollection[0].CommandTimeout);
                else
                    return 30;
            }

            set
            {
                if (this.Adapter != null)
                {
                    if (this.Adapter.InsertCommand != null)
                        this.Adapter.InsertCommand.CommandTimeout = value;
                    if (this.Adapter.UpdateCommand != null)
                        this.Adapter.UpdateCommand.CommandTimeout = value;
                    if (this.Adapter.DeleteCommand != null)
                        this.Adapter.DeleteCommand.CommandTimeout = value;
                }
                if (this.CommandCollection != null)
                {
                    foreach (System.Data.SqlClient.SqlCommand SelectCommand in this.CommandCollection)
                    {
                        if (SelectCommand != null)
                        {
                            SelectCommand.CommandTimeout = value;
                        }
                    }
                }
            }
        }

.NET Software Tips

Setting CommandTimeOut di TableAdapter

Secara default, TableAdapter menggunakan TimeOut 30s untuk setiap interaksi-nya ke database. Namun ada kalanya suatu transaksi database membutuhkan waktu yang lebih lama dari 30s. Sayangnya TableAdapter tidak menyediakan akses secara langsung ke parameter TimeOut ini karena semua object yang diperlukan untuk interaksi dengan database dibuat secara on the fly saat dibutuhkan.

image
part of generated code at xxx.Designer.cs

Disinilah Partial Class berguna untuk membuat agar CommandTimeOut dapat diakses oleh source code kita.

1. Buka file .xsd tempat TableAdapter yang hendak kita buat agar CommandTimeOut dapat diakses seperti pada gambar dibawah ini;

image

2. Sorot TableAdapter yang diinginkan dan klik kanan. Pilih View Code dari PopUp Menu;

image

3. Visual Studio akan membuka file cs yang sesuai dan akan langsung menunjuk ke arah Partial Class yang relevan;

image

4. Tambahkan code berikut di dalam partial class yang relevan itu:

        public int CommandTimeout
        {
            get
            {
                return (this._adapter.InsertCommand.CommandTimeout);
            }

            set
            {
                this._adapter.InsertCommand.CommandTimeout = value;
                this._adapter.UpdateCommand.CommandTimeout = value;
                this._adapter.DeleteCommand.CommandTimeout = value;
                foreach (System.Data.SqlClient.SqlCommand SelectCommand in this._commandCollection)
                {
                    if (SelectCommand != null)
                    {
                        SelectCommand.CommandTimeout = value;
                    }
                }
            }
        }

5. Simpan dan tutup file tersebut

6. Sekarang anda sudah dapat mengakses CommandTimeOut dari TableAdapter di dalam source code. Contoh di bawah ini merubah TimeOut menjadi 120s atau 2 menit.

image

Software Tips

Menghapus e-mail ganda di Microsoft Outlook

Sebagai pengguna e-mail client, tentunya kita sering menghadapi masalah adanya e-mail ganda di Inbox kita. E-mail ganda ini dapat disebabkan banyak hal, namun biasanya dikarenakan jeleknya koneksi dengan server e-mail atau sibuknya server e-mail menyebabkan server tidak menerima response yang semestinya saat e-mail client telah mendownload suatu e-mail. Saat tidak adanya response ini, server e-mail menganggap bahwa client belum mendownload e-mail tersebut sehingga e-mail lama (yang seharusnya sudah terdownload) saat client mencoba menarik e-mail baru akan dikirim kembali oleh server.

Saat menggunakan Eudora atau TheBat! atau Thunderbird, banyak AddOns yang memudahkan saya untuk membuang e-mail ganda atau duplicate e-mail seperti ini. Namun hal ini ternyata agak sukar untuk Microsoft Outlook. Tapi dengan bertanya pada Om Google akhirnya saya bertemu dengan Outlook Duplicate Item Remover atau ODIR.

Installasi dari ODIR di Windows 7 64-bit Sony Vaio Z1 berjalan mulus namun saat membuka Outlook, saya diminta untuk memasukkan DVD installasi Visual Studio 2010 Professional. Hmm, apakah ini hanya untuk user yang memiliki Visual Studio 2010 atau juga terjadi pada semua user ya. Anyway jikalau installasi sudah selesai maka akan terdapat menu ODIR di main menu

image

Sorot dan pilih ‘Remove duplicate items sehingga muncul tampilan ODIR

SNAGHTML159378

Pilih folder yang hendak di cek (ODIR tidak hanya menghilangkan duplicate e-mail tapi juga data-data lain Outlook) dan klik tombol ‘Remove duplicate items`. ODIR kemudian akan memproses folder tersebut untuk mencari data-data yang memiliki duplikasi

image

Setelah proses selesai, ODIR akan memindahkan semua duplicate ke sub direktori yang baru. Anda dapat melakukan cross check, menghapus secara permanen atau membatalkan duplicate

image

(isnandi.net)

Hardware Sony Vaio Z116GG Tips

Multimedia Card dan MS Pro Duo sebagai tempat penyimpanan data tambahan bagi notebook Sony Vaio Z116GG

DSC02915

Dengan SSD yang hanya 128GB, tidak terasa ruang kosong di Vaio saya ini semakin lama semakin menipis. Setelah diinstall varian Visual Studio (mulai dari 2005 hingga 2010), lalu SQL Server 2008 Web Edition, MS Office, Blender serta Unity3D plus beberapa giga data dan foto dari Sony A33 tak terasa space yang tersisa tinggal 5GB.

Sudah waktunya untuk menambah space nih. Mengupgrade SSD merupakan pilihan terakhir karena harga SSD masih betah bertahan di atas langit, apalagi dengan adanya kelangkaan stock berkat banjir Thailand. Terpikir untuk memasang SSD Express Card seperti ini namun mengingat harganya (32GB dihargai $139) yang juga masih cukup mahal jadi dikesampingkan.

DSC02926Akhirnya terpikir untuk memanfaatkan slot MS Pro Duo dan Multimedia Card karena toh extra space ini rencananya digunakan hanya untuk data dan bukan aplikasi atau sistem. Harga SD Card/MicroSD 16GB Class 4 berkisar di 100-200rb-an. Sementara MS Pro Duo 16GB dihargai hingga dua kali lipatnya.

Selidik punya selidik, ternyata sekarang ada MS Pro Duo Adapter yang akan membuat MicroSD menjadi MS Pro Duo. Saya membeli satu buah adapter dual slot dari seorang rekan di forum agan-agan.

DSC02917Dan kemudian saya membeli dua buah MicroSD V-Gen 16GB yang akan membuat saya memiliki MS Pro Duo 32GB. Namun hasil test membuktikan bahwa saat mencapai kurang lebih 19GB, Windows memberikan warning memberitahukan bahwa MS Pro Duo telah penuh.

Akhirnya saya kombinasikan antara 16GB + 2GB MicroSD sehingga saya memiliki total 18GB pada slot MS Pro Duo dan 16GB pada slot SD Card. Lumayan sebagai tempat penyimpanan data.

Setelah melakukan transfer, eng ing eng… ruang kosong di SSD saya menjadi 40GB. Mantap (isnandi.net)

TV

Castle S04E15: Pandora Bagian I

image

Kemarin akhirnya menyempatkan diri untuk nonton serial tv Castle sesi ke 4 episode ke 15 berjudul Pandora. Harus saya akui bahwa episode kali ini lebih menarik dan fun dibandingkan dengan beberapa episode sebelumnya. Rasa cemburu Beckett karena Castle ternyata pernah memiliki ‘muse’ lain sebelum dirinya. Dan determinasi Castle untuk membantu ex-‘muse’-nya semakin menambah cemburu Beckett.

Sayangnya episode ini ternyata masih bersambung ke minggu depan.

*spoiler*

Yang paling pantas diperhatikan adalah pembahasan tentang adanya algoritma untuk menentukan suatu event kecil yang dapat membuat efek domino yang sangat besar. Jadi ingat dulu tahun 1998 gelombang mahasiswa berdemo menjadi sangat kuat setelah Penembakan di Trisakti dan pembakaran Glodok.

*end spoiler*

Hardware Notebook Sony Vaio Z116GG

Sony Vaio Z116GG

DSC02426

Akhirnya saya memiliki dana untuk membeli Sony Vaio Z116GG yang merupakan idaman saya sejak 2010. Z116GG sebenarnya adalah kode yang terdiri dari nama produk Z1 atau VPCZ1 dan 16GG yang merupakan varian. Saya membeli Vaio Z1 keluaran 2010 ini pada bulan Oktober 2011 kemarin, saat itu Sony telah mengeluarkan Vaio Z2 yang lebih ciamik lagi dari punya saya ini. Namun menurut saya pribadi Vaio Z1 memiliki keunggulan dibanding Vaio Z2 terutama karena dalam body kecil Vaio Z1 ini masih ada optical drive dan dedicated GPU. Salah satu pertimbangan lain adalah harga Z1 jadi lebih bersahabat dibanding Z2. 
Notebook ini-pun resmi menjadi notebook ke-10 yang saya gunakan selama 14 tahun malang melintang di jagat IT.

Fitur

DSC02430Sony Vaio Z11GG datang dengan fitur standard:

  • Intel Core i5 540M (2.53GHz, Cache 3MB)
  • Nvidia GeForce GT 330M 1GB (Speed) / Intel GMA 4500MHD (Stamina)
  • 6GB RAM (Max 8GB)
  • 128GB SSD
  • DVD RW Multi
  • Wifi 802.11b/g, LAN, Bluetooth
  • 13.1” WXGA LED (1600 x 900)
  • Webcamera, Fingerprint
  • Windows 7 Professional 64-bit
  • Berat hanya 1.38kg

DSC02434Walaupun memiliki berat yang sangat enteng, yaitu 1.38kg yang bahkan lebih ringan dari Sony Vaio M126AG milik anak saya, Vaio Z1 ini dibenamkan kemampuan prima dan memiliki dedicated graphics card serta cukup banyak konektifitas seperti Lan, 3xUSB 2.0, MS Pro Duo, Memory Card Reader (MMC/SD), Express Card, VGA Out dan HDMI. Acer Aspire 4530 saya yang memiliki konektifitas yang sama terlihat sangat bongsor bila disandingkan dengan Vaio Z1.

Buildnya sangat mewah dengan warna yang elegan dan tulisan Vaio berwarna chrome di tengah-tengah lid notebook. Tentu saja karena Vaio Z merupakan produk premium dari jajaran Sony Vaio. Tidak lupa Fingerprint sensor yang terletak manis di bawah mousepad.

DSC02428Keyboard yang sangat nyaman digunakan karena Sony merupakan salah satu pelopor keyboard chiclet. Tidak dilupakan keyboard backlit yang sangat berguna bila saya mengetik di ruangan dengan pencahayaan kurang. Walaupun masih agak kagok saat menggunakan keyboard-nya karena terbiasa dengan Dell Vostro 1400 saya, namun akhirnya terbiasa dan semakin menikmatinya.

Tidak banyak lampu yang berseliweran di sekitar keyboard sehingga tidak menggangu mata. Hanya ada lampu hijau di pojok kanan atas yang menandakan status power dari Vaio ini.

DSC02429

Kelemahan utama bagi saya(yang menurut beberapa orang kelebihan) adalah Dynamic Hybrid Graphics System dari notebook ini. Sistem ini akan mendeteksi apakah kita terhubung dengan power outlet atau tidak serta apa pilihan dari power plan kita.
Apabila kita memilih ‘Balanced’ dimana saat notebook terhubung dengan listrik maka Vaio akan menggunakan Nvidia Geforce GT 330M sementara saat menggunakan batere maka Vaio akan menggunakan Intel GMA.
Sementara bila kita memilih ‘High performance’ maka Vaio akan tetap menggunakan Nvidia Geforce biarpun kita sedang menggunakan batere yang tentu akan sangat mengurangi kinerja batere itu sendiri.

Menurut saya lemah karena saat melakukan perpindahan dari Intel GMA ke Nvidia Geforce atau sebaliknya, Windows masih saja meminta konfirmasi saya berulangkali yang dikarenakan adanya aplikasi yang mungkin terganggu dengan perpindahan tersebut.
Hal ini tentu saja dapat dihindari dengan tidak memilih Auto tapi langsung Speed (Nvidia Geforce) atau Stamina (Intel GMA).

Saat sibuk, misalkan digunakan untuk bermain game yang membutuhkan grafis 3D yang cukup berat salah satu yang pernah saya coba adalah Mass Effect 2, internal fan dari Vaio baru sibuk bekerja dan tingkat panas dari notebook terutama CPU serta GPU bisa mencapai 87° dari standard 60° (posisi Speed) atau 50° (Stamina).

Kesimpulan

Puas, puas dan puas.

DSC02432Layar LED dari Vaio Z1 ini diklaim merupakan Vaio Display Premium sehingga warna dan displaynya begitu cerah dan lebih nyaman di mata. Keyboard yang empuk dan nyaman. Masih adanya optical drive yang bisa digunakan apabila diperlukan.

Startup dari cooldboot yang hanya memakan waktu sekitar 27s. Sedangkan dari sleep hanya butuh waktu 2s dan dari hibernate sekitar 7s. Semuanya berkat SSD-nya yang bagi saya super cepat.

Saat ini Vaio Z1 telah saya gunakan selama kurang lebih 6 bulan dan tidak ada satupun komplain berarti yang bisa saya utarakan. (isnandi.net)

Windows Mobile (WM) Windows Phone

Setup Development Tools for Windows Phone

Akhirnya saya punya waktu juga untuk mengupdate blog ini. Terutama karena ada beberapa catatan penting yang ingin saya simpan untuk bisa digunakan nanti.

Seiring dengan ramainya pemberitaan tentang launching Nokia Lumia 800, saya jadi ingin mencoba untuk membuat aplikasi untuk Windows Phone sederhana sehingga rasa penasaran ini hilang.

Download

Nah untuk membuat aplikasi Windows Phone, tentu diperlukan development tools atau SDK (Software Development Kit). SDK ini bisa di download secara free dari website microsoft:

Web Download Installer hanya akan mendownload aplikasi installer sebesar kurang lebih 3.4MB. Saat proses instalasi, dia akan mendownload content instalasi-nya dari internet yang besaran kurang lebih 530MB.

Nah, untuk yang lebih senang menggunakan full download (seperti saya) karena dengan download sekali dapat diinstall di berbagai komputer dapat menggunakan link diatas. Ukurannya kurang lebih 730MB.

Install

Tinggal double klik file yang sudah di download untuk melakukan installasi. Harap diperhatikan bahwa biarpun anda sudah memiliki Visual Studio 2010 versi lain, proses installasi Windows Phone SDK akan tetap menginstall Visual Studio 2010 Express. Hal ini seperti yang terjadi di notebook saya yang telah terinstallasi Visual Studio 2010 Professional.

SNAGHTMLfc49df6

Dan hingga saaat saya menulis ini, saya tidak menemukan cara apapun untuk menginstalasi Windows Phone SDK tanpa Visual Studio 2010 Express. Namun karena Express tidak memakan space cukup besar (karena sebagian besar di share dengan Visual Studio 2010 Professional yang telah lebih dulu di install) saya anggap bukan masalah besar. Bahkan mungkin akan dapat berguna di suatu saat nanti. Who knows Smile

MySQL Software Tips Windows

Sinkronisasi Data Model dan Live Database menggunakan MySQL Workbench

Sepanjang pengalaman saya pribadi, hampir seluruh software yang saya kembangkan selalu mengalami perubahan database sepanjang perjalanan cycle-nya… baik saat pengembangan ataupun setelah deployment. Bagi yang sering menggunakan MySQL Workbench, tentu menyadari bahwa kita lebih sering frustasi karena fitur sinkronisasi Data Model dengan Live Database sering berakhir dengan pesan error dari Database. Bahkan saya beberapa kali memperoleh laporan perbedaan Data Model dan Live Database yang sama padahal Live Database sudah saya update manual… sungguh sangat menyesakkan.
Sejauh ini saya menduga bahwa cache dari Data Model tidak terupdate sepenuhnya, walaupun kita memperoleh pesan bahwa MySQL Workbench mencoba membaca data dari Live Database. Berbekal keyakinan ini, saya mencoba melakukan cara memutar yang agak panjang dengan tetap memanfaatkan MySQL Workbench (terutama karena tools ini gratis).

Tools yang digunakan: MySQL Workbench 5.2.33 CE

  1. Lakukan Backup Live Database melalui menu Server Administrator > Manage Import / Export > Data Export / Restore dan pilih Live Database yang hendak di backup. Jangan lupa di tick `Export to Self-Contained File` dan `Dump Stored Routines`. Mari kita namakan livedata.sql
  2. Buka Data Model yang baru melalui menu Data Modelling > Open Existing EER Model dan pilih Data Model yang diinginkan.
  3. Export Data Model ini menjadi SQL Script dengan menggunakan menu File > Export > Forward Engineer SQL Create Script. Misal kita beri nama newmodel.sql dan ikuti petunjuk di layar (Biasanya cukup Klik Next dan Next dan Finish)
  4. Selanjutnya tutup Data Model/tab yang terbuka di MySQL Workbench. Kemudian lakukan load Data Model script hasil export diatas ke dalam MySQL Workbench melalui menu Data Modelling > Create EER Model From SQL Script serta memilih file newmodel.sql
  5. Setelah proses Reverse Engineer diatas selesai, maka kita siap melakukan sinkronisasi. Buka menu File > Export > Forward Engineer SQL Alter Script. Pada bagian input file, masukkan script Backup Live Database (livedata.sql). Bagian output file dapat dikosongkan.
  6. Klik Next dan ditampilkan Script perubahan yang diperlukan. Review dan save script ke file.
  7. Tutup Data Model hasil Reverse Engineer dan jalankan Script perubahan hasil dari proses diatas di SQL Editor untuk mengaplikasikan perubahan ke Live Database

Jalannya agak panjang, namun setidaknya proses sinkronisasi (tanpa harus forward engineer) bisa dilakukan tanpa pesan error yang cukup berarti.