Selasa, 16 Desember 2008

Data Migration, it's a T-SQL way

Sebagai developer freelance, seringkali saya harus memindahkan/menyalin sebagian data table dari satu database ke database lain, istilah kerennya partial migration (mbuh bener, mbuh gak istilah'e, ngawur ae).

Hal ini seringkali memusingkan saya, apalagi karena kebanyakan saya menggunakan increment field sebagai primary key, dimana satu field pada table saya set sebagai identity field dengan increment 1.

Akhirnya.....

Ketika tiba bagi saya untuk melakukan partiap migration, dimana hanya table-table tertentu yang ingin saya update datanya (insert tentunya), selalu terbentur dengan masalah indetity field ini. Disamping itu, jika kebetulan ada table dengan field yang tidak sama, maka tentu saya tidak lagi dapat menggunakan INSERT andalan :

INSERT INTO target_table
SELECT * FROM source_table
Hufff,
Betapa susahnya jika saya harus mendefinisikan pada SQL statement saya satu persatu field-field yang harus saya insertkan.

Setelah benar-benar bosan dengan cara "usang" ini, akhirnya saya coba untuk eksplore apakah mungkin untuk melakukan migrasi sekian table dalam 1 script.

Well, akhirnya dengan memanfaatkan table sysobjects dan syscolumns saya buat satu scipt untuk melakukan partial migration beberapa table sekaligus.

Hal pertama yang saya lakukan adalah mencopy table-table yang akan dimigrasi ke database local, sebenarnya dapat juga langsung ke database sourcenya, namun untuk kemudahan, saya copy saja ke database local saya.

Let say saya punya 10 table yang akan saya migrasikan :
  • tmk_fml --> t_fml
  • tmk_hst_ctr --> t_hst_ctr
  • tmk_hst_edu --> t_hst_edu
  • tmk_mem --> t_mem
  • tmk_rem_emp --> t_rem_emp
  • tmk_mst_emp --> t_mst_emp
  • tmk_sys_hist --> tsys_hist
  • tmp_fnc --> t_fnc
  • tmp_org --> t_org
  • tmp_prc_crt --> t_prc_crt
table kanan adalah table target, dan field antara table kiri dan table kanan tidak mesti sama.

Idenya adalah, bagaimana mendapatkan field-field yang sama antara table kiri dan table kanan, kemudian dengan menggunakan sp_executesql akan menjalankan satu SQL String. Disamping itu, karena pada table kanan ada identity field, maka identity field harus diset inactive, sehingga nantinya identity field tersebut akan mengikuti identity field pada table kiri.

Let's see the code here :
EXEC sp_configure 'allow update', 1
RECONFIGURE WITH OVERRIDE
GO

DECLARE @ref TABLE (rid INT, ta VARCHAR(50), ti VARCHAR(50))
DECLARE @tname VARCHAR(50), @id NUMERIC, @sql NVARCHAR(4000), @a INT, @b INT
DECLARE @x INT, @y INT, @i INT, @n INT, @columns VARCHAR(3000), @ta VARCHAR(50), @ti VARCHAR(50)
DECLARE @table TABLE (id INT IDENTITY(1, 1), name VARCHAR(200))

SELECT @a = 0, @b = 0

INSERT INTO @ref (rid, ta, ti)
SELECT 1, 'tsys_hist', 'tmk_sys_hist'
UNION
SELECT 2, 't_fnc', 'tmp_fnc'
UNION
SELECT 3, 't_org', 'tmp_org'
UNION
SELECT 4, 't_prc_crt', 'tmp_prc_crt'
UNION
SELECT 5, 't_mst_emp', 'tmk_mst_emp'
UNION
SELECT 6, 't_fml', 'tmk_fml'
UNION
SELECT 7, 't_hst_ctr', 'tmk_hst_ctr'
UNION
SELECT 8, 't_hst_edu', 'tmk_hst_edu'
UNION
SELECT 9, 't_mem', 'tmk_mem'
UNION
SELECT 10, 't_rem_emp', 'tmk_rem_emp'



SELECT * FROM @ref

SELECT @y = COUNT(*), @x = 1 FROM @ref

WHILE @x<=@y
BEGIN

SELECT @ta = ta, @ti = ti FROM @ref WHERE rid = @x

SELECT @id = id FROM sysobjects WHERE name = @ta

DELETE FROM @table

INSERT INTO @table (name)
SELECT a.name FROM
(SELECT * FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = @ta)) AS a
INNER JOIN
(SELECT * FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = @ti)) AS b ON a.name = b.name

SELECT @i = @a+1, @n = @b+COUNT(*), @columns = '' FROM @table
WHILE @i<=@n
BEGIN
SELECT @columns = @columns + name + ', ' FROM @table WHERE id = @i
SET @i = @i + 1
END

SET @columns = SUBSTRING(@columns, 1, LEN(@columns)-1)

UPDATE syscolumns SET colstat = 0 WHERE id = @id
SET @sql = 'INSERT INTO '+ @ta + ' (' + @columns + ') SELECT ' + @columns +' FROM ' + @ti
PRINT @sql
EXEC sp_executesql @sql
UPDATE syscolumns SET colstat = 1 WHERE id = @id

SELECT @a= @i, @b = @n
SET @x = @x + 1
END

EXEC sp_configure 'allow update', 0
RECONFIGURE WITH OVERRIDE
GO
Dengan menggunakan script di atas, relatif pekerjaan saya menjadi jaaaaaauh lebih simple.

that's it

and....

Happy coding again dude

Senin, 15 Desember 2008

Setting Cisco VPN CLient on Windows 2003 Server

Sudah hampir 3 minggu ini saya dibuat pusing dikarenakan masalah settingan Cisco VPN Client pada Windows 2003 Server selalu gagal. Oh ya, kenapa harus menggunakan Cisco VPN Client pada Windows 2003 Server, lho server kok pake vpn client ???

Yup, agak aneh memang, tapi mau tidak mau memang saya harus menggunakan vpn client agar server yang saya configure dapat masuk ke satu jaringan. Hal ini dikarenakan konfigurasi dari sistem aplikasi yang saya buat mengharuskan sinkronisasi over cloud, namun karena menuntuk kemudahan dan security pada db-to-db connection, maka saya pilih menggunakan vpn connection saja sebagai bridge untuk membangun koneksi antar server. Hal lain, tentunya karena pada satu server telah ada vpn server serta jaringan yang memadai.

Untuk melakukan instalasi Cisco VPN Client pada windows 2003 Server, pilihlah VPN Client dengan versi lebih besar dari versi 4.7, untuk informasi lengkapnya, klik disini.

Download VPN Client di web site resmi Cisco, atau jika agak susah registernya, bisa mencoba disini.

Awalnya saya menginstall VPN Client versi 4.6, dan mendapati "Error 422 : Failed to enable virtual adapter", dan akhirnya setelah mencari-cari melalui mbah google, saya dapati bahwa versi yang dapat digunakan adalah versi 4.7 keatas.

Setelah saya install versi 4.8.xxx, holla..., running like a charm, it's perfect !!!

Opps, ini masih di salah satu server yang harus melakukan sinkronisasi, bagaimana dengan server lainnya ? Maka jadilah saya ke client saya yang lain, install cisco vpn client pada server, trial, but...

I've got the error again, even with the same version that I've installed on other machine.

Pfff, masalah muncul lagi.

Akhirnya, ketika sudah berbagai versi terbaru saya coba install, coba mengikuti setiap cara yang ada pada beberapa forum, maka tibalah saya dengan cara "goblok".

Saya bandingkan properties Network Connection masing2 server pada Cisco Connection, saya samakan saja semua component yang dipakai, hasilnya ???

Holla, it'was succeed...

Ternyata, windows 2003 server hanya membutuhkan component berikut agar dapat menjalankan Cisco VPN Client :
- CLient for Microsoft Network
- Deterministic Network Enhancer
- Internet Protocol (TCP/IP)

Lainnya ??? Buang saja, alias uninstall.

And then, that's run perfect...

Happy coding again dude.

--
from my cracky weeks

Selasa, 21 Oktober 2008

Thanks to TANRIL

Thanks to this book, kalimat ini mungkin sangat tepat dialamatkan buat buku ini. Bagaimana tidak, ditengah bosannya menunggu jadwal kereta anggrek yang molor saat pulang kampung yang lalu, ditambah lagi kemoloran-kemoloran yang lain, service di kereta yang bisa dibilang kacau balau -sejujurnya, jika PJKA adalah mahasiswa dan aku adalah dosen, tega deh kasih d minus heheh-, sampai-sampai selimut pun bau apek, bau toilet menyengat turut memperlengkap penderitaan penumpang gerbong 8.


How can... ??? ini anggrek men !!!, kereta executive yang paling executive, yang terbaik yang ada di negara ini... fyyuuhhh.

At least, di tengah jemunya menunggu jadwal yang mooooolor, disamping habis sudah 2 seri The Tales of The Sea King (24-25) yang kubawa, diembat bahkan ketika masih di stasiun gambir, dibukalah bungkus plastik rapi novel Tanril.

Awalnya agak sedikit ragu apakah novel bernuansa cersil ini akan menggugah selera membaca, maklum, cersil yang biasa kubaca biasa bergenre detektif bergaya khas Gu Long, atau gaya klasik abis model Jin Yong, yang tebalnya bisa buat bantal tidur. Atau juga khas jawa penuturan SH Mintarja, yang begitu memukau membawa ranah jawa dwipa berabad silam ke pelupuk mata membangunkan memori otak ini tentang gambaran jawa pada masa-masa kerajaan mataram dan demak.

Jujur, ditengah pesimistis ini, ada secercah harapan supaya novel ini dapat benar-benar mengikat minat bacaku, maklum, perjalanan panjang menjenuhkan di tengah insiden kemoloran ini tengah menghantui.

Bab awal kulalui dengan ringan, cerita yang mengalir agak lambat pada awal-awal bab ini kuanggap biasa sebagai awal pembuka cerita, yang memang biasanya lambat alur-alurnya. Nama-nama yang aneh, campuran hokkian, sanskrit dan inggris awalnya terasa aneh dimata (maap ya bukan di telinga, ini kan bacalah, bukan dengardonk :p) - ho wuan siang = arus api kehidupan = hokkian, rijil kichi = seperti sanskrit, wander = ini jelas nama inggris-, namun seterusnya, ketika bab kedua mulai dibuka, bab ketiga, dan seterusnya mulai terbiasa dengan penyebutan yang campur aduk itu.

Ada sedikit hal yang selalu menjadi pertanyaan, diakarenakan seringnya kata-kata ini berulang di awal bab atau sub bab "Umar'il Waya", begitu kelihatannya.

Lama tak kumengerti, apa itu ? Bahasa arab-kah ? hehehe....

Sampai akhirnya, ketika pagi telah menjelang di kereta (heheh... puitis juga :p), ketika sudah setengah buku terlahap oleh mata minus ini, mata yang bener-bener sudah ngantuk abis tapi gak bisa tidur juga (maklum, saurnya juga cmn makan beng-beng 3 bungkus), dan akhirnya iseng bolak-balik halaman belakang, disitu ada apendix daftar istilah.

What's mean .... "Umar'il Waya" ternyata berarti kisah dalam cerita, kreatif juga si penulis novel ini, bagaikan Lord of Ther Ring dan Hobbit karya J.R.R Tolkien, dia menciptakan istilah bahasa, dunia, ketokohan dan kebudayaan sendiri versi dunia novelnya.

satu jam, dua jam, tiga jam, sampai akhirnya pukul setengah tiga, ya... 15.30 Bagian BaratWaktu Indonesia tepatnya di SURABAYA, kereta Executive Argo Anggrek, yang tiketnya sudah melambung hampir 100%, yang katanya adalah executivenya-executive, tiba dengan selamat tapi telat di stasiun kebanggaan arek suroboyo PASAR TURI.

Fyuuuhhh... akhirnya, menjejak bumi jatim juga.

Di Bus jurusan Purabaya - Arjosari, dalam perjalanan menuju kota Kepanjen tercinta, Tanril kembali disantap. Horass, begitu sampe di rumah, nih buku sudah tinggal 25 halaman tersisa. Rekor baru juga rasanya, 400 halaman kurang sedikit dalam 15 jam.

Thanks to Tanril dan penulis - Nafta S. Meika, untuk menemani 15 jam menjemukan itu.

Minggu, 19 Oktober 2008

Erl : Pertarungan Pertama (III)

Sebelumnya ....
--

"Namun, tidak mungkin rasanya ada teknik berpindah tempat seperti itu di dunia ini, jikalau ada, hanya para tetua dari golongan Ilr Verrhon saja, para penjaga cahaya, dan anak ini sama sepertiku yang memiliki darah sebagai petarung, bukan dari garis keturunan para penjaga cahaya", Ghar bergumam kemudian.

--

Tapi Ghar tidak menyerah, bukan, dia bukanlah tipe orang yang gampang sekali menyerah oleh satu kegagalan saja, darahnya sebagai bangsa petarung mengatakan bagaimanapun sulitnya, bangsa petarung harus menyelesaikan pertarungan yang telah dimulai. Dan tiap bangsa petarung memiliki kemampuan untuk mengasah dan meningkatkan teknik dan skill bertarung mereka di tengah pertarungan sekalipun. Bahkan sedikit diantaranya mampu mengasah hawa murninya dalam pertarungan itu sendiri, dan Ghar salah satu diantara yang sedikit tadi.

Berkali-kali Ghar melakukan langkah petir untuk melancarkan Ledakan Tinju Petir, sedikit demi sedikit, otot dan seluruh jaringan tubuh, serta seluruh sistem pernapasan dalam dirinya mengadaptasi perubahan kecepatan yang terus dipercepat. Arus hawa murninya berputar semakin lambat, ketika sistem peredaran darahnya justru semakin cepat, hal ini menimbulkan satu sistem pendinginan secara berlawanan, dimana melambatnya perputaran hawa murni akan menyerap panas semakin banyak dan kemudian mengubahnya menjadi energi baru berwujud petir. Pada puncak kulminasi tenaga petir yang terkumpul, tinju Ghar berubah menjadi bagai hujan meteor yang puluhan jumlahnya, yang tiap ledakannya membawa tenaga petir yang menghanguskan.

"Hujan Ledakan Meteor", demikian akhirnya Ghar bergumam dalam hati, ketika akhirnya tahap tersebut terlampaui olehnya.

Dalam bentuk sejatinya, tinju Ghar terkepal sesaat sebelum mengenai sasaran. Proses mengepal dalam kecepatan sangat tinggi inilah yang menghasilkan ledakan bagai petir. Dengan demikian, tinju Ghar sebenarnya sangat sederhana, hanya rangkaian tinju dalam gerak lurus yang dipercepat secara terus-menerus sehingga menghasilkan perputaran energi yang terus membesar.

Erl, dalam pada itu, ketika tinju Ghar tengah mencapai puncak gerakan tercepatnya, menjadi terkesiap. Dalam pandangannya, tinju Ghar telah berubah menjadi puluhan meteor yang bersaput petir. Namun demikian, ketenangan Erl dapat menangkap inti pergerakan tinju Ghar yang bergejolak dahsyat, dentuman demi dentuman yang bergelombang datang tiada dapat mengelabui pandangan Erl.

Satu tarikan napas, Erl memutar hawa nafasnya, bersambung dari satu napas ke hirupan napas selanjutnya, mengalirkan hawa memutar seluruh alur pernapasan dalam satu teknik kuno yang disebut Pernapasan Naga Api. Teknik pernapasan kuno yang dilarang untuk dipergunakan, bahkan oleh ksatria api sekalipun, teknik pernapasan yang meningkatkan secara terus menerus tingkat penggunaan hawa panas dari pernapasan, dan mengalirkan ke seluruh pembuluh darah dalam sistem pernapasan. Semakin tinggi tingkatan hawa panas pernapasan yang digunakan, maka jumlah panas yang dihasilkan akan semakin besar, pada akhirnya, jika jaringan syaraf dalam sistem pernapasan tidak mampu melepas kelebihan panas tersebut, semua jaringan dari sistem pernapasan dapat terbakar hangus. Akibat fatalnya adalah kematian. Dan secara garis keturunan, para ksatria api sendiri adalah orang-orang yang diajarkan untuk menggunakan teknik pernapasan api, namun tetap saja dilarang menggunakan Penapasan Naga Api yang mampu membakar langit.

Satu tarikan napas Erl dalam teknik Naga Api selesai, namun anehnya, yang terjadi adalah lapisan hawa lembut yang bersifat dingin tiba-tiba berpendar dari tubuh Erl, arus hawa tersebut kemudian berpilin, berputar kemudian menyebar bagaikan sekuntum mawar yang tengah mekar. Sesaat tersebut, tinju Ghar telah terulur mengarah kepala Erl, seinchi sebelum tinjunya mengena sasaran, kepalan Ghar membuka, kemudia mengepal lagi dengan cepatnya, menciptakan satu ledakan yang memekak telinga, suara ledakannya membahana menggelegar bagai letusan gunung berapi yang tengah berkobar. Mendengar suaranya saja, sudah cukup bagi tinju Ghar untuk membunuh lawannya.

Namun kali ini berbeda, ditengah keyakinannya akan tinjunya yang telah pasti mengenai lawan, tiba-tiba seperti juga sebelumnya, Ghar merasa kehilangan Erl, tinjunya mentah kehilangan sasaran ledaknya. Kosong, senyap, dingin. Begitulah perasaan Ghar. Dalam gerak yang sangat lambat, tiba-tiba Ghar dapat melihat bagaimana Erl menghilang. Tidak, Erl tidak menghilang dari pandangannya. Erl hanya memutar tubuh dengan sangat cepatnya, kemudian, kaki kanan Erl mencuat dalam gerakan melingkar, melakukan satu tendangan yang dinamakan Lintasan Bulan Sabit.

"SPLAAAKKK... BRAKKKH..."

Tendangan Bulan Sabit Erl telak mengenai pangkal leher Ghar, mementalkan tubuh Ghar beberapa tombak, sampai kemudian terhenti ketika menabrak bongkahan batu raksasa, melesakkan tubuhnya hampir setengah kaki.

"Argghh...., kaaa.... kau.... mewarisi... teknik.. ter..la..rang itu..., bukan... bukan hanya Naga... Api... itu.... huarrhhgghh...", pada akhirnya Ghar mengetahui bagaimana Erl melakukan gerakan terakhirnya, bukan saja didasarkan pada teknik Naga Api, ada teknik lain yang terputus di mulut Ghar. Matanya tiba-tiba gelap, kerongkongannya telah penuh dengan darah, sehingga menyumbat suaranya, tertahan dan keluar dalam bentuk darah hidup yang menyembur tanpa henti.

Mata Ghar hanya dapat melihat kegelapan, dan perlahan-lahan pendengaran dan kesadarannya beringsut pergi. Seluruh indranya bagai telah tumpul secara perlahan. Gelap, hening, senyap… lalu lenyap mengakhiri sang waktu yang merambat naik menuju senja, bagai merapal sebait mantra, yang mengalun lirih kemudian hilang tertelan angin, namun melenakan segenap jiwa yang mendengarnya. Harum bunga mawar yang lapat-lapat masih tercium, perlahan dengan halus hilang lenyap pula terhembus semilir angin.

--

Erl : Pertarungan Pertama (II)

sebelumnya...
--

Sekali lagi Erl bergulingan ketika sebuah tendangan cangkul Ghar mengarah ke kepalanya.

"DHUAAGG...",

Suara keras diliputi mengepulnya tanah debu serta serpihan-serpihan batu yang terhajar tendangan cangkul Ghar.

--

Erl melompat berdiri dan kembali melayang melentingkan tubuhnya tinggi-tinggi untuk menghindari satu sapuan kaki Ghar, sebuah serangan kaki yang dinamakan Sabit Kembar, dua rangkaian gerakan dalam satu jurus, dan sapuan rendah yang barusan dilepaskan Ghar baru satu gerakan dan rangkaian jurus Sabit Kembar !!!

Tubuh Erl melenting tinggi, sampai hampir dua tombak tingginya, "Setelah ini, aku harus melompat lagi ke belakang, membuat jarak setidaknya tiga-empat tombak dari Ghar untuk menjaga serangan susulannya yang beruntun bagai hujan meteor itu. Sekali lagi serangan Ghar mampir di tubuhku, tipis harapanku untuk bertahan.", demikian pikir Erl menganalisa keadaan pertarungan. Namun, ketika otak Erl sedang sibuk merangkai gerakan selanjutnya, tiba-tiba dirasakan satu pusaran angin dengan cepat telah meluncur dari bawah, mengantarkan hawa kematian yang pekat.

"DRRRAAAGHH...",

Tubuh Erl kembali melayang tiga tombak lagi, dan kemudian jatuh berdebam di atas tanah berbatu empat tombak jauhnya.

Sedangkan Ghar, tampak menginjakkan kakinya untuk kemudian kembali memasang sikap kuda-kuda. Namun anehnya, Ghar memasang sikap kuda-kuda bertahan.

"Sialan, bagaimana mungkin anak itu membuat otot kakiku terkilir, padahal empat dari sepuluh tendanganku tadi jelas-jelas mengena telak. Setidaknya, tiga-empat tulang rusuknya seharusnya patah akibat tendanganku tadi.", demikian Ghar mengumpat dalam hati.

Rupanya, sesaat tadi, Ghar telah melancarkan 10 tendangan kilat, 4 diantaranya telak mengenai titik vital Erl, sedangkan 6 lagi berhasil dieliminasi oleh Erl. Dan rupanya, efek tangkisan Erl menyebabkan otot kaki Ghar terkilir dan terasa baal untuk beberapa saat. Saat itulah Ghar terpaksa menahan serangan lanjutannya untuk memulihkan rasa baal di kakinya serta meluruskan otot yang terkilir.

Ghar perlahan menghimpun tenaganya, memutar aliran hawa murni, dan mencoba melancarkan jalan darah serta otot yang terkilir di kakinya, begitu pula untuk menghilangkan baal di kedua kakinya.

"hhfffuuupppff.... hooozzzz, hhfffuuupppff.... hooozzzz, hhfffuuupppff.... hooozzzz... ", dalam beberapa kali tarikan napas panjang, cidera kaki Ghar telah pulih seperti sedia kala, dan sekarang saatnya menghimpun tenaga kembali untuk melakukan serangan lanjutan. Sedetik, dua detik, tiga detik, akhirnya tenaga Ghar pulih terkumpul. Namun ketika tiba saatnya melakukan serangan akhir yang akan menamatkan jiwa Erl, tiba-tiba Ghar merasakan satu perasaan tidak nyaman menghampirinya, satu perasaan layaknya seekor binatang liar sedang menghadapi pemangsanya. Perasaan dingin luar biasa tiba-tiba seperti menyergap seluruh pori-pori kulitnya, mengisinya dengan satu kecemasan yang hampir lupa dirasakan Ghar.

"Zratt.... zraaattt, zraattt...", perlahan satu alur hawa yang tidak tampak berpilin dan berputar, kemudian menyebar dengan menyisakan larik-larik tenaga yang meretas daun-daun kering yang tiba-tiba mulai naik seolah terangkat oleh tenaga gaib yang tiada terlihat oleh mata telanjang. Hawa berpilin yang tiba-tiba merekah bagai sekuntum bunga mawar mekar terkembang itu berasal darimana Erl sedang tergeletak.

Erl bangkit, berdiri perlahan dan dengan tenang mulai menatap Ghar yang tengah memulihkan tenaganya kembali.

Tergopoh-gopoh Ghar berusaha menenangkan hatinya yang bergejolak, lalu dengan satu gerakan yang maha cepat, kurang dari sekedipan mata Ghar telah melesat melancarkan tinju yang meledak secepat petir. Gerakan Ghar tidak lagi penuh tipu muslihat seperti sebelumnya. Lurus, cepat, telak dan bertenaga penuh. Satu jurus yang dinamakan Ledakan Tinju Petir, jurus maha dahsyat yang membuat Ghar ditakuti para petarung di utara sungai Rhouglf. Jurus Ledakan Tinju Petir memanglah satu jurus yang benar-benar dahsyat, yang saking hebatnya tidak lagi membutuhkan segala macam tipu muslihat gerakan, hanya terdiri dari satu jurus, namun sanggup untuk meluluh lantakkan apapun yang dilibasnya.

"ZLAPPPZZ....", demikian ketika dengan sangat cepatnya Ghar telah lenyap dari tempatnya berdiri.

"Maka hancurlah segalanya, ditelan api petir, jadilah abu, kemudian berpendar bersama hilangnya cahaya", desis mulut Ghar saat melancarkan tinjunya.

"Musnah !!!",

Namun, ketika tinju dahsyat Ghar sampai ke dada Erl yang tampak terperangah menyaksikan maut yang tengah mengancam di depan matanya, "SPLASSSHHH...", tinju dahsyat itu tidak meledak seperti biasanya ketika mengenai sasaran, namun bagai menghantam bayangan di air, yang kemudian membuyar bagai asap terhembus angin. Tubuh Erl bagai bayangan air dan segumpal asap, yang terus hilang dan buyar ketika tertiup angin. Ghar hanya merasakan kabut lembut nan dingin menyelimuti tinjunya, dan sasarannya telah lenyap dari pandangannya.

"Setan... !!!", umpat Ghar kemudian, tengah dia berbalik, dilihatnya Erl telah berdiri di tempat dimana tadi Ghar berdiri sebelum menyerang. "Gila, bilakah anak ini bergerak ? Tidak, itu bukan sekedar gerakan saja, itu berpindah tempat namanya.", demikian pikir Ghar.

"Namun, tidak mungkin rasanya ada teknik berpindah tempat seperti itu di dunia ini, jikalau ada, hanya para tetua dari golongan Ilr Verrhon saja, para penjaga cahaya, dan anak ini sama sepertiku yang memiliki darah sebagai petarung, bukan dari garis keturunan para penjaga cahaya", Ghar bergumam kemudian.