duangsuse::Echo
a2i2a.cpp
那么这件事就告一段落啦 #Algorithm #Haskell #Math #CXX 🤔
module Atoitoa (atoi', itoa') where
import Data.Char (digitToInt)
type Radix = [Char]
type Base = Int
atoi' :: Base -> (String -> Int)
atoi' b = foldl (\ac -> (ac*b +) . digitToInt) 0
itoa' :: Radix -> Base -> (Int -> String)
itoa' rx b = reverse . (itoa'' rx b)
where
itoa'' _ _ 0 = []
itoa'' rx b n = let c = rx !! (n `mod` b) in
c : itoa'' rx b (n `div` b)Forwarded from duangsuse Throws
https://www.eet-china.com/news/201907231509.html #Huawei 🤔
#life #China #recommended
在《第一时间》杂志上看到一个无线通讯的天才少年,推荐过来
申怡飞 (文)
当然,其实关于这个『天才』是不是一定要『少年』呢…… 其实一般个人会有个人的看法
国家之前特别弄过『少年班』的,可是发现这样出产低,而且会浪费一些不是极端优秀但很不错的人,出产的天才少年也未必比其他天才好很多
这个人是独立弄的,所以的确是从小就天才。
当然,现在揠苗助长的事情实际上还有一些,比如那个考上大专(通过高考)的十岁女孩……
按照这位父亲的看法,中国的教育肯定辱没了很多『天才少年』
可是刻意要生造出那么多天才少年干什么呢……
我个人非常想当一个天才,因为天才意味着…… 我不仅有很强大的计算和抽象、组织能力,而且还很快…… 不会错…… 可是终究不是天才,我要花很多时间来完成简单的事情,太可惜了(虽然一般来说天才是极少的)
而且这样的话我就可以更快地开始学信号处理和机器学习了,这两者对数学能力有要求,所以还不是很熟悉。
#life #China #recommended
在《第一时间》杂志上看到一个无线通讯的天才少年,推荐过来
申怡飞 (文)
当然,其实关于这个『天才』是不是一定要『少年』呢…… 其实一般个人会有个人的看法
国家之前特别弄过『少年班』的,可是发现这样出产低,而且会浪费一些不是极端优秀但很不错的人,出产的天才少年也未必比其他天才好很多
这个人是独立弄的,所以的确是从小就天才。
当然,现在揠苗助长的事情实际上还有一些,比如那个考上大专(通过高考)的十岁女孩……
按照这位父亲的看法,中国的教育肯定辱没了很多『天才少年』
可是刻意要生造出那么多天才少年干什么呢……
我个人非常想当一个天才,因为天才意味着…… 我不仅有很强大的计算和抽象、组织能力,而且还很快…… 不会错…… 可是终究不是天才,我要花很多时间来完成简单的事情,太可惜了(虽然一般来说天才是极少的)
而且这样的话我就可以更快地开始学信号处理和机器学习了,这两者对数学能力有要求,所以还不是很熟悉。
Eet-China
华为百万年薪的天才少年们,都是何方神圣?-电子工程专辑
7月23日,华为公布了8名天才少年的年薪方案,全部为2019届应届顶尖学生,学历均为博士,年薪最低限89.6万元,最高限201万元。此举被业内认为是华为校招开始前的热身,以及针对近期风波的PR行为。其中一位博士生的导师直言:“像(华为)这样,有点太高了,我们都感到很惊奇。”这8位“天才少年”究竟是何方神圣?让我们来挖一挖……
Forwarded from duangsuse Throws
#statement #Qzone
新的 bio !(应该就在 suse 的空间里,下一条)
原 bio 是 「Technical unfamiliar is the root of all evil 菜是万恶之源」
这句话是从《爱丽丝梦游仙境》的对话里提取出来的理念
没头脑的拼死拼活、无目标的吃苦。为何而活?相信至少都是为不想死而活,可是活着要干什么呢?
为了获得别人的称赞、小小的优越感?为了搬家到大城市?
我想先为自己而活,为了别人对我的看法,我活得太累。群众的眼睛也未必是雪亮的,更多是无知和盲从。
偶尔在调试程序的时候,即便连调试器都不会用,想着因为有 bug 而 debug、面向 REPL 编程,越来越觉得我不该死脑筋了
王垠会批判部分 Haskell 程序猿「从不调试程序,因为根本不写 bug」的论调,可我觉得这话就莫名正确,如果不知道自己干了什么,不如退出去好好想想,再做决定,而不是无意义地歇斯底里,最终一事无成。
人们对待失败的做法不同,所以才会存在一败涂地和反败为胜的区别;脑子是好东西,可不是所有人所有时候都能尽可能好地利用它。
有些程序员经常把「不知道自己在干什么」挂在嘴边批评别人,想想也真是句有意思的话吧……
新的 bio !(应该就在 suse 的空间里,下一条)
原 bio 是 「Technical unfamiliar is the root of all evil 菜是万恶之源」
这句话是从《爱丽丝梦游仙境》的对话里提取出来的理念
没头脑的拼死拼活、无目标的吃苦。为何而活?相信至少都是为不想死而活,可是活着要干什么呢?
为了获得别人的称赞、小小的优越感?为了搬家到大城市?
我想先为自己而活,为了别人对我的看法,我活得太累。群众的眼睛也未必是雪亮的,更多是无知和盲从。
偶尔在调试程序的时候,即便连调试器都不会用,想着因为有 bug 而 debug、面向 REPL 编程,越来越觉得我不该死脑筋了
王垠会批判部分 Haskell 程序猿「从不调试程序,因为根本不写 bug」的论调,可我觉得这话就莫名正确,如果不知道自己干了什么,不如退出去好好想想,再做决定,而不是无意义地歇斯底里,最终一事无成。
人们对待失败的做法不同,所以才会存在一败涂地和反败为胜的区别;脑子是好东西,可不是所有人所有时候都能尽可能好地利用它。
有些程序员经常把「不知道自己在干什么」挂在嘴边批评别人,想想也真是句有意思的话吧……
duangsuse::Echo
10_12
人 性 泯 灭
抛弃未做…… 也要写 Doku 库
就为了弄个 AXML 读写库
抛弃未做…… 也要写 Doku 库
就为了弄个 AXML 读写库
duangsuse::Echo
人 间 失 格 编程 连 续 8 小 时;只为一些无聊的位图处理……
This media is not supported in your browser
VIEW IN TELEGRAM
悲惨的起因,只是因为在 GitHub 上看到别人有用 Python+Pillow 写这个:
https://github.com/FerryYoungFan/SimpleTextMontage
虽然数学不好,对某些关系不那么扁平的数据处理也会非常吃力的 duangsuse 就头脑发热地想:
『这么简单的程序,我怎么可能不会写?我一定要写出来看看』
结果就杯具…… 😭 不过还是有一点收获,就是我学会了如何用 color average 插值写位图 scale 算法
虽然花了我至少 6 个小时的时间才完成到可以生成图片(本来应该只要一个小时,可是被 argparse 坑了…… 我不该一上来就填那么多参数),但感觉也还可以,而且我没有在任何关键问题上查资料,也没有看太多次 help
学习还是有效果的,毕竟我学会了这些 API:
我的 Gist 上有 Kotlin 字符画 ASCII Art 生成器的源码
看了 FerryYoungFan 的版本,10:52-11:27 花了半个多小时,好像不是提前写好了的,唉
算法上,除了
不过设计上,没有扣像、 (keyColor, keyThres, keyRatio) 、自动渐变的背景色 (刚才我以为 count avgcolor 是拿来判断背景色的…) 和 xy padding
另外 (keyColor, keyThres), keyRatio 我还是会写的,之前的 Kotlin ASCII Art 就用到了 filter 色值的算法;只不过这个是按照 abs 符合要求色块数目来取舍是否生成文字
如果我使用高效的 Numpy/Pillow 内建函数,而不是我手动的 average 插值 scale 算法(Montage.clippy) 的话,就可以拿来处理视频(否则太慢了,处理不过来),实际上 B 站也有一个罗小黑战绩《晚安喵》的这种视频,有心人不妨试试重构。
#Python #tools #DIP
https://github.com/FerryYoungFan/SimpleTextMontage
虽然数学不好,对某些关系不那么扁平的数据处理也会非常吃力的 duangsuse 就头脑发热地想:
『这么简单的程序,我怎么可能不会写?我一定要写出来看看』
结果就杯具…… 😭 不过还是有一点收获,就是我学会了如何用 color average 插值写位图 scale 算法
虽然花了我至少 6 个小时的时间才完成到可以生成图片(本来应该只要一个小时,可是被 argparse 坑了…… 我不该一上来就填那么多参数),但感觉也还可以,而且我没有在任何关键问题上查资料,也没有看太多次 help
学习还是有效果的,毕竟我学会了这些 API:
Image.open(path)
Image.new(space, coord, fill)
Image#width, Image#height
Image#convert(space)
Image#getpixel(p) -> tuple
Image#setpixel(p, tuple)
ImageDraw.Draw(img: Image)
Draw#text(p, txt, font=, fill=)
ImageFont.load_path(path)当然一般来说为了性能(其实当然在 DIP 的时候算法是最重要的)都直接用 JVM 的
ImageFont.truetype(name, size=fntsz)
ImageFont.FreeTypeFont
awt.BufferedImage 吧……javap javax.imageio.ImageIO
javap java.awt.image.BufferedImage 我的 Gist 上有 Kotlin 字符画 ASCII Art 生成器的源码
看了 FerryYoungFan 的版本,10:52-11:27 花了半个多小时,好像不是提前写好了的,唉
算法上,除了
[xs[k:(k+2)] for k in (0,2,4)] 这种没见过(也不是不会写)都知道不过设计上,没有扣像、 (keyColor, keyThres, keyRatio) 、自动渐变的背景色 (刚才我以为 count avgcolor 是拿来判断背景色的…) 和 xy padding
(w- colPxs*m) /2
也没有加 textVsp 和 textHsp 文字间距,和图像边角的间距,我的版本写的更活一点,不过大概是没有太大意义的……另外 (keyColor, keyThres), keyRatio 我还是会写的,之前的 Kotlin ASCII Art 就用到了 filter 色值的算法;只不过这个是按照 abs 符合要求色块数目来取舍是否生成文字
如果我使用高效的 Numpy/Pillow 内建函数,而不是我手动的 average 插值 scale 算法(Montage.clippy) 的话,就可以拿来处理视频(否则太慢了,处理不过来),实际上 B 站也有一个罗小黑战绩《晚安喵》的这种视频,有心人不妨试试重构。
#Python #tools #DIP
GitHub
FerryYoungFan/SimpleTextMontage
简易文字蒙太奇生成器. Contribute to FerryYoungFan/SimpleTextMontage development by creating an account on GitHub.
duangsuse::Echo
悲惨的起因,只是因为在 GitHub 上看到别人有用 Python+Pillow 写这个: https://github.com/FerryYoungFan/SimpleTextMontage 虽然数学不好,对某些关系不那么扁平的数据处理也会非常吃力的 duangsuse 就头脑发热地想: 『这么简单的程序,我怎么可能不会写?我一定要写出来看看』 结果就杯具…… 😭 不过还是有一点收获,就是我学会了如何用 color average 插值写位图 scale 算法 虽然花了我至少 6 个小时的时间才…
usage: montage [-h] [--convert coding] [--output-format encoder] [-o [opath]]
[--output-fmtstr opathfmt] [--text TEXT] [--grayscale]
[--text-grayscale gray-texts [gray-texts ...]] [--scale ratio]
[--scaleXY x y] [-fnt [fpath]] [-fntsz size] [--preview cmd]
[--preview!] [--print-render-src]
image [image ...]
Simple montage graph generator
positional arguments:
image Images (path) for input
optional arguments:
-h, --help show this help message and exit
--convert coding Convert image color coding (RGBA)
--output-format encoder
Python pillow image encoder type in [png webp pdf bmp
dib gif ico jpeg ppm xbm tiff tga]
-o [opath] Output to file directly (Text)
--output-fmtstr opathfmt
Output filename format like out_@_#.png
--text TEXT Text to be embeeded
--grayscale Use grayscale and text output
--text-grayscale gray-texts [gray-texts ...]
Character for grayscale picking
--scale ratio Text-image scale ratio X.Y
--scaleXY x y, -sxy x y
Size skip of collecting X/Y (override)
-fnt [fpath], --font [fpath]
Font TTF/OTF glyph path, if like `:name`, treat as
font(TrueType/FreeType) name, not path
-fntsz size, --font-size size
Font size (avaliable for fonts by :name)
--preview cmd Preview command (don't do save)
--preview!
--print-render-src Print Render source
by duangsuse, see also https://github.com/FerryYoungFan/SimpleTextMontage
' '.join(iter('金玉其外败絮其中'))
金 玉 其 外 败 絮 其 中 (指cmdline vs. DIP 算法)(大嘘)……
./Montage.py doge.jpg --text "汪" --font :/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc -fntsz 20 Image (640, 640) Scale None
TextXY (20, 22) Clipped (32, 30)
gimp Mondoge.jpg.png莫名为自己抽提逻辑的觉悟而自豪,原来这些程序可以这么好看…… 而且蛮可扩展的 #FP
duangsuse::Echo
莫名为自己抽提逻辑的觉悟而自豪,原来这些程序可以这么好看…… 而且蛮可扩展的 #FP
硬核手动
bytearray…… 不知道有没有提高性能的效果,估计有也是反效果……💭 刚才看到 Electorn-ssr 的 (啊,好像是 SSR Android 的……)speed test,忍不住想起之前我设计了半天……
🤔 其实想过很多,但是要用的话都忘记了…… 这些只是大概,我觉得用独立的组件+并发的池子可能会好一些
inline fun idp<T>(x: T) = x
fun testService(svc: SSR.Profile) {
title.text = "正在测试 ${svc}…"
val res = avgFetchSpeed(svc)
text += res.either(idp, Units.MillSeconds::preety)
}
fun speedTest() = profiles.map(...).foldRight(async {}) { t, r -> t; r.await() }
fun speedTest() = Promise.all(profiles.map(::testService)) 🤔 其实想过很多,但是要用的话都忘记了…… 这些只是大概,我觉得用独立的组件+并发的池子可能会好一些
📝 这周末的任务(反正一定不能完成的!) #task
- 重写 Montage
- 直接重写 Doku 库,删掉所有我不用的代码
留给上帝可怜它们吧
- 三个关于函数式 #FP 的小贴士
(1) 尾递归版本的 skipBytes 可读性比较
(2) 尾递归版本的十进制位数计算
(3) Tail-call-optimization: C 里面怎么做、翻译成循环怎么做、JavaScript 的 tco 调用管理器
- 一个关于函数式 flatMap 的小贴士
(1) (eta :: a -> t a) 和 (mu :: t t a -> t a) 是什么
- Kotlin 的 Job 抽象
- CustomOrd 序(order) 类
- Kotlin 的 Drip 上下文依赖注入
- 写文交流一下思想,谈谈关于编程学习的一些小建议
#book 《平凡的世界》这本书相当不错,推荐阅读。 #China
最近人越来越懒了…… 唉,不知道该怎么办,难道在学校里手闲会影响到写代码的热情?
还是说,该设计的都没有写成 11110101,失去新鲜感了?
想太多,什么都做不了,大概总有一天会麻木的吧。最怕找不到目标了,消遣的人也越来越少了。
当然我不是说大家都在做自己的『事』(其实我没看见几个人在特别地写什么新项目的),只是莫名其妙好像都没人了一样……
- 重写 Montage
- 直接重写 Doku 库,删掉所有我不用的代码
留给上帝可怜它们吧
- 三个关于函数式 #FP 的小贴士
(1) 尾递归版本的 skipBytes 可读性比较
(2) 尾递归版本的十进制位数计算
(3) Tail-call-optimization: C 里面怎么做、翻译成循环怎么做、JavaScript 的 tco 调用管理器
- 一个关于函数式 flatMap 的小贴士
(1) (eta :: a -> t a) 和 (mu :: t t a -> t a) 是什么
- Kotlin 的 Job 抽象
- CustomOrd 序(order) 类
- Kotlin 的 Drip 上下文依赖注入
- 写文交流一下思想,谈谈关于编程学习的一些小建议
#book 《平凡的世界》这本书相当不错,推荐阅读。 #China
最近人越来越懒了…… 唉,不知道该怎么办,难道在学校里手闲会影响到写代码的热情?
还是说,该设计的都没有写成 11110101,失去新鲜感了?
想太多,什么都做不了,大概总有一天会麻木的吧。最怕找不到目标了,消遣的人也越来越少了。
当然我不是说大家都在做自己的『事』(其实我没看见几个人在特别地写什么新项目的),只是莫名其妙好像都没人了一样……
JavaScript 需要另一个方面的改善… 它可以用 Inline IIFE 来应付不能用 lambda 的函数,但太难看了,也不便于设定上下文 context。
node.appendChild((function (key, value) {
var newNode = document.createElement("div");
newNode.setAttribute(key, value);
return newNode;
})("a", "b"));一来… 好在 JavaScript 本质混乱邪恶,IIFE 有不止一种写法…
括号层数 -1:
node.appendChild(!function (key, value) {
var newNode = document.createElement("div");
newNode.setAttribute(key, value);
return newNode;
}("a", "b"));
括号层数 -1:
node.appendChild(!function (key, value) {
var newNode = document.createElement("div");
newNode.setAttribute(key, value);
return newNode;
}("a", "b"));