2019 年结束,按照国际惯例,应该有一篇年终总结报告,以对过去一年的个人工作、学习进行回顾和思考。类似的总结总是枯燥又无味,一不留神就容易变成没有目的性的流水账记录,索性以 TODO-List 的形式将每周完成的任务记录了下来,但是记录就是记录,读起来琐碎零散也没有意义。这样想来总结性质的报告似乎也是有意义的,趁着放假前的空闲周末,就来赋予总结报告以意义吧,顺便立下 flag 等着明年打脸。
wordpress 主题 kratos-pjax 插入音频列表 playlist 无法解析的捉虫过程
昨日的沙坪坝天气大晴,得意忘形之下急性咽炎发作,大意了。从校医院拿了药回来,不太想干活,就来整理一下这几天遇到的一个关于 wordpress 主题屏蔽部分 js 导致的解析错误问题。
wordpress 版本 5.3.2 更换主题 kratos-pjax 后,插入的音频列表无法被正确的解析出来。通过审查元素发现,DOM ID 为 tmpl-wp-playlist-item 和 tmpl-wp-playlist-current-item 的脚本都存在,初步断定 wp_playlist_scripts() 脚本大概率工作正常;同时 DOM Class 为 wp-playlist wp-audio-playlist wp-playlist-light 的元素也都存在,且被正确解析,大体可以排除文章内容渲染的问题。
四月二日开始的故事——『Supipara - Alice the magical conductor.』
『SPPL STORY #01 - Spring Has Come!』是中二社于 2012 年 5 月推出的全年龄向 Gal。
脚本:竹田、鏡遊、御影;
音乐:天門;
原画/人设:七尾奈留、結城辰也、庄名泉石。
应届面试记录
字节跳动
- 视频技术面
- 简单介绍自己
- 根据简历提了一些问题
- 手撕代码(单链表交换相邻的两个节点)
C 标准库源码解析:内存拷贝与字符串拷贝
C 标准库中对内存拷贝的操作位于头文件 <string.h>,其中涉及到内存拷贝的函数有:
- memcpy:内存拷贝,存在内存重叠的风险,源地址空间与目的地址空间的数据安全皆无法保障
- memmove:内存拷贝,可以保证目的地址空间数据的安全(不越界的情况下),但仍可能破坏源地址空间的数据
- mempcpy:内存拷贝,返回目的地址空间拷贝末尾后一个地址
CodeCraft 2019 城市交通动态系统最优(DSO)配流问题
【CodeCraft 2019 华为软件精英挑战赛】城市交通动态系统最优配流问题
问题简述
问题定义
- 在模拟的道路图上为每一辆车规划行驶路线,系统会自动根据规划路线运行。
- 在路线合法的前提下,最终所有车辆按照规划的路线到达目的地。
- 系统调度时间短者胜出。系统调度时间指,从系统调度开始时间,至所有车辆全部到达目的地的时间,两者之差作为系统调度时间。
围观 IOCCC 上的鬼畜 C 代码
量化交易之交易系统的组成
量化交易作为一种投资方法,以大量先进的数学模型替代人为的主观判断,依托计算机强大的计算能力,从庞大的数据中计算出能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。交易系统则是指在市场中能实现稳定赢利的一套规则,包括科学的资金管理,有效的分析技术,良好的风险控制。交易系统的最终目的是实现稳定赢利。
【LeetCode】【0003】Longest Substring Without Repeating Characters
描述
Given a string, find the length of the longest substring without repeating characters.
Example 1:
1 | Input: "abcabcbb" |
【LeetCode】【0002】Add Two Numbers
描述
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
【LeetCode】【0001】Two Sum
描述
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
个人管理学的零零星星
抄一段学术定义开篇:
- 个人管理学是系统研究个人管理活动的基本规律和一般方法的科学。
- 核心问题是个人的生存和均衡发展。
- 最终目标是个人的全面自由发展和自我实现。
- 个人管理学可以用于指导对个人的人生目标、思想、行为、资源等进行规划、组织和调控,以实现个人的人生目标和人生价值。
- 个人管理方法:目标管理、任务管理、时间管理、计划管理、实施管理、成果管理、风险管理
- 个人管理实务:学业管理、职业管理、婚恋和家庭管理、个人知识管理、个人财务管理、个人信息管理、社会关系管理、健康管理、总体管理
DHT(分布式哈希表):一种分布式存储方法的相关研究调研
本文是一篇类似于文献综述的东西,做点前期调研。
随着区块链项目的火热,很多传统技术结合区块链技术都取得了一定程度上的成功。2014 年 Juan Benet 成立了 Protocol Labs 并在开源社区的帮助下发展出了 IPFS[1]:一个去中心化的分布式文件系统。IPFS 的下层构建于对等网络交换协议,其核心是用于索引数据的分布式哈希表(DHT)。
博客回迁,网站备案,域名 xiongxiong.me -> xiocs.com
在搬瓦工上买的机子,单核 512M 内存 1M 带宽,一年租金 11 刀,建了这个技术博客。奈何访问速度不行,19 年 1 月 16 日决定迁回国内,于是购买阿里云服务器,原先的 .me 域名不支持备案,就直接在 godaddy 上购买了 .com 域名。
2018 年个人年终工作总结及 2019 年全年计划
8102 年捣鼓着寻思着就过去了,陆续看了网易云音乐、哔哩哔哩以及支付宝出的个人年终报告,尤其是网易云的报告,激起了漫漫回忆。从18年初一直到18年6月,这段时间一直处于持续的高压状态,期间一直循环着 yousa 的歌,一边生疏地用着调试工具调试着内核,感觉没多久前的事情,现在都感觉有点陌生了。时间冲淡了点点滴滴,再次一一回忆起来,这一年做了什么、有什么遗憾、成绩与不足、经验与教训、计划完成情况、新一年的计划....,整理归档一番还是很有必要的。那么接下来就照着下面的顺序来顺一顺。
CTP API 的初始化 demo 以及相关资料的整理
IPFS:去中心化的分布式文件系统简介
IPFS(InterPlanetary File System,星际文件系统),是一个面向整个互联网、基于点对点传输的去中心化分布式文件系统。通过对网络通信、数据处理方法和传输协议等过程的封装,IPFS 能够将运行在多种异构网络上的节点存储资源组织起来,同时向每个节点提供整个 IPFS 网络的存取服务。白皮书中列出了如下几个特点:
局域网主机通过内网跳板连接外网的一个方案
故事是这样的,原导师离职,所以更换了导师,加入了一个搞分布式文件系统的课题组。暂时给的课题是先学习 ceph 和 ipfs,并把环境搭建起来分析源码。导师留下了几台电脑没人用,所有就拿过来重整了一下。
本学期校园网打击个人 WiFi 的行为可谓到了极端的地步,根据脚本日志显示,路由器通过 drcom.py 连接的方式平均每天要掉 8 次以上,而且还会每隔十几分钟就中断连接数十秒,真是非常难受了。于是暂时的解决方案是这样的:
FIOS 调度器实现
核心数据结构分析
fios 队列结构: 1
2
3
4
5
6struct fios_queue {
pid_t pid; // 进程的pid
struct rb_node fiosq_node; // 将fios queue插入到fios rb-tree,主要用于在dispatch阶段,快速的取出下一个要被处理的fios queue
struct rb_node pid_node; // 将fios queue插入到pid rb-tree,主要用于在插入请求add request阶段,能够快速的通过进程pid找到要插入的fios queue
struct rb_root rq_list; // 组织请求
struct list_head fifo; // 为了确保不会出现请求饥饿
LightNVM 代码分析总结
内核版本:Linux-4.19
Lightnvm 与 pblk
Lightnvm 与 pblk 的关系,类似于 linux 块层与 IO 调度器之间的关系。即在 lightnvm 中可以有多种 FTL 的实现,这里 pblk 就是一种 FTL 的实现。Lightnvm 子系统在支持PPA接口的块设备的基础上进行初始化。该模块使内核能够通过内部 nvm_dev 数据结构和 sysfs 等来暴露设备的几何结构信息。通过这种方式,FTL 和用户空间的应用程序可以在使用前就了解到设备的底层信息。此外 Lightnvm 子系统还有一个最重要的功能——管理 target 的划分以及指定用于管理 target 的 FTL。