Как стать автором
Обновить
7
Карма
0
Рейтинг
vp_arth @vp_arth

Архитектура ПО

План самостоятельного обучения DDD, CQRS, EventSourcing

Анализ и проектирование систем *Проектирование и рефакторинг *

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD
Всего голосов 36: ↑35 и ↓1 +34
Просмотры 21K
Комментарии 3

Полезные консольные Linux утилиты

*nix *

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Всего голосов 118: ↑114 и ↓4 +110
Просмотры 82K
Комментарии 110

Валидация UTF-8 меньше чем за одну инструкцию на байт

Блог компании RUVDS.com Программирование *Лайфхаки для гиков


Даниэль Лемир – профессор Заочного квебекского университета (TÉLUQ), придумавший способ очень быстро парсить double – совместно с инженером Джоном Кайзером из Microsoft опубликовали ещё одну свою находку: валидатор UTF-8, обгоняющий библиотеку UTF-8 CPP (2006) в 48..77 раз, ДКА от Бьёрна Хёрманна (2009) – в 20..45 раз, и алгоритм Google Fuchsia (2020) – в 13..35 раз. Новость об этой публикации на хабре уже постили, но без технических подробностей; так что восполняем этот недочёт.
Читать дальше →
Всего голосов 122: ↑122 и ↓0 +122
Просмотры 22K
Комментарии 14

Корутины в C++20. Часть 2

C++ *
Перевод

Введение


Данная статья является продолжением данной статьи.


Бесконечный поток данных при помощи co_yield


Код ниже реализует бесконечный поток данных. Корутина getNext использует co_yield для создания потока данных который начинается со start и выдает по запросу каждое новое значение с шагом step.

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 6.6K
Комментарии 11

Про установку и использование LineageOS 16, F-Droid

Информационная безопасность *
Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас нюансы.
Читать дальше →
Всего голосов 74: ↑72 и ↓2 +70
Просмотры 282K
Комментарии 192

Архитектор ПО: зачем он нужен и в чём его проклятие

Блог компании red_mad_robot Программирование *Разработка мобильных приложений *Карьера в IT-индустрии Интервью
Гость нового выпуска подкаста «Сушите вёсла» — архитектор программного обеспечения Егор Тафланиди. Обсуждаем, что это за метафизическая роль такая, какие сложности есть в работе и при чём тут тёмные силы.

image

Артём Кулаков и Рома Чорыев — разработчики Redmadrobot. Они записывают ламповые подкасты, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов. Ниже ссылка на новый выпуск и ответы на несколько насущных вопросов.

Всего голосов 15: ↑14 и ↓1 +13
Просмотры 18K
Комментарии 3

Памятка по борьбе с алкоголем или Как пережить фуршеты

Управление персоналом *Карьера в IT-индустрии Научно-популярное Лайфхаки для гиков Здоровье
Туториал
Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

Читать дальше →
Всего голосов 191: ↑155 и ↓36 +119
Просмотры 157K
Комментарии 479

Чего стоит идея и как превратить ее в концепт: инструменты геймдизайнера

Блог компании Playgendary Разработка игр *Читальный зал Дизайн игр *Игры и игровые консоли
Перевод


«Идея ничего не стоит» — эту мантру слышал наверное каждый геймдизайнер. Важны лишь концепт и реализация. Только на бумаге или экране компьютера идея начинает обретать смысл и форму. И я задался вопросом: а есть ли какие-то базовые принципы по превращению идеи в концепт?

Внутри перевод с краткой теорией и практическими советами для всех, кто ждет вдохновения или не знает, с чего начать.
Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 12K
Комментарии 3

Используем console.log() в Chrome на полную

JavaScript *Программирование *
Перевод


Сложно представить себе разработку на JS без вывода информации в консоль. Говоря метафорически, console.log() — лекарство от большинства болезней кода.


Отладка — почти как расследование преступления, где главный преступник тоже вы — Филипе Фортес


Но помимо повсеместно используемой функции console.log(), есть ещё много инструментов, позволяющий сильно упростить процесс. Давайте разберём некоторые из них на простых примерах.

Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 33K
Комментарии 13

Делаем адаптивный HTML, добавляя одну строку в CSS

Блог компании Edison Веб-дизайн *Разработка веб-сайтов *CSS *Учебный процесс в IT
Перевод
image

В этой статье я расскажу вам, как использовать CSS Grid для создания супер классной сетки изображений, которая варьирует количество столбцов в зависимости от ширины экрана.

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →
Всего голосов 67: ↑66 и ↓1 +65
Просмотры 176K
Комментарии 103

Какое главное отличие Dependency Injection от Service Locator?

PHP *JavaScript *Программирование *Анализ и проектирование систем *
Ха, какая изящная маскировка Service Locator-а под DI. Даже может показаться, что это DI! :-)

Это первый коммент к моей предыдущей публикации "Dependency Injection, JavaScript и ES6-модули". Спасибо коллеге symbix 'у за этот коммент, т.к. именно он стало причиной погружения в тонкости отличия одного от другого. Под катом мой ответ на вопрос в заголовке.


image


(КДПВ особого смысла не имеет и предназначена в первую очередь для визуального опознания этой публикации в ряду других)

Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Просмотры 40K
Комментарии 24

Используем Secure Boot в Linux на всю катушку

Настройка Linux *UEFI *
Из песочницы


Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы, то есть защиту от буткитов и атак типа Evil Maid. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются.


Более подробно о Secure Boot можно узнать из цикла статей от CodeRush.



Чтобы Secure Boot обеспечивал безопасность, подписываемые приложения должны соблюдать некоторый «кодекс чести»: не иметь в себе лазеек для неограниченного доступа к системе и параметрам Secure Boot, а также требовать того же от загружаемых ими приложений. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению. Такую угрозу представляют загрузчик shim, подписываемый Microsoft, и загружаемый им GRUB.


Чтобы от этого защититься, мы установим Ubuntu с шифрованием всего диска на базе LUKS и LVM, защитим initramfs от изменений, объединив его с ядром в одно UEFI-приложение, и подпишем его собственными ключами.

Читать дальше →
Всего голосов 71: ↑71 и ↓0 +71
Просмотры 94K
Комментарии 28

Как сделать офисную кухню через продуктовый подход

Блог компании Туту.ру Управление проектами *Управление продуктом *
Привет! Я продакт-менеджер в Туту и люблю рассказывать, что важно сначала понять, зачем вы что-то пишете вообще, потом сформулировать требования к результату, а потом уже делать. В качестве примера я часто привожу офисную кухню. Сейчас на пальцах расскажу, что такое продуктовый подход, как с его помощью сделать кухню, и что творится у нас на реальной кухне в офисе.

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



Откуда он взялся? Из простой мысли, что иногда люди выходят из офиса поесть что-то снаружи. Ближайший магазин у нас в 10 минутах от офиса (с учётом спуска-подъёма). Гораздо дешевле и практичнее принести сотрудникам бесплатную еду, чем тратить их время на её поиски, пускай и не за счёт компании. Сначала это были только здоровые закуски, но потом по мере роста офиса стали появляться сосиски, а для тех, кто иногда остаётся ждать ночи перед релизом, — пицца. При этом горячая еда тут не хранится постоянно, а приезжает отдельно.

Давайте проанализируем, как такое решение вообще могло быть принято.
Читать дальше →
Всего голосов 80: ↑73 и ↓7 +66
Просмотры 28K
Комментарии 93

Stack Overflow на русском: инструкция по убийству сообщества

Управление сообществом *Учебный процесс в IT Законодательство в IT Читальный зал

Когда разнеслись новости не только об открытии Stack Overflow на русском языке, но и об импорте неизвестного мне тогда "Хэшкода", то я решил присоединиться. Чем чёрт не шутит? И знаете, мне понравилось. Небольшое, но сплочённое сообщество, возможность реально улучшить состояние сайта — всё это было глотком свежего воздуха после закостенелого механизированного большого Stack Overflow. Всем телом ощущалась атмосфера демократии. Я был как одним из самых активных отвечающих, так и одним из самых активных дворников; много писал на Мете, активно общался в чате, даже чуть не стал модератором.



Однако сейчас я сижу в бане на год, общаюсь в стороннем чате с бывшими (и не очень бывшими) активными юзерами RuSO. Вместе со мной и ушедший топ-юзер сайта, и опальные модераторы. Чат на самом RuSO практически заброшен, активность на Мете никакая. Долгое время мы пытались исправить ситуацию, но ничего не добились.


Учитесь, что называется.

Читать дальше →
Всего голосов 81: ↑50 и ↓31 +19
Просмотры 31K
Комментарии 242

PHP дженерики уже сегодня (ну, почти)

PHP *Программирование *
Перевод

Если спросить PHP-разработчиков, какую возможность они хотят увидеть в PHP, большинство назовет дженерики.


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


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

Читать дальше →
Всего голосов 29: ↑23 и ↓6 +17
Просмотры 20K
Комментарии 28

CoreOS — Linux для минималистичных кластеров. Коротко

Высокая производительность *
Туториал

Что такое CoreOS?



CoreOS — это операционная система на базе Linux для построения легко и гибко масштабируемых кластеров. CoreOS — минималистичный дистрибутив. Установочный ISO образ объемом всего в 136Мб, а в памяти на конечной машине после установки и запуска она займет всего 114Мб. CoreOS основан на ChromeOS, который в свою очередь базируется на Gentoo.

Фактически, CoreOS можно условно можно разделить на следующие части:

  • Systemd — управляет локальными службами на машинах кластера
  • Docker — обеспечивает изоляцию служб, но его использование, в принципе, не обязательно
  • Etcd — распределенно хранит конфигурацию кластера
  • Fleet — обеспечивает распределенное управление службами («надстройка» над systemd)


CoreOS умеет запускать службы systemd на нужных машинах кластера, следить за их состоянием, хранить их конфигурацию.

Читать дальше →
Рейтинг 0
Просмотры 34K
Комментарии 2

Зачем исследовать космос? Письмо 1970 года монахине в Африку

Космонавтика
Перевод
Эрнс Шталингер написал это письмо 6 мая 1970 года сестре Мэри Джаканд, монахине, которая работала среди голодающих детей города Кабве в африканской стране Замбии, в ответ на вопрос о значении освоения космоса. В то время доктор Шталингер был заместителем директора по науке в Центре Космических Полетов Маршалла, в Хэнтсвилле, штата Алабама. Тронутый искренностью и обеспокоенностью Мэри, он направил ей все свои искренние убеждения о ценности исследований космоса. Красноречивое заявление доктора актуально до сих пор, даже спустя четыре десятилетия. Родившись в Германии в 1913 году, доктор Шталингер получил Ph.D. по физике в университете Tuebingen 1936 году. Он был членом немецкой ракетной группы, в Peenemunde и приехал в Соединенные Штаты в 1946 работать на американскую армию в Форт Блисс, штат Техас. Он переехал в Хэнтсвилль в 1950 и продолжил работать для армейского Redstone Arsenal до тех пор пока не был создан центр космических полетов в 1960. Доктор Шталингер был неоднократно награжден и широко известен за свои исследования силовых установок. Он получил награду от министра обороны (Exceptional Civilian Service Award) за участие в запуске Эксплорера-1, первого американского космического спутника.

Читать дальше →
Всего голосов 236: ↑228 и ↓8 +220
Просмотры 53K
Комментарии 307

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

Программирование *Математика *

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Всего голосов 86: ↑81 и ↓5 +76
Просмотры 155K
Комментарии 64

Junior, который в первый день работы удалил базу данных с production

Блог компании Флант Управление проектами *Управление персоналом *Карьера в IT-индустрии
Reddit и другие иностранные ресурсы буквально покорила история о младшем разработчике, который, придя на свою первую работу, в первый же день удалил базу данных на production.


«Два типа людей в эксплуатации: кто уже сломал production, кто ещё только собирается это сделать»

Опубликованная 10 дней назад заметка собрала более 23 тысяч положительных голосов на Reddit и разошлась по другим специализированным ресурсам вроде The New Stack. Суть истории такова:
Читать дальше →
Всего голосов 139: ↑136 и ↓3 +133
Просмотры 137K
Комментарии 376

«Never say never» или Работаем с таймзонами правильно

Блог компании VK Python *Программирование *
Эта статья рассказывает о проблемах, которые поджидают программиста, работающего с часовыми поясами. В теории, вроде, всё хорошо, просто и понятно, но жизнь — штука сложная, и на практике, порой, возникают совершенно неожиданные ситуации.

TL;DR: Работа с таймзонами — это боль и унижение. Никогда не работайте с таймзонами!

Итак, все кругом твердят вам, что при получении времени от пользователя нужно сразу же переводить его в UTC, работать со временем нужно только в UTC и хранить время тоже нужно строго в UTC. Совет, на первый взгляд, выглядит разумным, и следование ему делает вашу жизнь проще… Если только ваша программа не предполагает сложной работы с датами. Записать в базу данных дату и время регистрации пользователя на сайте? Сохранить время отправки сообщения или дату создания заказа в интернет-магазине? Вывести сообщение в лог с указанием даты-времени? Используйте UTC и всё будет в порядке, можете даже не читать эту статью дальше. Любое текущее время можно совершенно спокойно конвертировать в UTC и забыть о проблемах. Но что, если мы хотим работать с временем в будущем? Или в прошлом? Например, если мы пишем сервис календаря, или сервис для отложенной отправки сообщений?

Читать дальше →
Всего голосов 84: ↑79 и ↓5 +74
Просмотры 68K
Комментарии 103

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность