duangsuse::Echo
714 subscribers
4.24K photos
127 videos
583 files
6.46K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from dnaugsuz
对了 Jack ,其实 Serialization 的本质是 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 小才好用
#Linux #sysadmin unstable 化你的 debain-based 发行版!
Forwarded from Yuuko Shiori
用着新内核,属实舒服。
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 智慧互联
#Android #Security https://github.com/drakeet/AppFilter drakeet 实现的 Xposed 模块,用来在 PackageManagerService 中过滤掉指定的 App,防止 debug 版 App 泄露(之前国内有过先例,某杀毒软件自动把某绿色通讯应用的 debug 版上传到其服务器)

因此如果是开发者,还是很有必要保护一下自己的 debuggable 应用

这个是什么鬼🤔面向开发者的设备的? 噢…… 是防止调试设备上 apk 被大数字之类的自动上传
#CG #cplusplus 草,直接把渲染层 pipeline 整体给参数化了…… 还是 yaml 支持
答案当然是 class 和子程序…… 有了局部化的符号集才有易懂的算法和数据结构
Forwarded from mivik::channels::tech
#thought #oi #cpp
论如何在毒瘤题中给变量取名
Forwarded from Phonograph (Ralph 萌新喵)
绕口令:
explicitly defaulted default constructor is implicitly deleted
default constructor is explicitly defaulted but implicitly deleted
Forwarded from 三三说
如果你想知道自己的 Telegram 账号所在的 DC,现在有了更简单的办法:

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,等等。
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
#日常精神分裂 #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 变成 ()=>readList(s.substr(findPairedIndex(s,))) 闭包,然后参数求值(反正这语赋值处只有实参组) 时支持惰性求值的程序里兼容下先解析。

其实我并不喜欢边解析边执行,只是有时候(比如 %s fmtstr 等)工作就是很死板所以无所谓了,况且这分块惰性解析涉及函数调用求值序的问题,那就是扯到函数抽象、词法作用域里的闭包 #ce #plt ,不简洁不能体现对灵活的嵌套处理过程的即时利用