Origin: https://appunite.com/blog/let-the-force-be-with-livebook
Save this as .livemd and open with running Livebook server to evaluate.
| Mix.install([ | |
| {:benchee, "~> 1.0"} | |
| ]) | |
| defmodule Cruncher do | |
| def async(n) do | |
| 1..n | |
| |> Task.async_stream(&(&1 ** 2)) | |
| |> Enum.reduce(0, fn {:ok, s}, acc -> s + acc end) | |
| end |
| Mix.install([ | |
| {:benchee, "~> 1.0"} | |
| ]) | |
| defmodule BirdCond do | |
| def busy_days(list) do | |
| cond do | |
| list == [] -> 0 | |
| hd(list) < 5 -> busy_days(tl(list)) | |
| true -> 1 + busy_days(tl(list)) |
| # Origin: https://blog.sequin.io/how-we-used-elixirs-observer-to-hunt-down-bottlenecks/ | |
| defmodule Overload do | |
| # Define a CPU-intenstive work function, which can call itself | |
| # recursively (forever) | |
| def recursive do | |
| :public_key.generate_key({:rsa, 4096, 65537}) | |
| recursive() | |
| end | |
| end |
| % Read more: | |
| % - https://joearms.github.io/published/2013-11-21-My-favorite-erlang-program.html | |
| % - https://ferd.ca/my-favorite-erlang-container.html | |
| % | |
| % How to run: | |
| % $ erl | |
| % > c(uni). | |
| % {ok,uni} | |
| % > uni:test(). | |
| % 30414093201713378043612608166064768844377641568960512000000000000 |
Origin: https://appunite.com/blog/let-the-force-be-with-livebook
Save this as .livemd and open with running Livebook server to evaluate.
| defmodule Reader do | |
| defmodule SensorHub do | |
| @moduledoc """ | |
| Opens the first I2C bus ("i2c-1") and reads from SensorHub device address (0x17). | |
| Updates its internal state periodically (every second in the example below). | |
| Below you can find a table of registers, that we found on their website: | |
| https://wiki.52pi.com/index.php/DockerPi_Sensor_Hub_Development_Board_SKU:_EP-0106 |
| `sudo purge` | |
| memory_by_process = Hash.new(0) | |
| processes = `ps aux` | |
| m_bytes = processes.split("\n").reduce(0) { |memo, prc| | |
| fields = prc.split(/\s+/) | |
| mem_bytes = fields[5].to_i | |
| prc_name = fields[10...fields.length].join(' ') |
Disclaimer: This piece is written anonymously. The names of a few particular companies are mentioned, but as common examples only.
This is a short write-up on things that I wish I'd known and considered before joining a private company (aka startup, aka unicorn in some cases). I'm not trying to make the case that you should never join a private company, but the power imbalance between founder and employee is extreme, and that potential candidates would
| CODESWARM_DIR="/home/user/src/code_swarm/" | |
| # extract from your git repo | |
| git log --name-status --pretty=format:'%n------------------------------------------------------------------------%nr%h | %ae | %ai (%aD) | x lines%nChanged paths:' > $CODESWARM_DIR/data/activity.log | |
| # convert to XML for CodeSwarm | |
| python convert_logs/convert_logs.py \ | |
| -g $CODESWARM_DIR/data/activity.log -o $CODESWARM_DIR/data/activity.xml | |
| # create a new config that points to the correct input XML and saves snapshots |
| # See https://help.github.com/articles/ignoring-files for more about ignoring files. | |
| # | |
| # If you find yourself ignoring temporary files generated by your text editor | |
| # or operating system, you probably want to add a global ignore instead: | |
| # git config --global core.excludesfile '~/.gitignore_global' | |
| .DS_Store | |
| # Ignore bundler config. | |
| /.bundle |