Senin, 09 Desember 2013

Convert time.struct_time to datetime in Python

>>> structTime = time.localtime()
>>> datetime.datetime(*structTime[:6])
datetime.datetime(2009, 11, 8, 20, 32, 35)

Tips for Python


  1. Use [Ctrl+Alt+Enter] to configure interactive console in Eclipse-PyDev (Console for currently active editor)
  2. Use print('x',...) to print without newline concate with list
    print('x', os.listdir(self.right))
    
  3. Enable PyDev Interactive Console while Debugging Session
    To enable, go to Window | Preferences | PyDev | Interactive Console and check 'Connect console to Debug Session?
  4. If you get an error message like this
    Assignment to reserved built-in symbos: abs
    , then then you can add comments
    # @ReservedAssignment
     at the end of the line so that it is no longer regarded as an error
  5. ...

Get Modification Time of File in Python

'''
Created on Dec 9, 2013

@author: BalonCoding
'''
import os
  
fileName = 'c:\\fm\\fmb\\MTR00035.fmb'
#using os.stat.st_mtime
st=os.stat(fileName)    
mtime=st.st_mtime
print("mtime (using os.stat.st_mtime) = " + str(mtime))
#mtime (using os.stat.st_mtime) = 1141933677.28125

#using os.path.getmtime
print("mtime (using os.path.getmtime) = " + str(os.path.getmtime(fileName)))
#mtime (using os.path.getmtime) = 1141933677.28125


############################################################################################
import datetime

#using datetime.datetime
print("mtime (using datetime.datetime) = {}".format(datetime.datetime.fromtimestamp(mtime)))
#mtime (using datetime.datetime) = 2006-03-10 02:47:57.281250


############################################################################################
import stat, time
print("mtime (using time.ctime ) = {}".format(time.ctime(st[stat.ST_MTIME])))
#mtime (using time.ctime ) = Fri Mar 10 02:47:57 2006

Jumat, 29 November 2013

Disconnect and Map Network Drive on Windows with Python

I'm using Python version 3.3.2
  1. method using subprocess.Popen

  2. # Balon Coding, 29 November 2013
    # Map network drive using subprocess.Popen
    # Drive letter: Q
    # Shared drive path: \\192.168.51.1\balon$
    # Username: balon
    # Password: coding
    
    import subprocess 
    
    # initialize
    driveLetter = 'Q:' 
    networkPath = '\\\\192.168.51.1\balon$' 
    user = 'balon' 
    password = 'coding'
    
    print('map network drive using subprocess.Popen')
    
    # Disconnect anything on drive letter Q
    winCMD = 'NET USE ' + driveLetter + ' /delete'
    print(winCMD)
    subprocess.Popen(winCMD, stdout=subprocess.PIPE, shell=True)
     
    # Connect to map network drive to letter Q
    winCMD = 'NET USE ' + driveLetter + ' ' + networkPath + ' /User:' + user + ' ' + password
    print(winCMD)
    subprocess.Popen(winCMD, stdout=subprocess.PIPE, shell=True)
    

  3. method using subprocess.call
  4. # Balon Coding, 29 November 2013
    # Map network drive using subprocess.call
    # Drive letter: Q
    # Shared drive path: \\192.168.51.1\balon$
    # Username: balon
    # Password: coding
    
    import subprocess 
    
    # initialize
    driveLetter = 'Q:' 
    networkPath = '\\\\192.168.51.1\balon$' 
    user = 'balon' 
    password = 'coding'
    
    print('map network drive using subprocess.call')
    
    # Disconnect anything on drive letter Q
    winCMD = 'NET USE ' + driveLetter + ' /delete'
    print(winCMD)
    subprocess.call(winCMD, shell=True)
    
    # Connect to map network drive to letter Q
    winCMD = 'NET USE ' + driveLetter + ' ' + networkPath + ' /User:' + user + ' ' + password
    print(winCMD)
    subprocess.call(winCMD, shell=True)
    

Kamis, 28 November 2013

List Available Drive Letters In Python

I'm using Python version 3.3.2
import string
from ctypes import windll

def get_drives():
    drives = []
    bitmask = windll.kernel32.GetLogicalDrives()
    for letter in string.ascii_uppercase:
        if bitmask & 1:
            drives.append(letter)
        bitmask >>= 1

    return drives

if __name__ == '__main__':
    print (get_drives())     # On my PC, this prints ['C', 'D', 'W', 'X', 'Y', 'Z']

Minggu, 17 November 2013

Print 'Hello World' di Python

Pertama kali belajar di Python sudah menghadapi tantangan pertama, yakni hanya untuk memunculkan "Hello World".
>>> print "Hello World!"
     File "", line 1
       print "Hello World!"
                                 ^
SyntaxError: invalid syntax
>>>

Ternyata setelah gugel, ada yang menyatakan ini merupakan syntax yang berlaku di Python 2.x, sementara yang BalonCoding gunakan adalah Python 3.3 yang sudah menggunakan syntax print (). Sehingga untuk menjalankan print "Hello World", maka lakukan seperti berikut ini,
text = "Hello World!"
print (text)

Jumat, 01 November 2013

Starting emulator for AVD - Failed to allocate memory: 8

The solution is edit file config.ini [C:\Users\acer\.android\avd\.avd\ 

from

hw.ramSize=1024

to 

hw.ramSize=1024MB

First Android Tutorial Project Error

I got error messages like this on DisplayMessageActivity.java
Error:(17, 6) Gradle: error: cannot find symbol class SuppressLint
Error:(37, 9) Gradle: error: cannot find symbol class Intent
Error:(41, 9) Gradle: error: cannot find symbol class TextView
Error:(41, 33) Gradle: error: cannot find symbol class TextView
import android.annotation.SuppressLint;
import android.content.Intent;
import android.widget.TextView;

Kamis, 10 Oktober 2013

Copy File Dari Linux ke Windows Menggunakan SCP

Untuk melakukan copy file dari windows ke linux, BalonCoding menggunakan WinSCP.

Untuk copy file dari komputer linux ke linux lainnya, BalCod menggunakan scp seperti postingan terdahulu "Copy File Antar Server di Linux".

Sedangkan hari ini, BalCod mencoba melakukan copy file dari linux ke windows menggunakan perintah scp juga. Namun di windows, BalCod install terlebih dahulu freeSSHd.exe ke komputer windows. Namun karena timbul error setiap kali mengisi password,
exec request failed on channel 0
lost connection

Percobaan selanjutnya, adalah menggunakan cygwin. Penggunaan Cygwin belum berhasil membuat service ssh di windows dan akan dilanjutkan di kemudian hari. Saat ini terpaksa BalCod, memang masih menggunakan cygwin, namun untuk mengambil file (tujuan awal dari komputer linux copy ke windows yang ada service ssh).

Jadi di cygwin terminal, BalCod menjalankan perintah
scp -P 22 root@192.168.51.210:/var/lib/vz/dump/vzdump-qemu-106-2013_10_11-11_15_45.vma.lzo /home



Rabu, 09 Oktober 2013

Copy File Antar Server di Linux

BalonCoding hendak melakukan copy file antar server di Linux Centos, misalnya dari komputer 192.168.51.238 ke komputer 192.168.51.237. Caranya sangat sederhana dengan menggunakan "scp".

scp -P1234 jdk-7u25-linux-x64.rpm oracle@192.168.51.237:/u01/app/oracle/software

Untuk copy seluruh isi folder / direktori hanya penambahan opsi -r, contohnya
scp -rP1234 FormsReports oracle@192.168.51.237:/u01/app/oracle/software

Senin, 07 Oktober 2013

Emulator] HAX is not working and emulator runs in emulation mode

The error it shows is:
emulator: Failed to open the HAX device! HAX is not working and emulator runs in emulation mode emulator: Open HAX device failed
The solution is to install the Intel Hardware Accelerated Execution Manager (HAXM) from Android SDK Manager. Go to folder [Android SDK Root]\extras\intel\Hardware_Accelerated_Execution_Manager then run IntelHaxm.exe and install.

Menyembunyikan Kode JavaScript Yang Dipakai Menggunakan PHP

BalonCoding menggunakan jQuery dan turunannya,contohnya seperti script di bawah ini,


BalCod tidak perlu menunjukkan javascript yang dipakai, karena itu kita dapat menyembunyikan link javascript dengan cara yang paling gampang adalah menggantikan nama file dengan sesuka kita misalnya 1.js, 2.js, dan seterusnya. Namun BalCod memutuskan dengan menggunakan PHP, seperti di bawah ini
<?php 
  echo file_get_contents('js/jquery-1.10.2.min.js');
  echo file_get_contents('js/jumble.min.js'); ?>

Setting Apache


  1. Disable listing file directory
    dari #Options Indexes FollowSymLinks menjadi Options None
  2. berlanjut...http://www.thegeekstuff.com/2011/03/apache-hardening/

Minggu, 06 Oktober 2013

Publikasikan Artikel Blogger ke Twitter


  1. Daftar ke http://feeds.feedburner.com untuk mendapatkan link, untuk blog BalonCoding ini, dipilih RSS
  2. Daftar ke http://twitterfeed.com untuk melink kan feedburner supaya twitterfeed membuat service yang mempublikasikan ke twitter
  3. Mari kita coba mulai dari artikel ini link ke twitter https://twitter.com/pandazen ^_^ 

Beda Direct vs Delegated di jQuery .on()

Copas dari stockoverflow.com, langsung mentahnya saja pakai bahasa inggris, sebagai catatan

Case 1 (direct):
$("div#target span.green").on("click", function() {...});
== Hey! I want every span.green inside div#target to listen up: when you get clicked on, do X.
Case 2 (delegated):
$("div#target").on("click", "span.green", function() {...});
== Hey, div#target! When any of your child elements which are "span.green" get clicked, do X with them.
Summary
In case 1, each of those spans has been individually given instructions. If new spans get created, they won't have heard the instruction and won't respond to clicks. Each span isdirectly responsible for its own events.
In case 2, only the container has been given the instruction; it is responsible for noticing clicks on behalf of its child elements. The work of catching events has been delegated.

Jumat, 04 Oktober 2013

PHP Fatal error: Maximum execution time of 30 seconds exceeded in

Hari ini, BalonCoding jumpa dengan pesan error di PHP script, yakni
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Apache24\htdocs\server\getstat.php on line 32

max_execution_time = 30 => max_execution_time = 360

Kamis, 03 Oktober 2013

HTML Tidak Bisa Menampilkan PHP Script

Ternyata ada yang masih kurang di file konfigurasi Apache httpd.conf, yakni php hanya dijalankan oleh file .php, sehingga file .html tidak berhasil melakukan parse terhadap PHP script. Solusinya adalah mengedit, 
AddType application/x-httpd-php .php

menjadi
AddType application/x-httpd-php .php .html

PHP di Apache Tidak Menampilkan Error

Kesalahan yang seharusnya tidak terjadi, namun sering kali menyebabkan waktu yang seharusnya terpakai untuk hal yang lebih berguna menjadi sia-sia. Kejadian seperti ini sudah sering kali BalonCoding alami, namun masih saja terjadi #tepokjidat.

Kejadian kali ini adalah PHP script yang BalCod jalankan tidak menampilkan pesan kesalahan. Sehingga dieditlah php.ini, mengaktifkan parameter 
display_errors = On
masih belum bisa. Aktifkan lagi parameter 
display_startup_errors = On
error_reporting = E_ALL
html_errors = On
ternyata belum bisa juga. Copy - paste file php.ini ke folde c:\windows\ juga belum bisa. Nah, kesalahannya adalah bahwa sudah ada parameter display_errors = Off. Sehingga walaupun di atas file php.ini ada baris display_errors = On, namun karena di bawah display_errors = Off, maka yang berlaku adalah yang Off. Jadi solusinya hanya mengedit Off menjadi On, bukan menambahkan baris lagi. ^_^ Oh, ingat restart Apache!

Menghitung Waktu Proses PHP Script

<?php   
/**
  * fungsi untuk hitung waktu proses dari waktu mulai sampai selesai
  * dengan memanfaatkan fungsi microtime
*/

// letakkan pada awal script
$start = microtime(TRUE); 

// letakkan pada akhir script
$finish = microtime(TRUE);  

// hitung selisih waktu mulai dengan waktu akhir untuk mendapatkan perbedaan waktu dalam satuan detik
$totaltime = $finish - $start;  
  
// tampilkan hasil waktu proses PHP script
echo "This script took ".$totaltime." seconds to run"; 
?>

Cek Status Website Menggunakan PHP

Berikut coding php dengan memanfaatkan fungsi curl :

<?php 
/**
 * Function to check a website status
 * @param string url the url of the website to test
 * @return boolean true if the site is up, false otherwise
*/


function checkStatus($url){
     $agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; pt-pt) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";


     // initializes curl session
     $ch=curl_init();


     // sets the URL to fetch
     curl_setopt ($ch, CURLOPT_URL,$url );


     // sets the content of the User-Agent header
     curl_setopt($ch, CURLOPT_USERAGENT, $agent);


     // return the transfer as a string
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);


     // disable output verbose information
     curl_setopt ($ch,CURLOPT_VERBOSE,false);


     // max number of seconds to allow cURL function to execute
     curl_setopt($ch, CURLOPT_TIMEOUT, 5);


     curl_exec($ch);


     // get HTTP response code
     $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


     curl_close($ch);


     if($httpcode>=200 && $httpcode<300)
          return true;
     else
          return false;
     }


     // Place this at the very top of script 
     $start = microtime(TRUE);


     if(!function_exists('curl_init')) echo "cURL not installed. Trying something else...";


     $array = array("http://192.168.51.2", 
                    "http://192.168.51.5", 
                    "http://192.168.51.18", 
                    "http://192.168.51.27", 
                    "http://192.168.51.192",
                    "http://192.168.51.215"
                    );
 
     foreach ($array as $value) {
          if(checkStatus($value))
               echo "Website <img src='img/up.png' height=16 width=16> $value is <font color='blue'>up</font><br />\n";
          else
               echo "Website <img src='img/down.png' height=16 width=16> $value is <font color='red'>down</font><br />\n";
     }


     // Place this at the very bottom of script 
     $finish = microtime(TRUE);


     // Subtract the start time from the end time to get our difference in seconds 
     $totaltime = $finish - $start; 
 
     echo "<font size='1'>This script took ".$totaltime." seconds to run</font>"; 
?>



Restart Apache Via Command Line di Windows

BalonCoding mencoba melakukan restart Apache via command line dengan syntax seperti di bawah ini, 
httpd -k restart -n "Apache2.4"
Hasilnya,
AH00558: httpd: Could not reliably determine the server's fully qualified domain
 name, using fe80::93c:baad:80aa:f1a9. Set the 'ServerName' directive globally t
o suppress this message

Solusinya,

  1. edit file C:\Apache24\conf\httpd.conf
  2. cari "ServerName", edit agar menjadi 
    ServerName localhost
  3. ulangi perintah,
    httpd -k restart -n "Apache2.4"

Rabu, 02 Oktober 2013

Menjalankan Cmd Sebagai Administrator di Windows 8

Ada cara yang menyarankan mengetikan "cmd" (tanpa tanda petik) di kotak Run kemudian menekan kombinasi tombol CTRL+SHIFT+ENTER sebagai pengganti ENTER untuk membuka window command line. Namun bagi BalonCoding, cara ini tidak berhasil di Laptop Windows 8.

Nah, cara lain yang berhasil adalah menekan tombol keyboard WINDOW yang tentunya akan memunculkan layar Start, selanjutnya ketik saja "cmd" (tanpa tanda petik) yang akan membawa kita pada shortcut "Command Prompt", lalu klik kanan, pilih "Run as administrator".

Cara lain yang paling gampang, tekan tombol keyboard WINDOW + X, maka akan muncul menu "Command Prompt (Admin)". Gampang kan ? ^_^

Genymotion Tidak Bisa Start

Genymotion adalah kelanjutan dari AndroVM, yakni salah satu emulator untuk menjalankan sistim operasi android di PC / Laptop. Nanti deh, cerita lengkapnya si Geny ini dibahas.

Sebelumnya, BalonCoding sudah menggunakan Eclipse  Kepler sebagai IDE untuk menjalankan Android Virtual Device Manager. Namun, BalCod merasakan penggunaan Android VDM berjalan lambat, sehingga memutuskan untuk mencoba mencari alternatif lain.

Untuk saat ini, BalCod menjumpai 2 emulator yang bisa dicoba, yakni Genymotion dan Android Studio. Nah, Genymotion ini bisa didownload di http://www.genymotion.com yang sebelumnya kita perlu daftar di web ini.

Setelah berhasil didownload (115 MB) dan diinstall, maka tampak sudah wujud dari Genymotion. Pada saat diklik "Play", dilanjutkan tahap Initializing dan Starting virtual device, muncullah pesan
The Genymotion Virtual device could not obtain an IP address.For an unknown reason, VirtualBox DHCP has not assigned an IP address to virtual device. Run the VirtualBox software to check for issues.

The adapter's IP address has to be in the same network (192.168.56.0/24 by default) as DHCP server's IP address and DHCP's IP address bounds. If all those addresses are not in the same network, then your Genymotion virtual device might not be able to start.

https://cloud.genymotion.com/page/faq/#collapse-blank

Sebagai catatan, pada saat instalasi Genymotion muncul pesan bahwa di laptop BalCod sudah ada terinstalasi Oracle VirtualBox, karena BalCod sudah memang menggunakan VirtualBox untuk Centos, jadi tidak lagi menginstall VirtualBox baru. Dan pesan bahwa Genymotion tidak mendapatkan ip address, BalCod tahu perlu settingan dhcp.

Jadi, langkah selanjutnya, BalCod membuka window Oracle VirtualBox Manager, di menu File | Preferences... | tab Network, akan terlihat VirtualBox Host-Only Ethernet Adapter. Lanjutkan pengeditan settingan (klik icon obeng), pilih tab DHCP Server dan Enable Server, masukkan ip yang sesuai. Kembali ke window Genymotion dan Play lagi, akhirnya layar Welcome di sistim android muncul. ^_^

Senin, 30 September 2013

Penggunaan Syntax Highlighter di Blogger

Untuk mempercantik tampilan dan juga kerapian di blog, BalonCoding perlu menambahkan fungsi syntax highlighter yang berfungsi melakukan format terhadap baris coding. Blogger atau blogspot yang BalCod gunakan sudah mendukung format syntax sesuai yang bahasa coding yang umum, seperti C++, C#, VB, XML, Java, JavaScript, Delphi.

Secara garis besar yang perlu kita lakukan hanya ada 4 langkah, yakni :

  1. tambah coding css sebelum tag </b:skin>
  2. tambah coding javascript sebelum tag </head>
  3. tambah coding javascript sebelum tag </body>
  4. terapkan tag <pre name="code" class="sql"> ke baris yang hendak kita format
Jadi mari kita mulai caranya :
  1. Masuk ke menu Template dan klik tombol Edit HTML
  2. Cari tulisan "</b:skin>"
  3. Ambil semua coding css di http://syntaxhighlighter.googlecode.com/svn/trunk/Styles/SyntaxHighlighter.css
  4. Masukkan coding css itu sebelum tulisan "</b:skin>"
  5. Masukkan coding berikut ini sebelum tag </head>
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    catatan : Untuk mempercepat loading, boleh hilangkan baris yang tidak perlu, misalnya tidak menggunakan Delphi atau Ruby

  6. Masukkan coding berikut ini sebelum tag </body>
    <script language="javascript">
    dp.SyntaxHighlighter.BloggerMode();
    dp.SyntaxHighlighter.HighlightAll('code');
    </script>
    

    catatan : Sebaiknya, di tahap ini, klik tombol "Preview" untuk memastikan template yang kita edit tidak ada kesalahan

  7. Semua tahap edit untuk melekatkan fungsi syntax highlighter sudah selesai, saatnya testing dengan menggunakan contoh seperti berikut,
    <pre name="code" class="css">
    /*coding di sini*/
    </pre>
    
Selesai, semoga bermanfaat ^_^

Contoh Batch File Untuk Backup Database Oracle Per Schema

pfile.sql
create pfile='f:\exp\pfile.ora' from spfile;
exit;
pfile.bat
sqlplus wi/%sqlstr%@itcapps2 as sysdba @pfile.sql

ren f:\exp\pfile.ora pfilekvn%date:~4,2%%date:~7,2%%date:~12,2%.log
delpath.bat
d:

REM --------------------------------

cd D:\app\Administrator\diag\rdbms\itcapps2\itcapps2\incident

call f:\delold.bat

REM --------------------------------

cd D:\app\Administrator\diag\rdbms\itcapps2\itcapps2\trace

call f:\delold.bat

REM --------------------------------

cd D:\app\Administrator\diag\tnslsnr\athena\listener\alert

call f:\delold.bat

REM --------------------------------

cd D:\app\Administrator\diag\tnslsnr\athena\listener\trace

call f:\delold.bat

REM --------------------------------
delold.bat
FORFILES /S /D -14 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"

FORFILES /M *.xml /d -14 /c "cmd /c del @file

FORFILES /M *.trm /d -14 /c "cmd /c del @file

FORFILES /M *.trc /d -14 /c "cmd /c del @file
ddl.sql
set pagesize 0
set long 90000 

connect userdp/pword

/*------------------------- TABLE ---*/
spool table.scd 

  SELECT DBMS_METADATA.GET_DDL ('TABLE', A.OBJECT_NAME, A.OWNER)
    FROM ALL_OBJECTS A
   WHERE     A.OWNER IN
                ('MIS',
                 'MISB',
                 'HRIS',
                 'ICS',
                 'BUDGETING',
                 'SPS',
                 'HDIS',
                 'AKTIVA',
                 'ITCSUITE',
                 'ITIS',
                 'IAS',
                 'ELEARN',
                 'ITCM',
                 'IPOINT',
                 'ISGATE',
                 'ITCENTERP',
                 'MONWARE',
                 'BILLING',
                 'PMO')
         AND A.OBJECT_TYPE = 'TABLE'
ORDER BY OBJECT_NAME;

spool off 
/*------------------------- TABLE ---*/
/*---ULANG UNTUK OBJECT TYPE LAIN ---*/


EXIT
ddl.bat
sqlplus /nolog @ddl.sql
rem set dt=%date:~4,2%%date:~7,2%%date:~12,2%
rem set fld=ddl\DDL%dt%

rem mkdir %fld%

ren tble.scd tble%dt%.scd

ren view.scd view%dt%.scd

ren func.scd func%dt%.scd

ren proc.scd proc%dt%.scd

ren pach.scd pach%dt%.scd

ren pacb.scd pacb%dt%.scd

ren trig.scd trig%dt%.scd

ren indx.scd indx%dt%.scd

ren mzvw.scd mzvw%dt%.scd

ren seqc.scd seqc%dt%.scd

ren type.scd type%dt%.scd

f:\7z a -pxxx f:\exp\kvnddl%date:~4,2%%date:~7,2%%date:~12,2%.7z *.scd

del *.scd
mv.bat
f:\7z a -pxxx f:\exp\kvnlog%date:~4,2%%date:~7,2%%date:~12,2%.7z f:\exp\*.log

f:\7z a -pxxx f:\exp\kvnlog%date:~4,2%%date:~7,2%%date:~12,2%.7z f:\*.bat

f:\7z a -pxxx f:\exp\kvnlog%date:~4,2%%date:~7,2%%date:~12,2%.7z f:\*.sql

move f:\exp\*.7z f:\exp\done\

del f:\exp\*.log
pack.bat
@echo off
setlocal enabledelayedexpansion

call :getdate

set fld=f:\exp\
set file=7z
set /a flnm=wi.7z

set log=%fld%chain%dt%.log
set tab= 
set schema=mis,misb,pmo,billing,monware,isgate,ipoint,itcm,elearn,ias,itis,itcsuite,aktiva,hdis,sps,budgeting,ics,hris

echo start %tab%%tab% %date% %time% >> %log%

echo beginpfile %tab% %date% %time% >> %log%
call pfile.bat
echo endpfile %tab%%tab% %date% %time% >> %log%

echo begindelold %tab% %date% %time% >> %log%
call delpath.bat
echo enddelold %tab%%tab% %date% %time% >> %log%

f:

echo beginddl %tab% %date% %time% >> %log%
call ddl.bat
echo endddl %tab%%tab% %date% %time% >> %log%

FOR %%A IN (%schema%) DO (
   set sch=%%A
   echo begin!sch! %tab% %date% !time! >> %log%
   set schf=kvn!sch!
   call :rtrim

   set file=!schf:~0,7!%dt%
   set flnm=%fld%done\!file!.7z
   echo !flnm! >> %log%
   if exist !flnm! (
      echo file !flnm! sudah ada.>> %log%
   ) else (
      echo !flnm! >> !file!.dmp
      del !file!.dmp
      expdp userid=userdp/%userdp% schemas=!sch! dumpfile=!file!.dmp logfile=!file!.log directory=DUMPDIR
      rem F:\7z a -pxxx %fld%!file!.7z %fld%!file!.dmp
      rem del %fld%*.dmp  
   )

   echo end!sch! %tab% %date% !time! >> %log%
)

rem untuk 7z hasil dmp smua file
for /f %%f in ('dir f:\exp\*.dmp /b') do (
   rem echo %%~nf.dmp
   rem 7z a -pxxx %%~nf.7z %%~nf.dmp
   f:\7z a -pxxx -m0=lzma2 -mmt8 %fld%%%~nf.7z %fld%%%~nf.DMP
   del %fld%%%~nf.DMP
)

echo finish %tab%%tab% %date% %time% >> %log%

call F:\mv.bat
:: End of main program
GOTO End

::subroutine

:: getdate subroutine starts here
:getdate
   
   for /F "tokens=1-4 delims=/- " %%a in ('date/T') do set TGL=%%d%%b%%c
   set /a dt = TGL-1
   set /a jam = %time:~0,2%
   set /a thn = %date:~12,2%

   if %jam% geq 19 ( 
      if %jam% leq 24 ( 
         set dt = %TGL%
      ) else (
  set dt = TGL-1
      )
   ) else (
      set dt = TGL-1                               
   )

   set dt=%dt:~4,4%%thn%

:: end of getdate subroutine
GOTO :EOF


:: rtrim subroutine starts here
:rtrim
   rem set str=KVNPMO               
   rem echo."%str%"
   set schf=%schf%##
   set schf=%schf:                ##=##%
   set schf=%schf:        ##=##%
   set schf=%schf:    ##=##%
   set schf=%schf:  ##=##%
   set schf=%schf: ##=##%
   set schf=%schf:##=%
   rem echo."%str%"
:: end of rtrim subroutine
GOTO :EOF

:: End of batch file
:End

Jumat, 27 September 2013

Ubah Template Blogger

  1. blockquote
    blockquote { 
    background-color: #666; 
    color:#fff; 
    padding: 15px; 
    margin: 1em 40px; 
    -moz-border-radius-topleft: 15px; 
    -webkit-border-top-left-radius: 15px; 
    -moz-border-radius-topright: 15px; 
    -webkit-border-top-right-radius: 8px; 
    -moz-border-radius-bottomleft: 15px; 
    -webkit-border-bottom-left-radius: 15px; 
    }
    
  2. syntax highlighter

Catatan Perintah Linux yang Berguna

  1. tampilan semua sub-direktori dan ukurannya kemudian diuruskan dari yang paling kecil ke paling besar
  2. du --max-depth=1 -h | sort -nr
  3. cek versi os dan kernel
    uname -a
  4. cek versi kernel
    uname -r

FRM-92090: unexpected fatal error in client-side Java code during startup

Setelah setting atau signing jacob.jar dengan mengikuti langkah-langkah yang BalonCoding baca di sini, BalCod mencoba membuka form yang menggunakan webutil.jar. Namun hasil yang muncul tidak berjalan lancar, yakni dijumpai pesan (bahkan belum sempat ke layar login) sebagai berikut,

FRM-92090: unexpected fatal error in client-side Java code during startup

Java Exception: java.lang.SecurityException: class "oracle.forms.engine.Version"'s signer information does not match signer information of other classes in the same package

BalCod mengikuti beberapa langkah hasil dari googling di beberapa web, yakni :

  1. edit formsweb.cfg (di /u01/app/oracle/middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/config)

    [itcf] 
    archive=frmicons.jar,jacob.jar,frmwebutil.jar,frmall.jar
    [webutil] 
    WebUtilArchive=jacob.jar,frmwebutil.jar

  2. edit itcf.env (di /u01/app/oracle/middleware/user_projects/domains/ClassicDomain/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.2/config)

    CLASSPATH=/u01/app/oracle/middleware/FRHome/forms/j2ee/frmsrv.jar:/u01/app/oracle/middleware/FRHome/jlib/ldapjclnt11.jar:/u01/app/oracle/middleware/FRHome/jlib/debugger.jar:/u01/app/oracle/middleware/FRHome/jlib/ewt3.jar:/u01/app/oracle/middleware/FRHome/jlib/share.jar:/u01/app/oracle/middleware/FRHome/jlib/utj.jar:/u01/app/oracle/middleware/FRHome/jlib/zrclient.jar:/u01/app/oracle/middleware/FRHome/reports/jlib/rwrun.jar:/u01/app/oracle/middleware/FRHome/forms/java/jacob.jar:/u01/app/oracle/middleware/FRHome/forms/java/frmwebutil.jar:/u01/app/oracle/middleware/FRHome/forms/java/frmall.jar:/u01/app/oracle/middleware/FRHome/jlib/start_dejvm.jar:/u01/app/oracle/middleware/FRHome/opmn/lib/optic.jar

  3. edit webutil.cfg (di /u01/app/oracle/middleware/FRInst/config/FormsComponent/forms/server)

    transfer.database.enabled=FALSE 
    transfer.appsrv.enabled=TRUE 
    transfer.appsrv.accessControl=FALSE 
    transfer.appsrv.read.1=/home/oracle/temp 
    transfer.appsrv.write.1=/home/oracle/temp

  4. edit forms.conf (di /u01/app/oracle/middleware/FRInst/config/OHS/ohs1/moduleconf) AliasMatch ^/webutil/(..*) "/u01/app/oracle/middleware/FRHome/forms/webutil/$1"

Selasa, 24 September 2013

Penggunaan Metode Kompresi LZMA2 di 7-Zip

BalonCoding baru mengetahui bahwa di 7-Zip ada metode LZMA dan LZMA2 setelah merasakan bahwa proses kompresi untuk backup schema oracle yang data mentahnya 65 GB tidak selesai selama beberapa hari. BalCod googling beberapa website yang kebanyakan menuliskan bahwa LZMA2 adalah hasil modifikasi dari LZMA.

Yang paling kontras dapat dilihat perbedaan LZMA dengan LZMA2 di "Number of CPU threads", yakni LZMA= 2; LZMA2=8. 

Dengan LZMA proses kompresi yang terlebih dahulu jalan sudah 1/2 jam hanya mencapai 10%, sementara dengan LZMA2 sudah mencapai 70%.

Berikut ini perintah penggunaan 7-Zip dengan menggunakan metode kompresi LZMA2 secara sederhana,
7z.exe a -pbalon -m0=lzma2 -mmt8 xxxzip.7z xxxdmp.dmp

Senin, 23 September 2013

Cannot Reset MySQL Root Password

Di komputer klient BalonCoding mendapatkan error seperti di bawah ini, 
C:\Users\Administrator>mysqld --console --skip-grant-tables 130923 15:10:08 [Note] Plugin 'FEDERATED' is disabled. 130923 15:10:08 InnoDB: The InnoDB memory heap is disabled 130923 15:10:08 InnoDB: Mutexes and rw_locks use Windows interlocked functions 130923 15:10:08 InnoDB: Compressed tables use zlib 1.2.3 130923 15:10:08 InnoDB: Initializing buffer pool, size = 42.0M 130923 15:10:08 InnoDB: Completed initialization of buffer pool 130923 15:10:08 InnoDB: highest supported file format is Barracuda. 130923 15:10:09 InnoDB: Waiting for the background threads to start 130923 15:10:10 InnoDB: 1.1.8 started; log sequence number 1595675 130923 15:10:10 [ERROR] mysqld: unknown variable 'default-character-set=latin1' 130923 15:10:10 [ERROR] Aborting 130923 15:10:10 InnoDB: Starting shutdown... 130923 15:10:10 InnoDB: Shutdown completed; log sequence number 1595675 130923 15:10:10 [Note] mysqld: Shutdown complete
Sementara di komputer VirtualBox BalCod berjalan lancar,
C:\Documents and Settings\wi>mysqld --console --skip-grant-tables 130923 15:08:22 [Note] Plugin 'FEDERATED' is disabled. InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use Windows interlocked functions 130923 15:08:22 InnoDB: highest supported file format is Barracuda. 130923 15:08:22 InnoDB Plugin 1.0.5 started; log sequence number 44374 130923 15:08:22 [Note] mysqld: ready for connections. Version: '5.5.0-m2-community' socket: '' port: 3306 MySQL Community Server (GPL)
BalCod kembali ke komputer klient, untuk mencoba lagi dengan eksekusi perintah berikut,
  • terlebih dahulu pastikan service mysql sudah dimatikan (Control Panel | Administrative Tools | pilih Services | pilih MySQL | klik kanan | Stop)
  • mysqld --defaults-file="c:\my.ini" --console --skip-grant-tables (biarkan layar command prompt I ini tetap terbuka)
  • mysql -u root (ketik perintah ini di layar command prompt II yang lain)
  • use mysql; (pilih database mysql untuk reset password)
  • update user set password=PASSWORD("mynewpassword") where User='root';
  • flush privileges;
  • quit;
  • tutup kedua command prompt
  • hidupkan kembali service MySQL (kalau tidak tahu dimana, lihat langkah yang pertama)
  • di command prompt, ketikkan mysql --user=root --password=mynewpassword
  • tada... sudah masuk kan ?

Jam dan Tanggal di Oracle VM VirtualBox Selalu Berubah

BalonCoding sedang mencari cara agar bisa masuk ke BIOS Oracle VM VirtualBox (VirtualBox) yang guestnya ber-OS Windows XP, dan BalCod menemukan saran untuk menjalankan modifikasi pada VirtualBox. Ketika VirtualBox dalam keadaan "off" BalonCoding mencoba menjalankan perintah,
vboxmanage modifyvm "xp Clone" --biossystemtimeoffset 900000000
setelah itu VirtualBox di-start, namun tidak bisa juga masuk ke BIOS. Dan setelah googling beberapa saat, BalCod sadari bahwa BIOS untuk VirtualBox tidak ada seperti layar BIOS komputer normal. 

BIOS untuk VirtualBox adalah menu Settings pada setiap VM. Namun karena BalCod lupa mengembalikan offset yang telah terubah, akhirnya jam dan tanggal di-komputer guest, yakni di Windows XP, jamnya terupdate hingga tanggal 10-Okt-2013 jam 11:42, sedangkan hari ini adalah tanggal 23-Sep-2013 jam 13:42.

Pada awalnya, BalCod kira ini adalah perbuatan virus yang mengubah settingan waktu, karena setiap diubah ke tanggal yang benar, baru 2-3 detik waktu kembali menjadi tanggal yang salah seperti di atas.

BalCod googling lagi dengan keyword yang lain, tiba-tiba teringat perintah yang pertama di atas, akhirnya BalCod setting lagi menjadi,
vboxmanage modifyvm "xp Clone" --biossystemtimeoffset 1000
Akhirnya VirtualBox berjalan normal kembali, huff 

Minggu, 22 September 2013

Buka Dua Yahoo Messenger atau Lebih di Satu Komputer

Yahoo Messenger (YM) yang sudah diinstall hanya bisa login dengan menggunakan 1 akun. Bagi kita yang memerlukan login dengan akun lain, wajib keluar terlebih dahulu, kemudian login kembali. Hal ini tentunya menyusahkan karena harus keluar-masuk beberapa kali.

Selain aktifitas di atas, BalonCoding termasuk yang membagi akun yahoo untuk beberapa aktifitas yang berbeda, misalnya akun pribadi, akun kantor, akun berburu dolar, akun investasi. Tujuannya sih pemisahan akun yang berbeda-beda agar membagi resiko dan aktifitas yang satu tidak mengganggu yang lainnya. 

Saya juga memanfaatkan YM sebagai fasilitas pop up jika ada email yang masuk.

Berikut ini langkah sederhana dan tanpa menggunakan software untuk bisa ber-YM dengan dua atau lebih pada satu saat di satu komputer :
  1. buka regedit, dari tombol Window + Run, ketik regedit + [Enter]
  2. di layar regedit, cari HKEY_CURRENT_USER, klik maka akan muncul sub-tree
  3. pilih Software | Yahoo | pager | Test
  4. nah di sini kita kerjakan triknya, pindah ke panel di kanan, saat ini hanya ada (Default) | REG_SZ | (value not set)
  5. klik kanan, pilih New | String Value, isikan plural, [Enter]
  6. dobel klik plural untuk mengedit datanya, isikan nilai 0
  7. tutup regedit dan selesai, jika YM sudah aktif, maka tutup terlebih dahulu baru dibuka kembali.
Selamat mencoba dan semoga berguna ^_^


Jumat, 20 September 2013

Android Emulator Warning WGL_ARB_pbuffer

BalonCoding baru belajar programming android, tahap persiapan dan instalasi Eclipse, ADT dan SDK berjalan lancar. Nah, sampai belajar Relative Layout baru disadari bahwa di layar Console ada semacam warning. Sesaat setelah Run, muncul pesan berikut
[2013-09-20 15:37:35 - RelativeLayout] ------------------------------
[2013-09-20 15:37:35 - RelativeLayout] Android Launch!
[2013-09-20 15:37:35 - RelativeLayout] adb is running normally.
[2013-09-20 15:37:35 - RelativeLayout] Performing com.example.relativelayout.RelativeLayout activity launch
[2013-09-20 15:37:35 - RelativeLayout] Automatic Target Mode: launching new emulator with compatible AVD 'First'
[2013-09-20 15:37:35 - RelativeLayout] Launching a new emulator with Virtual Device 'First'
[2013-09-20 15:37:38 - Emulator] Failed to create Context 0x3005
[2013-09-20 15:37:38 - Emulator] emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
[2013-09-20 15:37:38 - Emulator] extension WGL_ARB_pbuffer was not found
[2013-09-20 15:37:38 - Emulator] extension WGL_ARB_pbuffer was not found
[2013-09-20 15:37:38 - Emulator] extension WGL_ARB_pbuffer was not found
[2013-09-20 15:37:38 - Emulator] extension WGL_ARB_pbuffer was not found
[2013-09-20 15:37:38 - Emulator] extension WGL_ARB_make_current_read was not found
[2013-09-20 15:37:38 - Emulator] extension WGL_EXT_swap_control was not found
[2013-09-20 15:37:38 - RelativeLayout] New emulator found: emulator-5554
[2013-09-20 15:37:38 - RelativeLayout] Waiting for HOME ('android.process.acore') to be launched...
[2013-09-20 15:37:58 - RelativeLayout] HOME is up on device 'emulator-5554'

Berikut spesifikasi data teknisnya,
  1. Host :
    • Aspire V5-471PG
    • Windows 8 Single Language (x64) (build 9200)
    • 1,70 gigahertz Intel Core i5-3317U
    • Intel(R) HD Graphics 4000
    • Direct3D Acceleration: Enabled



  2. Guest :
    • Microsoft Windows XP Professional Version 2001 Service Pack 2
    • Intel(R) Core(TM) i5-337U CPU @ 1.70GHz
    • VirtualBox Graphics Adapter
    • Direct3D Acceleration: Not Available



  3. VirtualBox 4.2.12 r84980



  4. SDK r22.0.5



  5. Eclipse IDE for Java Developers Version Kepler Release Build id: 20130614-0229
  6. Target AVD Platform 2.2 - API level 8 - CPU ARM (armeabi) dan Platform 4.1.2 - API level 16 - CPU ARM (armeabi-v7a)
UNRESOLVED

BalCod memutuskan untuk bekerja di komputer utama, tidak lagi menggunakan VirtualBox, karena setelah menginstall Eclipse, Android SDK, dan membuat ADM, terlihat perbedaan bahwa di komputer utama, settingan use host GPU muncul sementara di VirtualBox tidak ada settingan tersebut.