2013-01-18 21:00:00
上周,互联网社区失去了一位在对抗版权行业斗争中的成员。作者对美国政府给予这位成员的过重刑罚表示震惊,认为这样的判决是对信息自由的严重打击。文章指出,法律应与时俱进,而当前的法律体系却显得陈旧。作者批评了信息限制、媒体和版权游说团体的行为,并呼吁建立一个保护互联网和信息自由的政党。文章强调,知识应该开放共享,以促进人类进步。作者最后呼吁人们行动起来,为塑造更好的世界贡献力量。
2013-01-18 21:00:00
上周,互联网社区失去了一位在对抗版权行业斗争中的成员。作者对美国政府给予这位成员的过重刑罚表示震惊,认为这样的判决是对信息自由的严重打击。文章指出,法律应与时俱进,而当前的法律体系却显得陈旧。作者批评了信息限制、媒体和版权游说团体的行为,并呼吁建立一个保护互联网和信息自由的政党。文章强调,知识应该开放共享,以促进人类进步。作者最后呼吁人们行动起来,为塑造更好的世界贡献力量。
2013-01-18 10:45:00
在20x20的数字网格中,作者通过编写Clojure程序来寻找四个相邻数字在同一方向(上、下、左、右或对角线)的最大乘积。首先,程序从文件中读取网格数据,并将其转换为二维数组。接着,通过遍历网格中的每个元素,并检查所有可能的四个数字组合,包括水平、垂直和对角线方向。最后,计算所有组合的乘积,并找出最大值。这个问题的解决方法主要是通过暴力搜索,即检查所有可能的组合,最终得出最大乘积为70600674。
2013-01-17 22:00:00
本文以测试ASP.NET MVC控制器返回值为例,探讨了在测试匿名类型时使用动态类型的方法。文章首先介绍了如何测试普通控制器方法,然后展示了如何通过动态类型验证匿名类型中的属性值。此外,文章还强调了在使用匿名类型时需要添加`InternalsVisibleTo`属性以允许测试项目访问内部对象的重要性。通过这种方式,可以更简洁地验证匿名类型中的属性值,相比使用反射,这种方法更为优雅。
2013-01-17 21:00:00
由于Pinterest没有官方的API,作者决定使用Node.js和Express库创建一个简单的RESTful端点来抓取Pinterest的内容。由于没有API,作者采用了屏幕抓取技术,使用cheerio库来解析网页数据。虽然这种方法存在一些缺点,如页面布局变化可能导致抓取失败,但作者通过缓存和快速的工具来优化数据获取速度。最终,作者成功抓取了Pinterest上的图片、链接和描述信息,并以JSON格式返回,方便其他应用程序使用。
2013-01-17 16:02:16
在CSS开发中,重复编写相同的视觉组件是一个常见问题。为了解决这个问题,Nicole Sullivan提出了面向对象CSS(OOCSS)的概念,建议将重复出现的视觉模式分解成可重用的部分,并定义成独立的类。尽管OOCSS在大型项目中得到了广泛应用,但仍有开发者对其持批评态度。文章探讨了使用CSS预处理器如Sass的`@extend`功能来解决OOCSS问题的局限性,并提出了一个更全面的解决方案,即CSS应具备内置的面向对象功能,通过引入新的选择器和规则来支持类继承,从而提高CSS的可重用性和可维护性。
2013-01-16 21:00:00
在JavaScript中,函数可以在同一语句中定义和使用,这使得创建快速且函数被视为匿名。然而,给这些匿名函数命名有几个好处。首先,命名可以提高代码的可读性,使函数名直接表明其功能,便于理解。其次,命名函数在出现错误时,能提供更清晰的堆栈跟踪,使得调试更加容易。例如,在抛出错误时,带有名称的函数在堆栈跟踪中会显示其名称,而未命名的函数则只显示行号,难以理解。因此,给匿名函数命名不仅有助于代码的可维护性,还能提升调试效率。
2013-01-16 12:39:22
Redis 2.8版本将引入一个备受期待的新特性——部分重同步。这一功能允许从节点在连接到主节点时,无需每次都进行完整的数据同步,从而提高效率。Redis的复制机制原本要求每次从节点连接到主节点时都进行完整同步,这在数据集较大时会导致不必要的性能损耗。新特性通过在内存中保留一定量的数据历史,允许从节点请求从特定位置开始同步,从而避免了完整同步的缺点。这一改进将显著提升Redis在处理大数据集时的性能和可靠性。
2013-01-15 21:00:00
Mocha测试框架提供了灵活的测试运行机制,允许开发者通过指定模式来运行特定的测试文件或测试用例。开发者可以使用`grep`选项来运行匹配特定模式的测试文件,或通过`.only()`方法来运行单个`describe`或`it`函数。此外,还可以使用`.skip()`方法跳过某些测试。这些功能有助于提高测试效率,特别是在进行TDD开发时。需要注意的是,添加`.only()`或`.skip()`会修改测试代码,因此在使用时应小心,避免将更改提交到版本控制系统中。
2013-01-15 16:17:39
在HTML文档中,`z-index` 属性控制元素的堆叠顺序,但许多开发者对其工作原理理解不足。文章通过一个示例,展示了如何通过改变父元素的透明度来改变元素的堆叠顺序,而不修改HTML结构或`z-index`属性。文章解释了堆叠顺序的规则,包括非定位元素、定位元素和`z-index`属性的影响,以及如何形成堆叠上下文。了解这些规则对于正确使用`z-index`和预测CSS布局至关重要。
2013-01-15 02:03:49
在C99中,通过结合复合字面量、指定初始化器和可变参数宏,可以创建更简洁、更灵活的带关键字参数的函数调用。例如,通过定义一个将关键字参数转换为结构化形式的宏,可以像`my_func(.username="Bob", .is_admin=true);`这样调用函数。这种方法使用复合字面量创建临时结构,指定初始化器选择特定的结构成员进行初始化,以及可变参数宏处理可变参数列表。这允许有可选的关键字参数和默认值,未指定的参数默认为零或空,重复的参数使用最后指定的值。这种技术依赖于C99引入的三个新特性:复合字面量、指定初始化器和可变参数宏。
2013-01-13 21:00:00
闭包是编程中一个重要的概念,它允许函数访问其外部作用域中的变量。理解作用域对于编写代码至关重要。文章以JavaScript为例,说明了闭包如何工作,并解释了变量遮蔽的概念。接着,文章探讨了Ruby和Rust语言中闭包的实现方式,指出并非所有语言都支持默认的闭包语法。Rust以其简洁的闭包语法和类型推断能力,成为了一种受欢迎的系统级编程语言。
2013-01-13 21:00:00
Supertest是一个与Superagent配合使用的HTTP请求测试库,它允许在HTTP请求上执行断言。在测试需要认证的URL时,由于Supertest没有内置的cookiejar来保存会话cookie,因此需要手动处理认证过程。可以通过Superagent来发送登录请求并保存cookie,然后将这些cookie附加到Supertest请求中,以实现认证测试。这种方法虽然不是Supertest官方提供的,但它是目前实现认证测试的一种有效方式。