小编mea*_*gar的帖子

我该如何对线程代码进行单元测试?

到目前为止,我已经避免了测试多线程代码的噩梦,因为它看起来像是一个雷区太多了.我想问一下人们如何测试依赖线程成功执行的代码,或者人们如何测试那些只在两个线程以给定方式交互时出现的问题?

对于今天的程序员来说,这似乎是一个非常关键的问题,将我们的知识集中在这个imho上是有用的.

multithreading unit-testing

673
推荐指数
16
解决办法
15万
查看次数

Twitter图像编码挑战

如果一张图片价值1000字,你可以在140个字符中放入多少图片?

注意:那就是大家!赏金的最后期限就在这里,经过一番艰难的考虑后,我认为Boojum的进入只是勉强淘汰Sam Hocevar的.一旦我有机会写出来,我会发布更详细的笔记.当然,每个人都应该随时继续提交解决方案并改进人们投票的解决方案.感谢所有提交和参赛的人; 我很喜欢他们.这对我来说非常有趣,我希望这对参赛者和观众来说都很有趣.

我遇到了一篇关于尝试将图像压缩成Twitter评论的有趣帖子,该线程中的很多人(以及Reddit上的一个帖子)都提出了有关不同方法的建议.所以,我认为这将是一个很好的编码挑战; 让人们将钱放在嘴边,并展示他们对编码的看法如何在有限的空间中提供更多细节.

我挑战你想出一个通用系统,用于将图像编码成140个字符的Twitter消息,并将它们再次解码为图像.您可以使用Unicode字符,因此每个字符的字符数超过8位.但是,即使允许使用Unicode字符,也需要将图像压缩到非常小的空间内; 这肯定会是一种有损压缩,因此必须对每种结果的好看进行主观判断.

以下是原作者Quasimondo从他的编码中获得的结果(图片根据知识共享署名 - 非商业许可证授权): 蒙娜丽莎

你能做得更好吗?

规则

  1. 您的程序必须有两种模式:编码解码.
  2. 编码:
    1. 您的程序必须以您选择的任何合理光栅图形格式输入图形作为输入.我们会说ImageMagick支持的任何栅格格式都算合理.
    2. 您的程序必须输出一条消息,该消息可以用140个或更少的Unicode代码点表示; 在范围140个的代码点U+0000- U+10FFFF,排除非字符(U+FFFE,U+FFFF,U+ÑFFFE,U+ÑFFFF其中Ñ1- 10十六进制和范围U+FDD0- U+FDEF)和替代代码点(U+D800- U+DFFF).它可以以您选择的任何合理编码输出; GNUiconv支持的任何编码都被认为是合理的,您的平台本机编码或区域编码可能是一个不错的选择.有关详细信息,请参阅下面的Unicode注释
  3. 解码: …

compression unicode twitter

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

如何在ActiveRecord中设置默认值?

如何在ActiveRecord中设置默认值?

我看到Pratik的一篇文章描述了一段丑陋,复杂的代码:http://m.onkey.org/2007/7/24/how-to-set-default-values-in-your-model

class Item < ActiveRecord::Base  
  def initialize_with_defaults(attrs = nil, &block)
    initialize_without_defaults(attrs) do
      setter = lambda { |key, value| self.send("#{key.to_s}=", value) unless
        !attrs.nil? && attrs.keys.map(&:to_s).include?(key.to_s) }
      setter.call('scheduler_type', 'hotseat')
      yield self if block_given?
    end
  end
  alias_method_chain :initialize, :defaults
end
Run Code Online (Sandbox Code Playgroud)

我已经看到以下示例谷歌搜索:

  def initialize 
    super
    self.status = ACTIVE unless self.status
  end
Run Code Online (Sandbox Code Playgroud)

  def after_initialize 
    return unless new_record?
    self.status = ACTIVE
  end
Run Code Online (Sandbox Code Playgroud)

我也看到人们把它放在他们的迁移中,但我宁愿看到它在模型代码中定义.

是否有规范方法为ActiveRecord模型中的字段设置默认值?

ruby-on-rails rails-activerecord

407
推荐指数
11
解决办法
18万
查看次数

包含数组的PHP常量?

这失败了:

 define('DEFAULT_ROLES', array('guy', 'development team'));
Run Code Online (Sandbox Code Playgroud)

显然,常量不能保存数组.解决这个问题的最佳方法是什么?

define('DEFAULT_ROLES', 'guy|development team');

//...

$default = explode('|', DEFAULT_ROLES);
Run Code Online (Sandbox Code Playgroud)

这似乎是不必要的努力.

php arrays scalar constants

387
推荐指数
8
解决办法
27万
查看次数

C#或.NET中最糟糕的问题是什么?

我最近在使用一个DateTime对象,并写了这样的东西:

DateTime dt = DateTime.Now;
dt.AddDays(1);
return dt; // still today's date! WTF?
Run Code Online (Sandbox Code Playgroud)

intellisense文档AddDays()说它增加了一天的日期,它没有 - 它实际上返回添加了一天的日期,所以你必须写如下:

DateTime dt = DateTime.Now;
dt = dt.AddDays(1);
return dt; // tomorrow's date
Run Code Online (Sandbox Code Playgroud)

这个曾经多次咬过我,所以我认为编制最糟糕的C#陷阱会很有用.

.net c#

377
推荐指数
45
解决办法
4万
查看次数

如何使用PHP中的cURL连接Tor隐藏服务?

我正在尝试使用以下PHP代码连接到Tor隐藏服务:

$url = 'http://jhiwjjlqpyawmpjx.onion/'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
$output = curl_exec($ch);
$curl_error = curl_error($ch);
curl_close($ch);

print_r($output);
print_r($curl_error);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

无法解析主机名

但是,当我从Ubuntu中的命令行运行以下命令时:

curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion
Run Code Online (Sandbox Code Playgroud)

我得到了预期的回复

PHP cURL文档说明了这一点:

--socks5-hostname
Use  the  specified  SOCKS5 proxy (and let the proxy resolve the host name).
Run Code Online (Sandbox Code Playgroud)

我相信它从命令行工作的原因是因为Tor(代理)正在解析它识别的.onion主机名.在运行上面的PHP代码时,我的猜测是cURL或PHP正在尝试解析.onion主机名并且无法识别它.我已经搜索了一种告诉cURL/PHP让代理解析主机名的方法,但我找不到办法.

有一个非常类似的Stack Overflow问题,使用socks5代理的cURL请求在使用PHP时失败,但它通过命令行工作.

php proxy curl tor

350
推荐指数
4
解决办法
23万
查看次数

从文件扩展名获取MIME类型

如何从文件扩展名中获取MIME类型?

c# asp.net mime

318
推荐指数
13
解决办法
25万
查看次数

byte []到十六进制字符串

如何将a转换byte[]string?我每次尝试都会得到

System.Byte []

而不是价值.

另外,我如何获得十六进制而不是十进制的值?

c# string hex

313
推荐指数
11
解决办法
47万
查看次数

Node.js有模板引擎吗?

我正在尝试使用Node.js构建整个Web应用程序.是否存在类似于(例如)Django模板引擎等的模板引擎,至少允许您扩展基本模板?

javascript template-engine node.js

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

TypeLoadException表示"没有实现",但它已实现

我的测试机器上有一个非常奇怪的错误.错误是:

System.TypeLoadException: Method 'SetShort' in type 'DummyItem' from assembly 'ActiveViewers (...)' does not have an implementation.

我只是无法理解为什么.SetShort是否在DummyItem课堂上,我甚至重新编译了一个带有写入事件日志的版本,以确保它不是部署/版本问题.奇怪的是调用代码甚至不调用该SetShort方法.

.net c# typeloadexception fusion

263
推荐指数
12
解决办法
9万
查看次数