Как стать автором
Обновить
7
0
Гоголин Виталий @vgogolin

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

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

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

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

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

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

Читать далее

Скорость света ближе, чем казалось: ученые создали первый пузырь Алькубьерре

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


Еще одна технология из Star Trek оказалась больше наукой, чем фантастикой. Ученые под финансированием DARPA создали так называемую «warp bubble» — область пространства, способную расширяться или уменьшаться быстрее скорости света. Об этом сообщает бывший специалист НАСА по варп-двигателям Гарольд Уайт. Это первый настоящий «пузырь варп-движения», созданный в лаборатории. Который, как минимум, подтверждает, что такое возможно. И, по словам Уайта, устанавливает новую перспективу для тех, кто захочет создать первый космический корабль, способный к деформации.

Читать дальше →

Пять книг, которые изменили мою карьеру программиста

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

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

- Джордж Р.Р. Мартин.

Читать далее

Мой компьютер на логических микросхемах

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

Привет, Хабр. Два года назад, как раз перед началом пандемии, я затеял большой проект: построить компьютер, используя только простые логические микросхемы 74 серии и микросхемы памяти. В этой статье я бы хотел кратко рассказать о том, что получилось, и более подробно об основной части – процессоре.

Читать далее

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

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

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

Читать далее

Серверная моей мечты

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

Многие из вас уже были в серверной, заглядывали туда краем глаза или в крайнем случае видели в фильмах. В кино зачастую серверная выглядит, как кабина пилота космического челнока, но в жизни всё намного прозаичней – под IT-инфраструктуру переоборудуют старую кладовку, ставят туда пару стоек и кондиционер. Но по уму надо проектировать комнату или строить отдельное здание.

Читать далее

Как выжить после крушения?

Время на прочтение11 мин
Количество просмотров31K
(www.goodfon.ru, Автор: Juliannaa)

Кораблекрушение, авиакатастрофа… Этот сюжет многократно обыгран во множестве разнообразных фильмов, игр и массовой культуре. Хотя большинство людей, так или иначе, слышали о подобном, но не имели к этому отношения (к счастью). В этой статье мы попробуем обсудить, как выжить современному человеку, в случае крушения, в безлюдном месте, а также дать знать о своей ситуации с помощью разных способов (в том числе, построив «радиопередатчик из ничего»).
Читать дальше →

Как пройти техническое собеседование на системного аналитика в любой компании (сборник вопросов)

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

Я проходил технические собеседования на системного аналитика в самых разных компаниях и каждый раз записывал все вопросы. У меня накопилось 120 вопросов. Список вопросов выкладываю в этой статье. Даю гарантию, что, подготовившись по этим вопросам, вы будете успешно проходить технические собеседования в большинстве, если не во всех, it-компаниях. Почему? Потому что большинство вопросов повторяются от собеседования к собеседованию. Очень высока вероятность того, что вопросы, которые вам будут задавать, будут из этого списка.

Перейти к списку вопросов

Создаём игру на KPHP с помощью FFI и SDL

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

KPHP теперь поддерживает механизм Foreign Function Interface (FFI). Мы с Владом решили продемонстрировать его возможности и за сутки написали первую в мире графическую игру на KPHP.


Игру делали с использованием библиотеки SDL:


  • работали со звуком,
  • обрабатывали события клавиатуры,
  • рисовали шрифты, спрайты, UI.

API и семантика нашего FFI идентичны PHP. Поэтому созданная игра запустится и на KPHP, и на PHP.


Если вам интересны детали реализации, заглядывайте под кат!


Читать дальше →

Доводим распределённые действия до конца с использованием простейшего паттерна Saga

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

Привет! Меня зовут Иван, я занимаюсь бэкенд-разработкой в Ozon: пишу микросервисы на Go для личного кабинета продавца. В прошлом году мы запустили новый процесс регистрации продавцов, в котором задействовано сразу несколько микросервисов. В нём стало больше шагов, при этом каждый из них выполняется в разных микросервисах. Поэтому мы задались вопросом: «А что будет, если один из шагов упадёт?».


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


image

Читать дальше →

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

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

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

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

Читать далее

Reversing для чайников — ассемблер x86 и код на С (для начинающих/ADHD friendly)

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

До того как заняться реверс-инжинирингом, исполняемые файлы казались мне черной магией. Я всегда интересовался, как все работает под капотом, как двоичный код представлен внутри .exe файлов, и насколько сложно модифицировать “исполняемый код” без доступа к исходникам.

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

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

Читать далее

«Зожный» перекус: безопасные перекусы для работников умственного труда

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

Когда много работаешь мозгом и не слишком часто поднимаешь пятую точку с «компьютерного» кресла — лишний вес и прочие проблемы неправильного питания часто становятся проблемой. Знаю по себе не понаслышке: четыре года напряжённой и не всегда нормированной аналитической работы в своё время превратили меня из 75-килограммового парня в 105-килограммового увальня. Потом пришлось заморачиваться, чтобы за полгода сбросить 20-25 лишних кило.

А ведь когда часами работаешь над сложной или хотя бы объёмной задачей с полным погружением — организм требует «жрааать» не хуже кота в пять утра. И поесть полноценно не всегда получается. Значит, кидаем в рот то, что позволяет заглушить чувство голода без отрыва от монитора. И часто кидаем мы туда разные отнюдь не душе- и тушкоспасительные вещи. Шоколадные батончики, быстрорастворимая лапша, чипсы, пиццу, бургеры… ну вы знаете. Вкусно, голод глушит, стресс тоже, настроение поднимает — только вот (trigger warning!) на пользу это не идёт. И чем дальше, тем больше.
Читать дальше →

Из техпода в программисты (или Golang для самых маленьких)

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

Доброго времени суток, Хабровчане! 

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

Читать далее

Опыт работы с советским газоразрядным дисплеем ГИП-10000 (ИМГ-1-02)

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров28K

Советская электронная промышленность выпускала множество разнообразных газоразрядных индикаторных приборов: точечные, линейные, шкальные, знаковые, но отдельным пунктом стоит отметить матричные индикаторы (панели). Очень разные по конструкции, по разрешению, по принципу управления – постоянного тока с внешней адресацией, с самосканированием, переменного тока; знакосинтезирующие, графические; монохромные, двух-, трех-, четырехцветные. Номенклатура насчитывала несколько десятков типов изделий. 

В статье пойдёт речь про ГИП-10000. Это газоразрядная матрица постоянного тока с внешней адресацией разрешением 100х100 точек. Применялась она в таких изделиях как Электроника МС6205 и ИМГ-1. Я расскажу про то, как запустил на ней Bad Apple!! и Doom.

Читать далее

Как один стартап от docker-compose до Kubernetes добирался

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

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

Что мы имели и о чем вообще речь? А имели мы стартап-проект с примерно 2-летней историей разработки из advertisement  области. Проект изначально строился как микросервисный, и серверная его часть написана на Symfony + немного Laravel, Django и нативного NodeJs. Сервисы представляют из себя в основном API для мобильных клиентов (их в проекте 3) и нашего собственного SDK для IOS (встраивается в приложения наших кастомеров), а также веб-интерфейсы и разные дашборды этих самых кастомеров. Все сервисы были изначально докеризированы и работали под управлением docker-compose.

Правда, docker-compose использовался не везде, а только в локальном окружении у разработчиков, на тестовом сервере и внутри pipeline при сборке и тестировании сервисов. А вот в production окружении использовался Google Kubernetes Engine (GKE). Причем настройку GKE на старте проекта мы делали полностью через его web-интерфейс, что было довольно быстро и, как нам тогда казалось, удобно. Автоматизирован тут был только процесс сборки docker images для запуска сервисов в GKE.

Читать далее

Математика и IT

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

Джорджо де Кирико. Великий метафизик (The Grand Metaphysician), 1917.

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


1) CS — создание подходов, имеющих научную новизну. Разработка новых алгоритмов. Основная цель: научная новизна, развитие CS, решение проблем CS.


2) Инженерно-конструкторская деятельность – комбинирование уже известных подходов (алгоритмов, ЯП, библиотек, технологий, исходных кодов), их адаптация под конкретную задачу. Основная цель: создание продукта для решения конкретной практической задачи.


3) Техническое обеспечение — решение типовых (зачастую тривиальных) проблем в ходе эксплуатации “железа” и софта. Обеспечение бесперебойной работы ПО и оборудования с учетом возникающих требований.


Очевидно, что в такой классификации риск неудачи убывает в каждом пункте. При работе над новым алгоритмом или устройством обычно невозможно полностью гарантировать успех. При использовании уже известных алгоритмов, языков, технологий, библиотек и готовых деталей машин – вероятность успешного исполнения работы возрастает. В последнем случае (обеспечение ) работник (должность может быть разная: инженер, системный программист, системный администратор и т.д.) исходит из минимизации замен по принципу: “не трогать то, что хорошо работает”.


Как видим цели противоположные: для научной новизны бывают нужны новые рискованные решения, а для обеспечения – наоборот. Для успешной разработки продукта, желательно применять уже опробованные зарекомендовавшие себя решения, хотя при их отсутствии может понадобится и эксперимент, как в CS.


Кому и насколько в IT нужна математика? — Попробуем ответить на этот вопрос (хотя бы частично).

Читать дальше →

Внутреннее устройство Kubernetes-кластера простым языком

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

Прим. перев.: как многим хорошо известно, Kubernetes — это всего лишь пять бинарников. Об их назначении и рассказывает в этой статье Vedashree Patil, консультант из Deloitte Digital. Когда ей потребовалось изучить Kubernetes, она столкнулась с большим количеством новой информации, осознать которую за короткое время было непросто. Так она пришла к идее уменьшить порог вхождения в K8s другим специалистам, создав цикл публикаций «Kubernetes 101». Все статьи сопровождаются простыми и наглядными комиксами. Представляем вниманию перевод материала под названием «Внутри кластера» из этого цикла.

Как выглядит кластер Kubernetes? Как работают узлы? Из этой статьи вы узнаете обо всех основных компонентах системы Kubernetes.

Читать далее

PHP Дайджест № 213 (27 сентября – 11 октября 2021)

Время на прочтение4 мин
Количество просмотров11K
Фото: Noriko YAMAMOTO.

Подборка свежих новостей и материалов из мира PHP.

Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.

Также в выпуске порция инструментов, полезные статьи, видео.

Приятного чтения!
Читать дальше →

Хотели как в FAANG, а вышло как всегда или Опыт собеседования в Тинькофф в 3 актах

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

Предисловие Около года назад я задался целью получить оффер от FAANG. Как следствие, постоянной частью моей жизни стали тематические форумы, площадки и вся сопутствующая атрибутика. Спустя какое-то время я попробовал себя на собеседованиях в околоFAANGoвые компании: Lyft, Spotify, Booking и т. д, где-то успешно, где-то не очень. В это же время мне порекомендовали попробовать пройти собеседование в Тинькофф банк, который внедрил схожий процесс. После стандартного общения с HR менеджером была получена ссылка на описание процесса собеседования. “Хм, почти что FAANG + тех. интервью по Primary Skill”, - подумал я и сказал, что готов приступать. В тот же час было назначено 2 интервью: техническое и coding, а вот 3 этап, system design, нужно было заслужить успешным прохождением первых двух. Почему именно эти 2 части являлись основополагающими, осталось неясным.

Акт первый, технический

В назначенный час я встретился со своим интервьюером. Собеседование выглядело “добротным” и стандартным в заданной проф. области, оттого местами скучным. Было много задач на ревью кода и обсуждения специфики языка, в частности...

Читать далее

Информация

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