В анонсах мероприятий, которые проходят в Leader-ID, можно встретить неожиданные вещи. К примеру — мастер-класс по выделению молекул ДНК, для которого достаточно «оборудования» и «реагентов», присутствующих на любой кухне. Этот эксперимент можно провести вместе с детьми — погрузить их, так сказать, в мир биологии и химии.
Web backend developer
Веб-разработка с нуля: руководство для молодых команд по созданию инфраструктуры CI/CD и процесса разработки
Чуть больше года назад я столкнулся с тем, что на внутреннем проекте совсем не айтишной компании вырос целый отдел веб-разработки, которым мне и довелось руководить. Рабочий процесс вроде как устаканился и всех устраивал, но оставались проблемы:
- Проверка каждой ветки проходила локально. Приходилось откатывать базу от изменений с предыдущей проверки, билдить фронт. Когда несколько разработчиков вот-вот закончат работы и осталось проверить каждую по мелочи — это превращалось в ад;
- Различались окружения на проде и между разработчиками, что приводило к ошибкам: “у меня всё работает”.
Внутренний перфекционист жаждал организовать всё правильно. Делюсь результатами поисков ответа на вопрос: «а как, собственно, “правильно”»?
Мы добились
- Легкого и быстрого деплоя в production (ради эксперимента выводили каждый день две недели подряд);
- Гарантию защищённости от ошибок из-за различий в окружении приложения;
- Можем организовать эффективное взаимодействие с заказчиком:
- демонстрировать каждую feature-ветку;
- давать гостевой доступ для создания задач и наблюдения над ходом работ.
Данная статья будет полезна, если вы:
- начинающая IT-компания или в первый раз столкнулись с работой в команде над большим проектом;
- хотите обновить свой устаревший процесс разработки (workflow);
- ищете лучшие практики и хотите посмотреть, как у других;
- часто натыкаетесь на статьи про DevOps, CI/CD, облака и хотите, чтобы у вас одним нажатием кнопки создавались тестовые окружения, а очередное обновление прода не было рулеткой.
Под катом вы найдёте
- типовой рабочий процесс от постановки задач до релиза;
- инфраструктурное решение для построения любого современного процесса разработки с использованием минимального количества инструментов;
- пример для часто встречающегося кейса: разработка веб-приложения;
- видеозапись доклада, где вживую показывается результат.
Реальная стоимость жизни в Кремниевой Долине для разработчика
Зачем это читать?
Всем привет! Меня зовут Винсент, и я с 2018 года живу в Кремниевой Долине со своей супругой и сыном.
Своим фильмом, Дудь хотел поднять стартапный ажиотаж в России, но в итоге возбудил всех моих товарищей гораздо больше здесь, в Silicon Valley.
Этот пост — расчет стоимости жизни "обычного разработчика" (не "стартапера"), который работает "на дядю". Все максимально честно и подробно.
Как переиспользовать код с бандлами Symfony 5? Часть 7. Релизный цикл, установка и обновление
Поговорим о том, как прекратить копипастить между проектами и вынести код в переиспользуемый подключаемый бандл Symfony 5. Серия статей, обобщающих мой опыт работы с бандлами, проведет на практике от создания минимального бандла и рефакторинга демо-приложения, до тестов и релизного цикла бандла.
В предыдущих статьях серии мы вынесли переиспользуемый код в полноценный бандл, настроили и протестировали. В завершающей статье поговорим о жизненном цикле бандла: от установки до релизного цикла.
В этой статье:
- README.md
- Установка: через composer, рецепты Flex, консольные команды
- Релизный цикл, выпуск новых версий
- Семантическое версионирование
- Фиксация изменений в CHANGELOG.md
Как поезд проходит путь от станции до станции: особенности маршрутизации
Архитектура железной дороги — вещь достаточно интересная с точки зрения принципов маршрутизации. Есть перегон — некий линейный маршрут от одного узла до другого, например, от обгонного пункта до станции. По перегону поездам можно следовать только по очереди, не обгоняя друг друга и не «соприкасаясь». Маршрутизация по большей части производится на раздельных пунктах. То есть на перегоне можно только ехать или стоять.
Он разделён на блок-участки. Блок-участок — это маленький отрезок перегона, чаще всего от светофора до светофора. В обычной ситуации на одном блок-участке может находиться только один поезд. То есть если на блок-участке сейчас кто-то есть, в его начале горит запрещающий сигнал, не позволяющий следующему поезду заехать на него. А на блок-участке до этого горит жёлтый, ограничивающий максимальную скорость.
Понятное дело, бывают исключения вроде ситуации, когда нужно вытолкать с блок-участка электричку, оставшуюся без питания (и нужно заехать под красный), но мы сейчас будем говорить про то, как устроено в упрощённых случаях.
PSR Стандарты
PSR — Чуть больше, чем стиль оформления кода.
Как показала практика, многие PHP-разработчики знакомы с аббревиатурой PSR. Однако большинство все еще ограничены знанием, что PSR это стандарт оформления кода.
Ребята из PHP-FIG (PHP Framework Interop Group), группа концепций совместимости PHP, которые занимаются развитием PSR (PHP Standards Recommendations) шагнули далеко вперед. Поэтому давайте разберемся, что из себя представляет PSR…
Про фразовые глаголы-4 (in/out)
1. habr.com/ru/post/495794
2. habr.com/ru/post/496190
Out соответствует русским приставкам со значениями «наружу» и «до конца, полностью»:
- вы-: hear – «слушать». Hear me out! – Вы-слушай меня!
- раз-/«рас-»: sell – «продать» sell out – рас-продать.
- из- (со значением «до конца, полностью»): wear — «носить», wear out — из-носить/ся (об одежде/обуви, например).
- из- (со значением «вы-» – наружу): hound – «охотничья собака», как глагол – «гнать» (зверя). Hound out – «из-гнать» (= «вы-гнать»). They hounded him out of Parliament – они из-гнали его из Парламента. Если держать в голове базовые значения глаголов kick (пинать) и boot (пинать ногой в сапоге), становится очевидно, почему ФГ kick out и boot out используются как синонимы hound out. Всегда буквально умоляю студентов держать в голове базовое значение глагола, из которого образуется фразовый. Слушаются не всегда… :(
Великий египетский фаерволл
В основном проблем не возникло, но одна из наших сотрудниц с месяц назад, когда все выглядело еще не так страшно, поехала в отпуск к родне в Египет и благополучно застряла там из-за закрытия границ. Ну, сама-то здорова, рабочий ноут с ней — сидит себе на карантине и работает через VPN. Неделю работает, две… На третью неделю VPN перестал подключаться. Саппорт первой линии проверил банальности навроде перезагрузки — не помогло. Вторая линия стала диагностировать: соединение уходит в вечный таймаут на стадии TLS Handshake. Отключили локальный фаерволл — не помогло. Попробовали другую машину — не работает. Другого провайдера — не работает. На этом моменте саппорты сдались и радостно спихнули проблему на меня по старому доброму принципу «во всем виноват сетевик».
Как увлажняется кожа, и что бывает, когда вы маниакально моете руки спиртом при COVID-19
Человек с трудом растворяется в воде, потому что почти весь завёрнут в гидроизоляцию. Это липидный слой кожи, состоящий, как прямо следует из названия, из жиров. То есть с одной стороны, нам нужна увлажнённая кожа, влажные глаза, влажный нос и другие органы, а с другой — наша же собственная изоляция частично мешает свободно подавать влагу туда и обратно.
Сейчас нас начали доставать знакомые, которые узнали о пользе мытья рук. И у них сохнет кожа от мыла, средств дезинфекции и прочего. Если вы начнёте соблюдать правила ВОЗ, то разные органы будут сохнуть и у вас тоже. Поэтому давайте немного поговорим о том, как же это устроено.
Если вы польёте на руку водопроводной водой, то через некоторое время кожа на ней будет суше (особенно это заметно зимой). В этот момент люди иногда думают, что нарушаются какие-то базовые законы мироздания. На деле за счёт содержащихся в воде элементов (в основном кальция и хлора) вы нарушаете липидный слой и выносите с кожи ещё часть веществ, которые удерживали влагу. Результат — ваши руки чистые. И сухие.
Если бы вода могла проникать в кожу, то человек растворялся бы в ванне. В смысле он так делает где-то на третьи сутки (и даже может принять форму и размер ванны, что доставляет известную радость судмедэкспертам и патологам). Но обычный живой человек в достаточной степени водонерастворим.
Коронавирусы: от SARS к 2019-nCoV
Disclaimer: Я высказываю свое субъективное мнение на базе доступных данных. Мнение профессиональных вирусологов и эпидемиологов может отличаться от моего. В любой непонятной ситуации обращайтесь к материалам ВОЗ.
Привет, коллеги. Чем больше роюсь в данных по вспышке коронавируса 2019-nCoV, тем меньше мне нравится происходящее, с учетом предыдущих вспышек аналогичных вирусов. Предлагаю пробежаться по истории прошлых эпидемий и попробовать спрогнозировать дальнейшее течение.
Нет комарам! Обзор антимоскитных «фитобоеприпасов»
Нет клещам! Растения против переносчиков болезни Лайма
Вентиляция с рекуперацией в квартире. Без воздуховодов и СМС
Это
Итак, всё началось с духоты. Точнее, с утепления квартиры слоем экструзионного пенополистирола по всему периметру (панельная 9-этажка родом из 80-х, с кучей сквозящих углов). В результате чего, квартира стала условно герметичной и вопрос свежего воздуха встал в полный рост.
Памятка по борьбе с алкоголем или Как пережить фуршеты
Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.
Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.
Порождение событий, CQRS и Laravel
Введение
Эта статья посвящена основам создания событийных CQRS-систем на языке PHP и в фреймворке Laravel. Предполагается, что вы знакомы со схемой разработки с использованием командной шины и имеете представление о событиях (в частности, о публикации событий для массива слушателей). Чтобы освежить эти знания, вы можете воспользоваться сервисом Laracasts. Кроме того, предполагается, что вы имеете определенное представление о принципе CQRS. Если же нет, я настоятельно рекомендую прослушать две лекции: «Практикум по порождению событий» Матиаса Верраса (Mathias Verraes) и «CQRS и порождение событий» Грега Янга (Greg Young).
Docker + Laravel + RoadRunner = ❤
Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.
Всё, что будет написано ниже, является субъективным опытом, который (как и всегда) не претендует на право считаться единственно верным решением, но некоторые подходы и решения, возможно, тебе покажутся интересными и полезными.
В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Работа с JSON RPC в Symfony 4
Всем привет, сегодня поговорим о том, как подружить Symfony 4, JSON RPC и OpenAPI 3.
Данная статья рассчитана не на новичков, вы уже должны понимать как работать с Symfony, Depedency Injection и другими «страшными» вещами.
Сегодня рассмотрим одну конкретную реализацию JSON RPC.
Курсоры БД в Doctrine
Используя курсоры, вы сможете порционно получить из БД и обработать большое количество данных, не расходуя при этом память приложения. Уверен, перед каждым веб-разработчиком хотя бы раз вставала подобная задача, передо мной тоже — и не раз. В этой статье я расскажу, в каких задачах курсоры могут быть полезны, и дам готовый код по работе с ними из PHP + Doctrine на примере PostrgeSQL.
BotAuth — вход и регистрация при помощи ботов
BotAuth — пакет, который позволяет реализовать вход при помощи бота Вконтакте, FaceBook, Telegram.
Основная задача BotAuth, упростить посетителям Веб сайтов/PWA вход через социальные сети.
Пока соц. сети не реализуют обратную связь нативных мобильных приложений с веб сайтом, разработчикам приходится отправлять пользователя в браузер, где снова нужно вводить логин и пароль.
Используя ботов, можно получить обратную связь (callback) из нативного приложения, тем самым не заставлять вводить логин и пароль соц. сети в браузере.
11 вопросов, которые нужно обсудить до начала работы
1. Какую работу требуется выполнить
Не просто в общих чертах, а подробно. Важно, чтобы обе стороны одинаково понимали что нужно сделать и что будет являться результатом сотрудничества. Чем подробнее, тем лучше. Важно зафиксировать объем.
Если договоренностей нет, то разбежности в толковании объема ведут к недовольству и конфликту. Один считает, что работа выполнена не полностью, другой же наоборот, считает, что сделал уже больше оговоренного и его обманывают.
Information
- Rating
- Does not participate
- Date of birth
- Registered
- Activity