This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-06-28
Channels
- # babashka (10)
- # beginners (140)
- # cider (6)
- # clj-kondo (10)
- # cljs-dev (39)
- # cljsrn (6)
- # clojars (1)
- # clojure (23)
- # clojure-europe (2)
- # clojure-spec (7)
- # clojure-uk (6)
- # clojurescript (1)
- # conjure (16)
- # cursive (3)
- # datomic (3)
- # emacs (6)
- # fulcro (13)
- # graalvm (3)
- # malli (8)
- # meander (4)
- # off-topic (43)
- # pathom (1)
- # pedestal (15)
- # re-frame (13)
- # reagent (3)
- # sci (25)
- # shadow-cljs (26)
- # sql (9)
- # testing (34)
- # tools-deps (80)
In Java would you consider TransferQueue
as poor mans channel
for producer consumer scenario?
public TransferQueue<byte[]> subscribe(String topicName) {...}
like this, a good idea?The idea behind TransferQueue is very similar to async chans
But TransferQueue has no buffer so it will just block unless there’s a free consumer available to do the work
TransferQueue does have a buffer doesn't it?
the transfer
operation will have those semantics, but you can also put
or offer
without that
(and SynchronousQueue
is unbuffered like an unbuffered chan
)
does anyone know of a text that approaches assembly in a clear and engaging way that would compare to SICP, or On Lisp or the K+R C book or Joy of Clojure or Elements of Clojure? I want to learn ARM assembly (for fun / art purposes and hey ARM is more and more relevant lately), but want to at least have a high quality book on it
I am eagerly hoping someone has a good reply because I would be very interested in that as well!
maybe it's a book I'll need to attempt to write LOL, but surely someone has attempted it by now, probably one of the first gen of CS masters
this might be what I was looking for https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming
Ah. some light reading
Every single assembly language is different so I don't know that there's enough "competition" to have anything more than a reference manual for a specific chipset?
I really liked 6502 Programming (I think that's the title) from decades ago.
right - but k+r informed how I write java and c++, I think assemblies have at least that much commonality
or at least RISC ones...
https://www.amazon.com/Programming-6502-Rodnay-Zaks/dp/0895880466 (from 1980). I still have a print copy somewhere.
so you recommend it?
I should pull it out and double check that I'm not just remembering it with rose-tinted glasses...
OK, yeah. I paid ten pounds, 25 p for it in the early '80s. The price is hand-written on the inside front leaf, in pencil 🙂
It starts off with the basics of binary and stuff, then looks at the hardware organization and chip instructions. It discusses addressing modes etc. Then it gets into actual application programming with assembly.
What sort of level are you at with assembler/machine-level stuff right now @noisesmith?
I understand things like calling conventions, registers, load, store, conditional branching, the basic add / overflow kind of stuff
what I don't have is the ability to translate that into understanding a dumped procedure, or follow the code and see bugs clearly
(that might translate to "beginner but not absolute beginner")
a fun end goal would be to understand and improve the ARM instructions produced by JVM JIT
(I've heard a rumor that there isn't a quality hotspot for ARM)
@noisesmith sounds like you might do better with an ARM-specific book at this point. $40 is a lot to drop on an "antique" (but I still have great fondness for the 6502 processor 🙂 )
the biggest appeal I could see there is that game-boy has sound and video generation available, and you can write code for it using 6502 there are some "cool kids" who make dance music that way, and that could be fun
but there are even more arm devices out there, with even better audio and graphics capability :D
I haven't done any assembler stuff since the early '90s at this point. I did a lot of it before then. 6502, 68000, 8080, 8086, IBM 8100, some VM 370 stuff... SPARC, 88000 (Motorola, when it was still designated the 78000)...
...I started with PRIME assembler at university (PRIME had four different assembler dialects)
The 6502 is a lovely thing. Few years ago I helped my friend implement a pacman clone on a Commodore vic-20. I do music, he needed the intro song code. I was given a "budget" of 80 bytes (yes, bytes) for the music data, and player code. I did it in 64 bytes. 🤓 Coding those machines is such a different world. Very fun.
Oh, gameboy and NES are so fascinating to me, they are so terribly bad computers, but nintendo did manage to put sizeable games on them. I don’t know, I find it fascinating how the hardware dictates the games they could run, and if you kept within those boundaries, you could make fun games on a machine that could do almost nothing
Things like, you can do screen scrolling left to right or top to bottom
Except super mario bros 3, which does both, and is showing artifacts because of it
The creativity in finding solutions for those kinds of problems, I don’t know, sometimes I wish I started programming in that time instead of like 10 years ago
or megaman which had aritfacts because you could only have so many entities on a scanline
Have you ever read about what it takes to program the Atari 2600? Where you actually need to have precise cycle counts of your instructions to feed graphics to the raster beam on the fly. No memory mapped graphics. 🤯
I haven’t, its funny that as a 90s kid, I am more interested in nintendo stuff than in atari stuff
Grew up with GBC ^^
well, by todays standards that is
(if this fascinates you too, there is a nice explanation of the SNES: https://www.youtube.com/watch?v=57ibhDU2SAI )