Monday, December 24, 2018

Rubik's Cube secara intuitif

Menyelesaikan kubus Rubik secara intuitif tidak hanya mengurangi keharusan menghapal banyak rumus panjang tetapi juga membantu memahami cara kerja kubus.
1. Kondisi acak orientasi bebas, saya menggunakan warna biru sebagai dasar tetapi setiap orang bebas memilih warna lain. Menyelesaikan kubus hanya berpatokan pada warna sisi itu kurang tepat. Kubus rubik terdiri dari 8 sudut, 12 tepi dan 6 pusat. Sebenarnya ada 1 inti sumbu di dalam tetapi tidak perlu diperhitungkan. Pusat yang berjumlah 6 sebenarnya tidak berpindah tempat antara satu dengan yang lain. Menyelesikan kubus artinya menempatkan 8 + 12 kepingan pada tempatnya. Menempatkan kepingan-kepingan pada tempatnya artinya menyamakan keseluruhan warna sisi dan menyelesaikan kubus. Tidak sebaliknya, menyamakan warna sisi tanpa menempatkan kepingan2 pada tempatnya itu tidak mungkin menyelesaikan kubus.

2. Membuat cross dasar dapat dilakukan secara intuitif dan merupakan proses paling mudah. Walaupun bukan keharusan untuk menghapal rumus dalam metode intuitif tetapi mengetahui notasi rumus sangat membantu. Notasi putaran
F = depan, D = dasar, B = belakang, U = atas, R = kanan, dan L = kiri. Arah putarnya adalah searah jarum jam sedangkan bila diberi tanda ' (petik tunggal) maka menjadi berlawanan arah jarum jam seperti F', D', B', U', R', L'. Notasi lokasi kepingan ditulis gabungan notasi putaran, contoh UR = atas kanan, DL = bawah kiri dst. Sedangkan untuk sudut menggunakan 3 gabungan seperti UFL = atas depan kiri dst. Pada gambar di atas F = putih, U = oranye dan R = biru. Orientasi kubus setiap orang bisa berbeda. UR pada gambar di atas berwarna Oranye Biru. Contoh untuk membalik kepingan pada posisi UR yang warnanya bisa berbeda silakan diamati adalah R B R' U. Contoh langkah tersebut sangat sederhana, mudah dipahami dan merupakan contoh rumus intuitif.
Membuat cross pada gambar di atas terlihat kepingan Biru Oranye, warna oranye di sisi yang sama dengan pusat oranye dan warna biru di sisi yang sama dengan pusat biru. Lakukan hal yang sama untuk kepingan  Biru Putih, Biru Merah dan Biru Kuning.

3. Buat sabuk equator, contoh gambar di atas warna Putih Oranye, Putih Merah dan Merah Kuning. Kepingan Oranye Kuning sementara tidak perlu dipikirkan.

4. Gambar di atas menunjukkan bagian sabuk yang belum terpasang yaitu kepingan Kuning Oranye. Lokasi tersebut untuk menukar kepingan-kepingan yang belum terpasang yang contoh di sini adalah sisi warna hijau (tidak kelihatan).

5. Contoh proses menukar kepingan ujung Biru Putih Oranye dengan kepingan yang benar yang harusnya Biru Putih Merah. Sisi aman yang diputar adalah F,U,R dan L. Prosesnya bisa didapatkan secara intuitif sehingga menjaga sisi-sisi lain tidak teracak lagi. Perlu diperhatikan pada contoh gambar di atas, putaran F' atau U akan memungkin memanipulasi kepingan-kepingan di sisi L. Sebaliknya putaran F atau U' memungkinkan manipulasi pada sisi R. Perlu pengamatan lebih dalam untuk memahami cara kerja urutan langkah-langkah di atas.

6. Contoh kepingan Biru Putih Merah pada tempat yang benar di antara kepingan Biru Putih dan Biru Merah.

7. Contoh lain keping Merah Putih Hijau harus diganti dengan keping Biru Oranye Putih.

8. Kepingan Biru Oranye Putih di tempat yang benar. Kepingan Biru Kuning Merah harus ditempatkan dengan benar dengan cara yang sama. Biarkan kepingan Biru Oranye Kuning bila belum terselesaikan.

9. Ubah orientasi kubus sehingga sisi Biru di sebelah bawah dan Hijau di atas. Sekarang tujuannya adalah menata sisi Hijau sehingga kubus dapat terselesaikan.
Untuk menyusun dua lapisan paling bawah dapat juga menggunakan metode Layer By Layer pemula yang juga intuitif. Sebenarnya metode yang lebih cepat seperti First 2 Layers dari CFOP juga intuitif hanya saja memiliki variasi langkah yang sangat banyak sehingga terlihat mengintimidasi.

10. Walupun terlihat sangat sulit tetapi sisi Hijau dapat ditata dengan cara intuitif dengan memanfaatkan sisi U, F, R dan D. Gunakan kolom yang belum selesai untuk menukar kepingan-kepingan sehingga menempati tempat yang benar. Di sini kita mulai menggunakan yang disebut komutator. Komutator artinya bila langkah A dilakukan dan kemudian langkah A' atau kebalikannya diaplikasikan maka posisi kepingan akan kembali seperti sebelum langkah A dilakukan. Contoh berikut adalah penggunaan rumus A = R' D R dan kebalikannya A' = R' D' R untuk menempatkan kepingan Hijau Oranye Kuning pada tempatnya.  Lakukan A = R' D R maka kepingan Hijau Oranye Kuning akan berada pada tempat yang benar. Di sini perlu diingat bahwa kita sudah mengaplikasikan A sehingga kita perlu mengaplikasikan A' supaya kubus kembali ke posisi sebelum A. Sebelum mengaplikasikan A' maka putar U supaya kepingan Hijau Oranye Kuning tidak berpindah, bebas apakah U atau U' setelah itu aplikasikan A' = R' D' R dan sebagian kepingan kubus akan kembali seperti sebelum A. Langkah ini perlu pemahaman cara kerjanya dan secara intuitif lebih mudah dibanding rumus panjang untuk penyelesaian cepat.

11.  Dengan mencoba-coba komutator di atas dengan hati-hati kita akan dapat menempatkan kepingan-kepingan pojok Hijau dapat ditempatkan dengan benar. Sebenarnya dengan terus mencoba langkah 10 akan didapat kubus selesai sempurna. Untuk lebih cepat ada satu rumus mudah untuk memutar dua kepingan pojok agar menghadap arah yang benar. Rumus ini sangat mudah dihapal:
F D2 F' - R' D2 R - U2 - R' D2 R - F D2 F' - U2, untuk sederhananya kita namakan rumus ini B.
pada dasarnya rumus B di atas adalah komutator juga. Rumus di atas akan memutar arah hadap ujung Hijau Oranye Putih dan ujung Hijau Merah Kuning. Masalah yang dihadapi adalah ujung yang salah hadap adalah Hijau Oranye Putih dan Hijau Merah Putih sehingga kita perlu menempatkan sementara Kepingan Hijau Merah Putih ke lokasi Hijau Merah Kuning dengan L'. Langkah ini disebut sebagai langkah setup yang nanti kita balikkan dengan L.
Keseluruhan langkah menjadi L' - B - L. Seandainya masih belum benar maka lakukan lagi. Dengan tahapan langkah-langkah di atas maka akan didapatkan kubus terselesaikan dengan hanya menghapal satu rumus mudah.

Cara di atas tidak mengharuskan menghapal rumus tetapi perlu memperhatikan arah hadap dan posisi kepingan-kepingan dengan lebih hati-hati. Mengingat kapan kita melakukan setup kemudian membalik setup tersebut. Kemudian juga hati-hati dalam menggunakan pasangan komutator sehingga tidak terjadi salah memasangkan dan kubus akan kacau.

Friday, August 10, 2018

Minetest : Dunia kotak pasir voxel bagi semua orang.


Main video game sepertinya tidak pernah lepas dan sepertinya saat ini menemukan game yang sesuai untuk hampir semua umur. Dasar pemikiran dari bermain game adalah eksperimen mengatasi persoalan yang mungkin jarang dijumpai di dunia nyata tetapi ada kemungkinan hal tesebut terjadi. Mengadopsi dari Minecraft yang tidak lagi gratis Minetest bisa didapatkan secara gratis bahkan dapat dijadikan bahan pelajaran dalam pemrograman game dan grafis karena bersifat open source. Yang membuat menarik adalah tema yang bersifat eksplorasi karena dunia dalam Minetest diciptakan mengikuti pola alam yang asli sehingga dapat menjadi model dalam petualangan. Untuk melengkapi alam yang yang sudah terlihat natural masih ada mods menggunakan bahasa Lua (menurut saya bahasa ini relatif jelas dan sederhana) sehingga game menjadi lebih kompleks.

Bagi saya sendiri yang lebih seru dari memainkan minetest itu sendiri adalah memadu-padankan mods dari berbagai sumber sehingga menjadi sebuah game yang unik sesuai dengan imajinasi kita. Dunia dasar minetest sendiri sebenarnya sudah lengkap untuk sekedar melakukan eksplorasi dan membangun sesuai kreativitas pemain seperti memainkan lego tetapi dengan mods maka pemain akan mendapatkan fasilitas atau tantangan lebih serta hal2 yang tidak terduga berbeda dari game minetest yang lain. Game ini dapat menjadi contoh bagaimana sebuah game computer dibuat mulai dari kode program, tekstur gambar, suara sampai pada animasi dan interaksi dengan pemain dalam lingkungan 3D. Interaksi 3D dalam game hampir merupakan keharusan karena perkembangan hardware dan software. Secara garis besar semua game dibentuk dengan cara yang sama. Ketika semua game menawarkan skenario interaksi dengan dunia yang relatif tidak dapat diubah, minetest menawarkan pada pemain kebebasan. Pemain dapat membuat bangunan atau menggali dan menghancurkan lingkungan di sekitarnya dengan alat yang sesuai. Tidak ada akhir pasti dalam minetest yang perlu dilakukan adalah pemain bergabung kemudian mencoba berinteraksi dengan lingkungan. Beberapa setingan memiliki batasan nyawa apabila pemain kehilangan banyak point nyawa maka akan mati dan kehilangan seluruh barang2nya.

Dunia Minetest tidak mengenal sistem uang karena semua sumberdaya diambil langsung dari alam. Suatu sumberdaya dinilai berdasarkan kesulitan mendapatkannya. Tidak ada sistem scoring dalam game ini karena sepertinya tidak ada batasnya. Setiap usaha yg dilakukan langsung terlihat hasilnya seperti bahan tambang, alat baru atau rumah yang semakin nyaman dan aman. Dalam minetest juga menampilkan kegiatan cocok tanam secara umum sehingga anak2 tahu bahwa bertanam paling tidak perlu air, tanah dan biji

Mods Minetest ramuan saya sendiri yang saya pakai di krambtest.ddns.net:40000.

Thursday, April 19, 2018

Akses Romote OpenGL pakai VirtualGL melalui TurboVNC

Mendayagunakan server berbeda dari memakai workstation biasa. Server tidak dimaksudkan untuk digunakan melalui login secara lokal. Semua aktivitas komputasi dilakukan secara remote walaupun bisa juga dilakukan secara lokal tetapi itu kurang sesuai dengan konsep server dan client. Termasuk keperluan grafis terakselerasi seperti OpenGL. Aplikasi visualisasi 3D banyak menggunakan OpenGL. Aplikasi yang menggunakan OpenGL dimaksudkan untuk memanfaatkan kemampuan kartu grafis secara maksimal. Karena akses lokal diminimalkan maka harus dilakukan setting penggunaan OpenGL secara remote. Cara yang cukup populer digunakan adalah melalui TurboVNC dan VirtualGL. TurboVNC menyediakan tampilan grafis tidak terakselerasi secara remote atau singkatnya remote desktop. Seolah kita bekerja menggunakan desktop GUI tanpa harus login secara lokal. TurboVNC tidak mendukung akselerasi grafis sehingga tidak dapat menjalankan aplikasi OpenGL seperti blender secara langsung. Untuk dapat menggunakan OpenGL secara remote melalui TurboVNC maka digunakan VirtualGL.

Jadi VirtualGL ini akan menjembatani pemrosesan grafis OpenGL dari server dan mengirimkan hasilnya ke komputer client. Apabila client juga terhubung ke server melalui TurboVNC karena memakai GUI maka VirtualGL akan mengirimkan hasil pemrosesan grafis ke TurboVNC. Dengan demikian kita bisa menikmati hasil pemrosesan grafis secara remote. Proses instalasi dan seting sebenarnya simple tetapi karena kasus setiap instalasi beda maka bisa menimbulkan pusing tersendiri. Kebetulan komputer server yang saya pakai menggunakan Ubuntu Server 16.04 64 bit dengan 2 VGA Adapter yaitu bawaan Matrox G200 yang sepertinya sekedar agar bisa disambung ke layar. Adapter yang kedua ada Nvidia Titan Xp donasi dari Nvidia GPU grant yang saya pakai untuk komputasi menggunakan GPU. Sebenarnya kalai GPU hanya dipakai sebagai co-proccessor saja hanya untuk memanfaatkan CUDA maka tidak perlu pengelolaan grafis. Tapi saya berpikir juga apabila nanti diperlukan visualisasi model yang kompleks dan harus menggunakan akselerasi seperti OpenGL maka pemrosesan grafis menjadi perlu. Di sini saya coba untuk mendokumentasikan pengalaman instalasi yang akhirnya sukses setelah 2 hari coba-cobi hampir menyerah di hari ke 3. Untuk client saya pakai komputer dengan resource terbatas karena segala pemrosesan akan dibebankan ke server. Juga menggunakan Ubuntu 16.04 64bit.
Pada komputer server sudah terpasang driver proprietary dari Nvidia dan ini sepertinya wajib karena dalam driver tersebut terdapat modul GLX yang memungkinkan OpenGL menggunakan kartu VGA. Apabila driver telah terpasang maka perintah nvidia-smi akan memunculkan status kartu grafis aktif. Karena saya juga menjalankan program CUDA maka saya juga memasang CUDA Toolkit walaupun sepertinya tidak wajib di sini. Semua proses saya lakukan secara remote dan tidak ada monitor terpasang pada komputer server.

OK, pertama adalah proses instalasi, sederhana TurboVNC dan VirtualGL dapat didownload dan diinstal tentu saja akses root diperlukan. Arsitekturnya menyesuaikan karena saya menggunakan versi 64 bit maka installernya juga 64 bit. Ubuntu sendiri sebenarnya juga sudah menyediakan instalasi VirtualGL sendiri sehingga terserah pilih yang mana. Instalasi dilakukan baik di server juga client. Jadi kalau salah satu atau keduanya Windows maka harap menyesuaikan.

Berikutnya adalah pembuatan file /etc/X11/xorg.conf yang akan mengaktifkan OpenGL pada kartu grafis. Biasanya dengan instalasi driver nvidia proprietary akan menonaktifkan driver opensource seperti nouveau dan driver generik seperti mesa. Saya memang sudah tidak bermaksud mendayagunakan kartu grafis bawaan selain karena fiturnya terbatas dan saya ingin murni server yang headless artinya tidak terhubung dengan monitor. Perintah untuk membuat file /etc/X11/xorg.conf versi Nvidia adalah:
sudo nvidia-xconfig -a --use-display-device=none
setelah itu file xorg.conf akan tersedia. Apabila hanya ada kartu grafis maka file xorg.conf tidak perlu diapa2kan. Tapi seandainya ada dua kartu grafis seperti berikut:
lspci | grep VGA
01:00.1 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200EH (rev 01)
09:00.0 VGA compatible controller: NVIDIA Corporation Device 1b02 (rev a1)
maka kita perlu menambahkan informasi BusID pada file /etc/X11/xorg.conf  sehingga pada bagian device menjadi seperti ini:
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "TITAN Xp"
    BusID          "PCI:9:0:0"
EndSection
BusID ditulis sesuai dengan alamat bus PCIe yang muncul dari perintah lspci. Yang membuat instalasi tidak berhasil selama dua hari karena tidak ada baris BusID sehingga X server tidak dapat berkomunikasi dengan kartu grafis.

Dan sepertinya perlu dipastikan juga ada bagian ini:
Section "Module"

    Load "glx"
EndSection

Sekarang melakukan setting VirtualGL yang bertujuan memberikan akses bagi user agar dapat menggunakan X server yang sudah terpasang modul GLX. Sebelum melakukan seting maka X server harus dimatikan dengan mematikan desktop manager. Ubuntu yang menggunakan lightdm untuk mematikan desktop managernya dengan perintah:
sudo service lightdm stop

Karena harus mematikan desktop manager maka lebih baik proses dilakukan melalui remote terminal atau terminal non grafis lokal TTY, (Ctrl-Alt-F1).
Berikutnya perintah seting VirtualGL:
sudo /opt/VirtualGL/bin/vglserver_config

dan akan muncul pertanyaan2:
Restrict local X server access to vglusers group (recommended)?
[Y/n]
Restrict framebuffer device access to vglusers group (recommended)?
[Y/n]
Disable XTEST extension (recommended)?
[Y/n]
Disarankan semua dijawab Y untuk keamanan kemudian exit. Program vglserver_config akan membuat group vglusers yang isinya adalah user yang terpercaya untuk menggunakan X server secara remote. Untuk menambahkan user ke grup vglusers perintahnya:
sudo usermod -a -G vglusers trusted_user_here

Agar setingan di atas atas aktif maka perlu melakukan reboot:
sudo reboot

Apabila kita melakukan secara remote maka pastika tidak ada yang menghalangi koneksi SSH setelah reboot atau kita terpaksa mengakses secara lokal.
Sebelum mengakses X server maka perlu membaca kunci otorisasi X dari VirtualGL oleh user:
xauth merge /etc/opt/VirtualGL/vgl_xauth_key
Apabila proses seting berhasil maka perintah:
xdpyinfo -d :0 | grep GLX akan memunculkan:
GLX dan mungkin NV-GLX

Beberapa kali mencoba saya tidak sukses memunculkan bahwa modul GLX telah terpasang pada DISPLAY :0 yang merupakan display yang memproses grafis yang diharapkan mendukung OpenGL. Langkah2 di atas memastikan keberhasilan terpasangnya GLX pada display :0.

Sekarang kita memasang TurboVNCnya. Sebenarnya apabila kita terkoneksi dengan server melalui LAN maka kita dapat langsung menggunakan VirtualGL melalui terminal dengan vglconnect :
vglconnect trusted_user@server

yang akan melakukan koneksi ke akun remote melalui SSH -X sekaligus menjalankan vglclient untuk koneksi pengiriman grafik hasil proses OpenGL dari server. Tetapi bila koneksi dilakukan melalui internet maka kompresi perlu dilakukan dan interaksi dengan GUI dilakukan dengan TurboVNC dan VirtualGL cukup mengirimkan hasil pemrosesan melalui TurboVNC.

Setelah instalasi TurboVNC maka jalankan vncserver pada akun remote. Sebelum itu untuk keamanan buat dulu password untuk koneksi TurboVNC dengan:
/opt/TurboVNC/bin/vncpasswd

isi sesuai petunjuk pembuatan password. Kemudian jalankan vncserver dengan perintah:
/opt/TurboVNC/bin/vncserver

dan akan muncul informasi display yang dipakai oleh vncserver :
* Starting vncserver for user 'trusted_user' on localhost:2...                                                            
Desktop 'TurboVNC: MACHINE-NAME:2 (trusted_user)' started on display MACHINE-NAME:2

angka :2 pada contoh di atas menunjukkan display yang aktif bagi trusted_user. Pada konsep server-client pada linux sebuah server dapat memiliki lebih dari satu X display mulai :0 sampai seterusnya dan masing2 dapat diakses melalui port 6000 sampai seterusnya secara remote. Untuk display :2 dapat diakses melalui port 6002. Untuk aksesnya bisa melalui cara bermacam2, yang paling mudah dan sangat tidak aman adalah langsung melalui :
ip_address_server:6002
menggunakan program vncviewer yang terpasang di client. Apabila memasang TurboVNC di client maka namanya adalah TurboVNC viewer, file program di /opt/TurboVNC/bin/vncviewer
Sedangkan cara yang disarankan adalah melalui port forwarding atau tunneling menggunakan SSH.
ssh -R 6002:localhost:5902 trusted_user@server_address

perintah di atas adalah contoh untuk mengakses akun remote dan membuka port 5902 pada localhost yang terhubung dengan port 6002 remote. Akses VNC dapat dilakukan melalui localhost:5902 secara aman. Untuk detil port forwarding ssh dapat dicari di web.

Setelah kita terkoneksi dengan remote GUI melalui TurboVNC, maka kita bisa membuka terminal melalui GUI tersebut dan untuk menjalankan program OpenGL seperti glxgears atau bahkan blender untuk desain 3D perintahnya:
/opt/VirtualGL/bin/vglrun glxgears

VirtualGL akan mengirim perintah ke display :0 yang terhubung dengan kartu grafis dan OpenGL untuk memproses program dan mengirim hasilnya ke display TurboVNC. Jadi apabila seting X server + GLX pada display :0 tidak berhasil maka vglrun akan gagal.

Catatan: Pada kasus saya setelah semua cara benar tetapi vglrun gagal ternyata saya menjalankan vncserver dengan depth 16 bit yang artinya tidak murni RGB 24/32bit sehingga tidak dapat dipakai oleh OpenGL, akhirnya opsi depth 16 saya hilangkan dan berhasil.

Monday, March 19, 2018

NVIDIA GPU Grant Approved

Rasanya hampir tidak percaya, ternyata pengajuan hibah GPU kepada pihak Nvidia diterima. GPU ini sebenarnya biasa dipakai oleh gamer yaitu kelas GeForce sementara untuk komputasi ilmiah yang digunakan adalah kelas Tesla yang biasanya tidak ada port displainya. Ada lagi kelas Quadro yang digunakan oleh profesional seperti industri efek spesial perfilman. Maunya yang diajukan adalah Quadro karena mereka tidak menyediakan Tesla tetapi yang disetujui adalah Geforce Titan Xp yang sebenarnya sudah sangat powerful dengan 3840 core CUDA. Bedanya adalah kelas GeForce tidak disertai ECC aktif karena tujuannya adalah kecepatan serta double precision tidak native sehingga tidak secepat double precision CPU atau Tesla. Setelah melalui proses instalasi yang terbilang agak maksa akhirnya GPU dapat dieksplorasi untuk komputasi parallel GPU.

Berita baik dari Nvidia itu:

Hi Brian,



We have reviewed your NVIDIA GPU Grant Request and we are happy support your work with the donation of (1) Titan Xp to support your research. We will ship via FedEx/DHL to the address listed in the form below and you can expect to receive within two weeks.  Please respond within 48 hours if you are unable to house the GPU, unable to clear customs or the address, email or phone number you have provided is incorrect.  If you are unable to house the GPU or the shipment is unable to be delivered we will not be able to re-ship.  Once the GPU has shipped you will receive a courtesy email from our shipping team with the tracking number.



We ship donated GPUs with a commercial invoice per shipping regulations. The price listed on this commercial invoice is the donation value not the price you would purchase online or from a vendor at MSRP price. Our vendors decide their MSRP pricing. We also ship so we pay all fees if the country will allow it.



Please ensure that the GPU is powered properly as per the information found here: https://developer.nvidia.com/hw-grant-supplemental-info.



If this hardware donation results in any publications or reports, we kindly ask that you acknowledge “NVIDIA Corporation”.  This is one way we track and justify our programs and adding “NVIDIA Corporation” to your acknowledgement will help us more easily track. We trust your judgment in how you acknowledge NVIDIA Corporation, however here are a couple samples:  "The Titan Xp used for this research was donated by the NVIDIA Corporation."  or “We gratefully acknowledge the support of NVIDIA Corporation with the donation of the Titan Xp GPU used for this research.” You are also encouraged to acknowledge NVIDIA Corporation in any contacts with the news media or in general articles.



This equipment donation will come as an unrestricted gift to support your research, however it is not for resale.  As part of the GPU Grant Program, you will receive occasional newsletters and requests to complete surveys.  While you are free to opt out of the newsletter at any time, we ask that you complete the infrequent surveys. These are important for tracking and justifying our academic programs, and cover topics such as updates on your GPU related courses, publications and research progress.



All the best,



Academic Programs Team
GTC2018, the premier AI and deep learning event for developers solving the most challenging computational problems in the world, will take place March 26-29 in San Jose, CA. Register today using my 25% off code (NVCCHEIJ).



Sunday, January 14, 2018

Diet Digital

Diet Digital

Diet Digital

Hampir setiap hari kita tidak pernah lepas dari yang namanya smartphone sekarang. Dengan layar lebar berwarna-warni fungsinya sangat lengkap mulai alat komunikasi, sumber informasi sampai permainan. Tanpa sadar akhirnya kita menjadi kecanduan bahkan sampai menunjukkan gejala perubahan tingkah laku apabila kita dipisahkan dari smartphone. Smartphone memang sangat menarik dan memang dibuat begitu supaya kita tidak pernah lepas. Iklan didorong melalui smartphone dan semakin sulitlah untuk melepaskan diri. Ketergantungan kita pada smartphone dikatakan sudah sampai pada proses kimiawi dalam tubuh.

Perlu niat yang kuat

Modal utama dari melepaskan diri dari perilaku obsesif terhadap smartphone adalah niat yang kuat. Berikutnya banyak cara yang dapat dilakukan dan berikut adalah beberapa di antaranya. Walaupun bukan satu2nya cara yang banyak ditawarkan tetapi tidak ada salah nya dicoba karena ide ini pada dasarnya juga gratis.

Layar abu-abu

Smartphone baru biasanya sudah dilengkapi dengan OS yang mendukung mode grayscale. Mode grayscale ini sebenarnya digunakan untuk membantu orang yang memiliki buta warna. Dengan mode grayscale maka kita bisa mereduksi informasi dari warna hingga tinggal 0.04% saja. Artinya informasi yang membombardir kita sangat jauh berkurang dalam hal warna. Tidak tahu juga seberapa banyak faktor warna ini mendominasi tetapi sepertinya besar juga. Pada android untuk mengubah menjadi grayscale adalah melalui menu _accesibility_ > _vision_ > _Grayscale_.

Pada awalnya memang tidak nyaman karena dengan hilangnya warna, smartphone yang tadinya berwarna-warni menghibur jadi seperti lembar fotokopian. Justru di situlah tujuannya dengan menjadi kurang menariknya smartphone maka kita mengakses smartphone seperlunya apabila memerlukan informasi. Tidak ada lagi foto-foto yang menarik atau iklan yang menyolok karena semua menjadi abu2. Setelah semakin terbiasa dengan warna abu2 dan efeknya mengurangi perilaku kompulsif terhadap smartphone.

Alokasi waktu penggunaan

Sering tidak sadar bahwa penggunaan smartphone memakan banyak waktu. Smartphone tidak disertai dengan timer yang menunjukkan berapa lama kita telah menggunakannya tetapai ada banyak aplikasi untuk itu. Seperti di toko swalayan yang tidak pernah memasang jam, kita tidak sadar berapa lama kita berbelanja kalau dalam kasus smartphone kita tidak tahu berapa lama kita menggunakan suatu aplikasi. Salah satu app yang saya pakai dan kebetulan gratis adalah Quality Time.

Program ini akan menunjukkan berapa lama kita mengakses smartphone dan juga detil aplikasi apa saja yang kita buka dan berapa lama. Kelihatan kalau kita kebanyak lihat2 foto2 di Instagram yang kemungkinan besar berisi pameran kenarsisan dan ujung2nya bikin iri atau sakit hati. Kebanyakkan akses social media artinya seperti orang kebanyakan kongkow2 ngumpul di pos kamling ngobrol saling bertukar gosip bersahutan tanpa jelas memberikan solusi apa2. Akses ke instant messaging juga kalau kita bukan makelar juga artinya kebanyakan ngobrol yang tidak perlu. Atau malah kita menghabiskan banyak waktu untuk mengakses e-book reader menjadi kutu buku atau membaca komik tergantung apa yang kita baca. Kita juga bisa menghabiskan banyak waktu di program2 writing dan membenahi blog atau diary. Itu semua bisa menunjukkan seperti apa aktifitas kita dengan melihat alokasi waktu untuk setiap program.

Meninggalkan Smartphone tidak mungkin

Dengan berbagai macam fungsi yang dimiliki smartphone seperti pemutar musik yang mungkin menemani dalam aktifitas produktif, tidak mungkin sama sekali meninggalkan smartphone. Bahkan smartphone bisa digunakan untuk yang 100% sosial sampai 100% penyendiri. Tanpa pulsa dan paket data smartphone masih dapat digunakan sebagaimana sebuah PC atau laptop tanpa koneksi internet. Sekarang penggunaan seperti apa yang kita rencanakan. Sayang sekali smartphone yang sangat canggih bagaikan sebuah superkomputer malah menjadi penghambat kerja, produktifitas atau kreatifitas.

Monday, December 25, 2017

Percobaan export dari markdown

Pakai markdown untuk text formatting kode dan persamaan matematika inline dalam baris yang sama: \(\frac{1}{2}=0.5\).
Tulisan bisa tebal atau miring.

Bahkan persamaan yg sangat kompleks sekalipun

$$\frac{\mathrm{d}n}{\mathrm{d}t}=nr(1-\frac{n}{k})+Dx\frac{\partial^2 n}{\partial x^2}+Dy \frac{\partial^2 n}{\partial y^2}$$ Atau sekalian bikin tabel dalam teks

Kolom AKolom BKolom C
isi kolom Aisi kolom Bisi kolom C
isi ke 2isi ke 2isi ke 2

Apabila ada ide yg dibuang sayang tapi kemungkinan besar tidak dipakai maka ide lama dicoret bahkan sekarang ada garis bawah.

Kode python

for i in range(10):
    print("Python, R and Markdown are best")

Beberapa hal yg seru:

  1. Banyak opsi formatting
  2. Termasuk formula matematika pakai format latex
  3. Dan block code yang kaya untuk menuliskan kode pemrograman

Menulis draft ide ilmiah sangat terbantu mestinya oleh editor Markdown seperti ini. Seandainya menyangkut nama ilmiah seperti Casuarina junghuhniana langsung saja hasilnya cetak miring. Link ke suatu alamat juga mungkin.

Justifikasi tulisan dengan HTML juga bisa
X:1  
T:Speed the Plough  
M:4/4  
C:Trad  
K:G  
|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA:|  
|:GABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|  
|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df:|  
|:g2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|

$$ \alpha \beta \gamma \delta \eta \epsilon \tau \theta \mu \nu \sigma \phi \pi \psi \rho \omega $$ Tabel otomatis menggunakan epsilon notes

satu

satu ini footnote satu

Wednesday, November 1, 2017

Sekarang Ponsel Androidku adalah Platform Python dengan Termux + Jupyter Notebook

Termux https://play.google.com/store/apps/details?id=com.termux&hl=in adalah aplikasi yang menyediakan lingkungan CLI Linux pada ponsel Android tanpa harus melalui proses root. Tampilan Termux familiar bagi yang sudah terbiasa dengan CLI Linux termasuk perintah2nya.

Fitur2 yang dimiliki oleh Termux sangat bagus sebagai substitusi lingkungan Linux untuk sekedar sebagai referensi atau proyek pengembangan kecil.
Salah satu proyek yang didukung oleh Termux adalah Jupyter dengan lingkungan pengembangan berbasis browser yaitu Notebook. Untuk memasang jupyter notebook pada Termux maka hanya perlu memasang program2 berikut:
apt install clang python python-dev fftw libzmq libzmq-dev freetype freetype-dev libpng libpng-dev pkg-config
kemudian menggunakan pip untuk memasang paket2 modul python:
LDFLAGS=" -lm -lcompiler_rt" pip install jupyter
Ada baiknya juga memasang repositori untuk Termux ini yang diberi nama its-pointless, repositori pointless ini berisi alat2 untuk meng-compile kode program, caranya dengan mendownload file dari link ini:
https://its-pointless.github.io/setup-pointless-repo.sh
letakkan dalam home folder Termux anda dan ubah permission menjadi executable:
chmod +x setup-pointless-repo.sh
kemudian jalankan ./setup-pointless-repo.sh
Pada repositori ini sepertinya juga menyediakan modul scipy yang sulit diinstall menggunakan pip. Modul2 yang lain yang sangat perlu diinstall adalah : numpy, matplotlib, sympy dan pandas.

Ketika melakukan instalasi Jupyter maka program2 pendukung akan otomatis dipasang.
Untuk menguji keberhasilan instalasi maka coba dengan perintah:
jupyter notebook --generate-config
kemudian buat password dengan perintah :
jupyter notebook password
Tentukan password untuk melindungi jupyter notebook.
Berikutnya perintah :
jupyter notebook

akan mengaktifkan service yang dapat digunakan menggunakan browser. Buka browser dan masukkan alamat berikut:
http://localhost:8888
dan kita akan masuk halaman Jupyter Notebook.
Selanjutnya masukkan password yang telah dibuat sebelumnya dan kita akan mendapatkan lingkungan Python 3 penuh dalam bentuk Jupyter Notebook.
Berbeda dengan source Python yang berakhiran .py, file notebook berekstensi .ipynb yang merupakan file XML. File .ipynb mendukung kode Python dan Markdown sehingga file .ipynb dapat juga digunakan sebagai catatan yang mendukung live code.
Ponsel kita adalah komputer yang dapat melakukan banyak hal seperti PC yang berukuran lebih besar. Termasuk dukungan pemrograman parallel karena ponsel sekarang didukung oleh prosesor multicore. Selamat mencoba.

Sumber :
http://www.leouieda.com/blog/scipy-on-android.html
https://github.com/its-pointless/gcc_termux