实训日志

6.8 周一

  • 今天第一天开始项目实训, 作为团队的一员, 我们一同思考如何构建这个项目
  • 最终决定以git作为项目的合作平台

6.9

  • 对于整个项目的参考需要一定的界面, 但是我们没有什么合适的设计师
  • 最终在许多开源的后台界面中, 选择了vue-element-admin

6.10

  • 学习docker
  • 讨论具体需求和接口相关

6.11

  • 学习docker, nginx, 对接口进行设计

6.12

  • 今天试着搭建项目, 用vue-cli初始化项目, 然后设计一下项目结构
  • 预计api提供项目请求的实例化等等

6.13

  • 设计接口, 讨论需求
  • 学习开源的后台界面
    • 项目结构设计

6.14

  • 继续学习开源的后台界面
    • 项目依赖相关查看了解作用

6.15 周一

  • 今天将项目初始化, push到了git上
  • 继续学习开源的后台界面
    • 学习vuex

6.16

  • 将vue-cli初始化了项目, 上传到了github
  • 同步进度

6.17

  • 根据约定好的开始编写爬虫页面
    • 完成列表页面部分, 设计table, 筛选, 分页

6.18

  • 今天完成爬虫详情页面, 获取回显的表单, 列表展示部分

6.19

  • 今天开始调查如何实现查看爬虫文件, 最初约定是使用treenode, 编写的时候发现有点难
  • 编辑器本来打算使用vscode的后面决定使用轻量的codemirror lite

6.20

  • 编写浮窗表单部分, 完善项目

6.21

  • 今日继续完善部分bug, 准备周一的考试

6.22 周一 考试

  • 上午考试, 下午开始开发任务界面
  • 尝试复用列表组件设计, 详情等

6.23

  • 继续开发任务界面
  • 任务筛选和列表完善

6.24

  • 完善概览部分的表单回显, 同时新建结果tab

6.25

  • 开发结果列表, 完善任务界面
  • 将任务, 爬虫, 节点间的跳转完善

6.26

  • 这段时间开始对接口进行测试
  • 考虑联调方法

6.27

  • 接口测试, 进调, 修复显示错误, 字段错误

6.28

  • 接口测试中, 修复文件显示错误, 图标正则完善

6.29 周一

  • 进行联调, 联调中优化页面等, 最后过一遍

6.30

  • 走一遍项目流程, 合作进行优化

7.1

  • ppt制作, 最后演练一下, 控制讲演时间

plan-in-2020

很迟的计划

  • 我的思考
    • 未来职业发展
    • 如何生活
    • 结婚如何处理
  • 我向往的事
    • 能写出评价不错的技术文章
    • 能在某一方面进入专业领域成为up主
    • 想要有高水平的画技
    • 用深度学习完成有意思的项目
    • 可视化, 在浏览器中做出美丽的3d效果
  • 我的计划
    -

typescript

一篇讲述 BFC 文章的寻根之路

这次要写的东西和标题一致, 就是找一篇文章的来源

首先介绍一下背景, 就着准备春招, 我用 docsify 建了一个静态的知识站点, 然后就开始了大规模的搜索知识, 利用书和网上的文章丰富内容, 这次找到了一篇文章↓

[布局概念] 关于CSS-BFC深入理解

看着点赞数和内容的丰富程度应该是没问题, 稍后再总结一下应该没问题, 然后我就略过去了

当正式仔细看的时候就发现, 结构有点不大对啊, 看这右边的结构, emmm

阅读更多
hexo history 插件开发

更新: 写一个大型的插件集合, 把我之前对文章中想要的功能全集中进去, 提供按需加载功能, 预计@#$!前完成

开端

因为写文章经常想要看看以前写的是啥, 又怎么改过来的, 所以编写了这个插件, 最早的想法起于十月
详细使用方法可见 hexo-history

效果

右下角尝试一下就好, 配置如下图

简介与发展

最早时想的是能够对比出上一次文章的差异, 所以不知道自己想要什么效果, 执行的流程又是如何, 现在整个核心思想应该是展示旧文章是如何转变为新文章的, 通过删除, 新增, 更改来标注段落

但是到现在,只完成了能够查看以前写的是啥, 最想写的文章更改还差部分, 所以预计将会在面试结束前后完成

编写思路

执行流程

  • hexo 注册函数
  • vue 挂载, 请求 github 得到内容
  • 选择时间, 插入骨架屏到页面
  • 在 iframe 中加载dom, 然后返回想要的 dom 节点
  • 替换节点, 加载成功

建立整个项目的基础

找到了 git-history 项目, github 相关 api, 然后根据 hexo-helper-live2d, 了解了 hexo 注册方法, 此时正式开始

流程细节

hexo 注册

hexo 可以用 vscode debug, 具体可见 hexo debug

另外, hexo server 的内容似乎用 hexo generate 更新后也不会改变, 所以让我出现不少蜜汁操作

本来使用 after_render:html 参数基本解决插入脚本的问题, 可是想要只让 post 文章中才显示, 所以测试了filter 中的 after_post_render 参数, 在 issue 中了解到应该是新建一个 post 的时候才会调用, 又尝试了其他参数, 和 processor, renderer 等扩展注册, 都没法解决问题, 看来应该只能在执行的时候判断了,现在搁置

如何在插件中使用 vue

  • 使用 $mount 动态挂载
  • 使用 iview 省得手动写组件

遇到的问题

  • 用 innerHTML 来替换节点, 发现渲染似乎不变, 改为 dom 节点替换

骨架屏

使用手写的骨架屏方式, 然后注入进去

遇到的问题

  • 希望能动态生成
    • 用 js 读取文字长度再转为像素, 设定几个div加上css
    • 将 p 标签全部转为 span 等行内标签就可以自适应长度, 再用css显示
    • 嫌麻烦, 就这样了

请求方式

采用 fetch 请求, 就没必要写回调, 直接 await 清清楚楚, 同时有 sessionstorage, 存储下请求, 防止多次访问

节点渲染

用 iframe 在内部挂载好事件监听load再返回, 力求一致

遇到的问题

  • !!!并未解决, 如果换了主题, 之前的资源文件都被删了, 该怎么办
    • 放到某个cdn上, 然后手动替换字符串
    • 检测节点属性挂载

打包优化

  • webpack 使用生产模式
  • vue 使用外部 cdn
  • 可以把 iview css 分出来, 但没有这么做

超详细流程

从整个执行流程来看, 首先需要一个执行的

  • hexo 注册函数, 移动js文件, 修改html文件内容
  • vue 挂载, 将组件插入文档中
  • 在组件 mounted 时, 请求 github 当前页面的 commit 历史
  • 解析 response, 请求 commit 的具体信息, 再根据具体信息找出当前页面的更改信息的url, 这次请求便可得到内容
  • base64 decode 获得最终想要的文档, 返回到组件 data 中的 items 属性, 此时组件开始渲染
  • 选择想回到的时间, 插入骨架屏到页面
  • 在 iframe 中加载dom, 然后返回想要的 dom 节点
  • 替换节点, 加载成功

heckel-diff-algorithm-implemention

paul heckel diff 算法分析与实现

  • 将文件N的i行读取入数组
  • 创建对象中还未存在i属性, 如果有增加其count计数

nodejs 批量反向查询并下载原图

效果

采用了队列式的下载, 保证下载不停滞, 当搜索出的所有结果下载完成后才移动被搜索的图片
下面是第一批的结果, 截了部分图片, 另外这个是多次运行项目最后得到的结果(前期编写不完善), 从100张图片搜索共得到313张, 有4张图片无法查找到结果, 原因和改进都会在下方讲述

现已经由250+图找到了700+图, 注意, 目前没有普适性(使用了七牛云, 虽然也写了 smms 但是没有使用), 项目仅供参考, 项目地址

部分图片

代码超级无敌耦合, 意大利面式的最佳实践 😂, 由于后面会写前端可视化时改写, 所以先这样吧, 等三四月边面试边写

阅读更多
计算机网络

第一章 引言

基本概念

  • 计算机网络: 一组通过单一技术相互链接的自主计算机集合

网络分类

  • 依据传输模式
    • 单播: 只有一个发送方与一个接收方, 也叫点到点链路
    • 广播: 任何人发出的数据包能被任何机器收到, 但是根据数据包首部的地址字段判断是否应答
    • 多播/组播: 将数据包发给一组机器
  • 依据尺度
    • 局域网: 局部地区的私有网络
      • 无线: 每台计算机有无线解调器与天线来与ap, 基站, 无线路由器通讯, 这些装置负责无线计算机之间与计算机和互联网的中级
      • 有线: 以太网 IEEE 802.3 最常见, 通过点到点拓扑连接到交换机, 交换机判断数据包地址给相应的计算机
阅读更多
面试准备

数字图像处理

图像表示

  • 数字图像
    • 由有限的离散元素组成 $f(x,y)$
    • 每个元素称为像素
  • 图像在内存中的存储
    • 大小: 分辨率, 宽 x 高
    • 颜色空间: rgb, cmyk
    • 通道: 1, 2, 3, 4, gray & color
    • 深度: 每个通道的位数
      • cv_8uc1: 8 位无符号整型单通道矩阵
      • cv_32fc2: 32 位浮点型双通道矩阵
    • 坐标系: 左手, 右手
    • 交叉存储, 顺序存储
  • 邻域: 周围的像素
    • 四邻域
    • 八邻域
阅读更多