Showing posts with label Sekolah. Show all posts

Yak sekali lagi saya akan memposting sesuatu yang berbau Linux. Mungkin postingan ini akan jadi postingan terakhir saya yang membahas cara-cara menyenangkan dalam mengoperasikan Linux.


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 pemasangan FUSE, silakan langsung menuju websitenya langsung di http://fuse.sourceforge.net/. Disana tersedia lengkap file downloadnya sampai cara menginstalnya juga ada.

Kalau sudah install FUSE,
Saatnya test drive!



Tuliskan kode berikut ini dan simpan dalam bentuk file source code bahasa c (.c)

/*
    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;
}
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].

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.

Untuk penyegaran, saya cantumkan beberapa plesetan jayus FUSE di bawah ini.

mamFUSE

FUSEeengg mikirin kamu

FUSEr bodong

OktoFUSE

FUSE-up

kamFUSE

Yak sekali lagi saya akan memposting sesuatu yang berbau Linux. Mungkin postingan ini akan jadi postingan terakhir saya yang membahas cara-...

Halo teman-teman! Kali ini saya akan memberikan tutorial singkat tentang cara membuat sebuah program untuk mengelola stok barang di sebuah toko komputer.



Halo teman-teman! Kali ini saya akan memberikan tutorial singkat tentang cara membuat sebuah program untuk mengelola stok barang di sebuah t...

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.

Jeng! Ceritanya pelajar gila hari ini sedang ingin sok pintar. Beberapa waktu lalu aku mencoba untuk menginstall salah satu sistem operasi y...

Oke, aku balik lagi. Coba aja blog ini manusia, pasti udah aku peluk-cium dah. Udah lamaaaaa bangets (saking lamanya sampe nulis kata banget pake 's') aku tidak bercerita pada blog-ku tercinta ini.

Well, sepertinya aku kehilangan kemampuan untuk nulis di blog. Entah kenapa. Padahal sebenernya ada banyak hal yang pengen aku ceritain di blog. Entah kenapa juga jari-jari ini rasanya gak bisa diajak kerja sama.

By the way bus way wa wey wa wey, aku pengen sedikit berbagi cerita tentang kelasku yang baru.

Oke, aku balik lagi. Coba aja blog ini manusia, pasti udah aku peluk-cium dah. Udah lamaaaaa bangets (saking lamanya sampe nulis kata banget...


Yak, aku ngepost lagi. Well, ternyata udah mulai yang namanya liburan panjang kenaikan kelas. Mungkin sebagian pelajar udah memulai liburannya sekitar dua minggu yang lalu. Tapi aku? Baru mulai bisa ngeerasain liburan, karena sempet dihadang semacam pelantikan. Oke lewatin aja itu, ada sedikit pengalaman yang pengen aku bagi ke blog ini.

Yak, aku ngepost lagi. Well, ternyata udah mulai yang namanya liburan panjang kenaikan kelas. Mungkin sebagian pelajar udah memulai libura...


Oke, untuk mengisi blog ini, aku bakal tulis deskripsi profil temen-temenku di kelas 10. Gak tau deh, apa mereka bakal beda kelas atau tetep sekelas sama aku di kelas 11 nanti. Gak banyak temen yang bakal aku ceritain. Cuma beberapa temen yang cocok untuk diceritain di blog gila macam blog ini.


Oke, untuk mengisi blog ini, aku bakal tulis deskripsi profil temen-temenku di kelas 10. Gak tau deh, apa mereka bakal beda kelas atau tet...

Hmm, semua orang pasti punya yang namanya masa lalu. Entah itu asik atau bikin bete setengah idup. Kecuali untuk yang masih berupa bayi, gak mungkin punya masa lalu.
Pada postingan kali ini aku pengen berbagi beberapa kisah hidupku di masa lalu. Bukan, bukan hidupku waktu zaman megantropus cebok pake batu arang! Hidupku dari aku SD.

Hmm, semua orang pasti punya yang namanya masa lalu. Entah itu asik atau bikin bete setengah idup. Kecuali untuk yang masih berupa bayi, gak...

Haaahh. Entah kenapa belakangan ini aku males banget ngeblog. Mungkin gara-gara  banyak tugas. Atau, mungkin juga karena paket internetku diganti. Ya, diganti. Sebelumnya aku pake paket yang unlimited sebulan. Trus, gara-gara keseringan maen game online, eh ortuku malah marah-marah. Internet di rumah pun jadi korban. Paket unlimitednya diganti jadi 15 jam sebulan. Kebayang gak sih? Internet 15 jam sebulan di jaman seperti ini. Rasanya kayak kebelet boker, tapi gak punya lubang pantat. Duh, gak tahan, nyet!

Sesuai dengan judul post ini, malam ini aku pengen certain pengalamanku waktu pelantikan. Sebenernya sih males juga aku nyeritainnya. Soalnya pelantikannya udah lamaaaa (saking lamanya sampe huruf a-nya ditulis 4 kali) banget. Tapi karena udah terlanjur bikin postingan tentang pelantikan sebelumnya, jadi aku buat aja lanjutannya sekarang.

Haaahh. Entah kenapa belakangan ini aku males banget ngeblog. Mungkin gara-gara  banyak tugas. Atau, mungkin juga karena paket internetku di...


Yo, guys. Para pembaca. Dimanapun kalian berada. Dimana pun kalian baca tulisan ini. Entah itu di kamar. Entah di wc (siapa tau). Atau mungkin…, ah, gak jadi deh.
Gile. Kayak udah punya banyak pembaca aja aku.

Wow, aku kangen banget nih sama blogku yang ganteng dan keren. Ya, aku tau, sama kayak penulisnya kan? Nah, aku mau cerita.
Eh, yang mau muntah tahan dulu, baca aja dulu sampe habis. Biar sekalian.

Oke, begini ceritanya. Kisah ini terjadi sekitar minggu lalu. Atau lebih tepatnya satu mingu setelah sandal jepit kesayanganku putus. Organisasi kesayanganku (halah) mengadakan suatu program kegiatan yang mengacu pada proses pendewasaan para junior. Atau lebih simple disebut pelantikan. Banyak banget pengalaman yang aku bisa dapetin selama pelantikan tersebut. Tapi sebelumnya aku mau ceritain saat kami mempersiapkan diri untuk pelantikan.

Yo, guys. Para pembaca. Dimanapun kalian berada. Dimana pun kalian baca tulisan ini. Entah itu di kamar. Entah di wc (siapa tau). Atau mun...

Cilukba! Lama tak jumpa, blog!
Yaudah, langsung aja.

Dua hari yang lalu. Aku terkena penyakit, ehm, diare. Tapi tolong dibedakan antara diare dan mencret. Mencret itu untuk orang biasa, kalo diare untuk orang ganteng. Oke, muntahnya nanti aja dulu. Aku mau cerita.

Cilukba! Lama tak jumpa, blog! Yaudah, langsung aja. Dua hari yang lalu. Aku terkena penyakit, ehm, diare. Tapi tolong dibedakan antar...

Selamat malam, blog-ku tercinta, tersayang, ter..., ya apalah itu.
Oke, langsung aja aku mulai ceritaku.

Selamat malam, blog-ku tercinta, tersayang, ter..., ya apalah itu. Oke, langsung aja aku mulai ceritaku.

Salam cilukba!
Seperti biasa, malam ini aku pengen cerita sama blog.

Semenjak masuk SMA, aku jadi agak sedikit, ehm, homo. Awalnya sih aku cuman pengen bercanda, biar gak stres belajar terus. Eh, temen-temen satu kelas (iya, satu kelas, 38 jiwa) nganggep aku homo beneran. Aneh. Masa tampangku yang ma(c)ho gini dibilang homo? Oh, teletabis! Kutukan apa ini?

Salam cilukba! Seperti biasa, malam ini aku pengen cerita sama blog. Semenjak masuk SMA, aku jadi agak sedikit, ehm, homo. Awalnya sih...

Selamat malam. Salam sejahtera.
Belakangan ini aku jadi agak lebih rajin ngeblog. Duh, makin cinta deh sama blog. Cium dulu neehh.

Yak, hari ini aku bakal sharing tentang pengalamanku tadi di sekolah. Dimulai dari pagi hari yang cerah, embun menetes bersahaja di balik senyum-senyum kedamaian (maut dah). Seperti biasa aku ke sekolah naik Si Supriyadi (plesetan), motor kesayangan. Kegiatan berjalan seperti biasa. Tapi, semua mulai berubah sejak pelajaran pertama datang.

Selamat malam. Salam sejahtera. Belakangan ini aku jadi agak lebih rajin ngeblog. Duh, makin cinta deh sama blog. Cium dulu neehh. Ya...

Okay, I'm come back!
Kali ini aku mau cerita tentang beberapa hal gila. Oke langsung aja.


Kamu tau? Tadi sekolahku kedatengan Bule. Iya, Bule, man! BULE! (maklum, gak pernah liat bule)

Okay, I'm come back! Kali ini aku mau cerita tentang beberapa hal gila. Oke langsung aja. Kamu tau? Tadi sekolahku kedatengan Bule. ...

Hai, Blog!
Duh, lama banget blog ini tak terjamah oleh tangan-tangan nistaku ini.
Duh, jadi kangen, peluk ahh..
Duh, jadi bingung.
Duh, jadi kebelet.
~pret
Duh, keluar deh. Bau deh.

Hai, Blog! Duh, lama banget blog ini tak terjamah oleh tangan-tangan nistaku ini. Duh, jadi kangen, peluk ahh.. Duh, jadi bingung. Duh, ...

Selamat hari Senin, kawan.
Hari yang dimana waktu berjalan lebih lambat dari biasanya. Nah, kenapa aku bilang selamat hari Senin? Padahal aku posting tulisan ini hari Selasa. Itu karena aku buat tulisan ini pas hari Senin, tapi karena ada tugas numpuk, jadi aku gak sempet buat nerbitin tulisan ini di blog-ku sayangku cintaku manisku pas hari Senin.

Selamat hari Senin, kawan. Hari yang dimana waktu berjalan lebih lambat dari biasanya. Nah, kenapa aku bilang selamat hari Senin? Padahal...

Selamat hari minggu, blog!
Hari ini aku mau cerita tentang banyak hal. Oke nggak usah nasi basi lagi.

Selamat hari minggu, blog! Hari ini aku mau cerita tentang banyak hal. Oke nggak usah nasi basi lagi.

Salam pelajar! Gimana tadi di sekolah? Ada tugas? Banyak gak? (pertanyaannya kayak udah punya banyak pembaca aja) Kalo iya, berarti sama kayak aku.

Salam pelajar! Gimana tadi di sekolah? Ada tugas? Banyak gak? (pertanyaannya kayak udah punya banyak pembaca aja) Kalo iya, berarti sama kay...