← All posts tagged net

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
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
Windows cabal mingw Мда... cabal нормально не работает без прописанных в PATH путей. Даже если cabal-у указать путь к gcc в конфиге, пакет network не соберется т.к. использует autoconf, а он уже не может без gcc в PATH. Пичаль какая-то :(
dr-Chaos
net Haskell Залёз тут опять в дебри UDP и ICMP. Походу таки буду делать разбирание/собирание байтстроки на UDP пакеты с исследованием MTU. Тока я смотрю этого на цацкеле никто не пейсал. " Я сильная, я смелая и на голову ебанутая."
dr-Chaos
? code Haskell failure
Что-то я посмотрел на http://www.haskell.org/haskellwiki/Failure и как-то не совсем понял как получится такое:
Consider a program to download a web page and parse it:

1. Network.URI.parseURI returns (Maybe URI).
2. Network.HTTP.simpleHTTP returns (IO (Result Request)), which is basically a broken version of (IO (Either ConnError Request)).
3. Parsec returns (Either ParseError a)

So there's no hope that I can write anything like:

  do uri <- parseURI uriStr
     doc <- evenSimplerHTTP uri
     parsed <- parse grammar uriStr doc

Там же всё равно какие-то fromJust или fromEither придётся использовать.
dr-Chaos
WTF cpp-netlib бля, ну почему у меня работа с новыми либами начинается с того что я их патчу!? На сайте cpp-netlib-а написанно что версия 0,8 собираеццо с бустом выше 1,43. Авотхуй! Интерфейс asio сцуко поменялся, то. А я сижу и думаю почему ж я такой ебанутый, а это оказывается лыжи не едут!
dr-Chaos
Ubuntu network-manager не завёлся после того как система не смогла вернуться из сна :( . Походу это последняя капля для обновления моего древнего LTS, а отпуск то не резиновый.
dr-Chaos
Haskell gc На кывте народ подкинул забавную ссылку про проблемы GC Java и .Net dev.by , т.е. при определённых достаточно простых условиях можно нарваться на проблемы.
Собственно вброс^W вопрос как с этим у Хаскела? Это просто решено по другому или GC иначе работает?
dr-Chaos
Git По мотивам #1631309
Ну я могу поделиться опытом попытки внедрения git в энтерпрайз (неудачной, к слову). Так вот основные минусы на тот момент (где-то год назад):
1. Хреновая работа через http (пофиксилось еще в процессе холивара). Хотя в процессе эксплуатации были некислые глюки с push-ем по http.
2. Чтоб настроить аутентификацию, надо понимать как она делается в линуксе. Это для Cerberos с ssh.
3. Проблема с ssh клиентом умеющим Cerberos, т.е. putty умеет, но надо собирать кастомный
4. Curl не умеет по дефолту использовать NTLM аутентификацию, т.е. надо было его фиксить либо скармливать .netrc, так же он не умеет Negotiation аутентификацию с сервером. (В 7.21.4 вроде сделали, но как оно работает — не проверял)
5. Сырость gui инструментов под win всякие git extentions и прочее довольно неилюзорно падало. (правда за последние пол года человек припоминает только один такой случай)
6. Довольно кривая и непонятная работа с сабмодулями и, как следствие, непонятки с тем как лучше работать с зависимыми друг от друга проектами.
6. Ну и страх консольной магии.

Это из более-менее реальных проблем с которыми столкнулся и на которые я мог влиять. Как видно, большинство тех проблем решено. Очевидно, кто-то таки начал его использовать и раскорячил нужным образом.

Но самая главная проблема — инертность сознания менеджеров. Одни не хотят ничего менять в процессе выпуска релизов и хот фиксов (а чё это я буду подстраиваться под SCM? у меня под MKS-ом всё нормально фигачит. ) Хотя ничего принципиально нерешаемого я там не увидел.

Короче, в итоге, выбрали SVN как замену MKS-у. Типа менее сырая и более годная, да и работали мы тут с ней, да и все остальные умеют с SVN-ом работать. В принципе — да, умеют, но про git пишут — что лучше один раз при высасывании истории. bzr по словам gaperton-а годно работает. hg — не знаю.

А на счёт готовности с ентерпрайзу: он действительно сыроват, но его доводят и если активист не умеет линукс, консольную магию и патчи можно и не довести до нормального состояния. Да и людей которые умеют готовить git для ентерпрайза, судя по всему, не много.
dr-Chaos
WTF Обнаружил презабавнейший глюк у кубунты. При старте без USB модема запускается plasma-netbook, а с модемом plasma-desctop. :)