0%

今年4月21来的上海,住的唐陆公路的青年公寓,4月26日住进永华苑,快7个月了。10月5日左右加了很多qq群,认识了很多牛人。无论年龄,薪资,技术我都不如他们,向他们学习。
4月16离职,5月1日算是入职现在的创业工作室,老板最近总算注册了公司,说要等银行开户再签劳动合同,等待吧。这期间我学了很多东西也做了一些项目,希望我能变强。
我最近私下在看vue和react的原理,我qq认识的高手,研究得很深,还有00年就校招进腾讯的,入行迟了,本来就不如科班的,我努力吧,超越他们。
博客很久没写了,我看别人都在写自己的软件,项目,发布博客,我也写起来,算是总结学习吧,我也没宣传过这个博客,博客的评论我4月提了离职没时间做,还没好,有空补。

这几个月在做区块链项目,我们只给别人做项目不运营,不违法哈。
碰到个问题,web3的web3.utils.bn用法是错的,按bn库的来就对了,浪费了我很多时间。然后send.on的sending和sent好像写反了。看来文档也不可靠,还是要信自己。

记录下学习记录,一直没好好记,目前已入职一个多月,提高技术,向目标迈进。

20210528:编码 by查尔斯配措尔德
20210604: 鸟哥的linux私房菜官网看了前面几章了解历史
20210605:The Linux Command Line by William Shotts

外包驻场绝对不去
算法不行
早上上海银帆科技有限公司先笔试再问问题,问我期望薪资,我说10000上下,
下午鸣皋教育,距离远,用了一下午,坐错地铁了,拼命赶路流了很多汗,电话打不通,找到了也从2点等到快3点,没什么诚意,问了算法和set去重原理,深拷贝等,答不出来就结束了,感觉这公司不太好,答不出来归答不出来,浪费我一下午。

学习过程中碰到的额外东西随便写写。

  1. NAT(Network Address Translation):网络地址转换协议。NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。nat路由器。端口映射

  2. 国际化域名(Internationalized Domain Names) ,英文简称 IDN,也叫多语种域名,是指非英语国家为推广本国语言的域名系统的一个总称。

  3. 转移注册商,内网穿透。

  4. NAS(Network Attached Storage:网络附属存储)连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。
    Updated on 3/26.2021

  5. DDNS(Dynamic Domain Name Server,动态域名服务)
    DDNS用来动态更新DNS服务器上域名和IP地址之间的对应关系,从而保证通过域名访问到正确的IP地址。

  6. MOdulatorDEModulator,电话线,模拟信号和数字信号转换。电话线的问题是短距离可以传输数字信号,长距离信号衰减严重。

  7. 互联网服务提供商(Internet Service Provider),简称ISP,接入服务,导航服务,信息服务

  8. 基于以上,花生壳等产品可以通过DDNS让外网访问服务器。

  9. 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

  10. 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

  11. 虚拟机属于虚拟化技术。而Docker这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化。

  12. Docker
    不同的应用程序可能会有不同的应用环境,这个时候就要隔离。可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,开销高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。
    开发用Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,有docker你就可以把开发环境直接封装转移给运维,运维直接部署docker。部署速度快。
    在服务器负载方面,单独开一个虚拟机会占用空闲内存的,docker的话,这些内存就会利用起来。

  13. 前几天网上看到的ctrl+enter直接浏览器跳转url,刚知道。上上周同事nginx用命令行重启,我做的第一个项目发现行不通,就任务管理器手动,然后前几天看了下nginx官方文档,才发现是可以重启的,别人博客写的命令错了,还是要看官方的文档。

  14. 看到知乎有个问题,9.9服务器不能用。玉伯说每月 9.9 元,一年 120 元,一个星期只吃馒头,钱就省出来了。别跟我说馒头不好吃,穷就得学会吃点苦,学会感激这年头再穷还能吃上馒头不至饿死。我好像看错题目了,题主是吐槽 9.9 元每月的阿里云服务器跑不动你的代码?如果是这样,建议每天多吃几个馒头,然后熬点夜,把程序优化到 9.9 元的服务器也能跑动。笑死。

  15. 桥接(Bridging),是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层。一般的交换机,网桥就有桥接作用。
    路由器和交换机区别
    路由器实现了不同网络之间的数据转发,交换机实现了特定网络内的数据交换。

  16. 工作层次不同:
    交换机主要工作在数据链路层(第二层)
    路由器工作在网络层(第三层)。

  17. 转发依据不同:
    交换机转发所依据的对象时:MAC地址。(物理地址)
    路由转发所依据的对象是:IP地址。(网络地址)

  18. 主要功能不同:
    交换机主要用于组建局域网,
    而路由主要功能是将由交换机组好的局域网相互连接起来,或者接入Internet。
    交换机能做的,路由都能做。
    交换机不能分割广播域,路由可以。
    路由还可以提供防火墙的功能。
    路由配置比交换机复杂。

  19. 价格不同

有线桥接
方式一:搭建子网络 LAN-WAN 方式二:当 AP(无线交换机)使用 LAN-LAN
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

1Mbps = 128KB/s
20210330
16.昨晚花了3小时想把移动送的光猫和一台旧的斐讯路由器桥接,结果发现不行,因为担心光猫桥接模式会导致不能上网,所以只能用斐讯作为副路由器,移动的路由器进超级管理员没发现wds功能,只得作罢。
至于nas,我下载了恩山无线论坛的黑群晖也做好了引导文件,大学时候的笔记本准备双系统或者直接dsm系统。太晚了有空再说。
17. 路由器桥接时,为什么要关闭dhcp服务器?
存在IP地址冲突
网关不正确
18.用虚拟机virtualbox和vmware station装dsm系统,发现群晖助手和网页都找不到nas,不知道是不是mac地址问题,还是其他问题,只能作罢。
Update on 20210402
19.这几天有空都在想办法桥接和dsm,都失败了,应该是网卡问题,旧笔记本是在学校时候买的,网卡太老,也不是intel的,要么加网卡要么加驱动。
今天用三丰云虚拟主机建立了博客网站http://ftp6448819.host123.sanfengyun.cn/akayi/,因为github最近不太稳定,目前问题是免费的不支持node,不能渲染css,我尝试使用hexo的ftpsync部署。然后发现报错,百度了很久找不到办法,只好像改bug一样自己修改ftpsync的js代码,没想到马上成功了,自己懂的还是自己改吧,不难。

项目有个大屏,要求把我做的7个大屏用3d相册形式放一个页面,项目经理找了html5的源码,但是不好放在vue里,所以我自己重写了,我用transform和转换视角做出了效果,有个问题,要求点击左右箭头图片看起来是轮播的,我本来思路都是v-on:class和v-if,v-show,我突然想到可以用数组,imgLists.slice(1).concat(imgLists.slice(0, 1))类似这样不就可以切换图片顺序,配合nth-child就好了,在这里记录一下。

20210414

项目经理早上说客户要求切换有动画效果,我之前的数组肯定是没有的,我考虑用v-on:style,从改变src数组变成改变style数组,然后translate不能这样写了,考虑用绝对定位top,left代替,方便只过渡位置,不过渡其他样式。最后发现确实可行,本来以为要重新想3d相册的思路,这样改动最少,有了思路几分钟就改好了。

今天是2021年3月22日,用vue有一年了,从自学做demo入行到做公司项目,总结了下做过7个公司项目,5个是vue,不过有3个接手时基本已经完成了,只不过同事离职了或者有别的项目,我只负责了开头或者改bug。有两个项目,一个公司内部的看板是独立负责前端,一个是新增的几个模块也是我独立负责前端。
我从githubclone了v2.6.11的版本,用cmd查看了项目目录结构是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
├─.circleci
├─benchmarks
│ ├─big-table
│ ├─dbmon
│ │ └─lib
│ ├─reorder-list
│ ├─ssr
│ ├─svg
│ └─uptime
├─dist # 项目构建后的文件
├─examples
│ ├─commits
│ ├─elastic-header
│ ├─firebase
│ ├─grid
│ ├─markdown
│ ├─modal
│ ├─move-animations
│ ├─select2
│ ├─svg
│ ├─todomvc
│ └─tree
├─flow # flow的类型声明文件
├─packages
│ ├─vue-server-renderer
│ │ └─types
│ ├─vue-template-compiler
│ │ └─types
│ ├─weex-template-compiler
│ └─weex-vue-framework
├─scripts # 与项目构建相关的脚本和配置文件
│ └─git-hooks
├─src # 项目源代码
│ ├─compiler # 与模板编译相关的代码
│ │ ├─codegen
│ │ ├─directives
│ │ └─parser
│ ├─core # 通用的、与运行平台无关的运行时代码
│ │ ├─components # 内置组件的代码
│ │ ├─global-api # 全局api的代码
│ │ ├─instance # Vue.js实例的构造函数和原型方法
│ │ │ └─render-helpers
│ │ ├─observer # 实现变化侦测的代码
│ │ ├─util
│ │ └─vdom # 实现virtual dom的代码
│ │ ├─helpers
│ │ └─modules
│ ├─platforms # 特定运行平台的代码,如weex
│ │ ├─web
│ │ │ ├─compiler
│ │ │ │ ├─directives
│ │ │ │ └─modules
│ │ │ ├─runtime
│ │ │ │ ├─components
│ │ │ │ ├─directives
│ │ │ │ └─modules
│ │ │ ├─server
│ │ │ │ ├─directives
│ │ │ │ └─modules
│ │ │ └─util
│ │ └─weex
│ │ ├─compiler
│ │ │ ├─directives
│ │ │ └─modules
│ │ │ └─recycle-list
│ │ ├─runtime
│ │ │ ├─components
│ │ │ ├─directives
│ │ │ ├─modules
│ │ │ └─recycle-list
│ │ └─util
│ ├─server # 与服务端渲染相关的代码
│ │ ├─bundle-renderer
│ │ ├─optimizing-compiler
│ │ ├─template-renderer
│ │ └─webpack-plugin
│ ├─sfc # 单文件组件的解析代码
│ └─shared # 项目公用的工具代码
├─test # 项目测试代码
│ ├─e2e
│ │ └─specs
│ ├─helpers
│ ├─ssr
│ │ └─fixtures
│ ├─unit
│ │ ├─features
│ │ │ ├─component
│ │ │ ├─directives
│ │ │ ├─filter
│ │ │ ├─global-api
│ │ │ ├─instance
│ │ │ ├─options
│ │ │ └─transition
│ │ └─modules
│ │ ├─compiler
│ │ ├─observer
│ │ ├─server-compiler
│ │ ├─sfc
│ │ ├─util
│ │ └─vdom
│ │ ├─modules
│ │ └─patch
│ └─weex
│ ├─cases
│ │ ├─event
│ │ ├─recycle-list
│ │ │ └─components
│ │ └─render
│ ├─compiler
│ ├─helpers
│ └─runtime
│ └─components
└─types
└─test

aa

有个项目是之前的同事做的,他很厉害,前后端一个人做的,但是他和领导闹矛盾一气之下辞职了,这个项目还没完成,bug很多,公司当时会vue的人只有我,所以就落到我这里了。本来9月左右我把bug解决了,没想到这么久了客户提出了新的需求和bug。

本来也没什么,但是vant我不够熟悉,这两天遇到的bug和需求设计vant和vue,我相当于速成了vant,总算解决了,其他没什么,和elementui差不多,主要是多选框卡住了,客户急用,幸好2天解决了,因为6号就放假了,那就尴尬了。

总结:
1.vant-checkbox-group用toggle选择、取消选择
2.对于对象直接赋值添加属性是非响应式,需要Object.assign或者this.$set
通过这次经历,我对vue更加熟悉了,也初步入门了vant

4月到现在入行快10个月了,学到了很多前端的东西,vue和layui更加熟悉了。
activex控件也学了点东西,客户要用嘛。客户要求了很多东西,所以更熟悉layui的源码了,因为必须改源码才能实现一些功能。