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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from tim
为什么就注入不进来呢,每次执行都是 not been initialized,其他地方可以完成注入
Forwarded from iseki 萍水相逢,相聚是缘
可以写成构造参数注入吗,尽量用那个吧
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,沉浸式菜单?)
Forwarded from YSC 的频道
实现了默认项目 (加粗的文字) 及右对齐文本 ("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
加入了启动时自动重新连接上次连接设备的功能,退出时会提示是否重连。
Forwarded from 电报时报
中国正在封锁使用tls1.3和esni加密的网站
Forwarded from 平行线
Forwarded from 平行线
dependsOn指定的task依赖没有被执行是什么回事?
Forwarded from dnaugsuz
呃,比如 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 是怎么回事。
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

这篇文章讲得真好啊!作者用类似 sort(xs, comparator, /*显式指定余参*/false) 、用 UintArray 替代 JS 的 class definition ,把可复用的存储做成一整块 struct 的方法来提升性能,还有很多有意思的地方,写的非常全、耗时折线图(iteration-ms)很多,是 PGO (基于评测优化),即便没打算看的我第一遍也能理解很多。

作者最后的寄语也很好,要让程序员注意 profiler 和使用的算法、不要过度依赖 VM 的优化并且懂得帮助 VM 优化自己的代码; 编译器工程师要知道把优化拿上台面而不是在后台默默试图接受全部代码,真的是大佬的眼界。
#China #web 诞生自互联网、毁了互联网。 🌎🕸
Forwarded from 层叠 - The Cascading
中国大陆的著名社交软件「新浪微博」的官方客户端于近期开始对第三方网站链接(除少数白名单内网站)进行干预。用户无法直接点击打开,而是需要复制后在浏览器才能打开第三方网站链接。

第三方客户端则不受影响。

src: https://t.me/yitianshijie/1938
src: https://t.me/yitianshijie/1939
https://github.com/ajalt/clikt 草,这个东西不就做了个动画 GIF 作 banner 嘛,就有 1.2k star ,真是太扯了, kotlinx.cli 也才 500 star 啊
了解了 Kotlin 反射和 getValue, setValue ,就开始喜欢炫技了,好像一些「不一样」的东西用上了才是『高级架构师』,短视…… Kotlin 摒弃了 Scala 的缺点并从命令式脱胎为定义式,就为了让另一群只认为用到了稀奇 API 或者写出了超长代码、超完善项目包装的人陶醉? 没想到 kotlinx.cli 也是这样,加文档也不看到底是文档出现是为了什么,看来只有kotlin语法的设计者最懂。。

别人生怕框架里用不上,我生怕框架里尽可能少用了还被人从外面挑出来看到……
什么代码是易读的,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 代码应该有的样子;而不是见得风是得雨,看到啥结构好玩就不加考虑地去添加。懂得从用户角度考虑。