Ии как охуенно.

Правда немного почистить надо, но не беда.

Хм. Че-то у меня дерьмовое предчувствие. Может, зря я трафарет таким толстым сделал. Краска не хотела залезать, и ее пришлось лить больше.

Снял в итоге 646м, но это оставило разводы на обложке. Черт.

Надо напечатать новый трафарет, потоньше.

С более тонким трафаретом надпись вышла вполне неплохо, но вот сука эти разводы после растворителя на коже обложки - пиздец как обидно, факап лютый.

Ну, не секас, но переделывать это я уже не буду.

Вот, что вышло, короче. Не супер-счастлив тем, как это получилось, но у меня был один шанс. Запорол и пох, хоть как-то это читаемо.

@drequivalent Это настоящая книга, кстати, или плейсхолдер просто?

@drequivalent Что такое это? Ты написал эту книгу?

@JordiGH @morosophos Это книга, которую я пол-года назад напечатал (просто ради лулзов), и ломал голову, как оформить. Вот, получилось напечатать трафареты.

@drequivalent @morosophos А-га, понятно. А что думаешь о Rust языке? Ещё просто ради лулзов?

@JordiGH @morosophos Rust очень хорош, потенциально он может стать хорошей заменой С, но пока это не для меня, слишком замороченно.

Похожей парадигмой обладает Go, поэтому я, пожалуй, выучу его первым. Он как-то более человечный. К тому же его вроде как любит Брайан Керниган, а это не хухры-мухры. А там, глядишь, и до Rust дойдет.

@drequivalent @JordiGH Rust и Go очень разные и по мотивации создания, и по аудитории.

Go был создан престарелыми аксакалами юникса и С, когда они переутомились от C++, от кучи абстракций в нем и огромных времен компиляции. В результате вышел язык с достаточно жирным (но быстрым) рантаймом, с GC, с примитивами для многопоточности и с практически полным отсутствием всяких инструментов для абстракции. В результате код на Go досаточно многословен, нередко выглядит как копипаста. Система типов очень слабая, и хотя она лучше чем в дин. языках программирования, но далеко не всегда выручает. Есть null'ы и interface{} (тип, которому соответствует любой тип в языке). В результате Go не перетянул программеров с C/C++, а перетянул больше программеров с python'а и ruby, которые заманались с ошибками дин. типизации и с супер-медленными рантаймами.

@drequivalent @JordiGH Rust же другая история. Он изначально создавался как язык без райнтайма, без GC но с повышенными требованиями к безопасности (безопасности не в плане защиты от взломов, а в плане предохранения от ошибок работы с памятью и утечек открытых ресурсов). В результате в Rust'е замечательная система типов, "if it compiles then it works", прекрасная идея с borrow checking, отличные генерики, передовой подход к ООП. Подход к многопоточности в rust'е тоже немного другой. В нем нет примитивов для этого, все на библиотеках. Но при этом использование возможностей системы типов и борров чекинга делает работу с тредами безопасной. Сейчас еще на подходе async - будет совсем жирно.

В общем, го - неплохой рабочий инструмент созданный с чисто прагматическими целями и в целом выполняющий свою функцию (плюс еще библиотек там хватает). Rust - это принципиально новое направление в программировании, которое в кайф осваивать.

@morosophos @JordiGH Ну, блин, в том-то и дело. Кому-то хочется прежде всего охуенные внутренние механики (которые кроме тебя и чуваков из твоего проекта никто никогда не увидит) ну и может быть немного возможность низкоуровневого кодинга, а кому-то прежде всего хочется программы писать, и быстро.

Не, я не гоню на Раст, охуительный язык, но Go хватает в большинстве случаев, и поскольку сам питонист (у которого, в общем-то такая же философия - пиши сейчас, о тонкостях думай потом), сначала решил перекатиться на него.

@drequivalent @JordiGH Чтоб ты не думал, что я наврал про бойлерплейтность гошного кода, вот тебе для сравнения:

paste.rs/W4A.go

paste.rs/Yrh.rs

@morosophos @JordiGH Ну, типо он тут еще и исключения ловить пытается, половина кода этому посвящена. В твоем примере такого нет.

@drequivalent @JordiGH Растовый пример тоже ошибки обрабатывает (знаки вопроса означают "если метод отработал правильно, то идем дальше, если направильно - то возращаем ошибку, которую он вернул). При этом система типов тебе не позволит взять значение из метода если ты не обработал ошибку. В гошке ты можешь невозбранно ошибку проигнорировать, и передавать полученный nil дальше.

@drequivalent @JordiGH Вот здесь мужик норм все рассказал, в том числе и про ошибки. yager.io/programming/go.html

@drequivalent @JordiGH И да, от раста мне нужно не просто удовольствие от "механик", а то, что этим механики меня бьют по рукам когда я лажаю. После десятилетия кодинга на питоне и ночных стрессов на тему "не вылезет ли какая-то тривиальная описка в рантайме", это битье как-то особенно ценно.

@morosophos @JordiGH Ну, это да, Раст очень наказывает за всякие грешки.

@drequivalent @inhosin @alisa пора менять прозвище. #например drgutenbergincredible. И идти срамить всякие хексмопрессы 😁

@drequivalent
Может лучше в более красный цвет? А так - отличный лого. Насчет текста возможно шрифт маловат , а прорези большие. Или нет?

@drequivalent не, наоборот, это заебись. rust - ржавчина, добавляет к атмосфере

@vanyasem Ну, может быть. Я хотел вид старого советского учебника (поэтому синяя кожа и золотые буквы), но типа, в новом состянии все-таки.

@drequivalent Неплохой макет вышел. Что внутри?

@drequivalent книжку написал? у тебя 100500 постов про обложку, но я не могу найти исходный пост про содержимое

@drequivalent ну можно сделать таких разводов по всей обложке, вдруг придаст эффект старины

@armitage Дак они и есть по всей обложке, и да, видок это книженции придает несколько потасканный.

@drequivalent а я до сих пор видел только у центра

@drequivalent :( шестеренка выглядела так хорошо

Sign in to participate in the conversation
MastodonSocial.ru

Русская нода социальной сети "Мастодонт", части Fediverse - всемирной федерации социальных сетей. Зона общения, свободная от рекламы и шпионажа, теперь и в России.