![个人头像照片](https://ucc.alicdn.com/avatar/70eef217b2e542c49605a39f9cb3e814.jpg)
暂无个人介绍
从我21年的编程中学到的经验教训。 2022年1月18日。今天对我来说是美好的一天。 我终于完成了21年编程。 ew! 好像昨天和今天在这里一样,我的内心写着一个40岁的中年程序员,他成功地度过了软件行业这个危险世界的正弦波峰和波谷。 是的,至少对我来说,这是决定性的时刻。 话虽如此,犯错是实现卓越的学习途径的一部分。 快速且经常失败是成功的标志。 为了避免多次犯同样的错误,应该放在优先列表上。 是的,个人经验是最有效的学习方法,但是通过他人的经验获得的知识是一种更快,更聪明的方法,可以减轻痛苦。 毕竟,生命是短暂的。 您不可能一生中犯下所有可能的错误。 软件
如果您是软件架构师(或什至是解决方案或企业架构师),您会每天遇到一个需要解决的重要问题。选择和决定要在项目中使用哪些技术;无论是在您的公司环境,启动,个人项目还是其他方面。 在这篇文章中,我将探讨架构师在选择技术时应考虑和研究的几个关键方面。这绝不是建筑师需要考虑的要点的详尽列表。在这方面还有许多其他因素需要考虑。但是,我讨论的观点最突出。同样,这些事实并不是新事物,而是一些我们可能认为不够充分的已知事实。我非常高兴学习架构师在选择技术时必须而且必须考虑的其他重要方面。 如今,该技术正在快速变化,您可能不时听到新兴的JavaScript框架。在过去的十年中,该行业带来了新的趋势
微信小程序刚出没多久时,曾经上手写过demo,但开发体验比较差,所以一直没怎么关注。不过自从诸多适配方案出炉,以及云端的开通,觉得还是有必要上手体验一番的。 原生开发我是不想再试了,那就选一种适配方案,目前比较知名的有基于vue的 mpvue,umi-app,基于react 的 taro,以及TX团体出的全新框架 wepy。个人对 react 的好感 以及 taro 框架的走向成熟,促使我选择了 taro。 云端开发就是将普通小程序的传统后端切换为微信提供的轻量级云端。而这个云端服务部分的开发其实是针对前端开发的,前端工程师很容易就能全栈开发出一整个小程序。但是这种轻量级解决方
Hello world程序输入和raw_input()内建函数注释运算符赋值运算符比较运算符逻辑运算符位运算成员运算符身份运算符变量和赋值数字字符串列表(List)和元组(Tuple)字典(dictionary)代码块及缩进对齐if语句while循环for循环与内建函数ange()列表推导式文件和内建函数open()、file()错误与异常函数类模块部分内建函数 Hello world 由于Python的简洁优雅,它输出Hello world只需要敲打出如下代码: print('Hello world!') # 或如下 myString="Hello worl
2021,有过迷茫,有过努力,也有很多收获。为了记录这一年以来的感受,于是有了这篇文章。 前期准备 当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 所以小编准备了一份零基础入门Python的学习资料。关注,转发,私信“007”即可领取! 也是在去年十一月份左右,看着身边两年制的同学经历了长时间而又艰难的秋招,我开始意识到自己应该提前准备了,否则自己的秋招会很惨。 本科的时候,虽然学过计算机网络、操作系统和数据结构等课程,而且 Leetcode 也刷了一两百题,但是离招聘要求还差的很远,学的都很浅只够应付考试,也没有实际的项目经验。
前言 本次和大家分享一下,我的前同事的复习大纲到底是怎么样的!又是如何凭一己之力拿下京东、天猫的offer,别走开,且听我慢慢道来! 一、基础篇 1.1 Java基础 面向对象的特征:继承、封装和多态final, finally, finalize 的区别Exception、Error、运行时异常与一般异常有何异同请写出5种常见到的runtime exceptionint 和 Integer 有什么区别,Integer的值缓存范围包装类,装箱和拆箱String、StringBuilder、StringBuffer重载和重写的区别抽象类和接口有什么区别说说反射的用途及
实战:分布式令牌桶限流 本节介绍的分布式令牌桶限流通过Lua+Java结合完成,首先在Lua脚本中完成限流的计算,然后在Java代码中进行组织和调用。 分布式令牌桶限流Lua脚本 分布式令牌桶限流Lua脚本的核心逻辑和Java令牌桶的执行逻辑类似,只是限流计算相关的统计和时间数据存放于Redis中。 这里将限流的脚本命名为rate_limiter.lua,该脚本既使用Redis存储令牌桶信息,自身又执行于Redis中,所以笔者将该脚本放置于base-redis基础模块中,它的代码如下: ---此脚本的环境:redis内部,不是运行在Nginx内部
随着人工智能、物联网、5G等前沿技术的迅猛发展,海量数据、超低延时等需求都对现有的云计算模式提出了挑战,一时间,边缘计算成为了技术领域炙手可热的话题。 边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台就近提供本地化服务,应用程序在边缘侧执行,在节省带宽的情况下产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。据权威市场调研公司预测,到2023年,全球边缘计算市场将从2022年的106亿美元增加到210亿美元,复合年增长率为14.2%。 正当联想、阿里等名企纷纷宣布布局边缘计算业务时,一家成立于2022年
二进制分析属于信息安全业界逆向工程中的一种技术,通过利用可执行的机器代码(二进制)来分析应用程序的控制结构和运行方式,它有助于信息安全从业人员更好地分析各种漏洞、病毒以及恶意软件,从而找到相应的解决方案。 要反编译Linux二进制文件,首先需要理解二进制格式本身。ELF目前已经成为UNIX和类UNIX操作系统的标准二进制格式。在Linux、BSD变体以及其他操作系统中,ELF格式可用于可执行文件、共享库、目标文件、coredump文件,甚至内核引导镜像文件。因此,对于那些想要更好地理解反编译、二进制攻破和程序执行的人来说,学习ELF至关重要。要想学习ELF这样的二进制格式,可不是一蹴
Docker为应用程序的打包和运行提供了一种优雅的方式。使用喜欢的Linux系统,几分钟之内就能将Docker安装好并作为服务运行起来。构建、运行、停止、启动、调查、修改或者用其他的方式操作容器非常容易,说实话,很棒。 Docker的简单易用使其成为当今最流行的开源项目之一。但是作为数据中心容器化核心的Docker却引起了极大的震动,其潜力无异于重新发明了个人和公司(或大或小)创建、测试、部署和管理其最关键应用程序的方式。 使用容器化技术也可以让应用程序向云环境的部署变得更为高效。就像容器本身一样,运行容器的操作系统也能够被瘦身。因为容器已经持有应用程序运行所需的大部分依赖,所
公司可以访问比以往任何时候更多的数据,但都在努力获得其全部收益。 工具不足和开发策略不完善使他们无法获得所需的改变游戏规则的结果。 为了帮助组织充分利用最新创新技术和最有影响力的数据见解,本文确定了2022年的前8大数据,分析和云趋势。 在数据仓库和分析领域,这是令人振奋的时刻。 越来越多的提供商在云中提供了每个级别的数据堆栈。 借助云分析,您的公司可以以可承受且可扩展的方式使用数据与大型企业竞争。 阅读本文可深入了解未来十年的最大趋势,以及可付诸实践的技巧,以使您的公司始终处于最前沿。 涵盖的趋势包括: · JSON和半结构化数据成为主流 · ELT超
今天我准备再写一篇软件需求人员能力提升方面的文章,也就是把这个问题进一步谈透。对于IT行业来说,前面谈到更多的是招聘软件开发或架构设计人员不容易,特别是架构人员也难以培养。而对于软件需求人员也是同样的道理。 软件需求不同于用户需求或原始需求,对于业务需求往往你无需任何的IT技术背景就能够提出你的需求和问题,而对于软件需求则涉及到业务需求分析,分解,形成完整的业务解决方案,复杂的还是涉及到业务建模,最终才形成软件需求。 因此软件需求人员实际是衔接业务用户和内部技术团队的关键桥梁,软件需求和业务建模做得好,技术实现本身也更加高效。同样,一个软件系统最终实现出来灵活,可复用,那么首先
今天给大家带来的是一个转行的故事,一个30岁才开始学习编程的小白,资质平平,真正的零基础。 他的故事和那些大众喜欢的、夸张的、甚至虚假的华丽转身不同,一点也不精彩、一点也不鸡汤,平淡如水,但是能反映出大多数人的真实情况。 故事开始。 地点:上海 我曾经失落、失望、失掉所有方向 码农这个词,是我决定要学习编程的时候,我才知道是指程序员这么一个存在的。因为我本科的专业是液压应用,在毕业后的至少四年时间里,我一直都在从事于对口的工作,我对编程一类的人或事的了解程度,大概不会超过美国人对汉语的了解程度。
数据对企业和组织非常重要-比我们意识到的还要重要。它可以影响公司的行动计划,并可以用来预测增长和成功。 什么是大数据? 大数据是从各种来源收集和分析信息。它有两种类型:结构化和非结构化。结构化数据包括SQL数据库,而非结构化数据包括文档文件和来自传感器的原始流数据。 业界从三个主要方面描述大数据: 数量:企业可以有多个数据来源。当今的技术使企业能够存储比以往更多的数据。速度:实际上,数据以惊人的速度-实时或尽可能接近实时。速度还描述了如何快速处理和分析数据。种类:除了进入系统的数据量和速度外,它还具有不同的格式。从商业销售记录到数据库信息,全都是大数据。 公司
莫希特·古普塔(Mohit Gupta) 8分钟阅读 自从我从事软件开发事业以来,我经历了各种设计原则和模式。但是,一个原则非常突出,以至于发明了许多新的应用程序开发方法,模式和结构来与之保持一致。这就是PoSR的“单一职责原则”。而且为什么不这样,它对代码的结构,可读性,可维护性,发布,团队负责以及端到端所有权产生了巨大影响。 我已经看到了各种形式和形状的实现。正如上面提到的文章中提到的那样,此原则是关于由一个代码单位承担一项责任。“代码单元”取决于用户是谁,因此,取决于“谁是客户”,应用程序,模块,程序包,类,功能都可以称为代码单元。无论单元是什么,方向都是使实现更具
在大会前夕,高可用架构采访了本届 GIAC容器及虚拟化分论坛 出品人王旭,就目大家广泛关注的容器和虚拟化方面的问题进行了访谈。 王旭 Hyper Cofounder 与 CTO,HyperContainer 项目的最初作者,kata containers 项目 Arch committee 初始成员。曾就职于中国移动研究院,是大云项目最初核心成员之一,并负责协调中国移动云计算方面的开源与标准化工作。之后在盛大云计算负责弹性块存储服务。2022 年创立 Hyper 虚拟化容器项目,2021 年与 Intel 和 OpenStack foundation一起发起 kata contain
在我于2021年初进行的最后一次采访周期中,我与一些初创公司进行了交谈。 我总是询问初创企业的部署流程,因为它可以帮助我了解公司所处的技术复杂程度。 一些企业可以在使用SCP部署的简单PHP Web应用程序上走得更远。 其他的则达到极限,必须使用诸如Redis或Kafka之类的基础结构组件在相互之间进行通信,将系统重做为几个服务。 当他们在我的履历表上看到Kubernetes时,面试官经常问起它。 Kubernetes的经历引起了很多兴趣,但也有人担心它是否适合特定的用例。 我在上一家公司如何使用它? 学习困难吗? 开发团队使用它的经验是什么? 有时,有一些关于实施不当的
函数式编程已经存在了六十年了,但是到目前为止,它并没有停止克服面向对象编程的普遍使用。 随着机器学习和大数据的爆炸性增长,由于可以并行化纯函数的简单性,函数式编程正变得越来越流行。 数据分析任务和工作流的代码也更易于遵循,测试和维护,使用功能范式有助于日后的使用。 甚至像Java和Python这样的面向对象的编程语言也从内置于地图,过滤器和简化功能的功能性编程中采用了巨大的概念。 它们还具有声明纯内联lambda函数以及创建一等和高阶函数以将函数作为参数传递的功能。 简而言之,函数式编程需要为固定变量构建纯函数并通过其响应更改状态。 相反,其他编程语言具有通过更改程序中变量引用
函数式编程已经存在了六十年了,但是到目前为止,它并没有停止克服面向对象编程的普遍使用。 随着机器学习和大数据的爆炸性增长,由于可以并行化纯函数的简单性,函数式编程正变得越来越流行。 数据分析任务和工作流的代码也更易于遵循,测试和维护,使用功能范式有助于日后的使用。 甚至像Java和Python这样的面向对象的编程语言也从内置于地图,过滤器和简化功能的功能性编程中采用了巨大的概念。 它们还具有声明纯内联lambda函数以及创建一等和高阶函数以将函数作为参数传递的功能。 简而言之,函数式编程需要为固定变量构建纯函数并通过其响应更改状态。 相反,其他编程语言具有通过更改程序中变量引用
它们是如何策略性地使用数据以保持竞争力的教科书示例 星巴克不仅在全球范围内出售大量冷热饮料,而且每周还从1亿笔交易中收集大量数据。 它如何使用这些数据? AI扮演什么角色?物联网(IoT)在其中发挥作用吗? 星巴克利用数据和现代技术获取竞争优势的方式对所有企业(无论规模大小)都具有指导意义。 例如,它是结合会员系统,支付卡和移动应用程序的先驱。 但这只是表面。 本文重点介绍了星巴克如何利用数据,人工智能和物联网来获得竞争优势的五个最有趣的示例。 他们认为可能存在一个令人信服的论点,即星巴克不再是咖啡业务,而是现在在食品和饮料领域的数据技术公司。 星巴克展示了数据,技
我本人并不是正统CS科班出身,在自学这条道路上,我和大家一样充满着艰辛。在学习Python后,我除了接触到了更多比我优秀的朋友之外,每天还能收到一些初学者给我留言,他们有一个共同点,都是 0 基础转行,每一次他们的问题,我都会尽我所能耐心细致给出我的解答。 最近有一位小伙伴,在微信上告诉我,他找到通过自学 Python 找到了一份爬虫的工作,心里五味杂陈。总算一年的付出没有白费。 这位朋友,在找工作的时候,我曾经给过他一些建议。 所以在找到工作后,也第一时间的跑来给我报喜。真的很替他开心。 在我的极力要求之下,他终于同意写下这段宝贵的转行经历,因为我告诉他,在这里,
在第1部分中,我们在现代数据堆栈的演变周围分享了一些背景。在这一部分中,我们采取了水晶球方法,以预测数据空间如何从这里发展。我们很高兴能够与突破性的初创公司一起工作,这将在数据堆栈的演变中发挥重要作用,以下几乎只是对此空间前方的内容的有限视图。 没有进一步的东西,让我们挖掘。 重新思考存储范式 数据的圣杯已经建立了一个“单一的真理来源”,在那里分析师(人类越来越多地成为机器)可以逐地找到众所周知的洞察力黄金。Enterprise Data Warehouse在80年代突出以存储结构化数据,并且存储范例现在在同一前提下大部分地移动到云。仓库需要存储“相关”数据的需求是由成本
开发移动应用程序涉及几项任务。移动应用只有两大平台:安卓和iOS。开发人员使用Kotlin和Java构建安卓应用程序,而使用Objective C和Swift开发iOS应用程序。本机开发过程提供了卓越的性能和应用编程接口集成,并且易于访问硬件设备等等。 在进行原生应用程序开发时,您需要记住这一点,因为这很昂贵,并且取决于您想要覆盖的平台数量。这意味着来自不同平台的不同应用程序、两个代码库、两个独立的开发项目,费用会翻倍。 相反,您可以选择交叉开发应用程序技术,利用像React、Flutter、Native和Xamarin这样的工具。这些高级工具允许您使用单个代码库为两个平台开发
假定你有一个很无聊的任务,需要将几十个PDF文件合并成一个PDF文件。每一个文件都有一个封面作为第一页,但你不希望合并后的文件中重复出现这些封面。即使有许多免费的程序可以合并PDF,很多也只是简单的将文件合并在一起。让我们来写一个Python程序,定制需要合并到PDF中的页面。 总的来说,该程序需要完成: 找到当前工作目录中所有PDF文件。按文件名排序,这样就能有序地添加这些PDF。除了第一页之外,将每个PDF的所有页面写入输出的文件。 从实现的角度来看,代码需要完成下列任务: 调用os.listdir(),找到当前工作目录中的所有文件,去除掉非PDF文件。调用Py
datastax.·7分钟阅读 作者的注意事项:我最初在2022年发布了这篇博客文章,而我是Kesque的首席执行官,是Apache Pulsar的实时消息服务,云本机分布式消息传递和流式媒体平台。这是一个早期帖子的后续行动,“选择Apache Pulsar的7个理由选择Apache Kafka。”由于这两个帖子的原因,包括Kesque的收购。然而,选择Pulsar的原因没有改变。 一段时间后,我写了一个关于7个理由的帖子,我们选择Apache pulsar过度Apache Kafka。从那时起,我一直在研究一个详细的报告,比较Kafka和Pulsar,与开源Pulsar项目的
网上对于程序猿的评价,大多都是不解风情,无趣,各种的贬义词比比皆是。当然,也有褒义词,无非就是人们最关心的经济问题,收入可观,也是当下潮流的行业。当然,我也不免俗地相信了这似真似假的评论,但,直到我切身实地的接触到程序猿的生活,我才感受到,三人成虎的欺骗,人云亦云的可怕。 由于工作原因,我接触最多的便是程序员,无论是开发软件还是硬件,在我看来,他们语言幽默,互动画风活泼有趣,俨然是平时乏味无趣办公生活的一股清流。 老王,一个心思细腻,做事周全,自成风趣,大家喜爱无事挑逗的大哥,是一个每天都要按时‘’打卡‘’的宠妻奴,但是却有着让我们为之羡慕蜜里调油的婚姻。 大师,不鸣则已
在前面谈企业数字化转型技术应用趋势的时候,我更多的是从万物互联和泛终端化,技术平台和云原生,IT组织架构重塑,生态构建等方面展开描述。而没有对一个关键内容的数据展开进一步的阐述。 对于企业数字化,在前面多次强调了三大核心内容,即连接,数据,智能。 其内在的逻辑是首先通过连接解决了基本的业务协同问题,其次是连接产生数据,数据反哺业务,同时进一步实现数据驱动运营;最后才是进一步的基于数据来实现智能化场景应用和人工智能等高阶场景。 在最新的十四五规划和国资委下发的企业数字化转型的专题报告里面,都多次提到了大数据,数据中台,包括数据治理和元数据管理。数据作为企业的核心资产越来越受
DevOps,这个词似乎是过去几年的一个流行语,是 IT 招聘人员、软件公司和代理机构在互联网上搜索得最多的一个词。专业的支持者认为这与工具或自动化无关,但他们忽略了一点,即工具实际上承载了 DevOps 文化。我们都认同这样的说法,即 DevOps 不只与工具有关,甚至不只与一个单独的角色有关,DevOps 实际上是人、过程和工具的结合体。但是,一个组织想要实施 DevOps,工具在其中扮演了重要的角色。 在这篇文章里,我们将介绍 8 个 DevOps 自动化工具,每一家公司都需要依靠它们来获得持续改进。
强大、灵活、复杂:C++ 的起源可以追溯到 40 年前,但它仍然是当今使用最广泛的编程语言之一。为了找出原因,TechRepublic 采访了 C++ 之父 Bjarne Stroustrup。 C++ 的起源可以追溯到 1979 年,那时编程语言的创造者 Bjarne Stroustrup 第一次开始研究 C++ 这门语言,当时被称为“带类的 C”(C with Classes)。该语言的设计初衷是作为对 C 编程语言的改进,添加了一些基于面向对象编程的功能。 Stroustrup 告诉 TechRepublic 说:“C++ 的成功显然令人吃惊。我认为 C++ 的成功在于其
关于前端的核心竞争力 如果说服务端同学进击全栈是试试水,Native进击全栈是试试水,那前端里很多同学进击全栈就是在拿生命在玩全栈了。 服务端玩玩Node,不喜欢就算了,玩玩Angular和Bootstrap也就在后台开开荤,前台各位视觉设计,UAT还原检查,各种动效,用Angular和Bootstrap能把自己玩死,而后台基本上一直是服务端的自留地,很多做前端开发的同学甚至没开发过后台界面吧?Django甚至都自动给你生成了。后端的核心竞争力在哪儿?在添删改查,在数据库设计,在性能优化,在shell脚本,在分布式,在网络安全。玩玩票不影响自己的大本营。 同样可以一门语言
2021 年,我们在大大小小的企业中看到了许多成功的 DevOps 项目。如果你是其中一个,恭喜你!但仍有很多 DevOps 项目处于尚未启动或者初级阶段,2022 年,我们对 DevOps 的未来有什么期待呢? 作为 DevOps 社区的思想领袖,我们相信下面的 10 个趋势将会影响全球 DevOps 的下一年。 敏捷和 DevOps 是源于技术领域的草根运动。然而,在许多情况下,敏捷和 DevOps 并没有能突破技术。另一方面,敏捷已经被用于其他职能部门,包括财务、人力资源、采购和营销。一些高层领导越来越多地邀请他们的整个组织“变得敏捷”。 然而,这似乎并没有帮助技术
是时候揭开云计算的神秘面纱了。 刚刚过去的 2021 年是不平凡的一年,据 MariaDB 的一项调查显示,将近 40%的公司加快了业务向云的迁移。来自各行各业的企业都意识到,在历史上从未见过的大规模动荡之后,云计算的优势可以让企业在动荡中保持竞争力。2021 年将成为控制新冠疫情并使各行各业恢复常态的一年,因此,预计今年前半年,疫情的一些影响还将延续,一个主要特征将是大规模兴起的数字化经济。 从餐饮业到购物再到娱乐业,几乎所有国家都经历了由传统经营模式向数字化转型的过程。对于企业来说,这是一个巨大的机会,可以将更多的服务迁移到云平台中,并让大众使用。根据 IDC 的数据显示,
近日,Facebook 和 AWS 合作推出了 PyTorch 模型服务库 TorchServe,强强联手剑指 Google TensorFlow。 PyTorch 是当下最火的深度学习开源库之一,可以帮助开发者和研究人员更轻松地构建和训练模型。即便有了 PyTorch,在生产中部署和管理模型仍然是机器学习的一大难题,包括构建定制的预测 API,对其进行缩放以及保证其安全等问题。 简化模型部署过程的一种方法是使用模型服务器,即专门设计用于在生产中提供机器学习预测的现成的 Web 应用程序。模型服务器可轻松加载一个或多个模型,并自动创建由可伸缩 Web 服务器支持的预测 API。
附近有什么好吃的、推荐什么样的路线、看到什么样的新闻...... 算法已经深入到了我们生活的方方面面。 算法,不限于计算机,但因在计算机上的应用而闻名。算法在互联网领域的应用成就了一批科技公司的崛起,也让算法工程师这个岗位迅速变得炙手可热。算法工程师曾经是前卫和高薪的代名词。但经过多年发展,算法几乎成为每个程序员的基本技能,相关人才越来越多。内卷严重、批判声变多,算法工程师也不再是很多人的第一选择,大家也对算法泛滥开始反感。在未来,算法还能“香”吗? 我们邀请得物 App 算法负责人祁斌川做客《大咖说》,跟我们讲讲“算法”那点事儿。 InfoQ:随着算法的普及,普通的业务
1.struct 的区别(C 和 C++): C语言中只能定义变量。 C++语言中可以定义变量和函数。同时C++语言中,struct 中所有变量和函数都是 "public" 权限 2.类的封装: 3.类内部的三种权限 public:共有属性(修饰的成员变量和方法; 可以在类的内部和外部使用。) private:私有属性(修饰的成员变量和方法,只能在类的内部使用,不能在类的外部使用) protected:主要用于继承,保护属性(修饰的成员变量和方法; 可以在类的内部和继承的子类使用,不能在类的外部使用) 4.struct 和 class 的区别
本文最初发布于 Medium 网站,经原作者授权由 InfoQ 中文站翻译并分享。 没错,我玩了一把标题党。很抱歉,但这样做也是有理由的。我希望大家都来关注 DevOps 中一个被人低估的新趋势,即 AppOps。 在 IT 世界中,时不时学习新的流行语是家常便饭。大多数流行术语就像流星一样,在你完全理解应该学习的内容之前就消失在了天际。还有一些概念会成为接下来几年中的趋势,比如 DevOps 和 Frontend 就是两个例子。 新的术语层出不穷,所以我们必须专注于其中真正有意义的那些。我并不相信什么流行语或者趋势,我相信的是概念。即便技术和趋势纷纷过时,概念依旧长青。
最近,我构建了一个本地开发环境,将 Docker 用于一些关键的集成测试路径。当我完成这项工作时,我意识到,我在开始这项工作之前没有考虑到下面这些深远的影响: 要求开发人员的本地机器上有 Docker 和 Docker-Compose;需要做相当多的配置环境才能真正可用;我编写了 shell 脚本用于“缓解”这些配置问题,但却混淆了系统的实际工作方式;我编写的 shell 脚本最后看来也相当短视——它在某些环境下工作得很好,但是如果你在 Windows 环境下工作,就只能靠自己了;我花了大半天的时间来解决一些简单的数据库连接问题,结果发现我的数据库容器没有正确配置。 我在这项工
2018 年,我使用 Go 语言实现了一个玩具性质的哈希表 (1),以便学习 Go 的 map 等数据类型如何工作。这个版本只支持字符串作为 key 以及 value。 两年后的 2020 年 6 月,Go 团队发布了一篇题为《泛型的下一步 (1) 》的文章,提供了一个新版的泛型草案设计,它基于扩展 Go 现有的接口,而不是添加 contract 等新概念来实现。如果你还没看过,我强烈建议你至少浏览一下新的设计草案文档 (2)。我不是专家,只能以我有限的经验和时间来谈论这个设计。 这篇文章将分享如何将我的玩具 hashtable 移植到新的泛型设计。如果你想跳过介绍并直接查看泛
最近,我终于决定将自己的网站从基于 PHP 的 CMS 移植到基于 JavaScript 的静态网站生成器(SSG)了。原因如下: 虽然一开始我是“全栈”开发人员,但现在我只负责前端工作:如果我需要编写自定义功能,那么能用 JavaScript 编写的代码我就不想用 PHP 来写。我不需要抽象层或 CMS 的复杂性——我最喜欢用 markdown 文件编写内容,并且希望永远不要再碰 Mysql 数据库或所见即所得编辑器。我想提高网站的性能:静态 HTML 文件在 99% 的时候都比动态页面更快。最后还有成本优势:LAMP stack 服务器得按月付费;Netlify 的免费套餐(每月
MATLAB是Mathworks公司于1984年推出的一套高性能的数值计算的可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,可方便地应用于数学计算、算法开发、数据采集、系统建模和仿真、数据分析和可视化、科学和工程绘图、应用软件开发等方面。MATLAB之所以能够被广泛应用,是因为它将科研工作者从乏味的Fortran、C编程中解放出来,使他们真正把精力放在科研和设计的核心问题上,从而大大提高了工作效率。在MATLAB环境中描述问题及编制求解问题的程序时,用户可以按照符合人们的科学思维方式和数学表达习惯的语言形式来书写程序。 MATLAB这个词代表“矩阵实验室”(matrix
调试作为一种日常中常见的工作,提高调试水平是非常有必要的。 调试的过程是收集足够多的信息来判断出错误信息。 本文介绍调试过程中所需要的的内存相关知识、底层知识、调试技巧,通过这些知识加强信息收集,减少无用的调试工作,使调试更有目的性。 程序挂掉大多表现为内存异常,通过分析core文件中的内存信息来推断程序异常原因是一种常见的方法,而在分析的过程中需要确保收集到的信息是正确的,因此glibc内存管理原理与程序中内存使用方法是调试的基础知识。 代码段、数据段、bss段,由内核在启动程序时分配。 代码段、数据段,BSS段处于较低位置,在地址上能明显区分出来。
“如果你有正确的态度,有趣的事情自然会找到你。” Eric S. Raymond 在被奉为“开源运动独立宣言”的《大教堂与集市》一文中,总结了 19 条在开源开发中非常有用的理论,上面是其中一条。开源项目总会在不经意间升级,参与者可能最初只是做一些小打小闹的贡献,后来逐步维护越来越重要、越来越多的代码,甚至是负责整个程序。在一个鼓励代码共享的软件文化中,这是一种很自然的项目演化方式。 徐亮在开源社区的经历也遵循着同样的演化路径。从一开始因为兴趣入圈、负责翻译工作,到后来成为Ubuntu、Debian资深官方开放人员,甚至把开源变成一份全职工作,今年已经是徐亮与开源结缘的第 12
在移动互联网时代,产品的可选择性实在太大,各类网站琳琅满目,App(应用程序)层出不穷,任何一个用户都会在网络上不断地进行切换和刷新。 乱花渐欲迷人眼,用户到底凭什么选中你的产品,并为之买单? 谈到这个话题,我不得不提到人性。一个好的产品,往往能够反映人性中最本质的需求,换言之,不符合人性的需求都是伪需求。最本质的需求是人类原始的本能欲望,在《圣经》中,人类有七宗罪:淫欲(lust)、懒惰(sloth)、贪婪(greed)、饕餮(gluttony)、傲慢(pride)、暴怒(wrath)和妒忌(envy)。一款好的产品,需要对人性做透彻的分析,才能完成其设计。且让我们分而论之。
什么是万物互联?这并不是哈姆雷特,科技也不讲求千人千面。其在课本上的定义是将人、流程、数据和事物结合一起,使得网络连接变得更有价值。而在这些连接相关的过程中,智能设备的出现让万物互联有了新的发展思路,5G技术的落地和无处不在的算力支持,让“万物智联”成为可能。当然,物联网与互联网在交互模式上也有很大区别,不同于互联网主要以鼠标键盘为主的窗口交互,物联网的交互方式更加丰富,生物识别、多因子识别、跨设备交互等多种交互模式不断的发展变化。 从使用习惯来看,人均持有联网设备正在变得越来越多,从传统的电脑和手机,到如今的智能手表、电视等各类智能家居设备。不难想象,未来必然会有更多的设备接入网络
腾讯发布 Linux QQ 2.0.0 Beta 版,官方宣称: Linux QQ 全新回归 有网友认为,这大概是为了庆祝程序员节,因此腾讯推出 QQ for Linux。众所周知,作为开源操作系统,Linux 在全世界的程序员中”粉丝众多“,以这种形式致敬 1024,想来也说得过去。 QQ Linux 2.0,腾讯官方定义为“从心出发,趣无止境”。 在版本特性上,QQ Linux 2.0 有三点改变: 支持 x64、ARM64、MIPS 三种架构;优化消息体验,完善消息收发能力;性能优化
现在社会,有很多人都在利用个人时间兼职赚钱,程序员俗称“接私活”,其他行业称作兼职,比如下了班出去跑滴滴,周末兼职抢单送外卖等等,都是普通人很常见的兼职方式。 甚至很多技术同行,我听说也有周末去跑滴滴和送外卖的,我觉得很不可思议,然而我的观点是如果你想成为成功人士,高收入人群那么你不应该去做兼职,不要把你宝贵的时间,浪费在兼职上。 简单经济学分析 涉及到收入,文字洗脑显得很空洞了就,那么今天我给你来一个简单的经济学论调。 我们看一个案例,李嘉诚是香港首富,但是李嘉诚会亲自修剪自家的草坪吗?除非某一天他想体验一下劳动乐趣什么的,否则一定是请人来修剪草坪。
杨强,香港科技大学计算机科学与工程学系系主任,人工智能领域学术界的领军人物,华人界唯一的国际人工智能协会 (AAAI)councilor,IEEE 大数据期刊主编,ACM 杰出科学家。两次获得国际数据挖掘领域最高级别竞赛 KDD Cup 世界冠军。杨强教授发表论文 400 多篇,被引用超过 20000 次。 但同时,除了扎根科研界,杨强教授还是人工智能领域深入商业应用领域的顶级专家之一。目前,杨强教授担任人工智能技术与服务提供商第四范式的首席科学家,带领这家被广泛看好的人工智能公司不断取得科技突破,近期第四范式在乌镇世界互联网大会上发布了可供大部分互联网公司使用的人工智能公有云产品,
自 2015 年底开源到如今更快、更灵活、更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow 一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本、服务框架 TensorFlow Serving、上层封装 TF.Learn 到 Windows 支持、JIT 编译器 XLA、动态计算图框架 Fold 等,以及 Inception Net、SyntaxNet 等数不胜数的经典模型实现,TensorFlow 已然已经成为深度学习框架的事实标准之一。 而另一方面,在开源一年多的时间里,TensorFlow 已经帮助了包括研究人
亚马逊近期发表了截至 2021 年 12 月 30 日年度财报。报告显示,亚马逊2021年净销售额为 304 亿美元,净利润为 8.57 亿美元,与2020年同期的净利润 9200 万美元相比大幅增长。这是亚马逊连续第五年盈利。 因业绩好于预期,亚马逊股价上涨 6.2 美元至 758.81 美元,涨幅为 0.82%,亚马逊的市值因此而上升至 3580 亿美元。差不多相当于沃尔玛、联邦快递(FedEx)和波音公司三家公司的价值总和。亚马逊也成为美国市值最高的第五大公司。 从售卖图书开始,亚马逊的电商业务一直带动着货运的发展。彭博商业周刊昨天发表一篇关于亚马逊物流的文章:「亚马逊会
编者注:在两个月以前的苹果 WWDC 2021 大会上,Apple Music 进行了发布以来最大的一次更新。但与产品本身相比,在发布演示时出现的那位黑人女性反而吸引了人们更多的眼球。与一众白人男性高管千篇一律的演示方式不同,她的演示更轻松自在,甚至带着全场观众像演唱会一样跟着音乐打起了拍子。 这位黑人女性名为 Bozoma Saint John,当苹果收购了 Beats 之后,她成为了苹果公司的一员,在此之前她是 Beats 全球营销高级副总裁。 作为与音乐行业打了很多交道的资深人士,Bozoma 为苹果带来了一股新的气息;同时,她也带着 Apple Music 继续向前走。