Belajar VIM


Beberapa shortcut yang sering digunakan ketika menggunakan VIM

  1. i = insert mode (untuk menambahkan text didalam file yang akan kita edit)
  2. v= visual mode (untuk selection)
  3. esc = normal mode
  4. : = command mode
  5. :w = simpan
  6. :q = keluar
  7. :q! = force closed )keluar tanpa menyimpan file)
  8. :wq = simpan dan keluar file
  9. gg = lompat ke awal text
  10. G = lompat ke akhir text
  11. ctrl + f = lompat kedepan per halaman
  12. ctrl + b = lompat kebelakang per halaman
  13. copy = tekan esc untuk normal mode, kemudian tekan v untuk selection, tekan y untuk copy
  14. paste = tekan esc untuk normal mode, kemudian tekan v untuk selection, tekan p untuk paste
  15. cut = tekan esc untuk normal mode, kemudian tekan v untuk selection, tekan d untuk cut
  16. h atau arrow left = untuk ke kiri
  17. l atau arrow right = untuk ke kanan
  18. k atau arrow up = untuk ke atas
  19. j atau arrot down = untuk ke bawah
  20. search = slash (/) contoh : /kata yang dicari
  21. next search = n
  22. previous search = N
  23. * = pencarian kedepan berdasarkan kata yang ditunjuk cursor
  24. #  = pencarian kebelakang berdasarkan kata yang ditunjuk cursor
  25. :set hlsearch = untuk menghilight pencarian (memberikan warna pada pencarian)
  26. :set nohlsearch = untuk menon aktifkan higlight pencarian
  27. :set number = menampilkan nomor baris
  28. :set showmode = menampilkan mode vim yang aktif
  29. :syntax on = mengaktifkan mode syntax highlighting
  30. :colorscheme/:colo nama colorscheme : untuk mengganti warna syntax highlighting (untuk mencoba coba warna apa saja silahkan tab setelah menuliskan command

Sekian catatan kali ini

Happy coding …

Salam ngoprek …

Advertisements

STM32 Bluepill dan Arduino IDE di Ubuntu


Kali ini saya akan sharing mengenai cara menggunakan arduino IDE di STM32 Bluepill ok langsung saja begini caranya.

  1. Pastikan sudah memiliki stm32 bluepill
  2. Pastikan sudah menginstall arduino IDE
  3. Masuk ke board manager lalu install Arduino SAM Boards (32 bit ARM Cortex M3)
  4. Download library disini lalu unzip kemudian copykan foldernya ke dalam hardware di Arduino IDE
  5. Karena kita menggunakan ubuntu sebagai OS maka kita harus menginstall beberapa library yang sudah disediakan, caranya masuk ke hardware lalu ke Arduino_STM32 yang tadi kita masukkan lalu ke tools dan kemudian ke folder linux setelah itu klik kanan lalu klik open in terminal.
  6. Setelah terminal terbuka lalu ketikkan ./install.sh kemudian tinggal diikuti saja perintahnya dan selesai .
  7. Agar kita bisa upload via usb maka kita perlu memflash stm32 bluepill menggunakan firmware maple mini

    Continue reading STM32 Bluepill dan Arduino IDE di Ubuntu

Docker compose nginx


Catatan setup nginx di docker supaya bisa ngeload volume diluar file directorynya docker

Buat docker-compose.yml isikan baris perintah dibawah

version: '2'

services:

nginx:

image: nginx:latest

container_name: production_nginx

volumes:

- /home/onix/sites:/usr/share/nginx/html:z #directory internal:directory docker

ports:

- '8080:80'

Udah gitu aja mudah bukan

Happy Coding ..

Salam ngoprek

Docker manager web based


Screen Shot 2018-10-07 at 06.53.06

Docker manager mantap via web base lagi yang penasaran silahkan ke sini https://portainer.io/ dan kerennya lagi si portainernya juga bisa dijalankan lewat docker ngga perlu install manual cool right !.

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Happy Coding …

Salam ngoprek …

install odoo menggunakan docker


Ada yang belum kenal odoo baca disini ya https://www.odoo.com/  ya odoo adalah open source ERP dan CRM, kedua aplikasi ini banyak digunakan untuk perusahaan untuk memanage jalannya operasional perusahaan, modulnya banyak banget dari HR, Project Management, Procurement, dll, bagi yang penasaran silahkan baca baca sendiri di websitenya odoo ya.

Kali ini saya akan sharing bagaimana caranya menginstall odoo dengan menggunakan docker caranya cukup mudah tinggal siapkan OS yang akan diinstall kemudian install docker (cari digoogle ttg cara install docker) kemudian silahkan baca dokumentasinya disini https://hub.docker.com/_/odoo/.

Untuk kali ini saya menginstall docker menggunakan OS ubuntu server, caranya gampang banget pertama tama git clone link berikut https://github.com/odoo/docker kemudian masuk ke folder versi docker yang sudah tersedia untuk kali ini saya menggunakan versi 11 karena pada saat tulisan ini dibuat versi 12 baru saja release jadi amannya pake versi sebelumnya dulu.

Setelah memilih versi odoo (saya menggunakan versi 11) tinggal jalankan command ini

docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres:9.4
docker run -p 8069:8069 --name odoo --link db:db -t odoo

Udah gitu aja 🙂 mudah bukan saya menyarankan ubah nama user dan password pada saat menjalankan db dibagian POSTGRES_USER dan POSTGRES_PASSWORD setelah diinstall silahkan buka browser lalu masukkan alamat ip dilanjutkan dengan nomor port contoh http://localhost:8069 atau ganti localhost dengan nomor ip sobat sekalian.

kalau ngga mau ribet masukkan port bisa juga dengan menambahkan ip tables seperti ini di

/etc/rc.local diatas exit

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8069

Setelah reboot maka odoo bisa diakses menggunakan ip tanpa port

Silahkan mencoba dan happy coding …

Salam Ngoprek …

Membuka drive NTFS di Mac


Sekedar sharing bagaimana caranya membuka partisi ntfs di Mac, bagi sebagian pengguna Mac membuka partisi ntfs tidak semudah seperti pengguna windows karena memang mac sendiri tidak menggunakan ntfs sebagai primary partition, dan ribetnya adalah ketika akan membuka harddisk eksternal yang kebanyakan berpartisi ntfs kita tidak bisa write disitu jadi hanya read mode saja, dan ini terjadi pada diri saya yang kebetulan menggunakan Mac OS dirumah dan berbagai macam OS dikantor.

Yah langsung aja begini caranya, sebenarnya ada berbagai macam cara dan yang paling mudah adalah download aplikasi berbayar dan langsung bisa digunakan, dan cara agak ribetnya adalah tapi gratis adalah seperti dibawah ini.

Pertama tama adalah download Fuse For Mac disini terus buka terminal terus ketik ini

xcode-select --install

Kalau belum diinstall terus install, kemudian install brew ikuti langkah disini kalau udah install ntfs-3g menggunakan brew

brew install ntfs-3g

Continue reading Membuka drive NTFS di Mac

Displaying data from RHF1S001 in node-red


rhf1s001The RisingHF’s Temperature and humidity LoRaWAN sensor node RHF1S001 is aimed at outdoor application with it’s IP64 protection level. And thanks to it’s high performance internal antenna and LoRa technology used, the sensor could operate in extremely hard environment or ultra-long range application. In addition to all above, the ultra-low sleep current help it to work in a long life, 5 years (uplink every 2 minutes) or even 10 (uplink every 5 minutes) years.

Here is sample code to displaying data to dashboard node-red, Raw data taken from MQTT convert to JSON Object.

Screenshot from 2018-07-03 07-53-19

[{"id":"4e63f2ca.376b64","type":"mqtt in","z":"b6605d08.a927b","name":"","topic":"thrf/#","qos":"2","broker":"ce3645f8.a18d78","x":70,"y":2920,"wires":[["9c30a7cc.16ac38"]]},{"id":"a4fb0e04.52f6b","type":"function","z":"b6605d08.a927b","name":"decode temp","func":"var obj = msg.payload;\nvar data = obj.data;\n\nvar temp1 = data.toString().substr(2, 2);\nvar temp2 = data.toString().substr(4, 2);\nvar temp = temp2 + temp1;\n// var tmp = \"0x\" + temp; \n\nfunction hexToDec(hex) {\n return hex.toLowerCase().split('').reduce( (result, ch) =>\n result * 16 + '0123456789abcdefgh'.indexOf(ch), 0);\n}\n\nvar value = hexToDec(temp);\n\nvar t = ((175 * value)/65536) - 46.85;\n\nmsg.payload = t.toFixed(2);\n// return msg;\n// msg.payload = obj.data;\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":2980,"wires":[["db7f0faf.eec008"]]},{"id":"de0b9d41.21bd3","type":"function","z":"b6605d08.a927b","name":"data","func":"var obj = msg.payload;\nmsg.payload = obj.data;\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":2920,"wires":[["88553271.5b5678"]]},{"id":"88553271.5b5678","type":"debug","z":"b6605d08.a927b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":590,"y":2920,"wires":[]},{"id":"9c30a7cc.16ac38","type":"json","z":"b6605d08.a927b","name":"","property":"payload","action":"obj","pretty":true,"x":210,"y":2920,"wires":[["de0b9d41.21bd3","a4fb0e04.52f6b","3ef4e4a1.49fcac","cbbcecc.d9fbc9"]]},{"id":"3ef4e4a1.49fcac","type":"function","z":"b6605d08.a927b","name":"decode hum","func":"var obj = msg.payload;\nvar data = obj.data;\n\n\nvar humidity = data.toString().substr(6, 2);\n// var hum = \"0x\" + humidity; \n\nfunction hexToDec(hex) {\n return hex.toLowerCase().split('').reduce( (result, ch) =>\n result * 16 + '0123456789abcdefgh'.indexOf(ch), 0);\n}\n\nvar value = hexToDec(humidity);\n\n\nvar RH = (((125 * value)/256) -6);\n\nmsg.payload = RH.toFixed(2);\n\n// return msg;\n// msg.payload = obj.data;\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":3040,"wires":[["3dd9c892.32f9b8"]]},{"id":"cbbcecc.d9fbc9","type":"function","z":"b6605d08.a927b","name":"decode batt","func":"var obj = msg.payload;\nvar data = obj.data;\nvar batt = data.toString().substr(16, 2);\n\nfunction hexToDec(hex) {\n return hex.toLowerCase().split('').reduce( (result, ch) =>\n result * 16 + '0123456789abcdefgh'.indexOf(ch), 0);\n}\n\n\n\nmsg.payload = (hexToDec(batt) + 150) * 0.01;\n\n// msg.payload = RH.toFixed(2);\n\n// return msg;\n// msg.payload = obj.data;\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":3100,"wires":[["c70731a.a7ba85"]]},{"id":"3dd9c892.32f9b8","type":"ui_chart","z":"b6605d08.a927b","name":"","group":"44b692c4.bec04c","order":0,"width":0,"height":0,"label":"hum rhf","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":640,"y":3040,"wires":[[],[]]},{"id":"c70731a.a7ba85","type":"ui_chart","z":"b6605d08.a927b","name":"","group":"44b692c4.bec04c","order":0,"width":0,"height":0,"label":"batt rhf","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":640,"y":3100,"wires":[[],[]]},{"id":"db7f0faf.eec008","type":"ui_chart","z":"b6605d08.a927b","name":"","group":"44b692c4.bec04c","order":0,"width":0,"height":0,"label":"temperture rhf","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":660,"y":2980,"wires":[[],[]]},{"id":"ce3645f8.a18d78","type":"mqtt-broker","z":"","name":"loralocal","broker":"00.00.00.00","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"44b692c4.bec04c","type":"ui_group","z":"","name":"RHF","tab":"b031aecd.a463f","order":1,"disp":true,"width":"6","collapse":false},{"id":"b031aecd.a463f","type":"ui_tab","z":"","name":"GATEWAY","icon":"desktop_mac","order":2}]

Datasheet sensor

http://www.risinghf.com/#/product-details?product_id=1&lang=en