Максим Курепов
552 subscribers
130 photos
9 videos
1 file
57 links
Всё нормально, друзья — дальше будет хуже
Download Telegram
Forwarded from Авва
Евгений Финкель

друг мой
мы с тобой научились
жить как будто ничего не случилось

остаётся
нам с тобой научиться
жить как будто ничего не случится
9
Есть такой мем про программистов, что они всё делают очень долго. Мол, приходит продакт-менеджер к разработчику и говорит: «Нам нужно поменять кавычки в заголовке на лендинге», а разработчик отвечает: «Через полгода будет сделано».

Это, конечно, просто шутка, но она появилась не на пустом месте. В этом посте я постараюсь оправдаться объснить, почему мы, разработчики, такие медленные.


Почему разработчики такие медленные

Возмём ситуацию выше: продакт приходит к разработчику и просит поменять кавычки. Почему эта задача занимает так много времени?

Первая причина — разработчик может не знать, где именно нужно поменять текст. Для пользователя текст нужно поменять на странице. Но для разработчика эта страница — это не что-то целостное. Текст может быть вписан прямо в коде, может приходить с бэкенда из базы и быть там «захардкожен», а может, он указывается в какой-то админке.

Первое, что нужно сделать разрабу — это понять, а где вообще нужно менять текст. И эта задача может занять сколько угодно времени.

Вторая причина — сложность выкатки изменений. Когда неразработчик слышит «поменять кавычки», он представляет себе что-то вроде гугл-дока, в котором помимо текста есть код, в котором нужно удалить 2 символа и на их место вписать два других. Ну и нажать «Сохранить», конечно. На самом деле всё устроено иначе.

Обычно код существует сразу в нескольких экземплярах. Есть код на компьютере разработчика, с которым тот непосредственно работает. Есть код в репозитории — это как бы общее хранилище кода. Есть код, который запущен на сервере. Всё это — разные файлы в разных местах. И изменения нужно произвести в каждом из них.

Поэтому вот примерный список действий, который нужно произвести разработчику, чтобы поменять кавычки (заметьте — само изменение кода тут даже не учтено):
1. Собрать проект на своём компьютере, запустить и протестировать.
2. Закинуть изменения кода в общее хранилище, a.k.a. репозиторий (например, в ГитХаб).
3. Подключиться к серверу и перейти в папку проекта.
4. Забрать изменения из Гитхаба.
5. Собрать проект.
6. Перезапустить проект.

По-хорошему, всё это нужно сделать 2 раза: один раз для тестового окружения и второй — для продакшена. Одна только сборка может занимать несколько минут — и это если всё хорошо. На деле же часто оказывается, что не хватает какой-то переменной окружения. Или база данных в тестовой среде называется не так, как в продакшен среде. Или всё работает у разработчика на «маке», а на «линуксе» на сервере не хочет запускаться из-за другой архитектуры.

Кроме того, на любом другом шаге могут возникнуть трудности. Например, может не получаться забрать изменения из Гитхаба, потому что нет нужного ключа. А чтобы получить этот ключ, нужны права, которых у разработчика нет. И нужно идти искать того, у кого такие права есть и кто готов дать ключ.

На третью причину не буду тратить много букв. Это классическая ситуация «одно починили, другое сломалось». Системы написаны людьми, иногда — в очень сжатые сроки. Поэтому в них постоянно возникают незапланированные проблемы, которые приходится решать прямо сейчас, двигая все запланированные проблемы.

Короче говоря, даже для самого мизерного измеенения часто приходится совершать огромное количество действий. Поэтому разработчики вовсе не медленные: просто наша работа не всегда очевидна.

Кстати, количество времени на выкатку и вероятность ошибок мне удалось значительно сократить. Если вам интересно, как именно это я сделал, или вообще интересно читать о том, чем занимаются разрабочики, — ставьте реакцию к этому посту или пишите комменты.

И как всегда: всем хорошей пятницы❤️
146😁3
Что такое счастье по «Гарри Поттеру»

Я перечитываю Гарри Поттера. В детстве это была моя любимая книга, и вот сейчас, в 30 лет, я решил её перечитать. Вчера перед сном я дошёл до главы «Зеркало Еиналеж».


Краткий пересказ главы для тех, кто не читал

Гарри Поттер ходил ночью по замку «Хогвартс» и набрёл на комнату, в которой стояло большое красивое зеркало. Заглянув в это зеркало, он увидел себя в окружении своих умерших родителей, бабушек и дедушек. Гарри вырос в приёмной семье, где его никто не любил, поэтому, увидев своих родителей рядом, он был очарован этой сценой. Он стал приходить смотреть в это зеркало каждую ночь.

Когда Гарри в очередной раз пришёл в комнату с зеркалом, в этой комнате был Дамблдор — директор школы. Тот объяснил Гарри, что зеркало показывает самые сокровенные желания того, кто смотрит в него. Зеркало, по словам Дамблдора, дарует наслаждение, но не приносит счастья: многие, смотрели в это зеркало днями напролёт и сходили с ума. Либо из-за несбыточности того, что они видели. Либо из-за того, что не понимали, гарантированно ли исполнится то, что показывает зеркало.

После этого эпизода зеркало унесли из той комнаты, и Гарри больше не мог ходить и смотреть в него. Однако, он снова взглянул в Зеркало Еиналеж в самом конце книги: во время схватки с Волан-де-Мортом Гарри увидел себя, держащего философский камень. Именно за филососфским камнем охотился Волан-де-Морт, но не мог его получить.

Когда Волан-де-Морт был побеждён, Дамблдор сказал Гарри, что камень мог получить только тот, кто хотел его получить, но не хотел им воспользоваться. То есть хотел камень, но не для себя.


О чём, по моему мнению, эта глава

Мне кажется, этот эпизод просто но изящно иллюстрирует одну идею. Мы часто хотим в жизни того, чего лишены. Но желание того, чего у нас никогда не было, не приносит нам счастья.

Родители Гарри умерли, когда он был младенцем, он был лишён родительской любви, и поэтому именно родительскую любовь он видел в Зеркале Еиналеж. Но это не делало его счастливым: наоборот, он стал замкнутым, его перестали волновать вопросы, которые волоновали до встречи с Зеркалом. Он стал жить видениями в зеркале, и какими бы сладостными эти видения ни были, они оказывались не чем иным как тоской по утраченному — тоской по родительской любви.

Желание утраченно не приносит счасться. Но что же тогда его приносит? Почему Гарри получил философский камень во время финальной битвы с Волан-де-Мортом? Я думаю, потому, что Гарри не хотел ничего приобрести. Он страстно хотел сохранить то, что ему было дорого: своих друзей, Хогвартс, весь волшебный мир, ставший ему домом. Для него было предельно важно не дать злу разрушить всё это — всё то, что уже было у Гарри.

То, чему меня научил Гарри Поттер, хорошо выражено во фразе из фильма «Рецепт Любви» (там она приписывается Августину): «Счастье — это продолжать желать того, что уже тебе принадлежит». Так что желаю себе и вам желать именно этого ❤️
25
Как музыка помогала мне переносить детство

В этом посте будут мои детские переживания и немножко Лакана. Итак, погнали.

Когда я учился в старших классах школы, я любил тяжёлую музыку. Мне нравились такие группы как Limp Bizkit, Slipknot, SoaD, Deftones и Korn. Уже давно я эту музыку не слушал, а тут вдруг захотелось вернуться и переслушать. И это прослушивание позволило мне по-новому взглянуть на себя и своё прошлое.


Как музыка помогала переживать ссоры в семье

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

Не нужно быть психоаналитиком, чтобы заметить у человека, который слушает такую мызыку, желаение переживать эти эмоции. А точнее — возвращаться к ним.
122
Настя с ребятами такие крутые штуки делает: если бы сам был дизайнером, рвался бы к ней в команду.

За репост 😘🫶
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Постов пока нет, зато есть мемы, которые меня рассмешили
97😁6
Делюсь результатом работы: интерфейсом для создания сертификатов.

У Вани Замесина есть курс «Что делать, когда жопа». На этом курсе Ваня делится своим опытом и мыслями, основанными на иследованиях, о том, как выбираться из трудных жизненных ситуаций. Я уже писал об этом курсе, когда делился сделанным мною лендингом. Теперь по этому же курсу возникла другая задача.

Звучала задача так: наши студенты курса «Что делать, когда жопа» не получают никаких сертификатов. Оно и понятно — вряд ли где-то при приёме на работу уместно утверждать, что ты сертифицированный вылезатель из жоп. Но в то же время, сертификат носит символический характер. Он как бы доказывает, что ты завершил некий этап, научился чему-то новому. Вроде глупость, но не глупость: не стоит недооценивать ритуалы и символы.

С точки зрения бизнеса польза вполне понятна: люди будут генерировать сертификаты → делиться ими в соцсетях → создавать трафик нам на сайт. Профит.

Так вот, мы придумали дать возможность студентам самостоятельно генерировать себе сертификаты. Мол, заходишь, заполняешь форму и получаешь сертификат. Как это всё работает скину в первый коммент к этому посту. Сам интерфейс покрутить дать не могу — он закрыт авторизацией. Нужно пройти курс, чтобы иметь возможность выпустить сертификат.

Зато могу поделиться готовым сертификатом. Вот он: https://zamesin.ru/shithappens/certificates/certificate?id=clz8t3q65000fg0c8iss7x6df

Ставьте лайк, если хотите знать, как делать вот такие блоки, шоб текст подстраивался
10😁71
Что имеем не храним, потерявши — плачем

В предыдущем посте делился результатом своей работы: интерфейсом для создания сертификатов. Когда делал эту работу, нужно было как-то создавать картинки из вёрстки.

Когда пользователь создаёт сертификат, он видит hmtl-элемент: то есть картинки и текст, которые расположены по попределённым правилам. И из этого набора элементов нужно получить картинку: при этом все картинки и текст должны быть того же размера и располагаться в тех же местах, где они находились в html-элементе.

Для решения этой задачи я использовал библиотеку Pixi.js. И немало говна съел. И многому научился, выполняя эту задачу.


Создание текста из нот изи

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

В каком-то смысле так и есть. Весь интернет (веб-страницы) построен на языке html. Он позволяет размечать текст: то есть как бы говорить компьютеру: «сделай вот тут блок такой-то ширины, с таким-то текстом, а последнее слово напиши курсивом».

Не пугайтесь, сейчас не будет урока по программированию, но мне нужен пример, чтобы вам была понятна вся моя дальнейшая боль:

<p style='fontSize: 16px'>
Какой-то <i>текст<i>
</p>


Вот такой код создаст текст размером 16 пикселей, у котрого последнее слово написано курсивом. И ключ к пониманию моей боли: «последнее слово написано курсивом».

Посмотрите на сертификат из предыдущего поста. Там текст «Курс Вани Замесина „Что делать, когда жопа“ помог мне» написан обычным шрифтом, а текст самого достижения — курсивом.

Эта задача кажется до смешного простой. Я же вот сейчас в телеграме могу просто выделить текст и сделать его хоть жирным, хоть курсивом, хоть перечёркнутым. Неужели нельзя так же сделать и на сертификате?

Ответ — нет, нельзя. Точнее сказать: нельзя этого сделать стандартными средствами.

Библиотека Pixi.js, которую я использовал для создания изображения из html-элемента позволяет создавать текстовые блоки. Но у всего текстового блока может быть только какой-то один стиль. Можно сделать курсивный текст, но тогда он весь должен быть курсивным.


Как я решал задачу со стилем текста

Чтобы решить задачу со стилизацией текста, я пошёл следующим путём.
1. Я разбил текст на две части: постоянную и изменяющуюся. Описал стили для каждой части.
2. Написал функцию, которая разбивала любой переденный ей текст по словам.
3. Для каждого слова она применяла переданный ей стиль и вставляла текст на экран.
4. Замеряла, где заканчивается только что добавленное слово.
5. Добавляла пробел, вставляла следующее слово и проверяла, не вышло ли это слово за пределы экрана.
6. Если слово выходило за пределы экрана, функция переставляла это слово на строку ниже.

Короче говоря, вместо того, чтобы просто передать текст, как мы привыкли делать это в гугл-доке, мне пришлось рассчитывать координату каждого слова в отдельности. Причём текст ведь ещё нужно отцентровать: никогда не знаешь, где должна начинаться строка, если она отцентрована, ведь это зависит от длины строки.

В общем, было интересно и главное — радостно, когда задачу-таки удалось выполнить. Я испытывал детский восторг, когда все слова в нужном виде встали в нужные места.

Но ещё что важно, я понял — насколько же удобен html. Его возможности казались мне чем-то самим собой разумеющимся до тех пор, пока не пришлось выполнять работу html руками.

Короче, мораль: пока не лишишься привычного удобства, даже не будешь этого удобства замечать. Так уж мы устроены: что имеем, не храним, потерявши — плачем.


P. S.
Надо будет на досуге какой-нибудь драйвер для usb написать
7😁33
Игра с чёртом

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

Итак, представьте, что вам явился всемогущий чёрт. И чёрт вынуждает вас сыграть с ним в игру. Игра такая: он задаёт вам вопрос, вы на него отвечаете. Если отвечаете правильно — он вас отпускает. Если ошибаетесь — он забирает у вас что-то самое ценное, что у вас есть (жизнь, например).

Поскольку чёрт всемогущ, он делает вас скидку. Он предлагает вас самостоятельно выбрать, на какой вопрос вы будете отвечать. Но выбирать вы можете не из каких бы то ни было вопросов, а один из двух предложенных:

1. Некоторые события не имеют причины.
2. Некоторые тела не притягиваются к другим телам.

Собственно мой вопрос: какой из этих двух вопросов вы выберете и почему? Выбирайте вариант и пишите в комментах, почему вы выборали один вариант, а не другой. Интересно, какой вопрос окажется более популярным.
32
Ваш тип личности

Я не скажу, кто вы из Смешариков, но могу обратить внимание на то, как вы воспринимаете действительность. Предыдцщий опрос как раз был тестом на тип личности. Если вы ещё не проголосовали — сперва проголосуйте, а потом читайте дальше для чистоты эксперимента. Второго шанса не будет!

Итак, я описал вам игру с чёртом. Чёрт грозится отнять у вас самое ценное, так что имеет смысл постараться обыграть чёрта, то есть правильно ответить на его вопрос. Он предлагает вам два вопроса на выбор, ни на один из которых вы не можете знать правильного ответа.

Получается, чтобы выиграть у чёрта, нужно выбирать тот вопрос, на который вы ответите правильно с бОльшей вероятностью. Поэтому люди делятся на два типа:
- те, кто считают, что скорее ответят верно на первый вопрос;
- и те, — кто на второй.

В чём же разница: а в том, что для вас является источником истины. Смотрите, в первом вопросе речь идёт о чисто мыслимых вещах: о событиях и их причинах. Если мы ответим на этот вопрос, а чёрт скажет, что мы ошиблись, ему придётся логически доказать нам, что мы не правы. Другого пути у чёрта не будет.

Во втором вопросе речь идёт о факте внешнего мира. Если мы ответим на этот вопрос неверно, чёрту нужно будет поставить эксперимент и его результатами доказать, что мы ошиблись.

Отсюда вытекают две позиции относительно истины:

1. Истинно то, что логически непротиворечиво. Источник истины — разум и законы, по которым он функционирует. Такая позиция называется рационализмом.
2. Истинно то, что проверено на практике. Источник истины — опыт. Такая позиция называется эмпиризмом.

Получилось, что рационалистов у нас больше (что неожиданно, если честно).

А как вы думаете, кто из Смешариков мог бы символизировать рационализм, а кто — эмпиризм?
5😁53
8
Про арест Дурова

Вчера во Франции арестовали Пашу Дурова. Его обвиняют в распространении наркотиков, детского порно и вообще во всех преступлениях, для совершения которых преступники использовали Телегу (то есть секретные чаты).


Если бы это было в РФ, всё было бы ясно

Для русского человека это событие интересно, потому что двояко. Если бы подобный прецедент произошёл в России, то отношение к нему было бы, я думаю однозначным. Оно было бы примерно таким: российская власть хочет задушить всякую политическую дискуссию. Телеграм — площадка для свободного общения. Властям плевать на безопасноть, единственная безопасность, о которой они пекутся — это их собственная безопасность от всякого оппозиционного мнения.

Конечно, такое мнение было бы не у каждого, но, готов спорить, оно было бы доминирующим в российском инфополе. Но поскольку арест произошёл не в России, а во Франции — западной державе, оплоте демократии и прав человека — относиться к нему аналогично не получается. И на это есть причны.

Действительно, во Франции нет никакой политической дискуссии в телеграме. У меня у самого во Франции есть родственники, и они установили Телегу, чтобы общаться со мной. Друг с другом они там не общаются или общаются крайне редко. Телеграм во Франции не используется для распространения оппозиционного мнения — там для этого есть телевизор. Поэтому сложно заподозрить французские власти в том же, в чём принято подозревать российские.

Приходится признать, что власти Франции действительно нацелены на борьбу с преступностью и видят в Телеграме пособника этой преступности. И поэтому предъявляют обвинение Дурову.


Всё же Французы закручивают гайки

Что же получается? Власти Франции молодцы и задерживают по делу (в отличие от властей РФ, которые в аналогичной ситуации были бы кровавыми тиранами)? Я думаю, что нет.

Вся логика обвинения строится на том, что государство выполняет особые общественные функции и потому должно обладать особыми правами. Или вернее — оно наделяет само себя этим особыми правами. Государство может делать то, чего остальные агенты общественных отношений делать не могут: например, только у государства есть право лишать человека свободы (а в некоторых странах — и жизни).

Таким образом, перед нами встаёт вопрос: должно ли государство иметь право на чтение чужой личной переписки? Или оно должно отказаться от этого права? Что важнее: безопасность или неприкосновенность личной жизни? Ответ на этот вопрос — это выбор, за кого вы в конфликте между Дуровым и Францией.

Я в этом вопросе за неприконсновенность личной жизни. Дело в том, что даже несмотря на приватность секретных чатов, у властей всё ещё есть инструменты для поимки преступников. Доказательство тому — история с закрытием маркетплейса по продаже наркотиков «Гидра». Гидра была вдоль и поперёк шифрована-перешифрована, но немецкие спецслужбы умудрились-таки вычислить организаторов и закрыть площадку.

Так что, закрывая Дурова, Французские власти расписываются в своей технологической импотенции. Они не могут найти нужных инструментов для борьбы с преступностью и требуют пересмотра правил игры, чтобы им было проще «играть». Вместо того, чтобы закрывать людей вроде Дурова, лучше бы нанимали их для поимки преступников.

А на чьей вы стороне?
😊 — на сторне французского государства
❤️ — на стороне Дурова
Please open Telegram to view this post
VIEW IN TELEGRAM
382
Вчера совершил прыжок с парашютом

Это было прикольно: свободное падение очень необычная штука. Как будто под тобой гугл-мэпс зумится, но плавно, без дурацких перерисовок между масштабами.

Вот что было неожиданного:
1. Прыжок — это классно, но это не 1000 оргазмов, как некоторые описывают. Может, конечно, это только у меня так, но кажется, что рассказы про 1000 оргазмов — это примерно те же рассказы, что у бати с рыбалки про «воооот такую щуку».
2. Это не страшно. Было 2 самых страшных момента: когда я записывался на прыжок и когда ехал в такси на аэродром. Когда уже сел в самолёт и прыгал, чувствовал себя довольно спокойно. В общем, со многим в жизни так: ожидание намного тервожнее самого действия.
3. Во время прыжка сильно закладывает уши. У меня в целом их всегда закладывает в самолёте, тут то же самое, только сильнее. Так что спускался на парашюте до земли я в почти полной глухоте.

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