vit_r: default (vit_r)
[personal profile] vit_r
Плюнув на привычку молчать, пока не спрашивают, выступил на междусобойчике по Перлу в Берлине.

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

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

Вдогонку картинке про agile добавлю ещё две, сделанные сегодня в электричке.

GPW 2013



GPW_2013_KP_img_03_IT_process_and_pyramids

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.

Creative Commons License"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.

GPW_2013_KP_img_04_user




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

Date: 2013-03-15 06:25 pm (UTC)
From: [identity profile] runa-aruna.livejournal.com
текст большой?

Date: 2013-03-15 07:00 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Шесть тысяч слов. В основном обрывки фраз и ключевые слова.

Date: 2013-03-15 07:09 pm (UTC)
From: [identity profile] runa-aruna.livejournal.com
ну, пришли на почту, если хочешь.
я завтра ночью посмотрю.

Date: 2013-03-15 07:47 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Хочу.
Послал.
Спасибо.

Date: 2013-03-15 07:51 pm (UTC)
From: [identity profile] runa-aruna.livejournal.com
Ага, вижу.
Да не за что пока. :)

Date: 2013-03-15 07:54 pm (UTC)
From: [identity profile] runa-aruna.livejournal.com
Слушай, а там 1500 слов. 86Кб. Файл обрезался по дороге?

Date: 2013-03-15 09:04 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Это я не туда посмотрел. 6 тысяч было символов. :-D

Date: 2013-03-15 09:08 pm (UTC)
From: [identity profile] runa-aruna.livejournal.com
Понял. :)

Date: 2013-03-15 07:31 pm (UTC)
From: [identity profile] panchul.livejournal.com
Честно говоря, лично я чувствую uneasy, когда вижу в одном тексте слова methodology и Perl. С другой стороны, я когда-то за приз в виде бутылки водки написал чисто и хорошо парсирование текста на Фортране-4...

Короче, пришлите мне текст на yuri.panchul эт imgtec.com с сс на yuri эт panchul.com и panchul эт mips.com - мне интересно.

Date: 2013-03-15 07:52 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Любой карго-культ является методологией. Обратное верно не всегда, но часто. На Фортране тоже писал много всякого разного, но предпочитаю брать технологии, подходящие под задачи. Не инструмент красит человека.

Короче, пришлите мне текст на ... мне интересно.

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

Текст послал. На редактуру.
Edited Date: 2013-03-15 07:52 pm (UTC)

Date: 2013-03-15 08:03 pm (UTC)
From: [identity profile] panchul.livejournal.com
Получил. CPAN говорите?

Только вчера сражался с CPAN-ом (вообще я не перловец, и вообще сейчас в хардверной группе, но пришлось).

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

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

Date: 2013-03-15 09:12 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ой. А вот не стоит обсуждать источники, не доступные заходящей сюда публике. Когда текст появится в общественном доступе, тогда можно будет без всяких заговорщицких намёков поговорить.

С тусовки вынес только то, что есть люди, работающие с цветными текстами на чёрном фоне. Естественно, проектор на экране выдаёт что-то не читаемое. И ещё полно людей, которые уверены, что Перл всем ещё покажет.

Я использую на всех платформах ActivePerl. С пакетами пока что никаких проблем не было. По крайней мере, я не помню.

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

Date: 2013-03-15 10:29 pm (UTC)
From: [identity profile] panchul.livejournal.com
*** А тех пользователей, что не могут разобраться, к программированию допускать нельзя изначально ***

Дык я не пользователь Perl-а. Просто возникла некая одноразовая нужда с legacy-продуктом 10 летней давности, генерация пакета для которого происходит с помощью Perl-скрипта, зависимого от дюжины пакетов из CPAN-а. А человек, который этим занимался, работает в другой группе. Пришлось мне узнать, что такое CPAN. В продуктах моей собственной архитектуры я стараюсь избегать внешних dependencies - только чтобы один из трех коммерческих верилог-симуляторов был установлен.

Date: 2013-03-15 10:50 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Пардон, не понял суть претензий.

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

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

Date: 2013-03-15 10:59 pm (UTC)
From: [identity profile] panchul.livejournal.com
*** он кладёт на сервер в архив не только продукт, но и полный дистрибутив, необходимый для его выполнения и пишет инструкции по установке ***

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


Т.е. претензии две - 1) к внутреннему разработчику, 2) к человеку, поддерживающему Cygwin. Но на CPAN это проявилось.

Edited Date: 2013-03-15 11:01 pm (UTC)

Date: 2013-03-15 11:14 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ну, пардон. "Ложечки-то нашлись, но осадок остался"

Я вижу, как люди Винды с XP на семёрку мигрируют. Вот это называется "мучался". И какими пинками они пытаются заставить купленный софт работать, это тоже видел.

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

Date: 2013-03-15 11:27 pm (UTC)
From: [identity profile] panchul.livejournal.com
Мне реально (кроме этого случая) Perl бывает нужен только для написания генераторов всякой всячины используя VerilogPerl - http://www.veripool.org/wiki/verilog-perl

И то, если бы компания не была бы прижимистой на деньги, я бы использовал Verific (C++ пакет).

Но так как компания прижимистая на деньги, то я использую VerilogPerl и из-за него пару лет назад прочитал книжку Learning Perl и выучил подмножество языка, на котором аккуратно написал несколько скриптов для своих нужд.

Но это как с Фортраном-4 для парсирования текстов - можно если постараться, но в качестве универсального инструмента Perl меня просто пугает - неортогональность, кривые структуры данных, кривая передача параметров, кривая объектно-ориентированность, и везде - какие-то исключения. Народ просто изобрел себе работу.

Edited Date: 2013-03-15 11:30 pm (UTC)

Date: 2013-03-15 11:34 pm (UTC)
From: [identity profile] vit-r.livejournal.com
неортогональность, кривые структуры данных, кривая передача параметров, кривая объектно-ориентированность, и везде - какие-то исключения.

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

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

Date: 2013-03-16 12:02 am (UTC)
From: [identity profile] panchul.livejournal.com
Десятилетней давности - это был скрипт, с которым я мучался вчера (это проект-однодневка).

А вот для VerilogPerl я использовал все самое свежее.

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

Исключение, которое меня реально шокировало:


http://community.activestate.com/faq/perls-magic-sort-variable

Question:
When I call my variables $a or $b they don't do what I expect. What's up?

Answer:
Here's an often-used, but little-remembered fact about Perl that has caused some confusion on more than one occasion: $a and $b are special.

They are (among other things) used in custom sort blocks, but unfortunately the Perl documentation uses them in many examples. I say that it is unfortunate because the use strict pragma seems to ignore these two variables. If you do the following:

use strict;

$a = "foo";
$b = "bar";
$c = "baz";
$d = "quux";
You will see that only $c and $d are flagged as errors.

My advice is to avoid using $a and $b except for custom sort blocks and other places that require their use.

Date: 2013-03-16 12:37 am (UTC)
From: [identity profile] vit-r.livejournal.com
на перле трудно специфицировать структуры данных типа деревьев, массивов структур из массивов структур и т.д.

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

When I call my variables $a or $b

По голове кандилябром сразу. Имена переменных не должны быть короткими, за исключением особых случаев.
The following lists the reserved words of Verilog hardware description language, as of OVI LRM 2.0: and, always, assign, attribute, begin, buf, bufif0, bufif1, bufif1, case, cmos, deassign, default, defparam, disable, else, endattribute, end, endcase, endfunction, endprimitive, endmodule, endtable, endtask, event for, force, forever, fork, function, highhz0, highhz1, if, initial, inout, input, integer, join , large, medium, module, nand, negedge, nor, not, notif0, notif1, nmos, or output, parameter, pmos, posedge, primitive, pulldown, pullup, pull0, pull1, rcmos, reg, release, repeat, rnmos, rpmos, rtran, rtranif0, rtranif1, scalared, small, specify, specparam, strong0, strong1 supply0, supply1, table, task, tran, tranif0, tranif1, time, tri, triand, trior, trireg, tri0, tri1, vectored, wait, wand, weak0, weak1, while, wire, wor

Кому будем жаловаться?

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

По-моему, кое-у-кого нездоровая тенденция доказательства проблематичности Перла через всякие извращения.
Edited Date: 2013-03-16 12:38 am (UTC)

Date: 2013-03-16 03:47 am (UTC)
From: [identity profile] panchul.livejournal.com
Упаси боже, я не пытаюсь на Перле сделать Верилог, просто у парсера Верилога который мне пришлось использовать для неких нужд, был перловский интерфейс (VerilogPerl).

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

Ну вот что-что, а в С я абсолютный эксперт, ибо пишу на нем с 1986 года, причем написал три C компилятор-а (два на основе PCC и один с нуля), и поэтому меня напрягает как например в Перле написать эффективно рекурсивный обход дерева с модификацией со структурами вида:

struct node
{
int data;
struct node * left;
struct node * right;
};

Причем дерево нужно не только обходить, но и модифицировать - переносить поддеревья с места на место. Это что - нужно использовать перловский ООП и references?

Еще всякие массивы структур массивов хэшей массивов (я конечно разобрался в частных случаях, но как-то все странно смотрится).

Date: 2013-03-16 10:22 am (UTC)
From: [identity profile] vit-r.livejournal.com
Не... Я так не играю.

Первым делом - структура С - это тот же класс С++, только не могущий сделать аттрибуты private и protected. Так что OO для задачи - это самое то.

Вторым, спрашиваю у гугла "perl binary tree" и первая же ссылка выдаёт.

  $found = {
    left  => undef,
    right => undef,
    val   => $target
  };

Правда, пример какой-то древний. Если написать use strict; и use warnings;, что всегда стоит делать, то надо ставить кавычки.

  $found->{"right"};

как например в Перле написать эффективно

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

Edited Date: 2013-03-16 10:29 am (UTC)

Date: 2013-03-16 03:26 pm (UTC)
From: [identity profile] panchul.livejournal.com
Ну это примерно то, что я думал - т.е. выглядит как то, что структура/класс - это частный случай хэша. Проблема в том, что в моих задачах таких структур может быть условно миллион экземпляров расзной степени одновременности. Насколько эффективна реализация таких объектов в интерпретаторе или компиляторе перла? Memory footprint? Насколько хорош сборщик мусора?

Это сразу объясняет, почему в перловских книжках бинарные деревья появляются где-то в advanced разделах. Кроме этого, это опровергает утверждение многих (не всех) перловцев, что якобы перл является универсальным языком для всего ("если у вас есть задача - напишите ее на перле").

Date: 2013-03-16 03:49 pm (UTC)
From: [identity profile] vit-r.livejournal.com
структура/класс - это частный случай хэша

А вот и фиг.

Класс Объект - это blessed variable. Класс - это модуль.

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

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

Ну и? Если они просто болтаются без дела, проблема не в Перле, а в архитектуре. У меня спокойно из всяких хешей массивов хешей и таблицы на миллионы строк выводятся, и подструктуры извлекаются, и файлы в JSON на десяток мегабайт пишутся. (Которые потом одним движением берутся другим перловским скриптом для дальнейшей обработки)

Насколько эффективна реализация таких объектов в интерпретаторе или компиляторе перла? Memory footprint? Насколько хорош сборщик мусора?

Пардон, благородный дон пишет реалтайм? Тогда я бы посоветовал делать критичные к времени вещи на C++, а если без Перла не обойтись, то ему оставить только интерфейсы.

Если это не реалтайм а расчёты чего-то сложного, то я бы не обращал внимания на такие мелочи. Ну будет работать программа полторы минуты вместо сорока секунд. У меня вообще некоторые рассчёты шли часа по четыре. Правда, там основное время было на чтение и запись. Но результаты были всё равно готовы раньше, чем я бы на С++ просто базовые функции оттестировал.

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

Бинарные деревья появляются во всех книжкак в advanced разделах. А делать структуры как в примере на Перле умеют даже люди, которые не знают, что такое хеш и воспринимают это просто как форму записи.
Edited Date: 2013-03-16 03:51 pm (UTC)
(deleted comment)

Date: 2013-03-15 09:48 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ну да. Только в трясущемся вагоне на тачпаде штабеля рисовать не очень удобно. Главное, идея понятна. Кому нужна красота, может перерисовать по-своему. Всё-таки это клонирование и обрезание, а не полноценный рисунок.
Edited Date: 2013-03-15 09:50 pm (UTC)

Profile

vit_r: default (Default)
vit_r

June 2025

S M T W T F S
12345 6 7
8 910 11 12 1314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 13th, 2025 10:25 am
Powered by Dreamwidth Studios
OSZAR »