~iperdomo/website

597a355fdd331e18f828b8c197304570c4617df7 — Iván Perdomo 5 months ago
Initial skeleton of new website
A  => archetypes/default.md +6 -0
@@ 1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---


A  => config.toml +27 -0
@@ 1,27 @@
baseURL = "https://perdomo.me"
defaultContentLanguage = "en"
title = "Iván Perdomo"
disableHugoGeneratorInject = true
enableMissingTranslationPlaceholders = true

[params]
  description = "Iván Perdomo: Hands-on software architecture"
  author = "Iván Perdomo"

[languages]
  [languages.en]
    languageName = "English"
    weight = 1
  [languages.es]
    languageName = "Español"
    weight = 2

[Taxonomies]
  tags = "tags"

[markup]
  [markup.highlight]
    codeFences = false
    guessSyntax = false
    noClasses = true
    tabWidth = 4
\ No newline at end of file

A  => content/_index.es.md +9 -0
@@ 1,9 @@
---
---

Ayudando a personas a crear valor mediante tecnología. Estoy
disponible para trabajar a través de [Yvant](https://yvant.io).

Available in [English](/)

{{< recentposts >}}

A  => content/_index.md +11 -0
@@ 1,11 @@
---
---

Helping people create value through technology. I'm available for hire
via [Yvant](https://yvant.io/).



Disponible en [Español](/es)

{{< recentposts >}}

A  => content/about.es.md +31 -0
@@ 1,31 @@
---
title: "Acerca de"
slug: "acerca-de"
---

Hola,

{{< iperdomo >}}

Mi nombre es Iván A. Perdomo Aguilar y trabajo como arquitecto de
software, ingeniero senior, líder de equipos, asesor técnico,
mentor. Dependiendo a quien le preguntes :)

Desde 2001 he trabajado en diferentes roles con compañías de todos los
tamaños, desde pequeñas empresas familiares, start-ups hasta
Fortune 500. En mi carrera he trabajado diferentes tecnologías, desde
2006 me he enfocado en la JVM y tecnologías relacionadas con la Web.

Soy usuario, desarrollador y proponente de software libre. Siempre que
me sea posible, elijo una solución software-libre/código-abierto en
lugar de una _propietaria_. También soy pragmático y sé elegir mis
batallas. Utilizaré aquello necesario para entregar el resultado
esperado.

Disfruto compartiendo lo que sé. He hecho de mentor de varias personas
con menos experiencia que yo y nos ha ido bastante bien. También soy
bastante bueno como *caza-talentos*.

Me puedes contactar por correo electrónico en:

{{< contact >}}

A  => content/about.md +30 -0
@@ 1,30 @@
---
title: "About"
---

Hi,

{{< iperdomo >}}

My name is Iván A. Perdomo Aguilar, and I work as a software
architect, senior engineer, technical advisor, team lead,
mentor. Depending who you ask :)


Since 2001 I have played different roles on organizations of different
sizes, from small family-own companies, startups, to Fortune 500.  I
have worked with several technologies across my career settling on the
JVM and Web related technologies since 2006.

I'm a FOSS user, developer and advocate. Whenever possible I'll choose
a free/libre/open-source solution over a proprietary one. But I'm also
pragmatic, I pick my battles and choose whatever is necessary for
delivering the desired outcome.

I really enjoy sharing what I know, I've mentored several people less
experienced than me quite successfully. I'm also good at _attracting_
talent.

You can contact me at:

{{< contact >}}

A  => content/contact.es.md +9 -0
@@ 1,9 @@
---
title: "Contacto"
---

Puedes contactarme por correo electrónico:

{{< contact >}}

Puedes encontrar mi clave PGP en: [250CF3EA](/250CF3EA.asc)

A  => content/contact.md +9 -0
@@ 1,9 @@
---
title: "Contact"
---

You can contact me via email:

{{< contact >}}

My PGP key can be found at: [250CF3EA](/250CF3EA.asc)

A  => i18n/en.toml +14 -0
@@ 1,14 @@
[recent]
other = "Recent posts"

[contact]
other = "Contact"

[allposts]
other = "All posts"

[contentin]
other = "Content in"

[gohome]
other = "Go home"
\ No newline at end of file

A  => i18n/es.toml +14 -0
@@ 1,14 @@
[recent]
other = "Posts recientes"

[contact]
other = "Contacto"

[allposts]
other = "Todos los posts"

[contentin]
other = "Contenido en"

[gohome]
other = "Ir al inicio"
\ No newline at end of file

A  => layouts/404.html +7 -0
@@ 1,7 @@
{{ define "main"}}
<main>
  <div>
    <h1><a href="{{ "/" | relLangURL }}">{{ i18n "gohome" }}</a></h1>
  </div>
</main>
{{ end }}

A  => layouts/_default/baseof.html +23 -0
@@ 1,23 @@
<!doctype html>
<html lang="{{ .Site.Language.Lang | default "en" }}">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>{{ .Title }}</title>
	{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
	{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
	<link rel="stylesheet" href="{{ "css/style.css" | relURL }}">
	<link rel="icon" href="/img/iperdomo.svg" type="image/svg+xml">
	{{ if (or (eq .Page.Kind "section") (eq .Page.Kind "taxonomy")) }}
	{{ with .OutputFormats.Get "RSS" -}}
		{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
	{{- end }}
	{{ end }}
</head>
<body>
	{{ partial "header" . }}
	{{ block "main" . }}{{ end }}
	{{ partial "footer" . }}
</body>
</html>

A  => layouts/_default/list.html +14 -0
@@ 1,14 @@
{{ define "main" }}
	<main>
		{{ if or .Title .Content }}
		<div>
			{{ with .Title }}<h1>{{ . }}</h1>{{ end }}
			{{ with .Content }}<div>{{ . }}</div>{{ end }}
		</div>
		{{ end }}

		{{ range .Paginator.Pages }}
			{{ .Render "summary" }}
		{{ end }}
	</main>
{{ end }}

A  => layouts/_default/single.html +22 -0
@@ 1,22 @@
{{ define "main" }}
	<main id="main">
	  <article>
	    <header>
	      <h1>{{ .Title }}</h1>
	      {{if .Date }}<time>{{ .Date.Format "2006-01-02" }}</time>{{ end }}
	    </header>
	    <div>
	      {{ .Content }}
	    </div>
	    {{ with .Params.tags }}
	    <div>
	      <ul id="tags">
		{{ range . }}
		  <li><a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a></li>
		{{ end }}
	      </ul>
	    </div>
	    {{ end }}
	  </article>
	</main>
{{ end }}

A  => layouts/_default/summary.html +3 -0
@@ 1,3 @@
<ul class="summary">
  <li><a href="{{ .Permalink }}">{{ .Title }}</a> <span><time>{{ .Date.Format "2006-01-02" }}</time></span></li>
</ul>

A  => layouts/index.html +5 -0
@@ 1,5 @@
{{ define "main" }}
	<main>
	  {{ .Content }}
	</main>
{{ end }}

A  => layouts/partials/footer.html +3 -0
@@ 1,3 @@
<footer>
  <p><a href="{{ "/contact/" | relLangURL }}">{{ i18n "contact"}}</a> | <a href="https://github.com/iperdomo" target="_blank">GitHub</a> | <a href="https://sr.ht/%7Eiperdomo/" target="blank">sourcehut</a> | <a href="https://bitbucket.org/iperdomo" target="_blank_">Bitbucket</a> | <a href="https://www.openhub.net/accounts/iperdomo" target="_blank">Open Hub</a></p>
</footer>

A  => layouts/partials/header.html +12 -0
@@ 1,12 @@
<header>
	<a href="{{ .Site.Home.RelPermalink }}">{{ .Site.Title }}</a>
	{{ with .Site.Menus.main }}
	<nav>
		<ul>
			{{ range . }}
			<li><a href="{{ .URL | relURL }}">{{ .Name }}</a></li>
			{{ end }}
		</ul>
	</nav>
	{{ end }}
</header>

A  => layouts/partials/pagination.html +9 -0
@@ 1,9 @@
<div>
{{ if .Paginator.HasPrev }}
	<a href="{{ .Paginator.Prev.URL }}">Previous Page</a>
{{ end }}
{{ .Paginator.PageNumber }} of {{ .Paginator.TotalPages }}
{{ if .Paginator.HasNext }}
	<a href="{{ .Paginator.Next.URL }}">Next Page</a>
{{ end }}
</div>

A  => layouts/partials/sidebar.html +0 -0

A  => layouts/shortcodes/contact.html +1 -0
@@ 1,1 @@
<div id="contact"></div>

A  => layouts/shortcodes/iperdomo.html +1 -0
@@ 1,1 @@
<p class="iperdomo"><img src="/img/iperdomo.svg"/></p>

A  => layouts/shortcodes/recentposts.html +7 -0
@@ 1,7 @@
<h3>{{i18n "recent"}}</h3>
<ul>
    {{ range first 5 (where .Site.RegularPages "Type" "posts") }}
    <li><a href="{{ .Permalink }}">{{ .Title }}</a></li>
    {{ end }}
</ul>
<p><a href="{{ "/posts/" | relLangURL }}{{ . | urlize }}">{{i18n "allposts"}}</a></p>

A  => layouts/taxonomy/tags.html +8 -0
@@ 1,8 @@
{{ define "main" }}
<h3>{{i18n "contentin"}} {{ .Title }}</h3>
<ul class="summary">
  {{ range .Data.Pages }}
  <li><a href="{{ .RelPermalink }}">{{ .Title }}</a> <span><time>{{ .Date.Format "2006-01-02" }}</time></span></li>
  {{ end }}
</ul>
{{ end }}

A  => static/250CF3EA.asc +51 -0
@@ 1,51 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

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
=zhCP
-----END PGP PUBLIC KEY BLOCK-----

A  => static/A08A8FC4A1367FCC27DE9D3C55E9CC5E.txt +2 -0
@@ 1,2 @@
A8372B031DE4373328F746689F94A93BD27F66D5
comodoca.com
\ No newline at end of file

A  => static/css/style.css +81 -0
@@ 1,81 @@
body{
    margin:1em auto;
    max-width:40em;
    padding:0 .62em;
    font: 1.2em/1.62 sans-serif;
}
h1,h2,h3 {
    line-height:1.2;
}
img {
    width:100%;
}
pre {
    background-color: #f7f5f5;
    padding: 0.8em;
    overflow-x: auto;
    overflow-y: hidden;
}

a, a:visited {
    text-decoration: none;
    color: #457b9d;
}

a:hover {
    color: white;
    background-color: #457b9d;
}

@media print{
    body{
	max-width:none
    }
}

footer {
    border-top: 1px solid #457b9d;
    text-align: center;
}

time {
    font-size: x-small;
}

#tags {
    padding: 0;
}

#tags li {
    display: inline
}

code {
    background-color: #f7f5f5;
    padding: 0.3em;
}

.iperdomo {
    text-align: center;
}

.iperdomo img {
    width: 5em;
}

hr {
    border: 1px dashed darkgray;
}

.summary {
    list-style-type: none;
}

#contact {
    height: 1em;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: 50%;
    background-image: url("/img/contact.svg");
    margin-bottom: 1em;
}

A  => static/img/contact.svg +1 -0
@@ 1,1 @@
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" id="svg8" viewBox="0 0 79.053312 9.14027" height="34.545902" width="298.78418"><defs id="defs2" /><g transform="translate(-74.730496,-149.1412)" id="layer1"><g transform="matrix(0.5,0,0,0.5,55.071333,136.31268)" id="g2064"><path style="opacity:1;fill:#000;fill-opacity:1;stroke:none;stroke-width:.35579965;stroke-miterlimit:4;stroke-dasharray:.71159927,.71159927;stroke-dashoffset:0;stroke-opacity:.50196078" id="rect2003" d="M39.613594 26.232107h157.51608v17.130396H39.613594z" /><path style="opacity:1;fill:#fff;fill-opacity:1;stroke:none;stroke-width:.23261;stroke-miterlimit:4;stroke-dasharray:.46522002,.46522002;stroke-dashoffset:0;stroke-opacity:.50196078" d="M39.318326 25.657037V43.937576H197.42495V25.657037zm6.489525 2.171962h1.997811v1.778185h-1.997811zm84.562799.0h1.96422v8.856305h.27079c.74506.0 1.11776.282017 1.11776.84646.0.564447-.3727.846977-1.11776.846977h-1.96423v-.592728c-.8128.553157-1.66512.829408-2.55695.829408-1.26435.0-2.28023-.377944-3.04787-1.134298-.75636-.756356-1.1343-1.693082-1.1343-2.810682.0-1.1176.37794-2.049079 1.1343-2.794145.76764-.756354 1.78928-1.134814 3.06493-1.134814.98213.0 1.82869.282533 2.53989.846976V29.50538h-.27078c-.36124.0-.63801-.05609-.82992-.168981-.19192-.124177-.28784-.350099-.28784-.677476.0-.31609.0959-.530484.28784-.643372.19191-.124179.46868-.186552.82992-.186552zm-42.544175.05116c.9144.0 1.665555.304554 2.252575.914154.587024.6096.880568 1.382778.880568 2.319755v4.758367c.259644.112888.389123.310507.389123.592728.0.462846-.310319.694015-.931209.694015h-.795817v-.05064c-.259646.03387-.445732.05064-.558622.05064-.72249.0-1.343647-.259474-1.862937-.778764-.519287-.51929-.778764-1.128919-.778764-1.828829.0-.790223.293545-1.450697.880568-1.981274.59831-.541867 1.371489-.846423 2.319755-.914156v-.542087c0-.564443-.169314-1.021535-.507981-1.371491-.327377-.349957-.750917-.525034-1.270206-.525034-.7112.0-1.303536.361167-1.77767 1.083657-.474133.722487-.711583 1.62566-.711583 2.709394v2.6417c0 .428977.03983.857763.118856 1.286743.07902.417687.203253.841229.372586 1.270206.180623.428977.445863.773367.795819 1.033013.349954.259644.767731.389639 1.253151.389639.383824.0.71092-.0456.981853-.135909.282223-.07902.479841-.174948.592731-.287837.112887-.1016.225591-.197528.338478-.287838.12418-.07902.242647-.11834.355534-.11834.191913.0.350213.06762.47439.203089.135467.135466.203089.299016.203089.490926.0.39511-.29931.733737-.89762 1.015958-.587023.293513-1.286814.440285-2.099614.440285-.587021.0-1.111735-.118467-1.574581-.355534-.462843-.237067-.829773-.53586-1.100706-.897104-.270933-.361244-.496856-.784783-.677479-1.270206-.180623-.474134-.304853-.925463-.372586-1.354439-.06773-.440267-.101288-.875335-.101288-1.304314v-2.861323c0-1.456267.355402-2.658748 1.066602-3.607015.722489-.948266 1.636675-1.422135 2.742985-1.422135zm-20.458699 2.878375c1.038579.0 1.851072.22016 2.438095.660427.598311.440267.897618 1.055658.897618 1.845881v3.420462h.270785c.745067.0 1.117761.282017 1.117761.84646.0.564447-.372694.846977-1.117761.846977H68.993v-.389639c-.846667.440267-1.783392.660424-2.810682.660424-.835377.0-1.552461-.220157-2.150771-.660424-.598313-.451556-.897105-.993563-.897105-1.62574.0-.767646.377942-1.433367 1.134298-1.997811.756357-.575733 1.743927-.863515 2.963127-.863515.508.0 1.095089.05609 1.761133.168984v-.389125c0-.553154-.524714-.829924-1.57458-.829924-.462847.0-.988076.06762-1.575099.203089-.587021.124177-.942422.186552-1.066602.186552-.237067.0-.434684-.07915-.592727-.237196-.158044-.169331-.237197-.378479-.237197-.626835.0-.361244.169315-.598178.507982-.711068.959553-.338666 1.930865-.507979 2.912999-.507979zm10.830348.0c.880533.0 1.60338.248465 2.167824.745176.564446.49671.84646 1.196501.84646 2.099614v3.08198c.688623.0 1.033013.282017 1.033013.84646.0.564447-.372695.846977-1.117762.846977h-1.506884c-.756356.0-1.134814-.28253-1.134814-.846977.0-.564443.34439-.84646 1.03301-.84646V33.67102c0-.8128-.507936-1.219049-1.523936-1.219049-.395113.0-.750514.0844-1.066602.253733-.3048.169333-.654954.46864-1.050065.89762v3.08198h.101801c.745067.0 1.117246.282017 1.117246.84646.0.564447-.372179.846977-1.117246.846977h-1.896525c-.745067.0-1.117759-.28253-1.117759-.846977-2e-6-.564443.372692-.84646 1.117759-.84646h.101288v-4.013192c-.688623-.02258-1.033013-.305109-1.033013-.846976.0-.564444.37846-.84646 1.134814-.84646h1.591635v.812871c.4064-.383823.779095-.649062 1.117762-.795816.338666-.158046.739148-.237197 1.201994-.237197zm20.357928.0c1.185333.0 2.167148.366933 2.946078 1.100709.79022.72249 1.18546 1.631427 1.18546 2.72645.0 1.038576-.38947 1.901917-1.16841 2.590538-.77893.688623-1.755495 1.033012-2.929537 1.033012-.92569.0-1.800558-.316084-2.624645-.948264v2.810682h.982368c.372534.0.648785.05661.829406.1695.191913.124177.287837.3501.287837.677476.0.564447-.372176.846461-1.117243.846461h-2.94659c-.745067.0-1.117761-.282014-1.117761-.846461.0-.564443.372694-.846976 1.117761-.846976h.270785v-7.399549h-.270785c-.361246.0-.638014-.05661-.829924-.169497-.19191-.124177-.287837-.350099-.287837-.677479.0-.564444.372694-.84646 1.117761-.84646h1.964222v.762227c.767643-.654754 1.6315-.982369 2.591054-.982369zm9.408218.0c1.26436.0 2.30853.383707 3.13262 1.151351.83538.767646 1.25315 1.733192 1.25315 2.895949v.660424h-6.90913c.38382.993423 1.30954 1.489831 2.77709 1.489831.59831.0 1.26455-.09016 1.99833-.270785.73377-.19191 1.17409-.287837 1.32084-.287837.22578.0.41763.0844.57568.253732.15804.158044.23719.355661.23719.592728.0.361243-.32761.660553-.98236.89762-.65476.225777-1.27015.366787-1.84588.42323-.56445.05644-1.04985.08475-1.45625.08475-1.30951.0-2.38199-.36693-3.21737-1.100709-.83538-.733777-1.25264-1.676268-1.25264-2.827734.0-1.117598.41726-2.054842 1.25264-2.811198.84667-.767644 1.8856-1.151351 3.11609-1.151352zm30.66324.0c1.19662.0 2.2125.383707 3.04788 1.151351.84666.767646 1.2702 1.699125 1.2702 2.794145.0 1.10631-.42354 2.043554-1.2702 2.811198-.84667.756356-1.87932 1.134298-3.09852 1.134298-1.2192.0-2.25237-.377942-3.09904-1.134298-.84666-.767644-1.26969-1.704888-1.26969-2.811198.0-1.1176.42303-2.054325 1.26969-2.810682.84667-.756354 1.89661-1.134814 3.14968-1.134814zm8.84959.0c.64347.0 1.21903.276768 1.72703.829924.508-.553156 1.09508-.829924 1.76113-.829924.63218.0 1.15741.214395 1.5751.643372.42897.41769.64337.942919.64337 1.575099v3.708299c.67733.0 1.01596.282017 1.01596.84646.0.564447-.3727.846977-1.11776.846977h-1.59164v-5.266344c0-.248356-.0451-.417668-.13539-.507981-.079-.101597-.23156-.152445-.45734-.152445-.22578.0-.42916.05085-.60978.152445-.16933.1016-.39474.304467-.67696.609267v3.471621c.31609.0.56403.07915.74466.237197.18062.146753.2713.34962.2713.609263.0.564447-.3727.846977-1.11776.846977h-1.59164v-5.266344c0-.237066-.0451-.406381-.13539-.507981-.0903-.101597-.24285-.152445-.45734-.152445-.4064.0-.83518.253712-1.28674.761712v3.471621c.68862.0 1.03249.282017 1.03249.84646.0.564447-.37217.846977-1.11724.846977h-1.49035c-.75635.0-1.13429-.28253-1.13429-.846977.0-.564443.33862-.84646 1.01595-.84646v-4.013192c-.67733-.02258-1.01595-.305109-1.01595-.846976.0-.564444.37794-.84646 1.13429-.84646h1.5751v.406693c.51929-.417687.99892-.626835 1.43919-.626835zm11.45718.0c1.19662.0 2.2125.383707 3.04788 1.151351.84666.767646 1.2702 1.699125 1.2702 2.794145.0 1.10631-.42354 2.043554-1.2702 2.811198-.84667.756356-1.87932 1.134298-3.09852 1.134298-1.2192.0-2.25237-.377942-3.09904-1.134298-.84666-.767644-1.26969-1.704888-1.26969-2.811198.0-1.1176.42303-2.054325 1.26969-2.810682.84667-.756354 1.89662-1.134814 3.14968-1.134814zm19.00297.0c.64347.0 1.21903.276768 1.72703.829924.508-.553156 1.09509-.829924 1.76114-.829924.63217.0 1.15689.214395 1.57458.643372.42897.41769.64388.942919.64388 1.575099v3.708299c.67734.0 1.01596.282017 1.01596.84646.0.564447-.37269.846977-1.11776.846977h-1.59163v-5.266344c0-.248356-.0451-.417668-.1354-.507981-.079-.101597-.23155-.152445-.45733-.152445-.22578.0-.42916.05085-.60978.152445-.16934.1016-.39474.304467-.67696.609267v3.471621c.31608.0.56403.07915.74465.237197.18063.146753.2713.34962.2713.609263.0.564447-.37269.846977-1.11776.846977h-1.59163v-5.266344c0-.237066-.0451-.406381-.13539-.507981-.0903-.101597-.24285-.152445-.45734-.152445-.4064.0-.83519.253712-1.28674.761712v3.471621c.68862.0 1.03249.282017 1.03249.84646.0.564447-.37218.846977-1.11724.846977h-1.49035c-.75636.0-1.1343-.28253-1.1343-.846977.0-.564443.33863-.84646 1.01596-.84646v-4.013192c-.67733-.02258-1.01596-.305109-1.01596-.846976.0-.564444.37794-.84646 1.1343-.84646h1.5751v.406693c.51929-.417687.99892-.626835 1.43918-.626835zm11.2541.0c1.26436.0 2.30854.383707 3.13262 1.151351.83538.767646 1.25316 1.733192 1.25316 2.895949v.660424h-6.90914c.38382.993423 1.30954 1.489831 2.77709 1.489831.59831.0 1.26455-.09016 1.99833-.270785.73377-.19191 1.17409-.287837 1.32085-.287837.22578.0.41763.0844.57567.253732.15805.158044.2372.355661.2372.592728.0.361243-.32762.660553-.98237.89762-.65476.225777-1.27015.366787-1.84588.42323-.56445.05644-1.04985.08475-1.45625.08475-1.30951.0-2.38199-.36693-3.21737-1.100709-.83538-.733777-1.25264-1.676268-1.25264-2.827734.0-1.117598.41726-2.054842 1.25264-2.811198.84666-.767644 1.8856-1.151351 3.11609-1.151352zm-68.46611.01705c.47414.0.94852.14677 1.42266.440283.47413.29351.71106.626372.71106.998905.0.237067-.0849.440449-.25424.609783-.16934.169333-.36696.25373-.59273.25373-.19191.0-.41207-.10169-.66043-.30489-.24835-.2032-.46799-.304374-.65991-.304374-.27093.0-.60431.12423-.99942.372586-.38382.237067-.98192.688396-1.79472 1.354439v2.489253h2.35386c.75636.0 1.1343.282017 1.1343.84646.0.564447-.37794.846977-1.1343.846977h-5.02966c-.74507.0-1.11725-.28253-1.11725-.846977.0-.327376.0959-.547536.28784-.660423.19191-.12418.46816-.186037.82941-.186037h.98236v-4.013192h-.59273c-.74506.0-1.11776-.28253-1.11776-.846976.0-.564444.3727-.84646 1.11776-.84646h2.28617v1.100709c.67733-.508 1.21358-.85239 1.60869-1.033013.39511-.18062.80136-.270783 1.21904-.270783zm-75.696669.203092h3.014287v5.706628h2.066023c.745066.0 1.117245.282017 1.117245.84646.0.564447-.372179.846977-1.117245.846977h-5.824966c-.745067.0-1.117762-.28253-1.117762-.846977.0-.327376.09593-.547536.287838-.660423.19191-.12418.468677-.186037.829924-.186037h2.065506v-4.013192h-1.32085c-.756356.0-1.134298-.28253-1.134298-.846976.0-.338667.09593-.564071.287838-.67696.2032-.11289.485217-.1695.84646-.1695zm8.358664.0h2.235004c.361246.0.638014.06237.829924.186552.191913.11289.287837.332531.287837.659908.0.564446-.372694.846976-1.117761.846976h-.08423l1.845366 3.640606 1.811776-3.640606H59.02617c-.745067.0-1.117761-.28253-1.117761-.846976.0-.564444.372694-.84646 1.117761-.84646h2.285648c.361244.0.638014.06237.829924.186552.19191.11289.287838.332531.287838.659908.0.564446-.372695.846976-1.117762.846976h-.270785l-2.827734 5.706629h-1.761136l-2.827735-5.706629h-.237193c-.745067.0-1.117762-.28253-1.117762-.846976.0-.564444.372695-.84646 1.117762-.84646zm74.714305 1.456243c-.75636.0-1.36599.220157-1.82883.660423-.45156.42898-.67748.95421-.67748 1.575099.0.643467.23169 1.179193.69453 1.60817.47414.428979 1.08377.64389 1.82883.64389.74507.0 1.34893-.209148 1.81178-.626835.47413-.42898.71106-.959456.71106-1.591636.0-.677333-.23117-1.224587-.69401-1.642277-.46285-.417689-1.07824-.626834-1.84588-.626834zm-29.613182.01705c-.756356.0-1.365986.191855-1.828829.575675-.462846.383823-.694531.863457-.694531 1.43919.0.598311.231685 1.089473.694531 1.473296.474133.38382 1.083762.575675 1.828829.575675.733777.0 1.331877-.191855 1.794732-.575675.47413-.383823.71106-.86922.71106-1.456243.0-.587023-.23117-1.07242-.69401-1.456243-.462855-.38382-1.066715-.575675-1.811782-.575675zm9.492962.0c-.62089.0-1.1629.14101-1.62574.42323-.45156.282223-.73933.649153-.86351 1.100709h4.97799c-.13547-.462843-.42849-.829776-.88005-1.100709-.45156-.28222-.9878-.42323-1.60869-.42323zm30.62914.0c-.76765.0-1.41083.214394-1.93012.643371-.51929.42898-.77928.965221-.77928 1.608688.0.63218.25423 1.168421.76223 1.608688.51929.428977 1.15722.643371 1.91358.643371.75635.0 1.38852-.214394 1.89652-.643371.51929-.440267.77877-.976508.77877-1.608688.0-.632177-.25948-1.162656-.77877-1.591633-.508-.440266-1.12915-.660426-1.86293-.660426zm20.30677.0c-.76765.0-1.41083.214394-1.93012.643371-.51928.42898-.77928.965221-.77928 1.608688.0.63218.25423 1.168421.76223 1.608688.51929.428977 1.15722.643371 1.91358.643371.75635.0 1.38852-.214394 1.89652-.643371.51929-.440267.77877-.976508.77877-1.608688.0-.632177-.25948-1.162656-.77877-1.591633-.508-.440266-1.12915-.660426-1.86293-.660426zm30.29117.0c-.62089.0-1.1629.14101-1.62574.42323-.45156.282223-.73933.649153-.86351 1.100709h4.97799c-.13547-.462843-.42849-.829776-.88005-1.100709-.45156-.28222-.9878-.42323-1.60869-.42323zm-99.586685.575677c-.564446.05645-1.016291.225758-1.354957.507982-.338667.270933-.507979.615322-.507979 1.03301.0.349956.13576.643501.406694.880567.270933.225777.609557.338482 1.015957.338482.135467.0.282239-.01101.440285-.03359zm-22.491133 2.031918c-.575733.0-1.089435.124232-1.540992.372586-.440266.248357-.660423.536136-.660423.863516.0.19191.124229.35021.372586.47439.248354.124176.55291.186033.914156.186033.925688.0 1.857166-.287779 2.794143-.863512v-.846461c-.7112-.124176-1.337603-.186552-1.87947-.186552zm101.753998 1.337903h.30489c.31609.0.58133.106939.79582.321429.21448.214487.32142.480245.32142.796332.0.31609-.10694.581329-.32142.795816-.21449.21449-.47973.321429-.79582.321429h-.30489c-.3048.0-.57004-.106939-.79582-.321429-.21449-.225776-.32194-.491016-.32194-.795816.0-.3048.10745-.56479.32194-.77928.22578-.225777.49102-.338481.79582-.338481z" id="rect905" /></g></g></svg>
\ No newline at end of file

A  => static/img/iperdomo.jpg +0 -0

A  => static/img/iperdomo.svg +1 -0
@@ 1,1 @@
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:version="1.0 (4035a4fb49, 2020-05-01)" sodipodi:docname="noun_Bicycler_633.svg" id="svg901" enable-background="new 0 0 95.018 100" viewBox="0 0 95.018 100" version="1.0" fill="#000" width="100" height="100"><defs id="defs905"/><sodipodi:namedview inkscape:current-layer="svg901" inkscape:window-maximized="1" inkscape:window-y="1134" inkscape:window-x="0" inkscape:cy="50" inkscape:cx="50" inkscape:zoom="7.68" showgrid="false" id="namedview903" inkscape:window-height="1001" inkscape:window-width="1916" inkscape:pageshadow="2" inkscape:pageopacity="0" guidetolerance="10" gridtolerance="10" objecttolerance="10" borderopacity="1" bordercolor="#666666" pagecolor="#ffffff"/><g transform="matrix(0.9556216,0,0,0.9556216,2.1088512,2.21892)" id="g911"><path d="m54.03 6.466c0 3.569-2.813 6.465-6.281 6.465s-6.281-2.896-6.281-6.465c0-3.57 2.814-6.466 6.282-6.466 3.468.0 6.28 2.896 6.28 6.466z" id="path897"/><path d="m76.853 65.509c-.078.0-.156-.001-.234.0-2.791.034-5.431.666-7.783 1.768L65.785 62.53l5.562-19.996L54.928 11.257l-7.455 3.414L31.442 43.705c-2.797.587-3.355 1.63-4.234 3.723-.114.272-2.539 8.416-5.502 18.412-1.146-.216-2.329-.331-3.541-.331-.079.0-.156-.001-.234.0C8.012 65.629.0 73.31.0 82.754.0 92.274 8.138 1e2 18.165 1e2S36.33 92.274 36.33 82.754c0-7.431-4.959-13.768-11.904-16.191.385-1.299.769-2.592 1.143-3.854l21.128 17.69c-.372.71-.586 1.508-.586 2.354.0 2.931 2.503 5.307 5.589 5.307 2.573.0 4.734-1.652 5.385-3.899h1.668c.102 1.203.339 2.371.689 3.492L52.37 92.29l.242 2.209 9.754-1.351C65.682 97.308 70.936 1e2 76.852 1e2c10.026.0 18.165-7.726 18.165-17.246C95.018 73.235 86.879 65.509 76.853 65.509zM33.535 82.754c0 8.056-6.886 14.593-15.37 14.593-8.484.0-15.371-6.537-15.371-14.593.0-7.991 6.778-14.49 15.171-14.592.066-.001.133.0.199.0.95.0 1.878.086 2.78.243-1.139 3.846-2.333 7.879-3.489 11.785-1.2.298-2.086 1.331-2.086 2.563.0 1.466 1.251 2.653 2.795 2.653s2.794-1.188 2.794-2.653c0-.715-.299-1.362-.784-1.84.955-3.226 2.206-7.451 3.49-11.785 5.771 2.104 9.871 7.412 9.871 13.626zM29.818 48.477c.688-1.638.732-1.727 2.245-2.03.607-.032 4.34-.012 6.871.013l.028-2.812C38.541 43.644 38.146 43.64 37.772 43.637L47.885 28.842l7.383 11.67L38.945 53.886H28.192c.896-3.007 1.515-5.069 1.626-5.409zm28.079 2.752-.447 2.657h-3.748zm-31.455 8.542c.317-1.069.623-2.099.913-3.072h11.338l6.92 14.802-2.362 2.345zM52 77.463c-.1-.005-.198-.015-.3-.015-1.143.0-2.203.327-3.089.886l-3.506-2.937 7.702-.332zm-4.65-19.555 1.91-1.21h7.719l-2.007 11.946-1.188 3.527zm9.735 23.44c-.372-1.284-1.236-2.372-2.392-3.069l1.546-4.586 1.922 7.655zm7.076-12.99.612-2.198 1.61 2.506c-.688.461-1.335.971-1.947 1.517zm3.683 2.579 6.667 10.372c-.009.013-.017.026-.025.039h-8.368l-1.176-7.809c.844-.981 1.82-1.857 2.902-2.602zm9.009 26.41c-4.438.0-8.435-1.79-11.24-4.647l2.633-.364-1.252-5.167-.453-3.007h7.945c.494.748 1.368 1.246 2.367 1.246 1.543.0 2.794-1.188 2.794-2.653.0-1.39-1.127-2.528-2.562-2.642L70.3 69.555c1.932-.866 4.082-1.365 6.354-1.393.066-.001.133.0.199.0 8.484.0 15.37 6.537 15.37 14.592.0 8.056-6.886 14.593-15.37 14.593z" id="path899"/></g></svg>
\ No newline at end of file

A  => static/keybase.txt +78 -0
@@ 1,78 @@
==================================================================
https://keybase.io/iperdomo
--------------------------------------------------------------------

I hereby claim:

  * I am an admin of https://perdomo.me
  * I am iperdomo (https://keybase.io/iperdomo) on keybase.
  * I have a public key with fingerprint 5F97 4FD6 D0C9 148A D4C0  5454 8C91 5DFD 250C F3EA

To do so, I am signing this object:

{
    "body": {
        "key": {
            "eldest_kid": "0101af06e3f2621842b045199cd34b9a4eda20773ae86c5005f47bc46c14629d9f5d0a",
            "fingerprint": "5f974fd6d0c9148ad4c054548c915dfd250cf3ea",
            "host": "keybase.io",
            "key_id": "8c915dfd250cf3ea",
            "kid": "0101af06e3f2621842b045199cd34b9a4eda20773ae86c5005f47bc46c14629d9f5d0a",
            "uid": "fb4317935bfe1df0bafedb9b47d40219",
            "username": "iperdomo"
        },
        "revoke": {
            "sig_ids": [
                "785cf9d30324a317cb3a641a5df9cbebcb97e72a4d89b4eed61f9c3d9f35337d0f"
            ]
        },
        "service": {
            "hostname": "perdomo.me",
            "protocol": "https:"
        },
        "type": "web_service_binding",
        "version": 1
    },
    "ctime": 1495699801,
    "expire_in": 157680000,
    "prev": "0da9fdea17296f42e175dee7e8a29d703f89a4dd3966365ddd3b6d22dfb96bf6",
    "seqno": 6,
    "tag": "signature"
}

which yields the signature:

-----BEGIN PGP MESSAGE-----

owGtUm1QVFUYXkBq5UNQPsKQwAvKYAze77t3xYCGjMkYimiEYt3uvedc9gbuXXbX
RUAjwFECDYlGiRjLIZgUqpENY4wZ0hQEZ4QUNmwmp5lyIdKmDyAwmDqXwX/97P45
933P8z7Pc55zTgT76fQ+x5pMy1uC/pzxuf6zqCvY2mSuxEQVlGPGSqwYriywBECH
01ysAMyI4QROCDLOQkomWZIw0KSI0wzB8xKgaJEXaAgEEuc4SoAGVmJwnJFpTpRo
ViJoluQBLzMAF7BkTFasRdBusytWJ6JlZJ6jZcACXOIJ2iAAWsIZmqENqGSADEgG
l2QKaoMW1aFNIHOi4IApiop6qDCv2PsP/P/se/8KnSzSFMHxFCPKkAAyLgoyBCIv
0hygcZLgNaAD2q3CPojQig3agbpPxQ4lY3boUouhlqtDKUKmHZjxVYwzMJLMAwqn
SFpAxJJICSxNCOgovCRCURJ5DnKkQAMD0oAQsATaoJAriqEoDuAyZkLcSNGlSCvk
Wkqr6qviKahIxmx21alKagnqW5xOm8OoeXKW2zRgTxkUzascZlGxAnRFaMQF7Q5F
tWJGAkElp6KREjTPsDxvwIlkDB6wKXZoVjQEw7EGHH2aEHRpuQOBlwEUCI7kWZkm
IcExAEIOGgSUKodTsgGFDwDFsyzFMgD9iSwgSSCLPCvKLKadqtSqYkYW+RSKECXK
zSo499shdijgLV9qjc5Hr4uJ3LzGfCrHMzYcXj/+VV7ew1ft76s9aV3A2tCHndbu
kH8Ke+iJsqjdKb9bMtlth8Ny5W28qSC4M3bnUUx/v7twMMRyfvfnpfiXw7Hz5ZcX
+0xd3uxf9rzTXtMexlzY1Hg8o7G/BnbevvGFeVaP8WqGJ+30u9/oN55bP3o2Om5g
KqvxSuyQ0ULB0SVPvFQjzGbW3roPDr/W9XR1i3/45F7n7Zdyk9ru3hmr+/qZ1gb3
8JiXvUPvXdsWeKmjOiC4jDDbv1vuOuh7xSd/3tuxw9+63Ev8+klO3YUhYnDyXr9U
9gYIHy1uid6Un1T57LEl/U9i1s3cksfr/9hT+2ZomVKzcN3iSW/GfI1ZjyZkudrc
+t7iT3/zT90wzKnXhn3bK6LC3/sspmm7a27kBjdf8mNV/JP2oOyJ1jR93NiBu6WX
Gb+kUv75Ldd0j+iqN69bqgqBlinCEz2eEb84fbCl01N1us6167nouiM/pKZ8cHEi
6ORJdTDxsIhfvNp8yWo0jbvP9BFpHRFC+l9R2zM+HAm0xwdTA97cv/MiX5y8Z3wl
rDu9Yfr1x85OJmzs7DtzrraKcFdWtL5cpyzOul31pg1t097oOPEpY2boVjf2/tX+
gvyo9I+OF/TZemH8g1ODfraEwsjzO3qmj0bcytj1oOnjJ9blr0/186Y2N9+cSlx4
e3bn94k58tyAFJid6jrhJofKI2aaFpLGZ+iGkBcqvg0d8WlOjpn7Fw==
=KYwu
-----END PGP MESSAGE-----

And finally, I am proving ownership of this host by posting or
appending to this document.

View my publicly-auditable identity here: https://keybase.io/iperdomo

==================================================================

A  => static/presentations/Immutable-DB.pdf +0 -0

A  => static/presentations/using-duct-framework-in-production.pdf +0 -0

A  => static/robots.txt +6 -0
@@ 1,6 @@
User-agent: *

Disallow: /p/
Disallow: /doc/
Disallow: /cv/
Disallow: /e/