# Difference between revisions of "Roger Hui"

m (Text replacement - "Category:People" to "Category:PeopleCategory:Jsoftware employees") |
|||

(16 intermediate revisions by 4 users not shown) | |||

Line 1: | Line 1: | ||

[[File:Roger.jpg|thumb|right|At [[Dyalog '18]]]] | [[File:Roger.jpg|thumb|right|At [[Dyalog '18]]]] | ||

− | '''Roger Kwok Wah Hui''' ( | + | '''Roger Kwok Wah Hui''' (December 29, 1953 - October 16, 2021<ref name=death>[[Eric Iverson]]. [http://www.jsoftware.com/pipermail/programming/2021-October/059091.html Roger Hui - 1953 - 2021]. [[Jsoftware]] programming forum. 2021-10-17.</ref>) was a computer scientist and co-developer of the programming language [[J]], and later [[Dyalog APL]]. He ran and maintained the [[Jsoftware]] website. |

+ | __TOC__ | ||

+ | [[File:RH.jpg|thumb|left|Roger Hui's Iverson Award]] | ||

+ | == History == | ||

+ | Hui's work was described at the APL85 conference in a paper, "DESIGN: A Financial Modelling System", written jointly with his supervisor, Fred Appleyard. The basic objects in the system were in "Direct Definition" ([[Ken Iverson|Iverson]], 1976, 1980), and [[Adin Falkoff|Falkoff]] and Iverson's The Design of APL was cited. Hui left Alberta Energy shortly after being promoted to a non-APL and non-programming position, and was out of work, and had no access to computers, from September 1985 to April 1986. This gave him plenty of time for intense study of Iverson's Rationalized APL (1983) and [[A Dictionary of APL|A Dictionary of the APL Language]], as it was then named. In 1996, Hui received the [[Iverson Award]] for his work on the design, implementation, and commercial development of J. | ||

− | Hui's | + | [[File:Screenshot 2021-10-18 at 02-07-15 Hacker News.png|thumb|right|Hacker News honouring Roger Hui with a black bar across the top banner.]] |

− | + | == Death == | |

− | Roger Hui | + | Hui's death was announced by [[Eric Iverson]] on October 16, 2021.<ref name=death/> It was subsequently noted in various media, including [[wikipedia:Hacker News|Hacker News]] (which displayed a black banner in his honour),<ref>Hacker News. [https://news.ycombinator.com/item?id=28898045 Roger hui has died]. 2021-10-17.</ref> [[wikipedia:Reddit|Reddit]],<ref>Reddit. [https://www.reddit.com/r/apljk/comments/qa23td/roger_hui_1953_2021/?utm_source=share&utm_medium=web2x&context=3 Roger Hui (1953 - 2021)]. apljk subreddit. 17 Oct 2021.</ref> Jsoftwares's chat,<ref>Raul Miller. [https://www.jsoftware.com/pipermail/chat/2021-October/008937.html Roger Hui - 1953 - 2021]. Jsoftware chat forum. 2021-10-17.</ref>, and Dyalog news.<ref>Dyalog Ltd. [https://www.dyalog.com/news/148/420/Roger-Hui.htm Roger Hui]. Dyalog news. 2021-10-18.</ref> |

== Publications == | == Publications == | ||

=== APL conferences === | === APL conferences === | ||

− | + | <div style="column-width:40em"> | |

* [[APL85]]: Design: a financial modelling system. With Fred Appleyard. | * [[APL85]]: Design: a financial modelling system. With Fred Appleyard. | ||

* [[APL87]]: [https://www.jsoftware.com/papers/from.htm Some uses of { and }]. | * [[APL87]]: [https://www.jsoftware.com/papers/from.htm Some uses of { and }]. | ||

* [[APL90]]: [https://www.jsoftware.com/papers/J1990.htm APL\?]. With [[Ken Iverson|Kenneth E. Iverson]], [[Eugene McDonnell|E. E. McDonnell]], and [[Arthur Whitney|Arthur T. Whitney]]. | * [[APL90]]: [https://www.jsoftware.com/papers/J1990.htm APL\?]. With [[Ken Iverson|Kenneth E. Iverson]], [[Eugene McDonnell|E. E. McDonnell]], and [[Arthur Whitney|Arthur T. Whitney]]. | ||

− | * [[APL91]]: Gerunds and representations. With [[Bob Bernecky|Robert Bernecky]]. | + | * [[APL91]]: [https://www.snakeisland.com/gerunds.ps Gerunds and representations]. With [[Bob Bernecky|Robert Bernecky]]. |

* [[APL91]]: [https://www.jsoftware.com/papers/TacitDefn.htm Tacit definition]. With [[Ken Iverson|Kenneth E. Iverson]] and [[Eugene McDonnell|Eugene E. McDonnell]]. | * [[APL91]]: [https://www.jsoftware.com/papers/TacitDefn.htm Tacit definition]. With [[Ken Iverson|Kenneth E. Iverson]] and [[Eugene McDonnell|Eugene E. McDonnell]]. | ||

* [[APL94]]: TAGS: trains, agendas, and gerunds. With [[Ken Iverson|Kenneth E. Iverson]]. | * [[APL94]]: TAGS: trains, agendas, and gerunds. With [[Ken Iverson|Kenneth E. Iverson]]. | ||

Line 20: | Line 24: | ||

* [[APL97]]: Mathematical roots of J. With [[Ken Iverson|Kenneth E. Iverson]]. | * [[APL97]]: Mathematical roots of J. With [[Ken Iverson|Kenneth E. Iverson]]. | ||

* [[APL99]]: [https://www.jsoftware.com/papers/sparse.htm Sparse arrays in J]. | * [[APL99]]: [https://www.jsoftware.com/papers/sparse.htm Sparse arrays in J]. | ||

+ | </div> | ||

=== Dyalog user meetings === | === Dyalog user meetings === | ||

− | + | {{Main|Dyalog user meeting}} | |

+ | <div style="column-width:40em"> | ||

* [[Dyalog '08]] 05: [https://dyalog.tv/Dyalog08/?v=k8Wt5sDDzgI Performance Improvements in Dyalog: A Case Study] ([https://www.dyalog.com/uploads/conference/dyalog08/presentations/05_Hui_Performance materials]) | * [[Dyalog '08]] 05: [https://dyalog.tv/Dyalog08/?v=k8Wt5sDDzgI Performance Improvements in Dyalog: A Case Study] ([https://www.dyalog.com/uploads/conference/dyalog08/presentations/05_Hui_Performance materials]) | ||

* [[Dyalog '09]] 15: Complex Numbers Implementation Stories ([https://www.dyalog.com/uploads/conference/dyalog09/presentations/15_Hui_ComplexNumbers.ZIP materials]) | * [[Dyalog '09]] 15: Complex Numbers Implementation Stories ([https://www.dyalog.com/uploads/conference/dyalog09/presentations/15_Hui_ComplexNumbers.ZIP materials]) | ||

Line 43: | Line 49: | ||

* Dyalog '17 D15: TAO – Total Array Ordering ([https://www.dyalog.com/uploads/conference/dyalog17/presentations/D15_TAO_of_Dyalog.zip materials]) (with [[John Scholes]]) | * Dyalog '17 D15: TAO – Total Array Ordering ([https://www.dyalog.com/uploads/conference/dyalog17/presentations/D15_TAO_of_Dyalog.zip materials]) (with [[John Scholes]]) | ||

* [[Dyalog '18]] D14: [https://dyalog.tv/Dyalog18/?v=IOWDkqKbMwk Inverted Tables] ([https://www.dyalog.com/uploads/conference/dyalog18/presentations/D14_Inverted_Tables.zip slides]) | * [[Dyalog '18]] D14: [https://dyalog.tv/Dyalog18/?v=IOWDkqKbMwk Inverted Tables] ([https://www.dyalog.com/uploads/conference/dyalog18/presentations/D14_Inverted_Tables.zip slides]) | ||

+ | * [[Dyalog '20]] D07: [https://dyalog.tv/Dyalog20/?v=GgXS0zpboAM Rational Arithmetic] ([https://www.dyalog.com/uploads/conference/dyalog20/presentations/D07_Rational_Arithmetic.zip materials]) | ||

+ | </div> | ||

+ | |||

+ | === Essays === | ||

+ | <div style="column-width:20em"> | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Hilbert_Matrix Hilbert Matrix] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Covert_Representation Covert Representation] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Extremal_Arguments Extremal Arguments] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Chinese_Remainder_Theorem Chinese Remainder Theorem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Reflexive Reflexive] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Non-Overlapping_Substrings Non-Overlapping Substrings] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Huffman_Coding Huffman Coding] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Multiplicative_Order Multiplicative Order] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Krypto Krypto] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Mertens_Function Mertens Function] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Knight's_Tour Knight's Tour] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Attribute-Value_Processing Attribute-Value Processing] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Capped_Fork Capped Fork] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Bibliography Bibliography] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Substring_Replacement Substring Replacement] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Pascal's_Ladder Pascal's Ladder] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Triangular_Matrix_Inverse Triangular Matrix Inverse] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Semiprimes Semiprimes] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/99_Bottles_of_Beer 99 Bottles of Beer] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Symmetries_of_the_Square Symmetries of the Square] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Quicksort Quicksort] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Bernoulli_Numbers Bernoulli Numbers] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Inverted_Table Inverted Table] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Kakuro Kakuro] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Power_Set Power Set] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/RNG RNG] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Extended_Precision_Functions Extended Precision Functions] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Linear_Recurrences Linear Recurrences] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Roman_Numerals Roman Numerals] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Pascal's_Triangle Pascal's Triangle] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Timestamp_Extension Timestamp Extension] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Complete_Tensor Complete Tensor] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Insert Insert] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/LU_Decomposition LU Decomposition] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Primality_Tests Primality Tests] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Permutation_Index Permutation Index] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Hook_Conjunction? Hook Conjunction?] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Levenshtein_Distance Levenshtein Distance] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Continued_Fractions Continued Fractions] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Partitions Partitions] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Factorings Factorings] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Under Under] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Square_Root Square Root] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Prime_APVs Prime APVs] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/4_Queens_Problem 4 Queens Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Tree_Display Tree Display] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Combinations Combinations] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Minors Minors] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Trains Trains] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Nurikabe Nurikabe] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Negative_Rank Negative Rank] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Cayley's_Theorem Cayley's Theorem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Boxed_Array_Display Boxed Array Display] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Kronecker_Product Kronecker Product] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Order_Statistics Order Statistics] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Memo Memo] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Queens_and_Knights Queens and Knights] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Symmetric_Array Symmetric Array] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Sum_of_a_Bit_Array Sum of a Bit Array] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Bitwise_Functions_on_Characters Bitwise Functions on Characters] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Matrix_Inverse Matrix Inverse] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Large_Exponent_Real_Arithmetic Large Exponent Real Arithmetic] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Ackermann's_Function Ackermann's Function] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Hamming_Number Hamming Number] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/The_Monty_Hall_Problem The Monty Hall Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Mobius_Function Mobius Function] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Sine Sine] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Fibonacci_Sequence Fibonacci Sequence] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Euclidean_Algorithm Euclidean Algorithm] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Chudnovsky_Algorithm Chudnovsky Algorithm] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/From_APL_to_J From APL to J] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Landau's_Function Landau's Function] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Sudoku Sudoku] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/APL's_Birthday APL's Birthday] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Unforgettable_Numbers Unforgettable Numbers] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Newton's_Method Newton's Method] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Inverse_Permutation Inverse Permutation] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/moo moo] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Goldbach_Conjecture Goldbach Conjecture] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Index_in_Nub Index in Nub] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Incunabulum Incunabulum] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Self-Upgrading_Permutations Self-Upgrading Permutations] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Birthday_Problem Birthday Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Tolerant_Comparison Tolerant Comparison] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Vier_Neun Vier Neun] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/QR_Decomposition QR Decomposition] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Do_While Do While] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Determinant Determinant] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Set_Game Set Game] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/9_Queens_Problem 9 Queens Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/The_TAO_of_J The TAO of J] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Repeated_Squaring Repeated Squaring] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Linear_Congruential_Generator Linear Congruential Generator] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Block_Matrix_Inverse Block Matrix Inverse] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Compositions Compositions] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Word_Formation_on_Lines Word Formation on Lines] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Normal_CDF Normal CDF] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Progressive_Index-Of Progressive Index-Of] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Binary_GCD_Algorithm Binary GCD Algorithm] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Combination_Sums Combination Sums] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Sort_Times Sort Times] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Histogram Histogram] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Chi_Squared_CDF Chi Squared CDF] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Indeterminate Indeterminate] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Permutations Permutations] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Number_in_Words Number in Words] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Josephus_Problem Josephus Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Tree_Sum Tree Sum] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Fibonacci_Sums Fibonacci Sums] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Combination_Index Combination Index] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Boolean_Array_Size Boolean Array Size] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/N_Queens_Problem N Queens Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Self-Downgrading_Permutations Self-Downgrading Permutations] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Tower_of_Hanoi Tower of Hanoi] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Gray_Code Gray Code] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Next_Binary_String Next Binary String] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Egyptian_Fraction Egyptian Fraction] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Parentheses_Matching Parentheses Matching] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Euler's_Identity Euler's Identity] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Odometer Odometer] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Collatz_Conjecture Collatz Conjecture] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Cholesky_Decomposition Cholesky Decomposition] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Extended_H Extended H] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Minimal_Spanning_Tree Minimal Spanning Tree] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/KenKen KenKen] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Stirling's_Approximation Stirling's Approximation] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Stirling_Numbers Stirling Numbers] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/IEEE_Floating-Point_Numbers IEEE Floating-Point Numbers] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/2^64 2^64] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/The_Ball_Clock_Problem The Ball Clock Problem] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Totient_Function Totient Function] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/t-Distribution_CDF t-Distribution CDF] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Fibonacci_Index Fibonacci Index] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Bisection_Method Bisection Method] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Key Key] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/English_Grammar English Grammar] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Roll_on_BIGINTs Roll on BIGINTs] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Divisors Divisors] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Sorting_versus_Grading Sorting versus Grading] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Scalars Scalars] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/In-Place_Operations In-Place Operations] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Gaussian_Integers Gaussian Integers] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Primes_Less_Than_n Primes Less Than n] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Text_Formatting Text Formatting] | ||

+ | * [https://code.jsoftware.com/wiki/Essays/Transpose Transpose] | ||

+ | </div> | ||

=== Other talks === | === Other talks === | ||

+ | * Functional Conf 2016: [https://www.youtube.com/watch?v=e0rywC7-i0U&list=PL9Z-JgiTsOYTdi91N_DlcpWqkCYvMrhA4&index=8 A Tour de Force of APL in 16 Expressions] | ||

* Functional Conf 2017: [https://www.youtube.com/watch?v=EJONZpNA81s Tests, Derivations, Proofs] | * Functional Conf 2017: [https://www.youtube.com/watch?v=EJONZpNA81s Tests, Derivations, Proofs] | ||

+ | * HOPL IV: [https://www.pldi21.org/prerecorded_hopl.2.html APL Since 1978] ([https://dl.acm.org/doi/pdf/10.1145/3386319 paper]) | ||

== External links == | == External links == | ||

Line 50: | Line 209: | ||

* [[wikipedia:Roger Hui|Roger Hui]] | * [[wikipedia:Roger Hui|Roger Hui]] | ||

* [https://www.jsoftware.com/ Jsoftware website] | * [https://www.jsoftware.com/ Jsoftware website] | ||

+ | * [https://dl.acm.org/profile/81100593990 ACM Digital Library] | ||

+ | * [https://rogerhui.rip Memorial website] | ||

+ | * [https://www.dyalog.com/blog/author/roger/ Dyalog blog posts by Roger Hui] | ||

+ | * [https://forums.dyalog.com/search.php?author_id=423&sr=posts Dyalog Forum posts by Roger Hui] | ||

+ | == References == | ||

+ | <references /> | ||

{{APL community}}{{DEFAULTSORT:Hui}}[[Category:People]][[Category:Jsoftware employees]][[Category:Dyalog Ltd. employees]][[Category:I.P. Sharp Associates employees]][[Category:Designers]][[Category:Executives]][[Category:Implementers]] | {{APL community}}{{DEFAULTSORT:Hui}}[[Category:People]][[Category:Jsoftware employees]][[Category:Dyalog Ltd. employees]][[Category:I.P. Sharp Associates employees]][[Category:Designers]][[Category:Executives]][[Category:Implementers]] |

## Latest revision as of 11:40, 3 November 2021

**Roger Kwok Wah Hui** (December 29, 1953 - October 16, 2021^{[1]}) was a computer scientist and co-developer of the programming language J, and later Dyalog APL. He ran and maintained the Jsoftware website.

## Contents

## History

Hui's work was described at the APL85 conference in a paper, "DESIGN: A Financial Modelling System", written jointly with his supervisor, Fred Appleyard. The basic objects in the system were in "Direct Definition" (Iverson, 1976, 1980), and Falkoff and Iverson's The Design of APL was cited. Hui left Alberta Energy shortly after being promoted to a non-APL and non-programming position, and was out of work, and had no access to computers, from September 1985 to April 1986. This gave him plenty of time for intense study of Iverson's Rationalized APL (1983) and A Dictionary of the APL Language, as it was then named. In 1996, Hui received the Iverson Award for his work on the design, implementation, and commercial development of J.

## Death

Hui's death was announced by Eric Iverson on October 16, 2021.^{[1]} It was subsequently noted in various media, including Hacker News (which displayed a black banner in his honour),^{[2]} Reddit,^{[3]} Jsoftwares's chat,^{[4]}, and Dyalog news.^{[5]}

## Publications

### APL conferences

- APL85: Design: a financial modelling system. With Fred Appleyard.
- APL87: Some uses of { and }.
- APL90: APL\?. With Kenneth E. Iverson, E. E. McDonnell, and Arthur T. Whitney.
- APL91: Gerunds and representations. With Robert Bernecky.
- APL91: Tacit definition. With Kenneth E. Iverson and Eugene E. McDonnell.
- APL94: TAGS: trains, agendas, and gerunds. With Kenneth E. Iverson.
- APL95: Rank and uniformity.
- APL95: Representations of recursion. With Kenneth E. Iverson.
- APL97: Mathematical roots of J. With Kenneth E. Iverson.
- APL99: Sparse arrays in J.

### Dyalog user meetings

*Main article: Dyalog user meeting*

- Dyalog '08 05: Performance Improvements in Dyalog: A Case Study (materials)
- Dyalog '09 15: Complex Numbers Implementation Stories (materials)
- Dyalog '09 26: The Rank Operator (materials)
- Dyalog '10 P07: Hashing for Tolerant Index-Of (materials)
- Dyalog '11 D04: Introducing the Dyalog '11 Conference Edition (with John Scholes)
- Dyalog '11 D05: Rational Numbers (materials)
- Dyalog '11 D18: What is Functional Programming? (with John Scholes)
- Dyalog '12 D04: Potential Version 14.0 Language Features (materials) (with John Scholes)
- Dyalog '12 D08: Dyalog APL Benchmarks and Performance Enhancements (materials)
- Dyalog '13 D08: Rank and Friends (materials)
- Dyalog '13 D11: Primitive Performance (slides, materials) (with Morten Kromberg)
- Dyalog '14 D06: The Tuning Pipeline (materials) (with Kimmo Kekäläinen)
- Dyalog '15 D04: Core Performance (slides_JF, materials_RH) (with Jay Foad)
- Dyalog '15 D16: Future Operator Proposals: Cut, Under, Merge (materials) (with John Scholes)
- Dyalog '16 D06: New Primitive Functions and Operators (materials, demo script) (with John Scholes)
- Dyalog '16 D08: Performance: The Neverending Story (slides_JF, slides_RH) (with Jay Foad)
- Dyalog '17 D07: Index-Of on Multiple Floats (materials)
- Dyalog '17 D10: Tolerant Unique (materials)
- Dyalog '17 D15: TAO – Total Array Ordering (materials) (with John Scholes)
- Dyalog '18 D14: Inverted Tables (slides)
- Dyalog '20 D07: Rational Arithmetic (materials)

### Essays

- Hilbert Matrix
- Covert Representation
- Extremal Arguments
- Chinese Remainder Theorem
- Reflexive
- Non-Overlapping Substrings
- Huffman Coding
- Multiplicative Order
- Krypto
- Mertens Function
- Knight's Tour
- Attribute-Value Processing
- Capped Fork
- Bibliography
- Substring Replacement
- Pascal's Ladder
- Triangular Matrix Inverse
- Semiprimes
- 99 Bottles of Beer
- Symmetries of the Square
- Quicksort
- Bernoulli Numbers
- Inverted Table
- Kakuro
- Power Set
- RNG
- Extended Precision Functions
- Linear Recurrences
- Roman Numerals
- Pascal's Triangle
- Timestamp Extension
- Complete Tensor
- Insert
- LU Decomposition
- Primality Tests
- Permutation Index
- Hook Conjunction?
- Levenshtein Distance
- Continued Fractions
- Partitions
- Factorings
- Under
- Square Root
- Prime APVs
- 4 Queens Problem
- Tree Display
- Combinations
- Minors
- Trains
- Nurikabe
- Negative Rank
- Cayley's Theorem
- Boxed Array Display
- Kronecker Product
- Order Statistics
- Memo
- Queens and Knights
- Symmetric Array
- Sum of a Bit Array
- Bitwise Functions on Characters
- Matrix Inverse
- Large Exponent Real Arithmetic
- Ackermann's Function
- Hamming Number
- The Monty Hall Problem
- Mobius Function
- Sine
- Fibonacci Sequence
- Euclidean Algorithm
- Chudnovsky Algorithm
- From APL to J
- Landau's Function
- Sudoku
- APL's Birthday
- Unforgettable Numbers
- Newton's Method
- Inverse Permutation
- moo
- Goldbach Conjecture
- Index in Nub
- Incunabulum
- Self-Upgrading Permutations
- Birthday Problem
- Tolerant Comparison
- Vier Neun
- QR Decomposition
- Do While
- Determinant
- Set Game
- 9 Queens Problem
- The TAO of J
- Repeated Squaring
- Linear Congruential Generator
- Block Matrix Inverse
- Compositions
- Word Formation on Lines
- Normal CDF
- Progressive Index-Of
- Binary GCD Algorithm
- Combination Sums
- Sort Times
- Histogram
- Chi Squared CDF
- Indeterminate
- Permutations
- Number in Words
- Josephus Problem
- Tree Sum
- Fibonacci Sums
- Combination Index
- Boolean Array Size
- N Queens Problem
- Self-Downgrading Permutations
- Tower of Hanoi
- Gray Code
- Next Binary String
- Egyptian Fraction
- Parentheses Matching
- Euler's Identity
- Odometer
- Collatz Conjecture
- Cholesky Decomposition
- Extended H
- Minimal Spanning Tree
- KenKen
- Stirling's Approximation
- Stirling Numbers
- IEEE Floating-Point Numbers
- 2^64
- The Ball Clock Problem
- Totient Function
- t-Distribution CDF
- Fibonacci Index
- Bisection Method
- Key
- English Grammar
- Roll on BIGINTs
- Divisors
- Sorting versus Grading
- Scalars
- In-Place Operations
- Gaussian Integers
- Primes Less Than n
- Text Formatting
- Transpose

### Other talks

- Functional Conf 2016: A Tour de Force of APL in 16 Expressions
- Functional Conf 2017: Tests, Derivations, Proofs
- HOPL IV: APL Since 1978 (paper)

## External links

- Roger Hui
- Jsoftware website
- ACM Digital Library
- Memorial website
- Dyalog blog posts by Roger Hui
- Dyalog Forum posts by Roger Hui

## References

- ↑
^{1.0}^{1.1}Eric Iverson. Roger Hui - 1953 - 2021. Jsoftware programming forum. 2021-10-17. - ↑ Hacker News. Roger hui has died. 2021-10-17.
- ↑ Reddit. Roger Hui (1953 - 2021). apljk subreddit. 17 Oct 2021.
- ↑ Raul Miller. Roger Hui - 1953 - 2021. Jsoftware chat forum. 2021-10-17.
- ↑ Dyalog Ltd. Roger Hui. Dyalog news. 2021-10-18.