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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
羽毛的小白板
https://www.cnblogs.com/conmajia/p/no-overdesign-just-experiment.html
看完以后 duangsuse 觉得自己画图和统计、分析的能力还是太不好了...(其实是不常用...

里面的当然都 get 了,是比较 trivial 的知识


static randomCount = 0;
static int GetRandomNumber() {
randomCount++;
Guid guid = Guid.NewGuid();
int key1 = guid.GetHashCode();
int key2 = unchecked((int)DateTime.Now.Ticks);
int seed = unchecked(key1 * key2 * randomCount);
Random r = new Random(seed);
return r.Next(0, 100);
}

这段代码的作者甚至还想到了用unchecked略微优化一下代码的健壮性。
上手就来秀优化,全然不顾丫的压根儿从算法上就有毛病。
习惯成自然,
可以猜测他平时在业务工作中没少这么干。
然后是hashcode、time tick各种key一顿花里胡哨得到一个seed来初始化Random。可是这又有什么卵用呢?朋友?为了这个和 Case #1 几乎一样效果的输出结果花掉了 56倍(43秒)的计算时间
您觉得合适吗??
duangsuse::Echo
我这里一直有空 因为我两边都写啊,而且我也不一定需要 IDE 来编程
#recommended #blog https://www.cnblogs.com/conmajia/

这个作者也是相当有水平的作者,非常推荐。学的比较杂,一些数学和底层相关的东西也涉及,前端的也有,推荐阅读。
duangsuse::Echo
#recommended #Learn #AI #Machl #ANN https://www.cnblogs.com/conmajia/p/annt-feed-forward-fully-connected-neural-networks.html 不错的入门文章
阅读需要一些高等数学基础,不过我这里有数学书,我也有一些其他的相关资料,所以可以学习。

需要的知识主要还是微积分、统计分析和预测 还有基础数学表达方面的... 比方说这些公式不能看不懂。各种扭来扭去的希腊字符我是不害怕的(反正 lambda 演算的理论还有 PLT 那些东西也经常... 呃)

改天都会打印下来下去看。
#recommended #blog #books

这里推荐各种不同领域的博客、大佬和书们(
感谢大佬们的知识分享( <3

顺便:如果大家还知道一些大佬的话,欢迎告诉我,以后有时间可能会收集一个列表方便学习
因为是大佬,所以肯定不会在意什么排名的
对爱好者来说,在意的是技术,当然在这里就是能不能找到更多同好。

⭐️ 的表示是被̶钦̶定̶被推荐的内容,因为属于比较 nontrivial 的知识范畴了(对你们的平均素质来说,当然对知乎的某些大佬来说有些是没一点是干货)。迫̶真̶打̶星̶

== 博客和人们
https://www.cnblogs.com/conmajia/ ⭐️(计算机科学爱好者选看)
- CONMAJIA 的博客
- 软件工程、计算机科学

https://rednaxelafx.iteye.com/ ⭐️(JVM 开发者必看)
- RednaxelaFX 的博客
- 对编译理论及高级语言虚拟机技术十分关注
- 高级后端工程师
- 所谓高级高级在哪里我想不需要我解释了

http://ice1000.org/ ⭐️(同下不复)
- 千里冰封的博客
- 程序设计语言理论、形式化证明、Type level programming

https://zhuanlan.zhihu.com/ice1k ⭐️(适合从入门追到入土)
- 千里冰封的知乎专栏
- 同上不复

https://github.com/Sleepwalking/prometheus-spark ⭐️(质量很好,而且覆盖了其他没有的范畴)
- Sleepwalking 放自己写作的地方
- Speech Signal Processing、Artificial neural networks
- 包含一篇左右的电子电路

https://zhuanlan.zhihu.com/marisa ⭐️(内容质量报表,而且有几位不同领域的作者)
- 圆角骑士魔理沙的知乎专栏
- 程序设计语言理论、ANN、Type level programming

https://mnotes.me/ ⭐️(可以期待)
- Xor 的博客(虽然目前没有多少内容)
- Xor 的 GitHub 这里 https://github.com/losfair/
- 计算机网络、高性能计算(就是你们经常讨论那些什么分布式、高并发什么的,不过这个高级一点,实际上几乎上面提到的每位 content 作者都会写 SIMD 汇编... 当然远远不止这个内容)

https://blog.lilydjwg.me/
- 依云的博客
- Rust、后端、运维、计算机网络、计算机工程

http://quinnchen.me/
- Quinn Chen / 1992 / Code Monkey
- JVM、Android、软件工程

https://night-rain.site/
- Leeeeen / L5en 的博客
- C++、软件工程

https://ljason.cn
- LJason 的博客
- 逆向工程

https://fydui.github.io/
- 冰果冻的博客
- C++
- 包含一点 OI

https://www.ixh.me/
- Kirito 的博客
- 软件工程、Web 开发

https://mbinary.xyz/
- Heqin Zhu 的博客
- linux, common lisp, 区块链, 互联网, 深度学习

https://aoaoao.me/
- abslant@foxmail.com 的博客
- 和 METO 的博客内容知识系统比较相近
- Web 开发、信息处理

https://i-meto.com
- METO 的博客

https://liolok.github.io/ ⭐️(因为别的好像都没讲 CG 入门,当然我不是说这个是入门的,但有辅助内容)
- @liolok 的博客
- 计算机图形学、运维、软件工程

http://blog.tomtung.com/ ⭐️(好看)
- OI、编译原理

https://imkiva.com/
- @imKiva 的博客
- 编译原理

http://landerlyoung.github.io/
- Android、JNI、NodeJs

https://blog.allenchou.cc
- 有一大堆合作作者
- 运维、软件工程

https://liwei2.com/
- 舞恸的博客
- Web 开发、生活、运维

http://www.ruanyifeng.com/blog/ ⭐️(实用理论)
- 阮一峰的网络日志
- Web 开发、软件工程、计算机结构、计算机网络、编译原理

https://luan.ma/
- 乱码的博客
- 计算机网络、软件工程、Web 开发、Web 后端

https://zhuanlan.zhihu.com/lfkdsk ⭐️(看 SICP)
- lfkdsk 的知乎专栏
- SICP(Structure and Interpretation of Computer Programs)解析
- 包含电子电路内容
- SICP 有时候和 TaPL(Types and Programming Languages) 一起被提到
- 我都没有看过

https://allthememory.github.io/oao.moe/oao_default.html
- 『张千叶』羽毛的博客
- 运维、生活

https://lexuge.github.io/
- @lexuge 的博客
- 日常、软件工程、学习

https://liam.page/ ⭐️(学习 TeX)
- 丈夫、工程师,有一位我很爱同时也很爱我的妻子
- 生活、C++、运维、TeX 排版

https://www.csslayer.info/wordpress/
- 活人一个,CS男
- Qt、C++、KDE、Linux

http://cuihao.is-programmer.com/
- 运维、Linux

https://blog.hexchain.org/
- 运维

http://lextang.com/
- 运维

http://www.usrsb.in/ ⭐️(学洋文)
- Alex Beal 的博客
- lang: en
- 计算机科学、程序设计语言理论(终于)

https://typcn.com/legacy/blog/
- OI、CTF

https://www.byvoid.com/ ⭐️(工程实用)
- 生活、软件工程、OI、C++

http://yinwang.org/ ⭐️(去读点故事比较好,这个目前比较偏向入门级别)
- 王垠的博客
- 是的,是王垠的博客
- 这个博客当然不需要你们说,我自己知道加
- 计算机科学、程序设计语言理论

https://program-think-mirror.github.io/ ⭐️(计算机网络)
- 编程随想匿名博客
- 是的,那枪毙我吧
- 偏向工程
- 计算机网络

https://github.com/tuxzz
- TuxZZ 的 GitHub
- 初学 Speech Signal Processing

https://blog.oyanglul.us/
- Jichao Ouyang's Blog
- 计算机科学、程序设计语言理论、JavaScript

https://justjavac.com/
- Justjavac(迷渡)的博客
- JavaScript、Web 开发、程序设计语言

https://maxlv.net/
- madeye 的博客
- Senior GPU Architect at NVIDIA
- 高性能计算、GPGPU

https://www.barretlee.com/entry/
- 小胡子哥 » 博客
- JavaScript、运维、Linux

http://frozengene.github.io/
- 知乎 @蓝色 的博客
- LLVM 编译器工程师
- 编译原理
- 我靠,第一次见到这么帅的知乎头像

http://www.cppblog.com/vczh ⭐️(计算机图形学)
- vczh (轮子哥)的老博客
- 非常 Excited 🐸 的知乎 https://www.zhihu.com/people/excited-vczh/
- 计算机图形学、C++、编译原理

https://zhuanlan.zhihu.com/symbrev
- 源伞科技

== 书们

https://github.com/jcouyang/grokking-monad
- Grokking Monad(范畴论完全装逼手册)
- 函数式编程基础
- 不会 Haskell 的 Scala 程序员写不出好的 JavaScript
- 所有不了解范畴论的 FP 爱好者都是伪爱好者(my interpretion)(当然这个是废话)
- 喜欢的话可以氪金 6 块购买电子书,不然也可以免费阅读全文

== 额外的文档和代码们

https://github.com/ice1000/Ruiko.kt/blob/master/src/haskell/monads.kt
- Ruiko.kt



仅仅是想自己收集点东西学习一下,希望大佬们能够理解(
顺便,如果确定自己没有比较 dalao 的能力,最好是不要尝试直接与大佬们技术接触交流的(实际上是因为很多情况没有意义... 差的太多了)
*尤其不能盲目批判大佬,尤其是在一些非原则性(算法和分析等等)问题上直接作出片面主观臆断的评价,不然可能会被喷。
duangsuse::Echo pinned «#recommended #blog #books 这里推荐各种不同领域的博客、大佬和书们( 感谢大佬们的知识分享( <3 顺便:如果大家还知道一些大佬的话,欢迎告诉我,以后有时间可能会收集一个列表方便学习 因为是大佬,所以肯定不会在意什么排名的 对爱好者来说,在意的是技术,当然在这里就是能不能找到更多同好。 带 ⭐️ 的表示是被̶钦̶定̶被推荐的内容,因为属于比较 nontrivial 的知识范畴了(对你们的平均素质来说,当然对知乎的某些大佬来说有些是没一点是干货)。迫̶真̶打̶星̶ == 博客和人们…»
Forwarded from duangsuse Throws
#recommended #Zhihu #statement 推荐一个类似的观点:https://zhuanlan.zhihu.com/p/43914842

这些对兴趣的专注和纯粹本应该是大学生在自己专业上该有的年轻的、百舸争流的样貌,如今却被年薪、房价和社会的物化价值观所左右。如果连我们国家顶尖大学的教育都摆脱不了物欲横流的浮躁,又如何完成国家民族集体人格的进一步塑造?在这种背景下,知乎上的这些编程语言爱好者们的所为有如夏日之凉风,让我意识到咱们国家始终有一群爱学习、爱思考、忠于兴趣的学生。他们的存在激励着我说出今天想说的话,希望让更少的学生被惋惜,让更多的学生受鼓舞。


愿你走出半生、归来仍是 CS lover。
然而终于是无法被掩护在象牙塔后面,到时候,可能不去考虑一些别的、现实的情况么... 羡慕那些好学生... 小时候就智力不错啊...

一找不到自己热爱事情的人是可怜人,不允许人们做自己热爱事情的国家是没有前途的国家。

如果想反驳,考虑一下 morisia 学姐他们(就是冰封他们)和现在部分(专门)去学 CS 的『大学生』们水平的差距
为什么这么说呢?


所谓的百度大佬是什么水平,上面 sleepwaling 几乎独自完成的 synthesizerV 和之前的几次技术送代是什么水平,什么叫大佬,谁能算大佬

当然也可以批判我不看现实,但上面已经澄明过了。
看完列表以后觉得怎么样
anonymous poll

我好菜啊 – 1
👍👍👍👍👍👍👍 50%

both – 1
👍👍👍👍👍👍👍 50%

大佬好多
▫️ 0%

👥 2 people voted so far.
又给 GeekSpec 写了个小工具(脚本),代码质量依然非常的智障,而且我明显既不考虑设计模式也没多想复用也没有什么高级的东西... 目前 Spectrum (对不起这个酷酷的名字)的打算是作为一个测试工具,以后的重构版本可能支持自己内建 DSL 解析器和更灵活的 API 客户端 endpoints 自动绑定
duangsuse::Echo
又给 GeekSpec 写了个小工具(脚本),代码质量依然非常的智障,而且我明显既不考虑设计模式也没多想复用也没有什么高级的东西... 目前 Spectrum (对不起这个酷酷的名字)的打算是作为一个测试工具,以后的重构版本可能支持自己内建 DSL 解析器和更灵活的 API 客户端 endpoints 自动绑定
./spectrum.rb spectrum_geekapk_v1b_api.json
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
Spectrum v0.1.0: usage: ./spectrum.rb <spec json file> [command]{show,licence,help,json}
[1] pry(#<ClientShowcase>)>
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
#FP 现在还没弄懂 Monad 是什么的 duangsuse 感到很难受。但至少稍微了解了一点 Functor,emmm... 🤔 (哭哭)
如果一个月以后还是这么菜的话,那每天晚上早点睡算了,至少我还可以靠脸吃饭(喷)就不用熬夜写代码了(迫 真 自 演)

(无力证明了...)

(瞎玩 inm 梗...)
duangsuse::Echo
又给 GeekSpec 写了个小工具(脚本),代码质量依然非常的智障,而且我明显既不考虑设计模式也没多想复用也没有什么高级的东西... 目前 Spectrum (对不起这个酷酷的名字)的打算是作为一个测试工具,以后的重构版本可能支持自己内建 DSL 解析器和更灵活的 API 客户端 endpoints 自动绑定
现在这个小工具效果还不错,大家可以在见到它的第一个版本,大家有 IDEA / gradle 什么环境的可以下载下来玩玩,目前可以玩这些:

[DuangSUSE@duangsuse]~/文档/geekapk_spring% ./spectrum.rb
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
Spectrum v0.1.0: usage: ./spectrum.rb <spec json file> [command]{show,licence,help,json,debug}

使用 ./spectrum.rb <spec file> json 来自动解析生成 JSON 文件,多次操作可以节省资源
json spec 还是 geekspec 都是 SPEC 文件,只不过是表达方式稍有不同而已,本质没有区别。

后面跟 show 可以打印 API 列表、跟 debug 以调试 API 客户端,普通用户不需要调试(因为我测试好了)

./spectrum.rb spectrum_geekapk_v1b_api.json

然后可以进入 REPL

ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
Spectrum v0.1.0: usage: ./spectrum.rb <spec json file> [command]{show,licence,help,json,debug}
[i] Faraday connection: conn, Apis: apis, Auth configuration: auth
[+] run show [:apiName|apiNameRegex|apiLocationRegex] to see api documentation, run list to view api list, have fun!
spectrum(0.1)>

上面写明的就不用说了,用过 Ruby 的 Rubyist(废话)肯定清楚,很方便

https://github.com/duangsuse/GeekApk/blob/finish_spectrum/spectrum.rb#L260
所有逻辑(命令)都可以在这里查到

我要讲的是 list, list_from, show, status, tree 这几个有用的命令

spectrum(0.1)> list 3
serverVersion
serverDescription
serverBoot

spectrum(0.5)> list_from :unStar
unStar(aid-path:AppId) -> [$oldCount:number, $newCount:number]
= DELETE /star/{aid}
stargazers(aid-path:AppId) -> array:App
= GET /star/{aid}
stars(uid-path:UserId) -> array:App
= GET /star/user/{uid}
=> 64

不带列出全部名称

spectrum(0.2)> show :serverBoot
serverBoot() -> datetime
= GET /serverBoot

spectrum(0.3)> show /server/
serverVersion() -> plain
= GET /serverVersion

serverDescription() -> plain
= GET /serverDescription

serverBoot() -> datetime
= GET /serverBoot

之前没有考虑到 grep URL 的问题,算了,不如你们弄个 PR。

spectrum(0.6)> status
[+] Total 67 APIs, method count: GET: 37; POST: 8; PUT: 11; DELETE: 11
receiving ["String", "UserId", "Int", "CategoryId", "AppId", "CommentId", "UserSize", "TimelineSize", "NotificationSize", "AppSize", "CommentSize"]
and returning 67 types (["string", "GeekUser", "Category", "App", "AppUpdate", "Timeline", "Notification", "number", "Comment"])
[+] 55 path params, 3 body params


tree 可以列出 URL 列表(长得很像树,不过我这里它没被弄成树...)
有四种格式可以选择,plain 只有 URL、return 包含返回值、args 侧重参数、all 全部都有,默认 plain,识别不出选项都是 all

spectrum(0.7)> tree
GET /serverVersion
GET /serverDescription

spectrum(0.8)> tree :return
GET /serverVersion
= plain
GET /serverDescription
= plain

spectrum(0.9)> tree :args
...
POST /admin/makeUser
* username:String
PUT /admin/resetMetaHash/{uid}
* uid-path:UserId
* shash:String?

spectrum(0.10)> tree :all
...
GET /serverDetail ()
= object:string
POST /admin/makeUser (username:String)
= object:GeekUser
PUT /admin/resetMetaHash/{uid} (uid-path:UserId;shash:String?)
= plain

Spectrum 可以帮你从 spec 文件映射所有的参数,可选的还是必须的、是否是枚举、它的位置是在 body、query 还是 path... 都会帮你处理好,因为 Spectrum 是主打 CLI,参数不对它还会帮你指正。
spectrum(0.1)> listUser
[!] Arity mismatch: expected 3 (not optional 0), got 0
[*] NOTE: fill first optional argument to get started
listUser(sort:String?{created, followers}, sliceFrom:UserSize?, sliceTo:UserSize?) -> array:GeekUser
= GET user/all

Spectrum 也是设计为可以被用于真正的 Ruby GeekApk binding 库,虽然貌似 Faraday 这个 HTTP 客户端不支持异步,我们不是可以用 Fiber 么。实际上我打算之后 Ruby GeekApk CLI 就利用 Spectrum 写。

pry -r./spectrum
[1] pry(main)> Spectrum::ClientShowcase
=> Spectrum::ClientShowcase
[2] pry(main)> Spectrum::ClientShowcase.from_
Spectrum::ClientShowcase.from_code  Spectrum::ClientShowcase.from_file  Spectrum::ClientShowcase.from_json
client = Spectrum::ClientShowcase.from_file
client.instance_api_methods
client.show
client.serverDetail
(当然还有稍微实用一点的玩法,比如 Mapper,具体看这里

当然 Spectrum 的代码质量虽然垃圾,但也没有垃圾到一定程度,所以还是能用的(迫真)(神逻辑
所以以后,使用 Spectrum 生成其他弱类型/自动内存管理语言的客户端代码,其实也不是不可能,我个人觉得生成 Haskell 的结构然后用 Haskell 翻译也可以(跑(求不喷

Spectrum CLI 是基于 Pry 的,当然以后写 GeekApk CLI 的时候我会另外再写。
duangsuse::Echo
现在这个小工具效果还不错,大家可以在见到它的第一个版本,大家有 IDEA / gradle 什么环境的可以下载下来玩玩,目前可以玩这些: [DuangSUSE@duangsuse]~/文档/geekapk_spring% ./spectrum.rb ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux] Spectrum v0.1.0: usage: ./spectrum.rb <spec json file> [command]{show,licence…
公正评价:目前 duangsuse 写很多弱类型语言的时候,尤其像 #Ruby 这种非常灵活(无论语法还是 inspect)的语言

该灵活的不灵活(该抽提的东西 hard code、该做成独立模块的绑在一块胡乱引用、该弄设计模式我偏要用 block 还不带文档),不该灵活的乱灵活(疯狂胡乱返回各种类型的对象,然后疯狂 Kernel#is_a? 判断处理...),设计毫无章法和规范、不考虑性能不注意算法,想哪里写哪里,怎么感觉 dalao 怎么写,控制流胡乱搞、代码健壮性很不行、软件测试完全没有考虑、注释胡乱放废弃代码也只是胡乱注释掉,似乎没有基本规格...

大概这就是所谓的脚本小子吧。

真真还不如 statically checked 弄设计模式 trait bounds 算了...
duangsuse::Echo
人生苦短用 Python
Python 和 Ruby 这两种大佬语言都不需要给那些 PLT/FP 大佬们来用的
大佬们看得起 JavaScript 都懒得用 Ruby