Data.Binary是很棒的.我只有一个问题.我们假设我有一个这样的数据类型:
import Data.Binary
data Ref = Ref {
refName :: String,
refRefs :: [(String, Ref)]
}
instance Binary Ref where
put a = put (refName a) >> put (refRefs a)
get = liftM2 Ref get get
Run Code Online (Sandbox Code Playgroud)
很容易看出这是一个递归数据类型,因为Haskell是懒惰的.由于Haskell作为一种语言既不使用引用也不使用指针,而是按原样呈现数据,我不确定如何保存它.我有强烈的迹象表明,这种天真的责备将导致无限的字节串......
那么如何安全地保存这种类型呢?
我试图使用HXT从6行的XML输入中提取一些数据.我也希望保留HXT,因为Curl集成,因为我有其他XML文件有数千行,稍后.
我的XML看起来像这样:
<?xml version = "1.0" encoding = "UTF-8"?>
<find>
<set_number>228461</set_number>
<no_records>000000008</no_records>
<no_entries>000000008</no_entries>
</find>
Run Code Online (Sandbox Code Playgroud)
我一直试图聚在一起解析它.不幸的是,HXT的Wiki页面并没有太大的帮助(或者我只是忽略了一些东西).
data FindResult = FindResult {
resultSetNumber :: String,
resultNoRecords :: Int,
resultNoEntries :: Int
} deriving (Eq, Show)
resultParser :: ArrowXml a => a XmlTree FindResult
resultParser = hasName "find" >>> getChildren >>> proc x -> do
setNumber <- isElem >>> hasName "set_number" >>> getChildren >>> getText -< x
noRecords <- isElem >>> hasName "no_records" >>> getChildren >>> getText -< x
noEntries <- isElem >>> …Run Code Online (Sandbox Code Playgroud) 我的项目中有一个子目录结构,其中有两个 cmake 文件。其中之一应该是一个编译器,使用flex和bison,但是cmake给了我一个我不太明白的错误:
\n\ncmake_minimum_required(VERSION 2.8)\n\nproject(leaf)\n\nadd_subdirectory(leafc)\nRun Code Online (Sandbox Code Playgroud)\n\n并在目录中leafc:
find_package(BISON)\nfind_package(FLEX)\n\nBISON_TARGET(LeafParser ${CMAKE_CURRENT_SOURCE_DIR}/parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)\nFLEX_TARGET(LeafScanner ${CMAKE_CURRENT_SOURCE_DIR}/lexer.l ${CMAKE_CURRENT_BIANRY_DIR}/lexer.cpp)\nADD_FLEX_BISON_DEPENDENCY(LeafParser LeafScanner)\n\ninclude_directories(${CMAKE_CURRENT_BINARY_DIR})\nadd_executable(leafc main.cpp ${BISON_LeafParser_OUTPUTS} ${FLEX_LeafScanner_OUTPUTS})\nRun Code Online (Sandbox Code Playgroud)\n\n但我在尝试时收到此错误cmake .
CMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:132 (MESSAGE):\n Flex target `LeafParser' does not exists.\nCall Stack (most recent call first):\n leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)\n\nCMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:136 (MESSAGE):\n Bison target `LeafScanner' does not exists.\nCall Stack (most recent call first):\n leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)\n\nCMake Error at /usr/share/cmake-2.8/Modules/FindFLEX.cmake:139 (SET_SOURCE_FILES_PROPERTIES):\n set_source_files_properties called with incorrect number of arguments.\nCall Stack (most recent call first):\n leafc/CMakeLists.txt:6 (ADD_FLEX_BISON_DEPENDENCY)\n\n-- Configuring incomplete, …Run Code Online (Sandbox Code Playgroud) 这个查询有问题,我不知道它是什么.我相信这很简单:
db.foo.insert({
'created at': new Date(),
ooc: false,
body: '<p>Moo</p>\n',
keywords: [ 'Moo' ],
mentioned: [],
tags: [],
sender: {
_id: 'stuff',
name: 'lambdadusk',
'display name': 'Lambda'
}
});
Run Code Online (Sandbox Code Playgroud)
我从Mongo得到的错误很简单
!e.eoo()
Run Code Online (Sandbox Code Playgroud)
我正在使用MongoDB 2.0.5.谷歌搜索错误并没有告诉我太多.
我做了一个简单的文件字段:
<input type="file" name="pictures_array[]" multiple accept="image/*" id="page_pictures_array" />
Run Code Online (Sandbox Code Playgroud)
和一些 HTML5 文件 API 代码来列出文件:
$('.page-form #page_pictures_array').change(function(evt) {
var file, files, reader, _i, _len;
files = evt.target.files;
console.log(files);
$('#file-list').empty();
for (_i = 0, _len = files.length; _i < _len; _i++) {
file = files[_i];
reader = new window.FileReader;
reader.onload = (function(file) {
return function(e) {
var src;
src = e.target.result;
return $("<li>" + file.name + " - " + file.size + " bytes</li>").prepend($('<img/>', {
src: src,
"class": 'thumb'
})).appendTo($('#file-list'));
};
})(file);
reader.readAsDataURL(file); …Run Code Online (Sandbox Code Playgroud) 我想允许使用某种访问控制来提供二进制文件。由于控件相当复杂,我不能简单地让 Apache 提供文件,我必须使用我的 Zend Framework 2 应用程序通过 PHP 提供文件。动作是这样的:
public function sendAction() {
$filename = /* database action */;
$size = filesize($filename);
$response = $this->getResponse();
if($this->getRequest()->getHeaders()->has('Range')) {
list($unit, $range) = explode('=', $this->getRequest()->getHeaders()->get('Range')->toString());
$ranges = explode(',', $range);
$ranges = explode('-', $ranges[0]);
$start = (int)$ranges[0];
$end = (int)(isset($ranges[1]) ? $ranges[1] : $size - 1);
$length = $start - $end;
$response->getHeaders()->addHeaders(array('Content-Type' => 'audio/mpeg', 'Accept-Ranges' => 'bytes', 'Content-Length' => $length - 1));
$response->setStatusCode(206);
$f = fopen($filename, 'r');
if($start) fseek($f, $start);
$out = '';
while($length) …Run Code Online (Sandbox Code Playgroud) 我遇到的问题是,我有一个小程序的业余爱好请求.将在Windows上使用Visual C#完成.据我所知,它将需要一个数据库,我不知道如何开始,主要是因为要求:
它将包含小数据元素,但其中很多都是如此.三个表有很多行,但可能只有2或3列.数据将以更频繁的方式读取然后写入.
阅读应该很快.
最重要的一点:我必须能够使用我的应用程序轻松部署系统,而无需最终用户进一步安装.此外,请不要有任何许可证问题.
由于我将与Linq合作,我也考虑过XML,这可能是另一种选择吗?
谢谢阅读.
使用snap,我使用此函数编写了一个拼接创建来自markdown的文本:
markdownToHTML :: T.Text -> [Node]
markdownToHTML = renderHtmlNodes . (writeHtml writeOpts) . readMarkdown readOpts . T.unpack
where
readOpts = defaultParserState
writeOpts = defaultWriterOptions
{ writerStandalone = False
, writerHtml5 = True
, writerStrictMarkdown = False
}
Run Code Online (Sandbox Code Playgroud)
现在,例如,当我给它这个降价时
# Hi
Lorem ipsum something somthing
# Stuff
[a link](http://twitter.com/)
Run Code Online (Sandbox Code Playgroud)
它产生这个HTML:
<h1 id='hi'>Hi
</h1>
<p>
Lorem ipsum something somthing
# Stuff
<a href='http://twitter.com/'>a link</a></p>
Run Code Online (Sandbox Code Playgroud)
无论我在此之前添加了多少新行#,它仍然只是嵌入到段落中.
有趣的是,如果我将相同的markdown转储到pandoc的演示站点,它会生成正确的Html输出.
如有必要,可以在此处找到我的项目的完整代码.
在我的控制器动作中,我有这个:
$pdf = $this->Invoice->makePdf($invoice);
$this->response->charset('UTF-8');
$this->response->body($pdf);
$this->response->type(array('pdf' => 'application/x-pdf'));
$this->response->disableCache();
$this->response->send();
Run Code Online (Sandbox Code Playgroud)
但是,无论我做什么,CakePHP总是将数据发送为text/html; charset=utf-8.我也试过了
$this->response->header(array('Content-Type' => 'application/x-pdf'));
Run Code Online (Sandbox Code Playgroud)
但它仍然发送它text/html.如何强制使用上面的内容类型发送响应?