2017-05-13 05:15:00
本教程旨在指导读者快速安装主要的深度学习库,并搭建完整的开发环境。文章介绍了Caffe、TensorFlow和Theano等深度学习库的安装步骤,强调了NVIDIA GPU在深度学习应用中的重要性。教程详细说明了如何安装这些库的依赖项,并提供了安装过程中的具体命令。最后,文章总结了安装过程,并鼓励读者继续探索更多资源。
2017-05-13 05:15:00
本教程旨在指导读者快速安装主要的深度学习库,并搭建完整的开发环境。文章介绍了Caffe、TensorFlow和Theano等深度学习库的安装步骤,强调了NVIDIA GPU在深度学习应用中的重要性。教程详细说明了如何安装这些库的依赖项,并提供了安装过程中的具体命令。最后,文章总结了安装过程,并鼓励读者继续探索更多资源。
2017-05-12 21:00:00
作为一名开发者,我们有时会觉得自己需要做所有事情。对于初创或小型公司来说,确实可能需要“全能”。但现实中,我们不必事事亲力亲为。例如,不必自己购买硬件,可以使用云服务;不必自己构建支付系统,可以使用第三方服务。重要的是要认清自己的兴趣和优势,专注于自己擅长和喜欢的事情。同时,我们应认识到,不可能掌握所有知识和技能,需要学会接受自己的局限性,并从中找到满足感。
2017-05-12 11:00:00
本文介绍了如何使用SQL在Sendy邮件列表中删除超过一定天数未确认的订阅者。作者指出,虽然Sendy是一个价格低廉的邮件营销工具,但为了保持列表整洁和节省空间,需要定期清理未确认的订阅者。文章详细说明了如何通过SQL命令删除这些订阅者,并强调了在执行此类操作前备份数据库的重要性。此外,作者还提到,除了删除未确认的订阅者外,还应定期清理长时间未与邮件互动的订阅者。
2017-05-11 21:00:00
Square公司自2013年Google I/O大会前推出了“开源七天”活动,随后在内部推广了Kotlin语言,并在Android应用、Gradle和IntelliJ插件中广泛应用。随着Kotlin的普及,公司发现开源库存在一些问题,将在接下来的几天通过博客文章和库发布进行修复。Square致力于Kotlin的发展,并承诺通过这些改进提升开发者体验。
2017-05-11 21:00:00
Serverless Framework开源社区活跃,拥有超过16000名GitHub星标开发者。本周,社区分享了多云架构、私有云与公有云部署对比、多供应商无服务器应用构建等话题。Heptio CEO Craig McLuckie在Heptio博客上探讨了多云架构和云提供商的视角,IBM的James Thomas在AWS Meetup上分享了构建多供应商无服务器应用的挑战,Roger Jin在The New Stack上介绍了使用React、ButterCMS和Netlify构建无服务器博客的教程,Webpack更新了其CLI以提升用户体验。
2017-05-11 11:47:05
软件项目在实现搜索功能时常常遇到困难。作者以Cardstack为例,提出将搜索作为应用的基础,而非附加功能。他认为,通过使用搜索引擎处理所有数据获取,并让搜索结果驱动UI,可以创建更灵活、整合数据的应用。这种搜索优先的应用模式有助于构建开放的卡片生态系统,允许用户将微应用组合成更强大的整体体验。
2017-05-11 09:30:00
CMake是一款用于构建C/C++项目的多功能工具,支持多种平台,如Windows、MacOS和Linux。它通过`CMakeLists.txt`脚本配置项目,并生成相应的构建管道。文章详细介绍了CMake的安装、配置和构建过程,包括源文件夹、二进制文件夹、缓存、配置步骤和生成步骤。此外,还介绍了从命令行、GUI和ccmake运行CMake的方法,以及如何使用CMake生成Unix Makefile、Visual Studio `.sln`文件、Xcode `.xcodeproj`文件和Qt Creator项目。最后,文章还提到了CMake的一些其他特性,如跨平台编译和生成`compile_commands.json`文件。
2017-05-11 02:00:00
本文介绍了如何使用Docker和Docker Compose快速搭建可复制的Node.js微服务开发环境。通过配置和运行微服务、利用卷挂载代码、在容器内运行单元和集成测试、进行功能测试和端到端测试、调试运行中的容器、实现服务间通信、使用JWT进行身份验证、在Docker容器中运行React以及配置Swagger等步骤,详细展示了如何构建一个包含用户、电影API、电影数据库、Swagger等服务的微服务架构。文章还提供了项目设置、数据库配置、API配置、测试设置和Swagger配置的具体步骤和示例代码。
2017-05-10 23:00:00
作者开发了一款名为pass-rotate的工具,旨在简化密码更新过程。该工具通过模拟登录和密码重置表单,与密码管理器集成,实现快速更换多个网站的密码。pass-rotate支持多种服务,包括GitHub、Linode、Twitter等,并可通过Patreon进行捐赠以支持其长期维护。作者还鼓励用户贡献代码,添加更多服务支持。
2017-05-10 21:00:00
GeoEditor for web是一款简单易用的在线应用程序,支持用户在网页浏览器中协作创建和编辑基本的地理数据,如绘制点、多边形和线条,并可在每个形状上记录额外信息或附加照片。该应用非常适合审查使用GeoEditor移动应用收集的现场数据,并能够帮助用户共享、保存数据,以及在GIS软件或网络应用程序中重复使用。主要功能包括:实时协作编辑地图上的要素、显示两个地图、自定义属性和附加照片、支持多种数据格式导入、与MapTiler Desktop集成、支持多种坐标系统和投影、使用OpenLayers JavaScript库等。此外,GeoEditor还提供了Google Drive应用版本,方便用户快速展示GeoJSON文件。
2017-05-10 21:00:00
Denisse Osorio de Large和Steven Large,作为Cerner公司的总监,业余时间致力于培养对技术充满热情的年轻一代,并引导他们探索软件开发的广阔世界。他们不仅参与STEM社区志愿服务、组织Cerner的DevCon会议和出席研讨会,还与西班牙语社区的孩子一起工作。去年,他们与女童子军合作,举办了针对西班牙语家庭的“Pastelitos y Programación”(编程与纸杯蛋糕)活动,旨在为女孩提供一个安全、包容的环境,让她们通过编程挑战和游戏学习解决问题。因其在培养STEM未来创新者方面的热情,Denisse和Steven获得了女童子军的创新者奖,以表彰他们为举办这些活动所做的贡献。
2017-05-10 21:00:00
Denisse Osorio de Large和Steven Large,作为Cerner公司的负责人,致力于通过STEM教育激发年轻一代对技术的兴趣。他们不仅作为志愿者参与社区STEM活动,还组织了面向西班牙语家庭的“Pastelitos y Programación”编码活动,旨在为女孩们提供一个安全、包容的环境,通过编程活动培养她们的领导力和解决问题的能力。他们的努力得到了“Girl Scouts”的认可,获得了创新奖,并促进了父母与女儿之间的沟通。
2017-05-10 21:00:00
网络上有许多资源试图吓唬程序员远离使用shell脚本,但它们往往只成功让读者在脚本开头盲目地加入类似“set -e”的命令。实际上,bash脚本中的“set -e”标志并非如表面看起来那么简单。一个生产环境中的bash脚本因内容错误而无声失败,揭示了该标志的微妙之处。该标志仅对“简单命令”有效,且不会传递给命令替换中的子shell(除非使用`--posix`)。因此,尽管`set -euo pipefail`等模式在脚本开头使用是好的实践,但它们不能提供虚假的安全感。在编写生产代码时,必须仔细考虑所有可能的失败情况,并确保适当处理。
2017-05-10 21:00:00
Serverless Meetup近期讨论了如何克服云服务提供商的锁定问题,实现Serverless项目的可移植性和自由度。Serverless, Inc.的产品经理Brian Neisler分享了多提供商支持Serverless函数的主要挑战以及Serverless Framework团队如何解决这些问题。他提出了“提供商无关函数”的概念,即编写可以在任何提供商中运行的函数。此外,他还讨论了接口、事件、运行时、SDK等问题,并提出了部分解决方案。Brian强调,Serverless旨在为开发者提供最低的总拥有成本,并允许他们自由选择代码运行的位置。
2017-05-10 11:00:00
本文介绍了如何在Node.js API中实现基于时间的一次性密码(TOTP)的二次验证(2FA)。通过JWT进行用户认证,并在用户账户启用2FA时,使用共享密钥生成TOTP进行二次验证。文章详细说明了如何修改现有API以支持2FA,包括安装必要的库、修改认证逻辑以及验证TOTP。通过这种方式,用户需要先通过用户名和密码认证,然后使用时间戳密码进行二次验证,从而提高账户安全性。
2017-05-10 08:50:46
本文讲述了作者在大学学习计算机科学过程中对API(应用程序编程接口)的认识和领悟。作者从最初对API的困惑,到通过学习编程、参与项目、研究分布式系统等经历,逐渐理解了API的概念和重要性。文章强调了API在编程学习中的重要性,指出通过具体实例学习API,可以帮助学生更好地理解编程和系统间的互操作性。作者还分享了自己如何将API应用于教学实践,以帮助学生更好地学习编程。
2017-05-09 21:00:00
在Node.js中,处理文件路径时,有几种不同的方法。首先,使用`path`模块可以创建跨操作系统的路径,无需手动检测操作系统。其次,相对路径默认相对于进程运行的目录,而文件相对路径则相对于访问文件的模块。最后,绝对路径可以通过`path.resolve`函数从相对路径转换得到。这些方法帮助开发者更灵活地管理文件路径,确保代码在不同环境下都能正确运行。
2017-05-09 21:00:00
GeoEditor移动应用现已可在App Store和Google Play下载。这款免费应用支持离线使用,可绘制点、多边形和线条,并导入多种地图格式。它提供OpenStreetMap和Google地图作为底图,支持GeoJSON和MBTiles数据格式,并具备GPS定位和透明度调整功能。此外,用户可离线收集数据,并可根据需求定制应用。
2017-05-09 21:00:00
在软件开发中,过度依赖调试器会阻碍开发者阅读代码和编写可靠软件的能力。作者主张,日志的目的是为了调试错误,应将日志与错误处理紧密结合。他提出,处理错误意味着记录错误、恢复应用完整性和停止错误报告。作者建议使用Dave Cheney的errors包来记录错误上下文,并强调处理错误时,应避免将错误传递回调用栈。此外,作者还强调了日志和错误处理的关联性,以及如何通过日志来辅助调试。
2017-05-09 21:00:00
Serverless Framework发布了v1.13版本,新增了异步变量支持、跨服务通信功能、Lambda函数标签、可扩展的`info`插件和`hello-world`入门模板。这些更新旨在提升框架的灵活性和易用性,同时增强了社区参与和反馈机制。新版本还包含一系列的bug修复和功能增强,鼓励用户参与贡献和提供反馈。
2017-05-09 15:47:22
本文是关于如何使用Ionic 2框架创建一个渐进式网络应用(PWA)的教程。文章首先概述了PWA的基本要求,如外观、加载速度、离线支持等。接着,介绍了Ionic框架,它基于Angular,旨在构建混合移动应用,但同样适用于PWA开发。文章详细说明了如何使用Ionic CLI工具创建项目、添加页面,并介绍了如何构建生产包。此外,还讨论了应用清单(manifest)的作用,它允许开发者控制应用在设备上的显示方式,如添加到主屏幕、全屏模式等。最后,文章简要介绍了如何设置启动画面和与Google Cloud Messaging相关的设置。
2017-05-09 09:19:00
该文章介绍了如何找到小于1000的整数d,使得1/d的小数部分包含最长的循环周期。文章首先通过实例说明了循环小数的概念,然后提供了一个Clojure函数`unit-fraction`来计算给定分母d的循环周期长度。该函数通过循环和余数计算来追踪小数部分的重复模式。最后,文章展示了如何使用这个函数来找出所有小于1000的整数中,哪个分母产生的循环周期最长。
2017-05-09 04:14:00
本文探讨了Java平台模块系统(JPMS)中的自动模块。JPMS是Java SE 9中的模块系统,旨在解决现有Java代码的迁移问题。自动模块允许将普通jar文件放在模块路径上,但它们缺少模块元数据,如模块名称、导出包列表和依赖列表。文章指出,自动模块的设计可能导致“模块地狱”,即当依赖项的名称发生变化时,模块之间的依赖关系将变得复杂。作者建议,为了避免这个问题,开源社区应避免发布依赖于文件名的模块jar文件,并等待所有依赖项都转换为模块名称。此外,文章还提出了一种通过在MANIFEST.MF中添加“Automatic-Module-Name”条目来缓解问题的方法。
2017-05-09 01:40:15
Rails 5.1引入了新特性`delegate_missing_to`,允许将一个对象中不存在的方法委托给另一个对象。这一特性最初看似多余,但实则用于实现装饰器模式,以在不创建新子类的情况下扩展对象行为。装饰器模式有助于分离行为,使每个类专注于特定情境下的对象使用,并遵循单一职责原则。通过使用装饰器,可以灵活地组合行为,同时避免代码复杂化。
2017-05-08 21:00:00
React组件的构建更倾向于组合而非继承。文章介绍了多种组合组件的方法,包括:包裹子组件、特殊子组件、通过属性传递值或组件、方法覆盖以及高阶组件。这些方法使得组件间的复用和扩展变得更加灵活和高效。通过这些组合方式,开发者可以构建出功能丰富且易于维护的React应用。
2017-05-08 21:00:00
在软件开发中,理解应用状态对于团队协作至关重要。文章以汽车为例,阐述了如何通过创建“距离”这样的值对象来抽象业务特定对象,从而降低认知负荷。通过将距离的约束显式化,代码变得更加健壮和易于理解。这种方法不仅有助于管理隐含约束,还能将相关概念聚合在一起,如货币金额和货币类型,防止操作错误。文章强调了值对象在提高代码可读性和安全性方面的价值,并鼓励读者进一步学习相关内容。
2017-05-08 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2017-05-08 21:00:00
即将举行一场技术聚会,主题围绕工程和项目规划,特别邀请到“IT Girls团队”分享在塞尔维亚推动女性科技职业发展的进展。活动将于5月16日在贝尔格莱德的Impact Hub举行。聚会将包括三场演讲:Miloš Pavlićević将介绍如何将Docker融入部署流程,Sarah Mogin将讲解JavaScript单元测试的价值和工具,Zeh Fernando将介绍React Native。更多信息及报名请访问meetup.com。
2017-05-08 11:00:00
Go语言通过goroutines和channels机制,以简洁高效的方式实现并发处理。文章以一个示例程序说明,通过main goroutine启动多个worker goroutines,并通过channel共享数据。每个worker从channel读取数据,处理完毕后关闭channel,程序结束。Go语言的并发处理避免了回调和锁的复杂性,能够快速创建大量goroutines,提高应用性能。
2017-05-08 06:45:00
本文深入探讨了程序中的作用域概念,解释了作用域如何通过符号表在代码中实现,并介绍了嵌套作用域和作用域链。文章详细介绍了如何解析过程声明和形式参数,以及如何在嵌套作用域中进行语义检查。此外,还介绍了如何构建作用域树,并实现了一个源到源编译器,以帮助理解作用域和名称解析。总结来说,本文通过实例和代码示例,全面阐述了作用域在程序设计中的重要性及其实现细节。
2017-05-07 21:00:00
软件工程与编码是两个截然不同的概念。Entelect公司提出了一套名为“Entelect方式”的指导原则,旨在帮助软件工程师在日常工作中做出更好的决策。这些原则涵盖了敏捷规划、软件工程质量、个人成长、团队协作、人际关系、增值活动和一流的服务交付等方面。通过参与工作坊,作者团队认识到,关注客户需求背后的“为什么”,不断沟通以理解客户意图,对自己的工作负责,利用截止日期和冲刺节奏等策略,可以提升工作效率和价值。这些原则不仅关注编码,更强调软件工程师在多个领域的专业成长,从而为客户提供真正的价值。
2017-05-07 21:00:00
设定生活和工作中的界限,能让我们获得更多生产力。界限并非束缚,而是引导我们走向理想目标的轨道。例如,合理规划工作时间,如不午前查看邮件,避免即时回复,有助于保持专注和创造力。同时,明确工作目标,如采用“三件事原则”,有助于我们更有方向地工作,避免无效忙碌。通过这些方法,我们能够更高效地实现个人目标。
2017-05-07 21:00:00
本文介绍了代码简洁性的概念,强调其在构建应用程序中的重要性。作者首先解释了应用程序的“状态”和“操作”,指出简洁的代码有助于更好地理解应用状态及其演变。接着,作者阐述了代码简洁性在应对应用增长、需求变化、团队变动等挑战中的价值,强调其降低长期成本的优势。最后,作者预告了后续文章将探讨如何提升代码简洁性的具体案例。
2017-05-07 21:00:00
本文介绍了如何利用SSH证书实现基于Kubernetes标签的角色访问控制,以实现用户对特定数据或工作负载的访问权限。通过配置Kubernetes用户使用标签而非主机名或IP地址SSH登录服务器,并基于标签和用户身份限制SSH权限,实现了动态的访问控制。文章以一个管理Kubernetes应用的案例说明,如何根据用户角色和Kubernetes标签来控制SSH访问权限,确保了安全性和灵活性。
2017-05-07 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2017-05-07 21:00:00
数组与公共语言运行时(CLR)之间存在着非常特殊的关系。数组是CLR的基础组成部分,被包含在ECMA规范中,并支持多种与数组相关的中间语言指令。这种关系确保了内存和类型安全,防止了低级语言中常见的内存安全问题。数组在CLR中的实现涉及一些复杂的技巧,如使用特殊助手类`SZArrayHelper`来支持泛型编程。此外,JIT编译器会优化数组操作,例如通过移除不必要的边界检查来提高性能。由于数组与CLR的紧密集成,它们在运行时被视为特殊案例,并在多个方面得到特殊处理。