背景
我最近在开发一个中转网盘程序,网盘自身仅维护目录结构,内容的存储则由第三方块存储提供。
这样的设计下,上传文件的端点需要同时接受参数和内容:
请求参数
阅读全文我最近在开发一个中转网盘程序,网盘自身仅维护目录结构,内容的存储则由第三方块存储提供。
这样的设计下,上传文件的端点需要同时接受参数和内容:
请求参数
阅读全文本博客使用Hexo已经7年了。博文和内容增多后,hexo的生成速度越来越难以满足需求啦。我的个人博客迁移到Hugo近一年了,生成的速度飞快,也没有遇到什么坑,是时候迁移了。顺便还能水一篇文章
我打算使用的主题Stack需要使用到Hugo的扩展版hugo-extended,如果你的主题没有额外的要求,按照普通版即可
Before you start, make sure you have installed Hugo extended version. For more information, see Hugo’s documentation.
This theme uses SCSS and TypeScript, that’s why Hugo extended version is required
choco install hugo-extended
hugo new site-example
cd site-example
我比较old-fashion,喜欢用sub module
阅读全文针对左递归的上下文无关语法$A$,存在一种能够消除左递归的改写方式。 本文将不严谨(?)地证明这一点。
考虑如下语法
$$ A \rarr A\alpha_1|A\alpha_2|A\alpha_3|\dots|A\alpha_m|\beta_1|\beta_2|\beta_3|\dots|\beta_n $$令$\alpha = \alpha_{1\dots m}$,$\beta = \beta_{1 \dots n}$,则可简写为
阅读全文今天天气不错,我打开自己的小网站,准备欣赏下花了N久魔改的主题。敲好URL,提示500。套的Cloudflare提示我,SSL证书过期了。我用的是StartSSL提供的证书,默认有效期90天。而服务器的Linux版本又比较老,无法使用certbot的自动续期功能,所以我啥时候想起来了就手动更新下证书。我这人比较佛系,证书过期也在所难免。所幸更新证书比较简单,certbot --certonly renew就搞定了。
出乎意料的是,这次更新完证书后nginx报错nginx: configuration file /etc/nginx/nginx.conf test failed。真奇怪,certbot仅仅是生成公私钥对,并不会更改nginx的配置;而我自己也好几年没动过nginx了,到底是怎么回事?
「一杯茶一包烟,一个BUG调一天」—— 题记
最近在做MIT 6.S081的Lab Locks的Buffer cache,大致要求是实现一个LRU缓存队列,用于文件系统的块缓存(block cache),在保证线程安全的前提下尽可能的实现高吞吐量。
实验给原始代码是基于双向链表的LRU队列,用了一个自旋锁保护链表和其中所有元素的值,可想而知这个自旋锁的竞争非常激烈
实验给了很多提示,比如将缓存改成哈希表,用链地址解决冲突;给每个bucket配一个锁,不同bucket里的元素互不影响,可以并发执行;用时间戳记录访问时间,避免反向遍历;
我的电脑自从买来就故障不断,无故卡死、无故蓝屏、自动重启。好在频率都不高,忍一忍凑合用。最近一段时间蓝屏的频率激增到了忍无可忍的地步,作为一个Geek,我自然要想办法排查一下原因。蓝屏最常见的错误码是KMODE_EXCEPTION_NOT_HANDLED,IRQL_LESS_OR_NOT_EQUAL,PAGE_FAULT_IN_NONPAGED_AREA,这将凶手指向了驱动。然而「Windows Debugger」却分析不到可疑的驱动,有几次分析甚至将故障原因指向硬件。这让找真凶的过程异常艰难。好在微软提供了一个自带工具「Driver Verifier」,它可以检测驱动程序在运行过程中存在的问题,这给“查案”带来了一丝转机。
最近做了一个AI安全会议的倒计时网站,核心思想类似MVVM:开发者维护一份人类可读的yml,网站则根据这些yml生成对应HTML。开发和维护都比较友好,构建也有脚本自动化
$dest_dir = './public'
$dest_dir = Join-Path $dest_dir 'conference'
New-Item -Type dir $dest_dir -Force
Copy-Item -Path './conference/types.yml' -Destination (Join-Path $dest_dir 'types.yml') -Force
$all_yml = Get-Content './conference/*/*.yml' -Encoding UTF8
Set-Content -Path (Join-Path $dest_dir 'allconf.yml') $all_yml -Encoding UTF8 -Force
$updated_by = git config user.name
$updated_by = $updated_by.trim()
$last_updated = Get-ChildItem -Path(Join-Path $dest_dir 'allconf.yml') | select LastWriteTimeUtc
$content = "$($last_updated.LastWriteTimeUtc),$($updated_by)"
Set-Content -Path (Join-Path $dest_dir 'last_updated.json') $content -Encoding UTF8 -Force
Write-Host $content
唯一剩下的麻烦只有下部署了:
阅读全文作为Python的一个依赖管理工具,Anaconda实现了Pip「全局安装」和virtualenv「本地安装」的折衷,它使用「按名访问」的方式实现环境的隔离,使使用者能够灵活的隔离和共享环境。
阅读全文本文的是台湾大学2020机器学习Semi-supervised leraning的笔记。奉行Lazy evaluation策略,对这些知识更深层次的探究只在绝对必要时完成。
现在是所谓的大数据时代,每人每天产生的数据成千上万。对商业公司来说,数据的收集已经不是问题,但给数据添加标记的工作因为其所需要消耗的人力物力成为老大难问题;而在机器学习中,带标记数据的不足会给模型引入bias。一个很自然的想法是,能不能用这些不带标记的数据来提高模型的泛化性能呢?答案是肯定的。这就是半监督学习。
阅读全文