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 和之前的几次技术送代是什么水平,什么叫大佬,谁能算大佬
当然也可以批判我不看现实,但上面已经澄明过了。
这些对兴趣的专注和纯粹本应该是大学生在自己专业上该有的年轻的、百舸争流的样貌,如今却被年薪、房价和社会的物化价值观所左右。如果连我们国家顶尖大学的教育都摆脱不了物欲横流的浮躁,又如何完成国家民族集体人格的进一步塑造?在这种背景下,知乎上的这些编程语言爱好者们的所为有如夏日之凉风,让我意识到咱们国家始终有一群爱学习、爱思考、忠于兴趣的学生。他们的存在激励着我说出今天想说的话,希望让更少的学生被惋惜,让更多的学生受鼓舞。
愿你走出半生、归来仍是 CS lover。
然而终于是无法被掩护在象牙塔后面,到时候,可能不去考虑一些别的、现实的情况么... 羡慕那些好学生... 小时候就智力不错啊...
一找不到自己热爱事情的人是可怜人,不允许人们做自己热爱事情的国家是没有前途的国家。
如果想反驳,考虑一下 morisia 学姐他们(就是冰封他们)和现在部分(专门)去学 CS 的『大学生』们水平的差距
为什么这么说呢?
所谓的百度大佬是什么水平,上面 sleepwaling 几乎独自完成的 synthesizerV 和之前的几次技术送代是什么水平,什么叫大佬,谁能算大佬
当然也可以批判我不看现实,但上面已经澄明过了。
知乎专栏
浅谈国内高校编程语言教育
开篇在知乎上活跃着、潜水着很大一批程序员,有的出于对编程的热爱不断磨练提升自己的编程阶位,有的迫于自身的能力和工作的需要不得不强迫自己加班补课不能掉队,有的一直努力着试图在高薪和兴趣之间牵上一条能够…
duangsuse::Echo via @vote
看完列表以后觉得怎么样
anonymous poll
我好菜啊 – 1
👍👍👍👍👍👍👍 50%
both – 1
👍👍👍👍👍👍👍 50%
大佬好多
▫️ 0%
👥 2 people voted so far.
anonymous poll
我好菜啊 – 1
👍👍👍👍👍👍👍 50%
both – 1
👍👍👍👍👍👍👍 50%
大佬好多
▫️ 0%
👥 2 people voted so far.
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 梗...)
(无力证明了...)
(瞎玩 inm 梗...)
duangsuse::Echo
又给 GeekSpec 写了个小工具(脚本),代码质量依然非常的智障,而且我明显既不考虑设计模式也没多想复用也没有什么高级的东西... 目前 Spectrum (对不起这个酷酷的名字)的打算是作为一个测试工具,以后的重构版本可能支持自己内建 DSL 解析器和更灵活的 API 客户端 endpoints 自动绑定
现在这个小工具效果还不错,大家可以在见到它的第一个版本,大家有 IDEA / gradle 什么环境的可以下载下来玩玩,目前可以玩这些:
[DuangSUSE@duangsuse]~/文档/geekapk_spring% ./spectrum.rb
json spec 还是 geekspec 都是 SPEC 文件,只不过是表达方式稍有不同而已,本质没有区别。
后面跟 show 可以打印 API 列表、跟 debug 以调试 API 客户端,普通用户不需要调试(因为我测试好了)
./spectrum.rb spectrum_geekapk_v1b_api.json
然后可以进入 REPL
https://github.com/duangsuse/GeekApk/blob/finish_spectrum/spectrum.rb#L260
所有逻辑(命令)都可以在这里查到
我要讲的是 list, list_from, show, status, tree 这几个有用的命令
有四种格式可以选择,plain 只有 URL、return 包含返回值、args 侧重参数、all 全部都有,默认 plain,识别不出选项都是 all
pry -r./spectrum
[1] pry(main)> Spectrum::ClientShowcase
client.instance_api_methods
client.show
client.serverDetail
(当然还有稍微实用一点的玩法,比如 Mapper,具体看这里)
当然 Spectrum 的代码质量虽然垃圾,但也没有垃圾到一定程度,所以还是能用的(迫真)(神逻辑
所以以后,使用 Spectrum 生成其他弱类型/自动内存管理语言的客户端代码,其实也不是不可能,我个人觉得生成 Haskell 的结构然后用 Haskell 翻译也可以(跑(求不喷
Spectrum CLI 是基于 Pry 的,当然以后写 GeekApk CLI 的时候我会另外再写。
[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]上面写明的就不用说了,用过 Ruby 的 Rubyist(废话)肯定清楚,很方便
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)>
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之前没有考虑到 grep URL 的问题,算了,不如你们弄个 PR。
serverBoot() -> datetime
= GET /serverBoot
spectrum(0.3)> show /server/
serverVersion() -> plain
= GET /serverVersion
serverDescription() -> plain
= GET /serverDescription
serverBoot() -> datetime
= GET /serverBoot
spectrum(0.6)> statustree 可以列出 URL 列表(长得很像树,不过我这里它没被弄成树...)
[+] 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
有四种格式可以选择,plain 只有 URL、return 包含返回值、args 侧重参数、all 全部都有,默认 plain,识别不出选项都是 all
spectrum(0.7)> treeSpectrum 可以帮你从 spec 文件映射所有的参数,可选的还是必须的、是否是枚举、它的位置是在 body、query 还是 path... 都会帮你处理好,因为 Spectrum 是主打 CLI,参数不对它还会帮你指正。
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(0.1)> listUserSpectrum 也是设计为可以被用于真正的 Ruby GeekApk binding 库,虽然貌似 Faraday 这个 HTTP 客户端不支持异步,我们不是可以用 Fiber 么。实际上我打算之后 Ruby GeekApk CLI 就利用 Spectrum 写。
[!] 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
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_jsonclient = Spectrum::ClientShowcase.from_file
client.instance_api_methods
client.show
client.serverDetail
(当然还有稍微实用一点的玩法,比如 Mapper,具体看这里)
当然 Spectrum 的代码质量虽然垃圾,但也没有垃圾到一定程度,所以还是能用的(迫真)(神逻辑
所以以后,使用 Spectrum 生成其他弱类型/自动内存管理语言的客户端代码,其实也不是不可能,我个人觉得生成 Haskell 的结构然后用 Haskell 翻译也可以(跑(求不喷
Spectrum CLI 是基于 Pry 的,当然以后写 GeekApk CLI 的时候我会另外再写。
GitHub
duangsuse/GeekApk
GeekApk, the dying SpringBoot(a.k.a. Sping initializr) server for GeekApk(a.k.a 极安) (R - duangsuse/GeekApk
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 算了...
该灵活的不灵活(该抽提的东西 hard code、该做成独立模块的绑在一块胡乱引用、该弄设计模式我偏要用 block 还不带文档),不该灵活的乱灵活(疯狂胡乱返回各种类型的对象,然后疯狂 Kernel#is_a? 判断处理...),设计毫无章法和规范、不考虑性能不注意算法,想哪里写哪里,怎么感觉 dalao 怎么写,控制流胡乱搞、代码健壮性很不行、软件测试完全没有考虑、注释胡乱放废弃代码也只是胡乱注释掉,似乎没有基本规格...
大概这就是所谓的脚本小子吧。
真真还不如 statically checked 弄设计模式 trait bounds 算了...
duangsuse::Echo
人生苦短用 Python
Python 和 Ruby 这两种大佬语言都不需要给那些 PLT/FP 大佬们来用的
大佬们看得起 JavaScript 都懒得用 Ruby
大佬们看得起 JavaScript 都懒得用 Ruby
duangsuse::Echo
Python 和 Ruby 这两种大佬语言都不需要给那些 PLT/FP 大佬们来用的 大佬们看得起 JavaScript 都懒得用 Ruby
This media is not supported in your browser
VIEW IN TELEGRAM
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…
在 GeekApk 项目正式启用 Spectrum (是的... GeekApk 有自己的一套『Swagger Tools』,OpenAPI 3.0 也就是 GeekSpec 0.1、Swagger codegen 也就是 Spectrum 0.1.0)之前,我打算用 Times 先测试一下它是否真的能用(确信
(目前看来,几乎是无论做什么请求,GA SB 均会给出类似如下响应)
(是的,Spectrum 还不够成熟,我去重构...)
如果 Spctrum 的确是可用的,那我将使用它来编写 GeekApk 服务器的黑盒测试逻辑(而 JUnit 则仅负责链接测试服务和这些测试逻辑,Ruby 负责实际执行他们,可能需要一些时间,我不想多花时间了解接口所以这部分我宁愿多写点模板代码,而不是写插件什么的),目前 Spectrum 可能只能在 POSIX 平台上用(部分功能依赖 Node.JS),总之 GeekApk 现在可能不会太考虑 POSIX 外的平台移植问题。
(目前看来,几乎是无论做什么请求,GA SB 均会给出类似如下响应)
spectrum(0.2)> listUser 'created'(好吧,其实更多的是 OperationNotImplemented...)
=> {"timestamp"=>1549876643013,
"status"=>500,
"error"=>"Internal Server Error",
"message"=>"Optional int parameter 'sliceFrom' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.",
"path"=>"/user/all"}
(是的,Spectrum 还不够成熟,我去重构...)
如果 Spctrum 的确是可用的,那我将使用它来编写 GeekApk 服务器的黑盒测试逻辑(而 JUnit 则仅负责链接测试服务和这些测试逻辑,Ruby 负责实际执行他们,可能需要一些时间,我不想多花时间了解接口所以这部分我宁愿多写点模板代码,而不是写插件什么的),目前 Spectrum 可能只能在 POSIX 平台上用(部分功能依赖 Node.JS),总之 GeekApk 现在可能不会太考虑 POSIX 外的平台移植问题。
GitHub
geekapk-r/Times
Simple commentable news for geekapk(deprecated). Contribute to geekapk-r/Times development by creating an account on GitHub.
Forwarded from duangsuse Throws
这位先生也真是 🌚👍厉害厉害。
服,服,服。
可惜我没有某先生那么好的口才、没有大佬们那么犀利的语言,不然这种情况,这个大佬恐怕是要被公裁了(实际上已经是这样了)。
值不值:你骂得越多,他赚得越多
我的回答是不值,所以我选择不回骂他。
既然侯先生要拿这事说话,而且丝毫不顾及一点道德行为规范也不像机器人,我想请问我哪天在哪里问候过除了先生您之外您优秀的家人们了。
我非常诚恳地相信,您妈对她的儿子有这样优秀的语言和行为一定是无比的骄傲和自豪吧。为国争光在被国墙了的 Telegram 上举报不法翻墙。
也衷心祝愿先生您能在反违法 fq 的路上越走越远,离实际越走越远。
到时候已经肉身翻墙的人们可能会在墙外对着自己的孩子指着您,说千万别学这个人,和『不『法』』翻墙斗争一生,结果既没有做到什么有意义的事情,也没有被任何有关部门采纳自己的优秀情报,而且连墙是怎么工作的都不知道。
真的是两边走不通啊。
服,服,服。
可惜我没有某先生那么好的口才、没有大佬们那么犀利的语言,不然这种情况,这个大佬恐怕是要被公裁了(实际上已经是这样了)。
值不值:你骂得越多,他赚得越多
我的回答是不值,所以我选择不回骂他。
既然侯先生要拿这事说话,而且丝毫不顾及一点道德行为规范也不像机器人,我想请问我哪天在哪里问候过除了先生您之外您优秀的家人们了。
我非常诚恳地相信,您妈对她的儿子有这样优秀的语言和行为一定是无比的骄傲和自豪吧。为国争光在被国墙了的 Telegram 上举报不法翻墙。
也衷心祝愿先生您能在反违法 fq 的路上越走越远,离实际越走越远。
到时候已经肉身翻墙的人们可能会在墙外对着自己的孩子指着您,说千万别学这个人,和『不『法』』翻墙斗争一生,结果既没有做到什么有意义的事情,也没有被任何有关部门采纳自己的优秀情报,而且连墙是怎么工作的都不知道。
真的是两边走不通啊。
spectrum(0.6)> conn.url_prefix = 'http://0.0.0.0:234'
=> "http://0.0.0.0:234"
spectrum(0.7)> apiVersion
=> "0.1.0"
Spectrum 可以十分成功的完成基本接入...
不过,其实 Spectrum 的代码质量不怎么样(甚至对于目前的一些 Ruby 应用来说,要加个『很』字才行)
用打开类修改需要修改的方法,凑合着用吧... 🤔(把技术债务压给 Ruby 的元编程灵活性解决)
=> "http://0.0.0.0:234"
spectrum(0.7)> apiVersion
=> "0.1.0"
Spectrum 可以十分成功的完成基本接入...
不过,其实 Spectrum 的代码质量不怎么样(甚至对于目前的一些 Ruby 应用来说,要加个『很』字才行)
用打开类修改需要修改的方法,凑合着用吧... 🤔(把技术债务压给 Ruby 的元编程灵活性解决)