Instalasi MariaDB Pada Mac OSX meggunakan Homebrew

Work From Home yang dilakukan saat ini menjadikan kita sedikit lebih banyak test dan test. Salah satu test yang dilakukan selama work from home adalah Instalasi MariaDB Pada Mac OSX meggunakan Homebrew. Selama ini melakukan kegiatan development PHP, Apache dan MariaDB menggunakan XAMPP OSX. Karena teryata XAMPP OSX ini semakin lama kurang nyaman untuk digunakan akhirnya melakukan kegiatan cara lama yaitu instalasi aplikasi PHP, Apache dan MariaDB secara manual.

Untuk melakukan instalasi MariaDB 10.4 di OSX teryata memiliki cara tersendiri dalam melakukan auntentifikasi untuk user root. Karena teryata autentifikasi system di MariaDB yang terbaru memiliki cara yang berbeda.

Untuk melakukan instalasi mariaDB Pada Mac OSX kita dapat menggunakan HomeBrew.

Berikut ini step-step Instalasi mariaDB pad MAC OSX:

$ xcode-select –install

Selanjutnya kita melanjutkan Instalasi MariaDB Pada Mac OSX meggunakan Homebrew, kita melakukan instalasi homebrew, bila telah memiliki homebrew maka bagian ini bisa kita skip terlebih dahulu.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Bila kita telah melakukan instalasi homebrew, langkah selanjutnya adalah melakukan pengechekan status homebrew

$ brew doctor

Bila tidak terdapat hal-hal yang aneh-aneh maka kita bisa melanjutkan ke kegiatan selanjutnya, tapi bila ada hal yang kurang maka kita dapat mengikuti perintah yang muncul. Kita lanjutkan instalasi MariaDB menggunakan Homebrew.

Lakukan update homebrew

$ brew update
$ brew install mariadb

Pada step instalasi ini system akan mengeluarkan beberapa keluaran seperti berikut ini

Selanjutnya kita bisa melakukan hal berikut ini. Karena terkadang table database user masih kosong dan tidak dapat diakses.

$ mysql_install_db

Bila keluar data berikut ini berarti data table sudah ada:

mysql.user table already exists!
Run mysql_upgrade, not mysql_install_db

Lakukan start mysql, terdapat dua cara untuk melakukan start mysql, bisa menggunakan homebrew ataupun menggunakan service biasa:

# pilihan start pertama
$ mysql.server start
#pilihan start menggunakan homebrew services
$ brew services start mariadb

Selanjutnya kita login kedalam sistem mysql. Untuk login kedalam sistem mysql pada mariadb 10.4 tidak dapat langsung menggunakan root. Kita harus login menggunakan user kita sendiri.

#cara pertama
$ mysql 
#cara kedua
$ mysql -u namauserlogin

Jika kita ingin mengubah root password kita harus menggubah sistem autentifikasi mariadb dari invalid kedalam mysql native.

#login kedalam mysql 
$ mysql -u namauserlogin 
MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("passwordkamu");
MariaDB [(none)]> exit
Bye
$ mysql -u root -p

Selanjutnya kita bisa melakukan akses kedalam sistem root.

Sebagai referensi autentifikasi bisa melihat https://mariadb.com/kb/en/authentication-from-mariadb-104/

Demikianlah cara instalasi mariaDB pada Mac OSX dengan homebrew. Bila membutuhkan development Aplikasi , web aplikasi ataupun mobile aplikasi bisa kontak icreativelabs.com

Study Case Development Audio-Video Streaming

Work From Home aka kerja remote saat ini yang menjadi aplikasi yang sangat di favoritkan adalah zoom. Tapi sebenarnya banyak aplikasi-aplikasi lain yang bisa bantu kita untuk kerja remote.

Selama ini untuk remote komunikasi kita menggunakan aplikasi skype yang bisa video call dan juga untuk conferences. Salah satu kelebihan dari skype ini, kita simple tinggal klik aja di user chat atau group kita untuk call.

Tapi karena kebanyakan orang-orang menggunakan standart komunikasi Whatsapp dan buat ramai-ramai maka communication engine alternatif menggunakan google meet dan juga menggunakan zoom.

Dulu icreativelabs pernah melakukan development Audio-Video Streaming untuk aplikasi komunikasi online, dari mulai video chat sampai dengan audiot chat dan text chat. Aplikasi berbasiskan mobile apps.

Pertama kali kita membuat development Audio-Video Streaming dilakukan dari scratch menggunakan engine RTSP berbasiskan UDP dan TCP. Salah satu tantangannya adalah menemukan codex yang tepat untuk melakukan transfer data. Salah satu yang memang membuat agak pusing bagaimana cara data agar tidak loosed dan realtime, karena rencana aplikasi digunakan untuk realtime (1-2 second lag bermasalah). Untuk prototype pertama running dengan baik. Karena rencana dipakai untuk user yang akan melakukan tawaf di kabah dan menggunakan intranet. Tetapi problem muncul dikarenakan hp hanya mensupport maximum tethering 10 user dan terjadi lag.

Akhirnya kita berpindah ke sistem Internet dengan server terserndiri dan pilihan jatuh kepada open source red5 community yang akhirnya pilih yang non community base tapi versi berbayar.

Salah satu yang menjadi tantangan selama development Audio-Video Streaming ini teryata bukan jumlah dan lag-nya, tetapi adalah infrastructure server yang cukup mahal. Dikarenakan untuk membuat server streaming dibutuhkan server yang cukup mumpuni. Selain itu juga tergantung dengan provider Internet yang digunakan.

Secara development aplikasi selesai dilakukan dan dapat digunakan, kendala yang muncul dilapangan adalah wilayah penggunaan aplikasi yang terdapat banyak blank spot.

Jadi pembuat aplikasi communication seperti zoom, skype dan juga google meet saat ini dapat dilakukan, tantangannya adalah bagaimana tetap sustain karena kedepannya sistem kerja remote ini akan di adopsi oleh berbagai macam perusahaan dan juga akan menjadi sebuah trend terbaru.

Cara Instalasi React Native di Mac OS

Berikut ini adalah cara bagaimana melakukan instalasi React Native di Mac OS. Tutorial kali ini akan menggunakan homebrew sebagai tools instalasinya. Homebrew dipakai dikarenakan kemudahan dalam melakukan instalasi dan kita tidak perlu melakukan aksi sudo.

1. Instalasi Homebrew

Pertama kali kita akan melakukan instalasi homebrew. Homebrew adalah tools aplikasi untuk memudahkan instalasi paket-paket untuk Mac OS. Untuk lebih detail bisa langsung mengunjungi halaman homebrew

Buka Terminal kemudian ketikan atau copas command berikut ini:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. Instalasi node & watcman

Node adalah aplikasi perangkat lunak yang didesain untuk pengembangan web. Node berbasiskan javascript sehingga sangat mungkin untuk di eksekusi di berbagai macam device.
Watchman digunakan sebagai tools untuk mengawasi perubahan yang dilakukan, sehingga sistem dapat direbuild secara otomatis. Berikut ini link detail untuk watchman.
brew install node
brew install watchman

 3. Install React Native CLI

npm install -g react-native-cli

4. Install XCode Command Line

Bila Mac OS kita belum terinstall XCode, kita dalam melakukan instalasi xcode command line melalui terminal.

Untuk melakukan pengecheckan apakah XCode Command Line sudah terinstall atau belum dapat melakukan check

xcode-select -p

bila sudah terinstall maka akan muncul text seperti ini: 

 /Library/Developer/CommandLineTools

Bila belum terinstall maka bisa dilakukan perintah ini pada terminal.

xcode-select --install

5. Test membuat React Native Project

react-native init MyNewProject
cd MyNewProject
react-native run-ios

Demikianlah Cara Instalasi React Native di Mac OS, untuk instalasi ini dibutuhkan koneksi internet yang cukup banyak dan stabil, karena sistem akan mendownload paket-paket yang dibutuhkan.

Tools yang mesti dimiliki oleh Web Developer – Part I

Tools yang mesti dimiliki oleh Web Developer

Tools yang mesti dimiliki oleh Web Developer dapat meningkatkan efektifitas Web Developer. Semakin tepat tools yang digunakan akan semakin memudahkan pekerjaan seorang web developer. Saat ini banyak tools yang beredar di Internet. Saking banyaknya terkadang kita binggung tools apa aja yah kira-kira yang bener-bener kita butuhkan ketika mendevelop aplikasi, mendevelop web ataupun hanya sekedar untuk scripting.

Sebagai Web Developer, referensi tools berikut akan memudahkan kita dalam melakukan pekerjaan dan kegiatan sehari-hari kita. Tools yang kita butuhkan akan dibagi kedalam beberapa bagian. Jadi bisa saja tools ini bisa menjadi subtitute tools lainnya.

General:

Document sharing menjadi hal penting saat ini, dengan semakin seringnya kita berpindah gadget ataupun memiliki teammate yang berbeda lokasi, kita membutuhkan tools-tools yang mumpuni. Tools-tools dibawah ini mungkin sudah banyak yang tidak asing dikita:
Dropbox
Evernote
Google Drive
Google Keep

Project Management:

Membuat website ataupun aplikasi adalah suatu hal yang sangat kompleks, terkadang dibutuhkan kerjasama team dalam memberikan informasi ataupun melakukan pengaturan task. Terkadang komunikasi yang dilakukan bukan hanya kepada team developer saja, tetapi ke banyak team lainnya dalam divisi yang lain. Dimulai dari sales, bugs, development, hingga ke revisi.

Basecamp
Bitrix24
Glip
Trello
Glip
Asana

Text Editor:

IDE saat ini menjadi hal yang penting, saat ini IDE yang digunakan memiliki kriteria ringan, bebas menggunakan bahasa apa saja dan dapat diinstall dengan mudah. Text editor-text editor ini dapat menjadi membantu kita dalam melakukan development.

Sublime
Notepad++
Text Mate
Visual Studio Code

Local Development dan Virtualisasi:

Development pada remote lokasi terkadang menyita waktu, selain itu akan sangat menyiksa jika kita harus menginstall sistem operasi baru dalam melakukan test development. Berikut ini tools yang dapat membantu kita dalam melakukan development.

XAMPP
WAMPP Pro
VMWare
Pararels
Docker

Version Control:

Pernah merasakan susahnya melakukan tracking perubahan yang terjadi pada development kita? Rasanya benar-benar menyiksa dan mebuat development itu hal yang sangat tidak menyenangkan. “Source Control Management” Menjadi solusi untuk kita. Tools ini dapat membantu kita dalam melihat perubahan yang terjadi dan dapat mengontrol kegiatan yang sudah dilakukan

GIT
Mercurial
Subversion

GIT Repository

Membuat repository di lokal terkadang ribet, dibutuhkan skill teknis yang cukup memakan waktu. Kita harus melakukan setting server hingga maintenance server untuk membuat sebuah repository sendiri. Saat ini terdapat GIT repository yang dapat kita gunakan tanpa perlu susah melakukan setting server.

GitHUB
GitLab
BitBucket

Kemampuan Yang Mesti Dimiliki Oleh Data Scientist

Data Scientist saat ini sedang naik daun, biasanya tugas dari data scientist ini adalah mengolah data-data yang dimiliki oleh perusahaan kemudian data-data tersebut di analysis dan dijadikan panduan dalam membuat keputusan.

Beberapa pengetahuan basic yang mesti diketahui untuk menjadi seorang data scientist adalah:

Basic Tools:
Mesti paham bahasa-bahasa statistic seperti bahasa R dan python, dan juga mengetahui tentang database query language (SQL)

Basic Statistics:
Karena ini tentang angka dan angka, maka untuk dapat menjadi seorang data scientist kita juga mesti bisa dan paham basic statistik. Yang paling standart gimana cara menghitung rata-rata, rataaan, total, simpangan ataupun juga distribusi.

Machine Learning:
Paham tentang machine learning itu merupakan salah satu point plus. Dari mulai algoritm sampai gimana cara menggunakan-nya.

Multivariable Calculus and Linear Algebra:
Ini sebenarnya jarang menjadi acuan, tapi yang pasti kalo ngomogin statistik dan angka kita tidak akan pernah lepas dengan dunia charting and etc. Karena kita mesti mengetahui bagaimana data tersebut tersebar dan bentuknya.

Data Cleansing dan Data Validation:
Banyak data-data yang tersebar tidak memngikuti aturan baku yang ditetapkan, dari mulai data tanggal yang kadang penulisannya berbeda. Data angka yang tiba-tiba terkotori dengan data character. Kita mesti bisa melakukan cleansinng data dan sejenisnya.

Data Visualization & Communication:
Bagian ini penting. Data-data yang ada hanya akan menjadi sampah bila kita tidak dapat mevisualisasikan dan menkomunikasikannya. Data yang sudah di proses ini lah yang kemudian dapat kita sebut sebagai informasi

Check infographics yang mengambarkan jenis-jenis Data Scientist, serta key roles-nya dan perusahaan apa saja yang menggunakannya.

Installing PostgreSQL and PostGIS di Centos 7

Berikut ini step melakukan installing PostgreSQL dan PostGIS pada centos 7. Kita akan memberikan beberapa type installasi yang bisa dilakukan. Salah satunya menggunakan PostgreSQL 9.5 dan PostgreSQL 9.3.

PostgreSQL 9.5 dan PostGIS

  1. Install RPM yang sesuai dengan kebutuhan http://yum.postgresql.org/repopackages.php, penulis saat ini menggunakan centos 7 sebagai OS
  2. Lakukan instalasi RPM package
    sudo rpm -ivh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
  3. Lakukan instalasi PostgreSQL, libs, contrib dan devel
    yum install postgresql95 postgresql95-server postgresql95-libs postgresql95-contrib postgresql95-devel
  4. Lakukan setup awalan untuk postgressql
    sudo postgresql-setup initdb
    sudo systemctl start postgresql
    sudo systemctl enable postgresql
    
  5. Lakukan setting user dan password untuk default account postgres
    sudo passwd postgres
    su - postgres
    psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'newpassword';"
    
  6. Lakukan test akses ke postgres
    psql postgres
    
  7. Kita akan login ke dalam PostgresSQL, untuk keluar bisa dilakukan dengan ctrl+z
psql (your version)
Type "help" for help.

postgres=#

Pada step diatas kita sudah selesai untuk melakukan instalasi untuk PostGresSQL, selanjutnya kita akan melakukan instalasi untuk PostGIS. PostGIS ini adalah engine dan extension yang akan kita gunakan untuk melakukan manipulasi spatial data dan membuat database kita support untuk data Spatial dan GIS

  1. PostGIS instalasi dapat dilakukan dengan menggunakan Yum function
    sudo yum install postgis2_95 postgis2_95-client
  2. Bila terdapat permasalah dependency bisa dilakukan update/install  yum ke epel release
    yum -y install epel-release
    sudo yum install postgis2_95
  3. Lakukan instalasi OGR dan pgrouting
    yum install ogr_fdw95
    yum install pgrouting_95
    
  4. Lakukan enable extension untuk database kita
    su postgres
    /usr/pgsql-9.5/bin/psql -p 5432
    CREATE DATABASE gistest;
    \connect gistest;
    CREATE EXTENSION postgis;
    CREATE EXTENSION postgis_topology;
    CREATE EXTENSION ogr_fdw;
    SELECT postgis_full_version(); #lakukan verify instalasi
    

Bila ketika melakukan create extension terdapat error seperti

ERROR: could not open extension control file "/usr/share/pgsql/extension/postgis.control": No such file or directory

maka ada baiknya melakukan instalasi PostGre 9.3.

MariDB : Error: ‘Out of resources when opening file (Errcode: 24 – Too many open files)’

Hari ini komputer client mengalami kegagalan backup dengan error code (Errcode: 24 – Too many open files). Server yang digunakan adalah centos 7 dengan mariadDB.

Setelah dilakukan pengecheckan teryata problem-nya kemampuan mariaDB dalam menghandle jumlah file yang bisa dieksekusi.

Untuk melakukan pengecheckan bisa dilakukan dengan cara:

  1. Login kedalam server mysql/MariaDB dan lakukan command
    show global variables like "%open_files_limit%";
  2. Jika result dari database yang dihasilkan berada pada 1024 atau belum sampai unlimited maka kita harus melakukan peningkatan jumlah ulimit pada server
    [root@li1628-17 ~]# vi /etc/security/limits.conf
    
    mysql soft nofile 65535
    mysql hard nofile 65535
    [root@li1628-17 ~]#reboot
  3. Lakukan edit pada my.etc, pada section [mysqld] tambahkan parameter berikut ini:
    open_files_limit=32768
  4. Buat folder /etc/systemd/system/mariadb.service.d bila belum ada dan tambahkan file limits.conf
    
    [root@li1628-17 ~]# mkdir /etc/systemd/system/mariadb.service.d
    [root@li1628-17 ~]# vi limits.conf
    
    [Service]
    LimitNOFILE=infinity
    LimitMEMLOCK=infinity
    
    
    
  5. Simpan file tersebut dan lakukan restart pada daemon dan pada mariadb services
    
    [root@li1628-17 ~]# systemctl daemon-reload
    [root@li1628-17 ~]# systemctl restart  mysql.service
    
  6. Lakukan kembali pengecheckan pada mysql dengan command pada line 1
    show global variables like "%open_files_limit%";