Search
Write a publication
Pull to refresh
0
0

User

Send message

Педальку в пол, или как ещё ускорить CPU-bound приложение?

Reading time29 min
Views6.9K

Зачем я это читаю?


TL;DR:


  • Переложив секции кода и данных программы на большие страницы можно существенно ускорить приложение (у нас получилось до +10%) не трогая исходный код.
  • Можно быстро проверить ничего не перекомпилируя, детали здесь.
  • Финальное решение оперирует "классическими" большими страницами (не transparent huge pages), поэтому в какой-то степени его можно назвать дальнейшим развитием libhugetlbfs.
Читать дальше →

Разбор алгоритмических задач с собеседований в Google, Facebook, Amazon

Reading time5 min
Views20K

Всем привет!

В данной статье пройдемся по двум задачам, взятым с leetcode.com из списка часто встречаемых задач на собеседованиях в FAANG:

1. Guess the word
2. Number of Good Ways to Split a String

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

Читать далее

Плесени, гнили, токсины μ-скопических грибов

Reading time32 min
Views36K
Когда-то, давным давно в комментариях к моей статье, посвященной картофельному солонину, как из рога изобилия посыпались фотографии гнилого/плесневелого картофеля который люди покупают на рынках, в супермаркетах и т.п. А вместе с фотографиями и вопросы «это можно есть? как очистить ?». Уже тогда я понимал, что одними ответами на комментарии здесь не обойтись, тема гораздо более глобальна, чем может показаться. И вот недавно, в продолжение темы токсинов грибов, появился повод обсудить вездесущие микроскопические грибки, и то, с помощью чего они сражаются пытаются поработить мир — микотоксины. Статья по мотивам серии заметок в канале LAB-66 (оригинальная статья — Привет, ЕвроОпт! Оружие МИКРОгрибов). Как разрушить захватнические планы плесени — читаем под катом!

ПРЕДУПРЕЖДЕНИЕ! Статья не соответствует «тематике Хабра»!


Боишся микотоксина плесени? Заходи почитать!

«Эти глаза напротив»: история внедрения биометрического решения в X5 Group

Reading time11 min
Views9.1K

Привет, Хабр! Мы уже рассказывали о магазине с полностью автоматизированной системой покупок, который получил название «Пятерочки #налету». Но это далеко не все технологические проекты компании. Практически одновременно с новыми автономными «Пятёрочками» мы начали разрабатывать и систему биометрической оплаты. Покупателю достаточно посмотреть в камеру и всё — покупка оплачена. О том, как этот проект внедрялся и что из себя представляет, читайте в нашем новом материале – собрали всю начинку!

Читать далее

Есть ли жизнь после FAANG компании или мой опыт собеседований в Северной Америке, 20+ компаний за 3 недели

Reading time14 min
Views47K

Я хотел бы поделиться недавним опытом собеседований на рынках Канады и США на позицию инженера данных. У меня был больше научный интерес, чем необходимость. За 3 недели я побщался более чем с 20 компаниями в Канада и США, чтобы оценить возможности рынка и тренды индустрии аналитики.

Узнать результаты

Живые мертвецы: примеры успешного восстановления ретро-компьютеров

Reading time5 min
Views11K

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

Читать далее

Минимизация файла ELF – попробуем в 2021?

Reading time18 min
Views11K

Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Читать дальше →

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

Reading time3 min
Views61K

Все могут короли программисты

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

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

Читать далее

Распознание длинных аудио сервисом Yandex SpeechKit из командной строки bash/shell через API

Reading time5 min
Views9.6K

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

Читать далее

Старый фотик + bash = таймлапс

Reading time9 min
Views29K

Думаю у многих из нас, в шкафу пылился старый зеркальный фотоаппарат, типа Canon EOS 400D. Он как чемодан без ручки: выбросить жалко, продать смысла нет, и использовать вряд ли будешь. Достал его так одним вечером, и подумал: вещь хорошая и вполне годная для всяких опытов. И сразу загорелся применить его во всяких своих самоделках. А что, весьма хорошо фотографирует из коробки, достаточно широкий спектр всяких регулировок, осталось только научиться с ним работать. Всего-то подружить его с компьютером, да Linux, и дело в шляпе! В результате у нас получается просто непаханое поле для фотографических экспериментов и применения в своих придумках. Давайте же поглядим, как это можно сделать и что получилось из таких экспериментов.
Читать дальше →

Мои собеседования 2021 edition

Reading time13 min
Views45K

Внимание: повествование будет идти в стиле "здравствуй дорогой дневничок", без критики и срывов покровов. Я строго против публичной критики компаний в разрезе процесса интервью. Хотят устраивать 5 алгораундов - их дело, они будут платить тебе деньги и вправе решать как они собеседуют. С другой стороны, я считаю, что могу высказывать свое мнение без конкретных имен. Все описанные компании не российские. Извиняюсь за англицизмы.

Читать далее

Где работать в ИТ в 2021: MYRTEX

Reading time11 min
Views6.4K

Наша рубрика «Где работать в ИТ» — это интервью с интересными айти-компаниями в котором они делятся подробностями о своей внутренней кухне. Мы задаём компаниям три десятка вопросов начиная с условий работы, заканчивая стэком технологий и тем, как происходит код-ревью. А потом публикуем их ответы и фотки, чтобы вы узнали о них побольше, влюбились и захотели там работать.

Сегодня герой очередного выпуска рубрики — компания MYRTEX, которая разрабатывает и развивает платформы для проведения грантовых, субсидиальных и других видов конкурсов. 

Читать далее

Решил 50 задач и ответил на вопрос — Python или JavaScript?

Reading time28 min
Views59K


Привет, друзья!


Я — JavaScript-разработчик. Код пишу в основном на React (иногда на Vue), немного на TypeScript, немного на Node, немного знаю SQL, но...


  • со мной работает много людей, которые пишут код на Python
  • вокруг много разговоров про Python
  • повсюду преподают Python
  • Яндекс любит Python (раньше Гугл тоже его любил, но теперь у него есть Go)

Короче говоря, сложно было не заинтересоваться Python.


Как известно, лучший способ научиться "кодить" — это писать код.


Предлагаю вашему вниманию 50 популярных в сфере программирования задач, решенных с помощью Python и JavaScript.


Цель — сравнить языки на предмет предоставляемых ими возможностей.


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


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

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

Трояны и бэкдоры в кнопочных мобильных телефонах российской розницы

Reading time15 min
Views313K

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

Читать далее

7 ложных предположений о том, как устроены строки

Reading time10 min
Views25K

Как Unicode уничтожает большинство ваших предположений о том, как на самом деле работают строки



Когда речь идет о написании чего-то простого, мы, программисты, обычно действуем интуитивно. В случае с простыми вещами мы полагаемся на четкий набор предположений вместо конкретных знаний о том, как эти вещи работают. Например, мы предполагаем, что если b = a + 1, то b больше a, или что если мы применим функцию malloc для какого-то буфера, то получим необходимое количество памяти для записи. Мы не заглядываем в документацию всякий раз, когда имеем дело с мелочами.


Мы делаем так, потому что тотальная проверка замедлит работу. Однако если бы мы все-таки провели проверку, мы бы обнаружили, что обычно ошибаемся в своих предположениях. Существует арифметическое переполнение, в результате которого a + 1 может быть значительно меньше, чем a. Иногда malloc дает нам null вместо буфера и мы оказываемся в пролете.


Нам обычно приходится обжечься на таких вещах, чтобы хотя бы немного изменить свои предположения. И даже тогда мы обычно исправляем их весьма условно.
Столкнувшись с досадной ошибкой переполнения, мы можем скорректировать свое предположение о целых числах в виде «a + 1 больше a, если отсутствует вероятность, при которой a представляет собой очень большое число». И мы действуем исходя из этого, вместо того, чтобы обдумать четкие правила, по которым работает переполнение.


Уточненные предположения – это опыт. Чаще всего они позволяют нам работать быстрее и правильнее. Однако мы можем вообще переместить некоторые вещи, например, правильную обработку malloc, из нашей внутренней категории «простые вещи» во внутреннюю категорию «сложные вещи». И тогда мы действительно можем пойти и уточнить, как они работают.

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

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Reading time16 min
Views45K


Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook*, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.


TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.
Читать дальше →

Легенды и мифы процессора Эльбрус в примерах

Reading time15 min
Views67K

В ответ на мою статью про тупиковость развития линейки процессоров Эльбрус в качестве базовой платформы для отечественных general-purpose CPU, пользователь @alexanius (Алексей Маркин) написал свою статью-ответ, где привёл возражения моим тезисам. Дабы не превращать дискуссию в формат форумной перепалки, я попытаюсь структурировать изложенные возражения, максимально опустив малозначимые на мой взляд детали и не относящиеся к делу реплики. Также мы оставим на совести Алексея некорректные высказывания и переходы на личности. Это мишура, которая не поможет нам глубже понять суть проблемы.

Итак, если суммировать, то в моей статьей были приведены следующие недостатки Эльбруса:

Читать далее

Разделение звука в видеозаписях

Reading time8 min
Views9.3K

Традиционно популярными и активно исследуемыми областями в Deep Learning являются задачи обработки изображений или текстов. Тем не менее, задачи, связанные с обработкой звуков и аудиодорожек, полезны и могут найти практические приложения во многих областях. В данной статье я расскажу о решении задачи Sound Separation, но с одним отличием — в качестве входных данных используются видеозаписи. Обычно для задач разделения звука используют аудио данные с готовой разметкой (разделением на отдельные источники). В подходе, изначально предложенном в статье Sound of Pixels используются видеозаписи, а также не требуется явная разметка для источников звука.

Читать далее

О законных способах реверс-инжиниринга

Reading time2 min
Views4.5K

Юридические основы реверс-инжиниринга закреплены в статье 1280 Гражданского кодекса России, коротко: пункт 1 – пользователь может вносить изменения в ПО исключительно в целях функционирования на технических средствах пользователя, исправления явных ошибок. Способы исследования не обозначены.

Читать далее

Кто и зачем ремастерит саундтреки из старых видеоигр

Reading time3 min
Views3.1K

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

Читать далее

Information

Rating
Does not participate
Registered
Activity