An unknown developer wanders through the internet · Andrew Forward has a blog
Deliver Early; Often.
Test-driven development, infrastructure as code, manage, design, development, automate and continuous everything.
I don't often blog, but when I do, I reach for Markdown.
Installing a specific version of DBT (using Python / PIP)
A nice little script for getting the extract correct DBT installed
on your system.
It has been 2 years since I re-worked my personal website
anunknown.dev, and the previous
version was on cloud hardware and I have recently
been using fly.io for small
project development, so I decided for a re-work.
In a our previous post, we looked
at generating a 1password session without requiring user input.
Today we will look at generating a one-time (30-minute) token
on your local machine and only sharing that with your build servers.
op get item db_password --session $(cat opsession)
Imagine you are building a system to assign unique numbers to each
resource that you manage. You want the IDs to be guaranteed unique
i.e. no UUIDs. Since these ids are globally unique, each id can
only be given out at most once.
I enjoy reading job listings. There's the "what's trending"
angle to see the types of skills that appear to be in bemand.
There's the pyschological angle where we as the reader
get a peak at what a company values (or doesn't value) when
it comes to hiring and employees.
In this article we will connect to our AWS account using SAML, this will allow us to run
AWS CLI commands using the same authentication as you use in the browser.
Once complete, you will be able to run
saml2aws login -a 10xdev
An and then have a (configurable) 12 hour session to from the command line.
Here's a template for answering HackerRank in Elixir. This is
based on the Two Character
question
defmodule Solution do
def go() do
num = input(:int)
text = input(:string)
IO.puts("INPUTS #{num} and #{text}")
end
def input(:string), do: IO.read(:line) |> String.trim()
def input(:int), do: input(:string) |> String.to_integer()
end
# Now run your code
Solution.go()
This article is based on a very early version of LiveView and is no longer
the right way to run Custom JS code.
In your LiveView LEEX, you can add a script tag and append a @tick to the id.
This will force for the MorphDOM differ to always re-render (aka re-run) that code on the client.
We are first teased that the talk was intended to be about "the use of symmetry in coding", as I believe symmetry is a great way to help drive you towards cohesion and aligning the abstractions.
Not having to manage an email server is awesome, thank you Mailgun. I am currently integrating with Digital Ocean and ran into some documentation confusion with DNS records, especially when trying to configure for a subdomain.
This article combines a few sources to finally get a working
solution for sending/receiving emails on Digital Ocean
via Mailgun.
Of course you don't know anyone that actually stores user passwords in plaintext, or database passwords directly in a repository, so this is more for those theoretical developers to provide them with just a little bit more security; without adding much more complexity.
# Encrypt a password and store it in pwd
iex> pwd = Safetybox.encrypt("helloworld")
"fc5e038d38a57032085441e7fe7010b0"
# Later on, you can validate the user provided password
# against the encrypted stored password
# Oopses, not the same
iex> Safetybox.is_decrypted("goodbyeworld", pwd)
false
# Ok, validated!
iex> Safetybox.is_decrypted("helloworld", pwd)
true
An exploration of the Go language (golang) to build a simple webcrawler, all code is available on Github. This application was written as an exploration of the language and demonstration of the various features of the language; it is not feature complete but should be complex enough to provide some examples of using Go's various concurrent features, tied together in a simple command line and web interface.