vim Code Snippet

常用 全选(高亮显示):按 esc 后,然后 ggvG 或者 ggVG 全部复制:按 esc 后,然后 ggyG 全部删除:按 esc 后,然后 dG 粘贴到终端 vim 缩进错乱 https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/38258720#38258720 在 vim 中粘贴前先输入: :set paste 原因:在终端的 vim 中没有相应的程序来处理这个从其他应用复制粘贴的过程,所以 vim 通过插入键盘输入的 buffer 来模拟这个粘贴的过程,这个时候 vim 会以为这是用户输入的。 问题就是出在这:当上一行结束,光标进入下一行时 vim 会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。 基础命令 gg 是让光标移到首行,在 vim 才有效,vi 中无效 G 光标移到最后一行 d 删除选中内容 y 复制选中内容到 0 号寄存器 References vim 全选,全部复制,全部删除 | cnblogs 用 vim 打开后中文乱码怎么办? | zhihu – EOF –

April 28, 2020 · 1 min · 63 words · Me

PHP GD 入门使用

GD 安装、配置 考虑到功能需要使用字体库、图像格式 jpeg\png 所以先安装相关库。 字体库 FreeType 2 https://www.freetype.org/ # 在临时目录进行操作 cd /tmp # https://download.savannah.gnu.org/releases/freetype/ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz tar zxvf freetype-2.10.1.tar.gz cd freetype-2.10.1 ./configure --prefix=/usr/local/freetype && make && make install 图像格式 jpeg cd /tmp # http://www.ijg.org/ wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz tar zxvf jpegsrc.v9.tar.gz cd jpeg-9/ ./configure --prefix=/usr/local/jpeg && make && make install 图像格式 png cd /tmp # http://www.libpng.org/pub/png/libpng.html wget https://download.sourceforge.net/libpng/libpng-1.6.37.tar.gz --no-check-certificate tar zxvf libpng-1.6.37.tar.gz cd libpng-1.6.37 ./configure --prefix=/usr/local/libpng && make && make install 安装 GD ...

April 16, 2020 · 1 min · 212 words · Me

PHP Code Snippet

PHP Sandbox Online PHP editor | 3v4l.org PHP Sandbox | onlinephp.io PHP.net Supported Versions | PHP.net Unsupported Branches | PHP.net References PHP News, Articles, Upcoming Changes, and more | PHP.Watch Laravel illuminate # https://github.com/illuminate/database/blob/master/README.md $capsule = new Capsule(); $capsule->addConnection($this->dbConfig); $capsule->setAsGlobal(); // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) $capsule->bootEloquent(); $capsule->getDatabaseManager()->extend('mongodb', function ($config, $name) { $config['name'] = $name; return new \Jenssegers\Mongodb\Connection($config); }); 参数查看 # 查看 PHP 编译时的参数 php -r "phpinfo();" | grep configure # 查看 .ini 配置文件路径 php --ini php -r "phpinfo();" | grep "Configuration File" # 查看 Modules php -m # 显示扩展配置 php --ri gd # 检查扩展是否存在 php --re decimal # 交互式运行模式。具有函数、常量、类名、变量、静态方法调用和类常量的 `tab` 补全功能 # http://php.net/manual/en/features.commandline.interactive.php php -a 查看、修改内存限制 php -r "echo ini_get('memory_limit');" php -r "phpinfo();" | grep memory memory_limit = 1024M; // 临时设置最大内存占用 ini_set('memory_limit', '1024M'); // 设置脚本最大执行时间为 0 永不过期 set_time_limit(0); Too Many Open Files PHP-FPM Too Many Open Files 24 Error (set open file descriptor limit) ...

April 15, 2020 · 3 min · 499 words · Me

MySQL Illegal mix of collations

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation utf8mb4_unicode_ci 和 utf8_general_ci 列不能混合查询 解决方法 1 统一字段 varchar 的编码集,我推荐使用 utf8mb4_unicode_ci。 解决方法 2 在查询 SQL 中需要转化的字段后面加 COLLATE utf8mb4_unicode_ci. 对比 准确性: utf8mb4_unicode_ci 是基于标准的 Unicode 来排序和比较,能够在各种语言之间精确排序。 utf8mb4_general_ci 没有实现 Unicode 排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。 性能: utf8mb4_unicode_ci 在特殊情况下,Unicode 排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。但是在绝大多数情况下发,不会发生此类复杂比较。相比选择哪一 collation,使用者更应该关心字符集与排序规则在 db 里需要统一。 utf8mb4_general_ci 在比较和排序的时候更快。 utf8mb4 mb4 是 most bytes 4 的意思,专门用来兼容四字节的 unicode。 References Illegal mix of collations | 少年阿斌 – EOF –

April 14, 2020 · 1 min · 63 words · Me

NGINX 前后端分离配置

前后端分离的开发已是主流,本文主要是记录前后端分离项目的 NGINX 配置。 前端 Vue web 入口 host.test 后端 PHP Yii service 入口 host.test/api server { listen 80; server_name host.test; root /data/project/web/dist/; index index.html index.php; location ^~/api { root /data/project/service/web/; access_log logs/service-access.log; error_log logs/service-error.log; fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; fastcgi_param SCRIPT_FILENAME /data/project/service/web/index.php; fastcgi_param SCRIPT_NAME /api/index.php; } location /index.html { add_header Cache-Control "no-cache, no-store"; } location ^~ / { alias /data/project/web/dist/; access_log logs/web-access.log; error_log logs/web-error.log; } } 负载均衡场景 前端 Vue web 入口 host.test 后端 PHP Yii service 入口 host.test/api 代理到 api.host.test WEB server { listen 80; server_name host.test; root /data/project/web/dist/; access_log logs/web-access.log; error_log logs/web-error.log; location /index.html { add_header Cache-Control "no-cache, no-store"; } location / { index index.php index.html index.htm; try_files $uri $uri/ /index.html; } location ^~/api/ { proxy_set_header Host api.host.test; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy true; proxy_pass http://api.host.test/; } } SERVICE server { listen 80; server_name api.host.test; root /data/project/service/web/; location / { access_log logs/service-access.log; error_log logs/service-error.log; index index.php index.html; try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:10071; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SERVER_NAME $http_host; fastcgi_ignore_client_abort on; } } NGINX 配置转发 location 进行的是模糊匹配。 ...

March 17, 2020 · 2 min · 241 words · Me

【PRCC2019 全套入门教程】笔记

u1s1 本教程质量一般,推荐看看 李兴兴 老师的教程。 用视频记录生活越来越普及,年初旅行也拍了些素材,想着自己也当个 up 主。先来学学 PR。【PR】Premiere Pro CC 2019 全套入门教程 | bilibili 是我在 B 站看的第一套教学视频,坦白说内容不多,有不少重复的东西,但是这样适合完全零基础的同学。 课代表来收我的课后作业:【交作业】PR CC 2019 全套入门教程 课后作业 | 菲菲与帆 。 我的一条 VLOG:【VLOG】#01 新年之旅 成都 第一日 | 菲菲与帆 欢迎来一键三连。 01-基础流程 1、窗口乱了后:【窗口-工作区-编辑&重置为保存的布局】alt + shift + 0 2、【文字工具】加字幕 3、修改字体:【窗口-基础图形】选择编辑 4、【剃刀】剪切多余素材 5、本素材图片来自 http://unsample.net/ 02-转场效果 1、选择素材点击左键拖拽到【左下窗口】 右下的文件夹可以快速新建文件夹,方便素材分类 2、时序新建时,选择 HDV 720 3、ctrl + d 添加转场效果 4、【左下窗口】(项目窗口)选择【效果】视频过渡,可以切换效果 5、点击时序上的过渡,【左上窗口】选择【效果控件】,可以编辑转场效果的持续时间、对齐等 03&04-视频转场特效&音频特效 1、【左上窗口】选择【效果控件】,可以编辑视频效果、过渡效果 2、视频效果,可以点击秒表的图标添加关键帧 3、新建时查看、修改【暂存盘】位置 4、【编辑-首选项-时间轴】可以修改:静止图片默认持续时间等, 已经导入的素材无效 5、【时序窗口】计时器可以点击编辑,输入 500 会跳到第 5 秒的位置 6、音频过渡,结尾声音淡出 ...

March 13, 2020 · 1 min · 170 words · Me

PHP FTP 间歇性无法上传文件

2020-04-23 后记:疑似是前置的负载均衡服务器有问题,改为直接使用真实 IP 后问题消失。 PHP Warning: ftp_put(): php_connect_nonb() failed: Operation now in progress (115) in ... 环境 PHP 5.6.40。在开发过程中遇到了一个很诡异的情况,在使用 FTP 函数上传文件时,会间歇性无法上传文件。找了几圈有说是 PHP bug、有说是防火墙,都不解决问题。 最后找到了一篇 Why is my PHP script intermittently unable to upload a file via FTP? | stackoverflow 解了大急。(当搜索结果没有找到答案时,可以考虑换几个相近的词再试试) 解决方法:进行循环调用尝试。 // 尝试 5 次 $uploaded = false; $tries = 0; while (!$uploaded && $tries <= 5) { ++$tries; $conn = ftp_ssl_connect($host, $port, 10) or die('FTP服务器连接失败'); //登陆(通过用户名或者匿名登陆) $result = ftp_login($conn, $user, $password); if (!$result) { ftp_close($conn); die('ftp_login 失败'); } ftp_set_option($conn, FTP_USEPASVADDRESS, false); // turn passive mode on ftp_pasv($conn, true); $success = ftp_put($conn, $remoteFile, $localFile, FTP_BINARY); if ($success) { $uploaded = true; dump("ftp upload: $success, $remoteFile, $localFile"); } else { dump("ftp upload failed, tries: $tries"); } ftp_close($conn); } 循环 try 第二次就成功了,不知为啥。PHP の FTP(S)通信で php_connect_nonb() failed: Operation now in progress (115) | qiita 这篇文章有分析,读后还是不太清楚,望有缘人来指导。 ...

February 27, 2020 · 1 min · 158 words · Me

回顾 2019

新裤子 · 夏日终曲 2019 年的第一天从三亚开始,在 第一市场海鲜市场 买了海味,然后直接到旁边的 林姐香味海鲜 加工,迟到了超级好吃的香辣蟹。飞回北京就是滑雪团建,年后双双得到了最佳合作奖,感谢我们每周的火锅,让大家多了些感情。 – EOF – 年后买了烤箱烹饪技术再次升级,烤鸡翅、披萨、蛋挞甚至烤鱼,都已不在话下。受 shilei 推荐也喜欢玩德州扑克。看 B 站 UP 主自驾游,疯狂迷恋上了房车一段时间,还去看了一次房山的房车展(够远的),应该会结下不解之缘。 3 月 29 日公司 7 周年,第一次庆祝公司周年,吃蛋糕前大家合了张影。这张照片我挺感动的,说不好具体的原因,可能是因为大家的笑容吧。清明小假在奥森玩了个露营,是真的有点冷。涛爷来北京面试,转头就成了科大博士,给劲儿。 4 月中的一个双休日和爸妈南下,和比比定了亲 🎉🎉🎉。 5 月乐队的夏天,是今年开过最好的综艺,刺猬、新裤子很棒。 2019 年过去了,我很怀念它。

December 31, 2019 · 1 min · 32 words · Me

Lonicera Framework

项目代码:imzyf/lonicera | GitHub 【PHP 核心技术与最佳实践】第二版 第 6 章 读书笔记 Lonicera Framework - Every French soldier carries a marshal’s baton in his knapsack. MVC MVC 模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。 Lonicera 0.1 bootstrap index.php 单一入口模式。 启动 PHP 内置 Web 服务器: php -S localhost:7070 路由器层 更偏向于使用 PATH_INFO 方式来访问。 从传统 URL 参数模式的访问地址进行解析,提取里面的 group、controller、action、param 4 个参数,随后交给 bootstrap 进行 dispatch 处理。 数据模型 用 PDO 来实现连接数据库。 ORM Object Relational Mapping 对象与数据库的映射叫作对象关系映射 PO Persistent Object 把一个数据库中的表的一行记录对应的对象称为持久对象 BO Business Object 业务对象 把业务逻辑封装为一个对象 VO Value Object 值对象 界面显示的数据对象 DTO Data Transfer Object 用在热呵呵需要数据传输的地方 DAO Data Access Object 指代 Active Record 模式中的数据对象 传统的 ORM 模式提倡数据对象和负责持久化的代码的分开,但是这并没有坚持数据操作的工作量。还有一种 ORM 模式叫作 Active Record。在 Active Record 中,模型层集成了 ORM 的功能,他们及代表实体,包含因为业务逻辑,又是数据对象,并负责把自己存储到数据库中。 ...

December 19, 2019 · 2 min · 281 words · Me

Windows 文本文件到 Mac 中文乱码

文本文件从 Windows 系统复制到 Mac 系统中文发生乱码,原因肯定是编码问题。 解决办法 iconv | wikipedia 它的作用是在多种国际编码格式之间进行文本内码的转换。 iconv [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...] iconv -f <原始编码> -t <目标编码> <输入文件> -o <输出文件> iconv -f GB18030 -t utf-8 <infile.txt> outfile.txt References 文本文件从 Windows 拷贝到 Mac 乱码 | super2bai – EOF –

December 9, 2019 · 1 min · 43 words · Me