(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
# simple rake task to output a changelog between two commits, tags ... | |
# output is formatted simply, commits are grouped under each author name | |
# | |
desc "generate changelog with nice clean output" | |
task :changelog, :since_c, :until_c do |t,args| | |
since_c = args[:since_c] || `git tag | head -1`.chomp | |
until_c = args[:until_c] | |
cmd=`git log --pretty='format:%ci::%an <%ae>::%s::%H' #{since_c}..#{until_c}` | |
entries = Hash.new |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
Sometimes you want to have a subdirectory on the master
branch be the root directory of a repository’s gh-pages
branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in the master
branch alongside the rest of your code.
For the sake of this example, let’s pretend the subfolder containing your site is named dist
.
Remove the dist
directory from the project’s .gitignore
file (it’s ignored by default by Yeoman).
#!/bin/bash | |
project=$1 | |
wget --mirror -k -np http://hexdocs.pm/$project | |
ruby -e "puts ARGF.read.scan(/[A-Z]\\w*\\.[\\w\\.]+/).uniq.map { |l| 'http://hexdocs.pm/$project/' + l + '.html' }" hexdocs.pm/$project/dist/sidebar_items.js | wget --mirror -k -i - | |
wget --mirror -k http://hexdocs.pm/$project/extra-api-reference.html |
<?xml version="1.0" encoding="utf-8"?> | |
<resources> | |
<!-- | |
# Material Design Dimensions | |
These dimensions are provided as per Material Design Guidelines | |
to adhere to a 8 dp baseline grid. (With the exception of the | |
toolbar and notification bar.). | |
## References |
# EditorConfig is awesome: http://EditorConfig.org | |
# .editorconfig for Elixir projects | |
# https://git.io/elixir-editorconfig | |
# top-most EditorConfig file | |
root = true | |
[*] | |
indent_style = space |
$ ssh remote-host "epmd -names"
epmd: up and running on port 4369 with data:
name some_node at port 58769
Note the running on port
for epmd
itself and the port of the node you're interested in debugging. Reconnect to the remote host with these ports forwarded:
$ ssh -L 4369:localhost:4369 -L 58769:localhost:58769 remote-host
import akka.actor.ActorRef; | |
import akka.dispatch.*; | |
import org.jctools.queues.MpscArrayQueue; | |
/** | |
* Non-blocking, multiple producer, single consumer high performance bounded message queue, | |
* this implementation is similar but simpler than LMAX disruptor. | |
*/ | |
public final class MpscBoundedMailbox implements MessageQueue { |
Some of the most important advancements in programming came from adding restrictions to the way we program.
Famous article by Edsger Dijkstra Go To Statement Considered Harmful
shows how introducing one statement into programming language breaks many nice properties of that language.
goto
gives us freedom and solves couple of simple problems like breaking from nested loops easily,
but it can make programs very hard to understand.
This happens, because we cannot look at two pieces of code in separation.
The execution can jump to some other place in code or even worse: it can jump from other piece of code to here and We need to keep that in mind.
Context: I was asked for a list of interesting reading relating to "distributed databases, behavior under partitions and failures, failure detection." Here's what I came up with in about an hour.
For textbooks, "Introduction to Reliable and Secure Distributed Programming" is a superb introduction to distributed computing from a formal perspective; it's really not about "programming" or "engineering" but about distributed system fundamentals like consensus, distributed registers, and broadcast. Used in Berkeley's Distributed Computing course (and HT to @lalithsuresh) Book Site
Notes from courses like Lorenzo Alvisi's Distributed Computing class can be great.
There are a bunch of classics on causality, [Paxos](ht