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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from duangsuse Throws
#sysadmin #life duangsuse 回来了!这次我更新了 Fedora 到 F29(Twenty Nine)
Forwarded from duangsuse Throws
#yearPassed 新年新系统 release version!(Fedora 28 :> Fedora 29)
Forwarded from duangsuse Throws
说个好笑的,Dnf(Dandified Yum,Fedora 28 的软件包管理器)离线更新的时候那个下载日志还是什么居然积累到了 18G,把我的 SSD 塞炸了... hhhhh #Haha
duangsuse::Echo
你们就不要说我没能力弄这些东西了,我当然不是幼稚到只会发广播的水平
This media is not supported in your browser
VIEW IN TELEGRAM
有能力又怎么样,没时间晚上手又冻住了不能动( #Haha #dev #Coolapk #reveng
Forwarded from duangsuse Throws
#archive #life #consumer 我买了一个 499 的 Wacom 数位板(指 18 年淘宝上最火的那个)(别喷我用淘宝,我爸的)

顺便又买了新墨盒... 又可以打印新 papper 们看了(指 HP 810(好吧,反正就是适配 HP DeskJet 1112 系列的
Forwarded from duangsuse Throws
#School 这周马上就要放寒假了(还有一个月) 🤔

duangsuse 的安排嘛... 其他的都好了,本来每周就是讲东西为主,然后本周买了别的东西,画了几张画,最后书什么的基本没看。嗯嗯。

这周就是讲点东西,发点照片,没了。

顺便说一下,推荐有打印机又看过书的大家可以没事带几张 papper (比如之前那个代数程序逻辑的 fold.pdf,我在 USTC 中科大学生的分享里淘到的,当然论文基本都是公开的你们可以随便找个大学比如 Illinois 的 CS 系看...)到例如公交车的地方看看,因为我觉得吧,公交车之类的地方可能思维都比较开放一些,学习起来比较有效果,可惜就是很慢就是了

至于我上面提到的 papper A tutorial on the universality and expressiveness of fold 可以在 这里(Nottingham in UK 大学)下载 #papper #FP #CS
个人觉得... 虽然有些不常见的词,但是有一定函数式编程和程序分析变换、形式化证明基础的人虽然可能看很久但收获不错。

见好就收。
#Machl #AI 非常希望去学习一些自然语言处理和机器学习相关的技术
至于面向 Compiler 技术向的解析技术,我也不甚了解,我没写过 ANTLR,不知道 LALR、LL、LR 解析算法是怎么执行的,不知道自底向上分析和自底向下推导的区别,不了解 PCRE Regex 匹配算法,不清楚 infix operator 们的优先级和结合性的问题,infixl infilr 傻傻分不清(几乎)

#parser #NLP 至于自然语言处理(NLP),我发现因为可能是考虑过一个比较有幼稚 niave 的梦想『Semic 机器人』的原因,我对结构化自然语言还有点直觉
但是我不是特别了解自然语言,也不了解音标记法(当然不是一个层面的东西)
我觉得这个可以考虑多去分析一些小说什么的来提升

至于机器学习,我看过冰封他学姐写的博文,虽然因为我完全没有 ANN(人工神经网络)和机器学习的基础(其实我有一点 KNN 回归量化评估分析的基础,《算法图解》看的)(数学上,我们最近高二也在上回归,不过和 KNN 那种简单的回归而不是函数回归没有特别大的关系)

理解非常的困难,我不知道啥是 Layer、不知道啥是导数、不知道啥是反向传播啥是 bootstrap 函数,但幸亏我有函数式的基础,所以 fun Scale(d: Weight) = { lf: LossFunction -> { w: Weight -> d * lf(w) } } 这种 FP 风格的 #Kotlin 代码我至少还不至于看不懂,给我尝试去理解这类玩意创造了一个最基本的条件 — 如果你连别人说啥都搞不懂,怎么 get 得到知识点呢?

(事实是,很多(尤其是对于一些比较 trivial 的业务范围,比如 #Android 开发和 #Web 前端来说)工业界的程序员压根不能理解 FP 范式的一些东西,或者使用的理解式变通太多了,以至于直觉不太好)

比如说这个 Haskell 里一些 function 扩展和 Monad 们的 Kotlin 版本,大家可以看看自己看不看得懂(挫败感?

fun <T : Any> T?.toMaybe() = this?.let(::Some) ?: None

尤其是最后那个 #FP CoinductiveList,我也是最近才理解,而这个 fibonacci Sequence 才是最骚的(也很能体现一个 CS lover 的水平 — 你究竟只能算是『工程师』还是能算是『爱好者』呢?):

fib = 1 : 2 : zipWith (+) fib (tail fib)

Prelude> take 10 fib
[1,2,3,5,8,13,21,34,55,89]

-- 数学定义
fib' 1 = 1
fib' 2 = 2
fib' n = fib (n - 1) + fib (n - 2)

(这里是有限构造的 List,不是 Coinductive 的,虽然 Haskell 是 Built-in Laziness 所以可以当成是 Coinductive 的,对应到 Kotlin 就是 Kotlin std 的 Sequence)

想必很多不是特别熟悉 Kotlin,而只是把 Kotlin 写成 Java (甚至 Java 7 而不是 8)的程序员要开始烧脑一战了(
Forwarded from METO 的涂鸦板
iOS 输入法更胜一筹
#CSharp 好像早就有了啊,Java 的 TryWithResource(Closeable)不就是和 CSharp 学的吗?

下面那个我觉得好像 class T 可以改成这样(个人看法,程序逻辑不等价

class CouterEnumeratorExample {
private int _counter = 0;
public CounterEnumeratorExample() {}
public int Current => _counter;
public bool moveNext() {
return ++_counter < 5;
}
public CouterEnumeratorExample GetEnumerator() => this;
}

(++_counter < 5) 的修改会让 enumerable 的 Current 值(也即 forEach 的 application 参数范围)范围在 0..4 (也即 (0, 5]) 区间内,_counter 的范围在 0..5 的区间内
至于 moveNext() 返回 false 之后 _current 我觉得就是没有必要检查其值的,反正 Enumerator 就是用来枚举 Travelse 的

有点类似于 Haskell 里的 Map(?其实是 Data.Travelsable 不过我因为比较入门所以太关心广义的 map 操作了

好像没有 instance Functor(其实是我误会了... (其实是我不够了解 Haskell...),但是有 mapM(onad) 可以用

-- class (Functor t, Foldable t) => Traversable t

data Tree a = Empty | Leaf a | Node (Tree a) a (Tree a)

instance Traversable Tree where
traverse f Empty = pure Empty
traverse f (Leaf x) = Leaf <$> f x
traverse f (Node l k r) = Node <$> traverse f l <*> f k <*> traverse f r

上面的代码 [origin] 实现了对二叉树(Binary Trees)的前序遍历(先访问左子节点、再是本节点、再是右子节点)(当然 Tree 还不是 Functor,没有实现 fmap 所以上面的代码不是拿来运行的,我也懒得补写)(其实是不会写,跑)

import Control.Applicative

(<*>) :: f (a -> b) -> f a -> f b

它是说这必须是顺序调用,不能瞎 Lazy(Sequential application)
这里 f 是一个 Functor

#Haskell #Learn 给一些还完全不会 Haskell 的人科普一下(虽然我也不会

data Tree a
是一个类型(Tree a),a 可以理解为类型参数(泛型)
Empty 
是一个 无参架构器 Empty
Lea
f a 是一个包含 a 类型数据的架构器 Leaf
Node (Tree a) a (Tree a) 是包含左右两个 Tree a 类型『子树』和本节点数据的架构器 Node

递归数据类型。看不懂的复习一下二叉树。OI 基础内容

举个例子,一个字符串二叉树,假设我们是在做一个计算器(因为这个例子很常见)

type String = List Char
type StringTree = Tree String

tree0 = Empty
tree1 = Node (Leaf "1") "+" (Leaf "1")
tree2 = Node (Node (Leaf "2") ">" Leaf "1") "<" (Node Leaf "1" "+" Leaf "1")
tree3 = Node Empty "||" Leaf "10"

我们可以(eval 求值函数就不写了,虽然写出来也不是多长)(看这里

class (Functor t, Foldable t) => Traversable t
traverse :: Applicative f => (a -> f b) -> t a -> f (t b)

printBinaryTree bt = traverse print

(好吧,我不熟悉 Haskell,我下次学...)
Forwarded from 羽毛的小白板
哦,8.0 可以这样
duangsuse::Echo
#CSharp 好像早就有了啊,Java 的 TryWithResource(Closeable)不就是和 CSharp 学的吗? 下面那个我觉得好像 class T 可以改成这样(个人看法,程序逻辑不等价 class CouterEnumeratorExample { private int _counter = 0; public CounterEnumeratorExample() {} public int Current => _counter; public bool moveNext()…
#recommended 所以说,Haskell 应该怎么写???

Haskell 不是拿来写 HelloWorld 这种简单到不要不要的程序的,也不是拿来用 Guard Pattern、List Comprehension [x * 2 | x <- l, isOdd x] 这种简直语法糖的东西的,这种事情应该留给 JavaScript 这种工业界常用的语言去做

Haskell、Scala、Scheme、CoffeeScript 之类的 FP 语言不是让人拿来写一点 (for-each ...) 的,实际上单单就 FP 编程,不包含一些更高更开阔的视角,至少 Y 组合子得会定义,并且简单的递归程序,比如 filterdropWhile 得会写

对于优秀的程序员来说 FP 既不应该是『可望可谈而不可及』的白象也不应该是非常表面的一些东西(比如单纯字面上的『本本主义者』什么纯函数啊、什么递归替代循环啊、什么惰性求值模式匹配啊),FP 爱好者们应该从程序们里面看到一种... 一种... 思考的快乐?这是很多『称职』的工程师们做不到的 — 对他们来说这是『头疼』

FP 不应该是什么头衔,不要拿它去做什么非常功利的事情,我想没有人想东施效颦或者当什么演员
真正的 FP 爱好者,他们从来都不会去谈自己喜欢 FP、FP 基本特色这类非常 trivial 的事情,技术水平都是非常自然的从自己的代码和讨论里流露出来的

一上 Haskell 至少是 fib = 1 : 2 : zipWith (tail fib) 这种级别,要不然还是 Java 之类简单的语言靠谱,或者混合 Kotlin 也行

当然不能说 FP 或者 OOP 都是拿来表示一切的,都有各自擅长的领域,比如 FP 要拿来写 Android 应用可能就有点高射炮打蚊子的意思了(可能根本用不到啥好玩的特性,写不出多好看的程序来,一大堆 do notation,函数式平时的感觉和定义式风格都没有了)
有的时候就是这样的,OOP 是表述式,FP 是定义式的风格,二者各自适合不同的程序,定义式有些情况下表述程序起来比较不方便


(偶尔想说一些这样的东西,但其实我不是特别了解所以把握不好,get 到我的意思就好了(请,emmmmm.....
#SQL 我跟你们讲啊,我之前连 SQL JOIN 都不知道是在求并集的意思(...

Python:
land = set(['rabbit', 'bear', 'duck', 'polebear'])
sky = set(['duck', 'swan'])
print(land & sky)


btw. 陆生 = Terrestrial
这不是个好例子,不过我很随意的.... 😕
Forwarded from 羽毛的小白板
我只是玩个砍口垒而已啊。还要这样查是哪个点没空确

#艦これ
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta ● #wontfix)
#酷安V9 可喜可贺
duangsuse::Echo
#recommended 所以说,Haskell 应该怎么写??? Haskell 不是拿来写 HelloWorld 这种简单到不要不要的程序的,也不是拿来用 Guard Pattern、List Comprehension [x * 2 | x <- l, isOdd x] 这种简直语法糖的东西的,这种事情应该留给 JavaScript 这种工业界常用的语言去做 Haskell、Scala、Scheme、CoffeeScript 之类的 FP 语言不是让人拿来写一点 (for-each ...) 的,实际上单单就…
望着正在折腾 BrainFuck 的大佬

我可以很自豪的说,虽然我很菜,但是我至少能理解能学会很多东西了,而且不只是很泛泛地去学。
我缺少的是时间的付出,而不是硬性的智商捉鸡。

就比如说低从 BF 到高到偏序理论、形式化验证程序逻辑、机器学习::人工神经网络,我都可以看到自己对他们的理解程度并且知道如何继续学下去
到工业界的那些东西,也是一样,实际上我的实际应用编程会被我抽象成使用某些接口,基元操作的组合程序,用户界面交互、网络和序列化 IO 也会被我抽象成 PL 里面那些东西,这样思考时会方便一些

我刻意地为 AOP 进行优化,让应用变得可扩展而对程序员有趣味

这样的设计是模块化的,可细分的,而且我也再没出现过写不出代码的情况,先完成小目标,再回来去考虑大目标需要什么,不会呆在那里原地不动去想该如何开始
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse Throws
#School 这周马上就要放寒假了(还有一个月) 🤔 duangsuse 的安排嘛... 其他的都好了,本来每周就是讲东西为主,然后本周买了别的东西,画了几张画,最后书什么的基本没看。嗯嗯。 这周就是讲点东西,发点照片,没了。 顺便说一下,推荐有打印机又看过书的大家可以没事带几张 papper (比如之前那个代数程序逻辑的 fold.pdf,我在 USTC 中科大学生的分享里淘到的,当然论文基本都是公开的你们可以随便找个大学比如 Illinois 的 CS 系看...)到例如公交车的地方看看,因为…
#emmm 这周我发的一些东西... 因为都是『超常发挥』(其实都是我不了解的东西,然后我暴力硬讲)

一些水平比较高的人可能可以注意到我讲得都有点民科感了(其实还不如民科///,比如那个『哥巴赫猜想证明』我就写不出来,这里无讽意味

👆 这里就体现出一个 trivialnontrivial 的区别了,本频道会告诉大家他的证明为什么是错误的,while 一些关注此事的其他频道都只是发个链接而已,根本懒得去看什么证明原文,更不会拿 XeTeX 特地排版个 PDF 出来给大家看了


对于能看出我这次讲得很迫真的人来说,说句抱歉,请多包涵... (
也非常感谢一些同行者的理解,虽然我们水平会相差很大,但我这个不算是乌龟的家伙正在努力的赶上前面的兔子,我不想特别去比较,但我要赶上前面的大家。

当时那样幼稚的话,要是还发给了 @drakeet 肯定早被长者们拉黑了,可是有些人虽然因为永远在学习所以不能特别的去关心其他 naive 一点的爱好者,却每次都愿意给予帮助,实在是发自真心的热爱 CS 啊


因为我其实对 FP 还有 Haskell 的一些东西都不是特别了解,然后又硬想讲
然后就出这种笑话,当然我其实不怕出笑话的( 🤔


我的水平其实一直不是特别高,目前算是打了个理解力基础,书什么的我还要再看第三遍

我还要尝试打字更快,然后我会再开一个频道专门放我对一些书知识的理解,到̶时̶候文̶体̶两̶开̶花̶,̶多̶多̶支̶持̶...

谢谢大家对我的关注。Thank Q Thank Q!(指 XM

今后也会努力做到曾经想的『工̸程̸理̸论̸两̸开̸花̸、信̸息̸生̸活̸两̸开̸花̸』同时 DSP、Net、信息编码、计算机图形学、人工智能这类边角科也得学好。
duangsuse::Echo pinned «#emmm 这周我发的一些东西... 因为都是『超常发挥』(其实都是我不了解的东西,然后我暴力硬讲) 一些水平比较高的人可能可以注意到我讲得都有点民科感了(其实还不如民科///,比如那个『哥巴赫猜想证明』我就写不出来,这里无讽意味 👆 这里就体现出一个 trivial 和 nontrivial 的区别了,本频道会告诉大家他的证明为什么是错误的,while 一些关注此事的其他频道都只是发个链接而已,根本懒得去看什么证明原文,更不会拿 XeTeX 特地排版个 PDF 出来给大家看了 对于能看出我这次讲…»