Maple's Blog.

Maple's Blog.

keep coding and having fun

iterator(迭代器)
Node 版本: 1234567891011121314151617function * hello(max) { let count = 0; let a = 1, b = 1, tmp = 1; while(count < max) { yield a; tmp = a; a = b; b = tmp + b; count ++; }}for(const i of hello(500)) { console.log(i); ...
Python with as 的作用
Python with as 的作用这几天在入门 Python,https://learnxinyminutes.com/docs/python3/,看到 with as,这边说了一句 # Instead of try/finally to cleanup resources you can use a with statement 如果不使用 try/finally 来清理资源,你可以使用声明这个功能。 123with open("1.txt") as f for line in f: print(line) 首先说下 with as 的...
MySQL 事务
大学上课的时候我想老师基本都讲过事务这件事,就是一旦一件事件涉及多条数据库操作,当一条操作失败时,理应当把之前的操作全部回滚。 我们最常用的 MySQL 引擎之一的 InnoDB 支持事务。 事务 ACID 指的是 Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)。 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务...
Node 和观察者设计模式
观察者设计模式观察者模式(有时又被称为模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 总的来说,例如 Node 的事件机制。除非是一个不包含异步的程序(如果没有异步逻辑,那这个程序在执行结束前都不会有事件循环),否则一般程序在拥有带监听的 IO 事件(或者是网络套接字)的观察者时,就会通过线程层(libuv)不断的是轮询这些事件有没有完成。而系统在完成 IO 之后,将...
MySQL 引擎
ISAM优点: 读取速度快,不占用大量内存与存储资源。 缺点: 不能够容错,不支持事务处理。 ISAM 设计为了那些读取比较频繁,但是写入比较少的操作,例如数据中心。它可以占用较少的内存和资源对数据进行读取。但是相应的缺少了一些机制,比如事务和容错性。尤其是容错性,硬盘的错误会导致整个库的数据都被丢失。 其次是加锁和并发问题,一旦涉及数据写入,整张表都会被进行加锁,这样一旦有一个数据被修改,其他数据哪怕不是同一行,修改操作都会被堵塞。 MYISAM:优点: 是 ISAM 的扩展,提供了 ISAM 所没有的索引和字段管理。 使用一种表格锁定机制,来优化并发读写。 拥有一些有用的扩展,如修...
在树莓派上升级 Nginx 开启 HTTP/2
因为家里的路由器支持的 NAT 端口的数量只能有限的 20 个。随着自己乱七八糟的服务越来越多,不得不用家里的树莓派靠 Nginx 做了一层反向代理。支持根据域名访问不同的地址。 随着 Chrome 开始推荐 Https,用了自签证书搞了 Https。 然后看到了 HTTP/2。心想反正搞干脆搞好点。然后用我那个树莓派来折腾 HTTP/2。 不得不说树莓派真的适合学习 Linux。 关于 HTTP/2HTTP/2 (原名HTTP/2.0)即超文本传输协议 2.0,是下一代HTTP协议。(From 百度百科)。 支持异步连接多路复用...
Nodejs进阶 - 核心模块 Buffer 常用 API 使用总结
转载自 https://segmentfault.com/a/1190000009547330 本文摘录自《Nodejs学习笔记》,更多章节及更新,请访问 github主页地址。欢迎加群交流,群号 197339705。 模块概览Buffer是node的核心模块,开发者可以利用它来处理二进制数据,比如文件流的读写、网络请求数据的处理等。 Buffer的API非常多,本文仅挑选 比较常用/容易理解 的API进行讲解,包括Buffer实例的创建、比较、连接、拷贝、查找、遍历、类型转换、截取、编码转换等。 创建 Buffer.from(array) Buffer.alloc(len...
Expect 使用小记
Expect 使用小记Expect 是 unix 系统中用来进行自动化控制和测试的软件工具,由 DonLibes 制作,作为 Tcl 脚本语言的一个扩展,应用在交互式软件中如 telnet,ftp,Passwd,fsck,rlogin,tip,ssh 等等。该工具利用Unix 伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制。 基本指令 spawn 1spawn ssh $user@$host -p $port expect & send 12expect "password:"send "$password\r" 12345...
git 拉取所有远程分支
123git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; donegit fetch --allgit pull --all 来自 Stackoverflow 链接:http://stackoverflow.com/questions/10312521/how-to-fetch-all-git-branches
Nodejs memcached 包的基本用法
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106const Memcached = require('memcached');const memcached = new Memcached('...
avatar
Maple
coding & have fun