Hypercube's Channel

Description
@SmartHypercube 随便发最近关注的东西
欢迎找我私聊讨论
可以使用 Telegram 的转发功能转发消息
1 year, 8 months ago

今日份的 Safari 问题:
iOS 上 WKWebView 遇到 a 元素 href 为 blob: 并且有 download 属性时行为奇怪,导致在浏览器里点击这样的链接可以下载文件,但在各种 in-app browser 里(例如 Telegram 的 in-app browser)就不行,不仅会直接打开文件而非下载,而且中文系统的话还会用 GBK 而非 UTF-8 解码。解决方案:把 blob: 换成等价的 data:。

1 year, 8 months ago

冬天来了,提醒大家,如果想不痛地释放静电的话,可以先抓住金属物品(例如钥匙),再用它接触水龙头、暖气片等接地的金属。要点在于放电瞬间皮肤要和金属有大面积接触,而不是让电流全部流过皮肤上一个点。

1 year, 8 months ago

笑死,在 Hacker News 上看了一集走近科学

1 year, 9 months ago

记录一下每日论文的关键词匹配功能的技术细节:
- 使用 Unicode NFKD normalize,移除 U+0300 到 U+036F 的字符,再 NFC 拼回去,实现 á 和 a 互相匹配。
- 用 (s.match(/[a-zA-Z]+|[^a-zA-Z]/g) || []).filter(i => i !== ' ') 转为 token 序列,可以支持“1+n pattern”等带符号的关键词。
- 使用 Porter Stemmer V2 把每个词变成词干,实现 model 和 models 互相匹配。
- 对于用户提供的自定义 JS 函数,把 eval(s) 改成 new Function('return ('+s+')')() 对 minifier 比较友好。

1 year, 9 months ago

这个项目的前端是我目前做过的最完善的了?开发体验也非常棒,学了一些新的开发工具和 CSS、JS 特性,还发现了更多以前不知道的细节,例如:
- localStorage 多个标签页同时读写时可能因为 race condition 出问题,网上很难找到真的没 bug 的解决方案,能轻松解决这个问题的 Locks API 有点新。
- Safari on iOS 不支持 :root {overflow-y: hidden}。
- Safari 不支持 scroll anchoring,屏幕上方看不见的元素尺寸变化也会导致页面跳动。
- 表单可以有多个提交按钮,按回车总是会触发 DOM 中第一个提交按钮。
- katex 会在页面上用绝对定位乱放东西,把页面撑大。可以用 CSS contain 属性收容。

1 year, 9 months ago

最近在开发的项目发布啦,是和 @hejiyan 合作搞的一个 AI 总结学术论文的工具,欢迎使用~

https://paper.dou.ac/

1 year, 12 months ago

https://app4.hc11.org/49499641/

做了个考验 AI prompting 技巧的游戏,欢迎来玩?

1 year, 12 months ago

北京环球影城

门票:需要提前买票和选日期,有各种门票可选,最近周四到周一晚上有特别活动,这些日子可以选全天票或者仅晚上的票,周二周三可以选全天票或者半天票(14 点至 20 点),另外还有 1.5 天票之类的选择。我买的是半天票,每人 316。官方微信小程序做得不怎么样,买票流程都能遇到 bug,只好去美团买。

价格:门票含所有大型项目,只要愿意排队就随便玩。里面有一些小的游乐项目是收费的,30-50 元一次。一个人吃到中等饱的程度大概 100 元。纪念品大概参考:头饰 100 多,巫师袍 800 多,巫师棋 2000 多。

入园:环球影城外面有一个叫城市大道的免费区域,可以比买票的入园时间早半小时来逛外面,然后准时进环球影城。周二 14 点时入园很快,几乎不用排队。

时间和步行量:园区内部不算大,但从上下车的地方到园区还有点远。我 13:30 下车,中间在园区吃饭,19:30 左右开始感觉脚有点痛了,20:10 开始离开,20:50 上车,总共刚好两万步并且比较累了。

设施:感觉各种设施挺好的,很多细节也都很讲究,例如卫生间密度很高,都提供免费饮用水,游乐项目排队过程中也有饮用水,排队前能看到估计等待时间。无障碍做得很好,游乐项目上下客区域也够大够方便。

游乐项目:大型项目(十几个)都是免费的,但要排队,我玩的基本都是等待 5 或 10 分钟,最热门的会有 20 或 30 分钟,微信小程序上可以看到所有项目实时等待时间。排队过程中可以看到一些有趣的东西,如果不排队的话反而快速走过去来不及看。很多项目都是按照 4 人一组设计的,工作人员会尝试凑满,不太会有 2 人可以单独拿到一排/一个座舱的情况,但可以尝试去抢最外侧之类的座位。3 人找不到 1 人来凑倒是比较常见。

霸天虎过山车:我认为最猛的过山车,几乎所有人都会持续叫
鹰马飞行:我认为第二猛的过山车,几乎所有人都会持续叫
飞越侏罗纪:不太刺激的过山车,只有两下有点剧烈的加速,但很短,少数人会叫一下
哈利波特与禁忌之旅:类似那种座椅会旋转和小幅移动的电影,有非常短暂的失重或加速,但没有剧烈位移
侏罗纪世界大冒险:坐车沿轨道走
神龙大侠之旅:功夫熊猫主题,坐船沿轨道走,会从高处掉落一下,第一排会有一点水溅到
奥利凡德:选一个幸运观众互动,其他人观看
灯光,摄像,开拍:观看
灯影传奇:旋转小飞机,座舱内 2 人向前,2 人向后,互相面对面
炫转武侠:旋转木马

2 years ago

最近终于尝试了一下 Hetzner Cloud,我简直吹爆!
- 非常便宜,性价比远超竞争者,2 核 4 GB 每月不到 4 美元
- 只需要关机就能升降配,不像有的云只能销毁重买机器
- 有 rescue 功能,可以引导一个临时系统,方便对硬盘做操作
- 有挂载 ISO 和从 ISO 安装系统的功能(用 web console)
- 每台机器免费给 IPv6 /64,可以随便绑定地址使用,我从没在别的云上见过这样的,都是每台机器只能绑 1 个或很少几个 IPv6 地址。再也不需要 Nginx 做分流了,可以直接不同服务绑到不同地址,还可以每个 docker 直接拿到自己的地址而不用 NAT
- 没有严重的丢数据/downtime 之类的负面记录

坏处:
- 地域选择比较有限,欧洲连各种地方延迟都有点高
- 硬盘是本地 RAID10,和 DigitalOcean、Linode 等类似,没有异地冗余,机房起火之类的意外可以导致数据丢失
- 比较难注册到账号,很多人上传身份证明后立刻没有理由地被 ban(不开代理,用不同 IP 和邮箱重试,可能可以成功,仅供参考)

2 years, 2 months ago

前段时间有个俄罗斯的学生突然加我,向我请教用 PyQt6 开发翻转棋游戏相关问题,说是课程大作业。帮他的过程中感觉好像曾经给 C 语言课带助教啊?昨天他说成功赶上 ddl 交了,代码在 https://github.com/kkasuann2000/gameR

我问他到底在哪找到我的,为什么会这样跑来求助一个陌生网友,而且我也没发布过翻转棋或者 PyQt6 相关代码。他说是搜索 reversi game python 找到了 https://ibug.io/blog/2018/05/python-reversi/ ,侧栏有 Telegram Channel 链接 @iBugThought ,那天最新一条消息正好是我和 iBug 约饭时聊到的话题 https://t.me/iBugThought/4098 ,其中有我的 username。

原来是把我当成 iBug 了?