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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#CPP 用到了 DeviceInformation, AudioPlaybackConnection 和 watcher API , static 的局部变量设计还蛮精巧,最后的目的是 connection.Start(), open() check(status())
所以说 audio connection 是有三种状态: closed, ready, opened
#algorithm #parsing #CPP 说起来,之前我一直以为 Regex 就不能解析字符串转义 \" 了(当然是误解),看了才想起来可以 ([^"\\]|(\\"))* ,而且我之前在 ParserKt 就是这样写的,emmm…… 不得不说 Regex 很有用,有机会可以学学 DFA 算法
duangsuse::Echo
#Rust #Haskell 反正我现在看 Rust 语法设计也不见得多好…… 但是总还是少点冗余
具体说一下, #Rust 不是 #OOP ,但支持 OOP 写法(成员访问、调用链等)

Rust 不需要 Java/ES6 的模板 constructor ,它是 struct A { fn new() -> A } 的 A::new 命名空间+函数名惯例+#Haskell/JSON 式 Record 构造器 模式,写 impl A {} 第一参关键字 self:&Self 即可(完美替代 #cpp )。方法解析支持静态和 fat pointer 双指针 (vtablePtr+refPtr)

我不满意的地方可能是它的语法太随性(长短不齐、太像数学)吧,而且宏系统的各种变量/类型名也不大优雅

如果要我把 Rust 的设计风格与 Java 的相比,我更讨厌 #Java ,因为它是没学问装逼(冗长),而 Rust 则是过于老学究了,尽管社区很友好。

#Kotlin 是我目前唯一满意的语言设计,虽然感觉实践上 scope function 和 fun= 简写会被一些人滥用。
Forwarded from mivik::channels::tech
#thought #oi #cpp
论如何在毒瘤题中给变量取名
#py https://www.hillelwayne.com/post/python-abc/ 3.10 利用 isinstance hook 新增 match case: 🌚👍

#cpp #algor https://www.zhihu.com/question/365763395/answer/971009059 大整数str 和各种风格元编程 ,最后才是 (1~20)去叠「*」 的函数式

#fp GitHub 的 The ReadME Project 从大众角度来看函数式编程了
https://github.com/readme/featured/functional-programming

https://www.peterkrautzberger.org/0217/
#web mathjax 用 HTML/CSS 实现《算法》伪代码排印版式🤔

https://wiredjs.com/ 罚抄字体滤镜
#google #cpp 有一说一,Chrome 这代码质量真绝了 👍 C++但只比py复杂一丢丢

Blink 的水平可以说吊打了以上base64 编码实现,不过它的3rd party 许多自己实现了此编码:

modp(atob) v8自用
boringSSL (这货实现的优化我JS版都预备了
itsdangerous.py — JWT dumpload库
grpc/gtk, sqlite
lavutil ffmpeg, WebRTC
Blink 所支持的Protobufs (这个文件编译出5w行.cpp
CDP 调试协议[文件Write权限] [剪贴板]
test cases (某知名js项目就是从@tkent抄的
WPT 测试套件,对Web这样的大平台是必须的
——
感慨 Google 的工程师高薪是有原因的,写 C++ 能人间清醒成这样。😱
咕狗也有人擅长元编程,设计了 Protobuf, Mojom, IDL, GNI 等DSL工具 ,这种 红芯云云也配碰瓷吗 🌚没工具不知要复制粘贴多少代码

但这些实现.. 虽有特色,算法编程上仍不如GPT生成的版本。 没想到base64这种小算法,居然被这么多模块使用
https://t.me/solidot/20487 咕狗还经常管1k种其他语言国家的事,缺乏美国特色👌
duangsuse::Echo
#google #cpp 有一说一,Chrome 这代码质量真绝了 👍 C++但只比py复杂一丢丢 Blink 的水平可以说吊打了以上base64 编码实现,不过它的3rd party 许多自己实现了此编码: modp(atob) v8自用 boringSSL (这货实现的优化我JS版都预备了 itsdangerous.py — JWT dumpload库 grpc/gtk, sqlite lavutil ffmpeg, WebRTC Blink 所支持的Protobufs (这个文件编译出5w行.cpp…
#web 咕狗的 Blink 是依赖于 HTML,DOM/aria-A11y,SVG,MathML,Skia,SSL ,WPT,IDLs ,还有 dom的arybuf和canvas.bmp ,Speech, Storage, Worker messaging,还做出了世界上最好的DevTools,赞美咕狗

#js 的async体系甚至比 #pyhttps://t.me/dsuses/5112

而且测试都是和cc,hpp 同文件夹,不需要学jawa做智障的 jump to tests 按钮
#java 界的make 以为编译输出必按 what_mod/src/test/ 文件夹来分 ,弄得项目文件树是人不人鬼不鬼

用ninja 管理build 比传统 #cpp 高到不知哪里去了,LLVM的选择。

国内的辣鸡前端连a11y和iframes都不会做 ,怎么有脸谈内核,写个webext.json 用个BOM就烧高香了。
(发现这几条退订了3个人.. 只能说我就是喜欢用夸张的口气说事,不是说菜就不好)
#code #cpp 🌚👍 应该进疫情贡献博物馆陪着支付宝健康码?!
#define FOREVER 0 (exit值) 这人估计是个反串黑
return NEVER 可以理解为永远跟党走,但 return forever 就是一直倒车的意思 👌🏼🤡

中国很悲伤的地方,就是反串黑和无脑挺分辨不出来,「清风不识字,何必乱翻书」呢。
https://t.me/dsuset/10243

原來暖心小粉紅們的自信,是需要靠別人歧視他們体会出來的。
--https://m.youtube.com/watch?v=3VqT-uxt2Ec
“公開場合有權利拍任何想拍的人‘’跟“罵人是我的言論自由‘’一樣暖心。
不是说了sorry we have a break...個人有權要求不被拍攝。

到底有誰嗆人的時侯會說,我是哪裡人啊?
用其他種族的名義 侮辱別人,然後又要所有亞洲人站他們那邊,中國在給全世界製造仇恨真的是第一名欸。
duangsuse::Echo
#android #dev 面试题。上条则是简化版的答案 🧐 仅供参考,可能我解释的太抽象了,涉及一些淘汰的远古技术, 不符合标准答案。 - Handler 基础,Looper 怎么和 Thread 绑定,怎样提高 MessageQueue 优先级 - 进程间通讯的方法,对 AIDL 的了解,对 ContentProvider 的了解 - (根据项目) 自定义 View 的方法和注意事项、事件分发、View 复用 - 写过 demo 吗,什么时候会写 demo - 对 MVVM 的了解,对 Jetpack…
#android #hack #aop 继续,加上奇怪.. 的知识

Magisk 是 Android 版的 Docker (overlayfs),能管理root、去广告加皮肤、安装字体、模拟位置、利用权限骗过 SafetyNet DRM
它让 /boot/initrd 挂载(--bind) /sbin/.magisk tmpfs 来遮住 /mirror/system vendor 树,因此需要TWRP刷zip(和root时一样) 或fastboot刷入kitchen过的原机boot.img

新设备可能不区分boot分区(A/B 切换来OTA),修改内核强制使用 initrd(boot.img) 里的 init(PID0) 程序

简单说,#Linux 启动的传统是kernel解压启动 initrd 内存盘(recovery,Magisk)去寻找真'/',然后 chroot /sysroot /init (systemd,各类run-command,.)

Zygisk 和 Xposed 都是AOP框架,分别拦截和修改 Java android.*/JNI 函数的调用,从而实现对系统和应用程序的功能修改。Zygisk 是基于 Riru 的一个模块,使用 Zygote 注入技术来加载自定义代码。Xposed 是通过替换 /system/bin/app_process 程序来控制 Zygote 进程,使其在系统启动时加载 XposedBridge.jar 文件,从而完成对 Zygote 进程和 Dalvik 虚拟机的劫持。

Zygisk 是 Riru(#cpp .so 函数替换,靠魔改某项linker_PRELOAD) 的免安装续作,开启后不能规避检测,但支持文件/JNI重定向、实现了模块黑名单。 LSP和Ed-Xposed分别支持二者(不能共存)

.internal.os.Zygoteapp_process 的起点,它负责注册JNI、创建 SystemServer(PM,WM,AMS处理的Intent),之后便执行Xp模块
LSP 用 env->RegisterNatives(动态注册版Java_), jni_method_map[T][id][sig].fnPtr 来JNI替换,Zygisk 提供了 {pre(包名),post}AppSpecialize(args)
PRELOAD=libxposed.so 利用 env->FromReflectedMethod(由java查找).{access_flags|=ACC_NATIVE, (Dalvik|ART inlined jmp)nativeFunc=callHooked} 做函数替换

RegisterNatives 本身就能让JNI函数基于jobject clazz 派发,所以比ART hook 简单
FakeXposed 作者的博文

#kt #code
import de.robv.android.xposed.*
import de.robv.android.xposed.XposedHelpers.*

val reg={
val NoPrint={
setStaticObjectField("java.lang.System", "out", PrintStream(OutputStream()) )
}
findAndHookMethod("java.lang.System", cl, "<clinit>", object: XC_MethodHook() {
override fun MethodHookParam.afterHookedMethod() {NoPrint()}
})
}
//assets/xposed_init 写下类名
class My: IXposedHookLoadPackage {
fun LoadPackageParam.handleLoadPackage() {
if(packageName.equals("com.example.app"))reg()
cl=classLoader
}
}
duangsuse::Echo
#py 周刊 #ts Mypy: 1.5 Mypy 是 Python 的静态类型检查工具,1.5 版本主要功能有: @overrride 、更灵活的 TypedDict(字面创建的 dataclass) 创建和更新、可显示错误代码的文档、改进了泛型函数的类型推断、__slots__ 的优化、步进 Python 3.12 #ai 整理和预处理pdf文件,让GPT访问 from bot import Retriever, llm_reply #backend 用 numpy, 线程池 优化数学区间求和函数…
#cpp #bilibili std::lists 谈恋爱, BV1ak4y137vf 音源

#github #ai bot Sweep: 用提issue的方式让AI生成项目文件、添加功能

#web #security Dashy 的作者开源 🕵️ Web Check:网站信息收集器 官网

#life Little Big World, 壮观的无人机延时摄影、移轴摄影(边缘模糊)「小人国大世界」的视频网站
将地球上最美丽、最有趣的地方变成了可爱的微型模型,里面有大量的国外不同城市的这种微型模型视频,很适合欣赏。

#tool Mac: “ • 三等奖(8 名):赤友数据恢复 Mac 一年版 / 赤友右键超人 一年版 / 熊猫吃短信 2 一年版 / 优效日历 一年版 / Air Explorer Pro 一年版 / Manico 专业版

#apple 作品🏆 SixD (SwiftUI & Interaction Design)的作者开发这款App来源于他自己的一个愿景:「创造一个设计师与开发者之间的桥梁」。

1️⃣ 通过交互式指南学习 UI 设计基础:
你能扮演一个 UI 设计师,帮助开发者 Nina 来完善论坛 App。这样,也能学习到很多 UI 相关的知识,如改变背景颜色、强调颜色,如何对齐元素,改变图标,改变字体设置、层级、间距,圆角、边距。

2️⃣ 在 SwiftUI Lab 中学习每个元素(例如颜色、字体、组建布局、导航、选择器等内容)的使用和 SwiftUI 代码
除此之外,App 还支持学习 Apple 的一些偏门 API 们的使用,例如 AR Quick Look,MapKit,PencilKit 等内容。
#learn #cpp Redis 作者展示 https://yabzhang.github.io/posts/project/reading_smallchat/
作为一个展示样例,这端代码展示了如何处理内存管理、网络套接字的使用、多路复用、客户端连接的管理、消息和指令的处理等逻辑。除去注释只有短短两百多行,用来学习和理解服务端编程已经足够了 ———— 麻雀虽小五脏俱全。

>晚上逛 Github 发现个好用的项目(替代sftp分发),可以用于传输文本和二进制流,支持 curl 和浏览器端,可选 E2EE,支持自建中转服务器,用于在几台服务器之间临时传文件很方便
https://github.com/nwtgck/piping-server

>piping server的衍生项目,配合piping server可以实现用adb远程控制Android设备,前端功能相当丰富,包括文件管理/终端/scrcpy屏幕共享
Demo:https://piping-adb.nwtgck.org/
项目:https://github.com/nwtgck/piping-adb-web

该项目依赖的上游透过WebUSB让用户可以在网页端通过adb管理Android设备 https://app.tangoapp.dev/guide

#rust #meme https://github.com/lvkv/whenfs 通过base64存储图片,类似 youtubefs

#cg https://swiftcafe.io/2016/10/29/pdf
https://github.com/Losses/pdf-postprocess
用 headless chromium 把 svg 转成 pdf,这样样式就全都对了。
Typst 编译到 PDF 就是走的 svg,谁愿意写 postscript
https://zhuanlan.fxzhihu.com/p/12834699352 #os #cpp #rust #learn 协程 云风

>在知乎上看到两篇 吹嘘 云风的 coroutine 库的文章。

人啊就是这样的,出名了以后,就是垃圾也有人吹捧。

🤔 回头我可以科普下非阻塞(异步)、调度器、C++赝品Promise、 所有的协程都是使用的同一条栈(单一调度器) 有什么不对

https://www.zhihu.com/question/524369963/answer/21981903209
为调用 atexit(cb, cbarg0) 这人还写了个 GCC 实现 new lambda ,其实都很简单: up=1; f=(A)=>A+up 弄成 _f=(A,v)=>A+v.up ,再生成个 A=>_f(A, (captured_data*)x86_get_eip()[code_size])
被称为 trampoline 代码模板

整的我不会了,函数是穷人的对象,new个虚表或双指针挺直白的玩意这么麻烦,这是为啥呢?
因为 obj->call() == (obj.call) (obj,) ,是thiscall 1静1动,双指针则是 (*to_trait).call(obj,) 1静2动,而 CDEF f() 就是直接jmp过去,f肯定要在堆上,不能是static,但是又不能把f[code_size]到处复制粘贴,只好让 f.bind()=new 固定大小的可调用指针+data ,这还要求 “堆内存可执行”

结论:CDEF 的函数指针,危险危险危险。 UNIX 不以 addCb( any cb(any data), any data) 暴露回调API,坏; Python thread 暴露data参数,更坏! (py 都支持 fnptr.f_lasti 协程了还在用老思想编程啊)

CDEF 支持非阻塞编程的正确做法是: 在 dlopen() 外支持 dlnew(template_so, {statics...}) ,就像 ThreadLocal 那样。 硬是要把static重绑定为参数,才能安全兼容C++的 [](){return} 字面
duangsuse::Echo
https://zhuanlan.fxzhihu.com/p/12834699352 #os #cpp #rust #learn 协程 云风 >在知乎上看到两篇 吹嘘 云风的 coroutine 库的文章。 人啊就是这样的,出名了以后,就是垃圾也有人吹捧。 🤔 回头我可以科普下非阻塞(异步)、调度器、C++赝品Promise、 所有的协程都是使用的同一条栈(单一调度器) 有什么不对 https://www.zhihu.com/question/524369963/answer/21981903209…
https://zhuanlan.fxzhihu.com/p/158430253 #js #plt 闭包
我类个逆天啊, 别整这些八股政确了,好好搞你们的业务去把

也没见你支持json.load/dump匿名函数或者作为F12调试利器啊, 要我的话就支持 addJob=(id)=> write(on_usb.js, ()=>id.next) 了,不然你分析分析有啥用啊

https://zhuanlan.zhihu.com/p/158147380 #cpp 反射库 非 RTTI