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
This media is not supported in your browser
VIEW IN TELEGRAM
RednaxelaFX 真是太牛壁了 #dalao
人懂话废不多,还舍不得出书,怕误人子弟
第一次真正了解jvm栈机是他做的gif
我都要被圈粉了
#recommend 放松一下。
duangsuse::Echo
#ce #plt 带步骤的四则计算器。递归逆波兰。22行代码 浅先=`;=;+ -;* / %` 流=(a, _s=[...a].values())=>()=>_s.next().value 切2D=(s,sp0,sp1)=>s.split(sp0).map(s=>s.split(sp1) ) {let t={},k; 切2D(浅先,';',' ').forEach((x,i)=>{for(k of x)t[k]=i}); 符深大=t} 符链=(s,l)=>{let a=[],add=x=>a.push(x)…
#bilibili >那你现场写代码😄
回复 @iiicp :以上是()和算数表达式的求值栈生成,加起来10行。 活动期分析后就可以临时变量到寄存器,或者干脆每个+-用既有栈变量。
当然,C会比JS多费不少代码

但我是认真觉得40分钟太长。如果真的细节到此程度,你可以加提纲,先说说要写啥、涉及啥流程和修改,再放PPT​

你能火是我想不到的,第一期视频我就认为会石沉大海。因为我也会写些涉及文本结构和计算机绘制的东西,在B站这些很少,因此更要注意可重看性。

如果你打算更100天,回头发现这些录屏复习起来很困难,应该就会意识到简洁和代码大纲的必要性了[藏狐]​


@iiicp :Up哥,就是parser这块,看的不是特别懂,可能是,编译原理,语法树,这块,没怎么弄懂​。

1 是常量, a 是变量
a+1 是表达式, (a+1)+1 含括号也是:单项a亦可为(中缀链)
if(a) a+=1; 是语句
表达式都有「值」,语句都能「执行」
表达式也是语句。而在C里,(a=(b=c)) 有效,py里f(x:=1) 有效
它们可以互相引用,像 if(表达式)语句; {语句;},构成嵌套树结构。
最深项先执行,把树变为值称「解释」,
保留中间数据,即区间推断/地址安排称「编译」​
编译的目标是可执行,比如函数,再由「虚拟机」的调用语法填参执行至ret/throw,函数内和脚本顶层是一样的;Java大定义和{},= 内则不同

(为什么要说这么笼统的东西啊喂!😫

常量来自tokenizer分词器,如 "str" 1.0 ,特殊名字如 true 是具名常量;C宏就替换为词条列表
变量可以是 能import的全局表键k、第j号局部、外i层函的第j局部:参数是调用时检查的n或vararg个局部量

(a)=>()=>a 称为词法作用域,a就引用上1层第0号局部-同时是参数。
闭包=匿名类型的值,根据上值(upval)组 "this" 的不同行为不同,它是数据和程序的交汇,Java new-匿名子类。有种Church丘奇编码法: true=\y n. (y) ;false=\y n. (n) ,因为函数是值,能到处传,可以这样。
(值)任何计算的参数,和结果
(弱类型)变量是编译期尚不确定的值,因此+-等需针对2Number有定义..
(强类型)变量值有范围确定。子类型里必是成员集更大的 :T 子类(多态/覆写);可试每位置<TP>归一,类型推导
(副作用) 计算值不能描述的效果。只有数学没副作用,程序只有内存和CPU,限定mut的范围

只有值都到齐才能计算(常量折叠)。其实编译和运行期只是语言执行的实现方式导致的区分,语言本身不限定静态或动态
其实OOP或FP只是数据结构语法导致的区分,算式本身只是参数凑齐,计算更新,单函数不限制功能个数

https://t.me/dsuse/17412
我们都很可怜😔 无论闭包或this都不是廉价的东西,至少不是热销的
#ai#game 魔改就很热销, #algorithm 如前缀树也很热销

Lua和JS,Py里无论有无「独占」名字,函数都是闭包。C等 里函数只是代码指针,也没有局部函数。
一般的Ruby,Java/C#/C++ 则对OOP和FP的等效概念做了较大区分
PHP和Unix族之类我不清楚,它们像操作系统改行来的🌑
#web 过去有那么多 HTTP-API 是因为没有 WASM ,现在能客户端计算,能做的更方便了
比如 canvas 能画 video ,video.srcObject=nav.mediaDevice

之前在B站看这个face-api.js (TF.js weights 只有jsdelivr托管) 都不知道它 matchDim{w,h} 以及取vid.width是在做啥,才发现是重复取设置,resize.. ,在网上找的旧版API都不能用🌑,只能自己把画框框 找到,发现和这个一样
#web 真的是很有力的设计, WebSQL,WebGL/2D,fetch Blob,Paint/Cache Worker,history浏览栈, ObjectURL/VFS, CSS和SVG无缝兼容、DOM模板;这都是许多其它平台"赖以知名"的工作,在浏览器里这么普通暴露了统一简洁的API,许多设计远比其它语言里的等效物高级-DOM有文本等价,也能用来填模板,和最初的PHP比就是思想层次上的差别,比现在的常见模板更规范,只是一些人觉得非得设计lexer 才叫模板语言😒想想 JavaEE 的选择为啥越来越杂 ,不就是因为都在嫌不够炫不够严谨吗?

按下F5就能看到执行效果,控制台敲下就查得到文档;直接切tab就开始搜示例,毫无IDE的芥蒂

JS是同时有C的短写语法和 FP模式匹配,适合临时草稿和正经代码,还能用元编程简写,整个web就只有这一门程序语言,没有杂七杂八的构建语言啊、资源、模板和套话啊
ES6引入的 `` 和 Proxy{} 也很有用,结合 with() 甚至能并肩Ruby元编程,但是一点也没Ruby的繁杂,很合理的引入了扩展性

除了前端界听风是雨、金钱至上的一些坏毛病,webkit技术真的太牛了
duangsuse::Echo
#web 真的是很有力的设计, WebSQL,WebGL/2D,fetch Blob,Paint/Cache Worker,history浏览栈, ObjectURL/VFS, CSS和SVG无缝兼容、DOM模板;这都是许多其它平台"赖以知名"的工作,在浏览器里这么普通暴露了统一简洁的API,许多设计远比其它语言里的等效物高级-DOM有文本等价,也能用来填模板,和最初的PHP比就是思想层次上的差别,比现在的常见模板更规范,只是一些人觉得非得设计lexer 才叫模板语言😒想想 JavaEE 的选择为啥越来越杂…
#statement web所做最好的事就是所见即所得,数据更新-程序重做 相当自然,不像一些平台里要大堆代码,因此才有了 DevTools 这样优秀的查看工具

当你要在网页画画,唯一的选择就是 canvas API,没有那么多专用名词要记,基于CSS和Blob也容易后台绘制和下载,API只是最直接的,不需要任何教程,而Path2D上只有不到8个成员,不会提供什么“工具类”-CSS 语法足够了

一些人觉得代码和结果太直接会让开发者养成不会思考的坏习惯,这根本是错的,只能让思考的层次更高,从而产生更多好玩的应用。有种别用 inline color picker 之类☹️
duangsuse::Echo
🌚层叠的标签打得比我好,溯源也到位,内容我关注的其它频道没有……它变了 反正我也没打算搞IT🤪 层叠的风格的确变认真了,来源也多了,和它一年前相比 https://t.me/outvivid/2603
https://t.me/outvivid/3320
我感觉应该收回😒 因为它这个新闻 #plc4x 打得毫无意义,也没解释 PLC..4x? 到底是干啥用的,'faker.js' 好歹半俗半释吧😒

说句题外话,我觉得 Marak 根本没分清 opensource 和代码变现的关系,开源并不是对软件的声望没帮助的,他开始选择MIT就是个错误,但现在换许可也于事无补了。 倒不如说如果 faker 选择 free trail 闭源,那许多人哪怕用小数据集sample 或者开源替代也不会用它吧
你一开始做个产品页,会有压力

数个开发非常费力的js小众ui(模拟gimp面板啦..)框架, 代码混淆器就是做得很认真,但好像收益..额不 人气也不如开源"低功能"版本的东西吧😒

一边想挣同行的钱,一边不想用更友好的开源方法(我们不是啥都买冤大头用户..),成交量就会有损失

最终问题是面向公司用户时,MIT许可证不能强求别人付钱,被白嫖,甚至有一些刁民或奸商声称是独立做的

每次看到这种把开源当私有原创的🐶独立开发者就来气,您改名您🐴呢,核心做法谁的你不懂,拿来就原创?国内是有不少! 更别说自己还是被 retool.com 付2k USD就套壳的冤大头

所以实际上是原作copyright的问题... 就主动投毒死循环来说,我觉得.. rollup供应链攻击的确该改进🌑,是js界该改进
大家应该会原谅他,毕竟被火烧家了

但,MIT是他自己选的,那时怎么会知道火了仍穷的世态炎凉呢😒
#web #english
CSS cascade 级联样式表
HTML hyper超文本 文档
HTTP 文档传输协议
HTTPS +SSL socket layer 安全传输层
DOM 文档对象模型/树
URL uniform/unique 全局资源定位 locator
JSON JS对象表示 notation
CSV comma, 切分值
PNG portable 跨平台网络图像
SVG scalable 可缩放 vector矢量 图
FTP 文件传输协议
SQL 结构查询语言
SDK standard 基础开发 kit 套件
Forwarded from Programmer Humor
[other] Web Dev Acronyms
https://redd.it/s42xxo

by @programmer_humor
MAT / IFW 禁用方案分享:
导致星巴克崩溃无报错的S服务
此服务似乎来自梆梆安全加固企业版 com.secneo.apkwrapper.r.S
胡乱分析了一下,这个 S 服务会访问 int com.secneo.apkwrapper.H.o(Context) 静态方法,这个静态本地方法,当本地库返回值小于等于 0 时会直接调用 System.exit(0); 所以也没有错误日志出现。
本地库为 libDexHelper.so / libDexHelper-x86.so

#reveng 🌚为了帮助大佬(如 GetDex)们秀memdump和art插件等 #aop 基本操作啊

>我一直想加固到底有什么用呢?
它不也是防君子不防小人的东西吗?甚至于所有字节码如果想让系统运行的话,那系统一定要可以识别这个字节码。
那如果一个系统本身在加载字节码的地方提取了一份,当搜索已加载代码中的引用,来不停的请求 loadClass 之类,那么加固外壳的解密功能完全不可能拒绝系统的这种请求。最终依然会被探索出被加密代码的解密字节码(


稍微有点 #bin#assembly 常识也不会相信这些吧,难道不是不理解struct才相信二进制和mem不可读?
掌握程序=听天由命,掌握解释=掌控程序 🌚

我对IT交流的科普力是失望的,代码写得🌸时非常开心,一谈到低层抽象都有武德了,就会用个序列化/反编译工具;当初万能汇编器的时代去哪了
Forwarded from 神奇的笔记 (立音喵)
加固是坏文明(x
Forwarded from 螺莉莉的黑板报
让我来了解一下家里的内网结构┐(´д`)┌……
#China #net 🤔确实呢。百度贴吧 虽然闹出过事情,但许许多多贴吧的内容都是很好的,精品或许消失了,最后就像没存在一样……所以开源真的很好
#net 播客...KODI 项目有插件吗 🤔 >主播似乎有一些误解,作为小宇宙的后端开发,我稍微解释一下吧。 我们没有“只认某某平台”,像主播使用的Github Page,小宇宙内也有很多节目是建立在Github Page上的,也有像《Anyway.FM》这样完全自建RSS的节目。 公告功能在短暂的内测后,也是在几个月前就开放给所有主播,也并不存在迟迟不愿为主播提供的情况。 认领节目的过程确实是遇到了Bug,但在收到了主播的反馈后我们就解决了问题,随后主播也就正常认领了。 作为开发,因为Bug给这位主播造成了不好的用户体验,确实感到抱歉,也希望大家理解,没有那么多别有用心吧。
#ce 看到new WebAudio 就想到Blender 着色器节点,节点能不能表达为 f(a,f1(b)) 的形式呢?即便无关执行序(新旧值问题),不行,因为f1的输出可复制多个

SSA单赋值正是带执行序的 Node图,只是节点图里变量都是靠连接表示,而程序变量是有时序指代的,例如 a=1; if(q)a=a+1; f(a) 间这个a就是运行时不同,在LLIR里 c=phi a,a1 就是把来自不同前BB(if,.)的计算整合,当然你也可以直接store&load,就没有SSA问题了;IR form也就是为便于优化,现在在函头alloca mem2reg就成。
https://www.zhihu.com/question/24992774

SSA本来是无关内存变量或寄存器的,全交给分配器解决是放哪。(Lua)是干脆算计算栈最大深度,然后编号位置 不复用,而FFI(native函数)的 CDEF 调用约定和 struct{} 靠指针 load/store 就行了,也是SSA Value;现在的做法或许更好,C语言里for(;;)也不止能迭代1变量,变量值源自哪个{} 就是很难区分的

#statement 我觉得好的程序应该是一个模板,填哪里的哪种数据都能用的那样,仿佛只是数据的脚本和限制,话筒交给程序输入
程序不该内嵌有太多常量
我开始用对照输入输出的方法设计程序、以其他的领域方法和视角思考API能描述的问题
心中的程序没必要符合什么不得了的约束
因为代码也是数据啊