From J Wiki
< Vocabulary(Redirected from Addons)
Jump to navigation Jump to search

Keywords used in describing these programs:

audio   calculus   conversions   database   debug   files   formatting   graphics   interface   key-value-pairs   linear-algebra   matrix   miscverbs   numerics   sampleapp   scientific   sysadmin

Installing addons

Pacman installs and upgrades addons--as well as the J Engine, GUIs, and other aspects of an installation.

Jqt (Tools|Package Manager) and JHS (ide|pacman) provide graphics interfaces to most of the pacman functionality. The Pacman package, normally installed with the J system, provides the same functionality without a GUI:

install 'math/calculus' will install the calculus addon (again, if it's already there).

Addon program descriptions

Listed links are to their original locations. All are now also linked from Git_Repositories, some solely, via the src button.

Package Description Keywords
api/expat (src) Interface to libexpat, a fast-streaming XML parser.

Only on github. See readme.txt there.

api/gles (src) OpenGL 4.2 and OpenGL ES 3.1 API definitions. graphics
api/jc (src) C-library interface (streams/fds/system).

Only on github.

api/jni (src) Java Native Interface.

Contributed by Bill Lam

api/lapacke (src) The LAPACKE C-Interface to [www.netlib.org/lapack/lapacke.html LAPACK].

LAPACK version 3.X is a comprehensive Fortran library. Does linear-lgebra operations, including matrix inversions, least-squares solutions to sets of linear equations, eigenvector analysis, singular-value decomposition, etc. A comprehensive and reputable package that has found extensive use in the scientific community.

Binary for Linux: install liblapacke (or similar) from your distribution repository.
For 64-bit Windows, it needs 6 run-time dll files--
From libraries: libblas.dll, liblapack.dll, liblapacke.dll.
From mingw: libgcc_s_sjlj-1.dll, libgfortran-3.dll, libquadmath-0.dll.

See also math/lapack (src).

api/ncurses (src) Enables writing text-based user interfaces (TUI) in a terminal-independent manner.

See ncurses. Also works with public-domain version PDCURSES.

api/ncurses5 (src) CRT screen-handling and optimization package.

See ncurses5. To install shared library or dll--
linux: (debian) sudo aptitude install libncurses5, or libncursesw5 for unicode.
win32: download pre-compiled binary from ncurses.

api/python3 (src) Interface for python3 use of J shared library. interface
api/sl4a (src) Interface to a scripting environment for Android.

Enables use of scripts written in Python, Perl, Ruby, Lua, Java (BeanShell), JavaScript (Rhino), and other languages.

  • Not found!
arc/zip (src) Zip-file utilities based on zlib 1.2.3 and minizip libraries.

Interface is similar to the files package. Includes Win32, Linux, and Mac OS X universal binaries. See Help/Primer/Files.

Copyright 2006-2007 (C) Oleg Kobchenko

arc/ziptrees (src) Zips and unzips directory trees to and from zip files.

Uses the the arc/zip addon.

Contributed by Ric Sherlock

arc/zlib (src) Utilities for zlib de-/compression routines.
convert/jiconv (src) Auto-detection and conversion between many character encodings. See Iconv. conversions
convert/json (src) Encoder/decoder for JavaScript Object Notation.

See JSON. Only at github.

convert/misc (src) Character conversions--

ascii85.ijs: to/from ascii85 representations
base64.ijs: to/from base64 representations
md5.ijs: uses MD5 Message-Digest Algorithm of RSA Data Security, Inc.
unicode.ijs: Unicode utilities
vig.ijs: Vigenère cipher with optional encoding

convert/pjson (src) Another encoder/decoder for JavaScript Object Notation.


data/ddmysql (src) Accesses a MySQL server.

Uses native C API and the JDD data-driver interfaces, such as ddcon and ddfet. Requires MySQL client library or Connector/C.

For Linux, install libmysqlclient (or similar) from your distribution repository, or download from MySQL.

See JDD for help.

data/ddsqlite (src) Accesses a SQLite database.

Uses C API and the data-driver (JDD) interfaces, such as ddcon and ddfet. Requires SQLite 3.6.0 or newer.

See JDD for help. See readme.txt on github for shared-library installation.

data/jd (src) A commercial database product from Jsoftware.

Although similar in terminology and features to MySQL, Oracle, DB2, SQL Server, and others, it is closer in spirit and design to Kx's kdb, Jsoftware's free JDB, and old APL financial systems on mainframes in the 70s and 80s.

The key difference between Jd and most other systems is that Jd comes with a fully integrated and mature programming language. Jd is implemented in J and lives openly and dynamically in the J execution and development environment. Jd is a natural extension of J and the full power of J is available to the Jd database application developer. The integration is not just available to you, it is unabashedly pushed to you for exploitation.

Jd is a columnar (column-oriented) RDBMS.

Jd is particularly suited to analytics. It works well with large tables (100s of millions of rows), multiple tables connected by complex joins, structured data, numerical data, and complex queries and aggregations.

data/jfiles (src) Definitions for the J component-file and keyed-file systems.

A keyed file is a J component-file in which data are accessed using keywords.

data/jmf (src) J Memory Mapped File operations. files
data/odbc (src) Accesses database using ODBC interface. database
data/sqlite (src) Enables direct access to SQLite databases.

See Overview.

data/sqltable (src) High-level interface for accessing SQL database tables.

Accesses a database without low-level knowledge of the odbc interface.

This package is the result of consultation work done for Anssi Seppälä. Significant changes were made in data/odbc addon to support this package. This work is released to the public by the request and permission of Anssi Seppälä. Thank you, Anssi.

debug/dissect (src) A visual debugger for individual J sentences.

Described at [[Vocabulary/Dissect|Dissect}}.

debug/jig (src) Detailed data display.

Jig displays an interactive-graphics window that shows the shape, type, and other properties of nouns. Jig runs in the jqt environment and requires the full version of the QT environment.

debug/lint (src) Static program analyzer to find errors before execution.

Described at lint.

debug/tte (src) An adverb to "explicate" tacit verbs by generating readable explicit definitions. debug
demos/coins (src) This is a sample J project based on the coins demo.

Only at github.

demos/isigraph (src) Isigraph example scripts.

Each script can be run by itself. First enter:

  • [missing command!]

Many of these examples (in particular, the ifs examples) are based on work by Clifford Reiter.

demos/publish (src) This is a sample J project using Publish to format text. formatting sampapp
demos/qtdemo (src) Simple demos for qt interface. graphics
demos/wd (src) wd demos using qt interface and jandroid. graphics
demos/wdplot (src) Plot demos using wd emulation. graphics
docs/docs (src) J Help Files.
docs/joxygen (src) Generates html documentation from in-script comments.

Inspired by Doxygen and Roxygen.

Contributed by Ric Sherlock & Chris Burke

finance/actuarial (src) Various actuarial functions.
finance/interest (src) Various compound-interest functions.
format/datefmt (src) Various date-formatting functions. formatting
format/printf (src) Verbs and adverbs for formatted printing in the manner of C's printf and sprintf. formatting
format/publish (src) Generates a PDF report from source in plain text files.

Uses an html-like markup language which supports calling J expressions. For example, it can read in data from various sources. Apart from this, reports can be customized without knowledge of J.

format/sbox (src) Correct display of boxed nouns containing Unicode glyphs.

Verb sbox loads in locale 'z'.

format/zulu (src) String-conversion verbs loading in locale 'z'.

An addon plus a sandbox of sample data in locale 'zulu'. Converts consistently between 4 supported forms of stringlist: boxed; LF-separated; open; matrix.

format/zulu/zulu-bare (src) String-conversion verbs loading in locale 'z'.

Addon zulu-bare is a cutdown version of addon zulu.

format/zulu/zulu-lite (src) String-conversion verbs loading in locale 'z'.

Addon zulu-lite is a cut-down version of the addon zulu.

games/2048 (src) Implementation of the 2048 game.

An example of how to implement equivalent user interfaces for different environments. User interfaces available for various J environments currently include:

  • jconsole, jQt

Author: Ric Sherlock

games/minesweeper (src) An example of how to implement equivalent user interfaces for different environments.

User interfaces available for various J environments currently include:

  • jconsole, jQt

Authors: Ric Sherlock, Bill Lam, and Raul Miller.

games/nurikabe (src) Nurikabe puzzle. See Essays/Nurikabe. games
games/pousse (src) A 2-person game, played with markers on an N-by-N board.

See doc.ijs at github.

Submitted by Iverson Software.

games/solitaire (src) Standard Solitaire one-player card game.

Only at github.

Created by: Ken Cramer

general/gdirtrees (src) Copies and deletes directory trees.

Copyright 2008 (C) Ric Sherlock

general/dirutils/general/dirutils (src) Directory utilities in addition to those in dir.ijs.

Includes test for existence of directory, creation of all non-existing directories in a path.

Contributed by Ric Sherlock

general/inifiles (src) Reads/writes one (or more) setup keys from/to files in INI format.

The INI file sources can be files stored on disk, or a string read from a database or zip file. Uses regex functionality built into J to parse INI formats, so is not dependent on Windows API.

Copyright 2008 (C) Ric Sherlock

general/jod (src) JOD (J Object Dictionary) is a J programming tool.

A word-oriented database for all types of J objects. JOD supports linked-dictionary databases and provides tools for documenting and testing J code.

J 7.0x/8.0x JOD requires the (data/jfiles) addon. Prior versions of J make (jfiles) available from system scripts.

If you install JOD, it is highly recommended that you install the related addon JODDOCUMENT. JODDOCUMENT installs detailed PDF documentation for JOD.

For more information, see the JOD wiki pages (Info Button), and run the lab "JOD lab JOD Introduction"; JOD labs are under the General lab category. If you do not see JOD labs listed on the Lab menus, use the Lab browse button to access: [addons/general/jod/jodlabs|jodlabs].

More information is available at: The-jod-page.

general/joddocument (src) Documents the JOD system as jod.pdf.

Also see the JOD wiki pages (Info Button) or visit The JOD Page at: The-jod-page.

LaTeX document source is available on GitHub at: joddoc.

--John Baker bakerjd99@gmail.com

general/jodsource (src) Serialized dictionary dump scripts: joddev, jod, utils.

These dump scripts contain all the code, test cases, build scripts, and documentation used to develop and maintain JOD and related systems.

Dump scripts are large J scripts that load dictionary objects into JOD dictionaries when run. JOD system dictionaries are good examples of how JOD can be used to build complex J systems.

J 7.0x/8.0x JOD requires the (data/jfiles) addon. Prior versions of J make (jfiles) available from system scripts.

JOD source dictionaries can be set up in two ways:

1) Run the J script: jodsourcesetup. This is the recommended method, and can take a minute or so to run.

2) Run the JOD lab "JOD Source Code Dump Scripts." JOD labs are in the (General) lab category. If you do not see JOD labs listed on the Lab menus, use the Lab browse button to access: jodlabs.

More information is available at: The-jod-page.

general/misc (src) A grab-bag of utilities--

bigfiles.ijs, clippaste.ijs, evolute.ijs, fndef.ijs: Uses a more literate style
fndisplay.ijs: Displays hooks, forks, and other syntax elements
font.ijs, format.ijs, guid.ijs: Creates guids in various formats
inverted.ijs: See [[Essays/Inverted_Table}}
jdll.ijs: ??
numeric.ijs: Various numeric utilities
pack.ijs: Package utilities
parts.ijs: Partition functions
prompt.ijs, test_bigfiles.ijs: data=.bixread f;start0,start1[,len[,dirflag}}: Indexed read
test_clippaste.ijs: Test script for clippaste.ijs
trace.ijs: Execution trace utilities
validate.ijs: Data-validation functions

general/primitives/general/primitives (src) Offers a more literate form of J, using words for the J primitives.

We call these words "alpha primitives" since they use an alphabetic form, rather than a graphic or inflected graphic, to represent them. Offers options for the form of the words used, and verbs to convert a script in alpha form to a script in J primitives, so there will be no execution-time penalty.

general/unittest (src) Implements a unit-test framework.

Copyright 2008-2009 (C) Oleg Kobchenko

graphics/afm (src) Adobe Font Metrics. graphics
graphics/bmp (src) Utilities for *.bmp bitmap files. graphics
graphics/cairo (src) Vector-based Cairographics interface and gl2 emulation. graphics
graphics/color (src) Color tables and related scripts. graphics
graphics/d3 (src) D3 interface verbs written for JHS.

D3.js ("Data-Driven Documents") is a free JavaScript library to display digital data in graphic, dynamic forms. Described at D3.

graphics/fvj4 (src) Exercises in producing visual effects.

Scripts for use with Cliff Reiter's book, Fractals, Visualization and J, 4th edition, to--
plot simple polygons; work with raster arrays; create POV-Ray scenes; view automata; and execute the Game of Life in color.

graphics/gl2 (src) Base class for OpenGL 2 commands. graphics
graphics/gnuplot (src) Creates Gnuplot graphics from data in J.

This works with Gnuplot V4.0 or later, and may work with earlier versions.

Original script contributed by L. Fraser Jackson.

graphics/graph (src) 2D graphing. graphics
graphics/graphviz (src) Graphical Visualization.

Based on Graphviz from graphviz.org.

Copyright 2006 (C) Oleg Kobchenko

graphics/jpeg (src) Utilities for processing *.jpg files. graphics
graphics/pdfdraw (src) Drawing to a PDF file or a Publish JPF file.

Demos included.

graphics/plot (src) 2D plotting. graphics
graphics/png (src) Utilities for processing *.png files. graphics
graphics/pplatimg (src) Implementations for Windows, Linux, and Mac OS X.

Supports BMP, GIF, JPEG, PNG, TIFF, Exif, ICO, WMF, and EMF formats where available.

Returns pixel matrix in ARGB (Alpha most significant) integer format. Expects ARGB, or triples of RGB in any axis of rank-3 array.

Good for glpixels. Uses GDI+, Core Graphics (Quartz), and the gdk-pixbuf Library from GTK+.

Based on Oleg Kobchenko's [[Addons/media/platimg|media/platimg}}; read description there.

Ported to 64-bit platforms by Bill Lam.

graphics/print (src) Prints text files. graphics
graphics/treemap/graphics/treemap (src) Displays a treemap in an isigraph control. graphics
graphics/viewmat (src) Displays tables of data graphically. matrix
gui/cobrowser (src) Cobrowse, a famous SmallTalk tool for J. conversions
ide/ja (src) Android Integrated Development Environment.
ide/jhs (src) JHS Integrated Development Environment.
ide/jnet (src) Networking Integrated Development Environment.

Only at github.

ide/qt (src) Qt Development Environment

Manages screen windows. Also makes snapshots to track recent changes in scripts, and optionally in projects, to enable comparisons.

Only at github.

labs/labs (src) Introductory laboratory exercises.
main/regex (src) *[Where is it?]
main/socket (src) *[Where is it?]
main/stdlib (src) *[Where is it?]
main/task (src) *[Where is it?]
math/cal (src) Interface to TABULA, a backfitting scientific calculator.

Critically dependent on math/uu. See math/tabula.

math/calculus (src) Symbolic and numeric differentiation and integration--

derivative, partial derivative, and secant slope. Done by analysis of the verb argument if possible, otherwise by approximation.

math/deoptim (src) Differential Evolution, a form of evolutionary algorithm.

DE finds the global minimum of a multidimensional, multimodal function (i.e. exhibiting more than one minimum) with good probability. It is relatively robust, simple, and fast.

See theory at Differential Evolution.

  • Dead source link: code.

Program by Prof. Rainer M. Storn; contributed by Ric Sherlock.

math/eigenpic (src) Eigenpicture, a diagrammatic representation of a matrix of eigenvectors.

Was at Studio|Demos|eigenpictures, system/examples/graphics/isigraph/eigenpic.ijs

Only at github.

math/fftw (src) FFTW, Fastest Fourier Transform in the West.

Fast C routines for the Discrete Fourier Transform in one or more dimensions. It includes complex, real, and parallel transforms, and can handle arbitrary array sizes efficiently. It consists of a DLL incorporating the FFTW routines, plus supporting J scripts and labs.

FFTW is available under Windows, Mac, and Linux. It and the package are distributed under the terms of the The GNU General Public License.

math/flann (src) Nearest-neighbor-search calculations on arrays.

Includes a default "spatial-tree" method, using an efficient search via a hybrid kd-tree. Also supports Locality Hashing (yet untested).

Only at github.

math/lapack (src) LAPACK Linear-Algebra Package.

Solves systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular-value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations, such as reordering of the Schur factorizations and estimating condition numbers.

Binary for Mac is provided by the veclib framework.

Binary for Linux can come from liblapack3 (or similar) from your distro repository. If available, install libopenblas-base or libatlas3-base, which provides an optimized version of BLAS.

For 64-bit windows, a jlapack64.dll prebuilt by David Hotham is included in this addon. Note that this dll requires a run-time code from msvc.

For Android, run install_jlapack '' to install the shared library.

Reference BLAS implementations may be orders of magnitude slower than optimized implementations.

See also api/lapacke (src).

math/misc (src) Mathematical utilities--

amoeba.ijs: Nelder-Mead multi-dimensional minimization, a.k.a. the amoeba method
bigpi.ijs: Calculate several digits of pi
brent.ijs: Brent's method
build.ijs cheby.ijs: Chebyshev approximation
contfrac.ijs: Continued-fraction utilities
det.ijs: Definitions for determinants
fermat.ijs: Fermat factorization
gamesolver.ijs: Find optimal mixed strategies for 2-person games
gcd.ijs: Calculate Greatest Common Divisor
integer.ijs: Generate various integer sequences
integrat.ijs: Various methods for numeric integration
jacobi.ijs: Jacobi's method for eigenvalues and vectors
legendre.ijs: Legendre symbol and quadratic residues
linear.ijs: Solve linear equations
makemat.ijs: Make various standard matrices
matfacto.ijs: Matrix factorization
mathutil.ijs: Math utilities
matutil.ijs: Matrix utilities
mean.ijs: Various means
numbers.ijs: Various number definitions (Stirling, Euler ...)
odeint.ijs: Solve initial-value ordinary differential equations
pollard.ijs: Pollard factorizations
poly.ijs: Polynomial functions
primutil.ijs: Primes - prime-testing programs
quatern.ijs: Definitions for quaternions
rsa.ijs: Examples of RSA encryption
simplex.ijs: Simplex method
simplexnr.ijs: Simplex method (after Numerical Recipes in C)
spline.ijs: Spline-curve utilities
svd.ijs: Singular-value decomposition
trig.ijs: Trigonometric functions

math/mt (src) Solves some problems in matrix algebra--

transforming, decomposing, reducing to condensed form, factoring, equation solving, function applying, condition-number estimating.
Based mostly on LAPACK algorithms, but doesn't require LAPACK.

math/tabula (src) A backfitting scientific calculator.

Handles calculations with different, but compatible, units of measurement. Essentially a jqt top end to math/cal.

math//uu (src) A user-extendable scientific units-to-units conversion package.

Based on SI units (Système Internationale), with many pre-defined scientific, technical and trade constants. Used heavily by math/cal.

media/imagekit (src) Utilities for accessing 24-bit jpeg, png image files.

The core functions allow reading and writing image files as 3-dimensional J arrays.

The main script provides functions for basic image reading, writing, and viewing through other addons. Another script, html_gallery.ijs, provides functions that create thumbnails and image galleries under program control. Sample scripts and a rotation form script are included.

media/videolabs (src) Multimedia framework for the jqt environment.

Incorporates audio and video into the traditional J labs, retaining the interactive development environment.

This viewer allows access to sections and chapters via drop-down menus, as well as providing user capabilities to make personal notes for sections.

Affordances such as pause, replay, and scan are also provided for the videos. A script file as a text version allows search via nuvoc, and google on the web.

Internet connectivity is required for the first run of the video lab, to allow for video resource downloads to the '~user/videolabs/lab_name' folder.

Personal notes are stored in the '~user/videolabs/lab_name/notes' folder.

media/wav (src) Windows WAV-file creation and play.

Includes samples of creating musical notes in PCM format.

Copyright 2006 (C) Oleg Kobchenko

misc/classroom (src) Automates keeping multiple user profiles synched to a master profile. sysadmin
misc/miscutils (src) A miscellany of functions, mostly tacit--

langexten: basic extensions to J
klutils: functions for 'keyed lists', tables where specified columns are 'key' and the rest are 'data'
utils: a grab-bag of definitions

Only at github.

net/clientserver (src) A simple client server.
net/jcs (src) A messaging client server built on ZeroMQ.
net/websocket (src) A websocket server.

Enables a web browser to make calls to J.

net/zmq (src) An interface to ZeroMQ distributed messaging.

Client server examples and labs are in net/jcs.

profiles/profiles (src) Various options to update the user's config file.

Explorer.ijs prepares to update packages, then loads visualization and debug tools, and sets PF-keys for debugging.

sockets/socklib (src) Communication-socket management.

sockmux creates a socket in its own locale and manages multiple such sockets.
sockconnxactn calls sockmux and mediates transfer of data to an application, using callbacks to tell the application when data has been received.
Suitable for things like email or HTTP transactions.

There is also a file-server.

sockets/sockutils (src) Routines to process transactions using the socket system.
stats/base (src) Basic statistical package.

(Migrated from system/packages/stats.)

statss/distribs (src) Verbs for working with statistical distributions.

Currently covers normal and uniform distributions.

Compiled by Ric Sherlock & Fraser Jackson from many contributions by the J community.

stats/r/stats/r (src) Interfaces to the R statistical package.

R is the most widely used program in the statistical research community and has a vast range of statistical tools. Freely available on all common platforms.

More information at [[Interfaces/R}}.

stats/jserver4r (src) An interface to J from the R statistical package.

See Jserver4R.

stats/rlibrary (src) Support for various R libraries, using the Rserve interface.

See Rserve/Library.

tables/csv (src) Reads/writes/appends comma-separated-value (CSV) files and strings.

Generally better performance than the base library CSV script.

Note: requires loading the tables/dsv addon.

Contributed by Ric Sherlock.

tables/dsv (src) Reads/writes/appends delimiter-separated-value (DSV) files and strings.

Supports user-defined field and string delimiters.

Contributed by Ric Sherlock.

tables/excel (src) Reads/writes/appends Excel files using OLE.

Contributed by Ric Sherlock.

tables/tara (src) Reads and writes files in Excel format.

Supports the biff8 format used in Excel 97/2000/xp/2003. Reads formats used in earlier versions of Excel. Can also work with spreadsheets that support Excel formats, like OpenOffice and Gnumeric. Runs on Windows, Linux, and Mac OS X. Neither MS Excel nor OpenOffice is required to use Tara.

After installation, run lab 'Tara and Excel' for examples of using the system.

Developed and copyrighted by Bill Lam, bbill.lam@gmail.com, but may be used freely, even for commercial purposes.

tables/taraxml (src) Reads files in Microsoft Excel's OpenXML format.

For reading and writing older non-XML Excel formats, see the Tara addon.

Depends on a command-line transformation utility--
Linux: xsltproc should be available in various linux distributions.
Windows: msxsl.exe, which also depends on msxml4 (not msxml6!).

TaraXML was developed by Ric Sherlock and Bill Lam.

types/datetime (src) Converts between day number and dates, including hours.

Custom date/time formatting and date/time arithmetic.

Extends the dates.ijs system script.

web/gethttp (src) Interface to Wget/cURL for retrieving files.

Retrieves or saves file contents via http, https, or ftp protocols.

Learn about SSL/TLS certificates before use, at sslcerts.

You could get a more recent cert file from caextract.