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
Forwarded from duangsuse Throws
对 drakeet 的一些话 by duangsuse 现在已经可以在 Telegraph 上访问... 懒得统计字数行数链接数了,虽然写的时候也快写完了,但是因为字数有限制,还是不得不裁了很多本来打算加上的内容。
duangsuse Throws
对 drakeet 的一些话 by duangsuse 现在已经可以在 Telegraph 上访问... 懒得统计字数行数链接数了,虽然写的时候也快写完了,但是因为字数有限制,还是不得不裁了很多本来打算加上的内容。
这篇文章我写了大概一天多的时间,开始的排版比较随便,现在的格式是一般的论文格式了,你能看到 Abstract、Footnote 和 References,虽然我还不知道真正的论文格式是啥子...
羽毛的小白板
https://www.zhihu.com/question/329153374/answer/716655357
#db #fix 才看到自己曾经的消息,这里其实 ORM 的问题,真的不是问题...
#Java JavaEE 的 JPA javax.persistence 规范提供了解决这种问题的思路,我以为只能那样解决是我太菜,仅此而已。

图数据库解决的问题,是提供非规范化视图,用以进行快速的 bfs, dfs 图搜索操作,这样就可以找到诸如『你和某人共同的 follower 是哪些人』一类问题的答案,而无须(在语义上)存储所有临时结果,不是 ORM 所谓的 N:N 问题,它不存在,ORM 支持 RDBMS 的关系模型。

上面的例子里,这根本不是一个问题,这种 N:N 多—多 (而非 1:N / N:1)关系问题对 ORM,很简单。

@MappedSuperclass
public abstract class BaseEntity implements Identifible, Serializable, Timestampable {}

因为首先可以定义一个复用的公共『ORM 对象』接口规范,那么 Identifible 的接口定义如下

/* 32-bit Integeral identifible object */
protected interface Identifible { int getIdentity(); }

Timestampable
则是所有可以拿到 creationDate 和 updatedDate 的对象
protected interface Timestampable { Date getCreated(); Date getUpdated(); }

就可以开始定义基本的 Domain Object 们,他们装数据

@Entity @Table(name = "users")
class User extends BaseEntity {
@GeneratedValue(stategy = GenerationType.Identity)
private @Id int id;
@NotNull private final String name;
@NotNull private String nick;

@ManyToMany(mappedBy = "stargazer", cascade = CascadeType.ALL)
private @Column(name = "stared") Set<App> publicApplicationStars;
}

@Entity @Table(name = "apps")
class App extends BaseEntity {
@GeneratedValue(stategy = GenerationType.Identity)
private @Id int id;
@NotNull private final String package;
@NotNull private String name;

@ManyToMany(mappedBy = "stared", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval=true)
private @Column(name = "stargazer") Set<User> stargazers;
}

另外,王垠说的『等价 RPC』我也想到了一种可能。
他假设的就是,数据库的『数据结构部分』就放在某台计算机上;
“查询的本质,就是在那台计算机上执行一个程序,这个程序负责把结果搞出来,然后响应对应的 RPC 请求。”
所以说是 RPC。

不过是不是真的这样,上面说过了我不想重复一遍。

— References
Baeldung::Hibernate Many to Many Annotation Tutorial
#tasks 明天希望能完成的任务:

+ 把这篇文章转移到 GitHub 上,这需要一个使用 Telegraph API 的 HTML->Markdown 翻译器
+ 实现不能完成的任务,用 merge 和客观序的方法解决逻辑相悖的问题
+ 写之前考虑好了的 Java 解析组合子框架


— 再一天
+ 写一篇关于链式(计算机科学的图)音频信号处理结构的文章
duangsuse Throws
对 drakeet 的一些话 by duangsuse 现在已经可以在 Telegraph 上访问... 懒得统计字数行数链接数了,虽然写的时候也快写完了,但是因为字数有限制,还是不得不裁了很多本来打算加上的内容。
修订文章的过程中,发现了一个有趣的事情

因为我有刻意去斟酌文字,希望尽可能让标点符号用的更符合直觉。

对 drakeet 的一些话(内联)

有一段话:

“黑历史”是曾经不完美的见证,但它对自己而言也不是没有用处的,因为一个优秀的人时常要复习一下自己的黑历史、记住自己曾经的误解、不确定,来为自己的未来提供一个完整的排除名单。错误不再重复第二遍。

我给它的第一段修改成了

“黑历史”是曾经不完美的见证,但它对自己而言也不是没有用处的

我做了一件事情:
+ “独立”了一个句子,把『因为』连词去掉
+ 然后把逗号改成了句号

因为我之前一直思量着有一个基于 NLP 的软件内被设计出来,所以也一直有在想它功能的一些事情,其中就应该要包含类似语法检查的功能,但是语法自动重构可不可以呢?

这类句子应该怎么泛化抽提出其模式,来用于模式匹配和重构呢? #NLP
很复杂... 我语文水平不好的,这个例子本身没有那么 trivial
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
😂 Sticker
我也是一个很热爱生活的人,现在我要立刻继续我的付出了,睡觉。
Forwarded from duangsuse Throws
#life #tech 修整了两三天。暑假,duangsuse 可能回老家过... 🤔

修好了一台旧笔记本电脑,顺便被换了个硬盘,换掉了坏的风扇... 之前因为养尊处优就一直没有想修,没有拿电表查也没有示波器这种高端仪器,怀疑只是电源按钮坏了...

暑假也没啥安排,有通网,就是做一点之前计划了没完成的事情吧。

眼见着自己对编译原理和杂七杂八应用设计的理解也开始向深发展了,大概之前费了点力气 GeekApk 可以重新启动了吧,大不了我再抄两三次书。

老系统用的是 OpenSUSE,大概先换上 Arch + XFCE 吧。
duangsuse::Echo
我也是一个很热爱生活的人,现在我要立刻继续我的付出了,睡觉。
其实这是一个计划的三天适应性休息,不过因为一些事情没有完成延长了一天。期间我看了 N 集的三大民工漫之一 — 《火影忍者 疾风传》
duangsuse::Echo
其实这是一个计划的三天适应性休息,不过因为一些事情没有完成延长了一天。期间我看了 N 集的三大民工漫之一 — 《火影忍者 疾风传》
(不过,看起来坏习惯还是依然存在嘛。还是不擅于管理时间,唉。
而且虽然没有上线,前两天也是有熬夜到 12 点左右的,这么说,只是比写代码讲 XXXX 的时候好一点点。 🤪
[In reply to ...]
啊,对不起,现在基本了解了;Python 的确提供了很多方便的列表操作语法

list[0] 这是最简单的 list.at(0) 解索引
list[0:10] 这是依据 slice 取 subsequence

list[0:-1:2] 就是 list.take(Range(from=0, to=list.length-1, step=2))

Python 因为比较『灵活』所以索引有两种:
+ 0..lastIndex, 数学里的 (0, size]
+ -1..-size, 代表 (size-1, -size]

比如,

xs=[1,2,3]; ys=[2,4,6]

Python 里可以用 List comprehension 定义 ys
ys = [x *2 for x in xs]

索引:

xs[-1] #=> 3
xs[-3] #=> 1

子序列:

xs[0:1] #=> [1,2]

加上 Range with step 后可以按『步』跳着复制

xs[0:-1:2] #=> [1,3]

list[:]
实际上是 list.subsequence(range(0, list.size-1))
list[::-1]
实际上是 list.subsequence(range(list.size-1, 0, -1))

-1 为步长复制的话,就是这个颠倒序的结果
啊,可惜我现在还是 2G 的说(马上
Forwarded from 荔枝木
2019 年了,温习一下:4GB 在电脑上绝对称不上大内存,8GB 都称不上大内存。最近想要购买笔记本电脑的朋友们,尤其是高中毕业准备走进大学的朋友们,如果对自己专业软件所需的硬件配置不清楚,请咨询自己专业的学长学姐们。
#TT #PLT ... Typescript 渐进类型果然爽炸,Type notation 就可以讨论 value level 的事情,随便创建类型集合,甚至可以是 ("+" | "-")[] 这种...
Forwarded from 羽毛的小白板
累死我了 #TypeScript
Forwarded from dnaugsuz
不过我也学到一点,就是

A[] xs = {a1, a2, a3};

居然可以直接用类 C 的 array initializer... 之前以为非得是

new T[0] {}; 后面可以跟 {} 初始化列表的。