2020-03-07 00:00:00
致鲍勃·凯西参议员,作为一名软件技术专家和您的选民,我因您支持EARN IT法案而感到失望。该法案试图禁止端到端加密,但这一技术已被证明无法破解,且对公民自由有严重后果。端到端加密对于维护国家安全至关重要,它不仅保护儿童免受伤害,也保障了记者、活动家和国家安全。禁止这一技术无助于解决问题,反而可能损害我们的基本权利。我呼吁您重新考虑您的立场,捍卫我们的隐私权和言论自由。
2020-03-07 00:00:00
致鲍勃·凯西参议员,作为一名软件技术专家和您的选民,我因您支持EARN IT法案而感到失望。该法案试图禁止端到端加密,但这一技术已被证明无法破解,且对公民自由有严重后果。端到端加密对于维护国家安全至关重要,它不仅保护儿童免受伤害,也保障了记者、活动家和国家安全。禁止这一技术无助于解决问题,反而可能损害我们的基本权利。我呼吁您重新考虑您的立场,捍卫我们的隐私权和言论自由。
2020-03-06 21:00:00
本文探讨了在Python和Rails中使用REPL(交互式控制台)的异同。作者指出,Python和Rails都提供了直接在控制台中工作的方式,但Rails的“reload!”命令可以自动重新加载整个环境,而Python则需要手动重新加载模块。作者还介绍了如何通过配置iPython来改善Python的自动重新加载功能。
2020-03-06 09:17:35
点对点加密(P2PE)是一种由支付卡行业安全标准委员会建立的加密标准,旨在保护顾客的支付信息。它要求在顾客使用POS终端后立即对卡信息进行加密,直到由支付处理器处理时才解密。PCI认证的P2PE解决方案需要通过PCI的严格审核,包括在POI/支付终端加密卡信息、安全地管理加密和解密设备等。P2PE与端到端加密(E2EE)不同,因为它直接传输数据,没有其他系统介入,且P2PE符合PCI标准。使用P2PE解决方案,企业可以免除PCI DSS合规的责任,从而避免数据泄露带来的声誉和财务损失。
2020-03-06 02:39:32
本文介绍了如何使用GraphQL构建一个餐厅菜单应用。作者首先介绍了GraphQL的基本概念,包括查询(Query)和突变(Mutation),并通过Node.js和Elixir两种不同的后端技术实现。文章详细讲解了如何设置项目、定义类型定义(TypeDefs)和解析器(Resolvers),以及如何使用Apollo Server和Sequelize进行数据库操作。作者通过一系列的示例代码,展示了如何添加、查看和删除菜单项,并连接React前端应用。文章旨在帮助读者深入理解GraphQL的原理和应用。
2020-03-05 21:00:00
本文探讨了多语言编程中代码基准测试的方法。作者以Ruby和Python为例,展示了如何使用Ruby的Benchmark模块和Python的contextmanager进行代码性能测试。通过对比两种语言的方法,作者强调了Python中contextmanager的实用性和简洁性,并推荐使用。文章还通过实际代码示例展示了如何将性能测试集成到生产代码中,以减少复杂性并提高代码质量。
2020-03-05 21:00:00
本文介绍了如何使用Serverless Framework Pro的CI/CD解决方案在单个monorepo中部署多个无服务器服务。文章首先强调了服务应存储在单独的子目录中,并提供了设置示例。接着,详细说明了部署步骤,包括登录Serverless账户、创建应用、部署服务到AWS,以及如何连接GitHub或BitBucket进行自动化部署。此外,还介绍了如何配置选择性部署和依赖部署,以提高CI/CD流程的效率。最后,鼓励读者在Slack渠道或论坛上提供反馈或提问。
2020-03-05 02:00:00
Ken Collins,Custom Ink的资深工程师,因其在AWS领域的卓越贡献,于2020年2月荣获AWS英雄称号。他对Ruby、Rails和服务器端无服务开发充满热情,通过不断学习和分享,帮助Custom Ink在定制产品领域取得显著成就。Ken致力于Rails和开源项目,特别是使用Lamby进行AWS Lambda开发。他对云技术充满热情,认为无服务器技术将带来新的范式转变,使更多开发者能够轻松访问和应用基础设施。Ken以其友好的性格和乐于助人的精神,在团队中备受尊敬。
2020-03-04 22:40:51
Node.js 13.10.1版本修复了从源代码构建过程中的问题,包括zlib库的tarball生成问题,并简化了crypto模块的exportKeyingMaterial函数。此外,还进行了多个性能和文档改进,并提供了多种平台的安装包和源代码下载链接。
2020-03-04 21:00:00
这份文档包含了一份成功处理的文档元数据,显示文档包含1页。文档中包含多个区块,包括页面、行等,每个区块都有其独特的ID和几何形状。其中,一行文本“Austin Johnson”及其联系信息(电话和电子邮件)被识别并标注在页面上,这些信息具有较高的置信度。文档处理过程顺利,所有区块都被正确识别和关联。
2020-03-04 21:00:00
随着技术的发展,从命令行界面(CLI)到图形用户界面(GUI)的转变,再到如今搜索功能的兴起,用户界面(UI)经历了多次变革。Don Norman 在 2008 年就预测,CLI 将以搜索的形式回归。尽管 GUI 在易用性方面取得了巨大进步,但它们在处理复杂系统时仍显不足。CLI 的回归,如 Repl.it 的 CLUI(命令行用户界面),结合了 CLI 的简洁性和 GUI 的易用性,通过搜索、自动完成和交互式媒体,为用户提供了一种更高效、更可扩展的交互方式。这种混合模式不仅适用于编程环境,还可能成为未来 UI 设计的趋势。
2020-03-04 14:55:34
Node.js版本13.10.0更新中,主要引入了async-context API,支持将生成器函数传递到pipeline(),并暴露了SSL_export_keying_material。此外,还进行了多项改进,包括优化build过程、更新crypto模块、改进文档和测试等。更新包含了对不同操作系统的支持,包括Windows、macOS、Linux等,并提供源代码和安装包下载链接。
2020-03-04 14:14:04
本教程以太空主题为背景,旨在帮助初学者掌握Git的基本操作。通过创建Git仓库、克隆和添加文件、从远程仓库拉取更改以及使用分支合并文件等步骤,教程详细介绍了Git的克隆、添加、提交、推送和拉取等基本工作流程。教程还强调了Git在团队协作中的重要性,并解释了分支在独立开发和新功能测试中的应用。通过学习这些操作,用户可以更好地管理代码,提高团队协作效率。
2020-03-04 09:06:06
在SaaS行业中,收入确认是一个复杂的问题,因为它涉及到服务而非单一产品的交付。根据国际财务报告准则(IFRS) 15和美国会计准则委员会(ASC) 606,收入确认需在服务或产品交付后进行,以确保财务报告的一致性。这些新标准为SaaS公司提供了更明确的框架,包括识别客户合同、确定履约义务、确定交易价格、分配交易价格以及确认收入等步骤。遵循这些标准有助于确保财务记录的准确性,吸引投资者,并防止会计欺诈。
2020-03-03 21:00:00
在Rails框架中,助手(helpers)是用于在视图中执行Ruby代码的工具,它们存储在`app/helpers/*.rb`文件中。本文以`display_labeled_data`助手函数为例,展示了如何将数据库中的对象数据转换为HTML结构,并在显示时仅显示非空数据。该助手函数通过创建输出对象、循环数据结构、格式化数据并添加HTML标签,将数据转换为所需的HTML格式。此外,文章还提醒读者,助手函数和Rake任务一样,具有全局命名空间,因此应避免在不同文件中定义同名方法,以免产生冲突。
2020-03-03 21:00:00
CloudPush技术解决了在云存储平台如Amazon S3、Google Cloud Platform、Microsoft Azure等上传地图内容时速度慢和操作复杂的问题。它通过并行连接最大化速度,简化了上传过程,用户只需输入凭证和指定目标即可上传地图。支持MBTiles格式,适用于Google Cloud Platform、Amazon S3、Microsoft Azure和MapTiler Cloud。此外,MapTiler Engine的命令行工具也能实现高速数据传输,内部测试中平均速度可达4000瓦片/秒。
2020-03-03 21:00:00
Gravity 7.0版本发布,为开发者提供将多个Kubernetes应用打包成易于分发集群镜像的工具。新版本支持将集群镜像部署到现有Kubernetes集群,并增强了安全性和合规性,如支持SELinux和与SSH Gateway的集成。此外,Gravity 7.0还增加了对OpenEBS的支持和集群状态时间线视图,方便用户管理和调试。
2020-03-03 21:00:00
在HTML中,使用`justify-items`属性可以控制网格项在其网格区域内的对齐方式。例如,将所有盘子水平居中对齐到其网格区域,第一行盘子靠近顶部,第二行盘子靠近底部。通过设置`.table`类的`display`属性为`grid`,并定义`grid-template-columns`和`grid-template-rows`来创建网格布局,再使用`justify-items: center;`实现居中对齐。`justify-items`的可用值包括`auto`、`normal`、`start`、`end`、`center`、`stretch`、`baseline`、`first baseline`和`last baseline`,用于不同对齐需求。
2020-03-03 15:48:16
在微服务架构中,容错设计至关重要,它允许系统在部分失败时继续运行。Hystrix曾是一个流行的容错库,但现已进入维护模式。文章对比了Hystrix、Sentinel和Resilience4j三个库,分析了它们的Circuit Breaker模式实现、配置方式以及功能特点。Resilience4j以其灵活的配置、更少的代码量和强大的功能(如组合装饰器)脱颖而出。与Sentinel相比,Resilience4j在控制粒度和与其他监控系统集成方面更具优势。
2020-03-03 14:56:22
支付处理是商业运营中不可或缺的一环,它涉及将客户的信用卡信息从银行和商户之间进行安全传输。支付处理器作为中介,负责处理交易信息,确保资金安全到账。了解支付处理器、支付网关和商户账户的不同角色对于成功管理支付流程至关重要。选择合适的支付处理器时,应考虑其与现有软件的兼容性、PCI合规性和欺诈预防措施。GoCardless等第三方支付解决方案可简化支付流程,提高效率。
2020-03-03 14:31:16
开设商户账户对于小企业主来说至关重要,因为它允许企业接受信用卡和借记卡支付,从而吸引更多顾客。商户账户将交易资金暂时存储,然后自动转入企业银行账户。选择合适的商户账户提供商时,需考虑费用、服务和合同条款。开设商户账户后,企业可通过卡读卡器或在线方式接受支付,资金在结算周期后转入企业银行账户。对于有国际业务需求的企业,开设国际商户账户可接受全球客户的支付,助力业务拓展。
2020-03-03 07:13:50
客户获取成本(CAC)是衡量企业销售和营销费用以吸引新客户的重要指标。它包括广告支出、生产成本、库存维护、薪资、佣金、技术成本、管理费用、创意成本和奖金等。通过计算CAC,企业可以了解其销售和营销策略的效率,并确定客户的盈利能力。计算公式为:CAC = 销售和营销总成本 / 获客数量。与客户保留成本相比,获取新客户的成本可能更高,因此,企业应更注重保持现有客户。通过结合客户终身价值(LTV)与CAC,企业可以评估客户获取过程的盈利性。优化定价策略和营销渠道,降低CAC,有助于提高企业盈利能力。
2020-03-03 05:00:00
在女性历史月的背景下,NextRoll启动了为期一个月的“科技女性聚焦”活动,旨在展示公司中杰出的女性科技人才。本周,采访了数据科学家Iva Ivanova。她分享了在数据分析团队的工作经历,对科技行业的热爱,以及如何通过不断学习和解决问题来推动自己的职业发展。她强调,尽管科技行业女性仍占少数,但通过导师和倡导者的支持,女性可以克服挑战,实现职业目标。她鼓励女性保持成长心态,不断努力,并感谢那些愿意提供指导和帮助的盟友。
2020-03-03 00:00:00
太阳的太阳风在向外扩展的过程中,形成了一个被称为“日球层”的区域,其边界是“终止冲击”,之后是“日球鞘”,一个充满粒子混合的动荡区域,最终到达“日球顶点”,标志着太阳系与星际介质的交界。在软件领域,C语言作为基础编程语言,其API与其它语言接口时,存在一个类似“abiopause”的边界,这个边界充满了复杂性和挑战,需要通过特定的工具和技巧来跨越。这种边界问题让程序员在使用C语言API时感到不便,同时也反映了不同语言之间接口的复杂性和挑战。
2020-03-02 21:00:00
本文介绍了如何通过修改Git配置文件(~/.gitconfig)来使用非标准命令git trash。作者通过自定义别名(alias)功能,将git trash映射为checkout -f命令,从而实现删除文件的功能。此外,文章还提到了excludesfile设置,用于告诉Git忽略特定文件,如Mac系统生成的.DS_Store文件。这些配置有助于提高Git的使用效率和用户体验。
2020-03-02 21:00:00
作者曾讨论过有争议的话题,但现在大多不再关心。然而,有时看到有人对事物理解错误,会感到有必要回应。作者针对DHH的推文进行了回应,指出Facebook可能不再使用React Native于Messenger,但这并不意味着React Native被淘汰。React Native允许开发者使用单一代码库跨平台开发,减少员工数量,使用JavaScript而非原生语言,并使应用更通用。作者认为,Facebook可能基于经济决策和用户体验考虑,选择不使用React Native,但这并不影响React Native在市场上的地位。跨平台开发技术如React Native和Flutter,对于大多数没有Facebook那样经济实力的公司来说,仍有其存在的价值。
2020-03-02 21:00:00
本文讲述了使用Phoenix Live View开发Elixir Web控制台的过程。最初,该控制台使用一个单一的Live View组件实现,但随着功能的增加,代码变得复杂难以维护。作者探讨了三种将Live View模块拆分的方法,最终选择了使用`live_component/3`创建独立的组件模块。通过将用户界面拆分为多个组件,如历史组件、命令输入组件和侧边栏组件,代码变得更加清晰和易于管理。这种拆分不仅提高了代码的可读性,还使得添加新功能更加容易。作者分享了他们的经验,并鼓励其他开发者借鉴他们的方法来提高Live View应用的质量。
2020-03-02 21:00:00
SoundCloud在工程领域广泛采用构建和提供数据集的文化,以支持数据分析。文章详细介绍了如何通过“更好的数据所有权模式”来管理数据集,包括如何消费数据、数据提供者、构建数据集的考虑因素等。文章还探讨了SoundCloud在数据管理方面的经验,包括从事件和数据库快照构建数据集的方法,以及如何验证和发布数据集。通过这种方式,SoundCloud确保了数据集的质量、一致性和及时性,同时降低了数据管理的复杂性。
2020-03-02 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2020-03-02 21:00:00
本文探讨了Unix哲学中的“一事一做,做好”原则,以及这一原则在现代命令行工具中的演变。文章指出,随着时间推移,命令行工具的选项数量显著增加,导致复杂性上升。作者认为,这种复杂性部分源于Unix哲学中“处理文本流”的理念,以及人们为了方便而添加的额外选项。尽管如此,作者认为,命令行选项的增多并不一定是一件坏事,因为它为用户提供了更多的选择和灵活性。文章还讨论了Unix哲学在当今世界中的适用性,以及它如何导致了工具和接口设计上的不一致性。
2020-03-02 21:00:00
本文通过使用PerfView工具,详细介绍了如何分析.NET运行时在启动过程中所花费的时间。作者以一个简单的“Hello World”程序为例,展示了如何收集和分析数据,并通过Flamegraph图表直观地展示了.NET运行时启动过程中的时间分布。分析结果显示,启动过程中,30%的时间用于启动运行时,22%用于初始化运行时,20%用于JIT编译和执行主方法。
2020-03-02 14:30:08
现金流预测是一种简单文档或电子表格,用于估算企业在特定时间段内资金的流入和流出,通常为期12个月。它包括预测的收入和支出,并提供了对未来现金流一目了然的评估。这有助于企业规划重大决策。现金流预测的优势在于提供对未来可能状态的洞察,帮助决策者根据预测结果调整策略,如投资、成本削减或销售驱动。然而,预测并非绝对准确,受外部经济因素影响。要制作现金流预测,需考虑估计销售、支付时间和费用/成本。GoCardless等工具可帮助改善支付时间,自动化财务行政,从而提高现金流稳定性和效率。
2020-03-02 11:00:00
近期,作者在开发过程中遇到了一个奇怪的问题:React组件在开发环境中一切正常,但在生产环境中却渲染到了错误的位置。经过调查,发现这是由于对React在服务器端渲染(SSR)环境下的工作原理存在误解。文章深入探讨了SSR和静态站点生成(SSG)的工作方式,解释了为什么在SSG中,HTML文件在编译时生成,导致用户在等待JavaScript加载和执行时看到的状态与实际不符。作者通过一个示例代码,说明了如何通过在组件挂载后进行二次渲染来解决这个问题,并提出了一个名为`<ClientOnly>`的组件来简化这一过程。文章强调了理解React工作原理的重要性,并鼓励开发者通过实验和构建自己的直觉来提高开发效率。
2020-03-02 09:19:00
2020年2月29日,即闰日,出现了一系列软件问题。这些问题包括电路断路器配置不当、空间站操作系统更新困难、递归查询的挑战等。文章还介绍了多个开源项目和工具,如Go语言的blurhash实现、现代2D游戏引擎hex-engine、开源Web编辑器edtr等。此外,还提到了一些性能测试和优化工具,如GitLab性能测试工具、AutoSpotting等。
2020-03-01 21:00:00
本文作者在周一早晨开始学习Rust语言,通过Rust Playground(一个基于网页的Rust代码运行环境)进行实践。作者首先介绍了Rust的基本语法,如定义函数、打印语句和变量。通过修改“Hello, world!”程序,作者展示了如何使用变量和字符串插值。文章还提到了Rust的不可变性和Repl.it等在线编程平台,并指出Repl.it的隐私问题需要付费解决。
2020-03-01 21:00:00
2020年2月,"Writing an OS in Rust"博客及其相关库和工具进行了更新。主要更新包括:x86_64 crate支持x86_64架构的CPU指令、寄存器和数据结构;bootloader crate修复了两个小错误并添加了一个新功能;cargo-xbuild crate支持交叉编译libcore和liballoc;uart_16550 crate提供了对uart_16550串行输出的基本支持;multiboot2-elf64 crate提供了对multiboot 2标准的抽象,用于读取由GRUB等引导加载程序实现的引导信息。感谢所有贡献者,并感谢在GitHub、Patreon和Donorbox上支持作者的人。
2020-03-01 21:00:00
Go语言因其高效和易用性,在构建HTTP服务器方面表现出色。Go标准库中的`net/http`包使得将HTTP处理器附加到任何Go程序变得简单,同时还有测试HTTP服务器的工具。文章通过一个简单的比萨饼餐厅API示例,展示了如何使用Go的`net/http/httptest`包进行HTTP服务器的单元测试。通过模拟HTTP请求和记录响应,可以有效地测试HTTP处理器,确保服务器按预期工作。文章强调了测试的重要性,并提供了测试`pizzasHandler`和`ordersHandler`的具体示例,展示了如何使用`httptest.NewRequest`和`httptest.ResponseRecorder`进行测试。
2020-03-01 21:00:00
trivago的“Recent Searches”项目采用了Go语言开发,原因包括:Go的并发处理能力强,内置的race detector能及时发现数据竞争问题;Go编译出的二进制文件是静态链接的,无需依赖解释器或虚拟机,便于在Kubernetes上部署和扩展;Go的代码格式化工具go fmt能减少团队在编码风格上的争议,提高开发效率。Go的简洁性和强大的工具支持使得trivago能够快速扩展服务,并提高软件工程效率。
2020-03-01 21:00:00
为了获得更好的浏览体验,请确保您的浏览器已启用JavaScript。若需要帮助启用,请点击链接获取指导。
2020-03-01 20:00:00
《mmuniq:当布隆过滤器不再绽放》一文发表于Cloudflare博客,探讨了布隆过滤器在处理大数据时的局限性。文章指出,布隆过滤器在数据量巨大时,误报率会显著增加,导致其性能下降。文章通过实际案例和数据分析,阐述了在特定场景下,如何优化布隆过滤器的使用,以提高其准确性和效率。
2020-03-01 17:34:00
在考虑对代码库应用补丁时,我们需评估其是否可接受。这涉及检查补丁是否会破坏重要功能、违反代码库的关键属性或造成不可接受的风险。测试套件是评估补丁接受性的工具,它通过运行测试来预测补丁的接受性。测试套件可能存在两种错误:误报和漏报。误报会导致开发过程减慢,而漏报可能导致产品中出现错误。因此,减少误报是提高测试套件价值的关键。评估测试时,应考虑其能捕捉到的真实失败和可能产生的误报,以平衡测试的价值。通过测量测试失败被修复的频率,可以评估测试套件的性能。