小编Wil*_*tri的帖子

Ruby数组到索引哈希?

我经常发现自己在Ruby中构建查找表,通常是为了缓存一些昂贵的计算或构建我传递给视图的东西.我认为必须有一个简短的,可读的成语,但我们想不到一个.例如,假设我想开始

[65, 66, 67, ...]
Run Code Online (Sandbox Code Playgroud)

并最终得到

{65 => "A", 66 => "B", 67 => "C", ...}
Run Code Online (Sandbox Code Playgroud)

我们能想到的不太合适的习语包括:

array = (65..90).to_a

array.inject({}) {|hash, key| hash[key]=key.chr; hash}
{}.tap {|hash| array.each {|key| hash[key] = key.chr}}
Hash[array.zip(array.map{|key| key.chr})]
Run Code Online (Sandbox Code Playgroud)

但所有这些都有点痛苦:难以阅读,容易搞砸,意图不明确.当然Ruby(或者一些Rails助手)对此有一些很好的魔力?

ruby ruby-on-rails

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

如何判断网页资源何时被缓存?

有没有一种方法可以让我告诉我资源是否已经存在于浏览器缓存中?

我们正在检测客户端页面视图的一小部分,以便我们可以获得有关为用户加载页面的速度的更好数据.用户第一次到达我们的网站时,浏览器会缓存许多资源(JS,CSS,图像),因此他们的初始网页浏览速度会慢于后续浏览器.

现在,这些数据混合在一起,因此很难说后续网页浏览的初始页面加载由于某些其他原因而变慢.我喜欢一种跨浏览器的方式来检查缓存是否已经准备就绪,以便我可以分离两种类型的页面浏览并分别对它们进行分析.

javascript browser caching

8
推荐指数
2
解决办法
3231
查看次数

在shell中做基本统计的最佳方法是什么?

现代Unix shell环境有很多好东西,我需要的东西几乎总是安装在我的机器上或者快速下载; 麻烦就是找到它.在这种情况下,我试图找到基本的统计操作.

例如,现在我正在为基于爬虫的应用程序进行原型设计.感谢wget加上其他一些好东西,我现在有几十万个文件.所以我可以用数十亿个文件估算这样做的成本,我想得到文件大小超过一定限度的平均值和中位数.例如:

% ls -l | perl -ne '@a=split(/\s+/); next if $a[4] <100; print $a[4], "\n"' > sizes
% median sizes
% mean sizes
Run Code Online (Sandbox Code Playgroud)

当然,我可以用perl或awk编写自己的中位数和平均值.但是,不是已经有一些noob友好的包,除此之外还有更多吗?

unix shell statistics r

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

Objective-C相当于Java的BlockingQueue?

经过多年的Java开发,我刚刚进入iPhone开发阶段.我正在寻找与Java的BlockingQueue相当的Objective-C .有类似的东西吗?

如果我以错误的方式处理事情,这就是我想要实现的目标:

我想一次一个地显示从网络服务器中提取的数据块.为了防止用户注意网络延迟,我希望总是预先获取一些数据块.在Java-land中,我在我的提取线程和显示线程之间使用了一个线程安全的队列.

iphone multithreading objective-c

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

fread()没有写入缓冲区

#include <Windows.h> 
#include <stdio.h> 

int count = 0; 
FILE* pFile = 0; 
long Size = 0; 

void *memfrob(void * s, size_t n) 
{ 
    char *p = (char *) s; 

    while (n-- > 0) 
        *p++ ^= 42; 
    return s; 
} 

int main() 
{ 
    fopen_s(&pFile, "***", "r+"); 
    fseek(pFile, 0, SEEK_END); 
    Size = ftell(pFile); 
    char *buffer = (char*)malloc(Size); 
    memset(buffer, 0, Size); 
    fread(buffer, Size, 1, pFile); 
    fclose(pFile); 
    memfrob(buffer, Size); 
    fopen_s(&pFile, "***", "w+"); 
    fwrite(buffer, Size, 1, pFile); 
    fclose(pFile); 
}
Run Code Online (Sandbox Code Playgroud)

嗨,fread没有读取从文件到缓冲区的任何内容,我无法弄清楚原因.有人能给我一个暗示或推动正确的方向吗?

c windows fread

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