#CPP 用到了 DeviceInformation, AudioPlaybackConnection 和 watcher API , static 的局部变量设计还蛮精巧,最后的目的是 connection.Start(), open() check(status())
所以说 audio connection 是有三种状态: closed, ready, opened
所以说 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= 简写会被一些人滥用。
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
#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/ 罚抄字体滤镜
#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/ 罚抄字体滤镜
Hillel Wayne
Crimes with Python's Pattern Matching
Let's make the CPython team regret adding pattern matching to Python!
#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://tttttt.me/solidot/20487 咕狗还经常管1k种其他语言国家的事,缺乏美国特色👌
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://tttttt.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体系甚至比 #py 强 https://tttttt.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个人.. 只能说我就是喜欢用夸张的口气说事,不是说菜就不好)
#js 的async体系甚至比 #py 强 https://tttttt.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个人.. 只能说我就是喜欢用夸张的口气说事,不是说菜就不好)
Telegram
duangsues.is_a? SaltedFish
#py 哪有preemptive的 def ,你说的应该是yield ,那个是主动暂停而非抢占
你理解错了,py的GC和Coro 都是替程序员避免这些麻烦 ,你是指把async调用的await关键字省略吗? kotlin能做到。
py和js都同时支持 yield和await 表达式,ES6上await其实是靠yield Promise 实现的,也是唯一能暂停函数运行的手段(await f等于yield* ,因为f可以暂停多次)
按常理说,确实IO操作自动暂停,不卡死调度器即可
可能py不想弱类型,…
你理解错了,py的GC和Coro 都是替程序员避免这些麻烦 ,你是指把async调用的await关键字省略吗? kotlin能做到。
py和js都同时支持 yield和await 表达式,ES6上await其实是靠yield Promise 实现的,也是唯一能暂停函数运行的手段(await f等于yield* ,因为f可以暂停多次)
按常理说,确实IO操作自动暂停,不卡死调度器即可
可能py不想弱类型,…
#code #cpp 🌚👍 应该进疫情贡献博物馆陪着支付宝健康码?!
return NEVER 可以理解为永远跟党走,但 return forever 就是一直倒车的意思 👌🏼🤡
中国很悲伤的地方,就是反串黑和无脑挺分辨不出来,「清风不识字,何必乱翻书」呢。
https://tttttt.me/dsuset/10243
原來暖心小粉紅們的自信,是需要靠別人歧視他們体会出來的。❤
--https://m.youtube.com/watch?v=3VqT-uxt2Ec
“公開場合有權利拍任何想拍的人‘’跟“罵人是我的言論自由‘’一樣暖心。
不是说了sorry we have a break...個人有權要求不被拍攝。
到底有誰嗆人的時侯會說,我是哪裡人啊?
用其他種族的名義 侮辱別人,然後又要所有亞洲人站他們那邊,中國在給全世界製造仇恨真的是第一名欸。
#define FOREVER 0
(exit值) 这人估计是个反串黑return NEVER 可以理解为永远跟党走,但 return forever 就是一直倒车的意思 👌🏼🤡
中国很悲伤的地方,就是反串黑和无脑挺分辨不出来,「清风不识字,何必乱翻书」呢。
https://tttttt.me/dsuset/10243
原來暖心小粉紅們的自信,是需要靠別人歧視他們体会出來的。❤
--https://m.youtube.com/watch?v=3VqT-uxt2Ec
“公開場合有權利拍任何想拍的人‘’跟“罵人是我的言論自由‘’一樣暖心。
不是说了sorry we have a break...個人有權要求不被拍攝。
到底有誰嗆人的時侯會說,我是哪裡人啊?
用其他種族的名義 侮辱別人,然後又要所有亞洲人站他們那邊,中國在給全世界製造仇恨真的是第一名欸。
Telegram
duangsuse Throws
金科律玉
via CCP bandit
via CCP bandit
#algorithm #cpp https://www.youtube.com/watch?v=jgQjes7MgTM
#cs https://www.youtube.com/watch?v=SzJ46YA_RaA
#py django 长视频 freeCodeCamp.org
#cs https://www.youtube.com/watch?v=SzJ46YA_RaA
#py django 长视频 freeCodeCamp.org
YouTube
The BEST Coding Interview Roadmap in 2023 (free)
🚀 https://neetcode.io/ - Checkout the FREE roadmap!
Checkout my second Channel: @NeetCodeIO
🧑💼 LinkedIn: https://www.linkedin.com/in/navdeep-singh-3aaa14161/
🥷 Discord: https://discord.gg/ddjKRXPqtk
🐦 Twitter: https://twitter.com/neetcode1
📷 Instagram:…
Checkout my second Channel: @NeetCodeIO
🧑💼 LinkedIn: https://www.linkedin.com/in/navdeep-singh-3aaa14161/
🥷 Discord: https://discord.gg/ddjKRXPqtk
🐦 Twitter: https://twitter.com/neetcode1
📷 Instagram:…
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分别支持二者(不能共存)
LSP 用 env->RegisterNatives(动态注册版Java_), jni_method_map
PRELOAD=libxposed.so 利用
RegisterNatives 本身就能让JNI函数基于jobject clazz 派发,所以比ART hook 简单
FakeXposed 作者的博文
#kt #code
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.Zygote
是 app_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
}
}
Gist
Zygisk 源码分析 #Magisk #Zygisk
Zygisk 源码分析 #Magisk #Zygisk. GitHub Gist: instantly share code, notes, and snippets.
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 等内容。
#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 等内容。
YouTube
ちょっかい問題という曲を作りました。#shorts #ボカロ #音源素材
#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
作为一个展示样例,这端代码展示了如何处理内存管理、网络套接字的使用、多路复用、客户端连接的管理、消息和指令的处理等逻辑。除去注释只有短短两百多行,用来学习和理解服务端编程已经足够了 ———— 麻雀虽小五脏俱全。
>晚上逛 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
yabzhang.github.io
smallchat 源码阅读
smallchat1 是 redis 作者 antirez 所写的一个聊天室的小程序;代码短小精悍,很有意思。据说作者以此例向前端朋友展示系统编程的趣味 😄 2~
这里记录下阅读源码所获。
首先从 main 开始:
/* The main() function implements the main chat logic: * 1. Accept new clients connections if any. * 2. Check if any client sent us some new message.…
这里记录下阅读源码所获。
首先从 main 开始:
/* The main() function implements the main chat logic: * 1. Accept new clients connections if any. * 2. Check if any client sent us some new message.…
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} 字面
>在知乎上看到两篇 吹嘘 云风的 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} 字面
FxZhihu / Fixup Zhihu
点评 云风 的 C库 coroutine | FxZhihu
序在知乎上看到两篇 吹嘘 云风的 coroutine 库的文章。 人啊就是这样的,出名了以后,就是垃圾也有人吹捧。 今天来点评下,云风的 coroutine 到底垃圾在哪里。又或者说,一个优秀的协程,应该优秀在哪里。 云风错在哪里首先一个优秀的协程库,要做到“自然”。 什么是“自然”呢?就是要做到尽量不改变原来写同步阻塞IO逻辑的时候的代码。 因此引出第一错: 1 协程库不应该侵入 API 设计要使用云风的协程,被调度的协程必须有如…
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
我类个逆天啊, 别整这些八股政确了,好好搞你们的业务去把
也没见你支持json.load/dump匿名函数或者作为F12调试利器啊, 要我的话就支持 addJob=(id)=> write(on_usb.js, ()=>id.next) 了,不然你分析分析有啥用啊
https://zhuanlan.zhihu.com/p/158147380 #cpp 反射库 非 RTTI
FxZhihu / Fixup Zhihu
javascript 近乎神话般的概念:闭包 | FxZhihu
写在前面JavaScript 一个近乎神话 对于JavaScript有使用经验但却从未真正理解闭包概念的人来说,理解闭包可以说是某种意义上的重生。闭包并不是需要学习新的语法才能使用的工具。闭包的产生是基于词法作用域写代码时自然产生的结果。换句话说,你不需要要为了闭包而写闭包,闭包在我们写的代码中随处可见。当你真正了解闭包之后,会发现,哦~,原来我以前所敲的代码中已经出现了很多闭包了鸭! 一个小 demo仔细看看下面的例子我…
#cpp 抽象大佬 打起来打起来! 😅
C++ 最终会被manba out ,因为它的「性能」也是伪命题
编程从来只有「功能点×算法」, 性能都是藏在API后面随便换
C++ 最终会被manba out ,因为它的「性能」也是伪命题
编程从来只有「功能点×算法」, 性能都是藏在API后面随便换
本来就只应该有值类型
只要不mut,就没有引用了
我说的只差一点,只要整个变量树不mut,不“一键”equals,就不存在值和引用
而且引用的语意本来是和Vue ref() 一样的单更改多赋值,不是什么单内存地址的概念
为了几个块设备上的地址搞那么多有意义吗,有种自己写个不需要memcpu虚拟化的裸机应用
ref:https://tttttt.me/dsuses/5408
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
1752279094668.png
更令人作呕的是弥漫在圈内的“和事佬”癌变! 动不动就搬出“XXX没有绝对的对错”、“大家都有道理”这种散发着恶臭的伪辩证法。在文科领域,这话大概率只是空洞的屁话;但在以逻辑、精确、客观事实为根基的理工科,尤其是在编程这种非黑即白(UB就是错,概念混淆就是错,逻辑漏洞就是错)的领域,说这种话无异于当众排泄!理工科没有对错?那你还学个毛线?你写的代码是薛定谔的对错吗?运行时靠意念决定结果?
这种“和稀泥”的本质,就是用虚假的“包容”和“多元”来掩盖技术上的无知、懒惰和不求甚解,是对严谨精神的彻底背叛!“态度至上”的矫情 + “和事佬”式的无原则包容 = 国内技术圈最恶劣的双生毒瘤! 它们联手绞杀严肃的技术讨论:纵容错误: 为技术谬误提供了“免死金牌”——反正“没有绝对对错”,错也理直气壮。打击求真者: 让 mq白 这样敢于直言、追求精确性的人被扣上“激进”、“高傲”、“揪字眼”的帽子,承受道德绑架。培养巨婴: 让学习者永远沉浸在“我弱我有理”、“你说我错就是你态度差”的舒适区,拒绝成长。劣币驱逐良币: 最终导致认真讨论技术、坚持标准的人心灰意冷,沉默或离开,留下满地鸡毛和自嗨的“差不多先生”。这就是一场彻头彻尾的、针对技术尊严的慢性谋杀! 在这种环境下,追求正确、精确和深入理解,反而成了“异类”和“原罪”。
https://www.fxzhihu.com/question/582463239/answer/1921899702628103298
我在 https://t .me/dsuse/21408 吐槽了你最近那事
然后 int a[3]; 是不是指针?当然是,除了没人用的sizeof a!=int ,用起来不就是指针,☝️🤓一点也不好玩。
你要问我为何不是指针,我说,从语意上讲是「双指针」,slice ,因为读写时的性质如此,sprintf_s 也是如此。
两边都有解释,范式不同而已。
你被人喷时可以考虑改一下自己批评的方向, 正确不等于对,你要为C/cpp用户需求的功能点着想一下, 你讨厌谭学,那你自己批UB的时候就不谭学了吗? 你的文章也有脱离App谈C++的私货的
我不是说你的开源和工程师精神不值得respect,但你必须学着从科普的角度入手,而不是一直纠结语法特性X何时是UB, 你批判的问题点,你要给出working的最佳实践再比较, 没人听你干巴巴普法
>strict alias,你要问语言律师,什么是sa,他能给你讲得头头是道,以肉眼parser分析出你的代码有没有违反规则,如果违反了,会嘲笑你不知道乌贼有十条腿。
但是全网没有一个人讲清楚这玩意到底有什么用😅 ,我们能从中得到什么益处,以及,我需要强制类型转换以及指针偏移时该怎么办——按照标准,linux内核链表是ub的。
按照律师们的说法,所有在2020年前,把int32转成float都只能用memcpy,所有2011年之前想用while(running)判断线程结束(volatile) 的都是错误。至于在此之前怎么写正确的代码,语言律师不会给你答案,仿佛在此之前从未有过多线程App。
—
你又不可能突破函数模型来组合程序,只要不是 #define / static T[], 你都不能用C sizeof 实现 forEach(a, print_D) 功能,所以a[]就是指针,API如此
“引用就是指针” 引用不可空,不可调整,是更好的指针,能在swap(A,B)上替代宏
我看见有人说 int a[2] 是 int a, a1; (int a**2); 他们是这么理解栈变量+指针的,这当然不规范,但C就没有operator[]和集合库,你说它是个二进制offset绑定语言,无关编程,也完全正确。 不要在一个错误的地方比较对错了,50年不变了
>你凭啥说我说错了?书上就是这么写的,数组名是指针,你比书懂?老师也是这么教的,你是啥啊?比我老师牛逼?我老师是还说看汇编,你看的懂吗?我老师可是教授。这书的作者可是清华教授,你有资格质疑吗?(一般不会一句话说完这些,这里只是全加在一起)
>一个18岁的人,能指望他懂什么?可以看出,他学东西“满满的高中生思维”,恨不得把整个cppref背下来,其实用处不大。
>热衷于当语言律师主要是因为没有能力当架构律师
>震惊,王垠还有低配版?我当初学编程,也是一堆语言律师教我在那边怎么写,就一个void main和int main能争论好几年
>那个个小圈子有点太抽象了,自称loser,确实了也是。我搞不明白,真正搞技术的谁没事整这么个b群,一个个整个loser的身份。感觉都是一群心智不成熟的高中生商业互吹。不如买几本经典书看收获大。
https://zhuanlan.zhihu.com/p/659407017
想到 #cpp SFINAE 和UB的关系也是 实在难崩, 确实需要正常人的编程语言整治一下C++字节和心脏只有一个能跳的碎片化狂欢了
代数确实就是非黑即白的, 但它的下场,就是几百年没人开发了,也就是领域死了。 还死的很有尊严呢~ 主不在乎。
SFINAE最开始不就是UB么, C++真是一个从bug和UB里构建出来的SDK,和py小而美的路子完全相反
邮电确实好啊…… 我大专
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
#cpp 抽象大佬 打起来打起来! 😅 C++ 最终会被manba out ,因为它的「性能」也是伪命题 编程从来只有「功能点×算法」, 性能都是藏在API后面随便换 本来就只应该有值类型 只要不mut,就没有引用了 我说的只差一点,只要整个变量树不mut,不“一键”equals,就不存在值和引用 而且引用的语意本来是和Vue ref() 一样的单更改多赋值,不是什么单内存地址的概念 为了几个块设备上的地址搞那么多有意义吗,有种自己写个不需要memcpu虚拟化的裸机应用 ref:https://tttttt.me/dsuses/5408
Please open Telegram to view this post
VIEW IN TELEGRAM