"""
Cluster
"""
import numpy as np #untuk operasi array
import matplotlib.pyplot as plt #untuk gambar grafik
import matplotlib.animation as animation #untuk menggerakkan grafik
fig, ax = plt.subplots()
plt.ylim(0,40)
plt.xlim(0,40)
#variabel
n = 39
x = 19
y = 19
a = np.zeros((n,n))
a0 = np.zeros((n,n))
a0[x,y] = 1
a[:,:]=a0[:,:]
#print a
#membuat garis/kurva dengan sumbu-x adalah x, sumbu-y adalah y
line, = ax.plot(x, y, 'o')
def animate(i):
global line
for i in np.arange(1,n-1):
for j in np.arange(1,n-1):
if a0[i,j]==1:
x = i + np.random.randint(-1,2)
y = j + np.random.randint(-1,2)
if a[x,y]!=1:
a[x,y] = 1
line, = ax.plot(x,y,'o')
a0[:,:] = a[:,:]
return line,
ani = animation.FuncAnimation(fig, animate, frames=2000, interval=100, blit=False)
ani.save('cluster.mp4',bitrate=1024)
#plt.show()
Friday, March 4, 2016
Cluster Growth Simulation.
Using Python with Numpy and Matplotlib
Monday, February 29, 2016
Tas Kulit
Keluar toko.
Tangan kiri menenteng tas plastik besar.
Tangan kanan memegang tas ransel setengah terbuka, berusaha mengorek-korek isi tas dengan tangan kiri yang juga sedang sibuk menahan agar roti yang barusan dibeli tidak berhamburan keluar. Dia menyesal telah begitu saja menyumpalkan kunci motor ke dalam tas ketika masuk toko tadi. Akan lebih praktis jika masuk saku.
Hujan yang tadi super deras baru saja reda.
Berpapasan dengan pria berpakaian jas hitam ber-tas jinjing kulit, tersenyum ramah. Dia hanya mengangguk seadanya. Masih mengaduk tas.
"Barusan reda mas" Orang itu mengiringi.
"Inggih pak". Ah, itu dia, tangannya meyenggol benda familier, bersuara gemerincing kunci.
"Saya seharian belum makan"
"Hehehe, saya juga pak, saya biasanya makan pagi sama malam. Siang gak pernah." Walah, kuncinya masuk lebih dalam di sela-sela headset dan ipod yang entah tahun berapa dia terakhir kali memakainya.
"Saya lapar"
"Nggih, saya juga. Tadi gak sempat sarapan, berangkat ngajar-nya kesiangan". Menarik keluar kunci. Dan berbonus benda merah kusut pipih panjang. Seperti spagetti dengan saus merah entah apa. Uh, ngapain pakai acara tersangkut kabel headset segala.
"Bisa minta uang Dik?"
Akhirnya sampai juga ke motor, punya istrinya yang dibeli sepuluh tahun lalu. Mengaitkan tas plastik besar ke kait depan tidak mudah. Akhirnya dia putuskan untuk dipangku saja, tapi nanti pasti agak kikuk ketika motor jalan.
"Kalo lapar, saya tadi beli roti pak. Buat ulang tahun istri. Bukan yang besar, saya tadi beli yang kecil juga, empat buah. Saya buka jatah saya ya, kita bagi dua, saya juga lapar "
"Gak suka roti mas"
Panggilannya sudah berubah.
"Oh, mari makan ke rumah saja ya. Istri saya masakannya enak lho. Sekalian njenengan bawakan tas plastik roti ini, saya kesulitan bawa"
"Wah, gak usah mas"
"Oh, ya sudah" mengambil uang dua ribu tuk tuk bayar parkir. Hampir saja plastik rotinya terjatuh,
"Uang saja mas"
"Maaf, apa pak?" Memandang aneh karena si bapak tak mau membantu. Bukannya ingin dibantu sih.
"Saya minta sodaqoh pak" panggilannya berubah lagi
"Apa itu pak". Kunci kontak motor akhirnya terpegang juga, sebuah prestasi yang patut diacungi jempol karena isi tas tidak berhamburan keluar. Eits, gak usah mengacungkan jempol, nanti rotinya jatuh.
"Saya minta sumbangan"
"Sebentar pak" sulit juga ngobrol sambil membetulkan letak kotak kue dengan jari-jari tangan kanan menjepit lembaran dua ribuan. Akhirnya dia gantung saja di setang sepeda sebelah kiri.
"Sumbangan apa pak?"
"Ya sumbangan uang mas" hm, panggilan si bapak ini tidak konsisten. Tetapi kalo dipikir, pakaian si bapak juga tidak konsisten dengan "pekerjaannya"
Dia memandang jas yang dikenakan, juga tas jinjing kulit yang sudah pasti jauh lebih mahal dari tas ransel ber-resleting-semi-jebol yang dia pakai. Spontan lihat sepatu, nah itu dia, juga kulit. Secara penampilan dia kalah jauh, karena kemana-mana dia pake sepatu jogging, bahkan saat mengajar dengan atasan batik.
"Ini pak" dia serahkan uang dua ribu yang sedianya buat parkir.
Si bapak setelah menerima langsung ngeloyor pergi.
Ambil dua ribuan lagi deh. Ngobrak-abrik isi tas. Kali ini cari recehan, mungkin ada koin lima ratusan empat buah.
Ada.
Sepanjang jalan dia merenung. Dengan kue ultah yang dia putuskan untuk ditenteng sambil melajukan motor pelan-pelan dengan satu tangan.
Bagaimana jika bapak itu punya anak?
Bagaimana jika dia "bekerja" seperti itu untuk menyekolahkan anaknya
Bagaimana jika anaknya tak tahu kalo bapaknya dinas di emperan sebuah toko roti
Dia bahkan tak tahu kalo penghasilan bapak itu halal. Karena beda dengan tukang parkir, meski sama-sama mendapatkan dua ribu, tukang parkir memiliki deskripsi kerja yang jelas.
Tapi dia tahu satu hal
Dia gak mau nanti anaknya malu karena bapaknya "bekerja" sebagai peminta-minta di jalan.
#Megatruh
Wednesday, February 17, 2016
Allies in The Dark
Bertanya kepada seseorang dengan bidang yang sama sekali lain, bahkan bertolak belakang, ternyata (kadang) ada gunanya.
Bukan, solusinya bukan dari situ tentu saja, namun pertanyaan-pertanyaan yang jarang kita pikirkan karena sudah terbiasa berkutat di sana akan muncul, dan dari pertanyaan-pertanyaan yang tidak biasa itu (mungkin) akan muncul solusi.
Kadang kita perlu palu yang berbeda untuk mengawali memecahkan sebuah masalah, begitu sudah ada sedikit retakan bisa kita lanjutkan membongkar dengan palu favorit yang kita kenal baik.
Tuesday, February 16, 2016
Follow
Kata-kata teraneh yang kubaca: ku habis follow kamu, folback aku ya...
Aneh sekali, bukankah mem-"follow" sesuatu itu seharusnya murni karena ingin, bukan karena diminta?
Follow menurut saya beda dengan Friend. Berteman bisa dengan siapa saja. Bagaimana dengan follow/mengikut? Well, saya hanya mengikuti hal-hal yang menarik bagi saya, baik itu dari teman atau bukan. Saya gak ingin terpaksa mem-follow teman yang postingannya seputar keluh kesah pribadi, rumah tangga atau penuh dengan barang dagangan yang tidak saya perlukan. Ada teman lain yang cocok atau senang dengan posting semacam itu, buat bahan gosip, tapi tidak untuk saya, :)
Juga beberapa yang mirip semacam berikut (tulisan aslinya, berikut kesalahan ketik maupun penggunaan kata-katanya)
Followback!!!
"If you not followback me - I was unfollow you"
...
#edisiError
Sunday, February 14, 2016
Paradox Dua iPad Alfa Beta.
Saat hanya punya satu iPad; Alfa dan Beta selalu berebut.
Alfa selalu pegang iPad, di manapun, kapan pun. Bahkan tidur pun sambil pegang iPad; terbangun kalau iPad diambil. Kebiasaan yang dimulai bahkan sejak sebelum dia umur setahun.
Saat dek Beta lahir, dan si adek mulai mengenal iPad, adek harus menunggu Alfa tidur jika ingin main iPad, atau curi-curi kesempatan saat si kakak sedang asyik main mobil-mobilan, dan segera lari ketika kakak mendekat.
Adakalanya saat adek sedang asyik dengan Animal Zoo tiba-tiba kakak mendekat dan terjadilah...
Setelah punya dua;
Mereka sering main mobil-mobilan berdua. Main pasaran, buat toko-tokoan, pura-pura jadi penjual es krim keliling, adek memasak mie dan ayam buat kakak, ibuk dan ayah. Apa saja selain main iPad.
-_-
iPad hanya untuk teman berangkat tidur Beta. Alfa kalau ngantuk malah ngajak ngobrol ayah sampai tertidur, tanpa menyentuh iPad sama sekali.
Kalaupun mereka main iPad, mereka main iPad BERDUA. Alfa mengajari Beta berbagai permainan sampai bisa, kemudian sang kakak melihat di belakang adek yang sedang asyik main sambil sesekali memperingatkan jika adek bingung atau belum tahu sesuatu. Juga sering lihat film atau foto berdua sambil saling tukar cerita.
iPad yang digunakan adalah iPad yang lama.
#Kinanthi
Aturan
memang dibuat untuk dipatuhi
atau dilanggar.
Tapi harus ingat, pelanggar aturan akan dikenai sanksi.
Jadi, jangan bangga jika melanggar aturan
tapi lari dari sanksi.
#Megatruh
#EdisiError
Tuesday, February 9, 2016
Sunday, February 7, 2016
The New Setup
I move the ride cymbal to the left to accommodate my open handed playing practice.
Planned to place ride-crash cymbal on the right, but for now, I have 10" splash, 12" china and a tambourine, :)
Oh, and I place the cowbell so it hit by my left pedal, alternate between cowbell, hi-hat and left bass-drum-pedal, :P
I wish I had 8" tom, ...
Planned to place ride-crash cymbal on the right, but for now, I have 10" splash, 12" china and a tambourine, :)
Oh, and I place the cowbell so it hit by my left pedal, alternate between cowbell, hi-hat and left bass-drum-pedal, :P
I wish I had 8" tom, ...
Thursday, February 4, 2016
#SupernovaIEP @deelestari
Menjelang dibukanya pre-order Supernova Inteligensi Embun Pagi, hampir semua toko buku online mengalami crash/hang/down. "Peretas" sedang beraksi? :D
Nina Bobo
Mata si buah hati perlahan-lahan terkatup, berangkat ke alam mimpi.
Tiada bosan ku jadi saksi keajaiban kecil ini tiap malam.
Wednesday, February 3, 2016
Teror Hitam
Pagi ini sebelum ngampus seperti biasa teriak-teriak di loteng dulu. Namun kali ini lain, jika biasanya langsung nggebuki drum sekitar sejam atau dua jam, kali ini tanganku meraih tuts piano. Nyalakan, pilih stereo grand piano, kaki meraih sustain secara otomatis.
Kumainkan Terlalu Lama Sendiri dari Kunto Aji.
Eh, tunggu
ada yang aneh.
Aku bisa memainkannya dengan lancar.
Padahal pake nada aslinya, nada dasar A. Tangga nada dengan tiga tuts hitam di piano.
Wow, ulang lagi ah.
Dan benar saja, jari-jari ini dengan santai menekan AMaj7, kunci dengan dua tuts hitam. Juga DMaj7 (atau F#m/D bagi yang tak terbiasa dengan nama serem).
Hm, sejak kapan aku bisa main kayak gini? Biasanya selalu terintimidasi dengan tuts-tuts hitam.
Biasanya paling ekstrim (selain yang normal C), aku hanya main piano dengan nada dasar G, F. Paling mentok ya D.
Mungkin "Practice make Perfect" ada benarnya. (gak juga, aku jarang berlatih :D )
Kumainkan Terlalu Lama Sendiri dari Kunto Aji.
Eh, tunggu
ada yang aneh.
Aku bisa memainkannya dengan lancar.
Padahal pake nada aslinya, nada dasar A. Tangga nada dengan tiga tuts hitam di piano.
Wow, ulang lagi ah.
Dan benar saja, jari-jari ini dengan santai menekan AMaj7, kunci dengan dua tuts hitam. Juga DMaj7 (atau F#m/D bagi yang tak terbiasa dengan nama serem).
Hm, sejak kapan aku bisa main kayak gini? Biasanya selalu terintimidasi dengan tuts-tuts hitam.
Biasanya paling ekstrim (selain yang normal C), aku hanya main piano dengan nada dasar G, F. Paling mentok ya D.
Mungkin "Practice make Perfect" ada benarnya. (gak juga, aku jarang berlatih :D )
Saturday, January 30, 2016
Thursday, January 28, 2016
Budaya
Pagi.
Alfa, Beta dan ibuknya sudah berangkat.
Kututup semua pintu depan.
Naik ke loteng.
Nyalakan macbook. Hari ini ingin belajar pattern drum jazz-bossa atau swing tapi yang open handed, koordinasi kaki-tangan-ku masih kacau untuk genre ini.
Kucari lagu-lagu Laura Fygi.
Nemu yang lumayan cocok, All of Me.
Putar.
Loncat ke kursi drum, selagi masih intro bass.
Suara alto Laura mulai masuk.
Siap-siap, stik di tangan, drum akan masuk dalam tiga, dua , satu, ...
"dung, blang gen tak tung dung, blang gentak tung dung ..."
....
Suara campursari model koplo masuk ke telinga dengan kekuatan seperti tetangga yang punya hajat nikahkan putrinya.
Eh, tunggu...
Memang ada tetangga yang nikahkan putrinya. Dan itu hari ini, walah.
#####
Telentang di karpet,.
Stik drum tersisa satu, entah di mana pasangannya.
Teriakan Laura Fygi yang biasanya bergema di kamar atas kalah dengan "Lingsir Wengi" yang dilanjut dengan "Burung dalam sangkar" nya Panbers yang dilanjut dengan "Manusia Biasa" Radja. Entah bagaimana si juru sound bisa memiliki playlist ajaib macam itu.
Tentu saja speaker mungil 3 Watt di kamarku tak bakal bisa mengimbangi tumpukan cabinet 5000Watt yang volumenya di-set maksimal.
Mandi aja. Mengistirahatkan telinga di kampus.
Lah, pas di kamar mandi, suara sound system tetangga lambat laun dikecilkan dan akhirnya mati, weleh.
OK, gakpapa. Teruskan mandinya.
Selesai mandi. Nyalakan lagi Laura Fygi. Stik satunya ternyata menggelinding ke bawah sofa, tak masalah, vokal masuk, dan drum masuk dalam tiga, dua, satu...
Dok dok dok, kulonuwun.
:(
Tetangga memintaku datang ke rumahnya, kenduri. Standart rutin acara pengantin di sini.
Rupanya itu yang bikin suara musik berhenti.
Gak bisa pura-pura tidak ada di rumah, sepeda motorku kuletakkan di luar.
Gagal nge-drum lagi.
Untung sudah mandi, cuma perlu pakai celana yang "pantas", tak sampai semenit aku sudah di rumah tetangga. Terlambat beberapa detik, kudengar tetangga lain yang diundang sedang menjawab salam dari pemimpin doa.
Hiburanku pagi ini adalah, doanya dilantunkan dalam bahasa jawa kuno, bahasa yang familier bagiku, dan sudah lama tak kudengar, sejak lulus SMU.
Dan doa itu lama sekali, sangat menyenangkan, aku tahu artinya hampir keseluruhan sedangkan tetangga lain memiliki tatapan kosong dan mengucapkan "nggih", pengganti "amin", dalam timing yang kurang tepat. :)
Memang, aku tahu bahasa jawa klasik, tetapi aku tidak bisa membungkus nasi golong kenduri. Dari dulu selalu dibungkuskan orang.
Lha sekarang ini, semua celingak-celinguk, karena gak ada yang tahu caranya.
Akhirnya, dengan sedikit improvisasi, jadilah ini, :)
Monday, January 25, 2016
Akhir
Tarik napas....
Satu.
Dua.
Tiga.
Keluarkan...
###
Nun di atas sana, di dimensi yang hanya terlihatt sang Mata, Ishtar sang Dewi kesuburan tersenyum. Dia telah melakukan tugasnya, membawa cinta ke mereka, dan perang. Gio dan Diva di sampingnya
Seperti mata uang. Tak laku jika cuma ada satu sisi.
Seperti Gio dan Diva. Jika satu lenyap, satunya akan mencari hingga pelosok rimba terdalam.
Cinta dan perang, terlihat bertentangan.
Keduanya adalah Ishtar.
###
Hening.
Bahkan Alfa pun terlelap.
Hanya Bodhi yang terjaga, menatap damai ketiga teman gugusnya.
###
"Cuma gitu doang?" Dimas protes, berusaha merebut wireless keyboard dari pangkuan Reuben.
"Gak boleh, aku ingin endingnya kayak gitu, elegan..."
"Elegan apaan, tuh super menggantung. Sudah capek-capek membangun plot dan banyak twister, cuma diakhiri dengan keheningan, gak bisa..."
"Kan karakter Bodhi juga khas gitu, diakhiri dengan pesta? Malah gak banget, Bodhi gak punya tempat"
"Halah, kamu memang naksir Bodhi dari dulu, padahal itu ciptaanku kan"
"Jangan mengalihkan topik, endingnya harusnya..."
###
Sudah banyak kertas tempelan tercoret.
Dinding yang setahun ini penuh dengan kertas plot lambat laun mulai bersih, sudah pindah ke MacBook.
Satu kertas belum terlepas, bahkan belum ada tulisannya. Cuma kata #Ending tanpa isi.
Dewi Lestari, si empunya kertas, sedang sibuk bikin roti.
Satu.
Dua.
Tiga.
Keluarkan...
###
Nun di atas sana, di dimensi yang hanya terlihatt sang Mata, Ishtar sang Dewi kesuburan tersenyum. Dia telah melakukan tugasnya, membawa cinta ke mereka, dan perang. Gio dan Diva di sampingnya
Seperti mata uang. Tak laku jika cuma ada satu sisi.
Seperti Gio dan Diva. Jika satu lenyap, satunya akan mencari hingga pelosok rimba terdalam.
Cinta dan perang, terlihat bertentangan.
Keduanya adalah Ishtar.
###
Hening.
Bahkan Alfa pun terlelap.
Hanya Bodhi yang terjaga, menatap damai ketiga teman gugusnya.
###
"Cuma gitu doang?" Dimas protes, berusaha merebut wireless keyboard dari pangkuan Reuben.
"Gak boleh, aku ingin endingnya kayak gitu, elegan..."
"Elegan apaan, tuh super menggantung. Sudah capek-capek membangun plot dan banyak twister, cuma diakhiri dengan keheningan, gak bisa..."
"Kan karakter Bodhi juga khas gitu, diakhiri dengan pesta? Malah gak banget, Bodhi gak punya tempat"
"Halah, kamu memang naksir Bodhi dari dulu, padahal itu ciptaanku kan"
"Jangan mengalihkan topik, endingnya harusnya..."
###
Sudah banyak kertas tempelan tercoret.
Dinding yang setahun ini penuh dengan kertas plot lambat laun mulai bersih, sudah pindah ke MacBook.
Satu kertas belum terlepas, bahkan belum ada tulisannya. Cuma kata #Ending tanpa isi.
Dewi Lestari, si empunya kertas, sedang sibuk bikin roti.
The Sarcastic Magnus, :)
“I was proud that the four of us responded as a team. In perfect unison, like a well-oiled combat machine, we turned and ran for our lives.”
Excerpt From: Riordan, Rick. “Magnus Chase and the Sword of Summer.”
Saturday, January 23, 2016
Joke Agreement, :)
Among musicians, there's often silent agreement about joke or not. Just like this (I got it at the comment on Scott's Bass Lesson in Youtube)
They're having fun and not offended at all. I like this.
Friday, January 22, 2016
Mulai nge-Mix Lagi
Nge-track lagu lamaku yang hilang.
Dulu menggunakan gabungan Cool Edit Pro (Windows), Fruity Loop (Windows), Audacity (Linux), dan Hydrogen (Linux).
Sekarang full menggunakan GarageBand.
Judulnya Entahmengapadiriinimenjaditakberdayasaatkautiadalagidisisiku.
Masih dalam tahap membuat ketukan dan MIDI section.
Gitar dan vokal belum ada,
Dulu menggunakan gabungan Cool Edit Pro (Windows), Fruity Loop (Windows), Audacity (Linux), dan Hydrogen (Linux).
Sekarang full menggunakan GarageBand.
Judulnya Entahmengapadiriinimenjaditakberdayasaatkautiadalagidisisiku.
Masih dalam tahap membuat ketukan dan MIDI section.
Gitar dan vokal belum ada,
Thursday, January 21, 2016
Legal
Saya penasaran apakah share tentang jus kulit apel, sawo, durian atau "cara meregenerasi" gigi, atau mencegah serangan jantung dengan rutin minum es kulit lemon di pagi hari itu legal, apakah itu tidak termasuk mallpraktek? Karena jika saya melakukan apa yang diminta oleh share terakhir, maka akan sangat mungkin dipastikan saya bakal berakhir di rumah sakit.
Banyak sekali share/tips/berbagi di grup-grup percakapan, media sosial, blog, ...
Tentu saja itu bagus, tetapi apakah sudah pasti aman untuk dilakukan?
Saya seringkali membaca artikel yang di-posting ternyata adalah hoax. Lebih parah lagi, ketika kita memberitahu bahwa itu berita palsu, si pen-sharing malah kadang tersinggung dan menulis "saya hanya ingin berbagi kebaikan, apakah salah?". Lihat bahwa yang men-sharing pun tidak mengerti konsep hoax.
Pertahanan terbaik untuk hal-hal tidak jelas seperti di atas agar tidak menghancurkan diri-sendiri adalah dengan berhati-hati. Jangan minum air rendaman tembakau, jangan minum cuka secara langsung, jangan melakukan sesuatu yang tak masuk akal meski itu demi kesehatan,..., kita tak akan bisa menuntut siapapun jika terjadi hal-hal yang tak diinginkan.
Hati-hati, ...
Jungle Snare, Reggae and Open Handed Practice
I'm guitarist, :)
Just practicing hand-foot coordination with open handed playing. It's terrible of course, :).
The paradox I just found is I never like my main snare sound. But after I got the jungle snare (with a lot cracking and popping sound), I realized that my main snare sound is cool, for me, :P.
I used Bruno Mars "The Lazy Song" as backtrack.
Wednesday, January 20, 2016
Tuesday, January 19, 2016
A Little Upgrade
Just got the jungle snare. A little 10 inch beast it is.
Been searching for two full years (exactly, I started to hunt it after watching X-Mas rendition using this jungle snare).
Of course it available online everywhere, except Indonesia.
There's one online shop, but when I ordered it (and pay it without thinking), it turned out that the stock is unavailable.
:(
Keep searching...
I accidentally opened some web page selling sport and music equipment. And it happened that this jungle snare is there. Maybe there's no one know it because it has no picture of it in the display, just blank white with serial code of it.
Having searched it for two years, I know that's the one I've been looking for.
And it out of stock.
So I emailed the owner of the shop, ask if it could be preordered because I read that the shop is officially affiliated with Sonor.
They promised will get the snare for me. But before it happened, the representative of the shop emailed me to inform that there one old stock at their display (offline shop) at the mall, at discount price!!! She asked me if I want to buy that instead, of course...
So, here is my 'new' mini setup. If you wonder what the big tom at the left doing, I play drum with open and close handed with same portion.
Thursday, January 14, 2016
Cajon
Untuk tempat duduk, nyaman.
Untuk menyimpan kabel-kabel, tak akan terpuntir-puntir di dalam tas saat berangkat ke tempat pementasan.
Untuk tempat pedal efek gitar jika ada.
Dalam posisi miring sangat ideal digunakan untuk meja lesehan saat menulis .
Tempat sandaran gitar.
Tempat kopi, gula, sendok, cangkir, jika berencana nge-jam sambil ngopi di suatu tempat. Hal ini juga menjadi nilai plus karena kopi menyerap kelembaban sehingga cajon tetap kering dan nyaring.
Tempat menyimpan stik drum.
#edisiError
Monday, January 11, 2016
Thank's to Thief
Hari masih pagi.
5.30
Belum sempat nyanyi lagu 'siapa mau mandi sama ayah' (bikin lirik sendiri dari lagu 'if you happy and you know it') eh Alfa minta mandi duluan, sepertinya biar bisa main truk-kecebur-laut lebih lama.
Beta main iPad, ibuk menggoreng ikan paus (kata adek).
'Ayah, ayah mandi bareng sama mas Yayan' kata Alfa.
'OK', tutup kamar mandi, mandi juga. Loh, apa nggak sempit ada bak mandi Alfa? Gak juga, bak mandi Alfa, truk dan segala pelabuhan serta jalan kereta api ada di luar kamar mandi, ...
Katanya mandi bareng? Memang,
Mandi bareng tak harus berada di tempat yang sama kan? :)
Selagi proses sabunan adik teriak-teriak
'Ibuk..., iPad...'
(hm, bukannya adek tadi main iPad?)
'Tunggu dulu dik, ibuk masih goreng ikan'
'Ibuk..., iPad...'
'Iya, tunggu sebentar ini ibuk masih menggoreng, lihat ini, nih ibuk goreng ikan'
'Ibuk, adek mau ikan'
'iya, ambil satu, awas masih panas'
Selesai mandi, Alfa juga minta pake handuk, mandinya juga diakhiri. Membantu Alfa mengenakan baju Thomas and Friend, sisiran, bedakan, pake sendal jepit warna pink dan mengantar ke rumah budhe tuk diantar ke sekolah.
Alfa sudah beranjak dari kamar ke pintu depan yang terbuka.
'Cepat tutup pintu ayah, adik selak ikut keluar'
Yup, dia berangkat ke sekolah dengan kostum seperti itu; gak mau pake seragam, juga sepatu.
'Ndak mas, adik mau mandi kok, '
Kugendong Alfa ke rumah budhe.
Kembali dari rumah budhe, ternyata adek masih heboh minta iPad.
Lha memang tadi ditaruh mana dek?
Adek sepertinya bingung njawabnya, cuma menunjuk jalan.
Hah? Dia taruh iPad di jalan?
"Di sana yah" sambil nunjuk tempat dia biasa duduk main bambu air (tanpa iPad)
Lha nggak ada gitu lho.
"Loh, sudah diambil ayam" kata Adek
....
Dan serasa dapat pencerahan...
"Dek, tadi iPadnya dipinjam?"
"Iya"
"dipinjam siapa?"
"Pak Pak" (itu adalah sebutan Alfa Beta untuk orang dewasa tak dikenal)
iPadnya hilang dirampas orang. Sejak tadi adek berusaha untuk memberitahu, tapi belum punya kosakata yang lengkap untuk menceritakan. ("Ibuk, iPad..." mungkin maksudnya adalah "Ibuk, iPadnya di ambil orang")
Jam 5.30
Dan kami langsung lemas, melihat kemungkinan bahwa bisa saja Beta yang hilang.
Thanks to thief for not take our daughter.
Kembalian
Ada dua kejadian sedikit mengganjal yang biasa saya alami namun sering berulang sehingga ganjalannya semakin menumpuk dan akhirnya tumbanglah tumpukan itu.
Pertama adalah es degan bakar.
Es, ok sudah tahu.
Degan? Itu kelapa muda.
Bakar? Yup kelapa muda tersebut dibakar dulu sebelum dikupas.
Bagaimana hasilnya? Kelapa muda yang dibakar kemudian disajikan dengan es?
Well, saya lebih suka kelapa muda yang tidak dibakar, dengan atau tanpa es.
Ganjalannya bukan di situ. Ketika saya masih hampir tiap minggu melakukan perjalanan pulang pergi ke jogja naik motor, saya kadang-kadang mampir tuk beli es degan bakar tanpa dibakar. Ada satu warung langganan saya.
Bukan karena warung terkenal atau dapat tips dari teman, namun karena warung itu selalu sepi sedangkan yang lain kebanyakan ngantri tuk menikmati kelapa mda yang dibakar dan di kasih es.
Selalu sepi tiap saya lewat daerah es degan bakar situ, dan akhirnya saya selalu ke warung itu.
Lha mana ganjalannya? Tak ada yang mengganjal, sepertinya itu cerita yang sangat normal.
Nah, setiap saya selesai dan membayar, si pemilik warung selalu tidak punya kembalian yang pas. Sehingga saya selalu diberi kerupuk sebagai ganti kembaliannya.
Satu kali, ok. Mungkin karena warung memang sepi.
Dua kali, dapat kerupuk lagi.
Tiga kali, kerupuk (sepertinya ini kerupuk minggu lalu yang gak laku-laku).
Well, saya gak suka kerupuk. Lagipula, mana ada orang setelah minum es baru makan kerupuk?
Keempat, ..., kubayar dengan uang pas. Eh malah ditawari kerupuk.
Ok, gak lagi ke tempat itu. Dan karena yang lain selalu ngantri, gak pernah lagi beli es degan bakar tanpa dibakar.
Kehilangan satu pelanggan karena tak punya kembalian.
Ehm, mungkin kehilangan semua pelanggan (yang jumlahnya cuma satu).
Mungkin dulu ada pelanggan lain yang lari karena hal yang sama.
Mungkin juga warung itu sepi karena kerupuk.
....
Yang kedua bukan karena kerupuk, karena kerupuk merupakan bagian dari paket sate langganan.
Entah kenapa harga sate di sini selalu nanggung sehingga meski saya beli satu porsi atau dua porsi, jumlah uang besar yang saya berikan selalu memiliki kembalian dua ribu atau seribu.
Dan selalu tidak ada kembalian sehingga penjual berinisiatip untuk "kembaliannya saya bawa dulu ya".
Namun jika saya beli ke tempat itu lagi, "tabungan" saya tidak pernah dihitung.
Tentu saja dengan sedikit ribut saya akan bisa mendapatkan hak saya, namun ada energi, emosi dan tekanan darah yang teraduk-aduk. Jadi biarkan saja.
Tentu saja sedapat mungkin saya selalu mengusahakan untuk tidak beli di situ. Kalaupun terpaksa, saya selalu membawa uang pas, meskipun dengan tambahan tumpukan koin receh.
Saya bukan lagi pelanggan setia di situ. (Saya pelit, :P )
Akhirnya sepi juga.
Hal kecil yang ditumpuk memang bisa fatal.
Tentu saja di sisi lain. Jika kita awalnya hanya memperhitungkan barang dagangan sebagai modal usaha, kita juga perlu menambah "persediaan uang kembalian" sebagai faktor yang penting juga. Pastikan kita selalu punya uang kembalian.
Ehm, satu hal lain. Selama saya beberapa tahun di Jogja, sekecil apapun, saya selalu menerima uang kembaliaan (bukan permen atau kerupuk, atau entah apa itu), meski itu seratus rupiah, di toko atau warung manapun, baik toko besar ataupun kecil. Itu sangat mengesankan.
Prasangka/Prospek/Prevent?
Pernah menerima broadcast tentang kecelakaan?
Dengan korban kritis tak sadarkan diri dan telepon genggam tak dapat diakses karena berpassword, yang kita tahu hanya nama dan alamat seadanya dari KTP. Biasanya broadcast tersebut memang dirancanc untuk disebar seluas-luasnya dengan harapan salah satu penerima pesan merupakan kenalan si korban dan segera mengambil tindakan yang diperlukan (menghubungi keluarga, ke rumah sakit, dsb)
Bagaimana jika korban tersebut adalah kita? Semoga tidak terjadi. Tentu saja kita harus bersiap untuk keadaan seperti itu.
Pencegahan, tambahkan nomor hp kita dan keluarga di dompet. Agar penolong tahu siapa yang harus dihubungi. Kelemahan model seperti ini, jika dijambret tentu saja pencopet juga tahu nomor kita dan keluarga.
Perlu kata kunci atau perjanjian dengan keluarga jika sewaktu-waktu ada keluarga ditelepon tentang keadaan kita. Catat nomor telepon kost dan nomor hp beberapa teman dekat dan letakkan di rumah di mana semua anggota keluarga tahu untuk cross-check (jangan ditaruh di dompet)
Tentu saja broadcast seperti itu juga menjadi bahan ide untuk penjahat yang kreatif.
Bagaimana jika kita dalam posisi penerima broadcast tersebut dan ingin untuk menolong, namun was-was kalo itu adalah modus penipuan?
Mudah mengidentifikasi penipu atau bukan. Penipu akan minta untuk jangan menelepon atau menghubungi polisi.
Penipu akan minta untuk menghubungi nomor hp tertentu (yang sewaktu-waktu dapat dibuang), bukan nomor instansi semacam rumah sakit atau kepolisian.
Penipu juga akan jelas-jelas meminta untuk transfer sejumlah uang, mungkin dengan beberapa alasan yang logis walaupun berputar-putar.
Konsisten
Sudah sepuluh tahun sejak terakhir kali menyusuri jalanan di Sawojajar
Segalanya masih tampak sama, tentu saja dengan upgrade di sana-sini, tapi feel Sawojajar yang kurekam bertahun-tahun lalu tetap sama dengan yang terasa sekarang
Jalan yang kebayakan dilapisi paving kecuali jalan besar yang beraspal mulus
Perempatan yang hampir ada tiap limapuluh meter. Papan-papan nama jalan "Danau ..."
Perasaan familier yang sama: "Jangan-jangan kesasar ke Wendit, atau balik lagi ke pintu masuk depan atau ke kuburan Buring..." masih terasa.
Yeah, semua masih sama.
Juga kemacetan di Ranu Grati, meski ada peningkatan sedikit. Jumlah kendaraan yang makin membludak menyebabkan antrian di lampu merah dekat jalan masuk yang dulu paling parah dimulai dari jembatan, kini sudah dimulai sejak pompa bensin (yang dulu sering kusinggahi tuk mengisi bensin karena banyak mbak cantik yang bertugas di situ).
Hawa panas antrian masih terasa sama.
Ups, ada yang beda sedikit.
Karena dulu belum ada, maka dulu tidak akan merasakan sensasi ketika sedang asyik ngantri lampu merah sambil menekuk muka tiba-tiba jari-jari kaki terlindas becak motor yang nekat menerobos.
Dulu belum ada becak motor, bisa menunggu lampu merah sambil menyanyi atau mengumpat hawa panas dengan tenang.
(masih sakit)
Wednesday, January 6, 2016
All of Me
All of me, why not take all of me?
Can't you see I'm no good without you?
Take my lips, I want to lose 'em
Take my arms, I'll never use them
Your goodbye left me with eyes that cry
How can I go on, dear, without you?
You took the part that once was my heart
So why not take all of me?
Come on and take, take all of me
Disse alguém que há bem no coração
Um salão onde o amor descança
Ai de mim que estou tão sozinho
Vivo assim, sem esperança
A implorar alguém que não me quis
E feliz, bem feliz seria
Coração meu, convém descansar
Soluçar mais devagar
Disse alguém que há bem no coração
Um salão, um salão dourado onde o amor sempre dança
Ai de mim que só vivo tão sozinho
Vivo assim, vivo sem ter um terno carinho
A implorar alguém que não me quis
E feliz então eu sei, bem sei que não mais seria
Meu, meu coração sem esperança
E vive a chorar, soluçar
Como quem tem medo de reclamar
(Laura Fygi "Disse Alguem (All Of Me)")
Salut (Lagi)
Lewat pertigaan antara Dieng dan Galunggung?
Di sana ada seorang bapak supeltas yang mengatur kendaraan yang mau menyeberang atau mau terus.
Beda dengan supeltas lain (mungkin ada yang lebih familier dengan sebutan "Pak Ogah", cepek?), bapa supeltas yang ini jarang menggunakan peluit. Hebatnya, jarang ada yang tidak patuh.
Mungkin karena gerakannya yang energik, mungkin karena gerakannya yang sopan (gesture-nya sangat "beda" sekaligus menghibur), mungkin karena tidak pernah teriak atau mengumpat, mungkin karena tegas namun ramah (jika ada yang nekat mau menerobos beliau dengan tegas pasang badan sambil bilang "sabar nggih, sabar...")
Apapun, sungguh menyenangkan melihat pemandangan itu di pagi hari.
(Mungkin karena gerakan yang energik, atau mungkin karena lalu lintas sudah lengang, jam 9 pagi sudah tidak di situ)
Di sana ada seorang bapak supeltas yang mengatur kendaraan yang mau menyeberang atau mau terus.
Beda dengan supeltas lain (mungkin ada yang lebih familier dengan sebutan "Pak Ogah", cepek?), bapa supeltas yang ini jarang menggunakan peluit. Hebatnya, jarang ada yang tidak patuh.
Mungkin karena gerakannya yang energik, mungkin karena gerakannya yang sopan (gesture-nya sangat "beda" sekaligus menghibur), mungkin karena tidak pernah teriak atau mengumpat, mungkin karena tegas namun ramah (jika ada yang nekat mau menerobos beliau dengan tegas pasang badan sambil bilang "sabar nggih, sabar...")
Apapun, sungguh menyenangkan melihat pemandangan itu di pagi hari.
(Mungkin karena gerakan yang energik, atau mungkin karena lalu lintas sudah lengang, jam 9 pagi sudah tidak di situ)
Tuesday, January 5, 2016
Senjata paling ampuh menghadapi tukang debat adalah diam.
Lihat, jika kita berusaha mengimbangi atau mematahkan argumen dia, kemungkinan besar akan kalah.
Ada kemungkinan kecil kita bisa mengalahkan dia dalam debat, tetapi apakah sepadan dengan waktu yang habis dan tenaga yang terkuras? Mungkin tidak.
Hal yang paling hemat energi dalam situasi debat yang menurut kita gak begitu penting adalah diam.
Pendebat akan capek sendiri.
Bagaimana jika pendebat ngotot minta kita njawab pertanyaan-pertanyaan pancingan dia? Pertanyaan-pertanyaan yang jika dijawab akan membuka pintu debat lebar-lebar
Dalam situasi ini kita perlu, menambahkan energi sedikit untuk berpikir, sebenarnya apa maunya dia? Dia suka jawaban apa? Dia setuju tentang apa?
Nah, jika menemukan jawaban, jawab pertanyaan-pertanyaan pancingan/jebakan dengan jawaban yang tidak mungkin didebat. Jawaban-jawaban yang menunjukkan bahwa kita setuju sepenuhnya dengan dia (walaupun kenyataannya lain).
Nah, dengan jawaban semacam itu, kemungkinan besar kita akan segera lepas dari dia. Apalagi yang akan didebat jika kita sepenuhnya setuju dengan dia? Yup, jangan beri bahan bakar dan amunisi untuk bahan debat dia.
Tentu saja semua saran di post ini bisa dibalik jika kita ingin efek sebaliknya (misal ketika tiba-tiba kita ingin berdebat habis-habisan dengan seseorang).
Selamat mencoba, :)
#edisiError
Sosialisasi
Internet membuat kita dapat berkomunikasi walau jarak berjauhan. Ingin ngobrol tapi jarak ribuan kilo? Tinggal buka Facebook, Skype, Line, WhatsApp, .... Aplikasi-aplikasi berlomba-lomba untuk menyuguhkan fitur yang diinginkan pengguna sekaligus menyingkirkan fitur yang dianggap merepotkan.
Masih ingat Koprol? Platform media sosial berbasis lokasi buatan Indonesia yang diakuisisi Yahoo? Yeah, mungkin ada yang malah baru dengar sekarang.
Kenapa tidak begitu bisa bersaing? Begini, Koprol memiliki fitur semacam check-in ke suatu tempat sehingga bisa mengobrol dengan orang orang di tempat tersebut. Misal check-in ke sebuah kampus, kafe atau sekedar tempat pemancingan.
Awalnya memang tampak menjanjikan, kita bisa dapat kenalan baru atau ngobrol dengan teman yang berada di tempat yang sama.
Eh, tetapi fungsi lokasi Koprol agak kurang dapat diterapkan, mungkin karena dia lahir prematur. banyak pengguna Koprol yang menggunakan komputer/laptop sehingga check-in ke sebuah loasi dilakukan secara manual, hal yang aneh karena kita bisa saja check in ke sebuah kafe padahal kenyataannya sedang di kamar kost.
Bagaimana dengan pengguna smartphone? Saat Koprol rilis, masih jarang ada smartphone degan fungsi lokasi (GPS, aGPS, ...); fitur check-in tetap dilakukan secara manual.
Ada satu yang mungkin meleset juga dari tujuan internet atau sosial media (menghubungkan dua orang yang berjauhan secara maya). Jika kita berada di lokasi yang sama, kenapa harus ngobrol secara online? :)
(Tentu saja sekarang banyak pasangan atau serombongan sahabat yang duduk di meja kafe dan asyik dengan gadget-nya masing-masing tapi itu soal lain)
Mungkin juga timing kelahiran yang terlalu cepat sehingga Koprol kurang banyak peminat (atau banyak peminat namun tak punya sarana). Dan seingat saya fitur check-in koprol tidak dapat otomatis: misal datang ke sebuah warung dan Koprol otomatis check-in di situ, atau setidaknya menawarkan untuk check-in. (Belakangan fitur ini muncul di aplikasi FourSquare).
Atau...
(abaikan)
(gak penting)
#edisiError
Masih ingat Koprol? Platform media sosial berbasis lokasi buatan Indonesia yang diakuisisi Yahoo? Yeah, mungkin ada yang malah baru dengar sekarang.
Kenapa tidak begitu bisa bersaing? Begini, Koprol memiliki fitur semacam check-in ke suatu tempat sehingga bisa mengobrol dengan orang orang di tempat tersebut. Misal check-in ke sebuah kampus, kafe atau sekedar tempat pemancingan.
Awalnya memang tampak menjanjikan, kita bisa dapat kenalan baru atau ngobrol dengan teman yang berada di tempat yang sama.
Eh, tetapi fungsi lokasi Koprol agak kurang dapat diterapkan, mungkin karena dia lahir prematur. banyak pengguna Koprol yang menggunakan komputer/laptop sehingga check-in ke sebuah loasi dilakukan secara manual, hal yang aneh karena kita bisa saja check in ke sebuah kafe padahal kenyataannya sedang di kamar kost.
Bagaimana dengan pengguna smartphone? Saat Koprol rilis, masih jarang ada smartphone degan fungsi lokasi (GPS, aGPS, ...); fitur check-in tetap dilakukan secara manual.
Ada satu yang mungkin meleset juga dari tujuan internet atau sosial media (menghubungkan dua orang yang berjauhan secara maya). Jika kita berada di lokasi yang sama, kenapa harus ngobrol secara online? :)
(Tentu saja sekarang banyak pasangan atau serombongan sahabat yang duduk di meja kafe dan asyik dengan gadget-nya masing-masing tapi itu soal lain)
Mungkin juga timing kelahiran yang terlalu cepat sehingga Koprol kurang banyak peminat (atau banyak peminat namun tak punya sarana). Dan seingat saya fitur check-in koprol tidak dapat otomatis: misal datang ke sebuah warung dan Koprol otomatis check-in di situ, atau setidaknya menawarkan untuk check-in. (Belakangan fitur ini muncul di aplikasi FourSquare).
Atau...
(abaikan)
(gak penting)
#edisiError
Tuesday, December 29, 2015
Telur Pete Rebus Tumpang Nasi?
Ambil mangkok tahan panas,
masukkan dua telur ke dalamnya, (kulitnya nggak ikut ya),
masukkan pete sesuai selera,
masukkan bersamaan dengan menanak nasi di rice cooker,
tunggu setengah jam hingga 45 menit.
Selama menunggu akan ada bonus bau harum tercium di seluruh bagian rumah, :)
Bersamaan dengan nasi yang matang, kita sekaligus mendapatkan lauk.
Praktis, :)
#EdisiError
masukkan dua telur ke dalamnya, (kulitnya nggak ikut ya),
masukkan pete sesuai selera,
masukkan bersamaan dengan menanak nasi di rice cooker,
tunggu setengah jam hingga 45 menit.
Selama menunggu akan ada bonus bau harum tercium di seluruh bagian rumah, :)
Bersamaan dengan nasi yang matang, kita sekaligus mendapatkan lauk.
Praktis, :)
#EdisiError
Unlock Tracktion for Mac (redeem)
I bought Behringer Xenyx QX1202usb, a wonderful cheap small mixer.
Turn out that it has serial number or code in it case. It allowed us to get full access for Tracktion software.
So I follow the instruction: register, got confirmation email, download.
When running the software it prompt me to choose between unlock or continue trial. Of course I went to unlock route. But when I type my email and password it get error.
Tinkering with it for some hours, the truth's hit me. Tracktion gave me T5 software link in my email. The license is for T4.
So I download T4 manually (re-register with the same email address). Installed , ran , unlocked, and... succeed.
And guess what, after I unlocked T4, I ran T5, and it suddenly became unlocked, a little surprise bonus..., :)
Turn out that it has serial number or code in it case. It allowed us to get full access for Tracktion software.
So I follow the instruction: register, got confirmation email, download.
When running the software it prompt me to choose between unlock or continue trial. Of course I went to unlock route. But when I type my email and password it get error.
Tinkering with it for some hours, the truth's hit me. Tracktion gave me T5 software link in my email. The license is for T4.
So I download T4 manually (re-register with the same email address). Installed , ran , unlocked, and... succeed.
And guess what, after I unlocked T4, I ran T5, and it suddenly became unlocked, a little surprise bonus..., :)
Monday, December 28, 2015
Ngalamania Generasi Baru
Apa beda 'umak isa apa', 'aku ora nggawa libom', 'adepes rotom ku lagi mogok', 'umak apa wis nakam?', 'wis beli soak?'
dengan
'lesek lop', 'ewul', 'aro utem', 'siw utuk?', 'kawa sanap'
?
Kelompok pertama adalah bahasa walikan khas aremania jaman dulu, kelompok kedua adalah bahasa walikan aremania jaman sekarang yang sering saya baca di pasting media sosial.
Apa bedanya?
Bahasa Ngalam kelompok pertama, yang merupakan generasi awal bahasa walikan; hanya membalik kata-kata serapan; kata-kata non bahasa jawa, misal bahasa indonesia. Konon dulu digunakan sebagai sandi, karena penjajah sedikit banyak tahu bahasa indonesia dan tidak tahu bahasa jawa maka penggunaan bahasa indonesia dibalik. Ada beberapa pegecualian seperti kata 'beli' karena jika dibalik tidak dapat dibedakan antara 'ileb' dan 'ilep', maka kata 'beli' tetap dipakai secara normal tanpa dibalik.
Karena bahasa ini merupakan bahasa yang berkembang dan masyarakat pun berkembang. Dengan seiring perkembangan teknologi dan lahirnya generasi baru Ngalamania, bahasa ini juga berkembang, meski menurut saya menuju ke arah yang membingungkan.
Eh, kenapa?
Membingungkan karena generasi baru pemakai bahasa ini membalik kata-kata secara membabibuta. Tentu saja sejak awal memang tidak ada kaidah resmi bahasa walikan. Namun jika kita membalik semua kata termasuk bahasa jawa, percakapan akan menjadi mengerikan (setidaknya bagi saya) karena otak dipaksa menganalisis dan membalik secara nonstop.
Dari dua kelompok contoh di atas, kelompok pertama lebih mudah dipahami (menurut saya), dan saya sudah familier dengan model pembalikan seperti itu selama bertahun-tahun.
Kelompok kedua? Well, sepertinya saya harus mengkalibrasi otak dulu, :)
#EdisiGakBisaTidur
Sunday, December 13, 2015
Heisenberg's Uncertainty Principle
Di tukang fotokopi, menemukan ini terpajang di dinding.
Kalau ingin MURAH dan CEPAT, jangan harap BAGUS.
Kalau ingin BAGUS dan MURAH, jangan harap CEPAT.
Kalau ingin CEPAT dan BAGUS, jangan harap MURAH.
Mungkin banyak yang tak setuju, tapi itu tulisan yang bagus.
:)
#edisiError
Kalau ingin MURAH dan CEPAT, jangan harap BAGUS.
Kalau ingin BAGUS dan MURAH, jangan harap CEPAT.
Kalau ingin CEPAT dan BAGUS, jangan harap MURAH.
Mungkin banyak yang tak setuju, tapi itu tulisan yang bagus.
:)
#edisiError
Friday, December 11, 2015
Kebijaksanaan Lokal.
Kenapa orang tua jaman dulu melarang kita menyapu rumah di malam hari? Kalaupun terpaksa harus menyapu, sapuannya tidak boleh diarahkan keluar melainkan ke dalam untuk dibuang esok harinya?
Mungkin (hanya kemungkinan), hal itu untuk menghindari barang-barang kecil berharga semacam anting-anting atau kalung emas tipis, atau simcard, yang tak sengaja terjatuh ke lantai ikut tersapu keluar. Karena pada malam hari disapu ke arah dalam, maka misal barang-barang berharga ikut tersapu, kita masih akan dapat mencarinya esok hari, saat cahaya terang, saat akan membuang hasil sapuan di malam kemarin.
Mungkin (hanya kemungkinan), hal itu untuk menghindari barang-barang kecil berharga semacam anting-anting atau kalung emas tipis, atau simcard, yang tak sengaja terjatuh ke lantai ikut tersapu keluar. Karena pada malam hari disapu ke arah dalam, maka misal barang-barang berharga ikut tersapu, kita masih akan dapat mencarinya esok hari, saat cahaya terang, saat akan membuang hasil sapuan di malam kemarin.
Friday, December 4, 2015
Aturan
Diciptakan untuk ditaati
... dan dilanggar.
Tentu saja pelanggar aturan akan dikenai sanksi.
Sanksi terhadap pelanggar seharusnya ada di tiap aturan
Tetapi beberapa aturan dibuat tanpa sanksi untuk pelanggar, entah kenapa
#edisiError
(hampir tertabrak kendaraan di area Car Free Day)
... dan dilanggar.
Tentu saja pelanggar aturan akan dikenai sanksi.
Sanksi terhadap pelanggar seharusnya ada di tiap aturan
Tetapi beberapa aturan dibuat tanpa sanksi untuk pelanggar, entah kenapa
#edisiError
(hampir tertabrak kendaraan di area Car Free Day)
Friday, November 27, 2015
3D (Polar/Cylindrical Coordinate) Animation of 2D Diffusion Equation using Python, Scipy, and Matplotlib
Yup, that same code but in polar coordinate.
I use nabla operator for cylindrical coordinate but ditch the z component.
So, what's the z-axis for? It's represent the u value, in this case, temperature, as function of r and phi (I know I should use rho, but, ...)
.
I use nabla operator for cylindrical coordinate but ditch the z component.
So, what's the z-axis for? It's represent the u value, in this case, temperature, as function of r and phi (I know I should use rho, but, ...)
import scipy as sp
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
import matplotlib.animation as animation
#dr = .1
#dp = .1
#nr = int(1/dr)
#np = int(2*sp.pi/dp)
nr = 10
np = 10
r = sp.linspace(0.,1.,nr)
p = sp.linspace(0.,2*sp.pi,np)
dr = r[1]-r[0]
dp = p[1]-p[0]
a = .5
tmax = 100
t = 0.
dr2 = dr**2
dp2 = dp**2
dt = dr2 * dp2 / (2 * a * (dr2 + dp2) )
dt /=10.
print 'dr = ',dr
print 'dp = ',dp
print 'dt = ',dt
ut = sp.zeros([nr,np])
u0 = sp.zeros([nr,np])
ur = sp.zeros([nr,np])
ur2 = sp.zeros([nr,np])
#initial
for i in range(nr):
for j in range(np):
if ((i>4)&(i<6)):
u0[i,j] = 1.
#print u0
def hitung_ut(ut,u0):
for i in sp.arange (len(r)):
if r[i]!= 0.:
ur[i,:] = u0[i,:]/r[i]
ur2[i,:] = u0[i,:]/(r[i]**2)
ut[1:-1, 1:-1] = u0[1:-1, 1:-1] + a*dt*(
(ur[1:-1, 1:-1] - ur[:-2, 1:-1])/dr+
(u0[2:, 1:-1] - 2*u0[1:-1, 1:-1] + u0[:-2,1:-1])/dr2+
(ur2[1:-1, 2:] - 2*ur2[1:-1, 1:-1] + ur2[1:-1, :-2])/dp2)
#calculate the edge
ut[1:-1, 0] = u0[1:-1, 0] + a*dt*(
(ur[1:-1, 0] - ur[:-2, 0])/dr+
(u0[2:, 0] - 2*u0[1:-1, 0] + u0[:-2, 0])/dr2+
(ur2[1:-1, 1] - 2*ur2[1:-1, 0] + ur2[1:-1, np-1])/dp2)
ut[1:-1, np-1] = u0[1:-1, np-1] + a*dt*(
(ur[1:-1, np-1] - ur[:-2, np-1])/dr+
(u0[2:, np-1] - 2*u0[1:-1, np-1] + u0[:-2,np-1])/dr2+
(ur2[1:-1, 0] - 2*ur2[1:-1, np-1] + ur2[1:-1, np-2])/dp2)
#hitung_ut(ut,u0)
#print ut
def data_gen(framenumber, Z ,surf):
global ut
global u0
global t
hitung_ut(ut,u0)
u0[:] = ut[:]
Z = u0
t += 1
print t
ax.clear()
plotset()
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False, alpha=0.7)
return surf,
fig = plt.figure()
#ax = fig.gca(projection='3d')
ax = fig.add_subplot(111, projection='3d')
P,R = sp.meshgrid(p,r)
X,Y = R*sp.cos(P),R*sp.sin(P)
Z = u0
print len(R), len(P)
def plotset():
ax.set_xlim3d(-1., 1.)
ax.set_ylim3d(-1., 1.)
ax.set_zlim3d(-1.,1.)
ax.set_autoscalez_on(False)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
cset = ax.contour(X, Y, Z, zdir='x', offset=-1. , cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=1. , cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='z', offset=-1., cmap=cm.coolwarm)
plotset()
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False, alpha=0.7)
fig.colorbar(surf, shrink=0.5, aspect=5)
ani = animation.FuncAnimation(fig, data_gen, fargs=(Z, surf),frames=4096, interval=4, blit=False)
#ani.save('2dDiffusionfRadialf1024b512.mp4', bitrate=1024)
plt.show()
![]() |
100x100 size |
Thursday, November 26, 2015
The Wrong Code Will often Provide Beautiful Result, :)
It means to compute 2d diffusion equation just like previous post in polar/cylindrical coordinate, and all went to wrong direction, :)
Still trying to understand matplotlib mplot3d behavior
.
Still trying to understand matplotlib mplot3d behavior
import scipy as sp
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
import matplotlib.animation as animation
#dr = .1
#dp = .1
#nr = int(1/dr)
#np = int(2*sp.pi/dp)
nr = 10
np = 10
dr = 1./nr
dp = 2*sp.pi/np
a = .5
tmax = 100
t = 0.
dr2 = dr**2
dp2 = dp**2
dt = dr2 * dp2 / (2 * a * (dr2 + dp2) )
dt /=10.
print dt
ut = sp.zeros([nr,np])
u0 = sp.zeros([nr,np])
ur = sp.zeros([nr,np])
ur2 = sp.zeros([nr,np])
r = sp.arange(0.,1.,dr)
p = sp.arange(0.,2*sp.pi,dp)
#initial
for i in range(nr):
for j in range(np):
if ( (i>(2*nr/5.)) & (i<(3.*nr/3.)) ):
u0[i,j] = 1.
#print u0
def hitung_ut(ut,u0):
for i in sp.arange (len(r)):
if r[i]!= 0.:
ur[i,:] = u0[i,:]/r[i]
ur2[i,:] = u0[i,:]/(r[i]**2)
ut[1:-1, 1:-1] = u0[1:-1, 1:-1] + a*dt*(
(ur[1:-1, 1:-1] - ur[:-2, 1:-1])/dr+
(u0[2:, 1:-1] - 2*u0[1:-1, 1:-1] + u0[:-2,1:-1])/dr2+
(ur2[1:-1, 2:] - 2*ur2[1:-1, 1:-1] + ur2[1:-1, :-2])/dp2)
#hitung_ut(ut,u0)
#print ut
def data_gen(framenumber, Z ,surf):
global ut
global u0
hitung_ut(ut,u0)
u0[:] = ut[:]
Z = u0
ax.clear()
plotset()
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False, alpha=0.7)
return surf,
fig = plt.figure()
#ax = fig.gca(projection='3d')
ax = fig.add_subplot(111, projection='3d')
R = sp.arange(0,1,dr)
P = sp.arange(0,2*sp.pi,dp)
R,P = sp.meshgrid(R,P)
X,Y = R*sp.cos(P),R*sp.sin(P)
Z = u0
print len(R), len(P)
def plotset():
ax.set_xlim3d(-1., 1.)
ax.set_ylim3d(-1., 1.)
ax.set_zlim3d(-1.,1.)
ax.set_autoscalez_on(False)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
cset = ax.contour(X, Y, Z, zdir='x', offset=0. , cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=1. , cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='z', offset=-1., cmap=cm.coolwarm)
plotset()
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False, alpha=0.7)
fig.colorbar(surf, shrink=0.5, aspect=5)
ani = animation.FuncAnimation(fig, data_gen, fargs=(Z, surf),frames=500, interval=30, blit=False)
#ani.save('2dDiffusionf500b512.mp4', bitrate=512)
plt.show()
Miss Lay.
Baca komen seperti "Permainan gitar Eross pecah banget...." di Youtube, hati langsung panas.
Berani-beraninya menghina sang maestro, sana, ke comberan sana, tempat asalmu, ...
Eh, tunggu...
Itu bukan hinaan, itu pujian...
Pecah? Pujian?
Yeah, beberapa dari kita sering menggunakan kata tak pada tempatnya, :)
Penggunaan kata 'pecah' sebagai pujian datang dari Maia Estianty saat menjadi juri The Remix.
Tentu saja penggunaan kata 'pecah' di dunia DJ atau remix sangat cocok; merujuk pada sunyi yang lambat laun menjadi semakin ramai seiring dengan penumpukan nada-nada sampling yang makin banyak, tempo yang makin cepat dan diakhiri dengan sebuah hentakan..., pecah...,
OK, itu pujian, bagaimana kalo kata 'pecah' digunakan di permainan gitar. Yeah, kami menganggap kata pecah sebagai kata berkonotasi buruk; merujuk pada suara gitar yang seharusnya clean namun karena setting yang buruk jadi terdengar 'brebet' atau 'pecah'.
Bukannya efek gitar Telecaster-nya Eross mempunya karakter pecah? Ehm, EDrive-nya Eross, seperti namanya, 'drive', hanya bertugas sebagai booster saat permainan lead, bahkan kalo kita lihat di penampilan live, Eross jarang sekali menggunakan stompbox, dia memainkan knob volume untuk efek crunch atau crisp. Jika ingin suara clean, dia mengecilkan volume gitarnya.
Suara Telecaster Eross 'pecah'? Well, lebih baik pakai kata crunchy, crispy, ..., lebih diterima oleh banyak gitaris, :)
Wednesday, November 25, 2015
3D Animation of 2D Diffusion Equation using Python, Scipy, and Matplotlib
I wrote the code on OS X El Capitan, use a small mesh-grid. Basically it's same code like the previous post.
I use surface plot mode for the graphic output and animate it.
Because my Macbook Air is suffered from running laborious code, I save the animation on my Linux environment, 1024 bitrate, 1000 frames.
import scipy as sp import time from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm from matplotlib.ticker import LinearLocator, FormatStrFormatter import matplotlib.pyplot as plt import mpl_toolkits.mplot3d.axes3d as p3 import matplotlib.animation as animation dx=0.01 dy=0.01 a=0.5 timesteps=500 t=0. nx = int(1/dx) ny = int(1/dy) dx2=dx**2 dy2=dy**2 dt = dx2*dy2/( 2*a*(dx2+dy2) ) ui = sp.zeros([nx,ny]) u = sp.zeros([nx,ny]) for i in range(nx): for j in range(ny): if ( ( (i*dx-0.5)**2+(j*dy-0.5)**2 <= 0.1) & ((i*dx-0.5)**2+(j*dy-0.5)**2>=.05) ): ui[i,j] = 1 def evolve_ts(u, ui): u[1:-1, 1:-1] = ui[1:-1, 1:-1] + a*dt*( (ui[2:, 1:-1] - 2*ui[1:-1, 1:-1] + ui[:-2, 1:-1])/dx2 + (ui[1:-1, 2:] - 2*ui[1:-1, 1:-1] + ui[1:-1, :-2])/dy2 ) def data_gen(framenumber, Z ,surf): global u global ui evolve_ts(u,ui) ui[:] = u[:] Z = ui ax.clear() plotset() surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False, alpha=0.7) return surf, fig = plt.figure() ax = fig.add_subplot(111, projection='3d') X = sp.arange(0,1,dx) Y = sp.arange(0,1,dy) X,Y= sp.meshgrid(X,Y) Z = ui def plotset(): ax.set_xlim3d(0., 1.) ax.set_ylim3d(0., 1.) ax.set_zlim3d(-1.,1.) ax.set_autoscalez_on(False) ax.zaxis.set_major_locator(LinearLocator(10)) ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) cset = ax.contour(X, Y, Z, zdir='x', offset=0. , cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='y', offset=1. , cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='z', offset=-1., cmap=cm.coolwarm) plotset() surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False, alpha=0.7) fig.colorbar(surf, shrink=0.5, aspect=5) ani = animation.FuncAnimation(fig, data_gen, fargs=(Z, surf),frames=1000, interval=30, blit=False) ani.save("2dDiffusion.mp4", bitrate=1024) #plt.show()
Tuesday, November 24, 2015
2D Diffusion Equation using Python, Scipy, and VPython
I got it from here, but modify it here and there.
I also add animation using vpython but can't find 3d or surface version, so I planned to go to matplotlib surface plot route, :)
(update: here it is, :) )
.
I also add animation using vpython but can't find 3d or surface version, so I planned to go to matplotlib surface plot route, :)
(update: here it is, :) )
#!/usr/bin/env python
"""
A program which uses an explicit finite difference
scheme to solve the diffusion equation with fixed
boundary values and a given initial value for the
density.
Two steps of the solution are stored: the current
solution, u, and the previous step, ui. At each time-
step, u is calculated from ui. u is moved to ui at the
end of each time-step to move forward in time.
http://www.timteatro.net/2010/10/29/performance-python-solving-the-2d-diffusion-equation-with-numpy/
he uses matplotlib
I use visual python
"""
import scipy as sp
import time
from visual import *
from visual.graph import *
graph1 = gdisplay(x=0, y=0, width=600, height=400,
title='x vs. T', xtitle='x', ytitle='T',
foreground=color.black, background=color.white)
# Declare some variables:
dx=0.01 # Interval size in x-direction.
dy=0.01 # Interval size in y-direction.
a=0.5 # Diffusion constant.
timesteps=500 # Number of time-steps to evolve system.
t=0.
nx = int(1/dx)
ny = int(1/dy)
dx2=dx**2 # To save CPU cycles, we'll compute Delta x^2
dy2=dy**2 # and Delta y^2 only once and store them.
# For stability, this is the largest interval possible
# for the size of the time-step:
dt = dx2*dy2/( 2*a*(dx2+dy2) )
# Start u and ui off as zero matrices:
ui = sp.zeros([nx,ny])
u = sp.zeros([nx,ny])
# Now, set the initial conditions (ui).
for i in range(nx):
for j in range(ny):
if ( ( (i*dx-0.5)**2+(j*dy-0.5)**2 <= 0.1)
& ((i*dx-0.5)**2+(j*dy-0.5)**2>=.05) ):
ui[i,j] = 1
'''
def evolve_ts(u, ui):
global nx, ny
"""
This function uses two plain Python loops to
evaluate the derivatives in the Laplacian, and
calculates u[i,j] based on ui[i,j].
"""
for i in range(1,nx-1):
for j in range(1,ny-1):
uxx = ( ui[i+1,j] - 2*ui[i,j] + ui[i-1, j] )/dx2
uyy = ( ui[i,j+1] - 2*ui[i,j] + ui[i, j-1] )/dy2
u[i,j] = ui[i,j]+dt*a*(uxx+uyy)
'''
def evolve_ts(u, ui):
"""
This function uses a numpy expression to
evaluate the derivatives in the Laplacian, and
calculates u[i,j] based on ui[i,j].
"""
u[1:-1, 1:-1] = ui[1:-1, 1:-1] + a*dt*(
(ui[2:, 1:-1] - 2*ui[1:-1, 1:-1] + ui[:-2, 1:-1])/dx2 +
(ui[1:-1, 2:] - 2*ui[1:-1, 1:-1] + ui[1:-1, :-2])/dy2 )
# Now, start the time evolution calculation...
#tstart = time.time()
f1 = gcurve(color=color.blue)
while True:
rate(60)
#for m in range(1, timesteps+1):
if t<timesteps:
t+=dt
evolve_ts(u, ui)
ui[:] = u[:] # I add this line to update ui value (not present in original code)
#print "Computing u for m =", m
f1.gcurve.pos = []
for i in arange(nx):
f1.plot(pos=(i,u[nx/2,i]))
#tfinish = time.time()
#print "Done."
#print "Total time: ", tfinish-tstart, "s"
#print "Average time per time-step using numpy: ", ( tfinish - tstart )/timesteps, "s."
Monday, November 23, 2015
Numpy Slice Expression
Suppossed we have two array a and b
If we want to set b as finite difference result of a, we may tempted to do this
There's another (faster) way. The performance's close to the pure C, :)
b[:-1] = a[1:]-a[:-1]
What's that?
Numpy has slice form for array. If we have an array with length 10, the a[:] refers to all value in a.
a[1:] refers to a[1] to a[9] (without a[0])
a[3:] refers to a[3] to a[9]
a[:-1] refers to a[0] to a[8]
a[:-3] refers to a[0] to a[6]
a[1:-1] refers to a[1] to a[8]
...
and so on
Here's my tinkering with slice expression
I like Python, :)
If we want to set b as finite difference result of a, we may tempted to do this
for i in range (9):
b[i] = a[i+1]-a[i]
There's another (faster) way. The performance's close to the pure C, :)
b[:-1] = a[1:]-a[:-1]
What's that?
Numpy has slice form for array. If we have an array with length 10, the a[:] refers to all value in a.
a[1:] refers to a[1] to a[9] (without a[0])
a[3:] refers to a[3] to a[9]
a[:-1] refers to a[0] to a[8]
a[:-3] refers to a[0] to a[6]
a[1:-1] refers to a[1] to a[8]
...
and so on
Here's my tinkering with slice expression
>>> from numpy import *
>>> a = zeros(10)
>>> b = zeros(10)
>>> a[5]=1.
>>> a
array([ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])
>>> b
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
>>> a[6]=2.
>>> a
array([ 0., 0., 0., 0., 0., 1., 2., 0., 0., 0.])
>>> b[:-1]=a[:-1]-a[1:]
>>> b
array([ 0., 0., 0., 0., -1., -1., 2., 0., 0., 0.])
>>> b[:-1]=a[:-1]+a[1:]
>>> b
array([ 0., 0., 0., 0., 1., 3., 2., 0., 0., 0.])
>>>
Friday, November 20, 2015
Car Free Day
Sepertinya ada (banyak) yang mengartikan sebagai kendaraan bebas berjalan di manapun, bahkan di tempat yang saat normal gak bisa dimasuki, :(
(hampir ketabrak sepeda motor yang dikendarai mahasiswa berboncengan di jalan antara gedung MIPA dan Fisika)
#EdisiError
(hampir ketabrak sepeda motor yang dikendarai mahasiswa berboncengan di jalan antara gedung MIPA dan Fisika)
#EdisiError
Wednesday, November 18, 2015
Create CSV file using Delphi
I used textfile variable to write to a file (or create it if it don't exist).
CSV file? Just make sure that the name at assignfile command had .csv extension, :)
Of course we have to format the output to meet the CSV standart; separated by comma.
.
CSV file? Just make sure that the name at assignfile command had .csv extension, :)
Of course we have to format the output to meet the CSV standart; separated by comma.
procedure TForm1.Button1Click(Sender: TObject);
var
fileku:textfile;
i,j,n:integer;
begin
n:=10;
assignfile(fileku,'data.csv');
rewrite(fileku);
writeln(fileku,'tadaa...');
for i:=1 to n do begin
for j:=1 to n do begin
writeln(fileku,i,',',j,',','data',i,j);
end;
end;
closefile(fileku);
end;
Turn right! No! Your other right!
“I definitely didn’t have time to get my soul cast into a place I couldn’t even pronounce.”
Typical Rick, :)
Typical Rick, :)
Friday, November 13, 2015
Subscribe to:
Posts (Atom)
My sky is high, blue, bright and silent.
Nugroho's (almost like junk) blog
By: Nugroho Adi Pramono
323f
(5)
amp
(1)
android
(12)
apple
(7)
arduino
(18)
art
(1)
assembler
(21)
astina
(4)
ATTiny
(23)
blackberry
(4)
camera
(3)
canon
(2)
cerita
(2)
computer
(106)
crazyness
(11)
debian
(1)
delphi
(39)
diary
(286)
flash
(8)
fortran
(6)
freebsd
(6)
google apps script
(8)
guitar
(2)
HTML5
(10)
IFTTT
(7)
Instagram
(7)
internet
(12)
iOS
(5)
iPad
(6)
iPhone
(5)
java
(1)
javascript
(1)
keynote
(2)
LaTeX
(6)
lazarus
(1)
linux
(29)
lion
(15)
mac
(28)
macbook air
(8)
macbook pro
(3)
macOS
(1)
Math
(3)
mathematica
(1)
maverick
(6)
mazda
(4)
microcontroler
(35)
mountain lion
(2)
music
(37)
netbook
(1)
nugnux
(6)
os x
(36)
php
(1)
Physicist
(29)
Picture
(3)
programming
(189)
Python
(109)
S2
(13)
software
(7)
Soliloquy
(125)
Ubuntu
(5)
unix
(4)
Video
(8)
wayang
(3)
yosemite
(3)