Skip to main content

Posts

Showing posts with the label presentation

Goroutines

Goroutine is an abstraction of go runtime for parallelism and concurrency. Go on runtime has its scheduler, which distributes goroutines to OS threads. The scheduler is split for each native OS thread scheduler, and each scheduler can steal work from others. I have done quite a lot of actor programming and know a little about different concurrency models. Go's goroutines can be compared to green threads or Erlang VM's processes, although the go community avoids making such comparisons. The best part of go concurrency is that it is not based on relatively inefficient OS threads. Creating a thread and switching between them is an expensive operation both in CPU cycles and memory terms. Goroutines should communicate with each other by messaging and not sharing memory. The Effective Go guide states that  Do not communicate by sharing memory; instead, share memory by communicating.  A Gouroutine can use a message channel to communicate with other goroutines. Sim...

Speaking to students

Given there is a chance, I'm eager to give a tech talk to any kind of audience which is willing to have a listen. Part of the fun of giving a speech is of course also learning something about the subject and also, improving myself as a speaker.  Two of the most recent talks I've held this year have been to the local university IT students. Having been one of them in the past, I knew that giving them something uninspiring to do would be something they are used to. The challenge would be to figure out something actually fun which can be accomplished in a matter of a couple of hours. There are countless blog posts and tutorials about how to talk to students, but I decided to ignore them and wing it. I gave two assignments to choose from. First one was to make a DVD screen saver with JS. There was a short-lived internet meme about it earlier this year, and I thought that hey this could be fun. It turned out to be quite amusing to watch at least especially when mixe...