···11-baseURL = "/"
22-languageCode = "en-gb"
11+base_url = "/"
22+default_language = "en"
33+34title = "Hauleth's blog"
44-theme = "terminal"
55+description = "Blog about BEAM, Rust, fantasy & stuff"
5666-[params]
77- contentTypeName = "post"
88- themeColor = "orange"
99- fullWidthTheme = false
1010- centerTheme = true
77+theme = "zerm"
1181212-[languages]
1313- [languages.en]
1414- subtitle = "Blog about BEAM, Rust, fantasy & stuff"
1515- keywords = ""
1616- copyright = ""
1717- menuMore = "Show more"
1818- readMore = "Read more"
1919- readOtherPosts = "Read other posts"
99+highlight_code = true
1010+highlight_theme = "nord"
1111+generate_feed = true
20122121- [languages.en.params.logo]
2222- logoText = "Hauleth"
2323- logoHomeLink = "/"
1313+taxonomies = [
1414+ {name = "tags"},
1515+ {name = "categories"},
1616+]
24172525- [languages.en.menu]
2626- [[languages.en.menu.main]]
2727- identifier = "twitter"
2828- name = "Twitter"
2929- url = "https://twitter.com/hauleth"
3030- [[languages.en.menu.main]]
3131- identifier = "github"
3232- name = "GitHub"
3333- url = "https://github.com/hauleth"
3434- [[languages.en.menu.main]]
3535- identifier = "gitlab"
3636- name = "GitLab"
3737- url = "https://gitlab.com/hauleth"
1818+[extra]
1919+author = "Łukasz Niemier"
2020+theme_color = "blue"
2121+2222+logo_text = "~hauleth"
2323+logo_home_link = "/"
2424+2525+show_author = false
2626+show_categories = true
2727+show_tags = true
2828+2929+# How many menu items to show on desktop. if you set this to 0, only submenu
3030+# button will be visible.
3131+show_menu_items = 10
3232+3333+# set theme to full screen width.
3434+full_width = false
3535+3636+# center theme with default width.
3737+center = true
3838+3939+# Set a custom preview image for your website when posted as a link.
4040+# Must be placed in root of static/ directory...
4141+# og_preview_img = ""
4242+4343+# Copyright notice if desired. Defaults to
4444+# copyright = "copyright notice here"
4545+4646+# Menu items to display. You define a url and the name of the menu item.
4747+# NOTE: `$BASE_URL/` must be included in the url name.
4848+main_menu = [
4949+ {url="/about/", name="about"},
5050+ {url="https://twitter.com/hauleth", name="twitter"},
5151+ {url="https://github.com/hauleth", name="github"},
5252+ {url="https://gitlab.com/hauleth", name="gitlab"},
5353+]
5454+5555+# Displayed as title of drop-down menu when size of main_menu > show_menu_items.
5656+menu_more = "show more"
5757+5858+# Displayed after teaser text for a blog post.
5959+read_more = "read more"
6060+6161+# not currently used from previous theme, but leaving here for now in case I
6262+# feel like adding it.
6363+read_other_posts = "read other posts"
···11----
22-title: "Common Test for Elixir developers"
33-date: 2019-07-15T14:31:21+02:00
44-description: "What is Common Test and how we can use it in Elixir"
55-tags:
66- - erlang
77- - beam
88- - elixir
99- - testing
1010- - programming
1111- - common_test
1212- - commoner
1313----
11++++
22+title = "Common Test for Elixir developers"
33+date = 2019-07-15
44+55+[taxonomies]
66+tags = [
77+ "erlang",
88+ "beam",
99+ "elixir",
1010+ "testing",
1111+ "programming",
1212+ "common_test",
1313+ "commoner"
1414+]
1515++++
14161517In my new job I have opportunity to work a little bit more with Erlang code and
1618Erlang related tools than earlier. That forced me a little to learn and use
···5759 SNMP, FTP, Erlang RPC, netconf)
5860- Built in support for data fixtures
5961- Built in support for complex configuration of test runs via [test
6060- specifications](http://www.erlang.org/doc/man/run_test_chapter.html#test-specification-syntax)
6262+ specifications](http://erlang.org/doc/apps/common_test/run_test_chapter.html#test-specifications)
6163- Built in logging (we will cover that later)
62646365So as you can see, the Common Test is much broader and complex, but at the same
···121123
122124123125Additionally there is support Surefire XML output (commonly known as JUnit XML)
124124-via [hook that is distributed with Common Test](http://www.erlang.org/doc/man/ct_hooks_chapter.html#built-in-cths).
126126+via [hook that is distributed with Common Test](http://erlang.org/doc/apps/common_test/ct_hooks_chapter.html#built-in-cths).
125127This is very useful, as many CI services (for sure Jenkins, Circle CI, and
126128GitLab CI) support such files to provide better CI results than raw stdout.
127129···173175174176- José Valim - for reading it through and reviewing before publishing
175177176176-[ct]: http://www.erlang.org/doc/man/basics_chapter.html
178178+[ct]: http://erlang.org/doc/apps/common_test/basics_chapter.html
177179[ctex]: https://github.com/Comcast/ctex
178180[commoner]: https://github.com/hauleth/commoner
179181[forum]: https://elixirforum.com/t/commoner-elixir-wrapper-for-common-test-library/23966?u=hauleth
+14-11
content/post/eli5-ownership.md
···11----
22-date: 2019-07-14T17:38:48+01:00
33-description: "Simple introduction to Rust's ownership system"
44-title: "Here be (owned) books"
55-tags:
66- - rust
77- - programming
88- - ownership
99- - eli5
1010- - borrowing
1111----
11++++
22+date = 2019-07-14T17:38:48+01:00
33+description = "Simple introduction to Rust's ownership system"
44+title = "Here be (owned) books"
55+66+[taxonomies]
77+tags = [
88+ "rust",
99+ "programming",
1010+ "ownership",
1111+ "eli5",
1212+ "borrowing"
1313+]
1414++++
12151316One of Rust's biggest pros is its unique ownership system. Unfortunately, it is
1417also one of the hardest things to learn. In this article I will try to explain
+16-13
content/post/elixir-application.md
···11----
22-title: "Let's talk about `application/0`"
33-date: 2019-07-26T11:36:01+02:00
44-description: |
55- Have you ever thought about that one simple function in your `mix.exs`? It
66- comes out as quite powerful and useful place for storing configuration and
77- post-launch scripts.
88-tags:
99- - elixir
1010- - erlang
1111- - beam
1212- - programming
1313----
11++++
22+title = "Let's talk about `application/0`"
33+date = 2019-07-26
44+description = """
55+Have you ever thought about that one simple function in your `mix.exs`? It
66+comes out as quite powerful and useful place for storing configuration and
77+post-launch scripts."""
88+99+[taxonomies]
1010+tags = [
1111+ "elixir",
1212+ "erlang",
1313+ "beam",
1414+ "programming"
1515+]
1616++++
14171518When you start your new Elixir project via `mix new my_awesome_project` you will
1619end with something like this in `mix.exs`:
+5-5
content/post/erlang-in-mix.md
···11----
22-title: "Erlang in Mix"
33-date: 2019-07-24T12:32:07+02:00
44-draft: true
55----
11++++
22+title = "Erlang in Mix"
33+date = 2019-07-24T12:32:07+02:00
44+draft = true
55++++
6677Currently there are 3 main build tools in BEAM world:
88
+10-7
content/post/stop-spreading-crap-at-my-home.md
···11----
22-title: "Stop Spreading Crap at My `$HOME`"
33-date: 2020-04-15T12:00:19+02:00
44-tags:
55- - programming
66- - culture
77----
11++++
22+title = "Stop Spreading Crap at My `$HOME`"
33+date = 2020-04-15T12:00:19+02:00
44+55+[taxonomies]
66+tags = [
77+ "programming",
88+ "culture"
99+]
1010++++
811912**Disclaimer:** Yes, this is a rant. Yes, I am displeased with state of
1013software. And yes, I can use some harsh words. You were warned.
+15-12
content/post/treachery-of-representation.md
···11----
22-title: "Treachery of Representation"
33-date: 2020-04-27T13:06:26+02:00
44-lastmod: 2020-04-27T13:06:26+02:00
55-description: |
66- Representation is not data - something that developers (and not only them)
77- often forgot when working with different data.
88-tags:
99- - programming
1010- - linguistic
1111- - culture
1212----
11++++
22+title = "Treachery of Representation"
33+date = 2020-04-27
44+lastmod = 2020-04-27T13:06:26+02:00
55+description = """
66+Representation is not data - something that developers (and not only them)
77+often forgot when working with different data."""
88+99+[taxonomies]
1010+tags = [
1111+ "programming",
1212+ "linguistic",
1313+ "culture"
1414+]
1515++++
13161417
1518
+14-11
content/post/vim-for-elixir.md
···11----
22-title: "Dumb Elixir VIsual (and iMproved) editor"
33-description: "How I have configured Vim for working with Elixir and Erlang projects"
44-date: 2019-04-13T21:40:05+02:00
55-tags:
66- - elixir
77- - erlang
88- - vim
99- - neovim
1010- - programming
1111----
11++++
22+title = "Dumb Elixir VIsual (and iMproved) editor"
33+description = "How I have configured Vim for working with Elixir and Erlang projects"
44+date = 2019-04-13T21:40:05+02:00
55+66+[taxonomies]
77+tags = [
88+ "elixir",
99+ "erlang",
1010+ "vim",
1111+ "neovim",
1212+ "programming"
1313+]
1414++++
12151316> Earlier published on [Medium](https://medium.com/@hauleth/dumb-elixir-visual-and-improved-editor-53c23a0800e4)
1417
+27
content/post/who-watches-watchmen.md
···11++++
22+title = "Who Watches Watchmen"
33+date = 2020-02-01T23:13:44+01:00
44+draft = true
55++++
66+77+## OTP supervisors
88+99+If you are reading this post then you probably found it via Erlang/Elixir
1010+community so you should be at least a little bit familiar with the OTP
1111+supervisors concept. If you aren't yet because you have found it by other matter
1212+then I highly encourage you to learn a little about it, however I will try to
1313+introduce that concept a little bit there as well.
1414+1515+### Erlang process tree
1616+1717+In Erlang the basic "building block" of the whole application is something
1818+called process. It is very much like system process (we will expand that
1919+later), but much less costly to spawn. The
2020+2121+## Why we need system supervisor
2222+2323+## How system supervisor works
2424+2525+## How to use OTP with systemd
2626+2727+## What will be possible in future
+13-10
content/post/writing-vim-plugin.md
···11----
22-title: "Writing Vim Plugin"
33-date: 2019-11-04T18:21:18+01:00
44-description: |
55- Article about writing Vim plugins, but not about writing Vim plugins. It is
66- how to concieve plugin, how to go from an idea to the full fledged plugin.
77-tags:
88- - vim
99- - viml
1010----
11++++
22+title = "Writing Vim Plugin"
33+date = 2019-11-04T18:21:18+01:00
44+description = """
55+Article about writing Vim plugins, but not about writing Vim plugins. It is
66+how to concieve plugin, how to go from an idea to the full fledged plugin."""
77+88+[taxonomies]
99+tags = [
1010+ "vim",
1111+ "viml"
1212+]
1313++++
11141215While there are many "tutorials" for writing plugins in Vim, I hope this one
1316will be a little bit different from what is out there, because it won't be
···11-The MIT License (MIT)
22-33-Copyright (c) 2019 panr
44-55-Permission is hereby granted, free of charge, to any person obtaining a copy of
66-this software and associated documentation files (the "Software"), to deal in
77-the Software without restriction, including without limitation the rights to
88-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
99-the Software, and to permit persons to whom the Software is furnished to do so,
1010-subject to the following conditions:
1111-1212-The above copyright notice and this permission notice shall be included in all
1313-copies or substantial portions of the Software.
1414-1515-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1616-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
1717-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
1818-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
1919-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2020-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.