
Vasily
16.05.2017
15:32:51
Самое тупое - раз в n секунд делать Select count(1)

Roman
16.05.2017
15:33:06
Триггер тогда?)
Я не особо в БД разбираюсь, но походу я не могу повесить тригер в своей бд на их таблицы)

Vasily
16.05.2017
15:33:15
Не можешь

Roman
16.05.2017
15:33:19

Google

Vasily
16.05.2017
15:33:23
Если тебе факт изменения
Причем не в рил тайме

Roman
16.05.2017
15:33:51
в идеале

Nikolay
16.05.2017
15:34:02

Roman
16.05.2017
15:34:17

Vasily
16.05.2017
15:34:22
В рил тайме требует настройки sql на той стороне

Roman
16.05.2017
15:34:36

Vasily
16.05.2017
15:35:05
Это как с настройкой WCF каналов, допустим
Хммм... в Scala мире какие войны бушуют, оказывается

Pig
16.05.2017
15:39:28
О, расскажи пока чатопуристы не набежали.

Vasily
16.05.2017
15:39:58
Да там одного расиста не пустили выступать на лямбда конф и понеслась

Google

Vasily
16.05.2017
15:40:03
http://degoes.net/articles/lambdaconf-inclusion

Pig
16.05.2017
15:41:25
До сих пор бушуют?

Alexey
16.05.2017
15:41:42
Ну эти войны не имеют отношения к программированию :)

Vasily
16.05.2017
15:41:44
Да тут в соседнем чатеге обсуждают
Ну как не имеют

Pig
16.05.2017
15:42:10
Это в каком?

Vasily
16.05.2017
15:42:35
https://t.me/scala_ru
В этом

Roman
16.05.2017
15:46:42
В общем пошел к админам, они обещали настроить что-то подобное.

Friedrich
16.05.2017
16:31:41
Друзья, а тут кто-нибудь кроме меня увлекается Freya? Я сейчас интегрирую туда NodeServices, и не смог сходу в документации найти, как мне резолвить внутри freya {} штуки навроде [FromServices] INodeServices nodeServices (из встроенного коровского DI-контейнера).
(заодно спросил в гиттер-чате Freya; если заборем, то я попробую им пул-реквест в документацию нарисовать)

Alexey
16.05.2017
16:43:25
Freya это прямой конкурент Suave.IO?

Roman
16.05.2017
16:43:55

Friedrich
16.05.2017
16:43:57
Если честно, я не знаю, кто там у них чей конкурент. Я просто как-то раз взял Freya и выкатил в продакшен :)
(ну, такой себе продакшен; все исходники можно посмотреть на https://github.com/ForNeVeR/fornever.me)

Pawel
16.05.2017
16:58:14

Friedrich
16.05.2017
17:00:15

Roman
16.05.2017
17:03:50

Friedrich
16.05.2017
17:04:30
Досадно!

Google

Vasily
16.05.2017
17:05:21
А что мешает объявить тип поверх провайдера?

Pawel
16.05.2017
17:07:05
Да никак
В Suave есть, но работает не потребно. Не пробовал signalR в asp net core под kestrel ?

Roman
16.05.2017
17:07:58

Vasily
16.05.2017
17:08:27
Ну на каждый тип провайдера свой прокси

Evgeniy
16.05.2017
17:11:55
@neftedollar На что ругается?

Ivan
16.05.2017
18:31:52
Вчерашний вопрос насчет доступа к бд. Посмотрите https://github.com/linq2db/linq2db/tree/master/Tests/FSharp

Pawel
16.05.2017
18:34:59

Ivan
16.05.2017
18:37:14
`main.Orders by CustomerID` - такого нет. Очень пугает неофитов
И там нет напрчь Change Tracker

Pawel
16.05.2017
18:55:45
main.Orders by CustomerID - это вкусовщина, можно легко привыкнуть при жалании. Править и создавать "доменные модели сущностей" (или как оно там правильно называется) - вот это действительно ужос-ужос. SQLProvider позволяет этого избежать

Ivan
16.05.2017
18:58:36
Это все таки C# библиотека по большому счету. Надо бы допилить тайп провайдер на основе ее t4

Ivan
16.05.2017
18:59:56
Она у нас в продакшене уже года 2. Вроде под миллионом клиентов багов нет
Под C# правда

Pawel
16.05.2017
19:00:50

Ivan
16.05.2017
19:02:46
Угу

Evgeniy
16.05.2017
19:19:28
@neftedollar Пинг. :)

Roman
16.05.2017
19:19:35
тут

Evgeniy
16.05.2017
19:20:21
@neftedollar Я хотел узнать, на что ругается компилятор при попытке написать констрейнт для erased провайдера.

Pavel
16.05.2017
19:23:09
А нафига ты подписываешь вообще что-то?

Google

Roman
16.05.2017
19:23:22

Pavel
16.05.2017
19:23:34
Попробуй убрать сигнатуру
Пусть конпелятор её выведет
в смысле тебе всё равно в теле функции придётся получить экземпляр метода

Pawel
16.05.2017
19:24:25

Admin
ERROR: S client not available

Pavel
16.05.2017
19:24:50
так нельзя
тебе придётся написать (^a : ... ) ()
В теле функции всё равно

Roman
16.05.2017
19:25:46

Pavel
16.05.2017
19:25:49
Поэтому в сигнатуре не придётся писать, скорее всего
let inline parse parser string =
((^a : string -> 't) parser string)
я не помню синтаксис - всегда смотрю гугл

Roman
16.05.2017
19:30:45

Pavel
16.05.2017
19:32:03
Я от балды написал, я про то, что констрейнт ты должен с параметрами написать внутри вызова всё равно

Roman
16.05.2017
19:32:32
на самом деле, я уже решил этот вопрос, мне там не нудна такая ф-ция parse, но интересно

Pavel
16.05.2017
19:33:44
let inline checkEmpty rc =
if (^a: (member IsEmpty: bool) rc) then Fail (ParsingError "Should not be empty")
Я говорю, не помню синтаксис, всегда подглядываю, но идея в том, что тебе это надо в теле функции писать в любом случае

Google

Pavel
16.05.2017
19:34:52
поэтому в сигнатуре можно опустить

Pawel
16.05.2017
19:35:58
если я правильно понел -
`let inline parse (parser:^a when ^a:(member Parse : unit -> string)) =
(^a : (member Parse : unit -> string) parser).Parse()`

Roman
16.05.2017
19:36:16

Pavel
16.05.2017
19:36:36
да, свойство

Roman
16.05.2017
19:36:40
ага
спасибо
не знал что так можно

Pavel
16.05.2017
19:37:18
в твоём случае как-то хитрее будет, но идея та же, тебе вот этим синтаксисом вызвать метод

Evgeniy
16.05.2017
19:37:46
@neftedollar А что ты собирался в качестве parser передавать в функцию?

Pavel
16.05.2017
19:38:26
Вот мой полный пример
let inline checkEmpty rc =
if (^a: (member IsEmpty: bool) rc) then Fail (ParsingError "Should not be empty")
else Ok rc
|> liftChoice

Roman
16.05.2017
19:38:29

Evgeniy
16.05.2017
19:39:21
@neftedollar Так значение этого типа или тип?

Roman
16.05.2017
19:39:58
так что я просто знаю когда что мне нудно парсить и предаю MyType.Parse как функцию-десериализатор
Но все же дико полезно)

Evgeniy
16.05.2017
19:41:45
@neftedollar Типа let sample = parse Author.Parse """<author name="Karl Popper" born="1902" />"""

Roman
16.05.2017
19:41:59