- @0xd34df00d: *haskell *typical[22:46:06] <maksbotan> нафига монады?
[22:46:10] <maksbotan> они ж костыли - @0xd34df00d: *haskell← няшечка.
А я просто глупенький, хранил информацию о распределении не только актуальной информации между нодами в сети, но и вообще всю историю распределения, что было. Естественно оно накапливалось.
Утечка пофикшена, я снова фапаю.
Хотя меня немного смутило, что если хранить map fst (someGeneratorOfTuples), то GC почему-то не подтирает за мной и хранит и второй элемент тупла.10 months ago; 23 replies - @0xd34df00d: *haskellУняня, добавил немного СТРОГОСТИ в структуры данных, сэкономил 10% оперативки. Ок-ок.10 months ago; 22 replies
- @0xd34df00d: *haskellОхренеть, оказывается, узкое место — IO. Выпилил кучу дебагового вывода, за 2 минуты прошло 7 секунд жизни системы, против вчерашних получаса на полторы.10 months ago; 12 replies
- @0xd34df00d: *haskell *programmingНу что ж, все написано и работает. Симуляция на сети из 100 нод гоняется довольно быстро, самые первые тесты показывают, что алгоритм вполне работоспособен, если скорость отдачи каждой ноды в сети больше битрейта видео (который равен 64 килобайта/с, например). Что вполне неплохо уже. Симуляция сети из 1000 нод, запущенная 30 минут назад, только что закончила обрабатывать первые полторы секунды жизни системы. Мимими. Так что ищутся способы параллелизации хацкель-кода, способы разнесения его на кучу машин малой кровью, а также свободные кластеры :3 Ну и завтра надо будет попрофилировать код, убрать где-нибудь ленивость, и все такое.
А потом придется запускать симуляцию много-много раз и пытаться понять, как ведет себя поверхность результатов в 7-мерном пространстве, и пытаться ее оптимизировать.
Пойду дрочить на результаты и баиньки.10 months ago - @0xd34df00d: *haskellStack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize -RTS' to increase it.
Поздравьте с моим первым таким в продакшне, сорт оф.10 months ago; 12 replies- @L29Ah: Быдло, ниасилившее хвостовую рекурсию, детектед.
- @Shchvova: *haskellтолько начав изучения Хаскеля, после прочтения всех диферамб о чистоте, супер функциональности, и прочей хуете, первое на что нарываешься, это не функциональность (идеологическая, в смысле FP) родной интерактивной консоли :( GHCi — нихуя не хаскел стайл.10 months ago; 16 replies
- @0xd34df00d: *haskell *stuffПичаль-пичаль-пичаль, поменял всего одну сигнатуру. paste.pocoo.org
Что-то я уже перестал сцать таких сообщений об ошибках, но все равно как-то не по себе.
В любом случае, об этом обязательно надо сирануть в жуйк. - @0xd34df00d: *haskell *programming *stuff *сексОно работает. То, что я писал последние пару месяцев, и еще немного летом — работает. Да, работает, да, показывает, что алгоритм еще не совсем эффективен (да что там, иногда фейлит), но симуляция работает. Работает, блять!
Это такое классное чувство — то, что ты писал, имея возможность отладить только мелкие кирпичики, имея возможность отладить логику работы на бумаге, заработало сразу, без багов в этой самой логике. Ты все чисто и здорово спланировал и смог всю систему целиком представить в уме. Все взаимосвязи. Это классное чувство.
Да, на первом теге и правда думаешь неделю, пишешь день, потому что язык адово выразительный. Потому что не нужно отвлекаться на «ой бля, а я тут erase сделал, а итератор обновится или где, а какие там условия у нас у std::list, а кто владеет этим объектом, а кто его удалять будет....». Не нужно отвлекаться на все эти тонкости реализации, и если ты все делаешь правильно — результат будет таким же эффективным и производительным. Ты просто пишешь код, записываешь мысли, рассказываешь, что ты хочешь сделать, ты говоришь с вменяемым собеседником, а не с тупым идиотом, которому нужно рассказывать, как именно обращаться по указателю.
Тысячи слов не хватит, настолько офигенное ощущение. Я просто бьюсь в оргазме. Да что там, это круче оргазма.10 months ago; 27 replies- @L29Ah: Ну что, ты завязываешь с плюсоёбством?
- @0xd34df00d: *c++ *programming *haskellСтарые привычки такие старые. Привык, что operator[] для любой нормальной реализации ассоциативного контейнера вставляет новый элемент, если такого ключа еще нет, и перенес эту логику на Data.Map.update. Ну, еще два часа коту под хвост )10 months ago; 26 replies
- @0xd34df00d: *haskell *juick_ppl *typical[19:21:39] <shchvova> Лисп круче хаскела
[19:21:46] <shchvova> он не такой задроченый
[19:22:25] <shchvova> а здесь какая-то хуева туча стрелочок, точек, палочек...10 months ago; 30 replies - @0xd34df00d: *haskell *говноЧем красивее и выразительнее код я пытаюсь написать, тем более он получается write-only.10 months ago; 11 replies
- @0xd34df00d: *haskell *говноБлин, почему GHC на коде типа
somefunc xfersSt = xfersSt'
where xfersSt' = Data.Map.update baz stuff xfersSt'
не предупреждает, что случится кровьговно из-за лишнего ' в самом конце последней строчки?
2 часа жизни из сердца вон.10 months ago; 38 replies - @0xd34df00d: *programming *haskell *?Штангисты, когда вы определяете функции в global scope, а когда в where/let-частях? А то, с одной стороны, если все в where определять, получатся ГРОЗДЬЯ ВИНОГРАДА, с другой — захламлять глобальный скоуп не Ъ.
- @0xd34df00d: *haskellЯ ниасилил leksah. Вернее, его профиты по сравнению с vim. По-прежнему хочется сворачивания кода, быстрой навигации и все такое.
- @0xd34df00d: *programming *haskell *c++Жуйк, тут в соседнем треде поднялся такой вопрос — что лучше, функциональщина в императивном коде или императивные мысли на хаскеле?
By [15:39:00] <rexim> Ха, то что у тебя в инперативном коде много функциональщины тебе похуй. А вот то что в хаскелях мысли императивны, уже что-то не то. :)10 months ago; 10 replies - @0xd34df00d: *programming *haskellКак реализовать алгоритм на Си:
1. Реализовать на Хаскеле в три строчки.
2. Использовать ghc для трансляции в Си.
3. Посмотреть на выхлоп ghc и почесать репу.
By #972146. - @0xd34df00d: *haskellfold по контейнеру с аккумулятором в роли хранения состояния — это костыль? Просто такие микроместа, где не хочется городить State. Ведь Keep It Simple, Stupid, разве нет?
- @komar: Это нормально.