2013-01-26 12:39:43
作者Antirez分享了他对开源软件的见解。他认为开源不仅仅是为了贡献给自由软件运动,更是为了对人类做出贡献。他强调,开源软件的目的是让人们从中获得乐趣、学习新知识,并从中获利。他倾向于使用BSD许可证,因为它允许用户自由使用代码。然而,他也指出,开源软件在获得金钱回报方面存在不足,他建议企业应将部分收益回馈给开源软件的作者,例如通过雇佣他们或提供捐赠。他认为,让开发者有更多自由去创作他们热爱且他人可能从中获利的软件,对经济有重要影响。
2013-01-26 12:39:43
作者Antirez分享了他对开源软件的见解。他认为开源不仅仅是为了贡献给自由软件运动,更是为了对人类做出贡献。他强调,开源软件的目的是让人们从中获得乐趣、学习新知识,并从中获利。他倾向于使用BSD许可证,因为它允许用户自由使用代码。然而,他也指出,开源软件在获得金钱回报方面存在不足,他建议企业应将部分收益回馈给开源软件的作者,例如通过雇佣他们或提供捐赠。他认为,让开发者有更多自由去创作他们热爱且他人可能从中获利的软件,对经济有重要影响。
2013-01-25 21:00:00
在一次面试中,作者提到JavaScript函数是一等公民,可以传递,而面试官反问C语言也能做到,并提到了函数指针。作者意识到自己在C语言方面的知识不足,特别是在大学期间的学习中。作者认为学习多种编程语言和它们各自的范式能让人成为更好的程序员。他推荐了两本书《Head First C》和《21st Century C》来深入学习C语言。文章最后强调了不断学习新知识的重要性,无论是使用C语言的宏、复合字面量,还是JavaScript中的函数属性和y组合子。
2013-01-25 13:33:00
Clojure Euler问题013要求计算一百个50位数的和,并提取前10位数字。由于这些数字非常长,不能使用常规的整数类型。因此,文章介绍了使用Bignum算术技术来处理大数。在Java和Clojure中,可以通过BigInteger类实现大数运算。文章提供了一个Clojure函数,使用reduce和map将数字转换为BigInteger,然后计算总和,并截取前10位数字作为结果。
2013-01-24 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2013-01-24 13:57:01
近期,我为一篇关于“捍卫表现性类名”的文章在Codrops这个在线网页设计和开发博客上发表了自己的观点。文章中,我探讨了表现性类名的使用,分析了为何我们传统上避免使用它们,以及在某些情况下,为何它们可能成为合理的选择。文章强调,编写前端代码的最佳实践不应是教条,而应基于是否真正有助于开发过程。随着网络技术的发展,过去被认为是良好建议的内容,可能不再适用。因此,我们需要不断审视并采纳那些能简化我们生活的最佳实践。
2013-01-23 21:00:00
在Debian系统中,为了使用内置的headers_more外部链接模块,需要安装`nginx-extras`包。在全局配置文件`/etc/nginx/nginx.conf`的`http`部分,应设置`server_tokens off`和`more_set_headers 'Server: BadAss'`。此外,建议为每个网站设置非标准错误页面,至少包括403、404和500/503/504错误,例如将403和404错误重定向到`mysite.com/areyoulost`,将500/503/504错误重定向到`/500.html`。
2013-01-23 20:00:00
SipHash是一种新的哈希算法,旨在抵御哈希洪水攻击。它需要两个参数:一个128位的“密钥”和一个任意数据块,输出一个安全的64位哈希值。文章介绍了SipHash的原理和实现,包括Python和C语言版本的实现示例。作者强调了SipHash算法的简洁性和高效性,并感谢了算法的创造者Jean-Philippe Aumasson。
2013-01-23 13:46:00
Forget Table是一种用于存储随时间变化的分类分布动态的解决方案,即非平稳分布。这对于进行数据集上的统计分析至关重要。由于数据流不断提供新数据,简单的计数器不再适用,因为它们无法反映数据分布的变化。Forget Table通过定义旧数据衰减的速率,以平滑地忘记旧数据,从而解决了这一问题。这种方法有助于识别异常流量,并使我们对“正常”的理解随时间变化。在Redis中, Forget Table以事件计数的集合形式存储分类分布,并通过HTTP服务提供API,支持计数增加和分布检索等功能。
2013-01-23 13:46:00
Forget Table是一种用于存储随时间变化的分类分布动态的解决方案,即非平稳分布。这对于进行数据集上的统计分析至关重要。由于数据流不断提供新数据,简单的计数器不再适用,因为它们无法反映数据分布的变化。Forget Table通过定义旧数据衰减的速率,以平滑地忘记旧数据,从而解决了这一问题。这种方法有助于识别异常流量,并使我们对“正常”的理解随时间变化。在Redis中, Forget Table以事件计数的集合形式存储分类分布,并通过HTTP服务提供API,支持计数增加和分布检索等功能。
2013-01-22 21:00:00
上周,我们赞助并参加了在费城的宾夕法尼亚大学举办的全球最大学生黑客马拉松——PennApps。近500名学生参加了这次活动,他们利用36小时组建团队、开发项目并在评委面前展示。最终,共提交了100多个项目。其中,Cloud Sequencer、SoundSculptr、Astoria、LiveTale.us和Instagramaphone等创新项目脱颖而出,展示了学生们在技术领域的无限创意和潜力。
2013-01-22 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2013-01-22 16:45:00
该文章探讨了如何找到第一个具有超过五百个因子的三角形数。文章首先介绍了三角形数的生成方法,然后通过计算和优化算法来寻找答案。作者首先使用简单的求和公式计算三角形数,并使用一个函数来计算一个数的因子数量。然而,这种方法效率较低。为了提高效率,作者利用了素数分解定理,通过计算素数的幂次来快速确定因子的数量。最终,作者通过优化算法,在不到三秒内找到了答案。
2013-01-22 08:44:27
本文探讨了图论中两种基本的图搜索算法:深度优先搜索(DFS)和广度优先搜索(BFS)。文章首先介绍了图的基本数据结构,包括有向图和无向图,以及如何用Python实现图的数据结构。接着,详细解释了DFS和BFS的原理和实现方法,包括如何使用递归和栈来实现DFS,以及如何使用队列来实现BFS。最后,文章提出可以将这两种算法抽象为一个通用的搜索算法,并讨论了未来可能会使用更复杂的数据结构来改进搜索算法。
2013-01-21 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2013-01-21 21:00:00
作者在体验了新的Basecamp后,深受启发,决定自己动手优化应用程序。通过使用1Gb RAM + SSD HD的DigitalOcean服务器,以及Puma服务器、Nginx、缓存-digest GEM和Turbolinks等技术,成功提升了应用速度。尽管缺少了Basecamp的动画效果,作者自行开发了一套动画过渡功能,并提供了使用方法。作者欢迎社区贡献建议和代码,共同完善项目。
2013-01-21 21:00:00
PHP 5.3引入了`max_input_vars`变量,限制表单可提交字段数量,以防止DoS攻击。默认值为1000,但许多开发者成功将其提升至3000。使用suhosin扩展时,还需设置`suhosin.post.max_vars`和`suhosin.request.max_vars`。这些变量可修改于`php.ini`或针对特定虚拟主机的Apache配置中。