Skip to content

Commit 363e4c8

Browse files
committed
Update links
1 parent 2a9e176 commit 363e4c8

File tree

1 file changed

+58
-76
lines changed

1 file changed

+58
-76
lines changed

links/index.md

Lines changed: 58 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -65,31 +65,24 @@ tradeoffs need to be carefully considered.
6565

6666
##### Modern Lisps
6767

68-
[Janet](https://janet-lang.org/)
69-
70-
A modern Clojure-like Lisp without the JVM baggage designed for easy
71-
embeddability.
72-
7368
[Clojure](https://clojure.org/)
7469

7570
Clojure is a modern Lisp on the JVM (and the browser in the form of
7671
ClojureScript), which incorporates great ideas from multiple
7772
paradigms. Easy interoperability with the large number of available
78-
Java libraries is an added bonus.
73+
Java libraries can make it a no-brainer for enterprise usage.
7974

8075
It features persistent data structures, a well-designed sequence
8176
abstraction, great support for concurrency, and to round it off, good
8277
performance on the JVM.
8378

84-
The error handling and interactivity may not be as good as Common
85-
Lisp, but it doesn't have all of Common Lisp's warts and historical
86-
baggage.
79+
[Janet](https://janet-lang.org/) and [Fennel](https://fennel-lang.org/)
80+
81+
These are modern Clojure-like Lisps without the JVM baggage.
8782

8883
[Racket](http://racket-lang.org/)
8984

90-
A modern dialect of Scheme, which is gradually becoming the premier
91-
Scheme-ish language. An interesting feature of Racket is that it has
92-
several "sublanguages".
85+
A modern dialect of Scheme.
9386

9487
##### Common Lisp
9588

@@ -99,12 +92,8 @@ Steve Losh's recommendations on how to learn Common Lisp.
9992

10093
[Practical Common Lisp](http://www.gigamonkeys.com/book/)
10194

102-
An introduction to Common Lisp describing the construction
103-
of practical, real world programs.
104-
105-
[Articulate Common Lisp](http://articulate-lisp.com/)
106-
107-
A collection of CL resources.
95+
An introduction to Common Lisp describing the construction of
96+
practical, real world programs.
10897

10998
#### Programming languages
11099

@@ -120,12 +109,6 @@ A logic-programming language. You are probably best off starting with
120109

121110
[Raku](https://raku.org/)
122111

123-
The language formerly known as Perl 6. At some point the Perl
124-
community decided to create a "new" version of Perl i.e. Perl 6. As
125-
the changes became more and more backwards-incompatible, they realised
126-
that they were designing an all-new sister language. In 2020, after
127-
much discussion and Larry Wall's blessing, Perl 6 was renamed to Raku.
128-
129112
Raku is an expressive, gradually typed, multi-paradigm language
130113
drawing from the rich history and
131114
roll-up-your-sleeves-and-get-your-hands-dirty hacker-ethos of Perl
@@ -135,6 +118,11 @@ Notable features include first-class support for grammars, modern
135118
concurrency primitives, a MOP, being able to easily define arbitrary
136119
operators, and keeping in line with Perl's legacy, all new regexes.
137120

121+
Raku was formerly known as Perl 6. At some point the Perl community
122+
decided to create a "new" version of Perl i.e. Perl 6. As the changes
123+
became more and more backwards-incompatible, they realised that they
124+
were designing an all-new sister language. In 2020, after much
125+
discussion and Larry Wall's blessing, Perl 6 was renamed to Raku.
138126

139127
### Programming Language Theory
140128

@@ -144,14 +132,14 @@ A blog and community for programming language enthusiasts.
144132

145133
[Oleg Kiselyov's site](http://okmij.org/ftp/)
146134

147-
Pro research.
135+
Lots of papers on functional programming, type theory.
148136

149137
### Networks
150138

151139
[Beej's Guide to Network Programming Using Internet
152140
Sockets](http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html)
153141

154-
A humorous guide to get started with network programming in C.
142+
A guide to get started with network programming in C.
155143

156144
## CS
157145

@@ -179,36 +167,33 @@ spending a sizeable amount of your time working with them.
179167

180168
[gdb](https://www.gnu.org/software/gdb/)
181169

182-
The GNU Debugger can help with finding what's going wrong
183-
with your program. It's usually used to debug C/C++
184-
programs.
170+
The GNU Debugger can help with finding what's going wrong with your
171+
program. It's usually used to debug C/C++ programs.
185172

186173
[ccache](https://ccache.samba.org/)
187174

188-
Building large projects can take a significant amount of
189-
time. ccache can help with reducing the time spent
190-
waiting for the build to finish.
175+
Building large projects can take a significant amount of time. ccache
176+
can help with reducing the time spent waiting for the build to finish.
191177

192178
### Text editors
193179

194180
Knowing how to efficiently use a text editor is one of the most useful
195181
secondary skills of any programmer.
196182

197-
Among the free text editors, vim and emacs have (unfortunately) been
198-
the state of the art for quite some time now.
183+
Among the free text editors, vim and emacs are particularly
184+
formidable. It's undecided as to which is better, just like Tabs vs
185+
Spaces debate among programmers.
199186

200187
[Vim](http://www.vim.org/others.php)
201188

202-
A modal text editor that has nice key bindings and an
203-
emphasis on speed. It is an important command-line
204-
survival skill. Once installed, run the "vimtutor" command
205-
to start a basic tutorial.
189+
A modal text editor that has nice key bindings and an emphasis on
190+
speed. It is an important command-line survival skill. Once installed,
191+
run the "vimtutor" command to start a basic tutorial.
206192

207193
[Emacs](http://www.gnu.org/software/emacs/tour/)
208194

209195
An operating system containing, amongst many other things, a file
210-
manager, calculator, games, package manager and (arguably) a text
211-
editor.
196+
manager, calculator, games, package manager and also a text editor.
212197

213198
It can be extended in trivial, and non-trivial ways with Emacs Lisp,
214199
which also happens to be the language it is written in.
@@ -223,29 +208,27 @@ modifier key like "Hyper", to reduce dependence on the Control key.
223208
Users who prefer Vim's more ergonomic keybindings have a lot of
224209
options in making Emacs work that way.
225210

226-
[VS Code](https://code.visualstudio.com/)
227-
228-
A modern open-source text editor developed by Microsoft.
229-
230211
[Notepad++](http://www.notepad-plus-plus.org/)
231212

232213
An easy to use, feature-laden text editor.
233214

234215
### Version Control
235216

236-
A Version Control System (VCS) is used to track changes in
237-
files. Even the most trivial projects can quickly become
238-
unmanageable if a VCS is not used.
217+
A Version Control System (VCS) is used to track changes in files. Even
218+
the most trivial projects can quickly become unmanageable if a VCS is
219+
not used.
239220

240221
[Pro Git](http://git-scm.com/book)
241222

242223
A solid introduction to the powerful Git version control system.
243224

244-
[Mercurial](http://hginit.com/01.html)
225+
[Jujutsu](https://jj-vcs.github.io/)
226+
227+
A modern version control system that's been getting some rave reviews.
228+
229+
[Fossil](https://fossil-scm.org)
245230

246-
Mercurial is easier to learn and use when compared to
247-
Git. This tutorial covers the fundamental idea behind version control
248-
and basic usage of Mercurial.
231+
A lightweight version control system written by [DRH](https://en.wikipedia.org/wiki/D._Richard_Hipp).
249232

250233
[Commit message guidelines](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
251234

@@ -254,18 +237,17 @@ is readable.
254237

255238
### Command-line
256239

257-
Mastering the command line shell gives you unfathomable power and more
258-
importantly nerd cred. ;-)
240+
Mastering the command line is not something that can be avoided.
259241

260-
[zsh](https://wiki.archlinux.org/index.php/Zsh)
242+
[fish](https://fishshell.com/)
261243

262-
A shell with nice completions and other customisable features.
244+
An easy to use shell, with great defaults.
263245

264246
[tmux](http://tmux.sourceforge.net/)
265247

266-
Switching between multiple terminal emulator instances can
267-
hamper productivity. This terminal multiplexer can be used
268-
with a tiling window manager for a killer combination.
248+
Switching between multiple terminal emulator instances can hamper
249+
productivity. This terminal multiplexer can be used with a tiling
250+
window manager for a killer combination.
269251

270252
[GNU coreutils](https://en.wikipedia.org/wiki/GNU_Core_Utilities)
271253

@@ -276,11 +258,6 @@ wizardry.
276258
For as long as text terminals are used, it will be worth your while to
277259
be comfortable with using these.
278260

279-
[hh](https://github.com/dvorka/hstr)
280-
281-
Allows you to easily view, navigate, search and manage your command
282-
history.
283-
284261
[fzf](https://github.com/junegunn/fzf)
285262

286263
A command line fuzzy finder.
@@ -297,7 +274,7 @@ and grep which can be used to search directories recursively.
297274
Tiling window managers are useful in a typical programming session
298275
when you have to repeatedly switch between your text-editor, terminal
299276
emulator, web-browser, and any number of other programs you may have
300-
running. Alt-Tab never again!
277+
running.
301278

302279
[xmonad](http://xmonad.org/)
303280

@@ -307,8 +284,11 @@ A tiling window manager written in Haskell.
307284

308285
[Inkscape](http://tavmjong.free.fr/INKSCAPE/MANUAL/html/)
309286

310-
The best open source SVG editor there is. Also allows importing from,
311-
exporting to the commonly used graphical formats.
287+
An easy to use vector graphics editor.
288+
289+
[Krita](https://krita.org/)
290+
291+
A digital painting program.
312292

313293
### Miscellaneous
314294

@@ -363,7 +343,11 @@ A selection of commonly used symbols.
363343

364344
[Common Lisp HyperSpec™](http://www.lispworks.com/documentation/HyperSpec/Front/index.htm)
365345

366-
The entire ANSI CL standard in HTML. Rather readable.
346+
The entire ANSI CL standard in HTML.
347+
348+
[Novaspec](https://novaspec.org/)
349+
350+
A nicer way to read the HyperSpec.
367351

368352
### Protocols, Specifications
369353

@@ -396,25 +380,25 @@ some of our recommendations.
396380

397381
[Debian](http://www.debian.org/)
398382

399-
[neena](http://neena.at/) says that it is a decent operating system. A
400-
widely used, stable Linux distribution.
383+
A rock solid and stable Linux distribution.
401384

402385
[Arch Linux](https://www.archlinux.org/)
403386

404387
A Linux distribution with an emphasis on simplicity, configurability
405388
and having the latest software packages. Rolling releases keep your
406389
system at the bleeding edge.
407390

391+
[Manjaro](https://manjaro.org/)
392+
393+
A pre-configured distribution based on Arch Linux.
394+
408395
[FreeBSD](https://www.freebsd.org/)
409396

410397
It is worth checking out some BSDs as well. Features include
411398
first-class support for ZFS, great networking software, excellent
412399
documentation, no dependence on systemd, and the BSD license for those
413400
who prefer it to Linux's GPL.
414401

415-
From what we can gather, it works better on slightly older hardware as
416-
all the latest and greatest drivers may not be well-supported.
417-
418402
BSDs are used in many sites for critical networking infrastructure
419403
such as firewalls.
420404

@@ -448,7 +432,7 @@ It's a good idea to read this before asking questions on the internet (and in re
448432
Fascinating insights into the life experiences of a
449433
scientist, and his colleagues.
450434

451-
[Programming Language Comparison by Mike Vanier](http://users.cms.caltech.edu/~mvanier/hacking/programming.html)
435+
[Programming Language Comparison by Mike Vanier](https://raw.githubusercontent.com/mvanier/mvanier.github.io/refs/heads/main/home_page_old/hacking/programming.html)
452436

453437
Slightly dated, but still a good comparison between the various
454438
languages the author has used in his career.
@@ -498,6 +482,4 @@ While we are on the subject of Mr. Norvig, his articles on [Solving
498482
Every Sudoku Puzzle](http://www.norvig.com/sudoku.html) and [How to
499483
Write a Spelling Corrector](http://www.norvig.com/spell-correct.html)
500484
are legendary. It is manifest how powerful and elegant programming can
501-
be when performed by a master. Any programmer who can write a
502-
technical article of a similar quality to these two, should be pleased
503-
with themselves.
485+
be when performed by a master.

0 commit comments

Comments
 (0)