Haiku — свободная операционная система для персональных компьютеров, первая версия которой нацелена на бинарную совместимость с операционной системой BeOS.

Haiku воплощает в себе основные идеи BeOS. Это будет модульная система, архитектурно решённая как «модульное ядро», способная динамически подгружать необходимые модули. К интересным особенностям системы следует отнести архитектуру трансляторов — системных интерпретаторов файловых форматов (например, JPEG).

О проекте

ad block

Закладки

Найден блохолов!

Благодаря комментарию Humdinger-а в итогах к нашему голосованию и относительной близости поддержки безпроводоного стека и альфа-багов, нам удалось найти ещё одного разработчика! Humdinger вначале пытался отвлечь разработчиков от насущных проблем и вылечить, наконец, все баги, препятствующие альфа-релизу, но не получил никакого от них ответа. Это заставило меня заняться поисками... Я связался лично с двумя разработчиками Haiku, но у них не было времени. Потом я зарегистрировал проект 'Haiku Alpha Bug Squashing' на getafreelancer.com. Я был слегка удивлён тем, что получил несколько ответов и нашёл фрилансера из США, который написал:

"Я хотел бы поработать над haiku os и сделать в неё свой вклад. Посколько она open source, я не хочу за это денег. Если это вам интересно - свяжитесь со мной"

Я связался! Здесь, на haikuware, он под ником 'harsha'. Я рассказал ему про собранные пожертвования и предложил $250 за работу (оставив $500 на беспроводной стек), хотя его предложение поработать бесплатно показало его решимость и интерес. Он - профессиональный разработчик уже 4 года, читал про BeOS и Haiku и даже имеет рабочую среду под Linux для работы с Haiku.

Итак, harsha хочет знать с чего начинать. Я предлагаю писать в здесь комментариях и пригласите своих знакомых, чтобы писали тоже.

haikuware

2009/01/20
постоянный адрес

метки:

Призыв к оружию: самая полная коллекция программ для BeOS

Karl из Haikuware проделал огромную работу, собрав в сети все связанные с BeOS программы. Об этом можно прочесть тут.

http://www.haikuware.com/downloads/registered/haikuware.zip

Он также опубликовал список недостающих программ. Посмотрите у себя по сусекам на старых CD и в архивах BeOS-программ и отрпавьте их Карлу.

Список некоторых из них в формате txt vj;yj dpznm nen. (Отформатированно Meanwhile)

Если у вас есть исходники или вы разработчик, я осмелюсь предложить вам шанс остаться навсегда в истории Haiku, сделав приложение opensource.

Я призываю сообщество поделиться архивами/исходниками на следующей неделе в BeShare. Я постараюсь быть в сети как можно дольше.

Всем спасибо

urnenfeld

Утверждён план по Haiku Alpha 1

Завершено голосование по плану выпуска Haiku Alpha 1 и вот его результаты. Принято предложение закрыть все известные баги, влияющие на целостность данных, доделать поддержку своп-файла, полностью интегрировать планировщик I/O, исправить драйвер ata, чтобы можно было назначить его дефолтным менеджером шины, и сделать gcc2/gcc4 гибрид, о котором так много говорили. Отвергнуты были (а под "отвергнуты" мы понимаем, что просто не имеют статус “блокирующего” для релиза Alpha 1): живое обновление, создание стартового пакета для новичков и добавление упреждающего чтения. Они могут быть всё же добавлены, если будут готовы к тому времени, а если нет, то не задержат релиз. Если говорить о тех программах, которые мы увидим в Альфе, то там уже будут установлены инструменты разработки (это хорошо, поскольку данный релиз нацелен на привлечение интереса разработчиков), также будут
включены Firefox (Bon Echo?), Vision, Wonderbrush (специальная версия, разлоченная только для Haiku), BePDF, CVS, Subversion, Pe, Yasm. Были исключены: браузер на базе Webkit, Git и MDR с SSL. Может, их
обратно и включат в Альфу, но они её задержат, если будут готовы, в отличие от всего остального. Также был исключён менеджер пакетов из TiltOS, «бокс». Это удобная штука, но поскольку никто не поручился, что она будет готова к «часу икс», она получила 0 голосов.
Большинством было определено, что Альфа будет доступна в виде образа для CD, образа для эмуляторов (vmware, QEMU, возможно, каких-то ещё?) и образа для USB-устройств.
Пара пунктов застопорилось, и по ним ещё будут обсуждения. Точная дата релиза Haiku Alpha 1 всё ещё не определена, но уже ясно, что он будет Уже Очень Скоро.

BeGroovy

В Haiku улучшается поддержка своппинга

Благодаря Google Summer of Code студент Жао Шуай успешно завершил свой проект: в Haiku теперь есть поддержка своппинга. Она включена с 27233 сборки, и используя своп, файл можно удвоить доступую RAM. Размер своп файла может меняться (или выключаться) через панель настроек VirtualMemory.

Поддержка своппинга позволит наконец собирать Haiku из под Haiku на машинах с менее 800 MB RAM при наличии места в свопе. Я испробовал это на Core 2 Duo 2.2 GHz с 256 MB RAM (искусственно уменьшенной) и 1.5 GB своп файлом. Сборка стандартного образа Haiku с двумя джемами (jam -j2) заняла около 34 минут. Не очень-то и быстро, но Haiku пока не вполне оптимизирована.

Реализациая своппинга в Haiku в огромной степени позаимствована из FreeBSD. Не настолько совершенной, но Жао собирается сделать больше FreeBSD-шных оптимизаций.

Ingo Weinhold

[HCD]: отчёт

Прошло довольно много времени с моего последнего отчёта, пожалуй, пришла пора для нового.

Сначала хочу сообщить, что я получил первую половину моего жалования. Поскольку эти деньги были собраны (фантастика) сообществом, думаю вам важно знать, что они дошли до адресата.

Начиная с r27159 вам доступно чтение с UDF разделов. Я не стану пока добавлять модуль в дистрибутив, так как хочу провеести побольше тестов, но могу сказать, что порт UDF для новой FS API близок к завершению, вы можете начать его тестирование, добавив модуль и попробовав поработать с DVD, отформатированными под UDF или с iso-образами, созданными mkisofs. Отзывы приветствуются.

Вторая часть моего HCD, если не забыли, bonnie++ добавлена в r26920 и доступна для смельчаков, желающих потестировать.

В r27052 я исправил также захват BFS, когда вся файловая система могла быть блокирована, если несколько нитей писали в одну и ту же директорию. Подробности тут.

Ok, пойду вернусь к UDF. ;-)

emitrax

Haiku стукнуло 7

Этот день снова наступил. Всё началось семь лет назад с сообщения в рассылке. Сначала это называлось OpenBeOS, а потом, после выбора из нескольких вариантов, стало называться Haiku. Мы все помним первую загрузку, первый сайт, сначала офлайновый, потом живой, первый проигранный звук, и далее по списку. Да, этот день снова пришёл. Haiku стукнуло сегодня 7, что для возраста OS означает, что ей... 7! Отлично.

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

А теперь все вместе: С ДНЁМ РОЖДЕНИЯ, HAIKU!

DaaT

Urias McCullough - Haiku Project - LinuxWorld 2008

Urias McCullough из проекта Haiku поговорил с нами на LinuxWorld. Haiku - это операционная система с открытыми исходниками для настольных компьютеров, которая пишется с нуля. Основанная на идеях BeOS, Haiku расчитана на пользователей любого уровня компьютерной подготовки, простая, но мощная и свободная от ненужных сложностей

alternageek.com

Haiku Down Under 2008

В мае сего года, я написал в Haiku Mailing List, предложив австралийским пользователям и разработчикам принять участие в громком Open Source событии, чтобы поднять интерес к Haiku в нашей стране. Ясно, что собирать всех вместе - удовольствие дорогое, поскольку мы раскиданы по всей Австралии, и тогда я начал думать о планах сделать это онлайн - виртуальной конференции, так сказать.

В мае сего года, я написал в Haiku Mailing List, предложив австралийским пользователям и разработчикам принять участие в громком Open Source событии, чтобы поднять интерес к Haiku в нашей стране. Ясно, что собирать всех вместе - удовольствие дорогое, поскольку мы раскиданы по всей Австралии, и тогда я начал думать о планах сделать это онлайн - виртуальной конференции, так сказать.

Поскольку 18 августа наступает годовщина Haiku, я подумал, что мы можем собраться и провести мероприятие, приуроченное к этой дате. Время поджимает, и я решил, что лучше всего будет провести его по-простому. А поскольку это происходит в первый раз, потом можно будет использовать его для привлечения к Haiku внимания и обсуждений.

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

Текущая программа такова:

  • Добро пожаловать в HDU и краткая история Haiku
  • Как получить Haiku
  • Руководство по программирования в Haiku для начинающих
  • Перерыв
  • Руководство по окнам, представлениям и BMessages (включено обратно)
  • Suited n Booted или Простая загрузка с USB
  • Раздача подарков
  • Итоги

Что до подарков, то я планирую разыграть несколько призов типа лицензий на известные приложения для Haiku, вроде WonderBrush, BePodder и т. д.

Я надеюсь, у вас получится, а если нет, то все смогут увидеть видеотрансляции демонстраций и презентаций.

Веб-сайт: http://haikudownunder.com/

IRC: #haiku-au на FreeNode

оригинал

2008/08/12
постоянный адрес

метки:

BeOS Joystick Framework

Эта статья - скорее дополнение к статье ITO Takayuki “BeOS Joystick Driver”, так что советуем для начала ознакомиться с ней.

Я плохой писатель статей (даже на шведском), но я третий, кто пытается реализовать в Haiku работу с джойстиками, и, думаю, надо оставить что-то после себя для четвёртого, если я вдруг брошу эту работу :)

Когда я начал изучать joystick framework, я не думал, что это будет трудно; как же я обманывался ха, я даже не знал, как общаться с железом. Тем не менее, после некоторого тестирования (методом проб и ошибок), думаю, я нашёл кое-какую информацию о joystick framework, но я сначала я опишу своё понимание работы joystick framework.

Класс BJoystick в libdevice.so общается с джойстиком, объявленным в dev/joystick/”portname”/”joystick name”, таким образом обычный игровой порт (gameport) и usb_joy от ITO работают как отдельные устройства.

usb_joy = dev/joysticks/usb/0 (для первого устройства)
usb_joy = dev/joysticks/usb/1 (для второго и т. д.)
gameport = dev/joysticks/gameport/201
etc
emuxkigameport = dev/joysticks/ emuxkigameport /et18

emuxkigameport — это драйвер, который был подарен Haiku, он заставляет работать игровые порты на звуковых картах SB Live и Audigy. Я пытался добавить его в emuxki, но в этом случае звук прерывался, когда я двигал джойстик. Этот драйвер использует обычный игровой порт.

Как же он работает? Можно сказать, что у нас есть два способа общения с джойстиком — через usb_joy и emuxkigameport. Сначала у вас должна быть копия файла описания джойстика в onfig/settings/joystick/”portname”/”joystick name”. Думаю, это должна быть именно копия, поскольку приложение Joystick Preference модифицирует файл, так что симлинк не рекомендуется.

Сначала о usb_joy. Когда BJoystick посылают ioct (я не проверял, но думаю, что правильно понял, да?) драйверу, usb_joy делает всё сам, забирая информацию из USB и читая файо описания джойстика из /settings/joystick/”portname”/”joystick name”.

А как работает emuxkigameport? BJoystick посылает ту же информацию, что и в случае с usb_joy, но в данном случае emuxkigameport перенаправляет ioct драйверу, который называется generic gameport и расположен в drivers/generic. Этот драйвер загружает файл в config/settings/joystick/”portname”/”joystick name”, с этим файлом он знает, какой модуль нужно загружать, и загружает его, но в этом месте должен быть файл описания джойстика, иначе вы сможете использовать джойстик только в стандартном режиме (то же самое, как если бы модуля для вашего джойстика и вовсе не существовало).

Об использовании BeOS Joystick Framework в Haiku. Да, он работает, но не usb_joy, так как он рушит систему. Вам нужно скопировать libdevice.so, приложение Joystick preference, etc/joysticks, media/joy, generic/gamport и хайковский emuxkigameport. Я тестировал только stickit и приложение joystick preference из BeOS R5, а игры не тестировал.

Что получается на данный момент? Я буду продолжать, но сконцентрируюсь на драйвере usb_joy, чтобы понять, что с ним не так. Было бы здорово, если бы кто-нибудь помог мне определить, насколько хорошей идеей будет использование модулей в драйвере USB, чтобы обрабатывать различия в различных джойстиках, или в мире USB таких различий вообще не существует.

Если хотите ещё прочитать про джойстики, вот вам несколько ссылок:

  • http://www.beatjapan.org/mirror/www.be.com/documentation/rel_notes/R4Rel...
  • http://euc.jp/beos/beosjoystick.en.html
  • http://www.haiku-os.org/legacy-docs/bebook/BJoystick_Overview.html
  • http://www.haiku-os.org/legacy-docs/benewsletter/Issue3-43.html#DevWorks...


оригинал

R2 ОКР: The Filer

Будучи по натуре человеком деятельным, я умудрился сделать так, что ситуация вокруг меня превратилась в бардак. С наступлением отпуска, у меня появилась куча свободного времени, которое я решил посвятить работе над документом, который совместил бы два уже написанных мной RFC, которые можно найти тут и тут. Зная, что обсуждение юзабилити R2 получаются бесконечными и непродуктивными, я решил реализовать их в коде, перед тем, как публиковать, чотбы показать что большинство, если не все предлагаемые мной идеи, практичны, разумны и стоят того, чтобы быть реализованными во второй версии нашей любимой ОС. Первым из них, представленным публике, будет Filer.

продолжение

Как заставить Haiku грузиться

Эта статья рассказывает в сжатом виде, как работает загрузка вообще, где Haiku дублирует элементы стандартной загрузки и как заставить всё это работать вместе, если оно не работает автоматически. Оно точно так же работает при установке/загрузке большинства операционных систем, поэтому не является чем-то особенным и для Haiku.

продолжение

Чем помочь с m68k

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

Почему бы не Мак? Я хочу это для моей Amiga! Готов отдать свой NeXT!

(Не отказался бы ;))

Выбор целевой платформы обусловлен наличием имеющихся эмуляторов m68k-машин. В QEMU есть режим m68k, но это все лишь ColdFire. Ни одна из существующих машин не эмулируется.

Большинство операционных систем той эры поддерживают CPU с 68000 по 68030. Это значит, что на самом деле MMU для 030 и выше не используется. Большинство машин используют дешёвые версии, вроде 68EC030, который плох и как FPU, и как MMU. Это справедливо для большинства Амиг, для которых, разумеется можно поставить процессорную плату с 040 или 060. Но для Haiku требуется mmu. У меня есть Mac LC III, в котором полноценный 030, однако Basilisk II не эмулирует MMU, насколько я знаю, поскольку раз на большинстве маков его нет, он и не используется, кроме как для свопинга в некоторых версиях.

Я не знаю ни одного эмулятора Next, если знаете - напишите.

Продолжение

Haiku работает на Asus EeePC

После исправления нескольких багов, Haiku работает на Asus EeePC - 701-й модели, вот так вот. «С большим удовольствием могу сообщить, что Haiku (rev26666) работает на Asus EeePC! У меня 701 модель, и я иногда проверял версии Haiku на этой машине. Много месяцев я не мог загрузить Haiku, но в какой-то момент, баг, о котором я сообщил, был разрешён, и Haiku грузится с внутреннего 4gb диска!». WiFi, сеть, и APM не работают, но работает звук, благодаря OSS драйверу. Установка немного утомительна (надо загрузить Haiku в виртуальной машине в Windows XP и скопировать всё на BFS раздел ноутбука, и добавить Haiku в ntldr), но оно всё таки работает.

Thom Holwerda

Пакет для оценки производительности файловой системы Haiku

Пришло время кратких новостей

С релизом r26676, в Haiku появилась первая глючная реализация xsi семафоров (глючная, потому что уже готов патч, возможно не последний, который устранит некоторые обнаруженные проблемы).

Можно сгрузить, скомпилировать и запустить пакет для оценки производительности файловой системы bonnie++. Я использовал версию 1.03d, которую мне рекомендовал автор пакета. С ним можно оценить работу файловой системы, а также то, как Haiku работает при недостатки памяти и тяжёлой нагрузкой.

Программа запускается очень просто. Чтобы запустить пакет в режиме одного процесса, наберите:

bonnie++ -u 0

А если хотите запустить несколько процеесов, сделайте так:

bonnie++ -p 3 -u 0
bonnie++ -y -u 0 &
bonnie++ -y -u 0 &
bonnie++ -y -u 0 &

Первая команда создаёт ipc ключ и семафоры для синхронизации трёх процессов. Как большинство из вас догадалось, флаг -p указывает число процессов bonnie++. Почмите, что ни один из этих процессов не запустится до тех пор, пока не стартует самый последний.

Конечно же, я приглашаю всех вас принять участие в тестах, чем больше будет сделано тестов, тем больше будет найдено багов, тем скорее их вылечат, тем быстрее выйдет R1 will. По крайней мере в теории! :-)

Конечно, ВЫ ВСЁ ДЕЛАЕТЕ НА СВОЙ РИСК.

emitrax

Модифицируем отладчик ядра

В отличие от BeOS наше ядро содержит куски кода на C++, которые иногда причиняют кучу головной боли, года смотришь стек отладчиком ядра, потому что символы искалечены линковкой бинарников так, что надо использовать Decode__12CrypticCNamesPCc. Помню, видел private API для gcc4 по расшифровке символов в читаемые имена, но код, делавший это, из libsupc++, был написан без учёта реалий Kernel Debugging Land, и использовал вызовы malloc, realloc и free... Я всё ещё очень хотел видеть нормальные имена и не сдавался. Я также хотел иметь возможность получать ассемблерные дампы, потому что не у всех есть последовательный кабель для работы с внешним отладчиком.

статья полностью

Видео: Code_Swarm для Haiku


Code_Swarm for Haiku OS from Fredrik Holmqvist on Vimeo.

Сегодня я получил email от Фредрика Холмквиста (TQH из Bezilla) о видео, недавно им сделанном и выложенном на Vimeo. Это видео сделано с помощью Code_Swarm, технологии, позволяющий отобразить активность в репозитории. Видео сгенерированно из сообщений Haiku subversion, и показывает переод начиная с переноса Haiku на Subversion до 26538 ревизии. Его можно посмотреть тут; рекомендуется смотреть HD версию на полном экране. Для тех кто не хочет или не может использовать Flash доступен исходник (1280x720) с Vimeo (требуется регистрация).

Спасибо, Фредрик!

2008/07/23
постоянный адрес

метки:

Субпиксельное сглаживание. Отчёт #2 [GSoC]

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

Субпиксельное сглаживание теперь может использоваться во всей векторной графике в Haiku. Это распространяется не только на геометрические фигуры, но и на преобразованный (повёрнутый, гнутый...) и хинтованный текст. Для фильтрования цвета использован метод усреднения Штефана, и пользователь может выбрать отношение субпикселей к усреднённым значениям. Если вы не поняли смысла последней фразы, смотрите это сообщение об используемом нами методе.

Далее, я хочу добавить настройки субпиксельного сглаживания в апплет Appearance (то есть снова убрать его из апплета Fonts). Я это уже частично сделал, но мой наставник Штефан считает (и я тоже считаю), что будет лучше переписать Appearance полностью, включив в него некоторые другие апплеты. Не знаю, какую часть работы он хочет дать мне, но, надеюсь, у меня хватит времени на большую её часть.

Наконец, взгляните на картинки с результатами моей работы. Слева — сглаживание оттенками серого, справа — субпиксели. Я дам пинту пива каждому, кто скажет, что видит разницу :-D

Andrej Spielmann

Спаривание! 5-я веха

img_3076.jpg

Да, ещё одна мутная и нечитаемая картинка. В камере села батарейка и лучше не получится.

Помните Марвина? На этот раз он добавлен (если видите) в список доверенных устройств моего телефона после процесса соединения, ввода пинкода и обмена ключом для шифрования (речь идёт о соединении по bluetooth - haikuos.info)

На картинке видно окошко пинкода пользователя (чтобы ввести пинкод, выданный телефоном) и другое окно, которое говорит нам, что соединение состоялось.

В этот раз я хочу поблагодарить Monni за присланные мне патчи :)

urnenfeld

Работа над ядром для 68k

Когда-нибудь я должен написать о начале работы над портом для 68k, есть о чём рассказать...
Сегодня^Wвечером^Wутром эээ, хм, хорошо, сейчас я попытаюсь сделать живой репортаж о том, на чём остановился в прошлый раз: как сделать, чтобы ядро грузилось корректно.

продолжение

Новости порта 68k

Я продолжаю работать над портом для 68k, как вы, наверное, уже знаете, все компилируется, но ядро всё ещё во многом не готово, нет драйверов, загрузчик пока не грузит.
Почти закончил установку, по крайней мере для эмулятора 040 ARAnyM.

прозрачная трансляция

Я провёл довольно много времени, пытаясь исправить ошибку, которая уходила корнями далеко вглубь ARAnyM. Управление памятью в 68030 и более поздних системах (кроме 68851, с которым идёт 020), используют функциональность, называемую прозрачной трансляцией. В сущности, это два регистра, которые называются TT0 и TT1 (на 040 на пространство данных и пространство инструкций), каждый из которых устанавливает в виртуальном пространстае окно в 16 мб, которое обходит трансляцию блока управления памятью. Для простоты я использовал их в загрузчике, чтобы соотнести первые 32 мб (включающие медленную память, ROM и начало быстрой памяти) один-в-один с виртуальным пространством, чтобы физические адреса страниц в дереве трансляции могли быть использованы как виртуальные при поиске.

продолжение

RMLL 2008, окончание

Был слегка занят эти дни, но я не забыл написать о последних днях на RMLL... много людей, встреч, и о Ричарде Мэтью Столмене, конечно!

Четверг

Четверг начался довольно быстро, с доклада о «продажах в нагрузку» (когда человека заставляют покупать машину с ОС, которая ему не нужна), что во Франции вообще незаконно, но государственный организм по защите прав потребителей (DGCCRF) сначала ожидает решения суда, и только потом действует. Как было сказано в докладе, до недавнего времени борьба с этим велась в частном порядке, но многие пользователи Windows, ранее не понимавших цели такой борьбы, сейчас говорят, как это здорово, ведь их принуждают покупать с компьютерами Висту, хотя они хотят оставаться с XP… Забавно, как Microsoft иногда имеет сама себя. Я напомнил всем, что это - давняя история, и несколько лет назад это привело к разорению Be. Мы должны наконец добиться тут каких-нибудь результатов.

Когда я увидел, что Оливье справляется со стендом в одиночку, то побежал на заседание OpenMoko, чтобы узнать побольше про их железо. Там был перерыв и я вернулся к нашему стенду.

Оливье сделал несколько фото стенда, и если вы присмотритесь, то заметите, что я вырезал несколько листьев и наклеил их на ткань.

Стенд рядом с нами принадлежал FFII, которая пытается защищать Свободное ПО от дурацких законов типа EUCD, патентов на ПО и т.п. Если хотите, адвокаты нас всех. Мы здорово побеседовали с их бухгалтером о том, какую только ерунду не пытаются лоббировать.

Потом я пошёл слушать доклад об OpenMoko, который переместился в амфитеатр. Аппаратная платформа новой модели, FreeRunner, наверняка заинтересует того, кто захочет портировать Haiku на ARM. Кроме того, у них до сих пор неразбериха с Линуксовыми фреймворками, они переезжают с одного на другой, а потом в игру включается третий, у каждого свои особенности, и это смущает пользователей. Один позволяет совершать голосовые звонки, другой — ещё и использовать GPS, а изначальный не обладал даже достаточным уровнем аппаратных абстракций, из-за чего пришлось взяться за ещё один фреймворк. Публике была поведана их история и то, как они друг с другом связаны. Хотелось бы иметь 320€ на такую игрушку.

Затем я вернулся к своему стенду, пообщался и пообедал. Потом Оливье вышел за едой, так как ничего не заказал заранее, и чтобы скопировать флаеров, так как мне удалось напечатать всего три. Я также предпринял попытку перевода, но не сумел найти исходник, так что результат был далёк от оригинала и не так приятно выглядел.

Во второй половине дня я выскочил послушать какой-нибудь доклад, и постоял под тентом, что было более терпимо, чем в первый день, так как весь вечер шёл дождь.

Тем не менее, я послушал вторую часть конференции о новых вещах в 2.6, надеясь найти что-нибудь для дополнения своего доклада, и мне это и вправду удалось. Примерно трёх часов мне оказалось более чем достаточно :) Кроме вытесняющей многозадачности и безтаймерности (tickless), в 2.6 есть многое другое из того, что если и не было позаимствовано, то хотя бы близко к тому, что делала BeOS или к тому, что в BeOS не было, но будет добавлено в Haiku.

Было много других докладов, на которые, у меня, к сожалению, не хватило времени, например, доклад по удобству использования Янины Сайки, которая, как мне рассказали, здорово умеет доносить до людей свои мысли.

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

Около часу ночи я закончил работу со своими слайдами и пошёл спать.

Пятница

На следующий день я прослушал пару докладов о французском проекте OOoEdu, который призван помочь преподавателям обмениваться образовательными материалами, используя открытые форматы, а студенты-наставники пусть исправляют ошибки в OpenOffice, вместо того, чтобы упражняться в решении далёких от реальности задач. Я прослушал всё до самого конца. Я также побеседовал с докладчиком, который, как оказалось, портирует OpenOffice на MacOS, и мы будем держать связь по поводу предстоящего портирования на Haiku.

В полдень состоялась тусовка по обмену PGP-ключами. Немногочисленно, зато весело.

Слегка перекусив и поприсутствовав на стенде, чтобы Оливеру было не так одиноко, я пошёл слушать доклад «Webkit против Mozilla», который превратился в перепалку, когда один сказал: «В отличие от Mozilla, Webkit умеет то-то и то-то», а другой ответил: «да ну, Mozilla это тоже умеет» :) Хоть и интересно, но я ушёл помогать на стенде и готовиться к собственному докладу. Всё равно в течение недели у меня было время поговорить с разработчиками и Webkit, и Mozilla.

Наконец подошло время начала моего доклада. Что-то случилось с проектором, я несколько раз пытался заставить его работать, трахался с
драйверами для Haiku и Zeta, а оказалось, что это кабель под своим весом выскакивал из плохого разъёма. Мне пришлось переключиться в режим VESA, но в конце концов всё заработало. Посколько в комнату набилось достаточно много народу, а я не был уверен в публике, я потратил больше времени на общее введение, чем на схожесть с Линуксом, о которой я хотел поговорить, но мне удалось рассказать о большинстве их за отведённое время. В конце я перезагрузился в Ubuntu и показал нескольким людям, как ARAnyM запускает загрузчик m68k.

Потом мы поехали в то место, где Nocturnes устроил прекрасный буфет с местными блюдами и напитками. Я опять побеседовал об OpenOffice, на этот раз с главой франкоговорящего проекта. Мы обменялись взглядами на философии, а она рассказала мне о нынешнем направлении в разработке OO, уменьшающем его сложность и делающем его более модульным, что позволит школам получить более лёгкие версии, а я объяснил, что Haiku с его стремлением к простоте, больше подойдёт для этих целей.

Также в саду у меня взяли интервью насчёт Haiku, встреч с людьми и сообществ, я всё ещё жду, когда оно где-нибудь появится. С другой стороны, вот снятое FreenewsTV в первый день видео, где они ходят по всем стендам, начиная с нашего. Но Оливье на нём нет, потому что он к тому времени ещё не пришёл.

Затем мы увидели то, чего нам так не хватало всю неделю, потому что у нас не было времени посетить Nocturnes. Гики со своими лаптопами на столах, диванах, газонах, высматривающие свой город на OpenStreetMap, пытающиеся использовать на своих макбуках DVD с OpenSolaris при смещённой раскладке клавиатуры: z вместо a, e вместо z, r вместо e, и так далее, а клавиша enter оказалась вообще вне физической досягаемости. В то же время проходил концерт Свободной Музыки. Мы посидели на газоне с группой людей и побеседовали о BeOS, Haiku и истории.

Потом вернулись обратно в комнату и опять немного поспали.

Суббота

В субботу у нас было замечательное выступление Ричарда Столлмена по поводу GPLv3 на беглом французском, а потом его тайная ипостась, святой Игнуций из Церкви Emacs'а, всех нас благословила. Я подошёл, взял микрофон и попросил нас простить за то, что мы не называемся «GNU/Haiku», хотя используем в Haiku инструменты GNU. Он сказал, что грех можно искупить сменой имени. Что я думаю по поводу этого, так это то, что оно не так важно, как в случае с Линуксом, потому что Линукс — это всего лишь ядро, которому необходимы инструменты GNU для формирования цельной ОС, тогда как Haiku сама по себе является полноценной ОС, которая использует не только инструменты GNU, но и другие.

Поскольку я не хотел это так оставлять, я позже подошёл на его стенд с флаером Haiku, на котором зачеркнул «OpenSource», чтобы написать FreeSoftware и GNU/Haiku. Я рассказал о доступном для скачивания образе, но он сказал, что вряд ли у него будет время, так как он очень занят. Однако он нашёл немного времени, чтобы поговорить со мной, и сказал, что термин «OpenSource» не является некорректным, так как это технический термин, в то время как FreeSoftware — вопрос скорее морального выбора, так что оба варианта применимы. Потом я поговорил о лицензии, на этот раз по-английски, и он посоветовал нам быть более точными в лицензии, как он сказал, «У MIT есть пять или шесть лицензий, и у BSD тоже имеется несколько версий», я посмотрю их попозже. Во всяком случае, теперь он знает про Haiku, и это здорово.

После скорого обеда мне пришлось собираться, так как моя машина скоро отправлялась. Ещё оставались интересные доклады, но мне пришлось покинуть Оливье.

В итоге мы увидели много интересного и интересных людей, как разработчиков, так и будущих пользователей. Многие были наслышаны о BeOS, но они ничего не знали о нас, поддерживающих дыхание. Было приятно увидеть в одном месте и разработчиков, и пользователей, собирать контакты и планировать мировое господство.

mmu_man

Haiku примет участие в LinuxWorld 2008 в Сан-Франциско

В феврале 2007 года Haiku приняла участие в SCaLE 05, впервые появившись на open source конференциях. С тех пор Haiku многократно появлялась на других конференциях по всему миру. Одной из самых желаемых площадок, куда мы стремились попасть, был LinuxWorld Expo; к сожалению, ни в прошлом, ни в этом году, мы не смогли занять место в павильоне .Org. К счастью, на этот раз всё будет по-другому. Благодаря некоторому упорству, находчивости и доброй воле IDG World Expo (организаторов LinuxWorld) и проекта ReactOS (с которыми мы делим стенд), мы с радостью сообщаем, что смогли получить выставочный стенд на LinuxWorld Expo 2008, которая пройдёт в следующем месяце в San Francisco Moscone Center.

Мы забронировали полноразмерный 10x10 стенд (место #1617), и планируем показать Haiku в всей красе на выставке, которая состоится, 5, 6 и 7 августа. Мы хотим показать Haiku на двух или более PC, один из которых подцепим к проектору, чтобы показывать картинку на заднике стенда (примерно так). Будем также раздавать CD с образом для VMWare и продавать майки с Haiku (если разрешат) в пользу казны проекта.

LinuxWorld посещает более 10,000 человек. Это во много раз больше, чем ходило на подобные конференции раньше. В выставке участвуют такие зубры, как IBM, ORACLE, ACCESS, CISCO, Fujitsu и Canonical, наряду с общеизвестными open source проектами, вроде Fedora, Drupal, FreeBSD и Gentoo. Конечно, выставка будет освещаться в прессе, поэтому возможность засветиться также будет. В общем, LinuxWorld предлагает хорошую возможность показать себя с самой лучшей стороны, что не может не радовать.

Если вы хотите помочь нам с развёртыванием стенда, сввяжитесь, пожалуйста, с Urias McCullough, чтобы он смог сделать вам беджик участника.

Добавление: Если вы планируете посетить LinuxWorld, используйте Haiku priority code "VPL56", чтобы получить бесплатный билет на выставку (обычная цена $50), доступа в секции BoF, 20% скидок с программ конференций и т.д. Подробности можно узнать на флаерсе (850KB PDF).

Схема стенда

LinuxWorld 2008 Overview

Где: Moscone Center, Сан-Франциско
Конференция: 4, 5, 6 и 7 августа
Выставка: 5, 6 и 7 августа
Стенд Haiku: #1617 — схема (4MB PDF)
Регистрация онлайн (Используйте код "VPL56" для 20% скидки или БЕСПЛАТНОГО прохода в выставочный зал)
Брошюра LinuxWorld 2008

Разместить всё, Часть 1

Необходимость в системе автоматического расположения элементов на странице

Одним из главных недостатков Be API, на который жаловались серьёзные программисты, была зависимость от размера шрифтов. То есть вы могли сделать GUI для одних системных шрифтов по умолчанию, а затем пользователь мог бы поставить другой, больший или меньший шрифт и всё катастрофически разъежжалось (особенно, если шрифт был больше). Всё, что было выравнено раньше, переставало таковым быть, текстовые надписи наползали на элементы или вообще пропадали за краем окна. Это было особенно заметно для окон с жёстко заданным размером, вроде диалогов и панелей конфигураций:

Кроме чувствительности к размеру шрифта было сложно сделать GUI с точным расположением и размером каждого компонента. Требовалось добавлять новые элементы или двигать их более сложным, неочевидным образом.

Для решения этой проблемы применяют layout manager — менеджер разметки. Он размещает элементы, руководствуясь такими критериями, как минимальный, желаемый и максимальный размер каждого элемента. Если пользователь изменяет размер окна или шрифта, он элегантно переместит и увеличит/уменьшит те элементы, за которые он отвечает.

Как мы уже сказали в первом абзаце, в BeOS никогда не было встроенного менеджера разметки. Некоторые разработчики пытались это исправить, например Marco Nelissen со своей орденоносной liblayout, Brian Tietz с его Santa's Gift Bag library и Angry Red Planet с ARPCommon library. Все эти библиотеки достигали одного и того же, но разными способами. "Портирование" приложения из одной системы в другую было делом непростым.

К нашей радости, Ingo Weinhold пришёл к нам на помощь, выложив свою систему размещения элементов в дерево Haiku в августе 2006. С тех пор она была немного изменена, но до сих пор не очень используется. Я говорю об этом, потому что не многие о ней вообще знают. Инго человек занятой, поэтому я и пишу эту статью, чтобы познакомить вас с этой системой.

Первая статья опишет систему на верхнем уровне, а в следующих статьях я затрону их более детально.

Прежде всего, Инго нисколько не скрывает, что его система была сделана на основе QLayout и библиотеки Qt. Может быть, будет полезно прочитать и о них тоже, хотя я расскажу всё, что вам нужно знать о классах в Haiku.

Типы менеджеров разметки

Начну с описания типов менеджеров, которые сейчас присутствуют в Haiku и о том, как они работают:

  • BCardLayout: содержит views-виды и работает как колода карт — один элемент сверху, остальные под ним. Виден только верхний элемент, остальные не видны. Полезен для реализации интерфейса на закладках (табах), чтобы показать несколько элементов в одном окне или для окон с несколькими секциями (как в BeIDE или Firefox).
  • BGridLayout: всё views располагаются на сетке, каждый вид занимает одинаковое пространство (хотя может занимать несколько ячеек/колонок). Полезен, например, для приложения, показывающего превьюхи картинок.
  • BGroupLayout: содержит элементы, выравненные горизонтально или вертикально, в зависимости от желаемой ориентации. Комбинация (несколько горизонтальных BGroupLayout-ов внутри вертикального BGroupLayout-а) - самая гибкий и удобный способ расположения элементов. Я думаю очень многие приложения будут использовать этот класс.
  • BSplitLayout: работает почти как BGroupLayout, с той разницей, размер вида резиновый. Кроме того такой вид может быть уменьшен до нулевого размера и не показываться вообще. Этот класс не может использоваться напрямую, а только через класс BSplitView.
  • BALMLayout: новенький в нашем посёлке, был добавлен в феврале 2008 года из кода, созданного Christof Lutteroth'a и James Kim'a. ALM - сокращение от Auckland Layout Model, нового способа, придуманного Кристофом в Университете Окленда. Подробнее о нём можно прочитать на его странице на SourceForge. Думаю, я коснусь подробностей о том, как он работает, позже, может даже в отдельной статье. Впрочем, по ссылке вы можете ознакомиться с его концепцией самостоятельно.

Как построить GUI с использованием разметок

Чтобы построить GUI для Haiku с использованием системы разметок, вам надо понять, какой именно менеджер надо использовать. Для существующего GUI это скорее всего будет очевидно из того, что вы видите на экране, для нового интерфейса, возможно, было бы полезным его нарисовать, хотя это всегда полезно сделать.

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

Для примера можно было бы придумать простой произвольный GUI, но, думаю, интереснее было бы взять существующий интерфейс из Haiku, который чувствителен к размеру шрифта. На первом рисунке у нас была панель настройки e-mail клиента, но он довольно сложный, давайте возьмём что-нибудь попроще. Например, midi плеер.


Вид MIDI плеера со шрифтом по умолчаниию (размер 12) и размером 18. Даже первая версия могла бы выиграть при использовании системы разметок.

Итак, что нам понадобится? Для начала я вижу четыре секции по вертикали:

  1. Панель "Drop MIDI file here"
  2. Лейблы и селектов посередине
  3. Разделитель
  4. Кнопку Play

Это значит, что сверху у нас будет вертикальный BGroupLayout. Группа лейблов и селектов должна расположиться на сетке, для чего будет использован BGridLayout. Но прежде чем я покажу новый код для работы с разметчиком, давайте посмотрим изначальный код. Он лежит в MidiPlayerWindow.cpp в методе CreateViews(). Он использует несколько макросов. Код с номерами строк из r26407:


32 #define _W(a) (a->Frame().Width())
33 #define _H(a) (a->Frame().Height())

...

240 void MidiPlayerWindow::CreateViews()
241 {
242 scopeView = new ScopeView;
243
244 showScope = new BCheckBox(
245 BRect(0, 0, 1, 1), "showScope", "Scope",
246 new BMessage(MSG_SHOW_SCOPE), B_FOLLOW_LEFT);
247
248 showScope->SetValue(B_CONTROL_ON);
249 showScope->ResizeToPreferred();
250
251 CreateInputMenu();
252 CreateReverbMenu();
253
254 volumeSlider = new BSlider(
255 BRect(0, 0, 1, 1), "volumeSlider", NULL, NULL,
256 0, 100, B_TRIANGLE_THUMB);
257
258 rgb_color col = { 152, 152, 255 };
259 volumeSlider->UseFillColor(true, &col);
260 volumeSlider->SetModificationMessage(new BMessage(MSG_VOLUME));
261 volumeSlider->ResizeToPreferred();
262 volumeSlider->ResizeTo(_W(scopeView) - 42, _H(volumeSlider));
263
264 playButton = new BButton(
265 BRect(0, 1, 80, 1), "playButton", "Play", new BMessage(MSG_PLAY_STOP),
266 B_FOLLOW_RIGHT);
267
268 //playButton->MakeDefault(true);
269 playButton->ResizeToPreferred();
270 playButton->SetEnabled(false);
271
272 BBox* background = new BBox(
273 BRect(0, 0, 1, 1), B_EMPTY_STRING, B_FOLLOW_ALL_SIDES,
274 B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP,
275 B_PLAIN_BORDER);
276
277 BBox* divider = new BBox(
278 BRect(0, 0, 1, 1), B_EMPTY_STRING, B_FOLLOW_ALL_SIDES,
279 B_WILL_DRAW | B_FRAME_EVENTS, B_FANCY_BORDER);
280
281 divider->ResizeTo(_W(scopeView), 1);
282
283 BStringView* volumeLabel = new BStringView(
284 BRect(0, 0, 1, 1), NULL, "Volume:");
285
286 volumeLabel->ResizeToPreferred();
287
288 float width = 8 + _W(scopeView) + 8;
289
290 float height =
291 8 + _H(scopeView)
292 + 8 + _H(showScope)
293 + 4 + _H(inputMenu)
294 + _H(reverbMenu)
295 + 2 + _H(volumeSlider)
296 + 10 + _H(divider)
297 + 6 + _H(playButton)
298 + 16;
299
300 ResizeTo(width, height);
301
302 AddChild(background);
303 background->ResizeTo(width, height);
304 background->AddChild(scopeView);
305 background->AddChild(showScope);
306 background->AddChild(reverbMenu);
307 background->AddChild(inputMenu);
308 background->AddChild(volumeLabel);
309 background->AddChild(volumeSlider);
310 background->AddChild(divider);
311 background->AddChild(playButton);
312
313 float y = 8;
314 scopeView->MoveTo(8, y);
315
316 y += _H(scopeView) + 8;
317 showScope->MoveTo(8 + 55, y);
318
319 y += _H(showScope) + 4;
320 inputMenu->MoveTo(8, y);
321
322 y += _H(inputMenu);
323 reverbMenu->MoveTo(8, y);
324
325 y += _H(reverbMenu) + 2;
326 volumeLabel->MoveTo(8, y);
327 volumeSlider->MoveTo(8 + 49, y);
328
329 y += _H(volumeSlider) + 10;
330 divider->MoveTo(8, y);
331
332 y += _H(divider) + 6;
333 playButton->MoveTo((width - _W(playButton)) / 2, y);
334 }

Я не стану вдаваться в подробности, просто хочу обратить внимание на вручную заданные координаты и о том, сколько времени отняло расположение элементов. Другим побочным эффктом использования систем автоматичского расположения является более читый код, думаю, следующий ниже пример наглядно покажет это. Вот метод CreateViews(), переписанный для системы разметчиков:


246 void MidiPlayerWindow::CreateViews()
247 {
248 // Set up needed views
249 scopeView = new ScopeView;
250
251 showScope = new BCheckBox(
252 BRect(0, 0, 1, 1), "showScope", "Scope",
253 new BMessage(MSG_SHOW_SCOPE), B_FOLLOW_LEFT);
254 showScope->SetValue(B_CONTROL_ON);
255
256 CreateInputMenu();
257 CreateReverbMenu();
258
259 volumeSlider = new BSlider(
260 BRect(0, 0, 1, 1), "volumeSlider", NULL, NULL,
261 0, 100, B_TRIANGLE_THUMB);
262 rgb_color col = { 152, 152, 255 };
263 volumeSlider->UseFillColor(true, &col);
264 volumeSlider->SetModificationMessage(new BMessage(MSG_VOLUME));
265
266 playButton = new BButton(
267 BRect(0, 1, 80, 1), "playButton", "Play", new BMessage(MSG_PLAY_STOP),
268 B_FOLLOW_RIGHT);
269 playButton->SetEnabled(false);
270
271 BBox* divider = new BBox(
272 BRect(0, 0, 1, 1), B_EMPTY_STRING, B_FOLLOW_ALL_SIDES,
273 B_WILL_DRAW | B_FRAME_EVENTS, B_FANCY_BORDER);
274 divider->SetExplicitMaxSize(
275 BSize(B_SIZE_UNLIMITED, 1));
276
277 BStringView* volumeLabel = new BStringView(
278 BRect(0, 0, 1, 1), NULL, "Volume:");
279 volumeLabel->SetAlignment(B_ALIGN_LEFT);
280 volumeLabel->SetExplicitMaxSize(
281 BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET));
282
283 // Build the layout
284 SetLayout(new BGroupLayout(B_HORIZONTAL));
285
286 AddChild(BGroupLayoutBuilder(B_VERTICAL, 10)
287 .Add(scopeView)
288 .Add(BGridLayoutBuilder(10, 10)
289 .Add(BSpaceLayoutItem::CreateGlue(), 0, 0)
290 .Add(showScope, 1, 0)
291
292 .Add(reverbMenu->CreateLabelLayoutItem(), 0, 1)
293 .Add(reverbMenu->CreateMenuBarLayoutItem(), 1, 1)
294
295 .Add(inputMenu->CreateLabelLayoutItem(), 0, 2)
296 .Add(inputMenu->CreateMenuBarLayoutItem(), 1, 2)
297
298 .Add(volumeLabel, 0, 3)
299 .Add(volumeSlider, 1, 3)
300 )
301 .AddGlue()
302 .Add(divider)
303 .AddGlue()
304 .Add(playButton)
305 .AddGlue()
306 .SetInsets(5, 5, 5, 5)
307 );
308 }

Единственным значительным изменением в первой части метода, где создаются виды, стало удаление их ручного размещения, вроде playButton->ResizeToPreferred(); в строке 269. Мы добавили насколько подсказок, чтобы система поняла, как следует расположить элементы наилучшим образом. Например, неограниченная ширина и высота не более 1 назначена разделителю BBox, поэтому он всегда будет выглядеть как разделитель. В дополнение к нему, volumeLabel выравнен по левому краю и занимает всё доступное место. Он выравнен вместе с лейблами BMenuFields над ним.

Перейдём к «мясу», которое начинается у нас с 284 строки. Начнём с базовой разметки. Я решил начать с «пустой» горизонтальной группы, чтобы потом использовать вертикальное построение, которое мне на самом деле нужно. Возможно, это особенность системы, что менеджер должен быть установлен внутри окна, прежде чем вы сможете добавлять в него элементы. Я бы, возможно, предпочёл создать вертикальную группу вне сборщика и сделать её корневой разметкой, но, не думаю что код выглядел бы при этом красиво.

Если говорить о сборщиках, они созданы как раз для таких случаев, как у нас, когда каждый метод возвращает экземпляр сборщика, позволяющего создавать практически неограниченную сеть методов. С использованием правильных отступов, они выглядят красиво и показывают структуру GUI. За что я их и люблю. Итак у нас есть GridLayoutBuilder, GroupLayoutBuilder и SplitLayoutBuilder.


Новый интерфейс MIDI при шрифтах 12-го и 18-го размера.

В строке 286 мы добавили вызов AddChild() с вызовами разметчиков внутри него. Первый аргумент для BGroupLayoutBuilder — это ориентация группы, а второй - расстояние между элементами. Оно необходимо, чтобы прорядить элементы, иначе они слипнутся. Поскольку у нас есть главная группа, мы можем добавлять в неё элементы методом Add(), и для начала добавим чекбокс scope. Потом мы хотим в середине поместить сетку, поэтому вызовем её сборщик. Для BGridLayoutBuilder аргументами будут расстояния между элементами, на этот раз по горизонтали и по вертикали.

В строке 289 мы размещаем элементы на сетке, используя glue (клей). Что такое клей? Это то, что заполняет пространство, чтобы наши элементы были выравнены правильно. В нашем случае чекбокс showScope должен быть выравнен с меню, которые под ним. Ещё клей используется в главной вертикальной группе, чтобы склеить сетку, разделитель, кнопку play и низ окна. Наше окно полуается красивым и похожим на исходное.

Другими аргументами в методе Add() для BGridLayoutBuilder будут номер строки и колонки, в которых мы хотим увидеть данный элемент. Мы хотим, чтобы клей был в 0 строке 0 колонки, чекбокс showScope в 0 строке и 1 колонке, лейбл reverb в 0 колонке и 1 строке и т.д.. Что касается пункта reverb в меню, то мы видим, что специальные методы BMenuField создают два разных элемента для одного вида. Это интересный аспект, говорящий нам о том, что виды состоящие из разных компонентов,могут на самом деле иметь разные секции, которые разметчиком управляются индивидуально. Другим примером такого подхода может служить ActivityMonitor, который использует эту технику, чтобы показать активность и легенду.

Напоследок вызывается метод SetInsets(), который нужен, чтобы поместить поля вокруг нашего интерфесйса, слева, сверху, справа и снизу. Пять пикселей вполне сойдёт для полей. Я мог бы использовать и 8, как в оригинале, но и 5 вполне хватит.

Нужно сделать ещё несколько изменений в коде, чтобы получить GUI, как на картинке. Во-первыха добавим заголовки. Во-вторых в конструктор окна MidiPlayer надо добавить B_AUTO_UPDATE_SIZE_LIMITS, чтобы он автоматически изменял размер с помощью системы разметки:

41 MidiPlayerWindow::MidiPlayerWindow()
42 : BWindow(BRect(0, 0, 1, 1), "MidiPlayer", B_TITLED_WINDOW,
43 B_ASYNCHRONOUS_CONTROLS | B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS)

В третьих, методы, которые использовались для построяения меню, следует изменить на более дружественный конструктор. Также следует удалить код ручной разметки. Для примера, код CreateReverbMenu() меняется с такого:

230 reverbMenu = new BMenuField(
231 BRect(0, 0, 128, 17), "reverbMenu", "Reverb:", reverbPopUp,
232 B_FOLLOW_LEFT | B_FOLLOW_TOP);
233
234 reverbMenu->SetDivider(55);
235 reverbMenu->ResizeToPreferred();

на такой:

235 reverbMenu = new BMenuField("Reverb:", reverbPopUp, NULL);

Тоже самое сделаем с методом CreateInputMenu().

И, наконец, расширим конструктор ScopeView, чтобы в него влезал 18й шрифт. Это «дешёвый» способ, но он прекрасно работает. «Правильным» способом было бы добавление методов, которые сообщили бы разметчику минимальный, максимальный и желаемый размер этого элемента. В этой статье я не хочу на этом останавливаться, но, может, расскажу об этом позже.

Новый код MIDI плеера можно найти в репозитории Haiku в src/apps/midiplayer. Старый код можно найти там же, до ревизии 26408, когда я послал эти изменения.

Заключение

Если хотите найти идеи или советы о том, как использовать систему разметки, пока не будет написана исчерпывающая документация, посмотрите на тестовую программу Инго, которая называется LayoutTest1. Исходник её лежит в tests/kits/interface/layout/LayoutTest1.cpp и она может быть использована в Haiku добавлением вот такой строки в файл UserBuildConfig:

AddFilesToHaikuImage home config bin : LayoutTest1 ;

она может быть выполнена из треккера в /boot/home/config/bin или из терминала. Там также есть примеры построения GUI с использованием сборщиков и без, в зависимости от надобности.

Код всех классов разметчика лежит в Haiku Interface Kit, так что если вас он заинтересовал, смотрите заголовки Interface Kit-а в headers/os/interface и реализацию в src/kits/interface and src/kits/interface/layouter.

Предупреждение: поскольку эти классы новые и не тестировались с API, они считаются private API и должны использоваться только внутри Haiku, для встроенных приложений и панелей настройки. Это делается потому, что API может меняться, и может нарушить работу программ других людей (внутренние программы мы можем поправить сами). Поэтому, имейте ввиду: используя сейчас классы разметчика, у вас есть риск того, что в будущем код перестанет работать.

Ryan Leavengood

Субпиксельное сглаживание. Отчёт #1 [GSoC]

Прошёл почти месяц с начала GSoC и настало время подвести итоги. Месяц выдался нелёгким. Я разрывался между Haiku и экзаменами. Должен признаться, что учёба отняла больше времени, чем Haiku :-) Несмотря на это, я сделал кое-что и счастлив представить первые плоды своей работы!

Благодаря большой ясности исходников app server'а и AGG, я быстро в них освоился и начал делать добавления. Я решил начать с добавления сглаживания для неизменённого текста. Сюда входят почти все тексты, которые обычно встречаются в системе, текстовых редакторах и при путешествиях в интернет. Внутренняя часть технологии уже завершена и сейчас почти уже можно сгладить все шрифты в системе. Первая картинка показывает текст с текущим сглаживанием Haiku с использованием серых тонов, а вторая показывает (почти) тот же экран с использованием субпиксельного сглаживания (кликните, чтобы увидеть полную версию и убедитесь, что картинка показывается целиком, без масштабирования).

Разница в обычном тексте не очень заметна, но, думаю, видно значительное улучшение в правом верхнем окне, где полужирный шрифт, и в нижнем левом окне, где декоративный шрифт (Lucida Calligraphy).
Рекомендую использовать программу-лупу, чтобы изучить отдельные пиксели символов :-).

Опишу вкратце технические подробности
Текст в Haiku отображается с использованием открытой библиотеки Freetype, которая делает картинку, соответствующую данному символу. Теперь эти картинки делаются в три раза шире, и каждая точка соответствует одному субпикселу

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

Это всё потому, что Haiku использует шрифты со строгими очертаниями, то есть прибитые к пиксельной сетке, что является их характерной чертой (как, например, ножки у m). В итоге это приводит к тому, что почти каждая вертикальная линия (в большинстве шрифтов) даёт в точности один или два целых пикселя ширины, занимая ровно один или два пикселя. Такие линии, очевидно, не нуждаются ни в какой цветовой фильтрации, которое сделает их только мутным.

Моя реализация цветовой фильтрации игнорирует такие вертикальные линии и поэтому символы получаются чёткими и ясными. Оригинальная цветовая фильтрация во Freetype этого не делает, также, как не делает этого и ClearType в Windows XP. Выходит, что Haiku, с этой точки зрения, делает лучший текст, чем то, что считается стандартом на сегодняшний день!

Думаю (и мой наставник Стефан, наверное, тоже), что наиболее полезным было бы сделать фронт-энд для субпиксельного сглаживания, что позволит добавить некоторые возможности в существующие настройки. Когда это будет сделано, субпиксельное сглаживание для непреобразованных шрифтов станет доступным всем и я займусь его реализацией для векторной графики в целом.

Ещё я хочу изучить возможность использования для нестрогих шрифтов, что, на мой взгляд, покажет все преимущества использования субпикселей.

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

andrej spielmann

HCD [bfs]: Отчёт #1

Прошёл почти месяц с начала самого первого Haiku Code Drive!

Сначала позвольте поблагодарить всех, кто за меня голосовал. Результаты выборов стали для меня большим сюрпризом.

А теперь немного о моём проекте.

Как вам известно, я буду проверять стабильность файловой системы bfs. Чтобы это сделать, надо для начала реализовать семафоры XSI Posix, а затем собрать bonnie++, которая оценивает производительность файловых систем. Если честно, семафоры XSI Posix на самом деле необязательны, быстрее было бы просто портировать bonnie++ в Haiku, сделав совсем немного изменений (захват ресурсов). Однако, в дальней перспективе, Haiku только выиграет, если я эти семафоры реализую, так как она станет более Posix-совместимой.

Проще всего было сделать ту часть, которая работает в пространстве пользователя, сейчас я занимаюсь ядром. Также я создал тему в списке рассылки gsoc, за которой вы можете следить по этой ссылке.

И хотя я не закончил работу, я уже сделал кое-какие тесты без bonnie++ и нашёл первый баг. Смотрите тикет #2400.

Тесты очень просты, но очень прожорливы, особенно на имеющемся железе (кстати, если кто хочет погонять тесты на настоящих или более быстрых машинах, пожалуйста, свяжитесь со мной).

Сначала я заархивировал в tarball исходники haiku под linux, положил их на usb диск, запустил vmware, и попытался распаковать 500MB архив (1.5 GB распакованный) из под Haiku. Ага... "Желаю удачи! :)"

То, что я сначала принял за баг bfs, стало багом vfs, хотя дискуссия в рассылке gsoc продолжается.

Несмотря на то, что баг не подтвердился, я пытаюсь его исправить, вместе с тем заканчивая реализацию семафоров xsi.

На этом пока всё.

emitrax

Таймеры (GSoC) Отчёт #1

Краткое сообщение о положении вещей с поддержкой HPET в Haiku.

До сих пор мне в целом удаётся разбивать все таймеры x86 на отдельные (но до сих пор статически прилинкованные к ядру) модули, и использовать их, согласно приоритету.

В настоящий момент загрузка на моей системе невозможна (так как qemu работает на ISA таймере).

Что предстоит сделать вкратце (безо всякого порядка):

  • Разобраться какая архитектура какой таймер поддерживает
  • Перенести в модули таймеры других архитектур (с низшим приоритетом, поскольку прочие архитектуры, думаю, целиком не поддерживаются)
  • Вынести код приоритета и инициализации в общую секцию из x86 (будет сделано, как только будет сделан перенос на другие архитектуры)
  • Сделать поддержку HPET (сейчас выключена, но есть её модуль)
  • Сделать system_time()
  • Исправить проблемы с загрузкой и т.д.

    Dustin Howett

  • Haiku Code Drive 2008 поддержит четырёх студентов

    Официально: Благодаря невиданной щедрости нашего сообщества, и небольшой помощи от Google Haiku Code Drive 2008 оплатит работу четырёх студентов, увеличив общее число студентов, пишущих этим летом для для Haiku до девяти. Это на одного студента больше, чем те восемь человек, оплаченные только в рамках GSoC год назад! Ниже представлен список студентов и проектов, в порядке значимости, обозначенном сообществом во время голосования:

  • Salvatore Benedetto: тестирование под нагрузкой BFS, портирование UDF под новый FS Haiku API
  • Jovan Ivankovic: порт CUPS
  • Yin Qiu: обработка ошибок ICMP
  • JiSheng Zhang: DV media node

    Отклик от сообщества на наш призыв к финансированию этой программы был невероятным. За две недели мы получили 120 перечислений из 24 стран (Автралии, Австрии, Бельгии, Бразилии, Канады, Чешской республики, Дании, Финляндии, Франции, Германии, Венгрии, Индонезии, Ирландии, Италии, Литвы, Нидерландов, Новой Зеландии, Польши, России, Словакии, Швеции, Швейцарии, Соединённого Королевства и США), на сумму примерно $7,500. Отзывчивость, щедрость и степень участия сообщества в Haiku Code Drive были беспрецедентными в истории нашего проекта, и, надеемся, принесут весомые плоды в ближайшем будущем.

    Haiku Code Drive 2008 оплатит каждому студенту $2,500 за выполненный проект. Поэтому, чтобы оплатить все четыре проекта, поверх пожертвований сообщества, мы добавим ещё $2,500, которые мы должны получить от Google за наше участие в GSoC этого года. Мы считаем, что это будет лучшим вложением этих средств, поскольку они принесут нам как новый код, так и новое поколение разработчиков Haiku.

    В заключение позвольте позвольте от вашего имени тоже поздравить выбранных студентов, а также пообещать им ту помощь и поддержку, которая им, возможно, понадобится. Мы хотим, чтобы они стали членами сообщества Haiku надолго. ;)

  • Устойчивое движение к первому альфа-релизу

    В эти выходные проект Haiku сделал несколько больших скачков вперёд. Два из них отметим особо: Инго Вейнхольд и Аксель Дёрфлер прибили, наконец, баг 2059. Эта ошибка препятствовала использованию Haiku в качестве чего-либо серьёзного, окроме тестирования, поскольку вызывала обрушение ядра в любой произвольный момент, особенно при активной работе с диском. И всё, что должно было быть записано на диск, после такого краха терялось безвозратно. К счастью, из-за поддержки файловой системой журналирования и логов, это не означало потерю всего раздела, но то, над чем вы работали в тот момент, терялось. С исправлением этой ошибки мы ещё приблизились к моменту полноценной самосборки системы, то есть полноценному использованию Haiku для разработки. Это и есть самая главная цель, которую мы хотим достичь перед релизом альфы R1.

    Вторым значимым достижением стало поддержка смешанной GCC4/GCC2 среды. Как стало известно некоторое время назад, благодаря исследованиям Майкла Лотца, в Хайку, собранной под GCC4 возможно запускать приложения, собранные в GCC2, и наоборот. Для этого надо установить соответствующие библиотеки в соответствующие места, чтобы приложения линковались с правильными их версиями и не путались. Чего не хватало до сих пор - так это поддержки системного загрузчика (это такой системный компонент, который запускает приложения и связывает их с нужными ему библиотеками), чтобы он делал это сам и по всей системе. Кроме того, в системе для сборки отсутствовала поддержка такой гибридной схемы. Обе эти проблемы были решены разработчиком Инго Вейнходлом. После этого Майкл Лотц обнаружил специфические проблемы со стабильностью, которые возникают при использовании определённых версий GCC4. Их можно избежать, если отключить определённые настройки оптимизации при сборке. Всё это значит, что Haiku сможет использовать более новый GCC4 для себя, при этом оставаясь совместимой с огромным парком уже существующих GCC2-приложений полностью автоматически и прозрачно.

    Перед выпуском первой альфы осталось решить ещё несколько важных проблем. Есть бреши и пустоты в инструментах для разработчиков. Например, нет полностью родного порта Subversion. Насколько мне известно, ошибки в реализации TCP мешают этому, но, когда вы это будете читать, эти проблемы скорее всего уже решат. Будет проведено формальное тестирование, чтобы убедиться, что вся цепочка работает правильно. Аксель Дёрфлер разработывает менеджер устройств, системный компонент, который будет работать со всеми драйверами и переферией. Есть проблемы с аппаратными прерываниями, которые, будучи исправленными, должны решить проблемы с некорректной работой некоторых драйверов/железа.

    В завершение, хочу сказать большое "Спасибо" всем, кто помогает отслеживать и сообщает об ошибках в наш баг треккер, всем, кто выпускает заплатки, и, конечно же, самим разработчикам! Я лично восхищён происходящими изменениями. Спасибо всем, кто помогает нам в движении к намеченной цели!

    Штефан Ассмус

    Haiku Code Drive: новости от 16 мая

    Прошло примерно 24 часа с момента запуска Haiku Code Drive 2008, поэтому пора видимо сделать краткий обзор того, что мы имеем сейчас и поделиться мыслями, основываясь на откликах, которые мы получили. Сначала я хочу сказать, что было здорово получить отклик от сообщества. Мы исследуем новые моря, поэтому была определённая степень сомнения в том, каким этот отклик будет. Вот почему мы были очень рады увидеть поток шёдрых пожертвований, которые мы получили уже в первый день. Поддержка поступает отовсюду, включая Канаду, Финляндию, Францию, Германию, Венгрию, Польшу, Россию, Швейцарию, США и многие другие страны. Мы выкладываем список жертвователей, который обновляем ежедневно.

    Вот пишу и смотрю на список пожертвований: мы уже набрали пол-суммы, нужной для оплаты трудов одного студента; сейчас это примерно $1,300.00, но изменения происходят очень быстро, не уследишь! Это совершенно прекрасно, но это только начало. Помните, это ваша программа: вы её оплачиваете, и вы выбираете кого оплачивать. Если вы ещё не сделали свой взнос, пожалуйста, пройдите на страницу пожертвований и покажите всем свою любовь к Haiku. Это ваш шанс сделать что-то совершенно другое, не упустите его! :)

    Это первый опыт с программой такого рода, и мы уверены, она станет хорошим примером на будущее. Мы уже знаем, что можно будет сделать лучше. Например, PayPal может быть недоступен для людей в некоторых странах, также это не самый экономный способ для пожертвований; надеемся, в следующем году мы предложим альтернативные способы оплаты, удобные как для жертвователей, так и с точки зрения потерь на перечислениях. Кроме того, в этом году мы специально выбрали студентов GSoC, но через год всё может быть иначе, и мы сможем сделать эту программу открытой для для большего круга участников. Возможно также, что через год мы проведём её в другое время, чтобы она не пересекалась с GSoC, чтобы уменьшить нагрузку на организаторов и наставников. Я уверен, мы найдём что улучшить и сделать Haiku Code Drive в следующем году лучше.

    Кроме наших щедрых жертвователей, мы также хотим сказать спасибо тем, кто распространяет информацию о Haiku Code Drive 2008, включая (но не ограничиваясь) Haiku News, Haikuware, и BeOS News. Если у вас есть сайт или блог и вы хотите донести до всех информацию, вот несколько советов о том, как это лучше сделать.

    Через несколько дней мы вернёмся с новостями!

    Haiku Code Drive 2008

    Программа Haiku Code Drive создана для пополнения фондов сообщества, которые, в свою очередь, будут направлены на поощрение студентов, разрабатывающих код для Haiku. Программа Haiku Code Drive 2008 прежде всего предназначена для студентов-кандидатов, подавших заявку на участе в Google Summer of Code, но так и не ставших участниками. Мы предлагаем каждому из них стипендию в U$2,500 за успешно выполненный проект.

    Суть программы

    Программа Haiku Code Drive преследедует две главных цели:

  • Дать возможность сообществу сделать пожертвования на конкретные цели
  • Дать возможность сообществу решить, куда пойдут эти пожертвования

    Программа будет осуществляться так:

  • У нас есть список из кандидатов и проектов, которые хотели быть, но не стали участниками GSoC и выразили желаение дальнейшего сотрудничества.
  • Мы просим сообщество поддержать программу, сделав пожертвования в наш общий фонд.
  • После этого мы откроем голосование, и сообщество решит, какого студента/проект они захотят поддержать.
  • Сколько и каких именно студентов мы поддержим, будет зависеть от общей суммы пожертвований и результатов голосования.
  • Выбранные кандидаты работают над проектами и получают стипендию $2.500 каждый (возможна вылпата 50% по достижении промежуточного результата).

    Предварительный календарь

    Это предварительный календарь проекта. Даты могут смещаться, по мере необходимости.
  • 15 мая: Опубликован список участников, открыты пожертвования.
  • 22 мая: Откроем голосование.
  • 29 мая: Закроем голосование.
  • 30 мая: Объявление итогов голосования.
  • 1 июня: Начало работ
  • 31 августа: Окончание работ.
  • Сентябрь: Оценка проектов наставниками/студентами.
  • Октябрь: Студенты, успешно завершившие свои проекты, получат стипендии и другие поощрительные призы.

    Скольких студентов мы поддержим?

    Не знаем. Мы переложили ответственность за финансирование на сообщество, поэтому это будет зависеть от вклада каждого. Чем больше средств мы соберём, тем больше студентов получит поддержку, тем больше пользы для Haiku. Если для поддержки очередного студента не будет хватать небольшой суммы, мы можем взять её из существующих фондов Haiku Inc.

    Как сделать пожертвования?

    Пожертвования можно сделать через PayPal (если есть проблемы с переводом в PayPal, деньги можно перевести на Webmoney R102187561858, я смогу перевести их в PayPal; Если вдруг захотите поддержать мой проект, то я тоже не откажусь: R163338454217. Связаться со мной можно по ICQ 27091974, Павел)

    Чем помочь, кроме пожертвований?

    Да, есть ещё мысли:
  • Информируйте другие open source сообщества, которым не чужда идея поддержки
  • Напишите о нас в своём блоге и/или поставьте ссылку на страницу пожертвований
  • Поговорите о пожертвовании со своим работадателем.
  • Digg, Slashdot, Facebook (ЖЖ, Одноклассники.ру? ;))
  • Расскажите друзьям, семье!
  • Haiku Code Drive 2008

    Встречайте Haiku Code Drive 2008!

    Проект Haiku связался со всеми студентами, подавшими заявку на Google Summer of Code в этом году, но не получившими места и спросил их, согласны ли они выполнить намеченные проекты за стипендию в $2,500 USD каждому.

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

    Chris Simmons

    Google Summer of Code: субпиксельное сглаживание

    Привет всем!

    Меня зовут Андрей Шпильман и я тот студент GSoC, который будет делать субпиксельный LCD антиалиасинг для для графического движка Хайку (App server, Painter, и т.д.).
    Штефан Асмус будет моим наставником в этом проекте, а Оливер Руиз Дорантес, похоже, запасным наставником, а также страстным исследователем словацкого языка и кухни :-)

    Вкратце представлюсь: я родился в Словакии (Братислава) и продолжаю там жить во время каникул. Учась в старших классах, я прожил два года в Германии, посему говорю по-немецки довольно хорошо (обычно я говорю «очень хорошо», но тут полно немцев :-). Сейчас я учусь в Оксфордском университете (UK) на 4-х годичном курсе математики и компьютерных наук. После его окончания, я хочу учиться на PhD где-нибудь ещё в Европе (Норвегия, Швейцария??) или в США. Я очень люблю путешествовать, туризм, гулять и готовить. Часть денег, полученных от GSoC, я скорее всего потрачу на большое путешествие по России, с поездкой по Транс-Сибирской железной дороге.

    Я раньше не писал для Хайку, но являюсь её восторженнным поклонником и очень рад тому, что меня взяли в сообщество. Сейчас я немного занят приготовлениями к экзаменам, которые состоятся с 2 по 19 июня (они будут не слишком плотными, поэтому должно остаться время на GSoC).
    Я собираюсь начать работу над проектом с конца следующей недели, рассчитываю за два дня до официального старта, чтобы компенсировать экзаминационное время, когда я не смогу работать над GSoC полностью.

    Я буду писать на Маке. Я установил все инструменты для сборки и смогу собрать образ жёсткого диска для запуска под Parallels Desktop. Если такой способ окажется слишком медленным, придётся искать другие решения.
    Сейчас для меня самая главная задача - изучить и понять уже написанный код Haiku, над которым мне придётся работать. Я буду держать вас в курсе о текущем положении дел.

    Пока,
    Andrej

    Контакты:
    ICQ: 161748133
    Skype: andrejspielmann
    e-mail: andrej.spielmann@seh.ox.ac.uk

    Google Summer of Code: альтернативные системные таймеры

    Всем привет!
    Я - Дастин, студент Summer of Code 2008 года, который будет реализовывать поддержку системных таймеров, отличных от TSC, в Haiku.

    Я активно следил (и пытался предложить свои услуги) за разработкой Haiku в течение нескольких месяцев, хотя пассивно наблюдал момент ухода Be, Inc. и тот момент, когда в OpenBeOS забила жизнь. Я изучил основы Be/Haiku API и отдельные части ядра Haiku.

    Объединив изучение ядра с описанием стандартов, я рассчитываю достичь ощутимых результатов и планирую продолжать работать после окончания GSoC.

    Меня можно найти на канале #haiku на Freenode, мой ник – DHowett.

    Спасибо большое,
    Dustin Howett

    Anthy портирован в Haiku и доступен на Bebits

    Всем известный японский разработчик SHINTA недавно начал работать над портированием открытого японского транслятора Anthy (из хираганы (слоговая азбука) в кандзи (иероглифы)) для Haiku и первые плоды его работ доступны на Bebits.com в виде бинарного дистрибутива. Мы рады видеть, что Шинта-сан снова занялся разработкой. Anthy - безусловно, лучший свободный метод набора для японского языка. Он станет большим подспорьем для тех, кто захочет работать на нашей платформе на японском.

    Anthy славится своей высокой эффективностью перевода , лучшей, чем, например, Canna и FreeWnn и сравним по возможностям с закрытыми решениями. Продукт выходит под LGPL и очень активно развивается, став стандартом де-факто для большинства открытых платформ, вроде Linux.

    Haiku как гостевая ОС в KVM

    Небольшая просьба, если будет свободное время

    На канале #kvm (на irc.freenode.org) спросил тамошних ребят, почему Haiku больше не работает как гостевая ОС в KVM, даже не запускается.

    Как они сказали, Haiku на самом деле работала в ранних версиях KVM, и если мы узнаем причину, почему она больше не работает, следует отправить отчёт в рассылку для разработчиков.

    Очень прошу сделать это, чтобы наша ОС снова заработала в KVM. Ведь это займёт минут 10, не больше? :)

    Chris Simmons

    Вышла поддержка Bluetooth в Haiku

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

    Прежде, чем продолжать, ознакомьтесь, пожалуйста, с этой статьёй о возможном риске.

    Шаги по установке для R5(не тестировалось под Haiku и ZETA):

    Установка драйвера (/h2/h2generic) :

    Положите драйвер в /boot/home/config/add-ons/kernel/drivers/bin

    Сделайте на него ссылку и положите в /boot/home/config/add-ons/kernel/drivers/dev/bluetooth

    Скорее всего у вас нет этого каталога, поэтому его придётся создать. С помощью команды usb_dev_info убедитесь, что устройство определяется. После этого проверьте, правильно ли устройство опубликовано:
    $ find /dev/bluetooth/
    /dev/bluetooth/
    /dev/bluetooth/h2generic
    /dev/bluetooth/h2generic/0

    Если нет, то может помочь перезагрузка или команда $ rescan h2generic.

    Установка библиотеки (/lib/libbluetooth.so) :

    Положите библиотеку в /boot/home/config/lib/

    Запуск сервера (/server/bluetooth_server) :

    Этот компонент можно положить в любое место, например: /boot/beos/system/servers/

    Запуск приложений (/apps/*) :

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

    Доступный функционал:

    Всё, что описано в программах /haiku/trunk/src/bt_*.cpp и LocalDevice::SetDiscovery(); который не используется в приложениях

    Скачать Bluetooth для Haiku (Arce.4.1)

    Примечание: Если есть желающие сделать красивый установочный скрипт или ссылки на папки Drop me here - присылайте мне, я их с радостью опубликую.

    urnenfeld

    Открыты исходники BeServed, которые были добавлены в Haiku

    Разработчик Haiku Axel Dörfler сообщил в рассылке, что Teldar Corporation открыла свой продукт для обмена файлами под BeOS - BeServed и подарила его Haiku. С радостью сообщаем, что код был добавлен в репозиторий Хайку и доступен здесь. Пакет был подарен под лицензией MIT и включает возможность управления пользователями и серверами для нескольких операционных систем, включая Microsoft Windows® и Linux®. В Хайку уже есть своя сетевая файловая система, которую делает Инго Вейнхолд, а включение кода BeServed позволит в результате перекрёстного опыления получить мощное и прочное сетевое решение.

    Kevin Musick из Teldar Corporation сказал нам: "Я очень рад тому, что мы пожертвовали BeServed во всей его полноте в проект Haiku. После смерти Be, Inc.'s BeServed перестал быть коммерчески жизнеспособным и бремя моей карьеры и молодой семьи заставили меня заниматься другими делами. Однако, я ободрён, видя развитие Haiku и ongoing рост сообщества. Поскольку у меня больше нет возможности участвовать в проекте, надеюсь BeServed внесёт толику пользы в проект. Поздравляю с успехами и желаю продолжать делать успехи!"

    BeServed — это сетевая файловая система с поддержкой файловых аттрибутов, файловых типов MIME, индексов, всего того, что доступно в BFS, а также в открытой версии BFS, которую использует Haiku. BeServed также позволяет удалённо разделять диски и папки, позволяя пользователю управлять файлами, используя мощные и уникальные преимущества BFS через сеть.

    Спасибо, Кевин!

    Google Summer of Code : реализация клиента для CIFS

    Всем привет !

    Меня зовут Adrien Lemaire, я новый член сообщества Haiku. Я был допущен для работы в Google Summer Of Code над Haiku. В общих чертах, я должен:

    • Сделать адд-он файловой системы CIFS.
    • Сделать интерфейс для просмотра/монтирования разделённых ресурсов.

    Краткая биография

    Я родился во Франции (Тулуза), где прожил 20 лет, но всегда интересовался другими странами и культурами, много путешествуя с отцом, который работал на одну международую корпорацию. Я закончил школу с отличием (Baccalaureate S) и решил учиться компьютерным наукам и бизнес-администрированию. Я - студент SUPINFO (французкая школа компьютерных инженеров). Первый год я отучился в Тулузе (Франция), а второй - в Монреале (Канада). Я выбрал SUPINFO, потому что они сочетают компьютерные науки и менеджмент с международными перспективами (имеют отделения во многих странах). За время моего обучения я уже сотрудничал с двуми компаниями. Позже, я на один год уехал в Монреаль, что дало мне возможность улучшить мой английский и открыть Америку. В следующем году я вернусь во Францию и закончу обучение в Оксфордском университете, что даст мне два диплома - французский и английский.

    Знания :

    • Языки программирования : C, C++, Objective-C с cocoa, Applescript, Java, vb2005, Python, Perl, SVG. (учу C#, ASP и Ruby).
    • Web языки : HTML, XHTML, CSS, PHP, Javascript, XML, Ajax.
    • Базы данных : MySQL (SQL), Oracle (iSQL*Plus, PL/SQL), SQL server
    • Операционные системы : Windows XP, Vista, Windows 2003 Server, Linux (Mandriva, Ubuntu, Debian, Suse, BackTrack), Mac Os X 10.4 and 10.5

    Опыт работы :

    • Librement Humain
    • Clarisys
    • Другие проекты

    Общие задачи :

    • Изучить Haiku в целом.
    • Изучить интерфейс виртуальной файловой системы Haiku (bfs, dos).
    • Изучить отладку в userland (gdb) и kernelland (kdl).
    • Научиться вызывать сетевые фунцкии из ядра (nfs).
    • Изучить протокол CIFS/SMB.
    • Научиться находить CIFS/SMB ресурсы.

    Аdd-on файловой системы

    • Реализовать CIFS протокол в виде библиотеки, которая будет статически линковаться к add-on'ам ядра или пользовательским приложениям.
    • Реализация базового функционала (монтирование/чтение директорий/отмонтирование) файловой системы CIFS на основе этой библиотеки.
    • Реализация чтения файлов.
    • Рализация поддержки записи.

    Просмотр разделённых ресурсов

    • Нахождение SMB/CIFS ресурсов через CIFS библиотеку.
    • Сделать add-on файловой системы для нахождения SMB/CIFS ресурсов.
    • Обнаружение серверов
    • Обнаружение разделённых ресурсов

    Всё это я собираюсь писать под Mac OS X, используя QEMU для запуска Haiku. Мой дорогой наставник купил мне отличную книгу Christopher R. Hertel "Implementing CIFS". Я начал её читать и закончу через 2 недели.

    На этом всё ! Спасибо, что приняли меня в свой проект

    Пока, Адриен Лемар

    Спросите Pier Luigi Fiorini

    Сижу, ломаю голову, какие бы задать вопросы Pier Luigi Fiorini о его работе над InfoPopper. Также он известен тем, что работал, вместе с Andrea Anzani, над im_kit.

    Сейчас оба разработчика лихорадочно трудятся над InfoPopper, но скоро у Пьера будет небольшой отпуск, чтобы он смог восстановить свои силы. Когда он вернётся, (где-то в мае), мы закончим наше интервью и опубликуем его здесь, вместе с вопросами, которые зададите и вы.

    Итак, не позднее 30 апреля, присылайте свои вопросы на email. Спасибо!

    Chris Simmons

    Процесс самосборки Haiku движется вперёд

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

    Bruno "BGA" Albuquerque и Ingo Weinhold отметили остающиеся проблемы при сборки Haiku внутри себя. Один из самых долгих багов (KDL during svn checkout in block notifier/writer), похоже, близок к закрытию, но, по моему мнению, требует огромного количества тяжёлой и кропотливой работы. Они похожи на волшебников, делающих ненормированное количество рабочих часов, для достижения целей.

    Я знаю. что некоторые из вас уже читают рассылку, но, возможно, есть и новички, которые захотят её читать тоже.

    Chris Simmons

    2008/04/24
    постоянный адрес

    метки:

    Google Summer of Code: Zeroconf!

    Этим летом я попробую сделать поддержку Zeroconf в Haiku.

    Для тех, кто не знает, Zeroconf - это Zero Configuration Networking, которое сильно упрощает создание малых сетей: не нужен DHCP сервер, не надо заранее распределять IP адреса, не нужно знать, на каком хосте висит принтер! Как это получается? Для этого есть три компонента:

    1. Выбор адреса: работает через IPv4 Link-Local Addressing
    2. Поиск по имени: через multicast DNS
    3. Нахождение сервисов: тоже через multicast DNS

    В проекте будет два главных компонента:

    1. Реализация IPv4 Link Local Addressing
    2. Портирование и интерация с mDNSResponder от Apple (открытый исходник, лицензия Apache 2.0, доступен на публичном CVS)

    В ближайшее время я куплю книжку по Zeroconf, которую написал один из его ведущих разработчиков, Stuart Cheshire. Впрочем, Google может дать нам для работы один из своих аккаунтов на O'Reilly Safari для онлайнового доступа к этой книге... Если этого не случится в течение месяца, я куплю книгу сам. Судя по отзывам, это хороший справочник, как для пользователей, так и для разработчиков

    Пока всё... До встречи!

    Alex Roman's blog

    Haiku получил 5 мест на GSoC 2008

    Haiku Project получил 5 мест для студентов на Google Summer of Code 2008. Stephen Aßmus написал великолепную статью и просит комментариев и советов о том, как сделать это лето Haiku Summer of Code.

    Рады сообщить, что Alexandru Roman также стал одним из финалистов!

    Фантастика, удачи всем участникам!

    haikunews

    Haiku получил 5 мест на GSoC 2008

    После проведённого интенсивного набора и тщательной селекции, мы рады сообщить, что Хайку были назначены пять (5) мест для студентов на Google Summer of Code 2008. В этом году Google допустил до участия гораздо больше организаций-наставников, чем раньше, поэтому конкурс среди них на распределение студентов был очень высокий. Мы получили заявки от людей очень высокой квалификации, что, безусловно здорово, но также сделало задачу наших наставников по финальному отбору более грубой. После тщательного разбора всех заявок и внимательноно рассмотрения таких факторов, как возможность сразу приступить к работе, возможность дальнейшего сотрудничества и доступность для соответствующего наставника данного проекта, мы пришли к окончательному списку студентов, которые будут работать над Хайку во время GSoC 2008 program. Вот они:

    Поддержка свопинга
    Студент: Zhao Shuai
    Наставник: Ingo Weinhold

    Поддержка Zeroconf (автоматическая настройка сети)
    Студент: Alexandru Roman
    Наставник: Ryan Leavengood

    HPET и другие таймеры (новые способы учёта времени в системе)
    Студент: Dustin Howett
    Наставник: Stefano Ceccherini

    Сглаженная субпиксельная графика в app_server
    Студент: Andrej Spielmann
    Наставник: Stephan Aßmus

    Клиент CIFS (доступ к сетевым ресурсам в Windows)
    Студент: Adrien Lemaire
    Наставник: Bruno G. Albuquerque

    Давайте устроим тёплый приём нашим новым участникам, потому что мы хотим, чтобы они остались с нами после окончания проекта. Помните: их успех - это наш успех, поэтому всё, чем мы сможем им помочь для завершения их проектов, поможет всем нам.

    Мы также благодарим всех студентов, приславших заявки для Хайку, но не ставших участниками. Мы бы с удовольствием приняли всех, но не можем этого сделать, к сожалению. Как говорилось ранее, мы рассматриваем возможность самим выступить спонсором собственного лета кода, так что не расходитесь. Лучше всего, если вас это заинтересовало, свяжитесь с нами. Наше сообщество мы призываем следить за новостями, нам может потребоваться ваша помощь, для того, чтобы это свершилось.

    И, напоследок, большое спасибо наставникам, которые потратили своё время, чтобы Google Summer of Code в этом году состоялся, и, конечно же, сам Google, за то, что всё это устроил и дал нам возможность в этом году принять участие снова.

    Stephan Aßmus

    Git для Haiku (#1)

    Хотел бы объявить о доступности системы контроля версий GIT. На сайте она описывается, как:

    Git - это открытая система управления версиями, разработанная для очень больших проектов, работающая с ними быстро и эффективно, но она также подходит для маленьких частных репозиториев; особенно популярна в open source сообществах и обслуживает такие проекты, как Linux Kernel, WINE и X.org.

    Git попадает в категорию распределённых инструментов управления исходными кодами, схожей с Mercurial или Bazaar. Каждая рабочая директория Git - это полноценный репозиторий с полной историей и возможностями полного отслеживания версий, независимо от доступа к центральному серверу. Git является очень быстрой и малотребовательной к памяти.

    как установить систему

    Technorati Tags:HaikuOS, open source

    В работе приложение для многопользовательского входа

    Франсуа mmu_man, создатель BeVnc, делает приложение для многопользовательского входа для Haiku и недавно показал свои труды.

    Я решил поговорить с ним лично, дабы узнать, что он делает и чем собирается заняться дальше. Это приложение заняло немного времени, потому что раньше он писал уже похожее для Zeta, с той разницей, что теперь он использует новый Layout Engine, который построен на Auckland Layout Model.

    Я поинтересовался новыми функциями над которыми он работает, и он честно ответил:

    Наверное, должна быть возможность добавить на десктор картинки, возможно автологин. Контейнеры должны проверять, что репликанты пришли из под рутовых приложений, иначе это будет дырка в безопасности :)

    Подозреваю, что у Инго на это свой взгляд, потому что он выкинул мой движок, сделаный на запросах (правда, он был всего лишь тестовым) :D

    Потом, полагаю, мы получим кучу отчётов о багах, что "функция Х" не работает, если вы зашли не под рутом :D

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

    Спасибо, Франсуа!

    Chris Simmons

    Technorati Tags:HaikuOS

    Senryu и 'Be Man' под личиной

    Не первый раз в списке рассылки Хайку появляются письма, относящиеся к правилам создания дистрибутивов. Ребята из Хайку создали набор правил, касающихся использования торговых марок и лого; имя "Haiku" не может использоваться для названия дистрибутива, должны быть исключены торговые марки и логотипы, но могут использоваться иконки и оформление. В дополнение к этим косметическим и торговым указаниям, правила указывают, что нужно для получения официального логотипа "Haiku compartible".

    Несколько недель назад Karl vom Dorff объявил о создании Haiku VMware build environment. Этот образ для VMware содержал все инструменты разработчика и дополнительные пакеты, вместе с исходниками Хайку и образом хард диска на 10GB в 125MB файле. "Дистрибутив" не соответствовал правилам, и Карл с радостью внёс необходимые изменения. Некоторые детали, для которых потребовалось бы копание в коде (панель About и лого при загрузке), остались.

    Эти изменения сделать тяжелее, поэтому появились справедливые замечания о том, почему бы не упростить и этот момент создателям дистрибутивов. Кто-то согласился, кто-то нет: правила на самом деле сделаны, чтобы удержать людей от создания дистрибутивов (особенно на ранних стадиях разработки). Как сказал Jorge G. Mare: Лично я [думаю], что нам вообще не стоит тратить время на написание руководств "Сделай свой дистрибутив Хайку", или вносить изменения в систему для сборки для поддержки дистрибутивов. Иначе нам угрожает "Линуксификация" Хайку в форме ада дистрибутивов.

    Признаюсь, я потерял нить всей дискуссии, из-за того, что Mail.app фигово показывает треды. Полагаю, на каждую точку зрения, было три разных поста о том же самом, что многовато, на мой взгляд. Как я понял, дискуссия была похожа на все другие дискуссии о дистрибутивах в рассылке. Это как машина Seat: если вы видели одну, вы видели их всех.

    После шквала писем на эту тему, упавшего на мой почтвый ящик для Хайку, на несколько дней наступила тишина. Как оказалось, ребята-создатели дистрибутива для VMware, которые заварили кашу, переименовали его в Senryu, а также соблюли все остальные каноны, сделав саркастический загрузочный экран. Senryu есть двух видов:

    Developer Edition содержит готовые инструменты разработчика, исходники Хайку и некоторые полезные приложения. Не надо грузить гигабайты данных (всего ~135mb) и тратить часы на сборку рабочей среды, всё заработает сразу — "оно просто работает"

    Personal edition также содержит среду для разработки (минус исходники), но содержит больше приложений, интересных конечному пользователю. Цель - демонстрация возможностей Хайку.

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

    Лично моё мнение по поводу правил создания дистрибутивов предельно ясное: я их поддерживаю, и даже Жоржа, пускай и высказавшегося резко, поддерживаю тоже. Если делать сейчас дистрибутивы системы качество которой пре-альфа с её торговыми марками и логотипами, то это может повредить Хайку, как бренду. Хорошо, что эти правила были сделаны, чтобы предотвратить непоправимое.

    Но это не значит, что я не одобряю работу Карла. Я обеими руками за эти "просто работающие" сборки, но с соблюдением всех указаний. По крайней мере до выхода альфы.

    TheNerd, Thom Holwerda, osnews

    2008/04/20
    постоянный адрес

    метки:

    Немецкая база знаний ищет добровольцев

    На днях Lelldorin на форуме Haikuware искал доброльцев для перевода и написания документации. Пусть его сообщение скажет само за себя:

    Всем привет, я - администратор BeSly, базы знаний по BeOS, Haiku и Zeta

    Мы начали с перевода Read Me и документации с английского на немецкий. По прошествии времени, мы стали писать собственную документацию, потому что легче объяснить то, что понял сам, чем перевести то, чего не понимаешь.

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

    Поэтому BeSly - это не только немецкая база знаний. Мы ищем людей, которые хотели бы нашу документацию или писать свою. Нам также нужны люди, которые будут проверять качество наших переводов.

    В связи со смертью Zeta мы хотим сместить фокус на Haiku (мы уже для неё пишем, но хотим написать больше).

    Было бы здорово, если сообщество помогло нам в этом проекте. Пожалуйста, давайте сделаем BeSly больше и лучше.

    Если вы хотите с ними связаться, то пишите на webmaster@mittilgart.de

    Chris Simmons

    Technorati Tags:BeOS, HaikuOS

    На выходных в Сан-Франциско, на LugRadio Live USA 2008

    Последние выходные я провёл, занимаясь подготовкой к LugRadio Live USA 2008. Вместе со Scott McCreary (из BeDrivers.com) мы готовили стенд Haiku к первому, проводимому в США LugRadio Live. У меня это события вызывает странные и необъяснимые чувства. Определённо, оно должно стать интересным и плодотворным событием не только потому, что наш стенд смогут увидеть, но также потому, что у нас есть шанс привлечь внимание интересных людей.

    Я приехал в Сан-Франциско в пятницу днём, чтобы самому увидеть зал в Метреоне, а также посмотреть, сможем ли мы поставить проектор на нашем стенде. Вначале нам сказали, что "ничего на стену нельзя вешать", но затем всё-таки расзрешили повесить экран на заднюю стенку стенда. Я так и сделал при помощи одного человека из персонала и пары пластиковых ремешков, которых я взял в коробке для выставки, посему это почти не заняло времени. Договорившись по поводу беспроводного доступа, я получил всё, что нужно было для работы моего ethernet-wifi адаптера, для доступа в интернет из Haiku. План на следующий день сложился и я пошёл в отель, отдохнуть до ужина.


    Скот на стенде Haiku

    В субботу утром я встал в 7 утра (гораздо раньше, чем обычно, должен сказать), так как хотел оказаться на выставке к моменту открытия, чотбы подготовить стенд (около 8 утра). Скотт, который ехал из Марин каунти (к северу от Золотых ворот), позвонил мне около 8 и сказал, что едет. Мы встретились в 8:30 в павильоне и начали устанавливать наши агрегаты. Я принёс свой лаптоп, HP Pavilion zv5400 с 1GB RAM и AMD/64 Athlon (которому для работы под Haiku нужно всего 800MHz), на которого мы повесили проектор. Скотт принёс маленький компьютер Dell с 2GHz интелловсикм процессором и 256mb памяти, коотрый подключили к 17-дюймовому LCD монитору. Оба компьютера подключили к wifi-ethernet адаптеру Buffalo WLI-TX4-G54HP, который я настроил для бесплатного для экспонентов доступа. Мы разложили наши флаерсы и поставили коробку для пожертвований (мы собрали целых 26$!!!). Футболок не было, потому, что торговать не разрешалось.

    Павильон для публики открылся в 10 утра, но в ранний час народа было немного. Наш стенд был в самом конце зала, прямо перед главной сценой. Рядом с нами был журнал Linux Pro, а в нашей стороне — Ubuntu, FreeBSD, KDE и O'Reilly. Попалось несколько знакомых лиц: молодая пара с Linux Picnic в прошлом августе, которые «засветлись» на нашем видео с FalterCon на стенде KDE, через проход.


    Болтаем с ребятами из FreeBSD/KDE

    Были ребята из FreeBSD, с распечатанным на всю заднюю стенку KDE desktop, которые устроили IRC сессию (в Kopete), где новичок спросил "что такое FreeBSD" а девушка из команды ответила "FreeBSD – это лучшая серверная операционная система..." (и не стала продолжать). Думаю, это сейчас главное направление BSD, также, как и судя по комментарию о последнем ежегодном Саммите разработчиков Linux, что тот направлен прежде всего на десктопы. Я думаю, что наша направленность на персональные компьютеры всё ещё даёт нам шанс, даже спустя всё это время, шанс подвинуть другие открытые системы, так как наши идеи не могут измениться под влиянием серверного направления. Кажется, я слегка отвлёкся :)

    Поток людей слегка усилился к полудню и второй половине дня. Мы со Скоттом показывали наше краткое введение в Haiku, а для тех, кто заинтересовался настолько, что был готов потратить лишние 5-10 минут, более полную демонстрацию. Как обычно, «живые запросы» котировались высоко и вызывали больше всего комментариев в духе: «о, это круто!», некоторые посетители были приятно удивлены, увидя приложения типа Firefox и VLC работающими и под Haiku тоже. Некоторые посетители нашего стенда были хорошо знакомы с BeOS, среди них был один разработчик BeOS в прошлом; нас также посетила юная пара не только хорошо знакомая BeOS и Haiku, но ещё они являлась гордыми обладателями BeBox. Интересно, что это был первый раз после показа Haiku на нескольких конференциях примерно за последний год (в США и один раз в Японии), когда мне был задан жуткий вопрос: «А почему бы вам вместо этого просто не помочь Линуксу?». Я пытался объяснить этому парню, но его это, очевидно, не интересовало, он просто ушёл ещё до того, как я смог закончить своё первое предложение. Ну что же…


    Беседуем с владельцами BeBox

    Когда примерно в шесть вечера первый день подошёл к завершению, мы упаковали всё стендовое оборудование и вернулись в гостиницу отдохнуть немного перед ужином. Мы со Скоттом снова встретились в вестибюле около половины восьмого и решили поужинать в итальянском ресторане, располагавшемся в здании гостиницы. Еда была хорошей, а у нас произошёл интересный разговор с сидящей рядом парой. Она была из Гондураса, а он из Сальвадора, так что общение проходило наполовину по-английски, наполовину по-испански. После ужина мы отправились обратно в Метреон, так как Google устраивал бесплатный бар для всех участников/докладчиков в Jillian's. Мы со Скоттом немного поболтали с Гаретом из SCaLE, который поведал нам замечательную историю о том, как SCaLE стал таким успешным мероприятием (кстати, моё любимое мероприятие, посвящённое open source, они правильно балансируют между сообществом и коммерцией, и у них крайне хорошо всё организовано). Мы также познакомились с Кайлом из NBLUG, и таким образом подходим к следующему пункту — связям.

    Как я упомянул выше, LugRadio оказалось хорошим местом для завязывания отношениц с разными интересными людьми. Например, в пятницу вечером я познакомился с Лесли Хоторн из Гугла, которая серьёзно занимается Google Summer of Code. Я не просто представился ей, но и рассказал, насколько крута их программа, и как много она сделала; надеюсь, они выделят нам ещё одного студента (шучу) ;) В субботу утром к нашему стенду подошёл Дейвид Максвелл из Coverity. Он был особо заинтересован в добавлении Haiku к впечатляющему списку проектов, поддерживающих программное обеспечение для анализа кода от Coverity (смотрите тут). Возможно, благодаря зигзагу удачи, стенд рядом с нами занимал журнал Linux Pro, который пилотировала (так сказать) управляющий редактор Рикки Ките; рыночные коммуникации — мой конёк, и я не преминул поговорить с ней о выпуске полноценной статьи о Haiku в их журнале, на что она смотрит благожелательно. Теперь у меня есть её контакт, и мне нужно это реализовать; посмотрим, что из этого выйдет. На встрече в Jillian's в субботу вечером Скотт представил меня Кайлу Рэнкину из North Bay Linux Users Group (NBLUG), эта группа пользователей регулярно встречается в штаб-квартире O'Reilly Media в Севастополе, округ Марин (к северу от Сан-Франциско), и они приглашают докладчиков для бесед на разные темы. Мы предложили Кайлу идею о докладе про Haiku на одной из встреч, и эта идея ему понравилась, так что мы планируем представить Haiku на июньской или июльской встрече. Ну и последнее по счёту, но не по значению — у меня состоялась беседа с Марси из O'Reilly; как вы уже, наверное, знаете, O'Reilly организовывает в США много конференций по open source (например, RailsConf). Одна из крупнейших (если не самая крупная) конференций — это OSCON, которая назначена на 21–25 июля и пройдёт в Портленде, штат Орегон. Я уже проработал это с коллегой Марси из O'Reilly, так что если мы сможем собрать группу из 2–3 человек, то подадим заявку на стенд Haiku на OSCON'е; если вы хотите поучаствовать или в чём-то помочь, то см. приглашение здесь или свяжитесь непосредственно со мной.

    Воскресенье начиналось очень неторопливо. Мы со Скоттом пришли в выставочный зал примерно в 9:15, чтобы приготовить стенд, и были готовы всё начать до официального времени открытия (это легко, когда ты уже знаешь, что да как). Однако не так уж и много людей проявлялось почти до полудня. Я воспользовался представленной возможностью прогуляться и заглянул на другие стенды, пособирал тут и там рекламные материалы (в основном live CD и пару игрушек для внучки). Скотт выходил и наблюдал пару докладов, а я стоял у стенда. У меня оставалось одно особое задание на более позднее время: я знал, что Дейвид «Lefty» Шлезингер, директор по технологиям open source ACCESS Co., делал доклад на LugRadio, и я хотел встретиться с ним лично. Дейвид помогал нам выпускать BeBook и BeNewsletter, и я хотел лично поблагодарить его и вручить футболку Haiku в знак признательности. Я обнаружил Дейвида примерно в полчетвёртого около сцены, где он собирался читать доклад, и теперь он является ещё одним гордым обладателем футболки Haiku. :)

    Замечу на полях, что один из спонсоров LugRadio Live, Dice.com, раздавал четыре ASUS eeePC во время мероприятия (по два в день). Я попытал судьбу, написав своё имя и адрес электронной почты на талончике для получения напитка, но, к сожалению, в этот раз удача оказалась не на моей стороне, придётся поискать в другом месте. Мы в самом деле должны связаться с ASUS и узнать, пожертвуют ли они пару eeePC Акселю и Франсуа, чтобы они смогли затавить Haiku на них работать.

    Предполагалось, что мероприятие будет строиться вокруг LugRadio, радиопередаче (подкасте), которая «смотрит на Линукс и open source расслабленно и с юмором» (копи-паст с сайта LugRadio). Так что несмотря на связь с open source, это мероприятие несколько отличалось от, скажем, SCaLE или других конференций по open source, на которых я ранее был. Организация стенда Haiku стоила того, но я вынес ощущение, что, во всяком случае с точки зрения организации экспозиций, два дня — это несколько слишком для не столь впечатляющего количества народа, гуляющего по выставочному залу (в частности, в воскресенье). Конечно, те из нас, кто профессионально занимается организацией выставок, скажут, что «достаточно лишь одного» (хорошего нового клиента), чтобы вклад и инвестиции оправдались. В результате, я полагаю, что мы поспособствовали цели привллечения внимания к проекту и просвещения людей о Haiku; я также думаю, что наше присутствие также помогло обрести проекту живое человеческое лицо, я считаю, это тоже важно. Добавьте к этому возможность связей с разными людьми на ниве open source и не только, и можно с уверенностью сказать, что участие в LugRadio явилось определённо положительным опытом для Haiku.

    Завершая этот неформальный отчёт, хочу особенно поблагодарить Скотта, посвятившего Haiku целые выходные. Честно говоря, без его вклада и помощи я бы не справился. Более того, Скотт оказался настолько щедр, что привёз и пожертвовал Haiku компьютер Dell. Возможно, настало время создать машину для презентаций Haiku. Спасибо Скотту!

    Фото, видео и так далее

    • Фото с LugRadio: галерея | слайды
    • Видео LugRadio (будет)
    • Флаер Haiku, который мы раздавали на LugRadio (PDF, 1.2MB)

    оригинал

    Показатели посещений сайтов Haiku

    Признаюсь: есть у меня слабость к статистике посещений. В конце прошлого года я добавил на сайт Haiku Google Analytics (GA). GA собирает много информации: число заходов, просмотры страниц, долю покинувших сайт, данные по географии и используемых операционных системах. Это было интересно мне самому, а также я хотел поделиться этим с сообществом (не волнуйтесь, там всё анонимно), чтобы каждый мог посмотреть на рост нашего проекта. Вот краткий обзор активности на сайтах Haiku с января по март 2008 года.

    2008Q1_website-monthly.thumbnail.png

    В этом году было просмотрено почти 1 миллион страниц на сайте Haiku (точно 925,302). Около половины из них начиная с февраля, и этот скачок может быть связан с нашим присутствием на конференции SCaLE и последовавшими за этим публикациями на таких больших сайтах, как ARS Technica и Slashdot. В частности, только 12 февраля (на следующий день после SCaLE), трафик достиг 94K просмотров страниц, >10 раз больше, чем в обычный день до того. Даже если мы будем считать, что это частный случай и проигнорируем эффект SCaLE, мы всё равно увидим нарастающую тенденцию по всем показателям за эти три месяца. Например, по числу посетителей мы выросли с 42K в январе до 52K в марте. Несмотря на полученное освещение нас на многих сайтах, включая упомянутых гигантов, OSNews остаётся нашим главным донором с почти 20% траффика за этот период.

    Теперь о haiku-files.org. Это архив ночных сборок, так что тут особо не за чем следить, кроме как за количеством загрузок образов. Честно говоря, я не знал, чего тут можно ожидать, но давайте просто покажем цифры. Мы начали с примерно 12K загрузок в январе и достигли 52K в марте. Не надо говорить, что это показывает нам нарастающий интерес к разработке Haiku как результат пройденных разработчиками вех на пути к первому альфа-релизу. Наше участие в Google Summer of Code, похоже, также внесло вклад в рост траффика к концу марта, но незначительный (возможно, оно ещё откликнется в апреле большим эффектом). За период 1 квартала 2008 года ночные сборки были сгружены 105,742 раз. Кто бы мог подумать! (Внимание: Это не число просмотренных страниц, мы на самом деле считаем количество запрошенных .zip и .bz2 файлов. Эту статистику ведёт не GA, а наш ISP.)

    Я подготовил отчёт GA за этот период и вы можете посмотреть его здесь (15 страниц PDF). Для тех, кто любит простые и понятные цифры, я также сделал простой одностраничный отчёт, с месячными показателями по haiku-files.org (число загрузок) и haiku-os.org (число заходов, уникальных посетителей и просмотренных страниц).


    Technorati Tags:
    BeOS, HaikuOS


    Haiku официально умеет собирать сама себя

    Проект Haiku прошёл очень важную веху. Bruno G. Albuquerque (bga) написал эту заметку, прикреплённую к коммиту, несколько минут назад : "vnode_path_to_vnode() теперь возвращает B_NOT_A_DIRECTORY вместо B_NOT_ALLOWED, как должно быть в POSIX-программах. Это позволило мне собрать Haiku под ней самой, безо всяких хаков вообще, так что я полагаю, что теперь мы самособираемся официально!" Официальное известие об этом можно найти в рассылке. Кроме того, вышло новое обновление статуса haiku alpha 1.

    Обновление статуса Haiku Alpha 1(#2)

    Это второй выпуск новостей о ходе разработки Haiku alpha 1. В этой статье будет освещено развитие инструментария разработчика, также я освещу дискуссию, которая состоялась в рассылке, о том, стоит или не стоит выпускать загрузочный CD. В конце вы увидите подробную статистику о продвижении проекта.

    #1739: включение инструментария разработчика в Haiku

    На прошлой неделе случились большие подвижки в этом вопросе. Одним из требований разработчиков к альфе была способность собрать Haiku в самой Haiku. Это дало бы нам много преимуществ - поскольку компиляция требует многих ресурсов - было бы замечено и исправлено множество ошибок. Для того, чтобы сделать "самосборку", необходимо, чтобы соответствующие инструменты - в первую очередь GCC - могли работать в Haiku. Ingo Weinhold трудится сейчас над этим: он портировал инструменты в Haiku. Это значит, что теперь они "знают", что работают в Haiku (раньше они думали, что работают в BeOS).

    Текущие работы почти завершены, набор инструментов исправлен. Если вы захотите собрать Haiku в 24542-й сборке, нужно будет забрать новый инструментарий, удалить папку "generated" и запустить configure с опцией --build-cross-tools.

    Сами инструменты можно взять на www.haiku-files.org: Инго выложил туда бинарники. С другой стороны, делать это необязательно: jam сам заберёт их, если вы поставите в UserBuildConfig директиву AddOptionalHaikuImagePackages Development ; (подробности смотрите в ReadMe

    Как только последние инструменты будут перенесены и включены в пакет разработчика, этот тикет будет считаться закрытым

    Надо ли делать загрузочный CD

    Karl vom Dorf (из haikuware.com) написал в рассылке, что он сделал и выложил на своём сайте тестовый CD. И он захотел узнать мнение разработчиков: а было ли такое распространение хорошей идей. Он пишет:

    Я думаю, что это хорошо для разработчиков, которые, возможно, не захотят себя утруждать созданием среды, загрузкой всех исходников и их сборкой, а не просто возьмут готовый *.iso и т.д.. Они его просто прожгут, посмотрят и, может быть, пришлют исправления для Haiku. Или пользователи заметят ошибку и пошлют её разработчикам или добавят своё железо в нашу базу данных.

    С другой стороны, демо CD стоит выпускать, когда уже всё будет готово, чтобы не давать ложных мнений пользователям/критикам

    Michael Lotz на это метко заметил:

    * CDboot сейчас похоже сырой. У большинства из тех, кто его пробует, он не работает. Это, на мой взгляд, куда важнее, чем работа с образами - они хорошо работают в эмуляторах, а если почему-то не работают - это не очень-то и важно. Если же я попытаюсь запустить OS с CD и она почему-то не заработает, это гораздо сильнее ударит по моему мнению, особенно если заявляется, что эта OS проста в использовании.

    Те, у кого CD грузится, сообщают, что грузится он очень медленно. Есть способы это улучшить и они будут сделаны. Но сейчас всё это производит не самое хорошее впечатление, особенно если упор делается на то, что Haiku - быстрая система с малым временем отклика.

    Есть определённые нарекания в случае с read-only CD: не сохраняются настройки, программы не работают, как надо и даже падают. Поскольку это легко воспроизвести и отладить, я советую разработчикам сделать это, прежде чем выпускать на CD, потому что это портит всё впечатление и не приносит никакой пользы.

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

    В конце концов, все пришли к согласию, что прежде чем возобновлять распространение загрузочного CD, надо исправить глюки. До того, как состоялось это обсуждение, я предложил сделать закрытое тестирование CD. CD пока выпускаться не будет, но его закрытое тестирование должно быть приоритетным.

    Статистика проекта

    Самую последнюю статистику можно увидеть тут. Чтобы иметь ясное представление о том, какие тикеты надо закрыть для выпуска Haiku alpha 1, надо усвоить следуещее:

    • Тикеты, которые безусловно должны быть реализованы имеют приоритет blocker.
    • Тикеты, которые должны быть исправлены имеют приоритет high.
    • Между ними приоритет critical. Когда тикету назначен этот приоритет, это просьба другому разработчику взглянуть на него и поставить ему high или blocker.

    Blockers

    TicketDescriptionStatusActivity
    #717 kernel: Panic out of range не назначен None
    #757 [app_server] deadlock on workspace switching не назначен None
    #837 [app_server] crash in Desktop::Cursor() не назначен None
    #1222 check if AboutHaiku lists an acknowledgment for all packages не назначен Discussion
    #1689 acquire_sem doesn't timeout не назначен None
    #1739 Include a build system script to generate a proper 'develop' directory on Haiku назначен Discussion
    #1832 condition variable entries are only removed on notify исправлен r24063
    Всего открыто: 6 tickets

    Critical tickets

    TicketDescriptionStatusActivity
    #1512 deadlock after clicking on Deskbar не назначен None
    #1900 PANIC: page fault, but interrupts were disabled не назначен Discussion
    #1914 PANIC: vnode 5:45465 already exists reopened Discussion
    #1917 vm_cache_remove_consumer() Deadlock исправлен r24548
    #1929 steal_pages() Livelock исправлен r24605
    #1931 Negative Modified Page Queue Count исправлен r24430
    #1956 Garbage In Files новый Discussion
    #1963 execvp() Tries to Execute Directories исправлен r24599
    Всего открыто: 4 tickets

    High Priority Tickets

    TicketDescriptionStatusActivity
    #215 Problem with special characters не назначен None
    #347 Imposible to boot from CD не назначен None
    #1822 Implement and test creating and deleting partitions in DriveSetup не назначен None
    #1827 Write a USB -> BIOS handover kernel debugger enter/exit add-on не назначен None
    #1830 Tracker Desktop windows sometimes stops drawing не назначен None
    #1855 Glibc wide char functions are disabled назначен None
    #1959 nVidia: drawing problems after new splash screen новый Discussion
    Всего открыто: 7 tickets

    3ivx 5.02 принёс в Haiku поддержку MPEG-4 ASP Video

    David McPaul, от имени 3ivx Technologies Pty. Ltd, только что аннонсировал в рассылке Haiku выпуск последней версии (5.02) видео декодера и кодера 3ivx MPEG-4 ASP для платформы BeOS R5, включая эксперементальный декодер 3ivx для Haiku.

    Доступный на сайте 3ivx, этот релиз содержит множество исправлений, точный поиск кадров, экспериментальную поддержку файлов mp4 и aac аудио, и версию декодера 3ivx для Haiku. Ождается, что версии декодера 3ivx и декодера aac для Haiku, будут поддерживаться и в будущем, а 3ivx кодер для Haiku будет выпущен, как только поддержка кодеров будет добавлена в Haiku Media Kit.

    Потрясающая работа, и, надеемся, только начало блестящего будущего Haiku в области поддержки медиа-форматов.

    Статья о Haiku в журнале Software Design

    Кто-то из вас наверное знает, что во времена ZETA я работал консультантом в yellowTAB. В то время я был откоммандирован в Японию для установления деловых связей с представителями прессы на предмет представления нашего продукта. Один из журналов проявил большой интерес к нашей платформе, и это был Software Design magazine (SD).

    В апреле 2008 выходит SD со статьёй "Написание Haiku: Начатая в 2001 открытая копия BeOS наконец близится к альфа-релизу", частью серии PACIFIC CONNECTIONS написанной Bart Eisenberg. Это статья на восемь страниц включает полное интервью с Акселем Дёрфлером и комментарии Браяна Ворнера (глава команды Haiku Java Port) и Дейна Скотта (TuneTracker). Думаю, статья удалась, её английскую версию можно прочитать здесь.

    Jorge G. Mare

    Обновление статуса Haiku Alpha 1 (#1)

    Это первое обновление статуса Haiku. Цель обновления - дать информацию о текущем положении вещей в проекте. Недавно было достигнуто соглашение, что пришло время готовить выпуск первой альфы по множеству причин. Лично для меня, главным является то, что пора показать то огромное количество работы, которое было вложено в проект за последние годы. Кроме того, пора бы всем уже заняться общим делом: подготовить код к первому релизу.

    Итак, какова цель этого обновления? Многие разработчики заняты разными компонентами системы и очень просто потерять нить: что же на самом деле происходит и кто чем занят.

    Я не смогу гарантировать, что обновления будут регулярными, или что они вообще будут, но не стеснятесь пинать меня!

    #1268 (закрыт) - Поддержка Live CD в сборочном скрипте.

    Очень нужная функция - возможность грузить Haiku с CD. А также одно из требований рабочего альфа-релиза: он должен распростроняться на CD. Когда-то на BeBits лежали скрипты, генерирующие CD образы. К сожалению, они больше не работают - и довольно давно - пришлось искать другое решение.

    François Revol, к счастью, взял эту задачу на себя. Сначала он сделал правило для создания загрузочной дискетты. Об этом давно спрашивали тоже, и это появилось в сборке 24198. С помощью команды jam haiku-boot-floppy вы можете создать загрузочную дискетту. Из этого он сделал поддержку CD. Единственной новой внешней зависимостью стал mkisofs, который используют почти все современные дистрибутивы Linux. Чтобы создать необходимые для записи CD файлы, запустите комманду jam haiku-cd-image. Для точных инструкций, хотел бы отослать вас к ReadMe, распространяемому с исходниками.

    Всё это хорошо, Haiku будет грузиться с CD, но есть несколько замечаний. Во-первых, она недостаточно мала. Были сделаны кое-какие фокусы (например изменён размер блока CD), но ещё требуется над этим поработать. Кроме того, этот CD не похож на live CD дистрибутивов Linux, которые во время работы пишут в память, чтобы не писать на жёсткий диск. Наш 'Live CD' не делает этого. Поскольку это давно не учитовалось, приложения и сервисы, которым нужна запись на диск (обычно жёсткий), после того, как не смогут этого сделать, падают. И наконец, сообщалось, что загрузочный CD не может найти сам образ Haiku на диске. Если вы испытываете схожие проблемы, смотрите тикет 1364.

    И последнее замечание. Я хочу, чтобы каждый из вас взял CD-R (или CD-RW), попробовал бы собрать образ и запустить его на компьютерном железе, которое заведомо поддерживает Haiku, и посмотреть, в каком месте оно падает.

    #1739 - Сделать нормальную директорию 'develop'

    Одним из других главных требований является возможность "самосборки". Строго говоря, это значит, что мы можем забрать исходник из репозитория subversion, и собрать Haiku из самой Haiku. Michael Lotz разработал новое воплощение heap (часть менеджера памяти в ядре), которую он закончил к 23939 сборке. После этого стало возможным приступить к следующим шагам (до этого оно не работало).

    Это было строгое определение. Однако, для использования Haiku как платформы разработчика, нужны легко доступные gcc и binutils, вместе с системными заголовками и библиотеками. В сборке 23895 Ingo Weinhold начал воплощать пакет 'Development', который позволит сборщику системы скопировать все необходимые для компиляции Haiku заголовки и библиотеки. Неплохо для начала.

    Сейчас Инго работает над переносом gcc и binutils в Haiku и хочет сделать их доступными дополнительными пакетами, которые автоматичски могут быть установлены сборочной системой, так что новая инсталяция Haiku может быть использована для её лёгкой сборки. Примечание: текущий buildutils/trunk в разработке, checkout может не работать. Уже сообщали, что инструменты не работают под Linux PPC. Инго посоветовал использовать сборку 24507 (svn up -r24507) если нужны совместимые инструменты (gcc 2.95.3).

    Как отслеживать статус

    Если вы хотите отслеживать последнюю статистику, отправляйтесь на страницу alpha 1 milestone. Чтобы иметь ясное представление о том, какие тикеты должны быть закрыты перед выходом Haiku alpha 1, следуйте следующим правилам:

    • Тикеты, которые безусловно должны быть реализованы имеют приоритет blocker.
    • Тикеты, которые должны быть исправлены имеют приоритет high.
    • Между ними critical приоритет. Когда тикету назначен этот приоритет, это просьба другому разработчику взглянуть на него и поставить ему high или blocker.

    У нас сейчас alpha 1 предшествует 6 blockers, четыре critical и шесть high тикетов.


    Technorati Tags:
    BeOS, HaikuOS


    Стартовал Google Summer of Code 2008

    В этот понедельник Google объявил об открытии приёма проектов с открытым кодом. Студенты, заинтересованные в представленных проектах, могут подать заявления с предложением своих талантов с 24 по 31 марта. Среди участвующих проектов есть: Debian, DragonFly BSD, ES operating system, FreeBSD, Gentoo, GNU Hurd, Haiku, Linux, NetBSD и openSuse. В целом, проекты охватывают спектр от хаков ядра до веб приложений. В прошлом году было допущено 900 студентов, которым (а также их проектам) Google заплатил до 4,5 млн. долларов.

    Возвращение сына демо CD

    Как всем известно (по крайней мере должно быть), каждый установочный диск BeOS был на самом деле live CD (задолго до того, как его "изобрели" для Linux). И, конечно, так же будет сделано и в Haiku.

    С того времени никто больше не пытался этого сделать и понадобились некоторые усилия, чтобы сделать его снова. Создание рабочего CD всё ещё требует времени (Bootscript.cd, возможно ramdisk...), но он наконец снова грузится.

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

    Кроме того, в jam-файле FloppyBootImage, который я записал, не хватало драйвера scsi_cd. Поскольку я пользовался копи-пастом из NetBootImage, я пропустил его.

    Пожалуй, как демо CD его распростанять ещё рано, но, по крайней мере, давайте покажу, как его сделать.

    Создание загрузочного CD требует двух дорожек на одном CD. Первой дорожкой будет El-Torito bootable ISO-9660 file-system, несущая загрузочный образ флоппи-дискеты. Она создаётся вот такой командой:

    jam -q haiku-boot-cd

    После выполнения команды, у вас будет файл по имени 'haiku-boot-cd.iso' в директории 'generated/'.

    Второй дорожкой будет BFS образ 'haiku.image' в 'generated/', который создаётся так:

    jam -q haiku-image

    В Unix/Linux и BeOS для создания CD может быть использован cdrecord:

    cdrecord dev=x,y,z -v -eject -dao -data generated/haiku-boot-cd.iso generated/haiku.image
    где x,y,z - номера устройств вашего CD рекордера (их можно узнать по команде cdrecord -scanbus)

    Пользователи Windows могут найти и использовать .cue файлы от дистрибутивов BeOS, они должны работать с Haiku

    François Revol

    2008/03/04
    постоянный адрес

    метки:

    Mindmap дискуссии об alpha 1

    прекрасная выжимка из дискуссии, если кому интересно
    Haiku%20Alpha%201%20Decision.png
    2008/02/27
    постоянный адрес

    метки:

    Сводка работ по Haiku #5: 6-25 февраля 2008 года

    Вот что у нас случилось за последние три недели. Аксель катался на лыжах, но работы из-за этого не останавливались (и Аксель отметился почти во всех разделах, которые вы увидите ниже).

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

    SVN commit list

    Майкл Лотц сообщил, что ему удалось забрать исходники Haiku из SVN, собрать их и запустить полученный образ в QEMU (с kqemu) - и всё это под Haiku. Компилятор, flex и QEMU были взяты из BeOS R5 в виде её родных бинарников. "Но это же почти самосборка" - как сказал Майкл. Это замечательная веха, но как верно отметил Майкл, "ещё не финиш" - есть утечки памяти, которые не дают сделать весь процесс в один заход, да и сами инструменты должны быть собраны под Haiku, чтобы добиться желаемой самосборки. Но даже в таком виде это хороший показатель стабильности, которой Haiku достигла в последнее время.

    Ядро

    Аксель исправил ошибку, когда запускались два экземпляра одного драйвера
    Инго исправил несколько багов в новом оптимизированном коде системных вызовов
    Инго исправил runtime_loader, который теперь правильно распознаёт уже загруженные библиотеки, что позволяет perl корректно работать (хотя некоторые тесты он до сих пор заваливает)
    Майкл отправил полностью переделанныю реализацию heap для выделения памяти в ядре - теперь возможны множественные heap с динамическим изменеием размера. Это работает лучше и масштабирумее, чем старый распределитель. Он также добавил поддержку трейсинга для распределителя памяти, что позволит отслеживать утечки памяти.
    Аксель и Инго сделали автоматические рестарты по вызову и улучшили обработку сигналов.
    Инго добавил в thread_yield() булев параметр, чтобы управлять его поведением. Теперь, если больше нет других ожидающих нитей, то текущая нить не будет переназначаться, что ведёт к огромному ускорению в /dev/urandom/ и другом (perl, ssh, и т.д.)
    Аксель исправил уведомление о блокировке файла, теперь sqlite работает в Haiku
    Инго исправил работу ядра с группами процессов и setpgid() работает как описано в POSIX
    Аксель начал работать над мониторингом директорий драйверов и файловых систем. Когда он закончит, поддержка новой периферии сведётся к перетаскиванию файла драйвера в нужную директорию.
    Инго исправил бесконечные таймауты кое-где, вызывающие зависания
    Исправлены обрушения по выходе из некоторых бинарников R5 (например SVN)

    Система сборки

    Самуэль Родригез Перес добавил поддержку записи в файловую систему из FreeBSD.
    Инго почти закончил поддержку пакета разработчика из под haiku
    Аксель и Инго добавили возможность делать образ для VMware за один проход, меняя в образе только изменённые файлы, и не трогая остальные.

    Поддержка аппаратуры

    У многодорожечных CD теперь монтируются все дорожки (CD с BeOS/Zeta будут работать)
    Оливье Руи Дорантес продолжает работу над bluetooth
    Маркус переписал распределение виртуальных шин в pci, и система стала нормально грузиться в некоторых конфигурациях.
    Добавлен драйвер сетевой карты Intel ipro100

    Сеть

    Аксель исправил передачу больших кусков данных по TCP сокету за раз
    Все сокеты-наследники теперь удаляются вместе с родителем, что раньше вызывало KDL при запуске Firefox
    Поддержка системного рестарта добавлена в функции сетевых драйверов

    Interface Kit/app_server

    Стефан сделал кое-что с BTextControl и BTextView.
    Рене Голен (автор знаменитой Vision) исправил кое-что в BListViews, например скорость получения координат элементов списка
    Стефано исправил включение TermView в сторонние приложения и медленное выравнивание слов в BTextView.
    Стефан поставил двойную буферизацию в app_server, если он запускается в 32 битном VESA режиме, что дало огромный прирост скорости. Также он улучшил механизм скрытия перекрывающихся областей (например курсор), исправил несколько багов и повторение кода.

    Translation Kit

    В сборку добавлены трансляторы изображений PCX, EXR (открытый формат HDR) и RAW. Джером сделал общий код трансляторов в виде разделяемой библиотеки и теперь все трансляторы используют её, а не копируют код.

    Прочее

    В одном из прошлогодних обновлений рассылки Glass Elevator я видел дискуссию о модели расположений Критофа Латтерота. Джеймс Ким взял модель за основу и сделал её совместимой с новой системой расположений Haiku. Кристов также внёс некоторые изменения в линейный построитель.
    Итамар добавил в print_server поддержку адд-онов, позволяющих автоматически определять устройства (USB принтеры)
    Стефано обновил bash до 3.2
    Джулун отправил реализацию ref-counted BString-ов, что делает передачу копий BString в функции быстрее
    Александр Декнер сделал патч для Keymap, увеличив скорость отрисовки и уменьшив мелькание.

    Общий список рассылки

    Дэвиду Макполу и друзьям удалось собрать версию nasm для BeOS
    Была смешная перебранка по поводу emacs/vi (у нас тут настоящей ругани никогда не бывает, мы далеки от этого), которая закончилась тем, что Pe будет в BeOS редактором по умолчанию. Он приятен в использовании. сочетается с другими Haiku-приложениями и до сих пор выпускается - последнюю его версию можно скачать на Berlios
    Также была дискуссия филосовского характера о нужности портирования библиотек, вроде wxWidgets: да, они принесут кучу готовых портов за короткое время, но не разрушат ли они целостность впечатлений от Haiku и не остановят ли людей от разработчки родных приложений?
    Фредерик Холмквист сообщил об успешной сборке Firefox для GCC4-Haikuю Теперь у пользователей этой платформы тоже есть современный браузер, как и у пользователей дефолтной GCC2 сборки Haiku, которые могут взять сборку Firefox для BONE на bebits

    Рассылка для разработчиков

    В расслке для разработчиков видел обсуждение о том, как скоординировать усилия по портированию стандартных инструментов, вроде perl и autoconf. Юриас дал ссылку на проект BePorts (не видел его раньше), который, похоже, станет тем самым местом для координации.
    Аксель сказал, что Haiku будет гораздо POSIX-совместимая, чем BeOS, посему в старых портах придётся убрать весь обходной кож, которых станет ненужным, что упросит их.
    Раздел http://dev.haiku-os.org/ переехал на новый сервер, что должно поднять производительность багтреккера. Переезд вызвал баг, из-за которого мы не могли посылать тикеты, но Нильс его исправил
    Джеральд Заяц сообщил, что закончил драйвер для графических карточек на чипах S3 семейств Trio и Virge
    Состоялось обсуждение, нужно ли добавлять в меню Mail вызов Email Preferncies, которая переросла в дискуссию где место самим Prefercies... Также обсудили где должны быть About... и Quit в приложениях. Идея сделать отдельное меню приложения, возможно, представленного иконкой самого приложения, обсуждалась также, но решение пока не принято

    Рассылка ядра

    Крейг Маджина представил себя в рассылке - у него появилось свободное время и он хочет помочь Haiku. Добро пожаловать в проект, Крейг, надеюсь ты найдёшь себе что-то интересное.

    Вебсайт

    Хайку была показана недавно в двух местах - смотрите отчёт Коки на конференции CSaLE в Лос-Анжелесе и отчёт Франсуа на FOSDEM в Брюсселе.

    Конец

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

    До следующего раза...

    2008/02/26
    постоянный адрес

    метки:

    Что сделано во время FOSDEM: USB webcam & IM Kit

    Починил кое-что на FOSDEM, вот скриншоты:

    USB вебкамера

    Как я сказал раньше, я починил мой драйвер usb вебкамеры и я хотел его попробовать как можно быстрее. Похоже, на моём атлоне работает.

    __.png

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

    Надеюсь, скоро usb заработает лучше и мы увидим картинку целиком.

    IM kit

    В целом он работает, как я говорил уже (я пробовал только gtalk, но остальное тоже должно работать, кроме yahoo messenger, для которого нет библиотеки), вот, смотрите:

    shot_haiku_im_kit_001.png

    Остались недоработки с корректной подстановкой mime передаваемых файлов, но уже вполне можно отвечать на получаемые сообщения.

    François Revol

    Haikuware временно отключен

    Похоже, Haikuware стал слишком популярен: это хорошая новость, но есть и плохая - провайдер приостановил мой аккаунт. Расположенный на общем сервере, он стал естьслишком много траффика, а также потреблять много ресурсов, мешая другим клиентам на той же машине.

    Поэтому я перехожу на VPS. Посмотрим что получится - возможно придётся переходить на выделенный сервер. В любом случае сожалею о том, что буду недоступен! Скоро вернусь ;)

    Karl vom Dorff

    2008/01/28
    постоянный адрес

    метки:

    Итоги 2007 Google Summer of Code

    2007 год стал первым годом, когда Haiku участвовала в Google Summer of Code. Оглядываясь назад, можно смело сказать, что это был оглушительный успех. Нам дали 8 студентов. Почти закончен FireWire, большие улучшения в поддержке сети и много всего разного.

    Модуль FireWire для Haiku
    Студент: JiSheng Zhang
    Наставник: Jérôme Duval
    JiSheng провёл своё лето, портируя поддержку FireWire из FreeBSD в Haiku. Сейчас портированы модуль шины (OHCI + ядро firewire) и интерфейс пользователя. Работает передача DV в файл (пока только из командной строки). Поддержка устройств хранения информации (с SBP) в разработке. Код положен в наш репозиторий (подробности смотрите в 00README.haiku)

    Сетевой префлет для Haiku
    Студент: Andre Garzia
    Наставник: Stephan Aßmus
    Andre изготовил первую работающую версию сетевого префлета, через которую можно настроить сетевой интерфейс. Он подолжает работу над ним, добавляя дополнительные функции, такие как поддержка профилей. Код положен в наш репозиторий (подробности смотрите здесь)

    Установщик пакетов (.pkg)
    Студент: Łukasz Zemczak
    Наставник: Ryan Leavengood
    Łukasz продолжил начатую наставником работу по реверс-инженирингу формата pkg файлов, разработанных для системы SoftwareValet в BeOS. Многие из приложений в BeOS распространяются именно в этом формате. Łukasz сделал парсер для этого формата и программу для установки с GUI. Кроме того, он сделал систему для регистрации установочных пакетов, чтобы впоследствии их можно было просто деинсталировать. Вместе с Haiku Creative Design Team они разработали простой, но эффективный интерфейс пользователя для установщика и анинсталлера. Он также внёс изменения в Haiku GUI layout API для правильного отображения шрифтов.

    Предкеширующий алгоритм в Haiku
    Студент: Krishna Kishore Annapureddy
    Наставник: François Revol
    Krishna написал код упреждающего чтения в дисковом I/O. Код ещё не готов для репозитория, однако показывает уменьшения задержки до трёх раз при последоватльных чтениях с диска.Тесты чтения с CD-ROM также показали рост производительности.

    Изосинхронные потоки USB
    Студент: Salvatore Benedetto (emitrax)
    Наставник: Oliver Ruiz Dorantes
    Salvatore приступил к работе сразу, как узнал о своём участии в GSoC. Его работа включала все уровни USB архитектуры Haiku: контроллер UHCI, управление шиной USB. В нынешний USBKit добавлена поддержка изосинхронных потоков и установка дополнительных параметров. Для завершения потребовалось также внести изменения в драйвер usb_raw. Для тестовых целей он сделал простое приложение, читающее буфер вебкамеры. Проект удался, хотя часть кода всё ещё нужно закоммитить.

    Создание планировщика нитей (threads) с привязкой к CPU
    Студент: André Braga
    Наставник: Axel Dörfler
    André разработал и сделал для Haiku O(1) планировщик - правда на самом деле в ядро он пока не встроен. Планировщик прекрасно справляется с распределением процессорного времени на запущенные нити, учитывая их уровни приоритета. Привязка к CPU пока не совсем вырисовывается, но будет сделана после интеграции в ядро, над которой André будет работать несколько следующих недель.

    Переработка сетевого стека: IPv6, ICMP, multicast и т.д.
    Студент: Hugo Santos
    Наставник: Axel Dörfler
    Hugo начал работать над сетевым стеком до официального открытия GSoC и показал необычную скорость и высокое качество работы. Это, в свою очередь, послужило дополнительным побуждающим мотивом и он занялся вещами, напрямую к сети не относящимися (такими как механизм дефрагментации памяти), а также дал нам совместимость с сетевыми драйверами FreeBSD (пока на ранней стадии). Потом, к сожалению, он не смог нас радовать такой же производительностью: он переехал в другую страну, и у него дома не было интернета, так что он не смог дальше работать. У него осталась часть работы и он в ближайшие недели собирается закончить IPv6.

    Реализация обработчика ошибок ICMP и их оповещиния
    Студент: Ivo Vachkov
    Наставник: Axel Dörfler
    К сожалению, у Ivo не оказалось того времени для проекта, на которое он рассчитывал, поэтому он не справился с заданием и стал единственным нашим студентом, которому мы бы рекомендовали не оплачивать его труд. Ivo сожалеет о недостатке времени, но полностью согласен с нашим решением. Он прислал мне то, что он сделал - и это могло бы быть неплохим началом. Мы с Hugo постараемся в ближайшее время дописать и использовать это.

    Поздравляем всех участников и до следующего года!

    Архивы

    Сентябрь 2007| Октябрь 2007| Январь 2008| Февраль 2008| Март 2008| Апрель 2008| Май 2008| Июнь 2008| Июль 2008| Август 2008| Сентябрь 2008| Октябрь 2008| Ноябрь 2008| Декабрь 2008| Январь 2009