https://lingdong.works/ #life #tech #cs 真的好无奈,这些前端类大佬,虽然并不真正了解你的领域,但基于数据结构算法的基础也可以轻松做一个能用的玩具出来,这能灵活利用他们的智商。
而且他们的行动力超强,即便是这种麻烦的设计,也是在他们眼中“不起眼”的小把戏,好打击自信呢。
而且他们的行动力超强,即便是这种麻烦的设计,也是在他们眼中“不起眼”的小把戏,好打击自信呢。
lingdong.works
Lingdong Huang
Projects by Lingdong Huang and collaborators.
#reveng 草,之前听到过,不过不知道可以动态 hook 各种函数…… 当时不理解它说的 "magic" 是啥玩意,我运行过测试但啥输出没有
Forwarded from dnaugsuz
人家都 root 了你对抗个毛啊…… 这里知道这个工具的人估计都少
去 StackOvf / Stack Exchange 或者 SegFault 什么的看看? 🤔
去 StackOvf / Stack Exchange 或者 SegFault 什么的看看? 🤔
我尝试着建模一下 Firefox 的 Copy Tab URLs 插件:
templates = {
"Markdown": "[%t](%l)"
}
function fill(text, values) { return text.replace(/%(\d+)/, it => values[it]) }
function copier(urls) {
return Object.fromEntries(...templates.map(it => [it, () => copy(urls.map(tl => fill(it, tl)).join("\n") ) ]) )
}
let ctxMenu = {}
browser.locationbar.contextMenu = ctxMenu
ctxMenu["Copy Tab URL"] = copier(() => browser.tabs.current.location)
const toURLs = (get) => () => [...get().map(it => it.location)]
ctxMenu["Copy Other Tab URLs"] = copier(toURLs(() => { let tabs = [...browser.tabs]; tabs.remove(browser.tabs.current); return tabs }))
ctxMenu["Copy Tab URLs"] = copier(toURLs(() => browser.tabs))Forwarded from dnaugsuz
说到区间我就想到之前写的 RangeMap (虽然不是
这个玩意是用 JDK collections framework 的 TreeSet 弄二分查找的,所以只有 jvmMain 有 TreeRangeMap 实现
kotlin.ClosedRange 开区间上的)这个玩意是用 JDK collections framework 的 TreeSet 弄二分查找的,所以只有 jvmMain 有 TreeRangeMap 实现
/** The greatest element in this set ≤ [target] */实现起来主要就一个函数,太草了
protected fun searchMaxLE(target: N): Ray<N, T>? = tree.floor(edgeAt(target))
protected fun edgeAt(start: N) = Ray.Blank(start)
GitHub
ParserKt/ParserKt
Naive one-pass recursive descent, scannerless parser framework for Kotlin - ParserKt/ParserKt
Forwarded from dnaugsuz
嗯,这个的确不好理解
就是假设把 0..1, 10..15 这些 Range 里的所有数各自映射到某个值的话,用
比如
然后查找法就是一条直线数轴, 所谓的 "Ray" 是其上的射线(右无端点),它的定义是由
数轴上有 Ray(pos, value) 保存值 和 White(pos) 标记左 Ray 结束 两种项,就构成了
就是假设把 0..1, 10..15 这些 Range 里的所有数各自映射到某个值的话,用
Map<Int, V> 实在是太浪费了,可以用特化的 RangeMap 比如
intRangeMapOf(7+1990..2020 to "🇨🇳")[2000] == "🇨🇳" 然后查找法就是一条直线数轴, 所谓的 "Ray" 是其上的射线(右无端点),它的定义是由
searchMaxLE (某点的最大左部值)确保的;这些 Ray 的 Comparable 实现也都是由其左端点 Int 值来代理数轴上有 Ray(pos, value) 保存值 和 White(pos) 标记左 Ray 结束 两种项,就构成了
TreeRangeMapForwarded from dnaugsuz
iseki 你这个 vert.x codegen 真的可有意思了,之前从没试过这个玩法……
Gist
codegen for vert.x eventbus on kotlin.
codegen for vert.x eventbus on kotlin. GitHub Gist: instantly share code, notes, and snippets.
Forwarded from dnaugsuz
感觉 Gradle 写死的 Kotlin 插件版本真是害死人,偶尔换个老的工作环境,忽然发现 Gradle configure project 卡死了…… 害得我以为 IDEA 不能用了,草生
现在基本记住 G:A:V, project, plugin, buildscript; repositories, dependencies, implementation=runtime, api=compile, task 之类的 Gradle 构造了,手写 buildscript 和用 shadow minize 也能行
不过一般都复制粘贴自己既有项目的,感觉这些结构真是无聊……
现在基本记住 G:A:V, project, plugin, buildscript; repositories, dependencies, implementation=runtime, api=compile, task 之类的 Gradle 构造了,手写 buildscript 和用 shadow minize 也能行
不过一般都复制粘贴自己既有项目的,感觉这些结构真是无聊……
dnaugsuz
感觉 Gradle 写死的 Kotlin 插件版本真是害死人,偶尔换个老的工作环境,忽然发现 Gradle configure project 卡死了…… 害得我以为 IDEA 不能用了,草生 现在基本记住 G:A:V, project, plugin, buildscript; repositories, dependencies, implementation=runtime, api=compile, task 之类的 Gradle 构造了,手写 buildscript 和用 shadow minize…
之前一直对 Gradle 的 module, project hierarchy 和 sourceSet, dependency scope 感到困惑 🤔
尤其是 Kotlin Multiplatform 可以用
突然明白过来,
尤其是 Kotlin Multiplatform 可以用
src/jvmMain/kotlin(java) 而不是 src/kotlin/jvmMain , 我就思量着是不是 SourceSet 可以嵌套……突然明白过来,
jvmMain 什么的其实是子 Module ,也就是和 rootProject 同样级别的东西,所以可以有 kotlin/ java/ 什么的…… 噢,,Forwarded from Solidot
Python 3.9 发布
Python 语言释出了 3.9 版本。从 Python 3.9 开始,项目从 18 个月发布一个大版本改为每年发布一个大版本。3.9 发布之后并不是 4.0 而是 3.10,Python 3.10 相对于 3.9 以及 3.9 相对于 3.8 都是渐进式改进版本。Python 3.9 的主要变化包括:新的字典合并操作符 | 和 |=;放宽对 Decorators 的语法限制;新的字符串方法 removeprefix() 和 removesuffix() 简化从字符串数据中移除不需要的前缀或后缀;新的解析表达式语法取代了 LL(1);类型提示泛型,等等。Media
https://www.solidot.org/story?sid=65730
Python 语言释出了 3.9 版本。从 Python 3.9 开始,项目从 18 个月发布一个大版本改为每年发布一个大版本。3.9 发布之后并不是 4.0 而是 3.10,Python 3.10 相对于 3.9 以及 3.9 相对于 3.8 都是渐进式改进版本。Python 3.9 的主要变化包括:新的字典合并操作符 | 和 |=;放宽对 Decorators 的语法限制;新的字符串方法 removeprefix() 和 removesuffix() 简化从字符串数据中移除不需要的前缀或后缀;新的解析表达式语法取代了 LL(1);类型提示泛型,等等。Media
https://www.solidot.org/story?sid=65730
#PL #CS https://github.com/duangsuse-valid-projects/Share/tree/master/Others/CommentBot/vertxBusGen#模板语言的语法解析器
Templator : Tests
好不容易实现完了这门 模板语言,不得不用非
为了实现这个还得有 expect() lastToken 的函数,感觉勉勉强强糊弄了吧,还是不优雅,但模板语言能用
Templator : Tests
好不容易实现完了这门 模板语言,不得不用非
Feed 结构实现 peek(2) ,感觉真是难受死了…… 非得处理完所有输入,没有无 hasNext/nextToken 的流式结构为了实现这个还得有 expect() lastToken 的函数,感觉勉勉强强糊弄了吧,还是不优雅,但模板语言能用
GitHub
duangsuse-valid-projects/Share
🐕 duangsuse's shared files(e.g. productive software projects, documents) - duangsuse-valid-projects/Share
Forwarded from Math notes | 数学笔记 (Harry Ying)
Momentum.pdf
2.3 MB