
Alexey
06.05.2017
21:56:25
Ну и даже на SqlClient переписали часть кода , который базировался на ef, который опять же я продвигал на первых парах входа в проект
Так получилось, что ef у нас почти нигде не использовался в полную силу с долгоживущим контекстом и трэканьем изменением, в основном только для того чтобы можно было делать запросы в бд через linq

Roman
07.05.2017
00:27:15
https://t.co/EL32IfYb1Y

Friedrich
07.05.2017
02:33:59

Google

Friedrich
07.05.2017
03:38:52
А если говорить про F#, то лично меня от реализации рабочих проектов пока что останавливает интеграция с энтерпрайзными фреймворками, EF в первую очередь. Вот когда она станет попроще (и нам надо над этим поработать) — я всерьёз подумаю о том, чтобы новый рабочий проект начинать на F#, потому что это будет аргументом (в том числе и для меня) — "Если что, всегда можно будет скатиться на C# и писать всё полностью по-старому".

Vagif
07.05.2017
04:39:53
Friedrich, Entity Framework для F# отлично заменяется на SQLProvider. Причем все это выглядит куда элегантней, поскольку не надо генерировать или писать классы entities.

Friedrich
07.05.2017
04:41:19
Да, я в курсе про тайп-провайдеры, и какие преимущества они дают. Это всё верно. Но это лишает меня страховки при разработке какого-то большого проекта. Я не смогу "откатиться на C#", если изначально буду использовать F#-only идиомы.
По крайней мере в психологическом плане это для меня важно.
И это при том, что я очень люблю F# и много пишу на нём всякого, что не привязано к энтерпрайзу и предпочтениям команды.

Vagif
07.05.2017
04:45:06
Ну интероп всегда останется в распоряжении. Но переходя на F#, как раз важно писать идиоматический код, иначе весь смысл перехода теряется.
У нас в организации было много проектов разных размеров, просто в какой-то момент стали некоторые из них делать на F#, начиная с маленьких. А потом дошло до крупных.

Friedrich
07.05.2017
04:49:52
Я тоже рассчитываю направиться по этому пути :)
Ну всё, чуваки, у меня почти получилось свой F#-бложик (Freya + Kestrel) запаковать в неткор: https://github.com/ForNeVeR/fornever.me/pull/54
Дождусь только, чтоб выпустили билд RSS-библиотечки с моими исправлениями, и можно в продакшен!

Nikolay
07.05.2017
07:54:51

Friedrich
07.05.2017
07:55:02
У меня там нету БД by design.
С БД у меня отдельный "микросервис", его я ещё не портировал :)

Google

Friedrich
07.05.2017
07:57:05
А в "микросервисе" всё грустно (пока что): я там просто взял EF6 и отдельную DLL скомпилял на C#. Но я его делал давно. Буду портировать — полностью перепилю на F# и SQLProvider.
Ну то есть это я планирую сделать уже после того, как в Core заработают провайдеры.

Evgeniy
07.05.2017
08:06:52
> после того, как в Core заработают провайдеры

Friedrich
07.05.2017
08:08:18
Кстати, кто разбирается в этой проблеме? Правильно я понимаю, что сейчас нас блокирует отсутствие каких-то типов в неключевом пакете с рефлекшеном? Мы не можем его мейнтейнерам чем-то помочь?

Nikolay
07.05.2017
08:09:16

Friedrich
07.05.2017
08:10:10
Они вроде ждут standard 2.0
Последний раз Phillip Carter писал, что в 2.0 нужных штук не будет, и мы после 2.0 будем ждать ещё релиза какого-то пакета.

Nikolay
07.05.2017
08:10:24
https://github.com/fsprojects/SQLProvider/issues/303

Pig
07.05.2017
12:20:09
гоферам это почему то не мешает
что я наблюдаю - народ не любит F#. Активно так не любит.
пропагандировать отпадает всякое желание

Evgeniy
07.05.2017
13:58:44
@mostdope Привет!

Most
07.05.2017
13:58:59
@gsomix шалом :)

Vagif
07.05.2017
14:03:22
Совершенно не согласен, что народ не любит F#. Просто инерция большая.

Most
07.05.2017
14:04:51
@VagifAbilov о, привет Вагиф, спасибо за доклад про Норвегию и акторов)
Многие ли в наших (ru-RU) реалиях имеют успешный опыт запуска проектов на фшарпе в прод? ну т.е. интересует вопрос, "как вы продали проект начальству", если таковые условия имелись, за исключением того, если вы не само "начальство")

Evgeniy
07.05.2017
14:07:43
@mostdope Чуть выше Alexey писать историю успеха.
Roman Привет!

Vagif
07.05.2017
18:48:26
Привет, Most Dope! Рад стараться.

Pig
07.05.2017
18:53:19
А в скале типизированные акторы победили или нет?

Dmitry
07.05.2017
18:54:50
я тут решил попробовать ботика для телеграма написать на F#, Suave и .NET Core и внезапно всё завелось и заработало (локально). Вот только не пойму - при сборке оно не делает EXE-шник, а только DLL-ку. Это нормально?
и как-то с наскока в параметрах билда я не понимаю, как сделать его самозапускаемым

Google

Dmitry
07.05.2017
18:56:07
или я и в виде библиотеки смогу запустить это дело в Азуре под модулем httpplatformhandler

Igor
07.05.2017
18:56:29

Dmitry
07.05.2017
18:58:18
Ну надо HTTP слушать
Телеграм апдейты на указанный вебхук шлёт

Igor
07.05.2017
19:00:04

Most
07.05.2017
19:00:25
докер
либо в ажуре WebApp/ Api App
что-то такое
а Suave может в хттпс и серты?

Dmitry
07.05.2017
19:01:32

Igor
07.05.2017
19:01:44
Ну надо HTTP слушать
А ок, я просто либу готовую юзал, там был готовый event, который можно сконвертировать в Observable и красиво чейний обработку запросов.

Evgeniy
07.05.2017
19:02:13
Кажется, F# — лучший выбор для телеграм-ботов. :)

Most
07.05.2017
19:02:18
ну хз)
на вкус и цвет)

Dmitry
07.05.2017
19:02:35

Most
07.05.2017
19:02:50
а, ну тогда докер, nginx и вперед)
главное не IIS)

Dmitry
07.05.2017
19:05:27
чото много телодвижений
я таким https://suave.io/azure-app-service.html образом хотел это дело запустить

Roman
07.05.2017
19:05:59

Google

Roman
07.05.2017
19:06:31

Evgeniy
07.05.2017
19:06:43
@neftedollar Ну, это я к тому, что это уже третий (?) человек в чате, который телеграм-бота пишет.

Most
07.05.2017
19:07:00
@azazeo ты про докер?

Roman
07.05.2017
19:07:08
У меня тоже есть маленький ботик

Dmitry
07.05.2017
19:07:33
мне б просто процесс под иисом чтоб бежал - абсолютно достаточно

Most
07.05.2017
19:08:57
@azazeo так а в итоге то в чем трабл?

Admin
ERROR: S client not available

Dmitry
07.05.2017
19:29:44
Что-то оно у меня в Азуре упало со словами `Error: assembly specified in the dependencies manifest was not found -- package: 'fsharp.core', version: '4.1.17', path: 'lib/netstandard1.6/FSharp.Core.dll'
`
Э? Веб-версия телеграма не форматирует?
Может быть это падение из-за того, что в Азуре dotnet --version даёт 1.0.1 а локально 1.0.3?

Igor
07.05.2017
20:04:14

Dmitry
07.05.2017
20:06:37

Igor
07.05.2017
20:10:19

Dmitry
07.05.2017
20:13:20
dotnet new console --lang F# BotProject
dotnet restore
dotnet build
dotnet publish
вобщем, получилось запусть с помощью dotnet dllname.dll приложение в Web App, но только из Kuda-консоли. А вот с web.config что-то не то.
<httpPlatform stdoutLogEnabled="true" stdoutLogFile=".\bot.log" startupTimeLimit="20" processPath="dotnet" arguments="D:\home\site\wwwroot\bin\Release\netcoreapp1.1\Bot.dll"/>

Google

Dmitry
07.05.2017
21:18:55
И не стартует с такой конфигурацией

Roman
08.05.2017
11:56:44
http://sergey-tihon.github.io/Stanford.NLP.NET//samples/CoreNLP.Simple.html кто-нибудь пользовался? Зачем такая штука ? Я бегло пробежал, но не понял всех ее возможностей.

Friedrich
08.05.2017
11:57:25
Ого, а уже есть порт на дотнет?
А, Сергей же этим и занимался :)
Я зачем-то смотрел эту штуку, когда изучал NLP. Но, увы, так и не изучил до конца :(

Roman
08.05.2017
12:29:01

Friedrich
08.05.2017
12:29:40
А что она может, зачем она?
Она умеет делать вот это с текстами на некоторых естественных языках: http://sergey-tihon.github.io/Stanford.NLP.NET//samples/CoreNLP.Simple.html#Supported-Annotators
(русского нет)
Вообще, либа довольно неплохая и полезная, если тебе нужно анализировать тексты на английском, например.
В малом C#-чате подняли хороший вопрос: хотят генерализовать такую функцию (см. картинку ниже).
Я на C# сделал обобщённое решение, но оно мерзкое: https://hastebin.com/okufosuyox.cs
А вот на F# как симпатично вышло: https://hastebin.com/otabawojuz.fs
Вот с такими примерами нам надо приходить к народу!

Igor
08.05.2017
12:51:56

Friedrich
08.05.2017
12:52:13

Igor
08.05.2017
13:00:20

Roman
08.05.2017
13:01:16

Friedrich
08.05.2017
13:01:53
А на haskell?
А мне чото кажется, что будет примерно то же самое, что на F#? Разве что там generic 1 можно без костылей сделать.

Pig
08.05.2017
13:03:07
$ ghci
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Prelude> constrain x a b = min (max x a) (b - 1)
Prelude> :t constrain
constrain :: (Ord a, Num a) => a -> a -> a -> a

Igor
08.05.2017
13:03:45

Pig
08.05.2017
13:05:08
Фи, зачем кабал если есть стек?

Igor
08.05.2017
13:05:47