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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
#ai #api https://zhuanlan.zhihu.com/p/621777507 #tool chathub.gg 是多AI客户端聚合 如 class BingAPI: bing.com/turing/conversation/create, updateConversation: wss://sydney.bing.com pingme.tel 是国产的虚拟号收信平台 关键词 sms phone verification 也可以搜到几个免注册的,但号码注册过 OpenAI.com h…
#bing #info 另外, 我前天因为 VPN 切换过快被 sydney 要求CF验证码😭
本来怀疑CF 封了梯子IP
后来发现是 Header Editor 伪造的 UA: Edg/109.0.100.0 让CF拦截了 。关闭HE后 只要验证一遍 就可以在 ChatHub.gg 对话了

#tool
>用OpenCV写 png2ascii.py ,刷新到ANSI终端,再在单帧的基础上支持播放 mp4
(第一次用很矩阵 的方法完成了😊,但不支持mp4 ,且之后都是for循环)
grays = [*" .-:=*+%@#"]
def ascii(img, wh=np.int32(os.popen('stty size', 'r').read().split()[::-1]) ):
g=np.array(grays)
a=cv2.cvtColor(cv2.resize(img, wh) , cv2.COLOR_BGR2GRAY)
b=np.int8(np.interp(a, (0,256), (0,len(g)) ))
return [*
(''.join(y) for y in g[b] )
]
print(*ascii(cv2.imread(s)), sep="\n")

再加上行缓冲优化、 mpread(mp4) 就可以播放了
duangsuse::Echo
Video
This media is not supported in your browser
VIEW IN TELEGRAM
#py 事实上 numpy 就是有 C++ 的速度(悲)

我把cv2读视频的进度条和 ffplay 绑定了下 ,看起来和原生 DISPLAY= cvlc 一样了

52行完爆120行java或C++ 🥰
#java #performance 值类型vs引用类型
🤔在内存管理/GC良好的语言里,只读数据的引用 就是值
java Byte[]和byte[] 在复用上都互不兼容,当然没有值类型了☺️

>我有一个含极多重复str 的JSON,想减少其内存占用

这就是常量池嘛, javac和aapt都会做
JVM的str不可变,一般都是全局缓存的,strBuild 在完成时是会查询这个吧。

文件上编解码时中间加个Deflate流
也可能是结构有毛病, 比如把str而非int当成tag

说起来str.intern 早废弃了 ,因为new Str() 都是常量池化由GC管理的
(注:不是,jdk7修正了intern内存泄露的bug -XX:StringTableSize )
你不会不相信HotSpot 研究了20年的GC性能吧?🌚指针去重 不是javaer该想的问题 ,str和strBuffer 区别开了 哪有重复分配的问题

要我说不如直接全py,js 算了,既然有这么一个合并步骤

你不能把str常量池说成 static ,这样叫内存泄露的。既然使用了GC语言不要管指针
String是final class ,我不觉得它算用户对象。 jvm是可以做优化的

它没有提供delete obj 的方法,对用户化指针管理 已经有个态度。C#里就是能,还可以调用unsafe

问题在于jdk做不到py 那样包装C++,众人拾柴火焰高 ,无法真的在内存性能上服众

那你就只能自己搞个基于HashMap 的String() 了呗,可惜json读写器们不支持😅
或许靠AOP硬把jackson. new String 替换为缓存的函数?

>你说的这个全局池子不高效,是负优化,这大概也是Java不去实现的理由之一

可是它只在创建str时有开销啊..
所以有strBuild
总之gson们不支持用户的“数据类型”,只能手写JSON读写器了 ,要不然没法实现解析时就去重

如果你想做,只有二次遍历对象图
https://t.me/Javaer/922773
Forwarded from Solidot
Twitter 估值跌至马斯克收购价的三分之一

2023-05-31 23:34:00 by 皇后之爱

管理数万亿美元资产的富达估计,Twitter 现在只相当于马斯克(Elon Musk)收购价的三分之一。马斯克是在去年 10 月完成了以 440 亿美元收购 Twitter 的交易,他最近表示 Twitter 的价值不到其收购价的一半。不清楚富达的最新估值是否是基于来自 Twitter 的未公开信息。在马克思接管 Twitter 之后,他反复无常的管理决策和内容审核问题导致广告收入下降了 50%。Twitter Blue 订阅服务也没有吸引更多用户。不过 Twitter 的贬值对马斯克本人的财富影响不大,因特斯拉股价大幅飙升,马斯克的财富今年增长了逾 480 亿美元。

https://www.bloomberg.com/news/articles/2023-05-30/twitter-is-worth-33-of-musk-s-purchase-price-fidelity-says

#Twitter
Forwarded from Solidot
日本表示版权不适用于 AI 训练

2023-06-01 14:51:00 by 蒸汽歌剧

日本教育、文化、体育、科技大臣 Keiko Nagaoka 表示,法律不保护 AI 数据集使用的版权材料。日本政府相信版权可能会阻碍在 AI 技术方面的进展,因此为保持竞争力而采取了不管版权的方法。不是所有人都认同政府的这一决定,动漫和画师担心 AI 会降低其作品的价值,而学术界和商界则督促政府利用宽松的数据法律推动日本成为全球 AI 的主导者、

https://technomancers.ai/japan-goes-all-in-copyright-doesnt-apply-to-ai-training/

#人工智能
2
Forwarded from yazawa nico
duangsuse::Echo
#recommend #blog 消息来源🔍 铭记 program-think.blogspot.com: "It's my duty!" #news #china #freedom 果然,官老爷不敢对境外势力瞩目的大老师判刑太久,但“法是领导看法” 的国家,过程结束后又怎么会结束呢?😡 https://fxtwitter.com/suyutong/status/1638166250307108866 #tech 老师是化学系,大学肄业,却热爱并成就了编程技术,同时又嫉恶如仇,可谓 普世价值 科学跨领域…
#news https://m.youtube.com/watch?v=CoiH6xtFd-w&t=15m 在中国很多“出事儿”的主角的妻子,是软肋和棋子,怕自己惹上事情就离婚,即划清界限

可是当代鲁迅自由恋爱到的妻子,却勇敢地公开执行法律权利 ,如今却又被当代红卫兵抓了

真可谓不要谎言要尊严,不做奴才做公民。
不是老人变坏,是红袖章们变老🥰 革命先烈的光荣传统,是在国内外烧杀抢砸吗。

6.4是明天, 可中国的民主化何时才得到共识?
秋后算账威胁下的学生, 如何既敢站出来,又抛弃仇恨和一步登天的马克思正义 ,不重蹈30年前的覆辙?
又有多少人还在相信 “只要人民政府愿搞经济, 一切会向好”?

未来中国,是文革化不成,沦落为与民争利的基层互搏 ,还是现代化为民选立法呢?🧐
1
duangsuse::Echo
#kt 序列化 https://t.me/kotlin_cn/74569
#learn #js #PLT 扫盲: 100行内 手写解析器
目标B: 解析 json.org ,即不断把左侧字符(123, "ab", [] )吃成 int,str 等格式。在 [] {} 乃至文件顶层里读取时,也就是这样

目标A: read("(str 123 (deep str ) ) ") == ["str", 123, ["deep","str"]]
嵌套解构=“吃”字符流:
s=feed("abc"); s(2)=="ab"==s(-2); s(1)=="c"

read=(s, ret)=>(
re(s, /\d+/, parseInt)||re(s, /w+/, str=>str) ||
//递归下降!
(s(1)=='('? (s(-1), ret=read(s), s(-1)==')', ret) : null)
)
这里1次只能读取1个情况,把 (s..=> ) 用Many(组合子)修饰,就能读取列表
Many=(p ,r)=>s=>{let a=[];while(NO!=(r=p(s)))a.push(r) ;return a}
于是 read(feed("(123dog)cat(64bit)")) 能正确读为5项树
也就是对应:
Ary (Num|Str| '(' Ary ')' )*
目前只让 re() 在读feed前跳空格,就做到目标A

同理,目标B :
JSON Any
Any true|false|null| Num|Str |Deep
Num int(.int)? '[eE][+-]?\d+'?
int '-?(0|[1-9][0-9]*)'
Str '"' '\\([nrtfb"\/\\]|u[a-fA-F]{4})|.'* '"'
Deep [(Any ,)]|{(Str:Any ,)}


用组合来描述

Any=fref(f=> P({
Kw: re(/true|false|null/, x=>({t:true,f:false,n:null})[x[0]]),
Num,Str, Deep: {A:Sep(f), O:Sep([Str,/:/, f]) } }
}) )()
Num=[int, re(/\.\d+/, parseFloat), /[eE][+-]?(\d*)/]
Str=[/"/, Many({ esc,utf, or:s=>s(1) }) ,/"/]
int=/-?(0|[1-9][0-9]*)/
Forwarded from Programmer Humor
[Meme] Java 21 will introduce Unnamed Classes and Instance Main Methods
https://redd.it/1406j6i

by @programmer_humor
1
Forwarded from 科技圈🎗在花频道📮 (在花🎗)
思杰马克丁成为 Internet Download Manager 中国区独家代理商。 原文

投稿:@ZaiHuaBot
频道:@TestFlightCN