From J Wiki
Jump to navigation Jump to search

NYCJUG is the New York City J Users Group.

All interested in J are welcome!


To discuss J, drink beer, etc.

If you're learning a new language, especially one as rich as J, it's valuable to talk about it face-to-face with other people. Even when you know a language well, often, when you explain it to other people, you learn new things about it.

Want to join? Just add yourself to this list and shoot Devon McCormick an email! Also, please consider joining our Meetup.

Meetings: once per month

Where: Gmeet Online Meeting Join by phone ‪(US) +1 937-589-3878‬ PIN: ‪233 448 729‬#

When: 2nd Tuesday of the month

Tuesday, February 8th, 2022, 6:30 pm

Meeting Format

The general format of our meetings is as follows:

Time Subject Description
18:30 - 19:00 Beginner's regatta We cover topics on basic facilities of J
19:00 - 19:30 Show-and-tell Attendees are encouraged to show recent code on which they've been working in order to show off, and to solicit advice and sympathy.
19:30 - 20:00 Advanced topics We look at more advanced features of the language.
20:00 - 20:30 Learning and teaching J We're distilling our own experiences to help others get a handle on J and improve our own knowledge.
20:30 - ? Wrap-up General discussion, what future topics should be, volunteer to present at a meeting.

These broad areas are structured and ordered so that you may arrive or leave earlier or later depending on your particular interests.

Next Meeting: Tuesday, February 8th, 2022 at 6:30 pm.

Gmeet online meeting: Join by phone ‪(US) +1 937-589-3878‬ PIN: ‪233 448 729‬#


Project Description
Interactive Graphing Tool See NYCJUG Meeting Notes for 200809 and 201306
Date Representation See Date Representation
Pascal's Triangle->Sierpinski See Sierpinksi
User-friendly backup script See Backup
User verb metric script? See Verb Metrics


Notes on Past Meetings

Using ISO date format of the meeting date, e.g. 2007-01-19.


Meeting on 2005-01-11:
Initial meeting: group project suggestions, Rosetta Stone

Meeting on 2005-02-08:
Group project, Save Work, persistent data, raising interest in J, language as culture, picture albums, date arithmetic, catalog obverse, CSV files, beginner questions

Meeting on 2005-03-08:
public domain licensing, persistence of information, "Save Work" project, APL/J Rosetta Stone, date conversions, design considerations, learning APL and similar languages

Meeting on 2005-04-12:
Save Work project reports, GUI event-loop, combining GUI with command-line, general organizing principles for learning J

Meeting on 2005-05-10:
indexing help, unit tests, interface design, commenting convention, organizing J tips, Howard Peelle

Meeting on 2005-06-14:
self-defining J, Rosetta Stone, GUI+command-line, Vicki use-case, files most likely to need backup, text into bitmap, Pascal's triangle

Meeting on 2005-07-12:
"Save Work" project, organizing learning materials, J Wiki, big files, packaged tools

Meeting on 2005-09-13:
Disruption, future meeting format, information visualization, regression statistics

Meeting on 2005-10-11:
Meeting organization, use J wiki for website, software design - lessons from Unix philosophy, learning materials, what application packages should J have,


Meeting on 2006-04-11:
Discussed shell, OpenGL, Traveling Salesman, learning J.

Meeting on 2006-07-11:
NYCJUG meeting, Matlab, Reading J


Meeting on 2007-01-09:
NYCJUG meeting, BEST, beginner's laments, introductions to J, Netflix prize, RMSE

Meeting on 2007-02-13:
NYCJUG meeting, 64-bit J, installing applications, parallelism, name shadowing, maths challenge, invoking J

Meeting on 2007-03-13:
Overview of J Wiki introductory material, notation FAQ, linear Diophantine equations

Meeting on 2007-04-10:
NYCJUG meeting; explaining dimensionality, frames, cells, rank; 64-bit J; Netflix Bayesian approach; installation standards; Linux; re-framing efficiency.

Meeting on 2007-05-08:
NYCJUG meeting; how long to learn J?; making logos using "plot"; recursion in J; publicizing J: ICFP, Dr. Dobbs article; efficiency as total time-to-solution; customizing user folders var USERFOLDERS_j_.

Meeting on 2007-11-13:
APL2007 conference report, timings considered harmful for beginners, generalized solver, policy for implementing new release of J


Meeting on 2008-01-08:
trees in APL and J, placing text on a plot, evening out plot of a function, Excel add-ins in J, graphics capability

Meeting on 2008-03-11:
Self-reference for recursion, continuing problems naming symbols and ideas, a start on a "VB Rosetta" project, some ideas for puzzles and challenges, some ideas for a group project.

Meeting on 2008-04-08:
"Porter Stemmer", J-like, Tao of J, conditional probability, readability, "Transitive Closure", interface design, algorithm development

Meeting on 2008-05-13:
Error messages, common beginner questions, statistics and data visualization for schools, ideas from other languages

Meeting on 2008-09-09:
NYCJUG meeting, interactive graphics, competition, promoting J

Meeting on 2008-10-14:
JDB, interactive graphical interface

Meeting on 2008-11-11:
high-dimensional graph, prime numbers, visual explanation, symbolic notation


Meeting on 2009-01-13:
Reading J, talent pool, meteor puzzle, depth-first versus breadth-first, multi-dimensional application of key, various graphics projects, popularity of other data analysis languages.

Meeting on 2009-02-10:
J style, array programming, interactive graphics, array data, statistics teaching.

Meeting on 2009-03-10:
NYCJUG meeting, code simplification, J-like, "point and figure" charting, candlestick charting, built-in documentation, code management, JOD, statistics, probability, inverse cumulative normal distribution, APL film

Meeting on 2009-04-14:
study algorithms, adverb, quicksort, statistical graphics, YouTube

Meeting on 2009-05-12:
bowling scores, terseness as an aid to understanding, check-digits, K, Arthur Whitney, Sapir-Whorf, how notation and language affect thought, SIGAPL.

Meeting on 2009-07-14:
APL2, APL2000, Dyalog, J, K, MicroAPL, Q, compare, information visualization, graphics, application

Meeting on 2009-08-11:
NYCJUG meeting, trees, walk directory tree, advantage of terseness, brevity, BAPLA'09, supercollider, Computer Science education, mathematics

Meeting on 2009-09-08:
newbie, questions, searching, directory tree walk, depth-first versus breadth-first

Meeting on 2009-10-13:
convex hull, DLA, geometry, literate programming, evangelizing J

Meeting on 2009-11-10:
breadth-first, graph traversal, DLA, diffusion-limited aggregation, IDE, development environment, J7

Meeting on 2009-12-10:
J 7.01, GTK, bug reporting, terse code, programming languages, tele-conference


Meeting on 2010-01-12:
dictionary, instant messaging, code collaboration, mathematical proofs by computer

Meeting on 2010-02-09:
vocabulary page, parallel computing, GPU programming, translating from another language

Meeting on 2010-03-09:
parallel processing, problems, introductory material, multi-core, multi-thread, multicore, multithread

Meeting on 2010-04-14:
multi-core programming, graphic presentation, information visualization, BarCamp NYC5, functional languages

Meeting on 2010-05-11:
plot polygon, J 7.01, XML, video for teaching

Meeting on 2010-06-15:
Thinking in J, notation as a tool of thought, example of easy-to-understand PostScript, IDE, emacs, GTK, poker in J, motivation to code

Meeting on 2010-07-13:
Good and bad tutorial examples, backgammon in J, mutex implementation, mutual exclusion using file-locking, algorithm publication, argument for executable algorithmic notation, Tabula for scientific calculations in various units, threads in J, Easter date calculation, parallel programming

Meeting on 2010-08-10:
J 7, beta installation, GTK, parallel programming examples, important algorithms, incremental changes: a poor approach to parallelism

Meeting on 2010-09-07:
APL2010 Berlin, Rant on new features of J 7.01 beta, forecasting competition, video instruction, instruction examples to follow

Meeting on 2010-10-12:
Language Slapdown suggestions, APL2010 Berlin, Windiff replacement, XML handler, where J is mentioned, what new software developers should know

Meeting on 2010-11-09:
Language Slapdown suggestions, solvers, non-linear least squares, strong-typing, example "Hello, World"

Meeting on 2010-12-14:
Beginner requirements, OOTB, Out-of-the-box experience, J7 migration, Language Slapdown final draft, famous computer scientists, role of programming for ideas, notation and thought, array thinking, visualizing J, publicity outside the J community


Meeting on 2011-02-08:
JHS, J-GTK, image-handling, Veeder counter, robust, brittle, debugging, solvers, Levenberg-Marquardt, Crank-Nicolson

Meeting on 2011-03-08:
card game simulation, memory-optimization, XML, open-source, data structures, bowling scores, functional programming acceptance, TIOBE index, dynamic languages

Meeting on 2011-04-12:
good publicity, red or black game, array programing, timing, parallel processing, program granularity, creating HTML in JHS, HTML5, introduction samples

Meeting on 2011-05-10:
NuVoc, dictionary, test cases, OLE, Excel, Android, XML, old wine in new bottles, Glade, GTK

Meeting on 2011-06-14:
Dyalog APL contest, GTK, grid, symbolic versus visual math, motivation to learn, simulation as alternative to symbolic manipulation, GTK graphics example, Life, Ad-hoc example

Meeting on 2011-07-14:
difficulty of programming, programming aptitude indicator, random distributions, calculating in parallel, Glade GTK, functional programming, language for cognition

Meeting on 2011-08-09:
learning strategy, poker, agent-based simulation, functional programming, size of J

Meeting on 2011-09-13:
Notation, functional programming, algorithm implementation, Sugar

Meeting on 2011-10-11:
richness of J, teaching languages, learning to program, smoothing graphs, Bayesian induction, publishing J, tacit versus explicit, quantum thought, personal life of pronouns


Meeting on 2012-02-14:
Coding skill, understanding J code, complexity of alternatives as a selling point, JHS plotting, reading code, end-of-month date generation, Open J, how better to learn, APL in the modern era, APL and J conferences.

Meeting on 2012-03-14:
teaching by example, data analysis of VIX (volatility option), heat-map, poker simulation, advances in gtk graphics for J7, OpenJ, J and APL meetings, visual interface, general learning, general problem-solving

Meeting on 2012-04-11:
Pascal's triangle, webGL 3D, directory trees, fat middle, array solution converted to streaming one, language design, emotional resonance of language decision, moral judgements, new programming languages, learning drill technique

Meeting on 2012-05-08:
beginner's example, process data from website, input prompt, BAPLA APL Moot, traveling-salesman problem set, graphics in J7, teaching eigenvectors, Kinect, 3-D point cloud, language and thought, tryAPL online

Meeting on 2012-06-12:
weighted median, box cut example, simple shape, canonical projection, a-periodic tiles, Javascript as target language, bilingualism's effect on brain, language affects thought, R programming, examples of introduction to programming, game-based learning

Meeting on 2012-07-11:
J Conference 2012 talks, parallel simulation, topology, point-cloud, tacit programming

Meeting on 2012-07-31:
GTK IDE, J labs, formatting text, creating RTF, R example, visualization, synchronous, asynchronous, language survival, translate math into code.

Meeting on 2012-09-11:
Sudoku, statistics, distributions, effect of noise on short-term memory, data chunking, mathematical brain area

Meeting on 2012-10-10:
generating Sudoku, enumerating Sudoku, language learning, board game to learn HTML, web platform

Meeting on 2012-11-13:
tree structure, signed area, generating simple Sudoku N^2, all integer partition, paging with SSD, D3 for web graphics, present documents in print and on web

Meeting on 2012-12-11:
open-source, Hilbert, Kindle, converting text to numeric, table, data input, maze generation, DHTMLX, grid, short-term memory, derive quadratic equation


Meeting on 2013-01-08:
program readability, presenting code, spline, distance between points, analyze sentence, function composition, IDE versus command-line

Meeting on 2013-02-12:
beautiful code, Clojure, Jem, JavaScript, timing C code, physics engine, interactive web, WebGL, literacy, recursion, emacs, ranking levels of J learners, interrupted learning heightens attention

Meeting on 2013-03-12:
Postscript, rolling dice, group-think, functional code, function composition

Meeting on 2013-04-09:
multi-dimensional arrays, Bezier, SVG, functional programming, Qt GUI, language, nouns, verbs, OOP, Object-Oriented Programming

Meeting on 2013-06-11:
tab-delimited table, scientific visualization, diffusion-limited aggregation, 3D interactive scatterplot, finite-state machine, finite-state automata, Raspberry Pi, finding J code

Meeting on 2013-07-09:
ordering files, conjunction/adverb/verb/noun hierarchy, card game simulation, software development estimation, arc consistency, code presentation, javascript, astronomy, Lobster games programming, Harlan GPGPU programming

Meeting on 2013-09-10:
Rabbit constant, golden ratio, Haskell, JDB, JD, database, generalized inverses of probability distributions, JHS (J HTTP Server), file renaming app, Iverson College report, terse code versus verbose code, performance doesn't matter, language matters

Meeting on 2013-11-12:
weighted averages, empty arrays, randomly-generated J phrases, large file processing

Meeting on 2013-12-10:
simple simulation, sophisticated interface, APL in a browser, spawn J process using sockets, why learn Javascript, example of online interactive tool, education for computational thinking, possible signs of the Apocalypse


Meeting on 2014-01-14:
introduction to the hard parts of J, J as a tool of thought, code simplification, code clarity, different directions for implementing user interface in J, coding for children

Meeting on 2014-02-11:
Array14 conference, calculating probabilities for non-standard poker hands, NuVoc project, code is not literature, statistical distributions code wanted, tips on writing a conference paper

Meeting on 2014-03-11:
introduction to J in 5 minutes videos, example of terse versus prolix expression of algorithms, logical proof using J, array-thinking to avoid errors, computer language cognitive tool, parallel processing examples wanted, translate between J and Excel

Meeting on 2014-04-08:
simple problem solved simply in J, J video narration, APL and J in formal proofs, Dijkstra, tools shape thinking, distinct cognitive systems, updating J labs for version 8

Meeting on 2014-05-13:
string replace, file streaming, optimization software, working with large files, innate language instinct, effect of using foreign language on decision, coding in education

Meeting on 2014-06-10:
Fibonacci, J labs, graph theory, error messages, functional programming, keywords

Meeting on 2014-08-05:
Kaggle competition, Higgs boson, J conference 2014, k-NN, k-nearest-neighbors, machine learning

Meeting on 2014-09-09:
Array thinking, display J graphically, camel has two humps

Meeting on 2014-10-14:
array-thinking, code clarity, language as a tool of thought, reading J code, statistics versus computer science, first programming language, learning coding

Meeting on 2014-11-11:
Mandelbrot, wavelets, B-Splines, lazy lists, software quality, IT Hiring Shortage

Meeting on 2014-12-09:
colormap, palette, Matlab, Emscripten version of J, client-side J for browser, automation versus skill, one-letter programming languages


Meeting on 2015-01-13:
Set operations, user input prompt, one-line statements, forward-fill, punchcards, educational software, Java BigDecimal, forensic DNA analysis software

Meeting on 2015-02-10:
Adverb to apply a verb across a large file, project Euler solutions, 7-27 card game simulation revisited, combining mapped-file DB with Jtable spreadsheet, extracting digits of pi, RedMonk programming language rankings

Meeting on 2015-05-12:
Integer partitions, edge detection, graphics debugging


Meeting on 2016-01-12:
Maximum drawdown, genetic algorithms, parallelize J verbs, intuition in programming, sins of programming language design, naked braces

Meeting on 2016-02-09:
Traveling Salesman Problem Using Genetic Algorithms, Corpora and Vector Spaces, Underhanded C Contest, Introduction to Javascript for Financial Analysts, Easy Mean/Median Quantile Creation in Python, regex crosswords


Meeting on 2017-01-10:
Removing trailing zeros from a decimal number, examples of the Schur complement, notes on style by Dan B., Delphi - why won't it die?, The great AI awakening, building Jarvis - an AI to run a home, technical skills gap and what to do about it.


Meeting on 2018-04-10:
Selecting end-of-month dates, Game of Mastermind, Self-organizing maps to solve the Traveling Salesman problem, partial correlation, a programmable programming language.

Meeting on 2018-05-08:
Converting Numbers To and From Character Representation, Words with Letters Typed by Alternating Hands, Getting a List of Words, Categorize Letters by the Hand with Which Each is Typed, Calculating Maximum Drawdown in J, Graphing Drawdown, The Dirichlet Linkage


Meeting on 2019-01-15:
Finding Hex Words, Setting a Random Seed, Basic Idea for Seeding, Comparing Different Methods, Plotting File Sizes, Building the Histogram, Tagging Duplicate Values in a List

Meeting on 2019-05-14:
Five Programming Problems Every Software Engineer Should be Able to Solve in Less than 1 Hour, Convolutional Neural Nets, Finding Locations of J Items, Saving J Nouns in Namespaces to File, Thoughts on Programming Language Design


Meeting on 2020-08-11:
Some suggestions on code structure,

Meeting on 2020-09-08:
Calculate running times of MP3 music files, the "ABCDEFGHIJ" number puzzle, MicroKranen and Binary Decision Diagrams, problems with array-thinking, advantages of a good community.

Meeting on 2020-10-13:
Building an array based on a template with an illustration of phrase dissection; introduction to the new fold conjunction; the expression problem shows a problem that is not addressed well by either a functional approach or an OOP approach; publicity on social media platforms; bad graphs considered harmful?

Meeting on 2020-11-10:
Question about combinations; talks on JOD (J Object Dictionary), J language function composition for Python, finishing up "Fold" equivalents; combinations of a different flavor - interview question; estimating relative areas.

Meeting on 2020-12-08:
Data structures in J; condition number for matrix inversion; sizing directories; new K-like language "O"; the Turing-completeness problem interferes with parallelization; writings of Keith Smillie; visualization considered harmful


Meeting on 2021-01-12:
Testing Simpson integration, embedding video in J labs and some cool math videos from Bob, writing a Taek Tornado to generate random bits from biased sources of randomness,superiority of array expression illustrated, J2RoW (Rest of the World) Rosetta to translate terms J uses to more commonly-understood ones and vice versa.

Meeting on 2021-02-09:
Extending Newton's Method essay to use the current calculus libraries while retaining extended precision, extending the standard textual output of J using SVG, drawing a hexagonal grid, miscellaneous articles on the importance of working memory in programming and scanning brainwaves with graphene tattoos.

Meeting on 2021-03-09:
The agenda conjunction, Co-dfns compiler, porting J source code from C to C++, special combinations get special treatment.

Meeting on 2021-04-13:
Manipulating video time codes, beginning poker, podcast on array computation, the trouble with arrays?

Meeting on 2021-05-11:
Why does selection fail when using a formula? Low poker, comparing complex results across languages, green versus brown languages and Stack Overflow

Meeting on 2021-06-08:
Exploring the "copy" verb "#", benchmarking J, notes from an APLer learning J and some of his utilities, podcast on popularizing a language.

Meeting on 2021-07-13:
Simple J code to copy a directory, complications arising from a change to poker code and how this relates to re-factoring code, the "three consecutive identical digits" problem and various solutions to it, and a study on the effect on brain development of studying mathematics.

Meeting on 2021-08-10:
A Question About Local Versus Global Variables, Local Definitions in a Script, When to use Globals Versus Locals; Filtering Possible Hands, Some Alternatives, An Excellent Solution; All Selected Hands - Solution 1, Checking Results, All Selected Hands - Solution 2, How Solution 2 Works, Solution 2 (Almost) Final Version; Arraycast Podcasts, Learning APL with Neural Networks

Meeting on 2021-09-14:
Looking at Memory Use; Conditional Probabilities in Poker; Using "Agenda" for Conditional Conversion (with an adverb and double rank conjunction); Accessors, Moving J Issues to Github

Meeting on 2021-10-12:
Nub of an Array, Nub Sieve; Large Arrays of Poker Simulation Results, Putting Simulations into a Jd Database, Initial Design Considerations and Pain Points, A Better Database Design, Using the Data, Running Simulations in Parallel; Simulation Versus Calculation, The Peculiarities of Porting J, Seven Most Basic Programming Languages; The APL Revolution, New Efforts

Meeting on 2021-11-09:
Building a GUI in J, example GUI-based password generator, finance and actuarial work in J, HackerRank "Array Manipulation" problem solved easily in J


Meeting on 2022-01-11:
Revisiting the "percentage of flops with a pair" problem, simplifying the code by refactoring, the Stopes function, language use related to tool use, suggestions for terse tweets to describe j

Meeting on 2022-02-08:
The J Playground, Scoring Hole-card Combinations in Omaha, Representative Best and Worst 60 Hole-cards, Generating the Equivalent Sets, Invisible Modifiers, Teaching How to Code is Broken, The Software Industry is Broken, The Case for a Modern Language, Cognitive Load Theory

Meeting on 2022-03-08:
Counting things in order (introduction to "key" adverb /.), genetic algorithms, traveling salesman problem, hackerRank solutions, beauty of J, beauty of array programming, Only Writing Programming Languages, do not write a programming language, Limitations of Human Memory

Meeting on 2022-04-12:
Factor analysis on Omaha hole-cards

Meeting on 2022-05-10:
Extended precision square roots, parsing text for recipes, batting averages, organizing multi-thread execution with mutex

Meeting on 2022-07-12:
Understanding shift direction, multi-threaded photo-flipping, multi-threaded code, avoid duplicate execution, thinking in an array language

Meeting on 2022-08-09:
Linking code to run on a browser, new multi-threading example, the fat middle, criticisms of J

Meeting on 2022-09-13: