1.83K subscribers
3.3K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
The After Times
Photo
5. Синтаксис.
Да, я сказал это — у RE уродливый синтаксис.
Причём он не был бы настолько уродливым, если бы не необходимость в двойном экранировании. Сначала слеш, чтобы вставить в RE спецсимвол. Потом ещё один, чтобы этот слеш распознался в строке именно как слеш, а не спецсимвол. Да, с сырыми строковыми литералами проще. Если они, конечно, есть в ЯП.
Скобок много. Группировку за маму, группировку за папу. Хочешь скобку как символ? Ставь ещё один слеш. И ещё один, потому что экранирование в твоём ЯП. Ммммм, обожаю кашу из слешей и спецсимволов по утрам.
А ещё эта чувствительность к пробельным символам. Хочешь разнести на несколько строк, добавить комментариев? Ну, давай, только включи спецфлаг в начале. Если, конечно, используемая тобой либа это поддерживает.
Или вот ещё классы символов — с двойными квадратными скобками и двоеточиями на концах. Максимально вербозно, максимально уродливо, чтобы быть уверенным, что ты понятное имя вместо пачки диапазонов будешь использовать поменьше.
Но топ, конечно — это отрицание. Как нужно показать, что нужно, чтобы не матчился набор символов? Поставь ^. Только не снаружи квадратных скобок, а внутри. Больше граничных случаев богу граничных случаев! Уверен, что потом сможешь прочитать то, что сам написал неделю назад?

6. Тут должна была быть лекция на тему того, что регулярные выражения могут парсить только регулярные языки и потому не могут распарсить, скажем, HTML, но в силу того, что по факту то, что в программировании называют регулярными выражениями — это, как правило, различные расширения, делающие язык RE более выразительным, она была устранена ещё до написания

7. RE толком не отлаживаются.
Если что-то идёт не так — можно лишь тешить себя надеждами, что ты найдёшь ошибку при помощи тестов (которые почему-то не поймали эту ошибку ранее) и собственного пристального взгляда.
Говоришь, отладчик подцепишь? Да у тебя программа внутри скомпилированного RE. Естественно, отладчик по шагам этой программы ходить не будет, только по шагам ЯП, который его интерпретирует. Будешь отлаживать программу, пока отлаживаешь программу. we-need-to-go-deeper.jpg

Короче
Игрушка дьявола, дрянь, на которую подсаживаются, как на наркотик, несерьёзная вещь, которую вдруг начали широко использовать неиронично — это всё про Javascript. То есть, простите, регулярные выражения. Я надеюсь (это, если что, фигура речи такая — на самом деле я ничерта не надеюсь, что могу кого-то как-то изменить — я не евангелист, не спикер на конференциях, не Боб Мартин и не Бугаенко, не даже чей-нибудь завалящий тимлид — просто парень в интернете, который пишет о чём-то, в чём якобы разбирается — одним словом, диванный эксперт от мира айти), что вы все поняли, насколько эта плохая вещь и что вы никогда не будете её использовать и не будете давать её детям. Даже чужим.

P. S.: если вам показалось, что это #бомбёжкипост, то вам не показалось.
Forwarded from Shady Bytes
99,9999% утра пытаюсь придумать шутку про SRE, но у меня не получается.
#prog #web

WISIWYG-редактор markdown на javascript с открытым исходным кодом.

simplemde.com
#prog

Распространённые задачи, которые вы хотите сделать с помощью git, и как их достичь.

stu2b50.dev/posts/things-you-wante9665
#prog #rust

Вафля продолжает насиловать раст
Forwarded from мне не нравится реальность (вафель 🧇)
Обещал подробности, вот они.

Ещё позавчера ночь мне пришла идея о том, что можно сделать хитрую структуру, которая будет как slice ([_]) но только массив строк, которые будут хранится inline. Полезность такой структуры мне ещё предстоит выяснить, но пока что выглядит многообещающе.

Если кратко, то у меня получилась структура вида
struct Strs {
len: usize,
buf: [u8],
}

len
— количество хранимых строк, buf — все данные, а именно: индексы строк и сами строки. Приправлено это знатным слоем unsafe{}.

Поскольку структура !Sized, использовать её можно только за каким-то указателем. Изначально предполагался Arc, но в целом может быть и Box, и Rc, и даже обычная ссылка.

Репозиторий тут: [strs]
Смотрите на свой страх и риск, там всё очень сырое. Работы ещё оооочень много :)
А вы знаете, что если написать цитаты на латыни в прошедшем времени, получатся великолепные эпитафии? ☠️

Мыслил, следовательно существовал.
Учился не для школы, а для жизни.
В здоровом теле имел здоровый дух.
Лечил больного, а не болезнь.
Не навредил.
Всё своё носил с собой.
О вкусах не спорил.
Познал самого себя.
Помнил о смерти.
Пока дышал – надеялся.
Светя другим, сгорел.
#prog

TIL, что мьютексы из POSIX threads нельзя перемещать.

Once a mutex is created, it cannot be validly copied or moved to a new location. If the mutex is copied or moved to a new location, the new object is not valid and should not be used. Any attempt to use the invalid object will produce unpredictable results.

Здесь. Что ж, это объясняет, почему мьютексы из стандартной библиотеки Rust боксят нативные мьютексы.
Forwarded from Гоферы думают
Forwarded from You Had No Job
Поправь опечатку:

• Хейт миддл: всё технологии говно, коллеги — чудаки, раньше было лучше
• Хайп миддл: перепишет фронт на Расте, устал от микросервисов и использует макросервисы
• Найт миддл: обожает томатный смузи, никогда не появлялся на утреннем дейли
В программировании я придерживаюсь SOLID:
S - Just
O - Rewrite
L - It
I - In
D - Rust
документация к git, идентичная натуральной: https://git-man-page-generator.lokaltog.net/
#prog #go

Замечательный канал, всем рекомендую.

@golang_the_best