↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

[18:15] kb> Ок, переключил в красноглазый, заебали.
[18:15] bnw> ERROR. Command not found: ок,

#3BWVSY (5) / @kb / 4265 дней назад

Причём, bnw тоже молодец, в ответ спамообороне пытается сказать

[2013-11-22 14:11] bnw> You are sending messages too fast!
[2013-11-22 14:12] bnw> You are sending messages too fast!

#SES50W (2+1) / @kb / 4265 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=152c8f53a62edfb6cc43a608de41f488c60ad4a0

#SB0NQC (0+1) / @kb / 4265 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=12a2174f8f05e63aeec15d9dd16fdfd3613f192e

#5Q0LUN (10+1) / @kb / 4265 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=bea5a79bf7103251282b1aca3600b9867d6d4779

#DGX83O (8+1) / @kb / 4270 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=3cae3ab42b831f9746f9a5cdddf83d41e3f53907

#FPNCOA (0+1) / @kb / 4270 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=749f27c782586d51e50e36ba4d06cd6684fe62e9

#FOTAZO (1+1) / @kb / 4275 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=8edfc754506775df74a94886d2ace342cdb84e4b

#5MMLVT (10+1) / @kb / 4276 дней назад

Пожалуй, одной из прелестей FirefoxOS будет то, что теперь в этом
изобилии говняных интерфейсов можно будет сесть и за один-два вечера
наотправлять "пулл-реквестов" к любимым приложениям, которые будут
банально расставлять отступы, выравнивать шрифты ну и так
далее. Почему-то на андроиде это делать, видимо, очень сложно.

#D0KAFM (12+1) / @kb / 4280 дней назад

Драйвер редиса возвращает Redis (Either Reply a). При операции HGET возвращает, соответственно, Redis (Either Reply (Maybe ByteString)), типа значения по ключу может и не быть. Программист для упрощения пишет сначала специальную функцию redis', которая заворачивает ответ редиса в EitherT-based монаду, чтоб соединять подобные вычисления и возвращать первую неудачу:

newtype Redis' a = Redis' (EitherT Redis.Reply Redis.Redis a) deriving (MonadIO)
instance Monad Redis' where
    return = Redis' . EitherT . return . Right
    (Redis' m) >>= f = Redis' $ m >>= \rv -> unwrapRedis' $ f rv
redis' = Redis' . EitherT

Таким образом, теперь, если вы получаете ответ Redis (Either Reply a), вы его преобразуете в

Redis' (EitherT Reply Redis a)

и можете соединять подобные вычисления в do-блоке типа:

do
    res <- redis' $ Redis.hget foo bar
    res2 <- redis' $ Redis.hget baz zab

и вычисление остановится на первом возврате ошибки.

Далее. Программисту необходимо по кучке значений сделать HGET и вернуть это как-то внутри кортежа, поскольку мы внутри новой монады Redis' -- завернуть результат в неё. В случае, если значения хоть по одному ключу не существует, хочется вернуть Nothing для всех. Потому создаётся новая монада:

newtype HashFields a = HashFields (MaybeT Redis' a)
    deriving (Functor, Monad)
instance Applicative HashFields where
    pure = return
    (<*>) = ap

описывающая вычисления типа Redis', которые могут вернуть неудачу. Пишется новая функция

hashField = HashFields . MaybeT . redis'

способная завернуть результат неудачи в новую монаду, которая умеет останавливаться на первой неудаче. Также пишется специальная функция для HGET:

getField :: ByteString -- ^ Key
         -> ByteString -- ^ Hash field name
         -> HashFields String
getField key field = fmap toString $ hashField $ Redis.hget key field

Также напишем функцию, которая "запустит" наше вычисление:

getRedisFields :: forall a. HashFields a -> Redis' (Maybe a)
getRedisFields (HashFields f) = runMaybeT f

И теперь лёгким движением руки мы можем сделать что-то вроде:

getRedisFields ((,,,,,) <$>
    getField k "foo" <*>
    getField k "bar" <*>
    getField k "baz" <*>
    getField k "zab" <*>
    getField k "rab" <*>
    getField k "oof")

Вопрос: вам не кажется это "слишком"? Я пока еще не настолько просто манипулирую типами в голове, чтоб ощутить всю ситуацию, хорошо хоть в целом могу медленно прости по шагам по коду, но есть ощущение, что что-то здесь не так.

#DEENSA (6+1) / @kb / 4280 дней назад

Ну короче уже разными клиентами подобавлял, поразрешал. Если снова выёбываться будет -- значит сам лох.

#XZ71KL (4) / @kb / 4283 дня назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=2e06f4e44b4701cd800156ebe1b0e2a40f48e3bf

#UQZCT3 (14+1) / @kb / 4283 дня назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=cf201c7489f5cc7d7fca69023a12dddac124d59b

#YUB06I (5+1) / @kb / 4285 дней назад

Программист использует условие "buf + len >= buf_end" для проверки на переполнение указателя, подразумевая, что при очень большом значении будет осуществлено переполнение размерности типа. GCC оперирует тем, что значение после переполнения переменной с указателем в стандарте языка С считается неопределённым.

Пацаны, не знаю, как вы, а я лично тут за GCC.

http://www.opennet.ru/opennews/art.shtml?num=38293

#CYQRA0 (8) / @kb / 4288 дней назад

Spiderpig, Spiderpig, does whatever Spiderpig does!

(c) Чувак, отвечающий на критику Леннарта о том, что Убунту без
Системд обречены. // да, новые разборки, новые расколы и выяснения
отношений

http://gentooexperimental.org/~patrick/weblog/archives/2013-10.html#e2013-10-29T13_39_32.txt

#AU4567 (0+2) / @kb / 4289 дней назад

Внимание, системное сообщение!
Спамооборона классифицировала Ваше сообщение как спам. Если это ошибка, пожалуйста, перейдите по ссылке и выполните инструкции, описанные на открывшейся странице.
http://online.yandex.ru/captcha.xml?u=kost-bebix%40ya.ru&t=24d1c1ccca23e007129275cb11e4ed04493bd3c9

#6J0QGL (5+1) / @kb / 4289 дней назад

We launched datastore with support for three platforms: iOS, Android, and JavaScript

#041F9R (15+1) / @kb / 4289 дней назад

Кстати, официально признаю идею перенести Ctrl на капслок очень удачной. Действительно теперь могу сказать, что стало лучше, причем не только в емаксе, а в файрфоксах и прочих местах тоже.

#G6YENQ (12) / @kb / 4289 дней назад

Мда. Докер кеширует как-то очень странно, чего-то я не понимаю. Один и тот же кусок вместо чтения из кеша заново пересобирает иногда (но не всегда). В связи с этим придётся "коммитить образ" ghc/cabal и дальше с него начинать. В общем, штука очень крутая, но до конца не ясны все плюсы и минусы в плане полезных юз-кейсов.

#C9FG0D (0) / @kb / 4289 дней назад

Решил ловить стековерфлоу таки при помощи запуска некоторых воркеров с
профилированием и стек трейсами в продакшне. Т.к. в продакшне у нас
ubuntu 10.04, надо собрать под ней проект. Пытаюсь в одной консоли
собрать внутри Vagrant, в другой -- внутри Docker. Посмотрим, где
быстрее / удобнее / вообще получится.

#LM71TY (0) / @kb / 4289 дней назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.