我查看了像Snap和Yesod这样的Haskell Web框架.大多数似乎都实现了一种MVC-ish方法,提醒我像Ruby on Rails这样的Web框架.是的,MVC可以通过FP实现,但恕我直言,它并没有显示FP方法的巨大优势.由于HTTP是无状态协议,我希望可能有一个Haskell框架采用更原始,更纯粹的功能方法.有吗?
我有一个REST API,我希望缓存索引的JSON响应(GET/foo)和读取操作(GET/foo/1)以显着提高性能.当资源上有POST或PUT时,索引和读取结果的缓存条目需要过期,因此不会提供旧内容.
这是一个最好用Squid/Varnish等反向代理完成的场景,还是选择memcache(d)?
编辑Erlang应用程序,编译代码并查看运行结果的最快方法是什么?最好在最后一步跳入Erlang shell.
我目前的新手设置:
有更快的方法吗?BTW.我选择的编辑是Emacs.
根据Google Mail指南,批量邮件必须包含标题
Precedence: bulk
Run Code Online (Sandbox Code Playgroud)
它有什么作用?我找不到描述邮件传递效果的RFC.
一些背景:我正在处理每天发送500k +邮件的脚本.它们是不同类型的消息:帐户相关邮件(交付关键),但也有新内容的通知(交付不重要).
使用Easy方式加载具有钢筋依赖关系的项目的答案,现在可以自动解决依赖关系,但不会自动加载它们.
那么,如何自动加载我的ebin和/ deps/*/bin路径中的所有模块?这样,当使用Erlang shell选项卡完成时,它们可用,这大大加快了我的开发过程.
我的解决方案基于Adam Lindberg的优秀答案:https://gist.github.com/1131312它只会自动加载项目模块,所以在erl启动时几乎没有延迟.
客户想要一个带有CMS的多语言网站.是否有一个Ruby on Rails CMS可以处理那个超出范围的盒子?
我创建了一个基本的TCP服务器,它以协议缓冲区格式读取传入的二进制数据,并将二进制消息作为响应写入.我想对往返时间进行基准测试.
我尝试了iperf,但无法让它多次发送相同的输入文件.是否有另一个基准工具可以重复发送二进制输入文件?
在我的项目erlang中:现在转换为高精度时间戳(bigint)以便在MySQL中存储:
timestamp({Mega, Secs, Micro}) ->
Mega*1000*1000*1000*1000 + Secs * 1000 * 1000 + Micro.
Run Code Online (Sandbox Code Playgroud)
我现在使用以下命令将时间戳转换回原始的{Mega,Secs,Micro}元组:
time_tuple(Timestamp) ->
TimeList = erlang:integer_to_list(Timestamp),
Mega = erlang:list_to_integer(string:substr(TimeList, 1, 4)),
Sec = erlang:list_to_integer(string:substr(TimeList, 5, 6)),
Micro = erlang:list_to_integer(string:substr(TimeList, 11, 6)),
{Mega, Sec, Micro}.
Run Code Online (Sandbox Code Playgroud)
字符串转换/ substr感觉就像一个丑陋的,可能不正确的黑客.什么是更优雅的方式?
使用CloudKit CKQuery,您可以过滤距离(参见示例).但你怎么能对距离进行排序呢?喜欢位置ASC.位置上的排序描述符返回错误query.sortDescriptors = [NSSortDescriptor(key: "distanceToLocation", ascending: true)]:
static func getNearbySpots(location : CLLocation, completionHandler: (spots : CKRecord[]) -> Void) {
let predicate = NSPredicate(format: "distanceToLocation:fromLocation:(location, %@) < 10000", location)
let queryOperation = CKQueryOperation(query: query)
var results : CKRecord[] = []
queryOperation.recordFetchedBlock = {
results += $0
}
queryOperation.queryCompletionBlock = {
if $1 {
NSLog($1.description,[])
abort()
} else {
completionHandler(spots: results)
}
}
self.publicDB().addOperation(queryOperation)
}
Run Code Online (Sandbox Code Playgroud) 对于我的开发人员工作,我几乎整天都在*nix shell环境中,但仍然无法记住我每天不使用的程序的名称和参数细节.我想知道其他'休闲记忆者'如何处理这个问题.你有一个大的备忘单吗?每周洗一次淋浴时,你会排练emacs快捷方式吗?或者你的桌子是否被粘滞便笺所覆盖?