今日福利:
国内真的卷!……在字节宣布豆包大模型全网最低价之后,阿里云又宣布相当于GPT4的主力模型降价97%,降价后约为GPT-4价格的1/400!然后今天百度智能云宣布文心大模型的两款轻量级模型ERNIE Speed和ERNIE Lite全面免费!这两款模型是今年3月推出的,分别支持8K和128k上下文长度。看来以后也不用到处白嫖各种API了,直接花点小钱甚至免费就有了🥰。
今日随想:
每天总要做点让自己觉得有意义的事,内心才会变得更平静、放松一点。正如我在写,而你正在看:这些注定只有少数人才会关注的东西😄
晚上隔壁的租客小姑娘来敲门,拿了一大桶鲜花过来,怯怯地说:昨天520进货多了,没卖掉,让我们随便拿,不要钱;我们要给钱,她不肯要,一阵推脱;最后我们拿了一束洋桔梗,很漂亮👍;后来我们下楼买了些水果给她送过去,又是一阵来回推托😄。
我后来反思自己:这样一个没有仪式感的人,既不浪漫,又怕浪费(可能大部分原因是钱,小部分原因是环保),是不是对社会的文明和发展,多少起到了一些不良的负面作用?😓😓😓 看来要与时俱进改改,尤其现在环境,更需要提振信心。该花的,还是花吧……
如下两个仓库是前几天刚介绍过的,最近迅速蹿红的,跟并行计算加速有关。其实大背景也是跟人工智能的崛起、对算法、效率提升的需求密切相关。
仓库:HigherOrderCO/HVM
点评: 高阶虚拟机(HVM)是一个纯函数式运行时,具有惰性、非垃圾回收和大规模并行特性。它采用一种新的计算模型——交互网(Interaction Net),这一模型超越了图灵机和λ演算。HVM在某些情况下,对于高阶计算,其性能可能比包括GHC在内的其他方案快得多,甚至是指数级的快。
仓库:HigherOrderCO/Bend
点评: Bend 是一种用于大规模并行计算的高级编程语言。它结合了 Python 和 Haskell 等语言的表达性和特性,无需考虑线程生成、锁、互斥、原子操作等繁琐的概念。运行在HVM上面。
如下两个仓库都是跟Linux上的编辑神器 Vim 相关,为的都是:让Vim越来越易用。
仓库:neovim/neovim
点评: Vim是无数编程高手日常编辑的“神器”,却也是让无数新手望而却步的“鸡肋”😂。它的三种模式:正常模式、插入模式和命令模式常常令新手感到抓狂,但一旦适应后,又恨不得每个软件(VSC、浏览器……)中都装上VIM插件😄。
Neovim 是一个旨在重构 Vim 的项目,目的是简化维护、分散工作量、支持高级用户界面且不修改核心代码,以及最大化可扩展性。它具有现代化的图形界面、多种编程语言的 API 访问、内嵌的脚本化终端仿真器、异步作业控制、多实例间共享数据、XDG 基础目录支持,并且兼容大多数 Vim 插件。Neovim支持 Windows、macOS 和 Linux 系统。
来看张截屏,有没有点VS Code的感觉😄?
仓库:LazyVim/LazyVim
点评: LazyVim 是一个基于 Neovim 的配置框架,所谓“适合懒人的 Neovim 配置”。利用 lazy.nvim 插件,可以简化自定义和扩展Vim配置的过程。它结合了从头开始配置的灵活性和预配置的便利性,提供了一个快速、清洁且预配置的 Neovim 环境。它具备将 Neovim 转变为功能完备的 IDE 的能力,预装了大量插件,并提供了合理的默认设置。支持 LuaJIT 构建的 Neovim 0.9.0 及以上版本,需要 Git 2.19.0 及以上版本以及可选的 Nerd Font 字体。用户可以通过提供的入门模板快速开始使用,并根据需要进行个性化配置。
仓库:alan2207/bulletproof-react
点评: 🛡️ ⚛️ Bulletproof React提供一个简单、可扩展且强大的架构,用于构建准备投入生产的React应用程序。它基于作者丰富的经验,旨在解决实际问题,帮助开发者写出更好的应用。该仓库强调易用性、易于理解和维护、使用合适的工具、清晰的应用部分界限、团队成员间的共识、安全性、性能、可扩展性以及尽早发现问题。它不是一个模板或框架,而是一个有见地的指南,展示了如何以特定方式进行开发。文档包含应用概览、项目标准、结构、组件和样式、API层、状态管理、测试、错误处理、安全性、性能和部署等部分。遵循MIT许可。
仓库:adrianhajdin/portfolio
点评: 现代与简约的 JS 大师作品集。这个开源仓库是一个现代的 Next.js 个人作品集项目。它使用Next.js构建用户界面,Three.js渲染3D元素,Framer Motion创建动画效果,并通过Tailwind CSS进行样式设计。作品集展示了开发者的技能,并且具有以下特点:引人注目的介绍、现代布局、互动3D设计元素、动态推荐区域、突出显示的工作经验、创新使用HTML5 Canvas以及响应式设计等。项目还提供了详细的快速入门指南,帮助开发者本地部署和运行。此外,还提供了代码段和配置文件,以及如何获取项目使用的资源的链接。
作者通过vercel部署的网站看上去也挺酷的:minimal-portfolio-swart.vercel.app
仓库:iluwatar/java-design-patterns
点评: 这个开源仓库叫"Design patterns implemented in Java",即:“设计模式Java版”,它是一个用 Java 语言实现的设计模式集合。官网在这儿:https://java-design-patterns.com
设计模式是程序员在开发软件时用来解决常见问题的最佳形式化实践。
设计模式通过提供经过测试和验证的开发范例来加快软件的开发。
重用设计模式有助于防止引起重大问题的细节错误,还能为熟悉模式的程序员和架构师们带来更好的代码可读性。
该仓库由开源社区中经验丰富的程序员和架构师共同打造,提供了各种设计模式的高级描述和源代码。源代码示例有详细的注释,可以作为如何实现特定模式的编程教程。此外,该仓库还提供了一些软件开发原则的链接,建议在深入研究设计模式之前先熟悉这些原则,比如KISS原则(Keep It Simple Stupid),不忘初心,保持你的傻白甜,你,还记得么?😄
仓库还提供了多种方式来浏览设计模式,包括:使用难度标签:入门难度,中等难度和专家难度、按名称搜索特定模式、使用标签(如 Performance、Gang of Four 或 Data access)筛选,或使用模式类别(如 Creational、Behavioral 等)。
想起来20多年前,自己还是学生时,跟组里师兄弟们一起翻译 GoF 的设计模式第一版;而10年前,在《软件工程》课上跟学生讲:那些学校不会教、但又很有用的技术就包括这个:毕业求职时很可能会被人拷问的“设计模式”……
现在各种编程语言、App框架和UI框架,无一例外的,都用到了不少设计模式;而至于IT求职面试,怕是不会再问设计模式这么 low 的问题,现在的面试问题,估计早就卷上天了吧……😭
仓库:NaiboWang/EasySpider
点评: 之前介绍过的:易采集,一个可视化浏览器自动化测试/数据采集/爬虫软件,可以无代码图形化的设计和执行爬虫任务。别名:ServiceWrapper面向Web应用的智能化服务封装系统。
仓库:mainmatter/100-exercises-to-learn-rust
点评: 这是一个面向初学者的,自己决定进度的 Rust 学习课程,通过从零基础开始,一次一个练习,最终解决100个练习题,来逐步掌握Rust编程。
官网:https://rust-exercises.com,按照指示就可以开始学习。
仓库:extrawurst/gitui
点评: GitUI是一个用 rust 编写的,用于 Git 的极速终端UI 🦀,提供了快速直观的键盘操作,无需记忆大量快捷键。它支持查看、提交、修改变更,包括钩子功能;支持暂存、取消暂存、回滚和重置文件、块和行;支持存取、推送和拉取远程分支;浏览和搜索提交日志、差异比较等。GitUI界面响应灵敏,支持异步Git API,还支持子模块和GPG签名。目前处于测试阶段,适用于个人使用,但可能包含错误和缺少功能。支持多种操作系统和包管理器安装,也提供了构建和自定义配置的指南。欢迎赞助和贡献代码。
通过解析整个Linux的Git存储库(超过900k的提交),作者比较了 lazygit, tig 和 gitui,数据如下,可以看到,gitui在花费时间、内存占用、UI响应、稳定性等四项指标上,几乎都是遥遥领先,唯一输了的一项是:二进制文件的大小。gitui 的 1.4 MB 略大于 tig 的 0.6 MB!其实都已经很迷你size了……都是做精品的完美主义者👍,简单说就是:啥都想要!😂
仓库:rashadphz/farfalle
点评: Farfalle是一个开源的AI驱动搜索引擎,支持本地运行大型语言模型(LLM)或使用云服务。它提供了一个在线演示,并允许用户在M1 Macbook Pro上使用llama3模型回答问题。技术栈包括Next.js前端、FastAPI后端、Tavily搜索API等。用户可以克隆仓库,设置环境变量,并通过Docker运行容器来启动应用。部署时,后端可以部署到Render,前端可以使用Vercel进行部署。
仓库:danielmiessler/fabric
点评: 3月份介绍过的,Fabric 是一个利用人工智能增强人类能力的开源框架。它提供了一个模块化/结构化的框架,使用一组可在任何地方使用的AI提示来解决实际问题。fabric 的核心是“模式”(Patterns),即具体的AI应用案例(即:提示)。
用户可以通过命令行工具直接调用这些模式,也可以构建自己的服务器来提供模式服务。此外,fabric 还支持创建自定义模式和集成第三方AI模型。该项目由 Daniel Miessler 于2024年1月创建,并持续更新以融入新的功能和改进。
仓库首页有两句话让人印象深刻,一句话是关于这个仓库的What和Why:
自 2023 年和 GenAI 开始以来,我们已经看到了大量用于完成任务的人工智能应用程序。它的功能很强大,但是要将这个功能融入到我们的生活中却并不容易。
In other words, AI doesn't have a capabilities problem—it has an integration problem.
换句话说,人工智能不存在能力问题,而是一个集成的问题。
一句话是关于仓库的Philosophy(哲学):
AI isn't a thing; it's a magnifier of a thing. And that thing is human creativity.
人工智能不是一个独立的东西,而是一个东西的放大镜,那个东西就是人类的创造力。
We believe the purpose of technology is to help humans flourish, so when we talk about AI we start with the human problems we want to solve.
我们相信技术的目的是帮助人类繁荣,所以当我们谈论人工智能时,我们从我们想要解决的人类问题开始。
仓库:expo/react-conf-app
点评: React conf 2024是一个用来查看2024年React大会的日程和场地信息的App,这个仓库是App的源码。编译好的App可以从Google Play和Apple Store中下载。
仓库用到了一个跨平台的框架:Expo。Expo 是一个开源的、基于 React 的应用开发框架,它允许开发者使用 JavaScript 和 React 来构建跨平台的应用程序,包括 iOS、Android 和网页应用。Expo 提供了一系列的 API 和工具,使得开发者可以更容易地实现应用的各种功能,如访问设备的相机、相册、GPS、加速度计等。
仓库:poteto/hiring-without-whiteboards
点评: ⭐️ 开源仓库 "Hiring Without Whiteboards" (没有白板的招聘)列出了那些在招聘过程中不进行“白板”面试的公司或团队,作者认为,这样的公司是“招聘流程没有漏洞的公司”。
关于这个,想等空些,专门写篇文章聊聊,希望对求职者和招聘者都有所帮助。
仓库:joye61/pic-smaller
点评: Pic Smaller(图小小) 是一个简单易用的在线图片压缩工具,拥有直观的用户界面,支持压缩配置。它可以智能压缩 JPEG、PNG、WebP 和 GIF等格式的图像。由于是纯本地压缩,没有服务器端的逻辑,因此非常安全(隐私)。
这是一个纯vite + React的项目,使用了现代浏览器技术如OffscreenCanvas、WebAssembly和Web Worker。
用法 - 本地部署:
# Clone the repo
git clone https://github.com/joye61/pic-smaller.git
# Change cwd
cd ./pic-smaller
# Install dependences
npm install
# Start to develop
npm run dev
用法 - 网络部署:
图小小部署在 vercel,你可以通过访问 pic-smaller.vercel.app 来使用。网络限制的话,国内可以访问 picsmaller.com。
第三方依赖:
ant-design 提供基于React的UI解决方案
wasm-image-compressor 提供基于Webassembly的PNG图片压缩实现
gifsicle-wasm-browser 提供基于Webassembly的Gif图片压缩实现
仓库:yt-dlp/yt-dlp
点评: yt-dlp是一个开源的、功能丰富的命令行音频/视频下载神器。用于下载来自数千个网站的音频和视频文件(试了下,似乎不支持微信公众号中的视频下载)。它是youtube-dl项目的分支,基于不再活跃的youtube-dlc。yt-dlp支持多种下载选项,包括视频选择、下载选项、文件系统选项、缩略图选项、互联网快捷方式选项、详细程度和模拟选项、解决方法、视频格式选项、字幕选项和认证选项等。此外,它还提供了安装插件、嵌入yt-dlp到其他程序以及从youtube-dl迁移过来的一些变化和新增特性。用户可以通过命令行选项或配置文件来配置yt-dlp的行为。
命令行支持的功能很强大,不过没有GUI,用起来比较费事,但真要写个好的易用的GUI发挥这个命令行工具的所有功能,可能代价比写这个工具还大……想一下80:20原则就明白了。😄
仓库:weaviate/Verba
点评:Verba 是一个由 Weaviate 提供支持的检索增强 (RAG) 开源聊天机器人,旨在提供一站式、流畅且用户友好的检索增强型生成(RAG)界面。它允许用户通过简单的步骤探索数据集并提取洞察,支持本地或通过大型语言模型(LLM)服务提供商如 OpenAI、Cohere 和 HuggingFace 进行操作。Verba 结合了 Weaviate 的上下文感知数据库和大型语言模型的分析能力,通过直观的聊天界面与数据互动,利用对话上下文优化搜索结果,提供更准确和相关的信息。
安装 Verba 非常简单,可以通过 pip 快速部署,或者从源代码构建,甚至使用 Docker 进行部署。用户需要根据所使用的技术设置相应的 API 密钥,如 Weaviate、OpenAI、Cohere 和 HuggingFace。此外,Verba 还支持数据的无缝导入,支持多种文件类型,并通过 Weaviate 的混合搜索和语义缓存技术提高查询效率。
Verba 的项目架构和实现细节在技术文档中有详细说明,开发者在贡献代码前应阅读这些文档。项目遵循开源贡献准则,欢迎社区成员提出建议、反馈或报告问题。
一图胜千言,最后来看几张图片吧: