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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
#TypeScript #lib #doc https://util.liuli.moe/@liuli-util/async/ 有一大堆 concatMap, debounce, wait 等操作的 async 组合库

https://util.liuli.moe/@liuli-util/array/ 包含 swap, groupBy, segment(即 chunked), diffBy, uniqueBy 等处理函数 ,还有 arrayToMap(即 associate)
https://util.liuli.moe/@liuli-util/string/#StringValidator.isEmail 非常实际的一个值验证
https://util.liuli.moe/@liuli-util/dom/ 包含一些下载 ArrayBuffer 之类的处理,不过没有复制到剪贴板的

https://util.liuli.moe/@liuli-util/other/#EventEmitter EventTarget 一类对象实现
https://util.liuli.moe/@liuli-util/test/#countTime 这个就是 measureTime { } ,要是能写成 Python timeit 的形式就好了
此外还有 tree 库,支持 treeEach 后序遍历树结构,treeToList (即 flatten , 还有 treeFilter 的变体)
duangsuse::Echo
#js #DontKnow 原型链:(感谢 @JackWorks 提供相关信息) 访问语法都是动态解析的,比如 x.prop 或 x["prop"] 就是 x.[[Get]]("prop", x) ES 里一共有五种不同的 [[Get]] 实现,分别是 - 普通对象 [规范] - Argument 对象(你们今天应该不会用到了) - 类数组对象(数组的特殊行为就在这里) - 模块对象(import * as Mod 里的 Mod) - Proxy 对象(reflect proxy 全 delegate)…
让我想起了,那些手写 new/apply/call 的题目 #js #plt #oop
很多人说的 oop 是 Class-oriented programming
而 JavaScript 的原型链才是正宗的 Object-oriented programming(

function X(){}
X.prototype.a=1;
new X().prototype === undefined; // 但 __proto__ 就是 X
Object.getPrototypeOf(X) === Function.prototype
prototype 只是个(被特殊处理的)普通属性
平时说的原型链指的是 obj.[[Prototype]]

a.f()
相当于
f = a.f; f.[[Call]](a, [])

“ 为什么要用 ecmascript 规范里的(原语)写
因为 a.f.call 是从 a.f 往上查了原型链查到 Function.prototype.call 之后,它 也有可能被覆盖掉
Reflect.apply(a.f, a, [])
也能覆盖: globalThis.Reflect = new Proxy(Reflect

” 我就很奇怪为什么我在 constructor 里 this.prototype === undefined

x: 工厂函数
x.prototype: 造实例的原型, new 出来的东西 __proto__

Object.create
, Object.assign
Object.defineProperty
#recommended #linux #backend #cplusplus #Python https://t.iss.one/c/1492060815/96087, https://t.iss.one/c/1492060815/95986 Q:这个群是干嘛的?
A:《捕蛇者说》是一档播客节目,可前往官网(pythonhunter.org)或各大播客平台(苹果、小宇宙、Spotify 等)收听。本群是捕蛇者说播客的听众群,讨论技术和非技术的各种话题。

Twitter: @pythonhunter__
发电支持我们:https://afdian.net/@pythonhunter
Forwarded from Meirin H
有没有办法从python里拿它自己的libpython的路径啊
#dev #statement duangsuse 下现在所理解的编程,又是什么呢
从 API、基本语言结构构造出最简数据模型,再从数据模型生成更多所需的数据。
有时候就是一个变量、一个对象属性,你看到的是一次赋值 a=b ,其实背后是 y=x 这样的恒等关系,符号又何必得是单变量
#Python #debug #tools #wechat
所以说 Firefox, IDEA 的 debugger 什么的真蠢啊,连 breakpoint 自动执行指令,找 edge case 都做不到
什么调试器,不过是下层 API 的拙劣封装,有个行号个映射就成

对了,开发者是 @pythonhunter_ 的播主 🌝
Forwarded from 咕 Billchan 咕 🐱 抹茶芭菲批发中心 (billchenchina | Nya!)
丁宇 | DING Yu (@felixding) 发推说:有个词很有意思,叫“外网”,意思是国外的互联网。互联网本没有国界,然而硬是被人为地隔为两半。

由此有一个衍生词叫“全网”,即“整个中国互联网”。互联网理应是无边无际和去中心化的,但区隔和审查居然就使“全网删除”成为可能。

一旦习惯于区分内外,心中的墙便已形成,也就达到了它们最初的目的。 https://twitter.com/felixding/status/1356205061097938961
#security #android 草,恶意应用
Forwarded from Solidot
条形码扫描应用在更新之后变成恶意程序

2021-02-08 17:11 #安全

安全公司 Malwarebytes 报告,Google Play 官方应用商店一个下载量超过千万的条形码扫描应用 Barcode Scanner 在去年 12 月的一次更新之后变成恶意程序。ZXing Team 开发的 同名开源条码扫描应用随后遭到了差评轰炸,开发者声明他们在 2019 年之后就没有更新过,它不是广告软件。Malwarebytes 称,Barcode Scanner 的开发商利用了混淆代码去躲避检测,使用了与旧版本相同的数字证据签名。Google 已经将该应用从商店下架。
一张图告诉你框架是怎么写的。 为了简化重复逻辑(比如这个 判断-更新判断条件依赖变量) 开始剔出套版函数, 接着就发现需要更高层的封装来访问 nowTime, cfg.keyBind, updated.time 这样耦合在应用内/某生命周期的配置/周期(如帧重绘)上下文信息,把它们提取出来变成 class 、参数之类的东西,就成了「我怎么就不明白🤔」的框架。 一些优雅,一些半通不通的东西就是这么来的。

框架最美的地方在于封装,最丑恶的地方也在于封装
好的封装协调一致,反映出领域模型最直观、最本质的样子,坏的呢?有的过度可配置,数据/层叠次序混乱,有的算法时序不直白,或者在语言外部的处理过多,容易让人搞糊涂
怎么封装合适,怎样混合子程序所能触及的信息来完成领域内的常规生命周期,就是设计者的事了