每日文章收集-20230706
【今日关注】
程序员如何在chatGPT的世界中生存下来
人工智能,尤其是由大型语言模型(LLM)驱动的生成式人工智能,可能会颠覆许多程序员的职业生涯。然而,“你必须担心那些使用人工智能来替代你的人“,在似乎即将到来的以大型语言模型为核心的编码时代,程序员该如何生存和发展呢?
坚持基础知识和最佳实践
尽管有众多基于人工智能的编码助手可以帮助完成代码和生成代码,但编程的基本原则仍然存在:能够阅读和理解自己和他人的代码,以及了解所编写的代码如何融入更大的系统中。
程序员仍然需要具备对代码进行分析和调试的能力,以及对问题解决和算法设计的理解。
问题解决仍然是最重要的编程技能之一,仍然属于人类编程人员的领域。分析问题并找到优雅的解决方案仍然是备受推崇的编程专长。
不要陷入将自己与人工智能进行比较的陷阱,人工智能本质上是大型模型的统计输出。开发者的工作与模型的输出有所不同——成为一名开发者不仅仅是编写多少行的代码。—————— Explosion公司的联合创始人兼首席执行官Ines Montani
问题解决能力是一个综合的技能,它要求编程人员具备分析能力、创造力和逻辑思维。通过理解问题、拆解问题、设计算法以及实施和测试解决方案,人类编程人员能够提供独特的洞察力和创造性解决方案,而这些是人工智能无法完全取代的。因此,继续培养和发展问题解决能力对于在人工智能时代中成为优秀的开发者至关重要。
每日文章收集-20230704
【今日关注】
如何在数字时代高效学习
作者曾经沉浸于获取各种数字信息,包括TED,博客,hacker news,电子书等等,这给了他一种在学习的感觉,让他觉得自己是个“聪明人”。
直到几个月前,作者开始怀疑这种习惯的学习效率。虽然他在消费大量的电子信息,但是到了真正需要的时候,他只是大概知道知识的轮廓,而不清楚具体的知识内容,这种情况对于他当下的场景毫无用处。
摄入的信息跑到哪里去了呢?
学习是一种将信息转换为长久知识的过程。信息是短暂的,知识是基础。把知识看作是人的话,信息就是这个人的一张照片而已。
理论上如果堆积足够多的信息,它最终会转化为知识。但是作者读了那么多的商业类新闻,却最终没有得到足够多的商业知识。
作者花了八个月时间去研究元学习是怎么回事:人类究竟是怎么学习的?
每日文章收集-20230703
【今日关注】
用iPad编程是一个错误
作者买了个M1芯片的iPad,寄希望于可以实现轻量级的编程。
为什么要选择iPad?
- 首先是为了能够阅读编码类的书籍,这方面,kindle几乎没法阅读代码书籍,用电脑看太大,体验不佳,只有iPad是完美的选择。
- 另一方面,苹果在2021年的WWDC上发布了在iPad上可用的Swift编码程序。
iPad在哪方面表现优秀?
- 很多很多。写作,制表,音乐制作,视频剪辑。
- 可以用笔的操作也很棒:笔记,绘画,照片编辑,以及用Final Cut Pro编辑你的视频。
配件准备
- 由于想要编程,所以作者买了magic keyboard。ipad搭配magic keyboard可以拥有mac上80%的体验。
- 搭配了鼠标,iPad上新增的鼠标指针功能在使用了一段时间后,发现它也非常好用。
- 第二代ipad pencil非常棒,可靠而精确。
每日文章收集-20230630
【今日关注】
书信圈(letter circle):什么样的社交媒体让你着迷?
这是一篇关于专业社交圈的产品设计文章。
很长一段时间以来,在地理分散的世界中,人与人交流的方式都是书信往来。直至博客出现时,依然会以长篇形式表达自己的独特观点,同行们用关心和理解进行回应,就会得到治愈和启发。
如今取而代之的是社交媒体的腐蚀性洪水,以牺牲思考为代价,换取广告友好的垃圾信息。甚至在历史上重要的学术期刊界也演变成了一个闭塞噪音的内耗官僚机构。当前的系统存在着严重不协调的激励机制,无法鼓励有趣的写作。
作者希望利用他在游戏中探索的社交系统设计的一些经验,创建计划性的社交架构,促进长期存在的社区。
书信圈(letter circle)的基本结构
- 有人在感兴趣的主题领域创建一个群组。
- 他们邀请最多50位拥有相关专业知识的人加入该群组。
- 每个成员每年必须发布至少一封关于该主题的长篇信函,并通过电子邮件发送给所有群组成员。也可能存在一个网络界面。
- 他们还必须至少回复其他人的两封信函。
- 如果成员未满足要求,他们将在年底自动被踢出群组。
- 招募阶段,任何成员都可以推荐新成员,然后新成员将通过自动邀请过程加入。
每日文章收集-20230629
【博文一览】
background-removal-js:免费开源的背景移除脚本
通过该脚本可以在浏览器环境中直接移除图片的背景,无需担心多余的性能开销或者隐私顾虑。
其主要的功能特点有:
- 浏览器上的背景移除:消除了额外的服务器成本。通过利用本地设备的计算能力,用户可以享受快速高效的背景去除过程。
- 数据保护:完全运行于浏览器端。无需任何数据传输到别的服务器,因此数据是绝对安全的。
- 与IMG.LY的CE.SDK(作者的另一个项目) 实现了无缝集成,使开发人员能够轻松地将强大的浏览器内图像抠图和背景去除功能整合到他们的项目中。
本地使用安装步骤如下
每日文章收集-20230628
【今日关注】
更快的机器,更慢的机器
这篇文章的作者在推特上发布了两段视频,他用了一台装了windowsNT 3.51的旧电脑和一台装了windows11的新电脑,分别打开并关闭了windows的原生应用:命令行工具,资源管理器,记事本和画图。结果是,旧电脑没有任何延迟,新电脑却出现明显的加载延迟。这俩视频在推特上引起大量的关注和转发,大部分人都表示认同视频里的展示结果并发出了抱怨:为什么机器硬件越来越好,响应速度却越来越慢?
第一版对比视频
作者的第一版视频对于两部机器的介绍是:
- 一台搭载AMD K7-600处理器、128MB内存和5400转/分钟的硬盘的计算机,运行着Windows NT 3.51操作系统。这是一台1999-2000年的机器,而其操作系统比它还要旧约5年左右。
- 一台配备英特尔Core m3处理器、8GB内存和运行Windows 11的SSD的Surface Go 2。这是一台三年前发布的机器,原装搭载Windows 10,但官方支持升级至Windows 11。
后来被人指出surface go的配置是错误的,因为作者错误的引用了Surface Laptop Go 2的配置。同时由于app已经预先打开过,所以都在内存中已经存在,这次的对比显然不够公平。
每日文章收集-20230626
【今日关注】
vrite: 开源无界面内容管理系统(CMS),适用于编程博客、文档等
vrite开源的专用于写作技术内容的CMS系统。根据官网介绍,具有几个特点:
- 简洁的UI
- 内置看板界面,可以轻松管理任意规模的产品流程
- 所见即所得,支持markdown和快捷键,协同写作等
- 对技术写作量身定做,支持高亮,自动补全等
- 提供API和webhook,与各种前端界面轻松集成
- 完备的权限管理系统
基本概念介绍
Vrite使用三个概念来组织管理内容。
- 工作空间(Workspaces):独立的单元,用于存储许多内容组(Content groups)、配置API访问或编辑体验的设置,以及关于整个团队及其角色的详细信息;可以创建或被加入到任意数量的工作区。
- 内容组(Content groups):如果熟悉看板界面的话,这就相当于看板仪表中的列,用于组织内容碎片(Content pieces)。
- 内容碎片(Content pieces):相当于看板界面中的卡片,用于编辑具体的内容,包含实际的内容和相关元数据。
使用工作空间
点击侧边栏切换工作空间。
在该界面选择或新增工作空间。
每日文章收集-20230621
今天尝试下详细介绍一篇有意思的博文,和若干篇值得一看的技术资讯。
今日关注
同时在三个平台上发布我的独立游戏,在财务上却失败了
作者讲述了自己在2013到2015年开发了一款独立游戏,叫做Toto Temple,并在2015年9月在PS4, Xbox One, Wii U 和 Steam上发布,最终销售额却不佳,作者回顾这一段经历,并分析可能的原因。
销售额
下图是销售额和开发成本的对比。
左边是各个平台的销售占比,右边是成本,包括了市场营销,代码开发,移植,图形开发等。到作者发文时,游戏总共卖出了6000份,远远达不到他的开发成本。
为什么这个游戏开发了两年?
作者说到开发过程中并没有什么具体的规划,只是抓住了各种机遇。
他回顾了第一年获得了Ouya公司(Ouya是2013年成立的一个游戏机公司,已在2019年倒闭)的投资,几乎没花任何自己的钱上线了Toto Temple Deluxe版本。并且初期反馈也相当不错,这让他觉得很有成就感。
第二年作者和三大平台的游戏巨头进行了接触,并且获得了认可。然而由于游戏已在ouya发行,因此无法获得另一份的独占协议。这种情况下,他的开发团队决定在三大平台发行游戏,基于两点考虑:
- 三个平台可以获得三倍销售额。
- 同时在三大平台发行可以获得一定的关注,并能够和三大平台的老总进行对话。
一周文章收集-20230619
OpenLLM:开源的大语言模型
通过OpenLLM,可以使用任何开源的大型语言模型进行推断,将其部署到云端或本地,以及构建强大的人工智能应用程序。
需要服务器安装python3.8或以上以及pip。
安装命令
1 | pip install openllm |
验证是否安装正确
1 | $ openllm -h |
启动LLM服务器
1 | openllm start dolly-v2 |
以上命令会在 http://localhost:3000 发布一个前端页面。
命令行中使用
1 | export OPENLLM_ENDPOINT=http://localhost:3000 |