2019年2月24:完成了除了"Challenge"以外的全部练习和问题. 总共花费15个小时. # 2019年2月26:完成"Challenge 2"(应该是最简单的一个orz,只花了不到一个小时) # Part 1: Physical Page Management # 操作系统必须时刻追踪哪些物理内存在使用,哪些物理内存没有在使用。
说起C语言的变长参数,可能听起来比较陌生,因为很少会需要自己实现。不过想一下scanf和printf,参数个数的确是不固定的。
x86的调用约定主要说的是这几件事:
The order in which atomic (scalar) parameters, or individual parts of a complex parameter, are allocated How parameters are passed (pushed on the stack, placed in registers, or a mix of both) Which registers the called function must preserve for the caller (also known as: callee-saved registers or non-volatile registers) How the task of preparing the stack for, and restoring after, a function call is divided between the caller and the callee 调用约定实际上并不唯一
花费了30+小时,终于搞定了orz # Part 1: PC Bootstrap # The PC’s Physical Address Space # 8086/8088时代 # 1+------------------+ <- 0x00100000 (1MB) 2| BIOS ROM | 3+------------------+ <- 0x000F0000 (960KB) 4| 16-bit devices, | 5| expansion ROMs | 6+------------------+ <- 0x000C0000 (768KB) 7| VGA Display | 8+------------------+ <- 0x000A0000 (640KB) 9| | 10| Low Memory | 11| | 12+------------------+ <- 0x00000000 由于8086/8088只有20跟地址线,因此物理内存空间就是2^20=1MB.地址空间从0x00000到0xFFFFF.其中从0x00000开始的640k空间被称为"low memory",是PC真正能使用的RAM。从 0xA0000 到 0xFFFFF 的384k的non-volatile memory被硬件保留,用作video display buffers和BIOS等。
迫于生计,最近要学习halide
先去学习/复习一下常见的编译优化技巧。
loop unrolling,也就是循环展开,顾名思义,就是把循环展开来写。
课程主页
这课稍微有点硬核…感觉基础稍微有些不扎实就做不下去orz.
A,B,C:都很简单,不说了。
D:一棵树,给出树的结构,以及从树根到某个深度为偶数的节点的路径和,问能否构造一种所有节点点权和最小的树,输出最小点权和。
好久没玩cf了,竟然还能涨分(虽然我用的小号Orz)
三题,D应该是数学+DP…数学实在是忘干净了。。。
* <del>Operating Systems: Three Easy Pieces</del> * fluent python * <del>《计算机网络:自顶向下方法》</del> * 《mysql必知必会》 * PC Assembly Language ( for mit 6.828 )
TL;DR
* 依靠人的小心谨慎是不靠谱的,人总有失误的时候 * 看了下docker volume的权限机制,貌似是从docker image中继承。 * 写了两个脚本,用来把rm alias到mv,避免手滑 又是一个可以摸鱼的周五晚上,sensespider系统测试了一天,fix了几个Bug,似乎可以发布了。系统一直是部署在了docker中..这几天测试产生了不少结果文件在host的volume中… 看着不舒服,干脆删一下好了
起因: # 公司部署在hk的爬虫服务器突然挂掉了。后来发现只是在深圳办公区无法访问。排查后发现原因是docker的网络(包括docker network的subnet或者是某个容器的ip)与该host在内网的ip段相同,导致冲突。
现象: # 使用docker compose 挂载 named volume 无效(且没有错误提示)
在meidum上看到一篇很赞的文章…无奈关键部分一律无法加载出来…挂了梯子也不行,很心塞…刚刚突然发现加载出来了…以防之后再次无法访问,所以搬运过来.
lua是一门轻量级的脚本语言…好像比较适合写游戏?在 太阳神三国杀 中见过很多lua脚本。 由于splash 的渲染脚本需要用lua来写,因此来学习一波。
先放资料,可能比较侧重于go在系统调用方面的内容.
这里不会记录详细的go的语法,只会记录学习的过程,踩到的坑,以及其他我认为值得记录的内容.
再次迫于生计。。。
参考了面向新人的 Python 爬虫学习资料
大致的学习路线为:
一: 简单的定向脚本爬虫( request — bs4 — re )
最近的项目需要java和python之间的进程通信,想到了之前使用过的的grpc.
迫于最近的事情有点多,还是记录一下。 果然to do list什么的,还是要按照年份记录啊。
迫于生计,又要从零开始学习spring.
在这篇文章之前,对java的基础是2015年写过一个java大作业,对spring是一无所知。
真是个不明觉厉的术语…其实是个特别简单的概念orz