HNHacker News
TopNewBestAskShowJobs

artsi0m

24 karma · joined November 17, 2023

My gh page: https://github.com/artsi0m email: karakin2000 AT gmail DOT com Last employment: Linux system administrator. Interested in: Compilers
submissionscomments
artsi0m··on Let Over Lambda is free online to read as pdf
https://letoverlambda.com/

«2026 update: Let Over Lambda was published in 2008, to align with the 50th anniversary of Lisp's invention in 1958. A lot has changed since then, in both Lisp and programming practice in general. Although my thinking and opinions have evolved since, I still believe the book holds up well as a tutorial and explanation of why Lisp so special. Going forward, the entire book is free to read online (HTML, PDF). Happy lisping»

Let Over Lambda is one of the most advanced books on Common Lisp macros.

In this book authors shows the great possibilities that unhygienic macro system gives. He implements closures using Let Over Lambda pattern, shows usage of anaphoric and reader macros and also construct some kind of OOP system out of abilities that CL macro system provides.

artsi0m··on Howm: Personal Wiki for Emacs
Thanks, this sound reasonable actually.

Maybe, I would think about implementing it in this way.

Actually I don't really want to create a separate emacs package, but rather merge my code with main howm repo at some point, when it would be good enough.

Creating your own package would be acceptable alternative to this, though.

I also should add, that I can add enabling external grep part to my short howm config, but it seems to slow down howm, rather speed it up, when using it on windows.

artsi0m··on Howm: Personal Wiki for Emacs
Sorry, of course no. But there is much better introduction blog posts on this topic in my opinion.

I liked this one: https://baty.blog/2024/03/the-emacs-howm-package-for-notes

artsi0m··on Howm: Personal Wiki for Emacs
> How does this deal with searches that, over time, can change to return 0 or 2+ results?

You can put more than one search link in currently edited note, than test all of them and at one point you will learn how to formulate search query so that you would recite yourself exactly as in that note that you want to see just now.

Also you would find more suitable titles while being in this process, but it wouldn't be for long.

artsi0m··on Howm: Personal Wiki for Emacs
Date line could be put everywhere you want or entirely deleted. You are absolutely free in this aspect of usage of howm.
artsi0m··on Howm: Personal Wiki for Emacs
> lab notebook

I write down my uni's lectures in howm using org as markup, so maybe yes, probably.

howm has two types of links, both are search for all your data it howm actually, but the second type (<<< links) work as a tag, that would be highlighted everywhere.

I thing creating templates can be done with one or another emacs snippets packages. Or just by your own elisp.

artsi0m··on Howm: Personal Wiki for Emacs
Mine is much simpler

(use-package howm)

Although I am the one who use it with org-mode too.

I've done it using prop-line feature of emacs and my own interactive, for today it is only interactive, function howm-insert-prop-line:

    (defun howm-insert-prop-line ()
  "Activate major mode and modify the file so that this mode is activated
  automatically the next time it is opened"
      (interactive)
      (howm-mode)
      (let*
   ((modes (mapcar #'cdr auto-mode-alist))
    (mode-name (completing-read "Choose major mode: " modes))
    (mode (intern-soft mode-name)))
 (unless (or (null mode)
     (eq mode major-mode))
   (funcall mode)
   (howm-mode)
   (add-file-local-variable-prop-line
    'mode (intern (string-trim-right mode-name "-mode\\'"))))))

It is in github repo, too although it is not yet finished:

https://github.com/artsi0m/howm-use-any-markup

My problem is that I can't combine well nested interactive+let or let+interactive, so it is only as interactive function for now.

artsi0m··on Howm: Personal Wiki for Emacs
Nope, it suggest to use howm with markdown only, while when using emacs prop-line feature, you can use it with any markup.
artsi0m··on Show HN: Running TempleOS in user space without virtualization
Terry referenced the joke about web browsers, saying that as the most people use internet explorer to download firefox, he used Ubuntu with VMWare to run Temple OS. https://iv.ggtyler.dev/watch?v=IXhmu1aQSOY
artsi0m··on Porn restrictions are leading to a VPN boom
I use VPN for bypassing blocks created either by government of the country I currently live in or established as a sanctions by another governments.

I set up wireguard and unbound on VPS in Amsterdam and share with 10-15 people by posting wireguard config in private telegram channel.

Ironically enough, but I block porn access using StevenBlack hosts converted into Unbound config by awk script, so porhhub dot com will return REFUSE dns response from unbound.

I know, that is not impressive idea of how to utilize computing power of the VPS, but I also used it for running tor snowflake (disabled because of eating too much ram), running tor obfs4_proxy (would also eat much ram, but that can be adjusted, I don't remember clearly why I disabled it at one point) and I used it as a server for Postgres that I tried to use for uni's coursework on databases.

Maybe I am too lazy to setup tools like zapret for bypassing deep packet inspection locally on my laptop or on router. But still there should be a ton of things that can be done on the same vps.

artsi0m··on Term-Lisp
term-lisp is a language for term list processing with first-class pattern matching, inspired by Pie, Haskel, Agda et al
artsi0m··on Aho – a Git implementation in Awk
I found an awesome-awk[1] page on github and is seems to be a little empty. Maybe we should contribute to it and bring some examples like subj of this HN post or ahrf[2], dedicated markup language for static site generators based on awk. I've started with adding one true awk and bioawk implementations.

[1]: https://github.com/freznicek/awesome-awk [2]: https://github.com/Ypnose/ahrf

artsi0m··on Aho – a Git implementation in Awk
Might be relevant:

sed-chess: https://news.ycombinator.com/item?id=37896854

awk-raycaster: https://github.com/TheMozg/awk-raycaster

artsi0m··on OPML is underrated
I would like to share opml, but at the same time I would like to have some of my subscription staying private. Would be cool to have some elisp or shell + xmlstarlet script to export only things that I would feel normal to share.
artsi0m··on Org-fc: orgmode flashcards with gawk as indexer
Org-fc is a spaced-repetition system for Emacs' org-mode.

It allows you to mark headlines in a file as "flashcards", turning pieces of knowledge you want to learn into a question-answer test.

These cards are reviewed at regular interval. After each review, a Repetition Spacing Algorithm is used to calculate the next interval based on how well you remembered the contents of the card.

artsi0m··on GitHub is preparing for IPv6 support for Github.com
Sorry, I thought that it would sound like a fine joke. Don't want to offend someone
artsi0m··on GitHub is preparing for IPv6 support for Github.com
I am not gonna read this postmortem, but post link to this HN thread as a proof of mass IPv6 adoption.
artsi0m··on ProofWiki: Online compendium of mathematical proofs
I remember findind this site when solving exercise of creating sign function for Z with arithmetic operators only. I used this[1] page to cheat and reimplement mod in C (by default % is rem) with defined zero. Unfortunately it doesn't helped me yet, but I still like this site.

[1]: https://proofwiki.org/wiki/Definition:Modulo_Operation/Modul...

artsi0m··on Modeless Vim
Emacs has a mode called cua-mode with keybindings thats more simillar to ones from other modern gui programms like browser.
artsi0m··on Modeless Vim
I use emacs and I respect emacs developers, but it is not originally emacs bindings: http://unix-kb.cat-v.org/
artsi0m··on OpenBSD KDE Plasma Desktop
It somehow happens that OpenBSD feels like an whole operating system rather than Linux distro built from various components. For example, when pledge(2) and unveil(2) appeared, many user-space programms got patched as soon as possible. You can see simillar process now, after pinsyscall(2) appeared and syscall(2) was removed.

I heard, that there is something simillar in FreeBSD with zstd compression.

For me cons is that you can't run some programms that depends on Linux kernel insides, like rr debugger, which depends on some specific of linux ptrace(2): https://github.com/rr-debugger/rr?tab=readme-ov-file#system-...

artsi0m··on OpenBSD KDE Plasma Desktop
You can edit /etc/firefox/unveil.main and add string like "~/Documents rwx" so it would be available from firefox
artsi0m··on OpenBSD KDE Plasma Desktop
But apparmor is more complex system and in fact is an RBAC. unveil(2) is much more easier in implementation and enforcing.
artsi0m··on OpenBSD KDE Plasma Desktop
OpenBSD is in fact already pretty much user-friendly. Installer is simple, althought an a textual interface. It comes with preinstalled X server and window managers fvwm and cwm. In the installer you can choose Xenodm to start automatically after boot, it would be your display manager and you can just simply login through it to fvwm. From here you can edit .xsession and choose any window manager you installed or pre-installed cwm.
artsi0m··on Dennis Ritchie on the priorities of && || vs. == etc. (1982)
Indeed. But lisp is much more than prefix notation.

Different notations like revers polish notation also easier to parse. You can evaluate RPN only using stack.

Also, recently I learned about thread-last macro in emacs lisp. Using it you can evaluate forms from left to right, and using it you can write less parenthesis.

artsi0m··on Dennis Ritchie on the priorities of && || vs. == etc. (1982)
Yes, sometimes logical AND called logical multiplication and logical OR called logical summation.

It seems clear for me, because I remember learning De Morgan's Laws in electronics class and from one specific level of Turing Complete game.

artsi0m··on The Art of Electronics (2015)
I used this book for studying for 3 semesters of university. I took Russian translation of 7 edition (second for English version) from uni's library.
artsi0m··on From Nand to Tetris (2017)
So, here the question I want to ask someone who dealt with this course:

How much of the topic of compilers is covered in this course? Have you built an optimizing compiler that creates binaries from a [relatively] high-level language such as C? Or you have just created an assembly for a specific architecture?

artsi0m··on From Nand to Tetris (2017)
As a backend web developer you can learn about the difference in pre-fork and polling model in web servers, which interconnected with c10k

http://www.kegel.com/c10k.html

This will give you ability to reason about the web server configuration you want to use.

But both fork(2) and epoll(7) [kqueue(2), iocp] would stay at low level relatively of place where you operate.

Don't know what to say about fronted though, but there are probably some new points of view on JS you can get by implementing it as an interpreter in courses like crafting interpreters.

artsi0m··on From Nand to Tetris (2017)
s/trigger/flip-flop/

I forget that in English it is more often called latch and that there are also flip-flops, two different types of what is called triggers in the East.

Page 1 of 2Next →