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

До релиза Firefox Quantum остаётся всё меньше времени. Он принесёт множество улучшений в производительности, в том числе сверхбыстрый движок CSS, который мы позаимствовали у Servo.

Но есть ещё одна большая часть технологии Servo, которая пока не вошла в состав Firefox Quantum, но скоро войдёт. Это WebRender, часть проекта Quantum Render.

Весь веб на 60+ FPS: как новый рендерер в Firefox избавился от рывков и подтормаживаний - 1

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

При разработке WebRender мы поставили задачу, чтобы все приложения работали на 60 кадрах в секунду (FPS) или лучше, независимо от размера дисплея или от размера анимации. И это сработало. Страницы, которые пыхтят на 15 FPS в Chrome или нынешнем Firefox, летают на 60 FPS при запуске WebRender.

Как WebRender делает это? Он фундаментальным образом меняет принцип работы движка рендеринга, делая его более похожим на движок 3D-игры.
Читать полностью »

Команда Rust рада представить выпуск Rust 1.21.0. Rust — это системный язык программирования, нацеленный на скорость, безопасность и параллельное выполнение кода.

Если у вас установлена предыдущая версия Rust, для обновления достаточно выполнить:

$ rustup update stable

Если же у вас еще не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта. С подробными примечаниями к выпуску Rust 1.21.0 можно ознакомиться на GitHub.

Что вошло в стабильную версию 1.21.0

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

Первое изменение касается литералов. Рассмотрим код:

let x = &5;

В Rust он аналогичен следующему:

let _x = 5;
let x = &_x;

То есть 5 будет положено в стек или возможно в регистры, а x будет ссылкой на него.

Однако, учитывая, что речь идет о целочисленном литерале, нет причин делать значение таким локальным. Представьте, что у нас есть функция, принимающая 'static аргумент вроде std::thread::spawn. Тогда вы бы могли использовать x так:

use std::thread;

fn main() {
    let x = &5;

    thread::spawn(move || {
        println!("{}", x);
    });
}

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

Мы уже начали вас знакомить с тем, что было в 1ый день Zabbix конференции, проходившей в Риге в сентябре.

Утром 2го дня команда поддержки Zabbix проводила воркшопы для продвинутых: как построить Zabbix-кластер, как шифровать данные мониторинга, как использовать препроцессинг данных и как с помощью удалённых команд можно делать мониторинг более проактивным. Параллельно предлагалась уникальная возможность сдать экзамены на Zabbix Certified Specialist и Zabbix Certified Professional.

Zabbix конференция 2017: как прошёл день второй - 1

Сразу после этого начались выступления участников:
Читать полностью »

Кривая Гильберта vs Z-order - 1

Неоднократно доводилось слышать мнение, что из всех заметающих кривых. именно кривая Гильберта наиболее перспективна для пространственной индексации. Мотивируется это тем, что она не содержит разрывов и потому в некотором смысле “хорошо устроена”. Так ли это на самом деле и при чем здесь пространственная индексация, разберёмся под катом.Читать полностью »

Настройка двусторонней RSA и GOST аутентификации в приложении на JBoss EAP 7 - 1

Здравствуйте!

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

В этой статье расскажу, как мы в своей деятельности применяем один из инструментов обеспечения информационной безопасности.
Читать полностью »

Обзор дефектов кода музыкального софта. Часть 2. Audacity - 1

Цикл статей про обзор дефектов кода музыкально софта продолжается. Вторым претендентом для анализа выбран аудиоредактор Audacity. Это программа очень популярна и широко используется, как любителями, так и профессионалами в музыкальной индустрии. В этой статье описание фрагментов кода будет дополнительно сопровождаться популярными мемами. Скучно не будет!
Читать полностью »

7ая ежегодная конференция Zabbix в Риге снова собрала рекордное количество участников!
Из 32 стран приехали более 250 человек: системные и сетевые инженеры, специалисты по облачным технологиям, эксперты DevOps, интеграторы, аналитики и просто технические директора.

Zabbix конференция 2017: как прошёл день первый - 1

Это были 2 дня наполненные неожиданными идеями, яркими примерами, новостями от команды Zabbix и откровениями людей, знающими все тонкости применения Zabbix в мониторинге.

Что было в 1ый день?
Читать полностью »

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

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

Примечание переводчика

Приведённый в статье код скомпилирован с достаточно старыми версиями крейтов peg и peg_syntax_ext. Для текущих версий в исходники нужно внести минимальные изменения. Я вставил изменённые участки в спойлеры по тексту статьи. Для сборки кода установите компилятор nightly Rust.
Полный исходник с моими правками можно скачать здесь: https://github.com/arktur04/rust-llvm-toy-frontend

В настоящее время я работаю над компилятором, который написан на Rust, и порождает LLVM IR. LLVM API выглядит немного пугающе для новичков, и по нему не так много руководств (и все они на C++, поэтому не вполне очевидно, как сделать то же самое на Rust). Я бы хотел, чтобы кто-то протянул мне руку помощи, когда я начинал всё это, и эта статья является тем, что я хотел бы показать самому себе в то время.

Игрушечный фронтенд для LLVM, написанный на Rust: Руководство для начинающих - 1

В Rust наилучшая возможность взаимодействия с LLVM — через крейт llvm-sys. Один добрый человек разместил документацию к нему здесь. Конечно, вам следует также изучить руководство по LLVM, так как оно поможет вам понять, как LLVM “думает”. Этот пост, в основном, является переводом на Rust подмножества из этого руководства.

Полный исходный код для этого руководства находится здесь.
Читать полностью »

Есть мнение, что Swift — особенно благодаря развитию в опенсорсе — уже сейчас применим за рамками софта для платформ Apple. Наши коллеги из «Рамблера», включая разработчика Самвела Меджлумяна, даже пробуют этот язык в качестве серверного решения. На встрече сообщества CocoaHeads Самвел перечислил готовые продукты для построения сервера на Swift, сравнил их между собой и показал короткое демо.

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


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