Dropbox 同步问题

最初的时候下载了 Dropbox 做为我重要资料的网盘备份,可是最大的问题就是Dropbox的联网问题,众所周知此工具是被限制的,只能想一些办法FQ才可以使用,后来无奈从电脑上删除了,最近几天在整理1password备份的时候,觉得icloud有点问题(原先使用icloud做备份),而且今年icloud中国由云上贵州运营了,也曝出了一些不好的新闻,不知真假,虽然我也在用icloud的免费5G的空间,反正也没有放什么隐私的材料照片,也就无所谓了,密码这个东西还是需要注意些,比较了一下Dropbox相对安全一些,决定重新捡起Dropbox。

此站点我是用的Linode,每个月$5对我来说足够了(没什么浏览量),我在上面部署了ss服务,本地Mac安装ss客户端,添加服务器,选择自动代理模式,由于服务器在日本,延迟200多ms还算可以,基本的Google查询还是可以接受的。

下载Dropbox,安装在本地,安装好之后发现即使开启了ss还是一直处在连接中的状态,无法连接到服务器,于是在网上找到了方法,首先找到ss的自动模式的PAC文件 gfwlist.js,打来看到其中有一行

1
var proxy = "SOCKS5 127.0.0.1:1080; SOCKS 127.0.0.1:1080; DIRECT;";

根据每个人的不同配置跟我的不一样,仅供参考,接着打开Dropbox的偏好设置,找到网络 –> 代理服务器,点击更改设置,选择手动,代理服务器类型:SOCKET5,服务器端口号写上就可以了,点击更新,过几秒发现Dropbox可以连接了

1password在偏好设置中选择同步方式为Dropbox,我只是在Mac跟iphone之间同步,iphone上开启代理即可,经试验,同步还是很快的,可以开心的使用了。

Comments

image storage server

最近发现个人博客网站很少用到图,存储到一些云服务厂商不知道哪天就给封了,还是放在自己服务器比较安全,决定找时间在现有的图片站点加上图片上传功能。

Todo

  • 图片上传服务
  • 考虑服务器安全备份问题
Comments

基本排序算法

一、冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名

算法原理

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
1
2
3
4
5
6
7
def bubble_sort(list):
length = len(list)
for i in range(length):
for j in range(1, length-i):
if list[j-1] > list[j]:
list[j-1], list[j] = list[j], list[j-1]
return list

二、冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名

算法原理

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
1
2
3
4
5
6
7
def bubble_sort(list):
length = len(list)
for i in range(length):
for j in range(1, length-i):
if list[j-1] > list[j]:
list[j-1], list[j] = list[j], list[j-1]
return list
Comments

升级站点php版本到7.2.1

php7已经问世两年多了,都说性能提升了不少,可开发一直在使用php5.6,最近考虑把自己站点的php版本升级一下,目前站点的php版本是5.6.31

1
2
3
4
5
~$ php -v
PHP 5.6.31 (cli) (built: Sep 14 2017 18:12:46)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

php download目前官网的稳定版本是7.2.1,下面记录下升级过程

Read More

Comments

mysql 分页数据重复

BUG mysql分页数据偶尔有重复

解决:在sql语句中使用了order by field,其中filed字段非id,数据有重复导致分页数据偶尔会重复,再增加order by id可以解决,参考stackoverflow
以及 stackoverflow

Comments

php 502

记录一次bug查找经历

起因

偶然间打开一个以前的项目,浏览器显示 502 Bad Gateway,最开始以为php-fpm没有启动,后来发现不是这个原因

排查过程

  1. nginx、php-fpm都服务正常
  2. 配置无误,访问root目录下的html文件都能正常访问,php文件都是502,定位到php-fpm出问题
  3. 查看nginx错误日志,报错信息(我电脑php-fpm监听的9011端口)
    1
    [error] 16914#16914: *1314340 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: ****, server: ****, request: "GET **** HTTP/1.1", upstream: "fastcgi://127.0.0.1:9011", host: "zhouyanbo.com"
  4. 检查php-fpm.log文件(一般位置在/var/log/php-fpm/error.log),没有错误信息,修改/etc/php-fpm.d/www.conf配置
    1
    catch_workers_output = yes
  5. 重新请求查看php-fpm.log日志,报错
    1
    [pool www] child 31776 said into stderr: "ERROR: Connection disallowed: IP address '127.0.0.1' has been dropped."
  6. 最后修改/etc/php-fpm.d/www.conf配置,原来是any改为127.0.0.1
    1
    listen.allowed_clients = 127.0.0.1
  7. 重启能正常访问

疑问

按道理说listen.allowed_clients = any也是能正常访问的,any包括了所有,但是莫名其妙会出现502的问题,暂时修改为127.0.0.1能正常访问了,以后有时间再研究下,先做下记录

Comments

nginx 反向代理配置

条件

两台能互相通讯的服务器,一台内网地址192.168.1.100,另外一台192.168.1.101,192.168.1.100服务器上设置反向代理,当用户访问地址时,转发到192.168.1.101服务器上

服务器配置

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;

server_name www.zhouyanbo.com;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://192.168.1.101:8080;
}
}

192.168.1.101服务器上正常配置站点

Comments

ngrok服务器搭建

记录ngrok的安装过程

准备

  1. 一台linode服务器,系统 Centos 7 amd64
  2. 一个公网域名 zhouyanbo.com

一、安装软件

1. 安装gcc
1
yum install gcc
2. 安装go环境

下载最新的go版本

1
wget https://redirector.gvt1.com/edgedl/go/go1.9.2.linux-amd64.tar.gz

解压
1
tar -C /usr/local/ -zxvf go1.9.2.linux-amd64.tar.gz

Read More

Comments

Qt creater

Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等

最近空闲时间在看python相关的资料,基础部分大致看了下,自己用python写了几个小程序,都是些文件、字符串的操作,接下来想用Python做一些小的桌面程序,就有了下面的一段故事

查阅一些资料最后决定使用pyqt5来做开发

开发环境

  1. 系统 Mac OS X EI
  2. Qt5.9.2
  3. Qt creater4.4.1

初始想法是做一个计算器桌面程序,软件安装完毕之后,打开Qt creater配置qt version,构建套件就用默认的桌面就行,按照教程创建项目,最后进入主界面,
发现项目下只有一个demo.pro文件,打开demo.pro文件所在的文件夹,发现.ui、
.cpp、.h文件都没显示出来,也不能正常运行,小白第一次接触不知道啥原因,遂Google,各种方式搜索,大概找了大半天时间的资料,没有发现有相同问题的同学,未果,搁置

第二天到公司做完工作上的任务继续搜资料,偶然看到一句话

编译器建议选择mac的clang编译器,使用苹果自带的编译器,程序运行会相对稳定些,避免平台带来的差异。

于是去偏好设置中改了下编译器,改成了自带的clang编译器(原来用的gcc),保存,神奇了,项目文件都显示出来了,并且也能正常运行了,对于刚接触Qt的我来说还不知道为啥,等有时间深入了解下吧,目前只想用来布局一个界面

Comments

处理TIF、EPS图片

工作中需要处理图片,格式包括png、jpg、svg、gif、tif、eps,等等。。。 前面几种还知道
第一次听说还有tif、eps格式的图片,看来还是见识少啊

在网上找资料发现很少有处理这两种格式的图片的,尤其是eps,最后找到imagemagick,看了介绍之后觉得真是功能强大啊,无所不能

具体安装及使用方法见官网

使用过程中发现用convert命令对tif图片处理时,会在目录下生成不止一个图片

1
convert -resize 200 image.tif target_path

查资料发现tif是有图层的,一个tif图片可能会有多个layer,如果只要想生成一个图片的话,修改命令如下

1
convert -resize 200 image.tif[0] target_path
Comments