Memaksimalkan Ryzen 5 5600g untuk Video Game

Setelah menimbang-nimbang cukup lama, akhirnya saya menjual CPU dan GPU saya selagi harganya masih tidak masuk akal, yakni Ryzen 5 3400g di harga 2.5 juta rupiah (harga beli 2 juta rupiah di tahun 2020) dan GTX 1660 Ti di harga 6.6 juta rupiah (harga beli 4 juta rupiah di tahun 2020).

Terus saya pakai apa, dong? Sesuai judul, saya comot 5600g di harga 3.2 juta rupiah dan tidak menggunakan discrete GPU sampai harga GPU kembali normal. Bagaimana saya bisa yakin harganya akan normal? Berikut alasannya:

  1. Eth akan pindah ke PoS paling dekat Q2 2022, paling lama entahlah. Setelah Eth 2.0 merged ke main net, mining ethereum tidak lagi berlaku. GPU bekas akan memenuhi pasaran dan sesuai hukum supply demand, harga GPU baru akan tertekan turun.
  2. Intel masuk ke pasar discrete GPU.
  3. Rilis RTX 4000 series.

Saya memilih 5600g dibanding 5700g karena perbedaan harganya lebih dari 1 juta rupiah sementara perbedaan performanya hanya sekitar 5%. Artinya 5600g ini masuk ke best bang for the bucks.

Saya tidak terlalu puas dengan performa CPU saya sebelumnya, yakni 3400g. Sementara 5600g ini memberikan banyak kejutan. Judul seperti Dirt Rally 2.0, Battlefield V, PES 2020, Jedi Fallen Order, PUBG dan lainnya cukup lancar dimainkan. Meskipun ada beberapa permainan koleksi saya yang tidak begitu lancar seperti Horizon Zero Dawn dan BeamNG. Toleransi lancar di sini bagi saya adalah 45-50 FPS.

Mestinya yang nyaman itu 60FPS, bukan? Itu dia.

Overclock

Ada 2 hal yang bisa saya tingkatkan dari sistem yang saya miliki sekarang. Frekuensi CPU dan RAM-nya.

Untuk CPU caranya cukup mudah. Naikkan saja VSOC-nya ke 1.35v dan frekuensi CPU-nya akan naik sampai 4.3 sampai 4.4 GHz. Lebih dari itu harusnya tidak stabil.

Sementara untuk RAM lebih rumit. Ini juga pengetahuan baru buat saya. RAM yang dipasarkan untuk umum memiliki beberapa kualitas kelas chip yang disebut die.

Samsung B-Die adalah yang terbaik untuk dioverclock, overheadnya lumayan dan cukup stabil. Jadi kalau Anda ingin merakit PC baru, sebaiknya cocokkan RAM dari QVL dengan daftar yang ada di sini.

RAM saya (F4-3200C16D-16GFX) sayangnya masuk kelas C-Die. RAM ini dipasarkan dengan XMP Profile yang mencapai 3200MHz. Apakah bisa lebih kencang dari ini? Bisa.

Caranya adalah sebagai berikut (di setiap langkah ini setelan BIOS perlu disimpan lalu reboot ke sistem operasi untuk melihat apakah setelannya cukup stabil):

  1. Disable XMP Profile, frekuensinya akan turun ke 2133MHz.
  2. Naikan voltase VDIMM ke 1.1v.
  3. Naikkan multipliernya ke target, misalnya 3400MHz.
  4. Setel timing yang cukup longgar, misal mulai dari 18-22-22-22-44
  5. Perkecil angka timingnya secara perlahan, misal 18-21-21-21-40.
  6. Perkecil terus sampai ketemu batasnya (tidak stabil, crash, reboot, tidak bisa boot)
  7. Jika ketemu, kembali ke setelan terakhir. Jika dirasa cukup stabil, ulangi siklusnya dari no 3, naikkan multipliernya ke jenjang berikutnya. Lanjutkan sampai ketemu frekuensi dan timing yang stabil.

Di kasus saya, frekuensi yang stabil jatuh pada 3600Mhz dengan timing 18-18-21-21-39, GDM di-disabled dan Cmd2T disetel ke 1T. Ini sesuai dengan panduan yang saya ikuti https://www.reddit.com/r/overclocking/comments/mfcwb4/samsung_cdie_3200cl16_1st_overclock_attempt_70ns/.

Usaha ini memberikan hasil berupa tambahan performa, yaitu sekitar 5-15 FPS tergantung permainannya.

Sekarang saya bisa lanjut nyetir di Dirt Rally 2.0 dengan 60FPS di resolusi 1080p. Sungguh di luar perkiraan.

AWS: Deploy Container Workloads using Amazon Lightsail

Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin berbagi bagaimana men-deploy container(s) di AWS menggunakan Amazon Lightsail. Untuk Lightsail sendiri sudah pernah saya bahas di jurnal sebelumnya, bisa dibaca dulu AWS: Launch a WordPress Site using Amazon Lightsail. Selain itu, saya juga pernah share mengenai bagaimana men-deploy container menggunakan Amazon ECS, bisa dibaca dulu di AWS: Getting Started with Amazon ECS (Elastic Container Service) using Fargate.

Pada intinya, goal yang diinginkan sama, yaitu aplikasi di dalam container running dan bisa diakses. Hanya saja, di AWS banyak opsi yang bisa dipilih, salah satunya adalah Amazon Lightsail.

Mari kita coba.

Klik Services > Compute > Lightsail

Kita akan diarahkan ke dashboard Amazon Lightsail. Klik tab Containers > Create container service

Pada langkah pertama, bisa pilih region yang akan menjadi tempat service berada. Saya pilih Singapore dan gulir ke bawah

Pilih spesifikasi dari container, misal saya pilih Micro dengan scale x 2 (container akan direplika menjadi 2)

Klik + Set Up Deployment > Specify a custom deployment. Ubah nama container, image, configuration (jika ada), dan port aplikasi, misal 80 HTTP. Sesuaikan dengan container yang ingin dibuat

Bisa tentukan konfigurasi health check nya juga seperti di bawah ini

Tentukan nama service, misal virtualpiano dan klik Create container service.

Tunggu hingga status container menjadi Running

Akses public domain melalui tab baru, maka aplikasi bisa diakses seperti berikut ini

Sekian!

AWS: Create an Amazon FSx File System for Windows File Server

Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin berbagi mengenai bagaimana membuat file server dengan menggunakan Amazon FSx untuk Windows workload. Jurnal ini merupakan jurnal lanjutan, bisa dibaca dulu di AWS: Create AWS Managed Microsoft AD Directory dan AWS: How to Join a Windows Server Instance to AWS Managed Microsoft AD Directory .

Ibaratkan Windows workload sudah terbentuk, file server disini berperan untuk saling berbagi dan menyimpan file. Amazon FSx merupakan layanan file server yang fully-managed untuk Windows. Dengan backend fully-native Windows file system, Amazon FSx memiliki banyak fitur seperti performa dan kompatibilitas yang tinggi.

Mari kita coba.

Sebelum memulai, pastikan AD directory sudah aktif dan instance Windows Server di jurnal sebelumnya bisa diakses.

Untuk menggunakan Amazon FSx, klik Services > Storage > FSx

Kita akan diarahkan ke dashboardnya. Klik Create file system untuk membuat fs baru.

Pilih tipe file system yang akan digunakan. Klik Amazon FSx for Windows File Server lalu Next.

Tentukan nama file system, tipe lokasi (Multi-AZ atau Single-AZ), dan tipe storage (SSD atau HDD) lalu Gulir ke bawah

Tentukan VPC yang akan digunakan oleh file system dan pilih security groupnya. Pastikan rule berikut sudah di allow:

RulesPorts
UDP53, 88, 123, 389, 464
TCP53, 88, 135, 389, 445, 464, 636, 3268, 3269, 5985, 9389, 49152-65535

Untuk autentikasi saya pilih AWS Managed Microsoft Active Directory, dan pilih direktori yang sudah dibuat di jurnal sebelumnya.

Enkripsi saya pilih default dan untuk auditing, bisa ceklis log yang diperlukan.

Bisa tambahkan dns alias (memudahkan untuk map drive), dan tentukan konfigurasi backup and maintenance nya. Atur daily backup, retensi, dan kapan daily maintenance window dilakukan.

Bisa tambahkan tag, lalu Next

Bisa lakukan review untuk verifikasi apakah konfigurasi sudah benar

Jika sudah OK, klik Create file system

Tunggu hingga statusnya berubah menjadi Available.

Klik nama file system untuk melihat detail, dan untuk mengaitkan instance ke file system, bisa klik Attach

Akan muncul pop up berisi langkah-langkah bagaimana melakukan attach file system

Kita bisa gunakan perintah di atas dan paste di CMD, atau melalui GUI seperti berikut:

Saat sudah di attach, drive siap digunakan

Referensi:

  1. https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html

Sekian!

AWS: How to Join a Windows Server Instance to AWS Managed Microsoft AD Directory

Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin membahas kelanjutan jurnal sebelumnya. Bisa dibaca disini AWS: Create AWS Managed Microsoft AD Directory. Setelah kita berhasil membuat direktori dengan tipe AWS Managed Microsoft AD, saya akan menjelaskan bagaimana instance windows server/client dapat join ke direktori tersebut.

Langsung saja mari kita coba.

Pertama, kita buat instance yang akan join ke domain terlebih dahulu. Misal instance Microsoft Windows Server 2022. Klik Services > Compute > EC2

Pada menu Instances, klik Launch Instance

Pada langkah pemilihan AMI, pilih Microsoft Windows Server 2022 Base

Pilih instance type nya, misal t3.xlarge dengan spesifikasi 4 core vCPU dan 16GB RAM.

Ada dua cara yang bisa kita jalankan agar instance bisa join ke AD, pertama secara manual dari instance nya sendiri, kedua melalui pengaturan Domain join directory di langkah ketiga seperti berikut ini. Ketika menggunakan opsi kedua, bisa langsung pilih direktori mana dan atur IAM Role nya.

Saya disini akan coba menggunakan opsi pertama, jadi pada langkah ketiga bisa langsung Next

Pada pengaturan Storage bisa diatur atau langsung Next.

Bisa ditambahkan tags (opsional) untuk instance lalu Next.

Pada pengaturan Security Group, pilih sg dengan port 3389 di inbound rule sudah di allow.

Bisa lakukan Review dan klik Launch

Tunggu hingga statusnya Running. Untuk mengakses instance, ceklis > Connect

Saya coba pilih menggunakan RDP client. Unduh file RDP nya bisa klik Get password untuk melihat password user Administrator dari user Windows Server.

Gunakan aplikasi RDP di laptop dan bisa coba akses. Pastikan Windows Server dapat diakses seperti berikut. (Jika gagal, bisa cek security group, pastikan port 3389 sudah di allow).

Kita set Preferred DNS server di Windows Server menggunakan IP Address dari AWS Managed Microsoft AD dan pastikan bisa diping.

Buka System Properties dan coba ubah Computer Name, pilih Domain dan isikan nama domain. Saat muncul pop-up seperti berikut, isikan kredensial Admin dari AD dan klik OK.

Pastikan muncul pesan Welcome sebagai tanda komputer telah join ke AD seperti berikut ini

Referensi:

  1. https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough01-prereqs.html

Sekian!

AWS: Create AWS Managed Microsoft AD Directory

Hai!

Selamat malam teman-teman. Pada jurnal ini, saya ingin berbagi mengenai layanan AWS Directory. Layanan tersebut memungkinkan kita untuk menggunakan Microsoft AD (Active Directory) dan mengintegrasikannya dengan berbagai layanan di AWS.

Direktori akan menyimpan berbagai informasi seperti user, group, dan perangkat yang nantinya digunakan untuk mengelola akses dan sumber daya. AWS Directory Service menawarkan beberapa pilihan direktori yang ingin mengunakan existing Microsoft AD atau LDAP (Lightweight Directory Access Protocol) yang berbasis cloud. Apa saja itu?

  1. AWS Directory Service for Microsoft Active Directory
  2. AD Connector
  3. Simple AD
  4. Amazon Cognito

Mari kita coba.

Dari AWS Management Console > Security, Identity & Compliance > Directory Service

Kita akan diarahkan ke darshboard Directory Service. Klik Set up directory untuk membuat direktori baru.

Langkah pertama, pilih tipe. Misal saya pilih AWS Managed Microsoft AD lalu Next.

Pilih edisi. Dari AWS sendiri menawarkan dua tipe, Standard dan Enterprise. Karena saya hanya untuk pengujian, saya pilih Standard.

Isikan Directory DNS name, misal ad.ananda.com dan NetBIOS (opsional) lalu gulir ke bawah

Bisa isikan deskripsi dan tentukan password dari Administrator. Lalu bisa Next

Pilih VPC dan Subnets yang akan digunakan. Lalu Next

Bisa lakukan review, dan jika sudah OK bisa klik Create directory.

Tunggu status direktorinya menjadi Active. Ini membutuhkan waktu 20-40 menit.

Klik ID untuk melihat detail.

Bagaimana implementasi dan penggunaan nya? Bagaimana client/Windows Server join ke directory yang telah dibuat? Kita akan bahas di jurnal selanjutnya ya!

Referensi:

  1. https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html

Sekian!

Analisis Berkas Log Rutin, Jangan Lupa

Kemarin, tepatnya 3 hari yang lalu, maklum begitulah kebiasaan lama, ada mention ke saya di github mengenai tugas yang pernah saya kerjakan yaitu pembenahan repository BlankOn. Yang mana pembenahan tersebut memang memakan space penyimpanan yang cukup besar. Yang akhirnya membuat berhenti proses yang membuat harus menelusuri hingga berkas log.

Tulisan ini tidak akan panjang karena laporan detil harusnya memang hanya untuk internal tim. Namun yang perlu dan sering lupa saya lakukan adalah melakukan analisis terhadap berkas log dari sistem, yang seringkali di-ulik baru saat setelah ada kejadian. Perlu ada mekanisme analisis singkat pada sistem, misalkan bila ada entry-an log berulang selama sekian kali dengan kejadian serupa maka wajib melakukan apa.

Menurut saya tidak perlu baku, namun minimal perlu ada warning. Dan sepertinya perlu mencari tahu adakah proyek yang memfasilitasi ini.

Sekian pembahasan berkas log yang membuat penuh root dini hari ini.

The post Analisis Berkas Log Rutin, Jangan Lupa first appeared on Blog.YHT.Web.ID.

AWS: Getting Started with Application Load Balancer

Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin berbagi mengenai salah satu tipe ELB (Elastic Load Balancer) di AWS, yaitu ALB atau Application Load Balancer.

ALB merupakan salah satu tipe lb yang bekerja di layer 7 OSI (presentation layer) atau sesuai nama, layer aplikasi. Aplikasi yang menjadi target ALB adalah IP, instance, dan lambda dengan protocol listener yang didukung HTTP, HTTPS, dan gRPC.

ALB memiliki beberapa kelebihan, diantaranya mendukung redirection (mengalihkan request ke URL lain), mampu melakukan kustomisasi HTTP Response, mendukung aplikasi berbasis container, dan melakukan peningkatan performa dengan bantuan AWS Global Accelerator.

Bagaimana ALB bekerja?

  1. User melakukan request ke aplikasi
  2. Listener di load balancer menerima request yang cocok dengan protokol dan port yang telah dikonfigurasikan
  3. Listener mengevaluasi request berdasarkan rule yang ditentukan, jika oke, request akan diarahkan ke target yang sesuai
  4. Target yang health (dalam artian dapat menerima request) dalam satu atau beberapa grup menerima trafik berdasarkan algoritma load balancer (round-robin) dan aturan perutean yang ditentukan di listener.

Mari kita coba.

Disini saya sudah memiliki dua ec2 instance dengan tampilan seperti berikut. Saya bedakan agar mudah dikenali bahwa trafik dikirim dari instance yang berbeda.

Sebelum membuat lb, kita buat target group terlebih dahulu. Target ini yang akan menangani request dari user. Klik Create target group

Pilih tipe target sesuai aplikasi yang dimiliki. Saya coba pilih Instance

Tentukan nama target, protokol HTTP dan port 80 (karena web server saya menggunakan HTTP). Pilih VPC dan versi protokol yang digunakan oleh aplikasi.

Atur konfigurasi health check berupa protokol, port, threshold, timeout dan interval. Lalu klik Next

Pilih instance yang akan dimasukan ke dalam target dan klik Include as pending below. Pastikan instance sudah masuk ke kolom Review Targets dan bisa klik Create target group.

Pastikan target berhasil dibuat dan klik nama target untuk melihat detail.

Pastikan status kedua registered targets adalah Healthy.

Saat target sudah dibuat, kita bisa langsung membuat LB nya. Klik Create Load Balancer

Pada tampilan pertama, terlihat ada empat tipe.

Klik Create pada tipe ALB

Definisikan nama LB, skema (saya pilih Internet-facing karena aplikasi bersifat publik) dan tipe IPv4.

Pilih VPC dan az yang akan digunakan. Saya sesuaikan az nya sama dengan az dari target group.

Pilih Security group. Pastikan port 80 sudah di allow di sg tersebut. Pada Listeners and routing, pilih protokol HTTP, port 80, dan forward to alb-target (target group yang dibuat sebelumnya).

Bisa ceklis di bagian AWS Global Accelerator untuk peningkatan performa (opsional), review dan kalo sudah OK, bisa klik Create.

Pastikan LB berhasil dibuat.

Tunggu hingga status dari LB sudah Active.

Coba akses melalui DNS name di browser.

Referensi:

  1. https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html

Sekian!

AWS: How to Set Up a Network Load Balancer

Hai!

Selamat malam teman-teman. Setelah di jurnal sebelumnya kita membahas Classic Load Balancer, disini kita akan membahas tipe load balancer kedua. Yaitu Network Load Balancer di AWS. NLB memiliki ciri merutekan trafik di layer 4 OSI (layer transport), seperti TCP, UDP, dan juga TLS (untuk koneksi yang secure) yang dapat menghandel jutaan request per-detik.

Bagaimana alur kerja dari NLB? kurang lebih seperti di bawah ini:

Penjelasan:

  1. User melakukan request ke aplikasi
  2. Load balancer menerima request secara langsung maupun melalui endpoint untuk konektivitas private (melalui AWS PrivateLink).
  3. Listener di load balancer menerima request protokol dan port lalu mengarahkannya berdasarkan tindakan default sebelumnya yang telah ditentukan.
  4. Target group yang healthy (dalam artian dapat menerima request) akan menangani trafik sesuai dengan algoritma.

Mari kita coba.

Seperti di jurnal sebelumnya juga, saya sudah membuat dua instance yang di dalamnya telah terinstall web server dengan tampilan seperti berikut.

Sebelum membuat lb, kita akan membuat target group (berisi aplikasi yang menangani request) terlebih dahulu. Di laman EC2 Instance > Load Balancing > Target Groups. Klik Create target group.

Pada langkah pertama, atur tipe target. Disini saya memilih tipe Instances dan gulir ke bawah

Atur nama target, misal lb-network-target. Pilih protocol yaitu TCP port 80. Pilih VPC, dan atur konfigurasi health check nya juga.

Pengaturan health check berupa healthy treshold, timeout, dan interval. Lalu klik Next

Pada langkah kedua, pilih instance yang akan didaftarkan ke target tersebut > Include as pending below sampai instance berpindah pada tab Review targets, Lalu klik Create a target group

Pastikan target berhasil dibuat.

Klik nama target untuk melihat detail

Setelah target dibuat, kita bisa langsung membuat lb nya. Buka menu Load Balancers > Create Load Balancer

Tentukan tipe dari load balancer yang akan dibuat. Klik Create pada tipe Network Load Balancer.

Isikan nama lb, misal network-lb. Atur skema (disini saya pilih Internet-facing karena lb digunakan untuk mengatur trafik publik), dan tipe IP address yaitu IPv4. Lalu gulir ke bawah.

Atur VPC dan AZ. Ceklis az mana saja yang digunakan untuk merutekan trafik.

Pada Listeners and routing, pilih protokol TCP, port 80, dan forward ke target yang telah dibuat sebelumnya.

Lakukan review dan jika oke bisa klik Create load balancer.

Pastikan load balancer berhasil dibuat

Tunggu status dari lb berubah menjadi active

Dan Health status pada target berwarna hijau

Salin DNS name dari lb dan coba buka melalui browser. Terlihat tampilan berbeda menunjukkan trafik diarahkan oleh lb ke instance yang berbeda.

Referensi:

  1. https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html

Sekian!

AWS: Create a Classic Load Balancer

Hai!

Selamat malam teman-teman. Pada jurnal ini saya akan berbagi mengenai load balancer dengan tipe klasik atau tipe ELB yang paling sederhana.

Di AWS, Elastic Load Balancer adalah layanan yang memungkinkan untuk mendistribusikan trafik aplikasi dari user ke tujuan/target secara otomatis. Ini akan membuat aplikasi semakin bersifat fault tolerance dan memiliki ketersediaan yang tinggi. ELB memiliki beberapa tipe yang mana kesemuanya memiliki fitur high availability, autoscaling, dan robust. Tipe-tipe tersebut adalah:

  1. Classic Load Balancer
  2. Application Load Balancer
  3. Network Load Balancer
  4. Gateway Load Balancer

Di jurnal ini kita akan fokus pada Classic Load Balancer yang ideal untuk load balancing sederhana untuk mengelola trafik dari aplikasi di beberapa instance. Kurang lebih diagramnya seperti berikut ini:

Request dari user akan diarahkan ke target (instance) yang health (sehat dalam artian bisa menangani request).

Mari kita coba.

Disini saya sudah memiliki dua instance yang telah terinstall web server dan dapat diakses dari browser. Saya bedakan menjadi Web Server 1 dan Web Server 2.

Masih di halaman yang sama dengan EC2 Instance, gulir ke bawah Load Balancing > Load Balancers. Untuk membuat sebuah elb, klik Create Load Balancer.

Pada tampilan pertama, kita diminta untuk memilih tipe elb.

Gulir ke bawah dan klik Create pada tipe Classic Load Balancer.

Selanjutnya kita diminta menentukan nama elb, memilih vpc mana yang akan digunakan oleh elb, dan bisa ceklis Enable advanced VPC configuration untuk menentukan subnet.

Jangan lupa atur port di bagian listener configuration. Disini saya hanya menggunakan port 80. Jika sudah klik Next.

Pilih Security Group. Pastikan dalam security group tersebut, port yang menjadi listener sudah di allow. Lalu Next.

Karena kita tidak menggunakan listener yang ‘secure’ (port 443), maka bisa langsung Next.

Pada konfigurasi Health Check, tentukan protokol, port dan path dari aplikasi yang menjadi target. Bisa tentukan waktu timeout (berapa lama elb harus menunggu respon dari target), interval (jarak dari pengecekan satu dengan pengecekan selanjutnya), unhealthy treshold (jumlah kegagalan pengecekan untuk menentukan bahwa instance unhealthy dan tidak siap menerima request), dan healthy treshold. Lalu klik Next.

Tambahkan instance yang menjadi target (instance yang didalamnya berisi aplikasi). Ceklis Enable Cross-Zone Load Balancing jika target berada di zona yang berbeda-beda lalu Next.

Bisa tambahkan tag lalu Next.

Dan terakhir bisa di review. Jika sudah OK, klik Create.

Tunggu sampai load balancer berhasil dibuat

Pastikan status dari ELB sudah x/x

Salin DNS name dari elb dan coba buka melalui browser. Refresh URL dan dari tampilan aplikasi nya terlihat elb meneruskan request ke target yang berbeda.

Balik ke Console dan bisa klik tab Instance untuk mengubah target dan AZ

Buka tab Monitoring untuk memantau elb.

Referensi:

  1. https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-getting-started.html

Sekian!

AWS: How to Encrypt S3 Objects using SSE-KMS

Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin berbagi mengenai SSE-KMS (Server-Side Encryption – Key Management Service). Di AWS, KMS memiliki peran untuk mengelola kunci enkripsi yang digunakan untuk mengenkripsi resources.

Disini kita akan membahas SSE. Server-Side Encryption maksudnya data akan dienkripsi at-rest. Misal data yang berada di environment AWS. AWS menawarkan enkripsi secara aman dan memiliki ketersediaan tinggi (highly available) bagi aplikasi ataupun hardware yang menggunakannya.

Mari kita coba.

Dari AWS Management Console > Security, Identify & Compliance > Key Management Service

Di bawah ini merupakan dashboard dari KMS. Terlihat ada tiga tipe dari KMS yang disediakan oleh AWS berada di sisi kiri. Kita klik Customer managed keys

Lalu klik Create key untuk membuat key baru

Pada langkah pertama pembuatan key, pilih tipe key dan atur regionality nya. Saya coba pilih Symmetric dimana tipe ini biasa digunakan untuk enkripsi data aplikasi dimana kunci enkripsi dan dekripsi nya adalah sama.

Lalu Next

Isikan nama Alias dari key, deskripsi dan tag, lalu klik Next

Pilih key administrative permissions untuk menentukan siapa yang berhak mengelola dan mengatur siapa yang bisa menggunakan key. Lalu klik Next

Atur key usage permissions (bisa menggunakan akun AWS atau yang lain) untuk menetukan siapa yang berhak menggunakan key, lalu klik Next

Lalu di langkah terakhir bisa kita review apakah pengaturannya sudah sesuai atau belum

Lalu klik Finish

Tunggu sampai key berhasil dibuat seperti di bawah ini dan key siap digunakan

Sebagai implementasi, saya akan coba menggunakan key untuk mengenkripsi objek di Amazon S3.

Saya sudah menyiapkan sebuah bucket dan saya akan coba mengupload sebuah objek dengan menggunakan key tadi sebagai enkripsinya. Klik Upload

Untuk menggunakan key sebagai enkripsi di objek yang kita upload, bagian Server-side encryption settings, klik Specify an enryption key > AWS Key Management Service key (SSE-KMS) > Choose from your AWS KMS Keys, drop down dan pilih key yang kita buat. Lalu klik Upload.

Dan yup. Objek sudah terenkripsi dengan aman.

Lalu, apakah kita bisa mengatur agar objek yang diupload harus menggunakan enkripsi AWS KMS? Jadi, objek yang tidak menggunakan enkripsi, objek akan gagal diupload.

Jawabannya adalah bisa. Kita bisa mengaturnya pada pengaturan Bucket Policy dengan menambahkan policy berikut:

{
    "Version": "2012-10-17",
    "Id": "RequireSSEKMS",
    "Statement": [
        {
            "Sid": "DenyUploadIfNotSSEKMSEncrypted",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<Your_Bucket_Name>/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        }
    ]
}

Note: Ubah Your_Bucket_Name sesuai nama bucket.

Lalu klik Save.

Maka, ketika ada yang mengunggah objek/folder tanpa menggunakan enkripsi, hasilnya akan Failed seperti berikut ini

Lalu, apakah kita bisa mengatur agar bucket harus menggunakan key secara spesifik? Misal harus menggunakan enkripsi dan enkripsinya adalah your-name-encryption.

Jawabannya adalah bisa. Gunakan policy berikut ini.

{
    "Version": "2012-10-17",
    "Id": "RequireSSEKMSWithSpecificCMK",
    "Statement": [
        {
            "Sid": "DenyIfNotSpecificCMK",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<Your_Bucket_Name>/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-west-2:<Lab_Account_ID>:key/<cmk-name>"
                }
            }
        }
    ]
}

Referensi

  1. https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html

Sekian!

AWS: Migrating a Database Cluster using AWS DMS (Database Migration Service)

Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin menjelaskan apa itu AWS DMS (Database Migration Service) beserta contoh lab sederhana sebagai implementasinya.

Sesuai nama, AWS DMS adalah layanan yang memudahkan kita untuk melakukan migrasi database (baik relasional, non-relasional, data warehouse, ataupun tipe data lainnya) ke AWS Cloud dari on-premise ataupun layanan cloud lain bahkan dari AWS Cloud sendiri.

Dengan AWS DMS, kita bisa melakukan migrasi secara tepat, cepat, bahkan bisa melakukan replikasi untuk memastikan data di source dan destination saling sinkron. Kita bisa melakukan migrasi dimana source dan destination memiliki engine yang berbeda. Seperti dari MySQL ke PostgreSQL atau sebaliknya. Hanya saja perlu layanan tambahan yaitu AWS Schema Conversion Tool (AWS SCT) untuk mengkonversi skema nya terlebih dahulu sebelum di migrasi. Kita akan coba bahas di jurnal lain karena disini saya akan coba migrasi dengan menggunakan Engine yang sama, yaitu MySQL/MariaDB.

Dari dokumentasi resminya, diagram alur dari AWS DMS seperti berikut ini:

Penjelasannya kurang lebih:

  1. Kita siapkan source database. Bisa database dari on-premise, layanan cloud seperti AWS Cloud, bahkan AWS S3
  2. Di AWS DMS, kita buat dua endpoint, yaitu Source Endpoint berisi konfigurasi dari source database, dan Target Endpoint berisi konfigurasi dari target database
  3. Buat sebuah Replication Instance dan Replication Task yang akan melakukan migrasi dari source ke destination database

Mari kita coba.

Terlihat di bawah ini saya memiliki sebuah on-premise database dan saya akan coba melakukan migrasi ke Amazon RDS. Databae yang akan dimigrasi adalah nation.

Saya telah menyiapkan Amazon Aurora Multi-AZ database dengan 1 db instance sebagai writer, dan 1 db instance sebagai reader.

Untuk ke AWS DMS, buka Services > Migration & Transfer > Database Migration Service

Akan diarahkan ke dashboard AWS DMS, dan kita bisa mulai dengan membuat replication Instance. Klik Create replication instance

Definisikan nama dan instance class. Saya pilih spesifikasi terkecil yaitu dms.t2.micro

Gulir ke bawah, tentukan ukuran disk dari replication instance (defaultnya 50GB), vpc yang akan digunakan, dan apakah instance diset Multi-AZ atau tidak. Saya pilih Single-AZ

Bisa diset akan ditempatkan di AZ mana, ceklis Publicly accessible dan jangan lupa atur security group dengan port 3306 di inbound rule sudah di allow

Gulir ke bawah dan saya biarkan konfigurasinya default

Gulir ke bawah dan klik Create

Tunggu hingga replication instance berhasil dibuat dan statusnya Available

Klik nama dari replication instance untuk melihat detailnya

Seperti di diagram sebelumnya, selanjutnya kita akan coba membuat dua endpoint, yaitu Source dan Destination. Klik Endpoints di menu kiri > Create Endpoint

Saya akan membuat Source endpoint terlebih dahulu. Tentukan nama dan Source engine, misal MySQL (sesuaikan engine di database asal)

Pada pengaturan Access to endpoint database, pilih Provide access Information manually. Isikan Server name berupa IP Address atau hostname, port, username dan password yang bisa digunakan untuk mengakses database. Lalu klik Create Endpoint

Untuk menguji apakah database bisa diakses, ceklis endpoint > Action > Modify > Test Connection

Klik Run test dan pastikan berhasil.

Jika tidak berhasil, periksa apakah kredensial sudah benar atau belum.

Klik Create endpoint lagi dan pilih tipe nya sebagai Target endpoint. Ceklis Select RDS DB Instance karena database tujuan kita berada di Amazon RDS.

Pilih RDS db instance, dan tentukan nama endpoint nya

Sesuaikan Target Engine, klik Provide access information manually, dan isikan kredensial yang dapat digunakan untuk mengakses database. Lalu klik Create endpoint

Tunggu hingga endpoint berhasil dibuat.

Untuk menguji endpoint, ceklis endpoint > Action > Test connection

Pastikan Target endpoint berhasil dites

Setelah endpoint dibuat, kita akan membuat task untuk melakukan migrasi. Klik Database migration task lalu klik Create task

Tentukan identifier, pilih replication instance, source dan target endpoint yang sudah dibuat sebelumnya. Pada migration type saya pilih Migrate existing data

Ceklis Enable Validation dan saya biarkan konfigurasinya menjadi default

Gulir ke bawah dan bisa diatur konfigurasi tuning dan atau konfigurasi lainnya. Karena untuk Dev, disini saya biarkan default.

Pada Selection rules, klik Add new selection rule. Atur nama database apa yang akan dimigrasi di kolom Schema name dan atur tabel apa yang ingin dimigrasi di kolom Table name. Ketik % ketika ingin migrasi semua item, baik database atau tabel.

Pilih Manyally later dan klik Create task

Tunggu hingga beberapa saat sampai statusnya Ready. Ceklis task > Action > Restart/Resume

Tunggu hingga proses migrasi selesai dengan status Load complete 100%.

Klik nama task > Table statistics untuk verifikasi tabel apa saja yang dimigrasi dan bagaimana statusnya.

Kita bisa verifikasi database yang berada di Amazon RDS dari ec2 instance. Di bawah ini terlihat database nation sudah berada disana.

Referensi:

  1. https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.SettingUp.html

Sekian!

AWS: Setting Up a Multi-AZ Database Cluster using Amazon Aurora

Hai!

Selamat malam teman-teman. Disini saya ingin berbagi mengenai Amazon Aurora. Salah satu layanan relasional database yang bersifat proprietary di AWS . Amazon Aurora mendukung dua engine untuk database manajemen yaitu MySQL dan PostgreSQL dengan berbagai kelebihan yang di tawarkan, seperti performa, autoscaling, resizing, replikasi, monitoring, dan fitur instance repair. Jadi, ketika ingin migrasi ke Amazon Aurora dari kedua engine tersebut, tidak terlalu banyak penyesuaian karena menggunakan SQL yang sama.

Dalam lab ini kita akan menerapkan fitur replikasi menggunakan konfigurasi Multi-AZ (menggunakan lebih dari satu instance yang berlokasi di zona yang berbeda dalam satu region) dan akan kita uji failovernya.

Mari kita coba.

Dari AWS Management Console > Databases > RDS

Kita akan diarahkan ke dashboard Amazon RDS. Klik Create Database untuk membuat cluster database baru

Pastikan tipe Engine yang dipilih adalah Amazon Aurora.

Disini saya pilih MySQL dengan tipe kapasitas Provisioned dan versi dari Amazon Aurora nya 5.7

Karena ini untuk pengujian saja, pada bagian template saya pilih Dev/Test dan atur nama cluster beserta konfigurasi autentikasnya.

Pada pengaturan DB instance class saya memilih db.t2.small yaitu spesifikasi terkecil.

Aktifkan Multi-AZ Deployment dan pilih vpc yang sesuai.

Pada public access, set menjadi No karena database hanya akan diakses secara internal di 1 region dan pilih security group yang sesuai, dimana dalam security group tersebut port 3306 sudah di allow.

Dropdown pada Additional Configuration. Atur retensi backup menjadi 1 hari.

Failover priority merupakan konfigurasi untuk menentukan prioritas untuk db instance dan replika. Ia akan mengatur sebuah node menjadi writer dan hingga 15 node menjadi reader. Prioritas menentukan urutan node mana yang akan menggantikan node writer ketika terjadi insiden. Disini saya biarkan konfigurasinya default.

Disini saya tidak menggunakan enkripsi, jadi saya uncheck dan saya biarkan konfigurasi lainnya menjadi default.

Gulir ke bawah dan klik Create database

Tunggu hingga cluster berhasil dibuat

Terlihat di bawah ini ada dua instance dalam cluster aurora-db dengan lokasi zona yang berbeda dimana salah satunya memiliki role Writer dan lainnya Reader.

Salin Endpoint Name yang akan kita gunakan untuk akses ke database

Disini saya sudah menyiapkan sebuah instance yang berada di satu region yang sama.

Dan bisa dicoba akses cluster db nya dari instance dengan perintah:

mysql -h <Endpoint Name> -P 3306 -u ananda -p

Saat sudah bisa masuk prompt, cluster sudah siap digunakan.

Apakah kita mengubah peran/role dari instance secara manual? misal tidak ada insiden namun kita ingin mengubah role dari Writer menjadi Reader. Jawabannya adalah bisa. Yaitu dengan klik instance > Action > Failover

Pada tampilan konfirmasi, klik Failover

Tunggu beberapa saat hingga role nya berubah.

Lalu, apakah bisa Multi-AZ cluster diubah menjadi standalone? artinya dalam cluster tersebut hanya akan ada satu db instance? bisa. Kita bisa mengapus db instance nya langsung dengan pilih instance yang akan dihapus > Delete

Pada prompt, ketik delete me > Delete

Tunggu hingga db instance sudah terhapus

Referensi:

  1. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html

Sekian!

Hoby Pencet Tombol Meteran

Sudah hampir 1 bulan ini sering pencet-pencet tombol Meteran PLN.
Berkaitan dengan pencet-memencet tombol meteran tersebut saya ada beberapa cerita menarik, tapi saat ini saya ceritakann 1 dulu saja.
Beberapa hari lalu ada teman yang beli token listrik, nah ketika selesai diinput tulisannya gagal, sudah dicoba berulang-ulang tetap nihil hasilnya.


Akhirnya dia komplain ke saya, ya sudah saya kompain ke PLN melalui call center 123, biar cepat karena kalau lewat aplikasi PLN Mobile prosesnya lebih lama, walau begitu ketika kita telp ke 123 salah satu jawaban si robot adalah kurang lebih seperti ini "agar pelayan lebih cepat ditangani silakan gunakan aplikasi PLN Mobile" tapi yaitu tadi kenyataannya malah sebaliknya.

 


Pernah komplain lewat aplikasi PLN Mobile dari jam 8 pagi, jam 4 sore baru ditangani.
Singkat cerita ketika saya telp 123 diminta nomor WA yang aktif. saya berikan saja.
Saya Telp 123 pukul 14.xx WIB, pukul 21.xx WIB si Halo Electrizen baru kirim WA berisi Key Change Token-1 untuk diinput ke meteran yang bermasalah.


Ya sudah saya teruskan saja kode tersebut ke pemilik meteran, dengan sedikit penjelasan cara menggunakannya.

Beberapa menit kemudian pemilik meteran balas WA saya, bahwa ketika selesai memasukkan kode baris ke-2 selalu gagal.
Akhirnya dia minta tolong ke saya untuk datang ke rumahnya, saya pun dijemput.
Sampai di rumahnya langsung saya input 4 baris kode tersebut, ternyata memang benar seperti yang dia bilang, pada baris kedua keterangannya gagal.


Jalan keluarnya saya reset meteran tersebut dengan pencet angka 0 (nol) sebanyak 2 kali, kemudian Enter.
Baru deh masukkan 4 baris kode tersebut, selanjut masukkan kode token yang dia beli. dan input token pun sukses.

Sementara ini kalau ada yang beli token listrik, saya tolak dengan alasan Saldo habis, daripada cuma untung seribu rupiah tapi ribet dan menyita waktu. Lebih baik waktu digunakan untuk keperluan lain yang lebih bermanfaat, misalnya menulis buku.
-
Mungkin PLN keliru dengan slogannya "Listrik Printar" kalau jadinya ribet begini, mungkin sloganya bisa diubah jada "Listrik Belajar"

GitLab Productivity Tracking: Know How Your Team Breathing

How do I know if my team performs well? How to tell that with data? If we’re underperformed or didn’t meet the deadline, how to find the causes and tackle them? I was thinking about analyzing the entire activities in my team to get some insights, starting from GitLab issues.

I put some filters to the issues:

  • Has been assigned to someone
  • Has mentioned in (at least one) a merge request
  • Has been closed
  • The entire time spent (from open to closed) is less than two weeks (some issues were created as reference or documentation which sometimes took a bit long to be resolved)

For each, I fetch the:

  • Notes, contains activities of the issue, including comments, assignments, etc. There is a timestamp for each assignment activity.
  • Merge requests to the particular issue. They contain the timestamp of created and merged events which are very useful to get insight from the dev side.

From 500 issues sorted by the latest updated (by the boundaries above), they narrowed down to 113 issues.

By using this data, I could aggregate it to get the duration of the activities for each issue:

  • From opened to closed, which represents the lifetime of an issue.
  • From opened to picked by/assigned to someone.
  • From assigned to the first merge request, which represents how long devs finished their jobs.
  • From merge request creation to a merged event, which represents how long peer to peer review process and revisions (if any) take time.
  • From merged to issue get closed, which represents how long the QA took over the issue and test them.

I wrote them into a single script: https://gist.github.com/herpiko/b5aa126e29f5f2ad15c4ff481bf5aee8. There is a lot more area to explore. Of course, this setup has some inaccuracy as there were so many things that happened in the team but let’s see the early insight first, shall we?

There were some bottlenecks:

  • The developers took too long to get merge requests merged into our main branches. It’s a bit tricky and has a trade-off. You can stop your coding session to help your coworker by reviewing their patches immediately then you get a costly context switch here. Or you can ignore it, let your job done first then take a look at the patches later which may impact the issue cycle a lot.
  • QAs (which at the time they were also handling the other stuff) have a hard time testing it. The single issue should take less than an hour to test but the QAs have not picked it for days until they have time or until the deadline came nearer.

In the last step, let’s gather the team and talk.

Cryptocurrency Mining

After a year of having mining-capable GPU for gaming and despite the EIP 1559 plan, I decided to join the bandwagon in the end of April. Then I added some GPUs. Still, it’s a small rig. Quite late but I still got much profit. In this October I sold the rig and left with the 1660 Ti so I could continue to play video games. Some of the reasons:

  • The daily profit is low in recent days
  • Some miners began to sell their GPUs while the GPU prices spiked again
  • There is a difficulity bomb in Ethereum that will be dropped in December (but maybe get postponed https://ambcrypto.com/ethereum-developers-propose-to-postpone-difficulty-bomb-until-may-2022/)
  • It is not something that can leave unmonitored. Sometimes issues occured. Also I still worry about the safety.
  • https://www.fi.se/en/published/presentations/2021/crypto-assets-are-a-threat-to-the-climate-transition–energy-intensive-mining-should-be-banned/
  • Want to focus to another side hustle

I learned a lot in the process. The profit exceeded my expectation. Big portion of it goes into investment portofolio and I bought myself a steering wheel as selfreward. When in doubt, flat out!

Parting with Wakijo

He served me for almost eight years. Not very well but he did his job. Since COVID, I barely touch him and I believe my family could not get much advantage by having him around. So I let it go.

Wakijo passed to my old friend, his previous owner.

Music as a Time Capsule

I’m not talking about music that takes you back to the year where it got popular. That is a shared experience among other people. What I’m talking about is the music that could bring you up a specific memory about specific place or event, about yourself, in one strong dose. I don’t know if it works for others but here is how it works for me.

Over and over again, almost infinite

It’s started with an album by Enno Lerian when I was still a kindergarten kid. I’ve to asked my dad to hook the cassette into stereo player every single time I want to dance with dudidam. I only want to hear dudidam and dismiss the rest of the album. Backward and forward buttons were my best fellow since there is no repeat feature back then.

Then I grew up with impaired hearing disability and understanding music is hard for me. I don’t mind about lyric or genre. As long as the beat blasts my brain and the melodies make my body wiggled, I’ll just listen. I frequently found myself loving a certain song by how it sounds but completely disagree against the raison d’etre of its lyric.

So I just played the song I liked over and over again until I found another easy listening song. I can stays with single track for long hours, days or weeks. The trade off is clear: I’ve bad knowledge (and sometime bad taste, some people said) about music and its diversity.

I don’t know the long term effect of this habit until I move to another city for the first time.

Just how strong the dose is?

The memories is as strong as its inaccuracy. No instrument that could bring sharp memories as text or imaging or talking with your old friend, but music do this differently on me. A particular song could help me to imagine the place in strong vibe. It maybe inaccurate but it’s strong.

My wife hate the way I play songs so I never play it using loud speaker.

This is the way.

Teman Lama

Suatu pagi di hari minggu saya “reuni” dengan teman-teman SMA yang satu ekstrakulikuler (Paskibra). Dari 14 orang cuma 11 yang berhasil dikumpulkan di grup WA. Yang hadir di zoom 10 orang. 8 sudah menikah, 6 sudah punya anak, 1 bahkan tinggal di Montreal nikah sama bule di sana. 2 dari 3 orang yang ga berhasil dikontak hidupnya kurang beruntung/bermasalah, sementara yang 1 tidak diketahui kabarnya.

Semua ini berangkat dari 1 orang yang rindu di Kanada sana, mengemukakan idenya di grup WA. Hal ini mengingatkan akan diri saya beberapa tahun yang lalu yang merasa kesepian setelah lama merantau di ibu kota.

Sistem peringatan dini (EWS)

“Entah kenapa ketika tiba-tiba passion gue muncul terhadap satu hal, biasanya akan ada pekerjaan dalam waktu dekat” begitu kata gue ke Aris suatu malam di kantor Cilandak waktu gue ngoprek SMS gateway dan dia membuktikannya dua Minggu kemudian kami kedatangan tamu dari Belanda

Selepas dari kampus sekitar tahun 2010an, saat itu lagi rame-rame nya kejadian gempa di Indonesia, saat itu pengguna internet ga seramai sekarang dan blackberry masih menguasai pangsa gadget high-end. gue sempet bantuin disebuah NGO kebencanaan buat membangun sistem peringatan dini bencana alam terutama gempa bumi. datanya dari BMKG buat dibroadcast ke stasiun tv, portal, dan SMS warga di sekitar area terdampak. Teknologinya sederhana memang tapi lumayan gue jadi punya kesempatan jadi pembicara di banyak tempat gara-gara itu.

Sekitar tahun yang sama sebagian teknologi tersebut mulai diadopsi oleh beberapa lembaga dari pemantauan kota di Jakarta, pemantauan kekerasan di Papua dan Thailand selatan, pemantauan lingkungan, kekerasan thd TKI, hingga pemantauan pemilu di malaysia. Beberapa tahun kemudian. sekitar 2013 tiba-tiba dikontak mahasiswa MIT diajak mengembangkan salah satu teknologi tersebut untuk pemantauan banjir di Jakarta. Sayangnya itu hanya menjadi sebatas paper. Mungkin karena terlampau canggih kala itu.

Beberapa waktu kemudian saat rame kebakaran hutan, gw terlibat dalam pengembangan sistem peringatan dini kebakaran hutan, metodenya jauh berbeda dari yang sebelumnya lumayan ribet, tapi beberapa tahun kemudian berguna buat pekerjaan gue di lokadata. Nah sekarang gw lagi pengen iseng bikin EWS buat SpO2 karena mungkin ketersediaan tempat tidur RS akan semakin berkurang dan akan lebih banyak yg isoman, kalo ada sebuah EWS yg bisa broadcast ke nakes/RT/RW keknya bisa mengurangi beban RS. ternyata alat dan bahannya cukup murah.

Gue bilang juga apa!!

Penggalan frasa semacam itu dan sejenisnya udah gue tinggalkan sejak mungkin 5 tahunan lebih, frasa yang ga ada gunanya selain bentuk keinginan pengakuan atas keberhasilan yang entah apa yang sebenernya juga ga jelas.

Bener ga jelas, karena gw jamin 80% yang bilang kaya gitu ga siap perencanaan jika ide mereka yang dipake, kalo ditanya bagaimana rencananya biasanya akan jawab “lah gue kan udah usul, masa gue juga yang harus bikin rencana?” Terlihat flawless sekali bukan?

Belakangan sejak pemerintah terlihat kehilangan kontrol terhadap pengendalian pandemi, frasa semacam itu banyak yang lewat di timeline sosial media gue. Jadi inget omongan si Bahlul suatu hari waktu kami duduk disebuah rapat, dan lagi ngomongin yang mimpin rapat .

G: “Omongannya tinggi banget ya ga takut kesamber pesawat tuh?”
B: “Orang Indonesia itu dilahirkan dengan rahang yang kuat”
G: “maksudnya gimana?”
B: ” hobinya komentar doang ga ada eksyen”
G: “itu soalnya pas absen pembagian otak bangunnya kesiangan, dapetnya dikit deh”

Sinyal dan indikator

Bagaimana untuk mengetahui seekor sapi sedang lapar atau sudah kenyang?

Setahun trading gue belajar untuk menunggu sinyal, kemudian menunggu konfirmasi kemudian baru di eksekusi. Setelah eksekusi pun kita perlu pasang pengaman sampai semua berjalan sesuai arah sinyal. Pengaman dipasang di awal biar gue ga mikir lagi buat mengakhiri kalo ternyata setelah konfirmasi gerakan ga berjalan sesuai dengan rencana.

Mendefinisikan keberanian adalah ketika kita mengeksekusi setelah melihat konfirmasi dan memasang pengaman, spekulasi adalah ketika kita baru hanya melihat sinyal kemudian kita langsung mengeksekusi, gegabah adalah ketika ga ada sinyal kita maksa buat masuk.

Secara umum trading mencerminkan kehidupan secara keseluruhan. Manusia tidak didesain untuk mengatasi semua masalah, banyak hal yang diluar kuasa setiap individu. Dari alam sampai perasaan individu yang lain. Kita hanya perlu alat ukur atau indikator yaitu sebuah alat yg bisa kita gunakan untuk mengukur sebuah kejadian.

Output dari beberapa indikator yang saling berkorelasi bisa membentuk sebuah sinyal, sinyal – sinyal tersebut tentunya akan banyak sekali dan karena alat ukur ini adalah alat ukur statistik maka tidak selalu sinyal ini benar, oleh karena itu sinyal perlu diperkuat oleh sebuah konfirmasi. Setelah adanya konfirmasi gerakan sesuai dengan yg sinyal berikan baru rencana dapat dijalankan.

Jadi menurut gue kalo mau belajar apapun pelajari sifat dan indikator baru pelajari sinyal dan konfirmasi.

Obituary

Lebih dari 10 tahun hidup di perantauan gue bersyukur banyak ketemu orang baik, seorang kawan pernah bilang “orang baik biasanya bakal ketemu orang baik, cuma ya biasanya yg ga baik lebih banyak.”

Well, Veri Junaedi adalah salah satunya, sebelum mengenal baik kami sempat bertemu beberapa kali saat persiapan pemilu 2014 sama-sama di KPU tapi beda bidang beliau di peraturan perundangan gw di teknologi mungkin circa 2012, di tahun yang sama di kepentingan yang lain kami dipertemukan di sebuah program yaitu Matamassa program inisiatif masyarakat untuk pemantauan pemilu. Tak lama kemudian kami berada satu gedung dalam usaha rintisan kami masing-masing.

Veri Junaedi, adalah sosok yang istimewa berbeda dengan image orang yg bekerja dibidang hukum kebanyakan yg gw kenal. Entah apa yang dia lihat sama gue sehingga mau berteman sama gue. Mungkin karena kesamaan kami spontan, ketika punya ide kemudian langsung dieksekusi.

Dia orang yg tiba-tiba ga ada angin ga ada hujan tiba-tiba ngajak makan bareng, yang mungkin setiap Ramadhan ngajak buka bareng, setiap kesempatan makan-makan gw selalu diundang. hmm mungkin ini juga salah satu kesamaan kami, kami suka makan enak.

Beberapa kali kami nyoba buat bikin usaha rintisan bareng juga tapi ga jalan, kami terlalu sibuk dengan urusan masing-masing, meski gagal pertemanan kami baik-baik saja. ya gue menemukan definisi pertemanan tak sebatas materi dari orang-orang baik sekitar gue.

Perbedaan usia kami ga terlalu jauh, Gue udah nganggep dia seperti kakak gue sendiri. Sekali gue pernah ngenalin perempuan spesial gue ke dia, gue ajak ke pembukaan rumah makannya. buat gue ini adalah big move karena gue bukan tipe orang yg selalu ngenalin cewek gue ke orang-orang terdekat, unless she has taken half of my soul. Sayangnya gw ga berjodoh sama dia.

Sekitar 3 Minggu yang lalu seperti biasa dia kontak ngajakin ngopi di proyek rumah barunya di Cibinong, dia bercerita setiap weekend dia nginep disana. Rumahnya gede iya memang dia sekalian menyiapkan untuk kantor istrinya yang notaris. Ajaibnya dia juga tetep bikin area buat kumpul2 seperti yg biasa kami dan kawan-kawan sering lakukan.

“Ini nanti kita bisa kumpul-kumpul disini mas, terus yang bawah itu bisa buat barbeque, sebelah sana nanti saya bikin kolam renang, terus nanti pintu ke rumah udah saya bedakan biar yg ngumpul ga ganggu orang rumah, dan kalo kemaleman males balik udah saya siapkan kamar khusus tamu” kata Beliau sambil tertawa-tawa

Kemudian kami makan, dan gue dikenalkan seluruh keluarga besarnya dari neneknya yang biasa dia panggil emak sampai ibunya. saat itu neneknya bercerita tentang masa kecil mas Veri yang sudah ditinggal bapaknya dari usia 4 bulan dalam kandungan, kemudian ibunya yang banting tulang sebagai single parents membesarkan dia, juga paman dan sodara-sodaranya yang lain yang bahu membahu membesarkan dia. “Saya juga ga nyangka dia akan jadi anak yang pinter begini” ujar emak

Saat itu gue jadi tau darimana kebaikan dia berasal. Dia dibesarkan oleh orang-orang yang baik dan tidak pernah putus asa. dalam hati gue bertanya apa harus jadi orang sesusah ini buat jadi orang berhasil? Gue melihat mas Veri ini orang yg berhasil. Dia berhasil menjalin pertemanan dengan banyak orang dari berbagai kalangan, dia berhasil membangun kantornya yang nyaris ga sepi dari pelanggan, dan menularkan kebaikannya pada ketiga putrinya yang masih kecil.

Sekitar dua Minggu lalu dia memasang status di WA bahwa dia terkena Covid 19, gw kirim pesan ke dia semoga lekas pulih. Namun tak pernah terbalas hingga siang tadi gue dapat kabar dari Fadli teman kami bahwa Mas Veri sudah Wafat siang tadi pukul 14.10 di RS. Pelni.

Anak dan Video Gim

Saya dan saudara-saudara saya tumbuh di keluarga pengusaha yang ketat tentang apa yang boleh dan tidak boleh dilakukan oleh anak mereka. Bapak saya membolehkan apa pun selama hal itu terkait dengan sekolah. Pilihan atau keputusan-keputusan orang tua saya itu adalah hak mereka. Saya patut mematuhi mereka sampai saya diizinkan untuk mengambil keputusan penting sendirian. Namun saya menyayangkan satu hal yaitu betapa tidak sukanya orang tua saya terhadap video gim, apa pun bentuknya. Orang tua saya pastinya memiliki alasan tersendiri.

Saya dan kakak saya tidak pernah meminta konsol video gim kepada orang tua kami secara terang-terangan. Tapi kami masih bisa bermain di rumah teman/tetangga kami atau di rental video gim, kan? Tidak juga, orang tua kami juga tidak mengizinkan itu. Kami selalu melakukannya secara sembunyi-sembunyi. Jangan remehkan rasa penasaran anak-anak yang sangat tinggi. Hal-hal yang berbau teknologi dan elektronik sangat menarik minat kami. Puncaknya, bapak saya marah besar saat mengetahuinya dan langsung menjemput kami di tempat kami bermain.

Dampak

Sejak kejadian itu saya tidak pernah benar-benar bisa menikmati bermain video gim.

Saya berusia 12 tahun saat bapak saya meralat sikapnya dan memberi saya kebebasan yang lebih longgar. Saya pindah ke lingkungan baru di mana saya bertemu anak-anak baru yang lebih mapan. Kebanyakan dari mereka memiliki konsol video gim di rumahnya. Meskipun bapak saya tidak pernah lagi melarang saya akan tetapi saya tidak pernah bisa menikmati video gim seperti dulu. Semacam ada perasaan tidak enak menghantui dan hal itu sangat mengganggu.

Jika sedang bermain video gim dengan teman-teman, saya lebih sering dijadikan bulan-bulanan karena saya sangat payah. Saat teman-teman berdebat tentang aturan-aturan dalam permainan tertentu, saya sudah malas mencernanya. Saya menjadi anak yang memiliki sifat kurang kompetitif, gampang menyerah, selalu mencari cara aman atau malas mengambil resiko dan tidak cukup kreatif dalam urusan strategi. Saya tidak lagi menyukai permainan yang melibatkan lebih dari 1 orang seperti sepak bola. Saya menyukai basket tapi saya tidak pernah suka bermain dalam tim.

Setelah tumbuh dewasa dan bisa menghasilkan uang sendiri, saya pernah mencoba menyewa konsol gim, dibawa pulang selama beberapa hari untuk melihat apakah saya dapat menumbuhkan kembali hasrat yang dulu. Hal itu ternyata sia-sia.

Akibat yang paling memalukan barangkali pendapat sok tahu saya yang menyatakan bahwa video gim bukanlah bentuk seni. Saya salah. Saya hanya kurang dapat mengapresiasi jenis karya yang satu ini karena bias dan trauma.

Kembali

Saya pertama kali bertemu istri saya pada suatu sore di tahun 2017, kenal lebih dekat 1 tahun kemudian dan akhir 2019 kami menikah. Buat saya hal yang paling mengejutkan dari dirinya adalah ia seorang gamer. Ia tumbuh besar di keluarga yang mampu membeli konsol video gim dan masih bermain gim sampai sekarang. Saat ia mempersiapkan pindahan untuk tinggal bersama saya, ia membawa serta konsol Xbox 360 dan sebuah Nintendo 3DS yang sistemnya terkunci dalam bahasa/aksara Jepang. Hati saya bergejolak. Saya tidak dapat menahan diri dan mencoba menjelajahi konsol genggam tersebut. Saya kembali menjelma seperti anak kecil yang penasaran akan dunia luas yang pintunya tidak lebih lebar dari 800 piksel. Dan yang paling penting, orang terdekat saya sekarang memahami dengan baik perasaan meluap yang saya alami itu.

Keputusan untuk memiliki anak juga mendorong saya untuk bereksperimen ulang dengan video gim. Kami kemudian memutuskan untuk merakit PC gaming. Dengan dukungan istri, saya perlahan dapat menumbuhkan kembali minat yang hampir 2 dekade telah pudar. Setelah setahun berlalu dan menamatkan judul-judul epik seperti What Remains of Edith Finch, Inside, Shadow of Mordor dan lainnya, saya dapat mengapresiasi video gim sebagai karya seni. Saya juga menyempatkan diri untuk mempelajari kultur dan perkembangan video gim yang selama ini saya ketinggalan banyak.

Sekarang video gim menjadi salah satu pilihan saya dalam mengisi waktu luang di akhir pekan. Tidak jarang saya bermain bersama keluarga. Video gim juga telah membantu saya melewati tekanan pada masa-masa karantina atau isolasi mandiri karena infeksi COVID-19. Video gim melatih saya untuk bergerak lebih kreatif, tidak mudah menyerah, mengembangkan kelincahan dalam berpikir dan memberi saya kumpulan emosi positif yang tidak saya dapatkan di media lain.

Menjadi Orang Tua

Keresahan orang tua zaman saya masih kecil mungkin berbeda dengan orang tua zaman sekarang. Video gim masih menghantui sebagai salah satunya. Sekarang di media massa mudah didapati berita-berita tentang seorang anak yang menghabiskan jutaan rupiah hanya untuk membeli voucher gim. Di lingkungan tempat tinggal saya sendiri dapat ditemukan anak-anak yang nongkrong dengan telepon genggam masing-masing dan menghabiskan waktu sepanjang hari tanpa pengawasan. Video gim pada anak-anak masih erat diselimuti isu adiksi dan minim pengawasan.

Keresahan macam apa yang akan saya hadapi di zaman anak-anak saya nanti? Saya tidak tahu apa yang akan terjadi nanti namun saya harus siap beradaptasi apa pun itu. Inti dari tantangan ini barangkali bagaimana kita dapat melindungi anak-anak kita dari keresahan-keresahan itu tanpa membuat mereka tertinggal dari perkembangan zaman ataupun menghambat aspek-aspek tumbuh kembang mereka.

Saya dan istri saya sepakat tidak akan melarang anak kami bermain video gim. Saya akan membelikannya konsol video gim jika dia memintanya, barangkali sebagai bentuk apresiasi atas prestasi. Saya akan mengawasi dan menemaninya. Saya akan mengizinkannya mengalahkan saya dalam permainan, saya tidak keberatan. Saya akan membatasi screen time sesuai rujukan ilmiah terkini. Saya percaya video gim dapat memberi dampak yang baik dalam perkembangan anak bila kesempatan itu diberikan dengan batas wajar dan diawasi. Anak saya berhak menikmati karya seni ini jika dia mau.

Anak saya usianya belum satu tahun dan saya sudah membual tentang apa yang akan saya lakukan dengannya. Saya tahu ini tidak mudah. Tulisan ini akan saya kunjungi ulang sewaktu-waktu untuk membantu saya mengevaluasi apa yang telah saya lakukan di masa mendatang.

Menghapus Gambar Latar Belakang di LibreOffice Calc

Kemarin sore di group Telegram LibreOffice Indonesia ada salah seorang anggota yang mengalami masalah ketika menggunakan LibreOffice.

Kemudian yang dia bertanya bagaimana cara mengatasinya, adapun permasalahannya adalah; dia menyisipkan tandatangan berupa gambar format JPG pada dokumen, kemudian dia mengaturnya ke Latar Belakang dengan cara Arrange to Background. Nah, setelah itu dia kesulitan untuk menghapusnya.

 Sampai esok harinya belum juga ada yang bisa memberi jawaban memuaskan atas pertanyaan tersebut.

Kemudian penulis menanyakan permasalahan tersebut terjadi pada LibreOffice Writer, Calc, atau Impress?


Namun penanya tidak juga memnjawab pertanyaan penulis. Akhir penulis perhatikan dengan cara yang seksama dan sesingkat-singkatnya pada tangkapan layar yang dilampirkan, dan dapat disimpulkan bahwa permasalahan tersebut terjadi pada LibreOffice Calc.

 Cara mengatasi masalah

Karena penulis juga penasaran dengan permasalahan tersebut, maka penulis berusaha mencari jalan keluaranya.

Pertama penulis mencari berkas lama yang berisi data yang agap mirip dengan milik penanya, akhirnya ditemukanlah berkas daftar belajar komputer murid-murid PKBM Kertajaya.

Langkah selanjutnya adalah; penulis menyisipkan tandatangan ke salah satu sel di berkas LibreOffice Calc tersebut (biasanya kalau saya menyisipkan tanda tangan berarti bayaran).

 
Selanjutnya penulis mengatur tandatangan tersebut ke belakang dengan cara klik kanan tanda tangan => Arrange => To Background.

Dan memang benar, setelah gambar diatur ke latar belakang tidak bisa dikelola lagi atau jadi beku, mau dihapus, digeser, diperbesar tidak bisa.

Penulis pun mencobanya dengan disertai menekan tombol pintas, yaitu dengan menekan tombol Ctrl, Shift, Alt sambil klik pada gambar tandatanga, namun tetap tidak bisa. Bahkan penulis sempat masuk ke sel dengan menekan tombol F2 hasilnya tetap nihil.

Akhirnya penulis menggunakan metode seleksi seperti pada aplikasi grafis (Inkscape, Gimp, Scribus), dan ternyata berhasil.

Berikut caranya:

Tampilkan Alat Menggambar pada LibreOffice Calc dengan cara klik View => Toolbar => Drawing.

Setelah Alat Menggambar sudah berhasil ditampilkan, cari dan klik ikon Select (biasanya berada di pojok paling kiri)

Sekarang arahkan kursor ke gambar tanda tangan, kemudian klik tanda tangan tersebut, bisa bukan?.

Dengan cara ini kita tetap bisa mengolah gambar atau tandatangan pada LibreOffice Calc yang telah diatur ke Latar Belakan (Arrang To Background), Mudah bukan?

Di bawah ini adalah video sesuai artikel ini


Demikian Tutorial singkat yang dapat penulis bagikan hari ini, sampai jumpa pada tutorial lainnya, semoga penulis tidak malas menulis di blog ini.


 

Upgrade PC Tanpa Menggoncang Tabungan

Suatu ketika saya ingin meng-upgrade PC saya tapi kok rasanya berat hati untuk menyentuh tabungan. Rasanya kok keinginan tersebut tidak pada prioritas yang betul kalau sampai tabungan terkorek. Apa lagi sebentar lagi saya akan punya anak, tentu tidak betul kalau sampai pundi-pundi yang sudah diatur sedemikian rupa jadi terganggu. Terus bagaimana dong?

Decluttering

Ada orang-orang yang dengan mudah menyingkirkan barang yang tidak mereka perlukan, ada pula orang yang perlu arahan/motivasi lebih untuk melakukan itu. Saya adalah jenis orang yang kedua.

Ada dua buah buku yang saya baca secara berurutan pada tahun 2018, yaitu The Life-Changing Magic of Tidying Up oleh Marie Kondo dan Goodbye, Things oleh Fumio Sasaki.

Ide soal spark of joy dari Marie Kondo tidak begitu masuk ke kepala saya. Banyak benda yang tidak memenuhi kriteria tersebut tapi kalau disingkirkan dari hidup saya maka saya akan menjadi kesusahan secara tidak perlu. Nasihat-nasihat dari Fumio Sasaki lebih mengena di hati dan kepala.

Saat menulis buku tersebut, Fumio Sasaki adalah pria lajang tanpa tanggung jawab yang banyak, bahkan tanpa pacar. Jadi nasihat-nasihatnya sangat ekstrim. Saya juga sudah pernah beberapa kali melakukan decluttering, baik dengan giveaway mau pun dengan penjualan namun saya belum pernah mencobanya dengan cara yang ekstrim. Sekarang saya dapat melakukannya.

Keputusan memiliki anak ada trade-off-nya: ada banyak hal yang tidak dapat saya lakukan lagi dikarenakan waktu dan tenaga yang terbagi untuk keluarga. Setelah saya pikir-pikir, ternyata saya:

  • Tidak bisa naik gunung sampai 5-10 tahun ke depan.
  • Mengganti olahraga saya dengan yang lebih sederhana seperti jogging. Ditambah kondisi pandemi, saya tidak lagi bersepeda jauh-jauh untuk berolahraga.
  • Sulit/tidak dapat meluangkan waktu untuk beberapa mainin/koleksi.

Artinya benda-benda yang terkait dengan kegiatan di atas tidak lagi berguna untuk saya. Jadi saya memutuskan untuk menjual barang-barang saya tersebut: alat-alat dan perlengkapan mendaki gunung, sepeda, mechanical keyboard, beberapa barang elektronik, barang-barang yang duplikat (misal saya punya tetikus 2 buah), barang-barang yang dibeli sebagai cadangan, barang-barang pemberian, dan sebagainya. Pokoknya banyak banget! Banyak dari benda-benda itu adalah barang kesayangan, koleksi, dan memiliki kenangan namun manfaatnya untuk saya tidak ada. Manfaatnya untuk keluarga saya lebih nihil lagi. Apa yang lebih nihil dari nihil?

Saya tidak dapat menjelaskannya sebaik Fumio Sasaki. Jika kamu termasuk orang yang perlu motivasi tambahan untuk menyingkirkan barang-barang tidak terpakai, Goodbye Things boleh dicoba.

Strategi penjualan

Saya menjual semuanya dengan harga jual 3/4 harga beli. Bahkan ada yang setengah harga beli jika saya pikir barang tersebut sulit ditemukan pembelinya. Jika yang membelinya adalah orang yang saya kenal baik, maka saya memberinya kepercayaan untuk cicilan yang bebas diaturnya sendiri. Ada yang mengambil cicilan 1 tahun, ada pula yang mengambil cicilan 1.5 tahun. Dengan adanya cicilan ini, saya mesti menyediakan semacam dana buffer yang nantinya harus diganti oleh piutang cicilan ini. Dana ini dapat saya gunakan dengan segera untuk upgrade.

Kurang dalam 2 minggu penjualan, ditambah hasil penjualan spare part PC yang mau diupgrade, saya berhasil mengumpulkan dana sekitar 18 juta rupiah. Saya juga kaget dengan kalkulasi ini. Tapi saya hanya menggunakan sekitar 7-8 juta rupiah untuk upgrade PC. Selebihnya bisa masuk tabungan. Asyik kan?

Spesifikasi unit PC sekarang

Jika ditambahkan dengan nilai dari sebelum di-upgrade, totalnya Rp 16.301.000. Lumayan juga, tapi saya cukup senang dengan hasil ini.

Dari rig lama, pembelian 2020:

  • AMD Ryzen 5 3400G, Rp. 2.080.000
  • Zotac NVidia 1660 Ti AMP, Rp. 4.000.000
  • Nvme M2 SSD Intel 660P 512GB, Rp 1.507.000

Upgrade 2021:

  • Gigabyte B450 I Aorus Pro Wifi, Rp 2.158.000
  • RAM G.SKILL F4-3200C16D-16GFX FlareX 16GB (2x8GB) DDR4 3200Mhz, Rp. 1.363.000
  • Corsair - SF750 80 Plus Platinum 750 Watt SFX P, Rp. 2.668.000
  • CPU cooler Noctua NH-L9a AM4, Rp. 698.000
  • Geeek A50 Plus White ITX Case, Rp. 1.510.000
  • ID-COOLING NO-9215 92mm Slim Cooling Fan PWM, Rp. 231.000
  • Mini ITX Wifi & Bluetooth Antenna RP-SMA Female, Rp. 65.000
  • Audio Splitter Combiner, Rp. 21.000

Penampakan

Buku Belajar Komputer Tingkat Dasar 5 Tema 1

Puji syukur tim penulis panjatkan kepada Tuhan Yang Maha Esa yang telah memberikan rahmat dan karunia-Nya, setelah molor beberapa waktu akhirnya buku Belajar Komputer Tingkat Dasar 5 Tema 1 yang kami tulis hari ini bisa rilis.


Buku ini adalah lanjutan dari buku Belajar Komputer Tingkat Dasar 4 yang sudah terbit sebelumnya. Seperti pada buku sebelumnya, materi dalam buku ini juga masih mengusung tema belajar dan bermain secara menyenangkan.
Adapun beberapa materi dalam buku ini adalah:
  • Materi pada bab 1 berisi pelajaran geografi yaitu mengenal negara-negara di berbagai dunia, sehingga anak-anak dapat mengetahui nama benua dan negara di dunia. Di dalam bab ini juga berisi permainan tentang wilayah dalam berbagai negara di dunia.
  • Bab 2 berisi pelajaran huruf braille, yaitu huruf yang biasa digunakan oleh orang-orang tidak bisa melihat. Dengan menggunakan huruf braille, orang yang tidak bisa melihat bisa membaca. Di dalam bab ini juga dijelaskan sejarah singkat terciptanya huruf braille.
  • Bab 3 berisi pelajaran cara bermain catur untuk anak-anak. Di dalam bab ini dijelaskan pengetahuan dasar mengenai catur, notasi pada permainan catur, gerakan berbagai buah catur. Materi pelajar pada bab ini dapat dilakukan lewat permainan di komputer ataupun menggunakan perangkat catur asli yang tersedia.
 Untuk mengunduh buku digital Belajar Komputer Tingkat Dasar 5 Tema 1 silakan pilih salah satu tautan berikut:

Pembaca boleh menyebarkan buku versi digital ini ke masyarakat yang membutuhkan baik secara online ataupun offline, juga dipersilakan untuk membuat mirror di berbagai web atau server yang pembaca miliki.


-

Using Git For Windows With MSYS2

Developing software in Windows using GCC, Make, etc., is a little bit challenging, we have several choices, but I choose MSYS2.

The problem is, with the default Git from it repository is not quite friendly with Windows, in order to make this a little bit friendly we can use Git for Windows, to install it we can follow the steps from their GitHub:


https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper


Migrasikan Konten Django Lama ke Jekyll

Para pengembang BlankOn Linux saat ini telah menggunakan Jekyll untuk beberapa situsnya, salah satunya adalah laman http://blankon.id. Penulisan konten berbasis Markdown dan situs statis merupakan pilihan yang diambil setelah beberapa tahun sebelumnya para pendahulu menggunakan Django untuk sebagian besar website mereka. Konsekuensinya konten-konten website lama yang berbasis Django tersebut perlu...

Permainan Baru di GCompris bagian 1 (Keyboard Bayi)

Awal bulan Oktober 2020 lalu penulis membaca pengumuman di Millis GCompris bahwa tim pengembang akan merilis GCompris V 1.0 pada tanggal 17 November 2020. Dengan adanya rencana rilis tersebut maka Server GCompris akan dibekukan pada tanggal 15 s/d 17 November 2020.

Dengan adanya pengumuman tersebut maka Tim Penerjemah GCompris Indonesia bergerak secara cepat melakukan diskusi melalui Telegram.

Nah di sini ternyata saya salah baca atau memahami tanggal dan bulan.


Yang seharus tanggal tanggal 15 November saya bacanya 15 September.

Pada rilis GCompris V 1,0 ini terdapat perubahan dan perbaikan pada beberapa permaianan, contohnya adalah permianan Jelajahi Peternakan Hewan, Permianan Catur, Menghitung Benda, Pengelompokan. dan lain-lain.

 

Selain itu terdapat juga beberapa permaian baru pada GCompris V1.0, yaitu: Keyboar Bayi, Listrik Analog, Labirin Pemrograman, Belajar Digit, Belajar Pengurangan,dan Belajar Penambahan.


Pada post kali ini penulis membahas permianan bernama Keyboard bayi, sedangkan permainan baru lainnya akan penulis bahas pada post berikutnya


Terjemahan pada judul permainan ini masih keliru, yang lebih tepat adalah Keyboard anak.
Tapi bisa dimaklumi karena tim penerjemah melakukan penerjemahan secara langsung dari judul aslinya yaitu Baby keyboard.



Permainan ini bertujuan sebagai sarana belajar memahami berbagai tombol pada keyboard sekaligus pengenalan huruf dan angka untuk anak-anak pada usia dini.

Cara memainkannya adalah Tekan tombol apa pun pada keyboard sesuai keinginan.
Maka Huruf, angka, atau karakter muncul di layar sesuai tombol yang ditekan tersebut.

Jika yang ditekan tombol berupa huruf dan angka maka keluar suara  sesuai tombol yang ditekan.
Jika yang ditekan tombol selain huruf dan angka maka suaranya hanya bleep.


Rencananya permainan ini akan penulis masukkan pada Buku Belajar Komputer Dasar tingkat 0 Tema 3 yang sedang penulis kerjakan, atau bisa jadi dimasukkan ke tema 1 atau 2 edisi revisi.

Untuk yang tertarik dengan buku yang penulis rilis dapat mengunjungi tautan berikut => Unduh Buku Digital Gratis



The First Verbeek Nightly Build with Package That Build by IRGSH

Today we’re pleased to announce our first nightly build (or “jahitan”) with package that build by our in-house toolchain IRGSH. This build featured Pop Shell extension package which marks our important milestone. The package help us to prove that IRGSH works as intended to help us to bring the source code to binary package, to injected it to signed repository then wrapped to a bootable ISO.

You can download the ISO file here. You may consider to use zsync to decerase the size of download between builds.

In case you’re curious about what Verbeek will be looks like, we’ve packaged Pop Shell because we want Verbeek to be developer-first desktop. The release will be providing software and tools you need as developer/IT professional. This is the third BlankOn Linux release that will have specific user as target, after Meuligoe Minimalist and Sajadah. If you want to get update about the development, please simply follow the BlankOn Linux Twitter account and click Watch on our release repository.

EJBCA Beginner Guide: From CA to Certificate Enrollment

X509 is a complicated thing and EJBCA makes it easier to grasp. Eww you may find EJBCA is complicated as well. This post will guide you to specific case as example:

CA that can issuing certificates for high education instutution. High education institution as end user can signing PDF files for their student certification.

This post is not the best practice example but it can introduce you to how EJBCA works. Let’s go.

EJBCA Preparation on local environment

docker-compose.yaml:

version: '3'

services:
  db:
    image: postgres:13-alpine
    env_file: .env
    restart: always
    volumes:
     - ./data:/data

  ejbca:
    image: primekey/ejbca-ce:6.15.2.6
    env_file: .env
    restart: always
    ports:
      - 80:8080
      - 443:8443
    depends_on:
      - db

.env:

# EJBCA
TLS_SETUP_ENABLED=simple
DATABASE_USER=postgres
DATABASE_PASSWORD=kLTPk5Ty9K3JHykCS38YBHDTVwXkVCgjsQs7HaT8wwT5VcY5G54tMbSNt6uCEztM
DATABASE_JDBC_URL=jdbc:postgresql://db/postgres

# DB
POSTGRES_PASSWORD=kLTPk5Ty9K3JHykCS38YBHDTVwXkVCgjsQs7HaT8wwT5VcY5G54tMbSNt6uCEztM
PGDATA="/data"

Spin them up with docker-compose up -d --force-recreate. It’ll take some minutes until EJBCA is ready to serve you.

Some notes:

  • Add 127.0.0.1 ejbca to your /etc/hosts as the ejbca declared itself on ejbca hostname/domain.
  • Make sure you can access https://ejbca/ejbca/adminweb/ without problem.

Issuing Root CA

  • On EJBCA Admin Web interface, go to CA Functions -> Certificate Authorities.
  • On Add CA form, write your Root CA common name, e.g. AgunoRootCA, then click Create
  • You’ll be redirected to complicated form of issuing CA.
  • Leave the default values as is except for:
    • CA Serial Number Octet Size: 20
    • Validity: set it to 10y
    • Issuing Distribution Point on CRLs: Use
    • Default CA defined validation data: click all Generate buttons in this section, then change the localhost strings to ejbca.
    • Monitor if CA active (healthcheck): Activate
  • Then click Create button.
  • At this point, you have two CAs:
    • ManagementCA
    • AgunoRootCA

Issuing Intermediate CA

  • Do the same again as above except:
    • The CA name is AgunoIntermediateCA
    • Leave the default values but set some values as above and:
      • CA Certificate Data, Signed By: AgunoRootCA
  • At this point, you have three CAs:
    • ManagementCA
    • AgunoRootCA
    • AgunoIntermediateCA

Preparing Certificate Profiles

Any attempt of issuing new certificate will require a certificate profile that define what kind of certificate that will be created. Let’s assume that we want to create certificate profile for high education institutions and it will be used to signing ijazah. Let’s name it HIGHEDUINSTITUTION.

  • On EJBCA Admin Web interface, go to CA Functions -> Certificate Profiles.
  • At the end of the list, enter your profile name, HIGHEDUINSTITUTION, click Add
  • It’ll be added to the list, now click Edit button as we need to modify some values. IMPORTANT NOTE: If you want to multiple select some values, press and hold Shift button or the previous selected values will be loss.
  • Now please set some values on this field :
    • Available Key Algorithms: select ONLY RSA, we need to make it broadly compatible.
    • Available Bit Lengths: select ONLY 4096 bits
    • Validity or end date of the certificate: 5y
    • Extended Key Usage: Use, Critical, select ONLY PDF Signing
    • Available CAs: select ONLY AgunoIntermediateCA
  • Click Save button

Preparing End Entity Profile

Certificate Profile defines the technical aspects of the certificate. On the other hand, EEP defines the entity aspects that related to identity.

  • Go to RA Functions -> End Entity Profiles
  • On Add Profile form, type your profile name, e.g. HIGHEDUINSTITUTION (same as the certificate profile name), then click the Add button.
  • After it added to the list, click the item then click Edit End Entity Profile button.
  • You’ll be redirected to (again) a complicated form. Leave it as is but modify some values:
    • Password: Required
    • Other subject attributes: Remove all attributes
    • Default Certificate Profile : HIGHENDINSTITUTION
    • Available Certificate Profiles: select ONLY HIGHENDINSTITUTION
    • Default CA: AgunoIntermediateCA
    • Available CAs: select ONLY AgunoIntermediateCA
    • Default Token: P12
    • Available Tokens: select ONLY P12
  • Click save
  • At this point, you have three CAs, a configured certificate profile and a configured entity profile. You’re ready to enroll new certificate for education institutions.

Let’s try to issuing and enrolling a new certificate for education institution

  • On EJBCA Web Admin interface, go to RA Functions -> Add End Entity
  • On End Entity Profile field, select HIGHEDUINSTITUTION, the form will be adjusted according to our end entity profile configuration.
  • Enter your entity information, e.g.:
    • Username: ugmacid
    • Password: enter the password for enrollment
    • E-mail address administration@ugm.ac.id
    • CN/Common name ugmacid
  • Leave other values as is.
  • Click Add button.

Let’s enroll the certificate

  • Go to https://ejbca/ejbca/, this is the public interface of the EJBCA instance.
  • On Enroll section, click Create Browser Certificate
  • Enter the username and Enrollment code (password)
  • You’ll be asked for confirmation, click Enroll button
  • A P12 file will be downloaded to your computer, it’s protected by passphrase. Use the password as passphrase.

At this point, you may check the new issued certificate against the certificate chain.

Next post

I’ll write about authentication, roles and security on maintaining EJBCA instance.

Cara Menginstall Python 3.6 di Debian 9 (stretch)

Debian 9 (stretch) secara default membawa python2.7 (default) dan python3.5. Saya sedang melakukan instalasi aplikasi yang ternyata membutuhkan Python versi 3.6. Pada beberapa tutorial di internet, menyarankan untuk menggunakan repo debian testing. Namun saat tulisan ini dibuat, saya cek repo debian testing memiliki python versi 3.8, sedangkan versi tersebut ketinggian....

Mengunci Versi aplikasi di CentOS

Setelah catatan sebelumnya kita berhasil downgrade versi aplikasi di CentOS, ternyata saat kita lakukan yum update, aplikasi kembali dinaikkan versinya ke versi yang lebih baru. Tentunya hal ini menjengkelkan karena aplikasi project kita akan kembali error alias tidak jalan. Namun jangan khawatir, pada postingan ini kita akan membahas bagaimana cara...

Cara Downgrade Aplikasi di CentOS

Sebuah aplikasi yang ditulis oleh temen-temen developer terkadang hanya kompatibel dengan versi runtime tertentu pada bahasa pemrogramannya. Hal ini akan menuntut administrator agar dapat menyesuaikan dengan kebutuhan tersebut. Nah, catatan ini disimulasikan dijalankan di sebuah VM dengan sistem operasi CentOS 8. Catatan ini juga berdasarkan pengalaman penulis saat menangani sebuah...

Multi Machine Vagrant dengan Vagrantfile Tunggal

Vagrant merupakan sebuah tools yang saya gunakan untuk provisioning Virtual Machine, khususnya untuk environment lokal di laptop. Vagrant juga dapat digunakan untuk provisioning VM dengan beberapa provider, antara lain VirtualBox, VMware, Docker, Hyper-V, maupun custom. Saya sendiri menggunakan provider Libvirt :D Oke, salah satu alasan kenapa tulisan ini saya buat...

Cara Install Autoscaling GitLab Runner yang Hemat Biaya

Ngomong-ngomong soal GitLab tidak lepas soal CI/CD (Continuous Integration/Continuous Delivery/Deployment). Nah, kebetulan Di tempat saya bekerja menggunakan gitlab-runner. GitLab Runner merupakan salah satu fitur yang sangat bermanfaat untuk menjalankan CI/CD. Saya tidak akan menjelaskan apa itu CI/CD di sini (mungkin akan saya jelaskan di postingan yang lain). Hanya akan saya...

Menjalankan Vagrant Provider Libvirt di openSUSE Leap 15.2

Melihat pak Andi Sugandi menggunakan vagrant untuk menyediakan lab VM saat beliau mengajar, saya pun jadi penasaran. Karena provisioning VM menggunakan vagrant ini sepertinya mengasyikkan, terutama karena….. Nanti deh saya ceritain apa, dan mengapa ini penting saya utarakan. Apa itu Vagrant? Tampilan Website Vagrant Vagrant merupakan sebuah perangkat lunak yang...

Cara Install gcloud CLI di openSUSE Leap 15.2

Postingan kali ini akan sangat singkat, karena merupakan catatan yang dibuat untuk sekedar mendokumentasikan apa yang saya ketikkan saat memasang gcloud CLI di laptop saya. Sistem Operasi yang digunakan di laptop saya seperti yant tertulis di judul tulisan ini, yaitu openSUSE Leap 15.2. Sebelumnya, mungkin perlu juga saya tulisan apa...

openSUSE Leap 15.2 di Google Cloud Platform (GCP)

Sebagai pengguna openSUSE, saya kadang merasa penasaran apakah bisa saya menggunakan os ini di langit sebagai server. Yang saya maksud di langit di sini adalah Google Cloud Platform (GCP), karena saya juga pengguna produk google tersebut di beberapa proyek milik klien. Namun melihat daftar templat citra (image template) di Google...

Pi Zero sebagai Tukang Periksa (Bot)

Bojongbot - Pi Zero

Saya memasang beberapa cctv berbeda merek, baik yang berjenis ip cam maupun yang analog dengan dvr. Kesemuanya terhubung ke 1 server shinobi video yang pernah saya tulis di artikel sebelumnya. Nah, beberapa perabotan itu tentunya memiliki IP, dan ada beberapa yang suka ngambek, gak hidup. Di-ping juga gak respon. Agak susah kalau tidak mengetahuinya. Kapan hari ada insiden panci presto meledak, namun cctv di area dapur pas heng. Jadi tidak ketahuan prosesnya.

Setelah kemarin ngoprek-ngoprek ARM (lagi setelah sekian lama), saya jadi inget punya beberapa perabotan arm yang tidak kepakai, salah satunya pi zero. Ya sudah itu aja dimanfaatkan jadi mesin bot. Tugasnya cuma kirim ping ke beberapa perangkat yang ada di daftar, jika gak ngasih balikan, ngirim pesan ke telegram via bot telegram.

Kodenya ada di https://github.com/princeofgiri/bojongbot.

Bot beraksi

Ada beberapa yang nanya, kenapa gak pakai ESP32 aja? Jawabannya sebagai berikut:

  1. Saya belum pernah ngoprek ESP32, baru order, belum datang saat tulisan ini dibuat
  2. Memanfaatkan yang sudah ada, jadi tinggal pakai gak perlu beli-beli
  3. Saya sangat familiar dengan linux dan bash, jadi ndak ribet bahasa pemrograman lainnya

Kepinginnya sih nanti botnya jadi tambah pinter, kulkas di rumah sepertinya ada API, bisa diintip nanti-nanti.

LibreOffice 7.0 di Raspberry Pi OS

Setelah kemarin bikin video Armbian dengan LibreOffice 7.0 (https://www.youtube.com/watch?v=1rTrCVgGXfA) ngoprek disela-sela kesibukan masih berlanjut. Kali ini ngidupin layar 7 inch dengan perangkat raspberry pi buat mainan bocah dengan GCompris.

Di Raspberry Pi OS (dulu Raspbian), yang berbasis debian buster. Caranya cukup mudah, pasang flatpak, pasang libreoffice dari flatpak. Beres!

Eh tunggu dulu, belum beres. Karena menu aplikasi libreofficenya belum bisa muncul. Harus digosok dulu. Berikut cara nggosoknya:

  • Edit berkas

/etc/xdg/lxsession/LXDE-pi/desktop.conf

  • Di paling bawah, tambahkan

[Environment_variable] XDG_DATA_DIRS=/var/lib/flatpak/exports/share:/home/pi/.local/share/flatpak/exports/share:/usr/local/share/:/usr/share/raspi-ui-overrides:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/

  • Reboot

Udah deh!

LibreOffice 7.0 di Raspberry Pi OSLibreOffice 7.0 di Raspberry Pi OS

Unduh Buku Digital Gratis

Halaman ini sengaja penulis buat untuk kumpulan buku digital yang sudah penulis rilis dan bagikan gratis.
Silakan klik pada masing-masing judul buku untuk menuju link download



Cara menjadi Sponsor pada buku yang akan terbit


Server CCTV dengan Shinobi Video – Bag. 5, IP Cam Murah Meriah

Setelah liat-liat di situs perbelanjaan daring, saya menemukan satu kamera yang fiturnya cukup pas untuk disambungkan dengan Shinobi, harganya juga berkisar 250 ribu rupiah. Berikut fitur yang penting untuk digunakan:

  • Onvif
  • AUTO TRACKING
  • PTZ Rotate Pan Tilt 360
  • Ada sensor suara, sensor gerak dan pemberitahuan ke Hp

Mini CameraMini Camera

PTZnya juga berhasil tersambung dengan Shinobi. Onvif devicenya dikenali bikinan Eyeplus.

Server CCTV dengan Shinobi Video – Bag. 4, Menyambungkan dengan DVR

Saya memiliki satu set CCTV beserta DVRnya. Mereknya Nathans, sponsor dari kantor (PT SKK). Ini CCTV asli ndak pakai ribet, just work. Nah … PRnya adalah gimana caranya nyambungin ke Shinobi. Berminggu-minggu saya gak berhasil menemukan solusinya. Sampai saya menyerah.

DVRDVR

Sekitar 2 mingguan lalu, saya tiba-tiba nemu sebuah saran url rtsp dari internet. Dan saya coba beneran bisa. Berikut urlnya:

rtsp://192.168.0.3:554/user=admin&password=passwordmu&channel=1&stream=1.sdp?real_stream–rtp-caching=100

Silahkan sesuaikan alamat IP beserta akun yang ada di DVR Anda.

Data Diri Lengkap di Marketplace

Maraknya penjualan data yang dicuri dari marketplace sedikit banyak tidak lepas dari penggunanya juga, makanya sampai saat ini kalau ada notifikasi peringatan untuk melengkapi data diri (No KTP, KK, dll.) saya tidak melakukannya, termasuk dulu jamannya masih main di FJB Kaskus.

Di beberapa marketplace mensyaratkan kita harus melengkapi data diri tersebut agar akun kita bisa terverifikasi 100 %, tapi saya tetap tidak melakukan, biarlah akun saya tidak terverifikasi 100% tidak mengapa daripada data diri diperjual-belikan, resikonya sih calon pembeli yang belum begitu kenal sangsi dengan dengan reputasi toko online kita.

Segera ganti password dan PIN anda untuk mencegah kejadian yang tidak diinginkan

Satu lagi, jangan terlalu banyak membiarkan saldo kita di akun marketplace, lebih aman lagi kalau kita pindah ke rekening pribadi (walau tidak 100%).



Saatnya tarik saldo ah, kalau ada yang saldonya melimpah dan tidak punya rekening pribadi, saya tidak menolak jika anda mengirimnya ke rekening saya



Cara Install extensi redis di Azure App Service Linux

Pada proyek di salah satu klien di tempat saya bekerja, menggunakan layanan Azure app service untuk mendeploy aplikasi Laravel. Aplikasi tersebut membutuhkan ekstensi redis untuk dapat terhubung dengan cache service di azure yang berbasis Redis. Berikut langkah-langkah pemasangannya. Buka konsol KUDU https://<sitename>.scm.azurewebsites.net Pilih SSH pada konsol SSH, ketikkan perintah berikut...

Screencast OBS Studio ke Google Meet di openSUSE

Saat ini masanya, masa pandemi ini banyak yang melakukan pekerjaan dari rumah (“WFH”). Salah satu kebutuhan saat meeting secara daring adalah melakukan screencasting, atau berbagi layar. Catatan ini menjelaskan bagaimana cara melakukannya dengan OBS Studio dan Google Meet. OS yang saya gunakan di laptop adalah openSUSE Leap 15.1. Yang perlu...

Xcode Not Enough Disk Space to Install

I need to update my Xcode on my MacBook Air, it only has 128 GB Flash Storage, and it is hard to upgrade the storage, obviously it has limited free storage, so I need to free some spaces, deleting my old files.

But, even there is already 23 GB free storage, it keep complaining, not enough disk space.

After I had 26 GB free storage, I can continue the update.

Membuat CI/CD di GitLab CI

Sekarang saatnya saya akan membuat sebuah catatan tentang bagaimana kita akan membuat CI/CD (Continuous Integration & Continuous Delivery/Deployment) di GitLab. Ini merupakan contoh sederhana yang mungkin dapat Anda jadikan acuan jika Anda sama sekali baru dalam dunia CI/CD, khususnya di GitLab CI. Istilah-Istilah Penting Hal pertama yang ingin saya jelaskan...

Raise/Lower Hand on Zoom Cloud Meeting

Raise/Lower Hand on Zoom Cloud Meeting is a very useful feature.

During online meeting, or online class using Zoom, not all participant can talk at the same time, sometimes the host will mute all participants, when participant want to interrupt, or asking something, so they need to raise the hand.

It seems like not all Zoom user have Raise/Lower Hand icon on the main window, the easiest way to do so is using short cut, for Mac user, the shortcut is: `option + y`.


Install GitLab Runner dengan Ansible

Setelah kita selesai menyiapkan server GitLab di postingan sebelumnya ini dan/atau ini, selanjutnya akan kita setup server atau instance untuk digunakan sebagai Runner. Apa itu GitLab Runner? GitLab Runner merupakan aplikasi sumber terbuka yang digunakan untuk menjalankan job dan mengirim kembali hasilnya ke GitLab. Sebagai penghubung dengan GitLab CI, layanan...

Server CCTV dengan Shinobi Video – Bag. 3, Menggunakan IP Cam Publik

Bagaimana kalau mau belajar pemasangan shinobi namun tidak memiliki IP Cam? ada caranya kah?

Ada. Pasti Ada

Salah satu caranya adalah dengan menggunakan IP Cam publik yang berada di beberapa wilayah/negara. Daftarnya bisa didapat di http://www.insecam.org/. Tidak semua bisa digunakan, namun tentu saja ada yang bisa. Saya sendiri menemukan satu yang sukses digunakan. Tahapannya kurang lebih seperti ini:

  1. Cari salah satu kamera. Saya menemukan yang berada di Jepang. http://www.insecam.org/en/view/534370/.
  2. Ambil IP Addressnya, investigasi url-urlnya dengan iSpy agar bisa mendapat informasi lebih detil.
  3. Jika tanpa nomor 2, juga bisa, kebetulan kameranya support ONVIF, tinggal masukin alamat IP dan atur-atur dan coba-coba sampai pas
  4. Khusus ini, saya menemukan bahwa konfigurasi yang pas itu MJPEG.

IP Cam PublikIP Cam Publik

Selamat mencoba dan latihan untuk kamera yang lain. Banyak spot-spot bagus juga lho.

 

PS: CCTV Xiaomi Yi Max 02 1080p Outdoor Smart IP Cam ini ndak support ONVIF gak bisa diakses via rtsp jadinya.

Server CCTV dengan Shinobi Video – Bag. 2, Pemasangan Shinobi

Pemasangan Shinobi cukup mudah sekali, cukup menjalankan sebaris perintah dari root:

bash <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)

Selanjutnya tinggal mengikuti langkah-langkah yang ada di layar. Saya memilih mengambil dari branch development agar mendapatkan fitur-fitur terbaru sekaligus testing. Dokumentasi pemasangan secara lengkap bisa dibaca di sini.

Berikut hal-hal utama yang perlu dilakukan setelah pemasangan:

Peramban Firefox

Gunakan peramban Firefox. Karena peramban Chrome tidak mau bila ada https dan self sign. Juka untuk streaming beberapa video cctv. Firefox bekerja lebih benar dari pada Chrome. Enggak tau kenapa.

Masuk sebagai admin dan buat user

Kita perlu memasukkan url http://alamat-ip-shinobi-server:8080/super. User / Pass bakunya adalah admin@shinobi.video / admin. Dari halaman ini kita bisa membuat user baru untuk masuk ke dashboard shinobi server. Juga untuk mengganti password akun admin tersebut.

Super AdminSuper Admin

Shinobi Dashboard

Untuk masuk ke dashboard, buka peramban dan arahkan ke http://alamat-ip-shinobi-server:8080/ lalu masukkan username/password yang sudah dibuat tadi.

Menambahkan Kamera

Klik tombol + (Add Monitor). Di sini kamera disebut monitor. Lalu tinggal isikan parameter-parameter yang sesuai kamera. Saya mencoba sendiri dan ribet. Setelah beberapa kali percobaan, baru berhasil.

Menambah KameraMenambah Kamera

Ada cara gampangnya, melalui menu pojok kiri atas – ONVIF. Lalu isikan alamat ip dan klik tombol search. Secara pintar, shinobi bisa mendeteksi kamera dalam jaringan yang kombatibel ONVIF. Jika ketemu, akan ditampilkan deskripsi kamera, bahkan bisa tahu merek/modelnya. Lalu tinggal klik tombol bergambar 2 dokumen (seperti ikon duplicate).

Add Monitor - ONVIFAdd Monitor – ONVIF

Selanjutnya tinggal melengkapi/mengganti isian yang ditampilkan (sama dengan jendela Add Monitor). Tinggal disesuaikan saja atau langsung Save. Secara baku, kamera akan memiliki mode View Only. Kita bisa mengatur/mengganti modenya menjadi Record.

Dua Kamera/MonitorDua Kamera/Monitor

Power Video Viewer

Digunakan untuk melihat video yang sudah tersimpan terekam. Tombol ikonnya mirip seperti tag/point pada peta.

Video ViewerVideo Viewer

Seingat saya, Power Video Viewer ini yang tidak bisa di Chrome.

Dah itu dulu tulisan kali ini. Tulisan berikutnya saya akan jelaskan cara optimasinya.

 

*Featured image diambil dari http://getwallpapers.com/collection/hidden-leaf-village-wallpaper

Install GitLab dengan Ansible

Nah, kemarin sudah kita bahas instalasi GitLab secara manual di postingan sebelumnya. Kali ini saya akan tuliskan langkah-langkah instalasi GitLab dengan cara yang lebih simple, yaitu dengan Ansible. Ansible adalah sebuah alat otomasi yang dikembangkan oleh RedHat. Beberapa kata kunci yang melekat pada Ansible adalah “automation tool”, “configuration management”, “infrastructure...

Server CCTV dengan Shinobi Video – Bag. 1, IP Cam

Oprekan kali ini bermula dari lokasi proyek rumah yang kemalingan. Saat awal bangun, kemalingan genset, berikutnya beberapa minggu lalu, para tukang kemalingan handphone.

Saya memiliki cctv yang ada di rumah, subsidi dari Pak Bos yang memiliki perusahaan penjualan cctv. Yang sudah dipakai, sangat mudah dioperasikan. Just work. Namun kali ini sejak pandemi, saya kepikir untuk memanage cctv tersebut dengan linux, entah raspi atau pakai komputer-komputer spek rendah.

Sebelumnya, saya sama sekali tidak mengerti teknologi cctv beserta perabotannya. Namun sejak ngoprek ini, pengetahuan jadi bertambah. Awalnya hanya tau/nemu Shinobi Video saja, setelah itu bingung, harus bagaimana? cara koneksinya ke cctv bagaimana?

Dinamakan IP Cam, tentunya memiliki IP, umumnya, dari pabrikan diatur menjadi dhcp client. Sehingga dapat IP otomatis dari router/server dhcp. Saya dipinjami IP Cam oleh Pak Iwan Tahari. Dalam kardusnya tidak ada informasi apapun (buku manual juga tidak ada). Merek/Pabrikan pembuatnya juga tidak tahu. Jadi dengan coba-coba colokin aja ke router/modem yang ada di rumah, lalu diintip dapat IP berapa, nah itu dia tinggal dipanggil IPnya di peramban.

IP CamIP Cam

Setelah sukses dapat IP, saya punya 1 komputer yang rencananya jadi server cctv dan sudah ada dhcp servernya, saya sambungkan IP Cam tersebut ke komputer . Dapat IP 10.42.0.151. Tinggal dipanggil di peramban dan muncul antar muka web si kamera.

Antarmuka WebAntarmuka Web

Hal utama yang perlu dilakukan adala mengatur zona waktu/waktu, agar nantinya saat dipakai, timestamp yang ditampilkan sesuai. Hal berikutnya adalah pengaturan kualitas gambar. Kamera ini sanggup merekam video/gambar dengan codec H265 dan H264, juga bisa merekam audio serta pengaturan fps dan kualitas. Saya mengatur kualitas medium dan codec H264 (karena H265, rata-rata browser tidak mulus menampilkannya).

Selanjutnya, bagaimana cara menguji bahwa kamera tersebut bisa digunakan? Saya cukup bingung dengan pertanyaan sendiri. Mencari-cari, akhirnya menemukan jawaban, bahwa bisa menguji dengan menggunakan VLC. Tinggal memasukkan url rtp/udp melalui menu Open Network. Nah bagaimana mendapatkan urlnya? macem-macem jawabnya dan bingung. Namun saya menemukan aplikasi pembantu, yang bisa memandu kita.

Aplikasinya bernama iSpy, opensource, adanya di OS Windows saja. Cara penggunaannya cukup mudah, bisa mencari berdasarkan IP yang kita masukkan atau dia mencari melalui jaringan yang ada. Setelah itu dia akan memberikan info ke kita daftar url yang bisa digunakan.

iSpyiSpy

Ada beberapa format yang perlu diperhatikan:

  • ONVIF, ini format standar IP Cam, jika bisa ini, dengan Shinobi bisa otomatis dalam pendeteksiannya.
  • RTSP, catat url rtsp yang diberikan, di atas contohnya rtsp://ip:8554/live/ch00_0

VLC dengan rtspVLC dengan rtsp

Setelah sukses tampil di VLC, kita bisa melanjutkan pemasangan Shinobi Video.

Install GitLab di Ubuntu 18.04

Setelah sekian lama, saya merasa perlu memerbarui konten blog ini. Kali ini saya akan menulis ulang panduan instalasi GitLab di Ubuntu 18.04 dalam Bahasa Indonesia. Dokumentasi resminya dapat langsung diakses melalui halaman ini. Di sana cukup singkat dan mudah dipahami. Namun saya menambah beberapa cuil penjelasan tambahan berdasarkan hasil praktek...

Membuat VM dengan Ubuntu Cloud Image di KVM/virsh

PERINGATAN, Aku akan mengambil harta karunmu. Eh, bukan. Kalo disebut tutorial sebenarnya enggak juga, postingan ini lebih ke catatan pribadi. Dan mungkin akan banyak yang sulit dipahami, terutama jika pembaca belum pernah menggunakan Linux, atau belum pernah menggunakan virsh. Namun, saya akan tetap menulikan ini sebagai “tutorial” yang mungkin akan...

Pasang ulang Weibu F3C – Endless Mini PC (unreleased)

Saya mendapatkan komputer ini dari Baris, CEO Endless Solutions jaman saya masih jadi ambassador pada 2017. Sudah terpasang Endless OS dan berfungsi dengan baik. Beberapa hari ini saya memutuskan untuk mengganti OSnya dengan OS apapun yang memungkinkan.

Pengujian pertama dengan openSUSE Tumbleweed, pemasangan berjalan mulus, masuk desktop agak kacau dikarenakan layar HDMI dianggap sebagai layar extended. Jadi harus mengarahkan kursor yang tepat dan mengatur ulang layar beserta resolusinya. Setelah masuk desktop, wireless tidak bisa digunakan. ini sudah sesuai prediksi. Pasang firmware non-free juga tidak membuahkan hasil.

Pengujian berikutnya dengan Ubuntu 20.04 yang masih Beta. Hampir sama, perbedaannya hanya si Ubuntu sedikit lebih pintar mengenali layar dari pada openSUSE. Namun tetap perlu mengatur resolusi layarnya. Wireless juga sama-sama tidak bisa digunakan walaupun sudah memasang firmware non-free.

Berikutnya nyari firmware yang dipakai Endless OS, nemu di github https://github.com/endlessm/linux-firmware. Coba dipasang … jreng, tetep gagal. Karena masih penasaran, saya unduh iso Endless OS terkini, dan install lagi. Selanjutnya ambil /lib/firmware untuk dibandingkan, ternyata ada sedikit (bisa dibilang banyak sih) tambahan dari yang ada di github. Saya rangkum di https://lumbung.mycoop.id/ahmadharis/linux-firmware/commit/ee4aec2c50e82a06861e2b166814d418e3d5046b. Setelah dipasang, reboot, tetep gak mau.

Baca-baca dmesg, terus guling-guling, nemu titik terang untuk ambil dari https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree/firmware-brcm80211_20161130-3+rpt3_all.deb terus dibongkar. Dicomot yang brcmfmac43455. Saya rangkum di https://lumbung.mycoop.id/ahmadharis/linux-firmware/commit/1c1f19900b2399ce123dd5e5d2978aa6ba21e397.

Dicoba di Ubuntu 20.04 sukses. Di openSUSE Tumbleweed pun demikian.

openSUSE TumbleweedopenSUSE Tumbleweed

 

Ubuntu 20.04Ubuntu 20.04

Macbook Jadul dengan openSUSE Tumbleweed

Jadi kapan hari menjenguk duo R, dan keinget kalau ada “harta” lama yang gak dipakai. Jadinya saya minta dan dicoba dihidupkan. Macbook2,1. Laptop jaman Pak Beye kata teman saya.

Macbook2,1Macbook2,1

Ini komputer cukup nyusahin. Kalau pakai MacOS X mentok di Lion. Walhasil gak bisa ngapa-ngapain, wong banyak aplikasi ndak support. Boot usb linux juga ndak mau, gak kayak Macbook keluaran baru yang mau boot linux. Dulu masang ubuntu lewat media CD. Berhubung sudah gak punya CD, alhasil menggunakan segala cara agar bisa boot. Cara termudah adalah memasang ubuntu dari komputer lain, lalu pindah disknya ke macbook jadul tersebut.

Bagaimana dengan OS Linux lainnya? susah … gak bisa kepasang. Kesimpulan akhir, karena grub yang terpasang di ubuntu itu grub-pc i386 (walaupun pakai arch 64 bit). Jadi yang mulus terpasang pertama kali adalah ubuntu.

Selanjutnya usaha agar memasang openSUSE Tumbleweed. Berbagai cara sudah digunakan, ketemu kesimpulan cara yang mujarab sebagai berikut:

  1. Pasang opensuse (boot legacy, jangan uefi) pada disk (usb flashdisk) lain dengan komputer lain.
  2. Sediakan partisi kosong ext4 di macbook jadul tersebut.
  3. Salin isi usb flashdisk pada nomor 1 ke dalam partisi ext4 tadi. Salin dengan opsi -rapv biar kebawa semua atribut dan permission berkasnya.
  4. Uji dengan chroot, kalau mulus berarti sudah benar.
  5. Ubah fstab, sesuaikan dengan uuid yang baru, pindah motherboard/komputer akan membuat beda uuid.
  6. Edit grub di ubuntu, sesuaikan.

Ribet kan? tapi seru, buat nambah kesibukan selama masa diam di rumah.

Pergi ke FOSDEM 2020

Ini nulisnya telat banget, juga males nulis banyak karena udah telat. Intinya sih pingin pamer kalau berhasil pergi ke FOSDEM 2020 di Belgia. Dan seru-seruan bersama teman-teman TDF/LibreOffice.

TDF Board & MCTDF Board & MC

 

Biar kayak orang-orangBiar kayak orang-orang

 

Konser BrexitKonser Brexit

 

Bawaan balik ke kampungBawaan balik ke kampung

Foto lainnya masih banyak sih, tapi ndak minat ditaruh di sini. 🙂
Perjalanan ini ditanggung sepenuhnya oleh The Document Foundation (kecuali pembelian oleh-oleh).