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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from duangsuse Throws
哇,膜拜五笔大佬
Forwarded from Rachel 碎碎念 (湘江一桥)
外接键盘 五笔 走起
duangsuse Throws
哇,膜拜五笔大佬
目前 duangsuse 用的 RIME 地球拼音,变调我都 TMD 不会用(指无法利用它进行更快速的输入)
duangsuse::Echo
目前 duangsuse 用的 RIME 地球拼音,变调我都 TMD 不会用(指无法利用它进行更快速的输入)
对了,说到决策树(和 OOP Strategy 设计模式无关... 和 OOP Delegates 无关... 欸,怎么又瞎说了)
我新设计(抽象,API 功能上的)的 BinaryStreamIO 支持使用泛型的 Trie 树(前缀树)进行,这也意味着 BinaryStreamIO 可以使用更快的方式(非线性复杂度 O(n))完成 startsWith 这种操作

但是呢,我又不知道我应该如何用 Kotlin 的类抽象我的树... 因为泛型的时候我总是怀疑需要真泛型(reified 泛型),其实后来我想想觉得根本不需要!

欸,决策树和前缀树有什么关系么?

只是都是树而已嘛。决策树更接近于机器学习和统计学领域、前缀树是纯纯的数据结构和算法。

欸,百度百科上的决策树怎么还扯到机器学习的监督学习和非监督了,好能扯啊....
#Telegram 我靠,现在支持投票了,我要建爆投票
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (YuutaW 鱼塔)
话说有需要 StartIsBack 的吗?鱼塔这里可以便宜倒卖(1 PC 版)
Final Results
29%
需要
71%
不需要
duangsuse::Echo
#Telegram 我靠,现在支持投票了,我要建爆投票
@vote 好可怜呦,好像 Qt Desktop 不支持?
永久封存 | Yuuta 台 | 😷 #Pray4Wuhan
话说有需要 StartIsBack 的吗?鱼塔这里可以便宜倒卖(1 PC 版)
绝望,每次啥东西『手机』移动端有特权?
#Mozilla #ES6 #JavaScript #frontend #backend 啊,的确,不过其实 ES6 很符合直觉嘛,一个 UI 线程管前台,后面 N 个 Worker 执行计算

worker 里面的全局对象叫 self,然后 Worker 也可以通过 Channel 和主线程通信,emmm
然后就不知道了,但是线程同步问题真的是好问题

Android 不也是差不多嘛... 最新的 API 不也没有(好像?)Promise、Sequence 什么的(不过有人用 Observer pattern,跑)
(不过有 AsyncTask,我不知道,嗯嗯)(和 CLR 的 Thread Pool 有点类似,当然 Kotlin 的 Coroutine 也使用这个来解决计算分配的问题)
我只见过用 @MainThread @WorkerThread
Forwarded from Rachel 碎碎念 (IFTTT)
看了看 Mozilla 的 Service Worker cookbook ,果然还是 Android 好(
— Rachel (ノД`)シクシク (@tangrui003) March 29, 2019
Rachel 碎碎念
看了看 Mozilla 的 Service Worker cookbook ,果然还是 Android 好( — Rachel (ノД`)シクシク (@tangrui003) March 29, 2019
唉,Android 就算是用 XML 也比 JavaEE 友好

AAPT 好像要处理很多种类的 resource,比如 id, string, spanned string, color, style, layout, dimen, drawable...
但其实比这更多... 以前和现在都有 NinePatch 的 BitMap
AAPT2 的项目结构好松散,因为是 C++ 的风格嘛...
#tech #CS 来科普一打有趣的信息技术相关知识: 🤗

1. Windows 里的 A: B: C: 盘符,为什么 C: 盘是『系统盘』?

首先我们考虑一下,如果你要做一个文件管理『基于分区』操作系统,你觉得第一个『盘(标识)符』应该分配给谁?
当然是安装操作系统的那块分区啊!因为首先有了操作系统,计算机才有好玩的人机界面嘛。 💻

那么,为什么我们不从 A: 盘符开始分配,还非得从 C: 开始呢?
因̶为̶ ̶W̶i̶n̶d̶o̶w̶s̶ ̶想̶向̶ ̶B̶C̶P̶L̶ ̶致̶敬̶(被打死)

好吧,其实最开始 Windows『还是』DOS 的时候(指 Windows 1.0,其实就编年史来看,这是真的,因为曾经有几个 Windows 版本有 DOS 模式)

A: B: 这些『盘符』都是 Drive letter assignment,他们代表者对一个物理卷的引用

A: 盘,最开始是软驱 0
B: 盘,原来是软驱 1

这些卷源于个人计算机早些时候『存储容量』还很小之时,那时所有的 PC (个人电脑)都有软驱,还没有啥光盘U 盘硬盘的,更别提固态硬盘

说到这里,其实电子工业自从上个世纪以来发展是很快的,相应的知识可以从《单片机与嵌入式系统600问》这本书里了解到

顺便科普一下,基于冯·诺依曼体系结构(现在流行的电子计算机基础结构,当然所谓的哈佛架构就芯片外部来看大抵也是可以看成冯·诺依曼架构的)的计算机通常有如下部件:
+ 输入/输出(I/O)
+ 控制器(类似于现在高级程序设计语言里的 if... switch... while... for... break, continue, return 等控制结构)
+ 运算器(进行诸如数值运算、关系运算、逻辑运算、二进制位运算等数值计算)
+ 存储器(存储用于处理的数据)

美籍匈牙利数学家冯·诺依曼于1946年提出存储程序原理

VonNeumann 架构的计算机使用二进制计数(因为后面的电子电路很好映射,数字信号高低电位),它是一种存储程序型架构(把程序当成数据),它的程序默认进行『顺序执行』,当然有流程控制指令可以随机执行指令,此外,这种架构也通过为存储器编址的方式访问(读/写/操作)存储器(比如,机器寄存器、内存、磁盘,有些处理器还会包含用户透明的内存区域高速缓存)。
duangsuse::Echo
#tech #CS 来科普一打有趣的信息技术相关知识: 🤗 1. Windows 里的 A: B: C: 盘符,为什么 C: 盘是『系统盘』? 首先我们考虑一下,如果你要做一个文件管理『基于分区』操作系统,你觉得第一个『盘(标识)符』应该分配给谁? 当然是安装操作系统的那块分区啊!因为首先有了操作系统,计算机才有好玩的人机界面嘛。 💻 那么,为什么我们不从 A: 盘符开始分配,还非得从 C: 开始呢? 因̶为̶ ̶W̶i̶n̶d̶o̶w̶s̶ ̶想̶向̶ ̶B̶C̶P̶L̶ ̶致̶敬̶(被打死)…
2. 为啥 Return 键要叫 Return [ref:wiki]

以前还没有计算机的时候,人们使用机械打字机打出工整的文档。

学过程序设计的朋友,可能知道这货代表的字符,在 ASCII 字符编码上还有两个几乎完全等价的别名,同时还在 Linux/Windows/MacOS 上面给用户造成了不少的困扰

— 这就是一个『大端/小端』问题,是用 ASCII 的 "\r"(MacOS) 还是 "\n"(Linux) 还是 "\r\n"(Windows) 表示『换行(NewLine)』?
(其实这里有个讨论等价的问题,Linux 和 Darwin 都是 OS Kernel,但 MacOS 和 Windows 就是整个操作系统了,这里请大家姑妄听之,发动自己的智慧尽量理解,不用太纠结)

但这条消息不是讲这个的(有意了解,看上面的 wiki 链接)

Originally, the term "carriage return" referred to a mechanism or lever on a typewriter.

为啥
Enter 键被称为回车键呢?回车的本意就是指打字机的『字车(carriage)』回到起始位置,走纸换行,开始打下一行字而已

有喷墨打印机的人会注意到它的工作方式:里面有个可以左右移动的喷墨装置,它高速移动并向纸上喷出墨水,同时打完一个单位(比如,一行)走纸换行,继续工作直到完成该页打印

那为什么不叫 RETURN 键叫 Enter 键呢?维基百科,你怎么看?

On computer keyboards, the enter key in most cases causes a command line, window form, or dialog box to operate its default function. This is typically to finish an "entry" and begin the desired process, and is usually an alternative to pressing an OK button.

因为我们经常输入一行命令,用
[Enter] 键执行它。对于已经不止能打字的计算机,这是一个更贴切的名字!
duangsuse::Echo
2. 为啥 Return 键要叫 Return [ref:wiki] 以前还没有计算机的时候,人们使用机械打字机打出工整的文档。 学过程序设计的朋友,可能知道这货代表的字符,在 ASCII 字符编码上还有两个几乎完全等价的别名,同时还在 Linux/Windows/MacOS 上面给用户造成了不少的困扰 — 这就是一个『大端/小端』问题,是用 ASCII 的 "\r"(MacOS) 还是 "\n"(Linux) 还是 "\r\n"(Windows) 表示『换行(NewLine)』? (其实这里有个讨论等价的问题,Linux…
3. 震惊!QWERTY 键盘布局开始的设计理念居然是为了放慢打字速度!

维基百科

The construction of the "Type Writer" had two flaws that made the product susceptible to jams. Firstly, characters were mounted on metal arms or type bars, which would clash and jam if neighbouring arms were pressed at the same time or in rapid succession.
Secondly, its printing point was located beneath the paper carriage, invisible to the operator, a so-called "up-stroke" design. Consequently, jams were especially serious, because the typist could only discover the mishap by raising the carriage to inspect what had been typed. The solution was to place commonly used letter-pairs (like "th" or "st") so that their type bars were not neighbouring, avoiding jams.[2]


这种布局方式,开始并不是为了打字速度考虑,而是为了使得当时蹩脚的打字机的按键更不容易卡住!

万恶的历史遗留之罪 emmm 😟
duangsuse::Echo
3. 震惊!QWERTY 键盘布局开始的设计理念居然是为了放慢打字速度! 看维基百科 The construction of the "Type Writer" had two flaws that made the product susceptible to jams. Firstly, characters were mounted on metal arms or type bars, which would clash and jam if neighbouring arms were pressed…
因为这条比较短,我再这里特别感谢一个:上面的问题全部是从 《趣味百科》这本杂志里选择的(我已经忘记原书是哪个系列的,找不到相应链接了,应该是某些类似儿童文学的杂志社写的)。
同时,也感谢无私奉献和记录知识的 Wikipedia 和百度词条编辑者们,是你们的努力使得历史变得对所有人来说触手可及! #life #wiki
duangsuse::Echo
3. 震惊!QWERTY 键盘布局开始的设计理念居然是为了放慢打字速度! 看维基百科 The construction of the "Type Writer" had two flaws that made the product susceptible to jams. Firstly, characters were mounted on metal arms or type bars, which would clash and jam if neighbouring arms were pressed…
4. 以前用『外国人的机器』打电报的时候,没有汉字字符,是怎么打出去的呢?

以前的确是不能打中文,后来我们有了自己的电报码,就是说又可以用中文交流信息了

世界上第一部中文电报电码书《电报书籍》出世,由威基谒绘制,于1871年5月出版并投入使用。此刻上海和香港之间的电报线路已于一个月前开通。威基谒的《电报书籍》成为之后代码修正和提升的主要灵感来源。在1871年由出使法国的蒲安臣使团的张德彝编制的另一本电报书——《电信新法》 ,这本书修正了威基谒的系统,使它在数据排列上遵照一种更严格的方式。但这两种电码本,字码数量太少,不能满足使用的需要,1881年时任上海电报局总办的郑观应,主持对电码本扩编,扩编至9000余字,取名《四码电报新编》,即后来屡经重订的《中国电报新编》。

在 Telegram 上谈 Telegram,是不是很接̶地̶气̶(被打死)
duangsuse::Echo
4. 以前用『外国人的机器』打电报的时候,没有汉字字符,是怎么打出去的呢? 以前的确是不能打中文,后来我们有了自己的电报码,就是说又可以用中文交流信息了 世界上第一部中文电报电码书《电报书籍》出世,由威基谒绘制,于1871年5月出版并投入使用。此刻上海和香港之间的电报线路已于一个月前开通。威基谒的《电报书籍》成为之后代码修正和提升的主要灵感来源。在1871年由出使法国的蒲安臣使团的张德彝编制的另一本电报书——《电信新法》 ,这本书修正了威基谒的系统,使它在数据排列上遵照一种更严格的方式。但这两种电码…
5. 手机和磁卡放在一起,会不会『消磁』?

== 对于磁卡来说,『消磁』是什么?
以磁性介质存储信息的物品,因为受到外界强磁场的干扰,其中依赖磁性所存储的信息被破坏、改变、消失的情况被称为消磁
需要注意的是,IC 卡使用 IC 芯片利用射频传递信息,IC 卡也会因为其他物理损害导致信息错误等无法读取的情况,但原因几乎都不是消磁。

== 手机旁边有强磁场吗?
考虑一下智能手机一般拥有的内部设施,比如话筒和听筒、扩音器、陀螺仪、加速度传感器等,在磁卡『能接触到』的范围内,磁性貌似都不能强到足以使磁卡消磁的情况

== 手机射频会产生强磁场吗?
具有远距离传输能力的高频电磁波被称为射频,手机使用的频段(拿 CDMA 举例)工作频率都在 800~900MHz 之内,而在 300MHz~1GHz 内的无线电频率,属于甚高频(VHF)和特高频(UHF)之内
在这个程度上,电磁波的磁场不大,不足以改变磁卡里的信息使得它『消磁』而无法使用
电磁波理论,详情知乎 #zhihu

当然对于爱学习的孩子来讲,无线电(硬件层面)和信号处理(基本是软件层面,如果是复杂一点的信号处理的话)是个不错的展开面(跑)
duangsuse::Echo
5. 手机和磁卡放在一起,会不会『消磁』? == 对于磁卡来说,『消磁』是什么? 以磁性介质存储信息的物品,因为受到外界强磁场的干扰,其中依赖磁性所存储的信息被破坏、改变、消失的情况被称为消磁 需要注意的是,IC 卡使用 IC 芯片利用射频传递信息,IC 卡也会因为其他物理损害导致信息错误等无法读取的情况,但原因几乎都不是消磁。 == 手机旁边有强磁场吗? 考虑一下智能手机一般拥有的内部设施,比如话筒和听筒、扩音器、陀螺仪、加速度传感器等,在磁卡『能接触到』的范围内,磁性貌似都不能强到足以使磁卡消磁的情况…
6. 世界上第一个网站是什么?

惊闻刘国梁荣当乒协主席,深感高兴。虽然我们未曾有过交集,但乒乓球运动员身穿红色战袍,跟孙悟空喜欢的颜色一样。今年下半年,中美合拍的电影西游记即将正式开机,我继续扮演美猴王孙悟空,我会用美猴王艺术形象努力创造一个正能量的形象,文体两开花,弘扬中华文化,希望大家能多多关注。

别别别别打我,我是友军(跑) 🤪

我们从 Internet 早期开始一个简单的编年史!

Internet 是什么呢?你不知道,我也不知道。但我只知 Telegram 很好玩,你也只知开发各种网络 IO 的应用很有趣。

我们为啥需要 Internet(这不明摆着吗?要不然现在你也不该在这个地方说闲话了)

以下信息 全全 部部 都是我从 Tsinghua(读『清华』,邮政式拼音 #zhihu )大学的 《Internet 原理与技术》(第一版,清华出版社第五次印刷)部分摘录下来的(全都摘自第一章的历史部分,想来那么数学的电学信号模型很大的,很数学根本无法科普嘛)
这书是赵锦蓉老师(我不知道他的学位 2333,但应该至少是博士)编著的,如果有问题,找他去,和我无关,吾只系搬运工(跑)


计算机网络是指通过各种通信设备将计算机连接起来,并在计算机间进行信息传输的网络。
按跨越的地理范围可分为局域网 LAN 和广域网 WAN

世界上最大也是最成功的网络,就是你我现在正在收益于的 Internet, 它由许多物理网络互联而构成,包含数亿个用户,并且现在这个数目还在爆炸式增长
它是由美国的 ARPANET 发展来的,ARPANET 是第一个计算机广域网
ARPANET(Advanced Research Projects Agency Network) 是 1969 年 12 月(67 年提议、72 年公开演示),正式投入运营的计算机网络,当时仅有 4 个节点,距今已有 50 余年

计算机网络是端系统(end system)
网络上的计算机被称为『主机』host(即使 C/S 模型里,分客户机和服务器)
网络上的主机和通信设备,都被称为网络的『节点』node
网络上的传输介质,比如,双绞线和光纤,被称为『链路』link

计算机网络也是括扑几何学上的『图』graph,这也意味着,它之上可以应用很多图处理算法,比如狄克斯特拉算法(1959 年的老东西了,原论文可以在这里预览,虽然开始是发表某期刊的)


目前最流行的局域网架构是以太网(Ethernet)

网络上一般有一些流行的,用于通信的设备,比如交换机、路由器、集线器、调制解调器

信息在网络上,一般使用包交换手段进行传输

很早的时候,网络上出现过很多『交流协议』protocol,第一个比较标准化的模型,是 OSI 七层模型(Open System Interconnection)
它是由 ISO 国际标准化组织在 20 世纪 70 年代末开发的

它分为 物理层、数据链路层、网络层、传输层、表示层、会话层、应用层 七层

物理层的数据单元 DPDU,一般被称为『帧』frame
数据链路层的包 NPDU,一般被称为『包』packet


OSI 过于复杂,没有被市场所接受,于是后来就有了成功的 TCP/IP (传输控制协议/网际协议)统一模型

它作为一个计算机网络通信标准,已经被 BSD、Linux、UNIX、Windows、Darwin 等现在流行的操作系统/操作系统内核实现

TCP/IP 代表 TCP 和 IP 这两个协议的集合,它于 1974 年被 Cerf 和 Kahn 提出,它于上个世纪 80-90 年代在互联上大行其道,其传输速率也不断攀升

它的顶层是应用层(综合了表示层、甚至会话层的部分功能),下面依次是传输层、网络层,以及物理层(可能是 Ethernet、PPP、X.25 等等)

网络层,他们使用 IP(网际协议),当然也有协作 ICMP
传输层,他们使用 TCP 和 UDP(用户数据报协议)
应用层,就有了我们所熟悉的 DNS(UDP)、HTTP、FTP、SMTP、Telnet 了

Internet,是多种物理网络的互联网

那么我们还得提到 IANA example.org ,点击试试看?
当然还得连带提到 ICANNIABIETFIESG 什么的
也可以顺带提到 IEEE,虽然和计算机网络没有太大关系(你是瞧不起我电子电器的)

呃,反正计算机网络这方面,电子工程、信号处理、信息学编码、密码学、二进制什么的知识需要层出不穷,历史也有一大堆,所以,讲太多了,不过也好,已经讲到 TCP 了

那么下面有请 WWW (World Wide Web)时代的小猪脚:URL、HTTP、HTML(不过这里没有 CSS,层叠样式表 和 JavaScript 了,讲远了)

当然到这一层,很多复杂性都看不见了,基本就是一 HTTP 请求/回复的事(基本就一 METHOD、一 URL 一 HEADERS 一 BODY),RPC 就 OK 了,到了 RESTFul+面向文档数据库(但是不是图数据库,因为图数据库反而暴露出了更多关系型的细节,为了优化查询性能工程师豁出去了hhhh) 时代,那更爽了,hhhh

首先 URL:URL 是全局唯一资源定位符,它的 IETF RFC 是 RFC1738, 当然后面还有更普适的 URI(Identifier)
RFC1738 是 1994 年的,而 1995 年,又是一个 Web 基础规范 — HTML 2.0 [RFC1866],诞生了!
URI 的 RFC 编号是 RFC3986.


那么我们终于可以解答第一个问题了,世界上第一个网站是什么?

WWW,World Wide Web 概念,它要传输『文档』,依赖一种文档格式,

这种文档格式,我们称它为 HTML(超文本标记语言)
而我们要能通过某种方式获取到这种文档,这种方式,我们称它为 HTTP(超文本传输协议)

而文档,只有一份,多没意思啊,很多时候我们会引用别人的文档 — 无论是创立新研究发现动辄几百页的论文、抑或书籍,甚至一篇不到 500 行的博文都要或多或少地引用点东西
于是我们想让 HTML 支持某种引用其他文档的方式,再泛化一下,引用其他任何资源的方式,首先,我们需要知道资源的位置
于是就有了 URL,和后来的 URI
然后我们得知道资源的格式,以便在客户端渲染(显示)它
于是就有了之后的 MIME (RFC 2045)

他们都在 IETF 上有自己的 RFC 文档:
<dl>
<dt>HTTP 1.1
<dd>2616
<dt>HTML 2.0
<dd>1866
<dt>URL
<dd>1738
<dt>URI
<dd>3986
</dl>

看看 HTML 2.0(RFC1866) — 一个网站的『必备』技术被标准化的时间,1995 年
看看此 RFC 的 section 9.3, 它提到了一个 URL


<!--    html-1.dtd

Document Type Definition for the HyperText Markup Language
with Level 1 Extensions (HTML Level 1 DTD).

$Id: html-1.dtd,v 1.2 1995/03/29 18:53:10 connolly Exp $

Author: Daniel W. Connolly <connolly@w3.org>
See Also: http://info.cern.ch/hypertext/WWW/MarkUp/MarkUp.html

-->

你就发现了世界上第一个基于 WWW 技术的『网站』,它现在还在运行!


惊闻 CERN RFC2616 创建了 HTTP/1.1,深感高兴。虽然我们未曾有过交集,但计算机网络枝蔓远大,跟用无数个孙悟空的筋斗云传输的一样。今年下半年,中美合拍...,我继续...,...努力创造一个正能量的形象,文体两开花...多多支持。