小编Ada*_*ent的帖子

是否有一种编程语言在省略命名参数时执行currying?

许多函数式编程语言都支持curried参数.为了支持currying函数,函数的参数本质上是一个元组,其中可以省略最后一个参数,从而使新函数需要更小的元组.

我正在考虑设计一种总是使用记录(也就是命名参数)作为函数参数的语言.

因此,我的make中的简单数学函数相信语言将是:

add { left : num, right : num } = ...
minus { left : num, right : num } = ..
Run Code Online (Sandbox Code Playgroud)

您可以将任何记录传递给这些函数,只要它们具有这两个命名参数(它们可以有更多只是"左"和"右").

如果它们只有一个命名参数,则会创建一个新函数:

minus5 :: { left : num } -> num
minus5 = minus { right : 5 }
Run Code Online (Sandbox Code Playgroud)

我借用了一些haskell的表示法.

有没有人看过这样做的语言?

programming-languages functional-programming language-design currying named-parameters

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

内存中的Java SQL表就像数据结构一样

有几次我想要一个类似于SQL表的数据结构,你可以在各种字段和多个字段中进行选择.类似于内存中的SQL实现,除了我不想在数据结构中存储那么多对象.

我还要求通过标准Java方法将对象序列化.

我之前已经使用多个哈希表或自定义哈希键完成了这项工作,但它最终成了很多代码并且非常具体.

我也使用了Groovy及其封闭能力和gpath来帮助,但我并不总是有它(不同的项目).

编辑:我认为我的问题更多的是对象遍历/选择问题以下是一些有趣的项目:

然而,大多数这些项目的缺点是它们比直接访问对象(非反射getter/setter)慢得多,并且肯定比索引(hash)慢.

java sql data-structures

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

在使用Backbone.js pushstate进行seo/bookmarking时,重用服务器上的主干视图/路由

我正在对单页应用程序的主干进行一些尽职调查,并想知道是否可以从服务器端的客户端重新使用相同的视图/路由,以便当google访问pushstate URL或访问它时直接地,服务器可以生成与客户端中的骨干生成的完全相同的HTML.

必须维护两组独立的视图/路由,一个在客户端上,一个在服务器上,这将是一件痛苦的事.我已经在github上看到了backnode项目,但是这似乎忽略了一点,你最终必须写两次相同的骨干路由器.

只是想知道在骨干网中使用pushstate url并且需要从服务器提供相同的视图时人们通常如何处理这种情况?是人们复制代码还是有更好的方法?

seo singlepage backbone.js pushstate

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

将API代码与类一起放入JAR是否有任何不利之处?

在Java中,如果将源代码(.java)文件与类( .class)一起打包到jar中,大多数IDE都会像eclipse一样显示代码完成的javadoc注释.

IIRC很少有像JMock这样的开源项目.

让我说我已经干净地将我的API代码与实现代码分开,以便我有类似myproject-api.jar和myproject-impl.jar的东西,我有什么理由不把源代码放在我的myproject-api.jar中吗?

因为性能?尺寸?

为什么其他项目不这样做?

编辑:除了Maven下载问题,将我的源代码放入类jar以支持尽可能多的开发人员(maven与否)会有什么损害吗?

java eclipse api javadoc jar

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

我应该将时区与Postgres和JDBC的时间戳分开存储吗?

似乎(也许我错了)如果你想保留JDBC和Postgres发生某些事情的时区,你需要将时区与时间戳分开存储.

那就是我更愿意给我的ORM/JDBC/JPA一个带有时区的Java Calendar(或Joda DataTime)America/New_York到Postgres timestampz字段.并且我希望无论服务器时区(或默认为UTC)检索都能给我带回Calendar时区America/New_York.但只是查看大多数JDBC代码(以及依赖于它的事情不会发生).

它是否正确?

当postgres支持时,我需要将tz存储在另一个字段中,这似乎很荒谬.

因此,似乎只有两个选项:

  1. 选择timestampzPostgres列作为a java.util.String并解析它.
  2. 将时区存储为单独的字段.

第一和第二选项需要某种转换拦截器用于我的SQL映射/ ORM库.

  • 什么是JDBC的最佳解决方案?
  • JPA的最佳解决方案是什么(如果与JDBC不同)?

java postgresql jpa jdbc

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

Tomcat零星延迟

我一直在微观优化我们在Tomcat上的页面响应时间,几乎在所有情况下,如果我反复刷新,我会看到50ms的响应时间,但如果页面没有被击中一两秒,则响应时间会跳回来到500ms.

我看到了同样的行为,无论是本地的,不是本地的,APR,NIO,JIO,静态或动态响应(即提供静态文件或动态处理响应).到目前为止,我还没有看到这种行为不会发生在Tomcat上(无论频率如何,这都是一致的400ms).

我也使用Visual VM来查看是否有任何线索.

我认为这是一种保持活力,但是当我运行Apache Bench时,我的响应时间更快(低于50ms)(显然是因为它频繁地击中它).

那么如何在Tomcat中保持低延迟不频繁命中的URL?也许这个问题更适合ServerFault?

更新:我几乎肯定它是一个Tomcat 6问题.我以为我已经在Tomcat 7上进行了测试,但我刚刚对它进行了测试并且没有问题(见下面的结果).即使是最新的Tomcat 6仍然存在这个问题.

这是abTomcat 6 的输出(注意最大值):

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    14   39  45.2     30     314
Waiting:       14   38  45.2     30     314
Total:         14   39  45.2     30     314
Run Code Online (Sandbox Code Playgroud)

这是abTomcat 7的输出通知最大值:

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    25   38   8.8     37      67
Waiting:       25   37 …
Run Code Online (Sandbox Code Playgroud)

java performance tomcat tomcat6 low-latency

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

RabbitMQ暂停队列消耗

保持持久队列及其绑定但暂停其消费者的最佳方法是什么?

用例是:我想"让它崩溃"并停止处理消息,如果我们不断收到一堆我们无法处理的消息(例如数据库已关闭或架构问题)但是希望继续聚合到队列.这是允许发布但暂停消费.

我可以想到三个解决方案:

  1. 我可以让所有绑定到队列的消费者不断拒绝消息并重新排队,但这是一种浪费资源,更不用说我已经以编程方式执行上述逻辑.
  2. 我可以打电话basic.cancelConsumer给所有消费者(见下文)
  3. 或者就而言,我想我可以调用绑定到队列的shutdown所有SimpleMessageListenerContainer.

#1我们已经在做消息被拒绝了.问题是这最终会像一个无限的故障循环,如果您的日志记录失败甚至更多的资源被浪费.

#3看起来很理想,但我必须知道所有的消息监听器,然后通知他们关机.我想我可以使用扇出交换来通知队列需要暂停.我觉得RabbitMQ必须内置这个逻辑.另一个问题是您可以将多个队列绑定到消息容器(并非所有队列都可能需要挂起).

对于#2我知道我可以取消消费者与其consumerTag但问题(假设是上面做正确的方式)是我在哪里得到的名单consumerTags到一个队列?

java amqp rabbitmq spring-amqp

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

使用JDBC的Postgres UTF-8 clobs

Postgres JDBC驱动程序似乎无法正确处理UTF-8 clobs.当您检索clob时,字符不正确(您获得了非ascii字符的标记).

据说这是一个已知问题:

幸运的是,对于我的应用程序,我通常会避免使用clobs,所以我所做的字段就是真正的大变种.

其他人如何处理这种限制?

java postgresql jdbc clob utf-8

7
推荐指数
2
解决办法
4876
查看次数

Scala:围绕建议或Python装饰器实现Java的AspectJ

我一直在为我的创业公司广泛使用Java + AspectJ.我想切换到Scala,但我有一个共同的设计模式,我不确定完全是在Scala中实现的最佳方式.

我们的大量应用程序使用注释作为标记使用AspectJ切入点.这与Python的装饰者非常相似,并在此博客.

我曾尝试在Scala中使用此技术但遇到了AspectJ + Scala的问题.即使我确实让它工作,似乎unScala喜欢.

我已经看到一些项目做了一些名称封闭魔术(我认为这就是他们正在做的事情).

替换@Transaction的示例:

transaction {
// code in here.
}
Run Code Online (Sandbox Code Playgroud)

我不得不说,虽然我更喜欢注释,因为它似乎更具说明性. 什么是声明式"装饰"代码块的Scala方式?

python java aop scala aspectj

7
推荐指数
3
解决办法
969
查看次数

使用Mono(opensource .NET)开发Web应用程序的任何示例?

我是一个Java,Scala,Python Web应用Linux家伙.我想玩Mono(特别是F#)进行网页开发.

我只是在Github中寻找用Mono编写的示例Web应用程序(任何CLI语言都可以).我试过谷歌搜索,找不到一个好的起点(或者甚至可能找到它).

从我收集到的东西,我可以结合起来:

  • 快速CGI(nginx,lighttpd)
  • Spring框架.NET(我甚至无法判断它是否适用于Mono)

如果我错过了一个非常明显的资源(网站),那么就会道歉.

(有用的网站:http://www.tryfsharp.org/Resources/GetMono.aspx)

linux mono f# spring.net web-applications

7
推荐指数
2
解决办法
5779
查看次数