司白画博客 - 司白画
https://blog.cll.tw/author/1/
司白画
-
搬家与走读
https://blog.cll.tw/archives/day-student.html
2025-10-03T23:00:00+08:00
原来的家本是学区房,现早已读完了小学和初中,学区房的价值也就不再了。在我上高中之时,父母早就把房子挂上了,奈何房子老旧,再加上现在房价大跌,挂了一年都没有卖出去。反倒是天天有人来家里看房,顺便吐槽几句,让人很反感。最近的房价依然在持续下跌,母亲最终无法忍受每日看房的打扰和房价的下跌,狠下心来把房子低价卖出去了。自此,我也应该与曾经那个家,我住了10年的家告别了。虽然原来那个家实在是很破,小区里面也是破破烂烂,各种老人每天在小区里逛来逛去,小孩在里面骑来骑去,半夜还在小区里跳广场舞,吵都要吵死了。它的缺点实在是太多了,如果现在要我回到那里,我真的会受不了。但是房子卖了后,母亲还是有一点不舍的。毕竟是住了10年的家,卖了房时候就要与它永别了,而我们之后也会成为这个城市的漂流人。房子买卖合同虽已签,但是离交房还有一段时间,于是我们还是先住在原先的房子里。一个周六,我原打算直接坐公交回家,又考虑到他们可能会来接我,可我又没有与他们联系,于是只好从学校大门走。走到了大门口,我环视了一周,果然看到了母亲,母亲还没有看到我。此时父亲还在学校的公交站等我,防止我跑路。此时我才知道我们已经搬家到了学校对面,一个高端小区。小区的大门自是不用多说,中式园林式的设计,只能说是高端、大气、上档次。初次进入小区,只要刷脸,一个顶天立地的大门就会自动旋转开门。走入大门,首先看到的就是一个人工湖,湖的四周有各种的树,只听水声潺潺。我的语言也是难以描述出它的美了。小区里的道路无尽蔓延,四处是草地和大树,树上偶尔还能看到松鼠。走到家中,自是比原本的家新不少,虽然只是个出租屋。家的大小没有变,甚至还更大了一点,唯一的缺点是没有电视,客厅正面总是显得很空旷。可是作为学生,母亲认为没有必要再加上电视了,而且出租屋一般是没有配备电视的。这里比原来的家多了一个书房,而我的卧室也因此变小了,不过原来卧室履行的办公职责也因此迁移到了书房。在之后的几周,书房里买了一个大桌子,突破了冲冲阻挠,我把书桌摆在正对书房拉门的地方,这样书房看起来就像我的“办公室”,我也可以实时看到外面的动态,同时避免被视奸。书房里有风扇灯,我原以为风扇灯就是一种鸡肋玩意,没想要这个风扇风还挺大的,在书房里不用开空调就可以很凉爽了。那时父母已经在周内把我的所有东西搬过来了,刚刚来到新加的我也有些许的不适应,我也没有意识到他们搬家这么快。但我嘴里满是对这个家的夸赞,我也十分满意这个新家。阳台很大,阳台正对着小区的树林,绿油油的一片,活像是一个小公园。小区里入住率很低,因此没有很多人,也不会很拥挤。因为地段偏远,周围没有超市、广场、菜市场,所有只有学生租在这里。但总之搬到这里是为了学习的,新家的距离也是十分感人,就在学校的正对面。以后放学都不用去走远路,挤公交了。只需要走出校门再继续往前走就回到了温馨的家。而每次回家,看到小区的大门,就有一点梦回古装剧的感觉,此时站在小区大门的我,究竟是古代的奴才还是少爷呢?刚搬来这里的那个周末,我本是想先不申请走读的。因为开学已经有了几周,走读是刚开学申请的,我怕现在申请不了。而且申请走读很麻烦,既要班主任签字,又要段长签字。我原本是想在容忍住宿一个学期,等下个学期再走读的。但我又想,既然已经搬来这里,为什么还有忍受住宿的痛苦呢?而且母亲说一个人住这么大的家会很恐惧的,虽然家里很亮堂,小区也很安全。于是我就在QQ上跟班主任发起了申请。班主任的性情是有点怪异的,我刚开始给他发的时候,他说周一找他。我心里就是十分害怕啊,一想到我要找时间去寻找班主任或是在班上被班主任叫出去就很害怕。但是在隔天时,他的心情似乎好了一些,于是就说“可以”。可以是可以,那我要办什么手续呢,他也没有说。于是我就问他,他就说要去保安室填表。所以我不知道我的走读是否申请成功,也不知道什么时候可以开始走读。而今天刚好是周日,进学校的日子。我们坐了双重准备,整理好行李箱去学校保安室,如果当晚可以出来,就让母亲把行李箱带回家,如果不行就让我带进去。走到保安室,保安就拿出了两张表格,我先让母亲把字签了,看到上面还要班主任和段长签字,我的心就凉了一截。母亲问了一下当晚可以出来吗,保安说在走读申请书提交之前要凭借请假条出来,一般的学生只要两三天就可以签好了。保安的态度有点差,母亲多问了几句就要暴怒了。于是乎我抛弃行李箱,怀揣着喜悦与紧张的心情走入校园。一到班上,我就去讲台桌上一顿搜寻,终于在抽屉里找到了请假条的老巢,顺了好几张,避免我的申请书签的慢以后走不出学校。坐在位置上的我那时一个紧张,我把一些必要信息填写完毕,等待晚自习第一节下课。那一天真是我的幸运日,正好碰上了物理小测,因此班主任和段长都会在学校。我记得上一个班主任申请走读都要求先找段长签字,于是第一节一下课我就冲下楼去,在年段办公室门口一顿偷瞄,鼓起勇气走了进去。我十分紧张,说话都有点颤抖了:“段长,可以给我的走读申请签字吗?”段长说:“当然可以啊,怎么不行。”但是她瞄了一眼申请书,就开始找茬了:“你离校时间怎么写的是17:15啊,你有什么权利这个时间离校?”我当场就蒙了,我不过是想放学回家吃个饭再来学校,况且也把晚自习打钩了,于是我解释了一番。段长就让我把时间改成晚自习放学,并且让我先找班主任签字,说班主任不签字她怎么知道班主任同不同意。于是乎我又飞奔到楼上,去座位上改了个时间,但不见班主任踪影,我一些着急。终于,班主任晃悠到班上了,我赶紧抓住他签字,接着就是又飞奔到楼下找段长签字了。至此我的申请书基本已经完毕了,我也能暂时安心了......后续一些走读申请事宜就暂且省略了,咱又不是写走读申请指南呢。当天晚上,我踏着喜悦的步伐,从黑暗的道路上走向光明的学校大门,一时不知道有多喜悦。平时一周才能回一次家,现在每天能回3次家了......刚开始的我还是很积极的,回家补一下没写完的作业,顺便随意朗读几句英语,不过之后也只剩下手机时间了,甚至很难控制。不过每天晚上回来都有夜宵,牛肉丸。过桥米线都不在话下。当晚也顺便体会了一下在家洗澡的感觉,再也不用担心和室友抢浴室了,洗起澡来也是一种放松了,还可以顺便听听音乐。第二天去上学,当保安看到我将要到达校门口时,便按动按钮开启了大门,我沐浴着阳光,踏入校园。从大门走到教学楼有很长一段路,我心里自是甚喜悦,看着眼前的一栋栋建筑也是如此动人。早上或许是我到的太早的缘故,一路上都没有什么人,诺达的校园此刻仿佛属于我一般......走读以后才意识到以前过的那是什么日子,每天中午快要放学时间,整层就开始轰隆轰隆的地震,下课铃一响就开始百米赛跑,你不让我我不让你,如万马奔腾一般奔向食堂。食堂里自是不用多说,燥热的食堂里早已排满了长队,把食堂围得水泄不通。每天晚上一回到宿舍就开始洗衣服,洗完衣服自然就到了睡觉的时间。这是人过的生活么?如果现在让我去住宿,我可能就要崩溃了。但是走读也只是在苦中作乐,并不能改变高中的实质性痛苦。每天几乎所有时间都被困在学校里,有时就算不想学习了也只能找一些东西打发时间。等到真的要开始学习或生活时,才发现已经没有了时间。我们无法掌握自己的时间,无法按照自己的生物钟与心情进行调整,稍微打破时间的限制就会遭到无尽的反噬。每天早上和晚自习都是在与大脑与眼皮对抗,有时突然惊醒才发现上一秒自己在睡觉,不知虚实......
-
代代无穷,年年相似
https://blog.cll.tw/archives/second-year-of-high-school.html
2025-09-06T16:13:00+08:00
代代无穷,年年相似过了一个充实放荡的暑假,转眼还是开学了。我又回到了曾经那个让我充满回忆、痛苦、哀愁与迷茫的学校。重回校园,一切又回归于熟悉,在暑假担心的一切早已烟消云散。再回校园,已物是人非。曾经的舍友、同学已不再相见,曾经或喜欢或厌恶的老师的课堂,也已不能再重回。过去的一切又一切,在此刻,已经全部了断了。我换上全新的心态与记忆,步入了新宿舍。步入新宿舍,无他,唯灰尘尔。宿舍里除了曾经的一个舍友,已无其他认识之人。仅剩的这一个舍友,也令我心生烦闷与厌恶。其他的新面孔也道不出个名堂来,只是相见不相识,相逢不相问。踏入新班级,一切又是陌生的。而在机缘巧合之下,我的新同桌,是我以前的另一个舍友。在陌生与孤寂之中,增添了一分熟悉吧。新的班主任看起来很老实,新的老师也没有从前那么严格,在新的环境中,我也可以有了新的开始。这一周,绝对可以称之为我高中时期最努力的一周。这努力并非是超越学校、老师的要求,大步向前,而是能勉强跟上老师的步伐,步履维艰。或许是因为新的开始,或是因为暑假放荡的愧疚,在进去的第一天,我便开始积极起来,背诵的背诵,预习的预习,整个人都忙了起来,没有一些闲工夫思考命运的不公与人生之痛苦了。作业并没有变少,时间也没有变多,而能完成下来的原因,来自于映衬、目标、希望与压力。也因为更换了语文老师,现在我的作业严格按照数理化生的顺序进行完成,也能勉强应付完作业,而不需要整天抄答案了。每天晚上的时间都在洗衣服,也没有什么闲余时间看看书、睡睡觉了。说了这么多,无非是想夸赞一下新学期的我。可这一行为,是否与刚过完寒假的我相似呢?“人生代代无穷已,江月年年望相似。”可是,已经坚持了一周的我,此刻再也无法继续坚持下去了。或许我又要回到曾经那个放纵不羁的人了。昨夜闲潭梦落花此处的“昨夜闲潭梦落花”并非是昨夜梦到了落花,而是我再也无法回到曾经那个梦一样的三三零了。这个昨夜,不一定非得是昨天,亦可反过来理解为“梦昨夜闲潭落花,魂牵梦绕,凄凄惨惨。”有的东西,只有等到失去了才懂得拥有。等我们已不在曾经的固有环境,才明白曾经的熟悉是难得的可贵。一切都是昨夜之梦,而我却又不愿意回到那个梦中。我不想我就此“回到起点”,有不愿狠下心来苦心学习,只能来个三天打鱼两天晒网,不过是激情几天又回归平常罢了。可这样每日激情奋斗,也实在是心累。又有谁能日日坚守,年年相似呢?
-
EdgeOne边缘函数实现图片格式转换与缩放
https://blog.cll.tw/archives/edgeone-image.html
2025-08-27T16:33:00+08:00
前言Edgeone 横空出世,不少博客都写上几篇相关的文章,也都用上了免费的服务。虽然 EdgeOne 还不错,但用起来还是没有 Cloudflare 方便,所以我只把静态资源放在了 EdgeOne 加速,包括我的图床(实际上是我的 R2 存储桶)。为了保证原图存储,我的图床在上传之时没有进行图片格式转换和缩放,避免以后需要用到原图时还要重新寻找图片上传。但是过大的图片也实在是考验用户的网速,影响访问体验。EdgeOne 虽然有直接的图片处理服务,但是还要升级个人版,对于一个白嫖用户来说实在是不合适。刚好 EdgeOne 边缘函数 有一定量的免费额度(边缘函数请求数 300万次,边缘函数 CPU Time 300万毫秒),对于我这个小小小图床那是绰绰有余的。EdgeOne 官方文档 提供了示例函数,包含图片自适应 WebP与图片自适应缩放,但是二者并不是合在一起的,或许是为了促进“图片处理服务”的使用吧。如果没有示例函数,对于函数的书写还是有点费劲的,还要把原本那么多文档喂给 ChatGPT。不过现在就很简单了。我们可以借助ChatGPT把两个示例函数进行合并,实现图片自适应转换与缩放,并且不用改变原有图片的链接!这是最为方便的。分函数图片自适应 WebP在文档的最佳实践里面还有一版根据浏览器转换不同格式的,我觉得太过麻烦,所以直接自适应转换 WebP 就好了。async function handleEvent(event) {
const { request } = event;
// 获取客户端支持的图片类型
const accept = request.headers.get('Accept');
const option = { eo: { image: {} } };
// 检查客户端是否支持 WebP 格式的图片,若不支持响应原图
if (accept && accept.includes('image/webp')) {
option.eo.image.format = 'webp';
}
const response = await fetch(request, option);
return response;
}
addEventListener('fetch', event => {
// 当函数代码抛出未处理的异常时,边缘函数会将此请求转发回源站
event.passThroughOnException();
event.respondWith(handleEvent(event));
});图片自适应缩放经过体验,我感觉图片自适应缩放比单纯的图片质量压缩好,图片自适应缩放可以让质量更小,并且不太影响观感,因为图片的尺寸也更小了。addEventListener('fetch', event => {
// 当函数代码抛出未处理的异常时,边缘函数会将此请求转发回源站
event.passThroughOnException();
event.respondWith(handleEvent(event));
});
async function handleEvent(event) {
const { request } = event;
const urlInfo = new URL(request.url);
const userAgent = request.headers.get('user-agent');
// 请求非图片资源
if (!/\.(jpe?g|png)$/.test(urlInfo.pathname)) {
return fetch(request);
}
// 移动端图片宽度
let width = 480;
const isPcClient = isPc(userAgent);
// PC 端图片宽度
if (isPcClient) {
width = 1280;
}
// 图片缩放
const response = await fetch(request, {
eo: {
image: {
width,
}
}
});
// 设置响应头
response.headers.set('x-ef-client', isPcClient ? 'pc' : 'mobile');
return response;
}
// 请求客户端类型判断
function isPc(userAgent) {
const regex = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;
if(regex.test(userAgent)) {
return false;
}
return true;
}合函数:图片格式自适应转换与缩放我自然是不会合并的,那就交给 ChatGPT 吧。通过图片格式自适应转换与压缩,一箭双雕,再也不用担心博客图片加载慢的问题了。函数代码addEventListener('fetch', event => {
// 当函数代码抛出未处理的异常时,将请求转发回源站
event.passThroughOnException();
event.respondWith(handleEvent(event));
});
async function handleEvent(event) {
const { request } = event;
const urlInfo = new URL(request.url);
const userAgent = request.headers.get('user-agent');
// 请求非图片资源,直接返回
if (!/\.(jpe?g|png)$/i.test(urlInfo.pathname)) {
return fetch(request);
}
// 判断客户端类型
const isPcClient = isPc(userAgent);
// 移动端图片宽度
let width = isPcClient ? 1280 : 480;
// 获取客户端支持的图片格式
const accept = request.headers.get('Accept');
const imageOptions = {};
if (accept && accept.includes('image/webp')) {
imageOptions.format = 'webp';
}
// 图片请求
const response = await fetch(request, {
eo: {
image: {
width,
...imageOptions
}
}
});
// 设置响应头
response.headers.set('x-ef-client', isPcClient ? 'pc' : 'mobile');
return response;
}
// 判断是否为 PC 客户端
function isPc(userAgent) {
const regex = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i;
return !regex.test(userAgent);
}功能说明 By ChatGPTPC 客户端宽度 1280,移动端 480。支持 WebP 格式的客户端返回 WebP,否则使用原格式。非图片请求直接返回原始资源。x-ef-client 响应头标识客户端类型。部署函数新建函数规则在 EdgeOne 后台 进入站点,在左侧边栏选择边缘函数,新建一个函数,随意选择一个模版,把函数代码替换成上面的合函数,然后创建并部署。新建触发规则进入刚才创建的那个函数,点击新建触发规则,匹配类型选择HOST,运算符选择等于,值选择为你的图片存储域名,直接确定即可。至于文件后缀限定条件,我觉得可有可无,因为函数本身已经判断过文件是否为图片了。不过如果图片本身有文件后缀,可以再次加上限定条件:png、jpg、jpeg。请不要带上.,否则函数将会无法触发。对于 Gravatar 的镜像站来讲,文件后缀就没有必要限定了,因为 Gravatar 的头像链接是不带文件后缀的,如果限定了文件后缀将会无法转换为 WebP 格式。似乎这个函数代码对于 Gravatar 镜像站无效,可能是因为在函数代码中检测了一次图片类型,所以即使在前端的我触发条件没有限制文件后缀,依然无法转换。对于这个问题,可以使用不进行文件后缀判断的函数代码,并把文件后缀判断的限定移到前端的触发条件中。我们可以对Gravatar 镜像域名单独设定一个触发条件,在前端也不判断文件后缀。// 没有作用,请不要使用
async function handleEvent(event) {
const { request } = event;
const userAgent = request.headers.get('user-agent');
const isPcClient = isPc(userAgent);
let width = isPcClient ? 1280 : 480;
const accept = request.headers.get('Accept');
const imageOptions = {};
if (accept && accept.includes('image/webp')) {
imageOptions.format = 'webp';
}
try {
const response = await fetch(request, {
eo: {
image: {
width,
...imageOptions
}
}
});
response.headers.set('x-ef-client', isPcClient ? 'pc' : 'mobile');
return response;
} catch (e) {
// 如果不是图片或处理失败,返回原始请求
return fetch(request);
}
}好像怎么改都没用,可是我记得之前的只转换格式代码是可以的。不管了,反正 Gravatar 头像 本身不是很大,转不转换区别不大,开个缓存就好了。测试效果现在来访问部署完函数的站点图片,虽然链接的末尾还是原本的文件后缀,但是打开检查工具,在网络中找到这张图片,就会发现文件类型已经变成了image/webp。再点击一下图片,就会发现图片尺寸变小了,没有原来那么大了,但依然是很清晰的。最后把图片下载下来,发现图片的大小小了很多,并且下载下来的文件后缀为webp。我也来这里放一个测试链接:https://cdn.cll.tw/img/2025/08/1755540774.jpg原本大小为 7.7 MB 的图片,现在已经变为 562 KB 了,加载起来都非常丝滑。参考资料图片自适应 WebP:https://edgeone.ai/zh/document/57423?product=edgedeveloperplatform图片自适应缩放:https://edgeone.ai/zh/document/54770?product=edgedeveloperplatform通过边缘函数实现自适应图片格式转换:https://edgeone.ai/zh/document/54768?product=edgedeveloperplatform结语EdgeOne 也变成大善人了......通过 EdgeOne 边缘函数,可以让图片自适应格式转换与缩放,浏览体验大大提升,也不会影响原图的存储,未来可操作性很强。不过目前博客只有大图片放在了图床上,截图什么的还是存储在本地。虽然有 Typecho 直接上传到兰空图床的插件,但感觉还是存在本地保险。等一会还是迁移一下,双端备份也比较保险呢,速度也能提升一下。截图什么的就不压缩了,清清晰晰的比什么都好。好像有一个问题,自适应图片在第一次访问的时候需要进行转换,所以很慢。但之后就能快起来了呢。还有一个问题就是移动端的缩放太狠了,只考虑了显示大小,却没有考虑放大后的大小。建议将移动端的自适应宽度改为和 PC 端一样。
-
一键透视不太灵付费资源
https://blog.cll.tw/archives/free-bt0.html
2025-08-26T17:58:00+08:00
前言不太灵曾经是我最喜欢的影视下载站,可是自从它改版之后,所有资源都要会员了,而且还非常贵,我自然是出不起。今天又访问了不太灵看看,发现所谓的付费资源只是被加上了一个遮罩,实际上资源链接已经显示在前台了,我们只需要通过浏览器检查工具去掉遮罩就可以了。VIP的付费弹窗可以直接使用选择工具删除,但是剩下的遮罩如果选择删除,整块区域就会消失,因此需要将这部分的遮罩样式去除。在 ChatGPT 的帮助下,我得出了以下方法。最终效果步骤第一步:删除VIP付费弹窗1. 右键-检查或点击 F12 按键打卡浏览器的检查工具2. 接着点击选择工具,选择 VIP 付费弹窗区域3. 按下你的删除键,VIP 弹窗消失虽然此刻弹窗已经消失,但是遮罩还在,所以我们还需要去除遮罩。但是使用前面这个删除办法已经无法去除遮罩了,而是会让整块区域消失。所以我们需要把遮罩的 CSS 样式给删除,实现透视效果。第二步:删除遮罩 CSS 的样式基本方法:临时去掉样式通过 ChatGPT 的分析,我明白了这个遮罩的本质就是filter: blur(5px); pointer-events: none; user-select: none;。所以我们只需要使用选择工具选择遮罩,在元素树里找到filter: blur(5px); pointer-events: none; user-select: none;这一层,双击选中,删除即可。或者在旁边的样式表中,把这一样式的勾选取消。这时我们就会发现遮罩已经消失,我们就可以直接看到遮罩下的资源了。进阶方法 1:控制台执行 JS 代码一次性去掉遮罩同样的,在检查工具中选择控制台,粘贴以下代码并回车,遮罩也是消失了。document.querySelectorAll("div[style*='blur']").forEach(el => {
el.style.filter = "none";
el.style.pointerEvents = "auto";
el.style.userSelect = "auto";
});但是这个方法有点鸡肋,虽然直接使用代码去除遮罩很方便,但依然要执行第一步的删除VIP弹窗,不如也直接临时删除 CSS 样式来得方便。进阶方法 2:写 CSS 覆盖执行方法同上。const style = document.createElement("style");
style.innerHTML = `
[style*="blur"] {
filter: none !important;
pointer-events: auto !important;
user-select: auto !important;
}
`;
document.head.appendChild(style);懒人方法:使用一键书签脚本 (bookmarklet)在浏览器书签栏里添加一个书签,名称随意,链接改为以下代码:javascript:(function(){document.querySelectorAll("div,span,section,article").forEach(el=>{if(el.style.filter&&el.style.filter.includes("blur")){el.style.filter="none";el.style.pointerEvents="auto";el.style.userSelect="auto";}});alert("模糊遮罩已移除");})();在遇到这个遮罩时,只需要点击一下这个书签,遮罩就会消失,很是方便。但同样鸡肋的是,这个书签依然只是去除遮罩,却不能先去除遮罩上面的VIP弹窗,依旧需要手动删除弹窗,方便何在?二合一JS代码既然第二步可以直接使用控制台执行 JS 代码删除,那么第一步也可以,那就可以直接合二为一。第一步的JS删除代码直接让 ChatGPT 搞定。二合一JS代码如下:// 删除 VIP 覆盖层
document.querySelectorAll('.vip-gate-overlay').forEach(el => el.remove());
// 再去掉遮罩样式
document.querySelectorAll("div[style*='blur']").forEach(el => {
el.style.filter = "none";
el.style.pointerEvents = "auto";
el.style.userSelect = "auto";
});至于那个浏览器书签脚本,ChatGPT 做出来的好像没有什么用,我也懒得再去调教它了。二合一书签脚本(Bookmarklet)还是调教一下吧,把二合一的JS代码喂给 ChatGPT,再让它输出了二合一书签脚本。使用方法同第二步的书签法,但是只要使用二合一的就可以了。如此一来,只需要点击一下书签,不太灵就会乖乖交出资源了。javascript:(function(){document.querySelectorAll('.vip-gate-overlay').forEach(el=>el.remove());document.querySelectorAll("div[style*='blur']").forEach(el=>{el.style.filter="none";el.style.pointerEvents="auto";el.style.userSelect="auto";});alert("遮罩已移除");})();结语ChatGPT 帮了大忙......不过文字稿都是我自己写滴,只有代码是 ChatGPT 编的,其中不乏我的缝缝补补。就算没有代码可以手动删除遮罩,不失优雅。不太灵虽然加上了VIP可见,但只是加了一个遮罩,并不需要登录了 VIP 才显示,不知道是它的善良还是漏洞。等到不太灵改为检测到VIP才输出资源的时候,这个方法就已经失效了......
-
Casdoor 实现 OpenList 单点登录
https://blog.cll.tw/archives/casdoor.html
2025-08-25T23:13:00+08:00
前言因为各个站点之间的登录是独立的,一个一个登录很麻烦,况且有一个单点登录系统很酷,于是我之前就很想搞一个。但是奈何这东西有点复杂,于是几番折腾之下我放弃了。最近又看到博友在搞Casdoor,于是我重拾旧本,重新探索,终于在搜索引擎与ChatGPT的帮助之下部署完成。环境1Panel 面板Docker(基于1Panel面板的应用商店)OpenResty(反代服务,大坑!!!)流程1. 在1Panel 应用商店安装 CasdoorCasdoor是一个支持 OAuth 2.0、OIDC、SAML 和 CAS 的 Web UI 优先的 IAM/SSO 平台。2. 在1Panel 网站添加应用 Casdoor即为反代本地8000端口,同时记得配置https证书并解析域名到服务器ip。3. 在 Casdoor 上创建基本信息初始账号为admin,密码为123,进入后台后按照下图进行配置。4. 在 OpenList 上配置单点登录单点登录平台选择OIDC,单点登录端点名称为 Casdoor 的链接,末尾不带/。其他按照上图进行填写。5. 测试登录:错误!就在我满心欢喜地开始使用单点登录时,不幸的事情发生了:{"code":400,"message":"404 Not Found: \u003chtml\u003e\r\n\u003chead\u003e\u003ctitle\u003e404 Not Found\u003c/title\u003e\u003c/head\u003e\r\n\u003cbody\u003e\r\n\u003ccenter\u003e\u003ch1\u003e404 Not Found\u003c/h1\u003e\u003c/center\u003e\r\n\u003chr\u003e\u003ccenter\u003eopenresty\u003c/center\u003e\r\n\u003c/body\u003e\r\n\u003c/html\u003e\r\n","data":null}6. 寻找错误于是我就把这个错误贴给了ChatGPT,它给我的答复是:反代/网关配置问题:你前面有 Nginx/OpenResty 做反代,结果转发的时候找不到后端对应的 location,返回 404。但是ChatGPT给出的解决办法并没有什么用......于是我开始控制变量来验证错误:使用原端口原ip:可以使用反代ip:不可以使用https域名:不可以使用http域名:不可以因此可以得出,问题的确是在OpenResty的反代上。7. 解决反代问题我在搜索引擎上试图寻找遇到相同问题的文章,可惜没有。但是我知道了Casdoor的请求接口是:/.well-known/openid-configuration,因此原来的404问题就出现在这个接口上。我看到这个接口就有点发现问题所在了,中间的一个文件夹为/.well-known,有次域名验证,文件上传到这个文件夹也是404。于是我就把问题丢给了ChatGPT,它给了我解决方案:# 新增 location,放在 ^~ /.well-known 之前
location = /.well-known/openid-configuration {
proxy_pass http://127.0.0.1:8000/.well-known/openid-configuration;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}把这个添加到OpenResty配置文件中,请求接口/.well-known/openid-configuration就可以正常访问了。再次访问OpenList单点登录,登录界面终于可以显示了,但是实际登录却又报错:{"code":400,"message":"failed to verify signature: fetching keys oidc: get keys failed: 404 Not Found \u003chtml\u003e\r\n\u003chead\u003e\u003ctitle\u003e404 Not Found\u003c/title\u003e\u003c/head\u003e\r\n\u003cbody\u003e\r\n\u003ccenter\u003e\u003ch1\u003e404 Not Found\u003c/h1\u003e\u003c/center\u003e\r\n\u003chr\u003e\u003ccenter\u003eopenresty\u003c/center\u003e\r\n\u003c/body\u003e\r\n\u003c/html\u003e\r\n","data":null}于是我又请教了一番ChatGPT,它又给出了解决方案:和之前解决 /openid-configuration 类似,给 /.well-known/jwks 写单独 location:location = /.well-known/jwks {
proxy_pass http://127.0.0.1:8000/.well-known/jwks;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}我再次添加到配置文件中,最后终于登录成功了!!!总结:Casdoor 实现 OpenList 单点登录中,反代问题解决方案:在OpenResty配置文件中加入:# 新增 location,放在 ^~ /.well-known 之前
location = /.well-known/openid-configuration {
proxy_pass http://127.0.0.1:8000/.well-known/openid-configuration;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location = /.well-known/jwks {
proxy_pass http://127.0.0.1:8000/.well-known/jwks;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}参考资料https://doc.oplist.org/guide/advanced/sso#_3-5-casdoor-1https://www.whuanle.cn/archives/21725https://blog.xioxix.com/archives/479结尾折腾了一个晚上总算是把单点登录解决了,幸好有众多大佬的文章与ChatGPT的帮助,最终问题才能解决。但是使用AI解决问题并不是如文中所述一张一帆风顺,而是布满荆棘,解决问题的过程不乏我们的坚持与思考能力。AI的出现不是替代人类,而是帮助人类;人类可以自我选择利用AI且不被AI替代。
-
无心插柳:域名被百度收录
https://blog.cll.tw/archives/hello-baidu.html
2025-08-21T04:05:00+08:00
缘起今天凌晨闲来无事在百度上用site命令搜了一下cll.tw,竟然逆天地发现真的收录了。不过只收录了主页和图床,博客就这样被弃之门外了。心情我是有点激动、有点担忧又有点疑惑。激动之处在于这个域名既没有备案,也不是com或cn域名,竟然能被百度收录。况且,我没有一次向百度提交过网址。而之前的域名,主动提交给百度,百度都不要。这或许就是无心插柳柳成荫吧,不过并不是很茂密呢。担忧在于百度是许多国人的首选搜索引擎,若被百度收录可能导致网络与现实的隔膜消失,造成隐私泄露等问题。部分同学喜欢在搜索引擎上搜索别人的昵称以此来取乐。疑惑在于我主页什么内容都没有为什么要收录?我的博客千辛万苦写了这么多没用的东西竟然不收......且必须要输入全程才能搜到主页,图床甚至无法通过全程搜寻。而我前几天在根域上放的唯一一篇AI文也能被收......不过现在已经没了。论之百度为什么肯收录一个非主流域名后缀?难道是基于统战考量?尽管素来与东大对抗的陆委会也被收录了一些页面呢。对于是否要人工干涉百度的收录,我保持待定态度。毕竟我已经好几年没有用百度了,百度也不是什么好东西。
-
学校,为何成了噩梦?
https://blog.cll.tw/archives/school-nightmare.html
2025-08-21T02:36:00+08:00
引言临近开学,相信不少中国的学生,此时正在赶暑假作业。当然,其实现在赶暑假作业对我们的学习并没有什么实质性的帮助,只不过是开学后能有个好的交代。可是,学校之苦远远不在补暑假作业上。究竟是什么原因,让学校变成了噩梦一样的地方?求因1. 作业既然是从暑假作业说起,那么要谈的就是作业。作业是为了什么?每天上完课,我们会对新的知识有一个基本印象和理解。但我们可能还无法完全掌握。因此,作业成为了一个锻炼和实践的好帮手。无疑的,适当的作业对学习是有益的。但是,绝大多数学校的作业都不是适量,而是超量。就连老师也承认:高中生的作业是写不完的。既然作业能提高成绩,那么老师就拼命地布置作业,那样学生的成绩就会非常的有优异。但是对学生来说,每科的作业都多一点,六科的作业合起来就是沉重的负担了。既然根本完成不了,又为何要完成呢?为了保障成绩,我们又不得不从中挑选出重要的题目来完成,以此巩固知识。那么剩下的作业怎么办?自然是抄抄、骗骗了,能糊弄过关就行。但是,有的老师并不会就这样放过你,他们检查作业特别严格,你必须完全认真完整地完成他们科目的作业。因此你不得不在学科作业上进行倾斜。导致有的学科作业写得那是天花乱坠,有的学科却是门前冷落。超量的作业不仅带来学科倾斜,也带来了劳累。虽然作业可以选择性完成,但是经过筛选后的作业还是非常多,于是学生每天就要从海绵中挤出时间来完成这些过量的作业。学生不再有时间去生活,而是要思考:我要如何完成这些作业。学生不再有时间享受人生的喜悦,而是要思考:我为什么要活着。因为超量的作业,人已经不再是人,而是学习的机器。生活已不再存在,只剩下无止尽的学习。2. 资源为什么要拼命地学习、写作业,就是为了巩固知识、锻炼实战能力,最终能够在考试中取得好成绩。好成绩是用来干什么的?当然是排名。为什么要排名?为了上一个好大学。为什么要上好大学?为了一个好的工作、好的生活。因此,我们为了以后的“幸福生活”,必须现在受苦,主打一个先苦后甜。于是我们在别人最快乐的年纪,埋头苦读,夜以继日。可是,学习不是一件很幸福的事情吗,为什么学习让我们变得痛苦呢?因为大家都在卷,每个人都要学习,每个人都要接受更高等的教育,每个人都想要更好的工作。因此,我们要花费比别人更多的时间,去超越别人,走在时代前列,所以我们也要付出更大的代价。可是,为什么想要一个幸福生活就一定要靠超越别人呢?因为社会资源的有限和超载的人口。蛋糕只有一块,人却是无尽的。那就只有不断地卷、不断地学习、不断地耗费自己的时间去纠结题目,最后超越别人,吃到一大块蛋糕。可人若是有限的,蛋糕就可以平分,或者是可以分到适量的蛋糕。即使不卷,依然可以饱腹,不至于饿死。先止说到这儿,跨度属实有点大了。从校属性的作业,到社属性的资源,我们不知道要经受多少痛苦去抢夺那一块蛋糕,况且在抢夺蛋糕时,我们也会伤害其他人。抢来抢去,最后有的人获得了小蛋糕,有的人饿死了。有的人被别人杀死了,有的人遍体鳞伤。然而,有的人却是天赋异禀,他们生来体壮,只需要一挥手,周围抢蛋糕的人便全都倒下了,剩下他一个独享蛋糕。3. 控制学校就像一个大监狱,把所有具有新思想、新活力的人全都关起来,控制住,这样他们就不会跑到街上去做一些“违法犯罪”的事情了,社会治理效率upup。在大监狱里,每个人都要为了一口饭争夺。为了这口饭,他们不得不拼命工作,思考如何吃上饭,忙得不可开交。于是他们的体力和脑子就被各种杂七杂八的东西支配,失去了他们原本的能力。所有犯人都是疲惫的、劳累的,thinkless的,典狱长自然不用担心他们会造反了。至于牢犯的感受,又有什么好在意的呢?只要他们能好好工作,给我创造无尽的财富就好。我只需要吃好喝好睡好讲好,就能坐享其成,得来全不费工夫。4. 价值再生牢犯们刑满出狱,就要到社会上打拼了。看似自由了,实际上依然是掌心上的蚂蚁,绕着主人团团转。长年累月在监狱里劳作的牢犯们已经身强体壮、思想向上,到了社会上自然是任凭主人差遣,任劳任怨。主人只需要从中把他们的价值抽走,给他们留一条狗命就行。可是牢犯们也不是呆瓜,为什么我每天辛勤劳作,到头来依旧是狱中生活呢?去质询主人,主人只说,都是那贵族害的,他们都是坏人,你们要对付他们。于是牢犯们开始把靶心转向无关人员,而他们的主人则依然无忧无虑地幸福生活。结语哎呀抱歉,一不小心就写偏了。既然已经偏了,那就凑合着看吧。学校的痛苦不是用嘴说的,而是亲身入局,九死一生的。
-
从《古剑奇谭》到《花千骨》再到《青云志》
https://blog.cll.tw/archives/costume-drama.html
2025-08-16T03:31:00+08:00
这个暑假一直都在看电视,主要是不看电视都不知道要干什么了,作业是不可能想写的。然而,现在的电视剧却让我提不起兴趣。我就完整地追完了《利剑·玫瑰》,看了一半的《琅琊榜》,剩下的全都是仙侠剧。那我就按照记忆程度想到什么写什么,胡乱点评一番。主要观看《利剑·玫瑰》这是一部讲述打拐警察的电视剧,剧中的警察作为正面角色,且都是偶像派明星,自然让观众产生支持心理,但此类歌功颂德类电视剧看多了容易产生不切实际的幻想。迪丽热巴和金世佳稍微有点沧桑了,但总体上颜值还是在线的。高基才应该算新星演员,虽然看起来比较嫩,但在剧中还是很猛的,虽然颜值还不错,但可能还是难以达到前者的水平。其余演员没有很大印象这里不再赘述。剧情上,通过“然然”被拐事件贯穿全剧,其中穿插了很多独立事件,剧情波荡起伏,是不错的。且对于“瘸哥”的指向一直变换,让我有看下去的欲望,最终我完整地看完了。但我以后应该不会再看现代剧/警匪片了,与现实世界接近,无法吸引我。《花千骨》其实我在学校里就一直想着暑假要复盘《花千骨》,功夫不负有心人。我从25集开始看,跳到洪荒之力即将现世,期间的剧情我有点忘记,因此支撑着我看下去。但从花千骨入主七杀殿开始,我就不是很care,所以直接跳到大结局了。大结局应该算是善终,看得我也是心情舒畅。摩严最后终于肯放下架子当一回善人,师徒二人凄惨地拥抱在一起,直到最后花千骨暴毙。最后的最后,花千骨复活了,师徒二人又过上了幸福生活。我始终记得电视剧的开头是:我出生在花莲村。虽然前面的剧情并不是很重要,但是奠定了一下全剧的基调......期间也有几个独立的故事,我比较想看的是花千骨在某门派用紫色的琴击退敌人,但忘了是在哪里故没有看。还有某个沙漠中的女子门派与男子的情情爱爱,稍微有点瘆人。在进入蛮荒的剧情就开始比较精彩了,但是也比较揪心,很难受。主演霍建华实在不是我的菜,所以我并没有很在意师徒俩的恩恩爱爱,只是赵丽颖的淡妆挺好看的,素雅不妖媚。男角色最好看的就是小月了,主要是比较清纯。东方和他的小男宠很好磕,特别是在小男宠濒死之时靠在东方的怀里,都很帅。《花千骨》作为一部经典的古装仙侠剧,一直让我很难忘。特别是以前在老家半夜在追花千骨的时候,还是在看直播。每天就等到那时准时收看,不肯睡觉。可是仔细看来并没有特别惊艳的地方,但是原声带确实很不错,《心之火》《年轮》和某个“夏蝉冬雪”。《青云志》青云志也是从中间开始复看的,比较嗑的就是张小凡和碧瑶了,身为死敌却又纠缠不休,几番争斗,几番纠葛,几番难忘,几番深情......青云志的男演员都非常不错呢,青龙和毒公子都是我的菜,建议在一起,曾书书挺可爱的,几个掌门人太丑太凶了,不过张小凡的师父挺善良的,人不可貌相。剧情不是很care,主要是特效和法术不错,几个门派斗来斗去,天天大战,死了又活,活了又死。从绿洲之后就看不下去了,直接看的大结局,也不是很喜欢。片头曲不错,很有力量感,但是刚开始的音量有点大了吧......其他的歌曲没有很喜欢的,一般般吧。《古剑奇谭》大力推荐哈,完整地看完了,除了中间男女主纠缠不休的谈话太无聊了之外。一开头就看到了曾书书化为太子长琴,直接萌呆我了。而太子长琴也是作为重要的引子和线索,他将一分为百里屠苏和欧阳少恭,从分开到全亡构成一个完整故事。欧阳少恭真的是我的老“恭”好吗,两个小辫子真的给我帅呆了。从刚开始的大善人到最后的大反派,从40多集开始基因突变,看得我太心疼了宝宝。但是欧阳少恭的野心给我的感觉也是一直在变。刚开始是说为了寻求起死回生之法复活巽芳,最后变成要找回太子长琴的另一半仙灵、重建蓬莱当主神,他从一个为了伴侣赴汤蹈火的佳偶一步步走向为了自己害死所有人的恶人,是因为天道的不公。为何要上天降天灾亡我蓬莱?为何天要降我于人间仙灵分散?因此他决定要逆天而行,强行让蓬莱升起引发海啸,炼制毒药害死琴川百姓。可是他没有想到,一直跟在他身边、悉心照料他的桐姨竟然就是他一直要复活的巽芳,他的一切努力都白费了。不过最后,他们两个得以同生共死也是一种善终了。然而屠苏却一人身死,留下晴雪独守空闺,找遍天下只为寻得有情人。最后的最后,小兰与孙小姐成婚,襄玲前往青丘之国寻亲,大师兄当上了掌门......只有晴雪和屠苏阴阳永隔。特别表彰小兰,实在是搞笑,无论是性格还是表情,半夜追剧憋笑真的很痛苦。电视剧的配乐特别好,即使是纯音乐也让我印象深刻。剑伤和另外一首“想忘的忘不掉”我很喜欢,“去徜徉”那首不是很喜。李易峰说实话不是我很喜欢的那种帅,杨幂中规中矩,整体都还不错,风广陌实在是难言,执剑长老倒是难得的帅气。迪丽热巴那时还是很年轻,虽然齐刘海很诡异,但是还是很可爱哒,祝福你和大师兄。陵端实在是太贱了,看得高血压,差点因为他弃追了。古剑奇谭二之前已经看过第二遍了,不如第一季,以后可能不会再考虑看了。各种短剧最近短剧特别火,刚好刷视频号时给我刷到了,于是下回了番茄小说。没想到之前清纯的番茄小说竟然变成短剧为主了。短剧的营销方式有点迷,不仅观看免费、没有广告,还给用户送钱,在我看了数十个广告之后终于提现了15元。短剧的集数一般为60左右,每集都很短。剧情非常狗血且跌宕起伏。有时候遇到反派时很难受但是正派又能迅速扳回,看得是很爽啦。古装剧和现代剧都有涉猎,古装剧看了两三部,现代剧看了一两部,大部分的剧情设定都一样。古装剧就是现代人穿越到古代,运用各种现代科技,如外卖、电器、医学技术等在古代大战反派,主打一个爽字。现代剧就是男主和女主都是隐藏富豪,从相识到结婚却都不知道对方身份,各种身份即将揭开又突发状况,直到最后互相坦诚,看得我是血压暴涨。不过当主角亮出身份大战反派,反派跪下求饶时又是很爽。短剧都是竖屏的,顺应了手机形态和人们生活方式,且短剧的节奏快,顺应了人们快节奏的生活方式,因此短剧风靡一时。但多数短剧剧情笼统雷同,若不能及时创新难免会跌落神坛。以后我不会再看短剧了,除非男主特别帅。以前观看仙剑三看过两遍了,中考完的暑假就复盘过了,短期之内不会再看,但毕竟是经典中的经典,每一对都很感人,原声带也非常喜欢,只是最后快结局时有点惨。绝代双骄胡一天那是真帅啊,还有森林小屋的设定我很喜欢,两个女人斗来斗去的不是很care,恶人谷的人略丑但善,景甜中规中矩,其他人不评价了。已经看过两遍了,短时不会再看。旋风少女这个暑假调几集看了一下,也就那样吧,画质还不是很清楚,白月光滤镜被打碎了。但是原声带还是非常喜欢的,特别是印子月。蜀山战纪二蜀山战纪一感觉和古剑奇谭差不多,已经有点忘了。蜀山战纪二看过两边了,男主和女主都中规中矩,剧情设定有点迷,某个小旅馆不知道是用来干什么的。落花宫我挺喜欢的,其他不提。短时间内不会再看,感觉以后也不想看了。神雕侠侣我只看过陈晓版,其他版本男主不帅不想看。很多人吐槽陈晓版的,但我不是很care,还看了两遍。陈晓和陈妍希很搭,虽然说刘亦菲演的小龙女还不错。武侠剧里好像我就爱看这个,不过感觉看多了也就平淡了。我应该不会再看第三遍了,除非受到什么刺激。待复看千古玦尘和神隐剧情设定我很喜欢,有创新性,以神界为主,辉煌壮阔。第一季的周冬雨和许凯有点难评,但是刘学义看得我是眼泪汪汪。神隐的男女主我都很喜欢,只是剧情还是有点伤心了。神隐整体的糖果色调比较特别,我也不是很反感,特效比较高级。还有,神隐和长相思是我同时在中考暑假看的,两部剧的剧情我有点混了,之后应该会找时间重新看一遍。琉璃感觉整部剧的剧情和地点比较单一,不会再想看。成毅中等偏上,但无法完全吸引我。就这样吧。结语一个暑假,一点书都没看,一点课都没学,一点作业都没写,感觉开学后真的要完蛋了。这几天正好无聊,祈求我一定要下定决心背几篇语文和学学数理化生,免得下学期全都班级倒数。但古装剧真的是我的心头好,尤其是古早古装剧。前几年的《苍兰诀》还有近期的古装剧我都不是很喜欢或者感兴趣了。可能是我的时间不够了,也可能是我对新兴事物的接受度降低了。或者,我是一个怀旧的人,我怀念着以前无忧无虑的追剧时光,怀念着永远无法重来的童年和我们。
-
不到50元,拿下10年.xyz域名
https://blog.cll.tw/archives/ten-year-xyz.html
2025-08-15T18:52:00+08:00
前几天矫揉造作地注册了一个.com域名,今天就已经无感了,我想明年就不会续费了,这个钱也是浪费了......不过今天又非常想买一个便宜的域名,于是我下手了.xyz的10年域名。概述.xyz本身的价值不高,注册价格也还行,但是续费价格比.com还贵,根本不值得。但但但是,.xyz的6位及以上域名1年只需要4.81元人民币,买十年只需要48.1元,是所有付费域名中最便宜的了。买不了吃亏,买不了上当,人走域还在。购买1. 寻找一个未被注册的域名在WHO.CX上挑选一个未注册的6位数字.xyz,最好是符合你的心意的,比如生日或者某些奇怪寓意的数字。如果被注册了就多换几个。2. 注册域名吧spaceship:https://www.spaceship.com/zh/来到spaceship,基本的注册你肯定都会了,再绑定一下支付宝账号。输入你找到的未被注册的域名,先购买1年(你也无法直接购买多年)。购买成功后再续费9年即可。3. 开始你的旅程吧赶紧打开Cloudflare添加你的域名吧......结语50元不到的10年域名还是很值的,即使当主域名还是不够格,但当一个备用域名还是不错的。
-
新加坡与香港的光影交错
https://blog.cll.tw/archives/travel-to-sg-hk.html
2025-08-11T22:56:00+08:00
嘻嘻嘻,上篇文章写成流水账了,这篇重开一下,以图叙事,以景传情。Day 1:香港的夜第一天的晚上,从福州长乐飞香港国际,在长乐机场贵宾厅蹭吃蹭喝。红眼航班让我第二天倍感疲惫......在福州飞往香港的飞机上,时间不长,只能听听歌了。鸡肉挺好吃的,就是有点烫,玉米差评,太素了。已到达香港国际机场,接下来步履匆匆走向转机处。香港国际机场的候机显示屏很有感觉,机场给人的感觉就是大、简、美。这一餐只有小食,白色的面包太难评了,咸咸的,只有我吃完了。Day 2:新加坡地标速览第一天是大阴天,非常不幸,照片都是灰灰的——仿佛我的天空失去的颜色。到达新加坡樟宜机场,在Cheers便利店花费10年英语功力买了交通卡和SIM卡,熊猫很可爱哦。坐公交车前往酒店所见蓝调时刻,七点不到小朋友也要坐公交车上学了。在前往酒店的路上,看到了许多鸟儿。鸟儿不怕人,我怕鸟儿。在酒店附近的飞飞云吞面吃了早餐,华人姐姐很热情,一直对我们笑。在赞美广场的前方拍了个照,没有什么游客,很诡异。这张特地拿Lr修过,教堂里面有点昏暗,很安静,彩色的玻璃很美。很素,但也不失优雅。也是亲眼见到了金沙酒店的外观,站在眼前还有有一点点震撼。鱼尾狮公园的人是在是太太太多了,根本不想挤上去合照。里面人很少,也没有椅子,腿好酸......在空中走廊走着走着就看到了超极树——平芜尽处是春山。在滨海湾花园可以拍到完整的CBD,一片蓝蓝的。在花园里坐坐就遇到了新加坡的特色——小鸡鸡,带着她的鸡仔,在草丛里漫步。在滨海湾花园里的中式园林遥看金沙,古典与现代的交汇。巨大的玻璃温室,能见到许多没见过的植物,冷气微凉。外国友人挺白的哈。开门见山,飞流直下。世界最高的室内瀑布也是被我见到了。新加坡海峡尽收眼底,小妹妹不要看我的镜头,害羞哈。出了云雾林就去吃午餐了,吃完午餐太阳才肯出来,可是我们已经太累了,就先回酒店休息。我一觉不醒睡到晚上......Day 3:圣淘沙与超极树灯光秀门口一个国内学校正在拍照,什么学校还能到新加坡研学......可是跟着学校来玩也挺惨的。初见过山车,殊不知等一下会被吓死。演员很卖力,现场也很有激情。里面的建筑非常逼真,很有代入感啦。是黑皮体育生诶。演员会很热情地跟你合照,就是太高了,怕他们摔下来......被过山车玩怕了于是逛逛,好像进入了童话世界。步行到了巴拉湾海滩,本想通过吊桥上岛,可惜因为来迟已经关闭,只能遥望。海水反射着阳光,这就是浮光跃金的生动体现。其间一位小哥哥找我拍照,我把他拍成黑人了,无地自容......饥不择食,只能在沙滩上的一家希腊餐厅吃晚餐。餐厅的环境很好,有一个华人小帅店员。或许是我们不会点的缘故,菜难以下咽,还是天价!晚上紧赶慢赶终于赶到了滨海湾花园看超极树灯光秀,脚底板快成板砖了,一跺一跺的。但好在超极树的灯光秀非常有感觉,灯光随音乐舞动,音乐令人澎湃。滨海湾花园内寻地铁站方向时顺便看到了夜晚的金沙,又是一番不同的景象。可惜太暗了,人像总是对不了焦......夜晚的滨海湾花园也很诡异,灯光秀结束不久,花园里就空无一人。我用谷歌地图找地铁站的方向,可是指针却一直摇摆不定。于是我跟着路牌走,却走成了另一个地铁站,心情真的要爆炸。Day 4:星耀樟宜与迷失香港来樟宜机场总要看一下星耀樟宜,大瀑布一泻千里,跟马桶一样。樟宜机场只有自助值机柜台,不过有华人工作人员的帮助,值机还是很简单的,出境只要刷一下护照就可以啦。还有,樟宜机场是值机前才安检的,安检口在每一个登机口前,这一点与众不同。酷航真是大善人,虽然空少不帅、没有餐食、突然下坠,但是给我们安排了靠窗的位置。到了香港国际机场,直接刷护照自助入境,再买个机场快线。机场快线的小姐姐真是太热情了......在汇丰ATM机,工行取不了,建行也取不了,最后竟然是农村信用社取出来了500港币,不过都没有用到。到了酒店已是深夜,我们在旁边找了一个中餐厅。结果是我们在香港吃得最烂的一餐,酱肉每块都有大块肥肉,只是拿酱油蘸蘸。菠萝冰是纯粹的菠萝加糖水加冰块......吃完了本想去中环摩天轮坐坐,结果迷路了......香港很多路都是在天上,再加上谷歌地图失灵(或者是我),我们问了一位香港人,得知中环摩天轮这个时间已经关了。我们又被谷歌地图欺骗了,于是我愤恨之下下载了高德地图。Day 5:维多利亚港的两岸既然来到香港,自然是圣地巡礼一下《做个文明中国人》。一大早的香港微热,相机镜头一下就起雾了。小小的建筑折射出香港人的细腻心思。中环早上很多人在跑步,即使他们的衣服都湿透了。他们大多为中年人,但身材却都很有型,还有腹肌......很不幸,到我们坐摩天轮时下了大雨,整个维多利亚港都被一层迷雾笼罩。我们在海事博物馆附近找了一家餐厅吃午饭,坐完摩天轮餐厅才开始营业。商家很善良,四人免一,饭也很好吃。之后我们乘坐天星小轮前往尖沙咀码头。天星小轮很便宜,可以在维港上赏景,就是有点汽油味。在尖沙咀码头附近,我拍了一张维港的部分全景,相机一直框框框地响。可惜天气不是很好,维港跟失去了颜色一样。在星光大道上,有许多电影界的杰出人物,找了很久才找到张国荣先生的位置。之后的雨越下越大不止,我们只好在一处楼底下躲雨,躲了很久,腿也很酸。直到雨微停,不知道去哪里,我也就挑了一个深水埗去逛逛,想找找有没有什么好玩意。深水埗的道路两侧都是一些街边小贩,卖的大多是各国SIM卡、手电筒、充电线等无趣的物品,我们也只是走马观花。我懒得开导航走,走着走着就走到了卖菜街,腥味扑面而来,或许这就是香港的烟火气?之后我的心情就不怎么样陈,带着大家从深水埗白白地走到旺角,随便找了一家冰室吃晚饭。冰室或许是香港的一大特色吧。这家冰室又好吃又便宜,尤其是那菠萝冰,是真的有菠萝味的,而不是单纯的糖水,我们大家都很满意。吃完饭我的心情也不错了,决定善待大家,坐地铁去看维港的夜景。到时正值维港的浅蓝调时刻,不一会儿就变得更蓝了。夜晚的维港很多游船,对岸也亮起了广告牌,连结成维港最美的夜。不知我发了什么疯,竟然拍了一张有人的,恰好一位帅哥入镜,那就展示一下吧。不过确实,香港很多帅哥。这是我拍得最完美的夜了。用尽了各种自动挡,总是拍不出一张不过曝也清晰了。最后我终于肯切换到M档,把画面调得黑黑的,再在Lr的加持下,终于修出了一张比较满意的照片。晚上回去时,顺便拍了一下香港的望左与望右,它有一丢丢类似斑马线,但又不是。在它的加持之下,你能更加安全地过马路。香港的taxi也是其一大特色,红红的外壳颇有一点港剧的氛围呢。Day 6:再别香港香港国际机场也是自助值机,不过是我们全程自己操作哒。回去的时候总想着要买一点纪念品,正好看到了一家经纬,于是就去逛了逛。里面的东西都挺贵的,其他的盲盒我也不熟悉,于是就买了一个迪士尼的。我也不知道抽出什么好,但抽出金色唐老鸭达摩的时候我还有点失望呢。为什么不是唐老鸭招财猫呢?之后我通过维基了解到,达摩是日本的一种不倒翁玩具,现成为一种厌胜物,用以趋吉避凶,也不错呢。在香港国际机场,还有一家巧克力店叫我们去抽奖,抽了好几次终于中了一盒中等大小的品客薯片,不知是幸运还是不幸呢。在国泰上,我直接挑了一部LGBT电影《爱你,西蒙》,很精彩哒。不过《酷儿》我也挺想看的。最后结局还是有点让我紧张的,看到那个小贱人上来时我都要气炸了,不过最后还是反转了,哈哈。Day n:永别,自由再回长乐,已非曾经出发时的那份喜悦了。旅行,快乐的只有出发前和旅行中,而回来后,我又要面对现实的拷打和生活的不公。自由,只是昙花一现,自由过后,我又要被禁锢在监狱之中。不知何时,我才能再站在长乐机场的国际出发口,憧憬着下一次旅行的开始呢?