Arsip

Archive for Desember, 2010

Google Maps 5.0 untuk Android

21 Desember 2010 4 komentar

Dalam rangka untuk meningkatkan kualitas fitur dari google map, maka google map membangun kembali fitur-fiturnya dengan menggunakan grafik vektor, hal ini dimaksudkan agar peta dapat melakukan rendering secara dinamis, sehingga memudahkan user untuk mengeksplorasi peta tersebut. Pembangunan mesin vektor yang terdapat pada google map ini mampu mencapai kualitas visual dan tingkat kinerja yang diharapkan dan merupakan tantangan teknis utama bagi google serta memungkinkan segala macam kemungkinan di masa depan. Selain itu hal ini juga dapat mendorong teknologi generasi berikutnya. Selain fitur vektor, google juga menambahkan fitur lain pada google map 5.0 untuk android ini. Fitur-fitur yang ditambahkan oleh google antara lain:

Grafis vektor

Sebelum membahas bagaimana google maps menggunakan grafis vektor, mungkin akan lebih  membantu untuk memahami bagaimana peta diciptakan sebelumnya. Sebelumnya, Google Maps akan mengunduh peta sebagai satu set individu 256×256 pixel. Setiap kotak gambar yang diunduh tersebut kemudian dilakukan rendering bersamaan dengan section yang dimilikinya seperti, citra gambar, nama jalan, label, serta fitur-fitur lainnya. Dan disaat anda membutuhkannya kemudian kotak-kotak tersebut disusun menjadi satu kesatuan, sehingga terlihat bahwa peta tersebut merupakan satu kesatuan yang utuh.  Untuk membuat peta tersebut dibutuhkan lebih dari 360 miliar kotak untuk menutupi seluruh dunia pada 20 tingkat zoom.

Saat ini google maps telah menggunakan grafis vektor yang secara dinamis dapat menggambar peta. Peta tersebut akan diunduh berdasarkan vektor geometri yang mendasari peta. Ini akan dapat dianggap sebagai cetak biru yang diperlukan untuk menggambar peta, bukan gambar peta statis. Dikarenakan peta hanya perlu mendownload cetak biru, maka jumlah data yang diperlukan untuk menggambar peta dari kotak vektor secara drastis akan berkurang dari saat mengunduh gambar sebelumnya. Sebenarnya google maps bukanlah aplikasi mobile pertama yang menggunakan grafis vektor, fitur pada Google Earth dan Navigasi (Beta) sudah diterapkan. Namun kombinasi dari perangkat keras modern dan rekayasa yang inovatif memungkinkan kita untuk menerapkan vektor secara lebih efisien dan lancar, serta mempertahankan kecepatan dan pembacaan yang dibutuhkan untuk membuka Google Maps. Coba saja dan buktikan sendiri!

Perspektif yang berbeda

Dengan menggunakan kotak vektor pada gambar peta akan memberikan fleksibilitas untuk memuat ulang gambar peta yang sama dari perspektif yang berbeda menggunakan set data yang sama. Zooming adalah salah satu contohnya.

Jika kita memperbesar sebuah gambar peta 2x dengan menggunakan versi yang lama, maka garis seperti jalan dan teks akan mendapatkan dua kali lebih luas dan tampak kabur. Sebagai hasilnya, google map akan membatasi peta hingga ke tingkat 20, masing-masing zoom akan diperbesar dua kali dari yang terakhir. Setiap kali peta diperbesar, maka google maps akan mengunduh kotak gambar yang baru. Untuk itu dibutuhkan  waktu untuk memuat data tersebut melalui koneksi data, dan gambar tidak akan dimuat jika kita kehilangan koneksi.

Namun dengan menggunakan grafis vektor, kita tidak perlu lagi ke tingkat zoom terdekat dan kemudian download semua gambar pada tingkat tersebut. Satu kotak vektor memiliki data vektor yang merupakan cetak biru untuk menggambar peta di berbagai tingkatan skala. Jadi, ketika kita melakukan pembesaran peta, maka peta akan berhenti bila kita berhenti, dan jalan serta label selalu tetap ukurannya dan tidak kabur. Teknik yang sama juga digunakan untuk fitur 3 dimensi yang lainnya seperti : memiringkan, memutar dan mode kompas. Seperti halnya dengan zoom, Google Maps menggunakan data vektor yang sama untuk menggambar peta dari setiap sudut atau arah ketika kita ingin memiringkan atau memutar.

Membaca Peta

Seperti halnya fitur-fitur lainnya pada peta,  label secara dinamis akan dimuat kedalam peta sehingga tulisan label seperti: nama jalan, gedung, dan lain sebagainya akan ikut diputar dan kita akan melihat tulisan tersebut secara terbalik, hal ini akan menjadi masalah jika kita menggunakan mode kompas, dimana peta akan diputar secara otomatis mengikuti arah mata angin. Hal ini menyebabkan kita kesulitan dalam membaca peta dan berinteraksi dengan label didalamnya.

Dengan menggunkan grafis vektor memungkinkan kita untuk memuat data tambahan kedalam peta menjadi lebih jelas. Misalnya, lalu lintas atau garis trafik tidak lagi dibawah blok label. Kita juga dapat menggambar peta yang sama dengan gaya yang berbeda – seperti “tampilan satelit” di mana jalan yang tembus lebih dari sekedar citra udara, atau mode navigasi  pada malam hari di mana palet gelap mata membantu Anda menyesuaikan diri dengan cepat dalam cahaya rendah.

Keandalan ketika offline

Dengan menggunakan vektor grafis memungkinkan fitur-fitur baru secara signifikan memiliki kemampuan untuk terus melihat peta bahkan ketika Anda tidak terkoneksi dengan jaringan internet atau kualitas jaringan internet anda yang buruk. Hal ini dikarenakan setiap kotak vektor bekerja di berbagai tingkat zoom,  untuk itu diperlukan lebih dari 100 kali lebih sedikit transaksi data untuk melihat peta di semua tingkat zoom dari sebelumnya, yang memungkinkan Peta akan di-cache daerah yang jauh lebih besar dari peta pada perangkat Anda.

Offline rerouting

Dengan Google Maps Navigasi (Beta), Anda juga akan melihat manfaat dari caching tambahan dengan offline rerouting. Fitur ini dimungkinkan karena Navigasi akan men-cache data tidak hanya data peta tetapi juga pembatasan yang berubah menjadi daerah sekitarnya dari rute yang dilewati.  Hal ini akan sangat menguntungkan kita ketika kita salah belok, maka peta akan secara otomatis melakukan route ulang terhadap jalan yang kita pilih, walaupun koneksi internet sedang offline.

 

Kategori:Tidak Dikategorikan

ASP .Net MVC : Routing untuk IIS Mode Classic dan Mode Integrated

20 Desember 2010 9 komentar

Model-View-Controller

Didalam ASP.NET MVC, Routing merupakan fitur yang sangat familiar. Dengan menggunakan routing ini maka URL yang akan ditampilkan pada browser menjadi lebih bersih dan mudah. Untuk melakukan konfigurasi rute di dalam ASP.NET MVC sangatlah mudah, kita hanya perlu merubah file global.asax untuk membuat aplikasi dengan URL yang bersih. Namun dalam kebanyakan kasus, kita sering kali mendefinisikan rute ini di IIS 6, IIS 7 (atau IIS 7.5)  baik menggunakan mode Classic maupun Integrated. Tapi dalam penerapannya terkadang kita hanya mendefinisikan rute tersebut yang hanya dapat bekerja di IIS 7 mode Integrated. Hal yang sering kali terlewatkan dalam kasus ini adalah penggunaan ekstensi pada IIS 6 tanpa pemetaan wildcardnya.

Masih bingung ya?

Ok, saya coba jabarkan sedikit masalahnya. Kita ingin membuat sebuah applikasi web dimana applikasi yang kita inginkan tersebut mampu berjalan di Server IIS versi manapun dan dengan mode apapun, namun yang terjadi saat ini adalah ASP .NET MVC hanya melakukan generate routing yang sebenarnya dikhususkan untuk IIS 7.0 dengan mode Integrated. Dan masalah yang sering timbul adalah ketika applikasi web tersebut kita tempatkan pada IIS 6.0 dengan mode Classic, namun kita seringkali lupa melakukan mapping untuk masing-masing page, sehingga pada saat applikasi tersebut dijalankan maka muncul Error 404 – File or directory not found.

Dan yang lebih parahnya lagi terkadang kita salah dalam melakukan analisa pesan error tersebut.

Sebenarnya permasalahannya adalah terletak pada IIS, dimana versi lama (IIS 6.0) hanya melakukan pemetaan tertentu pada kerangka ASP.NET. Halaman ini harus untuk URL yang memiliki ekstensi file kanan. Sebagai contoh, halaman untuk index.aspx.

Oleh karena itu, agar ASP.NET Routing bekerja dengan baik, kita harus memodifikasi rute Default sehingga termasuk ekstensi file yang dipetakan ke kerangka ASP.NET. Namun masalah baru yang timbul adalah jika kita memang benar-benar ingin menjalankannya di IIS 7.0 .

Dari kasus diatas saya akan coba membuat sebuah solusi dimana Applikasi Web yang kita buat tersebut dapat berjalan secara berdampingan, apapun versi IIS yang digunakan dan dengan mode apapun juga.

Langkah pertama yang harus dilakukan adalah kita harus membuat 2 route untuk melakukan routing.

' Route name
' URL with parameters
' Parameter defaults
 ' Constraints
routes.MapRoute("DefaultClassic", "{controller}.aspx/{action}/{id}", New With { _
 Key .controller = "Home", _
 Key .action = "Index", _
 Key .id = UrlParameter.[Optional] _
}, New With { _
 Key .mode = New ClassicModeConstraint() _
})

' Route name
' URL with parameters
' Parameter defaults
 ' Constraints
routes.MapRoute("DefaultIntegrated", "{controller}/{action}/{id}", New With { _
 Key .controller = "Home", _
 Key .action = "Index", _
 Key .id = UrlParameter.[Optional] _
}, New With { _
 Key .mode = New IntegratedModeConstraint() _
})

Rute pertama digunakan untuk mode Classic sedangkan yang kedua untuk mode Integrated. Selanjutnya Anda perlu menambahkan pelaksanaan routing tersebut didalam Class.

Public Class ClassicModeConstraint
 Implements IRouteConstraint
 Public Function Match(httpContext As HttpContextBase, route As Route, parameterName As String, values As RouteValueDictionary, routeDirection As RouteDirection) As Boolean
 Return Not HttpRuntime.UsingIntegratedPipeline
 End Function
End Class

Public Class IntegratedModeConstraint
 Implements IRouteConstraint
 Public Function Match(httpContext As HttpContextBase, route As Route, parameterName As String, values As RouteValueDictionary, routeDirection As RouteDirection) As Boolean
 Return HttpRuntime.UsingIntegratedPipeline
 End Function
End Class

HttpRuntime.UsingIntegratedPipeline akan mengembalikan nilai true jika aplikasi berjalan pada mode Integrated, dan jika tidak,  akan false. Jadi rute untuk mode Integrated hanya cocok saat aplikasi berjalan pada mode Integrated dan rute untuk mode Classic hanya cocok bila aplikasi tidak berjalan pada mode Integrated.

Ok, Selamat mencoba…

Kategori:ASP .NET, MVC

Pembaruan Google Translate

20 Desember 2010 1 komentar

Google Translate saat ini telah menjadi penterjemah online yang sering digunakan. Demi memanjakan penggunanya maka google telah mengupgrade applikasi google translate menjadi lebih mudah dan lebih tangguh. Baru-baru ini google telah memperbaiki dan memperbaharui fasilitas yang terdapat didalam google translate, pembaharuan yang telah diterapkan google saat ini, antara lain:

  • Kata Alternatif, saat ini google translate telah menambahkan fasilitas baru, yaitu penambahan kemampuan untuk melihat terjemahan alternatif, fasilitas ini akan membantu anda memahami makna sebenarnya dimaksudkan kalimat, serta menyediakan kata lain dari kalimat yang dimaksud tersebut. Hal ini dilakukan google untuk meningkatkan sistem terjemahan yang lebih baik lagi.

  • Menambahkan keyboard virtual, terkadang kita mengalami kesulitan untuk mengetikkan huruf untuk beberapa jenis dari 57 bahasa yang didukung oleh Google Translate pada keyboard QWERTY standar. Untuk itu google translate telah menambahkan karakter masing-masing bahasa yang didukung oleh google translate.

  • Penambahan fonetik, Google translate saat ini telah menambahkan fonetik menjadi 17 bahasa yang didukung oleh google translate, dimana sebelumnya kita hanya bisa mendengar fonetik hanya 3 bahasa saja.
Kategori:Tidak Dikategorikan

ASP .NET MVC 3 : Mengenal syntax @ RAZOR

17 Desember 2010 4 komentar

ASP.NET MVC selalu mendukung konsep “view-engines” yang merupakan modul pluggable yang menerapkan pilihan Syntax yang berbeda. Default view engines untuk ASP.NET MVC saat ini telah menggunakan .aspx/.ascx /.master file yang sama seperti ASP.NET Web Form template.  Beberapa view-engines dari ASP .NET MVC yang telah populer dan masih digunakan saat ini adalah Spark dan NHaml.

Pilihan baru dari “view-engines” yang ada saat ini telah dapat bekerja secara optimal pada generasi HTML dengan menggunakan pendekatan yang fokus kepada template code.   Nama dari “view-engines” baru ini adalah Razor.

Tujuan dari diperkenalkannya Razor kedalam ASP .NET MVC 3 ini adalah :

  • Razor dapat meminimalkan jumlah karakter dan penekanan tombol pada keyboard yang dibutuhkan dalam sebuah file, sehingga memungkinkan kita untuk mengetik kode dengan mudah dan cepat, Razor ini tidak seperti kebanyakan template syntax, dimana kita sering menggangu kode kita sendiri dengan menambahkan syntax secara explicit “<%= “”%>”pada kode HTML tersebut. Parser yang ada didalam Razor ini cukup cerdas untuk menginterpretasikan kode anda didalam syntax HTML. Hal ini memungkinkan kita untuk menulis syntax yang benar-benar simpel, expresif, bersih serta cepat dan menyenangkan dalam mengetik syntax
  • Razor sangat mudah untuk dipelajari dan memungkinkan anda untuk lebih produktif dengan lebih cepat dan dengan konsep yang minimal. Dengan menggunakan Razor ini anda dapat meningkatkan kemampuan bahasa anda dan HTML syntax.
  • Razor bukanlah merupakan bahasa baru. Razor ini dibuat bukan untuk menciptakan bahasa implicit yang baru. Namun sebaliknya, dengan menggunakan Razor ini dapat memungkinkan kita untuk menggunakan bahasa C#/VB atau bahasa lainnya. Selain itu Razor juga an memberikan sintaks template markup yang memungkinkan alur kerja HTML yang dikombinasikan dengan bahasa anda.
  • Beberapa editor Razor tidak memerlukan alat yang spesifik, hal ini memungkinkan anda untuk bekerja dengan lebih produktif, bahkan Razor dapat digunakan hanya dengan editor Notepad.
  • Razor dirancang untuk tidak memerlukan alat khusus atau editor kode tersendiri. Razor ini akan dapat berjalan diatas Visual Studio 2010 atau Visual Web Developer 2010 dengan baik, serta akan memilliki Intellisense yang banyak didalamnya/
  • Dalam Implementasi dan pelaksanaan “view-engines” yang baru ini akan mendukung kemampuan untuk membuat Unit Test tanpa harus menggunakan Web Control atau Web Server.

Salah satu hal terbaik tentang ASP.NET adalah bahwa kontrol ini pluggable. Artinya jika anda menemukan sesuatu kesalahan yang menyebabkan control tersebut tidak bekerja seperti yang Anda inginkan, Anda dapat menukar atau menghapus kontrol tersebut.

Razor memungkinkan Anda untuk memulai dengan tag HTML statis (atau konten teks) dan kemudian membuatnya dinamis dengan menambahkan kode server didalamnya. Salah satu tujuan inti di balik Razor adalah untuk membuat proses coding menjadi mudah, dan dapat  memungkinkan anda dengan cepat mengintegrasikan kode server ke markup HTML dengan meminimalkan penekanan tombol pada keyboard.

Mari kita lihat perbandingan kode yang menggunakan ASPX biasa dengan Razor

menggunakan ASPX biasa :

Menggunaan Razor :

Dari kode diatas bisa kita lihat bahwa dalam syntax aspx kita membutuhkan 5 karakter (<% =%>) yang menunjukkan awal dan akhir dari kode server, dan karakter “%” ini sering kali ditekan, dan untuk menekan karakter tesebut bukan perkara mudah, kita harus menekan (Shift+5) untuk memunculkan karakter “%”. sedangkan dalam syntax razor tidak ada syntax yang menunjukkan code awal dan akhir, sehingga akan memudahkan kita dalam mengetikkan kode, dan razor tidak mengharuskan anda untuk mengetikkan kode penutup. Hal ini dikarenakan Parser Razor memiliki pengetahuan semantik dari kode C#/VB yang digunakan dalam kode blok, itulah sebabnya kenapa tidak perlu secara eksplisit menutup blok kode di atas. Razor mampu mengidentifikasi pernyataan di atas sebagai blok kode mandiri, dan secara implisit ditutup.

 

 

Kategori:Tidak Dikategorikan