Jan 292016
 

Install rsync in windows

Assalamu’ alaikum wr wb

Rsync digunakan dalam beberapa kasus semisal backup atau syncron data, kalau di linux secara default rsync sudah terinstall nah bagaimana caranya kalo kita menggunakan windows ?

Pada Windows kita bisa menggunakan plugin pihak ke 3 atau program tambahan. Saya mengunakan cwRsync yang dapat di download di websitenya langsung.

Untuk penggunaan rsync sendiri dapat cari dari mbah google.

Berikut link untuk download nya

http://www.rsync.net/resources/binaries/cwRsync_5.4.1_x86_Free.zip

Cara menggunakannya extrack hasil download

Masukkan path ke Environment Variabel, segingga dapat langsung di panggil dalam command promp.

Semoga membantu

Wassalamu’alaikum wr wb

Jan 252016
 

Create MID function in PotsgreSQL

Assalamu’ alaikum wr wb

Kita telah banyak mengenal fungsi – fungsi untuk memecahkan sebuah string, mulai dari left, right, substring. Fungsi yang akan kita buat sekarang terinspirasi dari fungsi yang ada pada microsoft Excel yaitu mid yang digunakan untuk mengambil char dari sebuah string yang lokasinya bisa kita tentukan termasuk juga jumlah char yang akan di ambil.

Pada PostgreSQL belum ada jadi kita akan membuatnya. berikut adalah source nya :


CREATE OR REPLACE FUNCTION mid(kata character varying, mulai integer, panjang integer)
RETURNS character varying AS
$BODY$

BEGIN

RETURN cast ( right(left(kata,mulai-1+panjang) , panjang) as varchar );

END;

$BODY$
LANGUAGE plpgsql VOLATILE
COST 1;
ALTER FUNCTION mid(character varying, integer, integer)
OWNER TO postgres;

Cara penggunaan source diatas cukup dengan memanggilnya dengan cara  sebagai berikut

select mid(‘12345678’,2,2)

Script diatas akan mengambil baris ke 2 dari 12345678 dan mengambil 2 char selanjutnya.

Maka Outputnya adalah sebagai berikut

23

Semoga dapat menambah wawasan teman – teman semua.

Wassalamu’ alaikum wr wb

Jan 222016
 

How To get DataBase Size (PostgreSQL)

Assalamu’alaikum wr wb

Terkadang kita ingin mengecek berapa besarkan ukuran db kita sekarang, berikut adalah script sederhana untuk dapat mengambil ukuran db dengan  mengunakan SQL.


-- Database Size
SELECT pg_size_pretty(pg_database_size('nmdb'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('nmdb.schema.tabel'));

itu dulu bagi – baginya nanti lanjur lagi semoga membantu

Wassalamu’alaikum wr wb

Jan 222016
 

Text Event Focus AngularJs

Assalamu’alaikum wr wb

Setelah beberapa saat tidak menulis artikel dan kemaren sekedar copas dari website lain, kali ini saya akan berbagi tutorial tentang AngularJs, Bagaimana cara membuat directive pada angularjs yang tujuannya saat kita menekan tombol pada keybord akan membuat text langsung berpindah ke text selanjutnya.

Biasanya perintah ini kalau dalam pemrograman visual kita akan menambahkan event onKeyPress pada object textbox, sekarang kita akan membuat sebuah Text Object pada input text.

Berikut adalah source yang dapat kita pakai.

var doeventInput = angular.module('deFocus', []);
doeventInput.directive('deFocus', function () {
 return {
 restrict: 'A',
 link: function(scope, elem, attrs) {
 var frm = angular.element('.form-horizontal');
 elem.bind('keyup', function (e) {
 var atoms = frm.find('input, select');
 toAtom = null;
 for (var i = atoms.length - 1; i >= 0; i--) {
 if (atoms[i] === e.target) {
 //console.log(elem[0].localName);

 if (e.keyCode === 38 && elem[0].localName != 'select') {
 toAtom = atoms[i - 1];
 break;
 /*} else if (e.keyCode === 40 && elem[0].localName != 'select') {
 toAtom = atoms[i + 1];
 break;*/
 } else if (e.keyCode === 13) { //Enter
 toAtom = atoms[i + 1];
 break;
 } /*else if (e.keyCode === 9) { //Tab
 toAtom = atoms[i + 1];
 break;
 }*/
 }
 }

 if (toAtom) toAtom.focus();
 return false;
 
 });
 }
 }
});

Untuk penggunaaannay yang pertama tambahkan source dalam app kamu

var app = angular.module(‘NamaApp’,[‘deFocus’]);

Untuk menggunakan dalam object input text dapat melihat contoh

<input de-focus required type=”text”   ng-model=”model”>

Selamat mencoba

Wassalamu’alaikum wr wb

Jan 202016
 

VBA Code To Unlock A Locked Excel Sheet

Assalamu’alaikum wr wb

Lama tidak menulis jadi agak bingung mau mulai dari mana, baiklah sekedar informasi saja, buat semua teman – teman yang mungkin membutuhkan source untuk unlock sheet excel kamu bisa menggunakan script yang ada di bawah ini

Sub PasswordBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126

ActiveSheet.Unprotect Chr(i) &amp; Chr(j) &amp; Chr(k) &amp; _
Chr(l) &amp; Chr(m) &amp; Chr(i1) &amp; Chr(i2) &amp; Chr(i3) &amp; _
Chr(i4) &amp; Chr(i5) &amp; Chr(i6) &amp; Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " &amp; Chr(i) &amp; Chr(j) &amp; _
Chr(k) &amp; Chr(l) &amp; Chr(m) &amp; Chr(i1) &amp; Chr(i2) &amp; _
Chr(i3) &amp; Chr(i4) &amp; Chr(i5) &amp; Chr(i6) &amp; Chr(n)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) &amp; Chr(j) &amp; _
Chr(k) &amp; Chr(l) &amp; Chr(m) &amp; Chr(i1) &amp; Chr(i2) &amp; _
Chr(i3) &amp; Chr(i4) &amp; Chr(i5) &amp; Chr(i6) &amp; Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub

Source di atas hanya untuk unlock sheet bukan untuk unlock excelnya ya.

Source menggunakan baha VB jadi yang biasa pakai VB pasti paham deh, semoga membantu

Sumber  : http://www.theofficeexperts.com/VBASamples/Excel02.htm

Wassalamu’alaikum wr wb

Apr 302015
 

Multi Application on Codeigniter

Assalamu’ alaikum wr wb

Kabar gembira dari codeigniter versi 3 yang ada versi terdahulu kita agak kerepotan saat ingin membuat aplikasi yang membutuhkan beberapa plikasi didalanya kita harus membuat beberpa sub aplikasi yang mungkin akan membuat kita sedikit repot seperti yang pernah saya bahas Multi app with CodeIgniter. Pada codeigniter versi 3 telah menyediakan kemudahan yaitu dengan memperbolehkan kota untuk mebuat subfolder dalam controller.

contoh

application/controllers/subfolder/Namacontroller.php

maka kita dapat memanggilnya dengan

http://webserver/index.php/subfolder/namacontroller/function

Bagaiaman lebih mudah kan. selamat berexploreasi

sumber : Codeigniter [Organizing Your Controllers into Sub-directories]

Wassalamu’alaikum wr wb

Apr 272015
 

Assalamu’alaikum wr wb

Launching http://t-market.do-event.com

Untuk berterimakasih kepada semua pihak terutama dunia opensource saya membuat sebuah aplikasi yang rencana saya gratiskan dengan sarat dan ketentuan. mohon dukungan dari semua pihak untuk membantu kelancaran aplikasi ini.

Untuk sementara masih saya password sambil menunggu tanggal 16-05-2015. untuk dapat mengakses silakan masuk ke

http://t-market.do-event.com

Jika minat membantu review sampai tanggal 16-05-2015 silakan email saya di mbahsomo[at]do-event[dot].com

Wassalamu’alaikum wr wb

Mar 162015
 

Assalamu’ alaikum wr wb

Tutorial ExtJs 4 Bagian 2 (Load data grid)

Kalo pada tutorial pertama kita membahas tentang bagaimana membuat panel menu (Tutorial ExtJs 4 Bagian 1 (Panel and menu)) , pada tutorial kali ini kita akan belajar bagaimana cara load data pada grid extjs.

Baiklah mari kita mulai, untuk pertama yang kita lakukan adalah membuat view pada halaman html kita. berikut adalah script nya :

</p>
//Grid
Ext.define('AgamaModel', {
 extend: 'Ext.data.Model',
 fields: [
 {name: 'a_code', type: 'string'},
 {name: 'a_name', type: 'string'},
 {name :'a_status', type: 'integer'},
 {name :'user_entry', type : 'string'},
 {name :'date_entry',type :'string'},
 {name :'date_edit',type :'string'}
 ]
});
//Define the store below, providing it the Model and the URL of PHP file

var storeAgama = Ext.create('Ext.data.Store', {
 pageSize: 50,
 model: 'AgamaModel',
 proxy: {
 type: 'ajax',
 url : '<?php echo site_url('agama/getdata'); ; ?>',
 reader: {
 type: 'json',
 totalProperty: 'jumlah',
 root: 'data'
 },
 extraParams:{
 action:'pagingTestGrid'
 }
 },
 autoLoad: true
});

function setAktif(v){
 if (v==1){
 return 'Aktif';
 }else if(v==0){
 return 'Tidak Aktif';
 }else{
 return 'NA';
 }
}

var smAgama = Ext.create('Ext.selection.CheckboxModel');

var gridAgama = Ext.create('Ext.grid.Panel', {
 store: storeAgama,
 frame : true,
 //layout : 'fit',
 //autoheight: true,
 selModel : smAgama,
 verticalScrollerType: 'paginggridscroller',
 loadMask: true,
 //disableSelection: true,
 invalidateScrollerOnRefresh: false,

columns: [
 {
 text : 'ID',
 width: 50,
 dataIndex: 'a_code',
 field: {
 type: 'textfield',
 allowBlank: false
 },
 filter: {
 xtype: 'textfield',
 filterName: 'a_code'
 }
 },
 {
 text : 'Nama',
 sortable : true,
 width : 100,
 flex: 1,
 dataIndex: 'a_name',
 field: {
 type: 'textfield',
 allowBlank: false
 },
 filter: {
 xtype: 'textfield',
 filterName: 'a_name'
 }
 },{
 text : 'Status',
 sortable : true,
 width : 100,
 dataIndex: 'a_status',
 renderer : setAktif,
 field: {
 type: 'textfield',
 allowBlank: false
 },
 filter: {
 xtype: "combo",
 mode: "local",
 store: [['','All'],["0","Tidak Aktif"],["1","Aktif"]],
 triggerAction: "all",
 fieldName : 'a_status'
 }

 },{
 text : 'User Entry',
 sortable : true,
 width : 100,
 dataIndex: 'user_entry',
 field: {
 type: 'textfield',
 allowBlank: false
 },
 filter: {
 xtype: 'textfield',
 filterName: 'user_entry'
 }
 },{
 header : 'Date Entry',
 renderer : formatDate,
 sortable : true,
 width : 300,
 dataIndex: 'date_entry',
 field: {
 type: 'date',
 allowBlank: false
 },
 filter: [
 {
 xtype: 'datefield',
 filterName: 'date_entry'
 }
 ]
 },{
 header : 'Date Edit',
 sortable : true,
 renderer : formatDate,
 width : 300,
 dataIndex: 'date_edit',
 field: {
 type: 'date',
 allowBlank: false
 },
 filter: {
 xtype: 'datefield',
 filterName: 'date_edit'
 }
 }
 ],
 tbar: [
 {
 text: 'Tambah',
 //cls : 'button',
 iconCls: 'new_kecil',
 handler: function(btn, e) {
 e.preventDefault();
 frmAgama.getForm().reset();
 frmAgama.getForm().findField('a_code').setDisabled(false);
 winAgama.show();
 }
 }, {
 text: 'Edit',
 iconCls: 'edit_kecil',
 handler: function() {
 var s = gridAgama.getSelectionModel().getSelection()[0];
 frmAgama.getForm().loadRecord(s);
 frmAgama.getForm().findField('a_code').setDisabled(true);
 winAgama.show();
 }
 }, {
 text: 'Hapus',
 iconCls: 'tombolHapusKecil',
 handler: function() {
 Ext.MessageBox.confirm('Message', 'Apakah anda ingin menghapus data ini?', deleteAgama);
 }
 }
 , {
 text: 'Cetak',
 iconCls: 'print_kecil',
 id: 'btnPrint',
 handler: function() {
 new Ext.Window({
 title : 'Print Preview',
 frame : false,
 width: 700,
 height: 600,
 modal: true,
 y : 10,
 html:'<div align="center"><img src="/assets/images/loading-blue.gif" style="padding-right:10px;padding-left:6px;"/></div>' ,
 items: {
 xtype: 'component',
 autoEl: {
 tag: 'iframe',
 waitMsg : 'Loading ...',
 style: 'height: 100%; width: 100%; border: none',
 src: "<?php echo site_url('agama/exportpdf'); ?>"
 }
 }
 }).show();
 }
 },'-',
 {
 xtype: 'button',
 text: 'Reset Filters',
 iconCls :'icon-reset',
 handler: function(){
 gridAgama.resetHeaderFilters();
 }
 },
 {
 xtype: 'button',
 text: 'Clear Filters',
 iconCls :'icon-clear',
 handler: function(){
 gridAgama.clearHeaderFilters();
 }
 },
 {
 xtype: 'button',
 text: 'Apply Filters',
 iconCls :'icon-filter',
 handler: function(){
 gridAgama.applyHeaderFilters();
 }
 },
 '->','Export Data :','-',{
 iconCls :'pdf'
 ,text : 'pdf'
 ,tooltip : 'Export data ke pdf'
 ,handler : function() {
 window.open('<?php echo site_url('agama/exportpdf'); ?>', 'Report','width=600,height=500,toolbar=yes,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
 }
 },{
 iconCls : 'xls'
 ,text : 'xls'
 ,tooltip : 'Export data ke Excel'
 ,handler : function() {
 window.open('<?php echo site_url('agama/exportxls'); ?>', 'Report','width=600,height=500,toolbar=yes,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
 }
 },{
 iconCls : 'doc'
 ,text : 'doc'
 ,tooltip : 'Export data ke MS Word'
 ,toolsTip : 'Word'
 ,handler : function() {
 window.open('<?php echo site_url('agama/exportdoc'); ?>', 'Report','width=600,height=500,toolbar=yes,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
 }
 }
 ],
 bbar: Ext.create('Ext.PagingToolbar', {
 pageSize : 50
 ,store : storeAgama
 ,displayInfo: true
 ,displayMsg : 'Data yang ada {0} - {1} Dari {2}'
 ,emptyMsg : "Tidak ada data"
 }),
 plugins: [
 Ext.create('Ext.ux.grid.GridHeaderFilters'),
 Ext.create('Ext.grid.plugin.RowEditing', {
 clicksToMoveEditor: 1,
 autoCancel: true
 })
 ],
 headerFilters: {}
});
<p style="text-align: justify;">

Wassalamu’alaikum wr wb

Mar 162015
 

DNS_PROBE_FINISHED_NO_INTERNET

Assalamu’alaikum wr wb.

Beberapa hari yang lalu ada seorang teman menelpon saya mau minta bantuan karena laptopnya tidak bisa konek dengan wifi.

Setelah saya check laptop saat dia sudah sampai rumah. Status wifi konek tapi tidak bisa browsing (Menggunaan IE). Saya check IP tidak masalah coba ganti pake ip static juga tetap tidak bisa. Saya curiga apakah terkena virus atau mungkin adamasalah lain.

Saya coba pake lan tidak menggunakan wifi tetapi hasilnya tetap sama tidak bisa konek internet. Jangankan konek ping ke IP AP saja tidak bisa, semakin curiga saja dengan kemungkinan adanya virus. Oke cek sekali lagi saja dengan browser lain sekarang saya coba install google chrome dari flaskdisk, setelah install ternyata hasil juga sama tetap tidak bisa konek internet. Saya coba klik di detail error permasalahannya apa ternyata di situ saya menemukan error seperti ini :

Error : DNS_PROBE_FINISHED_NO_INTERNET

Berikut adalah solusi yang mungkin bisa anda praktekkan.

  1. Buka cmd
  2. Ketikkan netsh winsock reset .
  3. Lalu restart komputer.
  4. Selamat mencoba

Sumber : http://en.kioskea.net/forum/affich-770260-dns-probe-finished-no-internet
Wassalamu’alaikum wr wb