Special Olympics: итоги
Feb. 7th, 2012 03:26 pmИтого, в результате специальной олимпиады:
Постановщик задач с меня печальный. Надо было в два раза больше пунктов в задание написать и более подробно.
kometa_zxc справилась с адовым деплойментом двух кромешных оперденей на убунте. Тестировать, по причине нехватки времени и того, что
theiced обвинил ее в неумении читать вывод команд, не стала.
По результатам
theiced и
artureg: деплоймент у обоих - кромешный хардкорный ад. Уровня "пришли с дискетами сдавать контрольную, а у препода на машине нет vcl70.bpl и какой-то непонятной либы". Артурегов оказался проще, но: после суток участия в установке айседовой, перепроверки его инструкции целым чатиком гурей и, по словам айседа, работает только на убунте 10.04.
Подключение базы: у обоих ок. Айсед создал еще и тестовую базу (для чего внезапно понадобился nodejs). А для артурега мы использовали айседову базу.
По запуску и использованию приложения.
Если использование гуманное, без попыток сломать приложение - айседовое работает более логично.
Артурегово работает нормально, но были баги с парсингом кривых чисел и показом клиенту бессмысленных сообщений типа "null"(исправлено, но исправление сообщает клиенту в ответе cтек-трейс в json).
Обработка кривого ввода пользователя сделана лучше у айседа.
По редактированию файла настроек, который по условию редактирую специально обученные люди-настройщики:
Айсед: игнорирует регистр символов, неважные ошибки, выводит предупреждения в лог, при невалидном xml - показывает "Отчетов не найдено". Был только один баг, который приводил к невозможности запустить рельсы при формально валидном xml.
Артурег: регистрозависимый, показывает клиенту безумные сообщения из исключений, если xml кривой. Причем кривость может заключаться тупо в опечатке в имени атрибута, которая xml оставляет валидным, но убивает только один отчет, а не все.
Какой вариант работы с xml лучше - спорный вопрос. Главное, чтобы корректно можно было найти и починить в случае надобности.
Проверка собственно сервиса отчетов:
Айсед: от входа работает в wget, RESTful, метод GET, параметры в url, понимает хидер Accept: на предмет - ответить json,xml или html, иначе - говорит что не может ответить в таком формате.
Артурег: Использует json-rpc, метод POST, не работает без хидера "--header=Content-Type: application/json-rpc; charset=UTF-8" и строгого json в теле POST:
query.json: {"params":["datetime1",[{"name":"datetimevalb","value":1328047200000},{"name":"datetimevale","value":1330552799999}]],"method":"runReport","id":-1}
При поверхностных попытках слома: айседовское ведет себя более гуманно - отвечает 403 или 500, и осмысленное сообщение. Было пару багов, приводящих к странному большому сообщению.
Артурегово выдает либо стектрейсы в json, либо в html, в зависимости отфазы луны места, где сломалось - в его либах или не в его.
Короче, по деплойменту: оба еле доползли до финиша при поддержке зрителей.
В рунтайме по очкам выиграл
theiced. Явных багов было все таки больше у артурега, особенно малопонятный с таймзонами дефолтных значений времени.
По айседу остается открытым спорный вопрос с парсингом sql-параметров с помощью regexp и sanitize. Пока внятных аргументов за или против кроме "здесь так принято", я не слышал.
При практическом использовании: работает и то и другое, но привести обе софтины в идеальное состояние понадобится дофига времени, как минимум на то, чтобы сформулировать, каким должно быть это идеальное состояние.
Да, финальный штрих: после установки приложений, все потроха:
Айсед:248 мег из них .rvm - 237 мег, worm_reports - 5 мег)
Артурег:160 мег из них .m2 - 27 мег, operden - 133 мег)
Айсед: после rvm cleanup all - 109 мег, из них .rvm 97 мег
Артурег: mvn clean скачал еще немного жабы, но ничего сделать не смог. 160 мег осталось.
Артурег 2: поправил настройки базы в pom.xml. mvn clean поработал, выдал 100500 ошибок (хардкодед имя базы в sql :) и теперь размер 109 мег, из них 81 - приложение. и еще 170 мег жабы в /usr/lib/jvm
Объемы кода:
У артурега там весь dojo лежит, так что жабаскрипта там 100500.
Постановщик задач с меня печальный. Надо было в два раза больше пунктов в задание написать и более подробно.
По результатам
Подключение базы: у обоих ок. Айсед создал еще и тестовую базу (для чего внезапно понадобился nodejs). А для артурега мы использовали айседову базу.
По запуску и использованию приложения.
Если использование гуманное, без попыток сломать приложение - айседовое работает более логично.
Артурегово работает нормально, но были баги с парсингом кривых чисел и показом клиенту бессмысленных сообщений типа "null"(исправлено, но исправление сообщает клиенту в ответе cтек-трейс в json).
Обработка кривого ввода пользователя сделана лучше у айседа.
По редактированию файла настроек, который по условию редактирую специально обученные люди-настройщики:
Айсед: игнорирует регистр символов, неважные ошибки, выводит предупреждения в лог, при невалидном xml - показывает "Отчетов не найдено". Был только один баг, который приводил к невозможности запустить рельсы при формально валидном xml.
Артурег: регистрозависимый, показывает клиенту безумные сообщения из исключений, если xml кривой. Причем кривость может заключаться тупо в опечатке в имени атрибута, которая xml оставляет валидным, но убивает только один отчет, а не все.
Какой вариант работы с xml лучше - спорный вопрос. Главное, чтобы корректно можно было найти и починить в случае надобности.
Проверка собственно сервиса отчетов:
Айсед: от входа работает в wget, RESTful, метод GET, параметры в url, понимает хидер Accept: на предмет - ответить json,xml или html, иначе - говорит что не может ответить в таком формате.
wget "http://192.168.240.63:3000/reports/datetime?parameters%5Bdatetimeval%5D=2012-02-14+01%3A01%3A01" "--header=Accept: application/json"
Артурег: Использует json-rpc, метод POST, не работает без хидера "--header=Content-Type: application/json-rpc; charset=UTF-8" и строгого json в теле POST:
wget --post-file=query.json "--header=Content-Type: application/json-rpc; charset=UTF-8" http://localhost:9090/so/smd/so.action
query.json: {"params":["datetime1",[{"name":"datetimevalb","value":1328047200000},{"name":"datetimevale","value":1330552799999}]],"method":"runReport","id":-1}
При поверхностных попытках слома: айседовское ведет себя более гуманно - отвечает 403 или 500, и осмысленное сообщение. Было пару багов, приводящих к странному большому сообщению.
Артурегово выдает либо стектрейсы в json, либо в html, в зависимости от
Короче, по деплойменту: оба еле доползли до финиша при поддержке зрителей.
В рунтайме по очкам выиграл
По айседу остается открытым спорный вопрос с парсингом sql-параметров с помощью regexp и sanitize. Пока внятных аргументов за или против кроме "здесь так принято", я не слышал.
При практическом использовании: работает и то и другое, но привести обе софтины в идеальное состояние понадобится дофига времени, как минимум на то, чтобы сформулировать, каким должно быть это идеальное состояние.
Да, финальный штрих: после установки приложений, все потроха:
Айсед:248 мег из них .rvm - 237 мег, worm_reports - 5 мег)
Артурег:160 мег из них .m2 - 27 мег, operden - 133 мег)
Айсед: после rvm cleanup all - 109 мег, из них .rvm 97 мег
Артурег: mvn clean скачал еще немного жабы, но ничего сделать не смог. 160 мег осталось.
Артурег 2: поправил настройки базы в pom.xml. mvn clean поработал, выдал 100500 ошибок (хардкодед имя базы в sql :) и теперь размер 109 мег, из них 81 - приложение. и еще 170 мег жабы в /usr/lib/jvm
Объемы кода:
To work\Ruby>cloc-1.51.exe iced-worm-reports-8681544
66 text files.
66 unique files.
18 files ignored.
http://cloc.sourceforge.net v 1.51 T=1.0 s (48.0 files/s, 3212.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Javascript 2 140 162 1013
Ruby 39 240 158 770
CSS 2 33 163 382
HTML 3 3 3 71
XML 1 0 0 51
YAML 1 2 0 21
-------------------------------------------------------------------------------
SUM: 48 418 486 2308
-------------------------------------------------------------------------------
To work\JAVA\artureg_ex>cloc-1.51.exe src
3487 text files.
3296 unique files.
285 files ignored.
http://cloc.sourceforge.net v 1.51 T=6.0 s (526.0 files/s, 50597.5 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Javascript 2501 1612 6552 189839
CSS 554 2166 0 91501
SQL 2 5 0 5339
HTML 69 147 418 2123
XSLT 2 47 155 955
PHP 4 137 288 516
Java 12 122 7 488
ActionScript 3 119 157 374
JSP 1 32 3 220
XML 5 21 7 162
Bourne Shell 2 6 5 28
DOS Batch 1 7 3 24
-------------------------------------------------------------------------------
SUM: 3156 4421 7595 291569
-------------------------------------------------------------------------------
У артурега там весь dojo лежит, так что жабаскрипта там 100500.
no subject
Date: 2012-02-07 01:43 pm (UTC)no subject
Date: 2012-02-07 07:28 pm (UTC)