[CERPEN] Eskrim Pantai
Hey, apa kamu tidak kelelahan? Iya, kan? Di ujung sana ada pantai yang bagus, mungkin kita bisa mampir dulu. Tengah hari seperti ini...
Rindu Surabaya, Namun Terlalu Nyaman untuk Pergi
Aku kangen Surabaya.
Kangen Kuliah.
Kangen ketemu dosen.
Kangen bikin tugas.
Tapi Bali masih terlalu nyaman.
Selamat malam blogku tercinta. Udah lama banget ya aku gak ngepost disini. Iya. Lamaaaa bangeett. Ini blog saking lamanya ditinggal sama penulisnya, sampe banyak sarang laba-labanya, banyak taneman liar merambat dimana-mana, banyak gelandangannya, banyak.. ya.. gitu deh.
Yak, seperti yang tertulis di paragraf paling awal. Aku mengawali corat-coret kali ini dengan dusta yang menjijikkan. Kenapa? Gatau juga sih.
Saat tulisan ini ditulis, jam sedang menunjukkan pukul 00.18 WITA. Akhirnya memutuskan untuk menulis. Padahal udah mikir dari pagi tadi pas baru bangun. Yah, begitulah. Setelah berkutat dengan game, baca manga, dan utak-atik website ITS EXPO 2016 yang tak kunjung selesai, akhirnya aku memutuskan untuk nulis random.
Well, udah sebulan lebih ngerasain liburan di kampung halaman. Gak kerasa emang. Masih sisa kurang lebih sebulan lagi liburan yang indah ini. Rasanya baru kemarin mesen tiket pulang, terbang pagi-pagi buta, meninggalkan Surabaya, meninggalkan segala urusan perkuliahan yang melelahkan.
Setelah merasakan yang namanya merantau, entah kenapa jadi suka kangen dengan hal-hal kecil yang ada di kampung halaman Bali. Iya, hal-hal kecil. Sesuatu yang mungkin gak semua orang bisa sepikiran sama aku.
Jalanan di Bali yang sexy. Uh. Iya. Jalanan di Bali itu gak kayak di Surabaya. Jalan di bali itu lebih.. Apa ya. Lebih berliku-liku. Istilahnya it has curve. Banyak belokannya. Banyak naik-turunnya. Dan juga lebih sempit gitu, jadi kalo berkendara gabisa seleluasa di Surabaya. Yah... kalo dianalogikan, jalanan di Bali itu mungkin kayak cewe sexy gitu ya. Tubuhnya berlekuk-lekuk. Dan sempit. Uh. Iya sempit.
Bisa ngomong "lagi satu" (yang kata orang-luar-bali itu yang bener "satu lagi") tanpa merasa bersalah. Kebiasaan orang Bali ngomong "lagi satu" baru aku sadari ternyata beda dari daerah lain setelah kuliah di Surabaya dan bertemu dengan orang-orang dari berbagai daerah. Di Surabaya, aku selalu waspada dengan hal ini. Dan setelah pulang kampung.. AAAHHH.. Lega cuy.
Bertemu dengan kebiasaan mamakku yang dalam mengingat posisi benda sangatlah tajam. Mungkin banyak orang yang diluar sana juga punya mamak yang seperti itu. Tapi ini agak beda. Ingatan mamakku bener-bener tajam.
***
Pernah waktu itu aku lagi main game malem-malem.
Saat itu udah agak larut, jadi mamakku tidur duluan, dan ngingetin aku untuk sikat gigi. Aku iyain aja lah ya, sebagai anak yang baik hati. Tapi sampe lewat jam 12 malem aku belum gosok gigi juga. Jadi karena udah terlalu ngantuk dan terlalu malas untuk ke kamar mandi, akhirnya ya aku tidur aja. Dan besok paginya mamakku nanya..
Mamak: kaa~
Aku: iya?
Mamak: KAAA...
Aku: IYAA APAAA??
Mamak: ka el em en o pe qi~
Ternyata itu mimpi. Aku belum bangun. Dan setelah aku udah bener-bener bangun, terus mandi, dan tak lupa menggosok gigi. Habis mandi kutolong Ibu. Membersihkan tempat tidurku. Nah pada saat itu mamakku nanya...
Mamak: kaa~
Aku: iya??
Mamak: kemarin kamu belum sikat gigi ya?
Aku: Ah, udah koookk. Kemarin kan-
Mamak: JANGAN BOHONG!!!!
Aku: lah beneran, kemarin mamak pas udah tidur-
Mamak: BOHONG!!
Aku: beneran koookkk.. apa buktinya kalo Dika boong?
Mamak: mama tau kamu belum sikat gigi.. soalnya SIKAT GIGI SAMA ODOLNYA GAK KEGESER SEDIKITPUN!!!!
***
Begitulah. Ingatan seorang mamak ternyata bisa semengerikan itu.
Yak mungkin itu aja dulu untuk sharing-sharingnya malem ini. Cuma tulisan random, biar bisa makin rajin nulis. Mungkin nanti aku bakal tulis juga tentang pengalaman liburanku yang udah lewat kemarin di beberapa post kedepan. Ada cerpen juga mungkin, soalnya kemarin tiba-tiba kepikiran ide cerita. Semoga gak wacana sih ya.
Masih ada sebulan lagi sebelum balik ke Surabaya menghadapi kenyataan. Jadi mari menikmati waktu bermalas-malasan yang berharga ini. Hohoho~ 1:04 AM
Aku kangen Surabaya. Kangen Kuliah. Kangen ketemu dosen. Kangen bikin tugas. Tapi Bali masih terlalu nyaman. Selamat malam blogku ...
File System dan Kamar yang Berantakan
FUSE! Iya, keren. Walaupun terdengar seperti ada yang akan bergabung dan membentuk sebuah kekuatan baru, namun kenyataannya tidak begitu. FUSE dalam konteks sistem operasi Linux merupakan sebuah file system. Filesystem in Userspace.
Apa sih File System itu?
Jadi simpelnya (semoga beneran simpel) begini, kalian tentu pernah buka windows explorer kan? Atau mungkin ada yang pernah membuka aplikasi penelusur file di sistem operasi lain? Nah jadi si windows explorer yang kalian lihat itu tentu ada yang namanya folder dan file, seolah-olah di komputer kamu ada beberapa tumpukan dokumen (file) yang dikumpulkan dalam sebuah laci (file). Kalau kamu butuh dokumennya, tinggal cari laci tempat dimana kamu menaruh dokumen tersebut. Namun tahu kah kalian? Kalau file dan folder yang kamu lihat itu hanyalah ilusi belaka? Kebetulan? Saya rasa tidak!
File dan folder yang kalian lihat di depan layar komputer itu sebenarnya hanyalah penampilan luar dari apa yang sebenarnya terjadi di dalam komputer kita. Kalau kamu adalah seseorang yang rapi, kamu pasti sangat telaten dalam mengelompokkan file dalam folder-folder tertentu, sehingga terlihat rapi. Namun tahukah kamu? Serapi apa pun kalian menata file dan folder di komputermu, sebenarnya dalam hardisk/flashdisk/CD tempat kalian menaruh file dan folder, posisi "asli"nya tetap lah "berantakan". Namun jangan khawatir, komputer tidak akan "lupa" posisi dimana dia menaruh data-data kalian. Hal ini karena adanya File System.
Ibaratnya sebuah kamar. Anggap sebuah ruangan kamar adalah harddisk pada komputer kita. Dan barang-barang di dalam kamar adalah file dan folder. Karena komputer tidak punya otak yang secemerlang manusia, komputer tidak lah bisa caranya merapikan kamarnya sendiri. Barang apapun yang masuk ke kamarnya, akan ditaruh berjejer begitu saja. Pokoknya asal muat, masukin aja. Alhasil kamarnya sudah dipenuhi berbagai macam barang yang sangat tidak teratur. Ada lemari di atas televisi, gunting di bawah tempat tidur, bahkan kolor tergantung di langit-langit. Nah kerennya, separah apapun si komputer menaruh barangnya, dia akan selalu ingat posisi barangnya saat dia membutuhkan. Dan juga seperti apapun bentuknya, misalnya lemari kotak atau segitiga atau lingkaran, komputer akan tetap mengenali benda itu sebagai lemari. Kenapa? Karena komputer punya sebuah catatan yang sangat lengkap tentang seluruh keberadaan barangnya, catatan itu adalah File System. Setiap ada barang baru masuk, akan dicatat di File System.
Oh gitu!
Yak, dan file system itu ada banyak macamnya. Apalagi file system untuk linux, banyak orang yang membuat file system untuk sistem operasi open-source itu. Salah satu yang populer adalah FUSE. Untuk informasi dan dokumentasi yang lengkap, teman-teman bisa mengunjungi website developernya langsung di http://fuse.sourceforge.net/.
Kenapa saya menyarankan FUSE?
- Librarynya lebih simpel
- Instalasi lebih simpel
- Aman
- Sangat efisien untuk pengguna
- Bahkan untuk pengguna tanpa kemampuan teknis yang tinggi
- Bisa dijalankan di Linux kernel 2.4.x dan 2.6.x
- Dan yang terpenting, stabil bos!
/*Untuk variabel dirpath, kalian bisa ganti sesuka kalian. Sesuaikan dengan path pada linux kalian masing-masing ya. Setelah selesai dengan source code, save file dan compile dengan syntax gcc -Wall [nama file].c `pkg-config fuse --cflags --libs` -o [nama file].
FUSE: Filesystem in Userspace
Copyright (C) 2001 Miklos Szeredi (mszeredi@inf.bme.hu)
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
*/
#ifdef linux
/* For pread()/pwrite() */
#define _XOPEN_SOURCE 500
#endif
#include <fuse.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <sys/statfs.h>
static const char *dirpath = "/home/wira";
static int xmp_getattr(const char *path, struct stat *stbuf)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = lstat(fpath, stbuf);
if(res == -1)
return -errno;
return 0;
}
static int xmp_readlink(const char *path, char *buf, size_t size)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = readlink(fpath, buf, size - 1);
if(res == -1)
return -errno;
buf[res] = '\0';
return 0;
}
static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler)
{
DIR *dp;
struct dirent *de;
int res = 0;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
dp = opendir(fpath);
if(dp == NULL)
return -errno;
while((de = readdir(dp)) != NULL) {
res = filler(h, de->d_name, de->d_type);
if(res != 0)
break;
}
closedir(dp);
return res;
}
static int xmp_mknod(const char *path, mode_t mode, dev_t rdev)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = mknod(fpath, mode, rdev);
if(res == -1)
return -errno;
return 0;
}
static int xmp_mkdir(const char *path, mode_t mode)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = mkdir(fpath, mode);
if(res == -1)
return -errno;
return 0;
}
static int xmp_unlink(const char *path)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = unlink(fpath);
if(res == -1)
return -errno;
return 0;
}
static int xmp_rmdir(const char *path)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = rmdir(fpath);
if(res == -1)
return -errno;
return 0;
}
static int xmp_symlink(const char *from, const char *to)
{
int res;
char fpath [1000], ffrom[1000],fto[1000];
sprintf(fto,"%s%s",dirpath,to);
sprintf(ffrom,"%s%s",dirpath,from);
res = symlink(ffrom, fto);
if(res == -1)
return -errno;
return 0;
}
static int xmp_rename(const char *from, const char *to)
{
int res;
char fpath [1000], ffrom[1000],fto[1000];
sprintf(fto,"%s%s",dirpath,to);
sprintf(ffrom,"%s%s",dirpath,from);
res = rename(ffrom, fto);
if(res == -1)
return -errno;
return 0;
}
static int xmp_link(const char *from, const char *to)
{
int res;
char fpath [1000], ffrom[1000],fto[1000];
sprintf(fto,"%s%s",dirpath,to);
sprintf(ffrom,"%s%s",dirpath,from);
res = link(ffrom, fto);
if(res == -1)
return -errno;
return 0;
}
static int xmp_chmod(const char *path, mode_t mode)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = chmod(fpath, mode);
if(res == -1)
return -errno;
return 0;
}
static int xmp_chown(const char *path, uid_t uid, gid_t gid)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = lchown(fpath, uid, gid);
if(res == -1)
return -errno;
return 0;
}
static int xmp_truncate(const char *path, off_t size)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = truncate(fpath, size);
if(res == -1)
return -errno;
return 0;
}
static int xmp_utime(const char *path, struct utimbuf *buf)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = utime(fpath, buf);
if(res == -1)
return -errno;
return 0;
}
static int xmp_open(const char *path, int flags)
{
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
res = open(fpath, flags);
if(res == -1)
return -errno;
close(res);
return 0;
}
static int xmp_read(const char *path, char *buf, size_t size, off_t offset)
{
int fd;
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
fd = open(fpath, O_RDONLY);
if(fd == -1)
return -errno;
res = pread(fd, buf, size, offset);
if(res == -1)
res = -errno;
close(fd);
return res;
}
static int xmp_write(const char *path, const char *buf, size_t size,
off_t offset)
{
int fd;
int res;
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
fd = open(fpath, O_WRONLY);
if(fd == -1)
return -errno;
res = pwrite(fd, buf, size, offset);
if(res == -1)
res = -errno;
close(fd);
return res;
}
static int xmp_release(const char *path, int flags)
{
/* Just a stub. This method is optional and can safely be left
unimplemented */
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
(void) fpath;
(void) flags;
return 0;
}
static int xmp_fsync(const char *path, int isdatasync)
{
/* Just a stub. This method is optional and can safely be left
unimplemented */
char fpath [1000];
sprintf(fpath,"%s%s",dirpath,path);
(void) fpath;
(void) isdatasync;
return 0;
}
static struct fuse_operations xmp_oper = {
.getattr = xmp_getattr,
.readlink = xmp_readlink,
.getdir = xmp_getdir,
.mknod = xmp_mknod,
.mkdir = xmp_mkdir,
.symlink = xmp_symlink,
.unlink = xmp_unlink,
.rmdir = xmp_rmdir,
.rename = xmp_rename,
.link = xmp_link,
.chmod = xmp_chmod,
.chown = xmp_chown,
.truncate = xmp_truncate,
.utime = xmp_utime,
.open = xmp_open,
.read = xmp_read,
.write = xmp_write,
.release = xmp_release,
.fsync = xmp_fsync
};
int main(int argc, char *argv[])
{
fuse_main(argc, argv, &xmp_oper);
return 0;
}
Kemudian jalankan dengan perintah ./[nama file] /tmp/fuse
Apa yang terjadi? Maka seluruh isi dari direktori pada variabel dirpath di atas, akan dimuat ke folder /tmp/fuse. Untuk mengecek, kalian bisa masuk ke folder tmp (melalui root), kemudian buka folder fuse.
Sekian cuap-cuap saya kali ini. Semoga saya tidak tambah sotoy, dan semoga ilmunya bermanfaat.
Yak sekali lagi saya akan memposting sesuatu yang berbau Linux. Mungkin postingan ini akan jadi postingan terakhir saya yang membahas cara-...
Program Sederhana Pengelola Stok Barang di Terminal Linux
Halo teman-teman! Kali ini saya akan memberikan tutorial singkat tentang cara membuat sebuah program untuk mengelola stok barang di sebuah toko komputer.2:57 AM
Halo teman-teman! Kali ini saya akan memberikan tutorial singkat tentang cara membuat sebuah program untuk mengelola stok barang di sebuah t...
Ngisengin Laptop Teman dengan Linux
Oke, langsung aja. Mungkin teman-teman yang membaca punya musuh atau orang yang dibenci atau temen yang enak untuk dikerjain (selanjutnya kita sebut saja Si Korban), saya punya tips untuk memuaskan rasa kesal kalian semua. Kita akan membuat linux si korban mengeluarkan popup yang pastinya nyebelin. Syaratnya gampang aja- Kamu sudah install linux di laptopmu
- Si "korban" juga pakai linux di laptopnya
1:17 PM
Oke, langsung aja. Mungkin teman-teman yang membaca punya musuh atau orang yang dibenci atau temen yang enak untuk dikerjain (selanjutnya ki...
Bash Script: Cara Asik Menikmati Linux
Jeng! Ceritanya pelajar gila hari ini sedang ingin sok pintar. Beberapa waktu lalu aku mencoba untuk menginstall salah satu sistem operasi yang bernama Linux (Ubuntu). Dan ternyata keren juga loh! Dan salah satu cara menikmati Linux adalah dengan mengoperasikannya lewat terminal.3:13 PM
Jeng! Ceritanya pelajar gila hari ini sedang ingin sok pintar. Beberapa waktu lalu aku mencoba untuk menginstall salah satu sistem operasi y...
Pelajar Gila Sudah Jadi Mahasiswa!
Hulalala. Sudah berapa tahun sejak aku curhat di tempat nista ini? Kangen juga ternyata huehehe. Sebenarnya dari dulu udah selalu pengen curhat disini. Tapi karena beberapa alasan (yang kebanyakan aku buat-buat sendiri), akhirnya gajadi post. Dan, entah kenapa tiba-tiba tadi jadi inget kata-kata seorang senior jurusanku yang namanya tidak usah disebut, takut kegeeran kalau misal ga sengaja mampir ke post ini. Katanya gini... 12:17 AMHulalala. Sudah berapa tahun sejak aku curhat di tempat nista ini? Kangen juga ternyata huehehe. Sebenarnya dari dulu udah selalu pengen cur...
[CERPEN] Inilah Saatnya
Aku terkulai lemah. Tubuh ini rasanya sudah mati. Hanya melihat dan mendengar. Kota mati berselimut keheningan malam. Seperti tak ada tanda-tanda kehidupan.Kucoba untuk gerakkan kepalaku. Ah, rasa nyeri ini amat menusuk. Tapi aku terus berusaha. Hingga aku dapat mendongakkan kepalaku. Samar-samar aku mulai dapat menangkap gambaran yang jelas dari tempat ini.
Belum sempat mataku beradaptasi dengan keadaan mengerikan ini. Secercah cahaya muncul dari kejauhan. Menyilaukan. Aku hanya dapat melihat bayangan putih. Seseorang dengan kuda putih. Semakin dekat. Sinarnya yang menyilaukan mulai membuat wajahku terasa sejuk. Siapa dia?
Ya! Itu dia…
5:08 AM
Aku terkulai lemah. Tubuh ini rasanya sudah mati. Hanya melihat dan mendengar. Kota mati berselimut keheningan malam. Seperti tak ada tanda-...
Dorama Oh Dorama
Yosh! Akhirnya aku nge-post lagi. Udah lama banget yak? Well, belakangan ini aku emang jarang banget ngepost di blog. Why kenapa? Itu mungkin karena sebelumnya di sekolahku baru aja selesai UTS. Di samping itu, aku juga lagi tergila-gila sama yang namanya dorama.Apaan tuh Dorama?
Nah, gini...
9:11 PM
Yosh! Akhirnya aku nge-post lagi. Udah lama banget yak? Well, belakangan ini aku emang jarang banget ngepost di blog. Why kenapa? Itu mungki...
Tentang Saya
Setelah aku perhatikan, ternyata matamu memang sangat indah. Sungguh. Indah sekali. Aku sangat suka menatap matamu. Sehingga aku tak menyadarinya. Mataku kini rusak dan sakit. Semuanya nampak hitam-putih. Cuma kamu yang berwarna ;)