duangsuse::Echo
412 subscribers
3.85K photos
105 videos
574 files
5.15K links
duangsuse技术相干订阅
这是 @duangsuse 与技术有关的发布频道
duangsuse 的另外有 throws 闲杂频道
@dsuset
转载频道 @dsusep
duangsuse 有coding,github,gitlab帐号和bilibili帐号

极小可能会有批评zf的消息 如有不适可以退出

suse的小站:https://piped.stream
ps 另有别名 popf.rip
ʕ•̀ω•́ʔ✧ 🐶🍎🏠生死🐜
(>ω<)岂因祸福避趋之 一鿕
Download Telegram
#life #dev duangsuse 落实 10:30 准时睡觉『政策』。 🐱

考虑到健康原因(不让自己的努力白费),每晚 10:30(h:m) 必须立即睡觉

== duangsuse::Echo 参考 #Telegram hashtags

duangsuse::Echo 常年利用 hastags 标记消息所含知识领域,并且,这也会为未来 Echo 频道进行简单准确的数据统计带来可能(不然,我也有其他手段,比如 NLP、统计预测)

以下是新的标签实例(不区分大小写、不能保证消息只含这些标签):

== 消息平台部分
#Telegram #zhihu #Github #so #Coolapk #book #wiki

== 注释部分
#life #China #School #Statement #lib #recommended #low #fix
#project #blog #share #Learn #paper
#dev #tech #art #meetUp #conference
#Moha #Haha
#gnu
#Microsoft #Mozilla #WeChat #QQ #Weibo #Tencent #Baidu #Ali #Qihoo
#tools #code

== 程序设计语言部分
#Kotlin #Java #JavaScript #JavaScript_ES6 #TypeScript
#Rust #Go #Swift #Dart #Crystal
#Ruby #Python #Perl #Tcl #Lua #PHP
#C #D #Cplusplus #CSharp #Objc
#Pascal #Fortran #Delphi #Ada #Basic #VisualBasic
#Scheme #Haskell #Scala #Clojure
#TeX #Graphviz
#Octave #Matlab
#Shell
(有些写出来是为了鼓励我去写,其实不一定真的写过)

== 软件平台部分
#Android #Windows #Win32 #MacOS #Java #Java_JVM #CLR #Qt #GTK #Tk #WxWidgets
#CSS #XML #JSON #KDE #Postgres #dotnet

== 软件技术领域部分

#backend #sysadmin #frontend #sysadmin_net

#OI #CS #IT #Informatics

#stat #ann #ann_dnn #machl
#math #math_linearAlgebra #math_discrete
#se #se_dia #se_ci #se_ee
#comm #net #www #web #http #html #mail #wireless
#circuit #embedded #os #db #db_relAlgebra #SQL
#bin #encoding #encoding_audio #encoding_image #encoding_video #encoding_text
#hpc #parallelism #distributed #simd #gpgpu #crypto
#pl #pl_plt #ce_vee #ce #ce_optimize #fp_monad #fp_proof #fp #oop #oop_arch #sp #parser
#algorithm #struct #lists #maps #sets
#security #security_lowlevel
#signalProc #nlp #phonetic
#cg #cg_dip #cg_3d #cg_2d #cg_lowlevel
#gui #gui_animation #gui_layouts #cli #visualization
#parallel #SIMD #intel avx512 🤔能...批量浮点加速??
#py #tech 4 行級的 base64 ? 如果是 Chrome 可以直接用 btoa (实现于WTF基架) ,这次就用 numpy 实现吧;也比上次写明确一点(亿点点),兼容URI-safe等不同编码表

Google WTF的支持URI是靠 .Replace('+/', '-_') 的.. 写几百行的人,真的只是因为真的视编码为奇技淫巧,才求仁得仁了 😅

但所谓4行,一定是指算法复用了「数据模型」。这个涉及二进制/列表滑窗的编码在C里可并不易写,用 'a'->'1100..' join&chunk(6) 也太慢了

指针不如内联函数,快取也是要做频率分析和perf PGO的,你千万别觉得符号比名字多就更快……
把問題複雜化是一定会「难以优化底层算法」的,说到SIMD用 CuPy.dev 最好,faster.rs simd_iter(chunks) 也不错。以前我用C生成过奇怪的图片

#py #code
b= b'ABC'
rad = R64[K]; nc=int(math.log2(K))

A,B=K_AB[nc]; kEQ=A/B

nEQ=A-len(b)%A; b=b.ljust(len(b)+nEQ,b'\x00')
n=len(b)
bs = np.frombuffer(b, dtype=np.uint8)
a=np.packbits(np.fliplr(np.unpackbits(bs).reshape(n*B//A,-1) ), axis=1, bitorder='little')

print(b"".join(rad[a].reshape(-1))[:-round(nEQ / kEQ)])

如果是纯 b64+numpy AI也做得到;但是我用到了列表处理的复用,暂时不能全靠问AI
当然,我是不会自卑到和AI比做高端工具人的能力,很希望,明年我就不再手写任何代码;能自解释的AI技术赛高☺️

误打误撞发现 np,numba 支持 SIMD 的 packbits() ,所以能4行实现,但目标还是添加z85等4byte:5char 的分组编码 。在开发中