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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
比目前 Lite 的 6k 行、MonkeyVM 的 1000 行还多
如何开始是也可以是一个问题
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta)
悬挂的应用..
向 PID 发送悬挂的信号
duangsuse::Echo
所以要写代码才能做,要写很多很多行 Java 代码
为什么不和 Lite 一样套路,降低自己的需求
然后说不定就有好效果
Lite 开始是 H2,并且还是基于 AqoursVM 虚拟机的编译性语言
后来考虑到快速开发就做了 Lite(实际上是因为,H2 和 AVM 我有点弄不出来,一定程度上是因为我的强迫症)

于是 Lite 终于是连写四天后起码差点能用了
起码是有一个 AST 解释器了,虽然有 bug
虽然它还不完美,虽然甚至还不能用,但的确只有一点距离就能用了,而且已经有那么多行代码的基础了(虽然重新设计以后是要完全重写的)

然后我就想
为什么不降低需求
大不了我们就用 Ruby,有啥性能问题呢?
大不了就使用 ORM
大不了就用 Web 框架
甚至可以直接用 CMS 做,为了速度有何不可,拖了太久已经让所有人失去信心

设计上就直接完全抄酷安 v6,实现一个(开源版) v6 的 API,然后直接修改酷安开源版的客户端当成我们的客户端,有何不可
只要快速做一个能用的出来就可以,其他再好玩的设计都是没用的,下载问题大不了直接不提供,让客户端自己找其他市场要去,也不用支持插件系统了

以后之前那个要不要做也是自由的,客户端也不担心了
或者直接实现 Xor 那个超级简单版本的 API 以后再往上码功能
这个安全问题貌似已经被淡忘了,可惜。 #China #coolapk #dev #security
Forwarded from duangsuse::Echo
#dev #lua #android #security #coolapk #warn #INFO
刚才经过 Fusion App 交流群的一次答问突然被群人员发现了软件的一个问题, 远程代码执行

本来以为 Androlua+ 会受到影响,但是刚才测试 Androlua+ 是默认不带这个设置的,所以只有 Fusion App 会受到这个问题的影响
(如果你没专门开启 JsInterface 开关,那就是安全的,不会受到这个问题的影响)

Fusion App 由于开启了 JsInterface API 开关并且启用 JavaScript,导致页面上所有 JavaScript 脚本 都可以在 FusionApp 打包的客户端上 任意执行 Lua 代码 并可以访问 Java API

例如:

<script>
if (JsInterface != null)
JsInterface.doLuaString("os.exit(1)")
</script>


甚至

<script>
if (JsInterface != null)
JsInterface.doLuaString("os.execute('rm -rf /sdcard')") // 删除 /sdcard 下所有能删除的文件
</script>


注意网站管理人员是可以 任意执行 Lua 代码 的,目前寒歌歌他还没回复。 FusionApp 群内包括发现这个问题的人都不认为问题特别严重(目前来说)
即使是这样也真心建议所有使用了开启 JsInterface 支持的 LuaWebView 浏览器引擎包转的人赶快想办法解决问题,毕竟如果有人利用会可能导致严重的问题(例,之前 子曰 的 Shell 执行删除了一个人的所有相片)
This media is not supported in your browser
VIEW IN TELEGRAM
对任何严重安全问题的态度都不能是和寒歌或绝大部分 Androlua+/Fusion App(采用 Androlua+ 运行时)「开发者」一样的

Androlua+ 是 nirenr (一个 Android 开发者)几年前大幅改进外国 Androlua 项目 — 基于 LuaJava FFI 所建的 Android 开发工具 所建的低门槛 Android 开发工具
后来陆续出现了如 XScript,iApp,AndroLuaJ 这样的第三方 Android 平台(没有使用 LuaJ 代替 LuaJava 引擎)(排除 E4A 这类不是专为「Android 开发」所建的工具在外)

这类「低门槛」平台的「开发者」简直是对开发者称呼的侮辱
对用户极端不负责任,没有基本的技能和不注意实现应用基础逻辑时候应该注意的地方(譬如硬编码和代码风格等),对底层一无所知也不想知任何和自己当前工作无关的知识,总是想着「加密」「加固」担心自己那一点幼稚的代码被「偷走」,遇到哪怕是最简单的问题也要首先向别人提问,而对 Androlua+ 作为简易快速开发工具本身提供的特性基本一知半解

对于远程代码执行这种问题,居然官方迟迟不回应甚至酷安评论区的通知莫名消失,我完全服气的
作为开发者的基本素质欠缺真是令人叹为观止,应了酷安总体用户质量的下降。
萌妹 LWL 一定会收到校草的小礼物的 🎁💝#life
Forwarded from LWL 的基地台
😅祝大家今天都能收到礼物,我就不指望了
switch ('c') {
case 'c':
case 'C':
System.out.println("CCCCCCCCCCCCCCcccCCcc");
}


我来科普一下 switch 语句的 BNF
https://github.com/antlr/grammars-v4/blob/master/java9/Java9.g4

switchStatement ::= SWITCH  "(" expression ")" switchBlock
switchBlock ::= "{" [switchStatementGroup] [switchLabel] "}"
switchStatementGroup ::= switchLabels blockStatements
switchLabels ::= {switchLabel}
switchLabel ::= CASE constantExpression ":"
| CASE enumConstantName ":"
| DEFAULT ":"


https://users-cs.au.dk/amoeller/dRegAut/JavaBNF.html 这有个奇特 BNF 的版本
表示起来更加优雅
和之前 @neofelhzw 发的那个 SQLite --- Why not git 有关系
https://sqlite.org/whynotgit.html
吐一下 Git 还真是不 disturbed
SQLite 可能主要原因还是自己有造轮子 Fossil(
它把文档写得太底层了,根本分不清 User Manua 和技术/设计上的文档的区别
SQLite 开发者这点吐得很对
Git provides a poor user experience
https://www.fossil-scm.org/fossil/doc/trunk/www/xkcd-git.gif
The complexity of Git distracts attention from the software under development. A user of Git needs to keep all of the following in mind:

+ The working directory
+ The "index" or staging area
+ The local head
+ The local copy of the remote head
+ The actual remote head
duangsuse::Echo
SQLite 开发者这点吐得很对 Git provides a poor user experience https://www.fossil-scm.org/fossil/doc/trunk/www/xkcd-git.gif
反正我是在这张图( 复制粘贴命令,至于它如何工作以及背后的理念一知半解
我只知道 Git 提供了开分支,并行开发(pull/merge),保留历史和给历史打标签的能力,其他功能我都不重视