![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Плюнув на привычку молчать, пока не спрашивают, выступил на междусобойчике по Перлу в Берлине.
Первым делом, забыл песочные часы дома. Вспомнил, что хотел по ним контролировать время как раз в тот момент, когда возвращаться было уже поздно. Вторым, поезд, на котором ехал, на первой же станции встал и сказал, что больше не поедет. Третьим, придя в зал конференции, поставил рюкзак у дивана, а потом забыл, где он стоит. Ходил, искал минут пять. Плюс ещё перенесли доклад на самый конец. Впрочем, это, скорее, на самом деле плюс. Вот сейчас думаю, может быть это были сигналы свыше и не стоило оставлять следов на английском. Всё-таки про менеджмент были не очень лестная информация.
Материала набралось часа на два вдумчивой беседы с введением в тему, дискуссией и примерами. Впихнул в 20 минут доклада. Мне десять нужно обычно просто, чтоб разогреться и рассказать, какой я хорошенький. В результате, получилось, как получилось.
Вдогонку картинке про agile добавлю ещё две, сделанные сегодня в электричке.

The Legend of The Right Process:
- We pretend we build pyramids.
- Waterfall, spiral, scrum, XP... are similar: product can only grow. Differences are only in the ways of growth.
- We pretend we cannot throw anything away. We do not reduce waste but deny it.
"The Legend of The Right Process" by Vit R is licensed under a Creative Commons Attribution 3.0 Unported License.
Harvard management methodology wizards claim that the human resources quality is not important, if you have the right management process.
Be prepared.

Если кто-нибудь возьмётся подкорректировать английский, закину в блог текст доклада. А то у меня владение языком гораздо ниже того уровня, чем требуется для адекватного воздействия на аудиторию.
Первым делом, забыл песочные часы дома. Вспомнил, что хотел по ним контролировать время как раз в тот момент, когда возвращаться было уже поздно. Вторым, поезд, на котором ехал, на первой же станции встал и сказал, что больше не поедет. Третьим, придя в зал конференции, поставил рюкзак у дивана, а потом забыл, где он стоит. Ходил, искал минут пять. Плюс ещё перенесли доклад на самый конец. Впрочем, это, скорее, на самом деле плюс. Вот сейчас думаю, может быть это были сигналы свыше и не стоило оставлять следов на английском. Всё-таки про менеджмент были не очень лестная информация.
Материала набралось часа на два вдумчивой беседы с введением в тему, дискуссией и примерами. Впихнул в 20 минут доклада. Мне десять нужно обычно просто, чтоб разогреться и рассказать, какой я хорошенький. В результате, получилось, как получилось.
Вдогонку картинке про agile добавлю ещё две, сделанные сегодня в электричке.
GPW 2013

The Legend of The Right Process:
- We pretend we build pyramids.
- Waterfall, spiral, scrum, XP... are similar: product can only grow. Differences are only in the ways of growth.
- We pretend we cannot throw anything away. We do not reduce waste but deny it.

Harvard management methodology wizards claim that the human resources quality is not important, if you have the right management process.
Be prepared.

Если кто-нибудь возьмётся подкорректировать английский, закину в блог текст доклада. А то у меня владение языком гораздо ниже того уровня, чем требуется для адекватного воздействия на аудиторию.
no subject
Date: 2013-03-15 06:25 pm (UTC)no subject
Date: 2013-03-15 07:00 pm (UTC)no subject
Date: 2013-03-15 07:09 pm (UTC)я завтра ночью посмотрю.
no subject
Date: 2013-03-15 07:47 pm (UTC)Послал.
Спасибо.
no subject
Date: 2013-03-15 07:51 pm (UTC)Да не за что пока. :)
no subject
Date: 2013-03-15 07:54 pm (UTC)no subject
Date: 2013-03-15 09:04 pm (UTC)no subject
Date: 2013-03-15 09:08 pm (UTC)no subject
Date: 2013-03-15 07:31 pm (UTC)Короче, пришлите мне текст на yuri.panchul эт imgtec.com с сс на yuri эт panchul.com и panchul эт mips.com - мне интересно.
no subject
Date: 2013-03-15 07:52 pm (UTC)Короче, пришлите мне текст на ... мне интересно.
Интересно проверять, интересно комментировать или интересно почитать? На почитать он и так когда-нибудь появится.
Текст послал. На редактуру.
no subject
Date: 2013-03-15 08:03 pm (UTC)Только вчера сражался с CPAN-ом (вообще я не перловец, и вообще сейчас в хардверной группе, но пришлось).
При попытке поставить Expect под Cygwin с помощью CPAN обнаружил, что для вызываемого втихую gcc-4 не хватает некоей библиотеки, которая на одних mirrors Cygwin-а была, а на других - нет. Нашел в интернете извинение кого-то, кто меинтейнит Cygwin. Понятно, что к CPAN-у так таковому это отношение не имеет, но все равно меня напрягает концепция, что для генерации production-quality коммерческого пакета (пусть даже вспомогательного) приходится использовать тул, который динамически вытягивает какие-то компоненты с интернета для конфигурации инвайромента. В этот есть какая-то неправильность.
Порекомендовал менеджменту как минимум выбросить виндоус-версию фиговины, тем более что ее клиенты все равно не могут использовать, после того, как другая компания связанная с той же фиговиной, перестала поддерживать виндоус.
no subject
Date: 2013-03-15 09:12 pm (UTC)С тусовки вынес только то, что есть люди, работающие с цветными текстами на чёрном фоне. Естественно, проектор на экране выдаёт что-то не читаемое. И ещё полно людей, которые уверены, что Перл всем ещё покажет.
Я использую на всех платформах ActivePerl. С пакетами пока что никаких проблем не было. По крайней мере, я не помню.
А тех пользователей, что не могут разобраться, к программированию допускать нельзя изначально. Пускай говорят, что нужно, и им те, кто могут, кодируют. Дешевле выйдет.
no subject
Date: 2013-03-15 10:29 pm (UTC)Дык я не пользователь Perl-а. Просто возникла некая одноразовая нужда с legacy-продуктом 10 летней давности, генерация пакета для которого происходит с помощью Perl-скрипта, зависимого от дюжины пакетов из CPAN-а. А человек, который этим занимался, работает в другой группе. Пришлось мне узнать, что такое CPAN. В продуктах моей собственной архитектуры я стараюсь избегать внешних dependencies - только чтобы один из трех коммерческих верилог-симуляторов был установлен.
no subject
Date: 2013-03-15 10:50 pm (UTC)Если человек делает продукт для промышленного использования, требующий какие-то библиотеки, он кладёт на сервер в архив не только продукт, но и полный дистрибутив, необходимый для его выполнения и пишет инструкции по установке.
CPAN - это плод коллективной деятельности. Если одна библиотека, требует каких-то других, то правильная стратегия - вытянуть из базы и установить свежие версии по всем зависимостям. Флеш и яву все обновляют в принудительном порядке, потому что не хотят, чтобы в свежие дыры пролезли хаккеры.
no subject
Date: 2013-03-15 10:59 pm (UTC)Именно так. Это в свое время не было сделано, по-видимому с отговоркой, что это внутренний продукт. В результате я вчера мучался выставляя environment, чего вообще не должен был делать, если все делать по-человечески.
Т.е. претензии две - 1) к внутреннему разработчику, 2) к человеку, поддерживающему Cygwin. Но на CPAN это проявилось.
no subject
Date: 2013-03-15 11:14 pm (UTC)Я вижу, как люди Винды с XP на семёрку мигрируют. Вот это называется "мучался". И какими пинками они пытаются заставить купленный софт работать, это тоже видел.
Если пойти в Гугл, то там написано, что умные люди не устанавливают библиотеки руками, а ставят ActivePerl, который нажатием пары кнопок всё скачивает в скомпилированном виде и устанавливает без всякого напряжения мозгов.
no subject
Date: 2013-03-15 11:27 pm (UTC)И то, если бы компания не была бы прижимистой на деньги, я бы использовал Verific (C++ пакет).
Но так как компания прижимистая на деньги, то я использую VerilogPerl и из-за него пару лет назад прочитал книжку Learning Perl и выучил подмножество языка, на котором аккуратно написал несколько скриптов для своих нужд.
Но это как с Фортраном-4 для парсирования текстов - можно если постараться, но в качестве универсального инструмента Perl меня просто пугает - неортогональность, кривые структуры данных, кривая передача параметров, кривая объектно-ориентированность, и везде - какие-то исключения. Народ просто изобрел себе работу.
no subject
Date: 2013-03-15 11:34 pm (UTC)Они не кривые, они гибкие. Практически для любой задачи можно выделить те подмножества свойств языка, которые обеспечат удобство работы.
Про исключения не понял. Может быть проще взять актуальную версию среды, а не десятилетней давности.
no subject
Date: 2013-03-16 12:02 am (UTC)А вот для VerilogPerl я использовал все самое свежее.
У меня сложилось впечатление, что на перле трудно специфицировать структуры данных типа деревьев, массивов структур из массивов структур и т.д. То есть я это выучил как подмножество, но за пределы подмножества не понимаю, как ступать, а превращать жизнь в изучение перла не хочу, ибо занимаюсь другими вещами.
Исключение, которое меня реально шокировало:
no subject
Date: 2013-03-16 12:37 am (UTC)Ну-у-у. Не знаю. Если пытаться на Перле сделать Верилог, то, наверно, трудно. Для людей, работавших на С с указателями должно быть просто. Нужно просто прочитать не "Перл для идиотов", а что-нибудь посерьёзнее.
When I call my variables $a or $b
По голове кандилябром сразу. Имена переменных не должны быть короткими, за исключением особых случаев.
Кому будем жаловаться?
В Перле просто куча сокращений для ключевых слов. В большинстве случаев это исключительно удобно для людей, с Перлом работающих, но китайская грамота для не посвящённых. Ну так он и является языком для профессионалов. В гоночную машину тоже не стоит сажать всех кого попало.
По-моему, кое-у-кого нездоровая тенденция доказательства проблематичности Перла через всякие извращения.
no subject
Date: 2013-03-16 03:47 am (UTC)*** Для людей, работавших на С с указателями должно быть просто. ***
Ну вот что-что, а в С я абсолютный эксперт, ибо пишу на нем с 1986 года, причем написал три C компилятор-а (два на основе PCC и один с нуля), и поэтому меня напрягает как например в Перле написать эффективно рекурсивный обход дерева с модификацией со структурами вида:
struct node
{
int data;
struct node * left;
struct node * right;
};
Причем дерево нужно не только обходить, но и модифицировать - переносить поддеревья с места на место. Это что - нужно использовать перловский ООП и references?
Еще всякие массивы структур массивов хэшей массивов (я конечно разобрался в частных случаях, но как-то все странно смотрится).
no subject
Date: 2013-03-16 10:22 am (UTC)Первым делом - структура С - это тот же класс С++, только не могущий сделать аттрибуты private и protected. Так что OO для задачи - это самое то.
Вторым, спрашиваю у гугла "perl binary tree" и первая же ссылка выдаёт.
Правда, пример какой-то древний. Если написать use strict; и use warnings;, что всегда стоит делать, то надо ставить кавычки.
как например в Перле написать эффективно
"Эффективно" на Перле - это "быстро написать"
Если нужна скорость выполнения, проще взять другой язык. Правда, на разумных массивах данных разница не такая, чтобы стоило этим озабачиваться.
no subject
Date: 2013-03-16 03:26 pm (UTC)Это сразу объясняет, почему в перловских книжках бинарные деревья появляются где-то в advanced разделах. Кроме этого, это опровергает утверждение многих (не всех) перловцев, что якобы перл является универсальным языком для всего ("если у вас есть задача - напишите ее на перле").
no subject
Date: 2013-03-16 03:49 pm (UTC)А вот и фиг.
КлассОбъект - это blessed variable. Класс - это модуль.Можно сделать класс на массиве, можно на текствой переменной. Хеш просто в большинстве случаев удобнее. Но, если требует задача, можно сделать так, чтобы решение подходило под неё лучше.
Проблема в том, что в моих задачах таких структур может быть условно миллион экземпляров расзной степени одновременности.
Ну и? Если они просто болтаются без дела, проблема не в Перле, а в архитектуре. У меня спокойно из всяких хешей массивов хешей и таблицы на миллионы строк выводятся, и подструктуры извлекаются, и файлы в JSON на десяток мегабайт пишутся. (Которые потом одним движением берутся другим перловским скриптом для дальнейшей обработки)
Насколько эффективна реализация таких объектов в интерпретаторе или компиляторе перла? Memory footprint? Насколько хорош сборщик мусора?
Пардон, благородный дон пишет реалтайм? Тогда я бы посоветовал делать критичные к времени вещи на C++, а если без Перла не обойтись, то ему оставить только интерфейсы.
Если это не реалтайм а расчёты чего-то сложного, то я бы не обращал внимания на такие мелочи. Ну будет работать программа полторы минуты вместо сорока секунд. У меня вообще некоторые рассчёты шли часа по четыре. Правда, там основное время было на чтение и запись. Но результаты были всё равно готовы раньше, чем я бы на С++ просто базовые функции оттестировал.
Это сразу объясняет, почему в перловских книжках бинарные деревья появляются где-то в advanced разделах.
Бинарные деревья появляются во всех книжкак в advanced разделах. А делать структуры как в примере на Перле умеют даже люди, которые не знают, что такое хеш и воспринимают это просто как форму записи.
no subject
Date: 2013-03-15 09:48 pm (UTC)