Рассказываю, что нужно делать айтишникам, чтобы сохранить здоровье на работе.
Ментор по ФП на TypeScript
Как приручить DDD. Часть 2. Практическая
В прошлой статье я рассказал, как мы пришли к DDD и про его очень важную особенность — единый язык, на котором легче и дешевле разговаривать с бизнесом. Еще мы рассмотрели разработку, ведомую моделью. Когда вначале стоит не выполненная по требованию фича, а абстрактная модель, созданная по требованиям и имеющая отражения в различных представлениях. Все эти области оперируют терминами единого языка и реализованы максимально похожими, чтобы каждый, кто будет работать с проектом, смог разобраться в любой из них.
Сегодня поговорим о том, как приручить непосредственно исходные коды программ, как они архитектурно представляются. Расскажу про идеи, которые мы используем для построения прозрачной и понятной модели, чтобы ее было легко развивать вместе с заказчиком. Эти подходы касаются и архитектуры, и хранения исходного кода, и вообще в целом вопросов разработки. Также расскажу про практические сложности. Формат статьи не позволяет включить огромное количество кейсов, поэтому приведу только два примера.
Что в голове у программиста? ч.3
Как и обещал, с этой части стартует не просто рассуждение про особенности, но и конкретные рекомендации и упражнения, направленные на минимизацию деструктивного влияния особенностей "интеллектуалов".
Если вы не понимаете, о чём идет речь, то рекомендую ознакомиться с первыми частями: часть 1, часть 2.
Повторный дисклеймер. Это только мой опыт работы с клиентами подобного типажа. Я не развешиваю ярлыки и не создаю стереотипы. Я просто делюсь осмыслением своего практического опыта и рекомендациями, которые показали определенную эффективность. Точка.
План самостоятельного обучения DDD, CQRS, EventSourcing
Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.
Самый полный чек-лист для защиты от мошенников
Несколько месяцев я изучал тему интернет мошенничества с целью собрать наиболее полный список действий, которые обезопасили бы меня от жуликов и их махинаций. Итогом изучения стал чек-лист, которым хочу поделиться со всеми. Его цель - сделать взлом цифровых активов сложным и бессмысленным.
Более 10 лет ставлю цели на год: рассказываю, как это делать эффективно
Меня зовут Павел Комаровский, и я алкоголик занимаюсь саморазвитием уже более 10 лет. Эта статья о том, какой подход к личному целеполаганию я выработал для себя в итоге – надеюсь, она поможет вам избежать ошибок, которых в своё время наделал я.
Я полностью прошёл все стадии грехопадения: в студенческие годы искал сакральные ответы в стопках self-help макулатуры; затем разочаровался и решил, что весь этот «успешный успех» – это разводилово для дурачков (до сих пор уверен, что Наполеон Хилл – шизофреник); позже переосмыслил всё ещё раз и пришёл к своему пониманию того, как может выглядеть саморазвитие с адекватным лицом.
Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна
Неожиданное открытие
За прошедшие несколько веков произошел настоящий прорыв в наших знаниях о принципах работы окружающего нас мира. Но несмотря на это, у нас все еще нет фундаментальной теории физики, и мы все так же не имеем ответа на вопрос о том, как именно работает наша Вселенная. Я занимаюсь этой темой уже порядка 50-и лет, но только в последние несколько месяцев все кусочки пазла наконец-то начали складываться вместе. И получающаяся картина оказалась гораздо прекрасней, чем все, что я только мог себе представить.
Кто такие шизоиды, где они обитают, и почему вам может быть полезно о них узнать
Основные стереотипы о шизоидах в одной картинке
Synopsis: шизоид — не диагноз, это тип характера. Существуют шизоиды, имеющие психические заболевания (как существуют истероиды, эпилептоиды, сварщики, мужчины и женщины, дети и бухгалтеры, имеющие диагнозы из области психиатрии), но далеко не каждый шизоид (мужчина, бухгалтер, сварщик и т.д.) — болен.
Сам этот характер довольно тяжело описать одновременно коротко и корректно. Некоторые называют их «гиками», «интровертами», «чудаками», «ботаниками», «хикканами», «эксцентричными», «нердами», «компьютерными гениями»[1, стр. 231], и все эти характеристики в той или иной мере имеют отношение к, собственно, шизоидам, но ни одна из них не является определяющей.
Проще всего шизоида описать через динамику его внутренних процессов, но такое описание займёт слишком много места, поэтому ограничимся простым (и неточным определением): для целей этой статьи шизоид — это человек, имеющий внутренний конфликт по поводу желания близости и потребности сохранить свою независимость, и решающий этот конфликт через отказ от контактов с внешним миром в пользу погружения в мир собственных фантазий и абстрактных построений.
Большая часть литературы, посвящённой шизоидам, имеет клиническую направленность и описывает достаточно тяжёлые случаи шизоидизации, а в рамках этого текста я хотел бы рассказать о здоровых шизоидах, коих среди нас присутствует достаточно для того, чтобы их особенности имели значение в контексте трудовых отношений, управления и маркетинга.
Настройка окружения в CLI. WSL / Windows Terminal
Из статьи вы узнаете, какими средствами и каким терминалом актуально пользоваться в настоящее время для запуска Linux приложений в Windows 10. Речь пойдёт о WSL 2 и Windows Terminal, набирающим всё большую популярность у пользователей, которым для работы нужен Linux. Так как большинство use-case`ов у меня связаны с удалённым подключением через SSH, большая часть информации будет релевантно для случаев удалённых подключений, со всеми особенностями, связанными с этим (пробросом ssh ключей через ssh agent, пробросом X-сервера, управлением подключениями etс).
Внимание! Под катом много картинок и ужатого, но местами объёмного, gif`а, рекомендуется открывать статью при наличии соответствующего доступа к интернету. Заходите под кат, если вам актуален запуск Linux утилит под Windows, оптимизация работы в окружении CLI, или вы просто любите технические тексты и цветные терминалы. Текст я постарался скрасить скринкастами и скриншотами терминала, чтобы было не скучно.
Большой гайд по UTM-меткам: как узнать, откуда приходят пользователи
Способы разметки ссылок придуманы давно. Но как обычно, разные стандарты смешались и выбрать правильный формат не так просто. Оставим в стороне случаи, когда владелец площадки возражает против размеченных ссылок (а это не такой уж редкий случай). Разберемся в деталях — какие и когда UTM-метки ставить и что с ними делать дальше.
Компания GitLab из-за политики прекращает набор инженеров из России и Китая
2 недели назад в публичном трекере компании GitLab, стоящей за популярным одноимённым Open Source-решением для разработчиков и DevOps-инженеров, появился issue под названием «WIP: блокировка инженерных должностей по стране проживания». Сегодня о нём стало известно широкой общественности, и это событие вызвало огромный резонанс в англоязычном интернете. Достаточно сказать, что на одной только странице оригинала злополучного issue уже оставлено более 100 комментариев, и их число увеличивается буквально с каждой минутой…
Итак, публикуем перевод виновника бурных обсуждений:
Типизированный DSL в TypeScript из JSX
У TypeScript есть встроенная поддержка JSX синтаксиса и компилятор TypeScript'а предоставляет годные инструменты по настройке процесса компиляции JSX. По сути, это создает возможность писать типизированный DSL используя JSX. В этой статье речь пойдет именно про это — как написать DSL из г с помощью JSX. Заинтересовавшихся прошу под кат.
Выпуск Rust 1.30
Команда разработчиков Rust рада сообщить о выпуске новой версии Rust: 1.30.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.
Если у вас установлена предыдущая версия Rust с помощью rustup
, то для обновления Rust до версии 1.30.0 вам достаточно выполнить:
$ rustup update stable
Если у вас еще не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта. С подробными примечаниями к выпуску Rust 1.30.0 можно ознакомиться на GitHub.
Что вошло в стабильную версию 1.30.0
Rust 1.30 — выдающийся выпуск с рядом важных нововведений. Но уже в понедельник в официальном блоге будет опубликована просьба проверить бета-версию Rust 1.31, которая станет первым релизом "Rust 2018". Дополнительную информацию об этом вы найдете в нашей предыдущей публикации "What is Rust 2018".
Процедурные макросы
Еще в Rust 1.15 мы добавили возможность определять "пользовательские derive-макросы". Например, с помощью serde_derive
, вы можете объявить:
#[derive(Serialize, Deserialize, Debug)]
struct Pet {
name: String,
}
И конвертировать Pet
в JSON и обратно в структуру, используя serde_json
. Это возможно благодаря автоматическому выводу типажей Serialize
и Deserialize
с помощью процедурных макросов в serde_derive
.
Rust 1.30 расширяет функционал процедурных макросов, добавляя возможность определять еще два других типа макросов: "атрибутные процедурные макросы" и "функциональные процедурные макросы".
Actions on Google: пишем простое приложение для Google Ассистента на Dialogflow и Cloud Functions for Firebase
Рис. 1. Архитектура приложения для Ассистента.
Функциональная архитектура — это порты и адаптеры
Чем интересна функциональная архитектура? Она имеет тенденцию попадать в так называемую «яму успеха» («Pit of Success»), в условиях которой разработчики оказываются в ситуации, вынуждающей писать хороший код.
Обсуждая объектно-ориентированную архитектуру, мы часто сталкиваемся с идеей архитектуры портов и адаптеров, хотя часто называем ее как-либо иначе: многоуровневой, луковой или гексагональной архитектурой. Смысл состоит в том, чтобы отделить бизнес-логику от деталей технической реализации, чтобы мы могли варьировать их независимо друг от друга. Это позволяет нам маневрировать, реагируя на изменения в бизнесе или в технологиях.
Как без проблем просыпаться рано по утрам
У меня ушло четыре года на исследования, эксперименты и оправдания, но я наконец-то смог управлять привычкой рано вставать по утрам. И оно того стоило. Полагаю, что вы читаете эту статью, потому что тоже пытались развить эту привычку (вероятно, не раз), но по каким-то причинам потерпели неудачу.
К счастью, вам больше не нужно проходить через это в одиночку, у вас есть я и мой опыт.
Play with Docker — онлайн-сервис для практического знакомства с Docker
В конце прошлого года два капитана Docker представили свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.
Что за болезнь: рак. Как снизить риски
Иллюстрации: Майкл Ковальски
Эпигенетические часы и другие биомаркеры старения
Что такое биомаркер старения и зачем он нужен?
Все мы знаем кого-то, кто “прекрасно сохранился” для своего возраста, и кого-то, кто “стар не по годам”:
Собственно, биомаркеры старения нам как раз и нужны для того, чтобы можно было объективно сказать: да, вам 50, но здоровье у вас на уровне 35-летней. А вот вам, молодой человек, стоило бы повнимательней отнестись к своему здоровью — ваш биологический возраст на 10 лет превышает хронологический, а это чревато 48%-ым повышением риска смерти.
При чём тут старение и вероятность смерти? А при том, что у людей, как и у большинства млекопитающих, старение сопровождается экспоненциальным риском смертности:
И если в 30 лет годовая вероятность умереть у вас составляет 1 шанс на тысячу, то к 80 она повышается в 100 раз. Именно это возрастное повышение вероятности умереть геронтологи и называют старением. И нет, стареет далеко не “всё живое”. Есть виды, которые с возрастом наоборот “молодеют” — их вероятность смерти падает, а плодовитость повышается:
Information
- Rating
- Does not participate
- Location
- Испания
- Date of birth
- Registered
- Activity