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
这是几国语言了~ 开心,待会依然要继续写 sm.ms.js 和讲解 Agda... 算了明天吧..
Forwarded from 每日 AWESOME 观察
Material Files
开源的 Material Design 文件管理器。
继承 Cabinet 设计,支持面包屑导航并且 Linux 友好,底层使用 Java NIO2 文件 API 和 Linux 系统调用实现。

感谢 @dreamingincode 的投稿
Forwarded from duangsuse Throws
咳咳,我记得上一段时间的确发了一个说“暂停学习”的广播来着,现在找不到了...(可能是,我的确停止学习了很久吧)

这两周才开始继续看起来一些东西,

Rustonomicon》(我当时打印的是英文版,这本书是写 Rust 程序设计语言实现底层一点的算法结构库的、也提到了不少 Rust 的细节,和任何『安全』系统编程,虽然这里主要是数据结构,需要考虑的东西,比如异常安全和指针别名、零长类型、原子性和并发安全、OS/Hardware 的实现细节什么的)
《Kotlin 极简教程》(书写的这么好,我很后悔为什么让我爸帮忙买了,应该去买正版的看才好)
《算法图解》(重温 Dijkstra 算法、复习了解贪婪算法、补习动态规划以及寻找动态规划二维矩阵的直觉、复习 KNN 机器学习)
《全国计算机等级考试·一本通·二级 C 语言》(讲算法和 libc API 的,不过讲的都是 fread, printf, scanf 之类简单一点的 API,涉及一个操作系统高级特征的比如 poll, bind, ioctl 就没有,不过讲了二叉树)

《ES6 标准入门》(ES6,就是 ECMAScript 2016,ECMAScript 是 JavaScript 的规则,JavaScript 是一种 EcmaScript,ECMA,国际标准化组织,JavaScript 是上个世纪 Mozilla 提交给 ECMA 标准化的动态弱类型程序设计语言,现在已经有 v8、JavaScriptCore、Rhino、CharkraJS、Nitro 等流行实现)

此外,还有我打印的一大堆资料... 比如 AlgorithmW,Haskell Hindley-Milner 基于 Unification (归一化)的一种 Type-infer (类型推导)算法,可是没有看懂
当然也少不了冰冰的 LAgda 博客,不过我还是得承认我现在一是对 Dependent-type (aka. Pi, Π type) 基本不了解(除去了对 universal qunatifier forall∀ 和 {A:Set a} 这种 notation 还有点看得懂而已,什么 Type level 啊,size 啊,虽然我知道程序设计语言类型理论上有这些东西,因为我看过 Rustonomicion 和 Kotlin 极简教程和 Haskell)

现在想起来,自己又变菜了好多呢... 🙈

感觉对很多东西的理解和使用都需要严重再加强呢。

感觉对于即使是辣鸡代码的分析能力也必须提升呢。

duangsuse 看过一句话后就信仰它了:『越复杂越容易堆砌、越简单越难于设计』

正是对所有东西都有完全的理解和融会贯通的能力,所有使用起来才能游刃有余,不会写出各种辣鸡超长的代码,随着编程时代的进步,抽象级别正在越来越提升,C++ 模板(template)、Kotlin 的 first-class 代理(delegates)、闭包(Closure)、递归和尾递归(recursion & tail recursion)、流式 API 和流式库(Stream)、事件驱动(events)、组件化(modularize)、模式识别(Pattern matcing)和模式识别解构赋值、任务(Tasks)、协程(Coroutines, Generators, Fibers, Goroutine),有人却开始不断做码农的工作,继续写着 C/Ada/Basic/Pascal 时代的代码,但是我既然不屑去写超长的代码、写没有必要的低级抽象的逻辑,就必须得有随手写各种项目(也必须能完成同时写可能的软件规格、文档、测试、打包、(对于库) sample 例子、甚至一个专门的项目主页的能力)和能“干翻”一下看懂所有『辣鸡』代码的能力呢。要不然无以服人。

真正优秀的算法是简单的,而简单的要点也正是需要最完全、最直白的理解,拥有好的直觉和(一些情况下)的记忆力可以把一个用某种实现方式很复杂的算法,变回它本来应该有的样子
因为,算法很多时候是通过基于 case 枚举和归纳、递归、递推、回溯的方法设计的,他们本来就有和某些数学一样优雅的性质,不应该被写成令人看不懂的形式,这也正是函数式编程对于某些程序比过程式甚至面向对象高到不知哪里去的原因,因为它的 pattern matching, recursion 和算法的设计就是一家的

fun String.execute() = System.getRuntime().execute(this)
fun Process.stdoutText()
= this.also(::waitFor)
.inputStream
.let(InputStreamReader)
.let(BufferedReader)
.lines.collect(Collectors.toList())
.joinToString(" ")
.let(println)

infix fun Boolean.nand(q: Boolean) = !(this and q)


说起来,又复习性的看了一些书之后,duangsuse 觉得自己又变更菜了... 甚至包括程序语言类型的,看完 Kotlin 的 Generics(参数化类型,Paramized types)后尤其是发现自己连类型都没有弄懂呢。

再看 mount.sh 和 qemu_ifup.sh 后,更是觉得自己对类 Unix 一切皆文件和文件系统的理解、以及 IP(Internet protocol) 的理解,真的是太有限了....

自己的自然语言结构识别能力和语音学能力也就是门外汉,然后信号处理又辣鸡,计算机图形学也不会,高级的无线电还不是很清楚(明显初中物理没学好?)

为什么计算机图形学也能算是信号处理呢?因为 BitMap 和 Wave 一样可以叠加?(跑
人工神经网络需求呢... 什么叫做信号窗口呢?

声音就是震动,声音的音色是震动波形的样子、声音的音高是波形的频率、声音的响度是波形的震动幅度

现在终于知道了,国际标准音 A 是 440kHz, 然后 880Hz 是一个八度,还可以按 12Hz 分为半音,半音间以 2 的 1/12 次方为阶分割(分数次方意味着开根号,当然是根号不是对数)

希望以后能得到改善吧。
这周也要继续编程实践哦!
duangsuse::Echo
#GitHub https://github.com/BaseMax/PHPBeautifier/blob/master/Parser.php #Parser 别人怎么写 Parser:这一会我居然还没有看懂... 🌚
🤔 看起来 PHP 和我之前学过的 Java、JavaScript、Perl(一部分)、Python、C 什么的有点像,应该就直接会的吧...

Class { Member* }

Member
Modifier function NameAndArglist Block
Modifier DollarVariableDef

DollarVariableDef
$ name [= literal];

Statement
ValueSetStmt
WhileStmt
ForStmt
IfStmt
ReturnStmt
PrintStmt
CallConstructor

Expression
literal
VariableRef
FunCall
ArySubscript
ArrowDeference
BinaryExpr

VariableRef
$name
FunCall
Expr ( Expr* )
ArySubscript
Expr [ Expr ]
ArrowDeference
infixl precedence _
Expr (->) name
...
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta | a.k.a. 鱼塔 🐟)
#security #net 想了一会不记得我之前用过这个叫什么名字... 看完后想起来,哦,原来我之前用的 MITM 工具叫 ethercap... 🤔
Forwarded from 芝士和培根 (Yuuta | a.k.a. 鱼塔 🐟)
#windwos 我也是现在才想起来,WSL 其实可以是一个类似 wine 的 syscall 或者 libc + 容器化兼容层... 完全,因为内核只有一个就可以管理程序的实例 — 进程、内存、用户、文件系统、网络、IO 设备的... 这是可能的虚拟化方法
#life #China #huawei #google #tech 这也正是这周我想说的一个话题
Forwarded from METO 的涂鸦板
🔩 Google 将停止向华为提供服务

路透社报道,Alphabet 旗下的 Google 已暂停与华为之间要求转移硬件、软件和技术服务的业务。在此之前,华为已经被美国政府列入贸易黑名单。

受到影响,华为后续的 Android 智能手机将无法访问 Google Play 商店、Gmail 和 YouTube 等热门应用。华为在欧洲的手机市场将遭到重创。

在国内,华为可以继续访问 AOSP 许可的安卓操作系统版本,但 Google 今后将停止向华为提供涉及其专有应用程序和服务的访问权、技术支持和协作。

https://www.theverge.com/2019/5/19/18631558/google-huawei-android-suspension
#Java 立音不应该是这样啊...(才想起来不是羽毛... 羽毛的话就不会感到奇怪的) Oracle Hotspot,现在最流行的 Java 虚拟机,是支持 "反射消除 (de-reflection)" 优化的,只要编程时实践足够好,重复调用的开销应该不大的

实现详见 OpenJDK8 JDK source [Class.java#l3028] [Class.c#L65]
HotSpot JDK8(b132) [src/share/vm/prims/jvm.h#l539]

优化... 我找找

[hotspot/share/jvmci/jvmciCompilerToVM.cpp#L1500] 大概就是这种优化了...
[vmSymbols.hpp#L236] 基于动态字节码生成的反射消除优化,这个其实不在 JVM 层就可以做(只要使用专门的反射库,和支持方法定义替换)

[share/opto/c2_globals.hpp#L590] inline sun.reflect.Reflection.getCallerClass()
Forwarded from 神奇的笔记 (神楽坂 立音)
感觉 Java 反射好像消耗没想象中的那么大....
刚刚写的一个东西,运行50万次反射耗时才80多毫秒,走 Annotation Processor 代码生成之后相同数据40毫秒... 50万次反射差的似乎并不是很多....
Forwarded from duangsuse Throws
#freedom #gnu 什么?什么叫开源软件都是自由软件?(既视感