Skip to main content

Posts

Showing posts from October, 2017

Disappointment

My employer laid a bunch off people yesterday. While I still have a job, this makes me really sad. I feel bad for those people that didn't have a job to go to this morning - some of them have worked here a long time, some of them are good friends, some acquaintances, some I can't really say I know. I'm sure they will find good jobs elsewhere - unemployment here in Iceland is very low these days, but then again, there aren't that many game developers. For some, this will mean not only changing jobs, but moving to a different country, on a very short notice. While that can be exciting, it can also be very upsetting. I mostly feel disappointed. I really believed this company had evolved past this sort of behavior. We've seen layoffs here before - it was painful, and we've really made an effort of avoiding getting ourselves into this situation. Or so I thought. Shifting focus is sometimes - often, maybe - necessary. I just wish companies could do that without

Mnesia queries

I've added search and trim to my  expiring records  module in Erlang. This started out as an  in-memory  key/value store, that I then migrated over to  using Mnesia  and eventually to a  replicated Mnesia  table. The  fetch/1  function is already doing a simple query, with  match_object . Result = mnesia : match_object ( expiring_records , # record { key = Key , value = '_' , expires_at = '_' }, read ) The three parameters there are the name of the table -  expiring_records , the matching pattern and the lock type (read lock). The  fetch/1  function looks up the key as it was added to the table with  store/3 . If the key is a tuple, we can also do a partial match: Result = mnesia : match_object ( expiring_records , # record { key = { '_' , " bongo " }, value = '_' , expires_at = '_' }, read ) I've added a  search/1  function the module that takes in a matching pattern and returns a list of items wh

Go, bots, go!

Earlier this year I started experimenting with the  Xmpp   protocol , and implemented bots in Python to communicate with an Xmpp server. I've now revisited those bots and reimplemented them in  Go . I've been meaning to learn Go for quite a while, and this seemed like a reasonable first project to tackle. The source code lives on GitHub:  https://github.com/snorristurluson/xmpp-chatbot If you are an experienced Go developer, I would appreciate any feedback and suggestions on how to improve the code - if you are just starting out with Go like myself, I hope this blog and the code is useful to you. As  before , I'm using  Prosody  to communicate with. Just like I did in Python, my first experiment is to simply open up a socket and poke the server to see where that takes us: func main () { conn , err := net. Dial ( " tcp " , " localhost:5222 " ) if err != nil { fmt. Errorf ( " Couldn't connect " ) } messa