Kill processes that run on specific port

Sometime we need to kill processes on specified port in order to run another new processes on the locked port / used port.

Some error regarding locaked port issues

Error: That port is already in use.

 

Failed to listen on localhost:8000 (reason: Address already in use)

 

Solution for errors above

sudo fuser -k 8000/tcp

sudo fuser -k 8000/tcp

Golang: Error Handling in Go Programming

Return Error


package main

import (
	"errors"
	"fmt"
)

func sum(a int, b int) (int, error) {

	x := a + b

	if a < 0 || b < 0 {
		return x, errors.New("value should be greater than zero")
	}

	return x, nil
}

func main() {
	a := 12
	b := -1

	x, err := sum(a, b)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(x)
}

Panic and Recover from panic

package main

import (
	//	"errors"
	"fmt"
)

func sum(a int, b int) (int, error) {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println("Wow Error: ", err)
		}
	}()

	x := a + b

	if a < 0 || b < 0 {
		panic("I am panicking kaka")
	}

	return x, nil
}

func main() {
	a := 12
	b := -1

	x, err := sum(a, b)

	fmt.Println(x)
	fmt.Println(err)
}

Golang: Structs Methods and Interface

Go Struct, Methods and Embedding example

package main

import "fmt"

type User struct {
	name, address string
}

type Employee struct {
	level  int
	salary int
	user   User // Embedding
}

/**
 * Greating for User
 */
func (u User) Greeting() string {
	return fmt.Sprintf("Dear %s %s", u.name, u.address)
}

/**
 * Greating for User
 */
func (e Employee) Greeting() string {
	return fmt.Sprintf("Your level %d, Your salary %d", e.level, e.salary)
}

func main() {
	user := User{"Yazid", "Jalan munukan no.19"}

	fmt.Println(user.Greeting())

	employee := Employee{1, 2000, user}

	fmt.Println(employee.user.Greeting())
	fmt.Println(employee.Greeting())
}

Using Pointer to keep the lowest amount of structs per file

package main

import (
	"fmt"
)

type User struct {
	FirstName, LastName string
}

func (u *User) Greeting() string {
	return fmt.Sprintf("Dear %s %s", u.FirstName, u.LastName)
}
func main() {
	u := &User{"Yusuf", "Ibrahim"}
	fmt.Println(u.Greeting())
}

Golang Interface Example

package main

import (
	"fmt"
)

type User struct {
	FirstName, LastName, address string
}

func (u *User) Name() string {
	return fmt.Sprintf("%s %s", u.FirstName, u.LastName)
}

func (u *User) Address() string {
	return fmt.Sprintf("%s", u.address)
}

type Customer struct {
	Id                int
	FullName, address string
}

func (c *Customer) Name() string {
	return c.FullName
}

func (c *Customer) Address() string {
	return fmt.Sprintf("%s", c.address)
}

type Namer interface {
	Name() string
	Address() string
}

func Greet(n Namer) string {
	return fmt.Sprintf("Dear %s at %s", n.Name(), n.Address())
}
func main() {
	u := &User{"Matt", "Aimonetti", "jalan Banda"}
	fmt.Println(Greet(u))

	c := &Customer{42, "Francesc", "jalan Banda"}
	fmt.Println(Greet(c))
}

Golang: Map, Hashes, Dictionary

Pelatihan Pemrograman Java Web dengan Spring Boot Gratis klik disini.

Pelatihan Pemrograman Web dengan Java secara gratis dibimbing oleh trainers yang berpengalaman dibidang pengembangan applikasi berbasis Java enterprise.

Peserta per batch dibatasi hanya 15 orang.

WhatsApp Image 2020-03-10 at 08.55.54

Daftar Java web Bootcamp Gratis disini https://www.beanary.tech/ 

 

 

 

Golang Maps are similar to what other language call ‘dictionaries’ or ‘hashes’.

 

package main

import "fmt"

var names = map[string]int{"Katrina": 10, "Evan": 11, "Neil": 12}

func main() {
    //  fmt.Printf("%#v", names)

    for x, _ := range names {
        fmt.Println(x)
    }
    // Output:
    // Katrina
    // Evan
    // Neil

    for _, name := range names {
        fmt.Println(name)
    }
    // Output:
    // 10
    // 11
    // 12

    for x, name := range names {
        fmt.Printf("%s : %d \n", x, name)
    }
    // Output
    // Katrina : 10
    // Evan : 11
    // Neil : 12

}

Add / Append new data to a map


package main

import "fmt"

func main() {
	names := make(map[string]int)
	//	fmt.Printf("%#v", names)

	names["jhony"] = 1
	names["beta"] = 2

	for x, name := range names {
		fmt.Printf("%s : %d \n", x, name)
	}

}

Collection of objects


package main

import "fmt"

type Person struct {
	name, address string
}

func main() {
	jelemas := make(map[string]Person)

	jelemas["Yoesoff"] = Person{"yusuf", "Jl. Wakwau no.09"}
	jelemas["Yuka"] = Person{"gokana", "Jl. Wakwau no.90"}
	jelemas["Mumun"] = Person{"pocong", "Jl. Wakwau no.99"}

	//	fmt.Printf("%#v", names)
	for x, wong := range jelemas {
		fmt.Printf("%s : %s (%s) \n", x, wong.name, wong.address)
	}

	// Output
	// Yuka : gokana (Jl. Wakwau no.90)
	// Mumun : pocong (Jl. Wakwau no.99)
	// Yoesoff : yusuf (Jl. Wakwau no.09) 

}

Remove / Delete item from map


package main

import "fmt"

type Person struct {
	name, address string
}

func main() {
	jelemas := make(map[string]Person)

	jelemas["Yoesoff"] = Person{"yusuf", "Jl. Wakwau no.09"}
	jelemas["Yuka"] = Person{"gokana", "Jl. Wakwau no.90"}
	jelemas["Mumun"] = Person{"pocong", "Jl. Wakwau no.99"}

	//	fmt.Printf("%#v", names)
	for x, wong := range jelemas {
		fmt.Printf("%s : %s (%s) \n", x, wong.name, wong.address)
	}

	// Output
	// Yuka : gokana (Jl. Wakwau no.90)
	// Mumun : pocong (Jl. Wakwau no.99)
	// Yoesoff : yusuf (Jl. Wakwau no.09)

	delete(jelemas, "Mumun")

	fmt.Println("Delete Mumun (Because he is scary)")
	for x, wong := range jelemas {
		fmt.Printf("%s : %s (%s) \n", x, wong.name, wong.address)
	}

	// Output
	// Delete Mumun (Because he is scary)
	// Yoesoff : yusuf (Jl. Wakwau no.09)
	// Yuka : gokana (Jl. Wakwau no.90)

}

Check Element existence in a map


	// Check Element
	_, ok := jelemas["Yuka"]

	fmt.Println(ok)

	_, ok = jelemas["Mumun"]

	fmt.Println(ok)

Soft Skills Untuk Pekerja IT

Pendahuluan

Saat mencari perkerjaan atau memulai mendirikan sebuah perusahaan kita membutuhkan berbagai keahlian dan sumber daya. Kitabisa mendapatkan keahlian dari tempat kursus atau magang. tetapi mendapatkan perkerjaan itu bukan hanya tentang kemampuat untuk melakukan hal spesifik dengan hasil yang baik, ada hal lain yang diperlukan untuk dapat mraih kesuksesan dalam dunia kerja yaitu soft skills.

Soft skill mengacu pada kualitas personal dan professional seseorang yang dapat membantu seseorang dalam meraih peluang yang lebih baik dalam karir. Soft skill merupakan hall yang penting karena mengacu pada kemampuan kita bekerja dalam sebuah grup/team atau berkerja independent sebagai seorang remote worker.

Soft skills mengacu pada beberapa hal di bawah ini:

  1. problem solving / kemampuan menyelesaikan masalah
  2. critical thinking / berfikir kritis
  3. confidence / percaya diri
  4. attitude / perilaku

Kita memerlukan kemampuan soft skills karena kita tidak bekerja sendirian dalam gua atau selamanya hanya mengerjakan personal project, soft skill sangat diperlukan dalam menata karir dalam bidang teknologi (dan bidang lain tentunya).

Dan inilah mengapa jika Anda sedang mencari klien akan tetapi Anda sendiri memiliki sikap buruk maka tak seorang pun yang akan tertarik untuk mempekerjakan Anda.

Jika Anda tidak bisa fleksibel dalam menerima saran atau menerima umpan balik, maka tak seorang pun akan ingin berbagi ide-ide mereka dengan Anda.

Dan jika Anda tidak bisa bekerja sama dalam tim atau bekerja sama dengan baik dengan orang lain, maka tak seorang pun akan ingin bekerja sama dengan Anda.

Dan Anda akan menemukan bahwa banyak dari soft skills ini akan berguna di luar pekerjaan juga juga.


Jika Anda dapat menjadi komunikator yang efektif, mengatur waktu Anda, bekerja dengan baik dengan orang lain, dan menjadi pemecah berbagai masalah besar dengan berbagai solusi maka anda akan memiliki lebih banyak keberhasilan dalam apa pun yang Anda lakukan.

Berkomunikasi secara efektif

Keahlian terpenting sebagai seorang prosefional adalah keahlian dalam melakukan komunikasi yang efektif.

Untuk menjadi seorang komunikator yang efektif maka kamu harus memahami beberapa hal sebagai berikut, yaitu:

  1. what to say
  2. how to say it
  3. when and where to say it
  4. when it’s best to say nothing at all

Tidak semua cara berkomunikasi itu sama, terutama didalam dunia yang serba digital seperti saat ini, berkomunikasi dengan orang lain dapat berbeda tergantung dengan medium komunikasi yang digunakan, medium komunikasi dalam bekerja dapat menggunakan berbagai-macam hal, yaitu:

  1. Phone
  2. Video chat
  3. Emails
  4. Text messages.

Memilih medium komunikasi tergantung pada sebarapa penting pesan maupun seberapa besar skope bahasan selain itu juga harus memastikan ekpektasi dan avaiability dari orang-orang  yang dikirimi pesan.

Kita biasanya bekerja dan berkomunikasi dengan internal perusahaan kira sendiri maupun juga dengan pihak external, oleh karena itu sebaiknya berhati hati dalam mengirimkan pesan terutama pesan berantai.

Hubungan dengan pihak external seperti contractors, sponsors, corporate partners dan lainnya bisa jadi lebih sensitif dan rapuh oleh karena itu harus benar-benar dijaga dengan baik.

Well, people will communicate with you if you know how to communicate with them.

 

Fleksibilitas dan Manajemen waktu

Hampir tidak ada seuatu yang berjalan smpurna seperti apa yang direncanakan dalam dunia ini, apakah kamu seorang freelancer atau pekerja yang bekerja dari rumah, kita tidak bisa menjamin bahwa segala hal berjalan sesuai dengan jadwal dan rencana,

resources, project scope, dan banyak variable lainnya yang memberikan efek pada pekerjaan kita.

Dalam dunia nyata kehidupan sering memberi kita banyak rintangan dan tantangan, disinilah kemampuan kita beradaptasi menjadi sangat penting untuk beradaptasi dengan linkungan dan keadaan.

Definisi kesuksesan pada hal ini adalah kemampuan untuk menjadi fleksibel dan menyelesaikan pekerjaan.

Belajar untuk memanage waktu adalah hal yang sangat penting dengan banyaknya pekerjaan dan tantangan yang ada kemampuan kita memanage waktu menjadi penentu kualitas diri kita.

Bekerja dengan team atau dengan bos kita kemampuan memanage prioritas pekerjaan memberikan kita kemampuan untuk fokus pada hal benar.

Bila kamu adalah seorang freelancer maka kemampuan ini menjadi harus lebih terasah dengan baik lagi karena kita bekerja sendiri dan tidak  ada yang mengatur prioritas pekerjaan untuk kita sehingga kita harus memastikan segala hal berjalan dan selesai sesuai dengan rencana yang telah ditentukan seorang diri.

Menjaga fokus adalah hal yang sangat penting.

Terkadang pada berbagai situasi berbagai hal bisa terjadi untuk mengganggu rencana dan pekerjaan yang sedang berjalan seperti  project baru, masalah baru, dan perubahan pada pekerjaan yang sudah selesai.

Hal-hal itu sangat ungkin untuk terjadi sehingga hal pertama yang harus di lakukan adalah melakukan evaluasi seberapa penting hal baru tersebut dan mengevaluasi juga tentang  informasi tersebut.

Apakah ini akan membuatmu jadi terlambat?  dapatkan kamu kerjakan, atau ada hal lain yang harus kamu kerjakan terlebih dahulu ?

Setalah kamu menentukan mana hal yang harus dikerjakan maka sebarkan berita pada yang lain supaya mereka memahami keadaan yang berlaku serta daat memahami tentang efek apa saja yang saja yang akan terjadi dan mengapa itu harus terjadi.

Hal ini memberikan kepada kita poin dari cara berkomuniaksi yang efektif.

Sebagai pekerja, freelancer atau sebagai anggota dari team maka nilai kita akan bertambah bila kita tau cara menata waktu dan ekpektasi dengan efektif.

Problem Solving

Bila sebelumnya anda pernah mengembangkan web atau applikasi lainnya maka anda memiliki kesempatan untuk memikirkan cara-cara yang dapat digunakan untuk memecahkan masalah yang berbeda-beda, baik itu masalah dari dari klien atau masalah teknis anda sendiri.
Memecahkan masalah memberi Anda berbagai kesempatan untuk mengambil langkah maju dalam proyek dan belajar pelajaran untuk masa depan.

Tetapi bahkan jika Anda belum memiliki pengalaman sebelumnya tentang masalah yang dihadapai, langkah pertama dalam pemecahan masalah adalah menerima kenyataan bahwa ada masalah.

Klien, kolega, dan lain-lain mungkin datang kepada Anda dengan beberapa jenis masalah.

Mereka mungkin akan mencurahkan pesan ketakutan, atau marah, dan meminta Anda untuk memperbaiki sesuatu.
Alasan mereka datang kepada Anda adalah karena mereka percaya Anda memiliki keahlian untuk menangani masalah ini.

Jadi, apapun itu baik memang tanggung jawab anda atau bukan, jangan sekali-kali abaikan teriakan minta tolong mereka dan tanggapilah mereka dengan memberi bantuan.

Sebelum sesuatu yang lebih lanjut terjadi dengan dengan masalah tersebut, Anda juga perlu memahami langkah-langkah apa yang harus dilakukan berikutnya.

Banyak tempat yang cukup fleksibel yang mana anda dapat langsung memperbaiki masalah tersebut, tapi jika anda bekerja disuatu perusahaan yang memiliki SOP tertentu dalam menangani suatu permasalahan makalah bantulah mereka untuk menghubungi orang yang tepat didepartemen yang tepat. minta mereka untuk mengisi formulir dukungan ini sehingga kita memiliki semua informasi.
Ini mungkin tidak terdengar seperti bantuan secara langsung, tetapi dalam perusahaan yang mengandalkan proses bantuan seperti ini penting untuk menyimpan data terorganisir sehingga tidak celah untuk terjadi masalah yang lain lagi.

Jika anda dapat masuk dalam penyelesaian masalah tersebut maka mulai dengan mendapatkan rincian tentang masalah yang dihadapi.
Ketika masalah sedikit lebih kompleks atau memerlukan beberapa tindakan untuk memecahkannya, Anda harus mengumpulkan informasi dan membagi memprioritaskan.

Sekali lagi, ini datang kembali ke fleksibilitas manajemen waktu. Apakah ini membutuhkan perhatian Anda segera ?

Adalah masalah mereka ajukan benar-benar masalah yang sebenarnya? Beberapa masalah sebenarnya gejala dari masalah yang berbeda, dan ini adalah di mana pengalaman Anda dapat digunakan untuk memahami masalah tersebut.

Ingat, klien dan kolega/team Anda tidak selalu tahu apa yang benar-benar salah atau bagaimana memperbaikinya. Itu sebabnya mereka datang kepada Anda di sebagai pertolongan pertama.

Jadi, luangkan waktu untuk memahami situasi. Tidak semua masalah memerlukan memperbaiki yang sama.


Rincian dapat bervariasi dari satu proyek ke proyek lainnya, dan yang terpenting bahwa kita melakukan apa yang terbaik yang kita lakukan, ketika itu tanggung jawab kita untuk memperbaiki berbagai macam hal.

Maka pada setiap saat usahakan untuk tetap berkomunikasi. Membantu mereka untuk menciptakan beberapa harapan perbaikan yang lebih baik.

Masalah biasanya dikomunikasikan karena ada sesuatu yang rusak atau ada semacam urgensi dengan suatu isu yang ada atau keduanya.

Orang-orang perlu tahu kapan sesuatu bisa diperbaiki, karena mereka sering harus melaporkan kembali kepada orang lain seperti pelanggan marah atau manajer yang gugup.
Sekarang, jika Anda bekerja pada penyelesaian suatu masalah, selalu diingat apa hasil akhir yang diharapkan untuk menjadi jalan keluar.

Krisis bukanlah waktu untuk meningkatkan midstream proses atau menerapkan hal-hal yang tidak berkaitan dengan masalah. Tetap fokus. Berurusan dengan bagian yang paling penting dari masalah pertama.

Jika tiba-tiba Anda memiliki pemikiran yang lebih jauh, maka sebaiknya melaporkan kembali ke tim Anda tentang bagaimana masalah ini dapat dihindari di masa depan
tapi tentunya melakukannya di lain waktu setelah masa krisis berlalu.

Dengan sedikit keberuntungan, Anda akan menemukan sumber masalah dan mengusulkan perbaikan yang tepat sehingga dapat menyelamatkan orang lain dari panggilan darurat  pelanggan tidak akan harus berurusan dengan drama yang sama lagi.

Pada akhirnya, jujur. Tidak semua masalah dapat diatasi dengan perubahan kode cepat atau dengan  reboot komputer Anda. Kadang-kadang ada  hal yang benar-benar rusak.

Jika ada sesuatu yang di luar kemampuan Anda atau ruang lingkup pekerjaan Anda, maka lakukanlah hal terbaik yang bisa anda lakukan kemudian mengarahkan mereka ke arah yang benar. Kadang-kadang solusi yang benar  hanya tinggal satu langkah lagi.

Yang harus Anda lakukan adalah melakukan hal terbaik  bersama-sama dan kemudian memiliki orang yang tepat datang dan berurusan dengan masalah tersebut.

Jadi, bagaimana ini dapat menguntungkan Anda?

Jika Anda tidak dapat bekerja melalui masalah tak terduga, Anda tidak akan berhasil sebagai seorang desainer, sebagai pengembang, manajer proyek, atau benar-benar menjadi seseorang yang profesional.

Bahkan jika masalah tidak  dapat diatasi, kenyataan bahwa Anda mencoba untuk memperbaikinya jauh lebih berarti  banyak daripada tidak mencoba sama sekali
tapi tentunya memecahkan masalah lebih dapat untuk memberikan pengalaman belajar dan akan membuat Anda lebih baik pada apa pun yang Anda lakukan. 

Bekerja dengan Team

Bekerja sebagai pengembang applikasi komputer bisa jadi menjadi sutu perkerjaan yang sangat menyendiri.

Pada banyak orang lebih mudah untuk mengerjakan segaa sesuatu seorang diri dengan caranya sendiri, tidak perlu ada orang lain untuk di urusi dan tidak perlu ada orang lain untuk di tunggu.Tetapi bekerja dengan team dan perusahaan atau bahkan freelancer yang bekerja sebagai bagian dari team menjadi bagian dari suatu pengalaman kerja.Maka ini sangat penting untuk dapat bekerja dengan efektif dengan team karena team tidak akan bekerja dengan baik bila target kerja/ekpektasi tidak bekerja dengan baik.Dengan project yang berjalan team harus dapat terorganisir dengan baik dan fokus pada pekerjaan dan timeline yang spesifik.

Memahami ekpektasi orang lain di team membantu anda untuk menata prioritas dan memanage waktu.

Tanpa pemahaman anda mungkin akan bekerja pada bagian dari project yang team sebenarnya belum perlukan, atau bahkan mengerjakan hal yang tidak sesuai dengan harapan dan target yang ingin di capai oleh team.

Setiap anggota teams harus seringberbagi  files, documents, dan  assets lainnya untuk mendukun project deliverables.

Memastikan bahwa kamu memiliki akses pada data terbaru berarti beradaptasi dengan perlengkapan dan platform yang sama dengan yang team member lain gunakan.

Pada kondisi yang lebih pasti anda dapat menemukan berbagai macam hal pada satu tempat, anda dapat mencoba beberapa alat untuk kolaborsi untuk dapat melihat apa yang sebenarnya sedang terjadi.

Dengan setiap project yang ada, pastokan anda mengetahui informasi terakhir dan kamu akan tetap pada jadwal.

Berhubungan dengan ini, komunikasi sesama anggota team sangatlah penting.

Kita tahu sesuatu dapat saja mengacaukan project dan jadwal yang sudah di atur, efek dapat menjadi lebih besar saat kekacauan itu melibatkan team yang tidak terkomunikasi dengan baik.

Pastikan anda dan team anda secara rutin membagikan laporan progres dan membagikan masalah yang sedang dihadapi.

Jangan takut untuk berbagi setiap masalah yang dihadapi, jadilah untuk terbuka.

Dan selain itu semua memahami bahwa bekerja sama dalam team berarti berinteraksi dengan orang lain siapapun mereka, maka hargailah mereka dan perlakukan secara professional.

Menerima Masukan

Sebagai desainer atau developer anda tidak bekerja sendiri, kecuali anda membuat sesuatu untuk diri anda sendiri, orang lain akan melihat, menggunakan dan memberikan masukan tentang apa yang anda kerjakan.

Jika anda tidak terbiasa menerima masukan dan kritik maka bekerja di industri teknologi dapat menjadi sesuatu tidak menyenangkan, dan hal lain lagi adalah pahami masukan yang kamu terima dan juga bagaimana cara meningkatkan kemampuan kita dimasa depan supaya menjadi sesuatu yang lebih baik lagi.

Kemampuan untuk melihat perspektif yang berbeda adalah sesuatu hal yang sangat berharga. mengertahui bagaimana orang lain berfikit,  apakah ini berasal dari survei Google Analytics atau survey2 lainnya adalah suatu hal yang sangat berharga.

Mendapatkan masukan dapat meningkatkan kemampuan bekerja kita dan menjadi terbuka atas masukan adalah hal yang baik yang akan terbayar kelak.

Jika anda memberitahukan orang lain bahwa anda menerima masukan, terkadang anda akan merasa sangat tertolong dengan informasi yang diberikan walau kadang juga tidak.

Perbedaan antara masukan posifitf dan negatif sangatlah mudah untuk di temukan akan tetapi mengindentfikasi masukan membangun ataukritik dapat ebih sulit.

Melaporkan shopping cart yang tidak berfungsi atau typo dapan menjadi bantuan masukan yang jelas tetapi kadang orang-orang memberikan masukan yang tampaknya lebih seperti opini yang tidak dapat menolong.

Dan juga, mengurai masukan mereka menjadi komponen-komponen kecil membantu untuk memahami masalah sebenarnya dan juga memahami apakah yang mereka temukan itu masalah atau bukan.

Apakah fakta dari aporan mereka dan bagaimana efeknya pada project ini ? dan jika iya adakah solusi yang bisa diambil ?

Mempertimbangkan masukan dan melakukan evaluasi lalu mengambil tindakan, jika tidak jelas maka kembalikan pada mereka dan minta klarifikasi.

Dan yang terburuk adalah mengabaikannya saja bila komunikasi yang terjadi sangat buruk.

Pastikan anda tau permasalahan utamanya, karena masalah yang tidak terselesaikan akan berubah jadi banyak permasalahan lainnya nanti.

Dan yang terakhir, jadilah jujur dan hadapi masukan yang kamu terima.

Sebagai desaigner atau developer tidak membuat kamu menjadi seseorang yang sempurna, terima masukan dan belajar bagaimana memperbaiki diri.

Kita memang tidak bisa untuk menjadi selalu sempurna.

Apapun yang menjadi masukan, berterima kasihlah pada yang memberi masukan tersebut, dan jika perluberika mereka informasi tentang bagaimana permasalahan akan diperbaiki, menjadi terbuka pada masukan berarti keinginan untuk lebih fleksibel, berubah, memperbaiki dan meningkatkan kualitas project yang sedang dikerjakan.

Jika kamu membuka komunikasi maka semua akan lebih baik, kamu tidak bisa mendapatkann team yang lebih baik dari yang senang memberikan masukan. maka jadi seseorang yang mau menerima masukan dari orang lain dan mereka juga sebaliknya akan menjadi lebih terbuka saat kamu membrikan masukan kepada mereka.

 

Keahlian Tambahan