Friday, December 15, 2017

BROTLI compression with NGINX

     Hello guys, this time i wanna share about BROTLI. What is brotli?, Why Brotli?, Comparison and how to build the packages. Let's begin with what brotli is.      

BROTLI is a new compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm + Huffman algorithms.
LZ77 overview :
abcdeabcdf can be compressed with LZ77 to abcde<4,5>f and aaaaaaaaaa can be compressed to simply a<9, 1>.
Huffman : Bit Conversion. I will not discuss this in depth but if you want to, take a look on this brotli-ietf.

Developed by Google.
Why Brotli?

The smaller compressed size allows for better space utilization and faster page loads.
As the smaller compressed size would give additional benefits to mobile users, such as lower data transfer fees and reduced battery useCompressed content takes less time to transfer and reduces load times.

Brotli comes  with 0 to 9 levels of compression.


Comparison with others?



Browser Support?

Brotli compression not yet supported by all varian of web browser, so make sure you have a "PLAN B" compression such as gzip. 


Build the package?

Default nginx package not include brotli module, so we must add brotli module manually and rebuild the nginx package. Even there is bortli-included nginx package on the web (not official), it's recommended to build it yourself in concern of security. So, follow this step

I'm using Centos 7 when i build the package.

- Install the prerequisite package

- Download nginx package using wget. Pull ngx_brotli module using git and update the module.


- Before we configure nginx, add nginx user and temporary folder

- Decompress nginx package and configure nginx to include the ngx_brotli module. After that make the installment.

 
- Check nginx version

- Next, we need to make nginx systemd service

- Run nginx service to make sure it's running and enable it

- Configure nginx.conf file to enable brotli module, in my case i enabled the gzip algorithm too, because in case the browser not support with brotli it will redirect the algorithm to gzip.

- And then restart nginx

Result ?

This is the result sample when brotli compression implemented with nginx server.



Happy Brotling !!!


Referensi :
- https://www.enovate.co.uk/blog/2017/02/28/how-to-brotli-compression-with-nginx
- https://certsimple.com/blog/nginx-brotli
- https://sekolahlinux.com/implementasi-nginx-libressl-http2-brotli-pada-centos-7

MENGINTEGRASIKAN OBIEE 12C DAN WEBCENTER PORTAL 12C (PART 1)

Pada kesempatan ini saya akan membahas bagaimana mengintegrasikan OBIEE 12C dan Webcenter Portal 12C. Hal ini bertujuan agar kita bisa membawa BI Content ke dalam Webcenter Portal agar lebih powerful. Sebelum melakukan INTEGRASI ada beberaspa hal yang perlu diperhatikan.
  1. OBIEE dan Webcenter Portal menggunakan weblogic yang sama sehingga user dari kedua aplikasi ini akan sama.
  2. Jika OBIEE dan Webcenter Portal diinstall di weblogic yang berbeda maka keduanya harus menggunakan identity store yang sama.
  3. Jika OBIEE dan Webcenter Portal diinstall di weblogic yang berbeda dan mempunyai identity store yang berbeda juga, maka buatlah user dengan nama yang sama di masing-masing default authenticator.
Setelah sesuai dengan hal-hal diatas maka kita dapat memulai proses integrasi. Pada postingan kali ini akan dibahas mengenai integrasi dari sisi OBIEE. Untuk Webcenter Portal akan dibahas dilain kesempatan.

Berikut langkah-langkah pengaturan dari sisi OBIEE:
  1. Buat satu user BIImpersonateUser untuk terhubung OBIEE Presentation Service dan OBIEE Objects. Untuk membuat user, buka Weblogic console > Security Realms > myrealm > Users and Groups > click on New button dan beri nama user "BIImpersonateUser" dan isi password kemudian klik OK.

    Create BIImpersonateUser

  2. Grant permissions ke user yang sudah dibuat. Buka Enterprise Manager, dibawah Weblogic Domain drop down menu pilih Security > Application Policies kemudian pada "Application Stripe" pilih obi kemudian pada "Principal Type" pilih user dan pilih "Create button".

    Grant permissions to BI Impersonate User

  3. Setelah melakukan langkah diatas maka akan muncul halaman "Create Application Grant". Didalam tab "Permissions" klik add untuk menambahkan permission baru dan akan muncul pop-up. Pilih "oracle.security.jps.ResourcePermission" pada drop down "Permission Class".

    Grant permissions to BI Impersonate User

  4. Kemudian pindah tab ke "Resource Types". Kemudian pada "Resource Type" pilih "oracle.bi.user" dan klik Continue.

    Grant permissions to BI Impersonate User

  5. Setelah itu akan muncul halaman lanjutan. Dalam field "Resource Name" isi dengan "*". Kemudian pada field "Permission Action" pilih "impersonate". kemudian pilih "Select".

    Grant permissions to BI Impersonate User

  6. Setelah langkah diatas maka akan kembali ke halaman "Create Application Grant". Pada bagian "Grantee" pilih Add maka akan muncul pop-up "Add Principal". Pada field "Type" pilih "User" kemudian klik tanda panah di sebelah field "Display Name".

    Grant permissions to BI Impersonate User

  7. Setelah muncul list user, pilih "BIImpersonateUser" dan klik OK. dan akan kembali ke halaman "Create Application Grant".

    Grant permissions to BI Impersonate User

  8. Pada halaman "Create Application Grant" pilih OK untuk menyelesaikan proses grant user.

    Grant permissions to BI Impersonate User
Setelah proses grant selesai berarti selesai sudah sesi dari OBIEE untuk proses integrasi. Untuk sesi Webcenter Portal akan dibahas pada sesi yang berbeda pada "MENGINTEGRASIKAN OBIEE 12C DAN WEBCENTER PORTAL 12C (PART 2)".

GraphQL


Graphql adalah query language yang dibangun oleh facebook dan digunakan pada sisi server. Guna dari graphql sesuai dengan namannya “query language” adalah untuk melakukan query. Graphql tidak berhubungan secara langsung dengan database tetapi berada di sisi client dan server. Pada sisi client yang secara langsung nantinnya mengakses API(graphql di sisi server).


Dengan kata lain graphql tidak terbatas untuk database tertentu baik sql atu nosql. Graphql akan mengspesifikasikan data yang dibutuhkan oleh client. Graphql akan melakukan query terhadap api yang kita sediakan di server.

Beberapa fitur yang ditawarkan oleh graphql
  1. Standarisasi API yang didukung oleh facebok which is salah satu perusahaan teknologi besar didunia sehingga sangat membantu kita untuk membuat teknologi yang sesuai dengan standar.
  2. declarative data fetching
  3. graphql menggunakan single endpoint sesuai dengan kaidah rest
Aplikasi saat ini umumnya menggunakan API(Application programming interface) untuk mendapatkan data. API ini dihost oleh suatu server dan juga bertugas untuk berhubungan dengan database.  Arsitektur seperti ini kita kenal dengan tier-3 application yakni memisahkan antara presentation layer(frontend), application layer(backend) dan database layer.




Client tidak hanya berhubungan dengan satu api namun terkadang akan berhubungan juga dengan api lainnya misalkan menggunakan api google maps, api graph facebook , dan lain sebagainnya. Lalu dimanakah graphql berada? jawabannya adalah pada sisi “client” dan “server” yang berhubungan/mengkases suatu API. dengan graphql kita(client mendefinisikan data yang ingin kita dapatkan dari suatu API) . Sehingga diagram disamping jika ditambahkan teknologi graphql akan menjadi seperit berikut ini.





Mengapa graphql dibuat ?
Terdapat tiga alasan mengapa facebook membuat graphql
  1. bertambahnya mobile usage sehingga diharapkan dengan adannya graphql mobile devices akan semakin sedikit dalam mengkonsumsi data. Graphql akan mengurangi konsumsi data yang dilakukan oleh mobile devices
  2. Meningkatkan performa. Dengan semakin sedikitnya data yang dikonsumsi mobile devices maka performa secara otomatis akan meningkat.
  3. Banyaknya framework frontend yang ada saat ini(react,vue,angular,dsb) maka graphql hadir untuk menstandarkan proses konsumsi API (meningkatn efisiensi konsumsi api).


Mengkonsumsi API
Tanpa graphql client akan memanggil endpoint tertentu. Misalkan kita ingin mengambil data terkait dan daftar post user tersebut dengan melalui mekanisme REST  seseorang maka endpoint yang harus diakses dengan http method GET adalah

mendapatkan data profile

/api/user/1


mendapatkan data mengenai post dari suatu user

/api/user/1/posting


dengan mekanisme seperti ini maka yang mendefinisikan data adalah SERVER. Sedangkan jika kita menggunakan graphql maka yang akan mendefinsikan data yang dibutuhkan adalah di sisi client.

{
  user(id: 1) {
    nama
    umur
    post {
     title
    }
  }
}


Sangat jelas sekali perbedaanya antara mekanisme mengkonsumsi API dengan graphql dan non-graphql. Dengan mekanisme seperti ini(graphql) perubahan pada client(perubahan design pada ui terkait dengan data yang ditampilkan) akan dapat ditangani lebih mudah jika dibandingkan dengan mekanisme seperti REST karena yang mendefinisikan data adalah client.
Cara implementasi konsumsi REST api dan graphql sesuai dengan dua query diatas adalah seperti ini.


Kesimpulan
Itulah penjelasan singkat mengenai graphql dan mekanisme akses api jika dibandingkan dengan REST.Sebagus-bagus teknologi jika solusi yang ditawarkan tidak tepat (tidak digunakan/tidak ada user/salah design) juga percuma. Sehingga, graphql ini hanyalah alternatif untuk mendesign arsitektur dari sistem yang kita buat. 




Oracle Stream Analytic - Twitter Stream Getting Started

Oracle Stream Analytic (OSA) adalah sebuah tool dari Oracle yang bertujuan untuk membaca data secara real-time dan terus menerus atau lebih dikenal dengan istilah Streeam. OSA dapat melakukan Stream untuk twitter berdasarkan akun dan/atau hashtag twitter yang didaftarkan sebagai filter. Stream ini sangat berguna untuk menganalisa trend tweet yang sedang menjadi top list. Dalam blog ini akan dijelaskan bagaimana caranya untuk melakukan Twitter Stream menggunakan OSA.

1. Mendapatkan Consumer Key, Consumer Secret, Access Token dan Access Token Secret dari apps.twitter.com. Caranya adalah dengan login ke tautan tersebut menggunakan akun Twitter yang sudah terdaftar dan melakukan permintaan untuk mendapatkan keempat kode rahasa tersebut.

2. Setelah mendapatkan keempat Key pada tahap 1, masuk ke dalam OSA dan masuk ke katalog seperti gambar di bawah


Untuk melakukan Twitter Stream, dibutuhkan minimal 3 komponen yang berada di dalam dropdown menu Create New Item, yaitu : 1. Connection 2. Stream dan 3. Exploration.

Connection : Pada part ini, koneksi yang dijadikan untuk sumber data stream dibentuk.

Stream : Pada part ini, kita akan mendefinisikan detail stream yang akan kita buat seperti jenis streaming, kata kunci streaming dan bentuk dari output streaming yang diinginkan.

Exploration : Pada part ini hasil streaming yang sudah didefinisikan sebelumnya akan ditampilkan. Kita dapat mengatur kecepatan stream, filtering, dan juga mengatur Business Rule sesuai kebutuhan.

3. Seperti yang sudah dijelaskan pada tahap dua, hal pertama yang dilakukan adalah membuat Connection dengan cara memilih dropdown Create New Item dan pilih Connection dan menu Connection terbuka seperti gambar dibawah :


Name : Diisi dengan nama koneksi yang akan kita buat.

Description : Diisi dengan deksripsi dari koneksi yang akan kita buat.

Tag : Diisi dengan tag untuk mempermudah proses pencarian dengan cara mengelompokkan berdasarkan tag.

Connection type : Jenis koneksi yang berisi beberapa pilihan. Untuk kasus ini kita pilih Twitter.

Selanjutnya kita memasukkan Consumer Key, Consumer Secret, Access Token dan Access Token Secret yang sebelumnya sudah didapatkan di tahap 1. Hal ini berguna untuk mendapatkan akses kedalam Twitter agar kita dapat melakukan streaming data. Setelah terisi semua lalu klik tombol Save.


3. Setelah koneksi sudah terbuat dengan benar, tahap selanjutnya adalah membuat Stream. Caranya sama dengan cara membuat Connection, yaitu klik dropdown Create New Item dan pilih Stream dan menu Stream akan terbuka.


Name : Diisi dengan nama Stream yang akan kita buat.

Description : Diisi dengan deksripsi dari Stream yang akan kita buat.

Tag : Diisi dengan tag untuk mempermudah proses pencarian dengan cara mengelompokkan berdasarkan tag.

Stream type : Jenis Stream yang berisi beberapa pilihan. Untuk kasus ini kita pilih Twitter.

Jika Checkbox kita centang, maka setelah pembuatan Stream ini menu Exploration akan otomatis terbuka tanpa harus kita membukanya manual dengan cara Create New Item.


Connection : Kita pilih koneksi yang sudah kita buat sebelumnya.

Hashtags : Diisi dengan list Hashtag atau String yang akan dijadikan sebagai parameter pencarian streamingnya. Jadi tweet yang akan tersaring adalah tweet yang mengandung kata-kata yang sudah kita definisikan di Hashtags.

Languages : Diisi dengan bahasa yang akan dijadikan sebagai parameter pencarian streaming. Jadi tweet yang akan tersaring adalah tweet yang berbahasa tertentu, jika ingin semua maka Languages tidak perlu diisi.

Users : Diisi dengan User ID yang akan dijadikan sebagai parameter pencarian streaming. Jadi tweet yang akan tersaring adalah tweet yang dibuat oleh akun tersebut.


Pada bagian ini, kita akan memilih Shape atau bentuk dari output streaming yang sudah kita define sebelumnya. Untuk Twitter Streaming, Shape hanya terdiri dari 1 shape yang sudah terdefinisi dan disesuaikan dengan twitter. Jika sudah terisi semua, klik tombol Save.

4. Karena sebelumnya kita mencentang checkbox pada tahap 3, maka menu Exploration akan otomatis terbuka. Jika tidak mencentang, caranya dengan klik dropdown Create New Item dan pilih Exploration.


Name : Diisi dengan nama Exploration yang akan kita buat.

Description : Diisi dengan deksripsi dari Exploration yang akan kita buat.

Tag : Diisi dengan tag untuk mempermudah proses pencarian dengan cara mengelompokkan berdasarkan tag.

Source : Diisi dengan nama Stream yang sudah kita buat sebelumnya.

Jika semua sudah diisi, klik tombol Create dan OSA akan mengarahkan kita ke dalam tampilan detail dari Exploration.



Tabel diatas adalah kumpulan tweet hasil dari Data Stream yang sudah kita definisikan pada tahap 3.

Sass - CSS with Superpowers

Hallo Teman-teman semuanya. kali ini saya akan mengenalkan Tentang salah satu Preprocessor css yang sudah cukup berkembang dan di akui sangat membantu oleh para Developer, khususnya teman-teman Front End.

Apa itu Sass?
SASS (Syntactically Awesome Stylesheet) adalah pra-prosesor CSS yang membantu untuk mengurangi pengulangan dengan CSS dan menghemat waktu. Sass membuat CSS lebih stabil dan lebih powerfull dengan ekstensi bahasa CSS yang menggambarkan style dokumen bersih dan struktural.

Mengapa Menggunakan Sass?
  1. SASS merupakan bahasa pra - pemprosesan yang menyediakan indentasi sintaks (syntax sendiri) untuk CSS.
  2. SASS menyediakan beberapa fitur yang digunakan untuk membuat stylesheet yang memungkinkan menulis kode lebih efisien dan mudah dalam maintenace / perbaikan.
  3. Berisi semua fitur CSS dan pra-prosesor open source, yang kodekan dalam pemograman Ruby.
  4. SASS menyediakan dokumen style dalam format struktur lebih baik dari pada CSS. Menggunakan metode yang dapat digunakan kembali, pernyataan logika dan beberapa fungsi yang dibangun seperti warna manipulasi, matematika dan parameter.

Sass Mempunyai 2 Extensi yaitu Sass itu sendiri, dan SCSS. Perbedaannya adalah jika Sass menghilangkan 'titik koma - ;' dan 'kurung kurawal - {}' dan SCSS masih menggunakan. kalau kita biasa menggunakan CSS Native, pasti akan lebih mudah untuk mempelajari Sass dengan SCSS.

Sass vs SCSS vs CSS

Mengapa SCSS?
  1. Readibility : syntax sangat mirip dengan CSS
  2. learning curve : masih menggunakan CSS dengan Fitur SASS
  3. compatibility; File CSS valid di SCSS
  4. resources: banyak artikel yang membahas tentang SCSS
  5. expandibility: mudah untuk pindah dari scss ke sass
Setelah mengenal Apa itu Sass berikut adalah cara Install Sass. Ada 2 metode untuk menginstall sass tersebut. 
yang pertama kita bisa menggunakan Aplikasi 

  • Code Kit (Paid)
  • Compass (Paid, Open Source)
  • Ghostlab (Paid)
  • Hammer (Paid)
  • Koala (Open Source)
  • LiveReload (Paid, Open Source) 
  • Prepros (Paid)
  • Scout-App (Free, Open Source) 
Lalu Bisa menggunakan Command Prompt atau Terminal
  1. Sebelum menginstall Sass kita harus mempunyai Ruby Terlebih Dahulu.  Install Ruby untuk Windows dan Linux bisa langsung dari Website Resmi Ruby https://www.ruby-lang.org. Untuk Mac karena sudah ada Ruby Kita tidak Perlu menginstallnya.
  2. Install Sass dengan menggunakan Command ini: sudo gem install sass
  3. Untuk Pengecekan Versi bisa menggunakan Command ini : sass -v
Setelah Berhasil Install Kita akan Belajar tentang Kelebihan Sass itu sendiri.
Ada beberapa keunggulan Sass yang tidak ada di CSS, berikut adalah keunggulan Sass:
  1. Variable
  2. Nesting
  3. Mixins
  4. Extend
  5. Operator

Variable

Dengan menggunakan Variable kita bisa menyimpan sebuah value tersebut untuk dapat di gunakan kembali saat penulisan Sebuah Class. 


Nesting

Di Sass CSS bisa menggunakan nesting untuk memberi style dengan lebih cepat

CSS                                             SCSS

Mixins

Tujuannya untuk Menghindari Pengulangan dengan style class yang sama

SCSS                                       CSS

Bisa Menggunakan Parameter untuk mendapatkan suatu Nilai


Extend

Tujuannya untuk mengambil style dari class lain.


Extend dan Mixin mempunyai fungsi yang sama yaitu untuk mengambil style dr class lain. bedanya di sini adalah, kalau mixin tidak bisa dipakai sebagai style karena bukan sebuah class, sedangkan extend bisa digunakan sebagai style di html karena dia adalah class. jadi untuk menggunakan mixin, kita harus memanggil di dalam class lain agar bisa dipakai di HTML.

Operator

 Kita juga bisa menggunakan Penambahan / Pengurangan/ Perkalian / Pembagian untuk mendapatkan suatu values.


Itu tadi adalah beberapa keunggulan Saas yang tidak bisa kita jumpai di CSS Native.

Jadi Kita sudah belajar tentang Sass. Menurut saya Sass ini memudahkan Developer untuk membuat CSS lebih terstruktur. selain itu Sass juga mempunyai banyak fitur untuk membuat mudah pengerjaan Styling dan juga Sass lebih berguna untuk Project yang besar karena untuk Projek yang Kecil butuh waktu untuk setting dan memahami fitur-fitur sass.

Terima Kasih Semoga bisa Menambah Ilmu Teman-teman semua!!

Sumber : 
http://marksheet.io/sass-mixins.html
http://sass-lang.com/

Thursday, December 14, 2017

Android Image Loader Library: Picasso

Salah satu library untuk pemuatan dan pemrosesan gambar yang sering digunakan adalah Picasso. Library ini dibuat dan dikelolah oleh Square. Picasso memudahkan untuk menampilkan gambar external baik berupa file ataupun gambar dari internet. Picasso menangani setiap prosesnya, mulai dari HTTP Request hingga caching dan masih banyak lagi fitur-fitur yang disediakan oleh Picasso.  Untuk mengimplementasikan tanpa libary butuh waktu dan code yang banyak. Kita lihat bagaimana penggunaan Picasso untuk kasus-kasus umum.

Installasi
Cukup tambahkan pada build.gradle project
 compile 'com.squareup.picasso:picasso:2.5.2'
untuk update versi terbaru dari Picasso bisa dilihat disini

Penggunaan
Buat layout untuk ImageView, contoh:
1:  <ImageView  
2:      android:id="@+id/imageView"   
3:      android:layout_width="wrap_content"  
4:      android:layout_height="wrap_content" />  

Pada Activity class tambahkan code berikut
1:      ImageView imageView = (ImageView) findViewById(R.id.imageView);  
2:      Picasso.with(this)  
3:          .load("http://just-example-url.cm/example/example.jpg")  
4:          .into(imageView);  

Pertama, ambil reference dari ImageView yang telah kita buat, lalu pass context dengan .with kemudian panggil .load dan berikan lokasi gambar yang ingin kita tampilkan (jika berupa url dari internet, jangan lupa tambahkan permission internet pada manifest). Terakhir beritahu Picasso untuk menampilkan gambar (pada contoh ini gambar ditampilkan pada imageView yang telah dibuat).

Fitur Lain
Contoh beberapa fitur yang disediakan oleh Picasso:
1. Mengubah size dari gambar sebelum ditampilkan
1:  ImageView imageView = (ImageView) findViewById(R.id.imageView);   
2:  Picasso.with(this)   
3:         .load("http://just-example-url.cm/example/example.jpg")   
4:         .resize(100, 100);  
5:         .into(imageView);   

2. Melakukan rotate dari gambar
1:  ImageView imageView = (ImageView) findViewById(R.id.imageView);   
2:  Picasso.with(this)   
3:         .load("http://just-example-url.cm/example/example.jpg")   
4:         .rotate(90);  
5:         .into(imageView);   

3. Menambahkan placeholder
1:  ImageView imageView = (ImageView) findViewById(R.id.imageView);   
2:  Picasso.with(this)   
3:         .load("http://just-example-url.cm/example/example.jpg")   
4:         .placeholder(R.drawable.image_name)  
5:         .into(imageView);   


4. Menampilkan error jika Picasso gagal menampilkan gambar dari url yang diberikan
1:  ImageView imageView = (ImageView) findViewById(R.id.imageView);   
2:  Picasso.with(this)   
3:         .load("http://just-example-url.cm/example/example.jpg")   
4:         .error(R.drawable.error_image_name)  
5:         .into(imageView);   

penggunaan fitur-fitur diatas juga bisa digabungkan dan masih banyak lg fitur-fitur lainnya yg belum disebutkan.
Kesimpulannya, Picasso akan sangat membantu jika aplikasi Android yang anda buat banyak berkaitan dengan gambar :)

Semoga membantu. Terima kasih

Reference:
http://square.github.io/picasso/

VIM-GO


Hello teman – teman kali ini saya akan share tentang vim go apa sih vim go ?.... vim go adalah plugin untuk menulis bahasa golang di text editor vim. Vim go ini ada beberapa fiture seperti :

1.     Keperluan kompailer golang
·      mengkompail golang  :GoBuild
·      menginstall  :GoInstall
·      test golang  :GoTest
·      menjalankan single test  :GoTestFunc

2.     Menjalankan file go  :GoRun

3.     Perbaikan dengan syntax berwarna

4.     Completion support via gocode

  1.         gofmt atau goimports pada saat menyimpan posisi kursor tetap dan history kembali .

  1.        Mendeklarasikan Simbol go :GoDef.

  1.        Melihat Dokumen :GoDoc atau:GoDocBrowser.

  1.        Mudah untuk import package dengan :GoImport, Untuk meremove dengan :GoDrop.

  1.        Otomatis GOPATH yang mana mendeteksi pekerjaan dengan gb dan godep. Untuk merubah dan menampilkan GOPATH dengan:GoPath.

  1.        Melihat code mana yang ter covered oleh test dengan :GoCoverage.

  1.        Menambahkan atau memindahkan tags di struct dengan :GoAddTags dan:GoRemoveTags.
  2.        Memanggil gometalinter dengan:GoMetaLinter untuk memohon semua mungkin di linters (golintveterrcheckdeadcode, etc.) dan meletakan hasil di quickfix atau location list.

  1.        Lint code dengan:GoLint, menjalankan code melalui:GoVet untuk catch static errors, atau memastikan errors checked dengan :GoErrCheck.

  1.        Alat analisis sumber lanjutan memanfaatkan guru, seperti:GoImplements:GoCallees, dan:GoReferrers.

  1.        Mengganti nama :GoRename.
... dan masih banyak lagi di doc/vim-go.txt 
INSTALL
Untuk menginstall vim go di vim.
  • Vim 8 packages
    • git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
  • Pathogen
    • git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go
  • vim-plug
    • Plug 'fatih/vim-go'



Berikut tampilan vim yang sudah memakai plugin vim-go


Referensi :