0X00 叠甲 开局先叠甲,我到现在为止用过一台 Mac mini,一台 Intel 的 MacBook Pro 和一台 M2 Max 的 MacBook Pro,自费购买 MacBook 花费超过 3W 元,累计使用超过 5 年,是个不折不扣的 macOS 用户。我认可很多 MacBook 和 macOS 的设计理念,如果我现在只能保留一台电脑,那极大可能我会选择一台 MacBook Pro。 😡 好了现在开始输出 😡 0X01 难用的包管理器 首先就是这个 homebrew,我在买 MacBook 之前看攻略的时候就看到很多人在吹 homebrew 有多好用,有多厉害,有多方便。他们的说辞一般是:一个命令就可以更新系统里很多的组件、一个命令就可以安装好开发环境、一个命令就可以XXXX。当时我作为一个 Archlinux 用户是有些懵逼的,但是看在这么多人吹捧的份上我也就相信了,心想着「这么多人都这样推荐,应该确实会很好用,如果能像 pacman 或者 apt 或者 dnf 这样的话那确实是很好的」。 结果呢?这个 homebrew…
0X00 没有什么意义但我就是想写的前言 有一说一现在的大模型发展太快了,最开始我列这个大纲的时候是把 deepseek 作为「凑合能用但超级便宜」的一个国产替代品来介绍的,没想到过了个年它直接翻身了,现在甚至能打 GPT-4o。所以我决定现在立刻马上把这篇文章写完,否则没准又杀出来个什么模型,会导致我永远写不完了 🤣 这篇文章的主要受众群体如下: 1. 知道最近 AI 很火,想用用看但是不知道怎么上手的朋友 2. 尝试用过一些大模型,但是觉得接入不方便或者价格高的朋友 3. 想全面接入 AI,让 AI 成为自己得力助手的朋友 这篇文章会介绍这些内容: 1. 成品工具:只需要一个浏览器或者一个 APP 即可访问的最大众化的 AI 接入模式 2. 模型选择:列举常见模型的特点,根据你的需求选择合适的大模型 3. API 接入:不方便接入原生 Claude/OpenAI API 时的优秀替代品 4. 三方工具:通过 API 接入后能大幅改善日常使用体验的一些工具 5. 本地部署:有关本地部署的一些个人看法 那么废话少说,现在开始正文了 0X01 商业化成品工具 想要最快速的接入 AI…
0X00 碎碎念 数数看这已经是我的第六篇年度总结了,每当回过头去看之前的总结就感觉写这些也还挺有意义的。虽然写日记对我来说太困难了,但是写「年记」好像还行,甚至有点乐在其中 🤔 廖凡_饺子_姜文.mp4 说起来小学时候大家都不喜欢家庭作业里有日记这一项,因为要写好多字,而且都没什么可写的。我就不一样了,因为我小学时候的日记全文都是:今天去XXX玩了,很高兴/今天去XXX家写作业,很开心。 🤣 回到正题。今年的生活完全被打乱了,比疫情还在的时候更乱,以至于我第一次 delay 了我的年度总结。哦不是,是完全没有去检查年初制定的计划到现在完成了多少(估计有个 30% 就谢天谢地了),具体是什么情况导致的我后面再说吧。这次给博客列的大纲就是零零散散不成体系,只能说尽力拼凑了一个年度总结出来,不管是长度还是质量肯定是不及去年和前年的万字长文了。那么就直接开始吧。 0X01 专业能力 今年本来的计划是更多的去深入学习之前已经掌握的知识和技能,结果完全没深入哪里去。反倒是之前两年多次「下定决心」要学的 Go…
0X00 你需要一台 NAS 吗 不知怎么的,在移动互联网疯狂发展的今天,反而慢慢开始兴起了自建网络服务这种复古风潮。最近这些年身边的朋友同事越来越多聊到 NAS 了,甚至 B 站上出现了一小撮 NAS 区 UP 主(没错,你知道我说的是谁)。就更不说现在淘宝咸鱼上大量的 NAS 专用机箱,甚至是 3D 打印的定制化版本了。 你真的需要一台 NAS 吗?NAS 说白了就是一块连着网的硬盘,速度比直接插电脑上还慢一些,如果你平日里需要访问数据的设备并不多,且拥有一个台式电脑,那不如先买两块硬盘插上去。通过文件共享功能将台式机转换成一个带有存储功能的兼职 NAS。 如果你家里的多个手机、平板、电脑、电视都需要访问存储,或者你没有台式机可以扩容,那确实可以考虑搞一台 NAS。 我自己的需求是这样的: * 平时喜欢摄影,每次拍摄回来的照片少则 10G 多则 50G,日积月累已经有大几百 G 了,需要备份 * 也喜欢拍一些视频,相机拍摄的码率都很高,随随便便 50G 100G 的,需要备份 * 患有仓鼠症,喜欢囤一些高清电影电视剧来看,总共搞了有差不多 8T 了 *…
0X00 来骗,来偷袭 这次来介绍一个来骗来偷袭的 Python 库:Faker。我们平时经常会跟数据库、跟 csv 这些东西打交道。尤其是当你设计一个数据库表的时候,开发和测试环境中只有空荡荡一个表,没有测试数据就很尴尬。 Faker 就是设计来解决这种问题的,它可以快速生成各种你需要的假数据。安装和使用都非常简单:pip install Faker 就可以完成安装。 这篇 mini 博客的目的是解决「不知道自己不知道」的问题,也就是说明有这么一个库可以做什么,然后介绍简单的用法;具体这个库的完整用法还是要去查看文档。 这里给出一个简单的使用实例: 简单示例 这里仅仅有两条需要注意的: 1. 实例化 faker 的时候记得标记语言,默认是英文信息; 2. 实例化的 faker 每次调用都会生成新的假数据,只需要实例化一次即可; Faker 支持生成非常非常非常多数据类型,这里就不也没必要一个个介绍出来。分享一个我自己的用法:可以用 dir(faker) 的方式看它究竟有多少假数据类型可用,也可以在 iPython 中实例化一个 faker 出来然后通过 faker. TAB…
0X00 前言 不知道为什么,当三个好用的工具在一起的时候就会被称作:三剑客;四个好用的工具在一起的时候就会被叫做四大天王 🤔。 算了,这不重要。 这篇文章的目的是带不了解这三个工具的朋友们简单上手使用它们,默认各位是掌握了 Linux 的基本用法的,其中也会出现有关正则的内容。如果你不懂正则的话建议跳过正则的部分,并且看完这篇文章马上就去学。另外,不要因为正则看起来有点像通配符就按通配符的操作进行下去。 0X01 grep 首先这三个工具中最常用的应该就是 grep 了,它用于从文件中搜索你感兴趣的内容。例如下面的例子就可以输出 /etc/passwd 文件中包含 root 的行 也可以接多个文件,这样输出的时候就会以文件名开头了 下面介绍几个参数: * -i 忽略大小写 * -v 显示不匹配的行(取反) * -n 增加行号显示 * -c 显示总共多少行,而非具体内容 * -r 递归查找所有文件 * -A 也就是 after,即显示匹配行和它后面的 n 行 * -B 也就是 before,显示匹配行和它后面的 n 行 * -C 相当于 -A 和 -B 一起用,显示匹配行和它前后各…
0X00 基础知识 常用 Linux 的各位估计都知道 iptables、firewalld 和 ufw 这三个工具吧,或者还知道 netfilter 这个内核组件。但是他们究竟是什么关系呢?从关系上来讲,可以将他们分成三层:最底层是 Linux 的安全框架 netfilter,上面是用来操作 netfilter 的 iptables,再上层是 firewalld 和 ufw。 其中 firewalld 一般会默认安装在 RHEL 和 CentOS 中,ufw 会默认安装在 Debian 和 Ubuntu 中。不过由于很多人还是习惯直接操作 iptables 所以这次的重点就是它了。很多人会说 iptables 是防火墙,这其实并不严谨,它的标准定义应该叫做 Packet Filter 也就是包过滤工具。而且事实上也是如此,它不仅能够实现防火墙的限制流量功能,还能提供 NAT 转发的能力。 iptables 内部总共拥有 4 张表(table),又有多个链(chain),如下图所示。 既然是「写给新手的 iptables 使用说明」,自然是挑选最重要的一部分来介绍的,也就是 nat…
0X00 什么不是加密 首先要先明确一个问题:我们日常使用非常多的 md5、SHA-1、SHA-256 这些 通通都不是加密 ,这些叫做摘要算法 。一串明文经过加密算法加密之后,是可以再次解密成明文的,但是摘要算法就不行了。 拿最常见的摘要算法 md5 举例:针对任何一个合法输入,md5 都会给出一个固定长度为 128 bit(32 byte)的输出,例如 md5("hello, world") -> e4d7f1b4ed2e42d15898f4b27b019da4。准确来说你是不能通过后面这串摘要值来反推之前的原文是什么的。因为严格来说这一串摘要值可以对应无限个不同的原文。那么摘要算法一般是拿来做什么用的呢?比较常见的是用来校验数据一致性,比如鸡太美同学编写了一个程序放到网上给大家下载使用,但是我们都知道文件传输过程中理论上可能会出错,所以他在上传之前就计算了程序的 md5 并且在传到服务器上之后再次计算…
0X00 Header 相信各位肯定都对 Python 中的基础、常见数据类型和数据结构比较熟悉了吧,不管是 int、float、string、bool 还是 list、tuple、set 用起来应该也都是手到擒来了吧。下面我们就来简单了解一下相对高级一些的 Python 内置数据结构,这些数据结构全都在 collections 的标准库中。 掌握这些数据结构虽然并不能让你「精通 Python」,但起码可以让你的代码更加 Pythonic,也能让你少写几行冗余的代码。 0X01 ChainMap 首先是 ChainMap,光是看名字大概都能猜到这东西的用途了:把 Map 组装为 Chain 嘛。在 Python 中最常见的也就是字典了,所以这个数据结构的主要功能就是将多个字典加在一起。 如果你手上有 100 个字典,现在你需要将他们加在一起,在没有 ChainMap 的时候大概率会写出这样的代码:先整一个 result 作为最终结果的容器,然后遍历这 100 个字典,一遍遍 update 现在有了 ChainMap 之后可以写成这样:将所有的 dict 都作为 ChainMap…
片头胡诌 要说 2023 年跟前几年比起来有什么最大的变化,那应该就是防疫了吧。连续了三年的疫情或者说防疫,终于在 2023 年到来的时候结束了。本以为到了新的一年能报复性娱乐 一把,但是低头看了看兜里的钱,抬头看了看当前的经济形势,一怒之下就...在床上翻了个身 😮💨 不过话虽这么说,毕竟防控还是没有了,今年出行便利程度直接拉满(其实只是回到了应该有的样子而已)。不然按照之前的操作,根本不敢想今年这几次出行得有多费劲。 去年定下的「2023 年度计划」也在这篇博客完成之际到了 Deadline,怎么说呢,俩字形容基本就是「稀碎 」,具体的就打散了放在这个年度总结里说一说吧。离谱的是往前看了两年的总结,好像每年都挺稀碎的,所以这次 2024 年的计划我打算换个形式来设计,争取一年后再次总结的时候不这么稀碎。 那么圆规正转,直接就开始吧 🎉 生活变化 今年生活上的一些变化很多都涉及到了个人隐私,确实不太方便写出来,简单来说就是又有了一个里程碑式的前进吧。硬要选一个来说的话可能就是今年八月份回了一趟家,说起来已经五年没有感受过唐山的八月了,更是已经快要十年没有感受过北方的春天了。…