25 ноября 2015 г.

bikedownhill

20 ноября 2015 г.

Drupal 8

После четырёх c половиной лет разработки представлен релиз свободной системы управления web-контентом Drupal 8, подходящей для создания различных категорий web-проектов, от блогов и персональных страниц, до крупных новостных порталов и социальных сетей. По данным W3Techs на базе Drupal работает около 2.1% из 10 млн крупнейших сайтов в сети, среди которых такие ресурсы, как whitehouse.gov и The Economist. По информации от разработчиков Drupal, в выборке из 100 тысяч крупнейших сайтов Drupal занимает лидирующие позиции среди CMS.

13 ноября 2015 г.

данная команда позволит отслеживать в логе только то чно нужно, заданное по паттерну

tail -f file | grep --line-buffered my_pattern

16 сентября 2015 г.

Разработчики проекта Debian планируют прекратить формирование наборов образов на CD, начиная с Debian Testing и Debian 9 "Stretch". С учетом того, что в настоящее время Debian 8 умещается на 80 компакт-дисках, а для Testing/Debian 9 на 86, формирование CD-образов требует значительных ресурсов, при сомнительной целесообразности (например, некоторые CD-образы не были загружены ни разу) и потерей актуальности (CD-приводы уже почти не используются, а с учётом роста размеров десктоп-окружений, на CD достаточно трудно вместить полноценную Live-систему или установочный образ).

При этом поставка минималистичных CD-образов netinst будет продолжена. Разработчики полагают, что netinst сборок будет достаточно для обладателей CD-приводов. Дополнительно предлагается подготовить live-вариант образа netboot. Полноценные CD-сборки также продолжат формироваться для старых релизов (Wheezy и Jessie). Так как после прекращения поставки CD название хоста для распространения сборок cdimage.debian.org выглядит нелепо, решено задействовать для загрузки образов новое имя get.debian.org.

Высвободившиеся ресурсы планируется потратить на создание дополнительных сборок для облачных систем, расширение числа Live-сборок и начало формирования Live-образов для архитектур, отличных от x86. Кроме того, планируется начать продвигать неофициальные Non-free-сборки с проприетарными прошивками, которые, как и раньше, сохранят статус неофициальных и не будут предлагаться по умолчанию, но станут явно упоминаться на страницах с информацией о загрузке. Данный шаг сделан из-за того, что о таких сборках с бинарными блобами для драйверов мало кто знает, в то время, как они отвечают потребностям пользователей, которым необходимо обеспечить корректную работу имеющегося оборудования.

Из планов также отмечается намерение выпустить неофициальные CD-сборки Debian GNU/kFreeBSD на пакетной базе Jessie, комбинирующие ядро FreeBSD с пользовательским окружением на базе glibc и GNU-утилит. Активно ведётся работа по улучшению поддержки загрузки на системах с UEFI. Например, до конца года планируется обеспечить поддержку загрузки в режиме UEFI Secure Boot, с верификацией загрузчика, ядра и модулей. 

15 сентября 2015 г.

Представлен выпуск платформы KDE Frameworks 5.14.0, в рамках которой развивается реструктуризованный и портированный на Qt 5 базовый набор библиотек и runtime-компонентов, лежащих в основе KDE. Фреймворк включает в себя 63 библиотеки, часть которых может работать в качестве самодостаточных надстроек над Qt, а часть формируют программный стек KDE. Подробнее с особенностями KDE Frameworks 5 можно познакомиться ванонсе первого выпуска. Статус подготовки бинарных сборок KDE Frameworks 5.14 можно оценить на данной странице. Протестировать без установки можно через Live-сборку от проекта Kubuntu.

Из изменений можно отметить:

  • Проведена работа по переименованию приватных классов для предотвращения их случайного экспортирования;
  • В Baloo реорганизованы интерфейсы D-Bus, задействованы метаданные JSON в плагине kded и организовано создание по одному экземпляру БД на процесс;
  • В KActivities решены проблемы со сборкой в OS X, переработан интерфейс настройки и представлен новый GUI для создания/удаления/конфигурирования комнат;
  • В KConfig завершено портирование на QCommandLineParser и проведена оптимизация вызова readEntryGui;
  • В прослойке для совместимости с KDELibs 4 выполнен перевод kded-плагина solid-networkstatus на метаданные JSON;
  • В KEmoticons реализовано кэширование экземпляров KEmoticons;
  • В KFileMetaData для PlainTextExtractor обеспечена работа с флагом O_NOATIME;
  • В KIO задействован Q_OS_WIN вместо Q_OS_WINDOWS, kpasswdserver переведён с kded на kiod, удалён устаревший код поддержки очень старых версий kpasswdserver;
  • В kpackagetool из состава Package Framework добавлена возможность удаления пакета и улучшен поиск правильных типов сервисов;
  • В KTextEditor улучшена подсветка синтаксиса для Haskell и ускорена работа интерфейса автодополнения кода;
  • В Plasma Framework реализован подходящий для сенсорных экранов текстовый курсор, добавлена возможность создания секций меню из PlasmaComponents.ModelContextMenu, объявлен вызов __editMenu, переработана реализация EditMenu.

Дополнительно сообщается об успехах по адаптации компонентов KDE Frameworks и отдельных приложений KDE для работы в окружении мобильной платформы Android. Для Android пока доступны только программы Algebra, GCompris и Marble Maps, но изменить сложившуюся ситуацию должно портирование KDE Frameworks 5, создание простой системы сборки и предоставление готового docker-образа с SDK-подобным окружением для разработки.

14 сентября 2015 г.

Python 3.5.0

После 18 месяцев разработки представлен значительный релиз языка программирования Python 3.5.

Среди добавленных в Python 3.5 новшеств:

  • Добавлен новый модуль zipapp, предоставляющий API и утилиту командной строки для создания упакованных в один файл приложений, которые можно запустить командой "python приложение.pyz". Для создания исполняемого архива достаточно поместить все файлы программы в отдельную директорию, создать выполняемый по умолчанию скрипт __main__.py и выполнить команду "python -m zipapp имя_директории";
  • Расширено применение операторов распаковки "*" и "**", которые теперь можно использовать для произвольного числа распаковок при вызове функции или при манипуляциях с множествами, кортежами, списками и словарями. (ранее допускалась только одна распаковка). Например, для функции "def fn(a, b, c, d)" можно выполнить fn(**{'a': 1, 'c': 3}, **{'b': 2, 'd': 4})"), а для словаря - "{*range(4), 4, *(5, 6, 7)}";
  • Поддержка использования оператора форматирования вывода "%" для объектов bytes и bytearray по аналогии с тем, как выполняется форматирование строк. Например, выполнение "b'x=%i y=%f' % (1, 2.5)" приведёт к выводу "b'x=1 y=2.500000'";
  • В стандартной библиотеке представлена новая функция os.scandir() для очень быстрого обхода содержимого директорий. Выполнение os.walk() на базе новой функции работает в 3-5 раз быстрее на POSIX-системах и в 7-20 раз быстрее в Windows, за счёт сокращения числа вызовов os.stat();
  • Возможность автоматического повторного выполнения прерванных системных вызовов без установки отдельных обработчиков EINTR или InterruptedError;
  • Представлен модуль typing, который позиционируется в качестве нового стандарта для задания аннотаций типов. При подключении модуля можно предоставить данные о типах аргументов и возвращаемого значения функции, например "def greeting(name: str) -> str";
  • Реализована функция math.isclose() для приблизительного сравнения значений с заданным уровнем точности. Например, "math.isclose(5.0, 4.99998, abs_tol=0.00003)" вернёт True;
  • В обвязке для запуска Python на платформе Windows добавлена поддержка работы в виртуальных окружениях;
  • Искоренена концепция PYO-файлов, использовавшихся для хранения оптимизированного байткода. Для размещения как оптимизированного, так и неоптимизированного байткода теперь применяются единые файлы ".pyc";
  • Новый механизм для загрузки модулей-расширений, обеспечивающий возможность инициализации в несколько стадий;
  • Значительно улучшены средства асинхронного программирования, благодаря поддержке нового async- и await-синтаксиса для определения сопрограмм, асинхронно выполняемых объектов и итераций. Например, для создания и вызова сопрограммы можно указать "async def http_get(domain)" и "data = await db.fetch('SELECT ...')";
  • Возможность изменения обработки исключений StopIteration внутри генераторов;
  • Класс collections.OrderedDict переписан на языке Си, что позволило ускорить его выполнение от 4 до 100 раз. На Си также переписана функцияfunctools.lru_cache();
  • Добавлен новый вызов subprocess.run() для быстрого запуска подпроцессов;
  • В стандартной библиотеке по умолчанию отключена поддержка SSLv3;
  • Добавлен новый оператор "@" для умножения матриц. Например, вместо "S = dot((dot(H, beta) - r).T, dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r))" теперь можно использовать более понятное представление "S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r)".

11 сентября 2015 г.

Node js

Увидел свет релиз Node 4.0.0, платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript. Выпуск примечателен слиянием с кодовой базой проекта io.js, ранее ответвившегося от Node.js, но вернувшегося к совместной работе над единым унифицированным продуктом.

По функциональности Node 4.0.0 близок к выпуску io.js 3.0 и включает реализованные в рамках проекта io.js новшества, состояние которых признано стабильным. Лежащий в основе Node.js JavaScript-движок V8 обновлён до актуальной версии 4.5 (в Node.js 0.12 использовался V8 3.26, выпущенный год назад). Обновление движка открыло доступ ко многим новым возможностям JavaScript, определённым в спецификации ECMAScript 6.

В частности, добавлена поддержка классов, генераторов, шаблонов строк, новых методов обработки строк, типизированных массивов (в том числе объекта Buffer, реализованного на основе V8 Uint8Array), структур данных Map и Set для работы с коллекциями, механизма Promise, типа Symbols и arrow-функций. Официально реализована полноценная поддержка архитектуры ARM (ARMv6, ARMv7 и ARMv8). Введён в строй кластер для тестирования работы Node.js на различных аппаратных платформах и операционных системах (Linux-дистрибутивы, OS X, Windows, FreeBSD и SmartOS).

Ветке Node.js 4 планируется присвоить статус LTS, обеспечив длительный выпуск обновлений и регулярный цикл подготовки релизов. Ожидается как подготовка корректирующих выпусков со сменой номера в третьей цифре версии (4.0.1, 4.0.2 и т.п.), так и функциональных обновлений, содержащих новые возможности (4.1.x, 4.2.x и т.п.). При этом на протяжении существования ветки 4.x будет гарантировано сохранение обратной совместимости. Новые стабильные ветки планируется формировать раз в 6 месяцев.

В октябре ожидается ответвление ветки 5.x, которая будет развиваться параллельно и содержать новые возможности, обкатываемые для следующей стабильной ветки, в том числе переход на новый выпуск движка V8 и возможно изменения, нарушающие совместимость. Основной цикл LTS-поддержки ветки 4.x продлится 18 месяцев, плюс ещё 12 месяцев будут устраняться критически ошибки и уязвимости (в сумме ветка будет поддерживаться 30 месяцев).