标签: human-readable

用于嵌入式系统的简约人类可读序列化格式解析器

通过"人类可读的序列化格式"我的意思是YAML,JSON,INI或喜欢.请注意,XML对于我的目的来说,太冗长和太不方便了,所以让我们把它作为最后的手段.

格式应将数据存储为"命名键 - 值"对,并允许嵌套和数组.但是,缺少数组并不重要.此外,非常感谢类型感知(不仅将数据作为普通字符串返回的能力).

我真正需要的是一个纯C库,它提供了一个用于解析数据的API(编码是可选的,不太重要).在为ARM7编译时,它必须适合大约16-20 KiB.

我已经用Google搜索并在周围徘徊,但找不到满足上述所有要求的工件.

c embedded serialization yaml human-readable

10
推荐指数
1
解决办法
839
查看次数

人类可读值的实际数字

我有以字节为单位的数据.我需要在图表上绘制这些值作为人类可读的标签(如2.5KB,14MB等),并需要帮助功能(输入数据 - 实际值,输出 - 人类可读的字符串).

我做了这样的功能,但我想要更优雅的实现

function tickFormatter(value, type) {

    var suffix = (type == "bytes") ? ['B', 'KB', 'MB', 'GB'] : ['', 'K', 'M', 'G']

    if(value > (1024 * 1024 * 1024 * 1024)) {
        return (value / (1024 * 1024 * 1024 * 1024)).toFixed(2) + suffix[3]
    } else if(value > (1024 * 1024 * 1024)) {
        return (value / (1024 * 1024 * 1024)).toFixed(2) + suffix[2]
    } else if (value > (1024 * 1024)) {
        return (value / …
Run Code Online (Sandbox Code Playgroud)

javascript function human-readable

9
推荐指数
2
解决办法
6431
查看次数

字节到人类可读,然后回来.没有数据丢失

我需要将包含内存使用量的字符串1048576(例如:(1M))转换为人类可读的版本,反之亦然.

注意:我已经看过这里了: 可重用的库,以获得文件大小的人类可读版本?

在这里(即使它不是python): 如何将人类可读的内存大小转换为字节?

到目前为止没有什么能帮助我,所以我在其他地方看了

我在这里找到了一些可以解决此问题的内容:http://code.google.com/p/pyftpdlib/source/browse/trunk/test/bench.py​​?specpec = swn984&r = 984#137,或者,对于较短的网址:http://goo.gl/zeJZl

代码:

def bytes2human(n, format="%(value)i%(symbol)s"):
    """
    >>> bytes2human(10000)
    '9K'
    >>> bytes2human(100001221)
    '95M'
    """
    symbols = ('B', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
    prefix = {}
    for i, s in enumerate(symbols[1:]):
        prefix[s] = 1 << (i+1)*10
    for symbol in reversed(symbols[1:]):
        if n >= prefix[symbol]:
            value = float(n) / prefix[symbol]
            return format % locals()
    return format % dict(symbol=symbols[0], value=n)
Run Code Online (Sandbox Code Playgroud)

还有一个转换功能(相同的网站):

def human2bytes(s): …
Run Code Online (Sandbox Code Playgroud)

python memory converter human-readable

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

Java - 将人类可读大小转换为字节

我发现了很多关于将原始字节信息转换为人类可读格式的信息,但我需要做相反的事情,即将字符串"1.6 GB"转换为长值1717990000.是否内置/良好 - 这样做的定义方式,还是我几乎不得不自己动手?

[编辑]:这是我的第一次刺...

static class ByteFormat extends NumberFormat {
    @Override
    public StringBuffer format(double arg0, StringBuffer arg1, FieldPosition arg2) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public StringBuffer format(long arg0, StringBuffer arg1, FieldPosition arg2) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Number parse(String arg0, ParsePosition arg1) {
        return parse (arg0);
    }

    @Override
    public Number parse(String arg0) {
        int spaceNdx = arg0.indexOf(" ");
        double ret = Double.parseDouble(arg0.substring(0, spaceNdx));
        String unit = arg0.substring(spaceNdx + …
Run Code Online (Sandbox Code Playgroud)

java byte human-readable long-integer

9
推荐指数
4
解决办法
5407
查看次数

UUID的人类可读替代方案

我正在开发一个系统,该系统大量使用假名来为研究人员提供隐私关键数据.这些假名应具有以下属性:

  1. 它们不应包含任何信息(例如创建时间,与其他假名的关系,编码数据......).
  2. 创建独特的假名应该很容易.
  3. 它们应该是人类可读的.这意味着当大声朗读时,人类应该容易比较,复制和理解.

我的第一个想法是使用UUID4.它们在(1)和(2)上相当不错,但在(3)中却没有那么多.

一种变体是使用更宽的字母表对UUID进行编码,从而产生更短的字符串(例如,参见shortuuid).但我不确定这是否真的提高了可读性.

我目前正在研究的另一种方法是2005年的一篇题为"患者识别符的最佳代码"的论文,旨在解决我的问题.这里描述的算法创建了具有30位熵的8字符假名.我宁愿使用更广泛审查的标准.

然后还有git方法:只显示实际假名的前几个字符.但这意味着化名可能在一段时间后失去其独特性.

所以我的问题是:人类可读的独特ID是否有任何广泛使用的标准?

standards uuid human-readable

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

人类可读的URL:最好也是分层的?

在一个关于人类可读URL 的现在迁移的问题中,我允许自己详细描述我的一个爱好:

当我遇到像http://www.example.com/product/123/subpage/456.html我这样的URL时,我总是认为这是尝试创建有意义的分层URL,但这并不是完全分层的.我的意思是,你应该能够一次切掉一个级别.在上面,URL有两个违反此原则的违规行为:

  1. /product/123一个表示为两个级别的信息.它会被更正确地表示为/product:123(或者你喜欢的任何分隔符)
  2. /subpage很可能本身并不是一个实体(即,你不能去了一个从水平456.html作为http://www.example.com/product/123/subpage是"无").

因此,我发现以下更正确:

http://www.example.com/product:123/456.html
Run Code Online (Sandbox Code Playgroud)

在这里,您始终可以一次向上导航一个级别:

  • http://www.example.com/product:123/456.html - 子页面
  • http://www.example.com/product:123 - 产品页面
  • http://www.example.com/ - 根

遵循相同的理念,以下内容将有意义[并提供产品列表的附加链接]:

http://www.example.com/products/123/456.html
Run Code Online (Sandbox Code Playgroud)

哪里:

  • http://www.example.com/products/123/456.html - 子页面
  • http://www.example.com/products/123 - 产品页面
  • http://www.example.com/products - 产品清单
  • http://www.example.com/ - 根

我对这种方法的主要动机是,如果每个"路径元素"(由分隔符/)是自包含的1,您将始终能够通过简单地删除URL的最后一个元素来导航到"父".这是我(有时)在我想要转到父目录时在我的文件浏览器中执行的操作.遵循相同的逻辑线,用户(或搜索引擎/爬虫)也可以这样做.我觉得很聪明.

另一方面(这是问题的重要部分):虽然我永远无法防止用户试图访问他自己截断的URL,但我错误地断言(并且尊重)搜索引擎可能会做同样的事情?也就是说,期望没有搜索引擎(或者真的:Google)会尝试访问http://www.example.com/product/123/subpage(上面的第2点)是否合理?(或者我真的只考虑人为因素吗?)

这不是关于个人偏好的问题.这是关于我对爬虫/索引器的期望以及在设计URL时我应该考虑非人类URL操作的范围的技术问题.

此外,结构"深度" http://www.example.com/product/123/subpage/456.html是4,其中http://www.example.com/products/123/456.html只有3.有传言说这个深度影响搜索引擎排名.至少,所以我被告知.(现在很明显,搜索引擎优化并不是我最了解的.)这是(仍然?)真的:层次深度(目录数量)是否会影响搜索排名?

那么,我的"预感"在技术上是合理的还是我应该把时间花在其他事情上?


示例:这样做(差不多)正确的
好,所以这几乎是正确的.例证:个人资料,例如http://stackoverflow.com/users/52162:

  • http://stackoverflow.com/users/52162 - 单个档案 …

url seo hierarchical human-readable url-modification

6
推荐指数
1
解决办法
1185
查看次数

objective-c NSFilePosixPermissions到人类可读的NSString

有没有办法从NSFilePosixPermissions整数中获取人类可读的字符串(例如@"drwxr-xr-x")?

permissions posix objective-c nsstring human-readable

6
推荐指数
1
解决办法
3009
查看次数

protobuf-net中的人类可读表示

protobuf-net是否有任何API将protobuf转换为人类可读的形式?我希望像TextFormat这样的东西.

protocol-buffers protobuf-net human-readable

6
推荐指数
1
解决办法
3167
查看次数

在unix上查找人类可读的文件

我想在我的linux机器上找到没有文件扩展名约束的人类可读文件.这些文件应该是人类感知文件,如文本,配置,HTML,源代码等文件.你能建议一种过滤和定位的方法吗?

linux find human-readable

6
推荐指数
2
解决办法
5万
查看次数

Scala模式匹配相当印刷

是否有可能以某种方式将PartialFunction(让我们假设它总是只包含一个案例)编组成人类可读的东西?

假设我们有类型Any(messages:List [Any])的集合和使用模式匹配块定义的PartialFuntion [Any,T]的数量.

case object R1
case object R2
case object R3

val pm1: PartialFunction[Any, Any] = {
  case "foo" => R1
}

val pm2: PartialFunction[Any, Any] = {
  case x: Int if x > 10 => R2
}

val pm3: PartialFunction[Any, Any] = {
  case x: Boolean => R3
}

val messages: List[Any] = List("foo", 20)
val functions = List(pm1, pm2)
Run Code Online (Sandbox Code Playgroud)

然后我们可以找到所提供的PF和相关应用程序匹配的所有消息

val found: List[Option[Any]] = functions map { f =>
  messages.find(f.isDefined).map(f)
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要以 …

scala pattern-matching human-readable

6
推荐指数
1
解决办法
193
查看次数