Forwarded from dnaugsuz
对了 Jack ,其实 Serialization 的本质是
这样的操作
上次基础网页设计我就拿这个抽象弄了个改 cssText shift(1) border 的,老好玩了(可惜没带U盘)
Equiv<A,B>(from:(A)=>B, into:(B)=>A) 呢,它上面还可以实现map(x:A,op:(B)=>B):A ; swap(): Equiv<B,A>
lift(op:(B)=>B):(A)=>A; id(): (A)=>A这样的操作
上次基础网页设计我就拿这个抽象弄了个改 cssText shift(1) border 的,老好玩了(可惜没带U盘)
Forwarded from dnaugsuz
不为 specified case 设计是一种设计思想,有时间你可以试试,说不定会有新发现
(这个思想还挺有用的,如果要让项目更可扩展就必须以这种思想设计程序,把问题不断拆分并且巧妙的拼合程序与业务逻辑)
我设计的最喜欢的 ParserKt, BinKt, ArgParser 都有这种思想,不过有点过度了,这种思想要比普通框架大比 Scala,Haskell 小才好用
(这个思想还挺有用的,如果要让项目更可扩展就必须以这种思想设计程序,把问题不断拆分并且巧妙的拼合程序与业务逻辑)
我设计的最喜欢的 ParserKt, BinKt, ArgParser 都有这种思想,不过有点过度了,这种思想要比普通框架大比 Scala,Haskell 小才好用
Forwarded from Blaire Noctis
sed -i 's/stable/unstable' /etc/apt/sources.list
https://t.me/woshiluo_nsfw/249 #Linux #轻松一下
GNU 安全卫士
VLC 影音
git 同步盘
Tor 安全浏览器
Clash 加速器
duck.com 永无广告安全搜索
redd.it 贴吧
youtu.be 视频
apt 软件管家
AUR 应用市场
grub2 引导管理器
Genymotion 安卓盒子
qphotorec 文件恢复大师
clonezilla& 系统备份ghost
Linux 5.x 新技术(NT)内核
systemd 启动管理器
gparted 分区genius
BleachBit.org 清理大师
VNC&scrcpy 远程协助
GIMP 魔术手
Pitivi 会声影
Libre Office
xarchiver 好压
aircrack-ng 万能钥匙
小狼毫(rime.im)智能输入法
Plasma themes 美化大师
cairo-dock 开始菜单小助手
glmark2 跑分大师
Raspberry Pi OS 物联网平台
Transmission&aMule 雷
emacs 文档系统
beamer 演示
KDE Connect 智慧互联
GNU 安全卫士
VLC 影音
git 同步盘
Tor 安全浏览器
Clash 加速器
duck.com 永无广告安全搜索
redd.it 贴吧
youtu.be 视频
apt 软件管家
AUR 应用市场
grub2 引导管理器
Genymotion 安卓盒子
qphotorec 文件恢复大师
clonezilla& 系统备份ghost
Linux 5.x 新技术(NT)内核
systemd 启动管理器
gparted 分区genius
BleachBit.org 清理大师
VNC&scrcpy 远程协助
GIMP 魔术手
Pitivi 会声影
Libre Office
xarchiver 好压
aircrack-ng 万能钥匙
小狼毫(rime.im)智能输入法
Plasma themes 美化大师
cairo-dock 开始菜单小助手
glmark2 跑分大师
Raspberry Pi OS 物联网平台
Transmission&aMule 雷
emacs 文档系统
beamer 演示
KDE Connect 智慧互联
Telegram
Woshiluo 的 NSFW 与 ACGN
GNU 安全卫士
VLC 影音
git 同步盘
Tor 安全浏览器
apt 软件管家
Clash 加速器
AUR 应用市场
VNC 远程协助
GIMP 魔术手
aircrack-ng 万能钥匙
小狼毫智能输入法
Plasma themes 美化大师
Raspberry Pi OS 物联网平台
VLC 影音
git 同步盘
Tor 安全浏览器
apt 软件管家
Clash 加速器
AUR 应用市场
VNC 远程协助
GIMP 魔术手
aircrack-ng 万能钥匙
小狼毫智能输入法
Plasma themes 美化大师
Raspberry Pi OS 物联网平台
#Android #Security https://github.com/drakeet/AppFilter drakeet 实现的 Xposed 模块,用来在 PackageManagerService 中过滤掉指定的 App,防止 debug 版 App 泄露(之前国内有过先例,某杀毒软件自动把某绿色通讯应用的 debug 版上传到其服务器)
因此如果是开发者,还是很有必要保护一下自己的 debuggable 应用
这个是什么鬼🤔面向开发者的设备的? 噢…… 是防止调试设备上 apk 被大数字之类的自动上传
因此如果是开发者,还是很有必要保护一下自己的 debuggable 应用
这个是什么鬼🤔面向开发者的设备的? 噢…… 是防止调试设备上 apk 被大数字之类的自动上传
Forwarded from mivik::channels::tech
Forwarded from Milkice's 我是高仿号我根本不懂中文 (Milkice | nabudclexixiuv)
Elepover
扫描,撕裂和垂直同步 - VSync 技术实现 | Elepover's Blog
我们来上一节历史课,回顾显示技术的发展史。故事要从人类最早的显示技术:CRT 说起。
Forwarded from 三三说
如果你想知道自己的 Telegram 账号所在的 DC,现在有了更简单的办法:
https://lab.best33.com/telegram-datacenter/
只需要公开头像即可,不需要设置用户名,也不需要通过 inline bot 发送结果。
https://lab.best33.com/telegram-datacenter/
只需要公开头像即可,不需要设置用户名,也不需要通过 inline bot 发送结果。
Forwarded from Solidot
GNOME 40 发布
2021-03-25 08:51 #GNOME
GNOME 桌面环境项目宣布释出 GNOME 40,它的上一个版本是 GNOME 3.38,项目在去年宣布将改变版本命名方式,理由是在可预见的未来它不会像 GNOME 2 到 GNOME 3 那样改变核心的技术,大版本号不会增加了。GNOME 40 主要新变化包括:新的 Activities Overview 设计,重新设计天气应用 Weather,改进设置,浏览器加入了新的标签栏设计,增强了文件应用 Files,等等。
2021-03-25 08:51 #GNOME
GNOME 桌面环境项目宣布释出 GNOME 40,它的上一个版本是 GNOME 3.38,项目在去年宣布将改变版本命名方式,理由是在可预见的未来它不会像 GNOME 2 到 GNOME 3 那样改变核心的技术,大版本号不会增加了。GNOME 40 主要新变化包括:新的 Activities Overview 设计,重新设计天气应用 Weather,改进设置,浏览器加入了新的标签栏设计,增强了文件应用 Files,等等。
Forwarded from MiaoTony's Box (MiaoTony)
#今天又看了啥 #安全 #openssl
NULL pointer deref in signature_algorithms processing (CVE-2021-3449)
一个拒绝服务漏洞,由空指针引用错误引起。对于默认配置下使用 OpenSSL 的软件,恶意构造的请求可以让服务端崩溃。
A server is only vulnerable if it has TLSv1.2 and renegotiation enabled (which is the default configuration). 受影响范围 1.1.1+
CA certificate check bypass with X509_V_FLAG_X509_STRICT (CVE-2021-3450)
受影响范围 1.1.1h+
OpenSSL 1.1.1k 修复了上述漏洞
See also:
OpenSSL Security Advisory [25 March 2021]
OpenSSL fixes high-severity flaw that allows hackers to crash servers
NULL pointer deref in signature_algorithms processing (CVE-2021-3449)
一个拒绝服务漏洞,由空指针引用错误引起。对于默认配置下使用 OpenSSL 的软件,恶意构造的请求可以让服务端崩溃。
A server is only vulnerable if it has TLSv1.2 and renegotiation enabled (which is the default configuration). 受影响范围 1.1.1+
CA certificate check bypass with X509_V_FLAG_X509_STRICT (CVE-2021-3450)
受影响范围 1.1.1h+
OpenSSL 1.1.1k 修复了上述漏洞
See also:
OpenSSL Security Advisory [25 March 2021]
OpenSSL fixes high-severity flaw that allows hackers to crash servers
cve.mitre.org
CVE -
CVE-2021-3449
CVE-2021-3449
The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities.
#日常精神分裂 #parsing #JS #scheme
A: 之前说好了要写的 s-expr 解析器,看来是写不了了?还打算复用 JSON.parse 的,以及支持缩进布局,那样就会很有价值吧
B: 之前还打算支持 {;} 可选缩排的,发现和 data notation 侧冲突了,看来是眼高手低😂
A: 其实关键在于易实现性吧,你想用尽量少的代码和低层API实现给应用用的解释器,无论解析结果怎么用?
B: 对了,子序列法比流递归下降法代码量少吗?
A: 无论从什么角度看,加上对 JSON 子语言解析器的复用都不会更省啊……
S表达式是由 Atom/List 两种元素组成的嵌套表,或者说 值/调用参组 的树形列表,一般首项为函数值, 尾余为参数;是三十行以内能实现带调用和 (let 的 动态作用域版。
譬如在解析 () 里的 a b c 单项中,我们实际在读 SList 即 toplevel 的 Expr list ,假设 a 是另一个 () 则:
流递归下降从 ( 后再解析 SList ,它主动完结后刚好在 ) 闭处
无论是靠返回结束索引号的非规范递归下降还是 StringView substr 返回消耗/片段的皆此
子序列在 ( 处直接 findPairedIndex ,这个算法只需处理 "\"" 字符串然后取闭包含子串递归解析,不过这个扫码过程是没有缓存但只需计数开括号的,相对外部()会多数很多遍。
我可以觉得,不用流不等待「不知何处结束」的子串解析结果再检查闭括号较易理解,但是它实际做了无用功,调用栈还是那么高。
B: 就没有什么又易懂又简单的方法去递归下降吗?子序列真的有那么无用吗?
A: 我打算用 function 值把流建模成 s(0)==length, s(1)=="a", s(-1)(1)=="b" 这个样子,还算轻易。
JSON 静态变作流解析有方法,递进长度子串+检查异常pos取头 足矣,全长仍错时即无解析
递归下降如果不显式 substr 而是交 (共享/复制&同步) StrView 的话 #parser 的确对新手不好理解,但套路不复杂。
子序列的话我考虑了一下,如果我们采用复杂点的 visitor 去边解析边执行(自然也可存下再执行)是能实现 if 里兼容一侧语法错误的,显得很 Javascriptic 🌝
B: 很神奇,具体怎么做呢
A: 存参成树允许再遍历的 visitor 就不说,可以给部分递归 () 的 case 变成
其实我并不喜欢边解析边执行,只是有时候(比如 %s fmtstr 等)工作就是很死板所以无所谓了,况且这分块惰性解析涉及函数调用求值序的问题,那就是扯到函数抽象、词法作用域里的闭包 #ce #plt ,不简洁不能体现对灵活的嵌套处理过程的即时利用
A: 之前说好了要写的 s-expr 解析器,看来是写不了了?还打算复用 JSON.parse 的,以及支持缩进布局,那样就会很有价值吧
B: 之前还打算支持 {;} 可选缩排的,发现和 data notation 侧冲突了,看来是眼高手低😂
A: 其实关键在于易实现性吧,你想用尽量少的代码和低层API实现给应用用的解释器,无论解析结果怎么用?
B: 对了,子序列法比流递归下降法代码量少吗?
A: 无论从什么角度看,加上对 JSON 子语言解析器的复用都不会更省啊……
S表达式是由 Atom/List 两种元素组成的嵌套表,或者说 值/调用参组 的树形列表,一般首项为函数值, 尾余为参数;是三十行以内能实现带调用和 (let 的 动态作用域版。
譬如在解析 () 里的 a b c 单项中,我们实际在读 SList 即 toplevel 的 Expr list ,假设 a 是另一个 () 则:
流递归下降从 ( 后再解析 SList ,它主动完结后刚好在 ) 闭处
无论是靠返回结束索引号的非规范递归下降还是 StringView substr 返回消耗/片段的皆此
子序列在 ( 处直接 findPairedIndex ,这个算法只需处理 "\"" 字符串然后取闭包含子串递归解析,不过这个扫码过程是没有缓存但只需计数开括号的,相对外部()会多数很多遍。
我可以觉得,不用流不等待「不知何处结束」的子串解析结果再检查闭括号较易理解,但是它实际做了无用功,调用栈还是那么高。
B: 就没有什么又易懂又简单的方法去递归下降吗?子序列真的有那么无用吗?
A: 我打算用 function 值把流建模成 s(0)==length, s(1)=="a", s(-1)(1)=="b" 这个样子,还算轻易。
JSON 静态变作流解析有方法,递进长度子串+检查异常pos取头 足矣,全长仍错时即无解析
递归下降如果不显式 substr 而是交 (共享/复制&同步) StrView 的话 #parser 的确对新手不好理解,但套路不复杂。
子序列的话我考虑了一下,如果我们采用复杂点的 visitor 去边解析边执行(自然也可存下再执行)是能实现 if 里兼容一侧语法错误的,显得很 Javascriptic 🌝
B: 很神奇,具体怎么做呢
A: 存参成树允许再遍历的 visitor 就不说,可以给部分递归 () 的 case 变成
()=>readList(s.substr(findPairedIndex(s,))) 闭包,然后参数求值(反正这语赋值处只有实参组) 时支持惰性求值的程序里兼容下先解析。其实我并不喜欢边解析边执行,只是有时候(比如 %s fmtstr 等)工作就是很死板所以无所谓了,况且这分块惰性解析涉及函数调用求值序的问题,那就是扯到函数抽象、词法作用域里的闭包 #ce #plt ,不简洁不能体现对灵活的嵌套处理过程的即时利用