[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


Janitor application acceptance emails are being sent out. Please remember to check your spam box!


[Advertise on 4chan]


>Lisp is a family of programming languages with a long history and a distinctive parenthesized prefix notation. There are many dialects of Lisp, including Common Lisp, Scheme, Clojure and Elisp.

>Emacs is an extensible, customizable, self-documenting free/libre text editor and computing environment, with a Lisp interpreter at its core.

>Emacs Resources
https://gnu.org/s/emacs
https://github.com/emacs-tw/awesome-emacs
https://github.com/systemcrafters/crafted-emacs

>Learning Emacs
C-h t (Interactive Tutorial)
https://emacs-config-generator.fly.dev
https://systemcrafters.net/emacs-from-scratch
http://xahlee.info/emacs
https://emacs.tv

>Emacs Distros
https://spacemacs.org
https://doomemacs.org

>Elisp
Docs: C-h f [function] C-h v [variable] C-h k [keybinding] C-h m [mode] M-x ielm [REPL]
https://gnu.org/s/emacs/manual/eintr.html
https://gnu.org/s/emacs/manual/elisp.html
https://github.com/emacs-tw/awesome-elisp

>Common Lisp
https://lispcookbook.github.io/cl-cookbook
https://cs.cmu.edu/~dst/LispBook
https://gigamonkeys.com/book
https://lem-project.github.io
https://stumpwm.github.io
https://nyxt-browser.com
https://awesome-cl.com

>Scheme
https://scheme.org
https://try.scheme.org
https://get.scheme.org
https://books.scheme.org
https://standards.scheme.org
https://go.scheme.org/awesome
https://research.scheme.org/lambda-papers

>Clojure
https://clojure.org
https://tryclojure.org
https://clojure-doc.org
https://calva.io
https://clojure.land
https://www.clojure-toolbox.com
https://mooc.fi/courses/2014/clojure
https://clojure.org/community/resources

>Other
https://github.com/dundalek/awesome-lisp-languages

>Guix
https://guix.gnu.org
https://nonguix.org
https://systemcrafters.net/craft-your-system-with-guix
https://futurile.net/resources/guix
https://github.com/franzos/awesome-guix

>SICP/HtDP
https://web.mit.edu/6.001/6.037/sicp.pdf
https://htdp.org

>More Lisp Resources
https://lisp.nexus
https://rentry.org/lispresources

previous: >>107072992
>>
(print "First")
>>
Scheme!
>>
File: 4chanpost.png (55 KB, 870x418)
55 KB
55 KB PNG
>>107160767
but sir, every 4chan post comes with an integer timestamp filed under the "time" key...
>>
File: helix.png (812 KB, 3408x1928)
812 KB
812 KB PNG
>emacs + elisp
Thanks, but I'm sticking with Helix + Steel (Scheme).
https://github.com/helix-editor/helix/pull/8675
https://github.com/mattwparas/steel
>>
>>107162366
Doh! I did not see that. I'll make use of them the next time I post some code. At least I got to show off rx. (thank you)
>>
>>107163037
Where are the docstrings?
>>
>>107162366
I must say that data access in Clojure is very ergonomic compared to most other lisps.
>>
>>107163037
If it has its own file manager, mail client, RSS reader, web browser and Xorg window manager, then maybe I'll check it out.
>>
>>107163735
One nice thing helix *does* have is real threads that can run in parallel.
https://mattwparas.github.io/steel/book/builtins/steel_base.html?highlight=thread#spawn-native-thread
>>
>>107163037
>Helix
>Rust
No.
>>
https://donaldh.wtf/2025/10/emacs-carnival-2025-11-an-ode-to-org-babel/
>>
File: rust'd.jpg (116 KB, 1200x1000)
116 KB
116 KB JPG
>>107164549
>R ust UN der E macs
https://github.com/CeleritasCelery/rune
https://emacsconf.org/2024/talks/rust
>>
>>107163793
>muh threads
>>
>>107165552
I feel like the cooperative threads that Emacs has are underutilized. They might not be as cool as native threads, but they can solve a lot of concurrency problems that Emacs has right now.
>>
https://github.com/palikar/q4

https://github.com/yyyuuuuu/chan
>>
Talk me out of buying one of those chink game handhelds that run Linux just to put Guix and Emac on it.
>Writing without a keyboard will be an issue
I will make it work.
>>
>>107166857
Are those machines ARM? I ran
guix weather -s aarch64-linux
out of curiosity and I was surprised to learn that the substitute availability is 95%, I thought it would be lower
>>
>>107167000
Most are ARM some are x64.
I think it would be comfy to have handheld emacs (and writing with buttons on an OSK like you would on a regular game console is better in my opinion than writing using a touchscreen)
>>
File: 11-11_01-09.png (805 KB, 1920x1080)
805 KB
805 KB PNG
i heil hitler nigga
>>
>>107167037
Red is actually a really good foreground color. It doesn't dilate the pupils.
>>
>>107167029
>on an OSK
What about the modifier keys? A touchscreen keyboard seems a bit less tedious in that regard.
>>
>>107167134
>modifier keys
Just make them sticky
>>
>>107162119
That looks satanic.
>>
>>107167189
You mean like temple of seth kind of satanism?
>>
>>107166857
>>107167000
ARM isn't a problem for Emacs, or for FOSS in general. The problem is the form factor. You do not understand how foul it is doing longform typing on anything less than a full keyboard. I spent years going down this rabbit hole and gave up.
>>
>>107167419
It would not replace Emacs on my actual computer it's just to write some random stuff here and there while in bed. check elfeed, write org notes, a bit of lisp. that's it. I wouldn't use it to write any big projects.
>>
>>107167463
Get out of bed you lazy fuck.
>>
>>107167684
I'm not in bed right now anon it's 12 am and I only go into bed at 4 am.
>>
>>107167463
you can do that with any android phone
>>
Sacha hasn't posted her weekly emacs-news yet. She usually posts every Monday.
https://sachachua.com/blog/category/emacs-news/
>>
>>107165577
Go routines are co-operative.
Windows threads, lwp’s, etc. are comparatively heavyweight as fuck.
It’s responsible for the popularity on NodeJS, although it’s based on the use of things like poll() rather than suspended reads for every IO channel.
>>
>>107167037
> red text
Used to be the best of the best when only elites could afford a GRiD with a plasma screen.
>>
>>107169306
>>107167037
That's actually really neat. Usually I can't stand dark mode because I get really strong banding in my vision and the letters bleed over eachother.
But the red isn't doing it to me at all!
Can I get that theme in text form?
>>
File: file.png (266 KB, 1398x1030)
266 KB
266 KB PNG
Moving out of doom into my own config, the only thing I miss is seeing the new commits from installed packages in a single screen. Instead of fetching the latest version on every startup.

Any tips on configuring something similar in vanilla?
>>
>>107169485
Just use a monochrome theme and set your terminal to orange on black with one of the IBM fonts from int10h.org.
>>
>>107169547
>Instead of fetching the latest version on every startup
people do this? sounds inefficient desu
>>
>>107169628
It's the default behavior for some forms of (package-install) iirc.
>>
E M A C !
..
...
....
L I P !!!!!
>>
emacsconf 2025 will have a talk on using gnus as email client: https://emacsconf.org/2025/talks/gnus/
>>
>>107170532
F A K H E A D S !!!
>>
>>107171350
Thank god, hopefully it clears some things up.
>>
>>107169306
emakkkSS theme for pic?
>>
>>107169485
K.
https://pastebin.com/CKXV5vDu
>>
I love documenting my elisp code bros.
>>
sexmacs
>>
>>107172345
sexpee

captcha: 0ANNN
>>
>>107172366
parethetits
>>
>>107172378
(.)(.)
>>
should I read the first 8 chapters of fundamentals of computer graphics fourth edition, so I can draw pngs in my html 5 canvas on my web applet?
I want to watch TV instead.
>>
>>107172607
How does that relate to Lisp?
Why do you even have a TV, you should be watching retarded video essays on youtube instead.
>>
>>107172706
it is a lisp web applet, you can write javascript in parenscript lisp package.
>>
>>107163037
Any org-mode and rss readers for helix?
>>
>>107172725
Oh nice, do you read books usually? Why not skim it and use it as reference WHILE you're doing the thing, reading 8 chapters before even beginning sounds like a recipe for abandoning it to watch tv.
>>
>>107172749
basically. I saw someone can make the graphics I want with like 30 lines of js. But, I am not sure if learning what are graphics is good.
I think there are like 300 tile pngs that I need to map to variables in my code, so watching TV is actually not that bad compare to writing that.
>>
>>107172774
Just fucking do it already then, do 20 and then see if it's worth it to continue or if you can make the process less painful.
>>
>>107172706
>you should be watching retarded video essays on youtube instead.
are you me?
>>
>>107172860
my hands and nose are so chilly. I need you to hold my hands while we code, senpai...
>>
File: LOOOOONG.png (2.93 MB, 2598x2656)
2.93 MB
2.93 MB PNG
>>107173038
sure anon, specially after such a long day
>>
I've improved my 4chan catalog to org converter:
https://0x0.st/K9Fg.clj

I've also created a working emacs extension, I'll clean it up and post it later
>>
>>107173556
thats really fucking cool i would use it
>>
File: orgmode4chan.png (514 KB, 1080x2065)
514 KB
514 KB PNG
>>107173556
>>
>>107173556
>>107173958
nice
>>
What is the most used LISP dialect in production today?
>>
>>107174882
My guess is Clojure.
>>
File: 1750094859163304.jpg (536 KB, 1494x1998)
536 KB
536 KB JPG
>>107174882
Probably Allegro CL (from Boeing, MTU Aero, Bentley, Hubble/James Web) or AutoLisp (from AutoCAD)
>>
>>107175046
didn't autocuck dropped lisp from their BIMshit?
>>
>>107169485
don't know much about how this works but I'm curious, is red even more effective than amber for reducing eye strain? and what about the font? I love my tiny 6px spleen pixel font on my 1080p screen but it probably does strain my eyes, whats a better option? (ideally still bitmapped)
>>
>>107176461
Red desktop guy speaking. I think bitmap fonts are better in that regard. I'm nearsighted and I use them only. Smooth edges are harder to read at a distance (i stopped wearing glasses to better my vision naturally) so I started using only bitmap fonts because their edges are clear cut and letters easier to distinguish even when they are blurry. Antialiased fonts hurt my eyes and my back because I have to squint or lean forward. I would say dont use a 6px font if you're actually getting eyestrain.
>>
>>107176901
>>107176461
Forgotted to touch on the amber thing...
I am speaking completely just from my gut, but red is the lowest frequency of light, and fully red #ff0000 looks dimmer to me than fully yellow, green, etc. Of course then there's different monitor types to consider and yadda yadda nigga frittata. They use red UIs in submarines and aircraft cockpits to preserve night vision. Its great if you use compute at night, and its easier to go to bed after you get off the computer. Just take the "red" pill, try it, and you'll love it.
>>
I NEED more lips in my life
>>
>>107177476
dick sucking lisps
>>
>>107178046
lisp sucking minds
>>
>>107178046
dick 'slurping' sexps?
>>
shemacs UwU
>>
Racket is a nice language. I'm surprised it's not used more given it has some decent libs, good documentation and is pretty easy to distribute.
>>
>>107178451
It could be a modern CL but its reputation of academic language hinders it from reaching that point so far.
>>
>>107169600
>int10h.org
this aspect ratio kinda sucks on emacs fakhead
>>
why are apropos mode and info mode so fucking BAD? not the contents, but the navigation. links ALWAYS open up a new minibuffer frame. i just fucking want to follow them in the SAME frame i'm in.
also you cant use variable-pitch for them or else code snippets arent monospaced either. which is a problem i solved in my config for org docs, but help/apropos mode and the manual/info mode are not org. i can see some advantages having them as their own special mode like type s to search through the doc and get a nice preview of the results in the main frame but like when i FOLLOW a result it does not open in that main frame, it opens in a fucking NEW ONE
>>
>>107166857
bluetooth
>>
>>107178922
>but like when i FOLLOW a result it does not open in that main frame, it opens in a fucking NEW ONE
that's not the default behavior in Info-mode
>>
I need to tell you, I'm a viman.
>>
>>107179001
no, youre right. it opens in the minibuffer frame. so when i select the info buffer in a frame with ibuffer, close the minibuffer frame, and follow a link, it says "selecting deleted frame"
>>
>>107179022
what do you mean by "minibuffer frame"? what does the minibuffer have to do with this?
>>
>>107178942
NFC
>>
>>107179049
uklhjjbbecause you do mx info and it opens in a minibuffer. and i can close that frame, and open the buffer in one of my main frames, and then follow a link in there, and not be able to because i had closed the frame the minibuffer was in
>>
File: 1762910570793.png (1.4 MB, 1200x675)
1.4 MB
1.4 MB PNG
>>107167189
Fuck off protestant faggot.
>>
>>107165950
someone should fork one of these
>>
File: preview.png (16 KB, 1476x139)
16 KB
16 KB PNG
the inline eval preview is aligned with my comment of what it should be so perfectly that it looks like a reflection
>>
O_O.
It would be so cool to have useful ideas, and a job.
At least I can hack on my lisp projects in the mean time.
>>
ClojureDart REPL being announced tomorrow. GET HYPE
>>
>>107182574
>>
>>107182784
where do all these anime pictures come from? Do you clip it while watching?
>>
> boots up emacs
> loads 1500 hand picked optimization packages
> restores workspace register
> slightly adjusts buffer sizes just right
> begins to hack on code for 2 minute
> open IRC
> open RSS
> proced to jerk it on IRC non-stop till manager gives new sprint tasks.
>>
>>107181458
Very nice.

PS: Your color theme reminds me of the Yotsuba theme here. What is it?
>>
>>107183174
On days I lose Internet access, I'm shockingly focused once I get over the withdrawal. Very few distractions
>>
>>107182818
Not that anon, but I'm not sure what else you think the answer could be. It's a clip. So yes, obviously someone saw it and made a clip from it so they could use for reactions.
Then others save it and reuse it.
>>
>>107182818
I'm >>107182784
disregard what >>107184520 wrote
I draw and animate all these pictures myself using Krita, The Gimp and a Wacom tablet
>>
>>107183708
modus operandi tinted but comments changed to a grey found in that themes palette.
>looks like yotsuba
on that note have you ever noticed photon looks exactly like tango?
>>
I would use the modus themes but they look absolutely awful (for my taste, idk) for programming
>>
How long does it take to properly learn Dired?
>>
>>107185246
Maybe a few days of usage. casual-dired (https://github.com/kickingvegas/casual) can speed that up. But you'll probably want to write your own commands and install a few packages for dired, so your mileage may vary.
>>
EEEEEEEEEEEMAC!!

LIP!!!!
>>
scame
c
a
m
e
>>
>>107179193
>catholics are occult
What else is new?
>>
>>107188078
>What else is new?
New thought is more aligned with the bible than most mainstream christian sects
>>
>>107184999
>on that note have you ever noticed photon looks exactly like tango?
I hadn't noticed, but now that you mentioned it, they do look similar.
>>
>>107185246
Go to prot's YouTube channel and sit through one of his dired videos and try what he's demonstrating while you watch. You'll be proficient in the basics by the end of the video.
>>
>>107185246
>>107189620
https://youtu.be/L_4pLN0gXGI
>>
File: 1746016588305865.png (376 KB, 1920x1080)
376 KB
376 KB PNG
>>107173556
>>107173958
- Link :: https://litter.catbox.moe/v5m7x3xy90ol96pd.el

*** Notes
- Just evaluate the buffer and do ~M-x fourestry-catalog-to-org~
- I only tested it on Emacs 30.x
- Tell me if it doesn't work for you, and what error messages you get.
- And also tell me if you can think of a better name than =fourestry=
- Post content getting interpreted as Org markup is a feature, not a bug
- It is a viewer only, it is not a goal to implement posting

*** TODO Guess the programming language of code blocks on /g/
*** TODO Handle TeX on /sci/
>>
:-(
computer graphic geometry and calculus are so hard to understand to make my hentai breast lisp simulator...
>>
>>107189983
put it on a proper codeberg repo
>>
File: outputcolors_upscale.webm (3.7 MB, 1280x721)
3.7 MB
3.7 MB WEBM
rangboe
>>
>>107189983
how did you get the inline images to be displayed? on my graphical emacs, they are shown as hyperlinks to image sources.

Also, why does it only grab the most recent 6 posts?
>>
>>107189983
Are you going to add a thread view, or will it be just catalog only?
>>
File: 4restry.png (85 KB, 942x777)
85 KB
85 KB PNG
>>107191713
>how did you get the inline images to be displayed? on my graphical emacs, they are shown as hyperlinks to image sources.
follow this tutorial: https://emacs.stackexchange.com/a/73431
I don't want to interfere with anyone's Org setup, so my extension doesn't do any of these steps automatically. If I put this on some package archive, I'll add this as another config option, and also pull in org-yt as a dependency.

If you want thumbnails to be displayed, you also need to enable the variable fourestry-display-thumbnails (you can do so via M-x customize).
It's off by default because for now there's no async code or caching implemented, Org just makes you wait until it has loaded all the thumbnails.

>Also, why does it only grab the most recent 6 posts?
Because it only grabs the catalog. I will definitely add a thread viewer, and maybe a board picker (not sure how I would do the latter on vanilla emacs without pulling in some lib like vertico or icicle...).
>>
>>107192289
>like vertico or icicle...
just use icomplete-vertical-mode. Do not depend on external emacs packages, keep it within vanilla emacs.
>>
Do you guys ever wonder what russia is doing with SICP?
https://2ch.org/pr/res/3031968.html#bottom
>>
>>107192675
I'm behind in my ruzzian lessons, what are they doing?
>>
>>107193679
I just read a handful of posts with translate:
> Welcome to another dead thread, kek!
> No one in industry uses this language!
> 2ch circle jerking about being badass coders
It seems to get a post every few days, not very active.
>>
Anyone here using Interlisp for anything?
>>
File: boards.png (69 KB, 777x1135)
69 KB
69 KB PNG
>>107192326
I'm doing input completions via completing-read, and I'll make a proper board list by filling a buffer with make-button entries
>>
im creating my own lisp and right now i have two versions.

one uses traditional cons cells.

the other uses go-like slices.

i'm genuinely stuck on which i should choose as my implementation. thots?
>>
social justice gang vs open source cult. who would win. programming. emac.
>>
>>107194276
Stating the obvious: there's no definitive answer, only trade offs.
Slices are nice if you think you're going to utilize them often, and what I mean is subslicing specifically. Sharing the same backing array with multiple views. This can also be a detriment since if you subslice a big array for a single element you either need to keep holding the entire array or spend compute compacting it by copying elements out into a new array.
E.g. look at `strings.Clone` in Go and consider why it exists and how they deal with string interring, etc.

Since you already have 2 implementations, benchmarking and comparing them against your real workloads might not be too difficult.
The better one for you will be the better one in the results.
>>
Making a good looking README.org is fukcing hard when you need non standard tables, I'll have to use html blocks for this shit.
>>
>>107193838
you planning of hosting a repo anywhere?
wouldn't mind contributing

I'll check the catbox version in the meantime, looks good.
>>
>>107194276
how does gc with slices work?
>>
>>107195674
the way i have implemented it there is a backing cell that is a dynamic array, the slices just point into that cell.
>>
>>107193838
>completing-read
this is the way
>>
>>107162366
>slurp
>>
>you cant even pipe data to emacs
its over. Your emac lips will be forever chapped.
>>
>>107197427
https://www.gnu.org/software/emacs/manual/html_node/eshell/Scripts.html
good morning sar
>>
>>107197475
>posts a retarded workaround
>thinks I'm the indian
Back to Vim I guess.
>>
>>107197552
>>107197427
you gotta go back
>>
Why is Emacs soo good, and so shit at the same time? I kinda want to move on to Sublime Text or even damn vscode but there's always something drawing me back to Emacs (although Doom, I have to admit)
>>
>>107197427
shell-command-on-region works for me.
>>
How do I know if I'm getting the most out of Org mode or if I'm at least using it properly?
I try to force myself to remember to use Org Agenda and use Org-Roam for writing some notes but I don't really use it that much. How do you guys use it or, idk, share some tips to integrate it better to my current life/work.

I still mostly use a bullet journal to write down shit on paper.
>>
>>107198450
To this day I do'nt know how to use org-roam or what is so magic about it
>>
>>107197603
You are the one that needs to go back, pajeet.
>>
>>107197552
begone AT&T cuck
>>
>>107198376
It works, sure, but it doesn't solve the problem I complained about.
>>
>>107198792
what do you want to do exactly?
>>
>>107198450
I would recommend not using it at all. It doesn't really do anything special. At all. It is literally just a boomer syntax for displaying bullet lists in slightly larger fonts and letting you drag them up and down as if that is something that no other program does.

Emacs has a lot of good stuff, but every single video about Org mode is "Look at this... I can put a symbol here, and Emacs knows this is a list. Isn't that crazy? And look, I can move it up and down... and put shit in between them. Wow!"

The entire planet uses Markdown. Just use Markdown. Or better yet, stick to your pen and paper, which is infinitely more flexible than any digital system.
>>
>>107198822
>Or better yet, stick to your pen and paper,
Yeah I probably will just stick to my journal, I literally use it every day and have used two so far this year.

However:
>Just use Markdown
You say this, and you're in this thread, so now I'm intrigued, do you write markdown notes in Emacs? What's your workflow, any plugins?
I know it's 100% possible that you're suggesting to use markdown and this does not necessarily imply that you use markdown yourself, but still wanted to ask.

>>107198736
Zettelkasten, I guess
>>
>>107198800
I was simply trying to pipe data through to Emacs:

echo "words" | emacs

I figured this would start Emacs and the data would appear in a buffer, like Vim. It doesn't work. I really posted this just as a joke, it isn't that big of a deal, but then some retarded cultist jumped at me. It is perfectly fine if Emacs isn't designed to work this way, but just say that instead of coming up with shitty workarounds and acting like I'm at fault. If it doesn't work, it doesn't work.
>>
>>107198822
>boomer
org-mode is not very old, at least in the grand scheme of emacsen
>>
>>107198856
I'm not sure it works that way, but you can make an eshell script that pipes stdin to a new buffer, or pipe the result of the shell to a buffer, region and many other forms, but from within emacs.

>but just say that instead of coming up with shitty workarounds
Again, an eshell script is not a shitty workaround. You can also run elisp code from the shell with --eval, so maybe you can make a "pipe-to-buffer" function.
>>
File: Apu.jpg (36 KB, 657x527)
36 KB
36 KB JPG
im trying to implement tetris in common lisp and its giving me headaches im such a noob /g/uis
>>
>>107198822
Learning one or the other doesn't really matter, as you can convert between either syntax. But org-mode has the boon of org-babel working out of the box, which I enjoyed very much when I was still at college, and which is arguably pretty cool for dealing with any sort of code documentation.
>>
>>107198822
Searching through paper notes is slow.
>>
Did you learn lisp for/through emacs or did you learn emacs for/through lisp?
For me it was the second.
>>
>>107199041
https://github.com/stylewarning/lisp-random/blob/master/snake.lisp
this is an example of snake game using cl-charms for the gui
>>
>>107199449
thanks for this. It seems to be entirely different how I would do it and i dont understand a lot of the lisp code.
Im using the raylib library right now for my implementation and Im new to programming generally so im struggling a bit. Also I dont really have a grasp on many lisp concepts like the keyword thing. Right now im drawing from a 2d array to a raylib window in my game loop.
>>
>>107198822
honestly this. but still, a personal/general notes organization syntax IS a good idea, and emacs DID do it before markdown. org is uglier than markdown and a little less convenient to write, and most importantly, far less popular.
it REALLY DOES have advantages in an emacs environment though like elisp links and code embedding, so i just kind of hope theres continuing compatibility between org and md. and there are shades of differences in what they're for but maybe we can allow those to get shallower.
(markdowns core purpose is to be a markup language to be compiled into something visually presentable, while org was always supposed to be viewed/used/written as-is. but in practice i dont see a huge reason to double down on that distinction)
>>
>>107199609
that's probably a good start.
>>
What's your journaling/diary setup? I mean personal stuff that you might .gpg.
>>
>>107200658
I have a text file on my desktop that I store anything in unencrypted that is backed up to microsoft one drive
>>
>>107200679
On a semi-related note, I found my password sitting there in a plain .authinfo file in my home directory. Apparently it was made 8 months ago...
>>
>>107199003
I'm not saying that eshell is shitty itself. What I'm saying is that the solution of "just start emacs first, then run a chunk of lisp code that larps as a shell, then execute the command there" is a shitty workaround to the problem of "how do I take the output of a command executed by my actual system shell and pipe it to emacs, which works in every other program, and have emacs do something useful", which it is.

I ended up reading through the source code behind the "shell" function or whatever it was, and it became pretty clear to me that the authors don't really care about unix philosophy, which is fine. Maybe Emacs just isn't the tool for this job. I'm just annoyed that I couldn't seem to get a straight answer from anyone. A simple "You cannot do that, it is impossible." would have been fine. A workaround could be simply write the data to a file and then just open the file in Emacs, but that also sucks.
>>
>>107199003
>>107200987
Thank you for trying to help me, by the way. I do appreciate it.
>>
>>107200987
>A workaround could be simply write the data to a file and then just open the file in Emacs
in this case you can use process substitution instead
emacs --insert=<(echo 'hello world')
>>
>>107200987
Just go back to [neo]vi[m] already
>>
>>107201676
Go back to the tool that works? Okay. I will. Thanks, shitdick.
>>
File: 1757041351571745.jpg (107 KB, 1280x932)
107 KB
107 KB JPG
>>107201676
>>107201830
>>
I wrote this a while back. Some of you may like it.
;; [2025-05-01 Thu 07:15]
(defun i/toggle-italic-comments ()
"Make comment faces italic.

I like how prot's ef-* themes do this, and it looks really good
with the `VictorMono Nerd Font', because its italics are cursive.
It's like getting two fonts in one."
(interactive)
(if (eq 'italic (face-attribute 'font-lock-comment-face :slant))
(progn
(set-face-attribute 'font-lock-doc-face nil :slant 'normal)
(set-face-attribute 'font-lock-comment-face nil :slant 'normal)
(set-face-attribute 'font-lock-comment-delimiter-face nil :slant 'normal))
(progn
(set-face-attribute 'font-lock-doc-face nil :slant 'italic)
(set-face-attribute 'font-lock-comment-face nil :slant 'italic)
(set-face-attribute 'font-lock-comment-delimiter-face nil :slant 'italic))))


https://www.programmingfonts.org/#victor-mono
>>
I'm considering Gambit Scheme over Chez Scheme.
>>
>>107201830
>Okay. I will.
Perfect. So, you can stop whining like a little bitch in this thread, okay?
>>
File: 1742380317854504.jpg (37 KB, 612x519)
37 KB
37 KB JPG
>>107201952
the second progn isn't necessary because the else statement can be multiple forms
>>
>>107202178
Oh, I didn't know that. I reread the docstring for `if` to confirm. Surprising, but TIL.
>>
>>107202178
>>107202350
I fuckin love emac lips
>>
File: else-without-progn.png (68 KB, 765x352)
68 KB
68 KB PNG
>>107202178
I'm kinda proud of myself that I remembered to use M-<up> (paredit-splice-sexp-killing-backward) to lift all the expressions out of the progn. I honestly think it looks weird without the progn, though. It lost some symmetry when the progn was removed.
>>
>>107198450
Your notes are more valuable when you read them again later, so use org-roam-node-find a lot. I don't know what key sequence you have it bound to, but make it ergonomic. Make is so that searching for notes is very easy on the fingers, and do it often.

One way to start:
Surely, there are tasks that you do infrequently that you forget how to do sometimes. Make a little howto document that collects these, and try to get in the habit of referring back to this document.
>>
>>107200106
>org is uglier than markdown
I disagree. I think org-mode looks great if you rice out your Emacs enough. (I wouldn't use it so much if I thought it were ugly.) It's also more fun. A markdown document feels inert, but an org document feels alive. I can run code in it. I can generate tables and sort them. I can cycle visibility of headings very easily. It's like a computational notebook, but they were doing it before it was cool. People who like notebook systems like Jupyter or Clerk or Pluto.jl should appreciate org-mode.
>>
>>107163037
scheme is definitely better than elisp
GNU devs even admitted it, and used scheme for every new projects that requires extension-type of a language, such as guix
the only reason emacs didn't use scheme was because scheme wasn't born yet
>>
>>107202697
If your keyboard has a search key, and if you're not doing anything with it already, try:
(keymap-global-set "<XF86Search>" #'org-roam-node-find)
>>
>>107200987
its a different paradigm, its not that it "can't do that", it is just that it makes no sense, you can run the shell either directly or via commands on regions. Or you can take the output of it via compile-mode and others (it does what you ask, takes the output of stdin and sterr and shows it in a buffer).

>>107201358
there you go
>>
>>107202737
And unfortunately the Guile Emacs project looks DOA again.
>>
>>107202939
>>107201358
>print foo > #<buffer bar>
Nice. This can be useful in TRAMP. I usually pipe the thing to a file then open it, but I can open the file directly.

To make it work like vim would need you to use emacsclient:
https://www.emacswiki.org/emacs/EmacsPipe
>>
>>107202593
I would keep it, no need to optimize such simple function call.
>>
File: file.png (289 KB, 2162x1738)
289 KB
289 KB PNG
>>107203331
Drawing these was pretty fun.
using https://github.com/tbanel/uniline
>>
File: 1761948244751314.jpg (69 KB, 1237x726)
69 KB
69 KB JPG
>>107201952
(let ((faces '(font-lock-doc-face
font-lock-comment-face
font-lock-comment-delimiter-face)))
(cl-flet ((set-face (value)
(lambda (face)
(set-face-attribute face nil :slant value))))
(pcase (face-attribute 'font-lock-comment-face :slant)
('italic
(mapc (set-face 'normal) faces))
(_
(mapc (set-face 'italic) faces)))))
>>
>>107203331
This one? The repo looks active.
https://codeberg.org/ramin_hal9001/schemacs
https://www.emacsconf.org/2025/talks/schemacs/
>>
>>107204408
Fancy!
>>
>>107205409
Nah this one: https://codeberg.org/guile-emacs/guile-emacs

https://guile-emacs.org/
>>
>>107203331
That's what happens to most projects that involve a lot of effort for relatively little gain.
>>
>>107202734
>>107200106
org is just markdown + autists overengineering their own life.
The entire thing is a mistake, with cryptic syntax, no idea why they couldn't just stick to elisp, and jank.
>>
File: GVra-tqWcAEIsy9.jpg (93 KB, 1290x852)
93 KB
93 KB JPG
How would you justify to her your use of a niche programming language instead of JS or python?
>>
>>107207118
Just FYI: women love attractive men who go against the grain of society
>>
>>107207118
teach her to use emacs and lisp
>Multics Emacs proved to be a great success—programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program.
https://www.gnu.org/gnu/rms-lisp.en.html
>>
>>107206273
org(down) has a more consistent syntax than markdown (which has no standard and is different everywhere)
>>
File: 1734962360172642.png (219 KB, 1920x1080)
219 KB
219 KB PNG
>>107189983
*New Version*
https://litter.catbox.moe/vfnt2i.el
*** DONE Thread view
*** DONE Board list
*** DONE Auto-complete for the board prompt
*** DONE Mark sticky/locked threads and other minor improvements
*** TODO Cache thumbnails on disk, getting rid of the need to fiddle with Org's link handling routines
*** TODO various minor features like ID's on biz/pol etc.


>>107195462
>planning of hosting a repo
Yes, I have an old gitlab account that I might reactivate for this.
After I've gotten this thing to basically where I want it to be, I'll make a repo. There are some features that I would accept PR's for but have no intention of implementing myself, like thread watching and posting (either via captcha or 4chan Gold Account)

>>107198450
>>107198736
>Org Agenda
I just have one TODO list for every project, and one big TODO list for everything in my life that doesn't involve computers.
>Org-Roam
I have a bunch of disjointed notes in Markdown, Org and plaintext which I recently turned into a wiki using Gollum
https://github.com/gollum/gollum
>what is so magic about it
Personal wikis or knowledge databases are great if you're doing very deep research into a complex topic where it's important to take note of the relations of entities or subjects to one another, and where that relationship isn't already documented in some public place like Wikipedia. What made me want to start my own wiki was history and politics, particularly all the digging I did through old diplomatic cables, newspaper articles and other documents surrounding the lead-up to World War 1.

>>107198822
I agree that MD is the better choice for most use-cases, but compared to Markdown/CommonMark, Org does have some crucial features like footnotes. There are extensions for Markdown that let you do basically all the same things as Org, but they're implemented differently everywhere.
>>
I need to define a large, multivariate function and apply it to several values. How can I do this in calc? I'm getting lost with all the undos.
>>
File: 4g.webm (3.55 MB, 904x1176)
3.55 MB
3.55 MB WEBM
>>107209154
>https://litter.catbox.moe/vfnt2i.el
In a thread where people are asking why use org-mode, what a great answer. This 4g- system makes very good use of the org format, and it's a great way to read 4chan. In zogged out libraries that block 4chan, this will be very useful.
>>
>>107209154
In 4g-catalog, you're missing a colon after the "#+TITLE". I corrected it here.
      (insert
"#+TITLE: Catalog of 4chan /"board"/ on "
(format-time-string "%c") "\n"
(if 4g-display-thumbnails
(concat "#+STARTUP: overview inlineimages\n" 4g--msg-thumbs-enabled)
(concat "#+STARTUP: overview\n" 4g--msg-thumbs-disabled))
"\n[[elisp:(4g-board-list)][Board List]]\n")
>>
>>107206273
The org-mode Emacs mode is one of the few things in vanilla Emacs that has very ergonomic keybindings. M-RET creates a new heading. M-<arrow> moves headings. There are variations on those that you can discover by guessing and feeling. All questions of the format aside, the mode itself feels good, because one's mobility in org buffers is so high. It's a very comfortable writing environment.
>>
>>107207118
I don’t care about the opinions of random people and neither should you. Just program for yourself
>>
File: sm4538955.png (352 KB, 804x456)
352 KB
352 KB PNG
>>107182784
that heboPP idolmaster MAD is probably older than most of /g/..
>>
>>107209154
>https://litter.catbox.moe/vfnt2i.el
This is very neatly written. I appreciate the vertical alignment in your let* expressions.
>>
>>107211221
There's a similar mistake in 4g-thread.
>>
Found this: https://github.com/saman-pasha/cicili
No GC Lisp.
>>
>>107209154
Here's a convenience function for you that will reload the current buffer whether you're in a board-list, catalog, or thread.
(defun 4g-reload ()
"Figure out what kind of buffer we're in, and regenerate it with
fresh content if possible."
(interactive)
(save-excursion
(goto-line 1)
(let* ((title (thing-at-point 'line t))
(name (buffer-name)))
(cond ((equal name "*4chan Board List*")
(message "Reload 4g board list")
(4g-board-list))
;; catalog
((string-match (rx string-start
"*4chan /"
(group (+ alphanumeric))
"/ catalog*")
name)
(let* ((board (match-string 1 name)))
(message "Reload 4g catalog for /%s/" board)
(4g-catalog board)))
;; thread
((string-match (rx string-start
"#+TITLE: 4chan /"
(group (+ alphanumeric))
"/"
(group (+ digit))
":")
title)
(let* ((board (match-string 1 title))
(thread (string-to-number (match-string 2 title))))
(message "Reload 4g thread /%s/%d" board thread)
(4g-thread board thread)))
;; Unidentified buffer
(t (message "This does not look like a 4g buffer."))))))
>>
>>107209154
I noticed a little too late that you had a buffer-local variable 4g--boardname. What would really help me out would be the existence of another buffer-local variable 4g--threadno. If I could rely on the existence of those 2 variables, I could greatly simplify the implementation of 4g-reload.
(defvar 4g--boardname nil
"This is a buffer-local variable of the 4chan board for the current buffer.")
(make-variable-buffer-local '4g--boardname)

(defvar 4g--threadno nil
"This is a buffer-local variable for the 4chan thread number for the current buffer.")
(make-variable-buffer-local '4g--threadno)

I want to default them to nil, because:
(nil nil) implies board list;
("g" nil) implies catalog for /g/;
("g" 107162119) implies this thread.

What do you think?
>>
teach me how to trace codes:
g d, g d, g d, c-o, j, j, g d, g d, C-o, j, j, g d, g d? Is this the technique in evil-mode?
>>
>>107213570
Ask emacs via `C-h k` which is usually bound to describe-key. For example:
C-h k g d

In evil, `g d` is bound to evil-goto-definition.
>>
>>107211221
nice catch, here's a fixed version:
https://litter.catbox.moe/vzjel0.el

>>107212254
Thank you, I'm particularly fond of the :com text processing pipeline


>>107212948
sure, I've added the var, if you write the function and it works, I'll add that too.
I've also added refresh buttons to the top of the catalog and thread views.
>>
>>107213647
wow so many informations unlocked.
>>
File: fourg.png (1.18 MB, 1024x1024)
1.18 MB
1.18 MB PNG
>>107213760
>I've also added refresh buttons to the top
and to the bottom too, since that's where you actually need them in the thread view
>>
EMAC
LIP
>>
I feel like I was starting to understand how to write my lisp game and then my brain lost like 20 IQ and I don't understand now.
>>
mememacs
>>
>>107215241
it is exactly like you would in python, but with less parens.
>>
>>107215570
don't you mean more parens?
>>
>>107216372
probably about the same. Python and java are parens and indentation intensive.
for(i in piss):
thing = Thing()
thing.thong().thung(pee=poo()).pong()
>>
>>107217026
(loop for i below piss
for thing = (make-thing)
do (pong (thung (thong thing) (make-poo))))

both have 6 pairs.
>>
>>107217046
>>107217026
really high brow examples, thank you
>>
>>107167037
Have you (or anyone else reading this) considered using exwm?
>>
>>107217157
Not that guy but yes I do.
It's really tempting.
>>
>>107217166
then why don't you use it anon?
>>
>>107217175
If emacs hangs for any kind of reason your whole environment does. Also X even if it still works is a dead end it seems with GTK for example dropping support probably in the near future.
I could run each GTK application in its own wayland compositor but do I really want to?
But as I said it's really tempting ever since I got addicted to lisp and emac again.
I'm so close to hop from Fedora Silverblue to GUIXSD with EXWM.
>>
File: 1743362712744920.png (172 KB, 370x462)
172 KB
172 KB PNG
just now noticed the software i released almost 9 months ago was completely broken outside of the only test i ran because i misplaced a parenthesis on the last commit
luckily it was never noticed because no one cloned it anyways
>>
>>107217410
>X even if it still works is a dead end
lol, lmao even

let's not turn this cool thread into a x vs wayland shitflinging thread since those suck and make me wanna stop using this site
>>
>>107217426
I made a package months ago and forgot about it, last week i noticed someone placed an issue and I never responded. I must now kill myself out of shame.
>>
>>107217448
I like both X and Wayland but if more and more applications drop X support then your only options are:
1. choose different software
2. patch the software to support X again
3. run them in a nested Wayland compositor
I'm not sure if I want to do that especially since it could be that option 1 will be more difficult as time goes on.
>>
File: 1731839863500783.jpg (63 KB, 800x800)
63 KB
63 KB JPG
>>107182574
>Last push to the github repo was 2 weeks ago
>no video of the talk yet
my weekend is ruined
>>
>>107211113
>and it's a great way to read 4chan
What if I get hacked?
>>
File: 1748998410157836.png (34 KB, 600x400)
34 KB
34 KB PNG
X11 until the heat death of the universe (and beyond).
>>
File: 4g-wtf.webm (1.31 MB, 1552x1252)
1.31 MB
1.31 MB WEBM
>>107213760
>sure, I've added the var, if you write the function and it works, I'll add that too.
>I've also added refresh buttons to the top of the catalog and thread views.

I would have responded much sooner, but I ran into some weirdness with setq-local and with-current-buffer. For some strange reason, the values set by setq-local disappear once the with-current-buffer expression is over. My unfortunate workaround was to run setq-local again after the (switch-to-buffer out) so that my function could see the right values for 4g--boardname and 4g--threadno. The attached webm demonstrates the problem.

- First, I run the original 4g-thread by clicking the Refresh link.
- I then eval =(list 4g--boardname 4g--threadno)= to show that it returns =(nil nil)=.
- Then, I uncomment my late setq-local, reevaluate 4g-thread, and then click the Refresh link again.
- When I eval =(list 4g--boardname 4g--threadno)= this time, it returns =("jp" 50302252)=.

If I can rely on 4g--boardname and 4g-threadno, the 4g-reload function becomes much smaller.
;;;###autoload
(defun 4g-reload ()
"Figure out what kind of buffer we're in, and regenerate it."
(interactive)
(pcase `(,4g--boardname ,4g--threadno)
(`( nil nil) (4g-board-list))
(`(,board nil) (4g-catalog board))
(`(,board ,thread) (4g-thread board thread))))

This would be useful to people like me who want to bind the act of reloading to a key (although the refresh links are nice too).

Here's my updated code:
https://bpa.st/EFRQ

I changed:
4g-catalog
4g-thread
4g-board-list

I added:
4g-reload
>>
>>107217947
>What if I get hacked?

Unlike a web browser, Emacs won't execute arbitrary code. When you click on any of the elisp links, it'll show you the expression it's going to run and ask you to confirm.
>>
File: file.png (43 KB, 2292x260)
43 KB
43 KB PNG
>>107218103
What about... THIS.
>>
I'm not quite sold on Dired. I don't think it's bad. I just don't imagine needing to do the kinds of bulk file operations that it is designed for. Am I crazy?

>>107189750
Thanks anon.
>>
File: rx.webm (586 KB, 1272x746)
586 KB
586 KB WEBM
>>107218186
I gave it a try. Anyone else who wants to try can make an org document like this and see what happens when you click on "Let's find out!"


* Will this work?

[[elisp: (rx (eval (call-process "touch" nil nil nil "/tmp/owned")))][Let's find out!]]

>>
>>107218270
>(rx (eval (call-process "touch" nil nil nil "/tmp/owned")))
There's nothing wrong with that Elisp expression when run from `M-x ielm`, but when run through an elisp link in an org document, I get this error:

org-link-open: Wrong type argument: commandp, (rx (eval (call-process "touch" nil nil nil "/tmp/owned")))


Did I do something wrong, or is there a guard that's protecting me from running potentially malicious elisp?
>>
>>107218061
>I would have responded much sooner
no worries, but I guess I really need to set up a proper repo.
>I ran into some weirdness with setq-local
haha yes, I thought you had already figured that out and I was curious for how you solved it without messing with the rest of the code.
Right after I saw your suggestion I immediately wrote a function myself:
(defun 4g-refresh ()
(interactive)
(cond
(4g--threadno (4g-thread 4g--boardname 4g--threadno))
(4g--boardname (4g-catalog 4g--boardname))
((y-or-n-p "Load 4chan board list?") (4g-board-list)))) ;; prompt because I figure if you ever refresh the BL it's because of a bug

But I ran into the same problem.
I'll review your code later and see about merging it with what I have currently.

>>107217947
As far as I know Org doesn't run any elisp code from the document itself automatically just by loading the document. Nor does 4g do that. You have to actually click Org elisp links or execute src blocks for that to happen, at which point it's kinda your own fault.

The main risk vector I see is images. If there's some security hole in whatever image library uses, the exploiter can wreak havoc. Browsers and Email programs have the same problem, but they're probably much more hardened regarding that attack vector.
>>
https://app.opencve.io/cve/?product=org_mode&vendor=gnu
Oh no... no no no NO NO NOOOOOO
>>
>>107218473
I think the key there is "In Emacs before 29.3". I believe all of those have been fixed already for a while.
>>
>>107218473
You think Browsers don't have vulns all the time?
https://app.opencve.io/cve/?q=vendor%3Amozilla+AND+product%3Afirefox

>This affects Org Mode before 9.6.23.
I'm on 9.7.34
>>
>>107218454
>The main risk vector I see is images
I revise that statement. Maybe someone could figure out a way to break the document's structure via something in his post in such a way that the original content is hidden, and then have Org display content that looks like a normal page, but has malicious code on the [[Refresh]] button at the bottom. Which you would still have to click, but nevertheless that does seem like a realistic attack vector.
>>
>>107218454
That's pretty similar to mine -- it's mostly the difference between using cond or pcase. I'm really enjoying this project, and I've already setup local keybindings for it. Thanks for writing this.
>>
>>107163503
something that irks me about about languages and libraries strongly inspired by Clojure (like dash.el or seq.el in Emacs) is that they usually copy the bad/unfortunate decisions along with the good stuff.

Like the API design of the core library that can't decide if the thing you're modifying should be the first or the last argument of a function, which breaks the otherwise wonderfully clean threading macros.
>>
The real problem with using emacs to read 4chan is not the possibility of remote code execution but the pollution of the ritualistically clean mental space in which you do your work
>>
I need to compute some multivariate functions at several points. How can I use Calc for this without my fingers falling off?
>>
>>107219493
but emacs already comes with a bunch of silly stuff like tetris
>>
>>107219808
He's not talking about bloat. He's talking about 4chan being a psychological burden
>>
>>107219830
tetris can be a psychological burden too
>>
>>107219635
Just to clarify, you mean evaluating something like 2a + b with different a, b values right?
I guess this can be done as (with a = 5, b = 2):
>' 2a + b
>5
>s t a
>2
>s t b
>=
With "s t" being calc-store-into. You can store 2a + b into a variable also and recall it again later with "s r" - calc recall.
This is not preferable to just doing the calculation inside a let form, but to the best of my knowledge this is how you could use calc for this purpose.
>>
>>107219844
Fortunately the authors had the good sense to make the implementation just shitty enough that you would never actually want to play it.
>>
>>107202119
I'll continue using a superior tool while simultaneously shitting in your mouth in your very own thread. Any more questions?
>>
>>107220309
You're just regurgitating memes that were funny when 8 megabytes were a lot of ram, lad
>>
>>107217947
who's gonna try to hack the 4chan users among the Org users among the Emacs users? That's 3 layers of autism.
>>
File: why_emacs_square.png (306 KB, 1240x1584)
306 KB
306 KB PNG
>30% ancient C code that nobody can touch or it will explode
>70% ancient Lisp variant that nobody has heard of except the other 5 bald dudes that use Emacs
>written by a fat dude that eats off his own foot

Ahh, emacs. https://project-mage.org/emacs-is-not-enough
>>
>>107220472
>you vill have ze rounded edges
I hate the antichrist.
>>
>>107220349
I'm not regurgitating memes. I'm just pointing out massive flaws in your religion.
>>
File: mobilemacs.png (286 KB, 1080x2254)
286 KB
286 KB PNG
Emacs on Android is actually comfy once you configure your keyboard properly. picrel I'm using Unexpected Keyboard



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.