The Way Of Life
Google

Thursday, June 25, 2015

ASCII to Entities


Kali ini saya ingin berbagi pengalaman ringan tentang karakter ASCII yang bermasalah pada saat digunakan di aplikasi web. Belum lama ini mendapat pesanan aplikasi desktop dan web yang mengakses satu database yaitu Microsoft SQL Server. Pesanan awal adalah aplikasi desktop yang dibuat dengan Visual Basic 6, kemudian ada permintaan dibuatkan aplikasi web juga. Akhirnya kami buat menggunakan PHP dengan CodeIgniter Framework yang ditanam di Web Server Linux Ubuntu 12.04. Koneksi PHP ke database Ms SQL Server 2000 menggunakan FreeTDS. Pada saat development menggunakan OS Windows 7 semua berjalan lancar tanpa ada masalah, tetapi ketika diupload ke web server Linux Ubuntu muncul masalah pada saat saat menampilkan data, setelah kami trace menggunakan firebug di Firefox muncul error pada json_encode, seperti di bawah ini.



A PHP Error was encountered

Severity: Warning

Message: json_encode(): Invalid UTF-8 sequence in argument

Filename: controllers/trskegiatan.php

Line Number: 90





Hal itu terjadi karena pada salah satu record yang tampil yaitu  terdapat karakter ASCII yang jika muncul di web berupa  \r\n yang menyebabkan error pada argument json_encode. Biasanya data tersebut import dari data Excel dan sejenisnya sehingga kurang "bersih". Setelah googling dan berjibaku selama dua hari akhirnya muncul beberapa solusi. Seperti setting FreeTDS ditambah client charset = UTF-8 dan sebagainya ternyata kurang manjur, akhirnya "resep" yang manjur adalah menggunakan fungsi Framework CodeIgniter yaitu :

ascii_to_entities()

Converts ASCII values to character entities, including high ASCII and MS Word characters that can cause problems when used in a web page, so that they can be shown consistently regardless of browser settings or stored reliably in a database. There is some dependence on your server's supported character sets, so it may not be 100% reliable in all cases, but for the most part it should correctly identify characters outside the normal range (like accented characters). Example:

$string = ascii_to_entities($string);


Dengan fungsi tersebut maka semua karakter ASCII pada data yang bisa menyebabkan masalah di browser langsung dikonversi.
Semoga artikel ini bisa membantu rekan -rekan.
 
tools:
Sencha ExtJS
Microsoft SQL Server 2000
Visual Basic 6
Linux Ubuntu 12.04
FreeTDS
CodeIgniter PHP Framework

Labels: , , , ,

Tuesday, June 02, 2015

Leader Creates Leaders

Hendry Santriago merupakan salah satu orang Indonesia yang dipercaya untuk memimpin GE di Indonesia. Pada salah satu kesempatan dia pernah mengatakan bahwa GE adalah perusahaan  yang unik karena bisa bertahan selama 123 tahun pada saat tulisan ini dibuat ( GE berdiri sejak 1892 ). Bagaimana sebuah perusahaan bisa bertahan begitu lama? Salah satu alasannya adalah kultur di GE yaitu pemimpin menciptakan pemimpin baru. Pemimpin di sini tidak selalu anak dari pemilik perusahaan tetapi juga orang luar yang mampu untuk memimpin GE. Tidak ada yang salah jika sebuah perusahaan dilanjutkan kepemimpinannya oleh anak, cucu atau saudara dari pemilik perusahaan tersebut. Akan tetapi jika memang anak, cucu atau saudara tersebut tidak mampu maka bisa dibuka kesempatan oleh orang luar yang lebih mampu.

Oei Tiong Ham salah satu pengusaha di Indonesia yang terkenal dengan julukan "Raja Gula dari Semarang" pada era awal abad 19, puncak kejayaan bisnis berada di periode 1920-an. Untuk pemikiran di era-nya Oei Tiong Ham sudah "open mind" karena dia hanya memilih anaknya yang memang berbakat untuk melanjutkan bisnisnya ( dia mempunyai 26 anak dari 8 istri ). Karena hal inilah juga dia pindah ke Singapura karena keputusannya bertentangan dengan salah satu  hukum Belanda saat itu, yaitu hukum waris. Hukum waris Belanda mengharuskan Oei Tiong Ham membagi rata warisannya kepada semua anak dan itu tidak dilakukan oleh Oei Tiong Ham. Meskipun demikian akhirnya kerajaan bisnis Oei Tiong Ham runtuh pada tahun 1964 karena kondisi politik Indonesia saat itu.

Sepeninggal Steve Jobs, banyak orang bertanya tanya mengenai kelangsungan Apple tanpa Steve Jobs. Dapatkah Apple bertahan dengan gempuran dari kompetitor? Dapatkan Tim Cook dan team Apple menciptakan produk yang unik dan inovatif seperti Apple dahulu. Dan sekarang kita bisa lihat Apple masih mempunyai taring, karena Steve Jobs atau Apple berhasil menciptakan pemimpin baru sehingga Apple masih bisa berjaya.
Sangat penting sebuah perusahaan untuk meng-create New Leader demi kelangsungan hidup perusahaan.

Labels: ,

Monday, April 13, 2015

Automatic Vehicle Counter Software


Saat ini masih jarang pengembang software di Indonesia yang mengembangkan software atau aplikasi untuk menghitung kendaraan yang lewat di jalan raya secara otomatis. Di beberapa lokasi, dinas perhubungan masih menugaskan anggota-nya untuk menghitung kendaraan secara manual. Hal ini tentu saja sangat melelahkan dan butuh konsentrasi tinggi.

Beberapa artikel tentang penghitungan kendaraan secara manual:

Hitung Volume Pemudik
Menghitung Volume kendaraan di Jl MH Thamrin
Kisah Edi Warsito menghitung kendaraan secara Manual
Counter : Alat penghitung kendaraan

Padahal di negara - negara maju sudah menggunakan software yang canggih. Dan ternyata orang kita pun tidak kalah canggih karena team kami sudah bisa membuat software untuk menghitung jumlah kendaraan secara otomatis, dan juga dapat memilah tipe-nya.


Pesawat Sukhoi S-35S radarnya mempunyai kemampuan  mengunci 30 sasaran sekaligus dan menyerang 8 diantaranya secara simultan.


Software yang kami kembangkan juga mempunyai kemampuan "mengunci" banyak obyek kendaraan sekaligus, kami sedang mencoba 3 algoritma yang nantinya akan kami pilih yang paling akurat dan stabil. Kondisi lalu lintas di Indonesia tidaklah serapi di luar negeri, jika anda melihat contoh software yang sama di YouTube, terlihat aliran lalu lintas yang rapi. Sedangkan pada video yang anda bisa lihat di bawah, terlihat barisan "bebek" (baca: motor bebek) yang melawan arah, meskipun aplikasi kami tetap bisa "mengunci" object tersebut. Kami akan terus menyempurnakan software yang kami buat menjadi lebih sempurna secara bertahap sesuai kondisi nyata di lapangan.

Kedepan kami akan mengembangkan menjadi suatu sistem yang terintegrasi seperti konsep kota pintar ( smart city ). Yaitu software untuk mengenali plat nomor mobil yang lewat, sehingga pihak kepolisian dapat dengan cepat mendeteksi keberadaan suatu mobil, tentu saja ini harus menggunakan kamera resolusi tinggi yang tersebar di seluruh kota dan database terintegrasi. Untuk perkembangan software ini akan kami ulas secara bertahap di artkel ini.

13.04.2015
Automatic Vehicle Counter Beta Version
This software is used to calculate the number of vehicles on the road automatically and automatically makes the classification of vehicles . We will also create integrated applications , such as automatic vehicle license plate recognition system that will allow the police to search for the missing car . For progress development of this software will we update on this blog.
 



  • Camera and Video Source.
  • Available for Single Direction Traffic and Double Direction Traffic.
  • Horizontal and Vertical angle.
  • Realtime Graphic Counter.

gambar diambil dari sini

contact : budy_wijaya@yahoo.com

Labels: ,

Tuesday, March 24, 2015

Software Kesehatan berbasis Cloud


F-22 Raptor merupakan pesawat tempur generasi ke-5 yang merupakan generasi tercanggih. Dengan berbagai kelebihan antara lain kemampuan siluman / menghilang dari radar, kecepatan dan kemampuan manuver lebih baik,jangkauan radar yang lebih jauh, dan integrasi pesenjataan dan sensor yang lebih baik. Pesawat generasi kelima biasanya mempunyai cat lapisan anti radar / stealth coating dan missile bay yang berada di bawah badan pesawat untuk mengurangi dari tangkapan radar musuh. F-22 Raptor tentu saja bukan musuh pesawat generasi ke -4 seperti F-16 atau MIG-29 karena secara teknologi sudah jauh berbeda. Dan sekarang semua pabrikan pesawat di dunia berlomba – lomba membuat pesawat generasi ke-5, dari China dengan J-20, dari Rusia dengan T-50


Terinspirasi dari teknologi mesin pesawat seorang inventor bernama James Dyson menciptakan Bladeless Fan, yaitu kipas angin tanpa bilah yang merupakan kipas angin generasi terkini. Dengan bentuk yang “aneh”, kipas Dyson merupakan lompatan dari teknologi kipas konvensional. Selain gampang dibersihkan, aliran angin yang stabil juga menghasilkan tingkat kebisingan yang lebih rendah.

Jika pesawat tempur sudah mencapai generasi ke -5 maka aplikasi komputer sekarang sudah masuk ke generasi berikutnya yaitu aplikasi berbasis cloud. Di awali dengan aplikasi komputer dengan database stand alone, kemudian aplikasi berbasis client server dan terakhir aplikasi berbasis cloud. Era cloud sudah dimulai oleh semua pabrikan besar antara lain Microsoft dengan Azure-nya, kemudian SAP sedang SAP HANA, kemudian IBM, dan masih banyak lagi. Ketika koneksi internet sudah semakin mudah dan murah, penyerapan aplikasi cloud juga turut berkembang. Salah satunya adalah aplikasi kesehatan untuk klinik, puskesmas, rumah sakit (SIMRS) atau bahkan untuk praktek dokter. 

Di Indonesia khususnya pengembang aplikasi kesehatan berbasis cloud masih belum banyak masih didominasi oleh pengembang aplikasi desktop. Aplikasi cloud biasanya dibangun dengan menggunakan bahasa pemrograman web sehingga bisa berjalan hanya menggunakan browser, sehingga secara otomatis aplikasi cloud menjadi multiplatform ( bisa berjalan di banyak sistem operasi ex: Windows, Linux, Macintosh). Aplikasi cloud menggunakan sumber daya yang kecil disisi client karena menggunakan browser saja. Aplikasi cloud menggunakan server yang terletak di gedung data center serta hardware yang mendukung. Salah satu kekurangan aplikasi cloud dibanding desktop adalah masalah user interface yang kurang interaktif dibanding aplikasi desktop. Hal inilah yang akhir – akhir dikembangkan oleh vendor terkemuka yaitu user interface yang lebih interaktif mendekati aplikasi desktop. Kemudian karena semua data ada di data center, otomatis tingkat security lebih terjaga dan penambahan fasilitas hardware akan menjadi tanggungjawab penyedia layanan cloud

Hal inilah yang menjadikan aplikasi kesehatan berbasis cloud menjadi lebih simple dan powerfull. Dengan database terpusat juga menjadikan data bisa diakses menggunakan berbagai macam perangkat,antara lain PC, Laptop, Smartphone, Tablet dan lainnya. Salah satu kekhawatiran customer adalah tingkat keamanan aplikasi cloud. Dengan server yang berada di data center secara otomatis dari segi tempat lebih terjamin, gedung yang dijaga dan didesain khusus serta otomatis backup data ke berbagai data center. Sehingga jika data center pertama terkena musibah maka masih ada data center cadangan yang menyimpan data customer. Hal ini lebih aman dari server yang disimpan di masing masing lokasi. Kemudian untuk keamanan dari tangan hacker, aplikasi cloud dibangun dengan teknologi yang sama yang digunakan internet banking, antara lain SSL (Secure Socket Layer), Enkripsi Data, Virtual Private Network, Firewall yang menjamin keamanan data customer. Dan teknologi keamanan ini semakin ditingkatkan dari waktu ke waktu. 

Aplikasi Cloud memang harus dilengkapi dengan keamanan yang handal. Jika anda tidak nyaman data tersimpan di cloud , bagaimana dengan internet banking ( Bank Mandiri Internet Banking, Bank Central Asia Internet Banking ), bukankah selama ini anda telah menggunakannya? Jadi masalah keamanan data adalah bagaimana penyedia layanan cloud memberikan proteksi yang cukup kepada data customer. Jika masih berkutat di aplikasi client server berbasis LAN ( Local Area Network ) yang menurut anda lebih nyaman. Jaringan Internet adalah jaringan LAN dalam skala yang lebih besar yaitu seluruh dunia. Jadi pada dasarnya sama saja hanya skalanya lebih luas. Dengan berbasis cloud, data bisa diakses menggunakan gadget seperti iPhone, iPad dan sejenisnya dari belahan dunia manapun selama ada koneksi internet. Aplikasi berbasis cloud merupakan aplikasi masih membutuhkan edukasi di sisi customer.

Kelebihan aplikasi cloud antara lain :
  1. Tidak memerlukan instalasi karena aplikasi langsung diakses melalui browser.
  2. Update aplikasi cukup di  server bukan di tiap lokasi client.
  3. Mudah dikembangkan ke aplikasi mobile karena data terpusat di data center yang terhubung melalui internet.
  4. Tidak perlu membangun infrastruktur, cukup dengan koneksi internet anda sudah bisa mengakses aplikasi cloud.
  5. Meminimalkan lisensi untuk penambahan software baru.
  6. Lebih mudah memelihara sistem karena semua sudah dihandle oleh penyedia layanan cloud.
Kekurangan aplikasi cloud adalah diharuskannya koneksi internet, tapi jika kita melihat dari tahun ke tahun koneksi internet semakin mudah dan murah, di masa depan koneksi internet seperti listrik yang selalu tersedia.

GE Healthcare telah menggembangkan aplikasi kesehatan berbasis cloud yaitu Centricity 360 yang berfungsi untuk sharing informasi antar group dokter untuk menanggani pasien. Misal sharing data foto rontgen menggunakan standart DICOM ( Digital Imaging and Communications In Medicine) dan masih bannyak lagi. 


IBM mengembangkan Watson, yaitu sebuah paket aplikasi yang berisi kecerdasan buatan dan super komputer untuk mengenali bahasa manusia yang dihubungkan dengan database pengetahuan super besar untuk menjawab pertanyaan dengan cepat.


IBM Watson memenangkan kuis Jeopardy (kuis tanya jawab kompleks mengenai berbagai bidang pengetahuan) mengalahkan sang juara bertahan. Saat ini IBM Watson juga dikembangkan mempercepat riset penyembuhan penyakit dan penemuan obat dengan dibantu database raksasa mengenai berbagai riset ilmiah. IBM Watson API sekarang bisa digunakan developer aplikasi cloud untuk ditempelkan pada aplikasi yang mereka buat. 

Dari Canada pengembang software JANE SOFTWARE mengembakang software klinik berbasis cloud dengan tampilan yang cukup menarik. JANE dapat diakses melalui PC, Laptop, iPad maupun iPhone dan Android. Beberapa fiturnya antara lain, pembuatan jadwal kontrol untuk pasien, upload image, billing system dan masih banyak lagi. 

Dari Miami ada CareCloud yang juga mengembangkan software klinik berbasis cloud untuk berbagai tingkatan level klinik. Dengan tampilan yang cukup menarik dan dibangun dari bahasa pemrograman open source seperti Ruby on Rails, PHP,MySQL dan sebagainya. 

Dari Indonesia khususnya, setelah saya mencari ada beberapa pengembang software yang mengembangkan software berbasis cloud untuk dokter praktek dan klinik, salah satunya yaitu iDoctor dan iClinic. Software tersebut mempunyai tampilan yang cukup halus untuk sebuah software berbasis cloud.

related links:

SIMRS on Cloud Computing

Labels: , ,

Tuesday, March 10, 2015

Menghilangkan Jamur di Lemari Pakaian

 Jamur di Lemari Pakaian

Musim penghujan di satu sisi menjadikan udara di dalam rumah menjadi lembab. Salah satunya tentu udara yang ada di dalam lemari pakaian kita. Kadang meskipun kita sudah menggunakan kapur barus / kamper atau produk penyedot udara lembab / dehumidifier , jamur masih tumbuh subur di luar ataupun di dalam lemari. Salah satu cara ampuh menghilangkan jamur di lemari pakaian selain dengan mencegahnya adalah dengan cairan karbol.


Caranya isi ember dengan air secukupnya kemudian campurkan cairan karbol, lalu masukan kain pel yang bersih atau kain bekas apa saja yang masih bersih. Lalu peras sampai air tidak menetes, kemudian lap bagian lemari yang ditumbuhi jamur sampai bersih.
Dijamin untuk waktu yang cukup lama jamur tidak akan tumbuh lagi di lemari kita, asal kita menjaga kelembaban udara di lemari kita agar selalu kering.
Semoga bermanfaat.

Labels: ,

Tuesday, February 10, 2015

Power in the economy of code

 
Salah satu sub bab dalam buku jQuery in Action terbitan Manning, karya Bear Bibeault dan Yehuda Katz, mempunyai sub bab Power in the economy of code. Dimana framework jQuery menjadikan kita menulis kode jauh lebih irit / ekonomis.
Contoh di dalam buku tersebut yaitu, dari kode yang panjang seperti di bawah ini;

var checkedValue;
var elements = document.getElementsByTagName('input');
  for (var n = 0; n < elements.length; n++) {
   if (elements[n].type == 'radio' &&
       elements[n].name == 'someRadioGroup' &&
       elements[n].checked) {
     checkedValue = elements[n].value;
   }  
  }
menjadi kode jQuery yang singkat seperti di bawah ini:
var checkedValue = $('[name="someRadioGroup"]:checked').val();
Hal ini juga terjadi ketika saya dan rekan mulai belajar salah satu framework javascript yaitu ExtJS dari Sencha. ExtJS dibuat sebagai framework yang mempunyai banyak sekali object sehingga mirip sekali dengan aplikasi desktop. Dalam rangka proyek konversi dari aplikasi desktop ke web, otomatis kami mencari persamaan object di ExtJS. Salah satu object tersebut adalah form searching / pencarian. Setelah cukup lama browsing akhirnya kami menemukan caranya, yaitu di web mbahsomo. Awalnya kami tidak percaya dengan kode yang ditampilkan di web tersebut, form searching merupakan form yang cukup "kompleks" di aplikasi web, tapi mbahsomo hanya menampilkan kode yang kami rasa sangat singkat. Setelah kami pelajari ternyata benar, form tersebut bisa ditampilkan hanya dengan kode yang minimalis dan ekonomis, berkat framework ExtJS.
Sama juga seperti framework yang lain, fungsinya adalah mempersingkat pekerjaan, dan satu lagi yaitu standarisasi. Jika kita bekerja dalam team harus ada standarisasi, sehingga selain kode menjadi rapi juga gampang dipahami orang team yang lain.

Berikut tampilan form searching a la mbahsomo:


dan dibawah ini adalah form searching yang kami kembangkan dari form mbahsomo


related links:
Combo Multi Column with Grid
Framework Or Not Framework

Labels: , , ,

Sunday, February 08, 2015

Visual Basic with Ms Excel as Database

Belum lama ini, saya seorang rekan meminta bantuan dibuatkan sebuah program kecil, yaitu progam untuk membuat cetakan invoice dari file excel. Awalnya saya ingin membuatkan program kecil yang paten menggunakan Visual Basic dan MySQL sebagai database. Tetapi karena keterbatasan waktu saya memutuskan untuk memakai VBA, agar embedded langsung dengan file excel. Tiba - tiba punya ide untuk membuat program dari Visual Basic tetapi menggunakan file Excel ( .xls atau .xlsx ) sebagai database. Setelah browsing kesana kemari akhirnya menemukan caranya, berikut dasar - dasar pemrograman Visual Basic dengan Microsoft Excel.

Pertama yaitu membuat Connection String, yaitu menggunakan provider Jet OLEDB 4.0, pada Visual Basic - References ,saya menggunakan Microsoft ActiveX Data Object 2.6, berikut syntax connection string.


  
    Set Conn = New ADODB.Connection
    With Conn 
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=" & App.Path &; _
         "\file.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"""
        .CursorLocation = adUseClient
        .Open
    End With 
Option HDR = Yes, artinya pada kolom pertama pada worsheet yang dipilih akan menjadi nama field / header.Kemudian Option IMEX=1 yaitu menerima data dari kolom excel dengan berbagai tipe data. Perlu diingat bahwa column di Excel berbeda dengan field pada table di file database dimana 1 field hanya mempunyai 1 tipe data, sedangkan di file excel bisa banyak tipe.
Kemudian untuk penggunakan Query / SQL standart, hanya perlu diingat pengganti table pada Excel adalah worksheet, contoh syntax penggunaan SQL ada di bawah ini :


 
    strquery = "SELECT * FROM [Sheet1$B1:B1124] WHERE COMPONENTS LIKE '%PANEL%'"
    oRS.Open strquery, oConn, adOpenDynamic, adLockReadOnly
    If Not oRS.BOF Then
        Do While Not oRS.EOF
        
        If Trim(oRS.Fields(0).Value) <> "" Then
            List2.AddItem vbTab & oRS.Fields(0).Value
        End If
        
        oRS.MoveNext
        Loop
    End If
    oRS.Close

Pada syntax SQL di atas, table digantikan dengan range baris data yaitu dari baris B1 s/d B1124, kemudian field COMPONENTS adalah salah satu kolom pada file Excel yang akan dicari datanya. Jika anda mendapatkan Error "No value given for one or more required parameters", maka kemungkinan adalah kolom / field yang anda cari setelah syntax WHERE, itu tidak termasuk dalam baris data setelah syntax FROM, jadi disini anda perlu lebih teliti.
Kemudian untuk membuat query dengan banyak nilai kosong / null, bisa menggunakan sintak seperti dibawah ini:
 
    sSQL = " SELECT [CODE], " _
           " IIF([COMPONENTS] is null, ' ', [COMPONENTS]) AS [COMPONENTS], " _
           " FROM [Sheet1$A1:L1124] " _
           " WHERE CODE = '" & Code_Components & "'"
    oRs.Open sSQL, oConn, adOpenStatic
    If Not oRs.BOF Then
        'statement
    End If
    oRs.close
Awalnya saya ingin membuat file Excel tersebut untuk  menyimpan data Invoice, tapi hal itu membuat file Excel menjadi bengkak ukuran-nya. Akhirnya saya memutuskan program ini hanya sebagai mesin pencetak invoice saja, sesuai dengan permintaan teman saya, jadi tidak menyimpan hasil transaksi invoice. Semoga Bermanfaat bagi rekan - rekan.

tools :
Microsoft Visual Basic 6.0
Microsoft Excel 2007

Labels: , , , ,