小编ant*_*ice的帖子

当我尝试登录时,为什么我的Yesod应用会抛出TlsNotSupported异常?

我正在尝试跟随Yesod的烹饪书籍进行博客.我改变了一些东西,比如切换到PostgreSQL数据库,添加一个用于GoogleEmail身份验证的链接,以及将一些莎士比亚模板移动到单独的文件中.

我的问题是,当我运行应用程序并尝试进行身份验证时,我会收到一个TlsNotSupported异常,我不知道是什么导致它或如何查找.我在一个单独的应用程序中使用了两种形式的身份验证,两者都运行良好.

我的代码如下.任何帮助将不胜感激.

{-# LANGUAGE OverloadedStrings, TypeFamilies, QuasiQuotes,
             TemplateHaskell, GADTs, FlexibleContexts,
             MultiParamTypeClasses, DeriveDataTypeable #-}

import Yesod
import Yesod.Auth
import Yesod.Form.Nic (YesodNic, nicHtmlField)
import Yesod.Auth.BrowserId (authBrowserId, def)
import Yesod.Auth.GoogleEmail (authGoogleEmail)
import Data.Text (Text)
import Network.HTTP.Client (defaultManagerSettings)
import Network.HTTP.Conduit (Manager, newManager)
import Database.Persist.Postgresql
    ( ConnectionString, ConnectionPool, SqlPersistT, runSqlPool, runMigration
    , withPostgresqlPool, runSqlPersistMPool
    )
import Data.Time (UTCTime, getCurrentTime)
import Control.Applicative ((<$>), (<*>), pure)
import Data.Typeable (Typeable)
import Text.Hamlet (hamletFile)
import Text.Lucius (luciusFile)

share [mkPersist sqlOnlySettings, mkMigrate "migrateAll"]
  [persistLowerCase|
User …
Run Code Online (Sandbox Code Playgroud)

haskell yesod

7
推荐指数
1
解决办法
445
查看次数

如何解压缩任意长度的IO Bool列表

我正在编写一个程序,应该可以模拟许多用轮盘赌尝试鞅投注系统的实例.我想main提出一个参数,给出要执行的测试次数,多次执行测试,然后打印获胜次数除以测试总次数.我的问题是,我没有最终列出Bool我可以过滤来计算成功的列表,而是有一个列表,IO Bool我不明白我如何过滤它.

这是源代码:

-- file: Martingale.hs
-- a program to simulate the martingale doubling system

import System.Random (randomR, newStdGen, StdGen)
import System.Environment (getArgs)

red = [1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36]

martingale :: IO StdGen -> IO Bool
martingale ioGen = do
  gen <- ioGen
  return $ martingale' 1 0 gen

martingale' :: Real a => a -> a -> StdGen -> Bool
martingale' bet acc gen
  | acc >= 5     = True
  | acc <= -100  = False …
Run Code Online (Sandbox Code Playgroud)

io haskell

5
推荐指数
1
解决办法
131
查看次数

将笔画数据转换为 SCG Ink 格式

我想将Seshat(一种手写数学表达式解析器)用于我正在处理的项目,但我在理解如何为程序提供正确的输入、InkML 或 SCG Ink 文件时遇到了一些麻烦。

我已经仔细查看了此处存在的在线示例,我看到他们从应用了此 JS 库的 HTML Canvas 字段中获取了一个 Javascript 笔划信息数组,但我不知道该数组之后会发生什么被发布到他们的服务器。

我已经阅读了SCG Ink 规范,我认为将数组解析为格式可能相对容易,但我希望有一些明显的我遗漏的东西会使这变得微不足道。任何帮助将不胜感激。

javascript parsing mathematical-expressions inkml

3
推荐指数
1
解决办法
1642
查看次数

如何回应Yesod中Key的值?

我正在为Yesod中的资源编写REST API.我有一个POST方法应该尝试创建给定的资源,如果成功返回201和新创建的资源的ID.例如,

postResourceR :: Handler String
postResourceR = do
  id <- runDB $ insert Resource
  sendResponseStatus status201 id -- DOES NOT COMPILE
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误,这很简单:

No instance for (ToTypedContent (Key Resource))
  arising from use of 'sendResponseStatus'
Run Code Online (Sandbox Code Playgroud)

我知道我想要的东西ToTypedContent,但我找不到任何方法从KeyDatabase.Persist.Class中获取它.任何帮助将不胜感激.

编辑:

这是实际资源的定义:

Notification
    title Text
    content Text
    icon Text Maybe
    action Text Maybe 
    created UTCTime
    updated UTCTime
    deriving Show
Run Code Online (Sandbox Code Playgroud)

haskell yesod haskell-persistent

1
推荐指数
1
解决办法
111
查看次数

使用csv-conduit将CSV文件解析为自定义数据类型

我对如何在自定义数据类型中使用csv-conduit感到很困惑。我想要一排这样的库存数据:

Date,Open,High,Low,Close,Volume,Adj Close
2017-02-10,2312.27002,2319.22998,2311.100098,2316.100098,3475020000,2316.100098
Run Code Online (Sandbox Code Playgroud)

并将其解析为StockInfo我在下面的MWE中声明的类型。我从我需要让我的文档收集StockInfo的一个实例FromNamedRecordToNamedRecord以及CSV ByteString。我相信我在前两个方面都这样做了,但是我不明白如何实现的必要方法CSV ByteString。任何帮助将不胜感激。

MWE:

{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings     #-}

module Lib
    ( readStocks
    ) where

import           Data.ByteString
import           Data.Conduit
import           Data.Conduit.Binary
import           Data.Conduit.List           as CL
import           Data.CSV.Conduit
import           Data.CSV.Conduit.Conversion
import           Data.Text                   (Text)
import           Data.Vector
import           System.IO

readStocks :: FilePath -> IO (Vector StockInfo)
readStocks fp = readCSVFile defCSVSettings fp

data StockInfo = StockInfo
  { date     :: !String
  , open     :: !Double …
Run Code Online (Sandbox Code Playgroud)

csv haskell conduit

1
推荐指数
1
解决办法
473
查看次数