@Fsharp_chat

Страница 63 из 772
Roman
23.04.2017
12:07:22
господа, я что-то туплю) <link rel="stylesheet" type="text/css" href="./css/bootstrap.css" /> на странице странице localhost:5000/blog css-ка разве не должна скачиваться с localhost:5000/blog/css/bootstrap.css?

Friedrich
23.04.2017
12:07:45
А, ну тут понятно. Нет, это так не работает.

Если у тебя страница имеет адрес /blog, это считается "файлом". Значит, у неё базовый URL будет просто /, и все ресурсы будут резолвиться относительно него.

Google
Friedrich
23.04.2017
12:10:10
Либо меняй адрес страницы, либо начинай все URL с blog/, либо используй тег <base>.

Nikolay
23.04.2017
12:12:34
Напишешь либу, всем польза.
Да, но не всё так гладко

Т.к. в .Net Core F# нет Http Utilities, придётся использовать HttpClient, который в идеале надо делать reusable, а это значит придётся опять костыли с mutable делать, что не гуд)

Vasily
23.04.2017
12:15:19
А HttpWebREquest не модно, шоле?

Friedrich
23.04.2017
12:15:38
Ты чо, нет конечно!

Nikolay
23.04.2017
12:17:05
Не красиво

Vasily
23.04.2017
12:18:12
Friedrich
23.04.2017
12:18:37
Потому что WebClient, а теперь уже HttpClient.

Vasily
23.04.2017
12:18:48
Нухз

Google
Friedrich
23.04.2017
12:18:56
Да точно, точно!

Vasily
23.04.2017
12:19:09
Я за то, чтобы ближе к запросам быть

За это я, например, Restsharp не любил

Friedrich
23.04.2017
12:19:38
Там было чото по поводу эффективности обращения к серверу и переиспользования HTTP-подключений.

Vasily
23.04.2017
12:19:41
Там перед отправкой запроса низя посчитать, например, контрольную сумму

Nikolay
23.04.2017
12:19:50
https://gist.github.com/Dolfik1/ef286de68a633eda592d55077aaa8846

Уродство же?

И да, тут опять сраные ()

Vasily
23.04.2017
12:20:24
Ну как бы() вполне логичны

Читаем про мемоизацию

Nikolay
23.04.2017
12:20:41
Я думал что это будет эквивалентно return

Но ошибался)

Vasily
23.04.2017
12:21:14
КАкой-то ООП -стиль

Nikolay
23.04.2017
12:21:21
Вот

В этом и проблема

Vasily
23.04.2017
12:21:36
Ну это не клиент подталкивает, есличо

Nikolay
23.04.2017
12:21:45
У меня не получается писать в функциональном стиле с C# библиотеками)

Примеры красивого кода с HttpClient найти не удалось

И это прям опечаливает

Vasily
23.04.2017
12:22:50
Я начинал писать как-то так: https://github.com/vshapenko/fs-odata/blob/master/ODataClient/HttpRequest.fs

Google
Friedrich
23.04.2017
12:22:59
https://gist.github.com/Dolfik1/ef286de68a633eda592d55077aaa8846
Вообще, знаешь чо? Вот эти все bot.Api.SendMessageAsync(chatId, resultString)|> ignore выглядят ОЧЕНЬ подозрительно.

Кажись, ты там вызываешь асинк без авейта.

Nikolay
23.04.2017
12:23:22
А мне ждать не нужно

Friedrich
23.04.2017
12:23:38
А если там эксепшен?

Nikolay
23.04.2017
12:23:43
Да пофиг)

Friedrich
23.04.2017
12:23:48
Прям воще?

Vasily
23.04.2017
12:23:50
Кстати да, обработки исключений нет

Тебе имеет смысл подумать об использовании Result

Friedrich
23.04.2017
12:24:14
Кстати да, обработки исключений нет
Обработка исключений будет, если делать await.

Ну, вернее, yield! Async.AwaitTask или как там это делается.

А мне ждать не нужно
Вот у тебя щас эта функция завёрнута в async { }, но она вся синхронная, всё тело у неё синхронно выполняется.

А, ой, не, не всё, простите.

Она аснихронно идёт по HTTP, потом стартует неотслеживаемые таски и всё.

Подозрительный код, в общем.

Vasily
23.04.2017
12:26:06
''' if not (System.String.IsNullOrEmpty(responseObj.Error)) then bot.Api.SendMessageAsync(chatId, responseObj.Stderr) |> ignore () if System.String.IsNullOrEmpty(responseObj.Stdout) then bot.Api.SendMessageAsync(chatId, "(empty)") |> ignore

Вот это кандидат на рефакторинг

Nikolay
23.04.2017
12:27:45
Я в целом косяки свои вижу и знаю

Evgeniy
23.04.2017
12:27:48
> в .Net Core F# нет Http Utilities А собирать не пробовал? Какие там проблемы? Чего не хватает?

Nikolay
23.04.2017
12:29:08
The value, namespace, type or module 'Http' is not defined. Maybe you want one of the following: HttpClient HttpMethod HttpContent

open FSharp.Data

Google
Nikolay
23.04.2017
12:29:40
Стоит

Friedrich
23.04.2017
12:30:37
Я уже совершенно запутался. А чо такое "Http Utilities"?

Nikolay
23.04.2017
12:31:00
http://fsharp.github.io/FSharp.Data/library/Http.html

Friedrich
23.04.2017
12:32:11
А, ок, инструменты выглядят хорошо.

Vasily
23.04.2017
12:32:59
ПРичем сделаны на WebRequest, походу

Friedrich
23.04.2017
12:33:00
Давайте багу там тогда заведём, если для неткора забыли положить этот модуль.

Friedrich
23.04.2017
12:33:14
ПРичем сделаны на WebRequest, походу
Хрен ли, можно переделать на HttpClient.

Vasily
23.04.2017
12:33:23
Я бы не стал

Nikolay
23.04.2017
12:33:35
There is a simple WebClient type (see MSDN) and a more flexible HttpWebRequest type

Vasily
23.04.2017
12:33:44
С веб-запросами лучше поменьше уровней абстракции

По собственному опыту

Friedrich
23.04.2017
12:33:54
There is a simple WebClient type (see MSDN) and a more flexible HttpWebRequest type
...и ещё тип HttpClient, который и удобный, и гибкий.

Nikolay
23.04.2017
12:33:55
Хотя

Friedrich
23.04.2017
12:34:05
Про него документация отчего-то умалчивает :)

Nikolay
23.04.2017
12:34:27
To use the type, we first need to reference the library using #r (in an F# interactive) or add reference to a project. The type is located in FSharp.Net namespace:

Friedrich
23.04.2017
12:35:02
С веб-запросами лучше поменьше уровней абстракции
Кажись, всё остальное из кора выпилили, и оставили только HttpClient.

Nikolay
23.04.2017
12:35:47
dotnet add package FSharp.Net ... error: Unable to resolve 'FSharp.Net' for '.NETCoreApp,Version=v1.1'. error: Package 'FSharp.Net' is incompatible with 'all' frameworks in project 'L:\dev\FSharpBot\FSharpBot.fsproj'.

Friedrich
23.04.2017
12:36:01
Стой! Что ты делаешь %)

Nikolay
23.04.2017
12:36:22
Пытаюсь FSharp.Net добавить

Google
Nikolay
23.04.2017
12:36:27
?

Vasily
23.04.2017
12:36:36
В целом обертку написать быстро

Friedrich
23.04.2017
12:36:37
Пытаюсь FSharp.Net добавить
Такого пакета вообще нету, кажись.

Vasily
23.04.2017
12:36:48
Над HttpClient

Но лень

Friedrich
23.04.2017
12:37:02
To use the type, we first need to reference the library using #r (in an F# interactive) or add reference to a project. The type is located in FSharp.Net namespace:
Имеется в виду: подключить FSharp.Data через #r, а потом открывать неймспейс FSharp.Net.

Vasily
23.04.2017
12:37:11
Меня пока занимает идея allmighty sql orm type provider

Friedrich
23.04.2017
12:37:30
Ну, ты процитировал инструкцию для FSI.

И вообще, давай ссылку.

Vasily
23.04.2017
12:37:35
Кстати, кто может ткнуть в пример generative type provider?

Nikolay
23.04.2017
12:37:44
И вообще, давай ссылку.
http://fsharp.github.io/FSharp.Data/library/Http.html

Вот же

Friedrich
23.04.2017
12:37:58
В FSharp.Data нету такого неймспейса, там FSharp.Data.Http или типа того: https://github.com/fsharp/FSharp.Data/blob/master/src/Net/Http.fs

Nikolay
23.04.2017
12:38:19
Ну я хз

Friedrich
23.04.2017
12:38:22
Лол, в документации косяк!

Я щас PR отправлю.

Vasily
23.04.2017
12:38:30
open System.Reflection open System.Runtime.CompilerServices open System.Runtime.InteropServices

Nikolay
23.04.2017
12:38:33
Там написано located in FSHarp.Net, а показывают open FSharp.Data

Friedrich
23.04.2017
12:38:36
Да.

Vasily
23.04.2017
12:38:38
bye bye core

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