2020年终总结

突如其来的疫情,打乱2020年的计划,同时也增加了一些新的变数。还有四天就快过完2020年,因此来做个总结,分两块:家庭和事业。

家庭:

  • 本来过年后在老家办酒席的,东西都准备好了,疫情爆发直接就被取消了。直到开两会后才敢回到北京,已经是5月中旬。6月7号在北京郊区办了个小型的婚礼仪式。还好提前办了,不久北京又陷入疫情高发期。
  • 今年倒是有大把的时间陪着家人,只可惜哪都不能旅游,大部分时间还是呆在家里。过了一段时间的田园生活,倒也是惬意。
  • 唯一有些遗憾的就是没能生宝宝。

事业:

  • 创业: 去年12月份就开始在做宠物社区相关的产品,乘着在家休息一段时间把宠物小视频和宠物社交电商这两个产品也给搭建了,只有web和微信小程序版本。上线一段时间后发现效果不太好,目前产品,技术,运营和商业化这四块,主要的症结在运营那一块。跟自己的技能有关,在运营方面的确没有增长策略,还是野蛮自然增长的那种方式。有些机缘碰巧的事今年又想到另外一个创业方向:RSS播客,手上已经有相应的产品,也挺看好这个市场的,看来又有的忙了。另外还有五个创业方向还没尝试,慢慢弄吧。
  • 自雇:今年年初做了一些股票和数字货币的投资,本金没多少,挣了些零花钱,后续也没在弄了。在知识付费那一块准备投入精力,做一些知识问答和录制课件,投放到平台挣些费用。
  • 上班:今年11月入职一家游戏公司,自己的技能储备还可以,适合的岗位还挺多的,不过年龄方面卡的有点多。周末有双休,上下班倒也近。

小结:

  1. 生宝宝是最重要的事。
  2. 创业真TM刺激,和平年代有志向的男人就该去干,这才是真正该从事的事业。
  3. 创业真是累,事必躬亲! 产品,技术,运营和商业化都得弄,不能有一块特别短板。
  4. 事业已经全部布局好,进可攻退可守,有赖于这十多年的积累。

还是那句话:日拱一卒,自强不息!

微信公众号--呵呵

 

公众平台身份证、手机、企业信息登记次数说明

在互联网信息内容主管部门的指导下,为加强帐号管理,自2018年11月16日起,进行注册上限调整:
1、同一个邮箱只能申请1个公众号;
2、同一个手机号码可绑定5个公众号;
3、同一身份证注册个人类型公众号数量上限为1个;
4、同一企业、个体工商户、其他组织资料注册公众号数量上限为2个;
5、同一政府、媒体类型可注册和认证50个公众号。
温馨提示:个人、企业类主体于2018年11月16日之前注册完成的帐号,可正常使用,不受2018年11月16日注册调整的影响。

python3包urllib和requests的变化

 

 

json_data = {
‘response_type’: ‘code’,
‘username’: ‘username’,
‘password’: ‘password’}

requests.post(‘https:/xxx/v1/api/users/token’), json=auth_data, params=auth_data)
#其中json,params参数都得填写json格式数据

 
import urllib
import urllib.request
urllib.request.urlopen(“https://www.baidu.com”).read().decode(‘utf-8’)
#记得导入urllib.request

redmine docker安装

环境: MacOS,  Docker Desktop

目前使用redmine作为项目管理和wiki管理的软件。使用外部mysql作为资料存储的方式。

外部Mysql数据库创建用户和数据库:
CREATE USER ‘redmine’@’%’ IDENTIFIED BY ‘redmine’;
CREATE DATABASE IF NOT EXISTS `redmine` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `redmine`.* TO ‘redmine’@’%’;
#docker0 network interface is associated with the default docker network bridge
$ docker network inspect bridge –format='{{json .IPAM.Config}}’
不过没啥用,只能用ifconfig中查找en0的网址作为DB_HOST

#下载image
docker pull sameersbn/redmine

#启动container
docker run -it –name=redmine -d \
–env=’DB_ADAPTER=mysql2′ \
–env=’DB_HOST=10.1.1.68′ –env=’DB_NAME=redmine’ \
–env=’DB_USER=redmine’ –env=’DB_PASS=redmine’ \
–volume=/Users/hcm-b0070/redmine:/home/redmine/data \
–publish=8085:80 \
–env=’REDMINE_PORT=8085′ \
sameersbn/redmine:latest
注意: 第一個是 MySQL 的 LISTEN IP,預設可能是 127.0.0.1,這邊將它設定成 0.0.0.0。 這部份從 /etc/mysql/my.cnf 修改 bind-address = 127.0.0.1 改為 bind-address = 0.0.0.0 第二是要考慮容器連接到外部的 MySQL 所走的路由閘道位置,預設應該是 docker0 這張虛擬網卡的 IP。 另外/Users/hcm-b0070/redmine代表host主机目录,/home/redmine/data代表docker内部目录

找回wordpress丢失已久的后台链接功能

最近想增加友情链接功能,发现最新的WP不知哪个版本把链接功能去掉了,WTF,只能重新找回这个功能。

仪表盘 — 外观 — 编辑

在模版函数(functions.php)的代码最后一行添加
add_filter( ‘pre_option_link_manager_enabled’, ‘__return_true’ );

最后点击“更新文件”,即可看到久违的链接图标

linux 安装使用supervisor和superlance服务监控

环境:CentOS Linux release 7.4

pip install supervisor

#加载配置,修改如下
echo_supervisord_conf > /etc/supervisord.conf
mkdir /etc/supervisord.d/

vi /etc/supervisord.conf

[include]
files = /etc/supervisord.d/*.ini

#start service
supervisord -c /etc/supervisord.conf

#write a program config
vi /etc/supervisord.d/SimpleHttp.ini

[program:SimpleHttp]
command=python2 -m SimpleHTTPServer 9000
directory=/root ;执行command之前,先切换到工作目录
user=root ;使用oxygen用户来启动该进程
autorestart=true ;程序崩溃时自动重启,重启次数是有限制的,默认为3次
stdout_logfile = /tmp/simple_http.log
loglevel=info

#roload program config, start service
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl status

#配置服务报警
pip install superlance

#Supervisor 事件发送到飞书
cp feishu-alert/event.conf /etc/supervisord.d/event.ini
supervisorctl update
注意:
1. 更给任何脚本时需执行以下命令,否则更改不生效
supervisorctl reload

参考:
https://www.jianshu.com/p/0b9054b33db3
https://cloud.tencent.com/developer/article/1414822
https://github.com/cmboss/supervisor-event-to-dingtalk-alert

Excel或Python生成随机字符串

Excel:

随机小写字母:=CHAR(INT(RAND()*25+97))
随机大写字母:=CHAR(INT(RAND()*25+65))
随机数字:=CHAR(INT(RAND()*9+48))
随机数字大小写字母:IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97))))
混合6位:=CONCATENATE(IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*9+48)),IF(INT(RAND()*2)=0,CHAR(INT(RAND()*25+65)),CHAR(INT(RAND()*25+97)))))

 

Python:

''.join(random.sample('abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789', length))