- http://rcpce.engl.polyu.edu.hk/RACorpus/default.htm
- https://www.english-corpora.org/coca/
- http://langtest.jp/awsum/ (the best one, see the bottom page of this link for more resources)
- https://www.onelook.com/thesaurus/
- aiksaurus
- Mendeley >> All documents >> Search
- New added (7/8): AI-based suggestion powered by Transformer on Arxiv-NLP paper
Monday, June 28, 2021
Resources for academic writing: word concordance
Saturday, June 26, 2021
Ubuntu on Mac: Home, End, PgUp, PgDn
Home: Fn + Left ArrowThat's all. Tested on: MBP Mid 2012, Ubuntu 16.04.07.
End: Fn + Right Arrow
Page Up: Fn + Up Arrow
Page Down: Fn + Down Arrow
Tuesday, June 22, 2021
Sympy: Menyelesaikan Persamaan Matrik
Sympy melakukan proses komputasi yang tidak bisa dilakukan oleh Numpy: simbolik. Misal kita punya persamaan berikut
$$2.10^{6}\left[\begin{array}{crr} 1 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 1 \end{array}\right]\left\{\begin{array}{l} 0 \\ u_{2} \\ u_{3} \end{array}\right\}=\left[\begin{array}{c} F_{1}+1500 \\ 9000 \\ 7500 \end{array}\right] $$Dalam bentuk gambar, persamaan di atas dapat ditampilkan di bawah ini (rendering kode Latex/mathjax di atas kadang Luama....). Untuk menyelesaikan persamaan di atas (u1=0), maka solusi dengan Sympy adalah seperti kode di bawah ini:
from sympy import *
# buat symbol
u2, u3, F1 = symbols('u2 u3 F1')
# matrik sebelah kiri (left-hand)
K = Matrix([[ 1, -1, 0], [-1, 2, -1], [0, -1, 1]])
Ke1 = 2e6*K
U = Matrix([0, u2, u3]).reshape(3,1)
# matrik sebelah kanan
F = Matrix([F1+1500, 9000, 7500])
# selesaikan: cari u2, u3, dan F1
sol = solve(Ke1*U-F, (u2, u3, F1))
Jika dijalankan, hasilnya adalah sebagai berikut.
print(sol)
{u2: 0.00825000000000000, u3: 0.0120000000000000, F1: -18000.0000000000}
Monday, June 21, 2021
Numpy: Broadcasting
>>> c = np.array([[ 5, 8, 11],
[ 6, 9, 12],
[ 7, 10, 13]])
>>> c + [1, 2, 3] # bisa juga dengan list langsung
array([[1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11]])
>>> c + np.array([1, 2, 3, 4])
------------------------------------------
ValueError Traceback (most recent call last)
< ipython-input-42-d334d3cf449e> in < module >
----> 1 c + np.array([1, 2, 3, 4])
ValueError: operands could not be broadcast together
with shapes (3,3) (4,)
Contoh lain adalah penjumlahan vektor kolom [1, 2, 3] dengan vektor baris [1, 2, 3]. Contoh ini menunjukkan betapa menariknya operasi broadcasting, kolom dijumlah dengan baris. Pada kolom pertama hasilnya menjadi [2, 3, 4], tiap elemen vektor kolom ditambah 1. Pada kolom 2 tiap elemen vektor kolom ditambah 2, dan pada elemen 3 tiap elemen vektor kolom ditambah dengan 3.
>>> np.array([1, 2, 3])[:, np.newaxis]+np.array([1, 2, 3])
array([[2, 3, 4],
[3, 4, 5],
[4, 5, 6]])
Tulisan ini melengkapi tulisan ini.
Thursday, June 10, 2021
Membatasi Pen Tablet pada Satu Monitor
Skenario
Pilih monitor mana
bagus@m049:tmp$ xrandr Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 16384 x 16384 HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 698mm x 393mm 1920x1080 60.00*+ 50.00 59.94 1920x1080i 60.00 50.00 59.94 1680x1050 59.88 1280x1024 75.02 60.02 1440x900 74.98 59.90 1280x960 60.00 1152x864 75.00 1280x720 60.00 50.00 59.94 1440x576 50.00 1024x768 75.03 70.07 60.00 832x624 74.55 800x600 75.00 60.32 56.25 720x576 50.00 720x480 60.00 59.94 640x480 75.00 66.67 60.00 59.94 720x400 70.08 DP-1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm 1920x1080 60.00*+ 74.97 50.00 59.94 1920x1080i 60.00 50.00 59.94 1600x1200 60.00 1680x1050 59.95 1280x1024 75.02 60.02 1440x900 74.98 59.89 1280x960 60.00 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 60.00 832x624 74.55 800x600 75.00 60.32 720x576 50.00 720x480 60.00 59.94 640x480 75.00 60.00 59.94 720x400 70.08 HDMI-2 disconnected (normal left inverted right x axis y axis)Pada kasus di atas, saya memilih DP-1 sebagai monitor untuk pen stylus. Monitor ini menggunakan koneksi display port sehingga namanya DP-1.
Pilih divais mana
bagus@m049:tmp$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Lite-On Technology Corp. USB Multimedia Keyboard Consumer Control id=11 [slave pointer (2)]
⎜ ↳ USB Optical Mouse id=13 [slave pointer (2)]
⎜ ↳ Tablet Monitor stylus id=15 [slave pointer (2)]
⎜ ↳ Tablet Monitor Dial pad id=16 [slave pointer (2)]
⎜ ↳ Tablet Monitor Touch Strip pad id=17 [slave pointer (2)]
⎜ ↳ Tablet Monitor Pad pad id=18 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Lite-On Technology Corp. USB Multimedia Keyboard id=10 [slave keyboard (3)]
↳ Lite-On Technology Corp. USB Multimedia Keyboard System Control id=12 [slave keyboard (3)]
↳ Lite-On Technology Corp. USB Multimedia Keyboard Consumer Control id=14 [slave keyboard (3)]
Output yang penting dari output perintah di atas adalah "id". Saya memilih id 15-18 karena itu adalah id pen tablet saya. Map ke satu monitor
bagus@m049:ptxconf$ xinput map-to-output 15 DP-1 bagus@m049:ptxconf$ xinput map-to-output 16 DP-1 bagus@m049:ptxconf$ xinput map-to-output 17 DP-1 bagus@m049:ptxconf$ xinput map-to-output 18 DP-1Selesai! Sekarang saya bisa dengan leluasa menggunakan stylus di satu monitor untuk keperluan kuliah online. Berikut contohnya!
Konfigurasi Tambahan dan Menambahkan pada start up application
MONITOR="DP-1" PAD_NAME='Tablet Monitor' ID_STYLUS=$(xinput | grep "Tablet Monitor stylus" | cut -f 2 | cut -c 4-5) xinput map-to-output $ID_STYLUS $MONITOR # konfigurasi tambahan untuk Krita, Xournalpp xsetwacom set "$PAD_NAME Pad pad" button 1 key Ctrl z # undo xsetwacom set "$PAD_NAME Pad pad" button 2 key Ctrl y # redo xsetwacom set "$PAD_NAME Pad pad" button 3 key Ctrl shift p # pen xsetwacom set "$PAD_NAME Pad pad" button 8 key Ctrl shift e # eraser xsetwacom set "$PAD_NAME Pad pad" button 9 key Ctrl shift h # highlight xsetwacom set "$PAD_NAME Pad pad" button 10 key Ctrl 1 # shape recognizer xsetwacom set "$PAD_NAME Pad pad" button 11 key Ctrl shift r # select rect. xsetwacom set "$PAD_NAME Pad pad" button 12 key Ctrl d # new page after
Bonus
width = 59 cm, dan
height = 26 cm.
Wednesday, June 09, 2021
Eight Steps to Structuring an Academic Paper
- It makes sense to draft the topic (concretely a title) before starting to structuring the paper.
- After drafting a title, it is necessary to draft an abstract along with the keywords to plan what we want to write. These abstract and keywords will guide and give an overview of the overall content of the paper.
- I dropped the writing reference. It should be done automatically via BibTeX. Acknowledgment is not necessary unless your research receive funding or important helps from other researchers/agencies.
Friday, June 04, 2021
Python: List Comprehension
Salah satu fitur di pemrograman Python yang saya suka dan sering pakai adalah list comprehension. Fitur ini menyederhanakan "for" loop dalam satu baris. Berikut contohnya.
Saya punya dua vektor A dan B. Saya ingin mencari dimana kemunculan vektor B dalam vektor A.
a = np.array([1, 2, 3, 4, 5, 6]) b = np.array([2, 3, 4])Dengan contoh di atas, jawaban atas pertanyaan saya adalah [1, 2, 3]; posisi/indeks dimana vektor B muncul di vektor A. Solusi pertama dengan "for" loop sebagai berikut:
import numpy as np
for i in b:
print(np.where(a == i))
Solusi kedua dengan List comprehension seperti berikut (baris kedua merupakan output).
In [26]: [np.where(a==x) for x in b] Out[26]: [(array([1]),), (array([2]),), (array([3]),)]Cukup simpel dan intuitif.
Wednesday, June 02, 2021
Membuat Symbolic Link di Windows 10
C:\Users\bagus>mklink /J onedriveAIST "OneDrive - 国立研究開発法人産業技術総合研究所" Junction created for onedriveAIST <<===>> 'OneDrive - 国立研究開発法人産業技術総合研究所Dengan membuat symbolic seperti ini (
mklink /J destinasi sumber), kita bisa berpindah direktori secara leluasa, khususnya di WSL (Windows Subsystem for Linux).ln -sf "OneDrive - 国立研究開発法人産業技術総合研究所" onedriveAIST
Monday, May 31, 2021
Data Jalan Kaki, Tidur, dan Detak Jantung September 2020 - Maret 2021
September 2020 sampai dengan maret 2021 adalah bulan-bulan terakhir saya menjalani PhD di JAIST, Kota Nomi, Prefektur Ishikawa di Jepang. Kebetulan, di akhir september 2020 saya membeli mi band 4 yang murah meriah. Gelang tersebut memuat sensor langkah (jalan kaki), waktu tidur, dan detak jantung (BPM, beat per minute) selain data lainnya. Berikut saya sajikan data tersebut ketika berjuang menyelesaikan tahapan-tahapan terakhir studi S3 di JAIST.
Setting alat
Tidak ada yang spesial dalam mengkonfigurasi mi band saya. Hanya saja, saya mengeset "sleep assistant" pada "heart rate monitoring" (Profile > Mi Smart Band 4 > Heart rate monitoring). Selain itu saya off-kan semua. Dengan cara ini, sensor deteksi waktu tidur akan lebih akurat dan umur baterai band lebih panjang. Biasanya saya mengisi catu daya (charge) band saya sekitar sebulan sekali. Lebih kurang setiap 28 hari sekali.
Visualisasi data dilakukan dengan bantuan libreoffice Calc. Fitur yang dipakai adalah pivot table dan group and outline. Berikut datanya.
Data langkah kaki
![]() |
| Data rata-rata langkah kaki per bulan; distance dalam meter, calories dalam kcal |
Sebagai informasi tambahan, jarak antara rumah (apato) dan lab di kampus hanya 200 m. Hanya saja, apato saya berlokasi di lantai 5 (tidak ada lift), sedang lab saya ada di lantai 9 (ada lift). Dengan kondisi di tempat terpencil demikian justru saya masih bisa menjaga langkah jalan kaki sekitar delapan ribu langkah per hari.
Data waktu tidur (deep sleep, shallow sleep, total)
![]() |
| Data lama tidur September 2020 - Maret 2021 |
![]() |
| Data rata-rata lama tidur, mulai tidur, dan bangun tidur |
Dari data tidur di atas nampak tidak ada perubahan berarti ketika mengerjakan disertasi. Saya masih bisa tidur normal (6-9 jam per hari), bahkan di malam menjelang ujian pre-defense (1 Desember 2020) dan final defense (2 Februari 2021).
Data detak jantung (heartrate, beat per minutes [bpm])
Mean 65.1039860577353 Standard Error 0.044167266977505 Mode 75 Median 63 First Quartile 57 Third Quartile 74 Variance 87.307653868568 Standard Deviation 9.34385647731 Kurtosis 1.00227156060073 Skewness 0.877115460025224 Range 101 Minimum 40 Maximum 141 Sum 2913794 Count 44756
Data detak Jantung tidak menunjukkan perubahan yang berarti. Saya juga kesulitan untuk menginterpretasikan data di atas. Kedepannya, mungkin hanya data langkah kaki dan waktu tidur yang dijadikan rujukan utama untuk memvisualisasikan pola hidup.
Penutup
Tujuan utama visualisasi data jalan kaki, tidur, dan detak jantung ini adalah untuk mengetahui pola hidup saya di akhir studi S3. Saya ingin membandingkan data saat sekolah tersebut dan data saat mulai bekerja (April 2021). Data selanjutnya akan dipublikasikan juga jika memungkinkan.
Update:
- Data untuk 2023-2025 bisa diakses disini: https://bagustris.github.io/blogs/health_report_2023_2025.html
Wednesday, May 26, 2021
Menyalin teks dari Screenshot
- Install library yang dibutuhkan
- Install normcap via pip
- Panggil normcap dari terminal
normcap
sudo apt-get install tesseract-ocr xclip python3-dev python3-tk python3-pil.imagetk libleptonica-dev libtesseract-dev libnotify-bin build-essential
pip3 install normcap
Catatan untuk Ubuntu 16.04
Langkah di atas hanya bekerja pada Ubuntu 20.04 dengan Python 3.8. Untuk Ubuntu 16.04, anda harus menginstall tesseract-ocr (engine pengenalan teks) terbaru, yakni versi 4.1 via ppa. Program tesseract-ocr yang ada di repo 16.04 adalah versi lama (3.0.4) dan menyebabkan terjadinya error pada instalasi normcap di Ubuntu 16.04.
Ikuti langkah-langkah di sini untuk instalasi tesseract-ocr baru di Ubuntu 16.04. Meski sudah menginstall tesseract-ocr terbaru dan menambah data train (tessdata) di /usr/share/tesseract-ocr/tessdata/, saya masih gagal menginstall normcap di Ubuntu 16.04. Pesan errornya seperti ini.
... AttributeError: type object 'tesserocr.OEM' has no attribute 'LSTM_ONLY'
Solusi:
Berdasarkan komentar pembuatnya, berikut solusi instalasi normcap di Ubuntu 16.04:
pip3.8 uninstall tesserocr pip3.8 install --user normcapDan sekarang kita bisa menyalin teks dari gambar lewat screenshot di Ubuntu 16.04!
Tuesday, April 27, 2021
Perkalian waktu di Python
import datetime
# waktu kerja per hari, 7 jam 45 menit
t1 = datetime.timedelta(hours=7, minutes=45)
# waktu kerja sebulan, 21 hari
t2 = t1 * 21
# fungsi untuk konversi jam dan menit
def sec2hourmin(t2_datetime):
hours seconds = divmod(t2_datetime.total_seconds(), 3600)
minutes, x = divmod(seconds, 60)
return hours, minutes
print(sec2hourmin(t2))
Dengan cara ini, kita bisa mendapatkan jumlah jam yang harus kita kerjakan untuk mengerjakan sesuatu (kerja) dalam sebulan. Agar lebih elegan, teknik di atas dapat kita konversi menjadi skrip python dengan argumen jumah hari untuk menghasilkan output "jam:menit" perbulannya.
# function to calculate hours and minutes per month for work
# input argument: # days (integer)
# example python3 days_to_hours.py 21
import sys
import datetime
def days2hours(days):
tpday = datetime.timedelta(hours=7, minutes=45)
tpmonth = tpday * days
hours, seconds = divmod(tpmonth.total_seconds(), 3600)
minutes, x = divmod(seconds, 60)
return int(hours), int(minutes)
hours, minutes = days2hours(int(sys.argv[1]))
print('{}:{}'.format(str(hours), str(minutes)))
Ketik skrip di atas di editor dan simpan sebagai day_to_hour.py. Cara menggunakan skrip di atas adalah sebagai berikut.
# Jika sebulan ada 21 hari kerja $ python3 day_to_hour.py 21 162:45Artinya, dalam bulan itu ada 21 hari kerja; kita hanya diperbolehkan dan diharuskan bekerja selama 162 jam dan 45 menit.
Monday, April 26, 2021
Running IPython in multiple GPUs
Here is a simple configuration to run IPython on different GPUs on a single PC.
1. Check available GPU in PC via terminal, "$ sudo lshw -C display"
![]() |
| Checking number of GPUs |
2. Launch "$ CUDA_AVAILABLE_DEVICES=0 ipython3" to use IPython using first GPU
![]() |
| Set IPython to use the first GPU (on OS level) |
3. Launch "$ CUDA_AVAILABLE_DEVICES=1 ipython" to use IPython using second GPU
![]() |
| Set IPython to use the second GPU |
4. Check "$ nvidia-smi" to confirm both GPUs are running simultaneously
![]() |
| Output of nvidia-smi when two GPUs are used simultaneously |
5. For comparison, here is the output of 2 GPUs used in IPython without commands above
![]() |
| IPython without configuration resulting two GPUs output |
![]() |
| Ouput of nvidia-smi without configuration |
It can be seen from both IPython outputs and nvidia-smi that the configuration works. Each IPython window outputted a single GPU, while without configuration (without adding "CUDA_VISIBLE_DEVICES=X") the output of IPython is two GPUs. Also, the nvidia-smi output shows two GPUs work simultaneously with the given configs, while without config it shows only one GPU is running (the consumed memory of the second GPU only 416MiB meaning idle condition).
Update 2021/05/13
I checked again today, the above-mentioned steps sometimes still failed to choose GPU on multiple GPUs. The following workaround works for me.
Choose GPU 0
import os os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"]="0" # check with import tensorflow as tf tf.test.is_gpu_available()The same steps apply to GPU 1. These steps also can be applied using the shell command "export".
export CUDA_DEVICE_ORDER="PCI_BUS_ID" export CUDA_VISIBLE_DEVICES="1"Please be sure not to make typo (E.g, VISIBLE -> VISBLE), otherwise, the configuration won't work. There is no error message when we make string typos in a shell.
Wednesday, March 17, 2021
Configure java-11 for Ltex in VScode Ubuntu 16.04
- Download openjdk from this link: https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz
- Extract the downloaded file.
- Copy extracted file to /usr/local: sudo cp -r jdk-11.0.10+9/ /usr/local
- Set ltex java path to: /usr/local/jdk-11.0.10+9
- Finish
Friday, March 12, 2021
Pentingnya mengucapkan "Terima Kasih"
Hari ini saya mendapat komplain dari guru bahasa Jepang saya. Seorang teman, ketika membalas email, tidak mengucapkan terima kasih. Padahal guru saya tersebut sudah mau mengajarinya bahasa Jepang, tanpa dibayar. Sensei berkata, impresinya terhadap teman saya ini kurang baik. Beliau bahkan menanyakan apa dia (teman saya tersebut) orang baik. Saya jawab tidak tahu, hanya kenal saja.
Dari sini saya belajar pentingnya mengucapkan terima kasih. Dalam kultur Jepang, ucapan terima kasih ini sangat penting dan sudah membudaya. Bahkan mereka mengatakannya dua kali untuk hal yang sama. Pertama saat ketika selesai ditolong. Kedua saat bertemu lagi, biasanya keesokan harinya atau di lain waktu.
Saya kemudian mengevaluasi diri, apakah saya sudah cukup mengatakan terima kasih. Kadang saya suka terlambat membalas email dari sensei, sampai sensei mengemail lagi apakah telah menerima email sebelumnya. Meski hanya email singkat, seperti "Terima kasih atas emailnya", hal ini sangat berarti. Untuk keharmonisan hubungan guru-murid dan teman kerja, di Jepang ucapan terima kasih merupakan hal yang dijunjung tinggi dan tidak boleh dilupakan.
Pun ketika kita membayar untuk sebuah jasa. Misal ketika naik angkutan umum, saya biasakan (dan memang itu biasa di Jepang) mengucapkan terima kasih (kepada sopir) saat turun dari angkutan tersebut. Terlebih ketika angkutan tersebut gratis. Juga ketika membeli sesuatu di toko, jangan lupa bilang terima kasih pada kasirnya. Kalau saat ditolong seseorang, ucapan terima kasih ini tak boleh lupa, seperti contoh curhatan sensei (guru) saya di atas. Berterima kasih dua kali juga lebih etis ketika kita mendapatkan pertolongan.
Syariatnya, kita berterima kasih kepada manusia. Hakikatnya, kita berterima kasih pada Tuhan, Allah SWT, Tuhan Semesta Alam.
Wednesday, March 10, 2021
Tricks for obtaining Researcher visa while not yet holding PhD certificate
- Application form 1 copy
- Photo (4cm×3cm) 1 copy
- If the applicant wishes to change his/her current status to a status of residence which does not come under that for a mid to long-term resident (a photo is also not required for persons under the age of 16 years).
- A photo that shows the applicant pictured alone.
- The applicant should face squarely to the front and should remove any hats, caps, or head coverings.
- There should be a plain background with no shadows.
- The photo must be sharp and clear.
- The photo must have been taken within three months prior to submission.
- The supporting documents to be submitted on the occasion of application
are shown in Table 3(As the applicant sometimes needs to submit document material(s) other than stipulated in the Immigration Control Act Enforcement Regulations, please refer to your regional immigration office or immigration information center.) - Passport and residence card (or alien registration certificate deemed equivalent to a residence card)
- A document that proves the status (if a legal representative or agent submits the application form on behalf of the applicant)
Friday, February 19, 2021
Japanese for Work!
![]() |
| A screenshot of "Explanatory material" from NHK Japanese for work on my smartphone |
- Text file (pdf) of conversation,
- Text file (page) of explanation of the conversation,
- Audio files of the conversation.
- 手伝って くださって 大変助かりました。
- すみませんが、もう一度言っていただけますか。
- 私のおすすめは、墨田区の水族館です。
- それではまず、行きかたについてご説明します。
- 急ぎの書類はメールで送る、とのことです。
- お先に失礼してもよろしいでしょうか。
- 今日は遅れてしまい、申し訳ありませんでした。
- よろしければ、私が致しましょうか。
- 私の席はどこか、教えていだかけませんか。
- それなら、これを見るといいですよ。
- 失礼ですが、お名前はなんとお読みするんですか。
- すみません、確認させてください。
- 申し訳ありません。和田は他の電話に出ております。
- あの、実は今、別の仕事を頼まれています。
- コストを下げるために、ここの部品を変えました。
- そこを何とか、ご検討いただけませんでしょうか。
- よければ、いつでも相談に乗りますよ。
- お気持ちはありがたいのですが、受け取らない決まりになっております。
- お時間を頂いてしまい、申し訳ありません。
- 場合によっては間に合わないこともあります。よろしいでしょうか。
- 本社からのお願いです。ぜひご協力いただけませんか。
- あの、すみません。私からひとつよろしいでしょうか。
- 行き違いがあったようです。すぐに対応いたします。
- その日はあいにく先約が入っております。
- スキューバダイビングをなさるんですか。始められたきっかけはなんですか。
- うまくいかないこともあるよ。気持ちを切り替えてやってみようよ。
- ご無理を言って申し訳ありませんが、残業をお願いできませんか。
- 大事な内容なので、念のため確認させてください。
- 少し様子を見て戻ると言っていました。病院に行くほどではないそうです。
- 今はちょっと手が離せません。終わり次第お手伝いします。
- ご迷惑をおかけして申し訳ありません。今後、清掃のルールを徹底させます。
- お時間はとらせません。至急判断をお願いします。
- かわいいと言いますと。
- できる範囲。
- その場では判断できかねる。
- 私がやっておきますね。
- 人員の調整。
- お話中すみません。
- きょうの仕事も大変でしたね。
- 図面に不備があり。
- 先ほど、何か失礼がございましたでしょうか。
- ご相談があります。
- すみません、分かりませんでした。
- お客様のお車の場合。
- では、手短に申し上げます。
- 今日明日中には。
Wednesday, February 10, 2021
Menghindari Human Error: Pentingnya Pokayoke
Hari ini saya dirugikan oleh keteledoran saya yang menyebabkan JPY 1500 dan waktu tiga jam terbuang sia-sia. Tidak besar memang, tapi bisa jadi di kemudian hari kerugian yang saya derita akan jauh lebih besar hanya karena human error. Tulisan ini untuk mendokumentasikan peristiwa human error dan langkah-langkah yang bisa ditempuh untuk mencegahnya.
![]() |
| Implementasi pokayoke untuk menghindari kesalahan pemasangan simcard HP |
Dua tipe kesalahan manusia: dua tipe human error
Manusia itu tempatnya salah dan lupa (hadist). Berdasarkan hadist ini, dan sebuah bacaan di buku Minna no Nihongo Chukyuu I, maka ada dua tipe kesalahan, lebih tepatnya human error. Pertama human error karena kesalahan, lebih spesifik karena tidak sadar atau tidak tahu (carelesness), kedua human error karena lupa (absent-mindedness). Untuk mengetahui tipe mana yang lebih dominan, coba jawab pertanyaan di sini, https://brainfall.com/quizzes/how-absent-minded-are-you.
Singkatnya, karena sudah sifat manusia, maka suatu ketika manusia pasti salah. Semua manusia pasti pernah berbuat kesalahan. Human error pasti terjadi. Sisi positifnya, human error bisa dihindari, atau lebih spesifik bisa diminimalisir. Teknik untuk menghindari atau meminimalisir human error ini, dalam bahasa Jepang, disebut pokayoke.
Pokayoke
Pokayoke (dari kata ぽか避ける) adalah bagian dari manajemen lean (ditemukan oleh Toyota) untuk menghindari human error. Pokayoke mencegah manusia berbuat salah. Karena manusia pasti (pernah) berbuat salah maka harus dibuat langkah untuk menghindari kesalahan itu. Contoh sederhana, ketika anda bekerja yang mengharuskan tangan kanan, maka tangan kiri harus dipekerjakan juga dengan pekerjaan lainnya, agar tidak ikut mengerjakan pekerjaan yang seharusnya dikerjakan oleh tangan kanan. Teknik/prosedur ini banyak diterapkan oleh pabrik-pabrik di Jepang.
Contoh lain sebenarnya pernah kita terapkan. Bila anda ikut pramuka maka anda akan diajari periksa kerapian untuk memeriksa kelengkapan atribut yang anda pakai. Cara tersebut merupakan salah satu aplikasi pokayoke, yakni dengan melafalkan (shouting) apa yang di-cek (pokayoke tipe atensi). Cara ini juga banyak dipakai di Jepang. Contohnya adalah para masinis ketika memeriksa prosedur menjalankan kereta api.
Untuk membangun prosedur pokayoke, diperlukan tujuh langkah berikut:
- Identifikasi proses
- Analisa dimana kesalahan bisa terjadi
- Cari pokayoke yang tepat, shutout (menutup/blok kemungkinan terjadinya kesalahan) atau atensi (highlight persiapan/cek)
- Mengambil langkah komprehensif, bisa berupa langkah fisik atau bantuan berupa alat.
- Menggunakan salah satu, beberapa, atau semua dari kontak (bisa bentuk [shape], ukuran [size], atau atribut fisik), angka konstan, atau urutan metode.
- Evaluasi metode yang diusulkan
- Latih pada operator, review performansi, dan ukur kesuksesan metode pokayoke tersebut.
Studi kasus: Keliru membawa paspor anak saat mengganti status residensi di kantor Imigrasi Jepang
Masalah human error yang saya alami tadi sepele, saya keliru membawa paspor anak saya alih-alih paspor saya sendiri. Tujuannya saya ingin mengganti status visa (status residen) saya di Jepang dari pelajar ke peneliti. Dokumen yang dibutuhkan ada di sini: aplikasi, foto, paspor, dan resident card. Sederhana, namun ternyata ada kesalahan yang membawa implikasi kerugian uang dan waktu. Berikut teknik pokayoke yang akan saya terapkan:- Proses: kelengkapan dokumen (foto, pasport, residen card, form aplikasi)
- Kesalahan bisa terjadi: keliru paspor, form tidak lengkap
- Pokayoke: atensi (sebutkan dan cek ulang)
- Langkah komprensif: kumpulkan dokumen dalam satu map
- Alat bantu: urutan dokumen
- Evaluasi: cek dua kali minimal
- Review: apakah ada yang kurang atau belum
Sekian. Manusia itu tempatnya salah dan lupa. Pokayoke adalah teknik untuk meminimalisasi salah dan lupa.
Referensi:
- https://kanbanize.com/lean-management/improvement/what-is-poka-yoke
Friday, February 05, 2021
Book Summary: Grammar Choices for graduate and professional writer
Chapter 1: An approach to academic grammar
- A small number of reporting words CANNOT be followed by a "that" noun clause. They include support, present, present, discuss, describe, oppose. Thus, the following sentences are wrong. The research supports that the previous finding is true. The data described that the higher resistance, the lower current.
- The verb "make" and "let" are complemented by a verb in the base form, without "to". It is better to replace "make" to "force", "require", "cause", "lead to", "let" to "allow", "permit", "enable" "facilitate."
Chapter 2: Clause combination
- Punctuating simple, compound, and complex sentences: "and" for any coordinating conjunction, "because" for any subordinating conjunction, and however for any sentence connector.
- Clauses introduced by "most of", "some of", "two of" are non-restrictive clauses. They need a comma.
- Three meaning created by clauses: elaborating (e.g., "... ; in fact, ..", ".. and indeed...", ".., which.."; extension (e.g., "Moreover", "..whereas.."); enhancing (e.g., ".., so..", "Although..").
- Fragments and run-ons are not acceptable in most academic writing, e.g., "Because it is different from the previous " (fragment), "Culture shock is not usual, it happens to almost everyone who moves to a new place" (run-on).
Chapter 3: Embedded, Noun, and Complement Clauses
- Subordinator using "that", e.g., "The previous research found that bacteria are present.
- Indirect question using "whether", e.g., "Researcher wonder whether the bacteria are present
- Indirect question using "where". e.g., "Researchers ask where bacteria are present."
- wonder can be followed by if, whether, any wh-question, but not that.
- Argue usually followed by that
- Realizes takes that and what clause but not wh-question, if, or whether.
Chapter 4
Chapter 5
Friday, January 29, 2021
Latex: Remove Ugly Boxes
Wednesday, January 20, 2021
Cara Bermain Snowboard: Skill dasar dan Cara Meningkatkannya
Pertama sebelum pertama
Sebelum memulai snow board
Skill dasar:
- Bergerak maju ke depan secara horisontal (Heel-side slide)
- Bergerak maju ke kanan dan ke kiri (Heel-edge side-to-side)
- Bergerak maju dengan menghadap ke belakang (toe-side slide)
- Bergerak ke kanan ke kiri menghadap ke belakang (toe-edge side-to-side)
Langkah 5 & 6
Langkah ke-7
Meningkatkan permainan snowboard
Sunday, January 17, 2021
Hiking: Pentingnya Berhenti Ketika Menengok ke Belakang
Tiga minggu yang lalu saya mengalamani cedera terkilir (sprained ankle) ketika turun Gunung Midoyama. Penyebabnya satu: ketika saya menengok ke belakang (untuk melihat teman saya), saya melakukannya sambil berjalan turun (di belokan). Hasilnya, saya terkilir. Butuh waktu 3-4 minggu untuk pulih total, meski, sejenak setelah saya terkilir saya masih bisa berjalan normal seperti biasanya. Tidak ada gangguan berarti kecuali ketidaknyamanan, khususnya ketika duduk di waktu sholat.
Pelajaran pentingnya: berhentilah ketika menengok ke belakang di waktu hiking. Kemungkinan terkilirnya mungkin kecil, 1/100. Tapi, menghindari cedera akan lebih menguntungkan untuk perjalanan selanjutnya. Ketika trail panjang (>30 km), menghindari cedera sangat penting.
Inilah rute perjalanan saya saat terkilir tersebut.
御堂山 / bagusさんの御堂山(石川県)の活動データ | YAMAP / ヤマップUpdate 7 Februari 2021:
Setelah 5 minggu, cedera terkilir pada engkel saya baru "mulai" pulih.
Thursday, January 14, 2021
Latex: Multiline Equation
Ada tiga cara untuk menuliskan persamaan multibaris pada Latex: Align, Split, dan Multline.
Cara favorit saya adalah dengan "align" sebagai berikut.
\begin{align}
cov(X,Y) \&= \sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y}) \\
\sigma_x \&= \sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2}
\end{align}
Hasilnya adalah sebagai berikut:
$$ cov(X,Y) = \sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y}) ~~~~ (5) $$ $$ \sigma_x = \sqrt{\sum_{i=1}^{n}(x_i-\bar{x})^2} ~~~~~~~ (6) $$
Lebih jelasnya lewat screenshot pdf ini.
Jika ingin menghilangkan penomoran persamaan, gunakan
{align*} untuk menggantikan {align}.
Friday, January 08, 2021
Book Review: Three Little Words
Thursday, December 31, 2020
Being Good: Sebuah Refleksi di Akhir Tahun
Agama saya telah menjelaskan teknik evaluasi diri yang kurang lebih seperti ini bila diterjemahkan:
Barang siapa hari ini LEBIH BAIK dari hari kemarin, dialah tergolong orang yang BERUNTUNG. Barang siapa yang hari ini SAMA DENGAN hari kemarin dialah tergolong orang yang MERUGI. Dan Barang siapa yang hari ini LEBIH BURUK dari hari kemarin dialah tergolong orang yang CELAKA.Saya tidak ingin berdiskusi tentang derajat hadist tersebut (bila diklaim dari hadist), namun esensi dari pesan yang terkandung di dalamnya. Kalau tahun ini sama saja sama dengan tahun lalu, kita dikatakan merugi, apalagi jika lebih buruk. Tomorrow must be better.
Sederhananya seperti ini.
Lebih buruk dari sebelumnya = CELAKASama dengan sebelumnya = RUGILebih baik dari sebelumnya = BERUNTUNG
Kembali pada tahun-tahun sebelumnya. Dua tahun yang lalu, adalah tahun terburuk saya, tahun dimana banyak maksiat, kejahatan dan kebodohan saya lakukan sejak saya dilahirkan. Bukankah manusia tempatnya salah dan lupa? Dan Adalah Tuhan yang maha mengampuni hambanya..?? Ini pembenaran. Bukan dikatakan dosa kecil jika dilakukan berulang kali, dan bukan dikatakan amal kecil pula jika juga dilakukan berulang kali. Kesalahan harus diakhiri, jangan sampai, seorang muslim, jatuh pada lubang yang sama sampai dua kali.
Being good adalah tujuan hidup saya, seperti hal-nya kedua orang tua saya memberi nama demikian. Life is short, that is why we must being good, such as helping each others.
Pentingnya sebuah metrik
Monday, December 21, 2020
Jetson AGX change mode
Change CPU and Power mode
sudo nvpmodel -m 0 # change power mode to 1
Change Fan mode
sudo nvpmodel -d quiet # to change to quiet mode sudo nvpmodel -d cool # to change to cool mode
Change Clocks mode
Check current clock modesudo /usr/bin/jetson_clocks --show
Change clock to max mode
sudo /usr/bin/jetson_clocks
- https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/power_management_jetson_xavier.html
Thursday, December 17, 2020
Belajar Kanji Otomatis lewat Wallpaper PC
Belajar kanji bisa dilakukan secara otomatis. Bagaimana bisa? Bisa. Dengan kata lain, kita bisa "terpaksa" belajar kanji (ini yang saya maksud secara otomatis) karena melihat wallpaper PC (komputer). Begini caranya.
OS: Ubuntu
Cara yang saya coba terangkan di sini bisa diterapkan dengan mudah pada Ubuntu. Pada OS lain bisa, tapi perlu penyesuaian, khususnya aplikasi untuk mengubah wallpaper setiap sekian waktu. Pada Ubuntu, aplikasi ini sudah tersedia secara default. Aplikasi tersebut adalah "Shotwell Photo Manager" yang biasa digunakan untuk membuka file foto.
Materi Kanji
Pertama, download (git clone) wallpaper kanji (dari N3 ke N5) dari github berikut.
https://github.com/alb404/JLPT-one-kanji-a-day-wallpaper-set
Simpan direktori tersebut pada tempat (direktori) di mana ingin menyimpan file kanji.
Langkah-langkah (dicoba pada Ubuntu 16.04):
- Buka aplikasi shotwell
- Import direktori file kanji (misal: /home/bagus/JLPT-one-kanji-a-day-wallpaper-set) dengan cara File >> Import
- Set sebagai background dengan cara, Ctrl+A semua file wall paper kanji, kemudian File >> Set as desktop background (Set as desktop slideshow)
- Konfigurasi waktu untuk berganti wallpaper, misal (default) satu jam
- Selesai!
![]() |
| Konfigurasi ganti wallpaper setiap satu jam pada Shotwell |
Berikut adalah tampilan setelah proses import selesai.
![]() |
| Tampilan awal, kanji tampak ter-"zoom" |
Nah, kanji sudah terpasang sebagai wallpaper. Masalahnya, by default, tidak ada konfigurasi untuk wallpaper tersebut atau wallpaper ditampikan dalam keadaan ter-zoom, seperti gambar di bawah. Untuk mengganti konfigurasi "zoom" ke "scaled", agar sesuai dengan ukuran monitor, gunakan perintah berikut
gsettings set org.gnome.desktop.background picture-options "scaled"Cara di atas (mengganti "zoom" ke "scale") bisa memakai GUI bila ada di setting (Setting >> Appearance >> Look), seperti gambar di bawah tangkapan layar berikut.
![]() |
| Tampikan wallpaper seteleah di "scale" |
Nah sekarang, ukurannya tinggal pas. Selanjutnya tinggal mengganti warma background di belakang kanji, lewat setting di bawah. Hasilnya adalah gambar di bawahnya.
![]() |
| Mengganti background kanji, dari biru ke hitam |
Monday, December 14, 2020
Me-rename semua file dalam satu folder
Merename
Mengubah nama file pdf, misal dari 001.pdf, 002.pdf, dst menjadi 001-bta.pdf, 002-bta.pdf bisa dilakukan secara batch atau berrombongan. Caranya sebagai berikut:
for i in *.sql ; do
mv -v $i ${i%.sql}-bta.sql
done
Ganti "bta" dengan suffiks yang diinginkan.
Menkonversi (pdf ke png)
Sebagai contoh adalah konversi semua file pdf dalam satu folder ke file png, karena ukuran file .png lebih kecil dan lebih cepat diload (dalam presentasi). Perintah berikut akan mengubah semua file pdf ke png. Perangkat yang digunakan adalah "convert" (imagemagick).for i in *.pdf;
do convert $i ${i%.pdf}.png;
done
Cara lain yang lebih sederhana pernah saya tulis disini > https://bagustris.blogspot.com/2012/01/bulk-rename-files-in-ubuntu-linux.html
Thursday, December 10, 2020
Some important commands on using "pdftk"
pdftk is a powerful tool. It can be used to cut, merge, and edit pdf file. Even I have PDF Studio Pro, in several cases (merging copyrighted pdf) it failed, but pdftk works. Here some important pdftk commands to work with pdf files.
# Collate scanned pages
pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
# or if odd.pdf is in reverse order:
pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf
# Decrypt a PDF
pdftk secured.pdf input_pw foopass output unsecured.pdf
# Encrypt a PDF using 128-bit strength (the default), withhold all permissions (the default)
pdftk 1.pdf output 1.128.pdf owner_pw foopass
# Same as above, except password baz must also be used to open output PDF
pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz
# Same as above, except printing is allowed (once the PDF is open)
pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz allow printing
# Join in1.pdf and in2.pdf into a new PDF, out1.pdf
pdftk in1.pdf in2.pdf cat output out1.pdf
# or (using handles):
pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
# or (using wildcards alphabetically):
pdftk *.pdf cat output combined.pdf
# Remove page 13 from in1.pdf to create out1.pdf
pdftk in.pdf cat 1-12 14-end output out1.pdf
# or:
pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf
# When using the Windows command-prompt, it helps to use drag-and-drop from the file manager: drag the input PDF file from the file manager onto the command-prompt, and its full pathname will appear at the prompt.
# Apply 40-bit encryption to output, revoking all permissions (the default). Set the owner PW to foopass.
pdftk 1.pdf 2.pdf cat output 3.pdf encrypt_40bit owner_pw foopass
# Join two files, one of which requires the password foopass. The output is not encrypted.
pdftk A=secured.pdf 2.pdf input_pw A=foopass cat output 3.pdf
# Uncompress PDF page streams for editing the PDF in a text editor (e.g., vim, emacs)
pdftk doc.pdf output doc.unc.pdf uncompress
# Repair a PDF’s corrupted XREF table and stream lengths, if possible
pdftk broken.pdf output fixed.pdf
# Burst a single PDF document into pages and dump its data to doc_data.txt
pdftk in.pdf burst
# Burst a single PDF document into encrypted pages. Allow low-quality printing
pdftk in.pdf burst owner_pw foopass allow DegradedPrinting
# Write a report on PDF document metadata and bookmarks to report.txt
pdftk in.pdf dump_data output report.txt
# Rotate the first PDF page to 90 degrees clockwise
pdftk in.pdf cat 1east 2-end output out.pdf
# Rotate an entire PDF document to 180 degrees
pdftk in.pdf cat 1-endsouth output out.pdf
# Inverse the page order from 1-end to end-1.
pdftk in.pdf cat end-1 output output.pdf
Monday, December 07, 2020
Berapa Makalah yang Anda Baca Dalam Sehari? Panduan Singkat Teknik Membaca Makalah Ilmiah
Dalam suatu perjalanan untuk melihat Gunung Eiger, Monch dan Junfrau, seorang teman yang memiliki h-indeks jauh lebih tinggi daripada saya (per hari ini h-indeksnya 12 dengan 767 sitasi) bertanya kepada saya: berapa paper ilmiah yang kamu baca dalam sehari? Saya menjawab, 1-2 paper dalam seminggu. Teman saya menimpali, "Saya, dalam sehari, bisa lima paper". Pantas saja dia mencapai h-indeks dan sitasi sebanyak itu dengan waktu mulai (start) riset yang sama dengan saya.
Sejak saat itu saya berusaha meningkatkan kemampuan membaca makalah akademik saya. Berikut ini adalah teknik-teknik membaca makalah ilmiah yang, menurut saya, mampu meningkatkan kemampuan (pemahaman) membaca makalah ilmiah akademik.
Skimming
Sebelum lebih jauh mengurai teknik membaca paper, ada dua tipe membaca yang perlu dipahami, scanning dan skimming. Dalam membaca paper, saya selalu menggunakan teknik skimming. Saya hanya membaca apa yang saya cari. Secara singkat teknik skimming ini seperti ini,
- Skimming: cari apa yang anda ingin anda ketahui (pertanyaan di kepala anda, misal: METODE apa yang digunakan? berapa jumlah layernya? Apa input dari sistem yang diusulkan?)
- Skip yang tidak dipahami, baca yang dipahami dulu. Baca bagian lain yang bisa membantu pemahaman anda.
![]() |
| Alternatif urutan membaca paper ilmiah (sumber: IG @bagustris) |
Teknik dasar, menurut saya!
Berikut langkah-langkah membaca saintifik menurut pengalaman pribadi saya. Teknik ini saya dapatkan ketika mengikuti workshop tentang "Complex System" di Trieste. Urutan membaca makalah saintifik termudah adalah:
- Baca (scanning) ABSTRAK,
- Skim Methods,
- Lihat GAMBAR dan TABEL,
- Skim Results,
- Baca (scanning) Conclusions.
- Pahami persamaan matematika yang digunakan (jika ada), jika bisa. Hubungkan persamaan tersebut dengan konteks yang digunakan dalam paper tersebut.
Membaca dengan teknik Feynman
Menurut Feynman, teknik belajar, yang juga bisa diaplikasikan untuk membaca paper, adalah sebagai berikut:
- Identifikasi apa subyeknya, tulis apa yang anda ketahui dari paper tsb (kata kunci, definisi, teori, dll).
- Jelaskan apa yang anda pahami dari paper tersebut dengan tulisan anda, misal dalam sebuah blog atau tulisan (baik tangan atau cetak).
- Cari gap dari makalah dan tulisan anda.
- Organisasikan dan sederhanakan tulisan anda. Ceritakan ke orang awam.
Menurut Emka Bluemke
Menurut Emka Bluemke [4], Urutan membaca paper akademik setelah skimming abstrak adalah sebagai berikut:
Sebidang: Conclusions --> Discussion --> Introduction --> Methods
Tidak sebidang: Intro --> Conclusions --> Discussion --> Introduction --> Methods
Membaca paper berdasarkan Quran
Membaca (paper) berdasarkan Quran surat Al-Alaq ayat 1-5 menurut saya adalah seperti berikut:
- Bacalah dengan nama TuhanMu yang menciptakan. Teknik membaca paper dari ayat ini adalah: Niat, niat membaca paper untuk mencari ridho Allah.
- Menciptakan manusia dari 'alaq. Teknik kedua membaca paper dari ayat ini, menurut saya, adalah: pelajari dasarnya, embrionya (al-'alaq).
- Bacalah dan aqungkan nama tuhanMu. Teknik membaca paper dari ayat ini, menurut saya, adalah: meluruskan tujuan kita kembali (reminder) untuk membaca (makalah ilmiah), yakni untuk mengagungkan nama Tuhan. Mereview dan membaca ulang (sebagaimana ayat 1).
- Yang menciptakan alam dengan perantara kalam. Teknik membaca paper dari ayat ini, menurut saya, adalah menulis kembali apa yang ada dalam makalah dengan bahasa kita, khususnya dengan pena.
- Yang mengajarkan manusia apa yang tidak diketahuinya. Teknik membaca paper dari ayat ini, menurut saya, adalah mengajarkan apa yang kita pahami (ke orang lain atau simulasi mengajar ke orang lain) dan mencari tahu apa yang tidak kita pahami dalam makalah ilmiah tersebut.
Demikian beberapa teknik membaca paper yang saya ketahui. Bagaimana dengan anda? Teknik membaca paper tidak hanya terbatas pada teknik-teknik di atas. Setidaknya, cara di atas adalah cara-cara yang terbukti memberikan informasi dan pemahaman dari makalah akademik jika selama ini anda stuck dan tidak mendapatkan apa-apa ketika membaca makalah saintifik ilmiah.
Referensi:
- https://www.sciencemag.org/careers/2016/03/how-seriously-read-scientific-paper
- https://blogs.lse.ac.uk/impactofsocialsciences/2016/05/09/how-to-read-and-understand-a-scientific-paper-a-guide-for-non-scientists/
- https://towardsdatascience.com/how-to-read-scientific-papers-df3afd454179
- https://twitter.com/emmabluemke/status/1269615728581361666


































