ubuntu 18.04启动页面背景替换

简介

本文主要介绍如何替换ubuntu 18.04下启动页面的背景。
ubuntu启动页面

[超入门]使用docker做mysql主从复制实验

简介

本文主要介绍如何使用docker快速搭建实验环境,熟悉mysql主从复制配置。

环境

  • docker 17.12.1-ce
  • docker-compose 1.19.0

docker-compose.yml

  • 一个主数据库
  • 一个从数据库
  • 主从直连

php7下pdo的各种fetch模式速度比较

简介

本文主要介绍通过压测数据来检验php7下pdo的各种fetch模式性能。

准备

  • 一张5000条以上数据的表(批量数据生成)

mysql测试数据批量插入

简介

  • 场景1:测试sql服务器性能时需要单表100万以上数据时
  • 场景2:业务测试数据1000个账号每个账号有5个商品
    当我们遇到以上场景时,如何快速造数据?

原理

  • 利用select的交叉连接(cross join)。如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积;
  • 需要预先准备好表和样本数据

Ubuntu下emacs中文输入法(fcitx)设置

简介

在ubuntu下直接安装emacs, fcitx时,运行emacs切换不了输入法,即不能输入中文。本文主要讲解如何用最少的命令即可在系统中使用fcitx来输入中文。

配置

  • /etc/environment文件中追加
export LC_CTYPE="zh_CN.UTF-8"
  • locale配置
sudo locale-gen
  • 重启

Ubuntu系统命令随机数/字符串生成

简介

使用Ubuntu系统自带命令快速生成随机数

代码

# 生成含有数字和大小写字母的6位数字符串
cat /dev/urandom | LC_CTYPE=C tr -dc '0-9a-zA-Z' | fold -w 6 | head -n 1

# 生成纯数字的8位数字
cat /dev/urandom | LC_CTYPE=C tr -dc '0-9' | fold -w 8 | head -n 1

有兴趣的同学可以把命令改写成alias方便调用

多个组织用户git commit时如何区分邮箱提交

简介

作为一个码农通常会拥有github,公司的gitlab/gerrit或个人搭建的gitlab等两个及两个账号。公司提交代码时,通常是用公司的邮箱和用户名提交代码。而像github这种我们又希望用个人邮箱和昵称来提交。当然你可以为每个项目单独本地配置user.email和user.name信息。但组织的git仓库越来越多时,这种方式就显得繁琐多了。下面主要就是讲解如何为一个组织全局配置一个单独的用户信息。

环境

  • git (version >= 2.13.0)

ps. 2.13.0版本起支持includeIf

java调用系统命令Demo

java调用系统命令范例

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SystemCommandCall {
    public static void main(String[] args) throws Exception {
        String cmd = "ping 8.8.8.8"; //运行的命令

        Runtime runtime = Runtime.getRuntime();

        Process p = runtime.exec(cmd);

        InputStream is = p.getInputStream();
        InputStreamReader isr = new InputStreamReader(is, "UTF-8");
        BufferedReader reader = new BufferedReader(isr);

        for (String line; (line = reader.readLine()) != null;) {
            System.out.println(line);
        }
    }
}

git比较多个文件在两个分支下的差异

简介

一般工作中,我们每次代码测试通过后,代码需要合并到master分支,并将master分支的代码发布到线上。在合并回master过程,如果涉及到多团队并行开发时,可能会遇到代码合并冲突。在修复冲突过程中,可能将别人的代码误删或自己的代码被别人误删。这时我们如何快速判断,master分支上包含了本次开发功能的所有代码?本文主要介绍如何通过管道命令,快速地找出本次需求中开发过的文件在master分支和测试环境分支下的代码差异。

示例

git log

从上图可知,从master拉取新分支名为test,且该分支上有两个提交。

php类名和方法名重名时发生了什么?

简介

本文主要罗列些例子,看看当php类名和函数名重名时,php是如何处理的

例子

<?php

class TestObject
{
    public $subject;
    private $message = 'test' . PHP_EOL;

    public function testObject()
    {
        echo $this->message;
    }
}

$instance = new TestObject();
$instance->testobject();

输出

php test1.php 
test
test