Online course in J/K/APL programming?

1 2019-10-15 18:14

Can anyone recommend an online course (with assignments) that focuses on array PLs?

2 2019-10-22 01:14



do not edit these


Who should own an interface?

1 2019-10-18 21:37

Assume an interface X which is used between two components A and B. Who should be the owner of X? I see three fundamental possibilities:

1. One of the components A or B, so one depends on the other.
2. A parent component, so A and B depend on the parent.
3. The user, so there must be an adapter to map between A and B.

Of course, the answer depends on the circumstances and tradeoffs but are there insights to help with it?

I would expect that it was already discussed heavily in the seventies between Fred Brooks, Alan Perlis, and Dijkstra. However, I don't know any such publication.

2 2019-10-19 04:22

It depends on which is most natural. Without further context, I would expect neither of A or B to own interface X, as this is the nicest to me in general.

How are you defining what an interface is here? If you send TCP traffic, TCP is the interface, but neither side owns it.

3 2019-10-19 07:29

Does one of the components provide a service to the other?

4 2019-10-19 09:33 *

Interface X should be owned by The Professor.

5 2019-10-20 12:36

>>2 TCP would be an example, where a parent (the standard) owns the interface.

A more interesting example would be the Protobuf schema which is used between A and B.

In a client-server relationship the server "provides a service", usually the server owns the interface.



do not edit these


I meant haskell

1 2019-10-10 09:41
2 2019-10-10 09:41

I meant

(!!6) $ iterate (}x -> x*(2-1337*x)) 1 :: Int
3 2019-10-13 22:56


4 2019-10-14 12:07


Evidently, yes.

5 2019-10-20 09:33




do not edit these



1 2019-05-02 17:37

Rejoice, Guix v1.0.0 has finally been officially released!

I've been using this as my primary OS for 2-3 years now and cannot recommend it highly enough - Best thing that's ever happened to my computing life.

Now we're just waiting on GNUnet and Hurd ( ._.)


22 2019-10-15 09:32

Now, this was not the first Emacs that was written in C and ran on Unix. The first was written by James Gosling, and was referred to as GosMacs. A strange thing happened with him. In the beginning, he seemed to be influenced by the same spirit of sharing and cooperation of the original Emacs. I first released the original Emacs to people at MIT. Someone wanted to port it to run on Twenex — it originally only ran on the Incompatible Timesharing System we used at MIT. They ported it to Twenex, which meant that there were a few hundred installations around the world that could potentially use it. We started distributing it to them, with the rule that “you had to send back all of your improvements” so we could all benefit. No one ever tried to enforce that, but as far as I know people did cooperate.

Gosling did, at first, seem to participate in this spirit. He wrote in a manual that he called the program Emacs hoping that others in the community would improve it until it was worthy of that name. That's the right approach to take towards a community — to ask them to join in and make the program better. But after that he seemed to change the spirit, and sold it to a company.

At that time I was working on the GNU system (a free software Unix-like operating system that many people erroneously call “Linux”). There was no free software Emacs editor that ran on Unix. I did, however, have a friend who had participated in developing Gosling's Emacs. Gosling had given him, by email, permission to distribute his own version. He proposed to me that I use that version. Then I discovered that Gosling's Emacs did not have a real Lisp. It had a programming language that was known as ‘mocklisp’, which looks syntactically like Lisp, but didn't have the data structures of Lisp. So programs were not data, and vital elements of Lisp were missing. Its data structures were strings, numbers and a few other specialized things.

I concluded I couldn't use it and had to replace it all, the first step of which was to write an actual Lisp interpreter. I gradually adapted every part of the editor based on real Lisp data structures, rather than ad hoc data structures, making the data structures of the internals of the editor exposable and manipulable by the user's Lisp programs.

23 2019-10-17 05:41

1. Gosling Emacs was not the first Emacs in C either, I'm pretty sure Montgomery (later CCA) Emacs came earlier, plus there were some so-called "ersatz Emacses" like ELLE (Elle Looks Like Emacs) and JOVE (Jonathan's Own Version of Emacs), not sure of their chronology. It certainly wasn't an audacious idea of Gosling.

2. GNU Emacs did for a while have a mix of files with Gosling's copyright (those were the ones that contained code that Gosling wrote) and files without it (those were the ones that had been written or rewritten by Stallman). Eventually all the Gosling code was replaced and so Gosling's copyright notices also went away. One could claim this is a "ship of Theseus" but that's a hell of a lot different than saying Stallman stripped away Gosling's copyright headers while re-using Gosling's code. The headers stayed in until the code was gone.

3. Gosling Emacs (before it became a Unipress product, and before GNU) was in fact distributed/redistributed by a great number of people in those days. Gosling was completely cool with that as far as I can remember. Later when he sold it to Unipress he announced something like "the program is too good to waste on the public domain". I don't remember if the gratis version stayed in circulation after the Unipress version came out, but it might be possible to research this.

Source: was there.

24 2019-10-17 11:47

25 2019-10-17 21:36

i was going to call you out on "being there", but it's the ship of theseus reference that convinced me you're indeed an old timer. apparently in america they used to study the classics, but no anymore.
it's a very recent video that this quote is taken from,
and i get the impression, that some kids were intentionally trying
to get some dirt from him, particularly since it's know that he's bitter about the whole emacs/gosmacs thing.

26 2019-10-20 09:32

Guix cucks their moms all gay.



do not edit these


What are you working on?

1 2018-12-22 22:05

This is the type of thread that you can write in every time you visit the site! You can do anything from use this as a personal log for your project, to sharing what you're hacking on at the moment, or to critique something some else did in the thread. I'm looking forward to hearing what you guys are up to!

Personally I've been working on a radix tree implementation in R7RS, it seems moderately efficient and not too bad to use, although I haven't finished many of the operations, and I'm not sure I will due to the awareness of a better way to do it if I only had the primitives (or even just a standardised FFI). Anyway thought I'd share it just because it's something to talk about. Due to the file limit I'm only posting the introduction, imports, exports, and type here, but a link to the full source can be found here:

; This is a implementation of a radix tree in the style of Clojure or
; Scala, meaning a not particularly good implementation. Ideally this
; would be a adaptive radix tree as described in the following paper:
; additionally it'd be nice to be able to have a variant for using SIMD
; functions on unboxed values if possible. Regardless scheme does not
; have the necessary primitives for implementing a adaptive radix tree
; to its full potential, namely access or abstractions of SIMD functions
; for the search function.

; much of this library may seem unidiomatic, this is simply because I'm
; trying quite hard to A) avoid allocations and B) factor out functions
; when they can be used in multiple situations, even if this means adding
; a bit of complexity.

; one of the goals of this library was to be exceedinly standard compliant,
; it's written entirely in R7RS small with SRFI 1 & 60. That being said
; this doesn't actually make this a particularly portable library due to
; the lack of upto date compliance with the standard and implementation
; of SRFI 60. To my knowledge the following implementations would likely
; be able to run this library: Foment, Gauche, Larceny, & Sagittarius.

(define-library (data radix)
  (export radix-ref radix-set radix->list radix->vector
          vector->radix list->radix radix radix-append
          radix-data radix-length radix-depth))

  (scheme base)
  (srfi 1)   ; append! in radix->list
  (srfi 60)) ; bitwise operations

(define-record-type radix #t #f data length depth)

91 2019-10-06 15:07

>>89 Looks nice except :

You should create an account Click here to join


92 2019-10-06 15:16

String template interpolator in Clojure.

93 2019-10-06 17:12

I tried programming soft body simulation from scratch. Few days latter I regret it.

94 2019-10-06 18:20

Sore all over?

95 2019-10-16 03:10




do not edit these


VIP checkbox

1 2019-10-08 19:35

Anyone knows what does the VIP checkbox do besides adding a "*" next to the post?


7 2019-10-10 09:39 *


8 2019-10-10 20:02

Sages are posts which do not bump up the thread to the top of the frontpage. Kind of the opposite of "very important".

9 2019-10-14 10:30 *

Testing sage

10 2019-10-14 10:31

Ah, makes sense. Why not sticking to the traditional word though?

11 2019-10-21 02:43 *

VIP quality.
In the old /prog/ quality posts were always saged. It wasn't used for posts deemed not worthy of a bump, quite the contrary.



do not edit these


nEXT browser

1 2019-01-02 17:05

Is anyone here using it? I've only recently heard about this.

Reminds of luakit, but with Lisp.


8 2019-03-18 15:10


9 2019-10-05 04:59

my installation fails with the following output:
WARNING: Setting locale failed.
Check the following variables for correct values:
<INFO> [21:57:55] next base.lisp (load-lisp-file form-fun-4) -
Loading configuration from /gnu/store/9l8n6sb9l12gabf27qf7bwykqiwfk0ap-sbcl-next-1.2.1-lib/.config/next/init.lisp...
<WARN> [21:57:55] next base.lisp (start) -
swank:*communication-style* is set to NIL, recommended value is :fd-handler
<INFO> [21:57:55] next port.lisp (run-program port) -
Current directory: /home/ngks/ZVV-volism-local/src/SchemeBBS/
<INFO> [21:57:55] next port.lisp (run-program port) -
Platform port path: /gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit
<INFO> [21:57:55] next port.lisp (run-program port) -
Platform port arguments: (--port 8082 --core-socket
<INFO> [21:57:55] next port.lisp (run-program port) -
Platform port log file: /home/ngks/.local/share/next/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit.log
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
Couldn't execute "/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit": No such file or directory

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10005D05B3}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<SIMPLE-ERROR "Couldn't execute ~S: ~A" {100475CDE3}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<SIMPLE-ERROR "Couldn't execute ~S: ~A" {100475CDE3}>)
2: (INVOKE-DEBUGGER #<SIMPLE-ERROR "Couldn't execute ~S: ~A" {100475CDE3}>)
3: (UIOP/IMAGE:HANDLE-FATAL-CONDITION #<SIMPLE-ERROR "Couldn't execute ~S: ~A" {100475CDE3}>)
4: (SB-KERNEL::%SIGNAL #<SIMPLE-ERROR "Couldn't execute ~S: ~A" {100475CDE3}>)
5: (ERROR "Couldn't execute ~S: ~A" "/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit" "No such file or directory")
6: (RUN-PROGRAM "/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit" ("--port" "8082" "--core-socket" "http://localhost:8081/RPC2") :ENV NIL :ENVIRONMENT NIL :WAIT NIL :SEARCH T :PTY NIL :INPUT NIL :IF-INPUT-DOES-NOT-EXIST :ERROR :OUTPUT #P"/home/ngks/.local/share/next/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit.log" :IF-OUTPUT-EXISTS :APPEND :ERROR :OUTPUT :IF-ERROR-EXISTS :APPEND :STATUS-HOOK NIL :EXTERNAL-FORMAT :UTF-8 :DIRECTORY NIL)
7: (UIOP/LAUNCH-PROGRAM:LAUNCH-PROGRAM ("/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit" "--port" "8082" "--core-socket" "http://localhost:8081/RPC2") :OUTPUT #P"/home/ngks/.local/share/next/gnu/store/sgbfnhg5662by6pd142qaf2x2kib5yq1-next-gtk-webkit-1.2.1/bin/next-gtk-webkit.log" :ERROR-OUTPUT :OUTPUT)
8: ((:METHOD NEXT::RUN-PROGRAM (NEXT::PORT)) #<NEXT::PORT {1003CE3EA3}>) [fast-method]

unhandled condition in --disable-debugger mode, quitting
guess it is badly packaged in guix?

10 2019-10-05 10:11


May 8, 2019
This should be fixed in Next 1.2.1. Feel free to re-open if you still experience the issue.

11 2019-10-12 16:07

I'm running stumpwm and next browser on debian.

next browser provides the keybinding C-w for COPY-URL

but after issuing this command I can't find the url using xclip, nor can I paste it into emacs (or "yank" if you want to be more correct) -- am I pointed to the wrong X selection or something?

This is a boneheaded question I know, but emacs has been so good at handling X copy paste behavior that I haven't needed to address an issue like this in some years.

I would also be happy to hear about addressing this minor chore with a giant hammer such as org-capture, slime, etc.

(cross posted at, after feedback from some user I now realize this is a better place for the question)

12 2019-10-13 10:20

I'm very interested in next and plan to use it as my primary browser once it gets a bit more mature.



do not edit these


q&a: next browser and stumpwm -- copied url cannot be found by user

1 2019-10-11 17:58

I'm running stumpwm and next browser on debian.

next browser provides the keybinding C-w for COPY-URL

but after issuing this command I can't find the url using xclip, nor can I paste it into emacs (or "yank" if you want to be more correct) -- am I pointed to the wrong X selection or something?

This is a boneheaded question I know, but emacs has been so good at handling X copy paste behavior that I haven't needed to address an issue like this in some years.

I would also be happy to hear about addressing this minor chore with a giant hammer such as org-capture, slime, etc.

2 2019-10-11 19:35 *



do not edit these


worst programming languages?

1 2019-10-09 19:22

hello fellow anons, textboard newbie here. i'm here to ask a very important question: what do you all consider to be the worst programming languages?


7 2019-10-10 18:43

>>6 truth

8 2019-10-10 19:00

Define ‘worst’.

9 2019-10-10 19:35

Depends on the use case. Javascript is one of the worst programming languages for big safety-critical real-time systems. It is one of the best for web frontends. Ada would the opposite.

10 2019-10-10 19:58

You can't. For most situations, it would have to be assemblers, because they lack any quality you would want to see in clean and well written programs. But if you have to work on that level, you don't get the choice.

11 2019-10-22 01:27 *




do not edit these



1 2019-10-06 17:02



7 2019-10-07 01:26 *


8 2019-10-07 11:51 *


9 2019-10-08 19:16 *

What does"VIP" do?

10 2019-10-08 19:16

Oh, the *

11 2019-10-09 19:14 *

it turns you into a very important person B)



do not edit these

New Thread

do not edit these