Dan Baronet: Difference between revisions
mNo edit summary |
m (IPSA employees category) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
'''Daniel Baronet''' (6 May 1956–1 Nov 2016), also known as '''APLtrainer''', was an APL (and later [[J]]) programmer since 1976, working for [[I.P. Sharp Associates]] in Melbourne, Toronto, Montreal, and Copenhagen, from 1983 to 1988, and for [[Dyalog Ltd]] from 2006 until his death. | '''Daniel Baronet''' (6 May 1956–1 Nov 2016), also known as '''APLtrainer''', was an APL (and later [[J]]) programmer since 1976, working for [[I.P. Sharp Associates]] in Melbourne, Toronto, Montreal, and Copenhagen, from 1983 to 1988, and for [[Dyalog Ltd]] from 2006 until his death. | ||
Baronet was responsible for Dyalog's ''Simple APL Library Toolkit'' (SALT) and its framework for [[user command]]s (affectionately known as ''spice''), but also worked on many other APL tools through his company Milinta Inc, specialising in the development of free open-source tools to transfer of APL code between dialects.<ref>Rick Procter. [http://www.aplborealis.com/danb2016.html Obituary for Daniel Baronet]. APL Borealis.</ref> He was a prolific writer and presented at many events. | |||
== The "Dan Baronet special" == | == The "Dan Baronet special" == | ||
Baronet was famous for innovative uses of APL primitives. He's credited with discovering that < | Baronet was famous for innovative uses of APL primitives. He's credited with discovering that <syntaxhighlight lang=APL inline>b⊥b</syntaxhighlight> or, as he preferred writing it, <syntaxhighlight lang=APL inline>⊥⍨b</syntaxhighlight>, counts the number of trailing ones in the Boolean vector <syntaxhighlight lang=APL inline>b</syntaxhighlight>:<ref>Roger Hui. [http://danielbaronet.rip/ Tribute to Daniel Baronet]. DanielBaronet.RIP</ref> | ||
< | <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> ([[Decode]]) performs base conversion. If the left argument is a vector, it performs ''mixed'' base conversion. | ||
For a base vector <math>b = b_n,\cdots,b_0</math> and a digit vector <math>a = a_n,\cdots, a_0</math>, < | For a base vector <math>b = b_n,\cdots,b_0</math> and a digit vector <math>a = a_n,\cdots, a_0</math>, <syntaxhighlight lang=apl inline>b ⊥ a</syntaxhighlight> converts <math>a</math> to the mixed base <math>b</math>, i.e., it computes <math>b_0\cdots b_{n-1}a_n + \cdots + b_0b_1a_2 + b_0a_1 + a_0</math>. | ||
Now, in a monadic context, < | Now, in a monadic context, <syntaxhighlight lang=apl inline>⍨</syntaxhighlight> ([[Commute]]) causes the function to the left to be called with equal left and right arguments. | ||
So < | So <syntaxhighlight lang=apl inline>⊥⍨b</syntaxhighlight> is defined as <syntaxhighlight lang=apl inline>b⊥b</syntaxhighlight>, which computes <math>a_0\cdots a_n + \cdots + a_0a_1a_2 + a_0a_1 + a_0</math>, the sum of all cumulative products from the right to the left. | ||
For < | For <syntaxhighlight lang=apl inline>k</syntaxhighlight> trailing ones, the <syntaxhighlight lang=apl inline>k</syntaxhighlight> rightmost products are <syntaxhighlight lang=apl inline>1</syntaxhighlight> and all others are <syntaxhighlight lang=apl inline>0</syntaxhighlight>, so their sum is equal to <syntaxhighlight lang=apl inline>k</syntaxhighlight>.<ref>Stack User "Dennis". [https://codegolf.stackexchange.com/a/98764 Answer] in [[Dyalog APL]] to [[Adám Brudzewsky]]'s [[code golf]] challenge. Code Golf and Coding Challenges Stack Exchange.</ref> | ||
== | == Publications == | ||
* [http://archive.vector.org.uk/?qry=baronet&submit=search Articles] in the [[Vector journal]] | * [http://archive.vector.org.uk/?qry=baronet&submit=search Articles] in the [[Vector journal]] | ||
* [https://www.youtube.com/user/APLtrainer | * [https://www.youtube.com/user/APLtrainer APLtrainer] ― YouTube videos | ||
=== APL conferences === | |||
* [[APL03]]: [https://doi.org/10.1145/882067.882070 NAVPLANR (NP): flight navigation planning software]. | |||
=== Dyalog user meetings === | |||
<div style="column-width:30em"> | |||
* [[Dyalog '06]] W05: Introduction to Object Oriented Programming using Dyalog version 11.0 ([https://www.dyalog.com/uploads/conference/dyalog06/presentations/W05_Baronet_IntroToOO materials]) | |||
* [[Dyalog '07]] 05: SALT, Subversion and the Dyalog Code Library ([https://www.dyalog.com/uploads/conference/dyalog07/presentations/05_Baronet_SALT_Subversion.zip materials]) | |||
* [[Dyalog '07]] W01: Introduction to Object Oriented Programming using Dyalog version 11.0 | |||
* [[Dyalog '08]] W04: Source Code Management using SALT and Subversion ([https://www.dyalog.com/uploads/conference/dyalog08/presentations/W04_Baronet_SALTandSVN materials]) | |||
* [[Dyalog '08]] W08: Introduction to Object-Oriented Programming ([https://www.dyalog.com/uploads/conference/dyalog08/presentations/W08_Baronet_IntroToOO materials]) | |||
* [[Dyalog '09]] C02: Introduction to Object-Oriented Programming ([https://www.dyalog.com/uploads/conference/dyalog09/presentations/C02_Baronet_IntroToOO materials]) | |||
* [[Dyalog '09]] C06: Source Code Management using SALT and SubVersion (part I) ([https://www.dyalog.com/uploads/conference/dyalog09/presentations/C06_Baronet_SALTandSVN materials]) | |||
* [[Dyalog '09]] C09: Source Code Management using SALT and SubVersion (part II) | |||
* [[Dyalog '10]] TU3: User Commands in Dyalog APL | |||
* [[Dyalog '11]] C01: Introduction to Object-Oriented Programming ([https://www.dyalog.com/uploads/conference/dyalog11/presentations/C01_oo_programming materials]) | |||
* [[Dyalog '11]] C06: Windows Presentation Foundation ([https://www.dyalog.com/uploads/conference/dyalog11/presentations/C06_wpf materials]) (with Michael Hughes) | |||
* [[Dyalog '11]] C07: Productivity Tools for Dyalog Users ([https://www.dyalog.com/uploads/conference/dyalog11/presentations/C07_productivity_tools materials]) | |||
* [[Dyalog '12]] D07: New SALT features and User Commands | |||
* [[Dyalog '12]] C02: User Commands ([https://www.dyalog.com/uploads/conference/dyalog12/presentations/C02_UserCommands materials]) | |||
* [[Dyalog '12]] C07: Starting a New Application in Dyalog APL ([https://www.dyalog.com/uploads/conference/dyalog12/presentations/C07_StartingAPLApp materials]) (with [[Morten Kromberg]]) | |||
* [[Dyalog '12]] C09: Managing External Data III ([https://www.dyalog.com/uploads/conference/dyalog12/presentations/C09_ExternalDataIII materials]) (with [[Gitte Christensen]]) | |||
* [[Dyalog '13]] D15: [https://dyalog.tv/Dyalog13?v=Bm5dEUC6ZWg User Command Update] ([https://www.dyalog.com/uploads/conference/dyalog13/presentations/D15_User_Command_Update.pptx slides]) | |||
* [[Dyalog '13]] SA03: OO and CC | |||
* [[Dyalog '13]] SP03: User Commands | |||
* [[Dyalog '14]] SA03: Parallel Programming with Futures and Isolates ([https://www.dyalog.com/uploads/conference/dyalog14/workshops/SA3_Parallel_Programming.zip materials]) (with [[Morten Kromberg]]) | |||
* [[Dyalog '14]] SP02: The Ins and Outs of Data (SQAPL, XML, JSON, Excel, Syncfusion Data Objects, ZIP files, …) ([https://www.dyalog.com/uploads/conference/dyalog14/workshops/SP2_The_Ins_and_Outs_of_Data.zip materials]) (with [[Brian Becker]]) | |||
* [[Dyalog '14]] TP04: Version 14.0 Language Features in Practice ([https://www.dyalog.com/uploads/conference/dyalog14/workshops/TP4_Version_14_Language_Features_In_Practice.pptx slides]) | |||
* [[Dyalog '15]] D05: [https://dyalog.tv/Dyalog15/?v=ktsFyXnEspo User Commands Update] (with [[Adám Brudzewsky]]) | |||
* [[Dyalog '15]] D10: [https://dyalog.tv/Dyalog15/?v=rB2ztjvqrNs MiServer UI Controls] ([https://www.dyalog.com/uploads/conference/dyalog15/presentations/D10_MiServer_UI_Controls.pdf slides]) (with [[Adám Brudzewsky]]) | |||
* [[Dyalog '16]] D04: Tools Group Update (with [[Brian Becker]] and [[Adám Brudzewsky]]) | |||
* [[Dyalog '16]] TP01: Version 15.0 in Depth | |||
</div> | |||
== References == | == References == | ||
<references/> | <references/> | ||
{{APL community}} | {{APL community}}{{DEFAULTSORT:Baronet}}[[Category:People]][[Category:I.P. Sharp Associates employees]][[Category:Dyalog Ltd. employees]] |
Latest revision as of 21:43, 20 February 2024
Daniel Baronet (6 May 1956–1 Nov 2016), also known as APLtrainer, was an APL (and later J) programmer since 1976, working for I.P. Sharp Associates in Melbourne, Toronto, Montreal, and Copenhagen, from 1983 to 1988, and for Dyalog Ltd from 2006 until his death.
Baronet was responsible for Dyalog's Simple APL Library Toolkit (SALT) and its framework for user commands (affectionately known as spice), but also worked on many other APL tools through his company Milinta Inc, specialising in the development of free open-source tools to transfer of APL code between dialects.[1] He was a prolific writer and presented at many events.
The "Dan Baronet special"
Baronet was famous for innovative uses of APL primitives. He's credited with discovering that b⊥b
or, as he preferred writing it, ⊥⍨b
, counts the number of trailing ones in the Boolean vector b
:[2]
⊥
(Decode) performs base conversion. If the left argument is a vector, it performs mixed base conversion.
For a base vector and a digit vector , b ⊥ a
converts to the mixed base , i.e., it computes .
Now, in a monadic context, ⍨
(Commute) causes the function to the left to be called with equal left and right arguments.
So ⊥⍨b
is defined as b⊥b
, which computes , the sum of all cumulative products from the right to the left.
For k
trailing ones, the k
rightmost products are 1
and all others are 0
, so their sum is equal to k
.[3]
Publications
- Articles in the Vector journal
- APLtrainer ― YouTube videos
APL conferences
Dyalog user meetings
- Dyalog '06 W05: Introduction to Object Oriented Programming using Dyalog version 11.0 (materials)
- Dyalog '07 05: SALT, Subversion and the Dyalog Code Library (materials)
- Dyalog '07 W01: Introduction to Object Oriented Programming using Dyalog version 11.0
- Dyalog '08 W04: Source Code Management using SALT and Subversion (materials)
- Dyalog '08 W08: Introduction to Object-Oriented Programming (materials)
- Dyalog '09 C02: Introduction to Object-Oriented Programming (materials)
- Dyalog '09 C06: Source Code Management using SALT and SubVersion (part I) (materials)
- Dyalog '09 C09: Source Code Management using SALT and SubVersion (part II)
- Dyalog '10 TU3: User Commands in Dyalog APL
- Dyalog '11 C01: Introduction to Object-Oriented Programming (materials)
- Dyalog '11 C06: Windows Presentation Foundation (materials) (with Michael Hughes)
- Dyalog '11 C07: Productivity Tools for Dyalog Users (materials)
- Dyalog '12 D07: New SALT features and User Commands
- Dyalog '12 C02: User Commands (materials)
- Dyalog '12 C07: Starting a New Application in Dyalog APL (materials) (with Morten Kromberg)
- Dyalog '12 C09: Managing External Data III (materials) (with Gitte Christensen)
- Dyalog '13 D15: User Command Update (slides)
- Dyalog '13 SA03: OO and CC
- Dyalog '13 SP03: User Commands
- Dyalog '14 SA03: Parallel Programming with Futures and Isolates (materials) (with Morten Kromberg)
- Dyalog '14 SP02: The Ins and Outs of Data (SQAPL, XML, JSON, Excel, Syncfusion Data Objects, ZIP files, …) (materials) (with Brian Becker)
- Dyalog '14 TP04: Version 14.0 Language Features in Practice (slides)
- Dyalog '15 D05: User Commands Update (with Adám Brudzewsky)
- Dyalog '15 D10: MiServer UI Controls (slides) (with Adám Brudzewsky)
- Dyalog '16 D04: Tools Group Update (with Brian Becker and Adám Brudzewsky)
- Dyalog '16 TP01: Version 15.0 in Depth
References
- ↑ Rick Procter. Obituary for Daniel Baronet. APL Borealis.
- ↑ Roger Hui. Tribute to Daniel Baronet. DanielBaronet.RIP
- ↑ Stack User "Dennis". Answer in Dyalog APL to Adám Brudzewsky's code golf challenge. Code Golf and Coding Challenges Stack Exchange.
APL community [edit] | |
---|---|
Activities | Conferences ∙ User groups and meetups ∙ Iverson Award ∙ Exercises |
Chat rooms and forums | APL Farm ∙ APL Orchard ∙ APL Wiki |
People | Phil Abrams ∙ Brian Becker ∙ Bob Bernecky ∙ Larry Breed ∙ Charles Brenner ∙ Jim Brown ∙ Adám Brudzewsky ∙ Gitte Christensen ∙ Peter Donnelly ∙ John Earnest ∙ Adin Falkoff ∙ Garth Foster ∙ Lib Gibson ∙ Aaron Hsu ∙ Roger Hui ∙ Ken Iverson ∙ Morten Kromberg ∙ Dick Lathwell ∙ Marshall Lochbaum ∙ Eugene McDonnell ∙ Roger Moore ∙ Trenchard More ∙ Alan Perlis ∙ Raghu Ranganathan ∙ Henry Rich ∙ Al Rose ∙ John Scholes ∙ Ian Sharp ∙ Bob Smith ∙ Geoff Streeter ∙ Joey Tuttle ∙ Arthur Whitney |
Other | APL Trust ∙ APL Quote Quad ∙ Blogs ∙ Books ∙ Case studies ∙ Famous APL users ∙ Humour ∙ Jobs ∙ Merchandise ∙ Papers ∙ Podcasts ∙ TryAPL ∙ Try It Online ∙ Video channels |