Рубрика «open source» - 146

«Программисты тратят огромное количество времени беспокоясь о скорости работы своих программ, и попытки достичь эффективности зачастую оказывают резко негативное влияние на возможность их отладки и поддержки. Необходимо забыть о маленьких оптимизациях, скажем, в 97% случаев. Преждевременная оптимизация это корень всех зол! Но мы не должны упускать из виду те 3%, где это действительно важно!».
Дональд Кнут.

Ethereum gas

Проводя аудиты смарт-контрактов, мы иногда задаём себе вопрос относится ли их разработка к тем 97%, где нет необходимости думать об оптимизации или мы имеем дело как раз с теми 3% случаев, где она важна. На наш взгляд, скорее второе. В отличие от других приложений, смарт-контракты не обновляемы, их невозможно оптимизировать «на ходу» (при условии, если в их алгоритм это не заложено, но это отдельная тема). Второй довод в пользу ранней оптимизации контрактов — то, что, в отличие от большинства систем, где неоптимальность проявляется только в масштабе, связана со спецификой железа и окружения, измеряется колоссальным количеством метрик, смарт-контракт обладает по сути единственной метрикой производительности — потребление газа.

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

В этой статье мы подробно рассмотрим, как сделано B+ дерево в распределенной БД Apache Ignite.

B+ дерево в реальном проекте - 1Читать полностью »

Компилятор Go: язык описания правил SSA оптимизаций - 1

В компиляторе gc для описания Static Single Assignment (SSA) правил оптимизаций используется специальный Лисп-подобный предметно-ориентированный язык (DSL).

Предлагаю разобрать основные элементы этого языка, его особенности и ограничения.
В качестве упражнения, добавим в Go компилятор генерацию инструкции, которую он раньше не генерировал, оптимизируя выражение a*b+c.

Это первая статья из серии про внутренности Go SSA compiler backend, поэтому помимо обзора самого DSL описания правил мы рассмотрим связанные компоненты, чтобы создать необходимую базу для нашей следующей сессии.

Читать полностью »

Как сделать всё самому: открытые модульные системы - 1Возвращение традиционных ремёсел — один из способов саботировать современную индустрию одноразовых вещей. В данной статье рассматривается другой вариант: проектирование модульных потребительских товаров, детали и компоненты которых используются повторно в других объектах.

Инициативы OpenStructures, Grid Beam и Contraptor сочетают модульность систем в стиле LEGO, Meccano и Erector с силой коллективного сотрудничества, как в Википедии и Linux.

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

Google призналась, что тоже хотела купить GitHub - 1Директор облачного подразделения Google Cloud Диана Грин (Diane Greene), отвечая на вопросы модератора на мероприятии Fortune Magazine, сделала интересное заявление относительно покупки GitHub компанией Microsoft: «Я была бы не против, чтобы мы их купили, но ничего страшного» (I wouldn’t have minded buying them, but it’s OK), — сказала она.

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

Ранее ходили слухи о том, что Google делала предложение о покупке, но Диана Грин отказалась подтвердить или опровергнуть эти слухи. Она выразила надежду, что GitHub останется абсолютно нейтральным под крылом Microsoft.
Читать полностью »

ИОК: библиотеки GCrypt и KSBA как альтернатива OpenSSL с поддержкой российской криптографии. Продолжение - 1Мы продолжаем разговор об альтернативе openssl и речь пойдет о библиотеке libksba, которая входит в состав GnuPG. Библиотека libksba предоставляет высокоуровневый интерфейс для работы с такими объектами инфраструктуры открытых ключей как сертификаты, запросы на сертификаты, электронная подпись (CMS/PKCS#7). Однако, в отличии от библиотеки GCrypt, в которой реализована поддержка российских криптографических алгоритмов, то в libksba отсутствует реализация рекомендаций ТК-26 по использованию алгоритмов ГОСТ Р 34.10-2001/2012, ГОСТ Р 34.11-94/2012 в таких объектах ИОК как сертификаты, запросы на сертификаты, объекты PKCS#7/CMS (подписанные и/или шифрованные документы и т.п).
Читать полностью »

Трансляция h264 видео без перекодирования с камеры Logitech C920 - 1
Задержка составила не более 0.3 секунды, с учетом того что камера подключена к слабому BeagleBone Blue с загрузкой процессора не более 30% и передачей потока видео через wifi роутер на ноутбук.
Читать полностью »

Немного об OSDAY или Чему нужно учить студентов, чтобы они начинали работать в российских IT-компаниях и оставались там - 1 В конце мая Embox, уже традиционно, принял участие в OSDay. Конференция, как и в прошлом году, проходила в главном здании РАН. На этот раз она была посвящена надежности. Тема надежности ПО стара. Она затронута, например, Фредериком Бруксом в его легендарном произведении “Мифический человеко-месяц”, на которое несколько раз ссылались и на самой конференции. В книге упоминается, что одной из проблем, с которой столкнулись в процессе создания операционной системы OS/360, было отсутствие достаточного количества квалифицированных программистов. Наверное, по этой же причине много времени на конференции было уделено образованию в области системного программирования. В общем, кому интересно, какие, на мой взгляд, интересные идеи высказывались и обсуждались на конференции, прошу под кат.
Читать полностью »

Воланд у М. Булгакова говорил, что «кирпич ни с того ни с сего никому и никогда на голову не свалится». Может, и так, но, когда два с половиной года назад меня спросили, хочу ли я познать OpenStack, это был тот самый хорошо завуалированный кирпич (а на старте даже не кирпич, а гранитная плита). Именно 2016 год стал для меня так называемой «точкой невозврата», положив начало стремительному освоению концепций открытого мира и в значительной степени повлияв на менталитет, – превратив мою дальнейшую жизнь в праздник. «Праздник», который всегда со мной.

OpenStack: вся правда о «королевском» релизе - 1
Читать полностью »

Инфраструктура открытых ключей: Удостоверяющий Центр на базе утилиты OpenSSL и SQLite3 (Посткриптум) - 1В одном из комментариев, присланным участником garex, в ответ на заявление:

Но сегодня в стандартной версии openssl отсутствует поддержка как ГОСТ Р 34.11-2012, так и ГОСТ Р 34.10-2012. Более того в версии 1.1 поддержка криптографии ГОСТ исключена из стандартной поставки («The GOST engine was out of date and therefore it has been removed.»)

было сказано:

Чем не устраивает вот эта, которую «убрали?» github.com/gost-engine/engine
Пример билда: github.com/rnixik/docker-openssl-gost/blob/master/Dockerfile

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js