2023-01-04

Русалочии диаграммы

Давно использую так называемые mermaid diagrams - специальное расширение для языка markdown которое позволяет рисовать разные диаграммы. Mermaid позволяет рисовать блок-схемы, диаграммы классов, диаграммы Ганта, Гит-диаграммы и многие другие.

Такие диаграммы поддерживаются нативно в Gitlab и IntelliJ IDE. В тех случаях когда я хочу использовать mermaid диаграммы там где они не поддерживаются я просто вставляю заранее сохраненную диаграмму как статическое изображение. Но оказывается есть способ лучше.

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

Сервис позволяет при желании экспортировать полученные файлы в виде статического файла.

 

Оставить комментарий

 
  2022-12-31

Вырезатель снежинок

Каждый год люди украшают жилища к новому году. Самым простым украшениям были и остаются бумажные снежинки. Складываешь бумажный лист в несколько раз, вырезаешь узор - снежинка готова! Есть люди, которые умеют вырезать красивые снежинки, есть те которые это делать не умеют. Я отношусь к последним. Но зато я умею пользоваться компьютером - наверняка кто-нибудь уже написал онлайн редактор снежинок, чтобы можно было перед тем как вырезать снежинку посмотреть как она будет выглядеть? И такая программа есть!

Нашел прикольную программу для вырезания снежинок.

 

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

С Новым Годом!!!

 

Оставить комментарий

 
  2022-12-30

Книги которые мне понравились в 2022 году

В конце года принято подводить итоги. Вот книги из прочитанных, которые мне понравились в этом году:

Сергей Лукьяненко "Семь Дней до Мегидо"

Рептилоиды, пришельцы, герой спасающий принцессу. Все как я люблю.

Сергей Лукьяненко "Три Дня Индиго"

Продолжение предыдущего романа с хеппи эндом.

Алексей Калугин, серия Цвет Крови": 1. Заглянувшие в бездну, 2. Блуждающий разум, 3. Дикие дни,

Фантастика, мистика, хорошие вампиры, плохие диктаторы.

Алексей Калугин "Переговорщик"

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

Евгений Южин "Инженер"

Фентези про попаданцев, техномагия и параллельные миры.

Слава Курилов: "Один В Океане"

История человека сбежавшего из СССР спрыгнув с океанского лайнера. Курилов четыре дня плыл в океане пока не добрался до ближайшей земли.

Robert C. Martin. "Clean Architecture"

Классика про то как нужно подходить к проектированию сложных систем

Danniel Kahneman "Thinking, Fast and Slow"

Мировая классика. Самая цитируемая книга про поведение людей. Книга сделала переворот в понимании того что такое человек. Исследование положило начало десяткам прикладных направлений в самых разных областях человеческой деятельности.

Steven Pinker "Rationality"

Последняя книга Стивена Пинкера, про то как люди добиваются таких высот в одних областях, при этом оставаясь, по сути, умными животными в других.

Марк Гоулстон "Как разговаривать с мудаками"

На самом деле, книга называется по-английски "Talking to Crazy: How to Deal with the Irrational and Impossible People in Your Life" - говорим с психами: как иметь дело с иррациональными и невозможными людьми в вашей жизни. Очень полезная книга в современное время.

Matthew Skelton "Team Topologies"

Книга рассказывает о том какие нужно формировать команды из специалистов для получения более предсказуемого результата в зависимости от типа проектов. 

Jonathan Gottschall "The Storytelling Animal"

Книга про рассказывание историй. Понравилась.

David Allen "Getting Things Done"

Суперкнига про то как успевать больше и при этом получать кайф.

Джеймс Клир "Атомные Привычки"

Книга про то как приобрести хорошие привычи и отказаться от плохих. Очень понравилась.

Максим Ильяхов, Людмила Сарычева "Пиши Сокращай"

В школе я ненавидел русский язык за его сложность и нелогичность. Максим объяснил почему язык это важно и как на самом деле нужно его использовать.

Richard Schwarz, Martha Sweezy "Internal Family Systems Therapy"

Открытие 2022 года. Книга, еще не прочитанная до конца, но уже превернувшая мое представление о людях. Дик Шварц обнаружил, что в каждом из нас живет множество субличностей, каждая из которых имеет свои цели и задачи. Модель представленная автором ставит на свои места моменты в психологии, которые всегда казались мне странными и которые, через призму IFS теперь выглядят логичными и понятными.

В новом 2023 году нужно будет налечь на классические книги по программированию и архитектуре. Среди прочитанных в этом году я могу вспомнить только одну Роберта Мартина. Будем это исправлять.

 

Коментариев: 1

 
  2022-12-28

Дополнительные мониторы к ноутбуку

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

Один монитор прикрутил в комнату дочке. Она часто работает за ноутбуком, а в такой конфигурации ноутбук можно спрятать за монитор и на столе особождается дополнительное место.

Второй монитор прикрутил себе на рабочее место:

Теперь я могу работать с дополнительным монитором. Очень круто получилось!

 

Оставить комментарий

 
  2022-12-25

Над костром пролетает снежинка

Сегодня в голове весь день играет "Над костром пролетает снежинка" из спектакля "День радио".

Хорошая ведь песня:

 

Оставить комментарий

 
  2022-12-24

Цвет крови

"– Сун-Цзы пишет, что вступать в сражение следует, только имея значительный перевес в военной силе.
– Сун-Цзы писал о войне! А захват пансионата, в котором нет никого, кроме десятка охранников, – это спецоперация! Понимаете разницу?"

Очень понравилась серия книг Алексея Калугина "Цвет крови".

Последняя из книг серии была написана пять лет назад, но события, если опустить фантастическую часть, как будто происходят прямо сегодня.

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

Закончил персонаж не очень хорошо — собственное окружение помогло ему уйти на покой при помощи платка и шкатулки.

Интересно, кто мог быть реальным прототипом этого персонажа? Разделит ли этот прототип судьбу своего книжного двойника?

 

Оставить комментарий

 
  2022-12-18

Bad Apple!!

Видеоклип на песню «Bad Apple!!» группы Alstroemeria Records был создан в 2009 году и с тех пор стал одним из наиболее известных произведений подобного рода среди Тохо-сообщества, а также прославился и за его пределами. Отсюда

На сегодня этот ролик просмотрели почти 38 миллионов раз! Если текст под роликом верен, а не верить ему оснований нет, то автору ролика на момент его создания было пятнадцать лет. Впечатляет.

Так как ролик чёрно-белый он занимает очень мало места в памяти компьютера. Благодаря маленькому размеру его можно запустить даже на Arduino. Умельцы запускают его на самых разных дисплеях. Я нашел примеры для OLED и для газоразрядного дисплея. Есть пример даже на овечках в Майнкрафте.

 

Оставить комментарий

 
  2022-12-16

В Берлине лопнул гиганский аквариум

"Прозрачный цилиндр высотой 16 и шириной 12 метров является крупнейшим в мире отдельно расположенным аквариумом. Миллион литров морской воды, общий вес 2000 тонн."

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

 

Оставить комментарий

 
  2022-12-15

Дофаминовая аффирмация

Нам часто приходится делать то, что мы должны делать — работать, учиться, делать домашние дела и тому подобное. Когда мы что-то делаем, и у нас это получается — мы получаем положительные эмоции. Нам нравится получать положительные эмоции. Мы продолжаем делать то что нам нравится. Чем больше мы практикуемся в чем-то, тем лучше у нас это получается. Мы получаем еще больше положительных эмоций. Получается замкнутый круг. Все то что вызывает положительные эмоции мы запоминаем лучше, а значит мы быстрее учимся и качественнее запоминаем новую информацию.  По-научному это называется дофаминовая аффирмация.

Существует также и кортизоловая аффирмация. Допустим, мы сделали что-то, что у нас получилось не очень хорошо. Нам это не понравилось.  Мы испытываем беспокойство и волнение. Чтобы не испытывать беспокойства и волнения мы начинаем избегать делать то, что у нас не получается. Но делать это нам все равно приходится. Мы продолжаем учить уроки, работать работу, убираться в доме, но стараемся делать это реже, с неохотой и всячески саботируем процесс если возможно. У нас снижается успеваемость, появляются проблемы на работе, а дома образуются горы мусора. Все это еще больше вызывает в нас чувство недовольства. Мы еще больше ненавидим нашу жизнь, школу, работу, семью и себя.

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

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

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

 

Оставить комментарий

 
  2022-12-11

Что такое кошельки TON?

Описание Telegram Open Network если его внимательно читать со временем начинает затягивать все сильнее и сильнее.

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

Оказывается, кошелек в сети TON это действительно смарт-контракт, причем довольно простой.

Чтобы понять как адресуются данные в блочейне TON нужно знать как они хранятся. Для хранения всех данных TON использует дерево ячеек. Каждая ячейка может хранить до 1023 бит информации и до четырех ссылок на другие ячейки. Адресом ячейки является ее sha256 хеш. То есть для содержимого ячейки, находится sha256 хеш, этот хеш и является адресом ячейки. Если две ячейки содержат одинаковые данные, то они имеют одинаковый адрес. Это позволяет экономить место не сохраняя дублирующиеся данные. Такой способ хранения информации называется направленным ациклическим графом.

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

Адрес смарт-контракта это sha256 хеш от кода смарт-контракта и его исходных данных. Когда пользователь устанавливает приложение кошелька, при первом запуске приложение предлагает создать пользователю пару ключей - закрытый и открытый. В этот момент смарт контракт кошелька еще не опубликован в сети TON. Однако, адрес будущего смарт контракта приложение уже знает - поскольку код смарт контракта и публичный ключ уже известны. Этот адрес пользователь может использовать, чтобы послать не него криптовалюту.

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

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

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

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

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

 

Оставить комментарий