#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),
o,x=()=>add(Number(s())),
one=ed=>{x(); let A,B;for(o=s(); (A=l[o])>=(B=l[ed]);)if(A!=B)one(o);else{add(ed);x();ed=o,o=s()} add(ed)}
one('');a.pop(); return a//深先. ^已优化:仅 l右>l现 递归.等价逆波兰, 注意o=s()只一次
}
{
B=document.body;B.innerHTML=`<input id=x> <b id=y>`
B.style.cssText=`display:flex;flex-direction:column; white-space:pre`
x.onchange=()=>{y.innerText=(this.expr=符链(流(x.value.split(/([-+*/%])\s*/g)), 符深大) ).join(" "); B.append('=',折叠(expr),'\n\n')}
}
折叠=(码,算=(st,k,a,b)=>{console.log(a,b,k,码); B.append(折叠([...st.slice(0,-2),a,b,k,...码],(_,k,a,b)=>a+k+b)+"\n");return eval(a+k+b)})=>{
let st=[],x;
while(null!=(x=码.shift()))(typeof x=='number')?st.push(x):
(i=> st.splice(i,2, 算(st,x,...st.slice(i)) ))(st.length-2)
if(st.length!=1)throw st; retuForwarded from 螺莉莉的黑板报
微信的炸屎是用 Unity + Webview 做的,QQ 里面的特效是用 UE 做的,他们都有美好的未来.gif
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)…
#learn 首先来了解下中缀链优先级解析法
1+2*3 即
中缀记法是所有编程语言的必备文法,调用链也是中缀链。但括号代表啥呢?代表一个单独计算的整体(算术表达式Expr) 从而避免优先级争夺
除了 if,?: 等条件结构外,包括函数调用和{}都可以用栈表示,栈就是说
然后是第二部分,如何显示求值步骤。其实看右侧你们也能发现栈机执行中 单次运算(k,a,b) 时
这个副本是随代码执行不断在缩小的,我们能拿到「当前步骤」的整体代码
而“toString计算栈”也是种
1+2*3 即
1+(2*3)
1*2+3 即 (1*2)+3 ,即前缀 (+ (* 12)3),+的优先比* 低,所以它离树根最近、最后计算。默认先算左边的one=ed=>{x(); for(o=s(); l[o]>=l[ed];)one(o) add(ed)};
o是最新一算符、x()是读单项。每层会收纳级=它的算符链,1+2 *3 +4 时乘法深度往上攀升,就先add(*),然后才落回 +的层次继续 x()=4,直到 o=null 整个栈退出one('')&a.pop()
初始是一个不可能出现(没有平级项)的算符,它add('') 后将这pop()掉return a//1 2 * 3 +
中缀记法是所有编程语言的必备文法,调用链也是中缀链。但括号代表啥呢?代表一个单独计算的整体(算术表达式Expr) 从而避免优先级争夺
除了 if,?: 等条件结构外,包括函数调用和{}都可以用栈表示,栈就是说
1 2 * 3 + 遇到数则记住,遇到符则把最近2数弹出来,算为1个数记回去,这样深深的递归eval() 就变成单层、可中断的了然后是第二部分,如何显示求值步骤。其实看右侧你们也能发现栈机执行中 单次运算(k,a,b) 时
[*st[:-2] ,a,b,k=opcode,*代码] 即[*st,*代码] 是执行前的代码副本这个副本是随代码执行不断在缩小的,我们能拿到「当前步骤」的整体代码
而“toString计算栈”也是种
折叠(代码,二元计算) 操作。拿它显示代码正求值的步骤就OK了Forwarded from Solidot
英特尔释出微码更新完全禁用 12 代酷睿处理器的 AVX-512 指令集
2022-01-07 22:45
英特尔通过主板制造商释出新 BIOS 完全禁用了 12 代酷睿处理器的 AVX-512 指令集。12 代酷睿处理器采用大小核设计,包括性能 P 核心和能效 E 核心,其中只有 P 核心支持 AVX-512 指令集,而要使用 AVX-512 用户必须在 BIOS 中禁用 E 核心。现在英特尔通过微码更新完全禁用了 AVX-512,所有现有的 Z690 主板都将通过新 BIOS 禁用 AVX-512。英特尔此举可能是让 AVX-512 指令集保留给企业级 CPU 使用,消费级 CPU 不再提供。
2022-01-07 22:45
英特尔通过主板制造商释出新 BIOS 完全禁用了 12 代酷睿处理器的 AVX-512 指令集。12 代酷睿处理器采用大小核设计,包括性能 P 核心和能效 E 核心,其中只有 P 核心支持 AVX-512 指令集,而要使用 AVX-512 用户必须在 BIOS 中禁用 E 核心。现在英特尔通过微码更新完全禁用了 AVX-512,所有现有的 Z690 主板都将通过新 BIOS 禁用 AVX-512。英特尔此举可能是让 AVX-512 指令集保留给企业级 CPU 使用,消费级 CPU 不再提供。
#Gihub #js 🤔 钱钱! termcolor 钱钱!
https://zhuanlan.zhihu.com/p/378294553 补充: #life 这个可怜的 #web #data #dev 家里失火了,然后他的UI试用假数据生成器被 FAANG 一大堆公司白嫖,还被一个(sponsor) ReTool 白嫖了云服务,可是一分钱也没付给他;而且按MIT协议这样是没错的
我都很好奇这个花了十年的fakedata synth 有多厉害(因为社媒总有夸大的成分),以至于值大价钱,但我不想去,而且有时候就值钱
#life Marak在失火时有些人倾囊相助。相似的,CSS4 https://developer.mozilla.org/zh-CN/docs/Web/CSS/color_value#颜色关键字
https://zhuanlan.zhihu.com/p/378294553 补充: #life 这个可怜的 #web #data #dev 家里失火了,然后他的UI试用假数据生成器被 FAANG 一大堆公司白嫖,还被一个(sponsor) ReTool 白嫖了云服务,可是一分钱也没付给他;而且按MIT协议这样是没错的
我都很好奇这个花了十年的fakedata synth 有多厉害(因为社媒总有夸大的成分),以至于值大价钱,但我不想去,而且有时候就值钱
#life Marak在失火时有些人倾囊相助。相似的,CSS4 https://developer.mozilla.org/zh-CN/docs/Web/CSS/color_value#颜色关键字
RebeccaPurple 是纪念Web布局先锋患癌去世的6岁女儿Rebecca。 人情冷暖仍存于技术圈里知乎专栏
Faker.js作者:要么付钱要么你行你上
去年11月9日,知名开源项目 Faker.js作者「Marak」在其仓库发了一个新issue #1046: (世界五百强公司们)别想再白嫖我的工作成果了,要么给我开一份六位数的合同,要么fork项目自己搞。 此 Faker非彼faker。 Fake…
Forwarded from Solidot
开源开发者故意破坏广泛使用的依赖库
2022-01-10 13:34
一位开源开发者的故意破坏再次引发了企业依赖靠维护者义务工作的开源库的争议。Marak Squires 的开源库 color 和 faker 被广泛使用,其中不乏企业和商业客户。在包管理器 NPM 上,colors 的周下载量超过 2000 万次,有近 19000 个项目依赖它;faker 的周下载量超过 280 万次,有超过 2500 个项目依赖它。开发者在 color.js 库的 v1.4.44-liberty-2 版本中给新的美国国旗模块加入了无限循环,依赖 color.js 的项目会在控制台看到不停打印的非 ASCII 字符。faker v6.6.6 版本的情况类似,他将这两个搞破坏的版本推送到 GitHub 和 npm。受影响的项目包括亚马逊 AWS 的 Cloud Development Kit。开发者此前曾批评企业没有回馈社区,他在 2020 年 11 月警告说,他将不再用义务工作支持大企业,商业客户应该考虑创建分支,或者用每年六位数的薪水补偿开发者。安全专家批评这种行为不负责任,每一个依赖这些库的项目都受到影响,而不仅仅是大企业。GitHub 平台暂时封禁了 Marak Squires 的账号(已解封),此举也引发了对 GitHub 如何控制开源项目的争议。
2022-01-10 13:34
一位开源开发者的故意破坏再次引发了企业依赖靠维护者义务工作的开源库的争议。Marak Squires 的开源库 color 和 faker 被广泛使用,其中不乏企业和商业客户。在包管理器 NPM 上,colors 的周下载量超过 2000 万次,有近 19000 个项目依赖它;faker 的周下载量超过 280 万次,有超过 2500 个项目依赖它。开发者在 color.js 库的 v1.4.44-liberty-2 版本中给新的美国国旗模块加入了无限循环,依赖 color.js 的项目会在控制台看到不停打印的非 ASCII 字符。faker v6.6.6 版本的情况类似,他将这两个搞破坏的版本推送到 GitHub 和 npm。受影响的项目包括亚马逊 AWS 的 Cloud Development Kit。开发者此前曾批评企业没有回馈社区,他在 2020 年 11 月警告说,他将不再用义务工作支持大企业,商业客户应该考虑创建分支,或者用每年六位数的薪水补偿开发者。安全专家批评这种行为不负责任,每一个依赖这些库的项目都受到影响,而不仅仅是大企业。GitHub 平台暂时封禁了 Marak Squires 的账号(已解封),此举也引发了对 GitHub 如何控制开源项目的争议。
duangsuse::Echo
#learn 首先来了解下中缀链优先级解析法 1+2*3 即 1+(2*3) 1*2+3 即 (1*2)+3 ,即前缀 (+ (* 12)3),+的优先比* 低,所以它离树根最近、最后计算。默认先算左边的 one=ed=>{x(); for(o=s(); l[o]>=l[ed];)one(o) add(ed)}; o是最新一算符、x()是读单项。每层会收纳级=它的算符链,1+2 *3 +4 时乘法深度往上攀升,就先add(*),然后才落回 +的层次继续 x()=4,直到 o=null 整个栈退出 one('')&a.pop()…
https://yfzhe.github.io/posts/2020/03/define-memo/ #fp #algorithm fib 序列
这货一般用递归或递推(伪递归)定义(f=fib)
于是 f 2 = 1+0 ,f 3=f2+1 ,很明显这可以转为递推
也即循环
#haskell 里也可以用
你可能觉得很怪,我 #Python 利用2项tee()缓冲区实现过这个 fib.py
函数式的动态规划 - 脚趾头的文章 - 知乎 讲了背包、子序列问题的DP
https://zhuanlan.zhihu.com/p/104238120
这货一般用递归或递推(伪递归)定义(f=fib)
f 0=0;f 1=1
f n=(f n-1)+(f n-2) --前两次之和 于是 f 2 = 1+0 ,f 3=f2+1 ,很明显这可以转为递推
f' 0 a _ = a --f0=0- f' 0 1 2 - 1
f' n a b = f' (n-1) b (a+b)
f n=f' n 0 1
f2= f' 1 1 1
也即循环
f=n=>{let a=0,b=1,c=0;for(;n--;){c=a+b;a=b;b=c} return b}
如果不想浪费 f'0时的b=(a+b) ,也可以f' 0 _b=b当然即便不使用递推,
f n=f' (n-1) 0 1 ; f0=0
memo 缓存参数也能很好优化雪崩式递归#haskell 里也可以用
fib=0:1:zipWith(+) fib (drop 1 fib) 你可能觉得很怪,我 #Python 利用2项tee()缓冲区实现过这个 fib.py
fibs = iself(lambda fibs: chain([1,1], starmap(add, zip(fibs, drop(1,fibs)))))
函数式的动态规划 - 脚趾头的文章 - 知乎 讲了背包、子序列问题的DP
https://zhuanlan.zhihu.com/p/104238120
yfzhe.github.io
从 Fibonacci 到 define-memo
故事要从 HackerRank 网站上的 "Functional Programming" 题集里的 一道题目 说起。这道题目叫 "Fibonacci",属于 "Memoize and DP" 分类下。一如题目名字一样 直白,这题就是要求 Fibonacci 数列的第 n 项 \(Fib_n\),其中 \(Fib_0 = 0, Fib_1 = 1\)。(其实还是有点点差别,原题因为数字精度范围的问题要求 mod 10e8+7,但是在这里 我们不需要考虑这个问题,下面忽略 mod 10e8+7 这个操作。)...
Systemd 是 linuxrc(run-command) 系统,而 init=pid0 ,含特殊权限(pivot_root..)。它提供sysv /init的替代品来执行初始化任务。 #linux
当然init,service unit 对systemd只是一小块,也有 journalctl,coredump,bootctl, hibernate-resume 等工具,总之linux的管理API(proc,sysfs,dev,.) 基本都有涉及
当然init,service unit 对systemd只是一小块,也有 journalctl,coredump,bootctl, hibernate-resume 等工具,总之linux的管理API(proc,sysfs,dev,.) 基本都有涉及
Forwarded from Phonograph (Ralph 萌新喵)
OS考试未解之谜:
0号和1号进程到底哪个是systemd
(然后排除了0号进程,因为感觉它是从当前态的OS的逻辑上的父亲来的)
systemd属于啥程序来着
0号和1号进程到底哪个是systemd
(然后排除了0号进程,因为感觉它是从当前态的OS的逻辑上的父亲来的)
systemd属于啥程序来着
duangsuse::Echo
https://twitter.com/GrantCuster/status/1457786663275413509 Tech-wise this type in WebGL (using three.js). The letters are put together in a canvas sprite sheet, then placed as a texture on *instanced rectangles*. It's a very different set of constraints than…
Telegram
duangsuse::Echo
为了吹哨人、发哨人,以及所有为了疫情努力过的人(当然,显然我不包括在其中)
本频道 image 象征性灰今明两天。 #Telegram #China
#Python Pillow:
from PIL import Image
def grayifyFile(name):
img = Image.open(name)
img.convert("L").save(name.rsplit(".")[0])
grayifyFile("image.png")
OpenCV #CV #Cplusplus:…
本频道 image 象征性灰今明两天。 #Telegram #China
#Python Pillow:
from PIL import Image
def grayifyFile(name):
img = Image.open(name)
img.convert("L").save(name.rsplit(".")[0])
grayifyFile("image.png")
OpenCV #CV #Cplusplus:…
#statement #tech 感觉最近写代码越来越顺手了……虽然都没写过App 😒
今天说着要复刻《小狮子少年》的斜眼 #cg ,居然两遍就完成了(可惜视频还要等(但如果完成得慢会影响其他进度的吧
许多编程手段也得到了系统化
由区间-列表处理函数-2D分列 得来的自由数据集表达
由循环改变-函数图-动画曲线 得来的变化率应用
由语言对照得来的新描述语言风格、对 #ce 编译和语言大结构的理解,以及其对API的提炼 (再也不会觉得名字长才易懂,因为程序和提示有许多写法
使得我变得更适合任何用途意义的编程,我用一两行代码实现过许多所谓「框架」才能干的事,没一行多余的代码,句句是核心必要点,也能快速设计下可调参数,这是最好的。 🙊
可惜以后这些只能在一些边角里体现了
很期待用支持弹性动画的 #Blender 剪视频,以及蹭热度。
动苏眼里 #cg 除了GLSL(特效,光追,.)等明显项,『计算机图形学』和绘制的分界线有无使用『混成(composite)』。画一个圆弧arc进度条动画、多边形啥就是绘制,z轴重排序(3D Painter算法)和clip()mask 就是图形学 :v \
今天说着要复刻《小狮子少年》的斜眼 #cg ,居然两遍就完成了(可惜视频还要等(但如果完成得慢会影响其他进度的吧
许多编程手段也得到了系统化
由区间-列表处理函数-2D分列 得来的自由数据集表达
由循环改变-函数图-动画曲线 得来的变化率应用
由语言对照得来的新描述语言风格、对 #ce 编译和语言大结构的理解,以及其对API的提炼 (再也不会觉得名字长才易懂,因为程序和提示有许多写法
使得我变得更适合任何用途意义的编程,我用一两行代码实现过许多所谓「框架」才能干的事,没一行多余的代码,句句是核心必要点,也能快速设计下可调参数,这是最好的。 🙊
可惜以后这些只能在一些边角里体现了
很期待用支持弹性动画的 #Blender 剪视频,以及蹭热度。
动苏眼里 #cg 除了GLSL(特效,光追,.)等明显项,『计算机图形学』和绘制的分界线有无使用『混成(composite)』。画一个圆弧arc进度条动画、多边形啥就是绘制,z轴重排序(3D Painter算法)和clip()mask 就是图形学 :v \
#math 如果你要在终端展示图片(RGB亮度->灰度),就需要将稠密的浮点切成区间编号。 绿 floor(x*a)/a 在a=2 时将0~1切成2份,a=10 相当于保留1位小数(1.0内含10阶),而 红 round 会切成4份,即数组a.
CSS1 仅支持VGA颜色,后来有了 X11-SVG 标准色集
CSS4 支持
相比之下,弱鸡的 #Java AWT 和 #Python PIL 就没有简单、统一可玩的API ,awt 只有光谱 CIE XYZ 这样低层的概念,
#cg 在「擦拭」位图A->B渐变里,t=0~1 , 当前帧=(1-t)A+tB ;先绘制A, 再以 mask(t) 叠上B
遮罩mask 内最黑的部分代表B最先出现部分,随着t递增 所有像素渐变到B
柔和度=0 时 mask 内只有0,1 二态,所以AB中间的线(如果mask=横向渐变)很锐利
=1 时会用尽alpha色域(一般256色)渐变
a[floor(v*n(a) )]
#CSS #web 提供了 #rgb , #rrggbbaa 的 rgb(255,.) ,以及 hsl(Hdeg S%L%) 扇形选色方式,注意这不是冷知识.. color picker 都支持按色相、饱和、亮度选色, backdrop-filter:hue-rotate(1deg) 也是有的CSS1 仅支持VGA颜色,后来有了 X11-SVG 标准色集
CSS4 支持
rgba(r g b /a) 空格格式和浮点数相比之下,弱鸡的 #Java AWT 和 #Python PIL 就没有简单、统一可玩的API ,awt 只有光谱 CIE XYZ 这样低层的概念,
getHSBColor 和又能大写又能小写的 static RED 这些……emm#cg 在「擦拭」位图A->B渐变里,t=0~1 , 当前帧=(1-t)A+tB ;先绘制A, 再以 mask(t) 叠上B
遮罩mask 内最黑的部分代表B最先出现部分,随着t递增 所有像素渐变到B
柔和度=0 时 mask 内只有0,1 二态,所以AB中间的线(如果mask=横向渐变)很锐利
=1 时会用尽alpha色域(一般256色)渐变
duangsuse::Echo
《古文观止》里「观止」指什么
《古文观止》是一个文章选本,“观止”是本于《左传》里记载季札在鲁国看乐舞时赞美的话:“观止矣!若有他乐,吾不敢请已。” —指看到这里就可以休止了