4,494
edits
mNo edit summary |
m (Text replacement - "<source" to "<syntaxhighlight") Tags: Mobile edit Mobile web edit |
||
(5 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:Dyalog Ltd. employees]] |