/tmp/duangsuse.sock
23 subscribers
303 photos
3 videos
92 files
337 links
从 duangsuse::Echo (@dsuse) 跟进出来的分支,将在作者恢复原帐号访问的时候合并删除。
Download Telegram
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Puer Chars)
机器性能太渣,做不了 NPM 开发。
/tmp/duangsuse.sock
JavaScript 不加点框架简直不能用 懒得加框架了 ES6 都很差劲呢,你都不能 list.map(keyTranslation::getValue) 壮哉我大 Kotlin
我才想起来,JavaScript 的 Object 语法 o[k] 是不可重载的,只能是访问 property 的语义,所以 set 调用没有替代的方法……
ES5 的 Date,Date() 是字符串、Date.parse(_) 是数字…… 只有 new Date 才行,我真是服了
Object.prototype.asIterator = function() {
return this[Symbol.iterator]();
}

这个东西一 define 可以让 LeanCloud SDK 爆炸…… #web
/tmp/duangsuse.sock
Object.prototype.asIterator = function() { return this[Symbol.iterator](); } 这个东西一 define 可以让 LeanCloud SDK 爆炸…… #web
模型:Record(place:Str, name:Str, status:Bool)
操作:updateOrInitRecord、destroyRecord、findAllRecordOfPlace、findRecord(place, name)
Forwarded from NF^2在播剧集频道
美國籃球明星科比在直升機意外中身亡

美國傳媒報道,美國NBA籃球明星科比在直升機意外中身亡,享年41歲。意外在美國星期日發生,報道表示,科比與另外至少三人,乘坐他的私人直升機,據報期間發生火警,之後墜毀,事件中無人生還。報道表示,科比的妻子並不在機上。
Forwarded from Deleted Account
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Deleted Account
默哀
Forwarded from Deleted Account
虽然我很难打篮球,而且跳跃能力和综合身体素质有严重问题
Forwarded from Deleted Account
但是科比的传奇是谁都知道的
而且他也很努力,『你见过凌晨四点的洛杉矶吗?每天洛杉矶早上四点仍然在黑暗中,我就起床行走在黑暗的洛杉矶街道上。』
世界上又少了个天才
Forwarded from Deleted Account
我帮你把 structure 整理一下吧,还是看你自己,我看番。

interface ChatObject {
constructor(user, msg, replyTo)
val sendAt: Time
val id: ObjectID
val user: UserId
val msg: String
val replyTo: ObjectID
val edited: EditedInfo
fun delete()
fun revise(newMsg: String) //edit
interface EditedInfo {
val edited: Boolean
val editedTime: Time
}
}

interface ChatObjectsCenter {
val db: Database
val replies: Replies get
interface Database { // CRUD
fun register(id: ObjectID, value: ChatObject) //Create,Update
fun query(id: ObjectID) //Read
fun unregister(id: ObjectID) //Delete
}
fun setReplyTo(target, m)
fun search(info: SearchFields)
interface SearchFields {
val user: UserId?
val msgPattern: Pattern?
}
} 

个人建议,反正我们只记录最近一次编辑,EditedInfo 整个可以用特殊值设计
它实际上是记录一个时间,但也可能没有(代表未编辑的情况),我们用 Optional<Time> 就可以表达了。
如果你要使用 Telegram 一样的设计,那势必要加上一个时间轴,就不是上面的那种形式了

另外 setReplyTo(target, m) 是『设m的 replyTo 为 target』的意思,这是一种比较不符合直觉的表达法,
读起来找感觉的时候,先把注意力放在 setReplyTo(target, ... 这一部分,再轻读后面的 m,你就熟悉了。

关于 SearchInfo,你也可以分 type 来建模,参考我的这条

如果你写不出来,可以先看看我老早之前的东西 Timelines

祝好,另外,许多人在写得出来任何东西之前都会经过看起来「即得易见平凡」写起来「混沌难解NP完全」的问题,解决困难的最好方法是面对更多困难,坚持下去、多读书,奥力给!
Forwarded from Deleted Account
如果你对自制语言感兴趣的话,可以看看我那三个
https://duangsuse-valid-projects.github.io/Share/Others/essay-kotlin-parser
https://github.com/duangsuse-valid-projects/jison/blob/master/src/commonMain/kotlin/org/jison/JsonParser.kt
https://github.com/duangsuse-valid-projects/Share/blob/master/%E5%AF%B9drakeet%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AF%9D/DefLang/DefLang.js

很快你就会发现自己的语言可能会有写错但因为它本身没被形式化,所以找不出来的问题比较多了。
缩排很好,不过写起来有点麻烦,解析器只需要加一个 layoutSpaceCountStack 就可以了,每层一个 layoutSpaceCount
不过恕我直言你现在想写应该有点困难,还是先写个 JSON 解析器练手吧。
Forwarded from Deleted Account
关键是,有些东西比较容易眼高手低
理论很重要,但实践指导理论往往更重要,因为理论经常有瑕疵,必须靠实践去打磨、靠测试去验证
所以说简单列一下数据结构就可以了,重要的还是写出来,写不出来就继续往底层抽象,抽象到对接 Browser、Node、Filesystem 和底层框架的 API 为止。
Forwarded from Deleted Account
两年前以来我写的 Specification 可以认为是比你多了,甚至我还弄出了 GeekSpec
可是我也没实际得到什么,所以说,Specification,够用就行,没必要太重视。就像有些 Java 程序员喜欢吹设计模式和 UML,其实吹到头了什么都没有,就像 Eclipse 一样,十年如一日。

这个应用,我花了六个小时才写出来,但设计的时候我就想了一个 data class Record(val place: String, val name: String, val status: Boolean)
Map<PlaceId, Map<StudentID, Boolean>>
至于 findIn(place, name), findAllIn(place), runSubmit(data) 上面的 CRUD 操作(虽然我不太喜欢这个名词)都是后来动手的时候想的,我只需总结一下用到的 tag 有 <input placeholder value> <textarea> <button onclick> <table> <thead> <tbody> <tr> <td> 就好了,

对应到 Android 上 input, textarea 就是 EditText、button 就是 Button,table 我不知道,反正知道了写出来就可以,实践会慢慢往上堆…… 不对,不能堆,要经常简化和归纳。