小编G__*_*G__的帖子

Erlang的可扩展性如何?

A部分:

Erlang有很多关于运行并发代理的成功案例,例如数百万个同时进行的Facebook聊天.这是数以百万计的代理商,但当然不是网络中的数百万个CPU.当在LAN/WAN上进行"水平"扩展时,我无法找到Erlang扩展程度的指标.

让我们假设我有许多(数万个)物理节点(在Linux上运行Erlang)需要通过LAN/WAN进行通信和同步少量不常数据.在什么时候我会遇到通信瓶颈,而不是代理之间,而是物理节点之间?(或者这只是工作,假设一个稳定的网络?)

B部分:

我理解(作为一个Erlang新手,意思是我完全错了)Erlang节点尝试连接并相互了解,从而产生N ^ 2连接点对点网络.假设A部分不仅仅适用于N = 10K,可以轻松配置Erlang(使用开箱即用的配置或平凡的样板,而不是自己编写完整的分组/路由算法),将节点集群化为可管理的通过群集/组层次结构分组和路由系统范围的消息?

erlang distributed scalability

31
推荐指数
1
解决办法
6336
查看次数

在PHP中访问活动会话

如何获取服务器上所有活动PHP会话的列表并从一个用户的实例中访问它们?

激励案例是显示网站上所有当前活动用户的列表,其中用户名存储在每个用户的PHP会话中.

注意:我知道我可以通过数据库(甚至文件系统)创建自己的状态,但我正在寻找一种利用内置PHP会话机制的方法.

php session

15
推荐指数
2
解决办法
4万
查看次数

用于Clojure中的身份monad

我一直在为Clojure程序员阅读monad优秀介绍.文章说明Identity monad在功能上等同于Clojure的let,而Sequence/List monad等同.

当文章到达monad变换器时,它显示了一个组合Maybe和Sequence monad的示例.好了,一个原因是使用序列单子,而不是针对的是我可以改变它.但是,转换一个Identity monad对我来说没有意义 - 这不总是等同于构建变换monad的任何东西吗?例如,如果我使用Identity转换了Maybe - 那不就是给我一个Maybe,这本来更容易直接声明吗?

有人可以清楚在Clojure中是否有实际用途来选择一个版本monad而不是let(也许我不是一直在考虑变换器的含义?),还是它只是为了理论上的完整性?

monads clojure clojure-contrib

10
推荐指数
2
解决办法
944
查看次数

阅读Little Lisper会帮助我学习clojure吗?

我打算拿起clojure语言.

我有一本旧书:

小利斯珀

我知道它有更新的版本(The Little Schemer),但我想知道它是否有助于让我轻松拿起Clojure.或者我应该找到其他学习资源?

lisp clojure

10
推荐指数
3
解决办法
4221
查看次数

使用sed剥离十六进制字节 - 不匹配

我有一个带有两个非ascii字节(0xFF和0xFE)的文本文件:

??58832520.3,ABC
348384,DEF
Run Code Online (Sandbox Code Playgroud)

此文件的十六进制是:

FF FE 35 38 38 33 32 35 32 30 2E 33 2C 41 42 43 0A 33 34 38 33 38 34 2C 44 45 46
Run Code Online (Sandbox Code Playgroud)

巧合的是FF和FE恰好是前导字节(它们存在于我的文件中,尽管看起来总是在一行的开头).

我试图用sed去除这些字节,但我做的任何事情似乎都与它们相匹配.

$ sed 's/[^a-zA-Z0-9\,]//g' test.csv 
??588325203,ABC
348384,DEF

$ sed 's/[a-zA-Z0-9\,]//g' test.csv 
??.
Run Code Online (Sandbox Code Playgroud)

主要问题:如何删除这些字节?
额外问题:上面的两个正则表达式是直接否定,因此其中一个逻辑上必须过滤掉这些字节,对吧?为什么这两个正则表达式都匹配0xFF和0xFE字节?

更新:剥离一系列十六进制字节的直接方法(由下面的两个答案建议)似乎从每一行中删除第一个"合法"字节,并留下我试图摆脱的字节:

$sed 's/[\x80-\xff]//' test.csv
??8832520.3,ABC
48384,DEF

FF FE 38 38 33 32 35 32 30 2E 33 2C 41 42 43 0A 34 38 33 38 34 2C 44 45 46 0A
Run Code Online (Sandbox Code Playgroud)

注意每行开头缺少"5"和"3",新的0A添加到文件末尾. …

regex macos hex sed

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

在Java项目中引用外部模块的最佳实践

我有一个Java项目,期望外部模块注册它.这些模块:

  • 在主项目中实现特定的接口
  • 被打包成uni-jar(以及任何依赖项)
  • 包含一些人类可读的元信息(如模块名称).

我的主项目需要能够在运行时加载(例如使用自己的类加载器)任何这些外部模块.我的问题是:在主项目中注册这些模块的最佳方法是什么(我更喜欢保留这个vanilla Java,而不是使用任何第三方框架/库来解决这个孤立的问题)?

我目前的解决方案是使用key = name,value = class | delimiter |在主项目中保留单个.properties文件.人类可读的名称(或协调两个.properties文件,以避免分隔符解析).在运行时,主项目加载到.properties文件中,并使用它找到的任何条目来驱动类加载器.

这对我来说很难过.有更好的方法吗?

java module project

5
推荐指数
1
解决办法
184
查看次数

为什么这个地图检索会产生NPE?

考虑这个课程:

public class TestMap extends HashMap<String, Float> {

    public static void main(String[] args) {
        TestMap tm = new TestMap();
        tm.put("A", 0F);
        tm.put("B", null);

        String[] keys = new String[]{"A", "B"};

        for (String key : keys) {
            System.out.println(key);
            Float foo = (tm == null ? 0F : tm.get(key));
//          Float foo = tm.get(key);
            System.out.println(foo);
        }       
    }
}
Run Code Online (Sandbox Code Playgroud)

Float foo =...在循环的第二次迭代期间在该行上生成NullPointerException :

A
0.0
B
Exception in thread "main" java.lang.NullPointerException
    at TestMap.main(TestMap.java:14)
Run Code Online (Sandbox Code Playgroud)

如果我用下面的注释行替换现有行,它按预期工作,分配foo = null.为什么这两种情况的行为不同?

java nullpointerexception

4
推荐指数
1
解决办法
176
查看次数

断开连接后MNesia是否支持同步?

我开始构建一个具有以下要求的项目:

  • 整个系统将分布在WAN上的多个物理节点上
  • 每个节点将使用和操作一组通用的数据记录
  • 对这些记录的操作必须能够适应网络中断

我正在考虑使用Mnesia/Erlang作为这个项目的基础平台,但我想知道它(Mnesia)能够处理数据集上同时断开连接的冲突操作的情况.

一个说明性场景:

  1. 节点A和B具有连接性和空数据集.
  2. 节点A添加记录(1,ABC).
    • 这里,记录集应该透明地同步,现在节点B也有记录(1,ABC).
  3. 它们之间的网络连接丢失了.
  4. 节点A将记录改为(1,DEF).
  5. 节点B(后面的时间戳)将记录改为(1,GHI).
  6. 网络连接已恢复
    • 预期:在透明同步之后,两个节点都包含记录(1,GHI).

为简化起见,我们假设不需要完整的更改历史记录(例如,记录1用于包含ABC或DEF并不重要,它现在只包含GHI非常重要).

这是Mnesia的开箱即用(或简单实施)功能吗?

architecture erlang distributed synchronization mnesia

4
推荐指数
1
解决办法
507
查看次数

如何从JFrame屏幕截图中删除标题栏?

我正在通过"双缓冲"方法捕获JFrame的截图图像,如下所示:

public BufferedImage getScreenshot() {      
  java.awt.Dimension dim = this.getPreferredSize();         
  BufferedImage image = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);            
  this.paint(image.getGraphics());      
  return image;     
}
Run Code Online (Sandbox Code Playgroud)

其中this扩展了JFrame.我得到的图像在标题栏顶部有一个空白条.在没有为标题栏分配额外空间的情况下,捕获JFrame内容图像的最简单方法是什么?

java swing screenshot jframe

2
推荐指数
1
解决办法
1286
查看次数

如何按Unix时间戳降序排列MySQL记录?

如何通过包含TIME()降序的时间戳的字段将PHP查询中的记录命令到MySQL ?

php mysql

-1
推荐指数
1
解决办法
1857
查看次数