CSAPP
昨天与同学面聊,提到了CSAPP的书后题答案,说是在Github上有,我找时间也看看。 同时也得把手写操作系统安排到日程上来了。写过还是比没写过要理解上强很多。
LeetCode两数之和
总感觉直接在LeetCode上直接写完代码(实际是啥也不会、抄袭别人),自己不完全能留下一些印象,所以我想起这个Post记录一下。由于我没事会翻自己的网站看,所以应该还能起到复习的效果吧(?) 两数之和两数之和题目大致是从数组中找出两个两个数,这两个数的和正好等于目标数。 大致有两种解法: 遍历。拿一个数,与剩余其他的数做加法,看是否等于目标数。 按照我自己的理解说法,就是将看过的数留下记忆,再将新拿到的数与目标数做差,看差值是否与自己心中的数一致。 记忆工具用的是hash表。因为有记忆了,所以算法的时间复杂度应该会下降。(我对算法理性理解很差,所以请饶了我吧) 题目123456/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target, int* returnSize) { ...
准备leetcode刷题第一天
今天做点简单的准备,并做好下周的规划。 |星期日|星期一|星期二|星期三|| 星期日:准备基础环境:编辑器:vscode、vim、lvim操作系统:MacOS、Ubuntu编译环境:gcc、g++、clang、(Java、Python、go)debug工具:gdb(Ubuntu)、lldb(MacOS)Terminal:kitty、tmux 编辑器编辑器我打算学习使用一下lvim,lvim是一套现成的带插件neovim,可能在某些方面他不如vscode,但是我也想学学入一下门。 准备花一个月的时间来学习、适应lvim。 学习流程安排数据结构复习: 排序: 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序 树: 图:
准备leetcode的第二天
数据结构复习 冒泡排序做个类比话,冒泡排序就是你小学时老师给你们班同学大小个。老师会先让你们随便站一排,然后他会从前面开始看,如果发现有两个挨着的人,高的在前面,矮的在后面了,就会让他俩换一下,一直换到排尾,这样排尾那个人就是最高的。再来一次,最后一个和倒数第二个就是排好的了。这样一共来n次,n是全班的人数,全班就肯定都排好了。 选择排序假设个场景,按学术水平给大家排队上台领奖。之前大家不知道这个要求,已经随便在下面坐好了。这种情况下,我们要求,第一个作为上的同学先说说自己的学术水平。比如第一个同学说我能做到50nm,之后后面的同学依次报自己的水平,之后我们需要所有同学中制成能做到最小的,他直接和第一个同学换一下位置。好,之后一共来n次,就排完了。 插入排序玩扑克,摸牌。摸完牌有不少人有习惯按顺序排手牌。你摸牌之后,你看他会做什么,把牌插到手牌里,对吧。但是我们主观有个判断能力,这🃏如果大就从后往前插入,这🃏如果小就从前往后插入。但是计算机没这个主观判断的能力,我们都希望要大牌,我们就希望我们拿来的🃏就是大的,所以就从后往前插。(仅供记忆用,实际的原理不是这样)
Shell编程的一点基础内容
Shell今天学习了一点shell编程,根据mentor提供的一个shell脚本进行更改实现自动定时抓Pod包的功能。 学习到的内容如下: shell创建文件自带时间 1touch $(date +%y%m%d).cap shell对后台运行的进程进行kill 1kill -9 PID shell将grep的内容选取其中一列 1awk -F ' ' '{print $5}' 使用awk取某一行数据中的倒数第N列:$(NF-(n-1)) 比如取/etc/passwd文件中的第2列、倒数第1、倒数第2、倒数第4列(以冒号为分隔符)。($NF表示倒数第一列,$(NF-1)表示倒数第二列) 参考文献:awk的一些用法 如果不存在,则创建一个文件夹 12345if [ ! -d capFiles ]; then mkdir capFileselse echo 'dir exist'fi if语句 12345678910111213if ((1...
Redmi Note5A 刷LineageOS
解除小米的Bootloader锁自行Google,官方就有解决方案,需要Windows。 下载adb自行Google下载,如果不识别设备,Google解决方案,网上也有讲,大概就是手动绑定对应设备。 手机得开开发者模式,小米系统还要插sim卡绑定乱七八糟的东西,需要小米账号,之后就可以adb控制了。 还有介绍说要下载usb驱动,但是我没下也没啥大问题;还有说要usb2.0,我也没usb2.0,也没啥大问题。 引导启动有3个不同的东西,一个是recovery系统、一个是fastboot、一个是我们要刷的系统。 首先应该是进入fastboot,之后在这个模式下刷recovery系统,但是我实际遇到了些问题,可能是没权限,反正直接刷重启是啥也没有,还是小米的recovery。不过可以fastboot里面直接用那个recovery reboot,就能进去了,不同手机的recovery不一样,必须对应才能好使。进去之后再install...
使用ssh在后台运行程序
使用ssh在后台运行程序方法之一:使用nohupnohup可以使后面的命令不会响应挂断(SIGHUP)信号。也就是说,通过远程登录执行nohup命令后,即使退出登录后,程序还是会正常执行。通常情况下,nohup命令最后会跟上&字符,表示将这个命令放至后台执行,这样才能真正做到将这个命令放至后台持续的执行。具体示例如下所示。 提示:nohup通常用于执行无干预的自动化程序或脚本,无法完成带有交互的操作。 执行如下命令,每秒输出一行信息。bash hello.sh系统显示类似如下。 在命令头尾分别加上nohup和&,如下所示,可以看到nohup输出了一行信息,再按一下回车键就跳回了Shell命令行,此时命令已经在后台执行了,nohup将命令的输出重定向至当前目录的nohup.out文件中。同时注意到nohup会将对应程序的PID输出,PID可用于需要中断进程时结束进程。 nohup bash hello.sh & 系统显示类似如下。 通过如下命令,可以持续的查看nohup.out的输出,达到监视程序的效果。 tail -f...
国行PS5备份港服那些事
仅记录我自己想要备份港服时遇到的问题。 我买的国行PS5,为了省钱和省事没买港版和日版。机器到了之后我也没第一时间备份港服,先是在国服下了个原神,又拿光盘安装了两个游戏。 我一开始是没有着急注册港服账号的,因为想着买光盘玩。但是后来发现有一些游戏可以ps4升级ps5,在国服又无法升级,这样产生了这样的需求。 所以我先要备份的时候已经安装了几个游戏了,但是备份与恢复听起来好像就会把我已经安装的游戏删掉,为了避免把我费了很长时间下载的游戏删掉,我做了一些调查,找到比较有参考意义的论坛内容: 国行PS5增加账号问题 ps5ssd问题 根据这两篇内容被提问者采纳的回答,我总结如下: 如果找熟人备份可以同时备份国服和其他服账号,之后用于恢复PS5,这样不会删除已经安装在m.2 SSD中的游戏。 将PS5内置的m.2...
好久没写,做个总结
python抓包scapy 抓包工具123 dpkt 内容分析kubernetes挂载configmap相关问题使用configmap可以使用volume和volume mount进行挂载,具体的还涉及重写整个文件夹还是只添加一个文件(subpath)。但是挂载上去的文件始终没有写权限,即使setmode:0777(十六进制或十进制544吧?),在容器内看也都是有权限的,但是没用。最后就cp一份出来再写。 同时configmap如果使用重写整个文件夹的模式,可以有自动更新挂载的configmap功能,大约10s一次。 python多进程、多线程多进程我尝试了去写多进程(并发/并行?)运行一个程序,但是进程间通信没完全成功,还有待进一步研究。 多线程现在的操作系统会自动的去分配多线程给多个CPU,所以似乎可以不用多进程。
零碎内容
UTCUTC全称Coordinated Universal Time,中文译名协调世界时。 在linux系统中有时候需要看其UTC时间 ``
