Как стать автором
Обновить
60
0
Дмитрий @Pozitron

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

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

IT-релокация: какие скиллы качать, чтобы устроиться на зарубежный рынок

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

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

Мы пообщались с Павлом Замошиным, Site Reliability Engineer в Speakap. Он уже более двух лет в релокации, и его переезд пришёлся на разгар пандемии. Павел рассказал, чем зарубежные собеседования отличаются от российских, и что нужно уметь, чтобы получить оффер. А ещё поделился, как выбирал страну и с какими неочевидными сложностями столкнулся после переезда.

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

Глубокое погружение в Linux namespaces, часть 3

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

Часть 1
Часть 2
Часть 3
Часть 4


Mount namespaces изолируют ресурсы файловых систем. Это по большей части включает всё, что имеет отношение к файлам в системе. Среди охватываемых ресурсов есть файл, содержащий список точек монтирования, которые видны процессу, и, как мы намекали во вступительном посте, изолирование может обеспечить такое поведение, что изменение списка (или любого другого файла) в пределах некоторого mount namespace инстанса M не будет влиять на этот список в другом инстансе (так что только процессы в M увидят изменения)

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

Трюки с виртуальной памятью

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

Я уже довольно давно хотел написать пост о работе с виртуальной памятью. И когда @jimsagevid в ответ на мой твит написал о ней, я понял, что время пришло.

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

Но, оказывается, с помощью виртуальной памяти можно делать довольно интересные вещи.

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

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

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

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


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


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


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


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

Защита и взлом Xbox 360 (Часть 1)

Время на прочтение12 мин
Количество просмотров102K
image Вы наверняка слышали про игровую приставку Xbox 360, и что она «прошивается». Под «прошивкой» здесь имеется в виду обход встроенных механизмов защиты для запуска копий игр и самописного софта. И вот здесь возникают вопросы! Каких механизмов, как они обходятся? Что же наворотили разработчики, как это сумели обойти? На самом деле, тема очень обширная и интересная, особенно для Xbox 360 — здесь можно встретить уязвимости в ПО, аппаратные недочеты, и совсем уж магическую магию. Интересно? Заглядываем! В первой части у нас знакомство с гипервизором, приводами и прошивками…

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

Асинхронные режимы фреймворка gRPC и принципы их работы в С++

Время на прочтение26 мин
Количество просмотров24K
Однажды мы с нашей командой решили попробовать gRPC для своих задач. После некоторых обсуждений, пришли к выводу, что будем использовать асинхронные клиент и сервер. Однако, под рукой оказался рабочий пример из документации только для одного режима. Примеры остальных режимов взаимодействия, основные принципы работы асинхронных операций, принципы работы асинхронного сервера и клиента в gRPC и многое другое под катом.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии1

Поговорим о смерти

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

Люди не делятся на гарантированных самоубийц и на тех, кому это не грозит. Люди делятся на тех, кто совершил самоубийство, и тех, кто этого не сделал.


В момент слабости важно знать, что с тобой происходит и как грамотно действовать.


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


По данным Всемирной организации здравоохранения (ВОЗ), каждые 40 секунд кто-то из жителей Земли уходит из жизни сознательно, кончая жизнь самоубийством. Посмотрите на часы — секундная стрелка обошла круг. Ещё одна человеческая жизнь оборвалась.


Согласно приводимой ВОЗ статистике, среди причин смерти молодых людей (в возрасте 15—29 лет) в мировом масштабе самоубийства занимают второе место — не автокатастрофы, не наркотики, не алкоголь, не экстремальные виды спорта. Суицид.


Ежедневно в мире совершают самоубийства 3 тысячи человек, а ежегодно – около 1 миллиона человек (1,5 % всех смертей).


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



Читать дальше →
Всего голосов 166: ↑117 и ↓49+105
Комментарии367

Резюме глазами интервьюера

Время на прочтение9 мин
Количество просмотров53K
Когда я составляла свое первое резюме, процесс отбора на очное интервью мне казался магией. Люди, принимающие решения, представлялись «черными ящиками», которые определяют: кандидат «интересен» или «неинтересен» — по непонятным критериям.

Статьи «Как составить резюме» отчасти были полезны, а отчасти путали и нагоняли страх: их авторы утверждали, что мое письмо может попасть в корзину, если не выдержана структура или ответственный сотрудник не увидел в нем ключевых слов за первые 5 секунд чтения.

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

В этой статье я хочу рассказать:

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

А главное — хочу объяснить логику, которой мы руководствуемся, чтобы процесс больше не выглядел магией.

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

image
Читать дальше →
Всего голосов 91: ↑85 и ↓6+79
Комментарии106

Словарик айтишника или Что? Где? Куда? Часть 1

Время на прочтение8 мин
Количество просмотров228K
«Привет! Добро пожаловать! Спасибо, что приняла наш оффер. Пойдем знакомиться с твоей командой. У них как раз сейчас дейли. Ты вышла под конец спринта, поэтому пока работы для тебя не запланировали. Как стендап закончится, можешь почитать спеки, командные окиары и просмотреть бэклог на следующий спринт. По всем вопросам обращайся к своему пио
Это бессмыслица какая-то или деловой язык? Попробуем разобраться.
image
Читать дальше →
Всего голосов 41: ↑29 и ↓12+17
Комментарии157

Работа не волк, часть 1. Поиск работы: 9 кругов HR-a

Время на прочтение16 мин
Количество просмотров72K
Поиск работы вызывает неприятные тревожно-азартные ощущения и у вчерашнего студента, и у профессионала с годами опыта за плечами. Это не признак неуверенности в себе, это проблема всей отрасли поиска персонала: мы идём на собеседование и понимаем, что не всё может зависеть от профессионализма, что кому-то не понравятся наши софт-скиллы или внешний вид, кто-то упрется в вопрос о причинах ухода с предыдущего места. На Хабре может выйти 200 статей-обращений к HR-службами IT-компаний, где сами соискатели будут с пеной у рта рассказывать, как с ними (нами!) нужно разговаривать, как оценивать, но на первой встрече с будущим работодателем вам всё равно подсунут психологический тест, зададут странные вопросы и посмотрят на вас, как будто вы уже что-то нарушили и идёте в компанию, чтобы порушить устои и корпоративную культуру. Поэтому мы не будем рассказывать компаниям, в чём они не правы — мы расскажем вам, как с этим жить. 


Это первая часть нашего нового цикла «Работа не волк», который будет состоять из пяти частей, каждая из которых раскрывает важнейшие аспекты, связанные с трудоустройством. Как и в случае с циклом про образование, статьи будут субъективными, честными и основанными на обширной экспертизе. Вот что вас ждёт:

Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →
Всего голосов 52: ↑45 и ↓7+38
Комментарии37

Файл дескриптор в Linux с примерами

Время на прочтение14 мин
Количество просмотров109K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

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

«ну хорошо», сказал я, «если мы не можем перезапускать приложение и данные нам не важны, то мы можем просто очистить этот открытый файл через файл дескриптор, даже если мы его не видим в команде ls на файловой системе».

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Всего голосов 136: ↑136 и ↓0+136
Комментарии20

Эволюция переключения контекста x86 в Linux

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


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

Задача: проследить, как изменялось переключение контекста в ядре Linux от первой (0.01) до последней версии LTS (4.14.67), с особым акцентом на первую и последнюю версии.
Читать дальше →
Всего голосов 74: ↑73 и ↓1+72
Комментарии9

Криптографические атаки: объяснение для смятённых умов

Время на прочтение33 мин
Количество просмотров54K
При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

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

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать дальше →
Всего голосов 103: ↑103 и ↓0+103
Комментарии22

Как разрабатываются и производятся процессоры: проектирование ЦП

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

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

Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)

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

Существует два основных типа транзисторов, используемых в современных процессорах: pMOS (PМОП) и nMOS (NМОП). nMOS-транзистор пропускает ток, когда затвор (gate) заряжен или имеет высокое напряжение, а pMOS-транзистор пропускает ток, когда затвор разряжен или имеет низкое напряжение. Сочетая эти типы транзисторов комплементарным образом, мы можем создавать логические элементы КМОП (CMOS). В этой статье мы не будем подробно разбирать особенности работы транзисторов, но коснёмся этого в третьей части серии.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии8

Модифицируем Bluetooth-стек для улучшения звука на наушниках без кодеков AAC, aptX и LDAC

Время на прочтение7 мин
Количество просмотров134K
Перед прочтением этой статьи рекомендуется ознакомиться с предыдущей статьёй: Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах / in English

Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.

Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах, путём программных изменений смартфона или компьютера.
Читать дальше →
Всего голосов 100: ↑98 и ↓2+96
Комментарии53

Микробиота. Как лекарства влияют на состав бактерий кишечника

Время на прочтение6 мин
Количество просмотров12K
Мы с Атласом уже рассказали, как работает микробиота, какие бактерии живут в кишечниках россиян, как микробиота влияет на развитие заболеваний, а также чем можно помочь здоровью кишечника. Мы получили много вопросов об антибиотиках и решили подготовить отдельный материал о том, как на микробиоту влияют разные лекарства. Рассказываем о самых популярных.


Автор иллюстраций Rentonorama
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии7

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 2: подготовка документов и переезд

Время на прочтение16 мин
Количество просмотров64K
Итак, за примерно год (май 2017 — февраль 2018) я, программист C++, нашел-таки работу в Европе. Я десятки раз откликался на вакансии в Англии, Ирландии, Швеции, Нидерландах и даже в Португалии. Я раз двадцать беседовал по телефону, скайпу и прочим системам видео связи с рекрутерами, и несколько меньше — с техническими специалистами. Я ездил в Осло, в Эйндховен и три раза в Лондон на финальные интервью. Все это подробно описано здесь. В итоге я получил один оффер и принял его.



Оффер этот был из Нидерландов. Работодателям в этой стране относительно просто пригласить работника из-за рубежа (не из Евросоюза), поэтому бюрократической волокиты немного, а сам процесс оформления занимает всего несколько месяцев.

Но всегда можно самому себе создать сложности. Что я и сделал, чем затянул свой переезд еще на месяц. Если интересно почитать о хлопотах (нет, не сильно приятных) связанных с переездом IT семьи в Западную Европу — добро пожаловать под кат.
Читать дальше →
Всего голосов 115: ↑105 и ↓10+95
Комментарии187

Я не знал, как работают процессоры, поэтому написал программный симулятор

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

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

Я прочитал книгу «Но откуда он знает?» Кларка Скотта с детальным описанием простого 8-битного компьютера: начиная с логических вентилей, ОЗУ, транзисторов процессора, заканчивая арифметико-логическим устройством и операциями ввода-вывода. И мне захотелось реализовать всё это в коде.

Хотя я не настолько интересуюсь физикой микросхем, но книга просто скользит по волнам и красиво объясняет электросхемы и как биты перемещаются по системе — от читателя не требуется знание электротехники. Но мне недостаточно текстового описания. Я должен видеть вещи в действии и учиться на своих неизбежных ошибках. Так я начал реализацию схем в коде. Путь оказался тернист, но поучителен.
Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии33

Наглядное пособие по устройству микросхемы

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


Автора всегда восхищала работа микросхем. Как пластина, некоторые участки которой преднамеренно загрязнены, управляет электронами? И тут внезапно кто-то придумывает наглядное пособие, которое делает принцип действия микросхемы максимально понятным. Именно это произошло на ярмарке самодельщиков в области залива Сан-Франциско.
Читать дальше →
Всего голосов 68: ↑68 и ↓0+68
Комментарии23

Стеганография в файловой системе оптических дисков

Время на прочтение7 мин
Количество просмотров7.5K
Будучи в поисках интересной информации о стеганографии, я наткнулся на занимательную статью о стеганографии в файловой системе, и, спустя какое -то время, та навела меня на мысль о создании стеганографии в файловой системе оптических дисков.

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

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

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

image
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии5
1
23 ...

Информация

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