防止 WSL 下 git 显示所有文件修改过
如果常在 Windows 下使用 git,则修改 WSL 中 git 设置:
git config --global core.autocrlf input
如果常在 WSL 中使用,则修改 Windows 默认设置:
git config --global core.autocrlf false
系统从大硬盘无损迁移到小硬盘的方法备忘
(好久没写东西,博客也一直没时间迁移,实在是很丢人,谢谢大家还没取关。)
一般来讲迁移硬盘数据都是小硬盘到大硬盘,很多硬盘对拷软件也只支持源盘小于目标盘的数据迁移。有的支持从大到小迁移的软件也是按文件复制。对于一些隐藏分区或者特殊格式的分区来说,这种复制方式可能丢失数据。我研究了半天摸索了以下方法,作个备忘与参考。
思路是:新建一个 vhdx 虚拟硬盘→大盘拷进虚拟盘→虚拟盘缩容→虚拟盘拷进小硬盘
关键节点在于虚拟盘缩容,这样可以保证每一步对拷都是逻辑上的小盘到大盘。注意大盘上的实际数据量不能超过小盘容量。
这个思路很绕,我暂时没有想出更好的方式。如果有更好的思路或者工具请一定不吝赐教。
1 新建虚拟盘这个很简单,Windows 的磁盘管理就可以。注意新建 vhdx 格式的,否则后面缩容的时候还要花时间转换。虚拟盘最大容量要大于大盘一点,选择动态容量即可。
2 大盘拷进虚拟盘在 Windows 的磁盘管理里先把虚拟盘挂载上,一般新建之后会自动挂载。盘符分不分都行。然后随便找个硬盘对拷软件,比如 DiskGenius,把大盘对拷到虚拟盘上。对拷的时候不要选择创建新的硬盘 ID。这一步就 ...
联通宽带更新后登陆指南
北京联通的校园201宽带一直限制登陆数。以前我们使用用户名添加 @wo201 ,密码添加 /001 字符的方式直接路由器拨号。但七月中旬一次更新之后该方法失效,加密方式改变。
最近不少人回学校了问我怎么拨号,写个教程比较方便。
先介绍一下新的 pppoe 加密方式
参考了 FanZheng’s blog :
只是想知道怎么上网的可以跳过这段。
真实账号=账号+@wo201(这个跟原来的没有变化)
真实密码=动态pin码+密码
而这个动态pin码,是访问http://114.247.41.50:9343/aaa/get/pin?user=账号这个地址返回的json数据中的pin字段。它是个6位数字,大约10秒会更新一次。
也就是说,在这种加密方式下,想要使用PPPoE拨号,就得在10秒内完成获取pin码、填写密码和进行拨号的步骤,对于路由器来说,还是有点麻烦的。最关键的是每次拨号都要改一下密码,因此操作频率就取决于路由器是否断电以及联通设置的一次拨号的最长连接时间了。
那个返回动态验证码的页面,传入的账号即使是随机数字也能返回,说明是服务器端的一个算法动态生成的。
再介绍一下现在 ...
BJUT 抢课器
- 为什么别人都能抢到课,我抢不到?- 那别人买彩票还中奖呢。
更新了一下,现在支持生僻字姓名了。智障 Windows cmd 万年 GBK 编码,我也很为难啊。
反正我今年不缺课啦
警告
本程序并没有什么卵用,只能捡漏,不要觉得是我把你的课抢走了。
本程序随时可能报错卡死退出,可能导致您的电脑起火爆炸,请务必不要在无人看管时使用本程序。
本程序导致的一切后果,作者都不承担。
更新修复了姓名中含有 GBK 以外字符时崩溃的问题。重构了所有代码,现在本程序对用户友好了一些。未在高并发期间测试过,不保证服务器不正常时的运行结果。高峰期间如果无法登录,尝试修改重试次数与 base_url ,使用 IP 地址替代域名可以规避 DNS 解析失败风险。
用法:
在 userinfo.py 中填入学号密码
在 course.py 中填入要选的课全名,和它在搜索结果中的位置序号,用于定位重名课程。
风险:
概率很低的情况下,如果重名课程的排序发生变化,会选错。
存在完全选错课的可能性。请在退课截止前停止程序并检查是否选了不需要的课。
适用于正方教务系统暴力抢课,不讲道理。具体修 ...
北工大野生助手
北工大查分野生助手(野生工大助手)。是王雨峰童鞋带头写的一个工大查分小助手。后来申请了星火基金,现在由我和雨峰共同维护。具体说明还在写,先写更新日志。
昨晚更新之后很多童鞋说加权和绩点都变了。是这样的,我们更新了绩点的算法,根据教务处的文件,绩点的计算也是要按学分加权的。而加权平均分的部分之前因为学校的数据格式不统一,导致了部分人的新生研讨课也被算进了加权。更新之后能识别出这部分新生研讨课,所以新的加权分就不包含研讨了,导致一部分同学的加权变化。
昨天访问量达到了 18392,谢谢大家!
以后也请大家多多支持啦!
项目地址:https://github.com/wangyufeng0615/bjuthelper主页:http://chafen.bjut123.com内测版:http://bjut.devchen.cn
更新日志2017.1.12
添加了更新日志。
微调了总科目数的提示文字,避免歧义。
修正了未通过科目数计算错误。
修正了中文成绩(等级)导致的科目计算错误。
增加了可折叠的通过/未通过成绩统计。
2017.1.11
修正了由新生研讨课的中文课程成绩和数据格式 ...
配置 Shadowsocks 服务时 iptables 中的一处坑
前几天把 ss 服务器从 ConoHa 迁移到 Linode 的东京2节点,丢包情况有所改善。
迁移后为了安全我重新配置了防火墙,只允许需要的端口通过。但在配置 ss 梯子服务时遇到了坑。在放行 ss 端口的情况下,ss 的手机客户端发生无法解析地址的情况,关掉防火墙则服务恢复正常,电脑端也一切正常。
iptables 配置如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A OUTPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACC ...
Resilio 私有云的文件同步方案
国内的云服务该倒的都倒了,剩的也都是一些残废。加上最近买了一个小笔记本随身带着,多设备间工作文件的实时同步变得非常重要。尝试了 Dropbox 、 Google Drive 、 付费坚果云等多种云服务之后,我最终选择了 Resilio (原 BTSync )来搭私有云。
1. 最初的尝试Resilio 是基于 P2P 的文件同步服务,它把文件分散存储在参与同步的节点上,在同一子网下甚至可以通过 LAN 高速同步。类似 BT 下载的 DHT 网络保证即使客户机没有公网地址也能打洞。起初我只在我的主电脑(几乎不关机)和随身的小电脑上部署了 Resilio ,但主电脑使用的山寨百兆宽带十分不稳定,小电脑在同样不稳定的网络下(对我说的就是你, BJUT 校园网)几乎无法连接主电脑上的节点,即使侥幸连上,速度也只有幽默的十几K。没办法,只能放弃。
2. 为什么放弃坚果云然后我开始尝试各种商用云服务。国外的各类云服务虽然成熟,但速度全都非常感人。最后在各方安利之下换了坚果云。但坚果云的收费方案非常有意思,按流量收费。免费用户每月最多上传 1G,下载 3G。我数了数我需要保持同步的文件,大概有 8G ...
北工大校园网主机保持公网在线
由于各种各样的原因,总有的时候希望自己的主机在校园网里长期在线保持公网连接,以提供一些服务。但一方面校园网的 web 认证对 *nix 命令行很不友好。虽然在之前的文章里我提到过使用 curl 的方式从命令行登录。但如果闲置半小时左右没有数据包发出,连接会被自动踢掉。
另一方面还有可能发生流量用光了扣钱,钱扣完了被踢掉等情况,导致我们的内网主机不能稳定在线。也无法通过 ngrok 等内网穿透技术实现公网访问。
因此我搞了一个小程序,它可以每分钟检测一次登陆情况,如果未登陆外网则会从预定的账号列表中挑选可用账号自动登录。如果已经登录则会检测已使用流量是否超限,并自动更换下一个可用的账号。
如果不幸列表中的账号流量均超限了,还可以设置一个保底账号,无视流量限制而保持在线,虽然代价是可能扣很多钱。
每个月月初流量重置时,会自动重置账号列表。
还附带了 linux 和 windows 下的自启动脚本,直接放进 rc.local 或者 Windows StartUp 里就可以了。
内网挂服务的同学可以放心地挂机了。
Github 主页: https://github.com/SykieChen ...
GitHub readme 中许可证图标的添加
逛 GitHub 的时候经常能看到别人的 readme.md 里有各种许可协议的图标:
许可协议是什么我就不说了,这里讲一下这种统一格式的图标怎么获取。
查看相应的代码发现大部分图标都来自
http://shields.io/
这个网站。
棒棒哒,不过这个主页上的索引是不全的,许可证只能看到 MIT 一种。
所幸 GitHub 上有一个统计了该站大部分许可证图标链接地址的项目:
https://gist.github.com/lukas-h/2a5d00690736b4c3a7ba
好了,要啥有啥,Markdown 格式都是现成的。
北工大网关的命令行登录
今天在内网装了个 Linux 机器,CentOS 6.8,没装图形界面,也没有命令行浏览器。因为校园网是需要在 web 页面登录网关后才能访问外网,但连不上外网就不能用 yum 装浏览器。
所以如果不用麻烦的本地安装,这就是一个先有鸡先有蛋的死循环。
然而。
我们使用 curl 直接模拟登录的 post 请求就好咯。
1curl -d "DDDDD=UserName&upass=Password&v46s=1&0MKKey=" "http://lgn.bjut.edu.cn/"
返回的页面标题是“登陆成功窗”就 OK 啦。
把微博找狗游戏刷到溢出
今天在微博上看到一个找狗的小游戏:
简单地说就是在一堆表情里找出 doge 的表情,限时一分钟。作为一个程序猿手贱人,我第一反应就是要去刷掉这个榜单。
首先想到用按键精灵的自动搜图去自动点击,于是迅速写了个简单的脚本:
12345FindPic 0,0,1600,1000,"Attachment:\doge.bmp",0.5,intX,intYIf intX > 0 And intY > 0 Then MoveTo intX + 15, intY + 15 LeftClick 1End If
执行之后刷出了161分:
由于按键精灵的解析速度有限,161分基本是一分钟内能刷出的上限了,难以搞一个更大的新闻出来。于是就想到了直接修改代码。这里有两条路可走,一是修改游戏代码本身,以类似于游戏修改器的思路改成绩,或者干脆延长总时间。再一个就是伪造游戏结束时向服务器发的比分数据,直接改成绩。根据经验判断后者应该更方便,于是开 Fiddler 抓包:
发现在时间剩余十秒时会向服务器请求当前前20名的用户列表,是一个 json, ...
EasyX 框架实现透明图片显示的 trick
很多学校教授 C++ 图形编程时,为了规避 Windows 下 VC++ 较为复杂的绘图 API,都会(强制)要求学生使用 EasyX 这一绘图框架。该框架十分简陋地实现了初学者所需的图形功能。同时,此框架也存在大量不足,最为不便的就是不支持 png 格式图片,不支持透明背景绘图。
鉴于此框架的 putimage 函数支持三元光栅操作码,我们可以利用掩码位图来变相实现透明背景绘图。参考了 http://code.qtuba.com/article-15636.html
1. 创建一个掩码位图掩码位图是一个单色位图,它的黑色部分就是位图显示时要保留的部分,白色部分就是要透明的部分。这里使用马里奥举例:原图:
掩码图:
2.把掩码位图用SRCINVERT(XOR)方式叠加到原图白色XOR白色=黑色(白色的RGB都是255,1^1=0),黑色XOR任何颜色=原颜色(0^0=0,0^1=1)。操作完成后原图的透明区应被黑色填充。也可以直接用黑色填充原图。
3.把掩码位图用SRCAND(AND)方式叠加背景中白色and任何颜色=原颜色(1&1=1,1&0=0),黑 ...
多说 JS CSS 的本地化与站长回复和 UA 信息的添加
多说评论系统被很多中文网站使用。网上有很多添加站长回复标记和浏览器操作系统信息的方法。但大部分均已随着多说 JS 的更新而不再有效或存在兼容性问题。我参考了这些教程并重写了相关代码以改进显示效果。
先上图:
可以解析 IE/Egde, Chrome, Safari, Firefox, Opera 等浏览器以及常见的几种国内壳浏览器。微博微信内置浏览器也可解析。系统方面除了做了 iPhone/iPad 区分外,还加入了对1%的WP支持=。=已有的教程多修改为带圆角矩形背景的文字, 难看的一笔 不是十分的优雅。因此我改为了无背景,彩色加粗文字。以及在无法识别的时候会显示 奇怪♂的浏览器 和 奇怪♂的操作系统 字样 增加情趣 提示用户。
1. 多说 JS 和 CSS 的本地化多说引用的 JS 脚本地址为 http://static.duoshuo.com/embed.js,搞下来,改个名字或者不改也行。我这里改为 ds_embed.js 并放置到主题目录 /source/js/ 中。
多说的 CSS 分为两部分,其一为通用部分,即多说后台设置的“主题”所包含的。这部分无需本地化。 ...
Favicon 站点图标的各平台适配与移动端优化
网站的 favicon 图标在各平台上的显示效果很难保证。而这个图标又是网站识别的重要组成部分。这里详细介绍一下在 Android, iOS 以及 Windows 三大平台上网站图标效果的优化。
1. favicon 图标的格式早期网站多使用 ico 格式,该格式允许一个文件里同时包含多个分辨率版本的图标。缺点是显示时必须拉取整个文件,若嵌入的图标较大则会导致不必要的带宽开销。
而如今更流行的是嵌入多个 png 格式图标并作出分别说明,根据需要拉取合适的图标即可。这样的缺点是需要写入很多行的 meta 标签。
2. favicon 图标的大小这就是一个大坑了。桌面端浏览器中,图标为 16×16;添加到 Windows 任务栏的时候,需要 32×32 以及 48×48 大小。而 Windows 8 以上的磁贴界面中,我们还需要 70×70, 144×144, 150×150, 310×150, 310×310 大小的图标,以及指定的背景颜色。而在移动端就更加令人呵呵呵了。早期非 Retina 屏幕的 iOS 设备中只需要 57×57,而 iPad 和 Retina 屏幕出现后,要想 ...
格式化 JSON 的 Chrome 插件
安利一个格式化显示 JSON 的 Chrome 插件,JSONView:http://jsonview.com/
这货不光有 Chrome 插件,还有 Firefox 的。
使用前:
使用后:
是不是一口气上五楼都不费劲了
Chrome 插件链接:
https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc