Thursday, 22 October 2020

怎样才能在 Facebook 上传下载最高清的图实验。

Android 上传 4 MiB (4032x3024) 的文件, PXL_20201022_141809183.NIGHT.jpg:
[1] 浏览器能下载 241 KiB (1440x1080) 的 JPEG 图。
[2] Android Facebook app 能下载 114 KiB (1080x810) 的 JPEG 图。


浏览器上传同样的 PXL_20201022_141809183.NIGHT.jpg:

[1] 浏览器能下载 509 KiB (2016x1504) 的 JPEG 图。
[2] Android Facebook app 能下载 109 KiB (1080x806) 的 JPEG 图。


实验总结:
要在 Facebook 下载别人最高清的图,上传和下载都必须用浏览器。下载才用浏览器则次之。下载用 Android Facebook app,甭管上传方式,都是最低清,没区别(Android 或浏览器上传都有比对方微小高的可能)。


其它因素:
[1] 此实验的 app 设置 SD/HD 上传没区别。
[2] 通过图库 app 的 "SHARE TO APPS" -> "News Feed" fb icon 上传,与直接在 fb app news feed 上传,两者没区别。
[3] 此实验 app 设置关闭 Data Saver。
[4] 设置朋友/公开权限不影响各下载方式的清晰度。
[5] Browser 的 Save image as, fullscreen "Save image as", "Download" 没区别。以前没 Download 按钮时, fullscreen 才比较高清所以才考虑这个因素。
[6] 以上的 Browser 只指 desktop www.facebook.com,而 m.facebook.com 的 "View Full Size" 则分别是 326 KiB(浏览器上传) 以及 206 KiB (Android 上传),皆介于 Browser 与 Android Facebook app 下载成绩的中间。
[7] 原图编码是 Baseline, 下载后的编码全是 Progressive, 所以不用担心不同编码影响结果。



顺便吐槽下 Konsole 新设计, 它的 find dialog 以前 (Ubuntu 18) 是下方完整的 panel row。

现在 (Ubuntu 20)  则是悬浮小部分在右上方,掩盖我命令行的后端,只能全屏 + 特地上方留空才能截屏完整高亮的结果囧 🎃

不是神仙没预料要截屏而留空只能重运行, 但不是每个命令都能得到同样的 output + 浪费时间。

还有其它
新设计很有问题,譬如 tab 打叉关闭很容易在换 tab 时误按 (右手用滑鼠与键盘交换的速度已很快,不喜太靠边的两个键 Ctrl+Tab)

, 明明以前 Ctrl+D 或偶尔滑鼠右键菜单关闭就完事不香么?

刚开始以为只是想多了, 可这几天我实实在在曾误关闭了几个需要留着的 output tab

,即使新设计检测有进程还在运行会有对话框都不能避免误关这种没进程但有重要 output 的 tab。

还有 scrollbar 太黑不懂如何调, 尝试各种 theme 设置都没效果。

changelog 都是讲为了更好,确定不是在逗? 🎃

我不介意改,但能不能提供设置让用户选择?

If it ain't broke, don't break it, Konsole!



Tuesday, 20 October 2020

bash -c "$pitfall"

If user use bash -c "" will easy to get unexpected result if user just copy-paste working code from existing shell session into bash -c "" (OR extend existing bash -c "") and expect it same. But if user use single quotes(outermost) consistently, then user can get rid a lot of trouble.

So, always use ''
single quotes in outermost(of course you can insert "$var" inner to expand if really need while you aware of this pitfall).

Previously I thought bash -c "" OR '' is just favor of choice(sort of isolate process something) until one day I play around with find/xargs and I wonder why `bash -c "dd2=`echo 5` && echo $dd2"` print nothing and why some commands pattern only run correctly on second time(because second time that "global" "$variable" get initialized from first time).

Note that I'm not talking about export environment thing here. `bash -c ''` is just one of the fundamental every shell user MUST know or you waste your time when debugging commands, and worst, unnoticed hidden bug wait for trigger.


Monday, 19 October 2020

Facebook 新设计的 bug

如果群组组员的主页 URL 是没用户名 (譬如 https://www.facebook.com/zuck 格式) 而只有 id (譬如 https://www.facebook.com/profile.php?id=12345 格式)

,那么
群组组员页面的 "View Main Profile" 按钮是 link 去 www.facebook.com 而不是该用户的主页。需要去网址栏删除 groups/<组id>/user/ 再浏览。

如果你只有 id 那么就可以减少 (
当然, 不可能完全避免) 组里 stalker 们 stalk 你主页, 反之如果你是搞宣传的且希望在组里引流去你的 profile, 则劝你放个用户名。

我转换去新设计后早就注意到这个 bug 很久了(很明显好不),只是到现在都没去 fix 囧,
fb 的员工懒到囧 😆



Friday, 9 October 2020

万恶的 baidu

百度百度, baiduyunguanjia 协议打开网盘程序可以理解,可是你乱入 text/html (点击html 文件得经过网盘程序) 是计划通想干嘛 🎃 

汝即非 html 浏览器,亦非 html 编辑器,
想干嘛?想干 🎃



v2ex 有人调侃 Linux 版网盘先来个硬盘扫描似乎并非调侃 🌚



【2021 更新】

skype 也有类似的情况, lolr share 你毛, 我不喜欢 share 东西囧



Tuesday, 6 October 2020

Google Pixel 4a 超坑人的 alarm bug

我就奇怪做么 alarm ⏰ 常没声音,原来 slider 的 alarm volume bar 要超过一半才等于 clock alarm 的第一个 volume,wth  🥶🥶🥶🤖🎃🥃


Media volume 1/3 的声音就够了,所以 Alarm volume 也跟着调 1/3, 没想到是个大坑:


与上图 slider 相应的 volume, 在 clock app 的设置是 mute 囧:


 

来个全景经典画面, 左(slider 设置)1/3, 右 (clock app 设置) 是 mute, 两者名字都称 "Alarm volume" 囧, 应该坑了不少人, 不说了我迟到了 🌚:



Thursday, 6 August 2020

Catch 'Err All - universal command to check any log


之前 MCO fb 群组教人 debug 的时候无意中想到, 如果有一个命令,能收集所有常见的错误关键字来秒 grep 会超级有用。

不管你是 /var/log, 还是 logcat,  还是什么鬼程序的 log, 都能轻易看出错误的地方, 这些错误的地方值得关注为啥会错误, 而不是迷失在大量无意义的正常 log。

即便有些错误对程序来说是正常输出,我个人觉得仍然值得关心干啥会有错误字眼。而且有杀过没放过,看多好过遗漏。错误的 log 不是非常多,花不了太多时间, 而且很多是重复性的源自于同一个程序错误, 只要解决该程序问题就能大量减少该错误信息。

我知道 dmesg 可以分类, 譬如 `dmesg --facility=kern --level=emerg,alert,crit,err`。但是仍然不能说正常 log 没有值得关注的错误信息。而且我目标应付是任何程序的  log (当然不可能完美,有些字眼对某些程序或许重要/不重要而遗漏,这种情况下可以加上 -v 稍微检查是否有遗漏, 或添加排除该程序不重要的字眼)。

然后最近又要 debug log  所以就想完善它。我不熟悉 regex 无法做到 prefix 和 postfix 的 negate。且要不保留 non-match(DEBUG) 又要保留 matched line(bug) 非常困难, 网上现有的答案找了几下,也没有找到我要的答案 (有的提 `?!` 但是没有提 prefix 最重要的 `<`, 更别说提 prefix 和 postfix 有区别),就去 UNIX stackexchange 问了大佬,重新完善了此命令。当然随着时间的推移,接触更多种类的 log,未来可以加更多遗漏的关键字或修改。


命令代码和往后的详情更新,请浏览 https://github.com/limkokhole/Catch-Err-All


你可以看到 (?<! b|dia)log(?![a-z]), 表示我要看到有 log 关键字的 line, 但是又不想包括 blog, dialog,logic, login 这些常见字眼。前面是 `?<!` , 后面是 `?<`, 区别只是前面多了一个 `<`。要添加的时候,先检查现成有没有才修改 (比如我要 exclude "dialog",我找到现成已有 "log", 那就在 "log" 那里 extend, 而不是加新的 `| |` )。

 你可能会问有 "impossible" 为何没有常见的 "not possible", 因为 "not" 已拥有自己的 `| |`。所以不需要重复加 "not possible", "not able", "not found" 之类的 | |, 省很多。想一下,有 `not `的 log  是不是很多都是跟错误(或值得关注)有关系的?就是这么个玩法。block 也是同理,有 lock 了不需要 block。改的时候要小心, 譬如 dump 是包括 core.?dump 的哦。err 可能比较常改, 所以最好分 errno  和  interrupt 出来。

还有一些比较主观的讲究, 比如 disabling, revoking ... 我觉得没那么重要,重要的是 disabled, revoked, 所以我才放 disable 而不是  disabl。还有 pause 不是很重要,毕竟只是暂停,并非如 stop 或 cancel 那么重要。放太多会很 noise  所以要取舍。

最后第二个 `\?` 是黑人问号 ?, 如果问号 ? 在 log 是正常的就要拿掉或修改。此命令主要就是 universal template,不是直接用就完美,但起码有个起点让你稍微修改就搞掂。 

最后则是常见的感叹号 "!", 排除常见的 `[ !` shell 格式和 `<! `html tag 以减少噪音, 不过仍然得保留常用来表达某些事物不等同而出错的 `!=` 符号。

有时你想了解上下文,可以加类似 -C 5 的 grep 选项或最后的 ' 前放多一个 `|` (不需要值) 即可显示全部不过仍然有搜索颜色看。

效果截图:





Saturday, 27 June 2020

Longest filename test by various downloaders




[补充]

这影片说的是正常的 3 bytes 情况下,如果是故意放 4 bytes 例如 “𪍑” 字, ss youtube 少 8 个𪍑的 32 bytes (不放 PIN_id 则是 7.75 个的 31 bytes)。

you-get 则是下载错误。


观察 you-get 的代码能明显看出简单的 text[:80] 是错误的。

因为截断后的 80 * 4 bytes = 320 bytes, 仍然远远超过一般文件系统限制的  255 bytes。

此测试虽然前面是模拟 Pin ID 的数字,仍然有 263 bytes ,大于我文件系统的 255 bytes。


没有文字描述的图片没有灵魂,所以最大化的使用文件名放描述是很重要的事情。

视频可以靠播放影片弥补,或许还好(不过 ep 放在最后面可能被截断),可是类似 pinterest 的图片下载器就非常需要足够的文字描述, 否则单独的一张图片没有背景描述真的很没意思。