Roger Hui: Difference between revisions

Jump to navigation Jump to search
13,396 bytes added ,  11:40, 3 November 2021
(18 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''' (born 1953) is a computer scientist and co-developer of the programming language [[J]], and later [[Dyalog APL]].
'''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 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.
[[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 runs and maintains the Jsoftware website.
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]


{{APL community}}{{DEFAULTSORT:Hui}}[[Category:People]][[Category:I.P. Sharp Associates employees]][[Category:Designers]][[Category:Executives]][[Category:Implementers]]
== 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]]

Navigation menu