Forwarded from tim
找到问题了,Springboot 无法在filter中直接注入,启动顺序 Lisenter->Fliter->Servlet,Filter启动的时候还没有Servlet还没有启动
JsonArray("[]") 怎么转为 Array<Long> ? 🤔ary.map { when (it) { is Int -> it.toLong(); is Long -> it; else -> throw IllegalArgumentException() } }
ary.map { (it as Number).toLong() }
ary.filterIsInstance<Number>().map(Number::toLong)#Windows YSC开源了个新项目 ImmersiveContextMenu
通过逆向 Windows 代码,实现了资源管理器的菜单风格 (微软称作 ImmersiveContextMenu,沉浸式菜单?)
通过逆向 Windows 代码,实现了资源管理器的菜单风格 (微软称作 ImmersiveContextMenu,沉浸式菜单?)
GitHub
ysc3839/ImmersiveContextMenu
Contribute to ysc3839/ImmersiveContextMenu development by creating an account on GitHub.
Forwarded from YSC 的频道
实现了默认项目 (加粗的文字) 及右对齐文本 (
https://github.com/ysc3839/ImmersiveContextMenu/commit/431eb2c926d02e2f25b5ae7d4560b1049ddd2027
"Test\tTab" 会使 "Tab" 右对齐)。https://github.com/ysc3839/ImmersiveContextMenu/commit/431eb2c926d02e2f25b5ae7d4560b1049ddd2027
Forwarded from YSC 的频道
#AudioPlaybackConnector v1.2.0 版本已发布。
https://github.com/ysc3839/AudioPlaybackConnector/releases/tag/v1.2.0
加入了启动时自动重新连接上次连接设备的功能,退出时会提示是否重连。
https://github.com/ysc3839/AudioPlaybackConnector/releases/tag/v1.2.0
加入了启动时自动重新连接上次连接设备的功能,退出时会提示是否重连。
duangsuse::Echo
康威生命游戏是如何搭建计算机的? - 王咏刚的文章 - 知乎 https://zhuanlan.zhihu.com/p/144162012 草,忍不住让我想起了方块游戏的电路……
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from dnaugsuz
呃,比如
但我之前是有 pluginManagement { eachPlugin { if (it.requested.id.id == "string" 才起效的经历的…… requestId, request.id 都不能用,但 requested.version 就不需要多加一个,真不知道 Groovy 是怎么回事。
getTasksByName("x", true) 返回了 [] 或者 preBuild dependsOn assembleRelease 而 assembleRelease 已经 updated 或者 tasks.whenTaskAdded 没成功或者 -> task.name 访问到的东西不能直接 == "string" 或者 task.doFirst {} 对Task对象操作的太晚了,没赶上执行?(误)但我之前是有 pluginManagement { eachPlugin { if (it.requested.id.id == "string" 才起效的经历的…… requestId, request.id 都不能用,但 requested.version 就不需要多加一个,真不知道 Groovy 是怎么回事。
Forwarded from Timmy Channel 2026
https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html#profiling-the-pure-javascript-version #Rust #JS #web #editors #lowlevel
这篇文章讲得真好啊!作者用类似
作者最后的寄语也很好,要让程序员注意 profiler 和使用的算法、不要过度依赖 VM 的优化并且懂得帮助 VM 优化自己的代码; 编译器工程师要知道把优化拿上台面而不是在后台默默试图接受全部代码,真的是大佬的眼界。
这篇文章讲得真好啊!作者用类似
sort(xs, comparator, /*显式指定余参*/false) 、用 UintArray 替代 JS 的 class definition ,把可复用的存储做成一整块 struct 的方法来提升性能,还有很多有意思的地方,写的非常全、耗时折线图(iteration-ms)很多,是 PGO (基于评测优化),即便没打算看的我第一遍也能理解很多。作者最后的寄语也很好,要让程序员注意 profiler 和使用的算法、不要过度依赖 VM 的优化并且懂得帮助 VM 优化自己的代码; 编译器工程师要知道把优化拿上台面而不是在后台默默试图接受全部代码,真的是大佬的眼界。
Forwarded from 层叠 - The Cascading
中国大陆的著名社交软件「新浪微博」的官方客户端于近期开始对第三方网站链接(除少数白名单内网站)进行干预。用户无法直接点击打开,而是需要复制后在浏览器才能打开第三方网站链接。
第三方客户端则不受影响。
src: https://t.me/yitianshijie/1938
src: https://t.me/yitianshijie/1939
第三方客户端则不受影响。
src: https://t.me/yitianshijie/1938
src: https://t.me/yitianshijie/1939
Telegram
《一天世界》博客
https://github.com/ajalt/clikt 草,这个东西不就做了个动画 GIF 作 banner 嘛,就有 1.2k star ,真是太扯了, kotlinx.cli 也才 500 star 啊
GitHub
GitHub - ajalt/clikt: Multiplatform command line interface parsing for Kotlin
Multiplatform command line interface parsing for Kotlin - ajalt/clikt
妈的现在 Kotlin 的解析库都喜欢用 by 直接把数据存储指定到 class val 上,我真不知道这样有什么好的……
https://github.com/h0tk3y/better-parse/blob/master/demo/demo-jvm/src/main/kotlin/com/example/ArithmeticsEvaluator.kt better-parse 是这样
https://github.com/xenomachina/kotlin-argparser 是这样
https://github.com/Kotlin/kotlinx-cli 是这样
https://github.com/ajalt/clikt
一样是这样…… 只有 https://github.com/leprosus/kotlin-cli 没这样,但他写的也扯,哪里来那么多 multi param arguments……
https://github.com/h0tk3y/better-parse/blob/master/demo/demo-jvm/src/main/kotlin/com/example/ArithmeticsEvaluator.kt better-parse 是这样
https://github.com/xenomachina/kotlin-argparser 是这样
https://github.com/Kotlin/kotlinx-cli 是这样
https://github.com/ajalt/clikt
一样是这样…… 只有 https://github.com/leprosus/kotlin-cli 没这样,但他写的也扯,哪里来那么多 multi param arguments……
GitHub
better-parse/demo/demo-jvm/src/main/kotlin/com/example/ArithmeticsEvaluator.kt at master · h0tk3y/better-parse
A nice parser combinator library for Kotlin. Contribute to h0tk3y/better-parse development by creating an account on GitHub.
了解了 Kotlin 反射和 getValue, setValue ,就开始喜欢炫技了,好像一些「不一样」的东西用上了才是『高级架构师』,短视…… Kotlin 摒弃了 Scala 的缺点并从命令式脱胎为定义式,就为了让另一群只认为用到了稀奇 API 或者写出了超长代码、超完善项目包装的人陶醉? 没想到 kotlinx.cli 也是这样,加文档也不看到底是文档出现是为了什么,看来只有kotlin语法的设计者最懂。。
别人生怕框架里用不上,我生怕框架里尽可能少用了还被人从外面挑出来看到……
什么代码是易读的,Kotlin 的 operator fun 难道还不能阐述清楚?一些框架干脆是把 by 替换了 = assign,真是败笔一处,Kotlin 真不该给 by 允许用 type inference 的,hhhhhh....
别人生怕框架里用不上,我生怕框架里尽可能少用了还被人从外面挑出来看到……
什么代码是易读的,Kotlin 的 operator fun 难道还不能阐述清楚?一些框架干脆是把 by 替换了 = assign,真是败笔一处,Kotlin 真不该给 by 允许用 type inference 的,hhhhhh....
等到以后正式放到 sonatype 存储库,我得给 ArgParser 加 multi-arg 和什么 "CLI propmting" ,好好寒碜一下他们…… multi-arg 有啥好炫耀的,流解析器哪个不能做到高扩展性?ArgParser 的解析循环驱动层就支持, 开始我不打算在EDSL里设计就是因为太不合常理。 居然连 get environment varaible 都拿出来当基础 feature ,真是服气了,管得比 ParserKt 宽啊……
只有重视简洁性的代码才是最好的,只做、并做好自己该做的事。以面向对象的 SwitchParser 为核心,再利用各种动态数据结构扩充成 ArgParser;同时具备面向对象和函数式的风格,不随便滥用反射和类型推导,才是 Kotiln 代码应该有的样子;而不是见得风是得雨,看到啥结构好玩就不加考虑地去添加。懂得从用户角度考虑。
只有重视简洁性的代码才是最好的,只做、并做好自己该做的事。以面向对象的 SwitchParser 为核心,再利用各种动态数据结构扩充成 ArgParser;同时具备面向对象和函数式的风格,不随便滥用反射和类型推导,才是 Kotiln 代码应该有的样子;而不是见得风是得雨,看到啥结构好玩就不加考虑地去添加。懂得从用户角度考虑。
不过要是支持 multi-arg ,ArgParser 的表层封装内部表示就要引入不优雅性了…… Converter 只能接收 String,那么就必须把多个 String 拼成一个还能切开,只好用
还好目前而言 Arg.param 变量只是 toString 的时候用的,没有数据处理存储会用到它,这样就好办了(toString都不用改因为本来就是用空格切参数名),只需要修一下 read() 里的代码,convert 的架构是现成的…… 还真是容易啊
toString 里方括号的语义混淆了, Subcommand 也要支持…… 看来又有功能扩展要做了,还好状态机的模型不变,可扩展性就没问题。
@-argfile 也要给提示、 error message format 也要加 TextCaps 、要支持基于数组切片替换的 aliases …… unknown command 也要 open
'\u0000' 这个特殊值了…… 真麻烦啊,还必须修改解析器onPrefix的代码…… 就为了这种莫名其妙的特性还好目前而言 Arg.param 变量只是 toString 的时候用的,没有数据处理存储会用到它,这样就好办了(toString都不用改因为本来就是用空格切参数名),只需要修一下 read() 里的代码,convert 的架构是现成的…… 还真是容易啊
toString 里方括号的语义混淆了, Subcommand 也要支持…… 看来又有功能扩展要做了,还好状态机的模型不变,可扩展性就没问题。
@-argfile 也要给提示、 error message format 也要加 TextCaps 、要支持基于数组切片替换的 aliases …… unknown command 也要 open