@Fsharp_chat

Страница 104 из 772
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#. Активно так не любит.
Люди очень инертны. Они будут не любить и C#, и C++, и вообще компьютеры. Надо им показывать преимущества, обосновывать, и постепенно они втянутся.

А если говорить про 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-библиотечки с моими исправлениями, и можно в продакшен!

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
Кстати, кто разбирается в этой проблеме? Правильно я понимаю, что сейчас нас блокирует отсутствие каких-то типов в неключевом пакете с рефлекшеном? Мы не можем его мейнтейнерам чем-то помочь?

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

Dmitry
07.05.2017
18:58:18
Ну надо HTTP слушать

Телеграм апдейты на указанный вебхук шлёт

Igor
07.05.2017
19:00:04
я тут решил попробовать ботика для телеграма написать на F#, Suave и .NET Core и внезапно всё завелось и заработало (локально). Вот только не пойму - при сборке оно не делает EXE-шник, а только DLL-ку. Это нормально?
А в exe он вроде не может компилировать, да и на на macos/linux это будет странно смотреться. Вот сделают когда нибудь .NET native, тогда заживем) А так имхо запускать через “dotnet run” нормально работает и docker спасает, закатал в образ и на любом сервере с linux развернул за пару команд.

Most
07.05.2017
19:00:25
докер

либо в ажуре WebApp/ Api App

что-то такое

а Suave может в хттпс и серты?

Dmitry
07.05.2017
19:01:32
либо в ажуре WebApp/ Api App
так я web app и делаю

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
а Suave может в хттпс и серты?
вроде бы да https://suave.io/binding.html но пишут, что лучше впередистоящий реверс-прокси терминэйтил ссл

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
Кажется, F# — лучший выбор для телеграм-ботов. :)
Ага, особенно когда надо парсить сложные запросы

Google
Roman
07.05.2017
19:06:31
чото много телодвижений
Не так уж и много.

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

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

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?

Dmitry
07.05.2017
20:06:37
а ты dotnet restore вызывал?
я запускал то, что мне выдал dotnet publish. Он же должен всё необходимое с собой нести?

Igor
07.05.2017
20:10:19
я запускал то, что мне выдал dotnet publish. Он же должен всё необходимое с собой нести?
А как ты первоначальный проект создавал? И вообще на github выкладывал?

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. Но, увы, так и не изучил до конца :(

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 Вот с такими примерами нам надо приходить к народу!



Friedrich
08.05.2017
12:52:13
Что за малый чатик?
https://t.me/joinchat/AAAAAD6uHaxve5MzmbPIDw

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

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

Igor
08.05.2017
13:05:47
Фи, зачем кабал если есть стек?
Да не критично, я Haskell так играюсь

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