-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.xml
380 lines (312 loc) · 24.3 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Lucas Roesler</title>
<link>https://lucasroesler.com/</link>
<description>Recent content on Lucas Roesler</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Sat, 16 Sep 2023 00:00:00 +0200</lastBuildDate><atom:link href="https://lucasroesler.com/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Have your Debian cake and eat it too</title>
<link>https://lucasroesler.com/posts/2023/0-mixing-package-sources-in-debian/</link>
<pubDate>Sat, 16 Sep 2023 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2023/0-mixing-package-sources-in-debian/</guid>
<description>I recently switched to Debian because I wanted a rock solid plain Gnome environment for my daily driver / work laptop. The main downside is that even Debian testing is a bit more conservative with updates than I would like for certain applications. Normally I would use and recommend Flatpak, but there are a few edge cases where I need to use the Debian package, which leads me to today&rsquo;s post.</description>
</item>
<item>
<title>Hard won lessons about Github Actions: Really fixed it this time, number 42.</title>
<link>https://lucasroesler.com/posts/2022/2-github-actions-lessons/</link>
<pubDate>Thu, 27 Oct 2022 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2022/2-github-actions-lessons/</guid>
<description><p>I have spent the two weeks modernizing a long dormant project at Contiamo. Not only did this require updating various dependencies and subsequently parts of the code base, but it also meant updating an old Jenkinfile into a Github Action workflow. 😬😬😬</p></description>
</item>
<item>
<title>Go 1.18 Released</title>
<link>https://lucasroesler.com/posts/2022/1-go-1.18-release/</link>
<pubDate>Sun, 20 Mar 2022 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2022/1-go-1.18-release/</guid>
<description>Go 1.18 was released last week (March 15) and I have finally had a chance to play with it. I have been excited for it in the month leading to the release, reading almost every preview that I saw on Twitter, and the release has not disappointed! I think the last release that got me this excited was 1.16, when they added embed.
Today, I want to share a few of things that made me a bit more excited than usual for a Go release.</description>
</item>
<item>
<title>Gluten Free Pancakes</title>
<link>https://lucasroesler.com/posts/2022/0-gluten-free-pancake/</link>
<pubDate>Mon, 03 Jan 2022 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2022/0-gluten-free-pancake/</guid>
<description>Anyone that knows that knows me also knows that breakfast (American breakfast) is one of my favorite meals. Eggs, bacon, pancakes, waffles, home fries, coffee, orange juice, and more. I love it all. Cooking is not something I normally talk about. However, for various reasons, I have needed to learn more about gluten free cooking and I have finally found/create a recipe for gluten free pancakes. I am tired of recreating it and looking up various conversions, so I writing it down here.</description>
</item>
<item>
<title>A foray into OpenTelemetry with OpenFaaS</title>
<link>https://lucasroesler.com/posts/2021/opentelemetry-and-openfaas/</link>
<pubDate>Sun, 12 Dec 2021 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2021/opentelemetry-and-openfaas/</guid>
<description>I have always been a fan of tracing. My first taste of it was with NewRelic, but the development of OpenTracing and more recently OpenTelemetry have made it an easy must have in every project I start. I have created a new walk-through: Tracing and Observability with OpenFaaS to show you how to add OpenTelemetry to your Python Flask functions.
This post won&rsquo;t go through the walk-through, the walk-through already does that.</description>
</item>
<item>
<title>Easy settings management for Python functions with Pydantic</title>
<link>https://lucasroesler.com/posts/2021/pydantic-settings-for-openfaas-functions/</link>
<pubDate>Tue, 03 Aug 2021 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2021/pydantic-settings-for-openfaas-functions/</guid>
<description>File this under quick tips and tricks for Python functions in OpenFaas.
I just learned about Pydantic&rsquo;s support for reading settings from secret files and it fits perfectly with secrets in OpenFaaS. If you love Python or you are writing Python functions in OpenFaas, this is a great way to simplify your configuration parsing.
I am going to keep this short and sweet. Let&rsquo;s say you have an OpenFaas function that needs to access a database.</description>
</item>
<item>
<title>Using Tox and PyTest with OpenFaaS</title>
<link>https://lucasroesler.com/posts/2021/test-python-functions/</link>
<pubDate>Sat, 06 Mar 2021 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2021/test-python-functions/</guid>
<description>I think it is an uncontroversial statement to say testing is important in software development. Writing tests may not always be fun, but nothing is a sweet as that moment when a unit test catches a bug before you deploy.
In OpenFaaS we have tons of tests in each project, even the certifier itself runs a short suite of end-to-end tests. But, not all of our function templates have first class testing support.</description>
</item>
<item>
<title>Event driven functions powered by Postgres</title>
<link>https://lucasroesler.com/posts/2021/event-driven-faasd-with-postgres/</link>
<pubDate>Sat, 30 Jan 2021 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2021/event-driven-faasd-with-postgres/</guid>
<description><p>An event-driven architecture can let you seamlessly extend your application or improve the scalability, if you can handle the eventual consistency. But your app may not be ready for this yet, or you don&rsquo;t own the code in the app. A recently added a feature to <a href="https://github.com/openfaas/faasd"><code>faasd</code></a> got me thinking about event driven architecture powered by the Postgres WAL. Which means we can seamlessly extend your app without needing to change the app!</p>
<p>This post will show you how to quickly deploy Postgresql along with an event listener and some custom functions. From there it’s up to you what you build.</p></description>
</item>
<item>
<title>Customizing the keyboard layout on the Dell XPS 13</title>
<link>https://lucasroesler.com/posts/2021/custom-linux-keyboard-layout/</link>
<pubDate>Sun, 10 Jan 2021 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2021/custom-linux-keyboard-layout/</guid>
<description>Fixing the Dell XPS arrow keys using XKB</description>
</item>
<item>
<title>Moving the data directory of Multipass and Docker</title>
<link>https://lucasroesler.com/posts/2020/multipass-data-partition/</link>
<pubDate>Sun, 13 Dec 2020 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2020/multipass-data-partition/</guid>
<description><p>This weekend was my first adventure in <a href="https://snapcraft.io/">Snaps</a>. Unfortunately, this adventure quickly devolved into a murder mystery, for my hard drive. The first snap I try to compile triggers a &ldquo;disk is almost out of space&rdquo; notification?! Turns out building Snaps requires a surprising amount of disk space. But it wasn&rsquo;t entirely Multipass&rsquo; fault, my good old friend Docker was eating up a decent chunk of my disk too.</p></description>
</item>
<item>
<title>Action Packed Functions</title>
<link>https://lucasroesler.com/posts/2019/openfaas-github-actions/</link>
<pubDate>Sat, 28 Sep 2019 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2019/openfaas-github-actions/</guid>
<description>A quick review of GitHub Actions and how to use them for CI/CD of your OpenFaaS Functions</description>
</item>
<item>
<title>Developing OpenFaaS KinD-ly</title>
<link>https://lucasroesler.com/posts/2019/kind-development-for-openfaas/</link>
<pubDate>Sun, 14 Apr 2019 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2019/kind-development-for-openfaas/</guid>
<description>Creating an isolated OpenFaaS Development environment with KinD</description>
</item>
<item>
<title>When sequential tests aren't</title>
<link>https://lucasroesler.com/posts/2019/golang-parallel-testing/</link>
<pubDate>Sat, 02 Feb 2019 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2019/golang-parallel-testing/</guid>
<description>A brief reminder that go will default to testing packages in parallel</description>
</item>
<item>
<title>Golang long-polling: a tale of server timeouts</title>
<link>https://lucasroesler.com/posts/2018/golang-server-timeouts/</link>
<pubDate>Sun, 29 Jul 2018 00:00:00 +0200</pubDate>
<guid>https://lucasroesler.com/posts/2018/golang-server-timeouts/</guid>
<description><p>I recently had a week long battle implementing HTTP long-polling. As so often
happens in long debugging session in software development, my final fix was
one line!</p></description>
</item>
<item>
<title>Struct embedding for custom dev responses</title>
<link>https://lucasroesler.com/posts/2018/golang-struct-embedding/</link>
<pubDate>Sat, 27 Jan 2018 00:00:00 -0600</pubDate>
<guid>https://lucasroesler.com/posts/2018/golang-struct-embedding/</guid>
<description><p>I had to learn about Go struct embedding the other day and I wanted to document my
fix. In my use case I wanted to add some extra information to an API response to include
some meta data from kubernetes cluster and/or some extra error information.</p></description>
</item>
<item>
<title>Deploying a private registry in Docker Swarm</title>
<link>https://lucasroesler.com/posts/2017/docker-registries-in-docker-swarm/</link>
<pubDate>Mon, 09 Oct 2017 12:00:00 +0000</pubDate>
<guid>https://lucasroesler.com/posts/2017/docker-registries-in-docker-swarm/</guid>
<description><p>At <a href="https://contiamo.com">Contiamo</a> I am currently working a project that will eventually integrate with <a href="https://www.openfaas.com/">OpenFaaS</a>. I am really excited about this project because we will soon bring some serverless magic to data scientists that use Contiamo. That is, once I figure out how to deploy a private Docker registry inside a Docker Swarm.</p></description>
</item>
<item>
<title>Berlin and Golang</title>
<link>https://lucasroesler.com/posts/2017/starting-golang/</link>
<pubDate>Wed, 02 Aug 2017 11:00:00 -0400</pubDate>
<guid>https://lucasroesler.com/posts/2017/starting-golang/</guid>
<description><p>At the beginning of the month I left <a href="https://teem.com/">Teem</a> I was Director of Engineering and it was and still is a great company. There are some amazing developers there, so if you are looking for a job in SLC, hit them up. This weekend (Aug 5) I will be moving to Berlin to start a new role at <a href="https://www.contiamo.com/">Contiamo</a> and will be working on the <a href="https://docs.contiamo.com/en/labs/">Labs feature</a>.</p></description>
</item>
<item>
<title>Home Brewers Association Ruthless Rye Clone</title>
<link>https://lucasroesler.com/posts/2017/beer-hba-ruthless-rye-clone/</link>
<pubDate>Sat, 08 Jul 2017 00:00:00 +0000</pubDate>
<guid>https://lucasroesler.com/posts/2017/beer-hba-ruthless-rye-clone/</guid>
<description><p>This recipe is inspired by the <a href="https://www.homebrewersassociation.org/homebrew-recipe/sierra-nevada-ruthless-rye-clone/">Seirra Nevada Ruthless Rye Clone</a> written up by the Home Brewers Association. I have adjusted it to be a partial mash recipe with about 8 lbs of grains.</p></description>
</item>
<item>
<title>Salt City Brew Supply Orange Honey Wheat</title>
<link>https://lucasroesler.com/posts/2017/beer-scbs-orange-honey-wheat/</link>
<pubDate>Sat, 24 Jun 2017 00:00:00 +0000</pubDate>
<guid>https://lucasroesler.com/posts/2017/beer-scbs-orange-honey-wheat/</guid>
<description><p>I just finished my first official &ldquo;summer beer&rdquo; of the year, an Orange Honey Wheat. This one was inspire by my wife while at the store &ldquo;you should do this one, it uses Utah honey!&rdquo;, thank you <a href="http://techlady.ninja">tech lady ninja</a>.</p></description>
</item>
<item>
<title>SSL Expiry Quick and Simple</title>
<link>https://lucasroesler.com/posts/2017/ssl-expiration-checking/</link>
<pubDate>Sun, 11 Jun 2017 11:00:00 -0600</pubDate>
<guid>https://lucasroesler.com/posts/2017/ssl-expiration-checking/</guid>
<description><p>Ever have that feeling you are forgetting something right as you leave work? You are probably thinking about your keys or your lunch box but I am talking about your SSL certificate. They don&rsquo;t last forever, we know this when we setup SSL but that doesn&rsquo;t stop it from sneaking up on us. It has happened to the big guys like <a href="https://thenextweb.com/apps/2015/04/30/oops-instagram-forgot-to-renew-its-ssl-certificate/#.tnw_9kCFpT58">Instagram</a> and <a href="http://www.pcworld.com/article/2906216/expired-google-certificate-temporarily-disrupts-gmail-service.html">Google</a>, at <a href="http://status.teem.com/incidents/ddtys5ss4mw5">Teem recently</a>, and of course for myself with my own home server.</p></description>
</item>
<item>
<title>Your API's rat nest</title>
<link>https://lucasroesler.com/posts/2017/api-rats-nest/</link>
<pubDate>Mon, 05 Jun 2017 21:22:00 -0600</pubDate>
<guid>https://lucasroesler.com/posts/2017/api-rats-nest/</guid>
<description><p>Recently, I have seen several articles talking about RESTful API design. Of
course this is also a common topic of discussion for the engineers at Teem. I
want to use (and write) APIs that are easy to understand and explain and the
fastest way to complicate your API is nested routes. Just don&rsquo;t do it! Do not
create nested routes in your API. Let&rsquo;s keep our APIs simple and create one
endpoint per resource and if filters are needs, use GET parameters. This is
simpler to document and simpler to maintain and ultimately, easier to use.</p></description>
</item>
<item>
<title>Take Care of Your People</title>
<link>https://lucasroesler.com/posts/2017/take-care-of-your-people/</link>
<pubDate>Sun, 21 May 2017 22:00:00 -0600</pubDate>
<guid>https://lucasroesler.com/posts/2017/take-care-of-your-people/</guid>
<description><p>When I first started this blog, I started with <a href="https://lucasroesler.com/posts/2017/management-philosophy/">My Management Philosophy</a>. In short,</p>
<blockquote>
<p>be a multiplier for your team and reduce friction&hellip;
Successful managers make other people better at their jobs, “multiplying”
their productivity.</p>
</blockquote>
<p>When I wrote this, I was focusing on the ideas as a guide. &ldquo;Should I do X?
Does it multiply my team&rsquo;s effort? Does it simplify their job?&rdquo; Underlying
this is that good leadership requires <em>empathy</em> and <em>trust</em>.</p></description>
</item>
<item>
<title>Living Our Culture at Teem via Peer Reviews</title>
<link>https://lucasroesler.com/posts/2017/how-we-live-the-teem-engineering-values/</link>
<pubDate>Sat, 22 Apr 2017 12:16:11 -0600</pubDate>
<guid>https://lucasroesler.com/posts/2017/how-we-live-the-teem-engineering-values/</guid>
<description><p>About a year ago we set down to document the core values of the engineering at
Teem. After a lot of discussion we narrowed it to three core ideas</p>
<ol>
<li>maximize positive impact</li>
<li>communicate</li>
<li>be a good friend</li>
</ol>
<p>I would add one more unofficial value: mentorship and continuous learning.
About the same time we also started thinking about how we describe/define an
engineers career path and we quickly realized that measuring progress is hard
and that measuring commitment to our core values is even harder.</p></description>
</item>
<item>
<title>Delete or not to delete</title>
<link>https://lucasroesler.com/posts/2017/delete-or-not-to-delete/</link>
<pubDate>Sun, 02 Apr 2017 00:00:00 -0700</pubDate>
<guid>https://lucasroesler.com/posts/2017/delete-or-not-to-delete/</guid>
<description>Should you remove data from the database or simply mark it as deleted?</description>
</item>
<item>
<title>How I Git</title>
<link>https://lucasroesler.com/posts/2017/how-i-git/</link>
<pubDate>Sun, 19 Mar 2017 00:00:00 -0600</pubDate>
<guid>https://lucasroesler.com/posts/2017/how-i-git/</guid>
<description><p>Perhaps the one piece of ubiquitous technology that you will find at any new
tech company is <code>git</code>. There are a couple of other technologies that you will
probably find, like AWS, but <code>git</code> is the only one I expect to find everywhere. It is
also, surprisingly, many developers number one frienemy. I want to share some
of my favorite tips and tweaks that I have used over the years to make it all
friend and never my enemy.</p></description>
</item>
<item>
<title>A spring Hefe</title>
<link>https://lucasroesler.com/posts/2017/beer-spring-hefeweizen/</link>
<pubDate>Sun, 05 Mar 2017 00:00:00 -0700</pubDate>
<guid>https://lucasroesler.com/posts/2017/beer-spring-hefeweizen/</guid>
<description><p>A traditional Bavarian Hefeweizen: medium body, cloudy, malty, and spicy,
with a smooth mouth-feel and dense, whipped-cream head.</p></description>
</item>
<item>
<title>Zero downtime deploys: A tale of Django migrations</title>
<link>https://lucasroesler.com/posts/2017/automatic-migration-validation/</link>
<pubDate>Mon, 20 Feb 2017 00:00:00 -0700</pubDate>
<guid>https://lucasroesler.com/posts/2017/automatic-migration-validation/</guid>
<description><p>At Teem, we aim for zero down-time deploys; so, one of the most
important things we must validate is that things will not break mid-deploy!</p>
<p>The most sensitive step of the deploy process is the changes to our database.
Prior to the automation I am about to describe, validation of the database
migrations required specialized knowledge about Postgres, the changes to the
application model, load on the database for that model, and a bit of general
experience. This obviously slows down reviews and subsequently deploys. Worse,
it was simply too easy to miss problem migrations when depending on only peer
reviews. To make our lives easier we created a series of validation checks to
ensure that each database migration will be backwards compatible.</p></description>
</item>
<item>
<title>Postgres Joins and Django Querysets</title>
<link>https://lucasroesler.com/posts/2017/django-queryset-optimizing-joins/</link>
<pubDate>Mon, 06 Feb 2017 20:00:00 +0000</pubDate>
<guid>https://lucasroesler.com/posts/2017/django-queryset-optimizing-joins/</guid>
<description>Dealing with inefficient joins in Django&rsquo;s ORM</description>
</item>
<item>
<title>My Management Philosophy</title>
<link>https://lucasroesler.com/posts/2017/management-philosophy/</link>
<pubDate>Sun, 29 Jan 2017 20:00:00 -0700</pubDate>
<guid>https://lucasroesler.com/posts/2017/management-philosophy/</guid>
<description><p>The other day I was having lunch with a friend when he asked what resources I
use to learn about management and tech leadership in general. I will share
some recommendations at the end, but my answer to him got me thinking about
my philosophy around management and how to be good at it, which is what I really
want to share here.</p>
<p><strong>TL;DR: be a multiplier for your team and reduce friction.</strong></p></description>
</item>
<item>
<title>Spicy Winter Porter</title>
<link>https://lucasroesler.com/posts/2017/beer-spicy-winter-warmer/</link>
<pubDate>Sun, 15 Jan 2017 13:48:19 -0700</pubDate>
<guid>https://lucasroesler.com/posts/2017/beer-spicy-winter-warmer/</guid>
<description><p>I just finished my winter beer. I usually do one dark spicy beer for the winter
season. Last year was the &ldquo;Better Not Pout Stout&rdquo;, this year is the less
excitingly named &ldquo;Spicy Winter Porter&rdquo;.</p></description>
</item>
<item>
<title>hello</title>
<link>https://lucasroesler.com/posts/2017/hello/</link>
<pubDate>Sun, 15 Jan 2017 00:00:00 -0700</pubDate>
<guid>https://lucasroesler.com/posts/2017/hello/</guid>
<description><p>Welcome! This is just a test post, a proof of life.</p></description>
</item>
<item>
<title>Resume</title>
<link>https://lucasroesler.com/resume/full/</link>
<pubDate>Fri, 21 Jun 2013 11:27:27 -0400</pubDate>
<guid>https://lucasroesler.com/resume/full/</guid>
<description>Lucas Roesler Berlin, DE [email protected]
https://github.com/LucasRoesler
https://www.linkedin.com/in/lucasroesler/
Technical Skills Languages: Go, Python, PostgreSQL, MongoDB, Javascript, Typescript, HTML, CSS Technologies: OpenFaaS, Docker, Kubernetes, OpenTracing, Grafana, Loki, Amazon Web Services (AWS), Google Cloud (GCP), Git, OpenAPI Education Ph.D. in Mathematics, University of Connecticut (UConn), Storrs, Connecticut - May 2012
Dissertation Title: &ldquo;Algebras from surfaces and their derived equivalences&rdquo; Advisor: Dr. Ralf Schiffler
M.S. in Mathematics, University of Connecticut (UConn), Storrs, Connecticut - May 2009</description>
</item>
<item>
<title></title>
<link>https://lucasroesler.com/description/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://lucasroesler.com/description/</guid>
<description>A few more details I have been a core contributor to OpenFaas since 2017. I implemented the secrets, logs, and profiles features as well as general contributions throughout the rest of the project including faas-swarm, faas-netes, faasd, the faas-provider, the certifier, and the Python function SDK.
At Contiamo GmbH I am a senior engineer and lead the Platform team. We design the core architecture, operational and observability tooling, and the public API of Contiamo&rsquo;s DataHub platform.</description>
</item>
<item>
<title>introduction</title>
<link>https://lucasroesler.com/intro/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://lucasroesler.com/intro/</guid>
<description>I am senior engineer at contiamo.com, core contributor to OpenFaas, and an ex-mathematician.
I work with Go, Python, Kubernetes, Serverless, Observability, and REST APIS. I like rock climbing, beer, hiking, and my motorcycle.</description>
</item>
</channel>
</rss>