9 мая вышла версия PyPy 2.0 с кодовым названием «Einstein Sandwich». PyPy — интерпретатор языка Python со встроенным tracing JIT. Основными изменениями по сравнению с PyPy 1.9 являются:
новая библиотека FFI - cffi (предложена и для включения в CPython).
Планируется, что версия 2.0 послужит стабильной базой для более частых релизов (вероятно, для создания действительно быстрых интерпретаторов Ruby и PHP).
Не вошли в официальный анонс, но тоже немаловажны:
Опубликован перевод очередной главы из книги «Архитектура приложений с открытым исходным кодом». Данная глава посвящена NGINX.
С момента появления в 2004 году nginx фокусировался на высокой производительности, высокоэффективных параллельных вычислениях и минимизации использования оперативной памяти. Такие дополняющие функции web-сервера возможности, как балансировка нагрузки, кэширование, контроль доступа, контроль пропускной способности и умение эффективно интегрироваться с различными приложениями позволили nginx стать хорошим выбором для web-сайтов с современной архитектурой. В настоящее время nginx занимает второе место среди самых популярных web-серверов с открытым исходным кодом.
Обработка большого количества одновременных запросов с обеспечением высокой производительности и эффективности всегда была ключевым преимуществом при внедрении nginx. Однако, есть и другие не менее интересные преимущества.
Опубликован перевод очередной главы из 1 тома книги «Архитектура приложений с открытым исходным кодом» — «Архитектура системы управления пакетами в Python».
При разговоре о системах установки приложений обычно упоминают о двух подходах. Первый подход, характерный для Windows и Mac OS X, заключается в распространении самодостаточных пакетов приложений, процесс установки которых не должен зависеть от внешних факторов. Эта философия упрощает процесс управления приложениями: каждое приложение имеет свое отдельное «окружение» и его установка или удаление не влияет на другие части ОС. Если приложению для работы требуется нестандартная библиотека, эта библиотека включается в состав пакета для распространения приложения.
Второй подход, характерный для систем на основе ядра Linux, рассматривает программное обеспечение как набор небольших программных компонентов, называемых пакетами. Библиотеки добавляются в пакеты, причем любой пакет с библиотекой может зависеть от других пакетов. Процесс установки приложения может включать в себя процесс поиска и установки определенных версий множества других библиотек. Эти зависимости обычно доставляются из стандартного репозитория, содержащего тысячи пакетов. Данная философия обуславливает использование в дистрибутивах Linux таких сложных систем управления пакетами, как dpkg и RPM для отслеживания зависимостей и предотвращения установки двух приложений, использующих несовместимые версии одной и той же библиотеки.
У каждого подхода есть свои достоинства и недостатки.
Система управления пакетами в Python разрабатывалась с использованием второго подхода — использовалось множество зависимостей для каждого пакета, а также система должна была быть так дружелюбна к разработчику, администратору и пользователю, как это возможно. К сожалению, она имела (и имеет) различные дефекты, обуславливающие и приводящие к разного рода проблемам: использованию неинтуитивных схем записи версий, наличию необрабатываемых файлов с данными, сложностям с повторной упаковкой и другим. Три года назад группа разработчиков Python решили повторно разработать эту систему для устранения вышеописанных проблем.
Завершена публикация перевода на русский язык большой статьи Ульриха Дреппера «Как писать разделяемые библиотеки». Автор предварил статью такими словами:
Разделяемые библиотеки используются повсюду. Разработчики пользуются ими для разных целей и разрабатывают их точно так же, как и приложения. Но проблема в том, что для создания просто хорошо написанного кода на многих платформах требуется применять дополнительные методы. Еще больше знаний нужно при создании оптимизированного кода. Настоящая статья познакомит вас с необходимыми правилами и методами. Кроме того, будет представлено понятие стабильности интерфейса ABI (Application Binary Interface — двоичный прикладной интерфейс) и будет рассказано, как стабильностью управлять.
Уже во второй раз пройдет масштабная всероссийская конференция Стачка. Участие бесплатное.
Первая конференция стала одной из самых больших в России, собрав около 1500 участников и 70 докладчиков. В этом году в технических потоках (30 докладов за два дня) будут выступать представители компаний: skype, badoo, mamba, echo, undev, rambler, sphinx, scrumtrack, mail.ru, avito, express 42 и другие.
Темы докладов: методологии, devops, big data, highload, языки, архитектура кода и проектов, client-side, мобильные и облачные технологии.
Так же можно подать заявку на доклад 2.0, который попадет на общее голосование (участниками конференции). При достаточной популярности он будет добавлен в общую сетку.
Команда ЗАО «Тырнет» (группа компаний Мезон.Ру) стала одной из 30 в мире, которые получат гранты Google RISE Award 2013 на поддержку образовательных инициатив в этом году. RISE (Roots in Science and Engineering – «Основы науки и техники») предоставляет финансирование и поддержку организациям по всему миру, занимающимся образованием в области науки и техники. Грант будет использован для разработки англоязычной версии продукта и для его продвижения за пределами России в мировое образовательное сообщество.
Открытый проект ScratchDuino был задуман как средство взаимодействия физической среды со средой Scratch – визуальной средой программирования, развивающей идеи Лого, которую разработали в Массачусетском технологическом институте (MIT).
Разработанный компанией конструктор «СкретчДуино.Робоплатформа», часть проекта «СкретчДуино», нацелен на обучение школьников основам программирования с использованием получаемых непосредственно из окружающей среды данных. Набор законченных модулей позволяет создать роботизированный механизм передающий информацию о внешних воздействиях в компьютер, и при использовании созданных школьниками программ решать проставленные задачи.
С помощью СкретчДуино.Робоплатформа можно освоить работу с основными микроэлектронными компонентами (радиодеталями), разобраться, как работает тот или иной датчик, произвести его калибровку и настройку, затем использовать эти данные в программе. Робоплатформа может управляться откуда угодно. Вы можете сделать это из Scratch, из Lazarus (на языке Pascal), из Кумир (через транслятор) или просто с пульта управления (к примеру, с вашего Android смартфона).
Робоплатформа свободна и открыта. Все необходимые схемы, развертки, список деталей, инструкции вы можете скачать с сайта проекта и собрать себе собственного робота, или купить детали для его сборки и получить готового робота, который сможет ездить, уже через час.
Код опубликован Музеем компьютерной истории с разрешения компании Adobe и свободно доступен для некоммерческого использования.
Версия от 1989 года, состоит из 179 файлов, в сумме набирающих примерно 128 тыс. строк кода.
~75% кода - паскаль, остальное ассемблер.
На свет появилась новая реализация языка Ruby — Topaz. Проект примечателен тем, что для его разработки был использован RPython — набор инструментов для трансляции, разрабатываемый в рамках проекта PyPy. Использование RPython, по мнению разработчиков, позволит создать по-настоящему высокопроизводительную реализацию ЯП Ruby с быстрым сборщиком мусора и современным JIT.
Разработка началась 10 месяцев назад. В данный момент поддерживаются практически все синтаксические конструкции языка, однако отсутствует большинство встроенных методов и практически не реализована стандартная библиотека.
В ближайшем будущем разработчики намерены усердно трудиться над реализаций стандартной библиотеки и встроенных методов и расчитывают на помощью сообщества в этом нелегком деле.
«Параллельные вычислительные технологии (ПаВТ) 2013» — международная научная конференция, седьмая в серии ежегодных конференций, посвященных развитию и применению параллельных вычислительных технологий в различных областях науки и техники.
ПаВТ'2013 будет проходить 1–5 апреля 2013 г. в Южно-Уральском национальном исследовательском государственном университете в г. Челябинске.
Организаторы мероприятия:
Российская Академия Наук
Суперкомпьютерный консорциум университетов России
Тематика конференции покрывает все аспекты применения высокопроизводительных вычислений в науке и технике, включая приложения, аппаратное и программное обеспечение, специализированные языки и пакеты.
В первый день работы конференции будет объявлена 18-я редакция списка Top50 самых мощных компьютеров СНГ.
Индустриальная сессия: программный комитет придает особое внимание привлечению к работе конференции представителей промышленности. С этой целью в рамках конференции будет организована индустриальная сессия. На сессию принимаются высококачественные презентации по коммерческому аппаратному и программному обеспечению, ориентированному на применение суперкомпьютерных и параллельных вычислительных технологий в различных областях науки и техники.
Boost.Lockfree — предоставляет неблокирующие структуры данных (два варианта очереди и стек).
Boost.Multiprecision — предоставляет численные типы (целочисленные, рациональные и с плавающей точкой) с повышенной точностью и увеличенным диапазоном значений.
Boost.Numeric.Odeint — библиотека для поиска решений обыкновенных дифференциальных уравнений, удовлетворяющих начальным условиям.
Из багфиксов, вошедших в релиз, стоит отметить исправление уязвимости в библиотеке Boost.Locale, которой подвержены версии 1.48 — 1.52.
Eric — интегрированная среда разработки для Python и Ruby написанная в свою очередь на Python с пользовательским интерфейсом на Qt4 и использующая для редактирования исходных текстов компонент Scintilla.
Существуют две стабильные ветки: Eric4 на Python2 и Eric5 на Python3.
Особенности:
менеджер проектов;
графический отладчик с поддержкой интерактивного исследования во время приостановки и автоостановки на критических исключениях;
профайлер;
опции при запуске кода Python;
модульное тестирование;
отслеживание выполняемых задач (автообновляемый TODO-лист);
расширяемость за счёт плагинов (для Django, TurboGears, wxPython, PyLint и др.).
Groovy — это объектно-ориентированный язык программирования для платформы Java. Может использоваться как самостоятельный скриптовый язык, как средство для создания DSL¹ (в качестве примера можно взять проект Gradle) и как встраиваемый язык для программ на Java. Поддерживает как динамическую, так и статическую типизации.
25 января вышел в свет Groovy версии 2.1. Вот лишь часть нововведений, появившихся в новом выпуске:
Полная поддержка инструкции invokedynamic в JDK 7.
В язык включена библиотека GPars 1.0, предназначенная для облегчения многопоточного программирования.
Возможность расширения механизма опциональной статической типизации (аннотация @TypeChecked) с помощью собственных правил.
Метааннотации, позволяющие сгруппировать несколько аннотаций в одну.
Класс CompilerConfiguration, используя который можно настроить и параметризовать процесс компиляции в соответствии с собственными нуждами.
Editra — мощный и гибкий мультиплатформенный текстовый редактор, целью создания которого является простой в использовании интерфейс и функции помогающие в разработке ПО. В настоящее время поддерживает подсветку синтаксиса и множество других полезных функций для более чем 60 языков программирования. Проект находится в стадии разработки, но для загрузки доступны и стабильные версии. Лицензирован и находится в свободном доступе для использования в соответствии с WxWindows License.
Возможности редактора расширяются с помощью плагинов.
В этой версии:
Расширена поддержка подсветки каскадных таблиц стилей (CSS) и практически готова поддержка CSS3;
Платформонезависимая библиотека MathGL предназначена для построения широкого спектра графиков (кривых, поверхностей, поверхностей уровня и т.д.). Есть возможности экспорта графики в растровые (PNG, JPEG) или векторные (EPS, SVG, TeX, OBJ, PDF) форматы и рисование в консольном режиме.
В новой версии добавлены новые типы графиков, расширены возможности задания цвета, добавлен вывод графики с использованием JavaScript, унифицирован интерфейс всех функций, а также сделано множество других улучшений как в ядре библиотеки, так и в UDAV'е.
Armed Bear Common Lisp (ABCL) — полная реализация стандарта языка программирования Common Lisp, включающая интерпретатор и компилятор, и работающая на JVM. Изначально будучи скриптовым языком расширения для текстового редактора J, реализация теперь поддерживает JSR-223 (API скриптовoго языкa расширения для Java): то есть может быть скриптовым движком в любом приложении, написанном на Java. Вдобавок можно использовать Java <--> Lisp API интеграции для реализации (отдельных частей) на Java или Lisp.
В этом долгожданном релизе (с 9 января 2012) исправлено множество ошибок и добавлены новые возможности:
Рабочая реализация (A)MOP (Metaobject Protocol) благодаря упорной работе Rudi Schlatte (@rudi).
Эта реализация теперь может работать на большем количестве Quicklisp-инсталляций благодаря обширному тестированию. Спасибо @xach!
Все перечисленные ниже системы нуждаются в патчах, которые появятся в следующих релизах Quicklisp:
CLOSER-MOP — в связи с реализацией MOP в этом релизе, ведется работа по добавлению поддержки ABCL в closer-mop;
CFFI;
HUNCHENTOOT;
CXML.
Компилятор байткода Java 5. Внутренний Lisp-to-Java байткод компилятор покрыт большим количеством регрессионных тестов с использованием Quicklisp-библиотек.
Возможность создания классов в рантайме через JNEW-RUNTIME-CLASS (@astalla). Довольно близко к полному покрытию примитивов для создания synthethic Java-классов в рантайме. Легко расширяемая по вашим потребностям, с разумными опциями по умолчанию.
Обновлен ASDF до версии 2.26.6 с включенными патчами для расширений реализации в дополнении к ANSI: URL-PATHAME и JAR-PATHNAME.
ABCL-CONTRIB:
ABCL-ASDF — инсталляция по сети с использованием Maven;
JSS;
JFLI.
Поддерживаются следующие платформы: Windows, Linux, MacOS X, OpenBSD, NetBSD, FreeBSD, Solaris или Google App Engine.
Для клиентских установок необходимы следующие версии JRE:
JRE 1.5.0
JRE 1.6.0 (patch level 10 или выше)
JRE 1.7.0
Для разработки/компиляции необходимы следующие версии JDK и Ant:
JDK 1.5.0
JDK 1.6.0 (patch level 10 или выше)
JDK 1.7.0
Ant 1.7.1 или выше
Бинарную сборку в архиве можно загрузить по ссылкам:
Представлен новый релиз генератора грамматического разбора Bison 2.7. Bison поддерживает следующие языки программирования: C, C++ и Java. В релиз вошли следующие изменения:
Исправления ошибок:
исправлено предупреждение о неинициализированной переменной yylloc;
восстановлена совместимость с C90.
В генераторе представления парсера в виде графа улучшено отображение состояний — они теперь имеют прямоугольную форму, четко виден номер состояния, пункты списка пронумерованы и выровнены. Редукции изображены как переходы к ромбовидным узлам графа.
Улучшены возможности форматирования сообщений об ошибках, в частности поддерживается указание на место ошибки в строке с помощью символов «^^^^».
Улучшена поддержка «чистых» (реентерабельных) парсеров.
Добавлена возможность использования пользовательских типов местоположения (с помощью переменной api.location.type).
В парсере larl1.cc добавлен код, обрабатывающий исключения.
Поддержка %language больше не является экспериментальной.