APL Orchard: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
No edit summary
(bot is MIA)
 
(53 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The APL Orchard is a Stack Exchange chat room dedicated to learn and teach APL, and to ask and answer questions about both golfing and general coding in APL. It began on January 24, 2017, and remains the most active APL chat room today, passing a hundred thousand messages and two hundred users in July, 2020.
[[File:APL Orchard activity.png|thumb|right|Typical activity over a 24-hour period (UTC)]]
'''The APL Orchard''' (website: [https://apl.chat apl.chat]) is a [[wikipedia:Stack Exchange|Stack Exchange]] chat room dedicated to learn and teach APL, and to ask and answer questions about both golfing and general coding in APL. It was opened by [[Adám Brudzewsky]] on January 24, 2017, and has since developed its own community. It was at one point the most active APL chat room, with over 1.000 messages per week. It passed a total of a 100.000 messages by 200 users in July 2020, 150.000 messages by 250 users in February 2021, reached 300 users in August 2021, and 200.000 messages by 350 users in December 2021. Code can be executed directly in the chat room.


=== Live sessions ===
Many participants arrive as complete beginners when it comes to APL, some not even knowing what APL is. Instead, they are attracted by the room being among the most active on Stack Exchange. Other participants are APL veterans. [[Morten Kromberg]] has written a [[blogs|blog]] post about the chat room, focusing on Dyalog Ltd.'s relationship with newcomers and established users.<ref>[[Morten Kromberg]]. [https://www.dyalog.com/blog/2021/02/the-apl-orchard/ The APL Orchard]. [[Dyalog Ltd.|Dyalog]] Blog. 21 February 2021.</ref>
==== APL Cultivation ====
[[File:APL Orchard list.png|thumb|right|Community ad for the APL Orchard on [[Code golf|Code Golf]] Stack Exchange.]]
:{{Main|APL Cultivation}}
== Access ==
From 18 October 2017 until 16 May 2018, [[Adám Brudzewsky]] ran a series of 29 weekly 90-minute study sessions, covering most aspects of basic APL programming. Beginning 28 November 2019, he resumed the series with more in-depth lessons every two weeks.
[[File:Generic avatar.png|thumb|right|The giant avatar]]
==== APL Seeds ====
While anyone can read the ongoing and past conversations, write access requires a Stack Exchange account and either 20 [https://stackoverflow.com/help/whats-reputation Stack Exchange reputation] points or having been granted explicit write access by a moderator. The procedure for getting explicit write access is as follows:
:{{Main|APL Seeds}}
 
On 10 June 2020, [[Marshall Lochbaum]] began running a series on implementing APL. It is scheduled to run every two weeks, on weeks without APL Cultivation chat lessons.
# [https://apl.chat Go to the chat room]
# Click the giant lower-left avatar
# Click "user profile"
# Copy the URL of the page that opens (e.g. "<nowiki>https://chat.stackexchange.com/users/123456/johndoe</nowiki>")
# Email that URL to access@apl.chat
 
Newly joined users always display a generic user name (like user1234567) and avatar until they've had some positive activity.
 
== Features ==
=== Messages ===
In the chat you can use a simplified subset of [[wikipedia:markdown|markdown]] for simple formatting like ''italics'', '''bold''' and <s>strikethrough</s>. You can include [[wikipedia:Easter_egg_(media)|links]] in your messages, or post an image. See [[{{PAGENAME}}#Basic formatting|below]] for details. Users with at least 20 Stack Exchange reputation points can use the [https://chat.stackexchange.com/rooms/1/sandbox Sandbox] room can be used to experiment with the chat system without bothering anyone.
 
To write a message, type into the input field and press <kbd>Enter</kbd> or click the <kbd>send</kbd> button to submit.
 
To post an image which is already hosted online, submit a message consisting exclusively of the URL to the image. Users with sufficient Stack Exchange reputation, see an <kbd>upload…</kbd> button to the right of the <kbd>send</kbd> button, allowing uploading images directly from their computer.
 
A user can be pinged (audio is played on their device) by writing <syntaxhighlight lang=md inline>@</syntaxhighlight>, followed by the username without spaces. On the top-right, to the left of <kbd>all rooms</kbd> you can configure the sound of notifications. If the user hasn't been in the room before, or hasn't been in it for long enough, they might not be pingable. The Stack Exchange Android app allows receiving ping notifications as push notifications regardless of whether you're in the room. There is no way to ping everyone in the room, although <code>@all</code> is used as a non-pinging convention when addressing everyone.
 
To mark a message as potentially valuable for others, hover over it and and click the dark grey star (<span style=color:#222222>★</span>). This will cause it to turns yellow (<span style=color:#f3c200>★</span>) and the message will be visible on the starboard (the right sidebar) for some time. Click again to un-star.
 
To enter APL characters, see the article on [[typing glyphs]].
 
=== Replies ===
 
To reply to a specific message, hover over the message you want to reply to and click <kbd>↳</kbd> in the bottom-right corner of that message. This will insert a code similar to <code>:12345678</code> into the input field. Proceed to type your response and press enter or click <kbd>send</kbd> to send it. Note that replying to a message pings the user who wrote the message. <!-- To reply to users posting from IRC, via the chat bot, it is preferred to use <syntaxhighlight lang=md inline>name:</syntaxhighlight> instead of <code>@name</code>. Note that IRC users do not see edits, deletions, or formatting. -->
 
You can view what a message was a reply to by clicking the reply indicator icon <kbd>↰</kbd> to the left of a message, which will either focus the target message on the screen, or, if the target message is too far in the past, open up the transcript pointing to the target message. Alternatively, hovering over a message will highlight the message it is replying to, and all its replies.
 
=== Basic formatting ===
* '''Italics''': <syntaxhighlight lang=md inline>*italics*</syntaxhighlight> or <syntaxhighlight lang=md inline>_italics_</syntaxhighlight>
* '''Bold''': <syntaxhighlight lang=md inline>**bold**</syntaxhighlight> or <syntaxhighlight lang=md inline>__bold__</syntaxhighlight>
* '''Strike through''': <syntaxhighlight lang=md inline>---strike through---</syntaxhighlight>
* {{Anchor|inline|'''Inline code:'''}} <syntaxhighlight lang=md inline>`inline code`</syntaxhighlight> <ref>Backticks can be escaped with a backslash (<syntaxhighlight lang=md inline>`\`x\`y`</syntaxhighlight> renders as <code>`x`y</code>). Alternatively, <code>```multiple``backticks\```</code>, which also disable <code>\</code>-escaping, can be used, giving <code>multiple``backticks\</code> - use a delimiter with one more backtick than the longest run of backticks in the code. Note that inline code cannot have leading white-space.</ref>
* '''Link''': <syntaxhighlight lang=md inline>https://example.com</syntaxhighlight> or <syntaxhighlight lang=md inline>[display me](https://example.com)</syntaxhighlight> or <syntaxhighlight lang=md inline>[display me](https://example.com "hover text")</syntaxhighlight><ref>Long URLs will be truncated with an ellipsis. A URL that exceeds the maximum message length of 500 characters can still be posted as a raw URL (without markdown): Follow it by <kbd>Shift</kbd>+<kbd>Enter</kbd>.</ref>
* '''Spoiler''': <syntaxhighlight lang=md inline>[spoiler](ftp:// "text hidden until hovered over")</syntaxhighlight>
* '''Tags''': <syntaxhighlight lang=md inline>[tag:code-golf]</syntaxhighlight> or <syntaxhighlight lang=md inline>[meta-tag:discussion]</syntaxhighlight> (tags from Stack Exchange's [[code golf]] community, [https://codegolf.stackexchange.com/ Code Golf & Coding Challenges])
* '''Oneboxes:''' When posted alone in a message, optionally preceded by a reply indicator (<code>:12345678</code>), some links (images, Wikipedia pages, Stack Exchange links, etc.) get "oneboxed", giving them an expanded display with special formatting.
 
=== Multi-line messages ===
It's possible to insert line breaks in messages with <kbd>Shift</kbd>+<kbd>Enter</kbd>. Pasting test containing line breaks into the input field also results in a multi-line message. Multi-line messages do not support normal markdown.
 
If each line of a message is preceded by 4 spaces (which can be inserted automatically with with <kbd>Ctrl</kbd>+<kbd>k</kbd> or with the <kbd>fixed font</kbd> button once multiple lines have been entered), the whole message will appear in monospace font. Note that individual lines cannot be formatted this way, and that there is no support for "code fences" (triple backticks before and after code). Note that multi-line blocks cannot include a reply tag. Instead, one can begin with a leading reply message (which must contain something more than the reply tag), and then post a separate code block.
 
To post a mixture of body text and code blocks, simply post multiple messages in quick succession. The chat will render them as if merged into a single message.
 
=== After posting ===
 
Within 2 minutes of posting a message, it can be edited or deleted. The edit history of a message (unless it has been deleted) is publicly visible ― see "history" when clicking <kbd>▼</kbd> actions on the left of a message.
 
A [[wikipedia:permalink|permalink]] of a message can be gotten by copying the link on the <kbd>▼</kbd> actions panel.
 
The user interface doesn't directly allow replying to oneself. However, there is a work-around: Click <kbd>▼</kbd> actions on the left of your message and copy the permalink. The message number is after the pound sign <code>#</code> in the URL. Copy it and start your message with a colon and the pasted number immediately after, for example <code>:1234568 Really?</code>.
 
In the transcript, the edit history is available for all messages, and this view includes the source of a message. The easiest way to reach it is to middle-click the <kbd>▼</kbd> action menu on the left of the wanted message to open the transcript in a new tab (or click, then click "permalink", if you don't have a middle mouse button), then click <kbd>▼</kbd> and then "history".


==== Virtual meet-ups ====
=== Executing code ===
Beginning 9 June 2020, short informal video meetings have begun on weeks without APL Cultivation. The meetings happen at [https://meet.jit.si/APLOrchard meet.jit.si/APLOrchard] and the password is announced in the APL Orchard immediately before the even begins.
[[TryAPL#Chat box exec|Chat box exec]] is a userscript which evaluates code directly in the message input field.
<!--
<!--
=== Chat bot ===
The APL Orchard features two ways of executing code directly in the chat room, both based on [[TryAPL]]:
 
* [[TryAPL#Chatbot|A chatbot]] which responds to code in posted messages.
* [[TryAPL#Chat box exec|A userscript]] which evaluates code directly in the message input field.
-->
 
== Conventions ==
 
Since a lot of questions are repeated, it is courteous to search for an answer on [[APLcart]] before asking in the APL Orchard.


The room features a chat bot which can evaluate single lines of APL. To use it, prefix a chat message by <source lang=apl inline>⍞←</source>, but note that only the first line of the result will come back. Prefix with <source lang=apl inline>⎕←</source> or <source lang=apl inline>⋄</source> for boxed display and multi-line results. Use <source lang=apl inline>]</source> to prefix user commands (without <source lang=apl inline>⍞←</source> or <source lang=apl inline>⎕←</source> or <source lang=apl inline>⋄</source>), including e.g. <source lang=apl inline>]help ⍣</source> for help on the <source lang=apl inline>⍣</source> glyph etc. Do not use markdown, but fixed-width (4 or more initial spaces, which can be inserted by pressing <kbd>Ctrl</kbd>+<kbd>K</kbd>) is fine. This also ensures proper rendering with monospace font and avoids interpretation of APL symbols as markdown.
Announcements are made with the initial markdown <syntaxhighlight lang=md inline>**Announcement:**</syntaxhighlight> rendering the text in bold.


Only a few special [[system command]]s are available: <source lang=apl inline>)lb</source> for language bar, <source lang=apl inline>)docs</source> for full documentation, <source lang=apl inline>)ref</source> for a link to the PDF reference card, <source lang=apl inline>)idioms</source> for a link to a searchable [[idiom|idiomatic expressions]] list.
Some abbreviations are ubiquitous, like ''TMN'' for ''[[Comparison with traditional mathematics|Traditional Mathematical Notation]]'', and ''CMC'' for ''Chat Mini Challenge'' which usually implies an informal [[code golf]] competition. Additional terms an abbreviations are shared with [https://codegolf.meta.stackexchange.com/questions/12537/what-are-our-specific-abbreviations-and-terms/12538#12538 those of the Stack Exchange code golf community]. When posting such a chat mini challenge, the task specification is prefaced with the markdown <syntaxhighlight lang=md inline>**CMC:**</syntaxhighlight>, rendering the text in bold.
-->
 
Some use a reply of <syntaxhighlight lang=md inline>+←1</syntaxhighlight> to indicate agreement or appreciation,<ref>This is a pun on the APL expression <syntaxhighlight lang=apl inline>counter+←1</syntaxhighlight> increasing the counter (of "likes") by one.</ref> similar to how "+1" or "👍" is used in other social media.
 
=== Emoticons ===


=== Access ===
{|
| <syntaxhighlight lang=md inline>○/</syntaxhighlight> || greeting, farewell
|-
| <syntaxhighlight lang=md inline>⍨</syntaxhighlight> || frown, displeasure, "hmpf"
|-
| <syntaxhighlight lang=md inline>\○/</syntaxhighlight> || despair, wonderment, "wow"  (be careful as this can be positive or negative)
|-
| <syntaxhighlight lang=md inline>¯\_(⍨)_/¯</syntaxhighlight> || "oh well"
|-
| <syntaxhighlight lang=md inline>∘.○</syntaxhighlight> || "I'm confused"
|}


While anyone can read the ongoing and past conversations, write access requires a Stack Exchange account and either 20 Stack Exchange reputation points or having been granted explicit write access by a moderator. The procedure for getting explicit write access is as follows:
== Live sessions ==


# Go to the chat room
=== APL Cultivation ===
# Click the giant lower-left avatar
:{{Main|APL Cultivation}}
# Click "user profile"
From 18 October 2017 until 16 May 2018, [[Adám Brudzewsky]] ran a series of 29 weekly 90-minute study sessions, covering most aspects of basic APL programming. Beginning 28 November 2019, he resumed the series with 20 more in-depth lessons every two weeks, ending 25 August, 2020.
# Copy the URL of the page that opens (e.g. "<nowiki>https://chat.stackexchange.com/users/123456/johndoe</nowiki>")
 
# Email that URL to support@dyalog.com
=== APL Seeds ===
In 2020, [[Marshall Lochbaum]] ran a mini-series 60-minute live chat lessons on implementing APL-like languages, especially focusing on [[BQN]]:
{|class=wikitable
! Lesson !! Title !! Date
|-
| S1 || [https://chat.stackexchange.com/rooms/52405/conversation/lesson-s1-parenthesis-nesting-level Parenthesis nesting level] || Jun 10, 2020
|-
| S2 || [https://chat.stackexchange.com/rooms/52405/conversation/lesson-s2-infix-to-rpn Infix to RPN] || Jun 24, 2020
|-
| S3 || [https://chat.stackexchange.com/rooms/52405/conversation/lesson-s3-parsing-expressions-with-parentheses Parsing expressions with parentheses] || July 8, 2020
|}
=== APL Quest ===
{{Main|APL Quest}}
Since 4 February 2022, Adám Brudzewsky hosts a weekly chat event, each session having as subject a single problem from Phase 1 of a past [[APL Problem Solving Competition]] round.


== External links ==
== External links ==


* [https://chat.stackexchange.com/rooms/52405/the-apl-orchard Website]
* [https://chat.stackexchange.com/rooms/52405/the-apl-orchard Chat room] (short URL: [https://apl.chat apl.chat])
* [https://chat.stackexchange.com/rooms/info/52405/the-apl-orchard Room info] (statistics and message search)
* [https://chat.stackexchange.com/rooms/info/52405/the-apl-orchard?tab=schedule Schedule] (includes registration for event reminders)
* [https://chat.stackexchange.com/transcript/52405 Full transcript]
* [https://github.com/dzaima/chatlogs Downloadable transcript]


{{APL community}}[[Category:Online forums]]
== Notes==
<references/>
{{APL community}}[[Category:Online forums]][[Category:Tutorials]]

Latest revision as of 20:58, 7 March 2023

Typical activity over a 24-hour period (UTC)

The APL Orchard (website: apl.chat) is a Stack Exchange chat room dedicated to learn and teach APL, and to ask and answer questions about both golfing and general coding in APL. It was opened by Adám Brudzewsky on January 24, 2017, and has since developed its own community. It was at one point the most active APL chat room, with over 1.000 messages per week. It passed a total of a 100.000 messages by 200 users in July 2020, 150.000 messages by 250 users in February 2021, reached 300 users in August 2021, and 200.000 messages by 350 users in December 2021. Code can be executed directly in the chat room.

Many participants arrive as complete beginners when it comes to APL, some not even knowing what APL is. Instead, they are attracted by the room being among the most active on Stack Exchange. Other participants are APL veterans. Morten Kromberg has written a blog post about the chat room, focusing on Dyalog Ltd.'s relationship with newcomers and established users.[1]

Community ad for the APL Orchard on Code Golf Stack Exchange.

Access

The giant avatar

While anyone can read the ongoing and past conversations, write access requires a Stack Exchange account and either 20 Stack Exchange reputation points or having been granted explicit write access by a moderator. The procedure for getting explicit write access is as follows:

  1. Go to the chat room
  2. Click the giant lower-left avatar
  3. Click "user profile"
  4. Copy the URL of the page that opens (e.g. "https://chat.stackexchange.com/users/123456/johndoe")
  5. Email that URL to access@apl.chat

Newly joined users always display a generic user name (like user1234567) and avatar until they've had some positive activity.

Features

Messages

In the chat you can use a simplified subset of markdown for simple formatting like italics, bold and strikethrough. You can include links in your messages, or post an image. See below for details. Users with at least 20 Stack Exchange reputation points can use the Sandbox room can be used to experiment with the chat system without bothering anyone.

To write a message, type into the input field and press Enter or click the send button to submit.

To post an image which is already hosted online, submit a message consisting exclusively of the URL to the image. Users with sufficient Stack Exchange reputation, see an upload… button to the right of the send button, allowing uploading images directly from their computer.

A user can be pinged (audio is played on their device) by writing @, followed by the username without spaces. On the top-right, to the left of all rooms you can configure the sound of notifications. If the user hasn't been in the room before, or hasn't been in it for long enough, they might not be pingable. The Stack Exchange Android app allows receiving ping notifications as push notifications regardless of whether you're in the room. There is no way to ping everyone in the room, although @all is used as a non-pinging convention when addressing everyone.

To mark a message as potentially valuable for others, hover over it and and click the dark grey star (). This will cause it to turns yellow () and the message will be visible on the starboard (the right sidebar) for some time. Click again to un-star.

To enter APL characters, see the article on typing glyphs.

Replies

To reply to a specific message, hover over the message you want to reply to and click in the bottom-right corner of that message. This will insert a code similar to :12345678 into the input field. Proceed to type your response and press enter or click send to send it. Note that replying to a message pings the user who wrote the message.

You can view what a message was a reply to by clicking the reply indicator icon to the left of a message, which will either focus the target message on the screen, or, if the target message is too far in the past, open up the transcript pointing to the target message. Alternatively, hovering over a message will highlight the message it is replying to, and all its replies.

Basic formatting

  • Italics: *italics* or _italics_
  • Bold: **bold** or __bold__
  • Strike through: ---strike through---
  • Inline code: `inline code` [2]
  • Link: https://example.com or [display me](https://example.com) or [display me](https://example.com "hover text")[3]
  • Spoiler: [spoiler](ftp:// "text hidden until hovered over")
  • Tags: [tag:code-golf] or [meta-tag:discussion] (tags from Stack Exchange's code golf community, Code Golf & Coding Challenges)
  • Oneboxes: When posted alone in a message, optionally preceded by a reply indicator (:12345678), some links (images, Wikipedia pages, Stack Exchange links, etc.) get "oneboxed", giving them an expanded display with special formatting.

Multi-line messages

It's possible to insert line breaks in messages with Shift+Enter. Pasting test containing line breaks into the input field also results in a multi-line message. Multi-line messages do not support normal markdown.

If each line of a message is preceded by 4 spaces (which can be inserted automatically with with Ctrl+k or with the fixed font button once multiple lines have been entered), the whole message will appear in monospace font. Note that individual lines cannot be formatted this way, and that there is no support for "code fences" (triple backticks before and after code). Note that multi-line blocks cannot include a reply tag. Instead, one can begin with a leading reply message (which must contain something more than the reply tag), and then post a separate code block.

To post a mixture of body text and code blocks, simply post multiple messages in quick succession. The chat will render them as if merged into a single message.

After posting

Within 2 minutes of posting a message, it can be edited or deleted. The edit history of a message (unless it has been deleted) is publicly visible ― see "history" when clicking actions on the left of a message.

A permalink of a message can be gotten by copying the link on the actions panel.

The user interface doesn't directly allow replying to oneself. However, there is a work-around: Click actions on the left of your message and copy the permalink. The message number is after the pound sign # in the URL. Copy it and start your message with a colon and the pasted number immediately after, for example :1234568 Really?.

In the transcript, the edit history is available for all messages, and this view includes the source of a message. The easiest way to reach it is to middle-click the action menu on the left of the wanted message to open the transcript in a new tab (or click, then click "permalink", if you don't have a middle mouse button), then click and then "history".

Executing code

Chat box exec is a userscript which evaluates code directly in the message input field.

Conventions

Since a lot of questions are repeated, it is courteous to search for an answer on APLcart before asking in the APL Orchard.

Announcements are made with the initial markdown **Announcement:** rendering the text in bold.

Some abbreviations are ubiquitous, like TMN for Traditional Mathematical Notation, and CMC for Chat Mini Challenge which usually implies an informal code golf competition. Additional terms an abbreviations are shared with those of the Stack Exchange code golf community. When posting such a chat mini challenge, the task specification is prefaced with the markdown **CMC:**, rendering the text in bold.

Some use a reply of +←1 to indicate agreement or appreciation,[4] similar to how "+1" or "👍" is used in other social media.

Emoticons

○/ greeting, farewell
frown, displeasure, "hmpf"
\○/ despair, wonderment, "wow" (be careful as this can be positive or negative)
¯\_(⍨)_/¯ "oh well"
∘.○ "I'm confused"

Live sessions

APL Cultivation

Main article: APL Cultivation

From 18 October 2017 until 16 May 2018, Adám Brudzewsky ran a series of 29 weekly 90-minute study sessions, covering most aspects of basic APL programming. Beginning 28 November 2019, he resumed the series with 20 more in-depth lessons every two weeks, ending 25 August, 2020.

APL Seeds

In 2020, Marshall Lochbaum ran a mini-series 60-minute live chat lessons on implementing APL-like languages, especially focusing on BQN:

Lesson Title Date
S1 Parenthesis nesting level Jun 10, 2020
S2 Infix to RPN Jun 24, 2020
S3 Parsing expressions with parentheses July 8, 2020

APL Quest

Main article: APL Quest

Since 4 February 2022, Adám Brudzewsky hosts a weekly chat event, each session having as subject a single problem from Phase 1 of a past APL Problem Solving Competition round.

External links

Notes

  1. Morten Kromberg. The APL Orchard. Dyalog Blog. 21 February 2021.
  2. Backticks can be escaped with a backslash (`\`x\`y` renders as `x`y). Alternatively, ```multiple``backticks\```, which also disable \-escaping, can be used, giving multiple``backticks\ - use a delimiter with one more backtick than the longest run of backticks in the code. Note that inline code cannot have leading white-space.
  3. Long URLs will be truncated with an ellipsis. A URL that exceeds the maximum message length of 500 characters can still be posted as a raw URL (without markdown): Follow it by Shift+Enter.
  4. This is a pun on the APL expression counter+←1 increasing the counter (of "likes") by one.
APL community [edit]
Activities ConferencesUser groups and meetupsIverson AwardExercises
Chat rooms and forums APL FarmAPL OrchardAPL Wiki
People Phil AbramsBrian BeckerBob BerneckyLarry BreedCharles BrennerJim BrownAdám BrudzewskyGitte ChristensenPeter DonnellyJohn EarnestAdin FalkoffGarth FosterLib GibsonAaron HsuRoger HuiKen IversonMorten KrombergDick LathwellMarshall LochbaumEugene McDonnellRoger MooreTrenchard MoreAlan PerlisRaghu RanganathanHenry RichAl RoseJohn ScholesIan SharpBob SmithGeoff StreeterJoey TuttleArthur Whitney
Other APL TrustAPL Quote QuadBlogsBooksCase studiesFamous APL usersHumourJobsMerchandisePapersPodcastsTryAPLTry It OnlineVideo channels