Чтобы добавлять сообщения и комментарии, .

@qnikst:
qnikst

Как правильно дизайнить тесты и вообще стабильность системы из многих компонентов, чтобы не пропустить возможные случаи live/dead локов и неожиданных падений?

@qnikst:
qnikst

— Папа, ты не можешь гореть, потому, что у тебя нет фитиля. Шутка. Можешь.

@qnikst:
qnikst

кто в час ночи идет по городу с вопросом воздушных шариков, тот я

@qnikst:
qnikst

А какие можно найти дешевые IPC и вообще средства для следующего (задачи разные):
1. пнуть другой процесс чтобы посмотрел, чтобы забрал данные (**)
2. заметить, что родительский процесс помер (***)
3. заметить, что дочерний процесс помер (*)

(*) я знаю что для 3 я могу делать waitpid, но я ленивая сволочь и скорее всего double-fork сделаю, чтобы PID 1 за мной подметал.
(**) сейчас там поллинг, но мне не нравится, что висящий и ничего не делающий процесс жрёт CPU
(***) сейчас там polling get_ppid что мне тоже нифига не нравится

@qnikst:
qnikst

@agr пока Донс непонятно что делал с твоим резюме он взял и сбежал в facebook в лондон

@qnikst:
qnikst

geektimes.ru вот смотрю там комментарии, куча восторженных отзывов про з/п в 100$ час, и не очень понимаю почему, лаже на меинстрим языках и больше за час работы люди получают. // я и близко столько не получаю, но все же..

@qnikst:
qnikst

А есть тут кто-нить разбирающийся в elastic search стеке, у меня есть уйма тупых вопросов?

@qnikst:
qnikst


Note [Instantiating stupid theta]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Normally, when we infer the type of an Id, we don't instantiate,
because we wish to allow for visible type application later on.
But if a datacon has a stupid theta, we're a bit stuck. We need
to emit the stupid theta constraints with instantiated types. It's
difficult to defer this to the lazy instantiation, because a stupid
theta has no spot to put it in a type. So we just instantiate eagerly
in this case. Thus, users cannot use visible type application with
a data constructor sporting a stupid theta. I won't feel so bad for
the users that complain.

@qnikst:
qnikst

Чего-то в соседней компании выкосило по болезни всех русскоязычных^W москвичей.
Посему вопрос, в эту вашу Москву на митап вообще безопасно ехать?

@qnikst:
qnikst

А как написать:

xz <- many (readTChan x)
for_ xz writeTChan

так чтобы промежуточная струтура не строилась?

(forever $ readTChan x >>= writeTChan x) <|> alwaysSucceeds

@qnikst:
qnikst

я уже спрашивал что-то подобное, но проигнорировал советы, спрошу ещё раз.

У меня есть tmux и я хочу подсвечивать определенные паттерны на экране, когда смотрю логи файлы и т.п.. Есть ли что готовое?

@qnikst:
qnikst

кто хочет поработать на благо военки в славном городе гатчине (от питера добраться просто) за какие-то 80-90к (если все уметь) или на сколько-то меньше, если быть готовым учиться. Делать так чтобы корабли меньше тонули, а на складах было меньше ЧП, ну или хотя бы чтобы об этом узнали все кому следует знать. Там всякие C + возможно что-то более высокоуровневое можно.
Говорят секретности или нет или та, что проблем с загран паспортом и выездами не будет.

@qnikst:
qnikst

```
data State a = Running a | Starting (STM a) | Stopping (STM ())
```
и TVar (HashMap key (State value)), лучше ведь чем global lock на структуру?

@qnikst:
qnikst

Сисадмины Нового Поколения! Вот, они, Вот Враги! Это из-за них Ваши ДЕТИ.. Я даже не могу сказать...
Вот, только посмотрите на это!
docker.com

Видите СИНИЙ КИТ, и они не скрывают! Это Они распространяют заразу!!

Блокируйте синего кита! не используйте docker!

@qnikst:
qnikst

вот такие блины водятся в 10км от ядерного реактора и могильников и 500м от промзоны..

@qnikst:
qnikst

А что у нас в этих наших линуксах с HiDPI? Если у меня нету модного DE, то могу ли я как-нить в одном (двух-трех, в общем конечном числе) месте гуишным программам scaling factor выставить? Например, у хрома есть опция, а что делать с audacity, telegram, whatever else (не придумал, что ещё гуишное использую)

@qnikst:
qnikst

хочется написать что-то вроде:

class T a where type ReqRep a :: -> ; reqrep :: a -> ReqRep a x -> x

для того, чтобы можно было передавать запросы гадтами, которые типизированы возвращаемым результатом. Но при этом я теряю возможность сдеать простые классы, где запрос это Int а релзультат всегда Bool анпример.

Как сделать, чтобы и то и другое работало и запрос не надо бы было паковать в гадт?

@qnikst:
qnikst

покемоны смешная игра летом сплошная школота играла, а сейчас они в школе и за них играют родители

@qnikst:
qnikst

а можно ли написать:
```
data Q = Q (forall a . TChan (Request a, TMVar (Reply a)) }
Foo { foo :: Q }
runQ :: Foo -> Request a -> IO (Reply a)
runQ f = case foo f of
Q t = do v <- newEmptyTMVarIO
atomically $ writeTChan t (x,v)
atomically $ takeMVar v
```
и не свести GHC с ума? и не получить unsafeCoerce, Request a это GADT такой если что

@qnikst:
qnikst

так.. похоже в qubes-os не поддерживается nested virtualization печалька