Я работаю системным программистом в компании КриптоПро. Нередко мои задачи связаны с ошибками, которые лежат на самом нижнем уровне современных операционных систем, под которые мы пишем ПО. Я хочу поведать тебе, Хабр, об одной из таких ошибок и о том, как я жаловался на неё разработчикам.
Рубрика «библиотека» - 2
Баг в ядре Linux и как правильно жаловаться
2022-03-26 в 19:10, admin, рубрики: C, deadlock, linux, open source, библиотека, блокировки, взаимные блокировки, многопоточность, параллельное программирование, системное программирование, ядроПроект по созданию российской базы знаний
2022-03-25 в 22:51, admin, рубрики: Libgen, scihub, библиотека, книги, Профессиональная литература, Социальные сети и сообщества
Здесь был большой пост, который состоял из нескольких частей, но он подвергся цензуре и был удален за "инициирование политических дискуссий". Поэтому я решил создать новый пост, содержащий только одну из его частей.
Российские библиотеки потеряли доступ к базе газетных статей, однако затем обошли запрет Роскомнадзора
2021-10-31 в 22:46, admin, рубрики: DNS, безумие, библиотека, блокировка, газеты, Журналы, Законодательство в IT, запрет, информационная безопасность, реестр блокировок, Роскомнадзор, Сетевые технологии, СССРКак это работало раньше
Компания EastView оцифровала множество советских газет и журналов, в том числе газеты «Известия», «Правда», «Советская культура», «Литературная газета», журналы «Огонёк» и «Искусство кино», «Вопросы истории» и много других.
Получилась база данных советской прессы. Номера доступны как PDF страницы или как поиск по тексту. Отдельные страницы можно сохранить на компьютер. Распознанный текст можно скопировать. А при поиске показывают фрагмент текста.
Лайфхак: как спарсить гигабайт double-ов в секунду
2021-02-16 в 9:30, admin, рубрики: c++, библиотека, Блог компании RUVDS.com, Лайфхаки для гиков, парсеры, ПрограммированиеКак в коде на C++ прочитать значение double из строки?
std::stringstream in(mystring);
while(in >> x) {
sum += x;
}
На Intel Skylake с компилятором GCC 8.3, такой код парсит 50 МБ/с. Жёсткие диски запросто обеспечивают последовательное чтение со скоростью в несколько ГБ/с, так что вне всякого сомнения, нас ограничивает не скорость чтения с диска, а именно скорость парсинга. Как его ускорить?
Первое, что напрашивается – отказаться от удобств, предоставляемых потоками в C++, и вызывать strtod(3) напрямую:
do {
number = strtod(s, &end);
if(end == s) break;
sum += number;
s = end;
} while (s < theend);
Скорость вырастает до 90 МБ/с; профайлинг показывает, что при чтении из потока выполняется ~1600 инструкций на каждое читаемое число, при использовании strtod – ~1100 инструкций на число. Стандартные библиотеки Си и C++ можно оправдать требованиями универсальности и переносимости; но если ограничиться парсингом только double и только на x64, то можно написать намного более эффективный код: хватит 280 инструкций на число.
Читать полностью »
Чаты на вебсокетах в iOS, если у вас WAMP
2020-12-14 в 8:25, admin, рубрики: iOS, swift, wamp, библиотека, Блог компании FunCorp, декодирование, клиент-сервер, мобильная, протокол, разработка, разработка мобильных приложений, разработка под iOS, сокеты, чатРазработка заняла примерно 9 месяцев, а я занимался реализацией клиент-серверного общения по сокету для iOS. Особенности нашей ситуации:
- Поддержка старых версий iOS, где нативных методов для общения по сокетам ещё не было — пришлось искать рабочую библиотеку и фиксить баги.
- Протокол WAMP на бэкенде — предстояло научить клиент декодировать any, декодировать протоколы и создать объект, который отвечает за отправку и приём сообщений.
Примечание: описанные ниже способы декодирования, можно применить и в других задачах.
Читать полностью »
PyDERASN: как я добавил big-data поддержку
2020-04-19 в 17:00, admin, рубрики: asn.1, python, библиотека, информационная безопасность, ПрограммированиеПродолжаю прошлую статью о PyDERASN — свободном ASN.1 DER/CER/BER кодеке на Python. За прошедший год, с момента её написания, кроме всяких мелочей, небольших исправлений, ещё более строгой проверки данных (хотя и прежде он был уже самым строгим из известных мне свободных кодеков), в этой библиотеке появился функционал для работы с большими объёмами данных — не влезающих в оперативную память. Об этом и хочу рассказать в данной статье.

Как не переписать проект на Rust
2019-11-09 в 22:59, admin, рубрики: C, chm, chmlib, ffi, Rust, библиотека, обертка, портирование, ПрограммированиеКак только вы переступаете через болевой порог Борроу-Чекера и осознаёте, что Rust позволяет вытворять невообразимые (и порой опасные) в других языках вещи, вас может постигнуть настолько же непреодолимое желание Переписать Всё на Rust. Хоть и в лучшем случае это банально непродуктивно (бессмысленное разбазаривание усилий на несколько проектов), а в худшем — приводит к уменьшению качества кода (ведь с чего вы считаете себя более опытным в области применения библиотеки, чем её изначальный автор?)
Гораздо полезнее будет предоставить безопасный интерфейс для оригинальной библиотеки, повторно используя её код.
Как IT-компания книжное издательство открывала — и выпустила книгу про Kafka
2019-04-25 в 6:25, admin, рубрики: Apache, apache kafka, diy или сделай сам, ITSumma, библиотека, Блог компании ITSumma, издательское дело, книги, книгоиздание, литература, Профессиональная литератураВ последнее время некоторым начинает казаться, будто такой «консервативный» источник информации как книга начинает сдавать позиции и теряет актуальность. А зря: несмотря на то, что мы уже живём в эпоху цифровую и вообще работаем в IT, книжки мы любим и уважаем. Особенно такие, которые не просто учебник по конкретной технологии, а реальный источник общего знания. Особенно такие, которые не потеряют актуальность полгода спустя. Особенно такие, которые написаны хорошим языком, грамотно переведены и красиво оформлены.
И знаете, что оказалось? Таких книг нет.
Либо — либо — либо. А вот этой прекрасной книги, в которой сочетается всё, что думающий и практикующий специалист ценит, — её нет.
Поэтому мы решили, что она должна быть. И не одна — таких книг должно быть много. Решили — и открыли собственное издательство ITSumma Press: возможно, первое издательство в России, созданное IT-компанией.
Было потрачено много сил, времени и порядком денег. Но вот за день до конференции Uptime day 4 мы получили пилотный тираж и подержали первую изданную нами книгу в руках (весь тираж подарили участникам конференции в итоге). Невероятное ощущение! Никогда заранее не знаешь, куда в итоге может тебя привести твоя тяга к прекрасному. Первая книга, по понятным причинам, была своеобразным пробным шаром. Нам нужно было самим прощупать весь процесс книгоиздательства, понять, что мы можем привнести сразу, а над чем нужно будет подумать ещё. И по итогу мы остались очень довольны результатом. Это важное дело, которое мы хотим продолжать и развивать. А в этом тексте хочу просто рассказать, с чего всё начиналось, как мы спорили про название, как заключили договор с, ни много, ни мало, самими O’Reilly и сколько редактур надо провести, прежде чем отдать текст в прод в типографию.
Лунная миссия «Берешит» — начаты поиски первой лунной библиотеки после аварии ее носителя
2019-04-20 в 17:55, admin, рубрики: Arch Mission, Beresheet, IAI, Israel To The Moon, moon, orbit, space, SpaceIL, TeamSpaceIL, авария, астрономия, Берешит, библиотека, Израиль, космонавтика, лунная миссия луноход, Научно-популярное100 грамм немного защищенного каптоновой лентой цифрового и аналогового контента человечества против 150 кг аппарата «Берешит» и 76 кг топлива на его борту при столкновении с Луной, а это, с учетом расчетных скоростей падения: 100 МДж (мегаджоулей) кинетической энергии и 1000 МДж химической энергии.
В организации Arch Mission Foundation пытаются понять — сохранилась ли посланная на Луну библиотека, и где она может быть там.
Читать полностью »
PyDERASN: как я написал ASN.1 библиотеку с slots and blobs
2019-03-18 в 15:15, admin, рубрики: asn.1, python, библиотека, информационная безопасность, ПрограммированиеASN.1 это стандарт (ISO, ITU-T, ГОСТ) языка описывающего структурированную информацию, а также правил кодирования этой информации. Для меня как программиста это просто ещё один формат сериализации и представления данных, наравне с JSON, XML, XDR и другими. Он крайне распространён в нашей обычной жизни, и с ним многие сталкиваются: в сотовой, телефонной, VoIP связи (UMTS, LTE, WiMAX, SS7, H.323), в сетевых протоколах (LDAP, SNMP, Kerberos), во всём, что касается криптографии (X.509, CMS, PKCS-стандарты), в банковских картах и биометрических паспортах, и много где ещё.
В этой статье рассматривается PyDERASN: Python ASN.1 библиотека активно применяющаяся в проектах связанных с криптографией в Атласе.
