summaryrefslogtreecommitdiff
path: root/technical/reviews/linux.conf.au-2017.md
blob: 9eb8da79fdd026a4e9603ede6f09edcf1ab73bc1 (plain)
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
# linux.conf.au 2017

## General comments

Re-stating the audience's questions before replying is helpful.

## Choose Your Own Adventure, Please!

Keynote by Pia Waugh.

Warns against short-sighted itch-scratching; wants to encourage more
long-lasting systemic change.  To contrast with Maciej Cegłowski, who
warns against [ivory-tower wank] in Sillicon Valley, where no-one
seems interested in working on the severe poverty problems nearby.

(To be fair, Pia does say we need both "symptomatic relief" and
systemic change.)

41:30

> My favourite story from my studies with martial arts was actually
> about two monks walking around.  They're walking along, elder one,
> younger one, and when they get to the river, a person comes and says
> "I'm being chased by robbers, can you help me across the river
> please?".  The older monk says "Yep, not a problem", picks them up
> and carries them across (because they're hurt).  The person gets
> away.  And they're walking along, still in silence, and the younger
> monk says: "… You know, back at the river back there"; the older
> monk says "Yeah?"; the younger monk says "I thought we had taken a
> vow of silence".  The other goes, "Yeah?".  "… Should you have
> spoken to that person?", and the older monk says: "I put that person
> down back at the river.  Why haven't you?"

That story appeals to me: it's got some sort of
Jesus-ish-unconditional-forgiveness-Zen vibe that feels reassuring,
"it's OK to make mistakes, as long as you aimed for the Greater Good,
focus on the Spirit of the Law instead of upholding the Letter".  But
slippery slope turns that into "move fast and break things",
consequences and accountability be damned.

You can even link that to ["fussy" compilers] and false alarms: why
should Buddhist GCC warn on Vow-of-Silence violation if it's not
actually a problem?  The warning should be refined, the diagnosis
should be smarter, the standard amended, otherwise how do you
distinguish between the shades of red?

["fussy" compilers]: https://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00190.html
[ivory-tower wank]: http://idlewords.com/talks/superintelligence.htm

## Stephen King's practical advice for tech writers

By Rikki Endsley.

Lots of pointers, e.g. [The Care and Feeding of the
Press](http://netpress.org/care-feeding-press/).

Suggested outline:

- intro (invite the reader in)
- state the problem (background)
- solution
- (for tech article, tutorial, whitepaper: technical stuff (howto, FAQ))
- conclude (important dates, action items)

Parasite words: "very", "some".  Be mindful of slang.

## Sharing the love: making games with PICO-8

By John Dalton.

> Sad old people, longing for the glory days

PICO-8 restores the "Democracy of Creating".

Kids get the point of sharing without having to be "encouraged" by
licences.

## Writing less, saying more: UX lessons from the small screen

By Claire Mahoney.

- "mobile" is not necessarily "on the move"
- a "mobile" app does not have to be a "diet" version of the original

Users do not expect the functionality to be diminished.

> Context can be better than words

(I feel like there is a connection to be made here with namespaces in
programming languages.)

Patterns are good, repetition is not.

Defining purpose with "when X, I want Y so I can Z" helps "keeping it
real" and reminding you of the user out there.

## Mamas Don't Let Your Babies Grow Up to Be Rock Star Developers

By Rikki Endsley.

When writing job descriptions, stop asking for rock stars.  Focus on:

- job requirements
- job environment

Makes it easier for people to figure whether they will fit in.

Look for developers interested in making *others* succeed, learning
*new* skills; make sure they are accessible, they use the best tool
for the job, and they are able to innovate, lead, and collaborate with
a diverse mix of people.

If you have a rockstar on your hands, make sure the janitors still get
some credits.

## Why haven't you licensed your project?

By Richard Fontana.

"Post open-source" has actually been a thing for a while: the term
describes the widespread trend of not attributing a license to one's
project.

Berne convention says that copyright is automatic, so this POSS
software might be implicitly "proprietary".  Why worry?  There is a
lot of proprietary software already.

Not putting on a license constitutes a statement for some developers.

Some attempts at public-domain dedication:

- [WTFPL](http://www.wtfpl.net/)
- [Unlicense](http://unlicense.org/)
- [0-clause BSD](http://landley.net/toybox/license.html)
- [BOLA](https://blitiri.com.ar/p/bola/)
- [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/)

## Handle Conflict, Like a Boss!

By Deb Nicholson.

Conflict mostly comes from missing information, mismatched goals.

Avoidance, accomodation and assertion each have their own issues as
conflict-handling strategies.

Using historical motivations can help give credit to new ideas.

Hypotheticals such as "What's the worst that could happen?" help
identify the root issues people will not directly talk about.

No ad hominem. No name-calling. Period.  Beware of [Contempt Culture].

Setting expectations can help enforce a civil tone and constructive
criticism.

[Contempt Culture]: (https://blog.aurynn.com/2015/12/16-contempt-culture).

## The journey of a word: how text ends up on a page

By Simon Cozens.

Very interesting explanations on the lengths Unicode must go to in
order to turn humanity's sprawling mess of written communication
methods into rigorous rules that a computer can understand.

Some diacritics can be encoded either with a single code point or a
vowel plus a combining code point; this is because Unicode intends to
have one code point for *every character that other encodings have
ever contained*.

Cozens is publishing a free online book on the subject: [Fonts and
Layout for Global Scripts].

[Fonts and Layout for Global Scripts]: https://simoncozens.github.io/fonts-and-layout/

## Surviving the Next 30 Years of Free Software

By Karen Sandler.

Is copyright assignment to big organizations (Canonical, FSF?) the
solution to problems we cannot anticipate?

Wills are tricky: recipients might be taxed on the "monetary value" of
the "legacy".

Using a trust as a "legal hack": would build a "registry" of free
software; the trust can map handles to contact information to preserve
anonymity.

The idea is vaporware for now, since this trust cannot be built
without debating a lot of finer points.

> The best gift you can give to the people you love is to make sure
> they're prepared for when you're gone.

## The relationship between openness and democracy

By Pia Waugh.

Openness creates a natural incentive for "doing the right thing".

Some people think shady deals which allow politicians to make huge
amounts of money from the industry are fair game, since they have to
get the investments they made during their campaign back.

On "policy-based evidence" as an alternative to evidence-based policy:

> That's rather funny'n'clever'n'witty… Oh shit, you're serious.

How representative and legitimate are elected individuals?  Never mind
the participation rate, most people vote for (or against) one or two
things, not the whole program.

> (13:00) Everyone loves to kick public servants; **everyone**.

> (14:30) I was gonna start a cartoon.  And the first thing was gonna
> be someone saying "I'm surprised that you're working in government,
> I would've thought you'd disagree with X, Y, Z."  OK.
>
> The second panel somone saying to me "I just can't believe you're
> working in government!  I thought you had *integrity*!  I thought
> you would disagree with all of these things!"  … *OK*.
>
> The third person says "YOU MOTHER-"…  Anyway, goes on a complete
> tirade, I'll probably get hit on the head.
>
> The fourth panel is me running off in the distance.  Into the
> sunset.  And the three people saying to each other "Why are there no
> good people in government?"

"Consulting the public" used to be a point on a checklist, not
intended to yield useful outputs.

## JavaScript is Awe-ful

By Katie McLaughlin.

In JavaScript, functions have to add `var` explicitly to their local
variable declarations, otherwise they will assign to global variables.

``` javascript
> [] + []
""
> [] + {}
[object Object]
> {} + []
0
> {} + {}
NaN
```

JavaScript is a registered trademark; ECMAScript is the actual,
*standardised*, **versioned** language.

Some examples of things which can be accomplished without JavaScript:
<http://youmightnotneedjs.com/>.

Cross-compilers alleviate some of the pain; one has to be careful with
their prefered language's warts though.

In Ruby, `&&` and `and` do not have the same precedence with respect
to `not`.

## Data Structures and Algorithms in the 21st Century

By Jacinta Catherine Richardson.

Voronoi diagrams have a lot of applications:

- modeling the capacity of wireless networks
- robot navigation
- mouse hoverstate

Fourier transforms help with data compression.  Naively: O(n²); from
the sixties onward: O(n log(n)).  Nearly Optimal Sparse Fourier
Transform (2012): O(k log(n)), helps on-the-fly data compression.

Singular Value Decomposition helps with pattern recognition/comparison
by allowing to express e.g. rotations.

> New stuff!

Evolutionary algorithms (a form of AI/machine learning) to find
optima:

- a function to tell "is this good enough?"

Genetic algorithms (a form of evolutionary):

- fitness criteria
- swap information ("breed")
- random-ish variations

> Setting up the fitness criteria and the initial conditions for
> genetic algorithms […] is as much art as it is science.

Artificial Immune Systems (90s) is used in computer security.

Swarm algorithms: agents share the value of their findings and
converge.  Used e.g. to locate cancer; considered for e.g. traveling
sales person problem, unmanned cars.

Bacterial Foraging Optimization; Shuffled Frog Leaping;
Teaching-Learning-Based Optimisations.

[Foldit](http://fold.it) is an experiment consisting in making humans
solve hard problems (e.g. protein folding) through competitive gaming.

Graph isomorphism is *hard*.  Easy to verify, hard to solve. Until a
week ago: we can now solve them in quasi-polynomial time.

## My personal fight against the modern laptop

By Hamish Coleman.

Ports, durability, keys are getting worse.

Plugging an older keyboard on newer Thinkpads presents issues:

- the motherboard sends in high-voltage current to enable backlight
- some keys don't work; the firmware must be changed (and then
  re-encrypted)

Sharing firmware patches is challenging; most end-users have no idea
what these even are; some of them run Windows and cannot easily use
the patching tools.

Newer firmwares seem to be signed; this will probably make them harder
to tweak.