# Pre 2016
年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!又是新的一年,又是新的一个月!先把上个月没有完的做完。
# 月初计划
# TODO
- nginx配置
- 2048修复
- 走向共和
- webpack, broserify等前端模块管理工具
- dae熟悉和使用
- leetcode刷10道题目
- 修正甜甜的日记(vue-cli)
- git学习 (opens new window)
- 熟悉sql语句
- 模拟滚动条制作
# Articals
近年来前端技术发展方向 (opens new window) Git时代的VIM不完全使用教程 (opens new window) Vim命令合集 (opens new window) 浏览器渲染专题 (opens new window) 手机淘宝H5适配 (opens new window)
# 2016/01/04
- http status code
- 204 No Content
- 401 Unauthorized
- 403 Forbidden
- 405 Method Not Allowed
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gatewaty Timeout
- vue
- post请求失败,显示请求为options
- POST请求失败,变成options请求 (opens new window)
- 处理:先设置为get请求......
- 再处理:设置请求头为 {'Content-Type': 'application/x-www-form-urlencoded'}
- 设置等待状态符号,异步加载资源。
- 滚动到最后时,请求加载下一页
- 参考vue-cnode
- 注意 debounce 和 throttle # 170415
- vue-cli
- webpack中的publicPath
- vue中filter no work
- Vue.filter写到new Vue之前
- vue-router无法显示路由
- 没有加载vue的js文件......
- post请求失败,显示请求为options
- leancloud
- 关于日期的存储格式
- moment与moment-timezone进行时区的转化
- moment进行日期的格式化
- 关于日期的存储格式
# 2016/01/05
人生不相见,动如参与商。 今夕复何夕,共此灯烛光。 少壮能几时,鬓发各已苍。
- vagrant 问题解决
- dae
- vim
- 批量替换
- / ? n N
- :%s#div#haha#g ::=> :%s/div/haha/g
- 撤销
- u
- Ctrl+r
- 删除整行
- dd
- cc 删除后进入编辑模式
- 批量替换
# 2016/01/06
行行重行行,与君生别离。 相去万余里,各在天一涯。 道路阻且长,会面安可知。 胡马依北风,越鸟巢南枝。 相去日已远,衣带日已缓。 浮云蔽白日,游子不顾返。 思君令人老,岁月忽已晚。 弃捐勿复道,努力加餐饭。
- python
- argparse
- dest, store, store_true, nargs
- subprocess
- -W
- 无法安装模块,需要sudo权限
- python setup.py install --home ~bin/site-packages 首先设置PYTHONPATH环境变量
- .pth文件设置 .pth文件设置在系统目录的site-packages或者~目录的site-pacages下
- 处理,python setup.py install --user 安装在本地,不需要root权限
- argparse
- vim
- 设置行号
- :set number
- 跳转行
- :12
- 12G
- 全选
- ggvG
- 设置行号
- shell
- diff -Nur [目录] [目录] > [输出文件]
# 2016/01/07
人生若只如初见,何事秋风悲画扇。 等闲变却故人心,却道故人心易变。 骊山语罢清宵半,泪雨零铃终不怨。 何如薄幸锦衣郎,比翼连枝当日愿。
- vim
- go
- $, 0, ^, %, G, O
- ctrl+g, gg
- nG
- go
- git
- git stash
- git commit -a
# 2016/01/08
- virtualenv
- windows与linux系统所建的目录不一致,使用linux
- source env/bin/activate 进行激活,任意目录下deactivate退出激活状态
- env/lib/python2.7/site-packages 下载的库的位置
- --no-site-packages 不与系统的site-packages挂钩
- windows与linux系统所建的目录不一致,使用linux
- git
- git pull origin next:master
- git fetch origin
- git merge origin/next
- git add --all path 不忽略删除文件,默认为忽略删除文件
- git pull origin next:master
- vim
- w, b
- ^f, ^b
- vundle
# 2016/01/11
夫君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。夫学须静也,才须学也。非学无以广才,非志无以成学。淫慢则不能励精,险躁则不能冶性。年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!
- git
- 工作区,暂存区和版本库
- git commit --amend
- git checkout -- file
- git reset HEAD file
- git reset --soft hash
- git reset --hard hash
# 2016/01/12
- 浏览器的重排重绘
- vue的列表渲染
- vue与webpack (opens new window)
# 2016/01/13
淫慢则不能励精,险躁则不能冶性。
- python
- descriptor
- yield
- fetch与ajax
- redis (opens new window)
# 2016/01/14
- nginx
- install and config
- select, poll, epoll
- python
- os.walk源码
- node模拟os.walk
- celery
- setattr, getattr
- vim
- 括号自动补齐
- 查找与替换
- :set noignorecase
- :set hlsearch
- rd
- ddp
- pandas
- Series
- DataFrame
# 2016/01/15
- js
- 双向绑定和单向绑定
- sketch
- vim
- inoremap
- dk 删除本行与上一行
- dj 删除本行与下一行
- 11, 19d
- #, * 搜索当前字符
- gd
- vsplit, :bn, :only
- pandas
- np.random.randint(1, 10, size=(4, 6))
- df.apply(lambda x: x*4), df*4
- mongodb
- db.user.find()
- db.user.save()
- db.user.insert()
- db.user.aggregate()
- db.user.update({}, {$set:{}}, {multi:true})
- alter
# 2016/01/18
旧时王谢堂前燕,飞入寻常百姓家。
宇宙很大,生活更大,我们还会再见面的。
- nw.js初探
- 入坑指南 (opens new window)
- how to package and distribute your apps (opens new window)
- package.json
- windows
- zip -r app.nw *
- cat nw app.nw > hello && chmod +x hello
- rust
- 哲学家就餐问题和生产者消费者问题
- pv
- lock, condition, queue, yield
- 哲学家就餐问题和生产者消费者问题
- position
- scrollTop, $().scrollTop()
- clientHeight + scrollTop = scrollHeight
- h.scrollTo(0, 100) ::=> h.scrollTop = 100
# 2016/01/19
# 2016/01/20
- git
- git add -A
- git pull --rebase upstream master
- git rebase -i hash
- git rebase --continue
# 2016/01/21
- review
- less项目
- cookie的格式
- 字符串格式,名称,内容,域,大小,路径,过期时间,仅http,安全
- http method
- GET, PUT, POST, DELETE, TRACE, OPTIONS, HEAD
- http code
- 101, 200, 201, 204, 205, 301, 302, 304, 400, 401, 403, 404, 405, 500, 502, 503, 504, 505
- webpack
- page scroll
- settimeout 0
- 如果后边是一个死循环会被永远阻塞
- requestAnimateFrame
- ssh key already use
# 2016/01/22
- mouse wheel event
- mousewheel(chrome)
- wheelDelta(-120)
- DOMMouseScroll
- detail(+3)
- mousewheel(chrome)
- yield from
# 2016/01/23
城下之盟,本就没什么规矩。 -> 走向共和
- 移动适配
- css
- 三角形制作,高宽为0,上下边框为50, 左边框为50*1.73
# 2016/01/24
中堂大人独往独来,云中仙鹤。
一个人孤独一枝的时候,只好嘲为仙鹤了。
- css
- box-sizing 哪三种值?
- reset.css为什么要这么多?
- background顺序是什么?
- inline-block中间空白的多种去发以及flex的等分。
- 鼠标指针设置图片
- vue
- 自定义监听事件是否支持描述符
# 2016/01/25
- avos publish
- css
- rotate的hover是
- clip:rect 能否绘制三角形
- 170418 补: 不可以,能够绘制三角形的是 clip-path,然而兼容性不好
- http://www.w3cplus.com/css3/why-you-should-be-excited-about-css-shapes.html
- vue-transition + animate.css
# 2016/01/26
- 垃圾回收 Garbage Collection
- 引用计数 reference counting -> 循环引用
- 标记清除 mark-and-sweep
- 分代回收 -> 170419 补
- 增带回收
- css
- 字间距 letter-spacing
- python
- read
- readlines
# 2016/01/27
- css3
- pointer-events
- PointerLock API
- pointer-events
- mobile
- touchstart
- touchend
- touchmove
- vw, vh, vmin, vmax
- vue
- vue-router
- pushstate
- 全局配置选项设置history时,出现错误
- v-link-active,根据路径设置class
- vue
- transtion不能同名?
- .toogle-transition中必须有transiton属性!
- deactivate水滴能够移开,无法进入。
- vue-router
# 2016/01/28
- vue-router
- 跟路由切换时,钩子函数
# 2016/01/29
- javascript
- 循环点击按钮
- let
- closure
- string -> array
- String.prototype.split('')
- array-like -> array
- Array.prototype.call(btns)
- Array.prototype.apply(btns)
- Array.from(btns)
- [...btns]
- 循环点击按钮
- css
- 轮播动画
- translate
- left
- 轮播动画
# 上月总结
今天是大年初一,说一说上个月的总结。 上个月的计划没能完成几条,不过也有几方面的进步,如 git, vim, vue, vue-router, 这些技能比已往有了进步。不过也有很多不熟练的地方,如vim的插件,git多人协作,vue的组件。 webpack也不熟,js的基础也有所生疏。
# 本月计划
- 机器学习
- git
fex面试问题 (opens new window) Front-end-Developer-Interview-Questions (opens new window) 前端面试总结 (opens new window) git技能 (opens new window)
# 2016/02/03
- Baidu FEX
# 2016/02/04
- We have a problem with promises (opens new window)
- javascript Object
- configurable, enumerable, get, set
- Object.keys()
- Object.hasOwnPropertyNames()
- webpack
- es6
- class get/set
- vue-diary backend
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
- $http.post
- flask query_string req.args.get('id', 2)
# 2016/02/06
- vue-diary
- router backend and frontend
- difference between ready and route
- ssl and python version, disable warning
- import requests.packages.urllib3
- requests.packages.urllib3.disable_warnings()
- pip install -U requests[security]
- keep-alive是如何保存路由状态的,如何只保存某个路由的状态
# 2016/02/07
- eleme
- vue与angular的双向数据绑定
- promise.all的实现
- webpack的按需加载
- Object.observe
# 2016/02/09
中国自有国情在此。
国情如此,稳定第一。
- vue-router
- data
- loadingRouteData,无需自定义值
- data
# 2016/02/10
- front end
- html5rocks
- v2ex
- diary
- BDE-IMAGE的图像未消除干净。
- <img[^<>]*?class="BDE_Image"[^<>]*?>
- 未知卡顿
- 可能是路由切换时保存scrollTop所致
- BDE-IMAGE的图像未消除干净。
- git
- (modified content, untracked content)
- 该目录下存在.git目录,删掉即可
- fast-forward
- (modified content, untracked content)
- leancloud
- info
- tiankui
- 添加早晚安,爬贴等任务
# 2016/02/11
- tiankui
- 定时签到
- 关注吧列表由js生成,解析失败
- 月度贴子统计
- python
- os.path.exists
- git
- 修改历史提交的信息
# 2016/02/12
一个正直忠诚又有才干的御史,要是能够出面弹劾瞿鸿禨,他一个人就比我北洋一个镇的军队都要有力量。没有什么人不会被收买,就看你的筹码有多大,现在还没被收买,是还没碰到像我袁世凯这么大的庄家。每个人的一生中都会有一次大赌局,就看发生在何时何地。
- webpack
- diary
- 路由切换时反应迟钝 如果不设置keep-alive,则首页需要重新加载(本地存储也是)
- 设置类似贴吧效果
- router-view不能是片段实例
# 2016/02/14
- webpack
- 使diary可以部署在github上
- diary
切换时不发生闪烁,有两种方法
- 取消keep-alive,home放在router-view外
- 看懂keep-alive源码,设置两个组件,home一个组件,详细信息一个组件
- git
- git diff --cached
- git diff --staged
- git diff HEAD
# 2016/02/18
- leancloud
- find请求9000多次,来源于昨日topic.vue大量的topic监听事件
# 2016/02/19
- leancloud
- before_save与after_save查看原理
- diary
- 火狐浏览器html的scrollTop与谷歌浏览器html的scrollTop
- document.documentElement
- document.body
- 火狐浏览器无法保存position的状态,而谷歌浏览器可以
- 火狐浏览器html的scrollTop与谷歌浏览器html的scrollTop
# 2016/02/22
- fastclick
- 解决单击300ms的延迟
- 代码展示工具
- jsfiddle
- jsbin
- icon-font
- ttf/eot/svg/woff
- 关于webpack如何处理图标字体
- path
- os.path.resolve/os.path.join
- path.abspath/path.join
- es5
- Object.getPrototypeOf,proto
- Object.keys,Object.getOwnPropertyNames
- Object.hasOwnProperty, for...in
# 2016/02/25
- background-size: 100% 100%, cover;
- translate3D
- transform-origin
# 2016/02/27
- python
- stdout,stdin
- codecs
- gevent
- leancloud
- jsonp
- 前端SEO
- catberry.js
# 2016/02/28
- markdown如何添加样式
- border-box
- absolute的box里的元素的定位零点是哪里
- absolute的定位零点是border-box,而relative的定位零点是content-box
- overflow:hidden
- 也是border-box
# 2016/02/29
- vue-loader
- scoped会遍历DOM,生成一个哈希值的属性,但是动态生成的节点便无法生成。
- mouseover与mouseenter
# 三月计划
CSS开发指南 (opens new window) 正则表达式 (opens new window) 正则表达式 (opens new window) http协议 (opens new window)
# 2016/03/01
- z-index定位元素,默认为他爹的z-index
- margin collapse
- 垂直margin
- margin-bottom与兄弟元素的margin-top
- margin-top与子元素的margin-top
- 深入理解margin-collapse (opens new window)
- when there are more than 2 block of nested, their margin-top computed from inner to out.
- 垂直margin
# 2016/03/02
- translate3D
- 第三个值是什么意思
- load与ready区别
- absolute居中负值与正值的区别是什么
- margin: auto到底是什么意思
- firefox 通过 position,chrome通过设置 margin
- margin: auto到底是什么意思
- mousewheel
- firefox DOMMouseScroll
- chrome mousewheel
- scrollheight
- firefox document.documentElement.scrollTop
- chrome document.body.scrollTop
# 2016/03/03
- notebook
- flex layout
- drag
- git
- git checkout -- file
# 2016/03/04
- margin
- 百分比为父元素的宽度
- auto可以设置居中,左对齐,右对齐
- negative margin
- margin collapse
- backface-opacity
- background-position
- 全屏图片如何调整重点位置
- oncontextmenu
- 为notebook设置右键
- bfc生成规则
- 清楚浮动相关问题
- writing-mode使得div可以水平排列
# 2016/02/29 - 2016/03/06 (week 10)
- 以下三个div将会会如何放置(margin collapsing)?
<style> * { padding: 0; margin: 0; } .first { margin: 20px; height: 500px; background-color: #666; } .second { margin: -10px; height: 300px; background-color: #999; } .third { margin: -30px; height: 100px; background-color: #ccc; } </style> <div class="first"> <div class="second"> <div class="third"> 三个元素的外边距折叠 </div> </div> </div>
- 如何清除浮动?根据什么原理?
- 如何对左侧栏200px,主内容自适应进行布局?
- 如何使用margin完成圣杯布局,用flex呢?
- 模拟一个滚动条
- 图片如何全屏自适应,并在resize时始终保留重要部分?
# 2016/03/06
- 圣杯布局为甚么min-width是2x+y像素
- BFC中margin collapsing都是垂直方向吗,请举例。
- git config --global credential.helper store
- css
- img.naturalWidth
- img.naturalHeight
- column-count
# 2016/03/07
- margin-right什么意思
- margin的百分比是基于父元素的什么盒子模型?
- 圣杯布局中右侧栏的margin-left: -x 和margi-right: -x有什么区别?
- 浮动的元素不会折叠,因为触发BFC。
- background合起来写
# 2016/03/09
- python闭包
- firefox
- about:config
- fillder
- 手机调试
- 过滤条件 +
- 设置断点
# 2016/03/11
- position:sticky
- 语义化
- figure
# 2016/03/14
- wireshark
- wireshark手机抓包
- git
- git branch -m 1 2 -> rename
# 2016/03/16
- vue-slide
- the difference of between decodeURI and decodeURIComponent
- flex
- the difference of between i and s
- content attrubute
- chrome notition center
# 2016/03/17
- border-collapse
- border-spacing
- hidden, checked, target
- tab content(checked, target)
- webpack文件过大,按需加载,自动生成页面
- WebPack.optimize.CommonsChunkPlugin
- WebPack.optimize.UglifyJsPlugin
- HtmlWebpackPlugin and ExtractTextPlugin
- require/require.ensure
- 如何生成文件的hash值
- 千分符
- 父元素高度塌陷
- tower
- python
- find与index的区别
- find -1, index ValueError
- find与index的区别
# 2016/03/18
- string
- match(re.exec)
- search(re.test)
- charAt()
- toLowerCase()
- toLocaleLowerCase()
- toUpperCase()
- toLocaleLowerCase()
- startsWith()
- endsWith()
- slice()
- substr()
- substring()
- replace()
- repeat()
- toString()
- valueOf()
- javascript
- how to get the last 3 letter.
- str.slice(-3)
- str.substr(-3)
- how to get the last 3 letter.
- python
- string
- startswith
- endswith
- upper
- lower
- find
- index
- split
- strip
- lstrip
- rstrip
- join
- count
- replace
- zfill
- format
- string
# 2016/03/19
- css3
- -webkit-touch-callout
- -webkit-tap-highlight-color
- -webkit-userselect
- -webkit-border-image
- webkit-box
- meta
# 2016/03/14 - 2016/03/20 (week11)
# python
- 为数字加上千分符,写一个函数
string.find()
与string.index()
的区别re.match()
与re.search()
的区别
# FE
- 使用图标字体做出如链接所示图标
- 使用css sprits做出如ife首页动态图片效果
- 使用css3的target与checked伪类做出轮播效果图
- 为数字加上千分符,写一个函数
- 取字符串的最后五个字符
- figure制作响应式图像
- webpack如何进行异步加载
# 2016/03/22
- chrome plugin
- data-url
- cookie以及session的设置
- csrf攻击以及预防
- http请求减少
- js大小
# 2016/03/24
- promise完成三个异步操作
- 函数嵌套
- 代码同步执行,效率太低,而且嵌套过多。
- 计数器
- 首先初始化一个计数器,每个异步操作使计数器加一,当计数器达到异步操作的个数时,异步操作全部完成。
- promise.all
- 函数嵌套
- jquery和vue的大小
- jquery 40K, vue 20K
- 并行与并发
- 并发就是同时与AB两人聊QQ
- 并行就是一边聊QQ,一边看电视
- vue guide
- 响应式数据
- computed, watch
- 组件化
- 模块化
- 动画
- 路由
- REST(representational state transfer)
- term
- resource
- collection
- http
- idempotent
- url segment
- endpoint
- methods
- PUT/DELETE/POST/GET/PATCH/HEAD/OPTIONS/CONNECT
- headers
- Accept (406)
- If-Modified-Since/If-None-Match
- If-Match (412)
- status_code
- 1XX Informational
- 100 Continue
- 101 Switching Protocols
- 2XX Successful
- 200 OK
- 201 Created
- 202 Accepted
- 204 No Content
- 206 Partial Content
- 3XX Redirection
- 301 Moved Permanently
- 302 Found
- 303 See Other
- 304 Not Modified
- 305 Use Proxy
- 307 Temporary Redirect
- 4XX Client Error
- 400 Bad Request
- 401 Unauthorized
- 403 Forbiden
- 404 Not Found
- 405 Method Not Allowed
- 406 Not Acceptable
- 408 Request Timeout
- 409 Conflict
- 412 Precondition Failed
- 413 Request Entiry Too Large
- 414 Request URI Too Long
- 5XX Server Error
- 500 Internal Server Error
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
- Authentication
- Etag
- Access-Control
- rate limiting
- metrics
- framework/library
- python django-rest-framework, eve
- Documention
- console
- example
- endpoint
- /threads
- /topics
- /posts
- /users
- filter
- ?limit=50
- ?offset=50
- endpoint
- 1XX Informational
- term
- OAuth
# 2016/03/25
- python
- Stackless Python
- http
- sudo nc -kl 80
- get和post区别
- get获取数据,post修改数据,url资源定位符
get长度有限制,不安全
- DOM
- innerText, innerHTML, textContent
- call,apply,bind
- Math.max.apply(null, [1, 3, 5, 7, 9])
- Array.prototype.slice.call()
- Array.from()
- [...arr]
- Object.prototype.toString.call()
- 浏览器环境与node环境中this的差别(setTimeout)
- css
- background-origin
# 2016/03/21 - 2016/03/27
# python
- 写一个单例模式
- 写一个装饰器,打印程序的运行时间
# FE
- innerText, innerHTML, textContent的区别
- 遍历数组时in和length的区别
- left-pad的实现
- 有三个取数的异步操作,当异步操作完成时,取最大的数
- 制作一个Chrome插件,完成贴吧的自动签到
- 设计博客的REST API
- REST API的安全认证
- 减少或者缓存HTTP请求的几种方法
- 如何预防CSRF攻击
# 2016/03/28
- renren review
- 图片GPU加速
- WebWorker
- css3与html5的新东西
- 数组去重复
- this
- call, apply, bind
- meiyan review
- 事件代理
- length与in
- nodejs的异步
- eleme review
- scoped css
- web component
- 按需加载
- http请求图片
- wangyi review
- http请求
- setinterval与settimemout
# 2016/03/30
不管你学习什么知识,在学之前,都最好先了解你将要学习的知识能帮你解决什么问题
- 如何实现登陆
- IP,PV,UV,PR
- Page View
- Unique View
- Page Rank
- awk
- pipe?
- awk,grep,sort
(opens new window)
- ls -l | awk '{if ($5 > 2000) print $5}'
- ls -l | grep pdf$
- ls -l | sort -k 7
- ls -l | sort | uniq -c
- electron
- coroutine(协程)
- gevent/stackless/greenlet/eventlet
- monkey.patch_socket()
- gevent.joinall([])
- gevent.spawn()
- 多线程爬虫内存爆掉
- from _future_ import 是什么意思
# 2016/03/31
- review
- ls -al | awk 'BEGIN {count=0} {if ($3=="root") {print $0; count++}} END {print "count \n"count}'
- ll | awk '{print $5}' | sort -n | uniq -c
- localstorage/sessionstorage
- python
- enumerate('一二三四')为八个字符
- url/uri
- logging
- 测试
- scrapy
# 2016/04/03
- vertical-align
- Chrome与IE的事件冒泡和事件捕获
- 轮播插件,按需加载
- word-break/word-wrap
- 绝对居中
- top/left/translate
- top/left/margin
- top/left/right/bottom
- flex
- shfshanyue.github.io/?
- 圆角矩形,扇形
# 2016/03/28 - 2016/04/03
# python
- 在python2中 _future_ 模块有什么作用
- 实现一个简单的用户注册登陆Demo
- 实现用 OAuth 进行登陆
# FE
- CSS如何使过渡渲染加速
- html5中的WebWorker有什么用
- html5中有哪些新东西
- setTimeout与setIntervel有什么不同
- call, apply, bind 的区别
# Linux
- awk, grep, sort 对当前路径下大于1024K的PDF文件进行排序打印+ javascript Promise 迷你书 (opens new window)
# 2016/04/04
- 函数式编程
- 柯里化
- 高阶函数
- 柯里化
- 闭包
- python cookbook
- 去除重复
- flask
- 当关闭浏览器再打开网站时如何保存登陆状态
- 每次打开首页时,发送一个cookie,接收到一个cookie
# 2016/04/05
- 浏览器插件百度贴吧
- tencent
- XSS与CSRF的实现原理以及二者的区别
- Ajax的实现原理
- ES6 Promise的实现原理
- http 2.0
- 首部压缩
- 优先级处理
- 双向字节流的请求与相应
- post请求会有什么头
- 缓存的实现机制
- 闭包的实现
- baidu
- 函数继承
- 如何判断一个变量是否为数组
- tmall
- 让一个元素看不见的CSS属性
- 居中
- 你最牛逼的项目
- http2.0
- 二进制分帧层
- 多向请求与相应(多路复用)
- 优先级和依赖性
- 首部压缩
- 服务器推送
- 资源内嵌(base64)
- translate3D
- http
- Upgrade-Insecure-Requests
- Strict-Transport-Security
- https
- 运营商劫持
- web前端黑客技术揭秘
- 登陆
- session
- 单点登录
- md5加盐
# 2016/04/07
- bytes / str
# 2016/04/15
- python
- absolute import
- html5
- link.download
- link.click()
# 2016/04/16
- textContent
- for of/forEach
# 2016/04/17
- 深入浅出Fetch API(blog) (opens new window)
- 这个API很“迷人” (opens new window)
- This is so fetching (opens new window)
# 2016/04/11 - 2016/04/17
# python
- 什么是
absolute import
- 使用
logging
模块,保存日志至文件中,并同时打印到控制台
# FE
- 设置那些CSS属性,可以使元素不可见
- display: none
- opacity: 0
- hidden
- position: absolute; left: -1000px;
- html5 设置
input[type="text"]
能够自动补全 - 统计文档内每种标签的个数
Web Workers
运算斐波那契数列的前1000项和,并显示在页面File API
上传文件,并显示进度Location API
获取用户位置,并且每10分钟更新一次requestAnimationFrame
制作进度条动画Fetch API
发送post请求
# 2016/04/18
- Promise 陷阱(blog) (opens new window)
- flask
- app.add_url_rule()
- app.error_handle_spec
- url_for()
- globals.py
- context locals
# 2016/04/19
- API Store 语音识别 (opens new window)
- python
- 各种编码以及大小
- requests Content-Length
- fiddle https
- unicode 和 utf-8 bytes 的len (你好)
- unicode 2
- utf-8 6
- bytes 6
- flask(0.10.1)
- scrapy(1.0.5)
- win32API (opens new window)
- xpath
- css
- sql
- 随机取五十条数据
- ItemPipelines
# 2016/04/21
- XPath
- extract()
- escape character
- /, //, @, text(), ., .., Nodename
- last(), position
- type
- 元素
- 属性
- 文本
- 命名空间
- 文档
# 2016/04/25
天下事尽在吾彀中
享清福不在为官,只要囊有钱,仓有粟,腹有诗书,便是山中宰相; 祈大年无须服药,但愿身无病,心无忧,门无债主,就是地上神仙。
- blog
- child-blog
- React
- Virtual DOM / jsx / immutable object
- Redux
- 函数式编程 / 单一数据源 / 不可变数据 / 中间件
- Angular 2 / Aurelia
- Vue / Vuex
- ES2015
- Module
- Class
- Promise / Reflect API
- O.o
- polymer observe-js
- immutable / Proxy / accessor
- ES2016
- Async / Await
- Decorator
- WebAssembly
- Web Components
- Shadow DOM
- Custom Element
- Template Element
- HTML imports
- 组件化
- Webpack / Cssnext / postcss
- DOM
- document.ownerDocument / ownerSVGElement
# 2016/04/25
- DOM2
- document.impletation.createDocument(null, 'root', null)
- document.impletation.createHTMLDocument
- document.body.isEqualNode(document.body)
- el.style.removeproperty('width')
- document.createNodeIterator()
- document.createTreeWalker()
- event
- bubbles
- cancelable
- eventPhase
- type
- target
- currentTarget
- preventDefault()
- stopPropagation
- defaultPrevented
- detail
- view
- stiopImmediatePropagation
- trusted
# 2016/04/27
- Django ORM
- IntegerField
- CharField
- DatetimeField
- DateField
- TimeField
- URLField
- FilePathField
- BooleanField
- SQL-Alchemy (7/16)
- Integer
- SmallInteger
- BigInteger
- Text
- Datetime
- Date
- Time
- Float
- Numeric
- String
- Unicode
- UnicodeText
- Boolean
- Interval
- PickleType
- LargeBinary
- Question
- Question.objects.all()
- Question.objects.filter(question_text__startswith='who')
- q.choice_set.create(choice_text='xiange', votes=3)
- q.choice_set.all()
- q.delete()
# 2016/04/28
- ORM
- flask q.query.all() / django Question.objects.all()
- pip
- pip install pyopenssl ndg-httpsclient pyasn1
- scrapy
- weki
使用
collection.deque
数据结构,分布式爬虫。请求被异步调度和处理。 - structure
- items.py
- pipelines.py
- spiders
- tieba
- zhihu
- command line
- scrapy crawl tieba -o data.json
- scrapy runspider tieba.py -o data.json
- scrapy shell 'http://www.zhihu.com'
- scrapy genspider tieba
- scrapy list
- scrapy fetch
- ubuntu install error
- sudo pip install pyOpenSSL==0.14
- weki
使用
# 2016/04/29
- CSS 3.0
- 伪元素选择文本或属性节点
# 2016/04/30 |||| ||||
- Event
- KeyboardEvent
- keypress 仅仅在按下字符的时候触发事件。在 Firefox 中为任意键。
- keyup 按下的字母键都会转为大写。
- keydown
- TextEvent
- textInput data接受输入的数据,Firefox 中不支持
- MutationEvent
- DOMNoderemoved
- DOMSubtreeModified
- KeyboardEvent
- scrapy
- Selector
- CSS 与 XPath 的嵌套选择器
XPath需要使用
.//
- 正则表达式支持 sel.xpath(div[re:text(@class, '\d$')])
- CSS 使用 ::attr(),::text
- XPath 使用 @,text()
- CSS 与 XPath 的嵌套选择器
XPath需要使用
- Selector
- sqlalchemy
- create_engine
- declarative
# 2016/05/01 |||| |
- mongo
- sort
- group
- distinct
- index
- explain
- scrapy
- scrapy.crawl
- 先获取数据,回调,再获取数据
- 设置超时,部署,设置spider的参数
- 设置http头,设置cookie
- js
- charCodeAt
- fromcharCode
- encodeURIComponet
# 2016/05/03 |||| |
# 2016/05/04 |||| ||
- html5 event
- touchstart
- touchmove
- touchend
- createEvent
- initCustomEvent
- pageshow/pagehide
# 2016/05/05 |||
不经一番寒彻骨,怎得梅花扑鼻香。
- crontab
- vim test.cron
- crontab test.cron
- crontab -l
- bootstrap
- dropdown
- background-clip
- dropdown
- urlparse
- review
- django
models.IntegerField(default=10)
question = models.ForeignKey(Question)
Question.objects.all()
Question.objects.filter(question_text__startswith='how')
Question.objects.order_by('question_text')
Question.objects.get(pk=1)
q.choice_set.create()
q.choice_set.all()
- flask-sqlalchemy
db.Column(db.Integer, primary_key=True)
question_id = db.Column(db.Integer, db.Foreignkey('questions.id'))
choices = db.relationship('Choice', backref='question')
question.choices
Question.query.all()
Question.query.filter()
- 多情剑客无情剑
- 黑白双蛇/铁传衣/阿飞/七妙手 妙郎君花峰 妙郎中梅二先生/青魔手伊哭/丘独/铁面无私赵正义/秦重/鱼肠剑游龙生/龙啸云/林诗音/龙小云/林仙儿/极乐峒/心眉/心树/心湖/心鉴/百晓生/荆无命/向松/蓝蝎子/大欢喜菩萨/孙二驼子/郭嵩阳/银戟温侯吕奉先/中原八义/天机老人/孙小红/西门柔/诸葛刚
- django
# 2016/05/06 |
# 2016/05/07 ||||
- review
- Event
- MouseEvent/UIEvent/Event
- createEvent/initEvent/dispatchEvent
- dragdrop Event
- dragstart
- drag
- dragend
- dragenter
- dragover
- dragleave/drop
- NodeIterator
- document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, null)
- document.createTreeWalker()
- nextSibling()
- previousSibling()
- firstChild()
- lastChild()
- parentNode()
- MouseEvent/UIEvent/Event
- Event
# 2016/05/09 ||||
# 2016/05/10 |||| |
JavaScript template engine in just 20 lines (opens new window)
JavaScript template engine in just 20 lines(译) (opens new window)
review
- vuex
- action
- mutation
- store
- react
- React.Children.map
- getDefaultProps
- propTypes
- React.PropTypes.string.isRequired
- getInitialState
- vuex
canvas
- toDataURL
- getContext
- strokeStyle/fillStyle
- strokeRect/fillRect
- strokeText/fillText
- path
- arc/arcTo/lineTo/moveTo/rect
ajax与comet
- SSE
- websocket
webpack
- ~ 运算符
# 2016/05/11 ||||
- React
constructor
componentWillMount
render
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate(nextprops, nextstate)
render
componentDidUpdate(prevprops, prevstate)
componentWillUnmount
defaultProps
displayName
# 2016/05/12 ||
# 2016/05/13 |||
- metrial design
- snippet
- vue-async-data
- css3
- will-change
- matrix
- transform-style
- -webkit-box-direction
- -webkit-box-orient
- -webkit-tap-highlight-color
# 2016/05/14 |||| |
- ingacentHtml
- touchAction
- cordova
- 修改名称
- 修改logo
# 2016/05/15 ||
- ionic
- live deploy
- user auth
- ionic start diary / ionic serve
- ionic2
- datetime
- strptime
- strftime
- restful api
# 2016/05/16 ||||
- babel
- html
- dl/dt
# 2016/05/17 |||| ||
- str.match(/#[\u4e00-\u9fa5A-Za-z]+[$\s]/g)
- data-url
- base64
- / -
- ? / _
- base64
- ionic
- app初始空白
# 2016/05/19 ||||
- Array.prototype.sort
- css
- touch-action
- auto
- none
- pan-x
- perspective
- touch-action
- Object
- Array
- toLocalString/toString/valueOf/join
- push/pop/shift/unshift
- indexOf/lastIndexOf/includes
- concat/slice/splice
- sort/reverse
- every/some/filter/map/forEach/reduce/reduceRight
- date
- Date.UTC/Date.parse/Date.now
- toLocalTimeString/toLocalDateString/toLocalString
- Array
# 2016/05/22
django
- python manage.py makemigrations polls
- python manage.py migrate
- python manage.py sqlmigrate polls 0001
interview /toutiao
arguments 是数组吗
如何把类数组转化为数组
如何判断一个变量的数据类型
localStorage 和 sessionStorage 的区别是什么
同源策略的目的是什么
三等分div,左边固定右边自适应
什么是BFC
如何居中一个元素
二分查找/归并排序
https://www.interviewzen.com/
什么是wsgi
协程和线程的区别
gevent 是什么
gevent/scrapy做爬虫的分工是怎么样的
云平台的代码和自己的代码是如何工作的
javascript
- 下标即值
- Array.from({length: 100})
- Array.apply(null, {length: 100})
- [...Array(100)]
- Array(100).fill().map((_, i) => i)
- 下标即值
# 2016/05/24 ||
- https://www.toptal.com/react/tips-and-practices
- tomato
- 禁止路由
# 2016/05/25 |
- react
- babel-core
- babel-presets
- babel-loader
# 2016/05/26
- interview/zhihu
- javascript适合做前端吗,其他语言呢,为什么
- javascript能实现多态重载继承吗,与python的有什么不同
- javascript的原型链
- http 请求与响应的报文格式
- websocket与http有什么不同
- SSE是如何关闭链接的
- react和vue有什么不同
- angular和vue有什么不同
- html5有什么新的东西
- 你在豆瓣学到了什么,为什么不留在豆瓣
- 你以后想做前后,后端还是移动端
- 你以前做的东西遇到过什么困难
- 你对你几年后是如何看待的
- 你对你的工作有什么要求
- html5 / review
- js
- RequestAnimationFrame
- Page Visibility API
- Geolocation API
- File API
- Web Timing
- Web workers
- WebSocket API
- Fetch API
- Audio
- Video
- dragdrop API
- history API
- DOM 12. tag 12. contenteditable 13. Selectors API 14. Travelsal API 15. classList 16. insertAdjacentHTML / innerHTML 17. scrollIntoView 18. dataset 19. canvas
- other 20. 离线缓存 21. localStorage / sessionStorage 22. indexDB
- js
- http / 报文格式
# 2016/05/27 ||
- review
- http报文格式
- grid
- container
- grid-template-rows / grid-template-columns
- grid-template-areas
- grid-gap
- grid-auto-columns / grid-auto-rows
- justify-items / align-items
- justify-content / align-content
- start
- end
- center
- stretch
- space-around
- space-between
- space-evenly
- grid-auto-flow
- row
- column
- dense
- item
- grid-area
- align-self
- justify-self
- container
- webpack
- webpack-dev-server --inline --content-base .
- webpack-dev-server --inline --hot
- webpack --progress --hide-modules
- externals
- node
- path.join
- path.resolve
- html5
- public storage
# 2016/05/28
- object
- Object.is()
- Object.assign()
- react router
- 404
- router event
- popstate
- hashchange
# 2016/05/30
- time
- ajax
- tomato
- post need get ObjectId
# 2016/06/01
- Vue.nextTick
- console.timestamp
# 2016/06/02
- git
- git rm --cached
- review
- git 生成 gh-pages 不要太麻烦
- gh-pages 库
- Object
- getOwnPropertyNames
- getOwnPropertyDescriptor(复制描述符对象)
- is
- for...in...
- Object.setPrototypeOf()
- Object.getPrototypeOf()
- Object.create()
- Object.assign(), {...obj}
- git 生成 gh-pages 不要太麻烦
- python
- getattr / getattribute
- setattr
# 2016/06/06
- shell
- apt-catch search jdk
- openjdk
- update-alternatives
# 2016/06/10
- Linux工具快速教程 (opens new window)
- lsof -i:3000
# 2016/06/11
- crosswalk
- cordova plugin add cordova-plugin-crosswalk-webview
# 2016/06/17
- html5test (opens new window)
- Web Animation API
# 2016/06/18
- 多态
- 重载
- 参数个数不同
- 参数类型不同
- 继承
# 2016/06/19
- Web Speech API
- FullScreen API
- Web Notification API
# 2016/06/20
- ArrayBuffer
- Data-Url
- WeakSet / WeakMap
# 2016/06/27
- react
- version
- creat react app
- vue-cli
- git
- remove remote
# 2016/07/04
- html5
- elements
- new elements
- dataset
- hidden
- 又多一种隐藏元素的方式
- sementics
- html parsing
- selectors api
- element traversal api
- dataset
- forms
- field types
- validation
- required
- datalist
- communication
- web socket
- sse
- xhr2
- web rtc
- fetch
- beacon
- UI
- Dragdrop
- contenteditable
- desine mode
- performance
- web workers
- storage
- localstorage / sessionstorage
- indexedDb
- web sql
- File API
- offline app
- application cache
- service worker
- device
- geolocation
- device orientation
- device motion
- output
- full screen
- web notification
- graphics
- canvas
- responsive images
- picture element
- srcset
- sizes
- web gl
- requestAnimationFrame
- web components
- custom elements
- shadow dom
- html template
- html imports
- media
- video / audio
- other
- history api
- web timing
- performance api
- web speech
- async script
- page visibility
- elements
# 2016/07/05
- BFC Block Formatting Context
- 特性
- BFC不与浮动元素重叠
- BFC不会发生margin collapse
- BFC包含浮动
- 特性
# 2016/07/06
- bind
- prototype
- Object.create
# 2016/07/08
昔乘匹马去,今驱万乘来.
- hot reload
- web components
# 2016/07/09
- 安全hash算法 (opens new window)
- 荒野公学 (opens new window)
- tieba scrapy
- 获取所有的用户头像
- 获取每月帖子排名
- 使用 gevent 替些爬虫
- 熟悉 xpath 与正则表达式
- 熟悉 mongo 与 sql
- scrapy
- 项目组织结构
- 带密码如何爬取
- 传递参数
- 下载文件
- scrapy.pipeline.images.ImagesPipeline
# 2016/07/11
- python
- print(3, 4) and print 3, 4
- new styled class
- try else
- for else
- defaultdict
# 2016/07/12
- webpack
- proxy
- devtool
- vuex
- mutations
- middleware
- vue-router
- 404
- vue
- code spliting
- require([], resolve)
- 其实是webpack的按需加载
- require([], resolve)
- code spliting
- backend
- test
- unit test
- e2e test
- mocha
- chai
断言库,assert TDD,expect,should BDD,还是喜欢assert # 170422
- assert
- expect
- should
- lint
- jslint
- eslint
- test
- zsh
- chsh -s /bin/zsh
- template
# 2016/07/13
- A guide to flexbox (opens new window)
- vuex
- event system
- form handler
- plugin or middleware
- strict mode
- versions
- alpha
- beta
- rc
- 正式版前的最后一个版本了,具体可看看 react,vue 的版本
- release
- CI
- airbnb
- project
- 2048
- cubic
- 全屏居中
- flex
- align-items: center; justify-content: center;
- flex
- ES6
- const
- TDZ 暂时性死域
- 不存在变量提升
- const
- eslint
- webpack
- history fallback api
- hot reload
- live reload
- css
- 左固定右适应margin-left的问题
- columns
- flexbox
- display
- flex-direction
- flex-wrap
- flex-flow
- justify-content
- align-items
- align-content
- order
- flex
- align-self
- grid
- grid-template-columns
- grid-template-rows
- grid-template-areas
- grid-area
- justify-items
- align-items
- justify-content
- justify-items
- grid-auto-rows
- grid-auto-columns
- grid-auto-flow
- grid-column
- grid-row
- grid-area
- justify-self
- align-self
# 2016/07/14
- redis
- backend
- nohup
- &
- bg
- fg
- vue
- created
- 先app后路由
- created
- eslint
- rules
# 2016/07/15
- redux
- getstate
- (opens new window)
- sublime
- build
- reveal_in_side_bar
# 2016/07/18
- git
- git log -p #file
- git log --pretty=oneline #file
- git show #hash
- css
- font-awesome
- react
- props
- 路由的props哪里来
- connect
- react-router
- React-Router > RouterContext > Component
- webpack
- 设置全局变量
- DefinePlugin
- 设置全局变量
# 2016/07/19
- react
- withRouter (this.props.router.go)
- connect (connect()(App))
- combineReducers / createStore
- connect / Provider
- mapStateToProps / mapDispatchToProps
# 2016/07/20
- ES6
- Object.assign
- Object Rest and Spred
# 2016/07/21
- fetch
- cookie
- with creditional
# 2016/07/22
函数式编程
The zen of python (https://www.python.org/dev/peps/pep-0020/)
git
- Author
- cat ~/.gitconfig
- cat .git/config
# 2016/07/25
- git
- git diff #file
# 2016/07/26
- browser-sync
- websocket, long pulling # 170422
- react
- setState(object || function, callback)
# 2016/07/27
- react
- componentWillReciveProps
- immutable Object
- setState
- replaceState
- forceUpdate
- context
# 2016/08/01
python
- SIP
- gevent
- gevent.joinall(gevent.spawn(task, i))
- WSGIServer
# 2016/08/02 ||
# 2016/08/04 ||
- js
- closure
# 2016/08/05 ||
# 2016/08/07 ||
# 2016/08/08 ||||
# 2016/08/09 |||
- css
- cursor / text
- multi columns
# 2016/08/10 ||
- webpack
- default
- 能热加载,但是出错时,无法reload --hot hmr
- babel-preset-react-hmr
- default
# 2016/08/11 ||
- redux
- redux-thunk
- 处理异步的action,比如请求数据后 dispatch 一个 action
- applyMiddleware
- redux-thunk
- react
- high-order-component
- context 与 hoc 是大多 react 库的模式,比如
- react-router RouterContext -> withRouter(router) -> Component
- react-redux Provider -> connect(state) -> Component
- context 与 hoc 是大多 react 库的模式,比如
- high-order-component
- webpack
- webpack-hot-middleWare
- webpack-dev-middleWare
# 2016/08/11 ||
- git
- git log --pretty=oneline --graph --decorated --all
- firebase
- BaaS Backend as a Service
# 2016/08/15 |||| ---
- git
- git stash
- git stash list
- git stash pop === git stash apply & git stash drop
# 2016/08/16 ||| --
- git
- git diff HEAD HEAD@{1}
- git log --author wangxian
- webpack
- how to write a plugin
# 2016/08/17 ||| -
- webpack
- vue-html-loader
- CommonsChunkPlugin
- module.exports and export default
- module.exports 运行时
- export default 编译时
# 2016/08/18 |
- webpack
- CommonsChunkPlugin
- 打包优化:第三方不常变包打包到一块,自有长变包打包到一块,运行时代码打包到 manifest
- CommonsChunkPlugin
# 2016/08/19
- shell
- 分离新窗口时以原有目录打开
- node
- path.join and path.posix.join
# 2016/08/22 ||| --
- git pull origin develop
- git fetch origin develop
- git merge origin/develop
# 2016/08/23 |
- git
- git checkout -b develop --track origin/develop
- git branch --set-upstrame-to=origin/develop develop
- git push -u origin master # 常用!
# 2016/08/24 ||| -
- react-router
- indexLink / indexRoute / indexRedirect
- plainRoutes
# 2016/08/25 ||| -
- react-router
- react-addons-css-transiton-group
- .example-enter / .example-enter-active
# 2016/08/26
# 2016/08/29
- react-router
- onEnter(nextState, replace, next)
- useRouterHistory
# 2016/08/30
- webpack
- proxy
- post
- dynamic routing
- getComponents
- getIndexRoute
- getChildRoutes
# 2016/09/03
- webpack
- resolver
- extensions
- alias
- fallback
- eslint loader
- cross env
- resolver
# 2016/09/06
- javascript
- Array(10).join('a')
- 'a'.repeat(10)
- node-modules/.bin/
- tmux
# 2016/09/07
- webpack
- node / context
- javascript
- [...divs]
- Array.from(divs)
- Array.of.apply(null, divs)
- Array.apply(null, divs)
- Array.prototype.map.call(divs, item => item)
- Array.prototype.slice.call(divs)
- react
- setRouteLeaveHook
# 2016/09/08
- 带 cookie 跨域
- cors Access-Control-Allow-Credentials: true, xhr.withCredentials = true
- fetch mode: cors, credentials: 'included'
# 2016/09/09
- webpack
- --inline
- loader.exclude
# 2016/09/19
- System.import
- 170422: 已废弃,import() 代替
# 2016/09/20
- git
- git clean
- webpack
- Tree Shaking
- webpack 源码分析
- python
- Template
# 2016/09/22
- python
- 序列化item
- 格式化xml
- 快找时间
- keywords 对应多个 item
- showurl: host
- 获取 settings
- logging.info
# 2016/09/24
- pprint.pformat (数据格式错误,最后优化!)
- mongo
# 2016/09/26
- logging format
- format
- level
- datefmt
- getLogger(name)
- basicConfig
- python
- self.dict
- classmethod
# 2016/09/27
- mongo
- mongo --quiet test --eval 'printjson(db.Capture.find({record:false}, {_id:0}).toArray())' > capture.json
# 2016/10/01
- urllib.request.getproxies
# 2016/10/08
- mongo
- ensure_index
- create_index
- unique index
- performance (explain)
- alading
- capture (unique index)
- python (performance cProfile)
# 2015/10/09
- mongo
- update
- updateOne
- updateMany
- save
- snapshot
- insert and save
- $unset 保留一个字段
- $currentdate
- not null
- $setOnInsert, $set
- $sparse
- write concern
- update
- pymongo
- timezone
- python
- argparse
- 一个参数依赖另一个参数的存在
- argparse
# 2015/10/10
- 计算所有数组个数的和
- python
- template keyerror
- mongo
- $size
- $project
- copy subset of one collection to new collection
- db.full_set.aggregate([{$match: {}}, {$out: 'subset'}])
- pipelines
# 2015/10/11
- mongo
- count
- db.user.find()
- db.runCommand({count: 'user'})
- $project
- $match (not $where)
- count
# 2015/10/13
- react
- react-text
# 2015/10/21
- flex
- flex-basis width
# 2015/10/28
- docker
- 更换ubuntu的源为阿里云
- shell
- set
- shopt
# 2015/10/30
- docker
- 批量删除值为none的镜像
docker rmi $(docker imaes | grep "^<none>" | awk '{print $3}')
- 批量删除值为none的镜像
- shell
- 单引号与双引号的不同
# 2015/11/03
- shell
- id
- 查看用户所有 id
- whereis pip
- less /etc/passwd
- 查看用户信息
- less /etc/group
- 查看用户组信息
- id
# 2015/11/04
- react-native
- View
- ListView
- ScrollView
- TextInput
- Image
- Text
- Navigator
- TouchableHighlight
# 2015/11/05
- shell
- chpasswd
- printenv $ENV
- echo $ENV
- localhost和127.0.0.1的关系
- sed
# 2016/11/06
- docker
- docker exec -it container_name bash
- 进入运行中容器的bash
- docker exec -it container_name bash
# 2016/11/07
- docker
- container 挂载镜像时修改是否会映射到外边
- /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8882 -container-ip 172.17.0.79 -container-port 8882
- container 挂载镜像时修改是否会映射到外边
# 2016/11/10
- ss
- grep
- jobs
- vim:visual
- ssh_config id_rsa ssh_gen
# 2016/11/11
- ssh_config
- ~/.ssh/config
- Host
- HostName
- Port
- User
- Host
- ~/.ssh/config
- lsof
# 2016/11/13
- shell
- test
- -e any kind of archive
- -f file
- -h symbolic
- -r / -w / -x
- -s file size greater than 0
- docker
- [ -d Document ] && echo yes
docker rmi $(docker images | grep “^<none>” | awk ‘{print $3}’)
- find
- find ~ -name "Dockerfile" -type f
- xargs
- docker ps -aq | xargs docker rm
- history
- test
# 2016/11/14
- shell
- ERR_UNSAFE_PORT (opens new window)(http://www-archive.mozilla.org/projects/netlib/PortBanning.html#portlist)
# 2016/11/15
- shell
- crontab
- run-parts
- test -f file
- [ -f file ]
- /etc/passwd
- /etc/group
- certbot
# 2016/11/18
- nginx
- worker process
- master process
- http: { upstream www: { server: * }}
- http: { server: { locations /api: { proxy_pass: www } } }
- shell
- ps aux
- grep
- grep -rnw --exclude-dir=".back" --exclude=".min.js" . "Vue"
# 2016/11/19
- nginx
- /proxy/asdf -> /proxy 301
- proxy_redirect
# 2016/11/20
- nginx
- sub_filter
# 2016/11/21
- js
- 闭包的性能影响
- css modules
- 子组件使用父组件的样式
- nginx
- sub_filter
- TCP的几种状态
- unix_socks
- 403, 404, 416
- shell
- dig
- lsof -i:3000 有时会失效?
- http
- http1.1 and http1.0
# 2016/11/22
- egrep
- grep -E
- kill
- signal
- nginx
- upstream
负载均衡
ip_hash
weight
health_check
zone
match
- upstream
# 2016/11/23
- django
- vim
- http
- Connection: keep-alive
# 2016/11/24
- nginx
- sites-enabled / sites-available
- forward-proxy and reverse-proxy
- 正向代理与反向代理的区别
- proxy-redirect
- test.com -> www.test.com
- try_files
- redirect
- zhihu.com -> http://www.zhihu.com -> https://www.zhihu.com
# 2016/11/25
- vim
- ctrl+o
- ctrl+g
- c (change)
- viminfo
- filetype
# 2016/11/26
- python
- pypy
- stackless python
# 2016/11/28
- font-weight 800 1000
- vim
- vimgolf (opens new window)
- vim -d test1 test2
- diff 模式编辑两个文件
- :3,5 d
- d$, D
- ctrl c
- ctrl a
- C
- :tabnew .
- 新标签页打开目录
- :Ex
- :ls
- :buffer 1
- :bn
- :bp
- :n
:new <FILE>
- :split
- :vsplit
ctrl + ww :new <FILE>
- :split
- :vsplit
- ctrl + ww
- :Vex
- set ru?
- set list
# 2016/11/29
- git
- --
- git reset HEAD --
- git submodule add :remote
- git remote add -f tool :remote
- git subtree add --prefix tool tool master --squash
- git fetch tool master
- git subtree pull --prefix tool tool master
- git subtree push --prefix tool tool master
- 不同的文件设置不同的需求
- svn
- vim
- :%s/^/1/g
- 😒/^/1/g
- :3,5s/^/1/g
- :3,$s/^/1/g
# 2016/11/30
- vim
- folder
- plugin
- settings
- qG:
- g CTRL-g
- :set showmode
- :copen
- X
- x
- df'
- daw
# 2016/12/01
- vim
- das
- delete a sentence
- :args
- :next
- :previous
- ma
- mA
vim -R <FILE>
view <FILE>
- :resize +5
- CTRL-W +
- CTRL-W -
- :tab split
- :tabnext
- ge
- go to the end of the previous word
- :set encoding=utf-8
- viminfo
- vim -r
- List swap files and exit
- :options
- :option
- 查看 vim 配置
- :set textwidth=80
- das
# 2016/12/02
- vim
- folding
- zo
- open fold on the cursor
- za
- zR
- open all folds
- zf
- filetype
- :set filetype=json
<leader>
- nmap
- command
- autocmd
- :set syntax=python
- :set filetype=js
# 2016/12/13
- redux source
- symbol-observable
- scope
- Object.create(null)
- Children.only
- vim
- H
- L
- M
# 2016/12/19
- css
- 行内元素的height继承父级元素的line-height
# 2016/12/23
- react
- 0.14 data-reactid
- 15 react-text
# 2016/12/24
- css
- .main | .container .main
# 2016/12/26
- css
- flex: 1, flex: auto
- vim
- :vimgrep :re *
- :vim[grep] :re *.c
- Ag