LINUX.ORG.RU

Программирование


43

0

Всего сообщений: 688

Ruby 1.9.3

Группа Open Source

Спустя год с выпуска предыдущей версии, анонсирован новый релиз «официального» интерпретатора языка программирования Ruby.

В целом, версия 1.9.3 является логичным эволюционным развитием интерпретатора и не несёт в себе кардинальных изменений, способных сломать совместимость с существующим кодом.

Среди значимых изменений стоит отметить:

  • вместо GPLv2 + Ruby License используется 2-clause BSD License + Ruby License;
  • в поставку включен RubyGems версии 1.8.10;
  • улучшен механизм загрузки кода, что позволяет значительно сократить время загрузки приложений;
  • библиотека работы с датами переписана на языке Си, что также положительно сказывается на производительности;
  • включена возможность параллельного выполнения test/unit.

Более подробный перечень нововведений традиционно приведён в файле NEWS.

Кстати, пользователи rvm уже имеют возможность обновиться и радоваться всеми нововведениями Ruby 1.9.3.

>>> Анонс в ruby-core

 ,

eveel
()

Yet Another Perl Podcast - выпуск 11

Группа Документация

Стал доступен 11-ый выпуск Yet Another Perl Podcast, подкаста о Perl на русском языке. Темы выпуска:

  • День рождения Ларри Уолла :)
  • Почему Perl?
  • Производительность пакетов ООП в Perl
  • Отчет о конференции BlackPerl 2011
  • Обзор вакансий и интересных CPAN модулей
  • Новая рубрика «Офтопик»

Пара слов о подкасте. Первый (пилотный) выпуск YAPP был залит на rpod 7 марта 2011. С тех пор подкаст выходит примерно раз в месяц. Четкого графика выпусков нет - все сильно зависит от наличия тем для обсуждения, настроения ведущих и других факторов.

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

>>> Подробности

 , , , ,

afiskon
()

Анонсирована свободная переносимая реализация OpenCL

Группа Hardware and Drivers

Portable OpenCL позволит разрабатывать и запускать программы, использующие OpenCL, на его свободной платформонезависимой реализации (до этого существовали SDK, предоставляемые вендорами аппаратуры).

Это свободная (MIT-лицензия), основанная на LLVM реализация стандарта OpenCL, которая может быть легко приспособлена для новых целевых платформ. Одна из задач проекта — улучшение «переносимости производительности» программ на OpenCL, избегая нужды в ручной оптимизации, зависящей от целевой платформы. Цель «native» включена, что позволяет запускать ядра OpenCL на CPU.

Также ведётся работа над реализацией OpenCL поверх драйверов видеокарт из Gallium3D (Clover state tracker), в котором можно отметить некоторый прогресс за лето, произошедший в рамках GSoC.

Сайт проекта: https://launchpad.net/pocl

>>> Подробности

 , ,

ChALkeR
()

openSUSE представил openQA — систему для автоматического тестирования дистрибутива

Группа Novell

Проект openSUSE представил первый релиз системы автоматического тестирования дистрибутива openQA.

openQA запускает собранный образ в виртуальной машине, эмулирует нажатия клавиш и движения мыши и сравнивает полученные скриншоты загрузки и установки ОС, а также, работы приложений с эталонными.

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

Результаты тестирования наглядно отображаются через веб-интерфейс. openQA уже применяется для тестирования openSUSE Factory — будущего релиза openSUSE.

openQA выпущен под свободной лицензией GPL2+ и может быть адаптирован для других дистрибутивов.

Скриншоты работы системы:

http://news.opensuse.org/wp-content/uploads/2011/10/openQA-test-overview.png

http://news.opensuse.org/wp-content/uploads/2011/10/openQA-test-overview1.png

Пример ролика, записашего автоматический процесс тестирования установки системы:

http://video.os-autoinst.zq1.de/opensuse/video/openSUSE-NET-x86_64-Build0026.ogv

>>> Подробности

 , ,

Nxx
()

Опубликован стандарт C++11 (бывший C++0x)

Группа Документация

ISO объявила о публикации стандарта C++11. Это первое значительное изменение стандарта с 1998-го года. Вот несколько новых объявленных возможностей:

  • ссылки на временные объекты и семантика переноса (rvalue reference);
  • обобщённые константные выражения (ключевое слово constexpr);
  • внешние шаблоны — возможность запретить компилятору инстанцировать шаблон в единице трансляции (extern template class);
  • ключевое слово auto для задания типа переменной на этапе компиляции;
  • цикл for по коллекции данных;
  • lambda-функции;
  • введена отдельная константа нулевого указателя nullptr;
  • шаблоны с переменным числом параметров (variadic templates);
  • thread-local хранилище, модель памяти с поддержкой потоков;
  • изменения в стандартной библиотеке: включение hash tables, регулярных выражений, smart pointers, элементов синхронизации потоков и т.п.

Полный список новых возможностей с подробным объяснением каждой из них можно посмотреть на http://en.wikipedia.org/wiki/C 11 или же более сжато на русском: http://ru.wikipedia.org/wiki/C 11

Полная поддержка C++11 обещается в GCC 4.7, объем поддержки на текущий момент можно оценить по таблице http://gcc.gnu.org/onlinedocs/libstdc /manual/status.html#status.iso.200x

ISO продает текст стандарта по 352 швейцарских франка ($386), но можно бесплатно скачать, например, его финальный черновик (практически не отличающийся от конечной версии) с сайта рабочей группы: http://www.open-std.org/jtc1/sc22/wg21/

>>> Пресс-релиз

 , ,

vden
()

Clojure 1.3

Группа Java

Состоялся релиз Clojure 1.3, динамического языка для JVM. Clojure можно использовать в проектах любого рода, при этом важной его особенностью является сочетание удобства скриптового языка с эффективностью многопоточного программирования. Как любой динамический язык, Clojure компилируется в байт-код для JVM непосредственно на этапе выполнения. В то же время Clojure является диалектом Lisp, предоставляя вам все преимущества функционального программирования.

Изменения в новой версии:

  • Монолитная система дополнений clojure-contrib.jar заменена на полностью модульную структуру, что позволяет, во-первых, не включать в готовые приложения код неиспользуемых библиотек, а во-вторых, иметь собственный цикл разработки для каждой отдельной библиотеки. При этом для обновления с Clojure 1.2 рекомендуется сначала обновить библиотеки, а затем уже обновиться до Clojure 1.3;
  • Улучшенная поддержка примитивов для арифметических расчетов;
  • Изменения в определении записей (defrecord) и типов (deftype);
  • Улучшена система оповещения об исключениях и ошибках;
  • Несколько новых функций в clojure.core, clojure.data, clojure.pprint, clojure.repl;
  • clojure.java.shell/sh теперь поддерживает в качестве источника данных объекты типов InputStream, Reader, File, byte[];
  • Поддержка Maven для компиляции и развертывания приложений;
  • Улучшения в плане производительности скомпилированных приложений;
  • Множество устраненных ошибок.

>>> Полный список изменений

 , , ,

ins3y3d
()

Инструменты Linux для Windows-программистов

Группа Документация

Опубликован черновой вариант (проект) книги О.В.Цилюрика, в которой в конспективной манере обозначаются те места в практике программиста-разработчика (да, отчасти и пользователя, и администратора), которые, при общности концептуальных понятий, разительно отличаются в Linux от того, что привычно программисту из Windows. Цель книги (по возможности, насколько это удалось): указать на такие места, чтобы можно было предполагать их наличие, и не приходилось разыскивать наугад ответ на вопрос: «а как это делается в Linux?». Конечно, отбор таких «изюминок» - вещь сугубо специфическая: кому что больше нравится, и здесь не может не возникнуть перекосов, особенно потому, что предмет обсуждения - безграничен, а объём книги - конечен.

>>> Подробности

 , ,

vikos
()

Релиз Rails 3.1

Группа Open Source

Для загрузки и установки доступен релиз фреймворка для построения веб-приложений rails 3.1.

Основные новшества в этой версии:

  • Asset Pipeline - фреймворк для сборки и сжатия JS и CSS под управлением Sprockets 2.0. Теперь как генерируются контроллеры, виды и модели для ваших скаффолдов, также будут создаваться и JS и CSS. Это позволяет достичь более удобной архитектуры и разгрести десятки десятки файлов из public/javascript по модулям. Рельсы сами будут заботиться о сборке всех ваших клиентских файлов в один и кешировании. Краткое руководство по Asset Pipeline
  • HTTP Streaming - позволит начать браузеру скачивать таблицы стилей и javascript'ы ещё до того, как сервер закончит формировать ответ. Результат — заметное увеличение скорости отдачи страниц. Это всего лишь опция, которая требует поддержки от web-сервера. Связка nginx+unicorn уже готова поддерживать эту возможность. Пример и как это работает можно посмотреть на RailsCasts.
  • jQuery теперь используется по умолчанию. Использовать prototype можно всего лишь поменяв jquery-rails на prototype-rails в Gemfile.
  • Другие изменения:
    • DRY миграции, которые знают сами, как себя обратить.
    • Mountable engines теперь могут быть иметь своё собственное пространство маршрутов и помошников.
    • Prepared statements - ActiveRecord теперь использует кешированные подготовленные выражения, которые дают большой прирост производительности в PostreSQL и на сложных запросах в MySQL. Вместо формирования запроса и передачи его в БД каждый раз, Rails один раз формирует запрос, а затем использует его специальный токен (подставляя нужные данные), когда нужно сделать похожий. Дает прирост в производительности на 20-30% на простых запросах и 10-кратный прирост по запросам в секунду на сложных запросах.
    • Rack::Cache включен по умолчанию. Делает возможным использование HTTP-кеширования с условным получением (Conditional Get) как замены для постраничного кеширования. В скором времени постраничное кеширование уберут из стандартной поставки.
    • Turn — новый вывод для Test::Unit в Ruby 1.9
    • ForceSSL - позволяет использовать безопасные соединения намного проще.
    • Основанный на ролях mass-assignment. attr_protected теперь принимает в качестве параметра роль.
    • has_secure_password - простое встраивание парольной защиты на BCrypt.
    • Custom serializers - теперь есть возможность самому указать способ хранения объектов в базе, а не только в формате YAML.

Также можно посмотреть небольшой видео обзор на RailsCasts
Если вы создаёте новое приложение, то лучше используйте Ruby 1.9.2. Rails будут поддерживать 1.8.x вплоть до 4.0, но только для совместимости.

>>> Подробности

 , , , ,

wolfovich
()

Релиз Clang с новой технологией проверки безопасности кода

Группа Open Source

Увидел свет новый выпуск являющегося частью проекта LLVM компилятора Clang с технологией SAFECode.

Данная технология предназначена для отслеживания возможных проблем работы с памятью в разрабатываемом приложении, при этом не изменяет поведение компилятора, когда неактивна. Включить её можно через указание специального ключа командной строки при сборке. Преимуществами по сравнению с таким инструментом как Valgrind являются:

  • более информативные сообщения об ошибках;
  • возможность оптимизации некоторых run-time проверок;
  • отсутствие динамической трансляции как у Valgrind;
  • более точно определяет структуру программы, так как знает расположение границ отдельного стека и глобальных объектов (для поиска данных границ Valgrind использует эвристические методы).

Сейчас технология позволяет отслеживать разыменования указателей, которые могут спровоцировать переполнение буфера. В дальнейшем планируется внести из проекта SAFECode в Clang:

  • выявление некорректного доступа к памяти (указатели на несуществующий или удаленный объект);
  • определение неправильных вызовов функции free(), например, двойное освобождение выделенной памяти;
  • определение использования неинициализированных указателей;
  • выявление ошибок при работе с памятью, вызванных неправильным использованием функций стандартной библиотеки;
  • дополнительные оптимизации, включая удаление проверок корректности типов на этапе загрузки/сохранения и вынос за пределы циклов.

Clang это фронт-энд компиляторов С/С++, Objective-C, который разрабатывается на замену GCC в BSD-системах. Интересен может быть также крупным корпорациям благодаря лицензии BSD. При помощи Clang уже удалось собрать ядро Linux и фреймворк Qt.

Исходный код

Страница проекта

>>> Подробности

 , ,

pylin
()

App Inventor перешёл под крыло MIT

Группа Android

Проект App Inventor призван предоставить инструменты графического проектирования программ, причём как алгоритмов, так и графического интерфейса. Разработка приложений здесь происходит при помощи графических компонентов и их соединения между собой. Алгоритмические блоки охватывают как обычные алгоритмические конструкции, так и специфические возможности, предоставляемые мобильными платформами, например GPS, интеграция с социальными сетями, синтез речи.

Разработка программ напоминает сборку головоломки. Готовая схема преобразуется компилятором в программу на языке Kawa (GNU вариант Scheme). Итогом является формирование установочного пакета для Android.

Изначально App Inventor развивался как образовательная инициатива, но после закрытия Google Labs проект повис в воздухе. После этого его разработку продолжил MIT, «предоставляя тем самым возможность людям учиться везде, в любое время и у кого угодно». В дальнейшем планируется более широкое внедрение мобильных технологий в разработку учебных приложений.

>>> Подробности

 , , , ,

pylin
()

Google открывает LevelDB

Группа Open Source

LevelDB - быстрое хранилище данных, обеспечивающее упорядоченное отображение текстовых ключей на текстовые значения.

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

LevelDB реализована с минимумом зависимостей и поэтому уже доступна на большинстве платформ. Библиотека распространяется под лицензией в стиле BSD.

Сравнение производительности с SQLite и Kyoto Cabinet

Домашняя страница проекта

>>> Подробности

 , ,

yoghurt
()

FAUST 0.9.43

Группа Мультимедиа

Выпущена первая за последние восемь месяцев новая версия средств разработки на функциональном языке FAUST (Functional AUdio STream), предназначенном для физического моделирования и обработки звука.

Язык FAUST пользуется растущей популярностью среди разработчиков свободных эффектов и инструментов, поскольку позволяет создавать достаточно правдоподобные виртуальные копии винтажных синтезаторов и электроорганов. Это связано с тем, что на языке можно с лёгкостью воспроизводить принципиальные схемы.

Изменения затронули практически все части SDK:

  • улучшен компилятор;
  • добавлена масса примеров с виртуальными духовыми, клавишными, струнными и перкуссионными инструментами;
  • добавлены трансляторы в LADSPA, DSSI и SuperCollider;
  • добавлены новые фильтры, включая ревербераторы на основе сетей задержки отклика.

Скачать

>>> Подробности

 ,

AP
()

Вышла очередная референсная реализация компиляторов языков D1 и D2

Группа Open Source

10 июля стала доступна для загрузки очередная референсная реализация компиляторов языков D1 и D2. Как повелось с предыдущего выпуска, готовы пакеты для Ubuntu, Fedora, и openSUSE, как 32-х, так и 64-хбитные.

Некоторые нововведения:

  • введены атрибуты @safe, @property, сделан автоматический интерфейс для @safe, pure, nothrow;
  • В inline assembler добавлена поддержка инструкций SSSE3;
  • добавлены новые предупреждения о свойствах, подлежащих удалению, часть свойств объявлены удалёнными;
  • расширены ядро языка и стандартная библиотека, в частности, добавлены core.sys.posix.netdb, td.array.uninitializedArray, std.array.minimallyInitializedArray;
  • часть функций, в первую очередь в модулях std.string и std.uni, была переименована для соответствия с разработанными правилами именования, старые названия частично сохранены для совместимости, но будут удалены из последующих версий;
  • добавлена возможность использовать логические переменные в качестве ключей в ассоциативных массивах, ранее с этою целью можно было использовать только целые числа и строки.

Авторы также рапортуют об устранении 127 ошибок различной природы.

Подробный список изменений можно посмотреть на официальном сайте.

>>> Подробности

 ,

Vudod
()

Вышел GNAT GPL 2011

Группа Open Source

Не так давно компания AdaCore выпустила новую версию компилятора языка Ada — GNAT GPL 2011. В новой версии:

  • улучшена поддержка стандарта Ada 2012;
  • улучшения в системе разработки GNAT Programming Studio и в GtkAda;
  • поддержка Lego Mindstorms, в том числе аудио и датчиков I²C.

Загрузить компилятор и сопутствующее ПО можно отсюда.

>>> Подробности

 ,

undet
()

MyTetra v1.30

Группа Open Source

Кроссплатформенный менеджер накопления информации MyTetra обновился до версии 1.30. Это знаковый релиз, при подготовке которого нумерация даже «перескочила» через одну версию (предыдущая была 1.28).

В новом релизе MyTetra появилось три долгожданных функции:

  • Синхронизация через интернет: для синхронизации можно использовать любые системы облачного хранения данных или системы контроля версий. Главное, чтобы эти системы поддерживали атомарность. Автор протестировал и использует Git на GitHub.com.

  • Шифрование: данные можно шифровать по алгоритму RC5-32/12/16 c CBC-режимом сцепления, ключ генерируется на основе пароля с солью, пропущенного через алгоритм PBKDF2 на 1000 раундов с длиной ключа 160 бит. Для генерации ключа шифрования в 128 бит, от результата берется MD5 сумма. Каждая запись шифруется с уникальным инициализирующим вектором. Как побочный результат реализации шифрования, была создана кроссплатформенная библиотека RC5Simple.

  • Навигация по истории: в MyTetra появились замечательные кнопочки, которые позволяют быстро перемещаться назад и вперед по истории просматриваемых записей. Так же теперь MyTetra помнит, какую запись вы редактировали в каждой ветке и автоматически выбирает данную запись при переходе в уже посещённую ветку. Так же запоминается позиция курсора в редактируемых записях (настраиваемо).

Подробности:

Традиционный обзор нового релиза MyTetra v.1.30

Официальная страница программы MyTetra

Документация по настройке синхронизации MyTetra через интернет

Следующий релиз автор планирует посвятить доработке встроенного WYSIWYG-редактора и добавлению инструментов работы с текстовыми метками.

>>> Новость на сайте автора

 , ,

webhamster
()

Организаторы конкурса «Лучший свободный проект России»-2010 решили сэкономить

Группа Open Source

Победители конкурса «Лучший свободный проект в России»-2010 заявляют, что организаторы не выплатили обещанные денежные премии.

Выдержка из сообщения Ильи Муравьева, автора проекта Bombono DVD, занявшего 2-е место в злополучном конкурсе: «Внушительную премию, как заявляют организаторы конкурса («Linux Format» при поддержке компаний Intel, PingWin Software, IBM developerWorks и ГНУ/Линуксцентр) мне, как занявшему второе место в номинации «Индивидуальный проект», не отдали. Не отдали не только мне, но и автору GoldenDict, Исакову Константину, занявшему 1 место в той же номинации; и наверняка то же самое подтвердят и остальные победители „конкурса“. А с учетом того, что организаторы уже не отвечают по почте, это значит, что денег не будет (напомню - конкурс завершился в середине декабря 2010).»

UPD: Комментарий Павла Фролова, ГНУ/Линуксцентр

UPD: Комментарий Константина Кочерешкина, ПингВин Софтвер

>>> Полный текст сообщения

 ,

L_user
()

Многократный чемпион среди шахматных программ - Rybka дисквалифицирована за нарушение GPL

Группа Проприетарное ПО

ICGA (международная ассоциация компьютерных игр) официально признала Рыбку виновной в плагиате кода из открытых программ Crafty и Fruit. Её автор Васик Райлих навечно забанен на всех прошлых и будущих чемпионатах WCCC и от него требуют вернуть трофеи и призовые деньги. Результаты WCCC 2006, 2007, 2008, 2009 и 2010 где она победила - пересмотрены.

>>> Подробности

 , ,

JustGuest
()

GitHub открыл библиотеку «Linguist»

Группа Open Source

Данная библиотека используется хостингом исходного кода GitHub для работы с файлами исходного кода. Она позволяет:

  • определять язык программирования, на котором написан файл исходного кода по расширениям;
  • в случае проблем определения по расширению происходит определение по содержимому файла;
  • формировать статистику по языкам, в том числе в наглядных формах;
  • организовывать подсветку синтаксиса (используется обвязка вокруг Pygment);
  • распознавать файлы по MIME-типу, исключать из обработки некоторые типы файлов, которые являются результатом работы различных вспомогательных утилит.

Библиотека написана на Ruby. Распространяется на условиях new BSD.

Репозиторий проекта

>>> Подробности

 , , ,

pylin
()

Учебник «Learning Go»

Группа Документация

Оказывается, есть хороший учебник по языку программирования Go на английском языке.

Он подойдёт для тех, кому мало официального Go Tutorial, но при этом лень читать спецификацию языка.

Книга свёрстана на LaTeX и распространяется под CC BY-NC-SA 3.0. Автор (Miek Gieben) периодически дополняет и редактирует книгу.

>>> Список ночных PDF-сборок книги

 , , ,

Amuser
()

Вышел Eclipse IDE 3.7 Indigo

Группа Open Source

Сегодня вышел восьмой ежегодный релиз Eclipse IDE под номером 3.7 Indigo.

В выпуске данной версии участвовало 49 организаций, 62 команды, 408 контрибьюторов. Сейчас система насчитывает порядка 46 миллионов строк исходного кода, и выпускается официально в десяти редакциях.

Indigo включает важные изменения и нововведения для Java-разработчиков, в технологии моделирования, и улучшения в самой платформе Eclipse.

Новые возможности для Java-разработчиков:

  • EGit 1.0 - поддержка Git для Java-разработчиков.
  • WindowBuilder, редактор GUI теперь под патронатом проекта Eclipse и включен в поставку IDE.
  • Плагин для автоматизированного тестирования GUI для Java и HTML приложений Jubula включен в поставку IDE.
  • Плагин m2eclipse, который обеспечивает тесную интеграцию Maven и Eclipse, а также позволяет работать в Maven из-под Eclipse, включен в поставку.
  • Mylyn 3.6 поддерживает наблюдение за процессом сборки через Hudson прямо из Eclipse.
  • Клиент Eclipse Marketplace теперь поддерживает drag and drop установку основанных на Eclipse компонентов прямо в Eclipse.

Новое в Eclipse Modeling:

  • В Xtext 2.0 добавлены новые возможности для предметно-ориентированных языков (DSL).
  • Acceleo 3.1 объединяет интеграцию кода в сборки под Ant и Maven, а также включает в себя улучшенные возможности редактирования генераторов.
  • CDO Model Repository 4.0 теперь интегрируется с NoSQL БД такими, как Objectivity/DB, MongoDB, и DB4O. Проведена оптимизация кеширования и много других улучшений актуальных для моделей объемом в несколько гигибайт.
  • Улучшения в EMF.

Улучшения в EclipseRT:

  • EclipseLink 2.3 поддерживает многопользовательские JPA сущности, что позволяет включить JPA в SaaS-приложения.
  • Equinox 3.7 реализует OSGi 4.3 спецификацию, в том числе использование универсальных подписей, общие возможности, и требования для пакетов.
  • Eclipse Communication Framework (ECF) реализует OSGi 4.2 стандарты Remote Service и Remote Service Admin.
  • В Riena 3.0 включена поддержка создания приложений для веб-браузеров, используя Eclipse RAP.

SR1 выйдет по плану 23 сентября этого года, SR2 - 24 февраля 2012.

Wiki

Скачать

Indigo

>>> Подробности

 , , , , ,

onix_N
()