2016-02-05 21:00:00
本文探讨了如何使用增量计算优化动态Web应用的结构。作者以OCaml语言为例,介绍了如何利用Incremental库构建自调整计算。通过将模型、视图和动作分解为增量值,可以有效地更新和重用计算结果,从而提高性能。文章详细解释了如何使用`map`和`bind`操作符来创建和依赖增量值,并展示了如何将复杂的数据结构分解为增量值。这种方法适用于构建大型、复杂的用户界面,并有助于减少不必要的计算和DOM操作。
2016-02-05 21:00:00
本文探讨了如何使用增量计算优化动态Web应用的结构。作者以OCaml语言为例,介绍了如何利用Incremental库构建自调整计算。通过将模型、视图和动作分解为增量值,可以有效地更新和重用计算结果,从而提高性能。文章详细解释了如何使用`map`和`bind`操作符来创建和依赖增量值,并展示了如何将复杂的数据结构分解为增量值。这种方法适用于构建大型、复杂的用户界面,并有助于减少不必要的计算和DOM操作。
2016-02-05 21:00:00
我最近为台式机购买了一张新的WiFi网卡——英特尔双频无线AC 7260。这款网卡符合我的需求:支持AC标准、5GHz网络、PCI/PCIe或USB3接口,且对Linux系统友好。使用后,我发现它能在Linux内核4.2.0上稳定工作,最高传输速度可达23MB/s,远超旧路由器。通过`lspci`和`iwconfig`命令,我确认了网卡的信息和配置。这款网卡性价比高,值得推荐给需要Linux友好的AC WiFi卡的用户。
2016-02-05 11:00:00
本文介绍了如何使用Raspberry Pi搭建一个自动网络备份服务器。作者首先介绍了Raspberry Pi的配置,然后详细讲解了使用rsync工具进行文件同步的方法,包括设置SSH免密登录和自动化备份任务。文章还提供了针对Linux和Mac操作系统的具体操作步骤,并强调了使用Raspberry Pi作为备份服务器的便捷性和实用性。
2016-02-04 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2016-02-04 21:00:00
本文介绍了Cloudflare如何防御DoS攻击的方法,并分享了适用于普通Web服务器的防御技巧。文章详细讲解了如何通过iptables和sysctl等工具来应对ACK/FIN/RST/X-mas flood、SYN flood和botnet攻击。此外,还提供了一些系统调优的示例,包括NIC丢弃、流量引导、SYN回退队列大小调整等。最后,文章还介绍了如何使用ipset进行黑名单管理、TARPIT策略以及自动黑名单等功能。
2016-02-04 15:44:12
Zapier是一个自动化数据流服务的平台,能够连接500多个网络应用,如MailChimp、Salesforce、GitHub和Trello等。该平台由四个工程团队组成,包括前端、全栈、DevOps和平台团队,共有约15名工程师。Zapier使用React和Python等工具构建,并运行在AWS上。平台支持构建复杂的“Zap”工作流程,如用户填写表单后自动创建日历事件、发送Slack通知等。Zapier还提供开发者平台,允许开发者将API集成到Zapier中,让非开发者也能使用。
2016-02-04 15:04:00
CoreOS的rkt容器运行时项目经过14个月的开发,现已发布1.0版本,标志着其生产就绪。rkt以安全为首要考虑,与Linux系统深度集成,并得到社区广泛参与。Kinvolk团队对此表示祝贺,并强调rkt在操作系统层面管理容器和服务的重要性,得到了systemd项目开发者Lennart Poettering的认可。未来几周,Kinvolk将发布一系列关于rkt的博客文章,以进一步探讨其应用和前景。
2016-02-04 11:00:00
本文介绍了如何使用Angular和Node.js实现文件上传功能。首先,通过Angular前端创建一个简单的应用,使用TypeScript和HTML5的文件上传元素。然后,通过Node.js后端接收文件,使用Multer中间件处理上传的文件。文章详细讲解了如何配置Angular和Node.js环境,以及如何编写代码实现文件上传和接收。最后,作者总结了整个流程,并提供了项目链接供读者参考。
2016-02-03 21:00:00
Cerner公司开源了其Tomcat Chef Cookbook,用于自动化部署多个Web服务。该Cookbook旨在简单且灵活,支持安装任何版本的Tomcat,配置安装目录中的任何文件,并部署Web应用。Cookbook最初是为了满足社区中其他Tomcat Cookbook未涵盖的功能而创建的。由于Tomcat使用XML进行配置,与Chef的Ruby Hash属性不兼容,Cookbook采用了允许应用提供自己的配置模板的方法,以适应不同团队的需求。Cerner鼓励社区尝试并反馈改进意见。
2016-02-03 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2016-02-03 21:00:00
本文探讨了.NET垃圾回收器(GC)的工作原理,着重于其内部机制而非功能。文章首先介绍了GC的目标,包括高效管理内存、减少对开发者的干预等。接着,通过分析.NET GC样本代码,详细解释了对象分配、标记卡表等过程,并说明了GC与执行引擎的交互。最后,文章提供了进一步了解GC的链接和代码布局信息。总结来说,本文深入浅出地介绍了.NET GC的运作机制,为开发者提供了宝贵的参考。
2016-02-03 21:00:00
在检查备份任务时,发现`~/.local/share/zeitgeist`目录占用大量时间,经检查发现该目录下`activity.sqlite-wal`文件达4.4GB。通过外部链接得知可以删除部分文件,随后关闭`zeitgeist-daemon`进程,删除了`fts.index`、`activity.sqlite-wal`和`activity.sqlite-shm`文件,重启`zeitgeist-daemon`后,目录占用空间显著减少。
2016-02-03 16:49:36
谷歌搜索团队的杰出成员Amit Singhal即将在本月底退休。他在谷歌度过了15年,担任过多个角色,包括个人贡献者、经理和搜索部门负责人,并在每个角色中都表现出色。他的洞察力和判断力让数十亿人受益。尽管谷歌将怀念他,但感谢他为公司做出的贡献。同时,领导层将继续由经验丰富的团队领导,确保搜索领域的卓越表现。
2016-02-02 21:00:00
FOSDEM,欧洲年度开源爱好者聚会,在布鲁塞尔举行。会议期间,Lennart Poettering介绍了systemd的最新进展,许多发行版已采用systemd作为主要初始化系统。此外,会议还探讨了开源设计,包括英国政府如何使用开源技术构建gov.uk网站,以及设计师和开发者如何更好地合作。JavaScript微基准测试、GPLv4和 Affero LGPL等话题也备受关注。会议期间,参与者还分享了SUSE Studio和CoreOS等项目的最新动态。
2016-02-02 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2016-02-02 21:00:00
Stack Overflow鼓励员工分享技术细节,以提高开发者的生活质量。作者计划通过一系列博客文章公开Stack Overflow的架构、硬件、部署、监控和应用缓存等内部工作方式。他希望通过这种极端开放的方式,让读者学习新知识,共同改进工作方法,并消除“大公司总是做对”的误解。作者邀请读者参与投票,决定博客文章的优先顺序,并期待与大家共同探索这一技术之旅。
2016-02-02 13:39:20
该网页主要介绍了网站使用cookie的情况。网站默认设置为允许cookie,以提供最佳浏览体验。用户若继续使用网站或点击“接受”按钮,即表示同意使用cookie。网页还提供了关闭cookie设置和更多信息链接。
2016-02-02 04:23:03
近日,Bugzilla.mozilla.org进行了多项更新,包括要求通过REST API提交的附件数据必须始终以base64编码,优化了Bugzilla自动完成下拉框的显示宽度,修复了尝试报告漏洞导致的无限循环问题,改进了关于首次补丁批准的邮件说明,创建了一个输出cpanfile的脚本以用于版本锁定,配置了nagios警报以支持bmo/reviewboard连接器,以及添加了管理用户设置的脚本。这些更新可在mozilla.tools.bmo上讨论。
2016-02-01 22:00:00
本文探讨了使用Angular框架创建标签组件的另一种方法,即通过学习`@ContentChildren`和`AfterContentInit`来实现。文章首先回顾了Angular 2及以上版本中`<tabs>`组件的API,并介绍了通过依赖注入在父组件和子组件之间建立通信的方法。接着,文章提出了一个不同的实现思路,即从父组件`Tabs`获取所有子组件`Tab`的引用,并使用`@ContentChildren`和`QueryList`来实现这一目标。文章详细解释了如何使用`ngAfterContentInit`生命周期钩子来初始化子组件,并展示了如何通过`selectTab`函数来激活和隐藏标签。最后,文章提到了如何通过动态组件创建功能来扩展标签组件,以支持动态添加和删除标签。
2016-02-01 21:00:00
项目“铁人”旨在解决trivago酒店搜索应用中CSS核心的迁移问题。由于缺乏设计/前端系统和开发指南,代码与设计之间的一致性问题导致UI混乱、难以维护,并积累了大量技术债务。2015年初,trivago开始建立设计/前端系统,引入了模式库、原子设计、编码规范,并采用BEM和ITCSS等方法论来支持大规模的CSS/UI维护和开发。通过移动优先、使用normalize.css替换reset.css、使用SVG图标替代图像精灵等措施,项目团队在四周内完成了超过50,000行SCSS代码的重构,成功实现了技术迁移,并显著提高了CSS资产文件大小、减少了HTTP请求、提升了渲染性能。
2016-02-01 21:00:00
HackerEarth为了支持数学公式和符号,引入了Latex库MathJax。文章介绍了MathJax的工作原理,包括异步处理和队列机制。针对编辑器、静态内容和动态内容,分别采用了不同的渲染策略。编辑器中,通过Pagedown编辑器的hooks机制,将Markdown内容转换为Latex格式。网页内容则通过同步和异步方式加载,MathJax负责在内容加载后进行渲染。这种方法使得HackerEarth网站上的数学公式和符号得以正确显示。
2016-02-01 21:00:00
HackerEarth为了提高社交媒体更新效率,开发了实时分析提交数据的系统。该系统通过读取数据库中的提交表,自动化发布事件提醒、比赛开始/结束和排行榜更新等。为应对高峰时段数据库压力,系统采用Redis进行数据持久化,避免重复发布,并通过Kafka异步处理提交数据。此外,系统还通过Cron作业发布比赛提醒,并按时间间隔发布推文,以降低特定时间间隔内的推文数量。该系统作为营销团队的“情人节礼物”,得到了他们的喜爱。
2016-02-01 11:00:00
本文介绍了如何将Raspberry Pi配置为无头系统,即无需显示器、键盘和鼠标即可运行。首先,通过Mac或Linux电脑将Raspbian操作系统安装到SD卡中,然后通过SSH连接到Raspberry Pi进行配置。接着,通过网络发现Raspberry Pi并启用WiFi,使其无需网线即可工作。最后,通过SSH访问Raspberry Pi,实现无头操作。这种配置适用于网络存储等无需显示器的应用场景。
2016-02-01 10:30:00
Junction是一个C++库,包含多种新的并发映射,支持多线程操作,如`insert`和`find`,且无需互斥锁。它包含三种映射类型:线性映射、Leapfrog映射和Grampa映射,分别适用于不同场景。Junction支持多种平台,并使用QSBR(静默状态基于的内存回收)进行安全内存回收。目前处于alpha版本,代码为实验性,欢迎贡献和反馈。
2016-02-01 05:25:01
在开发完成一个应用程序后,为了了解其运行状态,日志记录成为关键。然而,在多服务器或服务导向架构中,手动收集日志变得复杂。为了解决这个问题,引入了集中式日志记录,它允许从中央位置查看、过滤和分析所有服务器的日志。文章介绍了使用Elasticsearch、Logstash和Kibana(ELK栈)进行集中式日志记录的方法,该方法在成本效益和可扩展性方面表现良好。
2016-01-31 21:00:00
在 HackerEarth 的内部黑客马拉松中,作者开发了一个用于分析 Django 视图中 SQL 查询的剖析器。该剖析器通过修改 Python 代码的抽象语法树(AST),追踪并记录触发 SQL 查询的具体表达式。剖析器能够显示每个函数调用、属性访问等操作导致的 SQL 查询,帮助开发者优化性能。该工具不仅限于 SQL 查询,还可以用于分析其他类型的查询,如 memcached 查询,并计划开源。
2016-01-31 20:00:00
在2016年旧金山举办的Enigma会议上,我发表了一场关于构建拒绝服务(DoS)缓解管道的演讲。演讲中,我分享了构建这一管道的幻灯片,并附上了演讲视频。