跳至主要内容

博文

目前显示的是 2016的博文

Pazzled by Observables

如果创建两个 `Observable`,分别用 `foldLeft` 计数和求和。 val summingObservable = Observable(1 to 64).foldLeft(0)((v, i) => v + i) val countingObservable = Observable(1 to 100).foldLeft(0)((v, _) => v + 1) 结果需要一个字符串,将这两个计算结果报告出来。 尝试了一些不同的方式,有的可以工作 // Solution 1 - OK val finalObservable: Observable[(Int, Int)] = summingObservable.zip(countingObservable) finalObservable.foreach(println(_)) // Solution 2 - OK val sum: Seq[Int] = Await.result(summingObservable.toFuture(), Duration.Inf) val count: Seq[Int] = Await.result(countingObservable.toFuture(), Duration.Inf) println(s"sum = ${sum.head}, count = ${count.head}") 而另一些则不行: // Solution 3.a - KO val finalObservable: Observable[String] = for { sum countingObservable.map((count: Int) => s"sum = $sum, count = $count" ) ) result.println(result) 实际上 for-comprehension 会被翻译为 `f...

技术视频观后小结:Akka HTTP

在YouTube上看了[一个视频](https://www.youtube.com/watch?v=y_slPbktLr0),是介绍Akka HTTP的,学到如下内容: + Akka Http可以被看作是 Spray 2.0,它复用了部分 case class 模型来表达 model。 + Akka Http 慢慢的在摆脱对于actor的直接依赖,它是基于 Reactive Stream 来构建的,Request 和 Response 均被视作为流,甚至 body 的 chunk 也是。 + 原先的 Play framework 是使用 Netty 作为引擎的,由于语言不同他们希望最终可以提供 Akka Http作为引擎,用户可以通过 driver 来挑选不同的引擎实现。

Java 开发不可错过的 IntelliJ IDEA 2016.1 来了

手头在用的 IDE 更新到了 [IntelliJ 2016.1](https://blog.jetbrains.com/idea/2016/03/intellij-idea-2016-1-is-here/),发现多了不少好东东,包括: 1. 更好用的 VCS 合并界面 2. 可以直接 Alt + Enter 导入 static constants 3. 尊重 Gradle 的 SourceSets,直接导入为 IDEA Modules 4. 可以提示将 Guava API 转换为对应的 Java 8 API 5. 更丰富的语言支持,包括 Scala、JavaScript 和 TypeScript 等 6. 更高级的 Spring Framework 支持 7. 更漂亮的启动画面 …… ![Start splash of IDEA2016 Community Edition](http://blog.jetbrains.com/idea/files/2016/03/IntelliJIDEA_20161_blog@2x.png =600x400) 更多精彩请参考以上链接所指向的 INTELLIJ IDEA BLOG。

Windows 10 无法使用 Powershell 创建 NIC Team

主板上有两块网卡,一个是 Intel 的,另一个是 Killer 的。为了充分利用,将两个千兆口都连在了 Hub 上。 在网上看到 Windows 其实可以组建 `NIC Team`,将多块网卡绑定成一个 team,内部通过负载均衡算法来控制网卡的使用。这样整个操作系统的应用程序只通过 team 来发送和接收数据,具体分配到哪一块 NIC 则是由 Windows 来管理的。 这么美好的东西怎么可以错过呢,MSDN 告诉我可以[使用 Cmdlets 来创建 NIC Team](https://technet.microsoft.com/en-us/library/jj130849(v=wps.630).aspx),于是我激动的开始尝试使用 powershell 来执行一行行命令: PS C:\WINDOWS\system32> Get-NetAdapter -Name Nic* Name InterfaceDescription ifIndex Status ---- -------------------- ------- ------ NicIntel Intel(R) Ethernet Connection I217-V 16 Up NicKiller Killer e2200 PCI-E Gigabit Ethernet ... 11 Up PS C:\WINDOWS\system32> New-NetLbfoTeam -Name LinkNics -TeamingMode SwitchIndependent -TeamMembers NicIntel,NicKiller New-NetLbfoTeam : 参数错误。 所在位置 行:1 字符: 2 + New-NetLbfoTeam -Name LinkNics -TeamingMode SwitchIndependent -TeamM ... + ~~~~~~~~~~~~~~~~~...

单词汇:二十面体和蛋糕

在 Youtube 上看了一个影片是关于 Category Theory 有关的介绍,实际上也不是那么的有关,是介绍数学抽象的。 这是挺有趣的一段演讲,还学到了几个单词: + `icosahedron` 二十面体,一种有 12 个角顶、20 个面和 30 条棱的几何结构。在这个概念被发明的时候并没有找到自然界中与之对应的物体,直到近代医学研究某些病毒的时候才找到了与之对应的形态。 + `batternberg cake` 一种蛋糕,历史悠久(已经有一百多年了),从结构来看它是双色棋格海绵蛋糕。在影片中被引用来解释一种 pattern。 影片的名字是 ['How to Bake Pi': Reflections on Making Abstract Math](https://www.youtube.com/watch?v=h2p68JjSUH0)。

工具党:花园利器 Trimmers

房子前后的草地和灌木需要修剪,之前是人工用剪刀修剪边角,或者爬上梯子为灌木切割边界,感觉很累。所以考虑购入一些自动化工具。Line trimmer 适合用于修剪草地的边界,而 hedge trimmer 擅长处理 shrub。 传统的工具要么用电线或是汽油,但是前者不太安全,切着切着万一弄到电线就麻烦了;而后者维护起来挺烦,因为要专门备一汽油桶还有润滑油等。所以主要目标是用锂电池的工具。 [Ryobi One+ 18V 305mm Cut Cordless Line Trimmer](https://www.bunnings.com.au/ryobi-one-18v-305mm-cut-cordless-line-trimmer_p3380727) 的价格是 AUD 109.00,而同样的 Trimmer 但是附带电池和充电器的 [Kit](https://www.bunnings.com.au/ryobi-one-18v-1-5ah-li-ion-cordless-line-trimmer-kit_p3380967) 就要贵 40 刀,套装里的电池是 1.5Ah 的规格,切割范围是 30.5cm。 [Ryobi One+ 18V Cordless Hedge Trimmer Console](https://www.bunnings.com.au/ryobi-one-18v-cordless-hedge-trimmer-console_p3380840) 的价格是 AUD 149.00,这个工具可以切割最粗直径为 18mm 的灌木,最长可以切割 50cm的范围 如果仅仅购入这两个工具,为了包含电池模组总价就达到了 300 刀。可是由于电池仅 1.5安培,估计将来无法用到同品牌的其他工具上。所以考虑另一种配备——直接购买高安培数的电池组,bunnings 上的巨贵无比,[2.5Ah](http://www.bunnings.com.au/ryobi-one-18v-2-5ah-lithium-power-tool-battery-suits-ryobi-one-range_p6210602) 的要 85 刀,[5.0Ah](http://www.bunnings.com.au/ryobi-one-18v-5-0ah-lithium-high-capacit...