can3p: (Default)

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

Вот выжимка про доклады:

День 1

1) Identity in a World of Values, Hans Hübner

Доклад был больше интересен подходом, где по факту Ганс показал, как можно перегрузить операции в clojure так, чтобы организовать транзакции над ними так, чтобы код по виду не сильно отличался от обычного, запилил прототип для этого, то же самое когда-то делал для common lisp

2) Programmatic Manipulation of Common Lisp Type Specifiers, Jim NewtonDidier VernaMaximilien Colange

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

3) Common Lisp UltraSpec - A Project For Modern Common Lisp Documentation, Michal Herda

Человек взялся за титанический труд переделывания спецификации common lisp в человеческий состав. У спеки сложная судьба, все до сих пор пользуются сайтом с дизайном из 1995 года.

Михал зашел немного необдуманной на мой взгляд, т.к. он начал руками все изменять и, конечно, уже забыл, где и что менял, поэтому для верификации его работы нужно будет снова пройтись глазами по всей спецификации, что сильно усложняет задачу. У меня были наработки на этом же фронте. Посмотрим, вдруг получится объединить усилия.

4) Loading Multiple Versions of an ASDF System in the Same Lisp Image, Vsevolod Domkin

Всеволод захачил билдсистему так, чтобы в некоторых ситуациях позволить иметь в образе одни и те же зависимости с разными версиями. Обычный подход в этом состоит в том, чтобы иметь только одну версию, которая подходит всем зависимостям, ну или просто не работать :) Возможно node.js в этом случае работает особенно успешно, т.к. там require не добавляет ничего в текущую область видимости, а возвращает объект, т.е. проблема локализуется. Интересно было бы посмотреть, взлетит ли подход Всеволода в боевых решениях.

Кроме этого Всеволод вполне справедливо критиковал ASDF за то, что тот никак не работает с версиями систем, которыми манипулирует.

5) A Lisp Way to Type Theory and Formal Proofs, Frederic Peschanski

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

6) Type Inference in Cleavir, Alexander Wood

Доклад, который мог бы быть гораздо интереснее, если бы докладчик его хорошо рассказал. Алекс рассказывал про техники вывода типов, которые он реализовывал в новом common lisp компиляторе. Кроме вывода типов иногда получалось удалить мертвый код.

7) Delivering Common Lisp Applications with ASDF 3.3, François-René Rideau

Новости про билд систему. Из интересного для меня - asdf научился запекать в образ c-зависимости.

8) Radiance – a Web Application Environment, Nicolas Hafner

Новый веб фреймворк от Николаса Хефнера, выглядит интересно, а также обладает подробной документацией, что для common lisp, вообще говоря, в новинку. Думаю его использовать в своих приложениях.

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

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

9) Lightning talks - Trial game engine, Nicolas Hafner

Можно только удивляться производительности этого парня, вот еще и игровой движок. Из интересных особенностей - конечно же интерактивная разработка, а так же то, что что объекты могт определять код для шейдеров, и если один объект наследуется от другого, и для обоих шейдерный код определен, то, внимание, под для шейдеров парсится и комбинируется.

10) Erlangen, Max Rottenkolber

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

День 2

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

1) How the strengths of Lisp-family languages facilitate building complex and flexible bioinformatics applications, Bohdan Khomtchouk

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

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

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

2) Parallelizing Femlisp, Marco Heisig, Nicolas Neuss

Отчет о том, какие оптимизации в последнее время делали в библиотеке для расчет PDE femlisp. Мне сложно что-то сказать по этому поводу.

3) General Game Playing in Common Lisp, Steve Losh

Отличный доклад, вводящий в тему General Game playing. Основная идея здесь оказалась, что был определен язык правил для игр, которым можно их довольно много описать, с ограничениями конечно - пока подходят настольные походовые игры с открытым состоянием вроде шахмат или крестиков-ноликов. Соответственно, задача в том, чтобы написать бота, который бы показывал хорошую производительность без привязки к каким-либо правилам. Стив написал на common lisp библиотеку, которая парсит правила и умеет подключаться к игровому серверу, плюс написал библиотеку для написания ботов.

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

4) Fast, Maintainable, and Portable Sequence Functions, Irène Durand, Robert Strandh

Доклад о небольшой возможной оптимизации в реализации функции find. Идея в том, что можно довольно элегантно упростить задачу компилятору, если в реализации функции генерировать явную проверку на наличие параметров. Если так делать, то компилятор сможет лучше оптимизировать сам алгоритм. Если честно, мне фича показалась слишком маленькой для отдельного доклада, особенно для такого патриарха, как Роберт Странд, но может я просто не в теме.

5) DIY Meta Languages with Common Lisp, Alexander Lier, Kai Selgrad, Marc Stamminger

Отчет о последних успехах проекта c-mera. Суть в том, чтобы преобразовать c/c++ программу в s-выражения и подключить к результату всю мощь common lisp макросов. Для решения задачи пришлось сделать довольно много телодвижений, но все получилось. Возникает, конечно, вопрос, стоил ли результат того, т.к. существуют и альтернативные системы макросов, например этот, о чем и был поднят вопрос в конце.

6) Static Taint Analysis of Event-driven Scheme Programs, Jonas De Bleser

Доклад одного из дипломников о том, как можно отслеживать утечки чувствительной информации в событийной модели.

7) on the , Alain Marty

Функциональный язык, который встраивается в текст и позволяет получать интерактивные документы. Идея показалась мне довольно интересной.

8) Writing a portable code walker in Common Lisp, Mikhail Raskin

Доклад был интересен тем, что докладчик, как я понял, построил честный code walker для common lisp. Честный в этом контексте значит полностью разворачивать код, все макросы, и основная боль при этом - нечеткие места в стандарте, которые накладываются на детали реализации, специфичные для каждого компилятора. В конце доклада последовал справедливый вопрос, а не стандартизировать ли все это в конце концов.

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

9) Removing redundant tests by replicating control paths, Irène Durand, Robert Strandh

Еще один доклад про оптимизацию кода, в этом случае рассматривался случай с оператором let.

Заключение

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

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

Со всеми статьями симпозиума можно ознакомиться.

FOSDEM 2017

Feb. 6th, 2017 01:03 am
can3p: (Default)

Собственно, в Брюссель поехали, чтобы в этот раз попасть на FOSDEM 2017, самую большую опенсорс конференцию Европы, которая проходит каждый год на территории местного университета.

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

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

Вот сводка по докладам со ссылками на сайт конференции, если интересно.

Суббота

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

Прекрасный образец бюрократической мысли. С одной стороны понятно, что без этого нельзя, с другой стороны это самый лучший способ убить всю креативность. Трек - Юридические вопросы в опен сорсе.

Спикеры задались достойной целью - ни больше ни меньше, а создать хранилище всего мирового исходного кода для открытого ПО. Мотивация: гитхабы приходят и уходят, дискеты размагничиваются, программисты не вечны, и в каждый трагический момент многие исходники теряются. Как примеры - google code и gitorious. Чтобы решить проблемы ребята решили создать нонпрофит, который бы занимался сохранением этих данных. Сейчас постоянно зеркалируются гитхаб, битбакет, разные инстансы гитлаба, все пакеты дебиана и что-то там еще, все дедуплицируется, в случае с репозиториями еще сохраняется и вся история коммитов. Вот-вот будет доступно API, потом будут работать над веб интерфейсом. По-моему во истину благородная цель, рядом с которой стоит только вебархив, который выполняет ту же работу для вебсайтов.

оф.сайт

Автора рассказал об эволюции сборщика мусора для руби. Изначально у них был просто mark and sweep, потом начали дробить sweep фазу, а в конце уже дробили mark фазу. Сейчас проблемы - фрагментация памяти из-за старых объектов, возможные проблемы при наличии большого количества объектов, с которыми работают C расширения языка, т.к. все эти объекты по полной проверяются в каждую паузу gc, в то время как проверку других объектов иногда можно оптимизировать и резко уменьшить время проверки.

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

Рекоммендованная книжка по кишкам руби

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

Этот доклад мог бы быть гораздо интереснее. Презентовали два разработчика, один из команды FreeBSD, другой мз команды OpenBSD. OpenBSD безопасней, все переписывают под себя и не так парятся относительно лицензий, FreeBSD больше подходит для энтерпрайза и десктопа, имеет дополнительные ништяки вроде ZFS.

Я надеялся получить что-то, больше похожее на отчет о текущем состоянии систем, для чего они готовы и т.п., но увы.

Очень интересный доклад, в котором сначала кратко рассказали, как принципиально работает USB, как адресуются устройства, как подбирается нужный драйвер, потом показали, как некоторые вещи можно отлаживать или диагностировать наживую управляя флагами через виртуальную папку, которая создается для каждого устройства. Если бы я хотел отладить какое-то USB устройство, я бы непременно пересмотрел.

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

Это был не доклад, скорее воспоминание о человеке. Я о нем ни разу не слышал, но мужик оказался очень интересным, очень жаль, что его больше с нами нет. Питер Хинтенс - автор ZeroMQ, один из лидеров движения против патентов в Европе и стандартизации OOXML в качестве индустриального стандарта.

В последние годы написал несколько книг, которые все, как одна имеют отличные отзывы, и которые я вознамерился непременно прочитать.

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

Большой человек был, земля пухом.

блог Питера книги Питера тот самый пост

Воскресение

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

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

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

Из интересных планов на будущее - реализация возможности переноса учетки с сервера на сервер со всеми данными.

оф.сайт список хабов

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

оф.сайт

Общий обзора Matrix, чем он отличается от XMPP, и какие планы у проекта на будущее. Если коротно - то проект менее фрагментированный, единая спека, куча клиентом. Одна из целей - это шифрование разговоров, другая - быть универсальным мостом, который бы объединял все разные мессенджери. Чтобы, например, можно было написать из скайпа в телеграм.

Последние новости проекта, основное время было посвящено реализации федерации, чтобы можно было пользователю одного сервера шарить документы с пользователем другого, ну и подобное. Интересно, что фокус делается не только на взаимодейтсвие между nextcloud серверами, но вообще с любыми аналогичными решениями на базе единого формата API.

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

В конце доклада показал, что они реализовали возможность делать игры на основе единой картинки 255x255 пикселей, в которой хранятся сразу спрайты, карта уровней и логика взаимодействия (!).

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

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

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

Хорошая документация и мануалы - это само собой. Привет лисп сообществу со всем этим.

Скучный доклад от шишки из apache foundation, который в целом повторял предыдуший, но горааааздо скучнее.

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

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

Этот доклад в целом повторял предыдущий, но было больше примеров реальной работы, шифрования и прочего

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

Profile

can3p: (Default)
can3p

April 2017

S M T W T F S
      1
2 3 45678
9101112131415
16171819202122
23 242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 10:53 am
Powered by Dreamwidth Studios