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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
「VoP」維尼之聲 - Voice of Pooh🔊
「健康码演示」是一个可以用来伪造一个健康码的应用,可以用在不需要扫描的场合。(注意:要求扫描的场合出示假码可能会被揭穿) 微博粉红发现 Google Play 上有「健康码演示」这个应用之后,第一时间怒不可遏并想到了举报。(见图2,3) 开发者在该应用广为人知之后删除了原本上架在 Google Play 上的应用和托管在 GitHub 上的源代码(图3为其他人的备份代码,非作者本人) 既然我们作为一个乳滑频道,我们自然要反其道而行之,中国不想被传播的东西,我们偏偏把它拿出来给大家下载,大家可自用,可传播。…
我觉得截图里这些人怎么谈法治呢,根本没法制意识啊,健康码是属于什么凭证、什么证件,为什么“伪造”就犯法了?
法制就是和“欲加之罪,何患无辞”对立的概念,即便有罪也得先入法才能从法律上评判,我看这群人不是想弘扬法制意识,是滥用民粹的法治意识
具体是哪个法典/规定的哪一条,还是罗翔的寻衅滋事罪?我不敢提隐私和人权,因为在中国人权是负面意义的“过度自由”,而《劳动法》被堂而皇之的轮奸,这些张口闭口法治的人就不在乎了?
而且在 #GitHub 的 issue 区接龙这种莫名其妙的 title ,有营养吗,还不如好好想想为什么制度会出这种毛病…… #Low #China #politics
草(是不是之前定义的就不是自动内联优化的了 #cplusplus #ce
Forwarded from Phonograph (Ralph 萌新喵)
草???
果然每次翻 cppreference 都会有惊喜
第一次听说内联变量
#linux #sysadmin #Telegram #scripting 草,上面还有人pam Telegram认证才能ssh登录的
Forwarded from Tindy | SIGHUP
我bot还接受 /shutdown_all_instances /ufw_panic_on
#ce #plt #JS #DontKnow#JavaScript 的一个 async function 中,请问在什么情况下 return fetch(...)return await fetch(...) 会有区别?
(其中 fetch 返回一个 Promise,且这个 Promise 一定是成功的)

duangsuse:
async function 相当于一个可带 awaiter 的 function* ,封装为 Promise
直接 return Promise 大概会得到二层的这个
await 的话等价 yield 执行权给 awaiter ,成功了 return it ,大概是 Promise<String> ?

reply:
正常 async 函数返回值也是 Promise<string> 哦(注: fetch() resolve 后是 string

other:
如果返回的是promise那么还得await或是then
reply:
并不需要,Promise 套娃是会自动解开的

duangsuse:
[In reply to duangsuse]
呃……想起来了,async awaiter 其实会自动 await yield 的 Promise ,而 return 也是一种 yield

duangsuse:
[In reply to reply]
async function op1() { return Promise.resolve(100); }
async function op2() { return 100; }
for (let op of [op1,op2]) op().then(console.log); //100 x2

function foldN(n, op, x) { var acc=x; for (var i=0;i<n; i++) {acc = op(acc);} return acc; }
foldN(4, (x) => Promise.resolve(x), 100).then(console.log)

reply:
try { return op1(); } finally { op2(); }
里 op1() 先执行
try { return await op1(); } finally { op2(); }
里 op2() 先执行

duangsuse:
[In reply to duangsuse]
亦可简写为
const puts=console.info;
const op1 = async()=>Promise.resolve(100), op2 = async()=>100;
for (let op of [op1,op2]) op().then(puts);
foldN(4, v=>Promise.resolve(v), 100).then(puts); 

另外一般内部实现的 awaiter 亦可这么定义:
function __onestep(gen) {
let {value, done} = gen.next();
if (!done && value instanceof Promise) value.then(x => __onestep(gen.next(x)) );
else return value;
}
function __awaiter(gen) { return Promise((resolve, reject) => { resolve(__onestep(gen)); }; }
未实现 reject
果然是 try-catch 时控制流易跑偏……看来在协程continuation的实现方面结构化异常处理需要注意啊

duangsuse:
[In reply to reply]
感觉你这个和举的例子有点区别啊…… 举的例子里 return 是实际执行的最后一条语句
第一个…… 不对,看起来是我默认错了

最后一行和实际末语句是有区别的,如在 () => { return 1; print(); } 里。
尾调用优化也是 return thisOp(); 是可变成循环, return thisOp()+1; 仍需保留调用栈

duangsuse, [13.01.21 11:06]
try {} 里的 return 语句居然还能前置执行 finally {} ,涨知识了
之前哪里能用到这么多 try 块……

await 休眠当前函数实现的不错,看来这个问题是问“控制流什么方法可以在 return 前加逻辑”啊
回答本身是执行顺序问题。如果直接 return Promise 会被 awaiter 处理,类型上也没错
duangsuse::Echo
#ce #plt #JS #DontKnow 在 #JavaScript 的一个 async function 中,请问在什么情况下 return fetch(...) 和 return await fetch(...) 会有区别? (其中 fetch 返回一个 Promise,且这个 Promise 一定是成功的) duangsuse: async function 相当于一个可带 awaiter 的 function* ,封装为 Promise 直接 return Promise 大概会得到二层的这个…
一开始就应往协程阻塞(await) 和非阻塞(return&awaited by async awaiter) 上想
估计不止 try-finally 里的 return 会前置跳转到 finally {} ,break 什么的也会吧:

for (let i of [1,2]) try{break} finally {console.log(i)} //1
看来实现编译器的人必须深刻认识各种控制流结构,这得先执行 finally 块,才能真的 return/break ... 不过这大丈夫吗
finally 块的词法(变量)上下文好像和 try 是一起的,但如果能引用 try 内定义的变量,会不会 access to uninitialized...
https://lab.xecades.xyz/Fourier/?img=5
感觉自己的智商严重需要重构了…… 看了下基本绘制结构我明白了,当时找 img= 参数引用的时候想当然查 (n + 1) 这个表达式,三次没找到后才在已发现 loadPageVar() 后明白编号到零基数组引数是 -1,明显没过脑子(或者记性不好/数性太差),就凭这?心理各种崩溃。

是用 setInterval (timer) 累积dt 更新的(缺点 dt 是常量)
generate(t) 基于 getSvgInfo() (load onto <svg> tag)和 getDotInfo() (use style "offset-distance"&canvas.origin)
整体代码质量较好,非常简短而整洁,建立了 Axiscomplex 的 class,helper(common abst.)/canvas/main logic 三文件符合拆分直觉,命名和算法封装方式偏 C 化(静态指定子程序输出的目标存储空间,对应其参数也是写死的;即便程序生命周期仅调用一次)

待会重构下(也只能是拿 #TypeScript 了),算是安抚可怜的我…… 😭
#Telegram #Java #Android 竟然 1M 多……
#Windows #tgtext
LcdDem:
wsript,cscript是啥

[In reply to LcdDem]
Win 内置的 JS + VBS 解释器
当然那个 JS 解释器非常残废
ES5 说不定都不全

LiangXiang Shen:
没有异步,没有xhr
那就是给 BAT 写扩展同样没什么用
六七年前贴吧整这些东西整的热火朝天,现在全冷了

你甚至可以把 HTML 和 Batch 混写

同一个文件 cmd.exe 和 mshta.exe 都能开
#Linux #cplusplus https://file.xecades.xyz/Linux/
这个写的有 ANSI escape, curses 和 tcasetattr, ioctl 在 Linux 下 nonblocking-getchar 和 get terminal size 的功能了
大佬也有过找这种接口的时候啊