Current location

narf Source control manager Git

diff options
authorOlivier Mehani <>2018-01-23 22:01:11 +1100
committerOlivier Mehani <>2018-01-23 22:01:11 +1100
commitcea1d2e8e281e17b95be59ccb3a119ed1e858b90 (patch)
parent4a530cdcefac1043b52a597886a066fe148b60a2 (diff)
Signed-off-by: Olivier Mehani <>
1 files changed, 220 insertions, 2 deletions
diff --git a/2018lca/2018lca.tex b/2018lca/2018lca.tex
index 7637e65..d92b63f 100644
--- a/2018lca/2018lca.tex
+++ b/2018lca/2018lca.tex
@@ -262,7 +262,7 @@ Why would one need access to a bio hacking lab?
\item Needed to find a cheap way to create a medication against Malaria (water-born
- parasite, e.g., from lake Malawi), so only the active molecule remains
+ parasite, \eg, from lake Malawi), so only the active molecule remains
\item Created an online lab notebook to demonstrate early activity and raise
\item People started contributing, 75\% from the private sector, from their
@@ -330,7 +330,7 @@ Why would one need access to a bio hacking lab?
-\subsection{Containers Miniconf}
+\subsection{Containers/Sysadmin Miniconf}
\subsubsection{Day 2 Operations with Containers: Myth vs. Reality --- Elizabeth
K. Joseph}
@@ -478,6 +478,224 @@ Why would one need access to a bio hacking lab?
+\subsubsection{Next Generation Config Mgmt: Sysadmins --- James Shubin}
+ \item MGMT
+ \item Reactive: recreates the state as soon as it gets changed
+ \item Cat output status to files, and update them
+ \item Can schedule VMs (with load hysteresis to avoid flip-flopping)
+ \item Real-time reactive configuration management system
+ \item Needs contributors
+\subsubsection{MQTT as a Unified Message Bus for Infrastructure Services --- Matthew Treinish}
+ \item MQTT: pub/sub messaging protocol, ISO/IEC 20922 standard back in 1999,
+ maintained by OASIS
+ \item Lightweight, designed to handle unreliable networking
+ \item popular in IoT and sensor networks
+ \item Internals
+ \begin{itemize}
+ \item Centralised broker model
+ \item Topics are generated dynamically, are hierarchical, and support
+ wildcarding $\rightarrow$ can subscribe to only the sub-topics of
+ interest
+ \end{itemize}
+ \item QoS: 3 levels
+ \begin{itemize}
+ \item once withouth confirmation, at least once, exactly once
+ \item set for each message on PUBLISH
+ \item client choose QoS on SUBSCRIBE
+ \end{itemize}
+ \item Their Firehose
+ \begin{itemize}
+ \item Mosquito broker (C, support for MQTT v3.1.1)
+ \item Lightweight
+ \item 5 services publishing events: Ansible, Gerrit, Launchpad, Subunit
+ Gearman worker, Logstath workers
+ \item Metrics; manual load testing: 2M messages per second, 25\% CPU load,
+ 1.9GB
+ \item Use cases: 3rd party CI operaors, desktop notifications,
+ inter-service communication, metrics gathering
+ \end{itemize}
+\subsubsection{The New Old Thing: Dynamic Service Discovery with DNS --- Matt Palmer}
+ \item Give names to thing so you can find them
+ \item History: hardcoded IP address, host file, distributed database, \ldots
+ \item Cloud/container era: consul, etcd, zookeeper, doozer, \ldots limited
+ consistency/availability
+ \item RFC-6763: DNS-SD
+ \begin{itemize}
+ \item SRV records per app instance
+ \item host and port
+ \item weight field
+ \item priority field
+ \item Add more instances to an app with PTR records
+ \item Add metadata through TXT records
+ \end{itemize}
+ \item Why aren't people using it?
+ \begin{itemize}
+ \item ``It's just some desktop thing'' confusion with mDNS
+ \item Not knowing it's standard and supported
+ \end{itemize}
+ \item Why should you?
+ \begin{itemize}
+ \item Standard
+ \item More features than most
+ \item Widely supported out of the box by clients
+ \item Weight and failover
+ \end{itemize}
+\subsubsection{Funny FOSS war stories from the pages of The Register --- Simon Sharwood}
+ \item On Call: horror stories from sysadmins
+\subsection{Open Education Miniconf}
+\subsubsection{The State of Local and Online Tech Use in Australian Schools ---
+ Arjen Lentz}
+ \item Audience: few educators, mostly programmers
+ \item Invalid use of technology: typing notes
+ \begin{itemize}
+ \item better retention when handwriting (and chucking the paper)
+ \item or even not taking notes at all;
+ \item good idea: stylus on tablets
+ \end{itemize}
+ \item Australian Curriculum
+ \begin{itemize}
+ \item v8 (minor changes)
+ \item ACARA outcome relatively sane; states now implementing
+ \item P-8 mandatory, elective in yrs 9--10
+ \item Programming from yrs 3--4, more in 5--6
+ \item Suggests visual programming languages
+ \item Yr 7+: general purpose programming language such as Python
+ \item Yr 9+: object oriented
+ \end{itemize}
+ \item Disagreement on what STEM is, \eg, a subject vs. something that can be
+ applied to other topics
+ \item No prescription of technology to use
+ \begin{itemize}
+ \item Did you learn to drive a “Holden Commodore 2008 Automatic”, or any
+ passenger vehicle?
+ \item Problem with MS Office: people are taught the specific steps to use
+ a given version, rather than the concepts $\rightarrow$ sometimes easier
+ to move to LibreOffice rather than a newer version of MS Office (less
+ different)
+ \item Controlled experiment: Gimp vs. Photoshop, then swap to the other:
+ more comfortable with the first tool, didn't like the change
+ \end{itemize}
+ \item Australian Education
+ \begin{itemize}
+ \item Critically important
+ \item Regarded as an expense
+ \item Focus on measurable outcomes for politics and PR
+ \item Due to NAPLAN, anything that is not tested is not taught to save
+ costs
+ \end{itemize}
+ \item Australian teachers are
+ \begin{itemize}
+ \item Regarded as a generic resource replaceable by tech
+ \item Overloaded, busy, and stressed
+ \item Underpaid
+ \item Mostly non-specialist
+ \item Mostly work in silo
+ \item Predominantly functionally tech-illiterate
+ \end{itemize}
+ \item Hardware and software
+ \begin{itemize}
+ \item Not great hardware nor network (even given NBN)
+ \item Limited to no permissions on devices (\eg, install to local user)
+ \end{itemize}<++>
+ \item Tech indulgence
+ \begin{itemize}
+ \item Tablets are consumer devices
+ \item VR is fine, but not the same as physical touch
+ \item Actual benefits of online teaching resources (time to
+ login/connect/retrieve? what happens to the lesson if not accessible?)
+ \end{itemize}
+ \item Big education publishers
+ \begin{itemize}
+ \item Charge extra for electronic access to textbooks
+ \item Use DRMs
+ \item Require to be online to login
+ \end{itemize}
+ \item Positive strategies
+ \begin{itemize}
+ \item Understand why teachers do what they do now, understanding their
+ business processes
+ \item Try to improve within the current context
+ \item Get talking, nudge for change
+ \end{itemize}
+\subsection{Real World Functional Programming Miniconf}
+\subsubsection{Functional DevOps in a Dysfunctional World --- Vaibhav Sagar}
+ \item DevOps try to fix the ``Work on my machine'' issue
+ \item DevOps are glorified sysadmins
+ \item Process desiderata
+ \begin{itemize}
+ \item automatic
+ \item repeatable
+ \item idempotent
+ \item reversible
+ \item atomic (git pull isn't, but symlinks are)
+ \end{itemize}
+ \item Example with a tiny Haskell web app packaged in Nix
+ \begin{itemize}
+ \item Nix abstracts all of the language tooling (Haskell, Python, PHP,
+ \ldots)
+ \item Sandboxed build, so the new release only replaces the old one when
+ it builds
+ \item integrates with systemd
+ \item Aggressively caches builds (assuming referential transparency)
+ \end{itemize}
+ \item Nixops deployment tool
+ \begin{itemize}
+ \item Dealing with requirement changes (\eg, making the port configurable): build a patched version
+ \item deploy
+ \item rollback
+ \end{itemize}
+ \begin{itemize}
+ \item Nix is a package manager / build system
+ \item NixOS is an OS built around Nix
+ \item NixOps is a deployment / configuration management tool, which
+ addresses all the desiderata
+ \end{itemize}
+\subsubsection{Cargo Culting Lenses for Fun \& Profit --- Sean Chalmers}
+ \item To really use lenses, you will need to learn the theory
+ \item \ldots but not to start using them
+ \item Haskell lens package (Scala: monocle)
+ \item Lens ~ Getters and Setters
+ \item Template Haskell can write the lenses for us: makeLenses
+ \item infix operator \^. for the getter
+ \item Lenses are functions: they compose
+ \item infix operator .~ for the setter
+ \item reverse apply operator \&
+ \item \ldots lots of code examples to check \ldots
+ \item traverse can be used to update properties in lists of objects
+ \item Prisms are kinda Maybe lenses
+ \item lens-aeson can easily work over nested objects in arrays