朱大佬在我一篇上古博文的基础上写了一个更加详细的hexo搭建教程,并且使用了Travis CI持续集成,可以参考一下。

前几天写完了那么长一篇博客,一时手痒,决定把挖坑已久的评论和阅读数量给加上。这也算是静态博客的一种弊端了,不能够不依赖第三方服务添加这种动态的功能。

添加评论

评论没啥好说的,当然选择老牌的Disqus,添加完网站在next配置文件里加个shortname就完事。多说已经死了,当年还是wordpress的时候我也用了好几年。disqus被墙也在意料之中(墙内也没啥好用的这种平台了),评论国内用不了也罢。

阅读数

阅读数搜了一圈,发现还是用LeanCloud的比较多,并且这玩意国内访问也支持。用Google Firestore的话,国内的访问没法统计。注册了LeanCloud国际版,直接参考了这篇文章配置了一下,发现阅读数显示不出来,F12会有如下报错。

1
Failed to load resource: the server responded with a status of 403 () us.leancloud.cn/1.1/classes/Counter?redirectByAPI=cn:1

查了一下,可能是我next的版本太老了(最新版已经7.3.0,而我还在5.x),这个帖子汇报了类似的问题并且已经在某个版本中修复。我的hexo也很老了,于是我决定不管三七二十一先更新一波再说。更新请参考下面的更新章节。

更新完之后,文件名下面的阅读数提示出现了如下提示:

1
Views: Counter not initialized! More info at console err msg.

打开console,可以看到错误提示

1
2
ATTENTION! LeanCloud counter has security bug, see how to solve it here: https://github.com/theme-next/hexo-leancloud-counter-security. 
However, you can still use LeanCloud without security, by setting `security` option to `false`.

按照所给链接的教程部署了hexo-leancloud-counter-security插件,然而在hexo g时遇到如下报错:

1
Error: Cannot find module 'babel-runtime/regenerator'

使用npm安装babel-runtime解决问题。

1
npm install babel-runtime

最后,重新上传到服务器。

1
hexo clean && hexo g && hexo d

更新

Hexo更新

检查更新

1
2
npm install -g npm-check
npm-check

npm-upgrade更新

1
2
npm install -g npm-upgrade
npm-upgrade

这时候npm会告诉你有哪些东西需要更新,并且会给出非常详细的说明,还给出升级指定包的命令,根据提示来即可。

具体还可以参考这篇文章。我还需要研究一下nodejs的模块和依赖等东西,先把坑挖在这了。

NexT更新

5.x升级到6.x可以直接参考官方指南。然而最新版本是7.3.0了,于是我直接git clone了最新版本的仓库,按照配置文件手动重新配置了一遍,只花了几分钟。

!!!如果你像我一样,使用了git来托管你的整个博客的源文件,请删除新下载的主题下的.git文件夹。

经过了半个月的申诉,teamviewer终于解封了我的账户,现在我可以正常使用了。

Abstract

我在实验室部署开发环境的时候,为了图省事选择了TeamViewer作为远程控制的解决方案。随着我一通操作(前后添加了4台并且频繁使用),我成功被TV标记为了商业用户,每个session限时5min并且严重限制连接频率。唉,TV吃相越来越难看了,我只能去官网提交了申诉,不知道何时才能解封。但是作为一个穷的哭出声的(伪)geek,咋能不自己想想解决办法呢?

查了一堆资料和结合自己现有的资源,打算利用FRP+SS+XRDP/VNC来解决这个问题:在任意一个拥有公网访问的地方,通过RDP/VNC协议来访问内网里的一台机器。

Part 0 准备工作

内网穿透的基本思路

内网电脑装上ss-server(sss)和frp-client(frpc),自己的电脑装ss-client(ssc),服务器端装frp-server(frps)。

ssc会在本地(localhost/127.0.0.1)启动一个Socks5 Listener,监听本地的1088端口,即127.0.0.1:1088,并且将监听到的数据转发到服务器的1919端口,即a.b.c.d:1919。运行在服务器上的frps会将接受到的指定端口的数据通过7000端口转发回内网机器,内网机器上的frpc也通过7000端口接收到frps发来的数据之后,再转发给sss的8888端口。sss会监听8888端口,再转发数据到达目的地。这样就完成了整个内网穿透的过程,以VNC为例,即:

VNC viewer发起访问114.5.1.4的请求 -> 127.0.0.1:1088 (自己电脑,ssc监听) -> a.b.c.d:1919 (服务器,frps监听) -> a.b.c.d:7000 (服务器,frps) -> a.b.c.d:7000 (内网电脑,frpc) -> 127.0.0.1:8888 (内网电脑,sss监听) -> 127.0.0.1:5091 (内网电脑,VNC server)

硬件要求

  • 一台运行在内网中,可以连接到公网的电脑。这是你需要在外网远程控制的电脑。
  • 一台你自己的电脑。这是用来控制内网电脑的电脑。

你需要额外拥有:

  • 一台有公网ip的服务器,并且保证内网电脑和你的电脑都可以访问这台服务器。我的服务器正好在村里,延迟比较低。

操作系统/软件要求

实际上对以上三台电脑的操作系统并没有什么硬性的要求,不同的操作系统和桌面环境下都会有对应的解决方案,请自行搜索,思路是不变的。本文中,我使用了:

  • 内网电脑:Xubuntu 18.04 LTS,内网ip:114.5.1.4
  • 自己的电脑:macOS Majove 10.14.6
  • 服务器:Ubuntu 18.04 LTS,公网ip:a.b.c.d

Xubuntu和Ubuntu的区别是,前者的桌面环环境是xfce4,后者是gnome 3。这两者之间的区别有坑,mac系统在一些情况下也有坑,后面会说。

自己电脑

需要ss客户端,这里直接安装SSX-NG。你也可以使用homebrew安装(并且两个ss可以共存),但是需要使用配置文件配置,请自行搜索。

此外,你还需要proxifier来配置代理。谷歌可得可用序列号,如有能力请支持正版。

服务器

更新

1
$ sudo apt update && sudo apt upgrade

此外,下载最新版本的frp,并解压到~/frp。

内网机器

更新,安装软件

1
2
$ sudo apt update && sudo apt upgrade
$ sudo apt install vim openssh-server tightvncserver shadowsocks
  • openssh-server: SSH服务器,ubuntu桌面版只带SSH客户端,不带服务器端,无法远程使用SSH连接。
  • tightvncserver: VNC服务器
  • shadowsocks: 代理。它的作用可比爬梯子大多了2333333

下载最新版本的frp,并解压到~/frp。

Part 1 内网穿透

本章节介绍了如何利用上面安装的一堆软件来实现内网穿透。

内网机器

SSH server配置

SSH这里用来确保vnc服务的可用性,或者在一些不需要图形界面的情况下,ssh就可以完成对应的任务。

使用如下命令查看ssh服务是否启动:

1
$ ps -ax | grep ssh

你应该可以看到ssh-agent(客户端)和ssh-server(服务端),如果没有,使用如下命令启动:

1
$ sudo service ssh start

sss配置

新建/etc/shadowsocks.json,配置sss。输入以下内容,设置代理监听的端口,密码和加密方法。

1
2
3
4
5
6
7
8
{
"server":"0.0.0.0",
"server_port":8888,
"local_port":1080,
"password":"wdnmd_team_viewer",
"timeout":300,
"method":"aes-256-cfb",
}

新建sss服务的配置文件

1
$ sudo vim /etc/systemd/system/shadowsocks-server.service

复制粘贴(ExecStart后面的-c之前的路径是sss的地址,可能会有细微不同,可以通过whereis ssserver命令来确定;-c之后的路径是上面的sss自己的配置文件地址)

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
Restart=on-abort

[Install]
WantedBy=multi-user.target

保存之后,启动并开机启动sss

1
2
$ sudo systemctl start shadowsocks-server
$ sudo systemctl enable shadowsocks-server

frpc配置

编辑~/frp/frpc.ini,配置frpc通过7000端口与frps通信,并且将服务器端1919端口转发来的包转发到本地8888端口。

1
2
3
4
5
6
7
8
9
[common]
server_addr = a.b.c.d
server_port = 7000

[ss]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 1919

编辑frpc服务配置文件

1
$ sudo vim ~/frp/systemd/frpc.service

修改ExecStart和ExecReload后的路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/username/frp/frpc -c /home/username/frp/frpc.ini
ExecReload=/home/username/frp/frpc reload -c /home/username/frp/frpc.ini

[Install]
WantedBy=multi-user.target

设置frpc开机自启动并启动frpc

1
2
3
$ sudo mv ~/frp/systemd/frpc.service /etc/systemd/system/frpc.service
$ sudo systemctl start frpc
$ sudo systemctl enable frpc

服务器设置

编辑~/frp/frps.ini,配置frps通过7000端口与frpc通信。

1
2
3
[common]
server_addr = a.b.c.d
server_port = 7000

编辑frps服务配置文件

1
$ sudo vim ~/frp/systemd/frps.service

修改ExecStart后的路径

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/username/frp/frps -c /home/username/frp/frps.ini

[Install]
WantedBy=multi-user.target

设置frpc开机自启动并启动frps

1
2
3
$ sudo mv ~/frp/systemd/frps.service /etc/systemd/system/frps.service
$ sudo systemctl start frps
$ sudo systemctl enable frps

自己电脑设置

首先打开SS,添加代理信息,和上面的sss配置信息一致即可。接着将ss切换到手动模式(Manual Mode)。然后点Prefences - Advanced - Local Socks5 Listen Port,记下该端口号(本文中使用1088,你可以自己设置)。这样,ss就配置好了,我们只需要使用proxifier配置指定的APP/网站的流量走socks5代理即可。

首先在proxifier中添加这个代理。打开Proxifier - Proxies - Add,Address为127.0.0.1,port为1088,Protocol为SOCKS VERSION 5,然后点OK。

接着设置我们访问该内网ip时,使用这个代理。Proxifier - Rules - Add,Target Hosts填写内网ip 114.5.1.4,Action为Proxy SOCKS5 127.0.0.1:1088,点ok。

现在,打开terminal,你应该可以使用ssh登录你的内网电脑了。

Part 2 VNC/XRDP配置

我觉得需要先讲一下这里的坑。

VNC对gnome 3存在兼容性问题,而现在的ubuntu默认安装的就是gnome 3,这使得我花费了大量时间来试图解决这个问题。虽然网上有些教程讲的是可以的,但是我并没有成功,反而发现了一些文章在说VNC和gnome 3不兼容,这也是为什么我换了Xubuntu。如果你正在使用ubuntu,don’t panic,因为你可以再新装一个xfce4桌面环境,可以参考这篇文章

XRDP的坑在于,你使用apt install安装的版本是0.9.5,而对于mac客户端来说,XRDP存在一个字库丢失的问题,这个问题在0.9.8版本中才被修复。所以如果你在使用mac作为客户端,可以考虑参考官方教程在内网电脑上自行编译安装XRDP。

VNC

VNC这玩意搞过树莓派的应该都知道,Raspbian自带vnc支持的,早期连个显示器太费劲,大家都用vnc远程控制它。

在终端输入

1
$ vncserver

来配置VNC服务器。密码长度必须介于6-8个字符,超过8个字符会被截断。

1
2
3
4
You will require a password to access your desktops.

Password:
Verify:

vncserver会询问你是否要创建一个view-only password,选择n,不然只能view,不能控制。然后会启动一个编号为1的vnc session(your_hostname:1)。有的情况下会出现报错(和桌面有关),1启动不了,会启动一个编号为2的vnc session,这里需要注意。

1
2
3
4
5
6
7
8
Would you like to enter a view-only password (y/n)? n
xauth: file /home/test/.Xauthority does not exist

New 'X' desktop is your_hostname:1

Creating default startup script /home/test/.vnc/xstartup
Starting applications specified in /home/test/.vnc/xstartup
Log file is /home/test/.vnc/your_hostname:1.log

然后杀死现在的VNC session,备份,修改配置文件。

1
2
3
$ vncserver -kill :1
$ sudo mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
$ sudo vim ~/.vnc/xstartup

在vim中输入以下内容(请谷歌vim用法,不然会变成随机字符生成器233333)

1
2
3
4
5
6
7
8
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

保存文件,重新启动vncserver

1
2
$ sudo chmod +x ~/.vnc/xstartup
$ vncserver :1

会看到如下输出

1
2
3
4
New 'X' desktop is your_hostname:1

Starting applications specified in /home/test/.vnc/xstartup
Log file is /home/test/.vnc/your_hostname:1.log

和上面提到的一样,如果启动:1失败,可以改成:2,启动一个编号为2的session。

XRDP

RDP协议走的就是大chou名ming鼎zhao鼎zhu的3389端口,它在windows上是自带支持的,但是在ubuntu上,你需要安装XRDP。你可以直接参考这篇教程。此外,如果你在使用mac,请参阅上面的#坑#章节。

直接使用如下命令安装:

1
2
3
4
5
$ sudo apt install xrdp
$ sudo sed -e 's/^new_cursors=true/new_cursors=false/g' \
-i /etc/xrdp/xrdp.ini
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp

创建~/.xsession 和 ~/.xsessionrc

1
2
3
4
5
6
7
8
$ echo "xfce4-session" > ~/.xsession
$ D=/usr/share/xfce4:/usr/share/xubuntu:/usr/local/share
$ D=${D}:/usr/share:/var/lib/snapd/desktop:/usr/share
$ cat <<EOF > ~/.xsessionrc
export XDG_SESSION_DESKTOP=xubuntu
export XDG_DATA_DIRS=${D}
export XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg:/etc/xdg
EOF

需要禁用light-locker,不然会有如下报错:

1
2
** (light-locker:2769): ERROR **: 08:09:59.625: Environment variable
XDG_SESSION_PATH not set. Is LightDM running?

使用如下命令来解决这个问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo cp /usr/bin/light-locker /usr/bin/light-locker.orig
$ cat <<EOF | sudo tee /usr/bin/light-locker
#!/bin/sh

# The light-locker uses XDG_SESSION_PATH provided by lightdm.
if [ ! -z "\${XDG_SESSION_PATH}" ]; then
/usr/bin/light-locker.orig
else
# Disable light-locker in XRDP.
true
fi
EOF
$ sudo chmod a+x /usr/bin/light-locker

最后,搜索安装微软官方的RDP客户端Microsoft Remote Desktop,输入你的内网ip就可以访问。

Part 3 性能测试

实际使用中,VNC和XRDP高画质下并不会卡顿。

Part 4 讨论

本方案 vs TeamViewer

有一个显而易见的缺点是,本方案并不是同步和直接控制现有的屏幕,而是新建了一个桌面进行操作。这可能会给一些复杂任务带来困难。不过这也可能也会成为本方案的优点,因为你log out退出到登录界面之后,依然可以通过VNC连接到内网计算机,并且因为是新建了一个桌面,你的真实电脑桌面依然是锁屏状态,这样就保证了你电脑的安全性。

另一个显而易见的缺点是,opengl没办法起来,可能需要virtual opengl之类的库。这对一些需要用到显卡的东西非常不友好。最简单的例子就是,没办法开安卓虚拟机。不过可以通过配置远程ADB解决或者用Scrcpy来进行手机投屏。这实在不行,还能把apk传回来本地再自己装嘛。

好处大概就是不需要再受teamviewer的气了吧233333,没花啥钱搭出来的玩意,要什么自行车。

VPN vs SS

和VPN相比,ss轻量级了很多,并且配置起来也更方便。VPN的主要问题在于握手次数过多,使得大量的时间浪费在了这个上面。不过VPN可以走UDP,但是运营商会有QoS的限制,可能会丢包。

其他玩法

如果内网机器在家中,那稍微配置一下就可以连回家里的局域网了。如果内网机器是一个国内节点,并且国内节点在你家,那你就有了有真实地址的国内ip了(非机房ip),诶嘿嘿嘿。

你也可以把你的网站布置在内网服务器中,通过frp转发出去,这样可以很好的隐藏自己的服务,具体玩法可以参考frp的手册。

现在有个非常不好的习惯,想买个什么东西的时候都会先想一下我需要工作多少个小时才能赚到买这个东西的钱。

李大佬今天去了田纳西,去跟着刘学长读博了,祝他武运昌隆。

今晚在Nico Ranshi大佬的帮助下搭建起了他写的SilverBlog。非常复古的console管理界面让我欲罢不能。准备以此网站来作为我的Ph.D.博客

现在已经很晚了,不禁开始担心自己的头发了。这半个月我的睡眠并不是很充足,摸鱼时间被压榨的很厉害,大部分时间都在搬砖。希望我能找到调节的方式。

一些事情总算是尘埃落定。车买了,毕业去向也定了,接下来的几年里会是我学生生涯的最后一段旅程了。有些彷徨,不过所幸我还有一大堆支持我的人,想来磕磕碰碰也总是能捞个好结果的。

过去的一个学期应该是最struggle的一个学期了。最后赶Master Thesis的due的大约一个月(大约是整个三月和四月第一周)是我持续通宵最长的一段时间了,每天睡到下午四五点起床,吃个晚饭,然后去学校肝到早上8点(其实还有一个原因是我只买到了下午4点-早上8点的parking permit,以及我的实验最好不要有人干扰,不然会很不稳定)。现在想来这段记忆极其不堪回首,也许我有心情的话会在遗忘之前找个机会写下来,希望我可以在phd阶段合理安全时间,多多养生,少掉头发,早日毕业。

在2月份写完那篇博客后不久,我就接盘了杨大佬的旧思域。开了半年,现在车况好得很,感觉非常耐操,不愧是北美四大神车之首。买车之后一个最大的改变就是生活质量(至少在吃饭上)直线提升,有啥想吃的想买的一脚油门就出去买了。当然啦,开销也变得很大,保险+油费一个月得$250左右(保险买的保额比较高的全险)。繁忙的thesis和开销变大导致我居然中止了记账快半年了,这是一个非常重大的错误,我会在最近努力弥补这件事情。自动档开多了之后就非常爽了,手动挡我已经是一点都不会开了。长途我也跑过几次,最远一次一天来回7个多小时往返VA,后来还开了一次往返DC,并且是只有一个不会开车的孙皓陪着我开的。感觉自己已经渐渐的往一个真正的老司机转变了。不过我有时候在路口会很耸,不敢转向;也有的时候胆子很大,头一铁一脚油门就过去了,很危险。希望我可以一直开的很稳当吧。

读博这件事情有些意外,不过思来想去还是决定读了博,毕竟最后一学期struggle的不行,找工作也找不到呀。希望这个决定不是错误的,虽然从做决策的时候来看,这个决定可能是最好的。

备份和重装系统是一件我一直都想做的事情,这次我趁着开始搬砖的机会,狠下决心对我的小y进行了一次大重装。我把ssd和hdd里的数据挑重要的备份了(希望没遗漏下啥数据),然后把两个盘都格了, 在ssd上重装了windows。原来ssd和hdd上各有一个win10,并且引导在hdd上,这下可是非常清净了。一开始我没有想备份旧win10上的qq和微信文件,后来想想还是全都备份了。我本质上还是一个非常恋旧的人,哪怕那些备份的东西我再也不会看一眼,我还是想把它们保留下来,毕竟总会有一份念想在。qq聊天记录的久远是让我始料未及的,最早也许可以追溯到2015年初。

想想这台小y已经陪伴了我5年了。还是舍不得换掉它,也舍不得买个新电脑。

目前有一个用nico ranshi大佬的silver blog重新建立一个学术博客的想法,仅写一些学术内容,和这个博客独立开来。我一直想对这个博客做一些改造,比如升级一下hexo,另外添加上阅读量和评论啥的。但是太懒了,并且博客也没有人看,所以就一直咕咕咕。

写博客真的是一项自娱自乐的活动,不过我还是希望尽可能多的记录下自己的想法(虽然有很多想法写下来的时候就不愿意表达或者变了样),也许大家都有修史的潜在癖好?

睡了睡了,折腾两天小y上的系统终于重装完了,开始空虚.webp

这是第二次不在家过年。明天将会去宿舍和小伙伴们一起过年,订了两桌子菜,还有大佬包饺子。明天下午还要和Prof. Wei meeting,汇报一下SP的事情。准备晚上和学弟吃饭回来再研究怎么汇报。

去年下半年的情况比前年下半年好到不知道哪里去了,也许是因为今年寒假回家陪妹子了。前年跨年的时候实在是难受,浪费了太多时间和精力,不提也罢。

打算买车了,这是一个非常中规中矩的决定。这学期也不打算买permit,买回来可能也就买菜和去Costco开开。等朱大佬买车了我估计坐朱大佬的车多一点,毕竟他在学校可以随便停。最近还在玩GTA V练车,车感渐长。

值得庆祝的是,本拖延症患者再一次整理完了自己的博客和myRuCourse,以及自己的vps,清理了一些没用的东西。虽然这么做极大的占用了我research的时间,但是我依然觉得这时间很值得,毕竟万事开头难,想要让自己忙起来总是要先找点事情干。

最近struggle的时间明显变少了,也许是心态调整过来了,真的想要随缘了。但是内心的坎还是过不去。过两个月看看结果吧。

另外最近也沉迷在几本穿回汉代和明代的小说中(回去点科技树那种),这两个汉族缔造了璀璨文化的朝代,真是让人心向往之。当然,让我回去我是打死也不干的,就那个医疗水平随便都可以死人的,极其可怕。

还有一件非常气愤的事情是今年绿视猪年春晚的logo没有猪,非常难受了,唉,我大汉啊(逃

即将尘埃落定的一个学期,希望诸事顺利,不要像上学期刚开始那样坑,做什么都会出事……

又是半年过去了,上一学期更多的是在焦躁中度过的,博客也没怎么写,写代码的水平也有点落下了,服务器上都快长草了……不过最终也算有了个好结果吧。

新学期开始了,预感到这学期将是决定后面很多年走向的一学期……怎么选都是坑啊。

希望我这学期不会被坑,安心做科研,刷刷题。

(update 10.25: 我这学期被坑死了,出去办的一切事情都不顺利,都要花上1-2个月才能搞定。最近其实遇到的值得记录下来的各种生活上的技术上的东西还挺多的,但是要么太忙了要么有空记下来的时候犯懒。。)

暑假里经历了很多的事情。5月份回家摸了半个月的鱼,6月抽奖抽到了迪士尼的免费门票,于是6月我先去了上海迪士尼,然后奔去北京陪了妹子半个月,还去北戴河玩了几天。端午节之后又和朱大佬从北京飞成都回了电子科大拿我的毕业证书。7月从成都回了南京在津津那玩了几天才回了家。

7月中旬陪我爹学生去长沙考察了一个公司,回来之后就在我爹学生的小公司里打打工写写代码(这也是我没有东西po在GitHub上的原因)。7/8月期间我又去了南京找津津,去城里找妹子若干次,妹子入职之后去上海找妹子若干次,还去上海看了一次风暴冒泡赛。。

最后从上海回美帝之前我粗略算了一下,我这个暑假居然去上海去了7次,大部分都是去找我妹子的,实在是太浪了quq

还有一件值得一提的事情是家里多了三只小动物:皮皮、蛋蛋和多多。皮皮是一只泰日天,蛋蛋是一只土猫,多多的妈妈大概不是个土猫。这几个小伙伴给我带来了很多的欢乐,最气的就是它们和我爹最亲了,不过谁让一直都是我爹照顾他们呢,

其实可以说整个暑假我都在浪浪浪,和我以前的同学们各种浪和告别。

写到这里我才想起来我这个暑假算是毕业季。大四毕业啊。其实我只在成都的那几天有感觉,因为在美帝蹲了一年之后我觉得本科已经是很遥远的事请了,更何况那样一所学校……某些行政总归让人不喜,甚至我回去办毕业手续都吃了两次屎,我所留恋的不过是一起同窗的几人、有教育之恩的几位教授和学校里的一些地方罢了。

不写了不写了,再写就要开始矫情了,我还是多多写代码,免得毕业了只能回家搬砖。

早上和某人的某段谈话让我很不舒服,所以我今天在床上躺了一天来思xiao考ji人dai生gong。

我觉得并不能说她错。

罢了,车到山前必然翻,船到桥头自然沉,走一步看一步吧。

前几天我的主力机y430p(i7-4710MQ 850M 8G 120G+1T)的屏幕闪烁现象变得极其严重,并且伴随着极其严重的电流声,然后很快就自己关机了。
再重新开机的时候发现在bios自检界面电脑就会疯狂闪烁,然后电脑会自动关机。

没办法,只能掏出我的air,把一整套开发环境都弄上去了。

我一度怀疑是我去年暑假清灰的时候没有把屏幕的排线插好,或者是这个房子里有毒。后来室友的台式机也坏了,开机的时候风扇变得很虚弱,无法在显示器上显示出东西。。那可能真的是房子有毒吧。结果今天下午室友的台式机被另一个有台式机的室友修好了,我当时在睡觉,只听到一个放静电。遂起床之后拔了笔记本电源和电池,长按电源键30秒,换了个插座,解决问题。

后来据了解帮我室友修电脑的室友的台式机有时候也会莫名起不来。怕是因为房子24小时暖气不停,太干燥了,静电爆炸多吧。

0%