Господа. Я хочу генерировать код на нескольких, языках Golang, Python, JS . Есть описание структур данных в виде yaml списков. Я планирую по этим файлам построить AST и генерить для каждого языка код.
Подскажите что вы бы использовали для этой задачи. Ну или что принято использовать.
Как в думаете писать ли в резюме на Хаскелл сколько поднимаешь в приседе?
Господа. Созрел вопрос.
Итак есть функция github.com
Задача добавить перед ней вызов функции которая меняет State, в зависимости от Term-а (Если терм больше текущего LeaderState -> FollowerState) и вызвать пару функций в монаде Transition.
runTransitionT — это "синоним" RWST и state тут конкретный тип состояния (FollowerState/CandidateState/LeaderState), а не обобщённый(existential?) SomeState .
Я решил эту проблему вот таким способом : github.com
Т.е. сделал трансформерами RW без T и поменял тип вызываемых функций на более общий.
Может быть возможно как-то поменять Transition чтоб это влезало в одну монаду?
Норот кто-то настраивал себе sublime с github.com со стеком под винду?
Господа, а были ли проблемы при запуске программ на Win 8.1 64, собранных на x86 win 7 ?
Пришлось мне все сообщения об ошибках посчтитать и пронумеровать, для того чтоб пользователь моего API мог интернационализировать их. Собственно за базу взял идею wiki.haskell.org . Вместо render можно конечно просто Show использовать, но мне удобнее ByteString . Ну и сделал инстанс Enum. Однако, поскольку не все конструкторы Nullary , toEnum внятный изобразить нельзя.
Внимание вопрос, кошерно ли использовать такой урезанный Enum или лучше навелосипедить свой Message -> Int ?
Продолжая вопросы из — #2794212 . Собственно расставлением кучи ! мне удалось заставить вылетать эксепшн в нужном потоке. Однако, мне нифига не понравилась такая т.к. мне кажется это совсем не правильным. Т.е. sink по умолчанию ленивый по своим агрументам, и только после того как я сделал его энегричным, что-то заработало.
Собственно встаёт вопрос как принято решать в кондуитах проблемы с тем что санк с эксепшеном может улететь в другой поток?
Кроме того можно, же воспользоваться decodeOrFail . Но насколько я понимаю тогда придётся воспользоваться map Maybe (...) $$ catMaybe $$ sink . Но информация об ошибке пропадает. Чтоб не пропадала придётся писать свой Conduit.
Есть у меня RollingQueue привязанная к UDP сокету. И если в сокет записать херню вылетает эксепшн из Binary десериализатора. Но обрабатывается он совсем не там где я ожидаю. Код тут:
gist.github.com
Подскажите почему так происходит.
Размер датаграммы которую можно отослать без разбивки на несколько TCP пакетов равна MTU — TCP Header — UDP Header (8). Размер TCP header 20-60 байт и зависит он от наличия Options. Что это за опции?
Есть у меня необходимость слать некие сообщения через UDP, перед посылкой я хочу проверять их длину, а если длина больше датаграммы разбивать на части. Собственно я хочу чтоб кондуит который отправляет сообщения принимал на вход только сообщения проверенной длины.
Собственно вопрос как такие ограничения принято задавать в системе типов?
А есть ли где мануал, по тому как правильно надо писать инстансы Data.Storable ?
Есть 2 списка [(Int,a)] и [(Int, b)] . Нужно провести классическую sql операцию JOIN , тут вроде просто
[(snd i, snd j) | i <- as, j <- bs, fst i == fst j]. А мне нужен Outer JOIN. Чтоб результатом был [(Maybe a, Maybe b)] .
Как такое принято делать?
Есть такой тип данных: data Result = COk | CFail String Т.е. что-то вроде Maybe но наоборот. И вот приходится мне комбинировать эти Result в стиле bind (>>=) . Норот, может есть где-то готовый тип с инстансом Monad ?
Я так понимаю вот эта херня github.com случилась из-за этой херни ghc.haskell.org ?
господа, а не посоветуете ли вы мне какой-нить хороший мануал для ant-а . Хочу настроить автосборку своего хаскильного проекта через Bamboo а у одминоф там ант.
Господа есть проблема с настройкой vpn-а. Есть сеть на роутере(debian-wheezy)(192.168.1.5) этой сети не поднимается openvpn тунель, а на компе который внутри сети понимается (192.168.1.3). На роутере 4 интерфейса eth0, eth1, wlan0, br0. eth0 и wlan0 объединены в br0, на него раздаётся dhcp. NAT делается одной коммандой. /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE . Внятной ошибки openvpn на 192.168.1.5 не пишет: Mon Apr 20 22:25:42 2015 TCPv4_CLIENT link remote: [AF_INET]176.126.237.214:443 Mon Apr 20 22:25:42 2015 Connection reset, restarting [0] Mon Apr 20 22:25:42 2015 SIGUSR1[soft,connection-reset] received, process restarting Собственно вопрос куда копать?
Где то в жуйце вроде видел что msysgit уже не кошерен и есть что-то на замену. Вот только что на замену не запомнил...
Господа, если мне нужно найти какой-то элемент с конца списка, то какой вариант лучше :
1. head $ filter pred $ reverse list
2. head $ reverse $ filter pred list
3. last $ filter pred list
Люди, а присоветуйте мне структуру данных для хранения лог-а. Вот есть в RaFT-е лог. От него требуется:
1. выдавать запись по индексу (индексы целые монотонновозрастающие)
2. выдавать последнюю запись
3. добавлять запись в конец
4. убирать записи с индексом >= нужного
Сейчас такой лог реализован IntMap-ом в памяти и, вцелом, он неплохо справляется реализуя перечисленное:
1. lookup
2. findMax
3. insert
4. filter
Однако, хочется persistance. Первая идея была взять acid-state и при коммите сохранять IntMap туда. В принципе, можно наверное просто в файл после сериализации сохранять, состояние то между потоками не шарится писать туда может только один... Обновления там простецкие, index++ и дописать в конец. Может кто-то встречал что-то более подходящее или есть какие-то идеи?
не грешно ли из главного цикла программы выходить выбрасывая эксепшн?