Skip to content

Instantly share code, notes, and snippets.

View artsi0m's full-sized avatar

Artsiom Karakin artsi0m

  • Unemployed
  • Minsk
  • 22:52 (UTC +03:00)
View GitHub Profile
@kant2002
kant2002 / Урок из Цезиума.md
Created March 7, 2024 08:33
Урок из Цезиума

Урок из Цезиума

Цезиум дает мне кучу анти-уроков по архитектуре компиляторов. Это явно не самый эффективный способ построения компилятора, так как вечный рефакторинг деморализует даже оптимистов вроде меня. Потому попробую рассказать как выглядит лень и не желание учить теорию.

Есть такая маленькая особенность в С, это то что в main последний return не обязателен и компилятор может его сам вставить за программиста. Мы как большие прагматики, сперва сделали какой-то костыль, чтобы тестовые програмки которые мы писали проходили. Просто смотрели на наличие return в теле функции и если его не было, компилятор возмущался. у нас тогда не было даже нормальных циклов в свитчей, потому это была победа. Но пришли циклы и с ними новые вызовы, добрый человек взял и начал строить граф зависимости между стейтментами, и пытался найти все ли пути ведут к выходу. Зашибись, прогресс идет. Но кто же знал что бывают бесконечные циклы, в которых есть return. Новый алгоритм с графами сломался :(. Сломался он пото

@Yuliosity
Yuliosity / pld_beginners.md
Last active January 31, 2024 07:54
Устройство ЯП для новичков — правила чата

Устройство ЯП для новичков — правила чата 0.1.1

Чат задуман как ответвление от @LanguageDev и @CompilerDev как для начинающих, которые стесняются тамошней суровой атмосферы, так и для альтруистов-профессионалов, готовых им помогать.

Можно:

  • Обсуждать языки программирования, компиляторы и всякие смежные темы (виртуальные машины, отладчики, линковщики, статические анализаторы, LSP и прочие плагины для IDE, ...).
  • Задавать любые вопросы по всем этим темам, не боясь, что бывалым они могут показаться глупыми.

С осторожностью:

@madwareru
madwareru / EOPL3_week_1.md
Last active November 4, 2023 16:29
пост-отзыв по книге Essentials Of Programming Languages после первой неполной недели чтения

Итак, пост-отзыв по EOPL3 после первой неполной недели чтения.

Из двух глав осилил пока только первую, где в основном столкнулся с проблематикой задания различных наборов данных через индукцию, как и было обещано в названии 🙂

Обычно, множества предлагается задавать через т.н. list comprehensions, которые есть во многих ФП языках типа хаскеля, а так же есть в python, C#, Kotlin и т.д.

Примеры ниже (на python, C# и Kotlin соответственно):

@hack-tramp
hack-tramp / AVRAwMSVS.txt
Last active May 29, 2024 16:30
How to compile AVRA with MS Visual Studio 2019
How to compile AVRA https://github.com/Ro5bert/avra
with MS Visual Studio 2019
New Project > Console Application > C++
(create it empty without any files)
Import all .c and .h files from AVRA src folder
In file.c, you will need to change line
#include <unistd.h> into:
@exocode
exocode / kicad-cheat-sheet.md
Created April 6, 2019 20:18
KiCad short manual and cheat sheet

Flow

  1. Design Circuit
  2. Create Symbols (library editor)
  3. Schematic capture (eeschema)
  4. Create footprints (footprint editor)
  5. Generate Netlist (cvpcb)
  6. Board layout (pcbnew)
  7. Production (gerbview)
  8. Generate BOM (Digi-Key)
@voutilad
voutilad / vmm-alpine.sh
Created May 29, 2017 15:16
Installing Alpine Linux in OpenBSD's VMM Hypervisor
# Assuming you're a regular user that has doas allowances for vmctl
mkdir -p ~/vmm
cd ~/vmm
# Grab the the one of the virt iso's of Alpine Linux
curl https://nl.alpinelinux.org/alpine/v3.6/releases/x86_64/alpine-virt-3.6.0-x86_64.iso -o alpine-virt-3.6.0-x86_64.iso
# Make a new virtual disk image, change the size as needed
vmctl create alpine-virt.img -s 6G
@nicowilliams
nicowilliams / fork-is-evil-vfork-is-good-afork-would-be-better.md
Last active May 18, 2024 14:10
fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid

I recently happened upon a very interesting implementation of popen() (different API, same idea) called popen-noshell using clone(2), and so I opened an issue requesting use of vfork(2) or posix_spawn() for portability. It turns out that on Linux there's an important advantage to using clone(2). I think I should capture the things I wrote there in a better place. A gist, a blog, whatever.

This is not a paper. I assume reader familiarity with fork() in particular and Unix in general, though, of course, I link to relevant wiki pages, so if the unfamiliar reader is willing to go down the rabbit hole, they should be able to come ou

@ishu3101
ishu3101 / gist_to_github_repo.md
Created November 24, 2015 08:35
Transfer a gist to a GitHub repository

Transfer a gist to a GitHub repository

clone the gist

git clone https://gist.github.com/ishu3101/6fb35afd237e42ef25f9

rename the directory

mv 6fb35afd237e42ef25f9 ConvertTo-Markdown

change the working directory to the newly renamed directory

cd ConvertTo-Markdown

@gonejack
gonejack / mapper-0.74.map
Last active February 26, 2024 11:19
Colemak keymap for DOSBox, put this file to %LOCALAPPDATA%\DOSBox
hand_shutdown "key 290 mod1"
hand_capmouse "key 291 mod1"
hand_fullscr "key 13 mod2"
hand_pause "key 19 mod2"
hand_mapper "key 282 mod1"
hand_speedlock "key 293 mod2"
hand_recwave "key 287 mod1"
hand_caprawmidi "key 289 mod1 mod2"
hand_scrshot "key 286 mod1"
hand_video "key 286 mod1 mod2"