我的 Github 学生包的最后两天
云服务 Digital Ocean 提供 200 美元的平台信用额度,有效期为 1 年。 之前要绑定信用卡或者 PayPal,现在也可以绑定支付宝了,不过官方警告如果用支付宝绑定的话不能用来搭建代理 Microsoft Azure 无需信用卡即可访问 25+ Azure 云服务以及 100 美元的信用额度。(18 岁以上) 对于 13 - 17 岁的学生,除了没有 100 美元的信用额度外,其他的都一样。 只用学生包很难通过,我是直接发邮件给客服然后发了学信网认证才通过的 Heroku 提供每月 13 美元的免费信用额度,有效期为 24 个月,但是需要绑定信用卡 域名 域名商 优惠内容 Name.com 1年的.live域名 + 1年的隐私保护 + 1年的SSL证书 Namecheap 1年的.me域名 + 1年的SSL证书 .TECH 1年的.tech域名 GitHub 全家桶 GitHub Pro:在您还是学生时提供免费的GitHub Pro。 GitHub Copilot: 在学生期间免费使用 Copilot...
文件链接和输出编码
文件链接和控制台输出编码并没有什么关系,只是我在这里一起写了而已。 内容主要适合 Windows 系统。 文件链接 CMD 命令行中可以使用 MKLINK 命令来创建文件链接。 1234567891011Creates a symbolic link.MKLINK [[/D] | [/H] | [/J]] Link Target /D Creates a directory symbolic link. Default is a file symbolic link. /H Creates a hard link instead of a symbolic link. /J Creates a Directory Junction. Link Specifies the new symbolic link name. Target Specifies the path (relative or absolute) that the new...
LoveLive ~ 实况照片转换中
这篇文章介绍了如何在 Windows 环境中处理 Apple 的 Live Photos 和 Google 的 Motion Picture Format。文章讨论了如何将 Google Motion Photos 分离为独立的 JPEG 和 MP4 文件,如何将 Apple Live Photos 转换为 Google Motion Photos,以及如何使用 ExifTool 和 FFmpeg 等工具手动制作和导出 Apple Live Photos。 前言 Apple 有一个 Live Photo 的功能,拍摄时会同时拍摄一段视频,然后在相册中可以看到这个照片的动态效果,实际上是同时保存了一张照片和一个视频,通过元数据关联在一起。 安卓手机实际上也有类似的功能,一般都是用的 Google 的 Motion Picture Format,这个格式通过将视频 append 到 JPEG 文件的末尾来实现,然后通过元数据提供数据的位置和长度。 我之前用的小米手机拍摄的实况照片,名字格式类似 MVIMG_YYYYMMDD_HHMMSS.jpg,使用的就是 Google...
图片能够记住你吗?
第一次想用写程序的方法来做些事情,是在中学的时候,那时候我有一些图片,它们的名字杂乱无章,好在它们的修改时间是有序的,于是我写了一个小程序,让它按照修改时间来重命名这些图片。 用伪代码来描述这个程序,大概是这样的: code123files.map(file => { rename(file, file.mtime.toStr("yyyyMMDD_HHmmss") + ".jpg")}) 不过这是不够的,有的时候正好相反:图片的名字是有序的,但是修改时间不知道什么时候被改过,比如你从某网盘里下回来的时候,它们的修改时间就是下载时间 code123files.map(file => { file.mtime = file.name.parseDate("yyyyMMdd_HHmmss")}) 有的时候,这些图片恰好是照片,那么它们的 EXIF 信息里就有拍摄时间,这时候我们可以用这个信息来重命名图片,或者,他们的 exif...
图片与视频编码
传统的常见图像格式包括BMP、PNG、JPEG、SVG及GIF等,其中BMP属于位图格式,SVG为矢量图像格式,GIF是一种动态图像格式,PNG则是一种采用无损压缩技术的图片格式,而JPEG则是有损压缩的典型代表。 JPEG JPEG,亦称JPG,可以说是最流行和常见的有损压缩图片格式,根据 w3techs.com 的统计,全球75.7%的网页采用JPEG格式图片。该格式由联合图像专家小组(Joint Photographic Experts Group)于1992年推出,距今已经三十多年。 然而,有损压缩图像格式并非仅限于JPEG。例如,使用iPhone拍摄并导出的照片可能采用HEIC格式;在网站上保存图片时,你可能遇到WebP甚至AVIF格式的图片。此外,对图像格式有所了解的人可能还听说过JPEG 2000、JPEG XR、JPEG...
Back to Regression with PyTorch
首先,一个简单的,烂大街的 Linear Regression 模型,用 PyTorch 实现: 123456789101112131415161718192021# 假定已经引入了需要的库,并且有一个数据集 inputs 和 labelsdataLoader = DataLoader(TensorDataset(inputs, labels), batch_size=32, shuffle=True)class LinearRegression(nn.Module): def __init__(self): super(LinearRegression, self).__init__() self.linear = nn.Linear(1, 1) def forward(self, x): return self.linear(x)model = LinearRegression()criterion = nn.MSELoss()optimizer = torch.optim.SGD(model.parameters(),...
我没有去过巴塞罗那,但是 42
在我为了写操作系统实验而在网络上寻找参考的简单 shell 实现的时候,一个叫做 minishell 的仓库让我印象深刻:框架给的很好,代码也很适合初学者。我诧异为何这么好的项目却只有几个 star,过了几天,Github Mobile 又给我推荐了不止一个十分相似的 minshell。 实际上,不仅框架相同,readme也都标明了一段奇怪的字段: 42 打开其中一个人的 github 主页,这个人自称来自 42 Barcelona,仔细看一下仓库的话,还能看见其它的 42 Core 项目,比如 LibFt 之类的 这到底是个什么?为什么他们一直念叨着这个词汇呢? 我没有去过巴塞罗那,自然不能在当地的街头问 42 有什么含义,我只能在搜索引擎上查找,找到了官网,并被满屏幕西班牙文阻塞住了,等到自动翻译被生产出来才模模糊糊的意识到,这是一个学校, 42 School 的学业安排 进一步了解后发现,42 Barcelona 实际上是 42 The Network 的众多校区中的一部分 42 Barcelona...
使用 Git-filter-repo 来清理你的 Git Repo 历史
或许,你初学 Git 的时候,并不知道有 .gitingore 这个文件或者写的不够全面,导致你的 Git Repo 中有很多不必要的文件。 又或者,你曾经把一些大文件提交到了 Git Repo 中,导致 Repo 的体积变得很大,即使你已经删除了这些文件,Repo 的体积也没有减小。 又又或者,你曾经在你的仓库里写过一些十分羞耻的文章 or 十分重要的密码,你不希望有人能够直接通过 reset 或者 revert 来看到这些文件。 又又又或者,因为各种原因,你的 git log 有各种个各样的合并、变基、重置,导致你的 Repo 的历史变得十分混乱。 那么,这时候,不妨试一下 git-filter-repo 这个工具。 简介与安装 blabla 其作者在 仓库 的介绍中写道: git filter-repo 是一个多功能的历史重写工具,包含了我在其他地方找不到的功能。它大致与 git filter-branch 属于同一类工具,但没有令人沮丧的性能问题,功能更多,设计上在可用性方面超越了简单的重写案例。git 官方现在推荐使用 git filter-repo 而不是 git...
回归与迭代优化
这是一篇关于回归与迭代优化的文章,主要内容包括线性回归、逻辑回归、梯度下降、牛顿法等。 Linear Regression 线性回归 (Linear Regression)是一种用于建立输入变量与输出变量之间关系的线性模型。线性回归的目标是找到一条直线,使得所有数据点到直线的距离之和最小。这个距离可以是点到直线的垂直距离的平方和,也可以是点到直线的水平距离的平方和。 线性回归的目标函数 / 估计函数 (Hypothesis)可以表示为: hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxnh_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn 简单起见,我们把截距项 θ0\theta_0θ0 也加入到 θ\thetaθ 中,这样可以统一表示为: hθ(x)=θTxh_{\theta}(x) = \theta^T x hθ(x)=θTx 其中 x=[1x1x2⋮xn],θ=[θ0θ1θ2⋮θn]x =...
线程,进程与 task
翻操作系统 PPT 的时候,有个地方让我没法理解,在列举线程接口实例时候,给了如下一个表 pthreads...