Archive for the ‘Developer to developer’ Category

h1

Note for Chapter 2.4 : [Isolated Storage]

25 August, 2008
  • Seperti namanya, Isolated Storage, dalam lingkup IO, kita mempunyai hak read/write file di storage yang secure. Sehingga aplikasi kita dapat berjalan, apapun hak akses kita.
  • Class : IsolatedStorageFile (untuk mengakses store/membuat object store), IsolatedStorageFileStream (read/write store file), IsolatedStorageFilePermission (digunakan sebagai attribut/anotasi).
  • Ada 2 level akses untuk membuat objek store :
    • Assembly/Machine : Berguna untuk membuat application-level data.

Dim MachineStore As IsolatedStorageFile = _

IsolatedStorageFile.GetMachineStoreForAssembly()

  • Assembly/User : Berguna untuk membuat user-level data.

Dim UserStore As IsolatedStorageFile = _

IsolatedStorageFile.GetUserStoreForAssembly

  • Contoh. Jika read data menggunakan enum FileMode.Open. Gunakan FileMode.Create untuk write data :

‘Jika diperlukan, buat directory

store.CreateDirectory(“MyDir”)

Dim userStream As IsolatedStorageFileStream = New _

IsolatedStorageFileStream(“MyDir\UserSettings.set”, _

FileMode.Create, _

UserStore)

  • Untuk mendapatkan directory :

Dim directories() As String = _

UserStore.GetDirectoryNames(“MyDir”)

If directories.Length = 0 Then

‘Jika diperlukan, buat directory

End If

  • Mengijinkan Assembly menggunakan Isolated Storage menggunakan class IsolatedStorageFilePermission (Import Security.Permission terlebih dahulu):

<IsolatedStorageFilePermission(SecurityAction.Demand, _

UserQuota:=1024, _

UsageAllowed:= _

IsolatedStorageContainment.AssemblyIsolationByUser)> _

Class Program

‘ …

End Class

h1

Note for Chapter 2.3 : [Mengompress Stream]

21 August, 2008
  • Class yang digunakan adalah GZipStream dan DeflateStream. Keduanya menggunakan algoritma dan memiliki common used properties dan method yang sama.
  • Perbedaannya GZipStream menyimpan header berisi informasi ekstra sementara DeflateStream tidak, sehingga lebih ringan.
  • File yang bisa dikompress adalah semua file yang berukuran < 4 Giga.
  • Properties : BaseStream, CanRead, CanSeek, CanTimeOut, CanWrite, Length(DON’T USE), Position(DON’T USE), ReadTimeOut, WriteTimeOut.
  • Method : Close, Flush, Read, ReadByte (Read a byte dan pindah posisi ke byte selanjutnya. Sama dengan memanggil method Read utk membaca satu byte), Seek(DON’T USE), SetLength(DON’T USE), Write, WriteByte.
  • Cara mengompress data :

  • Cara Decompress data : (kebalikan compress, kita ingin menulis byte ke destFile yg berupa .txt dari sourceFile .gz)

h1

Note for Chapter 2.2 : [Membaca dan Menulis Files]

19 August, 2008
  • Base Class yang digunakan adalah Stream. Turunannya : FileStream, MemoryStream, CryptoStream, NetworkStream, dan GZipStream.
  • Properties Stream : CanRead, CanSeek, CanTimeOut, CanWrite, Length, Position, ReadTimeOut, dan WriteTimeOut.
  • Method Stream : Close, Flush (Clears buffers dan memaksa menulis perubahan ke stream), Read(sequential read, use looping), ReadByte, Seek (set posisi dalam stream), SetLength, Write, WriteByte.
  • Class – class : File(shared prop/method), Directory(shared prop/method), FileStream, StreamReader, StreamWriter, StringReader/StringWriter, BinaryReader/BinaryWriter (read/write ke .bin), MemoryStream (read/write stream ke memory), BufferedStream (use it if write using stream doesn’t perform well).
  • Enum yang digunakan :
    • FileAccess : Read, Write [File dibuka hanya utk ditulis], ReadWrite [Full Access]
    • FileMode :
      • Append [Membuka dan posisikan pointer di akhir file. Hanya dapat digunakan jika FileAccess.Write],
      • Create [Buat File baru. Jika exist di-overwrite],
      • CreateNew [Jika exist ada thrown Exception],
      • Open [Jika file tidak ada, thrown Exception],
      • OpenOrCreate [Jika file tdk ada, buat baru],
      • Truncate [Membuka file sekaligus mengosongkannya])
  • Cara membaca file :

Atau bisa juga baca per baris menggunakan ReadLine(). Gunakan looping While Not rdr.EndOfStream

Menggunakan StringReader

  • Cara menulis ke file :

Atau singkatnya jika ingin menulis string ke file yang baru menggunakan shared method dari class File :

Menggunakan StringWriter . Lebih efisien jika ingin membuat file string berukuran besar.

  • Menggunakan MemoryStream. Pertama tulis dulu di MemoryStream. Kemudian di-Flush. Baru tulis ke file using FileStream.

  • Menggunakan BufferedStream . Pertama buat objek shared FileStream. Lalu buat instance BufferedStream dengan menyertakan FileStream. Buat instance StreamWriter untuk menulis ke objek BufferedStream.

h1

Note for Chapter 1.4 : [Convert Antar Types]

19 August, 2008
  • Widening conversion memungkinkan convert type selama masih memungkinkan. Seperti dari Double ke Int dan sebaliknya(jika Option Strict=Off).
  • Narrowing conversion mengkonversi type yang tidak dalam jangkauannya. Bisa menggunakan System.Convert (antar type yang meng-implement System.IConvertible), CBool, CInt, CStr, CType, DirectCast, dan TryCast.
  • Boxing mengkonversi value type ke reference type (Cth. dari Int ke String).
  • Unboxing kebalikan boxing. Yaitu konvert reference type ke value type (Cth. CType(o as Object, i as Int)).
  • Sebaiknya hindari boxing-unboxing. Gunakan generic, type-spesific, dan override shadow member ToString, Equals, dan GetHash.
  • Baru di .NET 2.0. Gunakan conversion operators di Structure menggunakan keyword Widening dan Narrowing.

h1

Note for Chapter 2.1 : [Navigasi File System]

18 August, 2008
  • File System menggunakan namespace System.IO untuk navigasi dan manipulasi Files, Drives, dan Directories.
  • File System dibagi menjadi dua : Informasi dan utiliti.
  • Untuk informasi, base class-nya FileSystemInfo. Turunannya adalah FileInfo dan DirectoryInfo. Mengapa DriveInfo tidak?. Karena kita tidak bisa menghapus Drive. Class DriveInfo meng-implements ISerializable dan NotInheritable.
  • Untuk utiliti class-classnya : File, Directory, dan Path.
  • Properties FileSystemInfo yang sering digunakan : Attributes, CreationTime, Exists, Extension, FullName, LastAccessTime, LastWriteTime, Name.
  • Method FileSystemInfo yang sering digunakan : Delete, Refresh.
  • Properties FileInfo yang sering digunakan : Directory, DirectoryName, IsReadOnly, Length.
  • Method FileInfo yang sering digunakan : AppendText, CopyTo, Create, CreateText, Decrypt, Encrypt, MoveTo, Open, OpenRead, OpenText, OpenWrite, Replace.
  • Contoh mendapatkan informasi File :

Dim MyFile As New FileInfo(“c:\boot.ini”)

Dim FName As String = MyFile.Name & ” - “& MyFile.FullName

 Jika ingin meng-kopi file gunakan CopyTo :

MyFile.CopyTo(“c:\boot.bak”)

  • Properties DirectoryInfo yang sering digunakan : Parent, Root (semuanya return objek DirectoryInfo).
  • Method DirectoryInfo yang sering digunakan : Create, CreateSubDirectory, GetDirectories (return array DirectoryInfo), GetFiles (return array FileInfo), GetFileSystemInfos, MoveTo.
  • Gunakan looping For-Each untuk mendapatkan objek FileInfo dari method GetFiles. Contoh :

  • Properties DriveInfo yang sering digunakan : AvailableFreeSpace, DriveFormat, DriveType (Enum:CD, Fixed, Network, Removable, dll), IsReady, Name, RootDirectory, TotalFreeSpace, TotalSize, VolumeLabel.
  • Method DriveInfo yang sering digunakan : GetDrives (return semua drives dalam system).
  • Class Path digunakan untuk manipulasi path file system (hanya path bukan file). Shared Method yang sering digunakan : ChangeExtension (hanya return path dan extensi baru sebuah file), Combine, GetDirectoryName, GetFullPath, GetFileName, GetExtension, HasExtension, IsPathRooted.
  • Properties FileSystemWatcher yang sering digunakan : EnableRaisingEvent (default = true), Filter (File filter. Jika kosong dianggap ‘All File’), IncludeSubDirectories, NotifyFilter (default :semua perubahan delete, change, rename, modifikasi = on), Path.
  • Method FileSystemWatcher yang sering digunakan : WaitForChanged (membernya enum WatcherChangeType(Change, Delete, dll) dan TimeOut).
  • Events FileSystemWatcher : Changed, Created, Deleted, dan Renamed.
  • Contoh Penggunaan FileSystemWatcher :

h1

Note for Chapter 1.3 : [Class]

18 August, 2008
  • Gunakan Inherit untuk membuat class dari class yang sudah ada
  • Contoh kita bisa membuat Exception sendiri yang di-inherit dari System.ApplicationException. Class-class turunannya juga mewarisi semua yang dimiliki parent class.

  • Contoh penggunaannya :

  • Interface juga disebut contract. Class yang meng-implement interface harus memiliki baik function maupun property dan members yang dimiliki Interface.
  • Interface yang umum digunakan : IComparable, IDisposable, IConvertible, ICloneable, IEquatable, dan IFormatable.
  • Partial Class digunakan untuk memisah code class ke multiple file.
  • Generic. Baru di .NET 2.0. Kita menggunakan generic untuk mendefinisikan type sendiri. Contoh generic class di .NET 2.0 adalah namespace System.Collections.Generic.
  • Keuntungan menggunakan generic adalah :
    • Type-safe, jadi dapat mengurangi error runtime dan,
    • Meningkatkan performa karena tidak ada boxing (casting Value-Types ke Reference-Types) dan unboxing.
  • Contoh cara membuat generic types.

Contoh penggunaannya :

  • Gunakan Constraint untuk mendefinisikan type pada generic class. Empat tipe constraint yaitu : Interface, Base Class, Constructor, dan Reference atau Value Type. Contoh :

Contoh penggunaannya :

Dim cg As New CompGen(Of ArrayList, ArrayList) _

(New ArrayList, NewArrayList)

  • Event adalah komunikasi pengiriman pesan dari objek yang terkena action. Dalam komunikasi event, event sender tidak tahu method apa yang dijalankan event receiver.
  • Cara Raise Event :
    • Buat sebuah Delegate. Delegate adalah class yang digunakan untuk menyimpan reference sebuah method.

Public Delegate Sub MyEventHandler(ByVal sender As Object, ByVal e AsEventArgs)

Parameter EventArgs menyimpan properties yang dibutuhkan event. Kita bisa custom type yang diturunkan dari EventArgs dan menambahkan member.

  • Buat sebuah Event

Public Event MyEvent AsMyEventHandler

  • Panggil/Invoke delegate dari method untuk raise event

  • Attribut menjelaskan type, method atau property yang dapat di-query menggunakan Reflection. Penggunaan yang umum sebagai berikut :
    • Spesifikasi security privileges yang dibutuhkan class
    • Deklarasi kapabilitas, seperti support serialization

<Serializable()> _ Class MyClass1 End Class

  • Menjelaskan assembly dengan menyediakan title, description, atau copyright.

  • Type Forwarding adalah sebuah attribut (implementasinya TypeForwardedTo) yang mengijinkan kita memindahkan type dari [Assembly A] ke [Assembly B].

Imports System.Runtime.CompilerServices

<Assembly: TypeForwardedTo(GetType(DestLib.TypeA))>

h1

Note for Chapter 1.2 : [Common Reference Types]

18 August, 2008
  • Beda Reference Types dan Value Types bisa dilihat disini :

Numbers adalah Structure (Value Types). Outputnya adalah n1 =1, n2=2. Beda jika Numbers kita buat sebagai class. Outputnya akan menjadi n1=3, n2=3. Reference Types hanya address/alamat data dan tidak menyimpan value. Sementara Value Types adalah data itu sendiri.

  • Reference Types contohnya : System.Object, System.String, System.Text.StringBuilder, System.Array, System.IO.Stream, System.Exception.
  • String sifatnya immutable. Means jika ada perubahan dalam String, runtime akan membuat String yang baru dan mengabaikan yang lama. Itu sebabnya digunakan StringBuilder yang mutable untuk membuat String dinamis.
  • Cara menggunakan array :

  • Stream(System.IO.Stream) digunakan untuk read/write ke disk dan komunikasi dalam jaringan/network
  • Stream yang umum digunakan : FileStream, MemoryStream, StreamReader, dan StreamWriter. Setelah menggunakan Stream ingat untuk di-Close untuk melepaskan Lock file.

  • Exception adalah perencanaan error handling. Ada banyak tipe Exception yang semuanya diturunkan dari System.SystemException. Cara penggunaannya :

Variabel sr ditaruh diluar Try-Catch karena Finally tidak akan mengenali jika ditaruh dalam Try-Catch.

  • Lakukan Filtering Exception, dari yang paling spesifik to general.

h1

Note for Chapter 1.1 : [Value Types]

18 August, 2008
  • Ada 3 value type yang umum : Built-in types, User-defined types, dan Enumerasi. Semua diturunkan dari System.Value.
  • Built-in types contohnya : Int, decimal, byte, bool, char, dan datetime.
  • Gunakan Int32 untuk looping. Jika undefined gunakan Double.
  • Yang baru di .NET 2.0: Deklarasi variable menggunakan Nullable. Contoh : Dim myBool as Nullable(Of Boolean) = Nothing. Dan otomatis myBool mempunyai member HasValue dan Value.
  • User-defined types istilah lainnya adalah Structure/struct.
  • Contoh membuat struct :

  • Structure biasanya lebih efisien dari Class jika penggunaannya sebagai value-type bukan reference-type.
  • Kriteria membuat Structure : Nantinya tidak berubah setelah dibuat dan tidak di-cast ke reference-type.
  • Enumerasi digunakan untuk menyederhanakan kode dan mudah dibaca. Jika ada pilihan terbatas dalam Class, use this. Contoh menggunakan Enumerasi :

h1

Little note for my Acer P193w LCD monitor and Advance TV Tuner for LCD

2 May, 2008

IMG 0030

Setelah melihat beberapa review dan forum di OprekPC akhirnya saya putuskan untuk membeli LCD Acer X193w 19″ Wide, dengan harga sekitar 2.17 juta. Sebelumnya tertarik dengan seri LCD GTC Primera LD900 karena harganya yang lebih miring (1.9 juta). Dan juga karena menurut ‘bisikan’ teman saya yang baru saja dibelikan LCD GTC oleh kantor, GTC itu bandel, awet.

Tapi setelah saya lihat contrast ratio GTC ternyata masih kalah dengan Acer. Contrast ratio GTC 500:1, sementara Acer 2000:1. Saya hanya melihat contrast ratio karena memang penggunaan utama tidak untuk PC tapi untuk multimedia :) dan nonton TV di rumah. Nonton TV pake’ LCD lebih hemat listrik karena maximum Watt-nya cuma 48 Watt. Contrast ratio yang lebih tinggi menjanjikan warna yang lebih baik. Itu sebabnya LCD TV support HD juga menggunakan contrast ratio yang tinggi, minimal 4000:1.

Untuk response time GTC 8 ms, sedangkan Acer 5 ms. Response time yang baik sangat terasa kebutuhannya jika kita bermain games.

Setelah tiba di Acer Waringin THR Surabaya, saya langsung menanyakan spesifikasi X193w ke salesnya, siapa tahu ada yang saya lewatkan. Tapi mas sales menawarkan pilihan “mau ini (X193w) atau yang lebih bagus?”. “Ada emang mas?”. “Ada, udah CrystalBrite”. Wah, kaya’ laptop dong. Mas sales-nya langsung menunjukkan P193w. Wow, I can see my self in that screen. Tidak seperti X193w yang layarnya masih TFT dan warnanya item dop. Warnanya pun bisa “keluar”. Setidaknya itu komentar pertama bodoh saya.

“Harganya?”. “Selisih 400 ribu sama X193w, jadi..2.5 juta”. “Hmmm….”(agak mikir-mikir). Tapi saya pikir saya akan menggunakannya untuk waktu lama jadi tidak mengapa jika harus keluar duit extra. Selain itu juga post-sales Acer bagus.

Mas sales-nya pun membanding-bandingkan Acer dengan LG dan Samsung. Dengan spek yang sama, produk lain lebih mahal. OK deeh “Berapa mas pas-nya?”. Setelah tung-itung-itung “2.45…kasih daah”, :) ga ada kok kasih dah-nya. “2.4 pas deh”. Tung-itung-itung lagi…”Ya udah”. OK..Packing.

Next..TV Tuner. Muter-muter sambil bawa LCD, capek, ga’ ketemu juga, ya udah kapan-kapan beli di Chip Nginden aja. Dan akhirnya ke-beli juga. TV Tuner Advance for LCD Monitor dengan maximum resolution 1440×900, frequency 60Hz.

IMG 0031IMG 0034

Kualitas gambar dan suaranya lebih baik daripada TV Tuner USB E-Pro saya. Colokannya lengkap, ketika sedang bekerja di PC atau laptop kita juga bisa melihat TV walaupun gambarnya kecil.

Tags: ,

h1

Savely remove Oracle

22 April, 2008

I’ve try it with Oracle version 8 and above.

  1. Uninstall Oracle with Universal Installer.
  2. After finish, Restart your computer and pres F8 to go to Save Mode.
  3. Delete Oracle Folder Directory.
  4. Go to Regedit (type regedit in Run window) and find HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE. Delete ORACLE.
  5. Still in regedit, find HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> And delete your Oracle service (It can be your Oracle Listener or your Oracle Service).

Done.

 

Tags: ,