Re: Несколько вопросов вразброс
On Wed, Jul 11, 2012 at 10:36:22PM +0400, "Артём Н." wrote: > Приложил скрипт, который у меня получился. > mkbackup - сам скрипт. > mks - парсер, убирающий тесты. > ready- готовый скрипт после обработки. > > Вроде, работает, хотя и не всё доделано. > Ощущения: получилось очень "тяжеловесно". [кусь] > #!/bin/sh > > fl="$1" > fl=${-:-$fl} > > awk ' >BEGIN { > prf = 0; >} > >/^#!\/bin\/bash/ { > print "#!/bin/sh"; > next; >} > >/###TESTING/ { > prf = pfm + 1; > next; >} > >/###\/TESTING/ { > if (prf == 0) > { > print "Error: unexpected ###\/TESTING" > "/dev/stderr"; > exit 1; > } > prf = prf - 1; > next; >} > >{ > if (prf == 0) print; >} > >END { > if (prf > 0) > { > print "Error: unclosed ###TESTING"; > exit 1; > } >} > ' "$fl" Жесть. $ sed -e '1s/#!\/bin\/bash/#!\/bin\/sh/;/###TESTING/,/###\/TESTING/d' mkbackup > ready -- Stanislav -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712085042.GA7892@kaiba.homelan
Re: Пропал multicast
12 июля 2012 г., 10:11 пользователь Artem Pastukhov написал: > 11 июля 2012 г., 19:29 пользователь Oleg A Chernov > написал: >> В сообщении от 11 июля 2012 18:03:44 автор Artem Pastukhov написал: >>> 11 июля 2012 г., 19:02 пользователь Artem Pastukhov >>> написал: >>> > 11 июля 2012 г., 18:02 пользователь Oleg A Chernov >>> > написал: >>> >> В сообщении от 11 июля 2012 16:33:02 автор Artem Pastukhov написал: >>> >>> 17:30:46.989811 IP 0.0.0.0 > 224.0.0.1: igmp query v2 >>> >>> 17:30:47.432864 IP 192.168.100.2 > 239.192.104.140: igmp v2 report >>> >>> 239.192.104.140 >>> >>> И тишина >>> >>> >>> >> >>> >> Теперь смотрите пакеты собственно на группу 239.192.104.140, доходят или >>> >> нет до сбойного сервера? >>> >> >>> >> tcpdump -i vmbr0 -nns0 ip and \( igmp or host 239.192.104.140 \) >>> >> >>> >> vmbr0 это что за интерфейс ? >>> >> если виртуальный, то посмотрите пакеты на физическом. >>> >> >>> > Нет >>> > только исходящие >>> > 18:58:38.530241 IP 192.168.100.2.5404 > 239.192.104.140.5405: UDP, length >>> > 119 >>> > 18:58:40.434031 IP 192.168.100.2.5404 > 239.192.104.140.5405: UDP, length >>> > 119 >>> >>> Причем на физическом вообще тишина >>> >> >> На физ. интерфейсе должны быть исходящие 192.168.100.2 > 239.192.104.140: >> igmp v2 report 239.192.104.140 иначе мультикаст не прийдет. >> Попробуйте посмотреть в сторону vmbr0, похоже в нем собака порылась. >> vmbr0 просто бриджуется с физ. интерфейсом или сетап какой-то иной ? >> > Просто бридж > > auto vmbr0 > iface vmbr0 inet static > address 192.168.100.2 > netmask 255.255.255.0 > gateway 192.168.100.20 > bridge_ports eth0 > bridge_stp off > bridge_fd 0 Вылечилось переменой eth0<->eth1
Re: Пропал multicast
12.07.2012 15:32, Artem Pastukhov пишет: > Вылечилось переменой eth0<->eth1 Т.е. интерфейс перепутали или там какие-то хитры карточки стоят? -- Best regards, Mikhail - WWW: http://www.antmix.pp.ru/ XMPP: ant...@stopicq.ru signature.asc Description: OpenPGP digital signature
Re: Пропал multicast
12 июля 2012 г., 15:38 пользователь Mikhail A Antonov написал: > 12.07.2012 15:32, Artem Pastukhov пишет: >> Вылечилось переменой eth0<->eth1 > Т.е. интерфейс перепутали или там какие-то хитры карточки стоят? Нет, Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) Странным образом одна из них глючила. Переназвал их в /etc/udev/rules.d/70-persistent-net.rules, поменял местами шнурки и все заработало. Есть подозрение, что это как-то ipmi влияет.
"Неизвестный" sort. Прошу заставить его работать...
Я думал что знаю, но теперь я "знаю что ничего не знаю". Итак имелись словарные статьи вида: WORD - SENTENCE и нужно проверить упорядоченость по алфавиту компоненты WORD. diff показал "странный" результат. Помучился, пока не пришел к примеру: bash# LANG=C printf 'abc\na ba' | sort a ba abc bash# LANG=C printf 'abc\na bd' | sort abc a bd Что ж, настало время почитать "исчники". Про поля я и не слыхал. Затем осознал, что правильным решением для поставленой задачи является: bash# printf 'abc\na bd' | sort -k 1,1 a bd abc Но все же для меня осталось "запутанным" содержание: $ info coreutils 'sort invocation' Вопрос: можно ли как то указать sort сортировать так как считают "глупые" пользователи, т.е. ord(SPACE) = 0x20 < ord([:alnum:]) и они полагают что sort работает как в последнем примере? Ну я попробывал установить поля в пусто (--field-separator=SEPARATOR), и ниче, впрочем логичный результат из-за отсутствия понимания спицификации... -- Best regards! -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87r4sht93p@desktop.home.int
Re: "Неизвестный" sort. Прошу заставить его работать...
On 2012-07-12, Oleksandr Gavenko wrote: > Я думал что знаю, но теперь я "знаю что ничего не знаю". Итак имелись > словарные статьи вида: > > WORD - SENTENCE > > и нужно проверить упорядоченость по алфавиту компоненты WORD. diff показал > "странный" результат. Помучился, пока не пришел к примеру: > > bash# LANG=C printf 'abc\na ba' | sort > a ba > abc > bash# LANG=C printf 'abc\na bd' | sort > abc > a bd > > Что ж, настало время почитать "исчники". Про поля я и не слыхал. Затем > осознал, что правильным решением для поставленой задачи является: > > bash# printf 'abc\na bd' | sort -k 1,1 > a bd > abc > Я тут поспешил... > Но все же для меня осталось "запутанным" содержание: > > $ info coreutils 'sort invocation' > > Вопрос: можно ли как то указать sort сортировать так как считают "глупые" > пользователи, т.е. ord(SPACE) = 0x20 < ord([:alnum:]) и они полагают что sort > работает как в последнем примере? > Работая над постом, упустил что искомое - практическая задача. У меня не только отдельные слова, но фразы. Пример лучше томов обьяснения: $ printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | sort a bit of - ZZZ a bit - YYY a - XXX b - AAA а надо: a - XXX a bit - YYY a bit of - ZZZ b - AAA -- Best regards! -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87mx35t8ph@desktop.home.int
Re: "Неизвестный" sort. Прошу заставить его работать...
On 2012-07-12, Oleksandr Gavenko wrote: > On 2012-07-12, Oleksandr Gavenko wrote: > >> Я думал что знаю, но теперь я "знаю что ничего не знаю". Итак имелись >> словарные статьи вида: >> >> WORD - SENTENCE >> >> и нужно проверить упорядоченость по алфавиту компоненты WORD. diff показал >> "странный" результат. Помучился, пока не пришел к примеру: >> >> bash# LANG=C printf 'abc\na ba' | sort >> a ba >> abc >> bash# LANG=C printf 'abc\na bd' | sort >> abc >> a bd >> >> Что ж, настало время почитать "исчники". Про поля я и не слыхал. Затем >> осознал, что правильным решением для поставленой задачи является: >> >> bash# printf 'abc\na bd' | sort -k 1,1 >> a bd >> abc >> > Я тут поспешил... > >> Но все же для меня осталось "запутанным" содержание: >> >> $ info coreutils 'sort invocation' >> >> Вопрос: можно ли как то указать sort сортировать так как считают "глупые" >> пользователи, т.е. ord(SPACE) = 0x20 < ord([:alnum:]) и они полагают что sort >> работает как в последнем примере? >> > Работая над постом, упустил что искомое - практическая задача. У меня не > только отдельные слова, но фразы. Пример лучше томов обьяснения: > > $ printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | sort > a bit of - ZZZ > a bit - YYY > a - XXX > b - AAA > > а надо: > > a - XXX > a bit - YYY > a bit of - ZZZ > b - AAA > Получилось, обнаружил невнимательность в ходе своего экспериментирования: $ printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | LANG=C sort a - XXX a bit - YYY a bit of - ZZZ b - AAA С LANG=ru_RU.UTF-8 sort работает как описано выше. Как можно жить с такими "приколами"? -- Best regards! -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87ipdtt7hn@desktop.home.int
Re: "Неизвестный" sort. Прошу заставить его работать...
On 2012-07-12, Oleksandr Gavenko wrote: > On 2012-07-12, Oleksandr Gavenko wrote: > Получилось, обнаружил невнимательность в ходе своего экспериментирования: > > $ printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | LANG=C sort > a - XXX > a bit - YYY > a bit of - ZZZ > b - AAA > > С LANG=ru_RU.UTF-8 sort работает как описано выше. Как можно жить с такими > "приколами"? > Самого главного не спросил: почему в некоторых локалях включается режим "инопланетной" сортировки: bash# printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | LANG=en_EN.UTF-8 sort a - XXX a bit - YYY a bit of - ZZZ b - AAA bash# printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | LANG=en_DK.UTF-8 sort a bit of - ZZZ a bit - YYY a - XXX b - AAA bash# printf 'b - AAA\na - XXX\na bit - YYY\na bit of - ZZZ' | LANG=ru_RU.UTF-8 sort a bit of - ZZZ a bit - YYY a - XXX b - AAA -- Best regards! -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87ehoht79f@desktop.home.int
Re: Несколько вопросов вразброс
On 12.07.2012 12:50, Stanislav Maslovski wrote: > On Wed, Jul 11, 2012 at 10:36:22PM +0400, "Артём Н." wrote: >> Приложил скрипт, который у меня получился. >> mkbackup - сам скрипт. >> mks - парсер, убирающий тесты. >> ready- готовый скрипт после обработки. >> >> Вроде, работает, хотя и не всё доделано. >> Ощущения: получилось очень "тяжеловесно". > > [кусь] > >> #!/bin/sh >> >> fl="$1" >> fl=${-:-$fl} >> >> awk ' >>BEGIN { >> prf = 0; >>} >> >>/^#!\/bin\/bash/ { >> print "#!/bin/sh"; >> next; >>} >> >>/###TESTING/ { >> prf = pfm + 1; >> next; >>} >> >>/###\/TESTING/ { >> if (prf == 0) >> { >> print "Error: unexpected ###\/TESTING" > "/dev/stderr"; >> exit 1; >> } >> prf = prf - 1; >> next; >>} >> >>{ >> if (prf == 0) print; >>} >> >>END { >> if (prf > 0) >> { >> print "Error: unclosed ###TESTING"; >> exit 1; >> } >>} >> ' "$fl" > > Жесть. > > $ sed -e '1s/#!\/bin\/bash/#!\/bin\/sh/;/###TESTING/,/###\/TESTING/d' > mkbackup > ready Вложенность не поддерживается (может быть не закрытый тег). :-D А, вообще, awk мне просто понятнее и привычнее. Это дело вкуса. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffed947.6030...@yandex.ru
Re: "Неизвестный" sort. Прошу заставить его работать...
On Thu, Jul 12, 2012 at 04:54:04PM +0300, Oleksandr Gavenko wrote: > Самого главного не спросил: почему в некоторых локалях включается режим > "инопланетной" сортировки: Потому что в разных LC_CTYPE разный порядок символов, очевидно. -- WBR, wRAR signature.asc Description: Digital signature
Re: "Неизвестный" sort. Прошу заставить его работать...
On Thu, Jul 12, 2012 at 08:10:39PM +0600, Andrey Rahmatullin wrote: > > Самого главного не спросил: почему в некоторых локалях включается режим > > "инопланетной" сортировки: > Потому что в разных LC_CTYPE разный порядок символов, очевидно. LC_COLLATE -- WBR, wRAR signature.asc Description: Digital signature
Re: Несколько вопросов вразброс
Больше, конечно, интересно, что по основному скрипту..? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffedbd8.6070...@yandex.ru
Re: Несколько вопросов вразброс
11.07.2012 19:24, "Артём Н." пишет: On 11.07.2012 01:08, Igor Chumak wrote: -Куть Это если ты делаешь ошибку, которую тест уже ловит. А если ты делаешь ошибку, которую тест еще не ловит (а она будет, и не одна), то результат будет тот же самый, как если бы теста не было вообще. Внятная и подробная диагностика поэтому обязательна. Я и делаю. Как-раз хотел спросить (очередной провокационный вопрос). Как организовывать обработку ошибок?>:-) Т.е., вызывается функция. Она должна вернуть код завершения. В функции м.б. вложенные функции. В функции может выполниться только часть вызовов вложенных функций. К примеру, бэкап БД не прошёл, но бэкап состояния пакетов, который делается следующим, должен быть сделан. Какой код возвращать? Обычно возвращают статистику "время выполнения, сколько задач в задании провалилось, сколько файлов скопировано, сколько байт прочитано, сколько записано...". Если какая-то часть логики вынесена в функцию,значит результат ее должен что-то означать? Я не про показ статистики, а именно про возврат кода. Результат работы функции не обязательно short int ;) Если очень хочется именно _кода_ - можно вернуть % успешно выполненных задач. Можно писать ошибки в глобальный массив, в конце работы его анализировать. М... Снова глобальный. :-| В общем сферическом случае использование глобальных переменных может казаться некошерным. В частном случае - надо смотреть. Код возврата, вызванной программы, видимо, не вариант. Сделал на флагах. Чтобы было понятно в какой функции произошла ошибка. Но как-то... А как правильно? Как сказано было выше, у perl есть use Carp; задачу "определить в какой функции ошибка " поможет решить Про Perl буду знать. Но, увы, в моём случае: shell. Зачем такое ограничение?? Хотя в bash тоже есть FUNCNAME An array variable containing the names of all shell functions currently in the execution call stack. Делаем функцию die(), которая анализирует и печатает FUNCNAME. Why not? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffedf4d.8050...@gmail.com
Re: Несколько вопросов вразброс
On 12.07.2012 02:55, Stanislav Maslovski wrote: > On Wed, Jul 11, 2012 at 08:35:48PM +0400, "Артём Н." wrote: >> On 11.07.2012 04:18, Stanislav Maslovski wrote: >>> Они есть. Этого уже достаточно. >> Недостаточно. Достаточно было бы, если бы их на практике было просто >> применить... Часто ли это применяется и просто ли? > Применяется в mission-critical systems, насколько часто и насколько > просто - вопрос скорее к тем, кто этими системами плотно занимается. Эм... Точно. Спрошу. >>> Нет. Повторюсь: построение *полного* теста в общем случае эквивалентно >>> решению >>> исходной программной задачи. Как ты собираешься доказывать правильность >>> самого теста? Ещё одним тестом? И так до бесконечности? >> М... Ну да. Про тест я не подумал. Но, если тест - просто тупой перебиратель >> результата..? > В таком случае, и сама программная задача тупа в той же мере, в какой > туп ее *полный* тест. Я подумал о следующем варианте... 1. Есть программа, которая получает данные (к примеру, пакет фиксированного размера из сети). 2. Она обрабатывает данные (это чёрный ящик), в зависимости от того, что поступило на вход и того, что поступало ранее (но память ограничена). 3. При её запуске состояние всегда одинаковое (не ведётся база или всегда обнуляется). 4. На выходе - пакет. 5. Программа не учитывает временные характеристики, поступающих данных. Пакет - число определённой разрядности. Длина, в данном случае, фиксирована. Обработка может быть сколь угодно сложной (например, это модуль ЦОС, принимающий данные от АЦП). Тест - это простая таблица, в общем случае. В случае ограниченной памяти (а для тестирующего, функция - "белый ящик" и все ограничения известны), достаточно просто составить цепочки значений входов. И проверить, что будет на выходе после каждого такта. В принципе... Такую функцию возможно заменить таблицей. Но ведь не всегда это может быть возможно (к тому же, составление таблицы возможно автоматизировать). Хотя, конечно, уж больно частный случай. :-| И сомнительно это. > Вот тебе элементарный пример: докажи теорему Пифагора *тестами* =) Возможно повысить уверенность в том, что алгоритм доказательства теоремы реализован правильно, используя тесты. >>> Это ещё что за новая сущность? "алгоритм доказательства теоремы"? >> Я именно про конкретный случай. Есть доказательство по опр. алгоритму. >> Тесты позволят повысить уверенность в нём. > Я - пас :) Желающие продолжить - велкам. Ну, хорошо. :-D В общем-то, про тесты, во многом я согласен, просто поспорить охота. Тут, кажется, есть достаточно определённое решение: 1. Естественно, никакого "доказательства тестами" нет (я про такое и не писал), если тесты не могут покрыть всю область определения. 2. Писать тесты лучше, чем не писать тесты. 3. У тестов есть один серьёзный минус: сложная задача требует сложных тестов. И, как выясняется, объём тестов сопоставим с объёмом задачи, а в некоторых случаях, даже больше. 4. Пункт 3 заставляет серьёзно подумать над пунктом 2. 5. Если возможно однозначно доказать корректность, то тест проще выкинуть, чем поддерживать. Да он и не требуется. Но смущают некоторые вещи: 1. TDD. Ведь оно существует? Вероятно, оно создавалось для больших проектов. Где-нибудь используется? 2. Но ведь модульное тестирование продвигается и приветствуется... -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffee7a4.2040...@yandex.ru
Re: Несколько вопросов вразброс
On 12.07.2012 18:29, Igor Chumak wrote: > 11.07.2012 19:24, "Артём Н." пишет: >> On 11.07.2012 01:08, Igor Chumak wrote: >>> -Куть > Это если ты делаешь ошибку, которую тест уже ловит. А если ты делаешь > ошибку, которую тест еще не ловит (а она будет, и не одна), то результат > будет тот же самый, как если бы теста не было вообще. Внятная и > подробная диагностика поэтому обязательна. Я и делаю. Как-раз хотел спросить (очередной провокационный вопрос). Как организовывать обработку ошибок?>:-) Т.е., вызывается функция. Она должна вернуть код завершения. В функции м.б. вложенные функции. В функции может выполниться только часть вызовов вложенных функций. К примеру, бэкап БД не прошёл, но бэкап состояния пакетов, который делается следующим, должен быть сделан. Какой код возвращать? >>> Обычно возвращают статистику "время выполнения, сколько задач в задании >>> провалилось, сколько файлов скопировано, сколько байт прочитано, сколько >>> записано...". Если какая-то часть логики вынесена в функцию,значит >>> результат ее >>> должен что-то означать? >> Я не про показ статистики, а именно про возврат кода. > Результат работы функции не обязательно short int ;) > Если очень хочется именно _кода_ - можно вернуть % успешно выполненных задач. Но что он даст? Я же не смогу определить какие задачи провалились... >>> Можно писать ошибки в глобальный массив, в конце работы его анализировать. >> М... Снова глобальный. :-| >> > > В общем сферическом случае использование глобальных переменных может казаться > некошерным. В частном случае - надо смотреть. Согласен. Но, всё-равно, это ещё один "выход" из функции. Код возврата, вызванной программы, видимо, не вариант. Сделал на флагах. Чтобы было понятно в какой функции произошла ошибка. Но как-то... А как правильно? >>> Как сказано было выше, у perl есть use Carp; задачу "определить в какой >>> функции >>> ошибка " поможет решить >> Про Perl буду знать. Но, увы, в моём случае: shell. > Зачем такое ограничение?? Сейчас у меня уже есть скриптик на нём. Не переделывать же на Perl, который я не знаю? К тому же, в данном случае (при попытке попробовать), ограничение лишним не будет (ведь этот модуль очень специфичная для Perl вещь, которой нет в большинстве языков). > Хотя в bash тоже есть > FUNCNAME > An array variable containing the names of all shell functions > currently in the execution call stack. И я его использую. См. скрипт в треде. > Делаем функцию die(), которая анализирует и печатает FUNCNAME. Why not? Нельзя сдыхать. В этом проблема. :-) Если бы возможно было завершить функцию, то никаких проблем. А меня интересует более общий случай. К тому же, печатать - не всегда вариант. Хотя... Может. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffee8cc.20...@yandex.ru
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 06:14:48PM +0400, "Артём Н." wrote: > Больше, конечно, интересно, что по основному скрипту..? Дык, кто же будет это читать... Нужна мотивация. -- Stanislav -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712161635.GA18587@kaiba.homelan
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 06:03:51PM +0400, "Артём Н." wrote: > On 12.07.2012 12:50, Stanislav Maslovski wrote: > > $ sed -e '1s/#!\/bin\/bash/#!\/bin\/sh/;/###TESTING/,/###\/TESTING/d' > > mkbackup > ready > Вложенность не поддерживается (может быть не закрытый тег). :-D Вложенность, вероятно, нужна для того, чтобы в тесты встраивать тесты тестов ;) -- Stanislav -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712162038.GB18587@kaiba.homelan
Re: Несколько вопросов вразброс
> Дык, кто же будет это читать... Нужна мотивация. Вы прям убили мою светлую идею на корню. :-D Я понимаю, что читать и разбирать по строчке нафиг никому не нужно. Общее впечатление: читабельно, нечитабельно, читабельно ли без тестов, помогают ли они там (без учёта того, что "ну это возможно было и без тестов" (и ответить, как известно, возможно: "если код заслуживает быть написанным"...)), что плохо с первого взгляда, что стоит изменить? У меня сложилось ощущение, что тесты сильно затягивают время, требуемое на написание. Причём, если меняется функция, часто требуется менять и тест. Ещё я заметил, что в тестах тоже бывают ошибки, поэтому их надо проверять... -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffefbe4.5060...@yandex.ru
Re: Несколько вопросов вразброс
On 12.07.2012 20:20, Stanislav Maslovski wrote: > On Thu, Jul 12, 2012 at 06:03:51PM +0400, "Артём Н." wrote: >> On 12.07.2012 12:50, Stanislav Maslovski wrote: >>> $ sed -e '1s/#!\/bin\/bash/#!\/bin\/sh/;/###TESTING/,/###\/TESTING/d' >>> mkbackup > ready >> Вложенность не поддерживается (может быть не закрытый тег). :-D > Вложенность, вероятно, нужна для того, чтобы в тесты встраивать тесты > тестов ;) Зря смеётесь. У меня, конечно, этого нет. :-\ Но я видел: реально делают тесты для тестов (для основных тестов). -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffefc13.6070...@yandex.ru
Re: Несколько вопросов вразброс
Да, из хороших впечатлений: если что-то ломается, тест это отлавливает. Без теста мне бы потребовалось больше времени. Но однозначного ответа: стоят ли тесты того, чтобы их писать, лучше ли сильно неполное покрытие, чем никакое и оправдана ли TTD, у меня так и нет... :-( -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4ffefca8.7040...@yandex.ru
Re: Несколько вопросов вразброс
On 06.07.2012 00:07, Artem Chuprina wrote: > Артём Н. -> debian-russian@lists.debian.org @ Thu, 05 Jul 2012 20:49:27 > +0400: > > >> >> Машина Тьюринга заняла эту нишу много лет назад, и даже > >> >> лямбда-исчислению ее не отдала. И ООП не отдаст. > >> АН> Я про ту концепцию, которую возможно использовать на практике. > >> Теорема Геделя нам как бы намекает, что такой концепции не существует. > АН> Теорема Гёделя об этом не говорит (про практику и частности). > АН> Я про концепцию, типа реляционной в БД (на том же месте)... > > Я ж говорю: намекает. На самом деле есть еще теорема Гёделя о полноте, > но опять же стоит глянуть на ее доказательство, чтобы понять, в чем > будет проблема такой концепции. А проблема, собственно, в том, что чем > универсальнее концепция, тем она менее полезна. А чем она менее > универсальна, тем более узкий круг задач она способна решить. > >> >> Хочешь писать хорошие программы - изучи несколько парадигм, и применяй > >> >> наиболее подходящие к задаче. А не суй где надо и где не надо ту > >> >> единственную, которую ты знаешь. > >> АН> Плохо то, что единственной парадигмы, подходящей везде, - нет. > >> Извини, это в некотором смысле объективный закон. Что-то вроде закона > >> всемирного тяготения. Не просто нет, а доказуемо не может быть. > АН> Ну везде, с некоторыми ограничениями... > Все зависит от ограничений ;-) Классическое "автомобиль может быть > любого цвета, если этот цвет черный" - это тоже "с некоторым > ограничением". И, тем не менее, в данном случае ограничение оказалось успешным. Причём, затем, его убрали. А идея, подходящая почти под любое производство осталась... Хотя, да. Идея для специфических задач: тех, которые возможно "поставить на поток". > >> >> >> >> Помнится, код, переписанный с C++ на C со старательным > выкидыванием всей > >> >> >> >> объектности, кроме нужной, стал на порядок компактнее, вдвое > понятнее, и > >> >> >> >> давал в разы меньший результат при компиляции. > >> >> >> >> Tcl - он же функциональный по сути, зачем ему объекты? > >> >> >> АН> Хм... Честно не знаю. Объекты, в принципе, не лишние. Но как > совмещается > >> >> >> АН> объектный и функциональный подход..? Хотя, библиотеки-то > есть... > >> >> >> Никогда не надо пользоваться тем, что "в принципе не лишнее". > >> >> >> Пользоваться надо только тем, что тебе действительно нужно, и > понимая, > >> >> >> почему именно оно, а не альтернативы. > >> >> АН> Да, бритву Оккама не отменяли. :-) Но, во-первых, не всегда > >> >> АН> возможно выбрать лучшую из альтернатив, потому что обе они имеют > >> >> АН> взаимокомпенсирующие достоинства и недостатки, так что, ни одна > из > >> >> АН> них не является лучшей. Во-вторых, иногда просто недостаточно > >> >> АН> информации для выбора. > >> >> Я видел только один вариант "недостаточно информации для выбора" - > >> >> незнание альтернатив. > >> АН> Нет, почему же? > >> АН> Незнание всех характеристик альтернатив, незнание того, как поведёт > >> АН> себя данная альтернатива, незнание того насколько сильнее одна > >> АН> характеристика влияет на абстрактное "качество" системы, чем > >> АН> другая. Много что возможно не знать. > >> Перечисленное тобой либо сводится к незнанию альтернатив (не знаешь как > >> поведет - ну, попробуй на тестовом примере; если тебе это слишком сложно > >> или дорого, это значит, что ты знаешь о существовании этой альтернативы, > >> но не знаешь ее саму), либо к задачам, которые решать не надо > >> (совершенно не нужно оценивать влияние характеристик на абстрактное > >> качество системы, если тебе нужно, чтобы система работала - тебе может > >> быть интересно только несколько _конкретных_ качеств). > АН> В общем случае, да. Но незнание альтернатив почти всегда есть. > При наличии образования - отнюдь не почти всегда. Конечно, чтобы > правильно задать вопрос, надо знать половину ответа. Но затем и > образование. Хех. Что даёт образование? Вы правда в него верите? Веком ранее так не считали? Да и в каком плане "образования" и какого? :-) > >> >> Важный момент: совершенно не обязательно выбирать > >> >> лучшую из альтернатив. Если ты не можешь решить, которая из > нескольких > >> >> лучше по описанной причине, это по крайней мере значит, что ни одна из > >> >> них не будет существенно хуже других. Выбери любую. > >> АН> Ага. И тут получается проблема "буриданова осла". Принятие решения. > :-) > >> Монетку брось. > АН> Не то... > KISS! Ну да. Забываю. > >> >> А если ты недостаточно знаешь о задаче, то значит, выбирать инструмент > >> >> пока просто рано, надо сперва задачу изучить. > >> АН> Что тоже не всегда возможно. > >> > >> Если ты не можешь изучить задачу, то скорее всего, ты ее и решить не > >> сможешь, и тут уже совершенно пофигу, каким инструментом ты ее не > >> сможешь решить. Бери любой. > АН> Вопрос насколько изучить... > Вот как раз настолько, чтобы появились достаточно четк
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 08:59:14PM +0400, "Артём Н." wrote: > > Я не вижу ни отсутствия надёжности, ни медлительности. Где? > И пример - тот же апач. Вариант без потоков? nginx/lighttpd умеют в одном потоке пачку соединений обрабатывать. Ибо FSM. -- WBR, Dmitry signature.asc Description: Digital signature
Re: Несколько вопросов вразброс
On 12.07.2012 21:07, Dmitry Nezhevenko wrote: > On Thu, Jul 12, 2012 at 08:59:14PM +0400, "Артём Н." wrote: >> >> Я не вижу ни отсутствия надёжности, ни медлительности. Где? >> И пример - тот же апач. Вариант без потоков? > > nginx/lighttpd умеют в одном потоке пачку соединений обрабатывать. Ибо > FSM. Хм... Посмотрел. lighttpd, кажется, серьёзный сервер (судя по тому, где используется). Но что значит "обрабатывать"? Подключения? Или отдачу данных? И ведь, всё-равно, они отдают данные, в этом случае, последовательно, а если соединений будет много, будут задержки..? Или они там наподобие планировщика своего что-то сделали? И как распараллелить, ведь наверняка там всё-равно используются потоки (просто в одном потоке обрабатывается несколько соединений)? И причём здесь FSM (как я понял, это простой советский конечный автомат)? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4fff079e.20...@yandex.ru
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 08:31:32PM +0400, "Артём Н." wrote: > У меня сложилось ощущение, что тесты сильно затягивают время, требуемое на > написание. Причём, если меняется функция, часто требуется менять и тест. Ещё я > заметил, что в тестах тоже бывают ошибки, поэтому их надо проверять... Артём, я думаю, эта тема с тестами уже всех тут замонала. Пора возвращаться ближе к топику. -- Stanislav -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712172455.GA22728@kaiba.homelan
Re: Несколько вопросов вразброс
On 12.07.2012 21:24, Stanislav Maslovski wrote: > On Thu, Jul 12, 2012 at 08:31:32PM +0400, "Артём Н." wrote: >> У меня сложилось ощущение, что тесты сильно затягивают время, требуемое на >> написание. Причём, если меняется функция, часто требуется менять и тест. Ещё >> я >> заметил, что в тестах тоже бывают ошибки, поэтому их надо проверять... > > Артём, я думаю, эта тема с тестами уже всех тут замонала. Пора > возвращаться ближе к топику. Ээээ... О чём он был? o.O -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4fff0e70.5010...@yandex.ru
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 09:50:40PM +0400, "Артём Н." wrote: > On 12.07.2012 21:24, Stanislav Maslovski wrote: > > On Thu, Jul 12, 2012 at 08:31:32PM +0400, "Артём Н." wrote: > >> У меня сложилось ощущение, что тесты сильно затягивают время, требуемое на > >> написание. Причём, если меняется функция, часто требуется менять и тест. > >> Ещё я > >> заметил, что в тестах тоже бывают ошибки, поэтому их надо проверять... > > > > Артём, я думаю, эта тема с тестами уже всех тут замонала. Пора > > возвращаться ближе к топику. > Ээээ... О чём он был? o.O Топик? IMHO, здесь рассылка по дебиану, а не школа юного программиста. -- Eugene Berdnikov -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712181139.gd3...@sie.protva.ru
Re: Несколько вопросов вразброс
On 12.07.2012 22:11, Eugene Berdnikov wrote: > On Thu, Jul 12, 2012 at 09:50:40PM +0400, "Артём Н." wrote: >> On 12.07.2012 21:24, Stanislav Maslovski wrote: >>> On Thu, Jul 12, 2012 at 08:31:32PM +0400, "Артём Н." wrote: У меня сложилось ощущение, что тесты сильно затягивают время, требуемое на написание. Причём, если меняется функция, часто требуется менять и тест. Ещё я заметил, что в тестах тоже бывают ошибки, поэтому их надо проверять... >>> >>> Артём, я думаю, эта тема с тестами уже всех тут замонала. Пора >>> возвращаться ближе к топику. >> Ээээ... О чём он был? o.O > > Топик? IMHO, здесь рассылка по дебиану, а не школа юного программиста. Одно другому мешает? :-) -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4fff14cd.5010...@yandex.ru
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 10:17:49PM +0400, "Артём Н." wrote: > On 12.07.2012 22:11, Eugene Berdnikov wrote: > > > > Топик? IMHO, здесь рассылка по дебиану, а не школа юного программиста. > Одно другому мешает? :-) Да. Я не хочу тратить своё время на разгребание кучи мусора. Предпочитаю жить там, где мусора нет, а население культурно. -- Eugene Berdnikov -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712183941.ge3...@sie.protva.ru
Re: Несколько вопросов вразброс
On 12.07.2012 22:39, Eugene Berdnikov wrote: > On Thu, Jul 12, 2012 at 10:17:49PM +0400, "Артём Н." wrote: >> On 12.07.2012 22:11, Eugene Berdnikov wrote: >>> >>> Топик? IMHO, здесь рассылка по дебиану, а не школа юного программиста. >> Одно другому мешает? :-) > > Да. Я не хочу тратить своё время на разгребание кучи мусора. > Предпочитаю жить там, где мусора нет, а население культурно. Вы конечно извините, но кто вас заставляет читать именно данную тему, раз вы считаете тут написанное мусором, оставленным некультурными людьми? -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4fff1be5.6050...@yandex.ru
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 09:50:40PM +0400, "Артём Н." wrote: > On 12.07.2012 21:24, Stanislav Maslovski wrote: > > On Thu, Jul 12, 2012 at 08:31:32PM +0400, "Артём Н." wrote: > >> У меня сложилось ощущение, что тесты сильно затягивают время, требуемое на > >> написание. Причём, если меняется функция, часто требуется менять и тест. > >> Ещё я > >> заметил, что в тестах тоже бывают ошибки, поэтому их надо проверять... > > > > Артём, я думаю, эта тема с тестами уже всех тут замонала. Пора > > возвращаться ближе к топику. > Ээээ... О чём он был? o.O. Я про рассылку в целом, а не про этот конкретный тред. -- Stanislav -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712185301.GA25399@kaiba.homelan
Re: Несколько вопросов вразброс
On Thu, Jul 12, 2012 at 10:48:05PM +0400, "Артём Н." wrote: > On 12.07.2012 22:39, Eugene Berdnikov wrote: > > On Thu, Jul 12, 2012 at 10:17:49PM +0400, "Артём Н." wrote: > >> On 12.07.2012 22:11, Eugene Berdnikov wrote: > >>> > >>> Топик? IMHO, здесь рассылка по дебиану, а не школа юного программиста. > >> Одно другому мешает? :-) > > > > Да. Я не хочу тратить своё время на разгребание кучи мусора. > > Предпочитаю жить там, где мусора нет, а население культурно. > Вы конечно извините, но кто вас заставляет читать именно данную тему, раз вы > считаете тут написанное мусором, оставленным некультурными людьми? Вопрос не в том, заставляет ли меня кто-то спотыкаться о кучку мусора, которую можно спокойно обойти. Не заставляет. Но я всё равно хочу жить там, где мусора нет, а не там, где можно не обращать на него внимания. -- Eugene Berdnikov -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120712195000.gi3...@sie.protva.ru