metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-02-22 02:48 pm
Entry tags:

Патч в кложурь

Сидел до утра пилил модуль в опердени на кложуре.
Наткнулся в процессе на классическую шизу - "ошибка в обработке ошибок", некоторые ошибки в исходниках (при macroexpand) в принципе не показывают информацию о месте, где произошла ошибка.
Мне-то хорошо, я hg diff глянул и сразу вижу где чернь, потому что я коммиты делаю после каждой заработавшей функции, но такие ошибки напрягают.
Полез искать в исходники, вроде починил, сообщение об ошибке чуть более аккуратно оформил, информации добавил, оформил баг-репорт с патчем.
Даже если в апстрим попадет нескоро - возможность самостоятельно починить исходники в дебрях языка или либ сильно спасает. И является тестом на пригодность к использованию разного рода не особо мейнстримных языков - если можно их починить самому за пару часов - пригоден, иначе - нет.

[identity profile] falcrum.livejournal.com 2013-02-22 11:55 am (UTC)(link)
"Ошибочная ошибка"? (с) :)

[identity profile] metaclass.livejournal.com 2013-02-22 12:20 pm (UTC)(link)
Да, это ж классическая проблема - народу бы обычные пути выполнения покрыть тестами, а уж все возможные варианты сломаться на ошибках перебрать - сдуреть можно.
Хорошо, что в большинстве случаев можно просто с исключением свалится, главное в нем контекст, вызвавший исключение вернуть, для дальнейших разборок.

[identity profile] veremeenko-alex.livejournal.com 2013-02-22 11:56 am (UTC)(link)
Что-то в двигателе застучало.
Не вопрос, в гараж, движок разобрать.
Ага вот тут переделать надо.
Не вопрос, вытачиваем на токарном станке, фрезеруем, шлифуем/полируем.
И оппа, мы опять на коне.

[identity profile] metaclass.livejournal.com 2013-02-22 11:59 am (UTC)(link)
Ну, если бы у меня была автомастерская - я бы именно так и чинил свою машину. :)

[identity profile] veremeenko-alex.livejournal.com 2013-02-22 12:01 pm (UTC)(link)
Охотно верю :)

[identity profile] jakobz.livejournal.com 2013-02-22 12:12 pm (UTC)(link)
Хорошая аналогия. Только я вот вижу только положительный момент в том, что профессиональный водитель - дальнобойщик какой-нибудь - может делать какой-то ремонт и обслуживание самостоятельно.

[identity profile] nealar.livejournal.com 2013-02-22 12:57 pm (UTC)(link)
У грузовика детали тяжёлые, там в одиночку не всё даже правильно на место поставить сможешь. Что уж говорить про "выточить".

[identity profile] nivanych.livejournal.com 2013-02-22 04:18 pm (UTC)(link)
Я бы ещё спросил, не пробовал ли кто-нибудь в одиночку двигатель от (хотябы) 6-ки самому ставить ;-)

(Anonymous) 2013-02-24 01:56 pm (UTC)(link)
Пробовал. Успешно. Помощник был нужен только для того что бы подцепить движок на таль. Дальнейшее - в одиночку.

[identity profile] zmila.livejournal.com 2013-02-22 12:45 pm (UTC)(link)
вернее: "... не вопрос, на завод, найти цех, где собирают этот тип машин, и починить станок или станочника", так чтобы все следующие пользователи этого типа машин больше не имели подобных проблем.

[identity profile] dmitry shamov (from livejournal.com) 2013-02-22 07:53 pm (UTC)(link)
У меня на работе был принетр MB316 (Rikoh на самом деле не поставляющийся в Россию). Так вот мы его и в хвост и в гривы два года и тут раз у него на корпусе срезало пластиковую шпильку и он остановился. Товарисч взял залил эпоксидкой стальную. Короче вырвало с мясом и с куском в сантиметров пять. После разбора полетов выяснилось, что это фича. Шпилька срезается но при этом не повреждается остальное и стоит она 5 рублей. А если она стальная то все летит к чертям и стоит уже 10 тысяч!. Просто система сделана с специальным слабым местом чтоб когда ломалось ломалось именно в нем....

[identity profile] nicka-startcev.livejournal.com 2013-02-22 11:22 pm (UTC)(link)
у игрушечных вертолетов та же фигня: или шестерня на валу двигателя, или шпилька крепления "большой" шестерни.

[identity profile] kiryl.livejournal.com 2013-02-22 12:19 pm (UTC)(link)
Я в целом стараюсь не пользоваться тем, что не смогу починить, если что. Единственное, что не осилю, пожалуй - Firefox.

[identity profile] veter-r-r.livejournal.com 2013-02-22 12:24 pm (UTC)(link)
Под какой операционной системой работаем?

[identity profile] kiryl.livejournal.com 2013-02-22 12:25 pm (UTC)(link)
Linux, конечно.

[identity profile] veter-r-r.livejournal.com 2013-02-22 01:02 pm (UTC)(link)
А его можно починить если что? Или он не ломается? :)

[identity profile] kiryl.livejournal.com 2013-02-22 01:09 pm (UTC)(link)
Если не использовать бебиян (в котором уже 4 месяца поломан /bin/pwd), то почти не ломается. Почти всё что ломается, можно починить в разумное время или идентифицировать виновного с точностью до коммита и отревертить/зарепортить.

[identity profile] veter-r-r.livejournal.com 2013-02-22 01:10 pm (UTC)(link)
Да вы звери какие-то... :)
Бубунта тоже бебиян, да?

[identity profile] kiryl.livejournal.com 2013-02-22 01:26 pm (UTC)(link)
Да, но может до него говно не долетело ещё.

[identity profile] veter-r-r.livejournal.com 2013-02-22 01:47 pm (UTC)(link)
Долетит... так что, линукс проще фаерфокса?

[identity profile] kiryl.livejournal.com 2013-02-22 01:50 pm (UTC)(link)
У меня идиосинкразия относительно цэпласплас.

[identity profile] veter-r-r.livejournal.com 2013-02-22 01:54 pm (UTC)(link)
А линуксы до сих пор по старинке на сях без крестов?

[identity profile] kiryl.livejournal.com 2013-02-22 02:06 pm (UTC)(link)
окстись, какие кресты?

[identity profile] veter-r-r.livejournal.com 2013-02-22 02:07 pm (UTC)(link)
Ну откуда нам, похапешникам знать-то?

[identity profile] berezovsky.livejournal.com 2013-02-22 03:27 pm (UTC)(link)
Прочитал "Окрестино".

[identity profile] blackyblack.livejournal.com 2013-02-23 10:41 am (UTC)(link)
Ну конечно!

[identity profile] metaclass.livejournal.com 2013-02-22 04:13 pm (UTC)(link)
Вообще говоря, ядро системы часто оказывается проще, чем сделанное на его основе всякое енд-пользовательское :)

[identity profile] kiryl.livejournal.com 2013-02-22 05:59 pm (UTC)(link)
Ядро, оно разное. Драйвера, часто, просто, но скучно + всякие воркараунды придумывать для кривого железа/firmware. Какой-нить mm или vfs -- вот там интересно с хитровывернутми моделями сериализации и прочими трюками.

[identity profile] nivanych.livejournal.com 2013-02-22 04:19 pm (UTC)(link)
А что же вы используете, если не бебеан?
Неужели, бубунту?

[identity profile] kiryl.livejournal.com 2013-02-22 05:18 pm (UTC)(link)
да что угодно. хотя бы тот же arch. только не бебеян.

[identity profile] inhate.livejournal.com 2013-02-22 05:48 pm (UTC)(link)
Нужели секьюрити-апдейтом stable сломали? ;)

[identity profile] kiryl.livejournal.com 2013-02-22 05:54 pm (UTC)(link)
Не, это sid. Но баг на coreutils висит уже четыре месяца -- ноль реакции.

[identity profile] theiced.livejournal.com 2013-02-23 08:12 am (UTC)(link)
и не будет. баг с невозможностью поставить рторрент после переименования толи либссш в ссш2 толи чота такого висел год. новозеландский баг был вообще объявлен фичой. гнойные мудаки бабуинасты - они такие.

[identity profile] theiced.livejournal.com 2013-02-23 08:14 am (UTC)(link)
стэйбл, на который дрочит тупая пилдорасня, непригоден к использованию вообще.

[identity profile] metaclass.livejournal.com 2013-02-22 12:42 pm (UTC)(link)
iced mode on: "Спрашивали пхпшники из малиновки у разработчиков ядра линукса" :)

[identity profile] veter-r-r.livejournal.com 2013-02-22 01:02 pm (UTC)(link)
А, так вот кто во всем виноват!

[identity profile] nivanych.livejournal.com 2013-02-22 04:20 pm (UTC)(link)
А кто виноват-то?
Из этой реплики не понять — то ли разработчики ядра, то ли PHP'шнеки из Малиновки...

[identity profile] theiced.livejournal.com 2013-02-22 04:55 pm (UTC)(link)
и те и те хуй

[identity profile] nivanych.livejournal.com 2013-02-23 02:45 am (UTC)(link)
Ну как же! Разработчики ядра-то полезное дело делают!
Или вы за линуксокапец?

[identity profile] andrew kondratovich (from livejournal.com) 2013-02-22 10:10 pm (UTC)(link)
когда кложура научится фильровать рантайм стек трейс - наступит новый этап продвижения платформы в мейнстрим.

[identity profile] stop-nonsense.livejournal.com 2013-02-23 09:56 am (UTC)(link)
А я бы не починил, выходит кложурь непригоден? Или может я просто тупой?

[identity profile] rashid80.livejournal.com 2013-03-05 06:44 pm (UTC)(link)
на кложуре, в мире, программирует человек 10-12. Если уйдешь в отпуск, сляжешь с температурой - проекту хана.
Почему кложурь, а не какой-то ООП-язык с функциональными примочками?

[identity profile] metaclass.livejournal.com 2013-03-05 07:06 pm (UTC)(link)
Да только в минске 5 человек программирует :)
На фриноде в #clojure порядка 600 сидит, в списке контрибюторов человек под 100.

Насчет того, почему clojure - выбор реально на данный момент: скала, кложурь или F#. По крайней мере, в них доступ к БД, веб-фреймворки и GUI или родные или взяты из жабы с дотнетом. И интеграция со сторонними либами прямо, а не через "пишем на ANSI C адаптер через FFI размером больше, чем весь наш софт".

Из этого, на момент выбора, метапрограммирование было только в кложуре. Описание разного рода нетривиальных данных (конкретно, финансовая отчетность) проще всего делать на DSL сделанных поверх clojure.
Из недостатков - динамическая типизация.

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

[identity profile] rashid80.livejournal.com 2013-03-05 07:11 pm (UTC)(link)
Бравые питерские парни из JetBrains пилят свой язык для платформы JVM - смесь Java и Scala. По отзывам - очень годный. Вот тут подробнее: http://kotlin-demo.jetbrains.com/

[identity profile] rashid80.livejournal.com 2013-03-05 07:12 pm (UTC)(link)
Бравые питерские парни из JetBrains пилят свой язык для платформы JVM - смесь Java и Scala. По отзывам - очень годный. Вот тут подробнее: (тут была ссылка, но тогда коммент помечается как спам)