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
dnaugsuz
你说的有道理,异步和并发是隔离的概念,虽然多线程库会提供异步接口,也有异步接口是不需要其它(JVM/OS)线程的,尽管这个概念在工业界经常被混淆 毕竟谁会真的拿应用线程去请求系统异步资源,慢慢异步就等于在其它线程调度了,唉
刚才想了一会,觉得我们作为 编译原理/事件 的程序员,对并发的认知太薄弱了

认识不到线程是什么,一直觉得就是程序运行时始终存在、不会销毁的东西,它的任务完成后就直接变成 IDLE 状态等待事件,所以可以在异步信号来的时候能处理。
或者说一直就只有处理器I/O中断的那个认知,觉得就是不管什么程序序列(想了一下并行又没有顺序),肯定能抢占式执行而已。

想想也真是荒谬,如果线程在运行,它上面可能调度注册好的异步信号处理器?即便可以,那线程的独立性又有何意义?直接新建一个去执行不就好了?

所以说有事件队列啊,也不是说 event loop 是一个很难弄的东西,真的不甘心,我一直以为除了算法和绘制交互,自己已经了解的足够多(也不是没写过,两次。),其实还是什么都不懂。
Forwarded from dnaugsuz
噢,我明白了,其实是我一直不认为单线程用消息处理循环算是异步

我觉得异步是 IO 层面的(所以说浏览器JS也算多线程),这样的话肯定会有另外的程序流程(不管是不是内核里)在进行,共享了消息队列,不然它也不会莫名增长

这样的话异步就一定有其它线程了,除非IO中断打断了某线程后它还能恢复。

https://t.me/dsuse/15037

……想了想线程又名 LWP 好像的确是可以中断恢复( libc 的 signal(int, sighandler_t),这样的话单线程也能异步,感觉好绕。
Forwarded from Phonograph (Ralph 萌新喵)
终于明白「640K 内存能满足所有用户的需求」这个梗里面的「640K」是咋来的了。
在 DOS 环境下,0000:0000~9000:FFFF 是用户可用的内存空间,共640K.
Forwarded from Phonograph (Ralph 萌新喵)
用 8086 汇编打了个 ASCII 码表
挺好玩的
#C :

#include <stdio.h>
void main(int argc, char** argv) {
for (int i=0; i<0xFF; i++) printf("%c%d", i, i);
}

也可以用 fputc:

void put(int i) {
fputc(stdout, (char) i);
int acc=i; while (acc!=0) {
fputc(stdout, '0'+acc%0xF);
acc /= 0xF;
}
}

这是横向的,当然也可以纵向:

void putTable(int nmax_col) {
int n=0xFF/nmax_col, m=nmax_col;
char ascii[n][m];
for (int j=0; j<m; j++) for (int i=0, i<n, i++) {
ascii[i][j] = (char)j*m+i;
}
for (int i=0, i<n, i++) for (int j=0; j<m; j++) {
char v=ascii[i][j]; printf("%c%d", v,v);
}
}

#asm
.db fmt "%c%d\00"

_main:
push rbp
mov rbp, rsp
sub rsp, 4
mov [rbp-4], 0xFF

for:
mov rax, [rbp-4]
push rax
push rax
push fmt
call printf
dec rax
mov [rbp-4], rax
jnz for

for_out:
add rsp, 4
pop rbp
ret
你只能用 readline 什么的操纵虚拟终端的接口啦…… 感觉输换行不可移植
Forwarded from AlPlank (Al Pt)
https://t.me/XJBFW/5028
(Java里没有靠谱的清除屏幕的接口,只能执行clear/cls指令或靠回车物理清屏幕…)
Forwarded from 层叠 - The Cascading
上次是 GitHub [1],这次是 GitLab——有伊朗开发者表示自己近几天无法访问 GitLab,而最近连自己的 GitLab 账户都被封禁。由于政策原因,客服甚至无法暂时解除封禁以让他进行数据迁移。

不止 GitLab 受美国的禁运政策限制阻断了伊朗用户的访问,包括 Google Developers、Docker Hub、Golang、Kubernetes 等一系列开源企划的官方网站都阻断了来自伊朗的访问。

src: https://news.ycombinator.com/item?id=24886102

1. https://techcrunch.com/2019/07/29/github-ban-sanctioned-countries/
#Github 🤔
Forwarded from 层叠 - The Cascading
github/dmca#8142 被删除。
以及不知为何,有一小段时间 GitHub 将 github/dmca 识别成了 youtube-dl2/youtube-dl 的 fork。

https://web.archive.org/web/20201028040229/https://github.com/github/dmca
福建一公司注册“每小时”商标并欲起诉宝塔面板侵权
那楼主看起来是认真的,我人都傻了

https://www.bt.cn/bbs/thread-58328-1-1.html
#android #design #java #xml
今天早上有幸在图书馆看到了一本关于 3.x Android 开发的书

感到了深刻的混乱, Java, XML, MVC ,降级了的 MVC,根本想不出这到底是什么玩意,写出了一坨什么东西。

有些人用官方推荐的 XML ,有些人直接创建 View 对象,有些人为提升性能用 View XML 的静态编译器,而 R.java 还要被生成来共享 resource id,不知道到底是应该在放在应用代码还是资源框架里,这时候我突然感觉 aapt 就是个恶魔工具,想分开却又若即若离, ARSC 比 java.util.ResourceBundle 要可怕得多

不就是为了文本翻译,gettext,一个单页小应用 XML 写几十行,我真的无法理解,真受不了这种编程,正是因为它只支持 Android View 一个后端,才导致各种 translate editor, JavaFX preview render 的折腾浪费,可配置真是可怕

有的人把 Spinner 称为 ComboBox ,对我这个“外国人”而言啥是 Spin?同样一个东西 Android,DOM,Qt,WinForm 会给你不同的名字、英语化的名字,莫名其妙,还不如早些的UI库。

过去我以为 Adapter 就是给不同类型提供统一接口的东西,现在才知道它是 Model/View 的对接器,那么设计的这么“可配置”到底有何意义?应用的客制化部分难道不应该独立于功能和视图结构?
🤔 #web #frontend #css uilang.com 虽然挺菜(而且我觉得无意义,直接 EDSL 有何不可

但我突然感觉 CSS 很不错啊,居然只是它就能定义出开关、下拉、收缩栏的动画效果

看到我就想到了『东北语』和『文言文』,基本上都是一类前端应用,感觉是偏创意性的,没有真的结合其领域的哲学
哎呀, #Java Swing 的 #gui 接口用起来也确实是蛮复杂的

但 AWT 的抽象也都很正经(Dimision,Point,Rectangle,VolatileImage,Graphics,Component,Window都有),连续 javap 查了老半天终于发现 addMouseListener 这个接口,直接把监听 implements 在 class SliderPanel 类里了然后 init {add_(this)}

终于可以用了,我还以为是要覆盖 processMouseEvent 呢(习惯性写成 onMouse 方法emmm...)
This media is not supported in your browser
VIEW IN TELEGRAM
突然感觉自己有点 JVM 老咸鱼了的意思,遇到问题即便只是查 API ,不需要搜索自己就能找到答案,而我对 #Java 不常见语法 ( inst.new T() , new T() {{}}, static {}, synchronized 什么的) 和 static,final,interface 的用法也比较习惯了

开始在头脑里设计,然后再去对接底层 API 实现,没有 API 我也会尽量猜个八九不离十的出来,对编程语言的结构组织如数家珍、操纵更加自如

还是 Kotlin 好🤔 记得自己对区间的认知就是从用 Kotlin 开始的
真的很希望自己能对编程语言有新的理解,而且通过一些定义式框架的利用,写一些开发工具,能把这份理解用到实际各平台应用开发中去。

最近虽然安排了贼多小编程应用,也在筹划一个数学式的推导/变形工具,而且还打算设计一个基于 CPS 变换的协程实现,这样就能有 await/async 避免任何回调嵌套,不过略困难🤔

这三天我也设计了三个算法了(数学工具的合并连续区间、求值化简过程列表构造法,协程静态编译的一个)