Skip to main content

Posts

Showing posts from January 13, 2019

外星人存在吗?人类为什么看不到外星文明?李永乐老师讲费米悖论

Turtl:Evernote 的开源替代品 | Linux 中国

如果你正在寻找一个 Evernote 和 Google Keep 的替代品,那么 Turtl 是一个可靠的记笔记工具。 我认识的每个人都会记笔记,许多人使用在线笔记应用,如 Evernote、Simplenote 或 Google Keep。这些都是很好的工具,但你不得不担忧信息的安全性和隐私性 —— 特别是考虑到  Evernote 2016 年的隐私策略变更 [1] 。如果你想要更好地控制笔记和数据,你需要转向开源工具。 无论你离开 Evernote 的原因是什么,都有开源替代品。让我们来看看其中一个选择:Turtl。 入门 Turtl [2]  背后的开发人员希望你将其视为“具有绝对隐私的 Evernote”。说实话,我不能保证 Turtl 提供的隐私级别,但它是一个非常好的笔记工具。 要开始使用 Turtl, 下载 [3] 适用于 Linux、Mac OS 或 Windows 的桌面客户端,或者获取它的  Android 应用 [3] 。安装它,然后启动客户端或应用。系统会要求你输入用户名和密码。Turtl 使用密码来生成加密密钥,根据开发人员的说法,加密密钥会在将笔记存储在设备或服务器上之前对其进行加密。 使用 Turtl 你可以使用 Turtl 创建以下类型的笔记: ◈ 密码 ◈ 档案 ◈ 图片 ◈ 书签 ◈ 文字笔记 无论你选择何种类型的笔记,你都可以在类似的窗口中创建: 在 Turtl 中创建新笔记 添加笔记标题、文字并(如果你正在创建文件或图像笔记)附加文件或图像等信息。然后单击“保存”。 你可以通过  Markdown [4]  为你的笔记添加格式。因为没有工具栏快捷方式,所以你需要手动添加格式。 如果你需要整理笔记,可以将它们添加到“白板”中。白板就像 Evernote 中的笔记本。要创建新的白板,请单击 “Board” 选项卡,然后单击“创建”按钮。输入白板的标题,然后单击“创建”。 在 Turtl 中创建新的白板 要向白板中添加笔记,请创建或编辑笔记,然后单击笔记底部的“此笔记不在任何白板”的链接。选择一个或多个白板,然后单击“完成”。 要为笔记添加标记,请单击记事本底部的“标记”图标,输入一个或多个以逗号分隔的关键字,然后单击“完成”。 跨设备同步你的笔记

设计微服务架构前应该了解的 5 项指导原则 | Linux 中国

顶级 CTO 基于五个简单的原则为精心设计的微服务提供建议。 对于从微服务开始的团队来说,最大的挑战之一就是坚持 金发女孩原则 The Goldilocks principle (该典故来自于童话《金发姑娘和三只熊》):不要太大,不要太小,不能太紧密耦合。之所以是挑战的部分原因是会对究竟什么是设计良好的微服务感到疑惑。 数十位 CTO 通过采访分享了他们的经验,这些对话说明了设计良好的微服务的五个特点。本文将帮助指导团队设计微服务。(有关详细信息,请查看即将出版的书籍  Microservices for Startups [1] ,LCTT 译注:已可免费下载完整的电子版)。本文将简要介绍微服务的边界和主观的 “规则”,以避免在深入了解五个特征之前就开始指导您的微服务设计。 微服务边界 使用微服务开发新系统的核心优势 [2] 之一是该体系结构允许开发人员独立构建和修改各个组件,但在最大限度地减少每个 API 之间的回调数量方面可能会出现问题。根据  SparkPost [3]  工程副总裁 Chris McFadden 所说,解决方案是应用适当的服务边界。 关于边界,与有时难以理解和抽象的领域驱动设计(DDD,一种微服务框架)形成鲜明对比,本文重点介绍了和我们行业的一些顶级 CTO 一同建立的明确定义的微服务边界的实用原则。 避免主观的 “规则” 如果您阅读了足够多的关于设计和创建微服务的建议,您一定会遇到下面的一些 “规则”。 尽管将它们用作创建微服务的指南很有吸引力,但加入这些主观规则并不是思考确定微服务的边界的原则性方式。 “微服务应该有 X 行代码” 让我们直说:微服务中有多少行代码没有限制。微服务不会因为您写了几行额外的代码而突然变成一个独石应用。关键是要确保服务中的代码具有很高的内聚性(稍后将对此进行更多介绍)。 “将每个功能转换为微服务” 如果函数基于三个输入值计算某些内容并返回结果,它是否是微服务的理想候选项?它是否应该是单独可部署应用程序?这确实取决于该函数是什么以及它是如何服务于整个系统。将每个函数转换为微服务在您的情景中可能根本没有意义。 其他主观规则包括不考虑整个情景的规则,例如团队的经验、DevOps 能力、服务正在执行的操作以及数据的可用性需求。 精心设计的服务的 5 个特点

开始使用 Wekan 吧,一款开源看板软件 | Linux 中国

这是开源工具类软件推荐的第二期,本文将让你在 2019 年更具生产力。来,让我们一起看看 Wekan 吧。 每年年初,人们似乎都在想方设法地让自己更具生产力。对新年目标、期待,当然还有“新年新气象”这样的口号等等都促人上进。可大部分生产力软件的推荐都严重偏向闭源的专有软件,但事实上并不用这样。 这是我挑选的 19 款帮助你在 2019 年提升生产力的开源工具中的第 2 个。 Wekan 看板 [1] 是当今敏捷开发流程中的重要组成部分。我们中的很多人使用它同时管理自己的工作和生活。有些人在用  Trello [2]  这样的 APP 来跟踪他们的项目,例如哪些事务正在处理,哪些事务已经完成。 但这些 APP 通常需要连接到一个工作账户或者商业服务中。而  Wekan [3]  作为一款开源看板工具,你可以让它完全在本地运行,或者使用你自己选择的服务运行它。其他的看板 APP 提供的功能在 Wekan 里几乎都有,例如创建看板、列表、泳道、卡片,在列表间拖放,给指定的用户安排任务,给卡片添加标签等等,基本上你对一款现代看板软件的功能需求它都能提供。 Wekan 的独到之处在于它的内置规则。虽然其他的看板软件支持 邮件更新 emailing updates ,但 Wekan 允许用户自行设定触发器,其触发条件可以是卡片变动、清单变动或标签变动等等。 当触发条件满足时, Wekan 可以自动执行如移动卡片、更新标签、添加清单或者发送邮件等操作。 Wekan 的本地搭建可以直接使用 snap 。如果你的桌面环境支持  Snapcraft [4]  构建的应用,那么只需要一条命令就能安装 Wekan : sudo snap install wekan 此外 Wekan 还支持 Docker 安装,这使它在大部分服务器环境和桌面环境下的搭建变得相当容易。 最后,如果你想寻找一款能自建又好用的看板软件,你已经遇上了 Wekan 。 via:  https://opensource.com/article/19/1/productivity-tool-wekan

标 题: Re: golang还有很长的路需要走,需要5年到10年吧

发信人: TeacherWei (TW), 信区: Programming 标  题: Re: golang还有很长的路需要走,需要5年到10年吧 发信站: BBS 未名空间站 (Fri Jan 18 20:35:51 2019, 美东) 当然不全是hype。我不是还在用么? 他们今后5年以内,能把做错的都改过来,就很不错了。 现在这个搞法。至少90%的人其实都用错了。用错了也能work,就是他们不知道正确的 应该咋做而已。 当然,这也不关我的事。我做对了就行了。。。 【 在 cxfcxf (MGM) 的大作中提到: 】 : 有好有坏吧 : golang这个channel的设计应该就是csp的核心 : golang肯定还有段路要走 但是他的确让并发好写很多 想到并发写法 第一个想到的就 : 是golang : 当然对性能有很高很高很高要求的程序 不一定是个好的选择 但是现在这种物质丰富的 : 情况 没有堆机器解决不了的事 又特别是很多大程序现在都拆成microservice的情况下 :  你只要保证能horizontal scale就可以了 : golang能火也不完全是hype 太好写 阿猫阿狗都能写 就是必须理解一下go的 : concurrent pattern

Python.h: No such file or directory

Looks like you haven't properly installed the header files and static libraries for python dev. Use your package manager to install them system-wide. For   apt   ( Ubuntu, Debian... ): sudo apt - get install python - dev # for python2.x installs sudo apt - get install python3 - dev # for python3.x installs For   yum   ( CentOS, RHEL... ): sudo yum install python - devel # for python2.x installs sudo yum install python34 - devel # for python3.4 installs For   dnf   ( Fedora... ): sudo dnf install python2 - devel # for python2.x installs sudo dnf install python3 - devel # for python3.x installs For   zypper   ( openSUSE... ): sudo zypper in python - devel # for python2.x installs sudo zypper in python3 - devel # for python3.x installs For   apk   ( Alpine... ): # This is a departure from the normal Alpine naming # scheme, which uses py2- and py3- prefixes sudo apk add python2 - dev # for python2.x installs sudo apk add python3 - dev # for py

标 题: 全球程序员编程水平排行榜TOP50,中国排名第一 印度31名

发信人: cutdown (关闭), 信区: Military 标  题: 全球程序员编程水平排行榜TOP50,中国排名第一 印度31名 发信站: BBS 未名空间站 (Thu Jan 17 07:20:01 2019, 美东) 哪最近软件工程师水平测定平台HackRank发起了一系列编程挑战竞赛,给出了一个目 前为止貌似靠谱的统计调查结果。 全球数以十万计的软件工程师参加了HackRank的系列编程挑战大赛,比赛项涵盖从 Python、算法、网络安全到分布式系统多个领域,组织方根据开发者的准确性和开发速 度给出一个综合评分。    根据HackerRank最后的统计,中国程序员排名第一,俄罗斯以微弱的差距紧随其后。中 国程序员在数学、函数编程和数据结构项目成绩第一,而俄罗斯程序员则在算法这个最 具竞争性的领域独占鳌头。    被经常拿来对比的中国(第1名)、印度(第31名)、爱尔兰(第32名)和美国(地28 名)的程序员在榜单上的排名分布非常有趣,中国遥遥邻先,而印度、爱尔兰和美国紧 挨着处于榜单的同一区间。    前10名中,除了中国和俄罗斯,以及东亚的日本、台湾地区外,其余都是欧洲国家,分 别是波兰(3)、瑞士(4)、匈牙利(5)、法国(8)、捷克(9)、意大利(10), 其中东欧国家占据三席,表现抢眼。

使用 Ansible 来管理你的工作站:配置自动化 | Linux 中国

学习如何使 Ansible 自动对一系列台式机和笔记本应用配置。 Ansible 是一个令人惊讶的自动化的配置管理工具。其主要应用在服务器和云部署上,但在工作站上的应用(无论是台式机还是笔记本)却鲜少得到关注,这就是本系列所要关注的。 在这个系列的 第一部分 [1] ,我向你展示了  ansible-pull  命令的基本用法,我们创建了一个安装了少量包的剧本。它本身是没有多大的用处的,但是为后续的自动化做了准备。 在这篇文章中,将会达成闭环,而且在最后部分,我们将会有一个针对工作站自动配置的完整的工作解决方案。现在,我们将要设置 Ansible 的配置,这样未来将要做的改变将会自动的部署应用到我们的工作站上。现阶段,假设你已经完成了 第一部分 [1] 的工作。如果没有的话,当你完成的时候回到本文。你应该已经有一个包含第一篇文章中代码的 GitHub 库。我们将直接在之前创建的部分之上继续。 首先,因为我们要做的不仅仅是安装包文件,所以我们要做一些重新的组织工作。现在,我们已经有一个名为  local.yml  并包含以下内容的剧本: - hosts : localhost  become : true  tasks :   - name : Install packages    apt : name ={{ item }}    with_items :       - htop       - mc       - tmux 如果我们仅仅想实现一个任务那么上面的配置就足够了。随着向我们的配置中不断的添加内容,这个文件将会变的相当的庞大和杂乱。最好能够根据不同类型的配置将我们的 动作 play 分为独立的文件。为了达到这个要求,创建一个名为 任务手册 taskbook 的东西,它和 剧本 playbook 很像但内容更加的流线型。让我们在 Git 库中为任务手册创建一个目录。 mkdir tasks local.yml  剧本中的代码可以很好地过渡为安装包文件的任务手册。让我们把这个文件移动到刚刚创建好的  task  目录中,并重新命名。 mv local . yml tasks / packages . yml 现在,我们编辑  package