https://github.com/duangsuse-valid-projects/psearcher-r #Python 简直蠢死了…… 太不智能了……
其实它的原仓库编程水平也就那个样,我居然还几乎是抄着重写了遍这个 requests+retry+beatifulsoup / loger 的库,原库不仅是连接/解析/搜索 失败的时候 makelog ,连成功的时候也 makelog
而且毕竟是调用网络 API,成功率容易起伏和受captcha干扰,蠢死了啊而且还花了一上午真不知道有啥意义,虽然我现在也能直接重写一遍了
其实它的原仓库编程水平也就那个样,我居然还几乎是抄着重写了遍这个 requests+retry+beatifulsoup / loger 的库,原库不仅是连接/解析/搜索 失败的时候 makelog ,连成功的时候也 makelog
而且毕竟是调用网络 API,成功率容易起伏和受captcha干扰,蠢死了啊而且还花了一上午真不知道有啥意义,虽然我现在也能直接重写一遍了
GitHub
duangsuse-valid-projects/psearcher-r
Rewrite for Python baidu search client: iridesc/psearcher - duangsuse-valid-projects/psearcher-r
duangsuse::Echo
https://github.com/duangsuse-valid-projects/psearcher-r #Python 简直蠢死了…… 太不智能了…… 其实它的原仓库编程水平也就那个样,我居然还几乎是抄着重写了遍这个 requests+retry+beatifulsoup / loger 的库,原库不仅是连接/解析/搜索 失败的时候 makelog ,连成功的时候也 makelog 而且毕竟是调用网络 API,成功率容易起伏和受captcha干扰,蠢死了啊而且还花了一上午真不知道有啥意义,虽然我现在也能直接重写一遍了
原作者的安排从根本上就有问题,他连啥东西该放 class/instance/argument 都分不清楚,到处混乱数据作用域,我改完之后才发现
self.results 必须手动赋值为 [] 才可以正确进行下一次搜索,请求/解析/存储关系简直莫名其妙、把一个子程序的任务分到了整个类里还没注意到二次调用,但是也没找到其他的搜索库了……
duangsuse::Echo
湖北招生信息网.swf
那个东西还是手工校对吧…… 虽然要花一个小时时间
总是对写代码来完成一些毫无必要的小任务有种谜之执着…… 却没有弄过真正的应用,头疼。
只要完成自己的目的就好了吧,管它方法是不是纯自动化,看起来PDF复制的换行格式也没有定数,是不可能用解析器了
总是对写代码来完成一些毫无必要的小任务有种谜之执着…… 却没有弄过真正的应用,头疼。
只要完成自己的目的就好了吧,管它方法是不是纯自动化,看起来PDF复制的换行格式也没有定数,是不可能用解析器了
三天不见 Mivik 大佬就踏实拿 Kotlin 写了个C系语言的 LLVM 编译器 https://github.com/Mivik/kamet/blob/master/build.gradle.kts
而且之前也有用 Kotlin 写 NFA/DFA 的 lexer 算法+库
天哪,看起来我现在真的是太菜了……
大抵上要用到
而且之前也有用 Kotlin 写 NFA/DFA 的 lexer 算法+库
天哪,看起来我现在真的是太菜了……
大抵上要用到
com.byteco.llvm 的 scalar types/struct 以及 Block, SSA Value, function 和 type coercion(cast), type descriptor 转化什么的GitHub
Mivik/kamet
kamet - a simple programming language written in Kotlin. - Mivik/kamet
#OI https://file.xecades.xyz/Program/ 草,AC自动机、KMP搜索算法,这可都是相当知名的字符串处理算法
Forwarded from dnaugsuz
不仅OI强,计算机科学的其他方面也非常不差, xecades.xyz 这个前端图形学大佬 还实现了 3D 方块渲染和 game of life
都不知道他那个遮挡关系是怎么算的,据说还能用排序算…… 和 alpha composition 有关吗? 不过 JS 的 sort 函数设计的本来就难阅读,但牛人真的超级多……
都不知道他那个遮挡关系是怎么算的,据说还能用排序算…… 和 alpha composition 有关吗? 不过 JS 的 sort 函数设计的本来就难阅读,但牛人真的超级多……
#ce #Kotlin https://github.com/Mivik/kamet/ 的代码昨天下午重构了下,导览下大致结构:
依赖: com.bytedeco.llvm-platform, com.github.KiotLand:kiot-lexer
Value, Type, TypeDescriptor, TypeCastManager, GenericValue, ValueRef, Attributes, Context, JITEngine, Parser, Lexer
辅助: exceptions, internals
包ast 下的全都是 codegen 方法实现, ASTNode 都可以codegen(Context)和判是否returned ,代码最多的是 BinOpNode (数值转换提升的unifyOperandTypes,lift算法) 和 FunctionInvocationNode(findFunction,mangle等) 以及 IfNode (value if-else), WhileNode 。
Value在LLVM的 SSA(static single assignment) ValueRef 外面包了一层(value.llvm) , Type/TypeDescriptor(包装类型描述符) 则是指导对值/引用/指针处理翻译(translate)方法的类型,当然也有一个C式的类型系统(目前还在设计多态特性,大佬把它称为concept,就是trait啦)
GenericValue是对LLVM的包装,语言目前还没有闭包(词法作用域)所以在用Context.subContext嵌套查找符号引用
Attributes有Struct的packed和Fun的native,函数的声明称prototype、定义称function
Context包含LLVM的 IR Builder 引用 (context.builder)、 module和 function / insert point (.block) 以及通用辅助函数(如新函数或局部变量/父作用域链查找/verify)、嵌套符号表等
整个项目还在初始阶段,估计未来会有cli接口和输入程序错误列表的打算,不知道Mivik大佬打算做到什么程度…… 太厉害了吧我都不知道应该这么设计呢😟
这种项目怎么能拿星星数来判断它的价值呢?
依赖: com.bytedeco.llvm-platform, com.github.KiotLand:kiot-lexer
Value, Type, TypeDescriptor, TypeCastManager, GenericValue, ValueRef, Attributes, Context, JITEngine, Parser, Lexer
辅助: exceptions, internals
包ast 下的全都是 codegen 方法实现, ASTNode 都可以codegen(Context)和判是否returned ,代码最多的是 BinOpNode (数值转换提升的unifyOperandTypes,lift算法) 和 FunctionInvocationNode(findFunction,mangle等) 以及 IfNode (value if-else), WhileNode 。
Value在LLVM的 SSA(static single assignment) ValueRef 外面包了一层(value.llvm) , Type/TypeDescriptor(包装类型描述符) 则是指导对值/引用/指针处理翻译(translate)方法的类型,当然也有一个C式的类型系统(目前还在设计多态特性,大佬把它称为concept,就是trait啦)
GenericValue是对LLVM的包装,语言目前还没有闭包(词法作用域)所以在用Context.subContext嵌套查找符号引用
Attributes有Struct的packed和Fun的native,函数的声明称prototype、定义称function
Context包含LLVM的 IR Builder 引用 (context.builder)、 module和 function / insert point (.block) 以及通用辅助函数(如新函数或局部变量/父作用域链查找/verify)、嵌套符号表等
整个项目还在初始阶段,估计未来会有cli接口和输入程序错误列表的打算,不知道Mivik大佬打算做到什么程度…… 太厉害了吧我都不知道应该这么设计呢😟
这种项目怎么能拿星星数来判断它的价值呢?
GitHub
GitHub - Mivik/kamet: kamet - a simple programming language written in Kotlin.
kamet - a simple programming language written in Kotlin. - Mivik/kamet
最近 #zhihu ,我标榜的是「凡邀尽答」(当然不是穷尽里的尽,而是尽力里的尽…),那是因为害怕别人不敢找我答问题,可现在邀请的人简直是随便邀请啊……
计算机科学—程序设计语言也不一定得是 Matlab, R, 甚至 Verilog 都会啊…… 很多东西我只是听了个名字而已,倒像是在班门弄斧了。 真的是累死了
还有不少人邀请我答数学问题的,草死了
计算机科学—程序设计语言也不一定得是 Matlab, R, 甚至 Verilog 都会啊…… 很多东西我只是听了个名字而已,倒像是在班门弄斧了。 真的是累死了
还有不少人邀请我答数学问题的,草死了
🤔原来就知道解释器可以元循环(metacircular)、自动机非常精妙,也见过基于位图的编程语言Piet和基于四向箭头字符的2D控制流语言Befunge、最简语言brainfuck。见过牛人让30多种语言环形编译而能从1得到30出,也见过MC里用逻辑电路实现计算机,但还真是不知道就凭 game of life 也能弄出它自身,甚至可以当真弄出个有完备寄存器、数逻单元、二元十进制化表示的计算机来…… 不止是算法有趣,计算机和电子电路本身更有趣啊……
🤔学到了原来除了malloc/free和alloc,我们还应该用 mmap/munmap,因为那样可以创建 JIT 用的 code buffer
void* buf = mmap(NULL, n, PROT_RW | MMAP_PRIVATE | MMAP_ANONYMOUS, -1, 0)
memcpy(dst,src,nsrc)
mprotect(buf,n,MMAP_READ|MMAP_EXEC)
void* buf = mmap(NULL, n, PROT_RW | MMAP_PRIVATE | MMAP_ANONYMOUS, -1, 0)
memcpy(dst,src,nsrc)
mprotect(buf,n,MMAP_READ|MMAP_EXEC)
#CPP 用到了 DeviceInformation, AudioPlaybackConnection 和 watcher API , static 的局部变量设计还蛮精巧,最后的目的是 connection.Start(), open() check(status())
所以说 audio connection 是有三种状态: closed, ready, opened
所以说 audio connection 是有三种状态: closed, ready, opened