One liner shell of the day : #36 (ganti format endline)


Singkat cerita, saya punya beberapa skrip shell yang ditulis Linux, kadang diedit di Windows, dan di-commit/di-pull dari/di/ke github, juga dari keduanya.





Windows menggunakan CR (carriage return)+LF (linefeed) untuk ganti baris. Linux pakai LF saja. Konsekuensinya skrip-skrip saya tersebut ndak jalan lagi di Linux.





Obatnya: sed -i 's/\r//' filename







Tiga aku


Aku kata
Aku raga
Aku mana…





Aku jiwa yang gemar menidakacuhkan kepantasan berkedok kewarasan.
Sumuk, lemah, disendirikkan





Cahayamu menyeruak gelapku.





Kita bertukar nama,
mengobral waktu, perhatian, dan sayang
merengkuh sakit, mereguk darah





Aku janji yang semoga berarti
Menjelaskan kepala kesederhanaan,
Melewatkan kisah-kisah yang tak usah





-----------------
nyontek Gio


sungkem

Sungkem adalah gestur bersimpuh di hadapan orang yang kita hormati sekaligus kita sayangi dengan bersimpuh di kaki-lutut, membungkukkan tubuh bagian atas dekat dengan paruh tubuh bagian bawah yang kita sungkemi; umumnya Beliau adalah orang tersebut lebih tua.

Sayangnya, sungkem sekarang ini adalah bentuk budaya gestur yang semakin kemari semakin tereduksi. Bentuknya semakin kasual dan kehilangan detail. Entri mengenai sungkem di google cuma berkisar tentang momen lebaran dan pernikahan; bikin geleng-geleng saya yang diajari sungkem gaya Solo waktu kecil (dan Pak B yang ngajari saya, rasa-rasanya).

Sungkem [bisa jadi] adalah bentuk akulturasi dan bersimpuh di kaki orang tua (umumnya Ibu) gaya Hindu, tasyahhud/tahiyyat gaya Islam, dan tentunya gestur afeksi psikologi dasar yang asalnya lebih manusiawi dan universal ketimbang terkait budaya tertentu.
--yang punya teori yang bisa melengkapi dugaan di atas monggo tulis komentar

Sungkem versi textbook yang diajarkan kepada saya begini:

  • Beliau yang disungkemi duduk tegak di atas kursi, dingklik, dipan, atau balai dengan kaki menyentuh lantai/tanah,

  • kita bersimpuh dengan kedua kaki kurang lebih paralel,

  • telapak tangan kita sentuhkan ke betis Beliau dengan jari menghadap ke bawah dengan orientasi horizontal atau turun,

  • sentuhkan kepala ke lutut Beliau,

  • sampaikan sesuatu melalui diammu atau perkataan halus dan suara rendah,

  • ikuti instruksi kalau Beliau menghendaki posisi sedikit diubah,

  • tegakkan badan bagian atas (sebagai pertanda bahwa sungkem sudah selesai) kalau Beliau menyuruhmu.


Nangis berok-berok sampai jarik Ibumu basah itu sifatnya opsional.

Ada beberapa pertimbangan pseudo-teknis yang berkaitan dengan khidmatnya sungkem:

  • tangan dan kepala disentuhkan ke betis dan lutut Beliau: lutut ke bawah adalah bukan lagi aurat buat laki-laki, juga bagian tubuh ini relatif tidak geli sehingga sungkem untuk durasi yang lebih lama bakal nyaman,

  • sebisa mungkin kita letakkan kepala dekat dengan lutut, i.e. menjauhi perut Beliau. Walaupu Beliau meletakkan tangan di atas paha, posisi kepala kita kalau terlalu dekat ke perut bakal membuat kita lebih dekat dengan genital Beliau--which is awkward to lesser or greater degree,

  • sebisa mungkin jangan nangis kalau ada orang lain yang juga hendak sungkem ke Beliau, e.g. keluarga yang gantian sungkem ke Mbah.


All in all, orang-orang tersayang yang kamu hormati tentunya bisa menerima hormatmu apa adanya. Kalau sungkem ya sungkem aja, jaga kerendahhatian dan hormat itu, jaga bentuknya tetap pantas dan khidmat.

Islam versi agak mbulet

Saya punya janji kepada seorang teman untuk buat tulisan berkaitan mengenai pengalaman kita menjadi manusia Islam di Indonesia. Diskusinya dimulai dekat dengan kejadian di Surabaya pertengahan Mei kemarin. Setelah kejadian tersebut, kita bisa temukan tulisan mengenai pengalaman pribadi beberapa orang yang dekat dengan pelaku dan korban. Tulisan-tulisan tersebut mengingatkan kita bahwa beberapa orang bisa sendirian dalam kebersamaan.

Surabaya tetap teguh sebagai kota yang besar dan kuat setelah kejadian tersebut, tapi orang-orang yang bersinggungan langsung dengan masalah-masalah ini dan punya jejak pribadi berkaitan masasalah ini tentunya bakal lebih terpengaruh. Kejadian seperti ini baiknya tidak dilupakan dan tetap jadi pembelajaran buat kita semua.

 

Biasanya ada fase "pencarian jati diri" yang semakin kentara di usia remaja dan pos-remaja. Di fase ini, kita mengasosiasikan diri dengan figur, kelompok, dan nilai-nilai yang berkaiatan dengan figur dan kelompok tersebut. Kesempatan ini biasanya juga disertai bagaimana kita mengambil jarak dari figur, kelompok, dan nilai yang sebelumnya telah melingkupi lingkungan terdekat kita, yang struktur (apalagi hikmahnya) belum terjelaskan buat kita. Fase ini memengaruhi orang dengan berbagai kadar: menyangkut latar belakang lingkungan, agama, pendididikan, keluarga, teman, aktivitas dan kegiatan, dan lainnya.

Perlu diingat: pencarian jati diri ini terus berlanjut dengan bentuk yang diharapkan sudah semakin lebih tidak naif. Asosiasi struktural terhadap figur, kelompok, dan nilai (ah, frasanya kepanjangan, aku ganti dengan "lingkungan" aja ya setelah ini) adalah hal yang umum terjadi.

Balik ke ranah pribadi, pengalaman teman yang mengajak diskusi ini di awal-awal dia masuk kuliah:

  • ikut kegiatan diskusi keagamaan dari ajakan teman kos,

  • ikut nimbrung selama setengah tahun,

  • menenui "ajaran yang tidak sesuai",

  • merasa terguncang secara pribadi,

  • memilih meninggalkan lingkungan tersebut.


Tentunya banyak dari kita yang mengenyam pengalaman seperti ini. Beberapa tetap dekat dengan lingkungan ini atau mengambil bentuk-bentuk lain dalam kedekatannya, beberapa beberapa memilih sekedar berlalu, beberapa memilih menyeberang ke lingkungan yang lain, beberapa memilih untuk menceburkan diri dalam di tengah konstelasi lingkungan-lingkungan ini sementara berusaha tetap relevan di kesemua lingkungan tersebut sembari tetap di lingkungan asalnya sebelum lingkungan-lingkungan baru ini.

Pengalaman saya pribadi agak berantakan, contoh saja dari saya yang usia SD:

  • saya membuat kebohongan mengenai tempat ibadah (agama lain) di utara rumah dan beberapa bentuk najis,

  • saya bertindak emosial di debat mengenai kejadian Bali 2002 setelah menjadi kelompok "pro" di kelas PPKn: mulai dari tidak menyalahkan hingga mencari pembenaran yang tumpul,

  • meringkuk di balik pintu hendak ganti celana dari sarung setelah shalat, dan dikira belum shalat oleh paman saya (??).


Saya tidak mengalami kejadian macam teman saya di masa kuliah. Identitas kegamaan, pendidikan, dan pribadi saya dan lingkungan tempat saya tumbuh sudah campur aduk, seperti: sekretariat organisasi keagamaan di kampus jadi kamar kos anak Teknik yang (relatif) jarang mandi, kita biasa nonton SNSD selepas ngaji habis Maghrib sembari menunggu Isya, yang setelah Isya kita main Dota 2 sampai larut malam. Tentu juga ada beberapa momen di mana ide atau lingkungan lain berkelebat dan beririsan (yang punya kesan lebih puritan) di tempat tersebut, tapi mereka tidak cukup kompleks buat menjelaskan kerunyaman kita saat itu.

 

Mengapa kejadian Surabaya kemarin terjadi? Ndak tahu.
Seberapa serius dampaknya? Ndak tahu.
Siapa-siapa yang terlibat? Ndak tahu.
Apakah bakal ada seperti ini lagi? Ndak tahu.
Lingkungan-lingkungan mana yang bisa jadi terlibat? Ndak tahu.
Kejadian seperti ini apakah buruk? Ndak tahu, tapi bikin banyak orang susah.
Lha koen iki goblok ta yak opo? Ket mau kok "ndak tahu, ndak tahu"?

Sepurane.

 

Keberpengetahuan kita sungguh terbatas, ada kerendahatian dalam ketidaktahuan, namun bukan ketidakmautahuan. Secara kasat mata kita tahu sedikit tentang pengalaman-pengalaman seperti ini, tapi acap kali kita tidak yakin bagaimana menjelaskankan secara bijaksana dan proporsional kepada pihak yang berbeda-beda.

Identitas Islam rasanya cukup terjelaskan [paling tidak] dengan ibadah dasar: syahadat, shalat, zakat, puasa, haji. Tambahan mengenai kedaulatan, menganjurkan kebaikan, melarang keburukan, dan jihad juga menjelaskan identitas Islammu; sebagaimana menyembelih hewan, makan, berangkat sekolah, masuk toilet, tidur, menikah, dan bersenggama.

Identitas Islam itu luhur. Karena kita tidak luhur, yang bisa kita usahakan adalah menjelaskannya dengan tingkah yang setelah kita timbang--kita rasa baik--mendekati keluhuran tersebut. Akan lebih baik kalau pertimbangan tersebut juga luas dan dalam.

 

Hikmahnya?
Kita kurang bergaul saat siap bergaul, beberapa orang apes diajak bergaul saat dia belum siap.
Rukun itu ndak susah, tapi ya tetep perlu diusahakan.

Balaikambang belum purna

Muda,
sedikit keblinger, tapi berusaha jujur.
Tatap siluet rembulan yang belum tampak,
mendung.
Cermat-hitung terukur,
cerah.
Kepala tidak lebih dulu dari kaki dan tangan,
payah.
Pasir dan laut,
kayuh.

Gubug doa dan sujud menyambut dengan air,
dan berkumpul.
Lalu air lagi.
Muka gubug doa yang lain membawakan air manis,
dalam kantung,
dingin,
berbumbu senyum ramah.

Kita lalu lemah,
sungguh daya datang dari Tuhan,
Bentuknya api, logam, dan kayu,
bukan congkak dan sombong,
bukan kekuatan dan keberadaan.
Bentuknya pasrah dan terima kasih.

Puji Tuhan, kita masih disambut rumah.

ngatur resolusi layar sendiri di Linux, X11

Singkat cerita, laptop kantor (Dell Vostro) pengen diculukin layar kedua dari colokan D-SUB. Monitor yang dipakai I-O Data MF225 yang resolusinya 1920x1080. Tapi entah gegara santet dari mana, resolusi yang terbaca di cuma sampai XGA (1024x768). Aku biasanya pakai arandr, yang kali ini ternyata tidak cukup pintar buat nambah menu untuk mengatur resolusi layar custom.

Mampir bentar ke askubuntu, jawabannya segera ketemu.
$ cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
$ xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
$ xrandr --addmode DP1 "1920x1080_60.00"


1920x1080 60 fps sudah muncul di arandr. Saya bahagia.

comment

baru sadar kalo comment di wpmu blog UB dimatikan. banyak spam kali, ya?

One liner shell of the day : #35 (cari paket yang memuat file tertentu)

Komputer kantorku terpasang Linuxmint Sylvia (Ubuntu Xenial). Pagi ini agak iseng sehingga file /etc/init.d/udev terhapus. Niatnya install paket yang memuat file itu supaya dapat skrip itu kembali:
[code]dpkg -S /etc/init.d/udev[/code]
keluarannya
udev

Ya, iya, laaah.

root

bukan ndak bisa "mendedikasikan hati".
tapi kalau shadow saya ndak jebol, saya ndak ganti password.
kalo kunci pgp-ku ndak hilang dan lupa, ndak bakal ganti juga.
namanya bakal tetep di password saya, bisa jadi bukan namamu.
yang membesarkan aku seperti sekarang ini juga bagian dari kalian yang lain.

sungguh tiap-tiap dari kalian membelajari aku berbagai hal:
yang aku gagal lulus,
yang aku masih mengulang,
yang aku dikira mengerti padahal sekadar tahu,
yang aku cuma mengerti sebagian,
yang aku paham sekenaku.

sungguh aku ndak pernah bohong,
semua itu istimewa,
dan keistimewaan seorang tidak mengurangi atau mengaburi keistimewaan yang lain.
saya mohon maaf bahwa saya ndak istimewa-istimewa banget.

C++: pastikan variabel yang dipakai sudah terinisialisasi

Singkatnya, selalu pastikan bahwa variabel yang kamu pakai sudah diberi nilai tertentu sebelum kamu gunakan untuk operasi lain; utamanya di bahasa pemrograman C++ yang relatif lebih tidak disiplin dibanding C.

 Contoh baik:

double *x_min, *x_max, *y_min, *y_max;
x_min = (double *) malloc(sizeof(double)*MARKER_COUNT);
y_min = (double *) malloc(sizeof(double)*MARKER_COUNT);
x_max = (double *) malloc(sizeof(double)*MARKER_COUNT);
y_max = (double *) malloc(sizeof(double)*MARKER_COUNT);


double moment_x_temp, moment_y_temp, mass_temp;

image_height = image.rows;
image_width = image.cols;

for (int i=0; i<MARKER_COUNT; i++){
y_min[i]= image_height;
x_min[i]= image_width;

}

 
Contoh kurang baik:

double *x_min, *x_max, *y_min, *y_max;
x_min = (double *) malloc(sizeof(double)*MARKER_COUNT);
y_min = (double *) malloc(sizeof(double)*MARKER_COUNT);
x_max = (double *) malloc(sizeof(double)*MARKER_COUNT);
y_max = (double *) malloc(sizeof(double)*MARKER_COUNT);


double moment_x_temp, moment_y_temp, mass_temp;

for (int i=0; i<MARKER_COUNT; i++){
y_min[i]= image_height;
x_min[i]= image_width;
}

image_height = image.rows;
image_width = image.cols;

Kekurangbaikannya ini yang susah diprediksi, isi aray y_min dan x_min bakal diambil dari bagian statis kode program yang entah isinya apa. Dijamin proses yang bersangkutan dengan variabel tersebut bakal memiliki keanehan-keanehan macam "nilai ini dapat dari mana, sih?".

ngelem

senyummu bagai cyanoacrylate:

jernih,

lumer,

terlindung.

sekalinya kukecup...

macam pagi ini,

manisnya terasa jelas di lidahku,

kemudian mengering di gigi-gigiku, lidah, dan langit-langit mulut.

membekas...

nempel di sela gigi geraham.

Mencari indeks sel dengan nilai maksimum atau minimum

Kadang waktu pakai aplikasi spreadsheet, contoh: libreoffice calc, microsoft excel; kita butuh mencari indeks dari sel dengan nilai tertentu: nilai maksimum, minimum, rerata, atau nilai yang kita tentukan secara bebas.

[code]=MATCH(MAX(E1:E2400),E1:E2400,0)[/code]

kembaliannya adalah baris di kolom E dengan nilai maksimum. 0 berarti kolom tersebut tidak diurutkan.

Butuh hangat

Peluk,

wudhu,

peluk.

Wudhu,

peluuuuuuuuk.

Wudhu.