← All posts tagged C++

dr-Chaos
? Haskell raft kontiki Господа. Созрел вопрос.
Итак есть функция github.com
Задача добавить перед ней вызов функции которая меняет State, в зависимости от Term-а (Если терм больше текущего LeaderState -> FollowerState) и вызвать пару функций в монаде Transition.
runTransitionT — это "синоним" RWST и state тут конкретный тип состояния (FollowerState/CandidateState/LeaderState), а не обобщённый(existential?) SomeState .
Я решил эту проблему вот таким способом : github.com
Т.е. сделал трансформерами RW без T и поменял тип вызываемых функций на более общий.

Может быть возможно как-то поменять Transition чтоб это влезало в одну монаду?
dr-Chaos
ремонт ещё про нивелиры в догонку к #2828668.
ADA CUBE MINI Basic Edition — rus.adainstruments.com реально самый недорогой, маленький и точный в классе, но у него маловато фич. Нельзя блокировать маятник чтоб делать разметку под углом, в комплекте нет никакого крепления, оригинальная прищепка — 700 руб
INFINITER CL2 — condtrol.ru . По-дороже, но умеет блокировку маятника и отвес, но меньше точность. В комплекте есть прищепка для крепления. В магазине где я брал он стоил почти так же как и первый, но возможно это старый дизайн модели без отвеса.
X-Line Helper 2D — technopoint.ru Самый дорогой, точность на уровне 1-го, значительно больше. Однако, он наиболее универсален и главное преимущесто — он умеет работать с приёмником(точно работает с ADA LR-50), т.е. можно работать на улице и проводить разметку земельного участка, выравнивать заборы и прочее. К плюсам можно отнести большой угол развёртки >120 , и возможность работать под углом (маятник в этом случае не блокируется, но и линии не мигают).

Поскольку у меня вокруг дома есть земля и в ней предстоит прокладывать трубы, я выбрал последний.
dr-Chaos
ремонт Итак по результатам исследования МФИ и лазерных нивелиров оптимальными признаны:
MAKITA TM3000C 220-volt.ru — за невысокую цену и автоматическое поддержание оборотов
и
ADA CUBE MINI Basic Edition 220-volt.ru — за невысокую цену, высокую точность и разнообразные варианты комплектации

Купил я пока правда только SKIL 1470 LA 220-volt.ru :)
dr-Chaos
WTF code Haskell stack
Вот кстати по стеку вопрос. Когда фиксил тесты для fast-logger-а увидел забавную штуку.
Запускаю stack test . И для wai-logger он выдаёт замечательные ошибки про System.Posix . Выясняется что в cabal файле. используется.
if os(windows)
   Cpp-Options: -DWINDOWS

И почему-то при сборке тестов этот флаг либы не учитывается, добавление этого флага тестам ничего не даёт. 

А сами тесты сделаны с помощью doctest:
-- $setup
-- >>> :set -XOverloadedStrings
-- >>> import Network.Wai.Test

он ругается что нет такого модуля. Добавление его в зависимости stack и cabal ничего не даёт.

Собственно у меня 2 вопроса:
1. Фиксится встроенным в GHC mingw32_HOST_OS , но как всё таки stack заставить нормально обрабатывать Cpp-Options.
2. Полагаю что дело в путях, но всё равно какая-то хуйня.
dr-Chaos
work JIRA confluence Норот. Надо нарисовать маленькую state machine diagram на 3 состояния и 7 событий и залить это всё в confluence. Не хочется её картинкой делать. Нет ли какой-нить возможности сгенрить эту фигню из текста? Или из таблицы состояний?
dr-Chaos
CPP Код собирается в одном коньпиляторе и не собирается в другом. Поменял местами определения функций — собрался.
Как 10 лет назад с VC6 . Стабильность — чо. :)
dr-Chaos
Haskell stack Блин, как правильно указать пути к бинарям? Т.е. есть у меня некий антовксий скрипт который делает tar.gz пакет. Если собирать кабалом — путь всегда один и проблем нету. Стек же туда пихает архитектуру и версию кабала. Можно конечно собирать stack build --copy-bins , а потом из stack path --local-bin-path копировать. Может есть ещё способы?
dr-Chaos
? Haskell conduit Продолжая вопросы из — #2794212 . Собственно расставлением кучи ! мне удалось заставить вылетать эксепшн в нужном потоке. Однако, мне нифига не понравилась такая т.к. мне кажется это совсем не правильным. Т.е. sink по умолчанию ленивый по своим агрументам, и только после того как я сделал его энегричным, что-то заработало.
Собственно встаёт вопрос как принято решать в кондуитах проблемы с тем что санк с эксепшеном может улететь в другой поток?
Кроме того можно, же воспользоваться decodeOrFail . Но насколько я понимаю тогда придётся воспользоваться map Maybe (...) $$ catMaybe $$ sink . Но информация об ошибке пропадает. Чтоб не пропадала придётся писать свой Conduit.
dr-Chaos
? Haskell conduit Есть у меня RollingQueue привязанная к UDP сокету. И если в сокет записать херню вылетает эксепшн из Binary десериализатора. Но обрабатывается он совсем не там где я ожидаю. Код тут:
gist.github.com
Подскажите почему так происходит.