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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from duangsuse::Echo
This media is not supported in your browser
VIEW IN TELEGRAM
当然,为了方便体验,我特意录了个视频(
This media is not supported in your browser
VIEW IN TELEGRAM
本来打算公布一些新坑的信息,可惜本本忘在学校里了 233
暂时啥都不说呢,下次月假说吧

只知道打算先解决 Gekyll
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Fly 的小频道 (Fly)
学不动了
羽毛的小白板
🤔 思考了一下,codegen 直接写文件不是个好做法,应该生成 token 流
现在想想,LLVM Cookbook 上 TOY 语言的解析器实现也是完全的词条流模式
Fly 的小频道
学不动了
#javascript ES6 新加入的 Proxy 特性呢,就是一个反射功能,可以实现对对象的非透明代理

你可以拦截对像的属性访问、方法调用什么的

let proxied = new Proxy(target_object, handler);

它可以拦截自定义方法和一些 JavaScript 元方法

也类似于 Java 的 Proxy(可以为接口动态生成代理类,只能代理方法调用 “inkvoking”),但更加灵活

在 Java 上动态编程,Proxy 是很有用的,因为诸如注册监听器回调什么的,动态的方式要么使用 GCLib、ASM 等汇编新 Java 类(有时还得适配 DalvikVM)
要么使用 Proxy

如果没有 Proxy,等于说就很难在 10k 以内实现能写 Android 应用的动态的 JVM 语言了,不好意思跑题了 🙈
duangsuse::Echo
本来打算公布一些新坑的信息,可惜本本忘在学校里了 233 暂时啥都不说呢,下次月假说吧 只知道打算先解决 Gekyll
新坑非常多,包括几个比较大的项目只可能在暑假等甚至毕业后完成

最值得 duangsuse 注意的是 duangsuse 打算写的一个汇编器,叫 kasm “Kool Assembler”

汇编器使用 kasmpp 作为预处理器,它支持宏,输入 .kasm 文件,输出 .kas 文件
kas2kass 则是 Scheme 表达式化预处理结果的程序,非常简单就是替换某些符号为空格什么的
kascm 是某个解释器,这样设计方便进行机器移植

kascm-$machine 是 kascm 可以解释的 KScheme 代码,汇编器本身

代码诸如这样

foo.kasm

;; used preprocessor rules ;;
%macro machine (mid)
.machine (mid)
%end

%macro import func (fid)
.extern (fid)
.type function (fid)
%end

%macro section (part)
.section .(part)
%end

%macro export func (fid) as (linkage)
.type function (fid)
.global (fid)
.linkage (fid), global, function, (linkage)
%end

%macro cdecl begin
push bp
mov sp, bp
%end

%macro cdecl end
pop bp
%end

;;;; 写不下.... 🙈

machine x86
import func puts

section text
export func main as _start

impl main:
cdecl fbegin
stack << text
puts ()
cdecl fend

section rodata
data text

text = string "Hello, world!"
Scheme 解释器需要一些诸如 hash 算法、hashmap 算法什么的,GC 打算不使用,或者说使用 Refcount(Rc)
语言使用 C

目前打算实现一种只包含代码的 Chunk 和一种包含代码和 Symbol 求值环境的 Closure
作用域只存在于 (do (arg1 arg2) ...) 之间

内部函数打算使用 CChunk 类型

KScheme 是弱类型的,可能不包含几个内定类型,当然也不学院派
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta)
Ncurses 是 Aptitude 的 “UI” 框架,也就是在 Command line 环境下的 “界面”,小编自认为效果很不错。
Java 上也有类似的库,Star 较多的是 https://github.com/mabe02/lanterna ,可以通过 Component、Window、Screen 实现 “GUI”,非常实用。

#Dev #干货
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta)
🌟 900 Star 了,Cheer!
Forwarded from dnaugsuz
小米推送模拟 🍻 900 star 同乐
Forwarded from 羽毛的小白板
???
Forwarded from 羽毛的小白板
需要窗口所在进程调用
羽毛的小白板
需要窗口所在进程调用
好耶!立刻使用 CreateRemoteThread()
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
好耶!立刻使用 CreateRemoteThread()
#include <stdafx.h>
#include <tlhelp32.h>

HANDLE RunRemoteThread(HANDLE hProcess, void (*fun)()) {
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE) fun;
if (pfnThreadRtn == NULL) return -1;
return CreateRemoteThread(hProcess, NULL, 0, pfnThreadRtn, NULL, 0, NULL);
}
期待下周的新坑列表呢,还有要先完成的 Gekyll
本来之前打算 Rust 试用 libllsm 的,考虑到对于 FreeType 之前的测试失败,抛弃了没有时间情况下这种幼稚的想法(