《马云:未来已来》读后感 – 担当、乐观与坚持

担当

有担当才有未来,担当是个人和企业的对人类未来的价值和意义,担当能保证方向正确

  • 一家伟大的公司,必须解决社会问题
  • 企业家要思考十年之后的事
  • 如果地球病了,没有人会健康
  • 公益的本质是唤醒善良
  • 我相信,要改变世界,先改变自己,改变自己比改变世界更重要,也更简单。然后,我想改善世界。

乐观

机会就在被抱怨的地方,人类只要还存在不满,就不会停止进步,我们就还有机会

  • 机会就在被抱怨的地方
  • 所谓改革就是改革自己

坚持

三十年后不忘初心,就是成功

  • 少一些抱怨,多一些坚持
  • 三十年后不忘初心,就是成功
  • 一家企业没有经历过残酷时代,经不起风浪
  • 在阳光灿烂的日子修屋顶,年轻力壮的的时候生孩子
  • 晚上想想千条路,早上醒来走原路

Imagick给图片加文字和二维码

    // 初始化画布
    set_time_limit(0);
    $bg_file = Yii::getAlias('@frontend/web/test/wxbg.jpg');
    $image = new \Imagick($bg_file);

    // 写字
    $font_file = Yii::getAlias('@frontend/web/test/msyhbd.ttc');
    $draw = new \ImagickDraw();
    $draw->setFillColor('#FF7F24');
    $draw->setFont($font_file);
    $draw->setFontSize(64);
    $draw->setTextKerning(5);
    $draw->setFontWeight(700);
    $draw->setTextEncoding('UTF-8');
    $metrics = $image->queryFontMetrics($draw, $name);
    $draw->annotation(158, 50 + $metrics['ascender'], $name);
    $image->drawImage($draw);

    // 二维码
    $qr_image = new \Imagick(Yii::getAlias('@frontend/web/test/qr.png'));
    $qr_image->scaleImage(248, 248);
    $image->compositeImage($qr_image, \Imagick::COMPOSITE_COPY, 254, 504);

    // 返回
    $response = Yii::$app->getResponse();
    $response->format = Response::FORMAT_RAW;
    $response->headers->set('Content-Type', 'image/jpeg');
    $response->data = $image->getImageBlob();
    return $response->send();

Yii2按需加载js,css文件,并自动加上时间戳

网上找遍了国内和国外的资料,没有能够为动态增加的文件加上时间戳的,进过分析Yii2源码,发现其实非常简单:

开启assetManager支持自动加上时间戳

修改main.php

    'assetManager' => [
        'appendTimestamp' => true,
    ],

按需加载js,css

$bundle=AppAsset::register($this);
$bundle->js[]='js/windowview.js';
$bundle->css[]='css/robot.css';

Linux Shell生成随机数和随机字符串的5种方法

使用系统的 $RANDOM 变量

(CentOS、Ubuntu、MacOS 都支持,但只有5位数随机)

echo $RANDOM
24308

使用date +%s%N

(CentOS、Ubuntu支持,MacOS不支持纳秒 +%N)

date +%s%N
1557366636971317933

使用 /dev/random 和 /dev/urandom 随机文件

(CentOS、Ubuntu、MacOS 都支持)

head -20 /dev/urandom | cksum | cut -f1 -d " "
1053195602

使用 linux uuid

(CentOS、Ubuntu支持,MacOS不支持)

cat /proc/sys/kernel/random/uuid
bf05d41c-d69e-4247-8a79-baf3ab3f98ed

使用 openssl rand

(CentOS、Ubuntu支持、MacOS 都支持,需安装 openssl,推荐)

openssl rand -base64 128 
Smt+jcaMSQ64Y4La8U6OUFl/TZWm+cKGtDqg+MRbKY6Zwp5iOzg3xoVZv+6NQv/W 
UL+sqAHBhbTD1ZPgsyeloxTVLRV/SjU2O/mJAZoFLLZXtDhldl5lfgz3s3s28R+u 
24TUNXnxGLGqQQxaudcF8Lhgq3LjDLQWzrgrTOIv1e0=

openssl rand -base64 128 | md5sum | cut -c1-32 
2cbb48ea9bac4b08c2a9b4518e1faf79

openssl rand -hex 16 
339a905406bb4ef3631dfa1ad67d8d6a

openssl rand -hex 8 | cksum 
307618125 17

openssl rand -hex 8 | cksum | cut -c1-8 
41657201

WSL 服务自启动脚本

支持在Windows启动时启动WSL中的Linux服务.

安装

  • 使用 git clone 到任意目录 (e.g C:\wsl-autostart)
git clone https://github.com/troytse/wsl-autostart
  • 在注册表中加入启动项 run-regedit

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下新增字符串项目 (e.g WSLAutostart) regedit-new-item

  • 设定脚本的路径 (e.g C:\wsl-autostart\start.vbs) regedit-set-path

使用

  • 修改在WSL中/etc/sudoers文件,为需要自启动的服务指定为免密码. 如:
%sudo ALL=NOPASSWD: /etc/init.d/cron
%sudo ALL=NOPASSWD: /etc/init.d/ssh
%sudo ALL=NOPASSWD: /etc/init.d/mysql
%sudo ALL=NOPASSWD: /etc/init.d/apache2
  • 修改commands.txt文件指定需要自启动的服务. 如:
/etc/init.d/cron
/etc/init.d/ssh
/etc/init.d/mysql
/etc/init.d/apache2

来源:WSL服务自启动脚本

Yii2设置变量到布局layout

通过全局params配置

Yii::$app->params['myVar']

通过session

Yii::app()->session['myvar']

或者通过Flash Message

通过控制器传递变量方式

首先,需要再控制器添加参数

class SiteController extends CController {

    public $myvar;
//...

然后在layout/main.php获取控制器变量

$this->context->myvar
Yii::$app->controller->myvar

精品数据库(省市区县带拼音行政区划、大学、IP地址、农历、等)

行政区划-数据库

全国行政区划,省市区镇四级,包含名称、完整名称、经纬度、区号、邮编、行政区划代码、拼音。

使用说明

area.xlsx Excel文件数据
area.sql MySQL脚本
area.psc Navicat for MySQL备份文件
area.nb3 Navicat Premium备份文件

数据来源

高德API
民政部官网
中国邮政官网