Как стать автором
Обновить
9
0

Пользователь

Отправить сообщение

Архитектура Kubernetes – руководство для «чайников», 5 новых функций Podman, которые стоит попробовать…

Время на прочтение2 мин
Количество просмотров8.4K

... а также видео-тур по Ansible Automation Platform 2.0.

Новая порция инсайтов, гайдов, книжек и советов. Оставайтесь с нами – станьте частью DevNation!

Читать дальше: Архитектура Kubernetes...
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Laravel: создание фабрик и seeders при связях между моделями

Время на прочтение8 мин
Количество просмотров21K

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

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

Спойлер: фабрики не должны зависеть от сидов.

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии5

Переезд в Египет: Александрия как локация для жизни на дистанционный доход

Время на прочтение6 мин
Количество просмотров24K

Вместе со своей семьёй я прожил в Египте примерно два с половиной года, с начала 2018 года до второй половины 2020 года. Я работал на одном из предприятий около города Александрия и жил там же неподалёку в небольшом охраняемом посёлке за городом. Я хотел бы поделиться своим опытом жизни в не очень хорошо знакомой туристам Александрии и рассказать, как там может выглядеть жизнь для удалёнщика!

• Климат
• Безопасность
• Образование для детей
• Стоимость жизни
• Виза
• Локация: стиль/качество жизни

Поехали!
Всего голосов 43: ↑38 и ↓5+33
Комментарии35

Проектируем приложение с Redis в качестве хранилища данных. Что? Зачем?

Время на прочтение7 мин
Количество просмотров15K

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

В этой статье мы и попытаемся ответить на эти вопросы.

Не переключайтесь.

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии20

Что такое доказательная медицина?

Время на прочтение14 мин
Количество просмотров21K

Доктор Уолтер Фриман и Джеймс Уоттс планируют лоботомию, чтобы помочь человеку справиться с тревожностью.

Раньше врачам было отчасти проще. Если ты был достаточно уважаем и авторитетен, то никто не сомневался в твоих методах лечения. Если врач сказал, что надо регулярно устраивать кровопускания и прикладывать примочки на базе соединений ртути, то так и делали. Медицина постепенно развивалась, но до середины XX века методы лечения держались на авторитете отдельных известных учёных и их учеников. Ваша жена очень часто впадает в истерику и нервничает? Ребёнок постоянно капризничает? Не проблема, есть чудесные лоботомобили. Приедут домой и всё поправят.

Процедура заключалась в следующем: нож для колки льда вставлялся в глазницу пациенту. Лёгкий удар молотком по рукоятке пробивал орбитальную стенку. Затем Фриман водил ножом из стороны в сторону, разрушая лобные доли мозга. Метод, разумеется, эффективен, так как разработан уважаемыми людьми и рекомендовался «буйным», шизофреникам и людям, чьё поведение беспокоило окружающих. Люди из буйных становились тихими и покорными инвалидами. До 6% погибли во время операции.

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

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

Читать дальше →
Всего голосов 79: ↑76 и ↓3+73
Комментарии105

Хранилище данных vs. Data Lake. Или почему важно научиться ходить перед тем, как начать бегать

Время на прочтение7 мин
Количество просмотров17K

Всем привет! Я Игорь Гончаров — руководитель Службы управления данными Уралсиба. В этой статье я поделился нашим видением ответа на вопрос, который периодически слышу от коллег: зачем мы развиваем хранилище данных банка, когда есть технологии Data Lake?

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии19

История разработки фасетного поиска средствами PHP

Время на прочтение13 мин
Количество просмотров14K

Как экспериментальный Pet Project дошел до production и на что способны современные версии языка PHP. Немного о проблематике фасетного поиска в части построения агрегатов.

Если ваша первая реакция: «Почему не на Sphinx/ElasticSearch/etc?», не торопитесь с выводами. Воспринимайте изложенное как интересный исследовательский опыт в области возможностей языка и его оптимизаций.

Спойлер: пришлось даже написать порт на GoLang, чтобы лучше понять пути оптимизации кода.

Читать далее
Всего голосов 59: ↑58 и ↓1+57
Комментарии6

Оживляем картинку шейдерами или программирование абстрактного текста

Время на прочтение1 мин
Количество просмотров4.6K

Пару лет назад я наткнулся на одну картинку с простой геометрией:

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии4

Строим эффективный сетевой обмен в PHP-микросервисах

Время на прочтение13 мин
Количество просмотров20K

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

Я техлид в команде Авито в проекте SLA. Сегодня расскажу, как мы оптимизировали сетевые вызовы, чтобы избежать проблем с сетью при переходе в микросервисный мир. Разговор будет про оптимизацию CURL-запросов, деградацию сервисов и FAIL-FAST-подходы.

Читать далее
Всего голосов 43: ↑42 и ↓1+41
Комментарии38

Пишем сервис на GO. Runtime контроллер и Graceful Shutdown

Время на прочтение20 мин
Количество просмотров25K


Напишем вместе HTTP-сервис на golang с нуля? Я уверен, что это довольно несложно. Для тех, кто каждую неделю этим занимается, моя статья не будет особенно интересна, но я все равно рекомендую взглянуть и оценить, возможно, ваши комментарии спасут кому-то жизнь. А может кое-какие из моих рассуждений спасут вашу.


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


Это первая часть. Первые шаги в нашем нелегком пути. И в этой статье мы попробуем достичь следующих целей:


  • Выработаем понимание структуры и жизненного цикла приложения.
  • Формализуем наше представление жизненного цикла на языке go.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии19

Книга «Совершенный софт»

Время на прочтение12 мин
Количество просмотров7.7K
image Привет, Хаброжители! «Совершенный софт» — это проверенный, структурированный и высокотехнологичный подход к разработке программного обеспечения. Множество компаний уже используют идеи Лёве в сотнях систем, но раньше эти мысли нигде не публиковались.

Методология Лёве объединяет разработку систем и дизайн проектов, используя базовые принципы разработки ПО, корректные наборы инструментов и эффективные методы. Автор подробно описывает основы, на которых прокалываются многие архитекторы ПО, и показывает, как разложить систему на мелкие блоки или службы. Вы узнаете как вывести эффективный дизайн проекта из дизайна системы, как рассчитать время, необходимое на запуск проекта, его стоимость и риски, и даже как разработать несколько вариантов выполнения.

Метод и принципы «совершенного софта» можно применять независимо от размера проекта, компании, технологии, платформы или отрасли. Цель этой книги — решение важнейших задач современной разработки ПО, требующих исправления программных систем и проектов, ваш карьерный рост и, возможно, изменение всей IT-индустрии. Рекомендации и знания, которые вы получите, сэкономят десятилетия вашего опыта и спасут многие проекты. Эта книга принесет большую пользу разработчикам, архитекторам, руководителям проектов или менеджерам на любом этапе карьеры.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

11 худших особенностей Windows 11, и как их исправить

Время на прочтение8 мин
Количество просмотров344K


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

Обновляясь до Windows 11, будь то обновление рабочей системы или установка на чистый диск, вы заметите несколько раздражающих особенностей – вроде контекстного меню, заставляющего вас лишний раз кликать мышкой, корявая панель задач, меню браузеров по умолчанию, из-за которого отказаться от Edge стало сложнее.

Предлагаем вашему вниманию худшие особенности Windows 11 и пути их исправления – или, по крайней мере, смягчения.
Читать дальше →
Всего голосов 100: ↑89 и ↓11+78
Комментарии343

Golang для Embedded Linux

Время на прочтение8 мин
Количество просмотров11K

При разработке очередной платформы перед командой АТОЛ встал вопрос выбора языка программирования/стека технологий/железа/фреймворка для создания решений. Железо было выбрано на базе относительно недорогой Linux-платформы STM32MP153/512MB DDR3/8GB eMMC. Эта платформа имеет на несколько порядков больше ресурсов, чем используемые в нашей основной массе решений LPC1768/LPC1778/LPC4078/STM32F207. 100% наработок кода компании для устройств были написаны на C/C++, однако прогресс не стоит на месте, и периодически необходимо актуализировать инструменты и технологии разработки, особенно с учетом новых аппаратных возможностей. Из статьи станет ясно, как мы дошли до жизни такой и почему выбрали Golang для создания очередного набора решений.

Выбор стека технологий важен для всех компаний, которые занимаются разработкой железа и перерастают крошечные embedded контроллеры на Cortex M0/M3/M4/M7. Обычно команды при переходе на новую платформу выбирают одно из двух решений: стараются сделать новую версию системы на новом железе/технологиях/архитектуре, превращая решение в нестабильный долгострой, или наоборот — вносят минимальное количество изменений, но иногда вместо совокупности положительных черт разных подходов получают совокупность отрицательных.

В статье исследованы особенности различных языков программирования/технологий (Java, Python, C/C++, Rust, Golang), их плюсы и минусы, сформулированы критерии выбора и представлен выбор команды АТОЛ.

Для анализа использован метод SWOT-анализа. В качестве источников данных — информация сайтов фреймворков. Помимо этого, косвенная информация о боли и страданиях разработчиков получена на Stackoverflow, и часть субъективных выводов сделана на основе моего экспертного мнения за более чем 30-летний опыт программирования.

Читать далее
Всего голосов 18: ↑12 и ↓6+6
Комментарии50

Интеллектуальная производительность без выгорания: 7 техник использования мозга. Часть 1

Время на прочтение18 мин
Количество просмотров54K

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

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

Читать далее
Всего голосов 71: ↑66 и ↓5+61
Комментарии23

Как проводить собеседования объективно и с пользой

Время на прочтение10 мин
Количество просмотров18K

Всем привет! Меня зовут Виталий, я ведущий фронтенд-разработчик в KTS.

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

В статье поделюсь выводами за это время. Расскажу, как сделать результат собеседования объективным, а процесс — более комфортным для кандидата и интервьюера.

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии30

Разработка системы заметок с нуля. Часть 3: знакомство с Neo4j, работа над микросервисами CategoryService и APIService

Время на прочтение18 мин
Количество просмотров5.6K

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

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

Во второй части мы спроектировали и разработали RESTful API Service на Golang cо Swagger и авторизацией.

Теперь разработаем сервис управления категориями CategoryService. Категории мы делаем в виде дерева с большой вложенностью, в теории — бесконечной. Сервис будем разрабатывать на языке Python, а в качестве хранилища используем Neo4j.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Как я прошел путь от игрушек на Objective-C к реальным проектам на Swift в большой компании

Время на прочтение6 мин
Количество просмотров4.8K

Привет, Хабр! Когда я был ещё совсем мал и только тянулся к разработке, я тоже почитывал Хабр и не раз видел статьи, где описывался путь с нуля до оффера. Иногда это были и вовсе удивительные истории о переходе в новую профессию, читая которые словно проживаешь жизнь другого человека.

Но теперь и мне есть о чём рассказать. Сразу скажу, что этот пост вряд ли чем-то удивит людей с опытом 3+ лет, но надеюсь, мой путь поможет другим людям, которые, как и я когда-то, только смотрят в сторону программирования. Ведь все мы, когда-то были начинающими. И так, меня зовут Александр Рубцов, я iOS-разработчик и это история моего пути в разработку…

Читать дальше
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

Как сэкономить в AWS до полумиллиона долларов?

Время на прочтение19 мин
Количество просмотров17K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to reduce your AWS costs? Save up to $500k with these guidelines!» автора George Batschinski.

image

В этой статье мы в подробностях расскажем, как Back4App уменьшила свои расходы в AWS с $55,492 в месяц до $20,074 в месяц и сэкономила $500.000 за год. Мы опишем практические шаги, основанные на собственном опыте снижения затрат в AWS и поделимся советами, которые были полезны и нам.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии11

Создаём инфраструктуру для интеграционных тестов

Время на прочтение9 мин
Количество просмотров6.4K

Меня зовут Слава Черепанов, я работаю в 2ГИС в проекте Fiji. Мы делаем профессиональную ГИС-систему, с помощью которой картографы создают карту мира в 2ГИС. Расскажу, как в этом проекте за 4 года эволюционировала инфраструктура интеграционных тестов. Это будет не летопись, а история про выборы, их причины и следствия. Разберёмся, как создать подходящую вам тестовую инфраструктуру и справиться с этим в разумные сроки.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии3

Как внедрить безопасность в процесс разработки. Опыт нашей команды

Время на прочтение9 мин
Количество просмотров3.3K
Привет! Я — Виктория Граненко, Security Automation Engineer в NIX. Свой путь в мир IT я начинала, как General QA, распараллеливая мануальные и автоматизированные задачи тестирования. Мне всегда нравилась автоматизация процессов. В мои обязанности не входили задачи по безопасности. Во время тестирования приложения на прошлом проекте я обратила внимание на некоторые случаи, которые мы никогда не фиксили. Это была не наша зона ответственности.

Да и специалистов, которые смогли бы оценить критичность этих находок, среди нас тоже не было. Часть не найденных уязвимостей дожидалась прихода пентестера.
Читать дальше →
Всего голосов 4: ↑2 и ↓20
Комментарии0

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность