小编Ale*_*ysh的帖子

简短的唯一ID

我正在设计一个HTTP服务,每天的容量高达5亿个请求(由多个独立机器提供服务).

对于每个请求,我必须生成唯一ID并将其返回给用户.在10分钟的窗口内,ID必须是100%唯一的.(首选1天,全局唯一ID是理想的.)生成该ID不需要服务器 - 服务器通信.

愚蠢的伪会话示例:

Client: GET /foo

Server: Content-Type: text/xml

        <root>
            <id>ab9d1972-2844-11e0-86b2-000c29544403</id>
            <other_data/>
        </root>

在上一代HTTP服务中,我使用了UUID.

我对UUID很满意,但有一个问题:它们太长了.在这些请求数量上,这个额外的大小在磁盘空间中明显浪费了日志文件.

创建简短但唯一的标识符的最佳方法是什么?为了让事情变得有价值,我想,算法应该产生UUID长度的一半,而一整天都是唯一的(10分钟应该更短).

理想情况下,建议的算法将在简单的C中具有理智,轻量级的生产质量实现.

更新:生成的ID在GET请求中传递时不应要求URI编码.

language-agnostic linux uuid high-load

3
推荐指数
1
解决办法
1669
查看次数

DST-switch-aware getter,用于当天当地时间午夜的UNIX时间戳

(语言/ API:标准C 89库和/或POSIX)

可能是一个微不足道的问题,但我有一种感觉,我错过了一些东西.

我需要实现这个功能:

time_t get_local_midnight_timestamp(time_t ts);
Run Code Online (Sandbox Code Playgroud)

也就是说,我们得到任意时间戳(例如,从去年开始),并将其四舍五入到同一天的午夜.

问题是该功能必须知道DST开关和DST规则的变化(如DST取消和/或扩展).

该功能还必须面向未来,并应对奇怪的TZ变化(如提前30分钟的时区转移等).

(我需要实现所有这些的原因需要查看一些较旧的统计数据.)

根据我的理解,struct tm将时间字段归零的天真方法不起作用 - 正是因为DST的东西(在DST更改日看起来有两个本地午夜time_t时间戳).

请指出我正确的方向......

我怀疑它可以用标准C 89完成,因此POSIX特定的解决方案是可以接受的.如果不是POSIX,那么Debian特有的东西会做......

更新:另外:有东西告诉我,我也应该考虑闰秒.也许我应该考虑尝试直接使用Tz数据库 ...(这是相当悲伤 - 如此多的/感知/开销这么小的任务.)...或者不 - 似乎libc应该使用它,所以也许我是只是做错了......

更新2:这就是为什么我认为天真的解决方案不起作用的原因:

#include <stdio.h>
#include <time.h>

int main()
{
  struct tm date_tm;
  time_t date_start = 1301173200; /* Sunday 27 March 2011 0:00:00 AM MSK */
  time_t midnight = 0;
  char buf1[256];
  char buf2[256];
  int i = 0;

  for (i = 0; i < 4 * 60 * 60; i += 60 …
Run Code Online (Sandbox Code Playgroud)

c unix-timestamp dst

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

URL解析测试套件

我需要测试一些现有的 http://URL 解析代码以符合RFC 3986

我不想重新发明轮子,也不想碰到各种极端情况。

是否有一些现有的综合测试套件?

我没有指定我使用的语言,因为我希望测试套件足够通用以适应。不过,我会满足于任何理智的事情。

url parsing unit-testing standards-compliance rfc3986

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

UTF-8在Lua/Corona中显示不正确

在Lua中,对于iPad Corona项目,我正在使用network.request请求UTF-8服务器文本文件(包含中文字符),但是在控制台或应用程序中显示的结果显示为"垃圾".例如,谷歌浏览器显示相同的UTF-8页面,因为我在服务器将其(使用PHP)发送到'Content-Type:text/plain;时设置了http标头.charset = utf-8'(并且没有BOM,字节顺序标记).我在Lua中看到的"垃圾"看起来类似于我"强制"Chrome使用选项菜单将页面呈现为ISO-8859-1.

有没有人有任何帮助或指针?如果所有其他方法都失败了,我如何将"垃圾"字符串转换回Lua中的UTF-8起源?

谢谢你的帮助!

unicode lua utf-8 coronasdk

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

我如何从Lua中的另一个类到达一个类变量?

我正在使用导演类进行场景转换,我需要在另一个类的类中使用该变量.那我怎么称呼呢?

     local a= require "welcome"
Run Code Online (Sandbox Code Playgroud)

variableName是welcome类中的文本显示对象

     print(a.variableName.text)
Run Code Online (Sandbox Code Playgroud)

但是我没有.

你能救我吗?谢谢

lua class coronasdk

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

首先出现的是:git子树合并策略还是git子模块?

更重要的是新的发明 - 蹦子树合并策略(不是新的git-子树命令)或git的子模块的命令(或者潜在的机制,如果有一个单独的一个对称的Git树指令相对于合并策略).

Git发行版中首先包含哪些内容?

链接到相关Git ML帖子的奖励积分.

我试过从Git提交历史中挖掘这些信息,但是在2007-2008两个功能中都丢失了.

git history git-submodules git-subtree

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

iPhone 应用程序启动时间指南

请向我指出 iPhone 应用程序启动时间指南。

我看到有大约 24 秒的硬限制。如果应用程序在那个时间没有启动,操作系统会杀死应用程序并显示以下消息:

com.bundle.id failed to launch in time

还有一篇关于这个的QA 文章。(24 秒是我手机上的操作系统杀死应用程序的时间。)

但我认为文档中的某个地方应该有一个更短的软限制。但是,我无法找到它。

iphone launch-time

0
推荐指数
1
解决办法
4845
查看次数