Pull to refresh
1
0
Dmitry @altexxx

PHP developer

Send message

OSCP: как я сдавал самый известный экзамен по информационной безопасности

Reading time7 min
Views55K

Offensive Security Certified Professional отличается от других сертификаций по информационной безопасности адски сложным экзаменом. Ребята из этой компании бегают по интернету и пристально следят за тем, чтобы никакие подсказки или готовые решения не были доступны публично. И, похоже, им успешно удаётся это делать более 10 лет подряд.

Сдавая экзамен, люди не спят двое суток, решают задачи с постоянно включенной видеокамерой и спрашивают в специальном чате разрешения отойти в туалет. Я прошёл этот путь и сейчас расскажу, как всё устроено.

Как это было
Total votes 76: ↑75 and ↓1+74
Comments27

Старый DVD-привод превращается… в лазерный микроскоп

Reading time3 min
Views59K


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

Но для ненужного привода есть полезное применение. Например, из него можно смастерить лазерный микроскоп на Arduino (примечание: по факту требуется две лазерные головки, то есть два ненужных привода).

Это оптический микроскоп, который использует для сканирования образца сфокусированный лазерный луч.
Total votes 133: ↑129 and ↓4+125
Comments19

Полный набор gRPC, RESTful JSON API, WS и Swagger из одного proto файла. От введения до нюансов и тонкостей grpc-gateway

Reading time9 min
Views34K

В этой статье я опишу процесс создания сервера с gRPC и RESTful JSON API одновременно и Swagger документацию к нему.


Эта статья — продолжение разбора различных способов реализаций API-сервера на Golang с автогенерацией кода и документации. Там я обещал более подробно остановиться на этом подходе.


grpc-gateway — это плагин protoc. Он читает определение сервиса gRPC и генерирует обратный прокси-сервер, который переводит RESTful JSON API в gRPC. Этот сервер создается в соответствии с пользовательскими параметрами в вашем определении gRPC.


Это выглядит вот так:


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments16

Балансировка нагрузки и масштабирование долгоживущих соединений в Kubernetes

Reading time9 min
Views17K

Эта статья, которая поможет разобраться в том, как устроена балансировка нагрузки в Kubernetes, что происходит при масштабировании долгоживущих соединений и почему стоит рассматривать балансировку на стороне клиента, если вы используете HTTP/2, gRPC, RSockets, AMQP или другие долгоживущие протоколы. 
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments4

Практическое применение Kotlin в стартапах и энтерпрайзе

Reading time9 min
Views24K

Disclaimer: Я не имею никакого отношения к JetBrains, не получаю денег от продвижения Kotlin или от написания данной статьи. Весь материал — это лишь отражение моего личного опыта.


Выбор того или иного языка (и вообще любого инструмента) как правило продиктован как объективными, так и субъективными факторами. В каждом проекте могут быть свои особенности, влияющие на выбор. Я далек от того, чтоб устраивать очередной холивар на тему какой язык круче — языков много и у каждого своя ниша. Однако, на мой взгляд выбор между Kotlin и Java более определенный, поскольку Kotlin покрывает все возможности Java и добавляет много дополнительного функционала и сахара.



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


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

Читать дальше →
Total votes 29: ↑19 and ↓10+9
Comments128

Как устроен процесс создания docker-контейнера (от docker run до runc)

Reading time8 min
Views11K
Перевод статьи подготовлен в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes».




За последние несколько месяцев я потратил немало личного времени на изучение работы Linux-контейнеров. В частности, что конкретно делает docker run. В этой статье я собираюсь резюмировать то, что я выяснил, и попытаюсь показать как отдельные элементы формируют цельную картину. Начнем мы наше путешествие с создания контейнера alpine с помощью docker run:

$ docker run -i -t --name alpine alpine ash

Этот контейнер будет использоваться в выводе ниже. Когда вызывается команда docker run, она анализирует параметры, переданные ей в командной строке, и создает JSON объект для представления объекта, который нужно создать docker. Затем этот объект отправляется демону docker через сокет домена UNIX /var/run/docker.sock. Для наблюдения за вызовами API мы можем использовать утилиту strace:
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments5

Сценарии использования service mesh

Reading time14 min
Views9.1K


Прим. перев.: автор это статьи (Luc Perkins) — developer advocate в организации CNCF, являющейся домом для таких Open Source-проектов, как Linkerd, SMI (Service Mesh Interface) и Kuma (кстати, вы тоже задумывались, почему в этом списке нет Istio?..). В очередной раз пытаясь принести в DevOps-сообщество лучшее понимание в модный хайп под названием «service mesh», он приводит 16 характерных возможностей, которые предоставляют подобные решения.

Сегодня service mesh ― одна из самых горячих тем в области программной инженерии (и по праву!). Я считаю эту технологию невероятно перспективной и мечтаю стать свидетелем ее широкого распространения (конечно, когда это имеет смысл). Тем не менее, она до сих пор окружена ореолом таинственности для большинства людей. При этом даже те, кто хорошо знаком с ней, нередко затрудняются сформулировать ее плюсы и что именно она собой представляет (включая и вашего покорного слугу). В статье я попытаюсь исправить ситуацию, перечислив различные сценарии использования «сервисных сеток»*.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments0

Финансовое latency critical приложение на Java и Akka

Reading time19 min
Views7.1K

Всем привет! В своей статье я поделюсь опытом разработки одного из финансовых приложений на Java в ТехЦентре Дойче Банка, расскажу про стек технологий, который мы используем, и каких результатов достигаем

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments36

Опыт внедрения service mesh в «Авито»

Reading time18 min
Views10K


Что такое service mesh и какие задачи по управлению инфраструктурой решает? Как service mesh внедряли в «Авито» и почему отказались от популярного Istio? Зачем стали писать аналог и к чему в итоге пришли? Об этом в интервью «Слёрму» рассказал Александр Лукьянченко — тимлид в команде архитектуры «Авито» и разработчик интенсива по service mesh.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

OpenTelemetry на практике

Reading time11 min
Views57K
Совсем недавно два стандарта – OpenTracing и OpenCensus – окончательно объединились в один. Появился новый стандарт распределенного трейсинга и мониторинга – OpenTelemetry. Но несмотря на то, что разработка библиотек идет полным ходом, реального опыта его использования пока не слишком много.

Илья Казначеев color, который занимается разработкой восемь лет и работает backend-разработчиком в МТС, готов поделиться тем, как применять OpenTelemetry в Golang-проектах. На конференции Golang Live 2020 он рассказал о том, как настроить использование нового стандарта для трейсинга и мониторинга и подружить его с уже существующей в проекте инфраструктурой.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments5

Реверс-инжиниринг исходного кода коронавирусной вакцины от компаний BioNTech/Pfizer

Reading time11 min
Views104K
Добро пожаловать. В данном посте мы посимвольно разберём исходный код вакцины BioNTech/Pfizer SARS-CoV-2 мРНК.

Да, такое заявление может вас удивить. Вакцина – это ведь жидкость, которую вводят человеку в руку. При чём тут какой-то исходный код?

Хороший вопрос. Начнём мы с небольшой части того самого исходного кода вакцины BioNTech/Pfizer, также известной, как BNT162b2, также известной, как Tozinameran, также известной, как Comirnaty.


Первые 500 символов мРНК BNT162b2.

В сердце вакцины находится вот такой цифровой код. Его длина составляет 4284 символа, так что его вполне можно уместить в несколько твитов. В самом начале процесса производства вакцины кто-то закачал этот код в ДНК-принтер (ага), который, в свою очередь, превратил байты с накопителя в реальные молекулы ДНК.
Total votes 316: ↑310 and ↓6+304
Comments359

Git, я хочу все отменить! Команды исправления допущенных ошибок

Reading time4 min
Views47K
image

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

Но вся штука в том, что для исправления проблемы нужно знать точное название команды. И здесь у нас возникает типичная проблема курицы и яйца. В этой статье рассказывается о командах, которые помогают решить проблемные ситуации.
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments20

Лучшее в мире видео-объяснение нейронных сетей, глубокого обучения, градиентного спуска и обратного распространения

Reading time1 min
Views57K
image

Видео от 3Blue1Brown отличаются поразительной понятностью и лаконичностью. Делать конспект видеоуроков по нейронным сетям у меня не получилось, ибо это была бы просто раскадровка, да и особая магия динамики именно видео непросто передать.

Из комментариев к прошлым публикациям мне стало понятно, что есть большое количество людей, кто не знает про канал, поэтому хочу поделиться четырьмя видео (+ русские субтитры и дубляж) и сэкономить время школьникам, родителям и учителям, чтобы они могли иметь быстрый доступ к самому интересному и качественному объяснению одной из самых важных тем современности.
Total votes 65: ↑61 and ↓4+57
Comments24

Реверсим и улучшаем SATA контроллер

Reading time14 min
Views41K

Вы когда-нибудь задумывались, как много вокруг умной электроники? Куда ни глянь, натыкаешься на устройство, в котором есть микроконтроллер с собственной прошивкой. Фотоаппарат, микроволновка, фонарик... Да даже некоторые USB Type C кабели имеют прошивку! И всё это в теории можно перепрограммировать, переделать, доработать. Вот только как это сделать без документации и исходников? Конечно же реверс-инжинирингом! А давайте-ка подробно разберём этот самый процесс реверса, от самой идеи до конечного результата, на каком-нибудь небольшом, но интересном примере!

Читать далее
Total votes 215: ↑215 and ↓0+215
Comments92

Тренируемся дома: отжимания по программе Пола Уэйда

Reading time21 min
Views246K

image


Представляю программу Тюремных Тренировок Пола Уэйда. Начнём с серии классических упражнений со своим весом для верхней части тела — отжиманиям.


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


Серия сосредоточена на цепочке из 10 последовательных упражнений. Когда освоите одно упражнение, то перейдёте к следующему и так далее…
Мы называем базовые упражнения как «10 уровней», и достигнув 10 уровня, вы станете сильнейшим настолько, насколько это возможно для человека в этих движениях. По этой причине, последняя ступень именуется «уровнем мастера». Вам станет понятнее, как это работает, если дополнительно ознакомитесь с книгой Тренировочная Зона (Издательство Питер).

Читать дальше →
Total votes 157: ↑137 and ↓20+117
Comments198

Подъёмы ног по программе Пола Уэйда

Reading time24 min
Views45K

image


Техника / как выполнять


Правило первое: «Тренируйтесь по-настоящему, а не делайте вид!»


Это первый урок в тренировке центральной части тела. Если вы не знакомы с темой, то мы постараемся это исправить. Самым известным упражнением на пресс являются «кранчи» (от англ. crunch). Это упражнение, в котором напрягают пресс и поднимают туловище в пределах небольшого диапазона движения. Кранчи обычно выполняются так:


image


Цель этого упражнения «прорисовать» кубики пресса для «показухи». И это совершенно не то, чем надо заниматься, если есть желание обрести настоящую силу.


Человеческое тело создано для полноценного перемещения, а не для изолированной работы пары мышц. Организму важно работать как единой системе. В лёгкой и силовой атлетике задействуют всё тело, а не отдельные конечности. Посмотрите на борьбу, бег, броски, подъём тяжестей: во всех этих движениях тело движется как единое целое. Мышцы брюшной полости развивались, чтобы принимать участие в этой «большой игре». Тренируйте пресс подражая естественным движениям. Выполняйте их с полным диапазоном, реально перемещая тело и конечности — не надо делать это наполовину.


«И как это делать?» — спросите вы. Ответ очевиден, талия — это середина тела, мышцы здесь работают сжимаясь и сгибая его по центру. В идеале мышцы притягивают торс к ногам, как в приседаниях, или подтягивают ноги к торсу, как в подъёмах ног. Оба упражнения являются отличной тренировкой, но по многим причинам — подъём ног превосходит приседания. Для достижения высоких результатов тренируйте талию должным образом. Сосредоточьтесь на «размашистых» полноценных движениях. И подъёмы ног — одно из лучших среди них.

Читать дальше →
Total votes 29: ↑22 and ↓7+15
Comments13

Серия вебинаров по серверной разработке на Kotlin

Reading time2 min
Views1.6K
Все больше инженеров выбирают Kotlin для разработки серверных приложений. Полная совместимость с Java, корутины и высокая безопасность делают Kotlin отличным инструментом для подобных задач.

Мы организуем серию вебинаров (на английском языке), где расскажем о разработке бэкенда на Kotlin в сочетании с технологиями Apache Kafka, Spring Boot и Google Cloud Platform. Вебинары подойдут для Kotlin- и Java-разработчиков любого уровня подготовленности, в том числе для разработчиков мобильных приложений без опыта серверной разработки.

Kotlin и Apache Kafka, 10 декабря 2020, 19:30 – 20:30 МСК
Kotlin и Google Cloud Platform, 17 декабря 2020, 19:30 – 20:30 МСК
Kotlin и Spring Boot, 14 января 2021, 19:30 – 20:30 МСК

Подробнее о каждом из вебинаров читайте ниже.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments2

50 вопросов по Docker, которые задают на собеседованиях, и ответы на них

Reading time13 min
Views99K


Docker, первый выпуск которого был еще в 2013 году, — весьма удобный инструмент для сборки пакетов, поставки и запуска приложений в «контейнерах». Большинство крупных компаний, например, Google, Amazon и VMware рассматривают Docker как зрелую технологию для контейнеров, поэтому сейчас самое время изучить этот инструмент и в результате продвинуться по карьерной лестнице. Хотите? В статье будут приведены вопросы по Docker, ответы на которые нужно знать, если вы идете на собеседование.

Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments20

Самый молодой стартапер из России поднял $3,4 млн после прохождения Y Combinator

Reading time13 min
Views26K
image

Дмитрий Долгополов (CTO) и Kesava Kirupa Dinakaran (CEO) — сооснователи DigitalBrain.

Я познакомился с Дмитрием в 2015 году. Я был вожатым, а Дима — школьником. Я учил пионеров ходить по слэклайну, прогать нейроинтерфейс и кодить в наручниках, а Дима пилил какую-то игру. И вот неделю назад он мне рассказал, что он прошел летний батч Y Combinator со своим стартапом DigitalBrain и поднял 3,4 млн долларов. Я решил расспросить его поподробнее.

— Привет. Расскажи о себе.

— На данный момент мне 20 лет. После окончания школы в России следующим этапом моей жизни стало поступление в колледж в Америке (в Bay Area) на направление «computer science». А в прошлом году я и мой ко-фаундер Кейшев основали DigitalBrain — YC-стартап, где мы работаем над следующим поколением ПО для поддержки клиентов.

— Где и как учился программировать?

— Ещё в школе я научился программировать под Андроид. Изначально это была любовь к играм. Я видел, как мои одноклассники играли в различные игры на их айфонах. В то время ещё не всё, что было на iOS, было и на Андроиде. К сожалению, я не мог позволить себе купить Айфон, но одна игра мне уж слишком нравилась своей эстетикой и не оставила меня равнодушным. Я решился написать эту игру сам и начал гуглить, как писать игры на Андроид.
Total votes 65: ↑44 and ↓21+23
Comments63

Как выглядела разработка… ну скажем, в 80-х годах прошлого века

Reading time14 min
Views14K
Уже много раз в исторических постах на Хабре я видел вопросы такого плана: «А как вообще выглядела разработка тогда, когда машины были большими»? Как был построен процесс, как устроена сборка, существовал ли отладчик (заменить на любой другой инструмент), как происходило взаимодействие в команде, и т.п.

Попробую рассказать об этом на своем примере.

Итак, 80-е годы прошлого века.


Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments44

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Registered
Activity