10 年后,即使你“游泳”到港澳台地区,你也只能看到少量蜜汁和谐过的内容。
至于大冤种会员?哦,他们只能看三体动画
其实最开始垃圾瓢虫安利的是 Emby,但是这公司似乎是掉到钱眼里面了:
就很离谱,不想每个平台都买?那你得订阅 Premiere(我现在还不能理解为何这点功能能卖 $54 一年)
为了恰烂钱,甚至把他们的代码闭源了
而 Jellyfin 是 Emby 3.5.2 版本的一个开源 Fork,自由且免费。
Jellyfin seeks to continue development of the original Emby project with a Free Software ethos. It is committed to bringing all its users access to the best possible Media System, developed entirely by a community of volunteers who contribute code, documentation, translations, and support to the project.
《About Jellyfin》
Jellyfin 安装很简单,可以用 Docker,可以直接下载运行,而我的选择更简单——AUR
毕竟是 .NET 开发的软件,对运行环境没有依赖,直接交给 systemd 管理即可
由于 NAS 本身数据都在 ZFS 上,就直接开了一个 Jellyfin 的 Data Set,关闭了压缩和去重。
官方给的目录结构要求:https://jellyfin.org/docs/general/server/media/shows
1 | Shows |
这类个人推荐使用 Root > (Series) > (Season) > (Episode).xxx
的结构,可以降低元数据拉取的难度。
动漫的来源主要有 3 类:
其中 1 2 比较简单,直接配置下载目录到媒体库中,或者下载后移动过来即可
3 的话略微麻烦一点,需要保留一份原始结构用于挂种,之前我用的 ZFS 自动去重,现在更推荐走软连接
Jellyfin 最大的问题是内置的几个数据源对动漫支持非常差,基本上只有像名侦探柯南这种才可能有元数据。
其实也还行,不过搜索的时候最好用日文名去搜,我现在是 Bangumi + TMDB 双持了
好在 C# 我也会一点,于是整了个 bgm.tv 的数据源插件:
https://github.com/kookxiang/jellyfin-plugin-bangumi
安装后在媒体库设置中勾选 Bangumi 这个数据源就能用上。
这个插件核心功能之一是自动识别集号,还记得官方的命名要求吗?文件名得有 [E01]
[S01E01]
这样的内容才行。
实际上国内字幕组在命名的时候五花八门,有 番剧名 - 01
,有 [番剧名][01]
……
而且还会在文件名里带上奇怪的内容,比如 [1080P]
[10bit]
[h264]
还有部份文件名带了 CRC32 Hash 的。
直接带来的问题就是在默认情况下 Jellyfin 会识别成第 1080 集等奇怪的集数,一个个重命名过于麻烦,且对于 RSS 这类自动下载文件名的需要手动修改就更麻烦了。
所以插件内内置了几个常见的正则,涵盖了上面的几种情况,可以自动识别出正确的集号返回给 Jellyfin。
此外插件还会使用 bgm 上的评分和标签数据,这样界面上显示的评分和推荐视频会更科学。
别忘了登录授权下,这样能自动推送观看进度(自动点格子)
搭建好 Jellyfin 以后就可以直接在网页版看了,不过受限于浏览器,能够硬解的内容实在少得可怜,还是更推荐使用客户端看。
另外为了提升服务端上转码效率,我给 NAS 插上了矿潮时斥巨资 ¥450 购买的半高 GeForce GTX 1050 Ti
装上 nvidia-dkms 以后重启服务器,后台启用 NVENC 转码即可
如果还想折腾,可以打下破解补丁,解除消费级显卡上的 NVENC 数量限制
https://github.com/keylase/nvidia-patch/
这里必须安利 jellyfin-mpv-shim 这个官方项目。
它的原理十分简单,在 Jellyfin 上选择投屏到它播放后,它就会自动调用 MPV 进行播放。
由于是走的投屏,可以使用手机登录 Jellyfin 进行远程控制,我这种床头吊显示器的用户表示爽翻了。
jellyfin-mpv-shim 自带的 MPV 已经内置了 Anime4K 的支持,按回车键进入菜单后选择对应的 Profile 即可。
MPV 也是能够用上 SVP 的插帧能力的,不过 jellyfin-mpv-shim 已经内置了支持,参考 readme 打开开关并配置使用 SVP 安装目录下的 MPV 就行了。
PS:这套方案我也在 macOS 上跑通了,但是 Macbook Pro 的性能…… 此外还要占用一个 SVP 授权,咕咕咕了
之所以这几个放在一起说,是因为 Infuse 时苹果生态中最好用的媒体库软件,我的 iPhone / iPad / Apple TV 都用它。
如果你看的内容不涉及 4K HDR 以上的话理论上是不需要订阅的,不过它是在我 Apple TV 上唯一能正常播放杜比全家桶 Demo 还非常流畅的。
使用非常简单:新增文件来源中点击最下面的添加,菜单中直接可以添加 Jellyfin。
访问我的媒体库主要有 3 种方式:
如果你想体验一下,可以联系我获取地址
]]>呃,这个事情怎么解释呢… 也不是故意要咕…
主要吧… 工作这种东西就很忙…
而且我又不擅长写作,一写起内容来跟便秘似的
才不是嫌原来那个博客太丑,然后想自己或者找人设计一个新主题最后放弃
总之现在终于弄了个新的博客,用上了之前买了很久的域名 kk.sb
用 Hexo 的目标也非常简单,希望新的博客能专注于内容,不整那些花里胡哨的东西
不知道有没有人看,剩下的内容就吐槽下之前考虑使用的博客系统 锐评各大博客系统
老博客用的就是 Typecho
优点
当然也有缺点
同属 PHP 系的博客系统,应该是目前用户量最大的
优点:
缺点:
基于 node.js 的博客系统
优点:
缺点:
Medium 是我看到最理想的博客系统了,其实我原本是打算直接用它的,甚至里面草稿箱还有半篇文章
优点:
缺点:
嗯… 公司弄的东西…
其实准确的说是 Alipay Inc. 的东西
优点:
缺点:
因为可以静态化部署所以出名,
优点:
缺点:
嗯,最后选了 Hexo 先用着,如果后续有更好的选择也能方便地迁移过去
]]>CPU:AMD Ryzen 5 1600X Processor
内存:G.SKILL Ripjaws V Series 16GB (2 x 8GB) DDR4 Memory
硬盘:Samsung MZVLW256HEHP (PM961) 256GB SSD
基本配置就是这些,当然,SanDisk 的 SSD 是为了这次安装黑苹果系统新买的。因为不想影响原有的 Windows 的分区结构。
首先第一步是下载最新的 High Sierra 镜像,并写入到 U 盘(我用的是 SanDisk CZ80,现在最新升级款是 CZ880)。
其实装黑苹果并不是没有苹果设备,相反我手边就有一台 MacBook Pro。黑苹果最诱惑的地方在于它的性能,比如我的 Ryzen 如果拿来日常开发的话构建编译速度绝对比 Intel 的移动 CPU 好得多。
而且,装 High Sierra 首先你需要一台 Mac。
先下载最新的系统镜像:打开 App Store,搜索 High Sierra;等到下载完成后不要点击继续,直接 cmd + Q 退出安装程序。
首先将 U 盘改成 GPT 格式并格式化成 HFS+:
然后打开终端,使用命令将安装程序写入 U 盘:
1 | sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --volume /Volumes/kookxiang/ |
U 盘写好了以后不要急着推出,下载 Ryzen 内核补丁 解压
用 Finder 打开 U 盘,按下 cmd + shift + . 显示隐藏文件。
复制压缩包中的 Ryzen_Kernel_10.13/PreInstall/Prelinkedkernel/prelinkedkernel
文件 到下面的两个目录覆盖:
顺便将 PreInstall
和 PostInstall
两个文件夹放进 U 盘备用。
下载 Clover 配置工具 运行,找到左侧的 Mount EFI,挂载 U 盘的 EFI 分区,使用 Ryzen_High_Sierra_10.13_EFI.zip 解压覆盖。
确定你的 BIOS 没有开启奇怪的配置,或者直接重置一下,关闭 CSM 模块,这样 Clover 和 Windows 10 开机画面分辨率可以变成 native 的。开启 EHCI 和 XHCI Hands-off,确保 USB 能够正常工作。串口并口这种 20 年前的端口顺便就关了吧,就算开了你也没有对应设备的… HPET 建议打开,由于早期 Ryzen 官方超频软件依赖这个功能我就提前打开了。
需要注意的是直到 Clover 安装完成前硬盘都是没办法启动的,建议在 BIOS 中选择首选启动方式为 U 盘,使用 U 盘中的 Clover 启动安装程序或安装好的系统。
如果你像我这样比较慌,可以把 M.2 SSD 拆了,拔掉其他硬盘的 SATA 线,避免手滑一时爽。
接下来就可以使用 U 盘启动了,在 Clover 画面中选择 U 盘,稍等片刻就可以进入安装界面。如果出现禁止符号,别慌,这是玄学问题,洗洗脸重启几次就好了。
进入安装界面以后,点击上面的实用工具 - 磁盘工具。分区并格式化这里应该就不用说了,但是需要记住磁盘的名字,比如我这里用的 Hackintosh
,中间不要空格。完成后退出回到主界面,接下来就跟白苹果一样一路下一步了。
安装完成后会自动重启,但是不要进入系统!
还记得我们的 PreInstall 和 PostInstall 吗?选择从安装 U 盘启动,打开终端,执行 /Volumes/Image\ Volume/PreInstall/pre
,填写上一步中的磁盘名称。如果磁盘名称有空格或者其他特殊字符的,自己改脚本吧…
这一步的主要目的是复制补丁文件并替换系统内核为 Ryzen 修改版。
如果没有报错,重启电脑,选择从 Hackintosh 启动,会开始走进度条,其实这才是真正的系统安装过程。
等待进度条走完后再次选择从安装盘启动,打开终端,执行 /Volumes/Image\ Volume/PostInstall/post
替换内核。
替换好后重启,选择从 Hackintosh 盘启动,配置系统并创建账号。
这里不推荐绑定 iCloud,进了系统在绑都不迟。
系统部分基本就 OK 了,接下来需要安装 Clover,可以下载之前提到的 Clover 配置工具,同时挂载 U 盘和系统盘的 EFI 分区,将 U 盘的 EFI 文件夹复制到系统盘上,出现覆盖提示时选择”合并“。
接下来可以删除一些安装程序用的兼容组件,推出 U 盘,打开 /Volumes/EFI/EFI/Clover/kexts/Other
文件夹,删除 DummyUSBXHCIPCI.kext
、DummyUSBEHCIPCI.kext
、GenericUSBXHCI.kext
三个补丁。
为了让 Ryzen 在 macOS 下全速运行,使用 Clover 配置工具 打开 clover.plist,在启动参数中增加 busratio=xx
,其中 xx 为倍频。例如我这块 1600X 日常超频到了 3.8G,那么这里就写成 busratio=38
,因为 Ryzen 超频基本都是超倍频,外频默认都是 100MHz,如果你改了外频的自己慢慢算吧。
GTX 970 驱动还是比较简单的,首先到 Clover 配置工具 中点击安装驱动,点击安装 EmuVariableUefi
,到 NVIDIA 下载 最新的 Web Driver 安装即可。
由于苹果本身配的显卡就是 ATI 的,所以 A 卡用户基本可以免驱动跑,有问题再搜吧。
确认基本 OK 后,重启,这回终于可以脱离 U 盘开机了,确认各功能都正常就告一段落了。
最后晒图:
]]>加上之前用树莓派来做 NAS,百兆的网口和 USB 2.0 的速度根本不能满足需求…
所以一开始准备组一个 NAS,本来准备组个 J1900 啥的,结果因为偶尔还想撸撸 World of Warshits,所以干脆还是加钱上了 i3(i3 默秒全)
配置方面的话,用的最辣鸡的 7 代酷睿 i3 7100,默频高达 3.9G,简直就是 excited 啊!
主板方面自然是选得 B250 芯片组,因为个人对技嘉比较有好感,最后选的是 B250M-D3H 这款。一方面由于准备上 Micro-ATX 的机箱,所以只能挑小板;加上之前买的傻多戴 U2417H,最后发现这显示器只有 HDMI 和 DP(含 MiniDP) 两种接口,所以主板方面选了款带 DP / HDMI 输出的先用着。
内存方面在二手东上随便选了个 8G * 2 的套装(结果一直蓝屏,最后发现有一根抽了,联系京东上门换货,不得不说下二手东这个服务…简直了)
机箱的话选了一款铝制的 乔思伯 C3,还有喜闻乐见的大侧透(毕竟主板说他带了灯,感觉不上测透也浪费嘛),这款机箱虽然是 ITX / Micro-ATX 的,却可以使用标准 ATX 电源,这样方便了不少。
电源考虑到加显卡以及带多硬盘的需要,选了安钛克的 Neo ECO 550,毕竟之前也在用,接口够用,关键是不会爆炸。
另外因为主板有 M.2 接口,直接就上了块 256G 的爆炸星 PM961,插到主板上就行,不需要占机箱空间,毕竟现在装机 SSD 还是标配嘛。
最后把树莓派挂的那块 3T 的硬盘接了上去。
用了几个星期之后,偶尔打了把战舰世界,发现即使是低画质帧率也没法看。
唉,没办法,谁叫我们是辣鸡集显呢,于是权衡了下老黄的 1060 和偷电大师 RX 480,最后还是支持了农企,毕竟手头上想玩的游戏比如大光头一直是 N 卡负优化。
最后整机下来大致花了 4500 左右,各类游戏基本最高画质都没啥压力。
目前只发现 GTA 5 好像会掉帧… 谁叫咱是假 4 核呢,把画质调到高来玩咯,CPU 感觉还是不太需要升级……毕竟大部分时间不需要他满负荷。
最早挖坑的时候主要是为了这个活动的自动签到,然而现在这个所谓永久活动也结束了…
最早用 Go 实现了验证码的自动识别,这回跟着 dalao 用 python 重写了一遍,然后修改了下验证码的学习算法,让获得的样本更准确(现在验证码识别率居然近似到 100% 了)
因为 python 的脚本改起来比较容易,如果有新活动的话加个配置就可以实现,目前主要签到的是陆海双雄的活动,等新活动出来加就是了
研究了下傻逼空中网的接口,现在签到的时候会自动检测是否已签到
用到了 PIL 来读取图片像素,然后用 requests 包发请求
]]>通过这个脚本,可以轻松精简 Android QQ,仅保留基础的聊天相关功能。
使用方法:
PS:详细步骤请见注释
PSS:脚本需要 Root 权限
PSSS:不用 Root 权限也能进行部分精简(无法操作 data 分区),如有需要自行修改脚本执行即可
脚本地址:(请自备梯子)
https://gist.github.com/kookxiang/1104e898f270c9a7a0784f70979ec532
花了 2 天的时间,重写了相关代码
主要是针对 PHP 7.0 的兼容处理,使代码能在 PHP 7.0 下运行
其次,把签到部分改用 Go 语言实现,多线程签到实测高峰期 CPU 占用率约 0.3%,内存占用 4MB
可以大大减少签到对服务器资源的消耗,可以与其他服务同时部署
由于 3 年间百度登录接口变化,原有登录接口已被废弃无法使用,故本次重写了 BDUSS 的 Chrome 获取扩展
可以通过 https://api.ikk.me/reborn/proxy.htm 页面向扩展请求获取 Cookie
另外由于签到部分(Go)已经实现和主程序的分离,现在可以实现签到端与网页端分开部署。
个人建议将数据库放在签到端保障系统稳定,网页端通过远程连接到数据库进行管理操作。
目前新版正在进行封闭测试,两位数的用户可以在 2 分钟内完成所有用户签到
现在正在考虑进行更多用户的测试,如果我认识你,相信你已经收到邀请码了,如果没有,可以私下找我联系
New:加入 Telegram 群,不定期发送邀请
]]>这个问题其实很早就知道了,只是当时以为是微软的 bug,然后加上 IE 用户不算多,就暂时放置了。
这个问题怎么看怎么像浏览器的问题,于是准备到 stackoverflow 提问的,偶然看到系统推荐的一条类似问题
大致解释下,MP3 是有损压缩格式,浏览器没办法根据时间找到对应的文件流位置(然而并不知道 Chrome 是怎么做到的),所以会出现如此鬼畜的时间。
解决办法只有换用 OGG 格式的无损音频
然而这下问题更大了,IE / Edge 压根不支持这格式… 可以点击这里查看 OGG 的浏览器兼容情况
根据浏览器兼容性报告,似乎只有 MP3 格式兼容性最好…
直到后来找到了 AAC 格式,兼容性报告在这里
而且 ACC 格式的 currentTime 也没有问题
于是目前就先用 ACC 格式存放歌曲,待浏览器兼容性改善再考虑用 OGG
]]>[15:31] 刚刚
[15:31] 开firewalld 端口扫描都有开起来,但是就是不通
[15:31] 搞了一两小时没搞定
[15:31] 火一大 -y remove iptables
[15:31] ……..
[15:31] network没了
[15:31] 233
[15:32] 我在想。
[15:32] 数据库怎么办
[15:35] 终端能进
[15:36] 但是没 network 啊 = =
[15:36] 我是不是大傻逼
[15:36] NetworkManager
[15:36] 没了
[15:36] 只有 127.0.0.1
言归正传,那么如何修复 CentOS 的网络连接呢?
参考了 AskUbuntu 上的解决办法
首先我们需要通过光盘启动,然后在网络连通的情况下挂载磁盘,chroot 进根目录,然后通过 yum 安装
于是要了 Conoha 的后台账号密码,连上终端
因为是 VPS,加载光盘不是问题
载入光盘后重启,选择 Troubleshooting -> Rescue a CentOS system
这逼居然帮你自动挂载好了分区……好吧
ping 8.8.8.8 发现不通
ifconfig 发现网卡正常,但没有有效 IP 地址
没有的话我们就手动添加嘛 ifconfig eth0 163.44.*.* netmask 255.255.254.0
(隐去后 16 位 IP 地址)
然后 ping 8.8.8.8 发现还不通……
突然反应过来好像还有个默认网关没配……
于是乎又 route add default gw 163.44.*.* eth0
ping 8.8.8.8 通了,接下来就好办了
1 | chroot /mnt/sysimage/ |
重启后登录服务器,ping 8.8.8.8 正常,问题解决
]]>这是 Windows 8+ 中推出的一项新功能,可为消费者提供一种保护文件的新方式。它将取代 Windows 7 中现有的 Windows 备份和还原功能。
最重要的一点,它是增量备份的,不用担心上千个备份会占用大量磁盘空间
配置方式非常简单,在控制面板中点击“文件历史记录”,设置好备份的磁盘启用就行
要添加自定义目录,可以新建一个库,例如代码库,然后将要包含的文件夹(例如E:\Workspace)加到库中,那么里面的文件将会自动备份
来自微软的视频介绍:
你可以对库中任意文件右键,选择“还原以前的版本”进行还原:
看完最新一集实在忍不住去补漫画了
好像是第二次等不下去动漫直接翻的漫画(第一次是FA)
这番剧情真心虐,贴一下结局好了
以下内容涉及剧透,自己看着办吧
1 | 被我用权宜之计带来的你,和想象中不同。 |
有的时候经常会需要一边维护一个 Git 库,一边将代码部署到服务器上
例如团队共同进行开发,希望 commit 后自动部署到团队的测试服务器上,就可以采用下面的办法
首先先在服务器上创建一个 Git 库
1 | git init --bare |
然后打开 .git 文件夹,找到 hooks 文件夹,创建一个 post-receive 文件
1 |
|
然后给这个文件赋予执行权限即可
由于我提前在网站上 git clone 过,于是直接 Pull 就行了
由于这是开放的库,就没有限制 .git 文件夹,如果需要限制可以在上面加 rm 命令,或是 nginx 屏蔽
当然想简单的话个人推荐把 git pull 换成 cp 简单粗暴
首先不得不说下,typecho 并没有给登录预留插件接口,只有登录成功和登录失败的处理接口,登陆界面也没有可以插入的地方,所以这回直接对 Typecho 源代码下手了
首先下载修改后的 Typecho 分支:
https://github.com/kookxiang/typecho
然后执行 SQL:
1 | ALTER TABLE `typecho_users` ADD COLUMN `twoFactorAuthKey` varchar(18) NOT NULL; |
(本来可以放到 Typecho 更新程序中自动执行的,考虑到日后升级问题,就没有放过去)
登录到后台,点击控制台
个人设置
,最下方可以看到“双因素认证”,有随机生成的一组 Key,手动添加到 Google Authenticator 或者 Authy 中就可以使用了。当然也可以通过二维码方式添加,不过考虑到 Google API 在国内的可用率还是建议开着梯子访问。
添加到手机之后将当前验证码填写到确认框中点击启用即可启用。此后每次登录后台不论密码是否正确都将要求输入动态密码(增加暴力破解难度)
如需取消,可以登录后台输入动态密码取消。
如果无法登录后台,可以到数据库中清空对应用户的 twoFactorAuthKey
字段
就是这样~
]]>迅雷这骚逼现在学会自动修复 XLServicePlatform 服务了,如果你关闭了这个服务,那么他就会悄悄设置成自动启动模式,没有任何提示
这回直接用 Windows 的权限控制来治一治这骚货
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XLServicePlatform
Start
为 4 (禁用)ImagePath
,比如我用的是 Xunlei.com/AssHole
,防止它自动启动Parameters
子项,删除 ServiceDll
Description
,我就懒得写脏话了XLServicePlatform
选择 权限
高级
添加
选择主体
高级...
立即查找
选择 Everyone
,点击 确定
*2显示高级权限
,勾选 删除
设置数值
创建子项
,然后将上方类型修改为 拒绝
,确定使用可从此对象继承的权限项目替换所有子对象的权限项目
确定
*NPS:Windows 会弹出关于权限的提示,无视就好
PSS:要是迅雷将来学会修改权限了,就干脆把整个项的所有权限都禁了,既然这么贱就大家都别都写了
Illegal mix of collations (gbk chinese ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
搜索后大概意思是说数据库编码不对。
我就郁闷了,数据库是 GBK 的,字段是 GBK 的,程序也是 GBK 的,怎么会编码有问题呢?
绕过计划任务进入论坛,发现论坛中文全部乱码了。
难道是我导入数据的时候有问题?于是乎我又重新用 GB2312 导出一份,上传到服务器,依然不行。
反反复复折腾一个小时之后,一个偶然的机会下发现 Discuz 下数据库被设置为 lantin 编码,这和 phpmyadmin 看到的不一样啊!
然后又研究了许久 Discuz 的数据库类,明明有设置为 GBK 的,难道没设置成功?
在程序中加入 DB::query() 设置编码,发现居然可以了,这是什么道理??表示不服
难道用 mysql_query() 就不行么?可是 DB::query() 又是调用 mysql_query() 的啊
偶然调节代码顺序的时候,发现移动到 if($this->version() > ‘4.1’) 外侧竟然执行成功了
尼玛原来你才是罪魁祸首
可是这句话有问题么?输出下
10.0.9-MariaDB
尼玛我瞬间就明白了,这是一个字符串,“4.1”也是一个字符串,字符串比较是逐一比较各字符,先判断 1 < 4,然后得出 10.0.9-MariaDB < 4.1
我 QNMLGB,害我倒腾两个小时……
解决办法:
修改 version 方法,return ‘9.9.9’;
为解决这个问题,可采用以下修改办法:
修改文件 source/module/forum/forum_forumdisplay.php,找到 457 行:
1 | $_GET['ascdesc'] = isset($_G['cache']['forums'][$_G['fid']]['ascdesc']) ? $_G['cache']['forums'][$_G['fid']]['ascdesc'] : 'DESC'; |
在下方加入:
1 | // Modified by kookxiang @ 2014-4-8 13:05:07 |
这样便能通过 URL 参数 forceasc 和 forcedesc 控制排序了
]]>本着能省一点是一点的精神,希望离开WiFi范围的时候能自动关掉,于是自己动手写了个。
程序本身不占用任何资源,没有后台进程。自动注册一个网络状态监听器,当WiFi断开一段时间之后关闭WiFi。
值得注意的是,由于 Android 4.0 以上版本的限制,要注册监听器必须至少启动过一次程序,所以装好后需要手动点一下图标。
启动后程序自动隐藏程序图标(因为你点进去也没用 →_→)
之后可能会考虑加个连接充电器的时候自动扫描WiFi,放在无线充电板上爽歪歪(笑
下载在这里:KK Auto Wifi.apk
]]>千万别买 HP 的笔记本了……
真把自己当老大了?还锁 BIOS……
就那几个选项你也好意思叫做BIOS?
如何修改硬盘工作模式:
确保已经开启 UEFI 模式
准备一个 FAT32 格式的 U 盘
下载并解压 BOOTX64.zip,扔到 U 盘根目录和 /EFI/BOOT/
下
重启电脑,按 F9 选 U 盘启动
键入命令:
1 | setup_var 0x39 0x01 |
按 Ctrl Alt Del 键重启,工作模式切换完毕
附各模式和值的对照表:
command | offset | value | |
---|---|---|---|
setup_var | 0x39 | 0x00 | IDE 兼容模式 |
setup_var | 0x39 | 0x01 | AHCI 模式 |
setup_var | 0x39 | 0x02 | RAID 模式 |
很多关于系统优化的文章都提到过 QoS “限制可保留带宽”这个设置项。
系统的默认值是 20%,很多人将它修改为 0%,认为这能起到提升带宽的作用,可是这种修改方法真的有效吗?
我们可以在微软的这篇文章中找到关于这项功能的说明:
像在 Windows 2000 中一样,程序可以通过 Windows XP 中的 QoS API 利用 QoS。所有程序可以共享百分之百的网络带宽,除非有某一程序特别要求带宽优先权。其他程序也可以使用此“保留”的带宽,但请求此带宽的程序正在发送数据时除外。默认情况下,程序在终端计算机的每一个接口上可以预留基本链接速度的 20% 的聚合带宽。如果保留带宽的程序发送的数据量没有完全用完带宽,则保留带宽的未用部分可用于同一主机上的其他数据流。
显然,修改此设定完全不可能实现网络加速,反倒会使某些程序无法获得较高的网络优先级。
所以在这里建议大家不要将这个数值修改为 0%,可以设置为 10% 或是 5%(具体根据你的网络带宽而定),或是直接使用默认的 20%。这个选项对提高网络带宽真的没啥用……
]]>首先我的思路是通过 PHP 插入一段代码,识别到链接中最后一个参数为数字 id 则自动到数据库中查询并 301 到新地址。
于是问了问 Google 大哥,PHP 怎么获得伪静态的地址,这点问题对谷歌来说毫无压力——$_SERVER['ORIG_PATH_INFO']
——就是他,然后便轮到正则了,由于是数字,这部分也很简单:.+\/([0-9]+)\.html
完成了,接下来的步骤便是用 PHP 将这堆东西整理起来:
1 | /* KK's 301 */ |
然后——最后一步当然是找个地方放这段代码啦,根据我对 Typecho 的一些了解,应该放在 index.php 中,这是 Typecho 的核心,所有页面都会被伪静态到这个 PHP 中。
因为我们这里用到了 Typecho 的数据库类,所以代码应该放在 include config.inc.php
的后面(这个 config 文件初始化了数据库类) 其次留意到 Typecho 注释:
1 | /** 开始路由分发 */ |
显然,我们的代码应该放在它前面,不然系统会比你先输出个 404 页面。
好了,我们再打开个以“文章id.html”结尾的页面,看看代码是否正常即可。
(PS:由于我忘了更新CDN缓存,还以为代码错了⊙﹏⊙b)