小编jim*_*meh的帖子

Ruby的stdlib Logger类是线程安全的吗?

简而言之,Ruby中的标准库Logger类是否是线程安全的?只有谷歌出现的有用信息才是论坛上有人说它"似乎"是线程安全的.而且我不想花时间测试记录器来试图弄清楚它是否存在.

暂时我使用的是log4r,它是线程安全的,但是如果标准库已经完成它就太过分了.

ruby logging multithreading log4r thread-safety

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

从Rails中的任何位置访问"会话密钥"cookie名称

我们正在构建一个用于在iframe Facebook应用程序中使用的Rails插件,并且我们需要检查是否已经设置了Rail的会话ID cookie.

默认情况下,这个cookie被命名为_myprojectname_session,我们要搞清楚什么是cookie自身的实际名称.因此,如果没有设置,我们可以进行一些重定向以确保设置cookie.

我们如何从任何地方访问该死的名称?或者至少从控制器内部?

cookies session ruby-on-rails

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

Cocoa/Objective-C NSProcessInfo怪异

所以我刚刚开始深入研究Objective-C,Cocoa和iPhone开发.我遇到了一些奇怪的事情,我并没有真正得到这个.

我正在尝试获取进程信息,进程名称工作正常,但当我尝试获取进程ID时,事情变得奇怪.

这是我的代码片段,显然不会向控制台输出任何内容:

NSProcessInfo *processInfo = [NSProcessInfo processInfo];
NSString *processName = [processInfo processName];
int processID = [processInfo processIdentifier];
NSLog(@"Process Name: '%@' Process ID:'%@'", processName, processID);
Run Code Online (Sandbox Code Playgroud)

在此代码块之后,所有其他NSLog调用也将被忽略.并且该过程一直在运行,说明GDB的内容,我在控制台中得到了这个:

Loading program into debugger… GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40 UTC 2008) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the …

cocoa objective-c

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

在满足要素中的标记式自动完成和插入/光标移动

我正在研究一个jQuery插件,它允许你做@username样式标签,就像Facebook在状态更新输入框中做的那样.

我的问题是,即使经过数小时的研究和实验,简单地移动插入符号似乎也很难.我已经设法<a>用某个人的名字注入标签,但是把它放在它之后似乎是火箭科学,特别是如果它应该在所有浏览器中都可以使用.

我还没有考虑用@username标签替换打字的文本,而不是像我现在正在做的那样注入... lol

关于在Stack Overflow上使用contenteditable的问题有很多问题,我想我已经阅读了所有这些问题,但它们并没有真正涵盖我需要的内容.所以任何人都可以提供的信息会很棒:)

javascript caret contenteditable

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

在Firefox中访问第三方cookie

我们正在使用iframe方法在工作中构建Facebook应用程序.要使应用程序正常工作,需要在iframe中设置cookie.

Safari默认禁用第三方cookie,因此我们目前将整个浏览器重定向到我们的服务器,设置跟踪会话所需的cookie,然后再次重定向回Facebook应用程序页面.

这种方法有效,效果很好.除非有人使用Firefox手动禁用第三方cookie,否则Firefox默认启用它们.Safari的工作原因是它不允许你从iframe设置cookie,但你可以阅读它们.另一方面,Firefox不会让你读取cookie,因此它变得有点不可能.

无论如何,当禁用第三方cookie时,Firefox是否可以将cookie发送到外部服务器上的iframe?

cookies safari firefox redirect facebook

9
推荐指数
3
解决办法
7244
查看次数

Emacs:如何将杀戮环从系统剪贴板中分离出来?

默认情况下,Emacs 23.x 似乎会将被删除的内容复制到删除环和系统剪贴板。是否可以将杀戮环和剪贴板分开?

例如,ctrl+k 将内容放入终止环,cmd+x 将内容放入系统剪贴板并保留终止环。

emacs clipboard

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

Ruby支持像PHP这样的var引用吗?

在PHP中,您可以使两个变量指向相同的数据.

$a = 'foo';
$b = 'bar';
$a =& $b;
echo $a // Outputs: bar
echo $b // Outputs: bar
Run Code Online (Sandbox Code Playgroud)

我们在Ruby中尝试做的事情被设定@app_session为等于session[@current_app[:uid]].所以我们只需要@app_session在我们的应用程序中处理,一切都会自动保存到会话中.

有没有办法在Ruby中做到这一点?经过15分钟的阅读,谷歌搜索,并在办公室询问,我们仍然迷路了......哈哈

php ruby reference

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

严重的MySQL性能问题(连接,临时表,Filesort ....)

我有一张用户表和一张投票表.投票表存储对其他用户的投票.无论好坏,投票表中的一行,都会在两个用户之间的两个方向上存储投票.

现在,问题在于我想列出一些人投票的所有人.

我不是MySQL的专家,但是根据我的想法,由于join语句中的OR条件,它需要查看整个 users表(目前是+44,000行),并创建一个临时表来做所以.

目前,bellow查询大约需要两分钟,是的,两分钟即可完成.如果我在join语句中删除OR条件及其后面的所有内容,它会在不到半秒的时间内运行,因为它只需要查看44,000个用户行中的大约17个(解释 ftw!).

下面的示例,用户ID是9834,我正在尝试获取他/她自己没有投票,并加入投票的用户的信息到结果.

是否有更好,更快的方法来执行此查询?或者我应该重组表格?我真的希望可以通过修改查询来修复它,因为表中已经有很多用户(+44,000)和投票(+130,000),我必须迁移它们.

谢谢 :)

SELECT *, votes.id as vote_id 
FROM `votes` 
LEFT JOIN users ON (
  (
    votes.user_id_1 = 9834
    AND
    users.uid = votes.user_id_2
  )
  OR
  (
    votes.user_id_2 = 9834
    AND
    users.uid = votes.user_id_1
  )
)
WHERE (
  (
    votes.user_id_1 = 9834
    AND
    votes.vote_1 = 0
  )
  OR
  (
    votes.user_id_2 = 9834
    AND
    votes.vote_2 = 0
  )
)
ORDER BY votes.updated_at DESC
LIMIT 0, 10
Run Code Online (Sandbox Code Playgroud)

mysql database performance join temp-tables

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

Ruby:内存中基于哈希的线程安全缓冲区?

我正在Redis支持的库中实现一种写/存储缓冲区,以将多个hincrby调用压缩为单个调用.缓冲区需要完全原子化并跨多个线程工作.

因此,我对处理线程安全问题很陌生; 是否有任何现有的库或标准化方法来实现在线程环境中正常工作的基于Hash的全局缓冲区/队列?

举个例子,缓冲区哈希就像这个伪代码一样:

buffer #=> { :ident1 => { :value_a => 1, :value_b => 4 },
       #     :ident2 => { :value_a => 2, :value_b => 3 } }

buffer[:ident1][:value_a] #=> 1

# saving merges and increments {:value_a => 2} into buffer[:ident1]
save(:ident1, {:value_a => 2})

buffer[:ident1][:value_a] #=> 3
Run Code Online (Sandbox Code Playgroud)

这个想法是在X次save调用之后,通过调用缓冲区中的save每个项来刷新缓冲区.

ruby queue buffer thread-safety

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

Emacs:如何在主模式挂钩中禁用特定的全局模式?

我使用global-autopair-mode,但使用Ruby ruby-electric-mode提供更好的自动操作.

我是Emacs和Lisp的n00b,所以我原以为你可以这样做:

(add-hook 'ruby-mode-hook
          (lambda ()
             (autopair-mode nil)
             (ruby-electric-mode t))
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用.有没有办法在主模式挂钩中禁用全局模式?

目前我正在使用这里发布的最后一个解决方案,但它不是很干净整洁.

emacs major-mode

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