当我以为我的博客只有我看时想到的

我一直以来都认为我的博客没人看,今天分析自己博客主题的时候发现还挂着百度统计,顺便看了以下,感觉日均有10ip访问过我的博客,还算有点小激动呢,我要是一直坚持写博客就好了。虽然开通这个博客很久了,12年就注册了,中间让域名过期后有在阿里云注册了(以前是在主机屋上,不知道有人知道这个网站不,以前免费提供虚拟空间的,域名转到阿里云太麻烦,干脆过期了重新注册…)

但是这个博客我根本也不怎么用心打理,有时候let的https证书过期了,我都懒得管,我有时候有很多编程上面的发现,但是很少分享,过段时间其实我自己都忘记了。我本地有个markdown的文件夹,写了一些自己的笔记,有时候再整理整理发布到博客上来吧。

我也不是一个能持之以恒的人,有可能我写完这篇博客,以后就把这事忘记了(希望不会这样,giao!)

我有时候也经常后悔,做什么事情都是三分热度,不会深入去研究一个东西,有时候也想写点博客记录记录自己的朴素(无聊)的生活,记录自己的人生感悟,可是我没有这么做。

每天被碎片化的东西吸引,让我没有时间思考事情的本质。中文互联网上(UGC站点)的内容,有很多矛盾的观点,比如吧,我时而为这个国家感到自豪,中国抗击疫情的速度、中国的基建、中华文化、中国的发展速度无不让我觉得这是一个底蕴深厚、顽强坚韧的国家;另一方面,对自由言论的审查、GFW、高房价、加班文化也令我愤懑。我最熟悉的地方,却又如此陌生。

几年前有一次我去面试,面试者问到我为什么离开上家公司,我回答说是因为上家公司的代码设计不好,有些老的代码非常糟糕。面试者又说,作为公司的一员,你为什么不站出来去优化、重构呢?我顿时无语,我当时觉得他似乎说的有道理,那我为什么没有站出来呢?可能人微言轻?可能没有能力?也许只是随便找个离职的理由?谁知道呢。

当我觉得我不够优秀的时候,我有指着自己的鼻子说,你以后再也不看知乎、抖音了吗?我是有这么对自己说过吧,可是过一段时间,就把这些想法忘却了,也许不是忘却,而是太无聊了吧,不看看知乎啥的,就是感觉很多事情发生了我不知道,那我在信息获取上就会落后,我需要随时知道目前世界上发生的所有重大事件,否则当同事谈论起来我却无法插上一句嘴。

当你所属的国家存在不合理事情时,你有做过什么让不合理的事情合理吗?没有,为什么?不敢啊,分分钟封号禁言。现在在网络上看到一些奇奇怪怪的事件时,我都是见怪不怪了。

很多事情、资讯知道能怎么样,不知道能怎么样呢?在有本事改变所属环境之前,先改变自己吧!很早就想写点东西督促自己,知道现在才开始,以后得好好坚持这份初心,希望我能静下心来,享受当前的生活。

我还希望我:

1、生活有规律、做事有计划
2、多运动、多健身少熬夜
3、维护好自己的个人项目,努力为自由职业前进

截图留念:

image-20200711222425476

Myql中的时间函数

UNIX_TIMESTAMP() 返回当前时间戳

mysql> select UNIX_TIMESTAMP();
+------------------+
| UNIX_TIMESTAMP() |
+------------------+
|       1593576560 |
+------------------+
1 row in set (0.00 sec)

UNIX_TIMESTAMP(datetime) 返回指定日期的时间戳

这个函数和上一个函数一样,只是增加了参数

mysql> select UNIX_TIMESTAMP('2020-07-01 12:11:00');
+---------------------------------------+
| UNIX_TIMESTAMP('2020-07-01 12:11:00') |
+---------------------------------------+
|                            1593576660 |
+---------------------------------------+
1 row in set (0.01 sec)

FROM_UNIXTIME 将时间戳转换成datetime格式

mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP());
+---------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP()) |
+---------------------------------+
| 2020-07-01 12:11:00             |
+---------------------------------+
1 row in set (0.00 sec)

mysql> select FROM_UNIXTIME(1593576660);
+---------------------------+
| FROM_UNIXTIME(1593576660) |
+---------------------------+
| 2020-07-01 12:11:00       |
+---------------------------+
1 row in set (0.01 sec)

mysql> select FROM_UNIXTIME(createtime), FROM_UNIXTIME(starttime) from project limit 1 \G
*************************** 1. row ***************************
FROM_UNIXTIME(createtime): 2016-01-20 16:59:25
 FROM_UNIXTIME(starttime): 2016-01-20 00:30:00
1 row in set (0.00 sec)

DATE_FORMAT格式化一个datetime时间

mysql> select DATE_FORMAT(FROM_UNIXTIME(1593576444), '%Y/%m/%d %H/%i/%s %M %p');
+-------------------------------------------------------------------+
| DATE_FORMAT(FROM_UNIXTIME(1593576444), '%Y/%m/%d %H/%i/%s %M %p') |
+-------------------------------------------------------------------+
| 2020/07/01 12/07/24 July PM                                       |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)

service container的一个好处

service container最明显的一个特点是,它产生实例不需要显性的new一个类,因此甚至也不需要传入构造函数的参数(如果参数也是可以通过容器生成),看一个类的定义:

class FooHandler
{
  public __construct(Bar $bar = null)
  {
    // ...
    $bar->doSomething();
  }
}

如果你直接通过new FooHandler($bar),生成你需要的对象时,必须先得到Bar的实例$bar,这在有时候是没必要的,在Laravel中,可以直接通过:

$fooHandler = app()->make(FooHandler::class);

得到,唯一不足的一点是$fooHandler不能被IDE智能识别。

Apache2静态文件报“Access denied”小记

apache2提示“Access denied”,状态码404,第一反应是apache2的用户www-data对文件没有权限,但是奇怪的是,对于接口访问(php)确是OK的,所有的资源文件都访问不了,查了以下,是有读权限的,查了站点下的error.log:

[Thu Apr 09 14:33:55.072565 2020] [proxy_fcgi:error] [pid 23:tid 140714637768448] [client 172.18.0.1:49334] AH01071: Got error 'Access to the script '/var/www/xxx/public/logo.png' has been denied (see security.limit_extensions)\n'

注意关键点:proxy_fcgi:error`,我想,访问资源文件跟fcgi有什么关系呢?那我是不是有可能把所有的请求都转发给php了呢?

继续检查apache配置文件,终于发现:

    <FilesMatch .*$>
        SetHandler "proxy:fcgi://php72:9000"
    </FilesMatch>

有问题!

果然所有的请求都会转发到php去了!遂按照示例配置改成如下:

    <FilesMatch \.(cgi|shtml|phtml|php)$>
        SetHandler "proxy:fcgi://php72:9000"
    </FilesMatch>

重启 apache:docker-compose restart apache2,问题解决!

CURL直接访问ES的示例

访问:

curl -X POST http://es-svc-dev:9200/devorders/order/_search?pretty --header 'Content-Type: application/json' --data "@/root/data.json"

下面是data.json文件的内容:

{
    "size": 0,
    "query": {
        "bool": {
            "must": [
                {
                    "term": {
                        "batchid": 4868
                    }
                }
            ]
        }
    },
    "aggs": {
         "group_by_batchid": {
                "terms": {
                        "field": "batchid",
                        "size": "1000000"
                },
                "aggs": {
                        "group_by_status": {
                                "terms": {
                                        "field": "status"
                                }
                        }
                }
         }
    }
}

在容器中使用宿主机的代理

今天打算使用symfony来创作自己的新项目,但是由于网络的关系下载速度实在太慢了,于是在容器中使用以下方式使用代理,速度起飞。

export https_proxy=https://host.docker.internal:1081/
export http_proxy=http://host.docker.internal:1081/
curl -I google.com # 访问测试
# 检查是否设置好
➔ echo $http_proxy
http://localhost:1081/

➔ echo $https_proxy
https://localhost:1081/

# 取消代理
unset https_proxy
unset http_proxy

另外,在宿主机下的方式类似:

export https_proxy=https://localhost:1081/
export http_proxy=http://localhost:1081/
curl -I google.com # 访问测试