啊哈,直接完整封装 inotify 的所有功能了,不过 70 行代码 😋
下载代码,
$ infsw #sysadmin #cplusplus #tools
R M attrib close close.rd open move.from move.to A D self.D self.move self.unmount in.queovf in.ignore
evNames=above evFlags=dFu1 hasPrefix=1 bufSize=1360
下载代码,
clang fsw.cpp -O3 &&install -Dm755 a.out /usr/bin/infsw 就可以收获简单易用的 fs watcher 了 😊$ infsw #sysadmin #cplusplus #tools
R M attrib close close.rd open move.from move.to A D self.D self.move self.unmount in.queovf in.ignore
evNames=above evFlags=dFu1 hasPrefix=1 bufSize=1360
Forwarded from 荔枝木
Bilibili
当它们重叠在一起 - oooooohmygosh_哔哩哔哩_bilibili
无论是对图形轮廓的创作,还对色彩的描绘,亦或是对技术的处理。只要是两个事物的重叠与碰撞,答案都不可能只有一个而已。而设计师要做的,就是为了得到更好的答案,去探索那无限的可能。, 视频播放量 2509127、弹幕量 4778、点赞数 215978、投硬币枚数 91758、收藏人数 95326、转发人数 8489, 视频作者 oooooohmygosh, 作者简介 合作vx:aichimeicaikourou,相关视频:这,不可能!,如何画一个不可能图形,5个著名商标中存在的“错误”,5秒视觉高潮,逃跑 -…
Forwarded from dnaugsuz
面试题都是屑,有胆就让通过的人在实际工程里写出那样精巧的代码啊
就是无聊的智商测试,过滤人的而已,根本不在乎实际应用能力。
应聘的人等于做题家,学习的过程等于填鸭,内卷死了。 你能做成什么样和用成什么样根本是两码事。
就是无聊的智商测试,过滤人的而已,根本不在乎实际应用能力。
应聘的人等于做题家,学习的过程等于填鸭,内卷死了。 你能做成什么样和用成什么样根本是两码事。
Forwarded from 一碗脑脊液。
Perseverance 降落伞上的花纹是「Dare Mighty Things」
https://twitter.com/FrenchTech_paf/status/1363992051734478852?s=20
https://twitter.com/FrenchTech_paf/status/1363992051734478852?s=20
Forwarded from 回忆的梦想赞助商️ (U2Fちゃん)
#java #lib 解析xml有什么简单点的办法?
DOM/SAX/XMLPull 手动转型
SimpleXML/JAXB 注解
🌚
SXML 支持注解 databind
我看最简单的方法是用 ruby 或 js (
Erbzur:
手动解析(pull)不是很难复用吗?偏偏xml一堆自定义tag
duangsuse:
JAXB-databind
果然还是注解自动构造的好用
手动解析也可以复用的,但是 pull 的话就会麻烦很多
<users>
<user id=wtf><friends>name
这样的要变成 List<User> 其实不需要几行代码,只是在定义 schema 的同时就能 bind 过去了这样。
啊…… 看来对于强类型语言的 Java 不用 annotation+reflect 想组织 data class 还是不行呢。
调用构造器的话就必须是用反射,否则…… 函数式组合子那一套不起效了,除非用 NamedTuple
DOM/SAX/XMLPull 手动转型
SimpleXML/JAXB 注解
🌚
SXML 支持注解 databind
我看最简单的方法是用 ruby 或 js (
Erbzur:
手动解析(pull)不是很难复用吗?偏偏xml一堆自定义tag
duangsuse:
JAXB-databind
果然还是注解自动构造的好用
手动解析也可以复用的,但是 pull 的话就会麻烦很多
<users>
<user id=wtf><friends>name
这样的要变成 List<User> 其实不需要几行代码,只是在定义 schema 的同时就能 bind 过去了这样。
啊…… 看来对于强类型语言的 Java 不用 annotation+reflect 想组织 data class 还是不行呢。
调用构造器的话就必须是用反射,否则…… 函数式组合子那一套不起效了,除非用 NamedTuple
#Java #lib 话说 jmod 的变动也挺有意思的,原来 jar 只能放 .class 和 resources ,现在 jmods 能放 lib/ bin/ conf/ legal/ 等一大堆东西了,据说还能热更新。
不过
还有 Apache 的 xalan XSLT compiler 和 xerces, jaxp 啥玩意
不得不说把 Java 和 C++ 一比,我还是觉得 C++ 的“设计模式”有范一些,至少不会制造麻烦。 🌚
一般都是用
或
7z x /usr/lib/jvm/default/jmods/java.xml.jmod classes/javax/xml/catalog/CatalogMessages_zh_CN.properties感觉J2EE实现真是很神奇,不仅有 Apache 的 BECL 与 Objectweb ASM ,还有 Java_cup 生成的解析器…… 真是太逗了
cat `find classes -name CatalogMessages_zh_CN.properties` |python -c 'import sys,re; print("".join(eval(f"\"{s}\"") for s in re.findall(": (.*)\\n", sys.stdin.read()) if "\"" not in s))'
不过
javax.xml 包也封了最关键的 stream (start-end element 的 pull 事件), xpath 甚至 namespace.QName
当然还有 datatype 和 catalog, validation, transform (我觉得最草的两个)还有 Apache 的 xalan XSLT compiler 和 xerces, jaxp 啥玩意
不得不说把 Java 和 C++ 一比,我还是觉得 C++ 的“设计模式”有范一些,至少不会制造麻烦。 🌚
一般都是用
org.xml.sax.Parser 或 org.w3c.dom.Document 或
javax.xml.parsers.SAXParser 和 DocumentBuilder
w3c 的 DOM 抽象弄得挺全的啊,除了 Node/Element/Attr/Text , MouseEvent 和 MutationEvent 都有…… (text)Range 和 NameList, Comment, traversal.TreeWalker ...