Literate Storytelling: Interpreting Syntaxes for Explorers
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 542 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/61493 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 202313 / 542
2
5
10
14
15
16
22
24
27
29
31
36
43
48
56
63
74
78
83
87
89
95
96
99
104
106
107
117
119
121
122
125
126
128
130
132
134
135
136
141
143
146
148
152
155
157
159
161
165
166
168
170
173
176
180
181
185
191
194
196
197
198
199
206
207
209
210
211
212
216
219
220
227
228
229
231
232
233
236
250
252
256
258
260
263
264
267
271
273
275
276
278
282
286
292
293
298
299
300
302
312
316
321
322
324
339
341
342
343
344
351
352
354
355
356
357
359
369
370
372
373
376
378
379
380
382
383
387
390
394
395
401
405
406
410
411
413
415
416
421
426
430
437
438
440
441
443
444
445
446
448
449
450
451
458
464
468
472
475
476
479
481
493
494
498
499
502
509
513
516
517
520
522
524
525
531
534
535
537
538
541
00:00
Computer configurationRevision controlControl flowCommunications protocolMacro (computer science)Link (knot theory)Electronic visual displayProxy serverSpacetimeMarkup languageWhiteboardHypermediaReading (process)Data managementComputer-generated imagerySymbol tableProjective planeData managementDecision theoryBitKeyboard shortcutSound effectQuicksortNumberComplete metric spaceConfiguration spaceMaxima and minimaWordLevel (video gaming)AbstractionMultitier architectureSymbol tableMomentumIntegrated development environmentCombinational logicComputer programmingDataflowMultiplication signTerm (mathematics)Computer clusterSocial bookmarkingField (computer science)CuboidExpected valueForm (programming)Text editorVarianceRegulärer Ausdruck <Textverarbeitung>FolksonomyContent (media)Numerical taxonomyAssociative propertyStandard deviationElectronic visual displayPhysical systemRight angleSemantics (computer science)Process (computing)Coefficient of determinationPerspective (visual)Formal languageGroup actionDiagramDifferent (Kate Ryan album)Instance (computer science)Execution unitInformationsgesellschaftSubsetNumeral (linguistics)Peer-to-peerMatching (graph theory)Confidence intervalNeuroinformatikConnectivity (graph theory)InformationCodeOperator (mathematics)Interpreter (computing)Order (biology)File formatRevision controlLaceComputer fontComputer animation
08:05
RootProteinRelational databaseFundamental theorem of algebraOnline helpComputer configurationFrequencyElement (mathematics)Macro (computer science)Computer fileData bufferHyperbolischer RaumParsingHyperbolaDirectory serviceComputer fontTask (computing)CoroutineMedical imagingPauli exclusion principleForm (programming)MereologyPoint (geometry)NP-hardKeyboard shortcutInstance (computer science)QuicksortProjective planeMessage passingNetwork topologyTouch typingRepository (publishing)Formal languageComputer animation
09:46
Control flowRevision controlLink (knot theory)Macro (computer science)Data managementMarkup languageSpacetimeElectronic visual displayProxy serverWhiteboardCommunications protocolComputer networkReading (process)HypermediaData bufferHyperbolischer RaumComputer configurationDirectory serviceGenetic programmingPrice indexInheritance (object-oriented programming)Thread (computing)Integrated development environmentText editorVariable (mathematics)Fundamental theorem of algebraElectronic mailing listForm (programming)Hash functionQuery languageParameter (computer programming)Block (periodic table)Form (programming)Regulärer Ausdruck <Textverarbeitung>Canonical ensembleWhiteboardInterpreter (computing)Line (geometry)Sound effectMixed realityService (economics)Term (mathematics)MereologyRange (statistics)Interface (computing)SoftwareGoodness of fitProjective planePersonal digital assistantComputer fileWeb pageFile formatHierarchyPhysical systemKey (cryptography)Maxima and minimaInstance (computer science)Software repositoryCASE <Informatik>Communications protocolFormal grammarQuicksortHypercubeHyperbolischer RaumParsingKanban <Informatik>Formal languageComputer animation
14:03
Hyperbolischer RaumComputer-generated imageryComputer fileComputer configurationSymbol tableInheritance (object-oriented programming)Term (mathematics)Instance (computer science)Complete metric spaceMultilaterationQuicksortPoint (geometry)Level (video gaming)Key (cryptography)Perspective (visual)InferenceDialectForm (programming)RecursionRange (statistics)MathematicsFingerprintBit10 (number)Forcing (mathematics)SpacetimePermutationHacker (term)Different (Kate Ryan album)Computer animation
17:36
Macro (computer science)Fundamental theorem of algebraHyperbolischer RaumElectronic mailing listForm (programming)Hash functionQuery languageParameter (computer programming)CASE <Informatik>Term (mathematics)Sound effectDescriptive statisticsForm (programming)Functional (mathematics)Hash functionFunction (mathematics)Computer animation
18:30
Electronic mailing listHash functionParameter (computer programming)Fundamental theorem of algebraHyperbolischer RaumData bufferForm (programming)Query languageEwe languagePersonal digital assistantMacro (computer science)ConsistencyRevision controlEquals signContent (media)Identity managementModule (mathematics)File formatEmailGastropod shellState of matterInstance (computer science)Maxima and minimaDataflowPoint (geometry)Range (statistics)Term (mathematics)Form (programming)Electronic mailing listIntegrated development environmentRight angleQuicksortNumberRegulärer Ausdruck <Textverarbeitung>Directory serviceOperator (mathematics)Mechanism designProjective planeType theoryComputer fileMultiplication signClassical physicsFormal languageMereologyBitInterpreter (computing)Task (computing)Different (Kate Ryan album)Functional (mathematics)Buffer solutionKeyboard shortcutGroup actionPRINCE2Asynchronous Transfer ModeControl flowProof theoryComputer animation
21:58
EmailComputer configurationData bufferAsynchronous Transfer ModeSymbol tableFunctional (mathematics)Menu (computing)Term (mathematics)Sound effectGroup actionAsynchronous Transfer ModeHypercubeSuite (music)Context awarenessCuboidCursor (computers)Hyperbolischer RaumMultiplication signPoint (geometry)Instance (computer science)Library (computing)Form (programming)Open setRevision controlVector potentialRegulärer Ausdruck <Textverarbeitung>Keyboard shortcutFile formatNumberPerspective (visual)Computing platformComputer animation
24:28
System identificationPoint (geometry)InternetworkingComputer networkInterface (computing)PlastikkarteInformationFunction (mathematics)FrequencyHyperbolischer RaumComputer configurationHecke operatorWitt algebraPauli exclusion principleLemma (mathematics)Time zoneMassSpacetimeLocal ringConfiguration spaceParsingDirectory serviceComputer fileGUI widgetStructural loadPrice indexComputer-generated imageryVenn diagramReading (process)Graphical user interfaceLogicHeegaard splittingToken ringElectronic mailing listLengthSeries (mathematics)Loop (music)Block (periodic table)Content (media)Type theoryContext awarenessPort scannerLink (knot theory)File formatCanonical ensembleCondition numberMetreMaxima and minimaInformationProduct (business)Grand Unified TheoryWeb pageClassical physicsScripting languageLine (geometry)Entire functionPoint (geometry)Function (mathematics)Physical systemBitLink (knot theory)Instance (computer science)Hyperbolischer RaumNeuroinformatikSuite (music)Sheaf (mathematics)Network topologyMultiplication signGroup actionUniform resource locatorSubsetSound effectHash functionQuicksortGastropod shellRippingGraph coloringFile systemOrder (biology)Term (mathematics)Computer animation
27:54
Data bufferComputer animationProgram flowchart
Transcript: English(auto-generated)
00:06
Hello, my name is Jonathan McHugh and I am from Icebreaker and I'm just going to be going through some of the design decisions in regards to my project as well as expressing thoughts regarding knowledge management and the use of abstract symbols as a way of
00:30
working with projects to maximize flow and improve interoperability and reduce the time and costs of
00:41
expressing concepts and expectations and desires and unleashing them as actions and whatnot. And this is a diagram which I playfully did which just sort of explains some of the facets with regards to it. Before I really got into coding I had a varied experience with regards to
01:09
information society from a wider perspective and one of the things which I found was very useful for dealing with large information apparatus was to use abstract symbols. I did this for
01:28
an association whereby I was collecting different tags which was a social bookmarking system from back in the day and what I did was the folksonomy and taxonomies I was collecting
01:45
were getting so large it would have been uneconomic to use, for instance, just the the lettering of the terms and it was better to aggregate them and what I did was make use of the non-alphanumeric characters which formed the
02:08
which are usually on the right hand side of a keyboard sometimes at the top as well and this founder, I found that this is very good for both
02:20
demarcating things but it also sort of created more of an impetus regarding how to order things and the gains from say doing completions was fantastic because you weren't really just cycling through all of the letters of the word to get the form you wanted but you just sort of smash in and deal with the term because you've got an associated character or
02:43
combination of characters and one of the things when I really got into programming I started out by really prioritizing things like tech, the documentation system, vim, the text editor
03:03
and as well as sort of using regular expressions via the tooling sed as well as awk and I tried to use the existing characters that I had from the syntax for delineating
03:24
the terms and definitions which I was trying to collect in terms of programming but what I found was that it didn't quite match because the association which I'd previously formed my things were dealing with public affairs, politics and cultural activities and
03:48
even though it dealt upon the technology aspects such as peer-to-peer or things like that
04:01
it didn't really delve into, it was really at the kind of white shirt level in terms of expectations, competences and I realized that I needed something better suited for what happens within a computer environment
04:22
and what the components are and how they interlace and I spent a lot of dog food eating trying to work out a form so I'm just going to go through some of the aspects with regards to this and I purposely chose something very abstract but also accessible. I chose it abstract
04:42
because I was aware with regards to semantic business process management which was an attempt which is an approach to mitigate groups from different language communities with common terms and for me an abstract term seemed to be quite useful because it would be cultural neutral
05:04
and I subsequently found that the ambiguity is quite useful because it allows you to do things quickly without being too bothered and actually there's turns out there's interesting psychological advantages from breaking things down into a set unit of things so for instance
05:24
I was reading that it takes seven forms that in fact whatever things are roughly people can put things into seven boxes so expecting the number of cows of a field there's a variance which happens with around seven in terms of people and expectations as well as expectations
05:43
with bitterness and some people can be more precise and more accurate and there's just a kind of a deviation in terms of that once you look in the numbers of recollection and what people can hold and interpret in certain things I fixated on the number six so in effect I
06:04
classified the vim tooling which I was dealing with with a roughly between one two three four well it was 10 20 30 40 50 60 which and I subsequently expanded upon that with the
06:24
realizing that things things wouldn't deal with in a in a it needed a bit more subtlety so in effect the first tier was used to delineate whether something 10 which was something which was which was which was which was something which was personally dealt with
06:48
20 to deal with documentation 30 to deal with display 40 to deal with movement 50 to do with environments such as configs and 60 to do with external or system-wide things or external
07:03
tooling and I subsequently adapted this for two level layer with regards to one q 10 to represent one facet one q 30 to represent another and this sort of sort of played well in terms of
07:21
things but I just sort of had a I had a bit of a I had a guilt in it because the non-app that the previous system I came up with had the it worked very nicely that the you could describe things with the with the non-alpha numerics and they were quite accessible on the
07:42
keyboard and so after a while of my confidence at least in terms of how I was dealing with the annotations in terms of putting putting subsets of content which is quite similar into a specific folder with these annotations forming and dealing with things and so for
08:03
instance I would end up with something looking like this which was compounded and so I started
08:20
using the the letters sort of in the home row in the middle of where the QWERTY keyboard was so and it was it encouraged me to really have things in specialized forms and repositories and I took the philosophy of really sort of spreading things out so for instance
08:42
if we look at this this is an example of of different roughly parsing based activities and I could do another form and so hqh would be roughly around parsing
09:03
oq would be represented of languages and tools and so for instance we could do luer and this would give an example of lots of luer based points so as you can see these
09:24
annotations can allow you to really cut through and deal with various points and with the with regards to the icebreaker project I felt that the um I felt this stuff was interesting but uh the icebreaker project was very document focused for very good reasons the um
09:48
my icebreaker project was has been looking into how document uh how flap based files could be used particularly with regards to gem text the file format of gemini could be used
10:04
to express issues and problems or also kanban boards which is um which would be more preferable than the walled garden approach of services such as github where you in effect end up putting
10:24
all your repos with all the git history and all the subtleties in terms of that but when it comes to improving any of these repos you're not allowed to delve through the history and subtleties in terms of that so here's just at the top pane an example of um g-networks um kanban board repo just the readme file being
10:48
run through a the git in terms of the history and diffs so as you see all these lovely things in terms of people adding things people removing things people altering things you don't really get
11:02
in github and that's a shame um i i sort of looked in terms of that and i and it was very satisfying that gem text could provide such a minimal minimal syntactic range for expressing
11:25
the ideas that ultimately i felt the need that just to see how things could mix and and perform with and what i went with was the use of the kaotliner format which is within the emacs hyper hyperbole the package which is a format which is hierarchy
11:46
and it's got very good interfaces so for instance you could be adding parts like this or hitting a child form and what's very nice is as part of this being a personal information manager that you can cross-link blocks and if
12:05
including in other documents and should the blocks change then you will be able to you'll be able to catch up and work out where that the block has been moved to at least within the same document and so that's one of the things which i really prioritized and
12:23
dealt with in terms of this year and um and i managed to uh with the interpreter canonical mix both the syntaxes of gemini protocols gem text the kaotliner format as well as the key annotation system and so this has and i haven't explored it perfectly but i believe that
12:50
passing expression grammars are capable of representing things within the same line and not necessarily be relegated to
13:00
to comparing line by line and so this kind of deviant exploration of how syntaxes can work across i've potentially got something much more richer and and subtle with with then then the formats and syntaxes isolated
13:22
um here just on the top pane here is just an example of in in the in the language and parser txr a way of creating a definition and then providing the name of the reference in this case i used the annotation style hqh to just point out that the the parsing forms
13:48
um and and here we have the the various key key aspects uh aspects of of the of the annotation um it's for for key just returning to that i should emphasize that
14:06
that the key annotation is formed around the the green buttons which would either say for instance and it would be one of the one of the letters in there would generate would providing the starting kernel for for an annotation but it is sub supplemented with q w e
14:28
or two which allows to provide a an inference and this was more of a later stage innovation and you can also combine annotations um the annotation points at least i do it so that
14:43
up to four can be compounded to be representative of of one which excluding blooms which would be providing where the dictionary where where the document deals with and encourages more a recursive perspective on things has has a very large range a permutative range which
15:03
even though that wouldn't be satisfied with either an individual annotating things or or a community let alone the the logical outcome of combining certain things together it provides a very large range in the tens if not hundreds of thousands of of of points and
15:23
so as you add one or more annotations you can really get a fingerprint of what things are and it's also got a bit of subtlety regarding that it's not the lack of precision in terms of this which has been described to me more in terms of like um i think it was aristotle's use of hexis
15:44
in terms of what something is and and it's sort of force um the the philosophy of what something is uh i've been trying to deliberate in terms of the the subtleties regarding that and i guess it would be for instance there's there's always conjecture regarding who invents say
16:05
the first submarine or the or say something like the first submarine or the first first um the first camera and so for instance from my own perspective in terms of prejudices i've got the concept of um of an irishman inventing the first submarine
16:26
and uh london a london a an english politician who was um invented the first camera and that's perhaps just based on my own prejudices upbringing and me not having complete enough
16:42
technological perspective and definition in terms of that and i'm sure there are people for instance in in other regions who who have different opinions and that's all fine because we all sort of have a common idea of what a submarine is or what a camera is but we might have different definitions at which point that thing moved from being something else into that form
17:04
and that's why i like the the the vagueness of this key and its annotations is that it it doesn't it doesn't have grandiose claims of completeness and it has more of the kind of etymology approach in which you can make an opinion on things switching out and it's all
17:24
fine including if if the definitions changes it's it's almost in terms of how it works and and operates in terms of the work for any user it really gives you kind of convenience and dealing with things so just returning back to here for instance uh
17:40
i looking in terms of a a more um of a specific function at the top here you've got rqr kwk and that's in effect rqr would be a form of a to-do and kwk in terms of hashes in terms of the aspects the complementary description is create hashes um and here we're just returning
18:07
just in case you there's a definite the function definition as well as um a reference in terms of the fact that you have the annotations being being outputted here within the these parentheses
18:24
parentheses here within the light blue and here we have the the form for putting things in cases which in the in the txr form needs to be ended this is a list-based language so as you can
18:45
imagine things start and stop in very clear forms you have the syntax for creating a binding which in this form would be well let's let's go the first part so this is you this is a an example of a uri variable being captured which is referencing a separate function and which
19:06
and expecting this outcome and of course you might have you could have a function capturing multiple things in which this this approach could capture different points and at least my interpretation regarding why i'm doing this binding is because it allows it's seemingly
19:24
allowing you to inherit all the subtleties upstream in terms of that but i might be a bit flaky in terms of that so as you can imagine there are sort of lots of different forms and and dealing with things and here's an example of a of one of the of the forms which
19:42
would have the with a here classic regular expression style things in terms of repeating numbers and various points and so just to give an example of how i could sort of use these annotations for right sort of racing through things so here is an example of rqr which would be
20:11
a mechanism for just pulling up all of my to-do's and here you have yeah it's referencing the fact that there are 202
20:23
different tasks and dealing with things and obviously this is just providing a document type a singular document but you could be for instance performing a search based upon multiple documents or within the project which within this Emacs operating environment means that you're pretty much just limited by time and ambition so for instance you could
20:50
as you can see it's very terse and this is
21:01
this is how this is for me quite significant in terms of flying by i i really want i really try and make sure that i have maximum flow and that i can switch from one mental state to another and and and handle multiple things without being overwhelmed and for instance the
21:20
name that the fact that the documents and the and the directories have to have named in terms of that means that it makes it easier for instance jumping for a different file so for instance if i press ctrl x and b in Emacs then there's a range of points so if just pressing
21:44
mqm here for instance has given me a list of different buffers and and the names in terms of that so it i can really sort of come up with buttons and hotkeys and actions and to deal with that so for instance here's just a way in in terms of the reuse of these annotations can
22:05
come can be dealt with so for instance at the top we have svg tag mode which is a third-party Emacs library which allows you to turn various points in terms of these black and white boxes are the annotations i would like to say improved
22:25
or visualized but you can also add other things in terms of that i've talked in other activities regarding the uh the use of hyper hyper hyperbole the uh in terms of navigation and and and points in terms of that so this time i thought i'd just look at one of the latest
22:47
features from number eight version eight which is defil which provides more a regular expression based form in terms of that so this form would be the defining of the function the name of this
23:01
function the the opening context the middle context the ending context as well as the middle context as well as what you're meant to do based upon that within these within these curly parentheses so uh what i've what what is what is the conjecture in terms of this one is the
23:29
having different actions based upon where the cursor is within the annotation let alone the potential in terms of any perspective before or afterwards and this is quite deep because of the
23:44
use of repeatedness and various forms that you could form very complex workflows not necessarily from key bindings pulling out the um the the the things uh and and and the or the use of
24:00
classic my um menus but in fact you could use the the cursor within or relative to a one of these annotations and that forms the the action which could get very fast in terms of just pushing a button having a dedicated action in in terms of the styles dedicated action button for dealing with things and so the the menu would in effect be the cursor related
24:24
to the um and here's a high roller format which is within the hyperbole suite which looks into things and um that's very interesting uh which i'll be looking into more so for instance
24:41
an action could be to go to a subset of this so for instance this is an example of the section shells which has the subsection and i haven't really i don't really have the time to go into this further but there's a recent emacs conference where this is one of the main talking points here is a here is a product of a script which i think is about 50 gigabytes or
25:08
maybe this is a 20 50 or 20 mega megabytes which is in effect a rip grep through various points and and and and dealing with the this this is a and trying to isolate various various things
25:27
so let's so let's just highlight some colors quickly we'll just do that let's see pink yeah oh that's probably slowing it down but whatever but in effect it's classic rip grep answers
25:46
which document which line which character what was dealt with in here i'm just running through the entire system for the entire file system to find the annotations pertinent oh but yeah there we go so um but we'll use swiper to reinforce so this will
26:18
this will have the aggregate of it's got it does have duplicates at least how this was set up
26:28
but that's fine because the output's dealing with the orderly fashion in terms of that so ascertain is it come on
26:44
sorry the uh i think my computer's a bit overwhelmed it's humming a bit it must be some background thing yes so here we go so we've got ascertaining ascertain whether in correct location ascertain wherever useful nothing links to it and as you can
27:10
i i do have i do have tooling which sort of deals with this from the point of a specific script and i've i've worked out a way to in effect inject the annotations based upon
27:25
hashing of content i've also been developing the hash trees forming with regard to the documents but yes um i hope this is of interest and yep there's there's lots of interesting things
27:41
with regards to icebreaker and i guess it would be best to visit the fosden page for this talk for some more supplementary information thank you very much