Публикации

вчера в 09:02

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



В конце 2008 года на тогда ещё небольшую петербуржскую компанию вышел один западный медиахолдинг примерно так:
— Это вы там упоролись по хардкору и приспособили SSE-инструкции для реализации кода Рида-Соломона?
— Да, только мы не…
— Да мне пофиг. Хотите заказ?

Проблема была в том, что видеомонтаж требовал адовой производительности, и тогда использовались RAID-5 массивы. Чем больше дисков в RAID-5 — тем выше была вероятность отказа прямо во время монтажа (для 12 дисков — 6%, а для 36 дисков — уже 17-18%). Дроп диска при монтаже недопустим: даже если диск падает в хайэндовой СХД, скорость резко деградирует. Медиахолдигу надоело с криком биться головой о стену каждый раз, и поэтому кто-то посоветовал им сумрачного русского гения.

Много позже, когда наши соотечественники подросли, возникла вторая интересная задача — Silent Data Corruption. Это такой тип ошибок хранения, когда на блине одновременно меняется и бит в основных данных, и контрольный бит. Если речь о видео или фотографии — в целом, никто даже не заметит. А если речь про медицинские данные, то это становится диагностической проблемой. Так появился специальный продукт под этот рынок.

Ниже — история того, что они делали, немного математики и результат — ОС для highload-СХД. Серьёзно, первая русская ОС, доведённая до ума и выпущенная. Хоть и для СХД.
58403
261
ATisch 168,1
вчера в 12:11

Троян, ворующий предметы из инвентаря Steam из песочницы



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

Компания Valve давно в курсе проблемы, но каких-то особых действий за несколько месяцев так и не предприняла, хотя текущую волну можно без проблем остановить небольшими изменениями в клиенте Steam.
33692
66
akaluth 46,4
вчера в 17:34

Хабр, знакомься — новый LinguaLeo с персональной системой обучения иностранному языку

image

Мы видим в персонализации будущее образования, ведь каждый человек учится в собственном темпе и преследует личную цель. Кто-то предпочитает заниматься по одним материалам, а кто-то — по другим; у кого-то время на обучение есть днем, а у кого-то — вечером. Наша команда почти год ударно трудилась над тем, чтобы учесть все это и предоставить своим пользователям возможность учить английский по персональному плану. Итак, мы рады анонсировать Новый LinguaLeo! Новая версия сервиса каждому пользователю представляет индивидуальный план обучения, который отображается на новом Dashboard, а также интервальную тренировку и UGC перевод.

Проведённые тесты новой системы уже показали эффективность нового формата — выросло вовлечение. Теперь Саша, брат вашего друга и будущий выпускник, будет готовиться к ЕГЭ только по тем материалам, которые будут ему и полезны и интересны. Любитель путешествий Валера, наконец-то, сможет произнести сотруднику аэропорта: «What's the charge for excess baggage?», а ваша любимая подружка, красотка-хирург Тамара из Уфы, поймет, о чем говорят коллеги на международном симпозиуме.

Довольно простая с виду система «под капотом» прячет технологии, которых больше нигде нет, как говорит Артем Логинов, наш VP of Product. Если мы сумели вас заинтриговать — идем под хабракат, там вы узнаете подробности о наших ноу-хау.
13573
100
LinguaLeo 89,6
вчера в 22:10

Насколько медленны iostreams?

Потоки ввода-вывода в стандартной библиотеке C++ просты в использовании, типобезопасны, устойчивы к утечке ресурсов, и позволяют простую обработку ошибок. Однако, за ними закрепилась репутация «медленных». Этому есть несколько причин, таких как широкое использование динамической аллокации и виртуальных функций. Вообще, потоки — одна из самых древних частей STL (они начали использоваться примерно в 1988 году), и многие решения в них сейчас воспринимаются как «спорные». Тем не менее, они широко используются, особенно когда надо написать какую-то простую программу, работающую с текстовыми данными.

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

Сегодня в комментариях у посту возникло обсуждение о медленности iostreams. В частности, freopen пишет
Забавно смотреть на ваши оптимизации, расположенные по соседству со считыванием через cin :)

а aesamson даёт такую рекомендацию
Можно заменить на getchar_unlocked() для *nix или getchar() для всех остальных.
getchar_unlocked > getchar > scanf > cin, где ">" означает быстрее.


В этом посте я развею и подтвержу некоторые мифы и дам пару рекомендаций.
5331
81
вчера в 20:06

Шанс научиться у Яндекса тому, что он лучше всего умеет

Мы открыли набор в новый Tolstoy Startup Camp. Это мастерская Яндекса, где мы помогаем запускать стартап. Она будет уже четвертой по счёту. Предыдущие три дали много не только его участникам, но и нам — мы поняли, как и что можно изменить в кемпе. В первых трех наборах мы были готовы работать с самыми разными проектами в сфере IT при условии, что нам нравилась идея, мы верили в команду или видели потенциал для развития бизнеса.

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



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

Один из них — Анатолий anatolix Орлов, который работает в Яндексе уже почти 10 лет. Первые два года в Яндексе он писал Маркет, а потом долго занимался производительностью поиска. Второй — Костя Горский, арт-директор Яндекс.Браузера. Он в Яндексе чуть больше четырех лет. Недавно его команда представила новую концепцию Браузера.
Читайте под катом не только их разные мнения, но и подробности о кемпе.
6695
46
samuylova 21,3
вчера в 15:52

День рождения Perl и лучшие решения Golf от Moscow.pm

Сегодня исполняется 27 лет со «дня рождения» одного из самых популярных на сегодня языков программирования — Perl. На нём создано несметное множество приложений и интернет-ресурсов, в том числе и имеющие многомиллионные аудитории, и соответствующие финансовые обороты. За примерами далеко ходить не придётся: Amazon, Yahoo!, Slashdot. Последние 20 лет он входит в десятку наиболее используемых языков, несмотря на слухи о своей кончине. Однако многомиллионная армия Perl-программистов, ежегодно выдающая на-гора множество продуктов, убедительно опровергает инсинуации верблюдоненавистников. Как говорится, собака лает — караван идёт. С момента своего появления в 1987 году, Perl взрастил уже два поколения программистов, и нет никаких причин отказываться от Жемчужного Корабля Пустыни ещё лет 30 как минимум. Так что мы с удовольствием поздравляем всех Perl-программистов с днём рождения их «родного» языка, Ларри Уоллу желаем долголетия календарного и творческого, чтобы ему хватило задора на создание ещё пары версий Perl.

Также ко дню рождения этого замечательного языка мы приурочили публикацию решений победителей в небольшом конкурсе программистов Golf, объявленном 3 октября в рамках митапа Moscow.pm.
1986
6
Dzirtik 29,2
вчера в 14:14

Поддержка пользователей интернет-проекта: 3 рабочих инструмента

Всем привет! Пока все думают менять ли рубли на доллары или уже поздно, я решил поделиться с вами нашим опытом поддержки пользователей онлайн. За последние 4 года нам удалось поработать с такими компаниями, как Evernote, HeadHunter, IVI, AviaSales и многими другими. Мы знаем, как работает поддержка интернет-проектов изнутри, и для себя выделили 3 рабочих инструмента, речь о которых, и пойдет ниже.



4333
67
STdio 28,5
вчера в 14:59

Тостер. Близкие теги, страница первой подписки на теги

Мы ввели на «Тостере» понятие «близких тегов». Для любого заданного тега мы научились определять те теги, которые ему «близки», а именно чаще других тегов встречаются в одних и тех же вопросах наряду с заданным. Это можно использовать для самых разных задач, пока же мы применили эту технологию вот для чего.

20 близких тегов


У каждого тега появился подраздел, в котором выводится 20 близких тегов. Попасть в этот подраздел можно из контекстного блока «Близкие теги», который выводится в правой колонке на всех подразделах тега. Этот подраздел призван улучшить качество и точность подписки на темы, которые интересуют каждого конкретного участника нашего сообщества. Пользуясь вдобавок дополнительным инструментом «Усиленной подписки», можно отслеживать вопросы по самым узким и специальным темам, не боясь ничего пропустить.


1588
3
toster 24,7
вчера в 15:04

Домашняя бухгалтерия на платформе CUBA. Часть 2



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

В первой части я рассказал об основных частях приложения: модели данных, бизнес-логике среднего слоя и экранах, созданных на технологии Generic UI платформы. Во второй части, как и обещал, расскажу о том, как сменить тему Generic UI, как изменить поведение визуального компонента, и опишу устройство дополнительного UI для мобильных устройств, написанного на JavaScript.

вчера в 15:35

Сканеры безопасности: автоматическая валидация уязвимостей с помощью нечетких множеств и нейронных сетей

image

Сейчас в мире существует большое количество сканеров информационной безопасности разных компаний (в том числе — MaxPatrol, XSpider и анализатор кода Application Inspector производства Positive Technologies). Подобные инструменты различаются ценой, качеством сканирования, типами определяемых уязвимостей, методами их поиска и еще десятками параметров.

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

Как правило, результатом работы любого сканера безопасности является список обнаруженных уязвимостей, полученный в процессе анализа веб-приложения. Тот факт, что в сканерах используются эвристические алгоритмы, приводит к проблеме наличия ложных срабатываний и заполнению списка несуществующими в реальности уязвимостями (false positives). А это, в свою очередь, приводит к необходимости выделить ИБ-эксперта для проверки работы сканера.

Для подтверждения наличия уязвимости предлагается использоваться «эталонные» списки уязвимостей, содержащихся в похожих веб-приложениях. Аналитик может использовать такие списки для выявления наиболее вероятных уязвимостей тестируемого продукта и отсеивать очевидные false positives.
6951
96
ptsecurity 340,9