Phoenix 1.5 requires Elixir >= 1.7. Be sure your existing version is up to date by running elixir -v on the command line.
$ mix archive.uninstall phx_new
$ mix archive.install hex phx_new 1.5.0| -module(). | |
| -behavior(gen_event). | |
| % Callbacks | |
| -export([init/1]). | |
| -export([handle_event/2]). | |
| -export([handle_call/2]). | |
| -export([handle_info/2]). | |
| -export([terminate/2]). |
| -module(). | |
| -behavior(gen_server). | |
| % API | |
| -export([start_link/0]). | |
| % Callbacks | |
| -export([init/1]). | |
| -export([handle_call/3]). |
| diff --git a/assets/js/App.svelte b/assets/js/App.svelte | |
| new file mode 100644 | |
| index 0000000..221cde6 | |
| --- /dev/null | |
| +++ b/assets/js/App.svelte | |
| @@ -0,0 +1,5 @@ | |
| +<script> | |
| + export let name; | |
| +</script> |
| # Luke's config for the Zoomer Shell | |
| # Enable colors and change prompt: | |
| autoload -U colors && colors | |
| PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " | |
| # History in cache directory: | |
| HISTSIZE=10000 | |
| SAVEHIST=10000 | |
| HISTFILE=~/.cache/zsh/history |
| # Luke's config for the Zoomer Shell | |
| # Enable colors and change prompt: | |
| autoload -U colors && colors | |
| PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " | |
| # History in cache directory: | |
| HISTSIZE=10000 | |
| SAVEHIST=10000 | |
| HISTFILE=~/.cache/zsh/history |
| #!/usr/bin/python | |
| import sys | |
| import gh | |
| import os | |
| import json | |
| if len(sys.argv) > 1: | |
| username = sys.argv[1] | |
| else: | |
| raise Exception('Expected github username as first command-line argument') |
| <pre id="logs"></pre> | |
| <script> | |
| // utilities | |
| let arr = new Uint32Array(2); | |
| let arr64 = new Float64Array(arr.buffer); // use same buffer | |
| function floatToInt(float) { | |
| arr64[0] = float; |
Quote from Elixir Mix 63 - "063: Designing Elixir Systems With OTP with Bruce Tate and James Gray", starting at 01:03:13
"I've worked at a bunch of companies building web apps for a long time, and I keep seeing this same pattern, and it haunts me. In the web world, all we want is these long interactions with people, and we live in this stateless world. So what we do is, the first part of every request, we do thirty queries to re-establish the state of the world that we just forgot a few seconds ago after the last request. And then we go forward and make one tiny step forward, and then we forget everything again, so that when the next request comes in we can do thirty queries to put it all back and make one more tiny step. And I kept thinking, "there has to be a better way than this, right?"
And if you look at web advancements over the years, most of the things we're doing are
| -module(gen_udp2). | |
| -export([open/1, open/2, close/1]). | |
| -export([recv/3, send/4]). | |
| open(Port) -> | |
| open(Port, []). |