Skip to content

Instantly share code, notes, and snippets.

View herminiotorres's full-sized avatar
Grapes Vibes

Herminio Torres herminiotorres

Grapes Vibes
View GitHub Profile
JosephTLyons / gist:8c22fdf549917a7ee4f83b943f5863c7
Created June 14, 2023 22:13
Setting up mix formatter for Elixir in Zed
View gist:8c22fdf549917a7ee4f83b943f5863c7
// ...
"language_overrides": {
"Elixir": {
"format_on_save": {
"external": {
"command": "mix",
"arguments": ["format", "--stdin-filename", "{buffer_path}", "-"]
PJUllrich /
Last active November 24, 2023 03:28
Big-O Time Complexities for Elixir Data Structures

Big-O Time Complexities for Elixir data structures

Map [1]

Operation Time Complexity
Access O(log n)
Search O(log n)
Insertion O(n) for <= 32 elements, O(log n) for > 32 elements [2]
Deletion O(n) for <= 32 elements, O(log n) for > 32 elements
View parser_combinator.ex
defmodule Parser do
def numero() do
<<c::utf8>> <> rest ->
case c do
c when c in ?0..?9 -> {:ok, c - ?0, rest}
_ -> {:error, {:numero, :no_parse, c}, <<c::utf8>> <> rest}
mcrumm / page_live_test.exs
Created February 8, 2021 22:10
LiveView artifacts
View page_live_test.exs
defmodule MyAppWeb.PageLiveTest do
use MyAppWeb.ConnCase
import Phoenix.LiveViewTest
@tag :tmp_dir
test "disconnected and connected render", %{conn: conn, tmp_dir: tmp_dir} do
{:ok, page_live, disconnected_html} = live(conn, "/")
assert disconnected_html =~ "Welcome to Phoenix!"
keathley / .credo.exs
Last active November 22, 2021 17:47
Keathley's credo file
View .credo.exs
# This file contains the configuration for Credo and you are probably reading
# this after creating it with `mix credo.gen.config`.
# If you find anything wrong or unclear in this file, please report an
# issue on GitHub:
# You can have as many configs as you like in the `configs:` field.
configs: [
carterbryden / AddPostgresTriggerAndFunctionForAllTables.exs
Last active September 20, 2023 09:40
Elixir Phoenix Postgresql migration to add triggers for pubsub to run on every CRUD operation on every table. If a new table is added, it'll automatically add a trigger to that table too.
View AddPostgresTriggerAndFunctionForAllTables.exs
defmodule MyApp.Repo.Migrations.AddPostgresTriggerAndFunctionForAllTables do
use Ecto.Migration
def up do
# Create a function that broadcasts row changes
execute "
CREATE OR REPLACE FUNCTION broadcast_changes()
RETURNS trigger AS $$
current_row RECORD;
swyxio /
Last active November 24, 2023 17:59
Learn In Public - 7 opinions for your tech career

2019 update: this essay has been updated on my personal site, together with a followup on how to get started

2020 update: I'm now writing a book with updated versions of all these essays and 35 other chapters!!!!

1. Learn in public

If there's a golden rule, it's this one, so I put it first. All the other rules are more or less elaborations of this rule #1.

You already know that you will never be done learning. But most people "learn in private", and lurk. They consume content without creating any themselves. Again, that's fine, but we're here to talk about being in the top quintile. What you do here is to have a habit of creating learning exhaust. Write blogs and tutorials and cheatsheets. Speak at meetups and conferences. Ask and answer things on Stackoverflow or Reddit. (Avoid the walled gardens like Slack and Discourse, they're not public). Make Youtube videos

dealloc / Dockerfile
Last active October 7, 2020 18:45
Elixir Docker makefile
View Dockerfile
FROM elixir:alpine
RUN apk add --no-cache curl bash
RUN curl --url --output /
COPY ./docker/ /
RUN chmod +x /