Как стать автором
Обновить
125
0
Алексей @Sterhel

Работаю в Фантехе Яндекса

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

Проблема альтернативной реализации

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7K

В этом посте я бы хотел порассуждать о тенденции, которую постоянно наблюдаю в мире разработки ПО. На самом деле, я бы даже рискнул сказать, что подобная ситуация происходит и в мире оборудования, но буду рассматривать только программные системы, потому что работаю с ними. В этой обсуждении я затрону человеческую психологию и опишу распространённую ловушку, которой вы, надеюсь, сможете избежать.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+11
Комментарии0

Попытка разогнать сеть для БД со 100 до 200Гб/c или «failure is always an option»

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.9K

У нас есть прекрасно работающая стандартная конфигурация серверов. RAID1 для системных дисков, 2 карты по два 25Гб/с порта под сеть. Итого 100 Гб/с, которые мы научились выжимать в предыдущей заметке про iScsi (https://habr.com/ru/companies/beeline_tech/articles/821855/) под цели СУБД.

В то же время сетевое оборудование, расположенное между сервером и СХД, может значительно больше, чем 100Гб/c, как и СХД. Поэтому захотелось посмотреть, можно ли выжать на стороне сервера 200Гб/c

! Спойлер: Можно, но вы этого не захотите.

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

Как искусственный интеллект  помогает лечить рак почек. Патология, диагностика, прогноз (часть 2)

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

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

Дифференциальный диагноз почечно-клеточной карциномы

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

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

Деградация кода — это результат неправильной организации процессов

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

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

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

Силу команды постоянно нужно подстёгивать и стимулировать, сама по себе она не развивается.

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

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

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

Давайте изучим это на примере деградации кода.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+33
Комментарии22

Простая красота XOR-сжатия чисел с плавающей запятой

Уровень сложностиСредний
Время на прочтение59 мин
Количество просмотров8.5K

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

Алгоритм


Алгоритм* прост. Сначала мы записываем первое число с плавающей запятой полностью; для всех последующих чисел выполняется XOR с предыдущим числом, а затем результат кодируется одним из трёх способов.

[*Конкретно эта версия сжатия чисел с плавающей запятой при помощи XOR была впервые описана в «Gorilla: A Fast, Scalable, In-Memory Time Series Database» и часто называется «Gorilla-сжатием».]
Читать дальше →
Всего голосов 22: ↑21 и ↓1+29
Комментарии16

От дивана до переработок: как рушились мои сказочные представления об удаленке

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров26K

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

Читать далее
Всего голосов 44: ↑33 и ↓11+32
Комментарии97

Строим свой WYSIWYG с помощью LexicalJs

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

На хабре переодически появляются статьи про библиотеки для построение своего WYSIWYG редактора. Такая потребность появилась и в моей команде - «билайн дом», для создания новостей. В этой статье взглянем на них более общим взглядом и дополнительно разберем библиотеку LexicalJs

Читать далее
Всего голосов 11: ↑8 и ↓3+12
Комментарии10

Каргобайки — откуда взялись, какие бывают и как я собрал свой

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

Всем привет! Меня зовут Сергей Топунов, я работаю фронтенд‑разработчиком в SM Lab на внутреннем проекте по кластеризации магазинов, а в свободное время увлекаюсь ездой и сборкой необычных для нашей страны типов велосипедов — каргобайков или, как их еще называют, грузовелов или грузовых велосипедов. В этой статье я о них и расскажу.

Каргобайк — это название любых грузовых велосипедов. Неважно, какая конфигурация у рамы, грузовой площадки или багажника, сколько колес, есть ли мотор или нет. Такие велосипеды популярны в разных странах мира. Самые известные страны — это, конечно же, Дания и Нидерланды, но сейчас такие велосипеды можно встретить и на постсоветском пространстве, например, в Латвии или Эстонии, в Южной Америке, в США, Западной и Восточной Европе и т. д. По всему миру. Возможно, распространение зависит от степени развития велоинфраструктуры.

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии20

Создаём сетевую карту на дискретной логике

Время на прочтение6 мин
Количество просмотров9.5K
Этот пост — продолжение моего проекта по созданию завершённой компьютерной системы на компонентах дискретной логики. У меня уже есть компьютер, способный выполнять сетевые приложения, например, HTTP-сервер или игру по LAN.

В прошлом году я изготовил адаптер физического уровня, преобразующий сигнал Ethernet 10BASE-T в SPI и обратно. Тогда для тестирования его работы я использовал микроконтроллер STM32, а теперь реализую модуль слоя MAC, чтобы подключить его к своему самодельному компьютеру.

Оба адаптера полнодуплексные и имеют отдельные передатчик и приёмник.


Компьютер целиком. Новый модуль находится справа внизу
Читать дальше →
Всего голосов 54: ↑54 и ↓0+70
Комментарии5

Почему мама не может написать мне электронное письмо?

Время на прочтение4 мин
Количество просмотров13K
Детективное расследование по делу о почте Proton с шифрованием.

Внезапное молчание


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

Вместо них я начал получать зашифрованные PGP письма с пустым телом, которые выглядели вот так:


При изучении сообщения становилось очевидно, что это зашифрованное письмо, которое не поддерживает Fastmail. У этого сервиса есть целый пост, объясняющий такую позицию: https://www.fastmail.com/blog/why-we-dont-offer-pgp/, но до недавнего момента меня это не особо беспокоило, ведь никто не отправляет мне зашифрованные письма.

Теперь я знаю, что Proton отправляет зашифрованные письма на другие почтовые адреса Proton, но было очевидно, что адрес почты не хостится на Proton; это достаточно легко определить с помощью DNS. Когда я попробовал воспользоваться своей рабочей почтой, всё оказалось ещё более странным, потому что возникла та же ошибка.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+32
Комментарии6

Байки с конференций — взгляд с обеих сторон

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K

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

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

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

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

Пишем анти-легаси приложение

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

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

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

Я даже предположил, что Elm MVU — это тот путь, который данные потребности закроет.

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

Под словом «естественный» я подразумеваю нечто, что коррелирует с языком, который мы используем в повседневной жизни. Функциональное программирование не всегда можно описать таким языком (например, несмотря на то, что монады, включая Observable streams, являются относительно простым понятием, мы вряд ли сможем выразить это понятие на таком языке). Я убедился, что программирование, которое лучше коррелирует с естественным языком — это многопарадигменное программирование, где вещи не строго OOP и не строго функциональны, а то или другое в зависимости от ясности и удобства работы.

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

Настройка iScsi в L3-сети для эффективной утилизации возможностей канала и СХД

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

После тестирования NVME over TCP, описанной тут https://habr.com/ru/companies/beeline_tech/articles/770174/, решили проверить, насколько хорошо iScsi в L3-сети работает по сравнение со специализированным решение на FC.

Настройки iScsi

TL/DR

Машина в Bios переведена на профиль HPC (был пустой).

На уровне OS и iscsid сделаны такие изменения

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

Восстанавливаем старые авто — спасаем машину от гибели, а себя от рутины

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

Всем привет!

Рады анонсировать начало нашего большого спецпроекта «SM Lab в лицах» о людях, которые работают в SM Lab. Мы хотим показать их не только как высококлассных профессионалов в IT, но и как творческих, интересных личностей, которые умело совмещают работу с разнообразными увлечениями. Из этого спецпроекта вы узнаете каково восстанавливать ретроавтомобиль,как работает мультиинструменталист, побываете в шкуре фотографа, познакомитесь с каргобайкерством и многое другое)

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

Следите за нашими обновлениями и вдохновляйтесь историями наших work-life balance героев! А начнем мы наш спецпроект с ретроавтомобилей. 

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

«Тёмная звезда»: как сверхдешёвый студенческий фильм навсегда изменил научную фантастику

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

В начале 70-х молодые кинематографисты Джон Карпентер и Дэн О'Бэннон создали в качестве дипломного проекта историю о космическом корабле… не подозревая, что она повлияет на «Чужого» и множество других работ.

«Тёмная звезда» (Dark Star) — это снятый за 60 тысяч долларов студентами киношколы фильм, сегодня считающийся культовой классикой научной фантастики; он стал режиссёрским дебютом маэстро хоррора Джона Карпентера. Этой ленте недавно исполнилось пятьдесят лет; она равно далека от того, что снималось и до, и после неё — это не космическая одиссея и не космическая опера, а, скорее, холодная, мрачная и часто абсурдная картина о людях, оказавшихся вместе на неисправной межзвёздной консервной банке. Вероятно, самой известной её сценой оказалась экзистенциальная дискуссия между астронавтом и наделённой разумом бомбой.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+51
Комментарии72

Куда катится MobAIle-разработка

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров14K
Индустрия ИТ всегда была очень динамичной и быстро эволюционирующей. Например, мы в мобильной разработке всегда жили в информационном пространстве с конкурирующими и сменяющими друг друга фреймворками, парадигмами, библиотеками, операционными системами.

В целом, информационное пространство мобильной разработки довольно обособлено. Не выходя из него намеренно, мы редко узнаём про новости из мира backend, web-frontend или ML. При этом со временем тренды приходят из одной области в другую. Как пример — мода на реактивное программирование, завезенная из мира Java и бэкенда, которая постепенно сменяется асинхронным программированием благодаря языку Kotlin, который теперь активно захватывает свою долю в мире бэкенда. Или UDF-архитектуры, которые перетекли к нам из фронтенда, сменив MVP-архитектуру, когда-то перенесённой из бэкенда.

В этом посте я постарался оглянуться вокруг, выделить значимые (на мой взгляд) технологические (и не очень) тренды и понять, как они могут повлиять на работу мобильного разработчика и индустрию в целом; а также, что нам с этим делать и как подготовиться к будущим изменениям.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+21
Комментарии6

Как Apache Arrow поможет управиться JS с большими данными

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.3K

Привет. Меня зовут Николай Шувалов, я занимаюсь коммерческим программированием около семи лет, владею Rust, JavaScript, PHP. Сейчас я работаю в отделе данных билайна. Наша платформа позволяет делиться с партнерами данными, не раскрывая их. Например, можно расширить данные с помощью фильтра Блума. 

Arrow в сравнении со строковыми форматами

Возьмём простую таблицу, которая состоит из трех столбцов: телефона, даты и имени. Рассмотрим, как она будет выглядеть в строковом и столбчатом форматах. Для строкового формата мы возьмем csv и json, для столбчатого формата структура будет одинаковой. Если же таблица состоит, например, из миллиона строк, а нужно получить имя на строке с номером 10 000, то придется бежать по всей строчке. В json то же самое. А в столбчатом формате ситуация иная — значения привязаны к столбцам. Когда мы хотим получить имя на строке 10 000, то сразу обращаемся к этому столбцу и получаем все его данные. 

Существуют RA (random access) файлы, в которых можно пропускать заданное количество строк, но все равно парсеру нужно читать и анализировать пройденные строчки.

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

Продуктовый подход на минималках

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров1.8K

Всем добрый день!

Меня зовут Иван Хахарев и я работаю ведущим системным аналитиком в команде WEB Campaign, это внутренняя разработка Спортмастера для формирования маркетинговых логических цепочек. Я в команде уже полгода, и на момент моего прихода ребята уже почти год двигались к веб-версии. В команде на текущий момент семь человек, трое из которых — разработчики. 

Прежде чем мы поговорим про новую команду, хочу рассказать небольшую предысторию. Ранее, я почти пять лет, я работал в другом продукте, в рамках которого мы прошли полный процесс трансформации этап перехода на  по методологии по Agile и DevOps. Ниже представлены все  список мероприятий, которые мы смогли внедрить за два с половиной года. (слайд 2.24) 

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

Как настроить ETL с json’ами в Apache NiFi

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.4K

Привет, Хабр! Меня зовут Сергей Евсеев, сегодня я расскажу, как в Apache NiFi настраивается ETL-пайплайн на задаче с JSON’ами. В этом мне помогут инструменты Jolt и Avro. Пост пригодится новичкам и тем, кто выбирает инструмент для решения схожей задачи.

Что делает наша команда

Команда работает с данными по рекрутингу — с любой аналитикой, которая необходима персоналу подбора сотрудников. У нас есть различные внешние или внутренние источники, из которых с помощью NiFi или Apache Spark мы забираем данные и складируем к себе в хранилище (по умолчанию Hive, но есть еще PostgreSQL и ClickHouse). Этими же инструментами мы можем брать данные из хранилищ, создавать витрины и складывать обратно, предоставлять данные внутренним клиентам или делать дашборды и давать визуализацию.

Описание задачи

У нас есть внешний сервис, на котором рекрутеры работают с подбором. Сервис может отдавать данные через свою API, а мы эти данные можем загружать и складировать в хранилище. После загрузки у нас появляется возможность отдавать данные другим командам или работать с ними самим. Итак, пришла задача — нужно загрузить через API наши данные. Дали документацию для загрузки, поехали. Идем в NiFi, создаем пайплайн для запросов к API, их трансформации и складывания в Hive. Пайплайн начинает падать, приходится посидеть, почитать документацию. Чего-то не хватает, JSON-ы идут не те, возникают сложности, которые нужно разобрать и решить.

Ответы приходят в формате JSON. Документации достаточно для начала загрузки, но для полного понимания структуры и содержимого ответа — маловато. 

Мы решили просто загружать все подряд — на месте разберемся, что нам нужно и как мы это будем грузить, потом пойдем к источникам с конкретными вопросами. Так как каждый метод API отдает свой класс данных в виде JSON, в котором содержится массив объектов этого класса, нужно построить много таких пайплайнов с обработкой разного типа JSON’ов. Еще одна сложность — объекты внутри одного и того же класса могут отличаться по набору полей и их содержимому. Это зависит от того, как, например, сотрудники подбора заполнят информацию о вакансии на этом сервисе. Этот API работает без версий, поэтому в случае добавления новых полей информацию о них мы получим только либо из данных, либо в процессе коммуникации.

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

Почему безопасник должен расти из программиста

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров9.7K

По каждому из направлений в ИТ есть свои так называемые «приколы» и особенности в части поиска и обучения сотрудников, взаимодействия с софтом, заказчиками и так далее. В моей области, то есть в области информационной безопасности, все еще обсуждают такой вопрос: «Должен ли безопасник расти из программиста?». Имея 25+ лет в области ИТ и ИБ ответственно заявляю — должен. Для меня это не вопрос, но многие со мной не согласятся. Сегодня раскрою свою позицию и объясню, почему безопасникам жизненно необходимо быть программистами.

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

Читать далее
Всего голосов 17: ↑14 и ↓3+18
Комментарии29
1
23 ...

Информация

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