SegmentFault

SegmentFault 查看完整档案

杭州编辑华中科技大学  |  保密 编辑SegmentFault  |  管理猿 编辑 segmentfault.com 编辑
编辑

SegmentFault 社区管理媛 - 思否小姐姐

纯粹的技术社区离不开所有开发者的支持和努力 biubiu

更多技术内容与动态欢迎关注 @SegmentFault 官方微博与微信公众号!

点击添加思否小姐姐个人微信号

个人动态

SegmentFault 赞了文章 · 1月16日

Flash 停服引起故障,大连车务段全力攻关一昼夜撰文「大连车务段人人都是高手」

奋战20余小时,没人抱怨、更没人放弃,即使希望渺茫,有希望就有前进的动力。

看到这句话你是否会想到救援自然灾害或科研公关的场景?但事实上它出现的场景让人有些意外。大连车务段因美国 Adobe 公司全面禁止 Flash,无法显示页面导致车系统全面崩溃,最终使用 Ghost 版系统的方法渡过危机

这次事件被大连车务段写成文章《全力攻关一昼夜,确保运输三十站》(现已删除),而上文这句话就在其中。

照理说遇到突发问题后成功解决问题,本该受到赞扬,而这一次大连车务段却遭受了网友的 “群嘲”,好笑又讽刺,原因有以下几点:

原因一:

早在 2017 年 7 月25日,美国软件公司 Adobe 就发布公告,宣布旗下产品 Flash 将在 2020 年底终结。2020 年 12 月 31 日 Flash 正式「退出」互联网,两年多的时间这个问题竟然无人改进。

原因二:

大连车务段的解决方案是 Ghost 版系统加上降级 Flash 版本,而 Ghost 版系统也有一种说法是「盗版系统」,不过也有一种可能是自己打包做的模板 Ghost。但总的来说通过将 Flash 降级到之前的版本的方法并不推荐,因为如果铁路网络不是内外物理隔绝,整体的降级就会影响网络安全。

并且这只是临时性的解决方法,因为不知道什么时候会停用所有旧版本的 Flash 插件。

原因三:

在受到网友的嘲笑后,大连车务段发布一则声明:

这则声明强调了受 Flash 停用影响的不是铁路列车调度系统而是电脑浏览器,也就是说大连车务段自己都没分清现在车系统本身和现在车系统 Web UI 的区别,网友笑称大连车务段重新定义了「没有任何影响」这句话 ——「答非所问,看来是确实没看懂网友在骂什么」。

千年虫危机

其实大连车务段这次遇到的「Flash危机」并非独一无二,大名鼎鼎「千年虫危机」就和这个问题类似。

千年虫危机又称为计算机 2000 年问题,缩写为“Y2K”,是指2000年时,全球电脑出现的一次大型危机事件。由于当时全球绝大多数电脑所使用的智能系统中,年份一直是用两位十进制数来表示,所以当系统在进行跨世纪的日期处理时,就出现了错误结果,后来甚至引发了系统崩溃和瘫痪。例如,如果有人在 1990 年往银行存了一笔十年的定期存款,在 1999 年 12 月 31 日,23 点 59 分 59 秒过后,电脑上的日期就变成了 01-01-00 年。如果用 00 年去减 1990 年,就会产生负数,银行的所有账目都发生了混乱。

2000 年的西非国家冈比亚是全球首个受「千年虫」严重影响的国家,危机发生时除不少地方电力供应中断外,其海空交通、金融和政府服务亦大受影响,财政部、税务部门和海关通通无法运作。

不过只要认真应对,完全可以规避危机造成的损害,比如去年的日本明仁天皇的退位时让日本的信息基础设施遭遇的「千年虫危机」。

引发危机的原因与日本所使用的历法有关。以前日本一直使用中国农历。明治维新后的 1873 年,日本将之前沿用的中国农历改为公历,但与之并行的是,日本仍然采用中国的帝位纪年法,既每位新天皇即位都会更改年号,例如 2018 年是明仁天皇的「平成 30 年」,更重要的是日本的公文来往使用的还是天皇年号。

因为天皇退位(2019 年 4 月份),会在同一个公历年将出现两个日本纪年,对于某些算法,如果它们试图解析一个永远不会存在的日期,其应用程序可能会崩溃。

不过好在大多数日本程序员意识到了这个问题的到来,所以这次危机造成的损害非常小。


其实这场 「Falsh 危机」并不是技术的问题,而是意识的问题,而为何几年时间都不能有所动作,这就很难去深入探讨了,不过这次的危机换个角度想也是一件「好事」,给所有相关方都提了一个醒,要尽早排查问题并及时解决,如果这次事件发生在车辆调动的关键时刻,后果真是难以想象。

最后再给大家看一下来自知乎网友@昌维 提示:

《全力攻关一昼夜,确保运输三十站》原文:

image.png

查看原文

赞 6 收藏 0 评论 5

SegmentFault 赞了文章 · 1月16日

思否有约 | @小傅哥:无论工作还是生活,都是生命每一个值得被珍惜的瞬间

image.png
小傅哥(喜欢的动漫形象)

本期访谈嘉宾:小傅哥
访谈编辑:袁钰涵

引子

电影《心灵奇旅》结尾处,杰瑞问准备回到地球的高纳:“So what do you think you'll do?How are you gonna spend your life?”
(那你认为你会做什么?你将如何度过这一生?)

高纳回道:“I'm not sure.But,I'm going to live every minute of it.”
(我也不知道,但是,我会珍惜当下的每一分钟。)


刚完成对小傅哥的采访时,对于他在采访过程中多次提到的“我喜欢比客户跑远一步,提出更高的需求去完成,即使加班也没有关系”,并不太理解。

但采访结束后看了一部名为《心灵奇旅》的影片后好像懂了,因为我们总喜欢把工作和生活分得明明白白,仿佛加班会让我们成为可怜的社畜,但某种程度上,工作也是生活,我们在其中追求自我,付出了我们的精力和时间只为收获属于自己更绚烂的人生。

小傅哥把工作和生活放在了一起,珍惜当下的每一分钟也包括了珍惜工作中的每一个任务,正是这些人生中的碎片组成了他。

在采访过程中,他说得最多的一句话就是:很顺利,我的生活没有太多的故事或困难。

仿佛在和我说:我没有什么不同,和许许多多的程序员都一样,顺着生活轨迹走到了今天。

是不是和许多程序员一样我并不知道,但是我知道的是——他的顺利和幸运都来源于他对生活的珍惜以及对人生的负责。

顺利在何处?

一本顺产的优秀书籍

小傅哥曾出过一本名为《重学 Java 设计模式》的书,当提到出书历程时,问小傅哥:“会不会觉得很难熬,有的作者形容出书就像难产”,小傅哥说:“并不是,它是顺产的,沉淀积累到了一定程度,它就出来了。”

这本书的诞生来自于小傅哥平时在思否这类社区平台分享的文章,他喜欢写这些文章,于他而言,写文没有什么 KPI,也没有什么压力,这不过是对于自身工作经验的沉淀,他用文章记录下那些他认为值得被记录的项目,其行为就像手账爱好者用手账本记录今日发生事件一般,究其本质都是对生活的记录与回顾。

后来这些文章在平台获得了不错的反响,也有许多朋友在平台中与小傅哥进行探讨,大家互相学习,在一次次讨论中成为前行路上的伙伴,而这些项目是连接彼此的介质。

项目文章越来越多后,连接的伙伴也越来越多,小傅哥想,如果把它整理成书籍,不仅是对这段日子总体的回顾,对自身有更深层次的沉淀,同时也能帮助到许多想学习 Java 的朋友,此般,《重学 Java 设计模式》便水到渠成地诞生了。

后来这本书收获了不俗的成绩,还冲上了 Github 全球推荐榜,小傅哥用“羞答答的成绩”来形容这份喜悦。

没来得及经历的职场小白时光

初入职场,许多人单是适应工作节奏就已经筋疲力尽了,但小傅哥并没有经历过这种“职场小白”的时光。

读大学时学习的内容有许多都是进行考试、理论性操作,小傅哥感觉这样对于后期的职业发展不太好,于是那时混迹各种大佬建的 QQ 群。

这里发生了一件非常好玩的事情,当时作为一个有理想的青年,小傅哥混迹各种 Q 群后发现,许多群都是水聊天,有用的群并不好找。

没有条件就要创造条件,他把群内认识爱聊技术的,人单独创了群,名称叫东软帝国 ,当时说着要成为东北最大的软件帝国,后来某年发现真的有家公司叫东软,与朋友提起仍会相视一笑。

技术群内能学到很多东西,群内看到看到需要人的项目小傅哥就会去帮忙,到了真正毕业的时候,他已经做到:开发掌握得不错,需求能很顺利完成的程度了。

工作开始便能很好地完成需求,于是小傅哥不希望自己负责的内容只停留在完成这一步,他主动地提出更多需求,增加项目难度,这个习惯延续多年,成了他工作的常态,这种做法让他后期的职场生涯中少了许多焦头烂额的日子,倒是多了几分对于工作的热爱与优化项目的成就感。

这种做法一开始为我所不了解,后来我才明白于他而言生活与工作是一体的,那些项目是他生命中的一部分,对自己出品的东西填以热情,珍惜每一次接受委托的机会,这何尝不是对生命每一个瞬间的尊重。

对新生代程序员的一些建议

当初的项目讨论 QQ 群给了小傅哥很多帮助,这些年见证技术讨论群从 QQ 走到微信,其中不少还是小傅哥自己创建的,他仍非常建议新生程序员去加入大佬的微信群,虽然大家平时会水聊天,但在分享一些技术事件的时候,大家会认真地讨论与研究,这个过程中互相学习对方观点,某种程度上能拓宽自身视角,让程序员之路走得更宽更远,同样他自己也仍然在这些群里一边水聊天、一边探讨学习技术。

为何幸运?

热爱自身从事的行业

许多人在大学报志愿的时候,都是亮眼一黑,全家沟通进行了无数次大大小小的讨论才选定下来,最后可能因为家庭原因、学校问题、调剂问题,最后选择从事与专业毫无关系的工作或者跨专业考研,再给自己一次选择专业的机会。

但小傅哥的选择就简单而明晰,被问道为什么选择学计算机,他说好像无法选择一样,喜欢的东西和程序员的工作吻合度是如此的高,同时作为一名喜欢理工科的男同志,成为程序员成为了理所应当的事情。

他提到,如果一个人在迷茫的状态下选择了自身不喜欢的专业,日后的路会很困难,因为无法为自身带来愉悦感的工作,就很难提升到职业的高度,无法拥有归属感,在这种环境下工作,仿佛是被生活针对了一般,遇到困难也很难主动地想去克服,会有四处碰壁的挫折感。

所以感到自己能选择喜欢并且擅长的行业工作,是一件很幸运的事情,这让他拥有恒久的热情去投入到工作当中,这份热情如同熊熊燃烧的生命之火,点亮了他的人生。

幸运的职业生涯

小傅哥在一家偏传统的公司工作两年后,来到了互联网,工资提高的同时工作时长也变长了,面对这种改变,小傅哥很坦然地说:时间变长是为了更好的优化项目,对他而言,如果在固定时间内把需求完成并且做好,他是不会进行加班的,甚至还会提前离开。

工作中遇到的许多事情他都能从一个很积极的角度去面对。

从传统公司到互联网公司,当问小傅哥面试时感觉难吗,小傅哥没有直接说难度大还是小,而是回道“我从毕业到现在,一共面试了两次,一个是前公司,一个是现公司”。

面试的时候,小傅哥的兴趣爱好给了他很大的帮助,在日常生活中他喜欢写有关 Java 的东西、写开源项目、研究元码,即使自身可能没从事相关方面的工作,也会去看去写。

现在的小傅哥在一家不错的公司工作,小编问他要不要说一下东家的名字,小傅哥很快拒绝了这个提议,他说,现在还没有到能公布东家的程度,等到自己做出一些成绩后,再把自己和公司放在一起。

他的顺利和幸运都来源于他对生活的珍惜以及对人生的负责

小傅哥是一个优秀而不自知的人,许多他认简单且普通的事情,其实对于许多处于那个阶段的人而言,都是一个个需要去闯的难关,比如参加开源项目、跟着大佬们学做项目等等。

小傅哥说得风轻云淡,但谁也不知道他背后付出过多少努力,他很少提及这些付出,因为在他看来,那些努力都是向前走的助力,他从来不会认为给自己增加额外的工作量、加班是一件辛苦的事情,他接受这些存在,感谢这些存在为他带来的进步,甚至珍惜这些提升自我的时刻,然后感谢自己顺利又幸运的人生。

小傅哥对于工作的态度并非是“打工人”“搬砖”“恰饭工具”,他的经验与研究欲督促他不要机械化。

他很喜欢比需求方多走一步,通过自身的经验与思考,最后做出一个更优的项目能让他收获除了完成工作外的成就感,这些成就感来源与他与合作方对项目的认同,这些都是他工作的动力,在这个过程中他面临了加班,却又享受了成功。

不过对于这种态度,小傅哥坦诚地说:每个人会有自己的想法,不一样也正常,而他也并不是永远这么勤奋,只是他的兴趣刚好落在了研究上,对于一个项目进行深层次的研究与探讨能给他快乐,在生活中的其他事情上,他也有懒惰的时候。

无论工作上的勤奋还是生活中的懒惰,这些就是他对于人生的态度,该负责的时候负责,该偷懒就偷懒,在这种放松的状态下,享受自己短暂而又珍贵的人生。

坦荡、坦然还是他

虽然有时低调得都有点凡尔赛了,但小傅哥的确是个坦诚的人,说到为什么会在社区分享文章时,小傅哥特别实在地说:做这件事主要是对自身的一个沉淀,分享技术文章的时候,会有技术同好和自己一起讨论,交流的过程中会得到很多成长,这是属于他的学习方式,帮助他人的同时也收获了他人的帮助。后面还补上,当然阅读量也是支持作者走下去的重要因素。

对于写文、和工作小傅哥都把自己看的很清楚,而对于年龄,他更是坦然。

被问到年纪的时候,小傅哥利落地给出了一个数字:31,甚至他也很乐意和别人说自己已经是个工作 7 年的人,年轻有年轻的好,而成熟又有成熟的好。

网络上有许多关于这个年龄段的焦虑情绪,但小傅哥并没有为此所扰,循序渐进往下走就是他的态度,而职场中,只要仍旧拥有留下来和走出去的能力,其他事情倒不必去担忧那么多。

努力学习,充实自己,是他人生非常长一段时间的代言词,而这么做也不会让他感到生活如同紧绷的弦,难以支撑,因为这一切努力也好、奋斗也好,出发点不过是他对于工作与生活的珍惜,以及对那转而 30 年已过的人生衷心的感谢。


欢迎有兴趣参与访谈的小伙伴踊跃报名,《思否有约》将把你与编程有关的故事记录下来。报名邮箱:mango@sifou.com

segmentfault公众号

查看原文

赞 5 收藏 0 评论 5

SegmentFault 关注了用户 · 1月11日

浪潮云 @langchaoyun

浪潮云依托在政府、行业、企业信息化领域30余年的深厚经验技术积累,以安全可靠的云平台、国内领先的技术水平和运营能力,面向政府机构和企业组织,提供覆盖IaaS、PaaS、DaaS、SaaS及管理服务等在内的公有云服务。致力于以云服务的方式,提供安全、可信的计算和数据处理能力,让计算无处不在。帮助区域政府实现服务转型,帮助行业部委实现业务转型,帮助大型企业实现运营转型。

关注 3

SegmentFault 赞了文章 · 1月8日

新手部署DolphinDB时的注意事项

新手部署DolphinDB时的注意事项

1. Linux用户在命令行启动控制节点或代理节点时,为什么会有“Permission denied”的错误?

对于Linux用户,启动DolphinDB前需要执行以下命令来修改可执行文件的权限,进入安装目录的server文件夹下,执行:

chmod +x dolphindb
2. 在Web集群管理器上点击了执行按钮,为什么数据节点的“Status”栏仍然是红色?

点击执行按钮后,需要点击刷新按钮刷新节点的状态。如果刷新后“Status”栏仍然是红色,可能有以下4个原因:

(1) 端口被占用。点击“ServerLog”栏的view按钮,查看数据节点的log文件。如果出现“Failed to bind the socket on XXXX”,这里的XXXX是待启动的节点端口号。这可能是该端口号已经被其他程序占用,这种情况下将其他程序关闭或者重新给DolphinDB节点分配端口号在重新启动节点即可,也有可能是刚刚关闭了该节点,Linux kernel还没有释放此端口号。这种情况下稍等30秒,再启动节点即可。
(2) 防火墙未开放端口。防火墙会对一些端口进行限制,如果使用到这些端口,需要在防火墙中开放这些端口或者把防火墙关闭。
(3) 配置文件中的IP地址、端口号或节点别名没有书写正确。节点的IP地址需要使用局域网IP,避免使用“localhost”。
(4) 如果集群是部署在云端或k8s环境,需要在agent.cfg和cluster.cfg文件中加上配置项lanCluster=0才能正常启动。
3. 为什么DolphinDB GUI无法启动?

DolphinDB GUI无法启动的原因有两个:一是没有安装Java,二是安装的Java版本不对,DolphinDB GUI使用环境需要Java 8及以上版本。Java下载地址https://www.oracle.com/technetwork/java/javase/downloads/index.html

4. 在Web上定义了变量,过一段时间后,为什么会报变量未定义的错误?

使用DolphinDB Notebook时,若10分钟内无命令执行,系统会自动关闭会话以释放DolphinDB系统资源。推荐用户在DolphinDB GUI中编写和执行代码,DolphinDB GUI的会话在用户关闭之前会一直存在。

5. 为什么创建分布式表或访问分布式表时会有“DFS is not enabled or the system is not a data node”的错误?

出现这样的错误的可能原因:在集群的控制节点或代理节点上执行了代码。控制节点是用于管理数据节点以及分布式文件系统的元数据和事务,代理节点用于启动和关闭数据节点,一般不用于计算。用户只需要切换到数据节点执行代码即可。

6. 为什么创建/删除分布式表时会有“Not granted to create or delete databases.”的错误?

DolphinDB提供了用户权限管理,只有具备相应权限的用户才能对数据库和表进行操作。如果用户已经具备创建/删除分布式表的权限,只需要使用login函数登录即可。默认的admin登录:

login("admin", "123456")
查看原文

赞 2 收藏 0 评论 0

SegmentFault 关注了用户 · 1月6日

阿里聚安全 @jaq

阿里聚安全(http://jaq.alibaba.com)由阿里巴巴移动安全部出品,面向企业和开发者提供企业安全解决方案,全面覆盖移动安全、数据风控、内容安全、实人认证等维度,并在业界率先提出“以业务为中心的安全”,赋能生态,与行业共享阿里巴巴集团多年沉淀的专业安全能力。

关注 125

SegmentFault 赞了文章 · 1月6日

纵观 Excel 演化史,开发者如何通过“表格技术”提升企业生产力

我们在之前的文章中曾提到过,很多企业的 IT 业务是从一张表格开始的。

不仅仅是数据存储,团队中的信息共享也需依赖于表格这一数据结构。文档、报告、凭证以及基础数据的汇总计算,大部分是在表格的形式中完成分析与决策的。即便表格的应用场景已经十分广泛,但随着业务的发展,用户对于表格产品的性能和系统兼容度还是能提出更高的需求,这也迫使表格产品不断的优化迭代。

提起表格产品,其中最典型的莫过于 Excel 。今天,我们就站在系统用户、企业决策者和开发者的立场,通过 Excel 的演化史,观察表格产品的发展与需求迭代、现阶段表格产品在业务中都覆盖了哪些应用场景,以及如何用“表格技术”提升企业生产力?

一、Excel 的迭代历程,是用户需求的演化史

1978 年,哈佛商学院的学生丹尼尔•布里克林(Daniel Bricklin)想编一个程序,简化财务预算修改以后繁琐的重新计算,就请他的程序员朋友罗伯特•弗兰克斯通(Robert Frankston)来帮忙。

布里克林接到这个需求后,用 BASIC 语言给当时 24K 字节内存的苹果 2 代编写了个示范程序 —— VisiCalc。这也是首次利用行列布局来完成数字的录入和计算的软件,虽然简单,但已经具备了如今电子表格核心的行列模型。

VisiCalc

当时人们做生意都是用笔记在账本上,效率非常低,所以 VisiCalc 一面世就获得人们的喜爱。也是靠这款软件,帮助苹果电脑 2 代打开了市场,大卖特卖。乔布斯当年接受采访时说电子表格促进了产业发展,VisiCalc 促成了苹果的成功。

虽然以今天的审美以及用户操作习惯来看,它的界面极其不友好,但它解决了电子表格的有无问题,让数据表格信息化处理成为可能,甚至可以被称为生产力工具软件的鼻祖。

但 VisiCalc 毕竟过于“简易”了。

1983 年,一款名为 Lotus 的电子表格软件横空出世,功能在 VisiCalc 的基础上增加了简单图表、数据库和一些基本公式,并且以独占形式发布在了当年的 IBM PC 以及兼容的 MS-DOS 操作系统上,借助着更好的硬件和操作系统,再加上自身交互上的改进,Lotus 逐渐吞食了 VisiCalc 的市场,很快就成为世界上第一个销售超过 100 万套的软件。

市场份额变化的背后,其实是用户需求的变化。数据表格产品作为一项生产力工具,绝对不会只是简单的数据呈现就可以了。所以 VisiCalc 被 Lotus 取代是个必然事件,Lotus 后来被 Excel 取代也是必然事件。

Excel 的前身是一款名为 Muliplan 的软件,与 Lotus 诞生于同一个时期。但 Muliplan 的步子迈的有些大,过高的使用门槛让其在工具市场无人问津,最后自生自灭。但这也促使微软下定决心重新开发一款电子表格软件,这便是后来大名鼎鼎的 Excel。

Excel 之所以直至今日仍然是本地化数据分析的神器,是因为它开创性的为用户提供了自定义界面(包括字体、文字属性和单元格格式),并且引进了“智能重算”的功能,当单元格数据变动时,只有与之相关的数据才会更新,而原先的制表软件只能重算全部数据或者等待下一个指令。可以说,Excel也是数据信息化处理的界面化引领者。

但是,随着互联网的发展,人们对于数据表格工具有了更多的期待,比如基于云服务的在线功能以及企业级的协同需求,就是现阶段的一个重点。

回顾历史我们可以发现,表格工具的迭代历程,其实正是一部用户需求的演化史。而表格工具保持旺盛生命力的原因,正是因为人们对数据处理的需求始终旺盛。

二、现代企业的智慧办公场景,新的需求是什么?

回顾完历史,我们再来展望下未来。如果让你重新设计一款表格工具,它会是什么样子?

我们在上文中提到,基于云服务的在线功能以及企业级的协同需求是数据工具下一阶段发展的重点。在企业级的在线协同办公场景下,我认为数据应该具备三个最主要的属性:

  • 共享属性
  • 场景化属性
  • 效率属性

首先是共享属性。共享其实包含两个维度 —— 终端共享和人与人之间的共享。

物联网的概念在近几年逐渐流行,万物互联被认为是信息时代下一个重要的发展方向。而数据作为一种流动的信息资源,需要在不同的人之间传播,需要在不同终端上展现、操作,从而打破不同硬件和场景间的壁垒,让数据信息的协同更加便捷高效。

第二个是场景化属性。

我们上面也说到,数据会来源于并应用于不同的物理场景和业务场景。不同的物理场景需要让表格工具增强共享属性,方便进行多端的适配。而在业务场景中,数据的维度、形式与关联性是不同的,我们需要通过工具对数据本身进行二次处理,从而放大数据的价值,优化用户的使用体验。

第三个是效率属性。

效率是生产力工具的核心。Excel 作为一款创造性的界面化数据分析神器,已经为用户们提供了非常全面而广泛的操作模式与功能,但在具体的效率提升上,仍存在一些空间 —— 比如数据可视化的展现、数据的处理性能、多人协同时的交互逻辑等。

所以要想真的实现智慧办公,企业不能只去抓内部的员工文化,而应该提供足够强力的底层基础技术能力支持。表格工具本身就是为生产力而生,如果真的能满足现阶段用户的需求,那么智慧办公就是一件水到渠成的事情。

三、依托“表格技术”而生的工具,将大幅提升企业的生产力

通过上文我们可以了解到,数据表格仍然是企业级最重要的生产力工具。工欲善其事,必先利其器,如何选择一款合适的数据表格工具成为很多企业的难题之一,企业的业务形态以及所属的行业,都是其中的影响因素。

市面中大部分的表格类协同工具平台,提供的都是泛用性的功能和产品,并不能完全满足企业的个性化需求。如果企业对于数据表格真的有很强的业务需要,完全可以在自己的 OA 系统中搭建一个功能更垂直、更适合自身业务形态与数据需求的功能模块。

但在选择自主研发前,请务必考虑如下因素:模型、体验、性能、研发难度、后期维护和业务水平。对于大部分企业来说,这些因素都是不可忽略的经济与精力成本,并且,表格产品看似很简单,但背后其实涉及到很多的技术实现,没有相关开发经验的团队很容易“费力不讨好”。

为了避免耗费大量的开发精力却只得到一个“鸡肋产品”,企业的研发负责人一定不会轻易造轮子,因为选择一款更为专业的表格组件进行集成,远比自主研发容易的多。现如今,市面上绝大部分表格文档协同产品,都已经基于 SpreadJS 二次开发实现了,甚至有很多业内知名的企业与厂商,也都开始使用 SpreadJS 来完善其数据表格服务。

SpreadJS 是西安葡萄城自主研发的一款纯前端表格控件,在界面和功能上都与 Excel 高度类似,但又不局限于 Excel,而是聚焦于未来的智慧办公场景。借助 SpreadJS 提供的 API 与二次扩展能力,可以让数据处理不再受硬件、操作系统与使用环境的限制,帮助企业实现更为高效的在线填报以及多人协同。

SpreadJS

并且,SpreadJS 可帮助 SaaS平台或企业,在不依赖任何 Excel 组件和第三方应用软件的情况下,实现“用不到 100 行代码,将电子表格的功能和使用体验完美嵌入到各类应用系统中。”

优秀的系统集成能力与二次扩展能力,再加上在基础功能外为企业提供的定制化服务,SpreadJS 无疑是解决智慧办公场景中数据共享、场景化、效率三个需求的最佳方案之一。

随着社会的发展,社会形态也会随之改变,社会需求也必然会有所调整。Excel 作为数十年前的产品,为整个数据服务行业打下了非常好的基础。但现在是时候想一想,对于数据表格工具类的产品,我们还有哪些期待?

扩展阅读:
1、SpreadJS 纯前端表格控件官网
2、为什么你的“开发速度”和“产品性能”,都比不过竞品?丨开发者必读
3、后疫情时代的「表格文档协同」,需要具备什么能力?

segmentfault 思否

查看原文

赞 14 收藏 2 评论 1

SegmentFault 赞了文章 · 1月5日

从 re:Invent 看 AWS 对开源和社区的新贡献

文章推荐语:“在刚刚结束的 2020 年,有幸参与到了一次 AWS 的社区活动中,在这次活动上第一次听到了宇博的分享《云计算,开源与社区》,带给了我非常多的思考和启发,在活动结束后我就邀请宇博能不能写一篇文章跟社区的开发者分享一下 AWS 与开源相关的一些内容,宇博在百忙之中写了如下的文章,这篇文章对于开发者了解 AWS 参与开源以及最新的产品中用到了哪些开源技术会有很大的帮助。也欢迎社区的开发者,一起多参与到 AWS 和思否的社区活动中,一起交流分享云计算与开源技术。”— SegmentFault 思否 CEO 高阳。

image
图拍摄于 AWS Community Day Shanghai 2020

本文作者:王宇博

作者简介:王宇博是 AWS 资深开发者布道师,负责 AWS 技术与产品在开发者中的布道与推广。此前曾担任 AWS 高级产品经理多年,负责 AWS 计算、数据和人工智能相关产品和解决方案的业务拓展。在加入 AWS 之前,他曾在多家跨国企业担任产品、技术和管理等岗位,具有近 15 年的 IT 行业的经验和实践;在计算机视觉、模式识别和机器学习等领域也有多年的科研工作经历。

从 re:Invent 看 AWS 对开源和社区的新贡献

从 2006 年提供第一个云服务开始,AWS 一直是开源社区的重要参与者
和支持者,贡献涵盖代码、运营、基础等诸多方面。除了构建的 2500 多个 GitHub 存储库之外,我们还参与了数千个第三方开源项目,并培育起数十万人的开源社区。

AWS 对开源的贡献逐年增加
图1: AWS 对开源的贡献逐年增加

AWS 作为一家云计算厂商,在开源领域采取了更佳平衡和务实的方法,吸引众多员工、客户和合作伙伴参与和贡献到开源项目。我们在开源领域的驱动力来自于最终用户,聚焦于为开发者提供更好的工具。当我们发布基于开源项目的云服务时,我们会做出长期承诺以支持我们的客户,向开源项目提供了错误修复,安全性,可伸缩性,性能和功能增强并且采用“上游优先”的策略,使得我们在 Linux,Xen,Kubernetes,Redis,Rust,Redis,GraphQL,ROS 等社区中赢得了领导地位。与此同时,我们还代表客户进行创新,并还发起了众多开源项目,例如 Apache MXNet, FireCracker,Bottlerocket,PartiQL,Amazon Corretto,Open Distro for ElasticSearch,AWS Distro for Open Telemetry 等,让开发者更容易的从专有技术转移到开源技术并作出贡献。另外,我们也积极参与到客户发起的开源项目中,比如 Netflix的Spinnaker 等。我们也持续与一些领先的开源 ISV 合作,包括 MongoDB、Databricks 和 Redis Labs 等,帮助他们构建和优化云服务。

AWS参与的一些开源项目
图2: AWS参与的一些开源项目

AWS发起的一些开源项目
图3: AWS发起的一些开源项目

在刚刚结束的 AWS re:Invent 2020 中,在众多的新发布中,又有一系列关于开源和社区的新贡献。在这里我们集中从开发者更为关心的 DevOps,数据与分析,和机器学习与边缘计算等三个方面来给大家做一下介绍。

首先我们来看一下 DevOps。

谈到 DevOps,我们首先就会想到容器和 Kubernetes,它们成为了 DevOps 工具落地的新一代基础架构。Amazon Elastic Kubernetes Service (EKS) 为众多开发者提供了操作安全、稳定可靠的托管Kubernetes云服务,但是也有很多开发者由于各种原因只能在本地运营 Kubernetes。为了同样帮助这些开发者不把精力耗费在管理 Kubernetes 基础架构的大量繁重工作,我们发布了开源的 Amazon EKS Distro。它是Amazon EKS 所使用的 Kubernetes 发行版,可以帮助您在任何地方手动运行 Kubernetes 集群,包括 Amazon EC2 上、其他云中以及本地硬件。EKS Distro 包括上游开源 Kubernetes 组件和第三方工具,包括创建集群所需的配置数据库、网络和存储组件,其中有Kubernetes 控制平面组件(kube-controller-manager、etcd 和 CoreDNS)和 Kubernetes 工作节点组件(kubelet、CNI 插件、CSI Sidecar 映像、Metrics Server 及 AWS-IAM-authenticator)等。

同时,我们也提供了一个全新的 Kubernetes 部署选项 Amazon EKS Anywhere。Amazon EKS Anywhere 基于 Amazon EKS Distro 创建集群,可以让您在本地轻松创建及操作 Kubernetes 集群,包括在您自己的虚拟机和裸机服务器上。EKS Anywhere 提供可在本地创建和操作 Kubernetes 集群的可安装软件包,并提供用于集群生命周期支持的自动化工具。

有了这两个全新发布,可以说在 Kubernetes 领域,AWS 为开发者提供了跨本地和云的相同的使用和运营体验。

Kubernetes跨本地和云的相同运营体验
图4: Kubernetes跨本地和云的相同运营体验

持续的可观测性是 DevOps 流水线的关键组件,可观测性三大支柱包括跟踪、日志记录和指标,而这些需要作为一套统一的集成工具,使每位开发者都能在一个地方查看所有观测数据。在 re:Invent 2020 中,AWS 全新推出了三种开源解决方案,以便在云中集成更好的可观测性。首先是 AWS Distro for OpenTelemetry,它是一个安全、生产就绪、由 AWS 支持的 OpenTelemetry 项目发行版,可用于在 EC2、Lambda 和 AWS 容器服务上运行的应用以及本地应用,将相关指标和跟踪发送到多个云原生和开源监控组件。其次是 Amazon Managed Service for Prometheus (AMP) 。Prometheus 是一种流行的开源监控和警报解决方案,针对容器环境进行了优化。尽管在 AWS 上部署单个 Prometheus 服务器很容易,但可能需要长达数周的手动工作才能跨多台服务器进行扩展,并配置环境以获得高可用性。需要更多容量的客户必须部署其他开源项目,如 Thanos 和 Cortex,并投入更多工程工作来优化内存和存储等资源,以控制成本和优化查询重新响应时间。借助 AMP 托管服务,您可以使用与开源 Prometheus 相同的数据模型和查询语言来监视容器化工作负载的性能,并获得改进的可扩展性、可用性和安全性,而无需管理底层基础架构。再次是 Amazon Managed Service for Grafana (AMG)。AMG 基于开源的 Grafana 项目,是一项完全托管的服务,具有丰富的交互式数据可视化,可帮助客户分析,监视多个数据源中的指标,日志和跟踪并对其发出警报。 您可以创建交互式仪表板,并使用自动缩放,高度可用且企业级安全的服务。至此,AWS 已经在其云服务中提供了完备的云原生和开源持续观测解决方案,为开发者构建DevOps 提供了更多的选择。

云原生和开源持续观测解决方案
图5: 云原生和开源持续观测解决方案

接下来,我们再来看一下数据与分析。

在数据库领域,PostgreSQL 一直是开发者的热门选择。许多开发者喜欢PostgreSQL 的一个原因是它是完全由社区驱动的。但是向PostgreSQL迁移却不容易,因为数据库迁移的最大阻碍其实是惯性。无论出于何种原因想要迁移到 PostgreSQL,开发者都希望有一种更简单的方法来实现。基于此,AWS 在 re:Invent 2020 中发布了开源的 Babelfish for PostgreSQL。Babelfish 是 PostgreSQL 的 Microsoft SQL Server 兼容端点,以使 PostgreSQL 能够熟练地理解 SQL Server 应用的数据库请求,包括理解 T-SQL 和 TDS 通信协议。使用 Babelfish,几乎没有代码更改,也不需要更改数据库驱动,就可以帮助更多的开发者向 PostgreSQL 进行方便的迁移。我们将于 2021 年正式开源 Babelfish。在此之前,您可以在 Amazon Aurora 的预览版中使用 Babelfish 来查看其工作原理。

 Babelfish的工作原理
图6: Babelfish的工作原理

AWS Glue Elastic Views 是 AWS Glue 的一个新功能,使您可以轻松地构建物化视图,从而在多个数据存储中合并和复制数据,而无需编写自定义代码。Glue Elastic Views 使用了 AWS 的开源项目PartiQL,它在包含结构化,半结构化和嵌套数据的多个数据存储区中提供与SQL兼容的统一查询访问。 PartiQL 将查询的语法和语义与基础数据源和数据格式分开。 它使用户可以使用或不使用常规模式与数据进行交互。 另外,在 Amazon DynamoDB 的新发布中,我们也提供了使用 PartiQL 查询,插入,更新和删除表数据的支持。

Amazon Neptune ML 是图数据库 Neptune 的一个新功能,它使用图形神经网络(GNNs),进行简单、快速和更精确的预测。与使用非图形方法进行预测相比,使用 Neptune ML 可以将大多数图形预测的精度提高50%以上。在 Amazon Neptune ML 背后,使用的是 AWS 提供的开源库 Deep Graph Library,它是由 AWS 上海人工智能研究院主导开发的一个开源项目。

Apache Airflow 是构建批处理数据工作流的开源项目,用于管理日益复杂的数据管理工具、脚本和分析工具。Amazon Managed Workflows for Apache Airflows (MWAA) 是一项托管的 Apache Airflow 服务,使您无需再管理,配置和扩展 Airflow 环境,即可编排数据处理工作流,并通过 AWS 支持的日志和监控功能来管理其执行。 您可以在Amazon MWAA 上运行现有的 Airflow 工作流程,并使用 AWS 控制台,API 和命令行界面(CLI)以编程方式与其环境进行交互,同时花费更少的时间来管理基础架构和 Airflow 环境。

最后我们再看一下机器学习与边缘计算。

深度学习中的图像分类和自然语言处理等应用场景对计算能力和数据集的要求越来越高,例如,2018 年发布的 BERT 使用了 3.4 亿个参数。现在,更先进模型如 T5、GPT-3、Turing-NLG 和 Megatron 已经创造了新的精度记录,但需要数百亿到数千亿的参数。如果手动实施数据和模型并行策略进行分布式训练,可能需要数周的实验,会减慢将新版本迭代部署到生产中的能力。在 re:Invent 2020 的发布中,AWS 在 Amazon SageMaker 中提供了全新的托管分布式训练,为训练大型模型和数据集提供了更快、更简单的方法。SageMaker 分布式训练使用分区算法,可在 AWS GPU 实例间自动拆分模型和训练数据集,实现了数据并行和模型并行两种技术。数据并行的分布式训练的使用相对较多,其中AllReduce 是一项关键操作,并有多种的开源实现,如 Horovod。在 SageMaker 分布式训练中,SageMaker Distributed Data Parallel (SDP) 托管实现了优化的 AllReduce;同时充分利用 AWS 的网络基础架构和Amazon EC2 实例拓扑来执行优化的节点到节点通信,极大提升了分布式训练的性能。使用 p3dn.24xlarge 实例上的 2、4 和 8 个节点群集对 BERT 进行分布式训练, PyTorch-SDP 比 PyTorch-DDP 快41%,52% 和 13%;对 MaskRCNN 进行分布式训练,PyTorch-SDP比 PyTorch-DDP 快 4%,19% 和 15%。具体结果如下表所示,其训练代码位于 amazon-sagemaker-examples

SageMaker data parallelism vs. PyTorch DDP
图7: SageMaker data parallelism vs. PyTorch DDP

另外,越来越多的应用,如工业自动化、自动驾驶,需要运行在边缘设备上的机器学习模型,以便在新数据可用时实时进行预测。新发布的Amazon SageMaker Edge Manager 可以帮助开发人员优化、保护、监控和维护部署在边缘设备集群上的机器学习模型。模型部署到边缘设备以后,仍然需要管理和监控模型,确保它们持续以高精度运行。当模型的准确性随着时间的推移而下降时,开发人员可以重新训练模型,不断提高模型的质量。 SageMaker Edge Manager 使用 Amazon SageMaker Neo 针对不同的硬件平台进行优化。其背后是开源的 Apache TVM 的编译器和开源的 Neo-AI 运行时,目前支持基于Ambarella,ARM,Intel,NVIDIA,NXP,Qualcomm,TI 和 Xilinx 制造的芯片的设备。

AWS 在 2016 年推出了AWS IoT Greengrass ,将 AWS IoT 扩展到边缘设备上。AWS Greengrass 有两个主要部分:IoT 边缘运行时和云服务。他们共同致力于为物联网设备提供本地计算,消息传递和数据管理功能。您可以使用 Greengrass 在 IoT 设备上本地运行 Lambda 函数。启用 ML 推理;在设备之间发送消息;部署,运行和管理 Docker容器等。在 re:Invent 2020 上,AWS 全新推出了 IoT Greengrass 的 2.0 版,增加了新的开发人员功能,包括改进的命令行界面以及对添加和删除预建组件的支 IoT Greengrass 2.0 版的边缘运行时已开源。

以上是在 re:Invent 2020 中与开源相关主要发布的概览。我们相信开源会为每位开发者带来好处,并致力于将开源的价值带给我们的客户,将云端卓越运营带给开源社区。当然,健康的社区对于开发者使用开源也非常重要。因此,我们不断寻求以各种不同方式增加对开源社区的支持,并加入了众多开源基金会。作为基金会的一部分,我们可以参与开源项目战略方向的设计与讨论,以帮助确保这些项目继续按照客户对我们的期望发展。同时在过去的几年时间,我们一直在各种开源会议上发言,来分享我们的开源知识和经验。

AWS加入的一些开源基金会
图8: AWS加入的一些开源基金会

AWS 为开发者与社区提供了广阔的舞台。AWS Heroes 项目构建起一个充满活力的,世界范围内的 AWS 专家小组,他们对知识共享的热情在社区内产生了真正的影响。目前在中国内地已经有 5 位 AWS Hero。AWS Community Builders 项目为热衷于分享知识和与技术社区互动的AWS爱好者和新兴思想领袖提供技术资源,指导和交流的机会。我们也希望更多的开发者加入到 AWS 中国开发者社区中一起进行更广泛和更深入的交流。

image.png

查看原文

赞 17 收藏 0 评论 0

SegmentFault 发布了文章 · 1月5日

权威发布 | SegmentFault 思否 2020 年度技术团队

日新月异的技术革命,数字经济的新一轮爆发,背后是无数开发者夜以继日的付出。他们信奉技术力量,敢于技术创新,践行技术信仰,他们是技术先锋,探索改变世界的方向。

SegmentFault 思否作为中国领先的新一代开发者社区,在 2020 展开了第二届“中国技术先锋”年度评选,并先后发布了《中国技术品牌影响力企业》《中国开源先锋 33 人》《最受开发者欢迎的技术活动》《SegmentFault 思否 2020 Top Writer》系列榜单。

而在 SegmentFault 思否社区活跃的创作者,除了昨天发布的 Top Writer 个人作者,还有非常多技术团队,他们坚持长期价值,组织团队成员将顶尖科技企业的技术研究与技术实践进行专业的梳理和输出,他们让众多开发者受益,和开发者共同成长。

SegmentFault 思否根据社区用户行为大数据(如文章 & 问答发布数量、获得声望 & 点赞量等)综合分析,评选出了 30 个最杰出的技术团队作者。

话不多说,让我们来一同揭晓评选结果~

团队名称专栏名称
Android开发者Android 开发者
ApacheFlinkApacheFlink
AWS_AI开发者社区AWS_AI开发者社区
Choerodon猪齿鱼Choerodon猪齿鱼
EMQXEMQX
LeanCloudLeanCloud 官方专栏
NebulaGraphNebula 的图数据库世界
OPPO互联网技术OPPO互联网技术
PingCAP开源分布式关系型数据库 TiDB,TiDB User Group 创作集
RancherLabsRancher
vivo互联网技术vivo 互联网技术
阿里巴巴云原生阿里巴巴云原生
阿里云开发者阿里技术
阿里云云栖号阿里云栖号
爱可生云数据库MySQL分布式中间件DBLE
凹凸实验室凹凸实验室
滴滴技术滴滴技术
高德技术高德技术
好未来技术团队好未来技术团队
华为开发者论坛华为开发者论坛
华为云开发者社区开发者之家
京东智联云开发者京东智联云技术新知
美团技术团队美团技术团队
腾讯云加社区腾讯云技术社区
网易数帆网易数帆社区专栏
网易云信网易云信技术小站
宜信技术学院宜信技术学院
云叔_又拍云云叔
云音乐大前端团队网易云音乐大前端团队
政采云前端团队政采云前端团队

恭喜以上上榜的技术团队!

我们诚挚地邀请更多企业 / 开源项目的技术团队来 SegmentFault 思否社区开通技术专栏,发布高质量的技术干货,也通过思否的平台将你们最新的技术研究与实践传递给更多开发者,我们会对优质内容进行推荐,并给予持续的流量支持。

相关阅读:如何通过 SegmentFault 思否进行技术布道,赋能开发者关系?

查看原文

赞 10 收藏 2 评论 4

认证与成就

  • SegmentFault 讲师
  • 获得 4394 次点赞
  • 获得 153 枚徽章 获得 6 枚金徽章, 获得 36 枚银徽章, 获得 111 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

  • Typecho

    轻量极简,稳定友好的开源专栏程序。高性能,高可定制,功能不多,但足够好。

注册于 2012-06-07
个人主页被 67.8k 人浏览