Компания Google открыла исходные тексты проекта Grumpy, в рамках которого развивается экспериментальный Python runtime для языка Go. Grumpy обеспечивает трансляцию кода на языке Python в представление на языке Go и позволяет бесшовно запускать оттранслированные Python-программы в runtime-окружении языка Go. Отмечается, что одной из основных целей проекта является обеспечение высокого уровня совместимости с CPython и достижение возможности применения Grumpy в качестве полноценной замены Python runtime для проектов на языке Python. Код транслятора написан на языке Python и поставляется под лицензией Apache 2.0.
Компания Microsoft выпустила для Linux среду разработки Visual Studio Code
На конференции Build 2015 компания Microsoft представила первый кросс-платформенный продукт в линейке Visual Studio - Visual Studio Code, представляющий средства для создания, редактирования и отладки современных web-приложений и программ для облачных систем. Visual Studio Code распространяется бесплатно и кроме платформы Windows доступен в версиях для Linux и OS X.
В качестве основы для Visual Studio Code используются наработки свободного проекта Atom, развиваемого компанией GitHub. В частности, Visual Studio Code является надстройкой над Atom Shell, использующим браузерный движок Chromium и Node.js. Примечательно, что об использовании наработок свободного проекта Atom на сайте Visual Studio Code и в пресс-релизе и в официальном блоге не упоминается.
Редактор содержит встроенный отладчик, инструменты для работы с Git и средства рефакторинга, навигации по коду, автодополнения типовых конструкций и контекстной подсказки. Продукт поддерживает разработку для платформ ASP.NET и Node.js, и позиционируется как легковесное решение, позволяющее обойтись без полной интегрированной среды разработки. Среди поддерживаемых языков и технологий : JavaScript, C++, C#, TypeScript, jade, PHP, Python, XML, Batch, F#, DockerFile, Coffee Script, Java, HandleBars, R, Objective-C, PowerShell, Luna, Visual Basic, Markdown, JSON, HTML, CSS, LESS и SASS.
Дополнение: Кроме продукта Visual Studio Code, компания Microsoft также выпустила предварительную версию .NET Core runtime для Linux и OS X.
Релиз дистрибутива Ubuntu 16.10
Компания Canonical представила релиз дистрибутива Ubuntu 16.10 "Yakkety Yak". Готовые сборки созданы для Ubuntu, Ubuntu Server, Ubuntu Core, Kubuntu, Ubuntu GNOME, Xubuntu, Ubuntu Studio, Lubuntu, Ubuntu MATE, Ubuntu Cloud, Ubuntu Studio и UbuntuKylin (редакция для Китая).
Основные изменения:
Выпуск web-браузера Chrome 54
Компания Google представила релиз web-браузера Chrome 54. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающий основой Chrome. Браузер Chrome отличается использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Релиз текстового редактора Vim 8.0
После трёх лет разработки и после более 10 лет развития ветки 7.x состоялся релиз текстового редактора Vim 8.0. Код Vim распространяетсяпод собственной копилефт лицензией, совместимой с GPL, и позволяющей без ограничений использовать, распространять и перерабатывать код. Основная особенность лицензии Vim связана с возвратом изменений - реализованные в сторонних продуктах улучшения должны быть переданы в исходный проект, если мэйнтейнер Vim посчитает эти улучшения заслуживающими внимания и отправит соответствующий запрос. По типу распространения, Vim относится к Сharityware, т.е. вместо продажи программы или сбора пожертвований на нужды проекта, авторы Vim просят перечислить любую сумму на благотворительность, если программа понравится пользователю.
Основные новшества:
- Поддержка асинхронного ввода/вывода и каналов, позволяющих обмениваться сообщениями с другими процессами в фоновом режиме, что даёт возможность отправлять задания отдельным серверным обработчикам и принимать результаты не прерывая работу основного процесса Vim. Данные при взаимодействии между процессами могут передаваться в формате JSON, что позволяет создавать достаточно сложные плагины на любом языке программирования, работающие в форме отдельно выполняемых серверных процессов;
- Концепция, позволяющая запустить некоторую задачу в фоне, взаимодействовать с ней и остановить при необходимости. Таким образом, например, можно запустить специальный процесс для проверки синтаксиса или автодополнения кода. Задачи могут записывать и читать содержимое буфера или файла, а также взаимодействовать с основным процессом через каналы;
- Таймеры, которые позволяют запускать функции через определённое время или через повторяющиеся промежутки времени;
- Дополнительные средства для косвенного вызова функций - "Partial", которые в отличие от Funcref кроме ссылки на функцию дополнительно прикрепляют к запросу аргументы и словари, что удобно для совершения callback-обращений через каналы и таймеры;
- Поддержка лямбда-выражений и замыканий для быстрого создания пользовательских функций ("{args -> expr}");
- Реализация пакетов для установки, обновления и управления плагинами;
- Возможность обращения к окнам по привязанным к ним уникальным идентификаторам, а не по порядковому номеру окна;
- Из viminfo информация теперь извлекается на основании времени записи, а не последнего добавленного элемента;
- Добавлена опция 'breakindent' для смещения строк без нарушения отступов;
- Добавлена опция 'renderoptions', позволяющая задействовать DirectX (DirectWrite) для отрисовки вывода в Windows;
- Поддержка сборки графического интерфейса с GTK+ 3. При наличии GTK+ 2 и GTK+ 3 по умолчанию по-прежнему используется GTK+ 2.
Опубликован MyRocks, движок хранения к СУБД MySQL от Facebook
Facebook представил проект MyRocks, в рамках которого развивается новый движок хранения для СУБД MySQL 5.6, основанный на системе хранения RocksDB, оптимизированной для Flash-накопителей. Главными целями создания MyRocks является повышение эффективности хранения данных на Flash-накопителях и сокращение размера БД.
В качестве основных причин большого потребления дискового пространства в InnoDB отмечается фрагментация, низкая степень сжатия и выравнивание сжатых данных внутри хранилища по страницам фиксированного размера (размер страницы 8 Кб и даже если данные упакованы в 5 Кб всё равно будет израсходован блок в 8 Кб). Хранилище MyRocks лишено данных недостатков, так как применяет размер страницы плавающего размера и предоставляет значительно более эффективный метод сжатия. MyRocks также выполняет меньше операций последовательного чтения/записи за счёт использования модели хранения данных в форме лога (Log Structured Merge Trees), допускающей только дополнение (чистка производится сборщиком мусора).
При хранении аналогичного объёма данных внедрение нового хранилища на основные серверы Facebook позволило на 50% сократить размер БД по сравнению со сжатым хранилищем InnoDB и в 3.5 раза по сравнению с InnoDB без применения сжатия. Кроме сокращения размера применение MyRocks также привело к ускорению репликации за счёт сокращения операций чтения при обновлении ключей. Также ускорились операции загрузки данных в БД, благодаря пакетной обработке входящих данных.
При этом MyRocks пока имеет ряд ограничений, таких как отсутствие поддержки внешних ключей, online DDL, автоматического определения взаимных блокировок, партицирования, полнотекстовых и пространственных индексов. Со временем имеющиеся недостатки планируется устранить.
Выпуск web-браузера Chrome 53
Компания Google представила релиз web-браузера Chrome 53. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающий основой Chrome. Браузер Chrome отличается использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.