@Fsharp_chat

Страница 134 из 772
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
Если тебе факт изменения
мне нуджны толкьо измнения. Ссылку пока не почитал твою, но там походу есть что-то полезное.

в идеале

Roman
16.05.2017
15:34:17
Не можешь
кстати, даже через linked server?

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

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
Такая тема: у меня есть XmlTypeProvider'ы у всех у них есть статический метод Parse. Могу ли я описать тип вроде let parse<'T> ^a -> strin -> 'T (^a when ^a : (static member Parse : string -> 'T)) ?
Почти наверняка нет. Эти провайдеры же erased, так что вряд ли на них можно наложить статические ограничения. Но если ты попробовал, то расскажи :)

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

(заодно спросил в гиттер-чате Freya; если заборем, то я попробую им пул-реквест в документацию нарисовать)

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

Friedrich
16.05.2017
16:43:57
Если честно, я не знаю, кто там у них чей конкурент. Я просто как-то раз взял Freya и выкатил в продакшен :)

(ну, такой себе продакшен; все исходники можно посмотреть на https://github.com/ForNeVeR/fornever.me)

Pawel
16.05.2017
16:58:14
Если честно, я не знаю, кто там у них чей конкурент. Я просто как-то раз взял Freya и выкатил в продакшен :)
как там у них с саппортом для 1) вебсокетов 2) http2 ? Помнится году эдак в 2015 господин kolektiv обещал добавить 1), но как-то не торопился особо.

Friedrich
16.05.2017
17:00:15
как там у них с саппортом для 1) вебсокетов 2) http2 ? Помнится году эдак в 2015 господин kolektiv обещал добавить 1), но как-то не торопился особо.
К сожалению, этими вещами я пока в данном фреймворке не интересовался, так что ответить не могу.

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
А что мешает объявить тип поверх провайдера?
хочу общую функцию парсинга, там все равно надо будет матчить тип. А это не получается из-за как рза erased типов

В Suave есть, но работает не потребно. Не пробовал signalR в asp net core под kestrel ?
нет, в asp.net core есть вроде вебсокеты нормальные. Но я не пробовал

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
Вчерашний вопрос насчет доступа к бд. Посмотрите https://github.com/linq2db/linq2db/tree/master/Tests/FSharp
чем же он лучше этого и какие профиты даёт по сравнеию с? https://fsprojects.github.io/SQLProvider/

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# правда

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
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
В теле функции всё равно
let inline parse parser string = parser.Parse str //где тут?

Pavel
16.05.2017
19:25:49
Поэтому в сигнатуре не придётся писать, скорее всего

let inline parse parser string = ((^a : string -> 't) parser string)

я не помню синтаксис - всегда смотрю гугл

Roman
16.05.2017
19:30:45
let inline parse parser string = ((^a : string -> 't) parser string)
т.е. мне надо указать что у parser есть метод Parse типа string -> 't?

let inline parse parser string = ((^a : string -> 't) parser string)
такой синтаксис не валиден. гуглю

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()`

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

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

Roman
16.05.2017
19:39:58
@neftedollar Так значение этого типа или тип?
вот я как раз и подумал что это не вариант из-за того что я передают туда тип так не получится

так что я просто знаю когда что мне нудно парсить и предаю MyType.Parse как функцию-десериализатор

Но все же дико полезно)

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

Страница 134 из 772