nus-talk/nus.html

750 lines
1.5 MiB
HTML
Raw Permalink Normal View History

2024-09-17 03:25:16 +00:00
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2024-09-14 13:27:25 +00:00
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<meta name="author" content="Julian Ospald" />
<title>Two decades of Open Source</title>
<style type="text/css">
2024-09-17 03:25:16 +00:00
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
</style>
<link href="data:text/css; charset=utf-8;charset=utf-8,%0Abody%0A%7B%0Amargin%3A%200%200%200%200%3B%0Apadding%3A%200%200%200%200%3B%0Awidth%3A%20100%25%3B%0Aheight%3A%20100%25%3B%0Acolor%3A%20black%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dfamily%3A%20%22Gill%20Sans%20MT%22%2C%20%22Gill%20Sans%22%2C%20GillSans%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014pt%3B%0A%7D%0Adiv%2Etoolbar%20%7B%0Aposition%3A%20fixed%3B%20z%2Dindex%3A%20200%3B%0Atop%3A%20auto%3B%20bottom%3A%200%3B%20left%3A%200%3B%20right%3A%200%3B%0Aheight%3A%201%2E2em%3B%20text%2Dalign%3A%20right%3B%0Apadding%2Dleft%3A%201em%3B%0Apadding%2Dright%3A%201em%3B%20font%2Dsize%3A%2060%25%3B%0Acolor%3A%20red%3B%0Abackground%2Dcolor%3A%20rgb%28240%2C240%2C240%29%3B%0Aborder%2Dtop%3A%20solid%201px%20rgb%28180%2C180%2C180%29%3B%0A%7D%0Adiv%2Etoolbar%20span%2Ecopyright%20%7B%0Acolor%3A%20black%3B%0Amargin%2Dleft%3A%200%2E5em%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%201000%3B%0Abottom%3A%201%2E2em%3B%0Awidth%3A%20100%25%3B%0Abackground%2Dcolor%3A%20rgb%28200%2C200%2C200%29%3B%0Aopacity%3A%200%2E35%3B%0Abackground%2Dcolor%3A%20rgba%28200%2C200%2C200%2C%200%2E35%29%3B%0Acursor%3A%20pointer%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20p%2Ehelp%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20p%2Eclose%20%7B%0Atext%2Dalign%3A%20right%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Adiv%2Eslidy%5Ftoc%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%20300%3B%0Awidth%3A%2060%25%3B%0Amax%2Dwidth%3A%2030em%3B%0Aheight%3A%2030em%3B%0Aoverflow%3A%20auto%3B%0Atop%3A%20auto%3B%0Aright%3A%20auto%3B%0Aleft%3A%204em%3B%0Abottom%3A%204em%3B%0Apadding%3A%201em%3B%0Abackground%3A%20rgb%28240%2C240%2C240%29%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dwidth%3A%202px%3B%0Afont%2Dsize%3A%2060%25%3B%0A%7D%0Adiv%2Eslidy%5Ftoc%20%2Etoc%5Fheading%20%7B%0Atext%2Dalign%3A%20center%3B%0Awidth%3A%20100%25%3B%0Amargin%3A%200%3B%0Amargin%2Dbottom%3A%201em%3B%0Aborder%2Dbottom%2Dstyle%3A%20solid%3B%0Aborder%2Dbottom%2Dcolor%3A%20rgb%28180%2C180%2C180%29%3B%0Aborder%2Dbottom%2Dwidth%3A%201px%3B%0A%7D%0Adiv%2Eslide%20%7B%0Az%2Dindex%3A%2020%3B%0Amargin%3A%200%200%200%200%3B%0Apadding%2Dtop%3A%200%3B%0Apadding%2Dbottom%3A%200%3B%0Apadding%2Dleft%3A%2020px%3B%0Apadding%2Dright%3A%2020px%3B%0Aborder%2Dwidth%3A%200%3B%0Aclear%3A%20both%3B%0Atop%3A%200%3B%0Abottom%3A%200%3B%0Aleft%3A%200%3B%0Aright%3A%200%3B%0Aline%2Dheight%3A%20120%25%3B%0Abackground%2Dcolor%3A%20transparent%3B%0A%7D%0Adiv%2Ebackground%20%7B%0Adisplay%3A%20none%3B%0A%7D%0Adiv%2Ehandout%20%7B%0Amargin%2Dleft%3A%2020px%3B%0Amargin%2Dright%3A%2020px%3B%0A%7D%0Adiv%2Eslide%2Etitlepage%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%2Eslide%2Etitlepage%20h1%20%7B%0Apadding%2Dtop%3A%2010%25%3B%0Amargin%2Dright%3A%200%3B%0A%7D%0Adiv%2Eslide%20h1%20%7B%0Apadding%2Dleft%3A%200%3B%0Apadding%2Dright%3A%2020pt%3B%0Apadding%2Dtop%3A%204pt%3B%0Apadding%2Dbottom%3A%204pt%3B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dleft%3A%200%3B%0Amargin%2Dright%3A%2060pt%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0Adisplay%3A%20block%3B%20font%2Dsize%3A%20160%25%3B%0Aline%2Dheight%3A%201%2E2em%3B%0Abackground%3A%20transparent%3B%0A%7D%0A%40media%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%201024px%29%0A%7B%0Adiv%2Eslide%20%7B%20font%2Dsize%3A%20100%25%3B%20%7D%0A%7D%0A%40media%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%20800px%29%0A%7B%0Adiv%2Eslide%20%7B%20font%2Dsize%3A%20200%25%3B%20%7D%0Adiv%2Eslidy%5Ftoc%20%7B%0Atop%3A%201em%3B%0Aleft%3A%201em%3B%0Aright%3A%20auto%3B%0Awidth%3A%2080%25%3B%0Afont%2Dsize%3A%20180%25%3B%0A%7D%0A%7D%0Adiv%2Etoc%2Dheading%20%7B%0Awidth%3A%20100%25%3B%0Aborder%2Dbottom%3A%20solid%201px%20rgb%28180%2C180%2C180%29%3B%0Amargin%2Dbottom%3A%201em%3B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Aimg%20%7B%0Aimage%2Drendering%3A%20optimize%2Dquality%3B%0A%7D%0Apre%20%7B%0Afont%2Dsize%3A%2080%25%3B%0Afont%2Dweight%3A%20bold%3B%0Aline%2Dheight%3A%20120%25%3B%0Apadding%2Dtop%3A%200%2E2em%3B%0Apadding%2Dbottom%3A%200%2E2em%3B%0Apadding%2Dleft%3A%201em%3B%0Apadding%2Dright%3A%201em%3B%0Aborder%2Dstyle%3A%20solid%3B%0Abord
<link href="data:text/css,h1%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%20%3E%20p%20%7B%0Apadding%2Dleft%3A%2040px%3B%0A%7D%0Adiv%20%3E%20ul%20%7B%0Apadding%2Dleft%3A%2053px%3B%0A%7D%0A%2Ecentered%20%7B%0Ap%20%7B%0Apadding%2Dleft%3A%200px%20%21important%3B%0Amargin%2Dleft%3A%200px%20%21important%3B%0Amargin%2Dright%3A%2060px%3B%0Apadding%2Dright%3A%2020px%3B%0A%7D%0Aul%20%7B%0Apadding%2Dleft%3A%200px%20%21important%3B%0A%7D%0Atext%2Dalign%3A%20center%3B%0A%7D%0A" rel="stylesheet" type="text/css" media="screen, projection, print" />
<script src="data:text/javascript; charset=utf-8;charset=utf-8,%2F%2A%20slidy%2Ejs%0A%0A%20%20%20Copyright%20%28c%29%202005%2D2013%20W3C%20%28MIT%2C%20ERCIM%2C%20Keio%29%2C%20All%20Rights%20Reserved%2E%0A%20%20%20W3C%20liability%2C%20trademark%2C%20document%20use%20and%20software%20licensing%0A%20%20%20rules%20apply%2C%20see%3A%0A%0A%20%20%20http%3A%2F%2Fwww%2Ew3%2Eorg%2FConsortium%2FLegal%2Fcopyright%2Ddocuments%0A%20%20%20http%3A%2F%2Fwww%2Ew3%2Eorg%2FConsortium%2FLegal%2Fcopyright%2Dsoftware%0A%0A%20%20%20Defines%20single%20name%20%22w3c%5Fslidy%22%20in%20global%20namespace%0A%20%20%20Adds%20event%20handlers%20without%20trampling%20on%20any%20others%0A%2A%2F%0A%0A%2F%2F%20the%20slidy%20object%20implementation%0Avar%20w3c%5Fslidy%20%3D%20%7B%0A%20%20%2F%2F%20classify%20which%20kind%20of%20browser%20we%27re%20running%20under%0A%20%20ns%5Fpos%3A%20%28typeof%20window%2EpageYOffset%21%3D%27undefined%27%29%2C%0A%20%20khtml%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22KHTML%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20opera%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22Opera%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20ipad%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22iPad%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20iphone%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22iPhone%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20android%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22Android%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20ie%3A%20%28typeof%20document%2Eall%20%21%3D%20%22undefined%22%20%26%26%20%21this%2Eopera%29%2C%0A%20%20ie6%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%206%22%29%20%21%3D%20%2D1%29%2C%0A%20%20ie7%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%207%22%29%20%21%3D%20%2D1%29%2C%0A%20%20ie8%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%208%22%29%20%21%3D%20%2D1%29%2C%0A%20%20ie9%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%209%22%29%20%21%3D%20%2D1%29%2C%0A%0A%20%20%2F%2F%20data%20for%20swipe%20and%20double%20tap%20detection%20on%20touch%20screens%0A%20%20last%5Ftap%3A%200%2C%0A%20%20prev%5Ftap%3A%200%2C%0A%20%20start%5Fx%3A%200%2C%0A%20%20start%5Fy%3A%200%2C%0A%20%20delta%5Fx%3A%200%2C%0A%20%20delta%5Fy%3A%200%2C%0A%0A%20%20%2F%2F%20are%20we%20running%20as%20XHTML%3F%20%28doesn%27t%20work%20on%20Opera%29%0A%20%20is%5Fxhtml%3A%20%2Fxml%2F%2Etest%28document%2EcontentType%29%2C%0A%0A%20%20slide%5Fnumber%3A%200%2C%20%2F%2F%20integer%20slide%20count%3A%200%2C%201%2C%202%2C%20%2E%2E%2E%0A%20%20slide%5Fnumber%5Felement%3A%20null%2C%20%2F%2F%20element%20containing%20slide%20number%0A%20%20slides%3A%20%5B%5D%2C%20%2F%2F%20set%20to%20array%20of%20slide%20div%27s%0A%20%20notes%3A%20%5B%5D%2C%20%2F%2F%20set%20to%20array%20of%20handout%20div%27s%0A%20%20backgrounds%3A%20%5B%5D%2C%20%2F%2F%20set%20to%20array%20of%20background%20div%27s%0A%20%20observers%3A%20%5B%5D%2C%20%2F%2F%20list%20of%20observer%20functions%0A%20%20toolbar%3A%20null%2C%20%2F%2F%20element%20containing%20toolbar%0A%20%20title%3A%20null%2C%20%2F%2F%20document%20title%0A%20%20last%5Fshown%3A%20null%2C%20%2F%2F%20last%20incrementally%20shown%20item%0A%20%20eos%3A%20null%2C%20%20%2F%2F%20span%20element%20for%20end%20of%20slide%20indicator%0A%20%20toc%3A%20null%2C%20%2F%2F%20table%20of%20contents%0A%20%20outline%3A%20null%2C%20%2F%2F%20outline%20element%20with%20the%20focus%0A%20%20selected%5Ftext%5Flen%3A%200%2C%20%2F%2F%20length%20of%20drag%20selection%20on%20document%0A%20%20view%5Fall%3A%200%2C%20%20%2F%2F%201%20to%20view%20all%20slides%20%2B%20handouts%0A%20%20want%5Ftoolbar%3A%20true%2C%20%20%2F%2F%20user%20preference%20to%20show%2Fhide%20toolbar%0A%20%20mouse%5Fclick%5Fenabled%3A%20true%2C%20%2F%2F%20enables%20left%20click%20for%20next%20slide%0A%20%20scroll%5Fhack%3A%200%2C%20%2F%2F%20IE%20work%20around%20for%20position%3A%20fixed%0A%20%20disable%5Fslide%5Fclick%3A%20false%2C%20%20%2F%2F%20used%20by%20clicked%20a
2024-09-14 13:27:25 +00:00
</head>
<body>
<div class="slide titlepage">
<h1 class="title">Two decades of Open Source</h1>
<p class="author">
Julian Ospald
</p>
<p class="date">Sep 20, 2024</p>
</div>
2024-09-17 03:25:16 +00:00
<div id="follow-the-presentation" class="slide section level2 centered">
<h1 class="centered">Follow the presentation</h1>
<p><img role="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAAAXNSR0IArs4c6QAAIABJREFUeF7svTGMXUW2tl1ObIRFMNIFERKAhH77k25AjiEgGAJPACIlxhIicGakbktD5gCNBDEpGoLpgBsQDE0+wQ3sTyO5P4lwBFcisDzCTvq/24wH27TtvVetc55dZz0n7V1rnf3WW6vWc2qf06eOj4+Pmy8VUAEVUAEVUAEVUAEVUAEVUAEVUAFUgVMCOqq/yVVABVRABVRABVRABVRABVRABVTgngICukZQARVQARVQARVQARVQARVQARVQgRUoIKCvYBJ8CyqgAiqgAiqgAiqgAiqgAiqgAiogoOsBFVABFVABFVABFVABFVABFVABFViBAgL6CibBt6ACKqACKqACKqACKqACKqACKqACAroeUAEVUAEVUAEVUAEVUAEVUAEVUIEVKCCgr2ASfAsqoAIqoAIqoAIqoAIqoAIqoAIqIKDrARVQARVQARVQARVQARVQARVQARVYgQIC+gomwbegAiqgAiqgAiqgAiqgAiqgAiqgAgK6HlABFVABFVABFVABFVABFVABFVCBFSggoK9gEjb2Fo5ba6c2Ft3AKqACKqACKqACKqACKqACKqACiQoI6IliGkoFVEAFVEAFVEAFVEAFVEAFVEAFogoI6FHlHKcCKqACKqACKqACKqACKqACKqACiQoI6IliGkoFVEAFVEAFVEAFVEAFVEAFVEAFogoI6FHlHKcCKqACKqACKqACKqACKqACKqACiQoI6IliGkoFVEAFVEAFVEAFVEAFVEAFVEAFogoI6FHlHKcCKqACKqACKqACKqACKqACKqACiQoI6IliGkoFVEAFVEAFVEAFVEAFVEAFVEAFogoI6FHlHKcCKqACKqACKqACKqACKqACKqACiQoI6IliGkoFVEAFVEAFVEAFVEAFVEAFVEAFogoI6FHlHKcCKqACKqACKqACKqACKqACKqACiQoI6IliGkoFVEAFVEAFVEAFVEAFVEAFVEAFogoI6FHlHKcCKqACKqACKqACKqACKqACKqACiQoI6IliGmqlChy31k6t9L35tlRABVRABVRABVRABVRABVTgXwoI6FpBBVRABVRABVRABVRABVRABVQgVwEPyUJ6Cugh2RykAiqgAiqgAiqgAiqgAiqgAiqgArkKCOi5ehpNBVRABVRABVRABVRABVRABVRABUIKCOgh2RykAiqgAiqgAiqgAiqgAiqgAiqgArkKCOi5ehpNBVRABVRABVRABVRABVRABVRABUIKCOgh2RykAiqgAiqgAiqgAiqgAiqgAiqgArkKCOi5ehpNBVRgowr4c6AbldfgKqACKqACKqACKqACqAICOip/oeRyVaHJ9lZVQAWGUMC6PMQ0+SZVQAVUQAVqKSCg15pv71YFOAWEAU57M6uACqiACqiACqiACgyhgIA+xDT5JlVABVRABVRABVRABVRABVRABXZdAQF912fY+1MBFVABFVABFVABFVABFVABFRhCAQF9iGnyTaqACqiACqiACqiACqiACqiACuy6AgL6rs+w96cCKqACKqACKqACKqACKqACKjCEAgL6ENPkm1QBFVABFVABFVABFVABFVABFdh1BQT0XZ9h708FVEAFtq6AP9m/dclNqAIqoAIqoAIqsBMKCOg7MY3ehAqogAqogAqogAqogAqogAqowOgKCOijz6DvXwVUQAVUQAVUQAVUQAVUQAVUYCcUENB3Yhq9CRVQARVQARVQARVQARVQARVQgdEVENBHn0HfvwqogAqogAqogAqogAqogAqowE4oIKDvxDR6EyqgAiqgAqMo4E/ojTJTvk8VUAEVUAEV2L4CQwL6jRs3tq/UAxmPjo7ayy+/jL0HMj+ZexK8cn763if9z507h/m+cmK65jn3Nd1H+46ueXT+yvWW9h6pPX3vpO/J3PaYddnm/g5PrvtHu4xhAf38+fNYx3ThwoV2eHiI5Z8+HJiKGPEic0/3q/bMvE/a7+/vt729PcJ25XNevXr1nv7U6/r16344Q4kP5p1Awb2WqblTozitu6qvyXcUqNLa0/We7PPI3PaYHFusQfu19TkCemD3ExKZhmUNC5jcPMjcAnqgUCQOoRu2tW1cidIa6gkKCOhcw0pDIr0wBHTuA1my1yBz22Ny9W4N2q+tzxHQA7uQgC6gB2zTPYTeuDxB757CcAABPSydAzsUENC5hlVA9wS9Y+l2DSV7DTL3GiCRvH8y9xq0F9C7ysYvg20auKah+gIm75/M7Ql6QuHqCCGgd4jn0LAC7rXcXiugC+jhhds5kOw1yNxrgETy/snca9BeQO8sHAJ6u/cDdX4HPcFIgRCVtfcEPWCYpCECepKQhlmkgIDO7bUCuoC+aLEmXly5z/EJ2bpPyAroCUXEpoFrGsjCvYZP2Mj7J3N7gp5QuDpCCOgd4jk0rIB7LbfXCugCenjhdg4kew0ytz0mV+/WoL2A3lk4PEH3BN1f0E9YRIEQnqAHREsaIqAnCWmYRQoI6FzDKqAL6IsWa+LFJCSTudcAieT9k7nXoL2AnlBEbBq4pqH6Aibvn8ztCXpC4eoIIaB3iOfQsALutdxeK6AL6OGF2zmQ7DXI3GuARPL+ydxr0F5A7ywcnqB7gu4JesIiCoTwBD0gWtIQCtBPtdaOW7v3/5gnYPBVSwEBXUCnHO+/WfPfrBHe8zvofged8N1JOf03a4GZcAHXXcDkJ4xkbk/QA4UicQgF6PdvQUBPnMyBQgnoAjplVwFdQCe8Z39ft79fW59TANDvnwHlLXUXcN0FTEIymVtAz6sfkUgCekQ1x/QqIKD3AHpf7+Ej7j7i3rt+o+PJXoPMvYbHrMn7J3OvQXsBPVoxHhhn09DTNPRNQPUFTN4/mVtA71s3vaMF9F4FHR9RwL2W22sFdAE9smYzxpC9Bpl7DZBI3j+Zew3aC+gJ1cOmgWsaqi9g8v7J3AJ6QuHqCCGgd4jn0LAC7rXcXiugC+jhhds5kOw1yNxrgETy/snca9BeQO8sHNNwmwauaai+gBfdf98Tjr9ZKYtyJ6yzR0P4I3EbEHVmSAF9plBelqqAey231wroAnrqYl4QjOw1yNxrgETy/snca9BeQF9QJB53qU0D1zRUX8Dk/ZO5PUFPKFwdIQT0DvEcGlbAvZbbawV0AT28cDsHkr0GmXsNkEjeP5l7DdoL6J2FwxN0/82a/2YtYREFQniCHhAtaYiAniSkYRYpIKAL6IsMk3gx8Svu9x96oz8coes9CWpk7jVAInn/ZO41aC+gJxRwmwauaai+gMn7J3N7gp5QuDpC0A3b2jauDikdukAB99qMvTb2XScaEhfYZCOXEoB+/0Zo7el6T/YaZO41QCJ5/2TuNWi/tj6nwL9Zy987/Ddr/pu1fFc9PSJdPD1Bf/ocbeoKumFb28a1KZ2N+7ACAnoGoMdcRUNi7F3njRLQ/T/oeW6aH8n+vm5/v7Y+R0Cfv27/faULuO4CJiGZzO0JeqBQJA4R0BPFNNRsBQR0AX22WZIvFNAF9GRLzQpnf1+3vy8I6MettekRr7yXTQPXNNCQaPHkiqcn6Hk1bGkkAX2pYl6foYB7LbfXeoLuj8RlrOFIDLLPI3NPWtljcj0mrX1BQI+UhyePsWngmgaLZ13tBfT8WjY3ooA+Vymvy1Rg3L029r3vR7Uj9zsBXUDPXMtLYpG+J3ML6Fx/uwbtBfQlVeIx147bNCTcfPNX3P0V9xwfLY0ioC9VLO96AT1PSyPNV8C9lmtYBXQBff5Kzb2ShGQy9xogkbx/MvcatBfQE+qITQPXNOzWAl5+ykLeP5l7WrYCekLxCoYQ0IPCOaxLAfdabq8V0NcG6Plf13zc4qTrPdlrkLnXAInk/ZO516C9gN7VLvwy2KaBaxqqL2Dy/sncAnpC4eoIQTdsa9u4OqR06AIF3Gu5vVZAXxugL1g4nZfS9Z7sNcjc8yBx+cHOEjuQ90/mnqf9EiWXX7u2PsdfcV8+h/6IxFHdH5EgCxiZW
</div>
<div id="structure-of-this-talk" class="slide section level2">
<h1>Structure of this talk</h1>
<ol style="list-style-type: decimal">
<li>Introduction (about me and my career)</li>
<li>Open Source (what it is and its value)</li>
<li>First chapter: Gentoo and package management</li>
<li>Second chapter: GHCup</li>
<li>Third chapter: Haskell Core Libraries</li>
<li>Lessons learned</li>
</ol>
</div>
2024-09-14 13:27:25 +00:00
<div id="introduction" class="title-slide slide section level1">
<h1>Introduction</h1>
</div>
<div id="about-me" class="slide section level2">
<h1>About me</h1>
<ul>
<li>From Germany</li>
<li>Studied CS</li>
<li>Haskell developer</li>
<li>I love open source</li>
</ul>
</div>
<div id="professional-career" class="slide section level2">
<h1>Professional career</h1>
<ul>
<li>Software Engineer in R&amp;D (automotive industry)</li>
<li>Go Backend Developer (online advertisement platform</li>
<li>Haskell Developer at <strong>Capital Match</strong> (invoice
financing platform in Singapore)</li>
<li>Haskell Developer at <strong>IOHK</strong> (Cardano Blockchain)</li>
<li>Haskell Freelancer (blockchain and others)</li>
<li>Haskell Developer at <strong>Standard Chartered Bank</strong></li>
<li>Haskell Freelancer (chimney sweeper app for german businesses)</li>
</ul>
</div>
<div id="open-source-career" class="slide section level2">
<h1>Open Source career</h1>
<ul>
<li>Gentoo Linux developer (core team), 2012-2016
<ul>
<li>Ebuild development (packaging)</li>
<li>Code review</li>
2024-09-17 03:25:16 +00:00
<li>Development of a <a href="https://www.gentoo.org/glep/glep-0066.html">git workflow</a></li>
2024-09-14 13:27:25 +00:00
</ul></li>
<li>Author of GHCup (the Haskell installer), ca. 2019</li>
<li>Maintainer of Haskell core libraries: filepath, unix, os-string,
file-io</li>
2024-09-17 03:25:16 +00:00
<li>Implementation of the <a href="https://hasufell.github.io/posts/2022-06-29-fixing-haskell-filepaths.html">Abstract
2024-09-14 13:27:25 +00:00
FilePath Proposal</a></li>
<li>Member of the Haskell Core Libraries Comittee 2023-2026</li>
<li>Haskell Influencer (Haskell Foundation, …)</li>
</ul>
</div>
<div id="open-source" class="title-slide slide section level1">
<h1>Open Source</h1>
</div>
<div id="what-is-open-source" class="slide section level2">
<h1>What is Open Source</h1>
<ul>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
licenses (see OSI)
<ul>
<li><em>Not</em> free software</li>
<li><em>Not</em> copyleft</li>
</ul></li>
<li>🧑‍🤝‍🧑 A community
<ul>
<li>volunteers</li>
<li>companies</li>
</ul></li>
<li>🔮 A philosophy
<ul>
<li>sharing</li>
<li>collaboration</li>
<li>transparency</li>
</ul></li>
</ul>
</div>
<div id="popular-open-source-projects" class="slide section level2">
<h1>Popular Open Source projects</h1>
<ul>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
Linux kernel
<ul>
<li>1500 developers from 200-250 companies</li>
</ul></li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
Firefox</li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABAElEQVRo3u2YMQrCQBBFX8Ra0EIkWNkoFraSC2jrAbyLeBcbO9t4Ay9hJUFsBAuxijaJDKKCMEEj/zc7bPGzs/PCMgPSdxXkwWnSWQI9IAUq2faz2K68iS9AVFttma2JgabjuQ/zEWOAqtnsAQPHj5xNQn2g7ei9w9wY5oZLp8qLuJQJUPYEhJAQEkKqgCqgn1gICSEhJISE0EeyLeUlawM9W0obF+JtE4gKQCqvatfZO+VfdB+rsDjG2fTAs8xdpnWuMRsgdPROgjHDR4Ra+I4+7FgldPbWQ6aHTAgJISEkhISQEBJCQkgICSEh9HXZlnIPNJxbyhzLxPncCdKP6AZgeDgToq93lwAAAABJRU5ErkJggg==" id="id" class="class" height="32" />
2024-09-14 13:27:25 +00:00
VSCode</li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
Blender</li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
(The Haskell compiler)</li>
</ul>
</div>
<div id="value-proposition-of-open-source" class="slide section level2">
<h1>Value proposition of Open Source</h1>
<ul>
<li>⚗️ the scientific method
<ul>
<li>share your results</li>
<li>allow people to replicate it</li>
</ul></li>
<li>🔓 access to a community
<ul>
<li>users</li>
<li>collaborators</li>
</ul></li>
2024-09-17 03:25:16 +00:00
<li>🕸️ network effects
<ul>
<li>OSS community adopts fast</li>
<li>compare with git</li>
</ul></li>
2024-09-14 13:27:25 +00:00
</ul>
</div>
<div id="reality-of-open-source" class="slide section level2">
<h1>Reality of Open Source</h1>
<ul>
<li>most projects…
<ul>
<li>are one-man shows</li>
<li>have no users</li>
<li>are underdocumened</li>
<li>have horrible code</li>
</ul></li>
<li>writing new code is easy, maintenance is hard</li>
<li>most maintainers
<ul>
<li>dont get paid</li>
<li>will stop maintenance at some point</li>
<li>dont care much about their users</li>
</ul></li>
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="first-chapter-gentoo-and-package-management" class="title-slide slide section level1">
<h1>First chapter: Gentoo and package management</h1>
2024-09-14 13:27:25 +00:00
</div>
<div id="what-is-gentoo" class="slide section level2">
<h1>What is Gentoo</h1>
<ul>
<li>a Linux distribution
<ul>
<li>rolling release</li>
<li>source based</li>
</ul></li>
<li>19000 packages (program, library, …)</li>
<li>200 core developers (at its peak)</li>
<li>over 1000 contributors</li>
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="how-does-a-linux-distro-work-relationships" class="slide section level2">
2024-09-14 13:27:25 +00:00
<h1>How does a Linux distro work (relationships)</h1>
2024-09-17 03:25:16 +00:00
<p><img role="img" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNTY2IiBoZWlnaHQ9IjM1NSIgdmlld0JveD0iMCAwIDU2NiAzNTUiPgo8ZGVmcz4KPGc+CjxnIGlkPSJnbHlwaC0wLTAiPgo8cGF0aCBkPSJNIDYuMjY1NjI1IC05LjA5Mzc1IEwgNy40NTMxMjUgLTkuMDkzNzUgTCA3LjQ1MzEyNSAtMi45Mzc1IEMgNy40NTMxMjUgLTEuOTE0MDYyIDcuMTI1IC0xLjE0ODQzOCA2LjQ2ODc1IC0wLjY0MDYyNSBDIDUuODEyNSAtMC4xMjg5MDYgNS4wMzkwNjIgMC4xMjUgNC4xNTYyNSAwLjEyNSBDIDMuMjI2NTYyIDAuMTI1IDIuNDQ1MzEyIC0wLjEyODkwNiAxLjgxMjUgLTAuNjQwNjI1IEMgMS4xODc1IC0xLjE0ODQzOCAwLjg3NSAtMS45MTQwNjIgMC44NzUgLTIuOTM3NSBMIDAuODc1IC05LjA5Mzc1IEwgMi4wNjI1IC05LjA5Mzc1IEwgMi4wNjI1IC0yLjkzNzUgQyAyLjA2MjUgLTIuMjI2NTYyIDIuMjUzOTA2IC0xLjcwMzEyNSAyLjY0MDYyNSAtMS4zNTkzNzUgQyAzLjAyMzQzOCAtMS4wMjM0MzggMy41MzEyNSAtMC44NTkzNzUgNC4xNTYyNSAtMC44NTkzNzUgQyA0Ljc4OTA2MiAtMC44NTkzNzUgNS4zMDA3ODEgLTEuMDIzNDM4IDUuNjg3NSAtMS4zNTkzNzUgQyA2LjA3MDMxMiAtMS43MDMxMjUgNi4yNjU2MjUgLTIuMjI2NTYyIDYuMjY1NjI1IC0yLjkzNzUgWiBNIDYuMjY1NjI1IC05LjA5Mzc1ICIvPgo8L2c+CjxnIGlkPSJnbHlwaC0wLTEiPgo8cGF0aCBkPSJNIDQuODEyNSAtMS43OTY4NzUgQyA0LjgxMjUgLTIuMDM1MTU2IDQuNzIyNjU2IC0yLjI1MzkwNiA0LjU0Njg3NSAtMi40NTMxMjUgQyA0LjM2NzE4OCAtMi42NDg0MzggMy45NTMxMjUgLTIuODE2NDA2IDMuMjk2ODc1IC0yLjk1MzEyNSBDIDIuNTM1MTU2IC0zLjEwOTM3NSAxLjkyOTY4OCAtMy4zMzIwMzEgMS40ODQzNzUgLTMuNjI1IEMgMS4wNDY4NzUgLTMuOTE0MDYyIDAuODI4MTI1IC00LjM0Mzc1IDAuODI4MTI1IC00LjkwNjI1IEMgMC44MjgxMjUgLTUuNDQ1MzEyIDEuMDUwNzgxIC01LjkxMDE1NiAxLjUgLTYuMjk2ODc1IEMgMS45NTcwMzEgLTYuNjkxNDA2IDIuNTY2NDA2IC02Ljg5MDYyNSAzLjMyODEyNSAtNi44OTA2MjUgQyA0LjE0MDYyNSAtNi44OTA2MjUgNC43Njk1MzEgLTYuNjc5Njg4IDUuMjE4NzUgLTYuMjY1NjI1IEMgNS42NzU3ODEgLTUuODU5Mzc1IDUuOTA2MjUgLTUuMzYzMjgxIDUuOTA2MjUgLTQuNzgxMjUgTCA0Ljc1IC00Ljc4MTI1IEMgNC43NSAtNS4wNTA3ODEgNC42MjUgLTUuMzEyNSA0LjM3NSAtNS41NjI1IEMgNC4xMzI4MTIgLTUuODEyNSAzLjc4NTE1NiAtNS45Mzc1IDMuMzI4MTI1IC01LjkzNzUgQyAyLjg0NzY1NiAtNS45Mzc1IDIuNTAzOTA2IC01LjgzMjAzMSAyLjI5Njg3NSAtNS42MjUgQyAyLjA4NTkzOCAtNS40MTQwNjIgMS45ODQzNzUgLTUuMTg3NSAxLjk4NDM3NSAtNC45Mzc1IEMgMS45ODQzNzUgLTQuNjk1MzEyIDIuMDc4MTI1IC00LjUgMi4yNjU2MjUgLTQuMzQzNzUgQyAyLjQ2MDkzOCAtNC4xOTUzMTIgMi44Nzg5MDYgLTQuMDUwNzgxIDMuNTE1NjI1IC0zLjkwNjI1IEMgNC4zMzU5MzggLTMuNzE4NzUgNC45NTMxMjUgLTMuNDcyNjU2IDUuMzU5Mzc1IC0zLjE3MTg3NSBDIDUuNzY1NjI1IC0yLjg2NzE4OCA1Ljk2ODc1IC0yLjQzNzUgNS45Njg3NSAtMS44NzUgQyA1Ljk2ODc1IC0xLjI4MTI1IDUuNzI2NTYyIC0wLjc5Njg3NSA1LjI1IC0wLjQyMTg3NSBDIDQuNzgxMjUgLTAuMDU0Njg3NSA0LjE0ODQzOCAwLjEyNSAzLjM1OTM3NSAwLjEyNSBDIDIuNDYwOTM4IDAuMTI1IDEuNzczNDM4IC0wLjEwMTU2MiAxLjI5Njg3NSAtMC41NjI1IEMgMC44MjgxMjUgLTEuMDE5NTMxIDAuNTkzNzUgLTEuNTMxMjUgMC41OTM3NSAtMi4wOTM3NSBMIDEuNzUgLTIuMDkzNzUgQyAxLjc4MTI1IC0xLjYxMzI4MSAxLjk2ODc1IC0xLjI4MTI1IDIuMzEyNSAtMS4wOTM3NSBDIDIuNjU2MjUgLTAuOTE0MDYyIDMuMDAzOTA2IC0wLjgyODEyNSAzLjM1OTM3NSAtMC44MjgxMjUgQyAzLjgyODEyNSAtMC44MjgxMjUgNC4xODc1IC0wLjkxNDA2MiA0LjQzNzUgLTEuMDkzNzUgQyA0LjY4NzUgLTEuMjgxMjUgNC44MTI1IC0xLjUxNTYyNSA0LjgxMjUgLTEuNzk2ODc1IFogTSA0LjgxMjUgLTEuNzk2ODc1ICIvPgo8L2c+CjxnIGlkPSJnbHlwaC0wLTIiPgo8cGF0aCBkPSJNIDYuMjM0Mzc1IC0xLjE4NzUgQyA2LjAxNTYyNSAtMC44NTE1NjIgNS43MDMxMjUgLTAuNTUwNzgxIDUuMjk2ODc1IC0wLjI4MTI1IEMgNC44OTA2MjUgLTAuMDA3ODEyNSA0LjM1MTU2MiAwLjEyNSAzLjY4NzUgMC4xMjUgQyAyLjc1IDAuMTI1IDEuOTkyMTg4IC0wLjE3OTY4OCAxLjQyMTg3NSAtMC43OTY4NzUgQyAwLjg1OTM3NSAtMS40MTAxNTYgMC41NzgxMjUgLTIuMTkxNDA2IDAuNTc4MTI1IC0zLjE0MDYyNSBMIDAuNTc4MTI1IC0zLjQwNjI1IEMgMC41NzgxMjUgLTQuMTQ0NTMxIDAuNzE4NzUgLTQuNzY5NTMxIDEgLTUuMjgxMjUgQyAxLjI4MTI1IC01LjgwMDc4MSAxLjY0NDUzMSAtNi4xOTUzMTIgMi4wOTM3NSAtNi40Njg3NSBDIDIuNTUwNzgxIC02Ljc1IDMuMDMxMjUgLTYuODkwNjI1IDMuNTMxMjUgLTYuODkwNjI1IEMgNC41IC02Ljg5MDYyNSA1LjIwMzEyNSAtNi41NzAzMTIgNS42NDA2MjUgLTUuOTM3NSBDIDYuMDg1OTM4IC01LjMxMjUgNi4zMTI1IC00LjUyMzQzOCA2LjMxMjUgLTMuNTc4MTI1IEwgNi4zMTI1IC0zLjA2MjUgTCAxLjc1IC0zLjA2MjUgQyAxLjc1NzgxMiAtMi40Mzc1IDEuOTQxNDA2IC0xLjkwNjI1IDIuMjk2ODc1IC0xLjQ2ODc1IEMgMi42NDg0MzggLTEuMDMxMjUgMy4xMzI4MTIgLTAuODEyNSAzLjc1IC0wLjgxMjUgQyA0LjE1NjI1IC0wLjgxMjUgNC41IC0wLjg5NDUzMSA0Ljc4MTI1IC0xLjA2MjUgQyA1LjA3MDMxMiAtMS4yMjY1NjIgNS4zMjAzMTIgLTEuNDUzMTI1IDUuNTMxMjUgLTEuNzM0Mzc1IFogTSAzLjUzMTI1IC01LjkzNzUgQyAzLjA3MDMxMiAtNS45M
2024-09-14 13:27:25 +00:00
</div>
2024-09-17 03:25:16 +00:00
<div id="how-does-a-linux-distro-work-activities" class="slide section level2">
2024-09-14 13:27:25 +00:00
<h1>How does a Linux distro work (activities)</h1>
2024-09-17 03:25:16 +00:00
<p><img role="img" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNzUzIiBoZWlnaHQ9IjMzMyIgdmlld0JveD0iMCAwIDc1MyAzMzMiPgo8ZGVmcz4KPGc+CjxnIGlkPSJnbHlwaC0wLTAiPgo8cGF0aCBkPSJNIDYuMjY1NjI1IC05LjA5Mzc1IEwgNy40NTMxMjUgLTkuMDkzNzUgTCA3LjQ1MzEyNSAtMi45Mzc1IEMgNy40NTMxMjUgLTEuOTE0MDYyIDcuMTI1IC0xLjE0ODQzOCA2LjQ2ODc1IC0wLjY0MDYyNSBDIDUuODEyNSAtMC4xMjg5MDYgNS4wMzkwNjIgMC4xMjUgNC4xNTYyNSAwLjEyNSBDIDMuMjI2NTYyIDAuMTI1IDIuNDQ1MzEyIC0wLjEyODkwNiAxLjgxMjUgLTAuNjQwNjI1IEMgMS4xODc1IC0xLjE0ODQzOCAwLjg3NSAtMS45MTQwNjIgMC44NzUgLTIuOTM3NSBMIDAuODc1IC05LjA5Mzc1IEwgMi4wNjI1IC05LjA5Mzc1IEwgMi4wNjI1IC0yLjkzNzUgQyAyLjA2MjUgLTIuMjI2NTYyIDIuMjUzOTA2IC0xLjcwMzEyNSAyLjY0MDYyNSAtMS4zNTkzNzUgQyAzLjAyMzQzOCAtMS4wMjM0MzggMy41MzEyNSAtMC44NTkzNzUgNC4xNTYyNSAtMC44NTkzNzUgQyA0Ljc4OTA2MiAtMC44NTkzNzUgNS4zMDA3ODEgLTEuMDIzNDM4IDUuNjg3NSAtMS4zNTkzNzUgQyA2LjA3MDMxMiAtMS43MDMxMjUgNi4yNjU2MjUgLTIuMjI2NTYyIDYuMjY1NjI1IC0yLjkzNzUgWiBNIDYuMjY1NjI1IC05LjA5Mzc1ICIvPgo8L2c+CjxnIGlkPSJnbHlwaC0wLTEiPgo8cGF0aCBkPSJNIDQuODEyNSAtMS43OTY4NzUgQyA0LjgxMjUgLTIuMDM1MTU2IDQuNzIyNjU2IC0yLjI1MzkwNiA0LjU0Njg3NSAtMi40NTMxMjUgQyA0LjM2NzE4OCAtMi42NDg0MzggMy45NTMxMjUgLTIuODE2NDA2IDMuMjk2ODc1IC0yLjk1MzEyNSBDIDIuNTM1MTU2IC0zLjEwOTM3NSAxLjkyOTY4OCAtMy4zMzIwMzEgMS40ODQzNzUgLTMuNjI1IEMgMS4wNDY4NzUgLTMuOTE0MDYyIDAuODI4MTI1IC00LjM0Mzc1IDAuODI4MTI1IC00LjkwNjI1IEMgMC44MjgxMjUgLTUuNDQ1MzEyIDEuMDUwNzgxIC01LjkxMDE1NiAxLjUgLTYuMjk2ODc1IEMgMS45NTcwMzEgLTYuNjkxNDA2IDIuNTY2NDA2IC02Ljg5MDYyNSAzLjMyODEyNSAtNi44OTA2MjUgQyA0LjE0MDYyNSAtNi44OTA2MjUgNC43Njk1MzEgLTYuNjc5Njg4IDUuMjE4NzUgLTYuMjY1NjI1IEMgNS42NzU3ODEgLTUuODU5Mzc1IDUuOTA2MjUgLTUuMzYzMjgxIDUuOTA2MjUgLTQuNzgxMjUgTCA0Ljc1IC00Ljc4MTI1IEMgNC43NSAtNS4wNTA3ODEgNC42MjUgLTUuMzEyNSA0LjM3NSAtNS41NjI1IEMgNC4xMzI4MTIgLTUuODEyNSAzLjc4NTE1NiAtNS45Mzc1IDMuMzI4MTI1IC01LjkzNzUgQyAyLjg0NzY1NiAtNS45Mzc1IDIuNTAzOTA2IC01LjgzMjAzMSAyLjI5Njg3NSAtNS42MjUgQyAyLjA4NTkzOCAtNS40MTQwNjIgMS45ODQzNzUgLTUuMTg3NSAxLjk4NDM3NSAtNC45Mzc1IEMgMS45ODQzNzUgLTQuNjk1MzEyIDIuMDc4MTI1IC00LjUgMi4yNjU2MjUgLTQuMzQzNzUgQyAyLjQ2MDkzOCAtNC4xOTUzMTIgMi44Nzg5MDYgLTQuMDUwNzgxIDMuNTE1NjI1IC0zLjkwNjI1IEMgNC4zMzU5MzggLTMuNzE4NzUgNC45NTMxMjUgLTMuNDcyNjU2IDUuMzU5Mzc1IC0zLjE3MTg3NSBDIDUuNzY1NjI1IC0yLjg2NzE4OCA1Ljk2ODc1IC0yLjQzNzUgNS45Njg3NSAtMS44NzUgQyA1Ljk2ODc1IC0xLjI4MTI1IDUuNzI2NTYyIC0wLjc5Njg3NSA1LjI1IC0wLjQyMTg3NSBDIDQuNzgxMjUgLTAuMDU0Njg3NSA0LjE0ODQzOCAwLjEyNSAzLjM1OTM3NSAwLjEyNSBDIDIuNDYwOTM4IDAuMTI1IDEuNzczNDM4IC0wLjEwMTU2MiAxLjI5Njg3NSAtMC41NjI1IEMgMC44MjgxMjUgLTEuMDE5NTMxIDAuNTkzNzUgLTEuNTMxMjUgMC41OTM3NSAtMi4wOTM3NSBMIDEuNzUgLTIuMDkzNzUgQyAxLjc4MTI1IC0xLjYxMzI4MSAxLjk2ODc1IC0xLjI4MTI1IDIuMzEyNSAtMS4wOTM3NSBDIDIuNjU2MjUgLTAuOTE0MDYyIDMuMDAzOTA2IC0wLjgyODEyNSAzLjM1OTM3NSAtMC44MjgxMjUgQyAzLjgyODEyNSAtMC44MjgxMjUgNC4xODc1IC0wLjkxNDA2MiA0LjQzNzUgLTEuMDkzNzUgQyA0LjY4NzUgLTEuMjgxMjUgNC44MTI1IC0xLjUxNTYyNSA0LjgxMjUgLTEuNzk2ODc1IFogTSA0LjgxMjUgLTEuNzk2ODc1ICIvPgo8L2c+CjxnIGlkPSJnbHlwaC0wLTIiPgo8cGF0aCBkPSJNIDYuMjM0Mzc1IC0xLjE4NzUgQyA2LjAxNTYyNSAtMC44NTE1NjIgNS43MDMxMjUgLTAuNTUwNzgxIDUuMjk2ODc1IC0wLjI4MTI1IEMgNC44OTA2MjUgLTAuMDA3ODEyNSA0LjM1MTU2MiAwLjEyNSAzLjY4NzUgMC4xMjUgQyAyLjc1IDAuMTI1IDEuOTkyMTg4IC0wLjE3OTY4OCAxLjQyMTg3NSAtMC43OTY4NzUgQyAwLjg1OTM3NSAtMS40MTAxNTYgMC41NzgxMjUgLTIuMTkxNDA2IDAuNTc4MTI1IC0zLjE0MDYyNSBMIDAuNTc4MTI1IC0zLjQwNjI1IEMgMC41NzgxMjUgLTQuMTQ0NTMxIDAuNzE4NzUgLTQuNzY5NTMxIDEgLTUuMjgxMjUgQyAxLjI4MTI1IC01LjgwMDc4MSAxLjY0NDUzMSAtNi4xOTUzMTIgMi4wOTM3NSAtNi40Njg3NSBDIDIuNTUwNzgxIC02Ljc1IDMuMDMxMjUgLTYuODkwNjI1IDMuNTMxMjUgLTYuODkwNjI1IEMgNC41IC02Ljg5MDYyNSA1LjIwMzEyNSAtNi41NzAzMTIgNS42NDA2MjUgLTUuOTM3NSBDIDYuMDg1OTM4IC01LjMxMjUgNi4zMTI1IC00LjUyMzQzOCA2LjMxMjUgLTMuNTc4MTI1IEwgNi4zMTI1IC0zLjA2MjUgTCAxLjc1IC0zLjA2MjUgQyAxLjc1NzgxMiAtMi40Mzc1IDEuOTQxNDA2IC0xLjkwNjI1IDIuMjk2ODc1IC0xLjQ2ODc1IEMgMi42NDg0MzggLTEuMDMxMjUgMy4xMzI4MTIgLTAuODEyNSAzLjc1IC0wLjgxMjUgQyA0LjE1NjI1IC0wLjgxMjUgNC41IC0wLjg5NDUzMSA0Ljc4MTI1IC0xLjA2MjUgQyA1LjA3MDMxMiAtMS4yMjY1NjIgNS4zMjAzMTIgLTEuNDUzMTI1IDUuNTMxMjUgLTEuNzM0Mzc1IFogTSAzLjUzMTI1IC01LjkzNzUgQyAzLjA3MDMxMiAtNS45M
2024-09-14 13:27:25 +00:00
</div>
<div id="a-typical-ebuild" class="slide section level2">
<h1>A typical ebuild</h1>
2024-09-17 03:25:16 +00:00
<div class="sourceCode" id="cb1"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" tabindex="-1"></a><span class="va">EAPI</span><span class="op">=</span>8</span>
2024-09-14 13:27:25 +00:00
<span id="cb1-2"><a href="#cb1-2" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" tabindex="-1"></a><span class="va">DESCRIPTION</span><span class="op">=</span><span class="st">&quot;A dummy package&quot;</span></span>
<span id="cb1-4"><a href="#cb1-4" tabindex="-1"></a><span class="va">HOMEPAGE</span><span class="op">=</span><span class="st">&quot;https://dummy.org&quot;</span></span>
<span id="cb1-5"><a href="#cb1-5" tabindex="-1"></a><span class="va">SRC_URI</span><span class="op">=</span><span class="st">&quot;https://github.com/dummy/dummy/archive/refs/tags/</span><span class="va">${PV}</span><span class="st">.tar.gz -&gt; </span><span class="va">${P}</span><span class="st">.tar.gz&quot;</span></span>
<span id="cb1-6"><a href="#cb1-6" tabindex="-1"></a></span>
<span id="cb1-7"><a href="#cb1-7" tabindex="-1"></a><span class="va">LICENSE</span><span class="op">=</span><span class="st">&quot;BSD-3&quot;</span></span>
<span id="cb1-8"><a href="#cb1-8" tabindex="-1"></a><span class="va">SLOT</span><span class="op">=</span><span class="st">&quot;0&quot;</span></span>
<span id="cb1-9"><a href="#cb1-9" tabindex="-1"></a><span class="va">KEYWORDS</span><span class="op">=</span><span class="st">&quot;~amd64 ~x86 &quot;</span></span>
<span id="cb1-10"><a href="#cb1-10" tabindex="-1"></a><span class="va">IUSE</span><span class="op">=</span><span class="st">&quot;debug&quot;</span></span>
<span id="cb1-11"><a href="#cb1-11" tabindex="-1"></a></span>
<span id="cb1-12"><a href="#cb1-12" tabindex="-1"></a><span class="va">RDEPEND</span><span class="op">=</span><span class="st">&quot;dev-util/boost&quot;</span></span>
<span id="cb1-13"><a href="#cb1-13" tabindex="-1"></a></span>
<span id="cb1-14"><a href="#cb1-14" tabindex="-1"></a><span class="va">PATCHES</span><span class="op">=</span><span class="va">(</span> <span class="st">&quot;</span><span class="va">${FILESDIR}</span><span class="st">&quot;</span>/<span class="va">${PN}</span>-4.9.2-disable_python_rpath.patch<span class="va">)</span></span>
<span id="cb1-15"><a href="#cb1-15" tabindex="-1"></a></span>
<span id="cb1-16"><a href="#cb1-16" tabindex="-1"></a><span class="fu">src_configure()</span> <span class="kw">{</span></span>
<span id="cb1-17"><a href="#cb1-17" tabindex="-1"></a> <span class="ex">econf</span> <span class="va">$(</span><span class="ex">use_enable</span> debug<span class="va">)</span></span>
<span id="cb1-18"><a href="#cb1-18" tabindex="-1"></a><span class="kw">}</span></span>
<span id="cb1-19"><a href="#cb1-19" tabindex="-1"></a></span>
<span id="cb1-20"><a href="#cb1-20" tabindex="-1"></a><span class="fu">src_compile()</span> <span class="kw">{</span></span>
<span id="cb1-21"><a href="#cb1-21" tabindex="-1"></a> <span class="ex">emake</span></span>
<span id="cb1-22"><a href="#cb1-22" tabindex="-1"></a><span class="kw">}</span></span>
<span id="cb1-23"><a href="#cb1-23" tabindex="-1"></a></span>
<span id="cb1-24"><a href="#cb1-24" tabindex="-1"></a><span class="fu">src_test()</span> <span class="kw">{</span></span>
<span id="cb1-25"><a href="#cb1-25" tabindex="-1"></a> <span class="ex">emake</span> test</span>
<span id="cb1-26"><a href="#cb1-26" tabindex="-1"></a><span class="kw">}</span></span>
<span id="cb1-27"><a href="#cb1-27" tabindex="-1"></a></span>
<span id="cb1-28"><a href="#cb1-28" tabindex="-1"></a><span class="fu">src_install()</span> <span class="kw">{</span></span>
<span id="cb1-29"><a href="#cb1-29" tabindex="-1"></a> <span class="ex">emake</span> DESTDIR=<span class="st">&quot;</span><span class="va">${D}</span><span class="st">&quot;</span> install</span>
<span id="cb1-30"><a href="#cb1-30" tabindex="-1"></a><span class="kw">}</span></span></code></pre></div>
</div>
<div id="packaging-challenges" class="slide section level2">
<h1>Packaging challenges</h1>
<ul>
<li>no standard on build systems (make, autotools, meson, cmake, …)
<ul>
<li>=&gt; an abstraction over build systems</li>
</ul></li>
<li>thousands of different execution environments (fragility)
<ul>
<li>system configuration</li>
<li>package configuration</li>
<li>platform, architecture</li>
</ul></li>
<li>reverse dependencies
<ul>
<li>shipping a “chain” instead of a single artifact</li>
</ul></li>
<li>high impact on small mistakes (e.g. assuming a specific shell)</li>
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="packaging-challenges-pt.-2" class="slide section level2">
<h1>Packaging challenges (pt. 2)</h1>
2024-09-14 13:27:25 +00:00
<ul>
<li>communication between teams/maintainers</li>
<li>execution of large changes
<ul>
<li>e.g. introduction of LibreSSL</li>
<li>e.g. changing of fundamental workflows (from CVS to git)</li>
</ul></li>
<li>monitoring upstream changes and making decisions about
compatibility/stability
<ul>
<li>when to update</li>
</ul></li>
</ul>
</div>
<div id="what-is-a-distro-really" class="slide section level2">
<h1>What is a Distro really?</h1>
<ul>
<li>a user experience
<ul>
<li>LTS distros vs rolling release</li>
<li>binary vs source based</li>
<li>choice of init system</li>
</ul></li>
<li>plug and play (everything works)</li>
<li>deviating from the happy path (fixing issues)</li>
<li>combining components to a coherent system (init system, coreutils,
kernel, …)</li>
<li>a choice of <strong>defaults</strong></li>
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="programming-lessons" class="slide section level2">
<h1>Programming lessons</h1>
<ul>
<li>primary packaging skill: being meticulous
<ul>
<li>small mistakes -&gt; big impact</li>
<li>being as precise as possible about what you want to achieve</li>
</ul></li>
<li>long term maintenance of small code pieces</li>
<li>intense review culture</li>
<li>strict policies and workflow guidelines</li>
<li>how to learn complex system</li>
</ul>
</div>
2024-09-14 13:27:25 +00:00
2024-09-17 03:25:16 +00:00
<div id="second-chapter-ghcup" class="title-slide slide section level1">
<h1>Second chapter: GHCup</h1>
2024-09-14 13:27:25 +00:00
</div>
2024-09-17 03:25:16 +00:00
<div id="demo" class="slide section level2 centered">
<h1 class="centered">Demo</h1>
<p><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
</div>
<div id="state-of-2019-haskell-installers" class="slide section level2">
<h1>State of 2019 (Haskell Installers)</h1>
<ul>
<li>stack is the only “Haskell Installer”</li>
<li>no unified alternative for cabal users</li>
<li>distro packages, nix, manual installs, …</li>
<li>😭</li>
</ul>
</div>
<div id="how-it-started" class="slide section level2">
<h1>How it started</h1>
<ul>
<li>🤹 small team at work (Capital Match), using different platforms
<ul>
<li>originally used stack</li>
<li>distro packages constantly out of date</li>
</ul></li>
<li>🦾 first version was 165 LOC
<ul>
<li>Posix shell</li>
</ul></li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
supported linux and mac</li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
<strong>rustup</strong></li>
<li>support from haskell.org</li>
</ul>
</div>
<div id="ghcup-today" class="slide section level2">
<h1>GHCup today</h1>
2024-09-17 03:25:16 +00:00
<p><a href="https://taylor.fausak.me/2022/11/18/haskell-survey-results/#s2q1">Haskell
2024-09-14 13:27:25 +00:00
Survey 2022</a>:</p>
2024-09-17 03:25:16 +00:00
<p><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
<ul>
<li>over <strong>17k</strong> LOC Haskell</li>
<li>supports all platforms: Linux, Windows, macOS, FreeBSD</li>
<li>first thing new Haskell users get exposed to</li>
</ul>
</div>
<div id="what-is-ghcup-simplified" class="slide section level2">
<h1>What is GHCup (simplified)?</h1>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" tabindex="-1"></a><span class="ex">curl</span> <span class="at">-s</span> <span class="at">-L</span> <span class="dt">\</span></span>
<span id="cb2-2"><a href="#cb2-2" tabindex="-1"></a> <span class="st">&#39;https://downloads.haskell.org/~ghc/9.6.5/ghc-9.6.5-x86_64-fedora33-linux.tar.xz&#39;</span> <span class="kw">|</span></span>
<span id="cb2-3"><a href="#cb2-3" tabindex="-1"></a> <span class="fu">tar</span> <span class="at">-xJ</span> <span class="at">-C</span> /tmp <span class="kw">&amp;&amp;</span></span>
<span id="cb2-4"><a href="#cb2-4" tabindex="-1"></a> <span class="bu">cd</span> /tmp/ghc-9.6.5-x86_64-unknown-linux/ <span class="kw">&amp;&amp;</span></span>
<span id="cb2-5"><a href="#cb2-5" tabindex="-1"></a> <span class="ex">./configure</span> <span class="at">--prefix</span><span class="op">=</span><span class="st">&quot;</span><span class="va">$HOME</span><span class="st">/.local&quot;</span> <span class="kw">&amp;&amp;</span></span>
<span id="cb2-6"><a href="#cb2-6" tabindex="-1"></a> <span class="fu">make</span> install <span class="kw">&amp;&amp;</span></span>
<span id="cb2-7"><a href="#cb2-7" tabindex="-1"></a> <span class="fu">rm</span> <span class="at">-rf</span> /tmp/ghc-9.6.5-x86_64-unknown-linux/</span></code></pre></div>
</div>
<div id="what-is-ghcup-really" class="slide section level2">
<h1>What is GHCup really?</h1>
<ul>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
<li><img role="img" src="data:image/png;base64,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
<li><img role="img" src="data:image/png;base64,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
<li><img role="img" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAOw4AADsOAFxK8o4AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJzs3Xt8XGWdP/DP98wkTTIzaYFCpS00pbm0VG4LRS5KU6gtmVAUNSi6qOsVf8uKsCJeVim667KLCqi7Cq4LihekIiuQhJbSBJQ7KOXazKS0ULkUaKHJTNImc87390eKQmmby1y+55z5vF+vfb0Waef5kMyc85nnOec5ABEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREdHoxDoAUSlMW7I2lo1UnQZHForiGIUeBMi0kX+rmwWySQUPwdM7Y+72WzevOiJrm5gKib9/ordiAaBQm9ySnuOKXgjgbAA1Y/xrAwCui6hctq2zYX3x0lGx8fdPtGcsABRObZuqY9mBbwjkAgCVE3yVIYV+Lxur+SZWHDRYyHhUZPz9E42KBYBCp3Zpb70X8VYAOLJAL/mI4zptfSvrewv0elRE/P0TjQ0LAIVKfGl6PhxdBcH0Ar/0SwoszXY0PlLg16UC4u+faOxYACg0Ji9bN9t1nfsAHFCkIV6KRLzjtt0yd0ORXp/ywN8/0fg41gGICqJ5Q5XrRn6P4h38AeAA13U6prx3w5QijkETMOW9G6a4rtOBov/+I79H84aqIo5BVDIsABQKsZrhSwA9rARDzc3tGL4ebRopwVg0Fm0aye0Yvh7A3OIPpoeNvNeIgo8FgAJvyqlP1QnwhZINKFiayKYuK9l4tFfxTPo7ECwt1XgCnD+5JT2nVOMRFQsLAAVeLhL9KiZ+q9eEKOT8RGv6k6Uck94q0Zr+JKSE5W9EhevgohKPSVRwvAiQAm3flnTtkKPPQRE3GH5IRBf3tzf9wWDsspdo7XmXqqxGicsfAECQqfRkxtbOhr6Sj01UIJwBoEAbcrDU6OQPAJXqyU2cDi69quSTs1Tlt7A4+QOAIj4ELDEZm6hAWAAo2FRPMR1fsJ8ruGnq6esSpjnKyNTT1yWiqLgF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
2024-09-14 13:27:25 +00:00
testing/QA gateway</li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
provider of sane defaults (e.g. “recommended” GHC version)</li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
<ul>
<li>VSCode, stack, cabal-install integration</li>
</ul></li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
</ul>
</div>
<div id="relationships-in-detail" class="slide section level2">
<h1>Relationships in detail</h1>
<p>Dependencies:</p>
<ul>
<li>supported tools
<ul>
<li>GHC</li>
<li>Cabal</li>
<li>HLS</li>
<li>Stack</li>
</ul></li>
<li>decisions that affect us
<ul>
<li>release frequency</li>
<li>upstream CI</li>
<li>platform support</li>
<li>binary distributions (the
<code>.tar.gz</code>/<code>.zip</code>)</li>
</ul></li>
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="relationships-in-detail-pt.-2" class="slide section level2">
<h1>Relationships in detail (pt. 2)</h1>
2024-09-14 13:27:25 +00:00
<p>Dependents:</p>
<ul>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
Haskell developers
<ul>
<li>beginners, advanced, students, companies</li>
</ul></li>
2024-09-17 03:25:16 +00:00
<li><img role="img" src="data:image/png;base64,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
<li><img role="img" src="data:image/png;base64,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
2024-09-14 13:27:25 +00:00
<ul>
<li>GitHub images, Haskell repos</li>
</ul></li>
<li>🪞 mirrors
<ul>
<li><a href="https://mirror.sjtu.edu.cn/docs/ghcup">sjtug</a></li>
</ul></li>
<li>🧰 tools
<ul>
2024-09-17 03:25:16 +00:00
<li><a href="https://github.com/haskell/vscode-haskell">vscode-haskell</a>, <a href="https://play.haskell.org/">Haskell playground</a>, <a href="https://github.com/williamboman/nvim-lsp-installer">nvim-lsp-installer</a></li>
</ul></li>
</ul>
</div>
<div id="programming-lessons-1" class="slide section level2">
<h1>Programming lessons</h1>
<ul>
<li>writing a small single-purpose program from scratch</li>
<li>how to design command line interfaces</li>
<li>high impact of decisions (not just mistakes)
<ul>
<li>bugs now affect GitHub CI and companies</li>
<li>can make “Haskell” look bad</li>
</ul></li>
<li>no one to review
<ul>
<li>=&gt; review your own code</li>
</ul></li>
<li>constantly thinking about ways to improve reliability
<ul>
<li>cant rely on anyone else to catch bugs</li>
2024-09-14 13:27:25 +00:00
</ul></li>
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="the-difference-to-gentoo" class="slide section level2">
<h1>The difference to Gentoo</h1>
<p>Both deal with installation, but…</p>
<ul>
<li>more code to maintain (not just packaging) for me</li>
<li>one-man project (mostly)</li>
<li>much tighter coupling between upstream (e.g. GHC developers) and
downstream (GHCup developers)
<ul>
<li>heavier on relationship issues</li>
</ul></li>
<li>less dependencies, but much more responsibility</li>
<li>position of authority
<ul>
<li>what to consider?</li>
</ul></li>
<li>most of my work today is support</li>
2024-09-14 13:27:25 +00:00
</ul>
</div>
2024-09-17 03:25:16 +00:00
<div id="third-chapter-haskell-core-libraries" class="title-slide slide section level1">
<h1>Third Chapter: Haskell Core Libraries</h1>
</div>
<div id="what-are-haskell-core-libraries" class="slide section level2">
<h1>What are Haskell Core Libraries?</h1>
<ul>
<li>bundled with the compiler</li>
<li>fundamental building blocks (primitives)</li>
<li>base library
<ul>
<li>available to all programs by default</li>
<li>contains the “Prelude” (standard library)</li>
</ul></li>
</ul>
</div>
<div id="core-libraries-i-maintain" class="slide section level2">
<h1>Core libraries I maintain</h1>
<ul>
<li>filepath</li>
<li>unix</li>
<li>os-string</li>
<li>file-io</li>
</ul>
</div>
<div id="challenges" class="slide section level2">
<h1>Challenges</h1>
<ul>
<li>changes are extremly expensive</li>
<li>writing good primitives is hard (non-specific APIs)</li>
<li>lots of odd knowledge
<ul>
<li>e.g. Windows filepaths
<ul>
<li><code>C:foo</code></li>
<li><code>/bar</code></li>
<li><code>\\?\GLOBALROOT\Device\Harddisk0\Partition2\foo\bar</code></li>
</ul></li>
<li>Posix standard</li>
</ul></li>
<li>portability</li>
</ul>
</div>
<div id="core-libraries-committee" class="slide section level2">
<h1>Core Libraries Committee</h1>
<ul>
<li>7 members</li>
<li>manages API changes of <code>base</code> only
<ul>
<li>requires a proposal</li>
<li>requires impact assessment for breaking changes</li>
<li>requires an up-front implementation of the change</li>
</ul></li>
<li>ensures other core libraries have active maintainers
<ul>
<li>does not interfere with maintenance</li>
</ul></li>
</ul>
</div>
<div id="driving-changes-across-core-libraries-case-study" class="slide section level2">
<h1>Driving changes across core libraries (case study)</h1>
<p>Abstract FilePath Proposal:</p>
<ul>
<li>Haskell String type: <code>type String = [Char]</code>
<ul>
<li><code>Char</code> is a unicode code point</li>
<li>not bytes</li>
<li>is interpreted (decoded)</li>
<li>depends on locale</li>
</ul></li>
<li>affects most core libraries</li>
<li>implement as a breaking change (base), or…
<ul>
<li>in “user-space”</li>
</ul></li>
<li>lack of higher authority
<ul>
<li>building consensus</li>
<li>convincing multiple maintainers</li>
<li>patching many libraries</li>
</ul></li>
<li>open source politics</li>
</ul>
</div>
<div id="programming-lessons-2" class="slide section level2">
<h1>Programming lessons</h1>
<ul>
<li>how to design good primitives
<ul>
<li>as opposed to abstractions</li>
</ul></li>
<li>considering every impact of API changes</li>
<li>doing history research on past design choices
<ul>
<li>important design decisions may not be documented</li>
<li>may look innocent</li>
<li>chaning them might be devastating</li>
</ul></li>
</ul>
</div>
<div id="lessons-learned" class="title-slide slide section level1">
<h1>Lessons Learned</h1>
</div>
<div id="collaboration" class="slide section level2">
<h1>Collaboration</h1>
<div>
<ul class="incremental">
<li>main currency in Open Source is energy</li>
<li>treat contributors like kings</li>
<li>be mindful about boundaries (tricky balance)</li>
<li>respect other projects workflows</li>
<li>driving large changes requires
<ul class="incremental">
<li>consensus</li>
<li>support</li>
<li>a good value proposition</li>
<li>a good execution plan (risk, breakage, …)</li>
</ul></li>
<li>Haskell Foundation</li>
</ul>
</div>
</div>
<div id="project-maintenance" class="slide section level2">
<h1>Project maintenance</h1>
<div>
<ul class="incremental">
<li>dicatorships work, but are not sustainable</li>
<li>plan for your departure</li>
<li>bus factor is your constant enemy</li>
<li>good decision making processes
<ul class="incremental">
<li>lightweight when risk is low</li>
<li>elaborate when risk is high</li>
</ul></li>
<li>actively think about the contribution experience
<ul class="incremental">
<li>comment early</li>
</ul></li>
<li>how to maintain the project vision?</li>
</ul>
</div>
</div>
<div id="user-experience" class="slide section level2">
<h1>User Experience</h1>
<div>
<ul class="incremental">
<li>UX is harder than CS
<ul class="incremental">
<li>yet often an afterthought</li>
</ul></li>
<li>toolchains often lack a holistic UX vision</li>
<li>UX vision gets easily lost in “maintenance mode”
<ul class="incremental">
<li>feature creep</li>
<li>maintainer turnover</li>
<li>collective decisions</li>
</ul></li>
<li>UX is a fascinating problem (e.g. OS)
<ul class="incremental">
<li>plug &amp; play (intuition… about interfaces)</li>
<li>happy path (control)</li>
<li>defaults (expectations… about behavior)</li>
</ul></li>
</ul>
</div>
</div>
<div id="stability-vs-progress" class="slide section level2">
<h1>Stability vs Progress</h1>
<ul>
<li>🤼 conflicting goals</li>
<li>⚔️ breaking API can have large rippling effects
<ul>
<li>experience report of a facebook engineer on GHC upgrades</li>
</ul></li>
<li>🗼 small breakages add up
<ul>
<li>large projects have hundreds of dependencies</li>
</ul></li>
<li>🗣️ many discussions in the Haskell community
<ul>
<li>upgrade cost</li>
<li>language changes (Haskell report)</li>
<li>academic background of Haskell (academia vs industry?)</li>
<li>the role of committees</li>
</ul></li>
<li>⚖️ how to strike a balance?
<ul>
<li>SemVer does not solve it (why?)</li>
</ul></li>
</ul>
</div>
<div id="composition" class="slide section level2">
<h1>Composition</h1>
<ul>
<li>💜 I love small programs</li>
<li>categories of composition
<ul>
<li>λ: functions</li>
<li>📚 libraries (the issue with types)</li>
<li>⚙️ programs</li>
</ul></li>
<li>unix philosophy
<ul>
<li>🛠️ do one thing and do it well</li>
<li>⚗️ pipes, compose stdout and stdin (re-usable)</li>
</ul></li>
<li>how to make your project composable?
<ul>
<li><a href="https://clig.dev/">https://clig.dev/</a></li>
</ul></li>
</ul>
</div>
<div id="questionsarguments" class="slide section level2 centered">
<h1 class="centered">Questions/Arguments?</h1>
<p><img role="img" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/4QEtRXhpZgAASUkqAAgAAAAEAA4BAgDKAAAAPgAAAJiCAgANAAAACAEAABoBBQABAAAAFQEAABsBBQABAAAAHQEAAAAAAAAoQVVTVFJBTElBIE9VVCkgSW5kaWFuIHBoaWxvc29waGVyIEppZGR1IEtyaXNobmFtdXJ0aSBhcnJpdmVkIGluIFN5ZG5leSwgMTQgTm92ZW1iZXIgMTk3MC4gU01IIFBpY3R1cmUgYnkgREFMTEVOIChQaG90byBieSBGYWlyZmF4IE1lZGlhIHZpYSBHZXR0eSBJbWFnZXMvRmFpcmZheCBNZWRpYSB2aWEgR2V0dHkgSW1hZ2VzIHZpYSBHZXR0eSBJbWFnZXMpRmFpcmZheCBNZWRpYSwBAAABAAAALAEAAAEAAAD/4QZYaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIGRjOlJpZ2h0cz0iRmFpcmZheCBNZWRpYSIgcGhvdG9zaG9wOkNyZWRpdD0iRmFpcmZheCBNZWRpYSB2aWEgR2V0dHkgSW1hZ2VzIiBHZXR0eUltYWdlc0dJRlQ6QXNzZXRJRD0iNTM5NDk3MjUxIiB4bXBSaWdodHM6V2ViU3RhdGVtZW50PSJodHRwczovL3d3dy5nZXR0eWltYWdlcy5jb20vZXVsYT91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+VGhlIFN5ZG5leSBNb3JuaW5nIEhlcmFsZDwvcmRmOmxpPjwvcmRmOlNlcT48L2RjOmNyZWF0b3I+PGRjOmRlc2NyaXB0aW9uPjxyZGY6QWx0PjxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+KEFVU1RSQUxJQSBPVVQpIEluZGlhbiBwaGlsb3NvcGhlciBKaWRkdSBLcmlzaG5hbXVydGkgYXJyaXZlZCBpbiBTeWRuZXksIDE0IE5vdmVtYmVyIDE5NzAuIFNNSCBQaWN0dXJlIGJ5IERBTExFTiAoUGhvdG8gYnkgRmFpcmZheCBNZWRpYSB2aWEgR2V0dHkgSW1hZ2VzL0ZhaXJmYXggTWVkaWEgdmlhIEdldHR5IEltYWdlcyB2aWEgR2V0dHkgSW1hZ2VzKTwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOmRlc2NyaXB0aW9uPgo8cGx1czpMaWNlbnNvcj48cmRmOlNlcT48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48cGx1czpMaWNlbnNvclVSTD5odHRwczovL3d3dy5nZXR0eWltYWdlcy5jb20vZGV0YWlsLzUzOTQ5NzI1MT91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybDwvcGx1czpMaWNlbnNvclVSTD48L3JkZjpsaT48L3JkZjpTZXE+PC9wbHVzOkxpY2Vuc29yPgoJCTwvcmRmOkRlc2NyaXB0aW9uPgoJPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0idyI/Pgr/7QE+UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAASIcAlAAGVRoZSBTeWRuZXkgTW9ybmluZyBIZXJhbGQcAngAyihBVVNUUkFMSUEgT1VUKSBJbmRpYW4gcGhpbG9zb3BoZXIgSmlkZHUgS3Jpc2huYW11cnRpIGFycml2ZWQgaW4gU3lkbmV5LCAxNCBOb3ZlbWJlciAxOTcwLiBTTUggUGljdHVyZSBieSBEQUxMRU4gKFBob3RvIGJ5IEZhaXJmYXggTWVkaWEgdmlhIEdldHR5IEltYWdlcy9GYWlyZmF4IE1lZGlhIHZpYSBHZXR0eSBJbWFnZXMgdmlhIEdldHR5IEltYWdlcykcAnQADUZhaXJmYXggTWVkaWEcAm4AHkZhaXJmYXggTWVkaWEgdmlhIEdldHR5IEltYWdlc//bAEMACgcHCAcGCggICAsKCgsOGBAODQ0OHRUWERgjHyUkIh8iISYrNy8mKTQpISIwQTE0OTs+Pj4lLkRJQzxINz0+O//bAEMBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//CABEIAmQBnQMBEQACEQEDEQH/xAAaAAACAwEBAAAAAAAAAAAAAAADBAECBQAG/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAEUu6hQCrFRiIqguMjMcJ1mgipwcOHDEAAA4SZwglKEOy6SVODhYscLVmgANOS68jBYgEZ1ozXjHrbQwBVSBg4GAGBmIpIQBlDhgMHDEAQA2SZyIlKEOy6CVWUMGLxFKmcBA07LrSMHLwEz6Ga8ZFbSGF1XIGCpQAMjJUSEQZQkOGDhiAIEbOM5EStCHYeWCyFUyXIFTOBAadl1ZGDiFEiFozVjKrZQoFViA5AMCMhyBMRBlThgOHCHAAY0QZwklaEOw6tQiGUqScLGcBBU7GrBiVgGIUI0ozq2UKLqucGIBgRoOVEhIGVroYDjJc4CUDEmeIpShjkOLxdDhCxwoIAQVOxqB4kgEqFDNCEK2QguLnByAYAbDlBISKFa6GA40ELFwkjJJ1Inn6RHYbXi4dCFjhQzwIOnZdRDxJVRiFCHoSrZCC4ucHIBgRsMUEhMHUEQyaBqpWVKgknFiyHNUxzDDrxYOFSxAoZ4IFT8unBkk4EufQx6Eq2S4AXODEFAI0HKCIoDqp0bxvpirnhBkMnEgyhBrhTzomtw5dLlRUzwIOn5dOQ68cglz6GNQpW2XFxckMVKgRoMDExMHURqnoZM+spXxqSxYsWOBA6qa5c8+ZqnLpcgUM8EDrQl0oMllgEZ9DG4TraCC4uSGIBgRsMDERUHTUekgyeftIPxxxdJILVaKlBungBhipdbJAoIAgdaMulBziAJn0MdhKtpLqAX
</div>
2024-09-14 13:27:25 +00:00
</body>
</html>