Skip to content

Instantly share code, notes, and snippets.

View zorbash's full-sized avatar
👨‍💻
'); DROP TABLE recruiters;

Dimitris Zorbas zorbash

👨‍💻
'); DROP TABLE recruiters;
View GitHub Profile

Project guidelines

  • Use mix precommit alias when you are done with all changes and fix any pending issues
  • Use the already included and available :req (Req) library for HTTP requests, avoid :httpoison, :tesla, and :httpc. Req is included by default and is the preferred HTTP client for Phoenix apps

Phoenix v1.8 guidelines

  • Always begin your LiveView templates with <Layouts.app flash={@flash} ...> which wraps all inner content
  • The MyAppWeb.Layouts module is aliased in the my_app_web.ex file, so you can use it without needing to alias it again
  • Anytime you run into errors with no current_scope assign:
@zorbash
zorbash / changes.rb
Last active February 8, 2022 16:02
Fetch changelogs of updatable gems
require 'bundler'
require 'net/http'
require 'json'
require 'uri'
def fetch_gem(gem_name)
URI("https://rubygems.org/api/v1/gems/#{gem_name}.json").
then(&Net::HTTP.method(:get)).
then(&JSON.method(:parse))
rescue JSON::ParserError

Animating Outputs with Kino.animate

The Grid

Mix.install([:kino])

Animating Outputs with Kino.animate

The Grid

This is an experimentation notebook to try out Kino.animate/3

See livebook-dev/kino#49

Notes

All Notes

query = IO.gets("search: ") |> String.trim()
notes = NervesLivebook.Notes.all() |> Enum.filter(&String.contains?(&1.text, query))

Notes

All Notes

query = IO.gets("search: ") |> String.trim()
notes = NervesLivebook.Notes.all() |> Enum.filter(&String.contains?(&1.text, query))
@zorbash
zorbash / sidekiq_retry_time.csv
Created May 28, 2021 12:48 — forked from marcotc/sidekiq_retry_time.csv
Sidekiq retry exponential backoff formula times
Retry count Retry Time Total Cumulative Time Total Cumulative Days
0 0:00:00 0:00:00 0.0
1 0:00:16 0:00:16 0.0
2 0:00:31 0:00:47 0.0
3 0:01:36 0:02:23 0.0
4 0:04:31 0:06:54 0.0
5 0:10:40 0:17:34 0.0
6 0:21:51 0:39:25 0.0
7 0:40:16 1:19:41 0.1
8 1:08:31 2:28:12 0.1
module RuboCop
module Cops
module Jobs
class Arguments < RuboCop::Cop::Cop
MAX_JOB_ARGUMENTS = 3
MSG = 'Replace %<args_count>d arguments with a single Dry::Struct'.freeze
def on_args(node)
return unless perform_method?(node.parent)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<h1>Privacy Policy</h1>
<p>Effective date: August 02, 2018</p>
<p>Artery Limited ("us", "we", or "our") operates the https://tefter.io website (the "Service").</p>
<p>This page informs you of our policies regarding the collection, use, and disclosure of personal data when you use our Service and the choices you have associated with that data. This Privacy Policy for Artery Limited is powered by <a href="https://www.freeprivacypolicy.com/free-privacy-policy-generator.php">FreePrivacyPolicy.com</a>.</p>