Skip to content

Instantly share code, notes, and snippets.

View benbarber's full-sized avatar
🟢
Available for hire

Ben Barber benbarber

🟢
Available for hire
View GitHub Profile
@benbarber
benbarber / slow_query_handler.ex
Created July 9, 2023 09:26 — forked from joshnuss/slow_query_handler.ex
Output slow Ecto queries to logs
defmodule MyApp.Telemetry do
require Logger
def handle_event([:my_app, :repo, :query], measurements, metadata, _config) do
milliseconds = System.convert_time_unit(measurements.total_time, :native, :millisecond)
# did the query take longer than 100ms?
if milliseconds > 100 do
# log it as a warning
Logger.warn("SLOW QUERY: ms: #{milliseconds}, query: #{metadata.query}")
@benbarber
benbarber / preloader.exs
Created July 9, 2023 09:25 — forked from joshnuss/preloader.exs
Preloading & joining with Ecto, simplified.
# Preloading usually required an extra query.
# To do it in one query, a `join` is needed, and the call to `preload` needs to know the name of join
# This macro does both the `join` and `preload` together
defmodule Preloader do
import Ecto, only: [assoc: 2]
alias Ecto.Query.Builder.{Join, Preload}
defmacro preload_join(query, association) do
expr = quote do: assoc(l, unquote(association))
binding = quote do: [l]
@benbarber
benbarber / create-react-app-electron.md
Last active March 7, 2018 16:25 — forked from matthewjberger/notes.md
How to make an electron app using Create-React-App and Electron with Electron-Builder.
@benbarber
benbarber / README-Template.md
Created May 5, 2017 08:57 — forked from PurpleBooth/README-Template.md
A template to make good README.md

Project Title

One Paragraph of project description goes here

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

@benbarber
benbarber / websocket-elb.md
Created April 25, 2017 07:42 — forked from zhiguangwang/websocket-elb.md
Configure websockets behind an AWS ELB.
@benbarber
benbarber / disposable-email-provider-domains
Created April 21, 2017 11:34
List of disposable email provider domains
0815.ru
0wnd.net
0wnd.org
10minutemail.co.za
10minutemail.com
123-m.com
1fsdfdsfsdf.tk
1pad.de
20minutemail.com
21cn.com
@benbarber
benbarber / tmux-cheatsheet.markdown
Created April 21, 2017 11:32 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@benbarber
benbarber / scheduler.ex
Created November 10, 2016 15:47 — forked from danielberkompas/scheduler.ex
A simple mix task scheduler for Elixir apps
defmodule MyApp.Scheduler do
@moduledoc """
Schedules a Mix task to be run at a given interval in milliseconds.
## Options
- `:task`: The name of the Mix task to run.
- `:args`: A list of arguments to pass to the Mix task's `run/1` function.
- `:interval`: The time interval in millisconds to rerun the task.