Forwarded from LetITFly News (LetITFly | 让技术飞)
(以上内容转自纯纯写作用户群,已经过 @Drakeet 同意)
duangsuse 真应该啥时候自己好好了解一下 GUI 系统(
现在连 HTML / CSS 盒模型都不知道呢?
欸话说 HTML / CSS 才是前端的代表吧,Qt、Android、Java AWT/Swing 都不如现在的 HTML/CSS 可以体现前端的技术?
现在连 HTML / CSS 盒模型都不知道呢?
欸话说 HTML / CSS 才是前端的代表吧,Qt、Android、Java AWT/Swing 都不如现在的 HTML/CSS 可以体现前端的技术?
Hinnka Zhou
有点不太理解这段代码,什么情况下泛型会被擦除,什么情况不会?
[Supress(unchecked)]
fun <K> createBaseViewHolder(view: View): K
var temp = getClass(), z = null : Class;
while z.isNull and temp.isNull
z = getGenericKotlinClass(temp).instance
temp = temp.superClass
var k: K
if z.isNull
k = BaseViewHolder(view) as K
else
k = createKotlinGenericInstance(z, view)
return k.notNull ? k or BaseViewHolder(view) as K
... 待会讲 Haskell、Agda 什么的,唉时间好少啊
duangsuse::Echo
[Supress(unchecked)] fun <K> createBaseViewHolder(view: View): K var temp = getClass(), z = null : Class; while z.isNull and temp.isNull z = getGenericKotlinClass(temp).instance temp = temp.superClass var k: K if z.isNull k = BaseViewHolder(view)…
首先声明:我也?不知道啥是 ViewHolder 模型,我只是想知道这代码大概是做什么的
K 这个 parametric polymorphism (迫真)(其实就是 Java 的泛型实现)参数 大概是 View 的子类?(假)
我只看中间那个循环...
temp 是当前 JavaClass
z 是当前 JavaClass 的 KotlinGenericClass <K>
循环
大概的意思就是 因为我们知道 Java OO 类型系统里顶部的类型就是
而它的超类
所以 temp 不可能为 null(因为在循环开始时它是 thisClass,而循环体里我们只 assign 了它的超类到它,这是遍历超类链)
那么我们问 && 右边的 z 是不是 null 即可判断 while 条件是否成立
也就是说 只要方法局部符号 z 为 null,就不断循环超类链条 ,直到 z(temp.genericKlassInstance)不为空
不过有可能死循环呢... 因为 Object::class 的超类是 Object::class?
#algor btw. 我花了一点时间来讲这个完全没有用的东西... 是很简单的算法,只是因为在准备些什么?(
是学习如何分析代码(迫真)(删除)
K 这个 parametric polymorphism (迫真)(其实就是 Java 的泛型实现)参数 大概是 View 的子类?(假)
我只看中间那个循环...
temp 是当前 JavaClass
z 是当前 JavaClass 的 KotlinGenericClass <K>
循环
temp = thisClass, z = null
while (both z and temp is null)
z = temp.genericKlassInstance
temp >= superClass
大概的意思就是 因为我们知道 Java OO 类型系统里顶部的类型就是
java.lang.Object而它的超类
Object.getClass().getSuperclass() 是它本身(Object)所以 temp 不可能为 null(因为在循环开始时它是 thisClass,而循环体里我们只 assign 了它的超类到它,这是遍历超类链)
那么我们问 && 右边的 z 是不是 null 即可判断 while 条件是否成立
也就是说 只要方法局部符号 z 为 null,就不断循环超类链条 ,直到 z(temp.genericKlassInstance)不为空
不过有可能死循环呢... 因为 Object::class 的超类是 Object::class?
#algor btw. 我花了一点时间来讲这个完全没有用的东西... 是很简单的算法,只是因为在准备些什么?(
是学习如何分析代码(迫真)(删除)
duangsuse::Echo
不过可以由此看出 duangsuse 的伪代码写的真是越来越伪了(逃
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
首先声明:我也?不知道啥是 ViewHolder 模型,我只是想知道这代码大概是做什么的 K 这个 parametric polymorphism (迫真)(其实就是 Java 的泛型实现)参数 大概是 View 的子类?(假) 我只看中间那个循环... temp 是当前 JavaClass z 是当前 JavaClass 的 KotlinGenericClass <K> 循环 temp = thisClass, z = null while (both z and temp is null) …
你们猜猜还可以怎么写(
或者使用
#fix ... 打住... 上面那个 and 还真是有理由的,因为没有它会无限循环...
我把
btw.
btw. Kotlin 里各种类啊对象实例啊关系又双有变化气死
... 什么
btw. 唉... 我对 Java 的理解还是不过关啊
Java 就有这么难么(笑)
打住,上面那个是错的,而且我还不熟悉泛型 variance... 什么鬼关系
本来还想拿 Haskell Clojure?Scala?(其实我不会 Scala,不过可以学)?Agda 写一个(迫真)(其实我也不会 Agda 如此高级的证明...)
反正 Kotlin 他老人家是多范式,自然也支持函数式特性的,那顺便 FP 一下吧...(虽然我递归什么的很菜)
fold... 这类好像不行,有种反着的 fold 貌似可以生成序列,忘记叫啥名了...
generateSequnece... 类型推导老是错误,我看着结果也有点蒙蔽... 好像就是一点 variance 和 nullability 的问题
用 Coroutine 吧... 其实我貌似也可以用更高级的 FP 特性的... 不过我都不会... 感觉学习遇到瓶颈了... 我好菜啊(悲) 🥕
编译不了... 没加依赖包... 算了... 对自己的技术好绝望啊,啥都不会...
var classChianItem = thisClass, genericKlassFound = null
while (genericKlassFound.isNull)
genericKlassFound = classChianItem.getGenericKClassInstance()
classChianItem = classChianItem.getSuperclass()
或者使用
Iterator<Class>
... 算了比较麻烦,Kotlin 有内建的 lazy sequence generator>>> fun <T> Class<out T>.ancestors(): Iterator<Class<T>> {
... return object: Iterator<Class<T>> {
... var currentClass = this
... override fun hasNext(): Boolean = this.equals(Object::class)
... override fun next(): Class<T> = Object::class
... }
... }#fix ... 打住... 上面那个 and 还真是有理由的,因为没有它会无限循环...
Object::javaClass.getSuperclass() //=> null
我把
static method 搞成 Class<Object> 了?btw.
Object::javaClass 和 Object::class.java 是不一样的?val T.javaClass: java.lang.Class<T>class java.lang.Objectbtw. Kotlin 里各种类啊对象实例啊关系又双有变化气死
val a = Object::class.java
a.getClass() // unresolved reference
a::class //=> class java.lang.Object
1::class //=> kotlin.Int
... 什么
val T.javaClass: Class<T>btw. 唉... 我对 Java 的理解还是不过关啊
Java 就有这么难么(笑)
打住,上面那个是错的,而且我还不熟悉泛型 variance... 什么鬼关系
本来还想拿 Haskell Clojure?Scala?(其实我不会 Scala,不过可以学)?Agda 写一个(迫真)(其实我也不会 Agda 如此高级的证明...)
反正 Kotlin 他老人家是多范式,自然也支持函数式特性的,那顺便 FP 一下吧...(虽然我递归什么的很菜)
fold... 这类好像不行,有种反着的 fold 貌似可以生成序列,忘记叫啥名了...
generateSequnece... 类型推导老是错误,我看着结果也有点蒙蔽... 好像就是一点 variance 和 nullability 的问题
用 Coroutine 吧... 其实我貌似也可以用更高级的 FP 特性的... 不过我都不会... 感觉学习遇到瓶颈了... 我好菜啊(悲) 🥕
val objectAncesSeq = sequence {
var chainItem = HashMap::class.java
while (chainItem != null) {
yield(chainItem)
chainItem = chainItem.getSuperclass()
}
}编译不了... 没加依赖包... 算了... 对自己的技术好绝望啊,啥都不会...
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from 神奇的笔记 (神楽坂 立音)
解决方法是自己下载 Blender 源码并加入最新的 CUDA 驱动程序重新编译(或者等 Blender 2.8 就有官方支持了)
Forwarded from neoFelhz's Channel | 山雨欲来风满楼 (neo喵 | 蒟蒻 | 肥宅 | 🐈)
V2EX
想输入网址获取整站邮箱号,有这样的网站吗? - V2EX
奇思妙想 - @yaokwok - 想做个网站,输入网址自动爬虫获取整站邮箱号或手机号,不知道目前有没有这样的网站,如果没有的话,你们有没有这样的需求?
#cs #recommended http://erikdemaine.org/
《算法导论》公开课中有一名讲师,他叫Erik Demaine。12岁就进入了Dalhousie大学,2年后,14岁即拿到学士学位。之后进入waterloo大学读博,15岁时拿到数学硕士学位,2001年20岁时拿到博士学位,其博士论文被评为加拿大最优秀的4篇论文之一。
这位同学拿到博士学位后,直接就被MIT计算科学与人工智能实验室聘为助理教授,以20岁的年纪成为MIT历史上最年轻的教授。2003年,年仅22岁获得麦克阿瑟天才奖。2005年,以24岁的年纪升为副教授有兴趣的话(http://erikdemaine.org/)
— https://www.cnblogs.com/studyNT/p/7857839.html
《算法导论》公开课中有一名讲师,他叫Erik Demaine。12岁就进入了Dalhousie大学,2年后,14岁即拿到学士学位。之后进入waterloo大学读博,15岁时拿到数学硕士学位,2001年20岁时拿到博士学位,其博士论文被评为加拿大最优秀的4篇论文之一。
这位同学拿到博士学位后,直接就被MIT计算科学与人工智能实验室聘为助理教授,以20岁的年纪成为MIT历史上最年轻的教授。2003年,年仅22岁获得麦克阿瑟天才奖。2005年,以24岁的年纪升为副教授有兴趣的话(http://erikdemaine.org/)
— https://www.cnblogs.com/studyNT/p/7857839.html
duangsuse::Echo
#cs #recommended http://erikdemaine.org/ 《算法导论》公开课中有一名讲师,他叫Erik Demaine。12岁就进入了Dalhousie大学,2年后,14岁即拿到学士学位。之后进入waterloo大学读博,15岁时拿到数学硕士学位,2001年20岁时拿到博士学位,其博士论文被评为加拿大最优秀的4篇论文之一。 这位同学拿到博士学位后,直接就被MIT计算科学与人工智能实验室聘为助理教授,以20岁的年纪成为MIT历史上最年轻的教授。2003年,年仅22岁获得麦克阿瑟天…
... 说实话,看看公开课的 timeline tags
我觉得里面的内容 《算法图解》 这本如此简单的书里几乎都覆盖了... 这就是大学生们的课程...
我觉得里面的内容 《算法图解》 这本如此简单的书里几乎都覆盖了... 这就是大学生们的课程...
duangsuse::Echo
... 说实话,看看公开课的 timeline tags 我觉得里面的内容 《算法图解》 这本如此简单的书里几乎都覆盖了... 这就是大学生们的课程...
#cs #algorithm #algor #share #scarper
还是有问题... 算了,上静态下载好的
(Nokogiri 貌似的一个 bug ? 导致使用本地文件时编码指定参数无效)
[DuangSUSE@duangsuse]~% nokogiri -EGBK https://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html
Your document is stored in @doc...
... 人家是动态 JS 生成的,好吧... 不对啊,Nokogiri 有问题...还是有问题... 算了,上静态下载好的
kate ~/下载/scarper/麻省理工学院公开课:算法导论_跳跃表_网易公开课.html
(这里有 encconv 工具可以转换编码,但是上次使用导致了不知缘由的死机,现用 Kate 转换到 UTF-8)(Nokogiri 貌似的一个 bug ? 导致使用本地文件时编码指定参数无效)
nokogiri 下载/scarper/麻省理工学院公开课:算法导论_跳跃表_网易公开课.html
list = @doc.at_xpath("/html/body/div[6]/div/div[3]/div")
videos = list.children[1..45]
lessons = videos.find_all { |it| it.is_a? Nokogiri::XML::Element }
class Lesson
def initialize(element)
@label = parseLabel(element)
@name = parseName(element)
@desc = parseDesc(element)
end
def self.parseLine(tag, second)
tag.children.find { |it| it.name == 'p' }.children.find { |it| it.name == second }.children.first
end
def parseLabel(tag)
self.class.parseLine(tag, 'span')
end
def parseName(tag)
self.class.parseLine(tag, 'a')
end
def parseDesc(tag)
tag.children.find_all { |it| it.name == 'p' }.last.children.first
end
def to_s
"#{@label} #{@name}\n\t#{@desc}"
end
attr_accessor :name, :label, :desc
end
duangsuse::Echo
#cs #algorithm #algor #share #scarper [DuangSUSE@duangsuse]~% nokogiri -EGBK https://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html Your document is stored in @doc... ... 人家是动态 JS 生成的,好吧... 不对啊,Nokogiri 有问题... 还是有问题... 算了,上静态下载好的 kate ~/下载/s…
parsed_lessons = lessons.map do |it|[第1课] 课程简介及算法分析
begin
Lesson.new(it)
rescue
end
end
puts parsed_lessons
课程简介及算法分析
[第2课] 渐近符号、递归及解法
渐近符号、递归及解法
[第3课] 分治法(1)
分治法(1)
[第4课] 快排及随机化算法
快排及随机化算法
[第5课] 线性时间排序
线性时间排序
[第6课] 顺序统计、中值
顺序统计、中值
[第7课] 哈希表
本课为我们引入了一种简单而高效的数据结构——哈希表(又译作散列表)。课堂上,教授为我们介绍了哈希表的基础知识,讲述除法哈希法、乘法哈希法以及开放寻址法,并对它的复杂度做了分析。除此之外,他还就如何高效地运用哈希表、如何处理可能遇到的“碰撞”问题等进行了讨论。
[第8课] 全域哈希和完全哈希
本课继续深入学习哈希表,这节课的内容主要是哈希表的高级运用。为了应对哈希表发生“碰撞”的问题,教授这次给我们带来了全域哈希和完全哈希。这节课里涉及到了很多美妙的数学知识,算法的证明过程相当有趣。学习这节课的内容,将会使你的哈希表更为高效、更为稳定。
[第9课] 二叉搜索树
本课为我们带来了一种常用的数据结构——二叉搜索树。这种数据结构有着媲美快速排序的速度,同时又能完成插入、删除和查找等动态化的操作,高效而又易于实现。教授将在本节课为我们讲解二叉搜索树的原理,运用巧妙的数学知识来证明它的高效性。二叉搜索树有什么优缺点,随机化二叉树又如何解决问题,这节课都会一一为你解答。
[第10课] 平衡搜索树
如果搜索树的结构不能保持平衡,它的运行效率将会大打折扣。这节课上,我们将会着重学习一种著名而实用的平衡树算法——红黑树。教授将会从红黑树的运行效率入手,再扩展到实际构造和维护红黑树。讲解过程中加入了大量的图例,更加方便大家消化吸收。
[第11课] 扩充的数据结构、动态有序统计和区间树
在实践中,我们对数据结构的功能需求并不仅仅局限于基本的插入、删除和查询操作。为了使数据结构能满足我们的需求,第11课里,教授给我们讲授了如何扩展一个现有的数据结构。教授以红黑树的几种扩展算法为例,讲解了的扩展的方法论以及策略。掌握了这些以后,你实现新功能起来将会更加得心应手。
[第13课] 平摊分析,表的扩增,势能方法
有时候,就算是再大的困难,只要人人都愿意出一份力,也能大事化小。而算法的分析也有这种情况。有时候某几步操作相当复杂,但是如果将一系列操作平均起来,它的代价可能也并不是那么的高。《算法导论》第13课里,教授就给我们讲授了几种平摊分析的方法,包括聚集法、记账法还有势能法。这些都是算法分析的重要方法,掌握它们将能让我们更加准确地评估算法优劣性。
[第14课] 竞争性分析,自组织表
我们将要关注一种在线算法的分析方法——竞争分析。实际应用中,数据不会总是全部出现在我们面前,而是一个接一个地出现。这样我们就不能安排最好的对策来处理问题。但是我们也可以证明,在线算法并不会跟最优算法差太远。这节课上,教授将会结合上一节课中平摊分析的内容,给我们展示这一个相当精彩的分析过程。
[第15课] 动态规划,最长公共子序列
我们将会学到一个常用的优化算法的技术——动态规划。它是一种解决最优解问题的一种方法,它还是信息竞赛选手必须掌握的技能。在这一节课上,教授会围绕最长公共子序列(LCS)的实现问题来讲解可动态规划算法的特征,还有动态规划的一般优化思路和方法。通过应用动态规划,我们的程序性能将会获得显著的提升。
[第16课] 贪婪算法,最小生成树
《算法导论》第16课中,教授给我们带来了一种新的算法思想--贪婪算法的思想。和动态规划一样,贪婪算法是一种求解最优问题的方法。它强调通过寻找局部的最优解,从而节省大量的时间和资源。这次课里,教授会围绕图的最小生成树的问题,分析贪婪算法的思想和应用条件。我们还会看到一个贪婪算法实例--Prim算法,看看它又是如何为AT&T公司取得垄断的地位。
[第17课] 最短路径算法:Dijkstra算法,广度优先搜索
从第17节的《算法导论》开始,MIT的教授将会为我们上演精彩的最短路径三部曲。在第一乐章里,我们会学习到一个非常著名的求解最短路径算法--Dijkstra算法。教授首先会给我们讲解最短路径的特殊性质,然后针对一种非负权值的的最短路径问题,给我们详细讲解Dijkstra算法的做法,以及对它的正确性进行深度的分析。
[第18课] 最短路径算法:Bellman和差分约束系统
承接上一回,《算法导论》第18集是最短路径三部曲的第二乐章。在这一节课上,教授给我们讲解的是能够处理负权值最短路径问题的算法——Bellman-Ford算法。Bellman-Ford算法不仅能够检测图中的负权环,同时它还能解决线性规划的差分约束问题。教授将给我们详细讲解Bellman-Ford算法的流程,并证明它的正确性。这些内容都会跟下一节课的内容息息相关。
[第19课] 最短路径算法:点的最短路径
《算法导论》的第19课终于到了最短路径三部曲的高潮。这次我们将会着眼于全点对最短路径问题,教授将会给我们用三种算法来解决这个问题。除了上节课我们学到Bellman-Ford,我们还会用一个精彩的技巧,将问题与矩阵乘法联系起来,也就是Floyd-Warshall算法。而最后,我们将会学习最强大的Johnson算法,来为最短路径三部曲唱响最华丽的解答。
[第20课] 高级课题 并行算法(一)
《算法导论》课程的最后将介绍一些高级课题。本课介绍的是并行算法。解答了1、面对多核处理器技术的不断革新,对算法如何优化,使得效率可以倍增;2、如何来分析并行算法对运行速度的提升;3、著名的国际象棋人工智能“深蓝”曾经的宿敌是谁。
[第21课] 高级课题 并行算法(二)
《算法导论》第23课将承接上一回,这一次教授将给我们介绍并行算法的实际应用,讲解如何使用多线程来实现算法的并行化。课上教授将会用矩阵相乘以及归并排序为例子,从算法框架到运行时间分析来教大家实际认识多线程并行算法。
[第22课] 高级课题 缓存参数无关算法
承接上一课,本课教授介绍了缓存敏感算法和缓存参数无关算法的概念,首先从计算机的缓存-内存分层存储模型引入,讨论了缓存参数无关算法的性质和分析上的优越性,并且具体讨论了在分层存储模型中的算法性能分析和存储设计。
[第23课] 缓存无关算法2
《算法导论》课程的最终章将继续深入分析缓存参数无关算法,教授将在本次课上为我们讲解多路归并排序算法是如何与缓存参数无关算法模型相结合。他将用一种名为K漏斗的特殊数据结构从实现到分析来给我们展示如何更高效地利用缓存来优化算法设计。
duangsuse::Echo
#cs #algorithm #algor #share #scarper [DuangSUSE@duangsuse]~% nokogiri -EGBK https://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html Your document is stored in @doc... ... 人家是动态 JS 生成的,好吧... 不对啊,Nokogiri 有问题... 还是有问题... 算了,上静态下载好的 kate ~/下载/s…
This media is not supported in your browser
VIEW IN TELEGRAM
语法由于 Nokogiri 那贫瘠的 API 非常难看且不简洁,由于我很累所以懒得优化
逻辑十分简单,但由于 Nokogiri 贫瘠的包装写得很难看
没有做容错处理,所以老是出现解析错误。
权当玩玩。本身也没什么复杂的逻辑
逻辑十分简单,但由于 Nokogiri 贫瘠的包装写得很难看
没有做容错处理,所以老是出现解析错误。
权当玩玩。本身也没什么复杂的逻辑
#life 好了,那又回到 duangsuse 的四日常(看问题讨论、说笔记、写文档做设计、写代码)之一了... 今天一行代码不写,最近一行代码都不写。主要还是逻辑弄明白... 🐸
Gekyll 啊、Pickle 啊、dio 啊
都不是今天的事,因为我最好不要熬夜,至少是目前
Gekyll 啊、Pickle 啊、dio 啊
都不是今天的事,因为我最好不要熬夜,至少是目前