#Learn #tech #cs #PLT 动苏目前写代码时最喜欢拉扯我的四个方法、范式。😖
这类内容我有几个月没写了,但我一直很努力的在追寻『编程之道』啊 🥺
其实这并不是奉献或铺垫,只是一种欲望,求知欲。
编程之道不能帮你赚钱、不能帮你变成像王垠一样的大佬,但是对程序有了更好认知的你,有机会朝此界更远的地方进发,因为没有什么不是接口所能描述的——但只有真正掌握不同角度看到的它们,才能写成最美最灵活可配置的程序。
四个里两个是最近加的:
1.图形化数据结构之实例,动苏经常举 Ringbuffer 和 String 的例子,Ringbuf 的 incPtr(), samePtr(a,b) 操作非常容易模拟,只有对程序所用数据对象的结构、限制、连接有完善的理解,才能更好帮助咱编程。
2.语义化命名。非常重视程序可读性,从不使用 tmp, ret, i,j,k 这样不明确的名字、谨慎利用 res,oldXXX,x,e,o 这样的便利缩写,大力以 xy wh ij nm hv p ab 的单字为前缀,数字 0,1 为后缀,同时表达类型和时序关系;积极使用 xxxFor, xxxIn, xxxTo 等介词命名对象上的方法(即动词)
3.关系式编程,它就像魔法,可以让代码的复用潜力翻倍提升——远比正反写两遍强,而且能构筑优美的心智模型。二进制结构读写可以类型对应关系建模、七大姑八大姨称呼可以关系式求解,明白简单的事情需写「复杂」,是为避免定义浪费,而把同一件事写两遍
4.尽力理解不常见控制流,比如 label:while(true) {}、setjmp/longjmp、Exception NonlocalReturn、coroutine/generator 等,有时冗余代码可化为等价控制流,有时对程序流程基元的更好理解会帮助整体架构的设计(比如利用 generator 做大量内存量 chunked processing )
这类内容我有几个月没写了,但我一直很努力的在追寻『编程之道』啊 🥺
其实这并不是奉献或铺垫,只是一种欲望,求知欲。
编程之道不能帮你赚钱、不能帮你变成像王垠一样的大佬,但是对程序有了更好认知的你,有机会朝此界更远的地方进发,因为没有什么不是接口所能描述的——但只有真正掌握不同角度看到的它们,才能写成最美最灵活可配置的程序。
四个里两个是最近加的:
1.图形化数据结构之实例,动苏经常举 Ringbuffer 和 String 的例子,Ringbuf 的 incPtr(), samePtr(a,b) 操作非常容易模拟,只有对程序所用数据对象的结构、限制、连接有完善的理解,才能更好帮助咱编程。
2.语义化命名。非常重视程序可读性,从不使用 tmp, ret, i,j,k 这样不明确的名字、谨慎利用 res,oldXXX,x,e,o 这样的便利缩写,大力以 xy wh ij nm hv p ab 的单字为前缀,数字 0,1 为后缀,同时表达类型和时序关系;积极使用 xxxFor, xxxIn, xxxTo 等介词命名对象上的方法(即动词)
3.关系式编程,它就像魔法,可以让代码的复用潜力翻倍提升——远比正反写两遍强,而且能构筑优美的心智模型。二进制结构读写可以类型对应关系建模、七大姑八大姨称呼可以关系式求解,明白简单的事情需写「复杂」,是为避免定义浪费,而把同一件事写两遍
4.尽力理解不常见控制流,比如 label:while(true) {}、setjmp/longjmp、Exception NonlocalReturn、coroutine/generator 等,有时冗余代码可化为等价控制流,有时对程序流程基元的更好理解会帮助整体架构的设计(比如利用 generator 做大量内存量 chunked processing )
一个关于 Map 映射关系的,有意思的小问题😋
假设已有分词器
如何实现
在逛超市时我竟在想这个问题(对 OIer 显然是有点脑残了,但不和他们比),只思考对单个词的 Str->Str 映射即可。
当时得出
后来发现若 a,b 是 key 为同语言、value 随便的 Map,
说到底还是想多了,对类型的直觉不够好啊ԅ(¯ㅂ¯ԅ)
为什么关系式的 SQL 就不可以按指定多个 1:1 Map 接口的方式去使用呢🤔
假设已有分词器
lex: (String)->Iter<String> 和两本字典 a,b:Map<String,String>如何实现
translate(text, pair=(a to b)) ?在逛超市时我竟在想这个问题(对 OIer 显然是有点脑残了,但不和他们比),只思考对单个词的 Str->Str 映射即可。
当时得出
k->a[u[b[k]]] 的表达式,解释 u[_] 是 valueof(b)->keyof(a) 的映射,u 是 unify 的缩写、k 是 key 即单个 word 后来发现若 a,b 是 key 为同语言、value 随便的 Map,
wd->b[a.keyOf(wd)] 即是正确映射说到底还是想多了,对类型的直觉不够好啊ԅ(¯ㅂ¯ԅ)
为什么关系式的 SQL 就不可以按指定多个 1:1 Map 接口的方式去使用呢🤔
duangsuse::Echo
#Learn #tech #cs #PLT 动苏目前写代码时最喜欢拉扯我的四个方法、范式。😖 这类内容我有几个月没写了,但我一直很努力的在追寻『编程之道』啊 🥺 其实这并不是奉献或铺垫,只是一种欲望,求知欲。 编程之道不能帮你赚钱、不能帮你变成像王垠一样的大佬,但是对程序有了更好认知的你,有机会朝此界更远的地方进发,因为没有什么不是接口所能描述的——但只有真正掌握不同角度看到的它们,才能写成最美最灵活可配置的程序。 四个里两个是最近加的: 1.图形化数据结构之实例,动苏经常举 Ringbuffer 和…
明明写过许多,眼下仿佛自己什么经验也没有呢……😰
Anonymous Poll
78%
你的技术可以
0%
你应该学习更多层面的技术
22%
你所学的也就那样 普普通通
0%
不能赚钱的话,不能说可以呢
duangsuse::Echo
作为本领域的频道主动苏当然也会作总结。#plt 😋 当然,我现在非常重视实践能力以及同代码量应用范畴的最大化,可能会希望编译器不只能做单纯/直白的一种结构转换,而能带有更多边角信息(行号 等)的复用,从这点来说也必须向大佬学习(开发了 ImGui binding)。 「当我们谈编程语言,实际是在讨论很多门相对独立的语言」 谈语言除了好看与否、红火与否、高大上与否,当然离不开『语言工具』,如构筑并管理『语法树』图结构的『解析器』(其亦可同时实现代码高亮)、做代码生成转化的『编译器』,以及提供(sizeof…
知乎专栏
当他们谈编程语言时,可能在说些什么?
作为本领域的频道主动苏当然也会作总结。#plt 当然,我现在非常重视实践能力以及同代码量应用范畴的最大化,可能会希望编译器不只能做单纯/直白的一 种结构转换,而能带有更多边角信息(行号 等)的复用 ,从这点来…
duangsuse::Echo
#Learn #tech #cs #PLT 动苏目前写代码时最喜欢拉扯我的四个方法、范式。😖 这类内容我有几个月没写了,但我一直很努力的在追寻『编程之道』啊 🥺 其实这并不是奉献或铺垫,只是一种欲望,求知欲。 编程之道不能帮你赚钱、不能帮你变成像王垠一样的大佬,但是对程序有了更好认知的你,有机会朝此界更远的地方进发,因为没有什么不是接口所能描述的——但只有真正掌握不同角度看到的它们,才能写成最美最灵活可配置的程序。 四个里两个是最近加的: 1.图形化数据结构之实例,动苏经常举 Ringbuffer 和…
嘛,关于接口的事情举个例子吧👾
假设你要给一个地图软件开发「导航」功能,毫无疑问要利用图算法,比如 bfs(广度可达性搜索)+路径存储 、dfs(深度搜索)、dijkstra 加权最短路径算法,但是只有算法是不可以的——融合 Geo location 才可以用,这就必须明白前端渲染地图者的接口如何。
当然现实不会是单机应用+如此简单的功能,所以这算功能的 prototype(原型)。
算法需要的,其实仅仅是 equals/hashCode -- 建立图结构的基础,自反性(对象可标识),以及符合此约束的 a, b 二节点(对路线图“的抽象”来说没有东西南北,求得路径内各锚点再算相对位置也行)
但是怎样提供算法的结果——标记每一点?是渲染上视图,还是存成某种精度的数据?这就需要沟通,或者最好是一个程序猿就明白——或者每个设计者也必须清楚,才能最完美的实现这些功能。
还有 Map<K,V> 的 String 形式,同样是 (text,sep1='\n',sep2=':')->list<string>,C 里面的建模方式和 Java 里的完全不一样,至少 C 里有传预分配指针和自己再分配两种写法,Java 里可以把 parse(String) 和 toString(Map) 写一起(面向对象),想要一种跨语言而优雅的解法并不容易。
假设你要给一个地图软件开发「导航」功能,毫无疑问要利用图算法,比如 bfs(广度可达性搜索)+路径存储 、dfs(深度搜索)、dijkstra 加权最短路径算法,但是只有算法是不可以的——融合 Geo location 才可以用,这就必须明白前端渲染地图者的接口如何。
当然现实不会是单机应用+如此简单的功能,所以这算功能的 prototype(原型)。
算法需要的,其实仅仅是 equals/hashCode -- 建立图结构的基础,自反性(对象可标识),以及符合此约束的 a, b 二节点(对路线图“的抽象”来说没有东西南北,求得路径内各锚点再算相对位置也行)
但是怎样提供算法的结果——标记每一点?是渲染上视图,还是存成某种精度的数据?这就需要沟通,或者最好是一个程序猿就明白——或者每个设计者也必须清楚,才能最完美的实现这些功能。
还有 Map<K,V> 的 String 形式,同样是 (text,sep1='\n',sep2=':')->list<string>,C 里面的建模方式和 Java 里的完全不一样,至少 C 里有传预分配指针和自己再分配两种写法,Java 里可以把 parse(String) 和 toString(Map) 写一起(面向对象),想要一种跨语言而优雅的解法并不容易。
duangsuse::Echo
#Python #tools #Telegram 这下就有经验了,不会倒大霉! def join(op): return lambda *args: "".join(op(*args)) @join def applySpans(d, op, kP="offset", kN="length"): s = d["text"]; i0 = 0 span = lambda e: (e[kP], e[kP]+e[kN], e) for (iBeg, iStop, e) in map(span, d["entities"]):…
第二个 gist 链接稍微更新了下,可以用了🤔 但是没有去开机器人,只偶尔用一下
#math 😂 虽然我不是很喜欢数学的作风,终于还是有理解他们的一天了—— 不是所有东西都可以用金钱衡量价值、不是只有在国内有各色各样标签,才能拥有各式各样有意思的技术。有的时候,只是璞玉尚未显露所包含的光泽而已,不应认为是无用多余的。
Forwarded from Solidot
英国莱斯特大学副校长提议裁掉纯数学研究员
2021-01-30 19:53 #数学
英国莱斯特大学副校长以“继续实现卓越”的名义 提议裁员,同时扩大 AI 等热门领域的研究资助,有 145 人可能失去工作,其中包括所有纯数学研究员,只留三名讲师从事本科数学教育。此举引发了教职工的强烈不满,学校工会发起了对副校长的不信任投票,几乎所有人支持无人反对。大学的数学家发起了请愿,声明“数学并不是多余的”,目前已有超过 2000 人签名。
2021-01-30 19:53 #数学
英国莱斯特大学副校长以“继续实现卓越”的名义 提议裁员,同时扩大 AI 等热门领域的研究资助,有 145 人可能失去工作,其中包括所有纯数学研究员,只留三名讲师从事本科数学教育。此举引发了教职工的强烈不满,学校工会发起了对副校长的不信任投票,几乎所有人支持无人反对。大学的数学家发起了请愿,声明“数学并不是多余的”,目前已有超过 2000 人签名。
Forwarded from eW91dHUuYmUvZFF3NHc5V2dYY1EK
https://twitter.com/EricIdle/status/1355542173756735489?s=20 Monty Python的writer/actor在问Guido他怎么用Python赚钱的
Twitter
Eric Idle
@gvanrossum @KansasGrant How do you make money if it’s free?
duangsuse::Echo
项目还是 去世 了 😭 #life #project #ce #java #Python 本来就没打算花太多精力,但实际上还是花了,凌晨两点;与之前为防止熬夜休息的意图是背道而驰的 其实我只是想重写 lexer 而已, Text, Diagnostics 的新概念都不足以大张旗鼓、废寝忘食的搞 原因可能是不正常的时间安排以及 挂羊头卖狗肉
看完动漫,这两天又不写代码了,年轻人生活不稳定、老熬夜,就只好偶尔出门往上攀,迟早有能绝顶的一天🌝
项目队列上又积压了⑥个,一些设计稿都几不熟了,草生
项目队列上又积压了⑥个,一些设计稿都几不熟了,草生