This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <title>lassulus</title> 7 <meta 8 name="description" 9 content="lassulus - freelance NixOS & infrastructure consultant in Berlin. nixpkgs contributor, clan core developer, krebs & c-base member. Available for hire." 10 /> 11 <link rel="canonical" href="https://lassul.us/" /> 12 <script type="application/ld+json"> 13 { 14 "@context": "https://schema.org", 15 "@type": "Person", 16 "name": "lassulus", 17 "url": "https://lassul.us", 18 "jobTitle": "NixOS & infrastructure consultant", 19 "address": { 20 "@type": "PostalAddress", 21 "addressLocality": "Berlin", 22 "addressCountry": "DE" 23 }, 24 "memberOf": { 25 "@type": "OrganizationRole", 26 "roleName": "Treasurer", 27 "memberOf": { 28 "@type": "Organization", 29 "name": "NixOS Foundation", 30 "url": "https://nixos.org" 31 } 32 }, 33 "sameAs": [ 34 "https://github.com/lassulus", 35 "https://matrix.to/#/@lassulus:lassul.us" 36 ] 37 } 38 </script> 39 <!-- 40 Font: "Web437 IBM VGA 8x16" from The Ultimate Oldschool PC Font Pack 41 (int10h.org/oldschool-pc-fonts), CC BY-SA 4.0. Inlined at build time. 42 Its metrics are exact: advance = 0.5em, line height = 1em, so the 43 80-column art is 40em wide and font-size: calc(100cqw / 40) makes it 44 fill the viewport width with no JS. 45 --> 46 <style> 47 @font-face { 48 font-family: "Web437 IBM VGA 8x16"; 49 src: url("data:font/woff;base64,@font_woff_b64@") format("woff"); 50 } 51 :root { 52 color-scheme: dark light; 53 --bg: #000; 54 --fg: #ccc; 55 --art: #ddd; 56 --str: #7c7; 57 --bool: #c96; 58 --cmt: #888; 59 } 60 @media (prefers-color-scheme: light) { 61 :root { 62 --bg: #f2efe6; /* paper terminal */ 63 --fg: #333; 64 --art: #222; 65 --str: #171; 66 --bool: #941; 67 --cmt: #777; 68 } 69 } 70 html { 71 background: var(--bg); 72 overflow-x: hidden; /* guard against sub-pixel rounding */ 73 } 74 body { 75 margin: 0; 76 color: var(--fg); 77 container-type: inline-size; 78 font-family: "Web437 IBM VGA 8x16", monospace; 79 } 80 pre { 81 margin: 0; 82 font-family: 83 "Web437 IBM VGA 8x16", monospace; /* UA pre{monospace} beats inheritance */ 84 padding-bottom: 1em; 85 font-size: calc(100vw / 40); /* fallback: browsers without cq units */ 86 font-size: calc(100cqw / 40); /* 80 cols x 0.5em, scrollbar excluded */ 87 line-height: 1; /* VGA cell: 8x16 */ 88 } 89 .art { 90 color: var(--art); 91 } 92 .s { 93 color: var(--str); 94 } 95 .b { 96 color: var(--bool); 97 } 98 .c { 99 color: var(--cmt); 100 } 101 a { 102 color: inherit; 103 text-decoration: underline dotted; 104 } 105 a:hover, 106 a:focus { 107 background: var(--str); 108 color: var(--bg); 109 text-decoration: none; 110 } 111 .cursor { 112 background: var(--fg); 113 animation: blink 1.2s steps(1) infinite; 114 } 115 @keyframes blink { 116 50% { 117 background: transparent; 118 } 119 } 120 </style> 121 </head> 122 <body> 123 <pre><span class="art"> ▀███▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄██ 124 █▒▒█ ▄██████ ██████▄ ██████▄ ████ ████ █▒▒█ ████ ████ ██████▄ 125 █▒▒█ ▄████▒▒▒█ █▒▒▒████▄ █▒▒▒████▄ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒▒████▄ 126 █▒▒█ █▒▒█ █▒▒█▄▄▄▄▄ █▒▒█▄▄▄▄▄ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█▄▄▄▄▄ 127 █▒▒█ █████▒▒▒█ █▒▒▒▒▒▒▒█ █▒▒▒▒▒▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒█ █▒▒▒▒▒▒▒█ 128 █░░█ █░░░█░░░█ ▀▀▀▀▀█░░█ ▀▀▀▀▀█░░█ █░░█ █░░█ █░░█ █░░█ █░░█ ▀▀▀▀▀█░░█ 129 █░░░███ █░░█▄█░░█ ▀████░░░█ ▀████░░░█ █░░░█░░░█ █░░░███ █░░░█░░░█ ▀████░░░█ 130 ███████ ███████▀ ▀██████ ▀██████ ███████▀ ███████ ███████▀ ▀████░█ 131 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ 132 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀███████████ 133 134┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼</span> 135 136{ 137 name = <span class="s">"lassulus"</span>; 138 location = <span class="s">"berlin"</span>; 139 skills = [ 140 <a class="s" href="https://nixos.org">"nixos"</a> 141 <a class="s" href="https://github.com/Lassulus/superconfig">"infrastructure"</a> 142 <a class="s" href="https://github.com/lassulus">"programming"</a> 143 ]; 144 crews = [ 145 <a class="s" href="https://nixos.org/blog/announcements/2025/foundation-board-2025/">"NixOS Foundation (treasurer)"</a> 146 <a class="s" href="https://krebsco.de">"krebs"</a> 147 <a class="s" href="https://c-base.org">"c-base"</a> 148 ]; 149 services = [ 150 <span class="s">"nix/nixos consulting"</span> 151 <span class="s">"fleet deployments"</span> 152 <span class="s">"self-hosted infra: mail, matrix, dns, vpn, ci"</span> 153 ]; 154 projects = { 155 nixpkgs = <a class="s" href="https://github.com/NixOS/nixpkgs/commits?author=Lassulus">"contributor &amp; maintainer"</a>; 156 clan = <a class="s" href="https://clan.lol">"clan.lol"</a>; 157 disko = <a class="s" href="https://github.com/nix-community/disko">"declarative disk partitioning"</a>; <a class="c" href="https://www.youtube.com/watch?v=bKx7V917b2Q"># video</a> 158 nixos-anywhere = <a class="s" href="https://github.com/nix-community/nixos-anywhere">"install nixos over ssh"</a>; <a class="c" href="https://www.youtube.com/watch?v=4sypfTBuEbA"># video</a> 159 nix-writers = <a class="s" href="https://github.com/NixOS/nixpkgs/tree/master/pkgs/build-support/writers">"scripts in any language (pkgs.writers)"</a>; <a class="c" href="https://www.youtube.com/watch?v=qRE6kf30u4g"># video</a> 160 wrappers = <a class="s" href="https://github.com/Lassulus/wrappers">"wrapped executables via modules"</a>; <a class="c" href="https://www.youtube.com/watch?v=Zzvn9uYjQJY"># video</a> 161 thisWebsite = <a class="s" href="https://github.com/Lassulus/superconfig/tree/master/configs/websites/lassul.us">"self-hosted with nix"</a>; 162 }; 163 github = <a class="s" href="https://github.com/lassulus">"https://github.com/lassulus"</a>; 164 matrix = <a class="s" href="https://matrix.to/#/@lassulus:lassul.us">"@lassulus:lassul.us"</a>; 165 email = <a href="#" id="email">x: x.click_to_uncover</a>; 166 availableForHire = <span class="b">true</span>; 167}<span class="cursor"> </span></pre> 168 <script> 169 document.getElementById("email").addEventListener( 170 "click", 171 function (e) { 172 e.preventDefault(); 173 var addr = ["consulting", "lassul.us"].join("@"); 174 this.textContent = '"' + addr + '"'; 175 this.classList.add("s"); 176 this.href = "mailto:" + addr; 177 }, 178 { once: true }, 179 ); 180 </script> 181 </body> 182</html>