Monday, December 31, 2018

Microsoft Bundel Visual Studio Code dengan Anaconda

Microsoft Bundel Visual Studio Code dengan Anaconda - CodePolitan.com

Untuk semakin mendekatkan developer tools buatannya kepada para data scientist, Microsoft menjadikan Visual Studio Code (VS Code) sebagai bagian dari distribusi Anaconda Python.

Anaconda merupakan sebuah distribusi Python yang artinya ia memiliki bahasa dan semua pustaka yang dibutuhkan oleh seorang data scientist tanpa perlu melakukan banyak pengaturan secara manual. Di dalamnya, Anaconda sudah termasuk:
  • Core bahasa pemrograman Python
  • Lebih dari 100 pustaka Python
  • Sebuah package manager bernama conda untuk mengupdate dan memasang pustaka tambahan (seperti apt untuk Ubuntu)
VS Code bisa dipasang bersamaan dengan Anaconda dan memiliki fitur-fitur khusus yang akan membantu pekerjaan pengguna distribusi Python ini.

Dengan memberikan dukungan khusus bagi Anaconda yang sudah memiliki lebih dari enam juta pengguna aktif, Microsoft semakin mendekatkan dirinya kepada Python pada umumnya dan khususnya pada komunitas data scientist. Sebelumnya, Microsoft juga telah merilis ekstensi Python untuk Visual Studio Code (yang resmi) serta memberikan dukungan Python di Azure machine Learning Studio dan SQL Server.

Sumber: Microsoft


Mudah Membuat Blog dari Terminal dengan Hugo Bagian 2: Deploy Blog Hugo di Netlify

Mudah Membuat Blog dari Terminal dengan Hugo Bagian 2: Deploy Blog Hugo di Netlify - CodePolitan.com

Beberapa hari yang lalu, kita sudah membahas bagaimana membuat blog Hexo dengan mudah melalui terminal. Blog yang sudah kita buat belum bisa dikunjungi orang karena masih di komputer lokal. Maka sekarang, kita akan belajar bagaimana meng-online-kan blog ini sehingga dapat ditemukan oleh orang lain. Disini penulis akan menggunakan layanan Netlify.

Menyiapkan Netlify

Pertama kita perlu mendaftarkan sebuah akun. Buka app.netlify.com, lalu buat akun baru melalui salah satu cara yang disediakan.


Setelah berhasil masuk, dihalaman pertama klik tombol New site from Git.


Lalu, Netlify akan memberikan daftar langkah yang harus kita selesaikan. Untuk memudahkan disini, penulis memilih GitHub. Klik tombol GitHub dan akan muncul jendela baru. Dijendela yang baru ini, Netlify meminja ijin untuk terhubung ke akun GitHub kita. Klik tombol Authorize netlify.

Dijendela berikutnya, kita diminta untuk memilih repositori GitHub yang berisi blog Hugo. Oleh karena itu, unggah dulu kode kita ke GitHub sebelum melanjutkan. (Pembaca penulis asumsikan sudah tahu caranya bagaimana mengunggah kode ke GitHub).


Selanjutnya kita diminta untuk menentukan branch mana yang akan dipakai. Kita pakai branch utama alias master saja. Lalu untuk Build command isikan dengan hugo dan Public directory dengan public.


Klik Deploy site, tunggu proses building Netlify selesai dengan sempurna. Jika halaman Overview sudah tampil sebagai berikut, artinya proses deploy berhasil dengan baik.



Blog Hugo kita bisa dilihat lewat url yang di generate oleh Netlify. Kalau milih penulis ada di https://sad-murdock-dfcbde.netlify.com

Penutup

URL yang di generate oleh Netlify tentu kurang baik karena terlalu panjang dan sulit dihafal untuk dijadikan alamat utama. Oleh karena itu, di artikel selanjutnya kita akan belajar bagaimana mengarahkan custom domain untuk menggantikan URL dari Netlify.

Sumber : CODEPOLITAN

Sunday, December 30, 2018

Mudah Membuat Blog dari Terminal dengan Hugo Bagian 1

Mudah Membuat Blog dari Terminal dengan Hugo Bagian 1 - CodePolitan.com

Pembaca pastilah mengenal Wordpress sebagai sebuah produk yang dipakai untuk membuat blog. Seiring dengan berjalannya waktu, Wordpress menjelma lebih dari sekedar mesin blog. Ia bisa dipakai untuk emmbuat website e-commerce, forum, situs tanya jawab, dll. Karena sistemnya yang cukup besar dan kompleks, untuk sekedar sarana untuk mempublikasikan tulisan Wordpress cukup merepotkan. Agar bisa jalan di server sendiri, kita juga mesti menyiapkan hosting untuk sistem PHP dan MySQL sebagai databasenya.

Karena alasan itulah banyak orang mencoba mengembangkan sistem bernama static site generator (SSG). Cara kerjanya, kita menulis konten mentah (biasanya dalam file Markdown) lalu SSG akan membuatkan file-file HTML, CSS, JavaScript secara otomatis. Yang kita publikasikan adalah file-file statis tersebut (karena itulah dinamakan static site generator).

Sistem ini tidak mengharuskan kita mengatur sistem backend seperti PHP dan MySQL karena yang kita miliki hanyalah file-file HTML biasa. Dengan ini, website yang dihasilkan oleh SSG relatif lebih cepat karena hanya terdiri dari file-file HTML biasa tanpa melakukan baca-tulis ke dan dari database. Meski fitur ini bisa dilihat sebagai kelebihan, namun juga bisa dianggap sebagai kekurangan. Situs-situs statis seperti ini kurang bisa membuat sistem yang dinamis.

Memasang Hugo

Disini penulis mencontohkan dari Linux Ubuntu 17.10. Contoh di sini bisa diaplikasikan di hampir semua sistem turunan Debian dan Ubuntu. Untuk distro lain tinggal menyesuaikan dengan caranya masing-masing. Pengguna Mac OS dan Windows bisa menggunakan brew dan chocolatey.

Pertama, unduh dulu file hugo dari sini. Pilih rilis yang paling sesuai. Karena penulis memakai Ubuntu 17.10, maka penulis mengunduh hugo_0.36_Linux-64bit.deb.

Setelah selesai mengunduh, masuk ke folder Downloads dan pasang hugo dengan perintah:
$ cd Downloads/
$ sudo dpkg -i hugo_0.36_Linux-64bit.deb
Jangan lupa untuk menyesuaikan nama folder juga nama file yang diunduh.

Untuk memastikan bahwa hugo telah terpasang, jalanka perintah berikut:
masgan@lobothijau:~/Downloads$ hugo version
Hugo Static Site Generator v0.36 linux/amd64 BuildDate: 2018-02-05T15:22:28Z

Membuat Website Baru dengan Hugo

Karena Hugo telah terpasang, selanjutnya, kita perlu membuat website baru dengannya. Pilih folder utama tempat menyimpan file-file website Hugo. Penulis memilih folder Projects di direktori /home.
$ cd ~
$ cd Projects
$ hugo new site lobothijau
Ganti lobothijau dengan nama blog baru yang diinginkan.


Struktur utama sistem Hugo adalah sebagai berikut:
lobothijau/
├── archetypes
│   └── default.md
├── config.toml
├── content
├── data
├── layouts
├── static
└── themes
  • archetypes: adalah tempat pendefinisian komponen seperti tag, kategori, juga tipe artikel seperti tutorial, atau yang lain.
  • config.toml: adalah konfigurasi yang mengatur nama website, bahasa, url, dan data lain.
  • content: adalah tempat menyimpan file-file konten website (file mentahnya/Markdown-nya).
  • data: adalah tempat menyimpan data seperti konfigurasi lokalisasi, data sosial media, disqus, dll.
  • layouts: adalah tempat menyimpan template tampilan website yang dipakai Hugo.
  • static: adalah tempat menyimpan file static yang dihasilkan oleh Hugo (file yang akan dilihat oleh pengunjung).
  • themes: adalah tempat menyimpan tema-tema yang diunduh dari Github atau tema yang kita buat sendiri.

My First Post

Mari kita coba membuat satu postingan baru di website Hugo ini. Perintah untuk membuat postingan baru adalah sebagai berikut:
$ hugo new post/coba-coba-ah.md
/home/masgan/Projects/lobothijau/content/post/coba-coba-ah.md created
Perintah di atas akan membuat file baru bernama coba-coba-ah.md di folder content/post. Coba buka dengan editor teks favorit pembaca.
---
title: "Coba Coba Ah"
date: 2018-02-10T11:35:30+07:00
draft: true
---
Bagian yang ada diantara dua --- dinamakan front matter. Apa itu front matter?

Front Matter

Front matter adalah konfigurasi yang mengatur data sebuah postingan. Misalnya, ia menentukan postingan kita memiliki judul apa, dibuat tanggal berapa, statusnya apakah masih draft atau sudah di publish, dll. Setiap kita membuat file postingan, ia secara otomatis akan muncul. Darimana munculnya? Dari file archetypes/default.md:
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
Kita tak perlu menyentuh isi file ini. Pengaturan bawaannya sudah mencukupi untuk kebutuhan blog kita. Sekarang kita selesaikan isi coba-coba-ah.md menjadi (isi saja sesuai keinginan pembaca):
---
title: "Coba Coba Ah"
date: 2018-02-10T11:35:30+07:00
draft: false
---

# Tenuit lenta alis tum sanguine verus inde

## Qualia modo mihi Stymphalides furor ac adulantes

**Lorem** markdownum retinebat. Quod quem Atlas inposuit turaque erat.

Iram quod, ululatibus **molimine** utque, occurret et humus potitur Colchis
manant; visa omnia generi duxit fallaci. Similisque repente valle nubila qua
Inachis secura, nisi Oriente amans domus, adsueta. Ab **litus oculos**, iam,
saevit, superabat cum violentam et possent inritus aera color est totidem iussa,
ramos. Vota diversa! Tutus matri ferrum corpus, et mittit victum.

## Est Phoebus mortalia subit

Conpagibus positi declivis mirum et ignis. Ille sonant sedet fuit, fugientia
timet successisse cutis suffusus prius: publica conditor. Unda tantum.

## Est essent corpore

Argumenta colerent, armat erat pariter differt *Phoebi* defuit si et. Potest
magis quae aries culpa! A [prodidit habet](http://per.io/imago-moriens) excipit,
socii sagax et pompae aspera, surgit. Somnus prodet sub [enim pertimuit
nulla](http://www.letovidetur.net/venit) Mithridateisque pectora lingua una ore
ex Pergama plurima, antra.

## Tempore vicerat poena

Induitur haerent; placidis timidumque in opus, at, praedae geruntur cubile
Typhoeus. Vento pectore tutus vipereis
[mittit](http://www.sonuit-et.net/etiam-mane.html), rate tellus mitis;
furibundus formae scylla. Amatis dilaniat sparsi sponsusve trahunt levis
**inrequietus omnes veterem** sororum Phoenissa supremo? Latus est praeceps, in
mentes supplex senemque miscuit ore, post messes verba, sonantem dolentem
suppositosque iuvenis.

## Gravitas laborum est pennae posito Alcidae iugulo

Ora et fluxit lacrimas dum diligis sacra. **Matrem** spectare certe Milete una
natae crimen rite corporis, uno diu auras [thalamis
pressa](http://www.meae.org/requiram-antiquam) et, bracchia.

- Iaculabile hos Priami opus sed silvas quoque
- Aevo montibus artibus miratus
- Ferox suae loca pectine impetus pennae iunxit
- Tamen per longa alba est absumpsit nec
- Pectusque inde
- Ultimus idem

*Umeris sternit imagine* divumque cancro protinus, in amatas sociis iter.
Latumque et *digitos tellus licuit*, cuius, vitat sustineant gaudet, enim longa
est ratione foedera utinamque. Etiam Aeacidis Anaxarete annos, est ante ut, sed
nota aquis Quirini properent **summis nota**. Ait non, da movit hospes
cohaeserat tenebat mare, hoc?
Sistem penulisan di Hugo menggunakan Markdown, jadi silahkan kenali dulu aturan-aturan penulisan menggunakan Markdown. Lalu jangna lupa untuk mengganti nilai draft menjadi false jika sudah selesai menulis agar bisa ditampilkan (postingan nilai draft true tidak akan dimunculkan di halaman depan).

Mulai Server Hugo

Oke, dari tadi kita belum melihat bagaimana tampilan website yang dibuat dengan Hugo. Mari kita lihat dengan memulai dulu servernya:
$ hugo server
                   | EN  
+------------------+----+
  Pages            |  4  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     |  0  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

Total in 23 ms
Watching for changes in /home/masgan/Projects/lobothijau/{content,data,layouts,static}
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
Dari pesan yang muncul, kita bisa lihat bahwa server Hugo ada di http://localhost:1313/. Tapi saat kita buka ternyata masih blank. Kenapa? Hal ini karena kita belum memilih tema.

Memilih Tema

Memasang tema untuk Hugo sangatlah mudah. Kita cukup mengunduh tema-tema yang ada di https://themes.gohugo.io/ ke dalam folder themes. Di sini penulis akan memasang tema Hello Programmer karya Bang Donggeun.
$ cd themes/
$ git clone https://github.com/lubang/hugo-hello-programmer-theme.git
Cloning into 'hugo-hello-programmer-theme'...
remote: Counting objects: 214, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 214 (delta 3), reused 12 (delta 3), pack-reused 198
Receiving objects: 100% (214/214), 586.54 KiB | 339.00 KiB/s, done.
Resolving deltas: 100% (90/90), done.
Selanjutnya, kita akan aktifkan tema ini lewat file config.toml:
baseURL = "http://example.org/"
languageCode = "en-us"
title = "My New Hugo Site"
theme = "hello-programmer"
Perhatikan baris yang terakhir. Baris itulah yang mengaktifkan tema yang tadi sudah diunduh. Setiap tema biasanya memiliki konfigurasi tertentu, jadi silahkan cek halaman tema masing-masing untuk melihat opsi apa saja yang harus dibuat.
Selanjutnya, jalankan lagi server Hugo dan coba akses link yang tadi.


Yes, blog Hugo kita sudah bisa jalan dan tinggal merapikannya saja. Sekali lagi, cek halaman masing-masing tema untuk mengetahui konfigurasi apa saja yang perlu dilakukan.

Penutup

Kita baru selesai melakukan konfigurasi hugo untuk komputer lokal. Tentu saja, orang lain belum bisa menemukannya di Internet. Di artikel selanjutnya kita akan belajar bagaimana meng-online-kan blog yang sudah kita buat ini.

Sumber : CODEPOLITAN

Mencegah Android Studio Membersihkan Pesan Log Saat Crash

Mencegah Android Studio Membersihkan Pesan Log Saat Crash - CodePolitan.com

Pembaca yang pernah membuat aplikasi Android pasti sering mengalami kasus saat kita ingin melihat pesan error di Logcat, tapi pesan tersebut tiba-tiba menghilang karena kita memilih OK di dialog crash. Untuk melihat pesan tersebut kita harus menjalankan aplikasi lagi, melakukan hal yang sama dengan yang sebelumnya kita lakukan baru bisa melihat pesan error yang tadinya menghilang. Terkadang error yang terjadi karena hal-hal yang tidak bisa kita prediksi atau harus melalui beberapa tahapan baru terjadi sehingga akan cukup merepotkan jika tiba-tiba Android Studio membersihkan pesan error.


Perilaku ini bisa kita ubah dengan mengatur Filter Configuration untuk jendela Logcat. Di sebelah kanan jendela Logcat, klik dropdown yang ada lalu pilih Edit Filter Configuration:


Di jendela baru yang muncul kita cukup menuliskan nama package di kolom Package Name dan memberikan nama Filter Name (sesuai keinginan):


Semoga tutorial singkat ini membantu pembaca yang mengalami kesulitan yang sama dengan penulis.

Sumber : CODEPOLITAN

Phaser 3, Framework Game HTML5 Jaman Now

Phaser 3, Framework Game HTML5 Jaman Now - CodePolitan.com

Phaser merupakan salah satu framework game HTML5 paling populer saat ini. Framework yang satu ini tersedia secara gratis, memiliki komunitas yang besar, performa yang cepat, ditambah dukungan plugin yang membantu proses pembuatan game. Game yang dihasilkan pun dapat di kompilasi ke iOS, Android dan berbagai sistem lain.

Setelah proses pengembangan yang sudah cukup lama, Photon Storm akhirnya merilis Phaser 3. Sempat akan berganti nama menjadi Lazers karena menghindari masalah copyright, Phaser 3 akhirnya tetap dipakai karena dorongan dari komunitas. Rilis Phaser kali ini memiliki dua versi: Phaser 3 dan Phaser CE - Community Edition. Apa bedanya?


Phaser 3 adalah versi terkini dengan perubahan yang cukup besar dan tidak backward compatible dengan Phaser 2. Oleh karena itu untuk tetap mendukung developer yang memakai Phaser 2, Phaser CE diluncurkan sebagai penerus Phaser 2 dimana pengembangannya dilepas ke komunitas.

Perjalanan dalam proses pengembangan Phaser 3 dapat pembaca ikuti lewat developer log berikut. Disini pengembangnya menuliskan update seputar proses pengembangan. Selain berbagi lewat developer log, Phaser juga memiliki newsletter bernama Phaser World dengan konten yang lebih lengkap termasuk highlight game yang dibuat dengan Phaser, link tutorial, juga informasi lain seputar dunia game development khususnya yang menggunakan HTML5.



Phaser sudah memiliki komunitas yang cukup besar. Kita bisa bergabung lewat forum html5gamedevs, StackOverflow, Slack, bahkan Discord.
Untuk mendapatkan informasi terkini tentang Phaser 3 dan komunitasnya, ikuti akun Phaser di Twitter, kunjungi situs resminya di phaser.io, dan tentu saja laman GitHub-nya.

Sumber : CODEPOLITAN

Saturday, December 29, 2018

Mengapa Developer Menyukai Node.js?

Mengapa Developer Menyukai Node.js? - CodePolitan.com

Beberapa bulan yang lalu, RisingStack mengadakan survei untuk mencari tahu untuk apa Node.js dipakai dan mengapa developer masih memakainya. Tujuan lain dari survei ini ialah untuk mengetahui masalah apa yang paling sering dihadapi developer saat memakai Node, topik yang cukup jarang dibahas. Mereka juga menanyakan dimana tempat men-deploy aplikasi Node, apa teknologi front-end pilihan mereka, juga database apa yang dipakai sebagai tandem Node. Berikut ini daftar pertanyaan yang diajukan:
  1. What do you like most about developing with Node.js?
  2. What are you using Node.js for?
  3. What difficulties do you face with your production environment?
  4. What's the hardest thing for you to get right with Node.js at the moment?
  5. What Node.js topics are criminally underexplained in your opinion?
  6. Where do you deploy your Node.js applications?
  7. Which front-end technology do you plan to use in 2018?
  8. Which kind of databases do you plan to use in 2018?
  9. Which flavor of JavaScript do you use?
Hasilnya, ada 539 developer yang membagikan pengalaman mereka melalui survei ini.

Yang Paling Disukai Dari Node.js

Berikut ini beberapa jawaban yang diberikan oleh developer atas pertanyaan apa yang paling disukai saat mengembangkan aplikasi dengan Node.js?
  • Node.js memiliki performa yang sangat baik sehingga membuat saya menjadi sangat produktif.
  • Ringan untuk melakukan development dilingkungan enterprise, ditambah 400.000 lebih paket npm yang sudah tersedia.
  • Front-end, back-end, dan tester menggunakan bahasa yang sama.
  • Bisa melakukan pengembangan dengan produktif baik di backend maupun di frontend tanpa harus pusing karena sintaks yang berbeda. Semua menggunakan JavaScript dan cepat untuk membuat prototipe.
  • Bahasa yang sama di klien dan server; JavaScript kondusif untuk melakukan functional programming; TypeScript bisa bekerja dengan baik bersama node; memiliki i/o non blocking.
  • Menyenangkan, membawa angin segar dibandingkan php.
  • Mudah sekali menulis kode di Node.js. Kita bahkan bisa membacanya seperti bahasa manusia.

API, Backend/Server dan Aplikasi Web

Saat menanyakan developer apa yang mereka buat dengan Node, jawabannya bisa memberikan gambaran yang cukup jelas.

Jawaban yang diberikan sebetulnya cukup beragam, tapi sebagian besar menulis bahwa mereka membuat REST API atau backend service dengan Node.js. Selain itu, aplikasi web, microservices dan website juga cukup sering di sebut.
Kasus lain yang juga disebut:
  • Membuat aplikasi CLI dan build tools,
  • Menulis aplikasi mobile & backends aplikasi tersebut,
  • Membangun sistem manajemen,
  • Scripting & Automation,
  • Rendering React Apps,
  • Internet of Things,
  • Remote Systems Monitoring,
  • Writing Middlewares,
  • Authentication,
  • Creating Workers

Kebanyakan Developer Node.js Mengalami Masalah Performa dan Keamanan di Production

RisingStack menanyakan kesulitan yang dialami di lingkungan production. Kali ini ada beberapa kategori yang bisa dipilih.
Dari jawaban yang diberikan, kesulitan yang banyak dipilih adalah performance monitoring, security, dan improving performance. Deployment, scaling dan maintenance juga banyak dipilih. Sepertinya downtimes & networking tidak menyulitkan.


Asynchronous Programming dan Security, Hal yang Paling Sulit Dilakukan

RisingStack juga menanyakan apa yang yang paling sulit dilakukan dengan benar di Node.js saat ini?
  • Asynchronous: Asynchronous Programming & Behaviour, Async/Await, Async Patterns, Async Hooks.
  • Clean Coding: Code Quality, Code Maintenance / Organization / Management
  • Performance yang dimaksud adalah performance monitoring and improving.
  • Module: mencari modul yang cocok, menjaga dependensi tetap up-to-date, package security & sedikitnya pustaka yang dimaintain dan tidak buggy.
  • Testing: termasuk unit testing & end-to-end testing.
  • Monitoring: masalah-masalah yang menyangkut performance monitoring, tracing & logging.
  • Structuring: umumnya terdapat jawaban seputar planning & structuring complex, scalable architectures.
  • Processes: multithreading, parallel-processing, multiprocessing & handling child processes.
  • Promises: promise patterns, promise driven development, proper use of promises.
  • Dependency: umumnya tentang upgrading, mengurangi jumlah dependensi dan mengelolanya.

Keamanan, Topik yang Paling Underexplained

Underexplained disini maksudnya adalah topik-topik yang jarang dibahas padahal memiliki kepentingan yang krusial.

AWS Menjadi Juara di Node.js

Mayoritas developer menjawab AWS sebagai sistem pilihan mereka untuk men-deploy aplikasi Node.js. Mengungguli hampir dua kali lipat dari posisi kedua, Heroku.

React Menjadi Teknologi Frontend Pilihan

Sepertinya React memenangkan pertempuran front-end framework dikalangan developer Node. Sama seperti AWS, React mengungguli posisi kedua (Angular) dengan cukup telak.

MongoDB Menjadi Database Pilihan

Untuk database, MongoDB menjadi pilihan utama. Disini, MongoDB pun mengguli lawan-lawannya dengan cukup telak. Sementara itu, untuk posisi dua sampai empat hanya memiliki perbedaan 5% yang diperebutkan antara Redis, PostgreSQL, dan MySQL.

ES Next Paling Banyak Dipakai

Diantara beberapa varian JavaScript, ES Next (ES2015+) menjadi nomor satu diikuti oleh ES5, TypeScript, Flow, baru ES6.
Sumber: RisingStack
Sumber gambar: ReadWrite

Sumber : CODEPOLITAN

Friday, December 28, 2018

Tips Memilih Laptop Untuk Programming

Tips Memilih Laptop Untuk Programming - CodePolitan.com

Saat belajar programming, tidak sedikit orang bertanya-tanya sebetulnya laptop seperti apa sih yang bagus untuk dipakai? Apalagi dengan puluhan merk dan ratusan tipe laptop yang tersedia di toko-toko komputer membuat kita semakin bingung dalam memilih.

Jawaban atas pertanyaan tersebut sebetulnya sederhana saja. Semua laptop bisa dipakai untuk melakukan programming. Eeeit, ada tapinya. Meski semua laptop bisa dipakai untuk programming, tapi semakin sesuai tipe laptop yang dipakai dengan jenis progamming yang dilakukan, maka akan semakin produktif juga seorang programmer dalam bekerja. Selain itu, ada jenis programming yang hanya bisa dilakukan di laptop tertentu karena batasan yang diberikan.

Secara umum, ada beberapa hal yang harus kita perhatikan dalam memilih laptop untuk programming yaitu:
  • Portabilitas
  • Resolusi layar
  • Kecepatan CPU
  • Jumlah memori (RAM)
  • Jenis dan ukuran hardisk
  • Keyboard
  • Baterai
  • Sistem Operasi
  • Kartu Grafis
Mari kita bahas satu persatu.

1. Portabilitas


Portabilitas merupakan alasan utama mengapa programmer menggunakan laptop. Laptop memungkinkan kita untuk bekerja kapan saja dan dimana saja dengan atau tanpa listrik (namun memiliki waktu terbatas).

Jika pembaca merupakan jenis programmer yang akan sering berpindah-pindah, maka laptop dengan ukuran layar 13 atau 14 inci adalah jenis laptop yang paling bagus karena memiliki ukuran yang relatif lebih kecil. Namun, jika tidak terlalu sering berpindah-pindah dan membutuhkan spesifikasi yang lebih tinggi, pilihlah laptop dengan layar 15 inci. Biasanya (tidak selalu) laptop dengan layar 15 inci memiliki spesifikasi yang lebih tinggi dibanding laptop berlayar 13 atau 14 inci.

2. Resolusi Layar

Meski terlihat sepele, kerapatan layar dapat memiliki peran yang sangat penting bagi seorang programmer. Hal ini karena sebagian besar waktu kita akan dipakai melihat ke layar tersebut.

Mayoritas laptop memiliki resolusi 1366x768. Resolusi ini tidak memiliki cukup tempat untuk melakukan multitasking. Ditambah lagi, teks yang ditampilkan juga terlihat kurang tajam namun sudah mencukupi untuk melakukan progamming secara umum.

Resolusi yang paling baik adalah 1920 x 1080 atau biasa dikenal dengan istilah Full HD. Resolusi ini memiliki ruang yang cukup luas untuk melakukan multitasking karena bisa menampilkan beberapa window bersamaan tanpa kehilangan informasi yang dibutuhkan. 

Ketajaman layarnya juga sangat baik dan pasti akan memanjakan mata.
Untuk layar beresolusi 1920 x 1080 biasanya hanya ada di komputer dengan spesifikasi yang agak tinggi dengan layar 15 inci. Ada beberapa tipe laptop 13 atau 14 inci yang memiliki resolusi Full HD tapi sangat jarang dan biasanya merupakan laptop kelas atas yang cukup mahal.

Sebetulnya ada satu jenis resolusi lain yang tersedia yaitu 4K atau retina display. Resolusi 4K adalah jenis resolusi berukuran 4096 x 2160 dan retina display adalah istilah Apple untuk mendeskripsikan resolusi yang besar ini.

Sumber gambar: audioholics

Meski memiliki resolusi yang sangat tinggi dengan ketajaman yang luar biasa, layar 4K akan memakan sumber daya juga lebih besar sehingga akan menghabiskan baterai lebih cepat. Jika tidak benar-benar melakukan pekerjaan yang membutuhkan resolusi sangat besar (seorang desainer sepertinya lebih membutuhkan layar beresolusi tinggi), cukup usahakan layar beresolusi Full HD.

Jangan terlalu memaksakan diri jika budget memang tidak mencukupi, layar 1366 x 768 pun sebetulnya sudah cukup. Multitasking pun masih bisa dilakukan, ya meskipun terbatas hanya untuk dua aplikasi secara bersamaan (bagian kiri dan kanan). Bagaimana kalau butuh lebih dari dua? Cukup gunakan ALT + TAB saja.

3. Kecepatan CPU


Kecepatan CPU memiliki pengaruh yang cukup signifikan bagi performa laptop kita. CPU (atau prosesor) memiliki beberapa spesifikasi yaitu cache size, jumlah core, frekuensi, dll. Spesifikasi ini tidak perlu kita analisis terlalu dalam. Laptop dengan prosesor Intel Core i5 saja sudah sangat bagus untuk kebanyakan kebutuhan programming.

Apabila memiliki dana terbatas, prosesor Intel Core i3 bahkan Dual Core juga bisa dipakai jika kebutuhannya hanya untuk melakukan web programming.

4. Jumlah Memori (RAM)


Untuk kebutuhan web programming, laptop dengan memori 2GB sudah mencukupi. Akan lebih baik lagi jika bisa menggunakan memori minimal 4GB. Pada intinya semakin besar memori RAM akan semakin baik. Jika ada rejeki upgrade lah sedikit demi sedikit.

Pengecualian untuk programmer yang membutuhkan pekerjaan berat seperti programmer Android atau programmer game yang menggunakan engine seperti Unity, Unreal, dan sejenisnya. Untuk jenis pekerjaan ini, kita wajib memiliki memori yang besar. Untuk Android, 4GB itu standar minimal hanya untuk Android Studio saja dengan waktu loading yang bisa melatih kesabaran kita. Penulis tidak bisa membayangkan menggunakan Android Studio di laptop kurang dari 4GB, pasti akan berjalan dengan sangat-sangat lamban. Maka, jika pembaca melakukan programming Android atau programming lain yang memakan banyak sumber daya, gunakan lah RAM berukurang setidaknya 8GB agak bisa bekerja dengan lancar dan nyaman.

Karena biasanya RAM memiliki dua slot, proses upgrade-nya menjadi lebih mudah dan murah. Dengan dana yang terbatas kita bisa saja membeli laptop dengan RAM 4GB dan nanti ditambah lagi dengan RAM 4GB sehingga ukurannya menjadi 8GB. Teknik seperti ini bisa membantu menghemat biaya.

5. Jenis dan Ukuran Hardisk


Selama ini, penulis belum begitu memperhatikan pentingnya menggunakan SSD. HDD biasa sudah cukup, setidaknya dengan menggunakan HDD kita sudah bisa bekerja tanpa hambatan. Akan tetapi, jika ternyata pekerjaan yang dilakukan masih terasa lambat padahal sudah memiliki spesifikasi laptop yang "bagus", cobalah pikirkan untuk menggunakan SSD.
Perbandingan kecepatan SSD dengan HDD bisa mencapai 1:3 sampai 1:5. Lihat saja perbandingan waktu booting antara HDD dengan SSD dari situs PC World berikut:


Harga SSD memang cukup mahal. Untuk 128GB saja harganya antar 700rb-1jt dimana dengan harga yang sama kita bisa membeli HDD biasa berukuran sampai 1TB. Tapi harga memang tidak bohong, kecepatan SSD memang jauh, jauh lebih tinggi. Oleh karena itu, agendakan suatu hari nanti untuk upgrade ke SSD setidaknya untuk sistem (128GB sudah cukup). Untuk data lain (film, lagu, dokumen, musik) bisa disimpan di HDD biasa.

6. Keyboard


Apa yang paling sering dilakukan programmer? Tentu saja menulis kode. Memiliki keyboard yang nyaman untuk ngoding sangat berpengaruh bagi seorang programmer. Kelembutan saat ditekan, feedback yang didapat, jarak tempuh dari satu tombol ke tombol yang lain terdengar seperti omong kosong. Tapi percayalah, keyboard yang bagus tidak hanya penting bagi gamer saja tapi juga penting bagi seorang programmer.

7. Sistem Operasi

Baik untuk programming atau pemakaian biasa ada tiga sistem operasi yang paling banyak dipakai, Linux, Windows, dan OS X. Jika jenis programming yang dilakukan tidak dibatasi oleh penyedianya, maka sistem operasi manapun bisa dipakai. Jenis programming apa yang dibatasi sehingga kita wajib memakai salah satu sistem operasi ini?
  • iPhone, iPad, OS X, dan produk-produk Apple lainnya. Untuk membuat aplikasi produk-produk Apple, kita wajib menggunakan OS X yang artinya kita harus menggunakan laptop berjenis Macbook. Pembuatan aplikasi produk-produk Apple tidak bisa dilakukan diluar sistem operasi buatannya sehingga Linux dan Windows tidak bisa kita pakai.
  • Game programming. Beberapa banyak juga game engine yang bisa dipakai diketiga sistem operasi ini, tapi beberapa game engine populer hanya bisa dipakai di Windows atau Windows dan Mac saja. Contoh game engine tersebut diantaranya Construct 2 (Construct 3 sudah cross platform), Corona, GameMaker Studio, GameSalad, RPG Maker, dan Frostbite.

8. Kartu Grafis

Selain untuk game programmer (khususnya yang menggunakan game engine 3D), kartu grafis tidak begitu berpengaruh saat ngoding. Jadi, untuk menghemat biaya kita bisa memilih laptop dengan kartu grafis biasa (integrated graphic card). Kecuali jika pembaca juga sekalian ingin main game dengan laptop itu, maka kartu grafis eksternal menjadi komponen yang wajib ada.

Penutup

Kesimpulannya, tidak ada satu latop yang "terbaik" untuk programming. Semua laptop bisa dipakai untuk programming (kecuali untuk beberapa jenis programming yang sudah dibahas), sehingga tinggal menyesuaikan dengan budget.
Semoga artikel ini bermanfaat dan membantu pembaca dalam menentukan pilihan laptop yang akan dipakai untuk programming.
Jika pembaca memiliki opini lain tentang hal ini, jangan sungkan untuk berkomentar. Penulis tunggu komentar dan saran pembaca dalam memilih laptop untuk programming.

Sumber : CODEPOLITAN

Memasang Zsh dan Oh My Zsh di Linux Ubuntu

Memasang Zsh dan Oh My Zsh di Linux Ubuntu  - CodePolitan.com

Z Shell atau lebih dikenal dengan nama zsh adalah sebuah interactive UNIX shell seperti halnya bash yang biasa kita pakai. Zsh sendiri sudah dikembangkan sejak 1990 oleh Paul Fastad.

Zsh menjadi salah satu shell yang cukup populer di Linux dan Mac OS X. Ia memiliki fitur-fitur yang kaya dan mudah diatur sesuai kebutuhan. Berikut beberapa kelebihan menggunakan zsh:
  • Auto-complete perintah CLI
  • Auto-complete path
  • Koreksi typo perintah CLI secara otomatis

Diartikel ini kita akan memasang Zsh bersama dengan Oh My Zsh di Ubuntu 17.10. Oh My Zsh sendiri merupakan framework untuk Zsh yang memiliki koleksi ratusan plugin dan themes dari komunitas yang tinggal pakai.

1. Konfigurasi Zsh

Pasang dulu Z shell untuk Ubuntu dengan memasukkan perintah berikut di terminal:
 
sudo apt install zsh

Setelah terpasang, gantikan bash dengan zsh sebagai shell default:
 
chsh -s /usr/bin/zsh

Logout, lalu login lagi untuk mengaktifkan shell yang baru ini. Saat membuka kembali aplikasi terminal, kita akan disambut Z Shell configuration function. Pesan ini akan muncul karena kita belum memiliki file konfigurasi zsh. Disini penulis memilih opsi (2) untuk mendapatkan konfigurasi bawaan yang direkomendasikan.

2. Konfigurasi Oh My Zsh

Setelah Z shell terpasang. Selanjutnya, kita akan melanjutkan dengan konfigurasi Oh My Zsh. Agar berjalan dengan lancar, pastikan git dan wget sudah terpasang. Jika belum, silahkan pasang dulu ketiganya dengan perintah:
 
sudo apt install git wget

Selanjutnya salin kode berikut untuk mengunduh skrip pemasang Oh My Zsh dan menjalankannya:
 
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

Jika berhasil, maka terminal kita akan menampilkan pesan:


Sebelumnya saat memasang zsh, kita memilih untuk menggunakan konfigurasi bawaan yang direkomendasikan. Karena kita sekarang menggunakan Oh My Zsh, maka lebih baik jika kita menggunakan konfigurasi yang direkomendasikan olehnya. Ganti konfigurasi yang sudah ada dengan konfigurasi dari Oh My Zsh dengan perintah:

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
source ~/.zshrc

3. Ganti Tema

Konfigurasi rekomendasi Oh My Zsh menggunakan theme robbyrussell. Kita bisa mengganti theme ini dengan theme lain dengan mudah. Sebelumnya, pilih dulu salah satu tema yang disediakan disini.

Penulis memilih tema avit. Pembaca bisa memilih tema manapun yang diinginkan. Beberapa tema yang cukup populer adalah agnoster, awesomepanda, bira, dan lambda.
Kemudian, edit file .zshrc untuk mengganti tema sekarang dengan tema pilihan kita. Jalankan perintah berikut untuk membuka file .zshrc dengan editor nano:

nano ~/.zshrc
 
Ganti nilai untuk variabel ZSH_THEME="robbyrussell" dengan nama tema yang dipilih.


Tekan tombol CTRL-X untuk keluar dan tekan tombol Y untuk menyimpan saat muncul dialog terakhir tekan tombol ENTER.

Untuk langsung mengaktifkan tema pilihan, jalankan lagi perintah berikut di terminal:

source ~/.zshrc
 


Referensi: howtoforge, oh-my-zsh

CODEPOLITAN 

Peek, Perekam Gambar GIF Untuk Linux

Peek, Perekam Gambar GIF Untuk Linux - CodePolitan.com

Adakalanya kita ingin menjelaskan bagaimana melakukan sesuatu di Linux. Cara paling mudah tentu saja melalui tulisan. Untuk melengkapi tulisan yang dibuat, gambar diperlukan untuk memberikan konteks penjelasan agar tulisan menjadi lebih mudah dipahami. Bahkan satu gambar bisa menggantikan tulisan yang dibuat jika mampu menunjukkan konten yang lebih detail. Ada yang bilang bahwa "satu gambar lebih bermakna daripada seribu kata-kata". Lalu, bagaimana jika gambar yang dibagikan bisa bergerak?

Video memang sarana paling lengkap untuk menunjukkan bagaimana sesuatu dilakukan dengan memberikan gambar bergerak bersama dengan suara penjelas. Tapi untuk membagikan video juga agak merepotkan karena membutuhkan hosting khusus juga memiliki ukuran yang cukup besar. GIF adalah solusi yang lebih sederhana namun bisa memberikan kelebihan yang hampir menyamai video. Meski tidak memiliki suara, gambar GIF mampu merekam kegiatan yang dilakukan selama beberapa waktu.


Peek adalah aplikasi untuk merekam layar dan menyimpannya sebagai gambar GIF. Ia memiliki jendela transparan yang bisa diatur tinggi dan lebarnya. Bagian apapun yang ada di dalam wilayah jendela Peek akan direkam kegiatannya dan dijadikan gambar GIF. 

Darisananya, Peek akan menyimpan gambar sebagai GIF, tapi bisa diganti menjadi WebM atau MP4 jika mau. Perlu diingat bahwa Peek merupakan aplikasi perekam layar sederhana yang hanya merekam gambar tanpa suara dan didesain untuk kegiatan yang tidak terlalu panjang. Untuk saat ini Peek hanya tersedia di Linux.

Memasang Peek

Peek dapat dipasang melalui banyak cara. Cara pemasangan yang bisa dipakai diberbagai distro adalah dengan Flatpak atau Snappy.

Flatpak

Berikut perintah Flatpak untuk memasangnya:

flatpak install --user https://flathub.org/repo/appstream/com.uploadedlobster.peek.flatpakref

Menjalankan Peek yang dipasang dengan Flatpak dengan perintah:

flatpak run com.uploadedlobster.peek
 
Memperbarui versi Peek menajdi yang terbaru dengan perintah:

flatpak update --user com.uploadedlobster.peek

Snappy

Berikut perintah Snappy untuk memasang Peek:

sudo snap install gnome-3-26-1604
sudo snap install peek
 
Setelah terpasang, peek bisa dijalankan dengan perintah:

snap run peek

Ubuntu

Untuk distro Ubuntu, Peek memiliki PPA sendiri. Jalankan perintah-perintah berikut untuk memasang Peek di Ubuntu seperti aplikas-aplikasi lainnya.

sudo add-apt-repository ppa:peek-developers/stable
sudo apt update
sudo apt install peek
 
Untuk distro Linux yang lain (Arch, Debian, Fedora, Solus, dll.) silahkan kunjungi laman resmi Peek di GitHub.

Sumber :  codepolitan

Mudah Membuat Splash Screen dengan Android Studio

Mudah Membuat Splash Screen dengan Android Studio - CodePolitan.com

Splash screen adalah istilah yang diberikan pada layar pembuka setiap kali kita menjalankan sebuah aplikasi Android. Contoh splash screen adalah saat kita membuka aplikasi Youtube. Perhatikan gambar di bawah:


Sumber gambar: https://www.bignerdranch.com

Sekarang kita akan belajar bagaimana membuat splash screen seperti itu.
Pertama, kita buat dulu project baru dan beri nama Splash Screen Codepolitan dan pilih Basic Activity sebagai template awal.

Selanjutnya, buat file baru bernama splash_bg.xml di folder /res/drawable dan isikan dengan kode berikut:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    
</layer-list>
 
Kode di atas mengatur warna latar splash screen dibagian . Di bawahnya kita menambah komponen logo dengan mengatur tinggi, lebar, dan sumber gambarnya. Untuk file logo silahkan ambil logo Codepolitan disini dan simpan di folder /res/drawable.

Berikutnya, kita akan mengatur style khusus untuk splash screen. Buka file res/values/styles.xml dan tambahkan kode berikut di bawah komponen <style/> yang lain:

<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        @drawable/splash_bg
</style>
 
Setelah selesai mengatur style, sekarang kita buat file java baru dan beri nama SplashActivity. File Java ini akan kita jadikan sebagai splash screen. Karena hanya berfungsi sebagai splash screen, maka kita tidak perlu memberikan layout untuknya (tidak ada setContentView):

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // langsung pindah ke MainActivity atau activity lain 
        // begitu memasuki splash screen ini
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}
 
Karena sudah menambah satu Activity baru secara manual, maka kita perlu menambahkan Activity ini ke AndroidManifest.xml sendiri. Kita juga perlu mengatur agar SplashActivity dipanggil sebagai activity pertama saat memanggil.

<?xml version="1.0" encoding="utf-8"?> <!-- Hapus Intent filter MainActivity -->

Sekarang, coba jalankan.

Source code: https://github.com/lobothijau/splash_screen
 

Referensi: https://medium.freecodecamp.org/how-to-make-a-splash-screen-on-android-correctly-64ab74482a33

codepolitan 

Thursday, December 27, 2018

LINE Bot Designer, Desain Bot LINE Tanpa Koding

LINE Bot Designer, Desain Bot LINE Tanpa Koding - CodePolitan.com

Membuat chatbot LINE memang membutuhkan sedikit keterampilan ngoding. Agar user bisa berinteraksi secara interaktif dan chatbot LINE bisa merespon keinginan user, kita perlu memprogram chatbot tersebut menggunakan beberapa pilihan bahasa diantaranya JavaScript, PHP, Java, atau Python. Jika pembaca memiliki ide untuk membuat chatbot LINE tapi terkendala dengan kodingannya yang memusingkan, berbahagialah karena LINE Bot Designer akan memungkinkan kita membuat protipe chatbot LINE tanpa koding.

Apa Itu LINE Bot Designer

LINE Bot Designer adalah aplikasi yang memungkinkan kita untuk membuat prototipe sebuah chatbot untuk aplikasi perpesanan LINE dengan mudah tanpa memerlukan pengetahuan ngoding sedikitpun. Kita diberikan opsi untuk mendesain chatbot dalam skenario-skenario yang diinginkan.

Namun perlu diingat bahwa produk yang dihasilkan oleh LINE Bot Designer hanya bersifat prototipe dan belum bisa dijadikan chatbot sungguhan (yang bisa berinteraksi dengan pengguna lain). Tapi, prototipe ini bisa dimanfaatkan untuk mempercepat proses pembuatan bot aslinya atau untuk menunjukkan konsep bisnis yang ingin dilakukan dengan memanfaatkan aplikasi LINE dan layanan chatbot.

 

Mendukung Semua Jenis Template Pesan LINE

Jika pernah menggunakan LINE, pembaca pasti sudah pernah melihat beberapa jenis pesan yang ada di dalamnya. Pesan-pesan LINE dapat berupa teks biasa, teks dengan gambar, teks dengan tombol konfirmasi, teks dengan gambar carousel, dan sebagainya. Semua jenis template pesan yang ada di LINE bisa dipakai di dalam Bot Designer. Pesan yang didesain oleh aplikasi ini akan menghasilkan kode-kode JSON yang bisa dipakai di chatbot yang sesungguhnya.

 

Pengujian Bot Seperti Aslinya

Dengan menggunakan LINE Bot Designer, kita bisa memanfaatkan berapan konfigurasi dan menu yang tersedia untuk menguji bot yang didesain. Kita bisa menguji beragam layanan chatbot melalui chatting room LINE juga bsia mengujinya di emulator dengan berbagai resolusi layar.

 

Membuat Layanan Bisnis dengan Berbagai Skenario

LINE Bot Designer dibuat untuk membantu pebisnis yang ingin merilis bisnis baru memanfaatkan aplikasi perpesanan LINE dengan chatbot, ingin membuat layanan chatbot baru, atau sekedar mendesain pesan-pesan yang menarik minat calon konsumen.

 

Unduh LINE Bot Designer

LINE Bot Designer sudah dapat diunduh untuk sistem operasi mac OS dan Microsoft Windows di sini. Cobalah untuk mendesain chatbot LINE kamu sekarang tanpa koding!
 
 

Distro Hacking Kali Linux Kini Bisa Dipakai di Windows 10 Tanpa Virtual Machine

Distro Hacking Kali Linux Kini Bisa Dipakai di Windows 10 Tanpa Virtual Machine - CodePolitan.com

Kali Linux, salah satu distro paling populer untuk hacking yang dikembangkan dan di-maintain oleh Offensive Security. Offensive Security merupakan penyedia layanan penetration testing dan pelatihan dibidang keamanan informasi. Microsoft bekerjasama dengan Offensive Security membawa Kali Linux ke Windows App Store.


Kali Linux masuk ke dalam Windows App Store sebagai salah satu Windows 10 Subsystem for Linux (WSL), diperkenalkan pada awal Maret 2018 lalu. Penambahan Kali Linux sebagai salah satu WSL membuat pengguna Windows bisa memanfaat aplikasi-aplikasi hacking tanpa harus memasang Kali secara manual. Cukup dengan beberapa kali klik, sistem Kali bisa dipanggil dari dalam Windows 10.

Dengan masuknya Kali Linux sebagai salah satu WSL, kini kita bisa menggunakan distro Linux khusus hacking ini tanpa perlu melakukan dual boot ataupun menggunakan Virtual Machine semacam VirtualBox atau VMWare.

Memasang Kali di Windows 10

Jika pembaca ingin mencoba memasang Kali di Windows 10, ikuti langkah-langkah berikut:
Perbarui sistem Windows 10. Buka jendela PowerShell dan pasang Windows Subsystem for Linux dengan kode di bawah ini. Lakukan restart setelah selesai.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Setelah melakukan restart, jalankan perintah berikut untuk memasang environment dasar Ubuntu. Environment ini akan menjadi fondasi bagi sistem Kali kita.
 
lxrun /install

Selanjutnya, kita akan menggunakan WSL Switcher, mengunduh dasar sistem Kali dan mengekstraknya:

git clone https://github.com/RoliSoft/WSL-Distribution-Switcher.git
cd WSL-Distribution-Switcher
python get-prebuilt.py kalilinux/kali-linux-docker
python install.py rootfs_kalilinux_kali-linux-docker_latest.tar.gz
lxrun /setdefaultuser root
 
Sekarang Kali Linux sudah siap di pakai dari dalam Windows 10. Kita bisa berinteraksi dengan sistem Kali menggunakan bash. Berikut video tutorial dari Kali Linux (Vimeo).
<iframe src="https://player.vimeo.com/video/250475157" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
Sumber: microsoft, kali,
Distro Hacking Kali Linux Kini Bisa Dipakai di Windows 10 Tanpa Virtual Machine

Rekomendasi Aplikasi Penghasil Cuan :D Dirumah saja tetap Dapet Duit !!!

Hallo Bosskyuuh semua. Perkenalkan aku Patrick Ananta berasal dari Jawa Tengah. Aku sudah lama sekali dirumahkan dikarenakan covid19 sehingg...