200826-Gson 简单使用姿势小结

关于Json序列化的框架可以说比较多了,比如Spring默认的Jackson,国内互联网用的比较多的FastJson,本文则主要介绍一下Gson的简单使用姿势,并不会涉及到不同的json框架的性能对比

本文主要内容来源于官方教程: https://github.com/google/gson/blob/master/UserGuide.md

200821-Android webview内嵌h5基础使用说明

Android可以通过webview来内嵌html页面,从而实现灵活的信息展示;最近客串android开发中,正好遇到了这样的一个小场景,所以简单的记录一下Android与html之间的交互,包含以下内容

  • webview的基本设置
  • Andriod调用js方法
  • js调用android方法
  • 图片长按下载

200817-谷歌内购服务教程与避雷指南

最近客串了一把android开发,对接谷歌的内购商品,这个过程真的是特别不顺,各种意想不到的坑,一踩一个;

接下来记录一下谷歌内购服务的完整配置流程,以及在最后测试阶段可能遇到的各种问题;在正式开始之前,请确定以下基本条件

  1. 科学上网
  2. 准备gmail邮箱
  3. 准备google play账号(地区不要选择中国大陆,因为不支持购买)
  4. 授权开启商家账号
  5. 准备测试机(谷歌服务四件套得有)

200810-acme.sh 快速实现https证书颁发与自动续期

借助acem.sh来迅速实现let’s encrypt的泛域名ssl证书颁发与续期,基本上五分钟就可以解决战斗

本文主要内容来自acme.sh的官方wiki,一切以官方说明为准: acme wiki

200728-Centos hostname修改

centos 6 修改方式

1
2
3
4
# 修改hostname,立即生效
hostname new-hostname
# 查看hostanme
hostname

centos 7 修改方式

1
2
3
4
# 修改hostname,立即生效
hostnamectl set-hostname new-hostname
# 查看hostname
hostname

200727-线上故障实录-一大早服务就不可用了?

难得一个周末,一大早还没有睡醒就接到另外一个团队的电话,app打不开了,所有的数据都没有了,睡意全无,赶紧起来看能不能紧急抢救一下,最终发现是一个关键链路的nginx配置错误,导致nginx无法启动,接下来完整的记录下愉快的周末中,这个不愉快的早晨

200722-idea依赖类标红问题fix

idea内部类,导入标红,提示找不到对应的依赖,解决办法

file -> Invalidate Caches/ Restart

200709-CURL文件上传

使用curl进行文件上传,语法如下

1
curl -f '文件名=@文件地址' url

200703-grep 匹配到二进制文件

直接使用grep 发现一个奇怪的问题,居然提示

1
2
$ grep 'error' cic.log
匹配到二进制文件 cic.log

grep如果碰到\000 NUL字符,就会认为文件是二进制文件。必须加上-a或–text选项强制让grep认为是文本文件才可以看到正常的结果

因此解决方案是:

1
2
3
$ grep 'error' cic.log --text
# 或者如下
$ grep 'error' cic.log --a

200629-Quick-Media 中文二维码支持

Quick-Media 项目提供了一些列多媒体操作的开箱即用工具类,比如图片编辑合成,markdown/html/svg渲染,音频处理;当然还有本文重点说明的二维码生成解析

QrCode-Plugin支持丰富的酷炫二维码生成,大概十来天前有个小伙伴提了一个非常有意思的方向,能否将二维码中的黑白方块换成中文

趁着端午放假前夕的空闲时间,把这个集成在QrCode插件中,生成效果如下(从左往右,从上往下读,千字文😝)

200623-Python url编码

Python提供了较好的url编码封装,常借助 parse来实现,一般常见的使用姿势有两种

1
2
3
4
5
6
7
8
9
10
11
12
>>> from urllib import parse
# 直接对字符串进行url编码
>>> parse.quote('一灰灰Blog')
'%E4%B8%80%E7%81%B0%E7%81%B0Blog'
# 解码
>>> parse.unquote('%E4%B8%80%E7%81%B0%E7%81%B0Blog')
'一灰灰Blog'

# 对一个字典进行url编码,并组装成url参数
>>> p = {'a': '12+23', 'b': '一灰灰blog'}
>>> parse.urlencode(p)
'a=12%2B23&b=%E4%B8%80%E7%81%B0%E7%81%B0blog'

200619-http代理服务器tinyproxy搭建手册

简单记录一下http代理服务器tinyproxy的搭建与简单配置过程

1
2
# 安装
sudo yum install tinyproxy -y

200616-zsh 安装与配置

本文简单记录centos环境下,zsh的安装过程,以及我个人常用的主题配置

200604 Nginx重写代理链接

本文参考自: 重写代理链接-url-rewrite

使用nginx做发现代理,遇到一个场景,匹配 /console/ 开头的域名,转发到目标端口号,但是希望转发过去的url,去掉 /console/ 这个头

针对这个,可以借助 rewrite + proxy_pass来实现

1
2
3
4
location /console {
rewrite ^/console/(.*) /$1 break;
proxy_pass http://127.0.0.1:8080/;
}

200527-Python 获取本机Ip和主机名

python中获取本机ip以及主机名

1
2
3
4
import socket

hostname = socket.gethostname()
ip = socket.gethostbyname(hostname)

200526-python int list转String

在python中,可以直接通过','.join的方式来连接一个list,但是如果list中的元素不是string,会报错

1
2
3
4
5
6
>>> a = [1,2,3]
>>> ','.join(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found
>>>

针对非string元素的列表的转换时,可以考虑借助表达式语言来处理,如下

1
2
3
4
>>> a = [1,2,3]
>>> ','.join([str(x) for x in a])
'1,2,3'
>>>

200517-吐槽之阿里云欠费7分导致服务不可用

新业务上线,购买了阿里云全家桶,服务跑着好好的,突然发现跪了,首先是域名能ping通,但是访问不了,服务器也能ping通,结果就是死活登录补上去,ssh各种超时,阿里云控制台的远程登录也不行,这尼玛难道是阿里云宕机了?其他项目组的阿里云服务器很正常啊

然后按照某些博文说的,重启大法,然而并没有什么鸟用…

那就提工单,响应速度真的是很快很快,两个小时的排查,然后告诉我是因为欠费,查了下明细,oss服务欠了7分的流量费,导致服务器无法登录,这个操作也是可以了…

200515-nginx 提示文件访问权限问题failed(13:Permission denied)

nginx配置完毕之后,添加一个html页面,访问直接500错误,通过查看错误日志,显示 failed (13: Permission denied)

解决方法,修改配置文件中的userroot

1
2
3
4
vim /etc/nginx/nginx.conf

user root;
worker_processes auto;

修改完之后,重启即可

1
nginx -s reload
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×