Dan Baronet: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(Add conference presentations)
m (Text replacement - "<source" to "<syntaxhighlight")
Tags: Mobile edit Mobile web edit
(4 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.


While 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.
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 <source lang=APL inline>b⊥b</source> or, as he preferred writing it, <source lang=APL inline>⊥⍨b</source>, counts the number of trailing ones in the Boolean vector <source lang=APL inline>b</source>:<ref>Roger Hui. [http://danielbaronet.rip/ Tribute to Daniel Baronet]. DanielBaronet.RIP</ref>
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>


<source lang=apl inline>⊥</source> ([[Decode]]) performs base conversion. If the left argument is a vector, it performs *mixed* base conversion.
<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>, <source lang=apl inline>b ⊥ a</source> 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>.
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, <source lang=apl inline>⍨</source> ([[Commute]]) causes the function to the left to be called with equal left and right arguments.
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 <source lang=apl inline>⊥⍨b</source> is defined as <source lang=apl inline>b⊥b</source>, 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.
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 <source lang=apl inline>k</source> trailing ones, the <source lang=apl inline>k</source> rightmost products are <source lang=apl inline>1</source> and all others are <source lang=apl inline>0</source>, so their sum is equal to <source lang=apl inline>k</source>.<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>
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 ==
== 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 APLTrainer] ― YouTube videos
* [https://www.youtube.com/user/APLtrainer APLtrainer] ― YouTube videos


=== APL conferences ===
=== APL conferences ===
Line 57: Line 57:
== References ==
== References ==
<references/>
<references/>
{{APL community}}
{{APL community}}{{DEFAULTSORT:Baronet}}[[Category:People]][[Category:Dyalog Ltd. employees]]

Revision as of 22:07, 10 September 2022

Daniel Baronet (far left) at IPSA50 reunion

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

APL conferences

Dyalog user meetings

References

  1. Rick Procter. Obituary for Daniel Baronet. APL Borealis.
  2. Roger Hui. Tribute to Daniel Baronet. DanielBaronet.RIP
  3. 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]
Conferences and activities Advent of CodeAPL CampfireAPL CultivationAPL Meetup (Portuguese) ∙ APL ShowAPL Problem Solving CompetitionAPL ChallengeAPL QuestAPL SeedsArray CastBAA sessionsCode golfDyalog user meetingsDyalog webinarsIverson Award
Chat rooms and forums APL FarmAPL Orchard
User groups APL et J (France) ∙ APL Germany (terminology) ∙ APL ∊ BCN (Spain) ∙ BAA (UK) ∙ FinnAPL (Finland) ∙ SIGAPL (USA) ∙ Tokyo APL/J/K Meetup (Japan)
People Phil AbramsBrian BeckerBob BerneckyLarry BreedCharles BrennerJim BrownAdám BrudzewskyGitte ChristensenPeter DonnellyJohn EarnestAdin FalkoffGarth FosterLib GibsonAaron HsuRoger HuiKen IversonMorten KrombergDick LathwellMarshall LochbaumEugene McDonnellRoger MooreTrenchard MoreAlan PerlisHenry RichAl RoseJohn ScholesIan SharpBob SmithGeoff StreeterArthur Whitney
Other APL Quote QuadAPL WikiBlogsBooksCase studiesFamous APL usersHumourJobsMerchandisePapersPodcastsTryAPLTry It OnlineVideo channels