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

Планировщик заданий (scheduler) не во все времена считался обязательным инструментом в мире баз данных. Все зависело от назначения и происхождения СУБД. Классические коммерческие СУБД (Oracle, DB2, MS SQL) представить себе без планировщика решительно невозможно. С другой стороны, трудно вообразить потенциального пользователя MongoDB, который откажется от выбора этой модной NoSQL-СУБД из-за отсутствия планировщика. (Кстати, термин «планировщик заданий» в русском контексте СУБД употребляют, чтобы отличить его от планировщика запросов — query planner, мы же для краткости будем звать его здесь планировщиком).

PostgreSQL, будучи Open Source и впитав традиции сообщества с образом жизни DIY («сделай сам»), в наше время регулярно претендует на место как минимум заместителя коммерческой СУБД. Из этого автоматически следует, что PostgreSQL просто обязана иметь планировщик, и что этот планировщик должен быть удобен для администратора базы и для пользователя. Читать полностью »

Оглавление:
Часть 1: Введение и лексический анализ
Часть 2: Реализация парсера и AST
Часть 3: Генерация кода LLVM IR
Часть 4: Добавление JIT и поддержки оптимизатора
Часть 5: Расширение языка: Поток управления
Часть 6: Расширение языка: Операторы, определяемые пользователем
Часть 7: Расширение языка: Изменяемые переменные
Часть 8: Компиляция в объектный код
Часть 9: Добавляем отладочную информацию
Часть 10: Заключение и другие вкусности LLVM

Создание языка программирования с использованием LLVM. Часть 6: Расширение языка: Операторы, определяемые пользователем - 1

Часть 6: Расширение языка: Операторы, определяемые пользователем

6.1. Введение

Добро пожаловать в главу 6 руководства “Создание языка программирования с использованием LLVM”. К данному моменту у нас есть полнофункциональный язык, хотя и минимальный, но, тем не менее, полезный. Но по-прежнему осталась одна проблема. В нашем языке мало полезных операторов (нет, например, деления, логического отрицания, и даже сравнений, за исключением оператора сравнения «меньше»).
Читать полностью »

Привет! Хотим поделиться новостью, что у нас появилась новая версия опенсорс системы мониторинга Zabbix 3.4, доступная для скачивания:
Вышел Zabbix 3.4 - 1
Из нового:

  • Переработанные дэшборды (их много и их можно редактировать)
  • Массовый, одновременный сбор элементов данных
  • Парсинг полученных данных, включая Regexp, XPath, JSON Path
  • Выполнение удаленных команд через прокси
  • Шаблоны сетевых устройств из коробки
  • Низкоуровневое обнаружение для JMX
  • Новые возможности уведомлений
  • Переработанный сбор данных по IPMI

и многое, многое другое.
Читать полностью »

Разогнаться до миллиарда: возможности и препятствия. Ведущий программист компании BankEx Александр Власов комментирует протокол Plasma, совместной разработки Lightning Network и Виталия Бутерина.

***Disclaimer*** Данное описание является попыткой описать принципы, предложенные авторами, простыми словами. Оно нисколько не отражает сложные последовательности действий и мотиваций игроков, которые должны быть проанализированы специалистами теории игр. Также, на данный момент описание находится в стадии work in progress, имеет значительные ошибки и во многом является не полным.

Несколько дней назад Joseph Poon (основатель Lightning Network) и Виталий Бутерин (основатель криптовалюты Ethereum) представили первый черновик описания протокола Plasma, призванного значительно увеличить пропускную способность блокчейн-сетей, до величин порядка миллиардов операций в секунду, по словам самих авторов.
Читать полностью »

На первый взгляд, задача применения размерных ограничений к чертежу кажется не сложнее упражнения из школьного учебника. Точно так же показалось и мне, когда я впервые узнал о ней. В то время я работал в компании, которая занималась разработкой программного комплекса для проектирования индивидуальных жилых домов с подготовкой проектной документации "под ключ". В этом проекте я занимался разработкой алгоритма генерации многоскатных крыш, а впоследствии и всего геометрического ядра на основе Булевых операций, поэтому за дальнейшей историей я следил издалека. В какой-то определенный момент, заказчику захотелось, чтобы проектировщики могли просто указать размеры комнат, углы эркеров и ширину дверных проемов, а программа автоматически рассчитала бы все остальные параметры внешнего и внутреннего устройства дома. Эта мысль возникла у заказчика спонтанно, и поэтому срочно нужно было сделать “точно так же, как в CATIA”. Наш тимлид подошел к решению задачи с энтузиазмом и начал разрабатывать прототип. Он решал сотни уравнений в MathCAD, весь кабинет был завален графиками частных решений для двух, трех, четырех точек… Его изначальное предположение о том, что задачу можно решить аналитически, потерпело фиаско: на дворе был 2005, а это значило, что в интернете невозможно было найти хоть какую-то информацию по данной теме. В результате, после двух месяцев напряженных исследований, данную функциональность пришлось исключить.

Параметрическое моделирование в САПР SolveSpace: «Неисповедимы пути Решателя» или «Червоточины Ньютона» - 1

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

ReactOS версус Windows XP SP3: эпическая битва в 3DMark - 1

Один из волонтеров проекта решил устроить батл между Windows XP и ReactOS по дисциплине 3DMark 2006. Зрелище получилось небезынтересным, а результат весьма неожиданным и впечатляющим. Предлагаем вам самим проследить за ходом сражения и узнать? кто же и с каким счетом победил.

Батл происходил в абсолютно равных условиях в VirtualBox VM.
Характеристики хостового компьютера были такими:

Intel Core I5 6500 @4.2GHz
16GB DDR4 RAM
NVidia Geforce GTX 1060 6GB
Samsung 850 EVO 500GB SSD

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

Пакет Network Security Services (NSS) представляет собой набор библиотек, используемых при кроссплатформенной разработке защищенных клиентских и серверных приложений.
Читать полностью »

Интеграция Intel Threading Building Blocks в ваш CMake проект - 1

Привет, уважаемые читатели habrahabr. В этом блоге мы хотели бы анонсировать, что теперь у нас появились CMake модули, которые позволяют скачивать, собирать и просто использовать Intel Threading Building Blocks (Intel TBB) в ваших CMake проектах. Модули доступны в репозитории проекта Intel TBB на GitHub, а также в бинарных пакетах для Linux* OS, Windows* OS и macOS*, начиная с релиза Intel TBB 2017 Update 7.
Читать полностью »

Биохакеры закодировали зловред в ДНК, чтобы атаковать софт для секвенирования генома - 1При секвенировании генома молекулы ДНК могут отбиваться. Молекулы способны нанести компьютеру ответный удар, заразив программу, которая пытается их прочитать. Такова идея исследователей из Университета Вашингтона, которые закодировали эксплоит в участке ДНК. Впервые в мире они доказали, что можно удалённо заразить компьютер через ДНК.

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

В последние пять лет стоимость секвенирования генома упала со $100 000 до менее $1000, что стимулировало научные исследования в сфере геномики и целую плеяду коммерческих сервисов, которые предлагают проанализировать ваше геном для разных целей: построение генетического дерева, поиск предков, анализ физических способностей, предрасположенности к разным видам спорта и физической активности, изучение совместимых микроорганизмов в кишечном тракте и многое другое. Авторы научной работы уверены, что при секвенировании генома недостаточное внимание уделяется безопасности: в этой области просто ещё не столкнулись с вредоносными программами, которые атакуют непосредственно через геном. Теперь такой вектор атаки нужно принимать в расчёт.
Читать полностью »

Привет! Мы готовимся к RailsClub 2017 и традиционно беседуем с нашими любимыми спикерами. Сегодняшний герой — человек, получивший Ruby Hero Russia в прошлом году — Антон Давыдов. Антон OpenSource-энтузиаст и один из кор-разработчиков Ruby-фреймворка Hanami. Мы расспросили его о работе и взглядах на Ruby-разработку.

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


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