最新 | 最热门 | 最高评价

+0  Scala Collections 提示和技巧

Tag: Scala
鸟窝 发于 2015年07月02日 14:41 | 点击: 9167 | 展开摘要
原文: Scala Collections Tips and Tricks,
作者Pavel Fatin是JetBrains 的一名员工,为神器IntelliJ IDEA开发Scala插件。
受其工作Scala Collections inspections )的启发,他整理了这个关于Java Collections API技巧的列表。
一些技巧只在一些微妙的实现细节中体现,但是大部分技巧都是一般的常识,但是在大部分情况下被忽视了。
性和谐提示和技巧很有价值,可以帮你深入理解

查看全文: http://www.udpwork.com/item/14367.html

+0  Scala Future and Promise

Tag: Scala
鸟窝 发于 2015年06月19日 11:14 | 点击: 1216 | 展开摘要
Futures 和 Promises是Scala的语言的功能加强: SIP-14。官方文档很好的介绍了这个功能。
Future提供了一个漂亮的方式提供并行执行代码的能力,高效且非阻塞。Future可以并发地执行,可以提供更快,异步,非阻塞的并发代码。
通常,future和promise都是非阻塞的执行,可以通过回调函数来获得结果。但是,你也可以通过阻塞的方式串行的执行Future。
本文主要编译于官方文档,以及参考了其它一些网上公开的资料。

Future

一个Future

查看全文: http://www.udpwork.com/item/14374.html

+0  Scala PartialFunction

Tag: Scala
鸟窝 发于 2015年06月12日 09:28 | 点击: 1266 | 展开摘要
PartialFunction是Scala另一个有趣的函数,也非常的有用。
一个PartialFunction[A, B]类型的函数是一个一元函数,接收一个类型为A的参数,返回类型为B的值。但是X的值域可以不覆盖A的整个值域,可以只覆盖部分的值域。其中isDefinedAt可以测试是否一个值是否落在了定义的参数值域上。

如果用简单的白话来讲,就是一个PartialFunction只处理参数的一个子集。

即使对于a:A调用isDefinedAt返回true, 调用apply

查看全文: http://www.udpwork.com/item/14373.html

+0  Scala Either, Left And Right

Tag: Scala
鸟窝 发于 2015年06月11日 17:03 | 点击: 1396 | 展开摘要
Scala中的Either是一个有趣的类,它代表两个可能的类型的其中一个类型的值。这两个值之间没有交集。
Either是抽象类,有两个具体的实现类: Left和Right。
Either可以作为scala.Option的替换,可以用scala.util.Left替换scala.None,用scala.Right替换scala.Some。
一般在时实践中使用scala.util.Left作为Failure,而scala.util.Right作为成功的值。
另一个类似的类是sca

查看全文: http://www.udpwork.com/item/14375.html

+0  akka actor的运行原理

Tag: akka | Scala
鸟窝 发于 2015年06月02日 08:37 | 点击: 1458 | 展开摘要
最近在调研Scala web框架的性能时遇到一些问题, 比如生成巨多的Actor,GC时间过长,CPU使用率太高, 执行Actor的Receive是遇到耗时操作的问题等。怀疑Akka的调度器有些问题,特意整理了一些Akka调度器的背景知识,以及从源代码分析一下Actor是怎么执行地。

Dispatcher

Akka MessageDispatcher驱动Akka actor运行(tick),也可以说是这个机器的引擎。所有的MessageDispatcher都实现了Exec

查看全文: http://www.udpwork.com/item/14377.html

+0  Scala中的协变,逆变,上界,下界等

Tag: Scala
鸟窝 发于 2015年06月02日 08:33 | 点击: 1597 | 展开摘要
Scala中的协变逆变和Java中的协变逆变不一样,看起来更复杂。 本文对Scala中的这些概念做一总结。
首先看几个概念:

covariant 协变。使你能够使用比原始指定的类型的子类

Contravariance 逆变。使你能够使用比原始指定的类型的父类。

Invariance 不变。你只能使用原始指定的类型,不能协变和逆变

Upper bounds 上界。

Lower bounds 下界。

Java中的协变和逆变

首先我们先回顾一下Java中的协变和逆变,

查看全文: http://www.udpwork.com/item/14381.html

+0  给Vim配置Scala语法高亮显示

Tag: 大数据 | scala
Guancheng (G.C.) 发于 2015年04月11日 22:54 | 点击: 4962 | 展开摘要
第一步,执行下面这个脚本:

mkdir -p ~/.vim/{ftdetect,indent,syntax} && for d in ftdetect indent syntax ; do curl -o ~/.vim/$d/scala.vim https://raw.githubusercontent.com/gchen/scala.vim/master/scala.vim; done

第二步,在~/.vimrc中添加:

syntax on

查看全文: http://www.udpwork.com/item/14087.html

+0  Jame’s Readings 06-29

Tag: oracle | Scalability;performance;little's law;queueing theory;mysql;fault tolerance;
jametong 发于 2014年06月09日 16:11 | 点击: 3294 | 展开摘要
Monitoring:

http://t.cn/Rvqir6J Anomaly Detection Fault Tolerance Anticipation Patterns, 异常检测与容错 By John Allspaws,在我眼中,他对运维的思考是最深入的。

http://t.cn/RvqxX2V 基于holt-winters指数移动平均算法做系统的异常检测.

http://t.cn/RvqxcFM 使用指数移动平均来做时间序列数据的平滑化处理。

http

查看全文: http://www.udpwork.com/item/12611.html

+0  Spray 中协议处理 Pipelines 的实现

Tag: coding | code | scala | spray
gnawux 发于 2014年06月04日 01:01 | 点击: 2882 | 展开摘要
最近在玩 scala,用到了 spray 来处理 Http,看了一下代码觉得很神奇,这里抄一段 spray 1.3 中的协议处理 pipeline 的实现,原始文件在 spray 中的 spray-io/src/main/scala/spray/io/Pipelines.scala

在 spray-io 中,网络协议可以拆分成多级流水线来处理,从网络到应用逐级升高,在前一级中处理低级事务,屏蔽掉一些底层机制,把高层决断交给后一级处理;而从应用到网络逐级降低,在前一级接受处理

查看全文: http://www.udpwork.com/item/12585.html

+0  一段集合操作的不同语言表达

Tag: Programming Paradigm | C++ | Clojure | Java | Perl | PHP | Python | Ruby | Scala | 循环 | 集合
四火 发于 2014年04月09日 10:01 | 点击: 2615 | 展开摘要
看到这样一条微博,觉得挺有意思,就记录在这里:

所谓对比,Java真是足够啰嗦:

图不清楚,我来再叙述一下。要做的事情就是,把原有列表里面的每个元素都变成大写的,再放到一个新列表里面去。

这是Java7的版本: 

List list = Arrays.asList("andy", "michael", "thomas");
List list2 = new ArrayList<>();
for(String s : list)
list2.add(s.t

查看全文: http://www.udpwork.com/item/12106.html

+0  多重继承的演变

Tag: Programming Paradigm | Recommended | C++ | Go | Java | JavaScript | Ruby | Scala | 多重继承 | 接口 | 继承
四火 发于 2014年03月19日 14:45 | 点击: 2292 | 展开摘要
本来想告一段落别写编程范型的东西,但是这个话题最近发现很有意思,就拣出来唠一唠。从中除了能看出很多有趣的语言特性,观察不同语言的设计,还可以发现程序语言的发展过程。这里谈到的语言特性,都是从C++的多重继承演变而来的,都没法完整地实现和代替多重继承本身,但是有了改进和变通,大部分功能保留了下来,又避免了多重继承本身的问题。

C++的多重继承

这个问题我觉得需要从老祖宗C++谈起,我记得刚开始学C++的时候老师就反复教育我们,多重继承的问题。比如说二义性问题,也就是说,两个

查看全文: http://www.udpwork.com/item/11974.html

+0  James Reading 12-07

Tag: oracle | monitoring; performance tuning; hard disk lifecycle;syncronization;scalability;redo log ssd performance;HyperLogLog
jametong 发于 2013年12月07日 23:12 | 点击: 2953 | 展开摘要
有一个多月没有整理阅读的内容了, 最近一段时间在阅读几本书,《Systems-Performance-Enterprise-and-the-Cloud》 By Gregg Brendan,《The Art of Computer System Performance》,《NoSQL Distilled》 都很不错, 不过都没看完, 就不在这里多说了。 哈哈。

下面是10-14到今天12-07为止阅读过, 并认为值得了解的内容。

运维与监控

http://t.cn/zR5

查看全文: http://www.udpwork.com/item/11293.html
|<<<1234>>>| 一共4页, 43条记录