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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
SPA: single page application (基本要加 URL param router)
PJAX: persistence pushState javascript https://pjax.herokuapp.com/
Forwarded from RWTG9Y4's STDOUT
一次完全失败的 PJAX 升级
改成 PJAX 加载后各种变量 / 函数互相冲突, event 绑定不上, replaceState + pushState 造成访问统计重复, 验证码状态异常等一堆问题
SPA 还是好文明, PJAX 实在是太糟糕了 😐
#项目 #SakuraFrp
duangsuse::Echo
#life #plt 说点设计上的吧。(老看工程实践也累了,迫真 谈谈 mvng 的一个特性和 ParserKt 新版解决的两个问题,为什么修这两个问题就能把它带入实际工程。 我对 mvng 还是有点期望的,和 LiteratePy 一样(之后它们传参配合应该还要折腾一番),因为弄完这个后将来的一些项目就会比较好做(尤其是大批量 Android 示例时,可以视为 LiteratePy 的临时代替),我这个人非常讨厌『项目创建』流程,如果能削掉会帮我节省很多麻烦。 原来就是一个"20行py生成pom"的…
再说说 ParserKt 新版解决的 "StickyEnd" 和 LexerFeed 问题。

StickyEnd 是造成 TriePattern—PKT 的 keyword tokenizer 无法应用于整个输入(fullmatchPattern)的元凶
所谓 sticky end ,是
fullmatch 的逻辑是,无论 pat 是否匹配成功(没成功就往 StringBuilder 里填一字继续尝试),必须 match 到输入末尾,但这就有个问题——不能判断当前是否 EOF ,结末的异常会被 pat 视作 notParsed 返回,而如果靠 consume() 测试,无法区分拿不到时是无可跳的(可立即解析),还是真 EOF 了

fun KeywordPattern.greedy() = Piped(this) { it ?: //FIXME is not possible
try { takeWhile { it !in this@greedy.routes }.joinToString("").takeIf(String::isNotEmpty) }
catch (_: Feed.End) { notParsed }
}

例如,需要进行对 peek 内容的词法验证
Seq(::CharTuple, item('a'), StickyEnd(EOF, 'e')).read(CharInput.STDIN)

这个问题设计构造结果的回溯何时执行,一直相当混乱,我也不清楚它到底是怎么弄出来的。
在旧计划里,我打算把 isEnd 加到 interface FeedControl 上,从而允许这个操作
新 ParserKt ,废除了泛型 input (为提高性能,而且也不需要支持 token 流了),尽可能减少不必要的 Exception 使用(实际上 Feed.End 也几乎只有几个 extension fun 在利用, catch 总数并没达到每个组合子一个)
估计还是只能选择 Int codePoint + EOF 常数了。

之前我想过用状态机,后来发现不太合适(而且按那种组合方法,Lexer 和 Parser 在词法层面的定义不可能复用)
新的 LexerFeed 作为 underlying stream ,可以和上层 parser 协调工作(持有 state ,非0则不预跳空格),同时保存 beforeWhites 与 spans ,自动过滤各种 /**/ , // 的同时保留 1_000, "ab c" 字面量的正确词法,同时不创建任何中间结构(一般还是要按 tokenText/tokenType 来存一个的),做到最小内存开销

要兼容这个更改,只需提供 p.save(RANGE_KIND) 函数即可,这个函数负责在读取前向 lexer 提供 state ,并在结束后提供返回值,不存在解析 AST 与语法 AST 的区分,空格等排版信息通过隔离的 Map 与 ASTNode 对应。

之前不方便解析的各种「貌似」需要 peek-N>1 的内容也有 Piped 提供的便利函数可以解决, KeywordPattern 将支持 /**/, //, -- 等注释前缀的处理, p.calm() 镇静策略如常
新计划的解析器会管理整体语法树(while 旧的只是打算写 toTuple 或者说 asIterable 来提供show()时解构的便利),并且提供基于 function 这样的 incremental 解析的功能,当然这需要编辑器支持 mark range 才行,是指提供 source span 这方面也不会存在问题了。
duangsuse::Echo
再说说 ParserKt 新版解决的 "StickyEnd" 和 LexerFeed 问题。 StickyEnd 是造成 TriePattern—PKT 的 keyword tokenizer 无法应用于整个输入(fullmatchPattern)的元凶 所谓 sticky end ,是 fullmatch 的逻辑是,无论 pat 是否匹配成功(没成功就往 StringBuilder 里填一字继续尝试),必须 match 到输入末尾,但这就有个问题——不能判断当前是否 EOF ,结末的异常会被 pat 视作…
其实嵌套 Feed 本身就比直接 read() ,或者可内联的 read() 有更多开销
但提供这一(函数指针)的可能,就有更多用途(stdin, file, 更多 InputStream 上进行更细致交互)的可能
所谓设计,就是在既有的最低开销下,即可能保证最大的「可能性」。

有时候明明在用更高级的语言特性、更复杂的包装,却能收获更好的性能,是因为特性的启用带来了一些全新的选择——这使它们在特定情况下变得更快
重构 setTimeoutrequestAnimationFrame ,发现二者几乎等价…… 计算单位几乎不用变,只需检测 FPS 是否需略过此回刷新;原代码也比较优雅,用的 tDelta 计算
#math 我将无我... 🌝 其实根本没用到,作者喜欢从别处复制粘贴?或者喜欢自己写一大堆(repeating...)没用的结构?
话说作者挺喜欢给自己找麻烦,非得 let that = this; 一个,用了 27 次,我挺反感这种主语混淆不清的代码

好像挺 English 的,其实写半天我看不懂 this that 是在指什么,代码又为何要换人称 🌚
#China #Telegram 挂人 🌝
Forwarded from Deleted Account
亲,收到这个信息不要诧异,整套tg协议软件,拉人/群发/进群/采集/机器人/监控/注册机(日产上万号),你懂的,在tg上谁掌控了账号,谁就掌握了流量,万人大群必备 技术@: xieyi969
#news #kotlin #java #android 又一个停运的,它还挺重要啊
--
草,许多个人库会不能用的。
估计届时很多Andoid项目build会炸
许多上游不收PR会被fork
Forwarded from Solidot
Ars 尝试华为的鸿蒙操作系统

2021-02-03 21:34 #操作系统

中国最大智能手机制造商华为在遭到美国的出口禁令之后宣布了自己的操作系统鸿蒙,去年 12 月释出了 V2 版本。华为消费者业务 CEO 余承东曾宣称鸿蒙是与 Android 和 iOS 完全不同的操作系统。华为消费者业务软件部总裁王成录上个月再次表示,鸿蒙不是 Android 或 iOS 的拷贝。美国科技网站
Ars 对华为鸿蒙进行了一番测试,记者首先试着下载 Harmony SDK,结果迎面一击:他被告知需要接受两天的背景检查,要求注册账号通过身份验证,包括递交名字、地址、电邮、电话号码和护照照片。即使你试图绕过注册流程,下载“盗版”版本,SDK 也需要你登陆账号之后才会运行。出于研究的目的,记者放弃了自己的身份信息,下载了 SDK,开始进行测试。他发现模拟手机使用的是中国 SIM 卡,进入的网络叫“华为内网”。进一步研究发现,Harmony 的应用页面基本上全是类似 Android Services Library、Android Shared Librar 之类的,以及指示 Android 10 的信息。作者认为现阶段的 Harmony 本质上就是换了皮肤的 Android,华为甚至连 Android 的名字都没有替换掉。作者还阅读了 Harmony 的文档,认为这些文档都是胡扯没有多少意义。
Forwarded from RWTG9Y4's STDOUT
#china #media #freedom 被转发台不代表本台立场
只是这个懒人包比较全,懒得二次转发了

“ 怎么说 毕竟这个是官方授权的翻译,那个是盗版源🌚
#msoffice 这个功能还比较方便,支持缩进描述树结构的