Mr wang


  • 首页

  • 分类

  • 归档

  • 标签

  • Wiki

  • 搜索

PyQt实现WebView

发表于 2016-09-08 | 分类于 技术 | 阅读次数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env python
# __*__ coding:utf-8 __*__
import sys,time
from PyQt4.Qt import *
from PyQt4.QtWebKit import *
from PyQt4.QtCore import *
from PyQt4 import QtGui
import ConfigParser
class WebView(QWebView):
def __init__(self):
super(WebView,self).__init__()
#读取配置文件,配置文件管理访问的url及窗口是否全屏
cf = ConfigParser.ConfigParser()
cf.read('WeChat.conf')
url = cf.get('WeChat','url')
showFullScreen_enable = cf.get('WeChat','showFullScreen_enable')
#打开url
self.load(QUrl(url))
self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
self.page().linkClicked.connect(self.linkClicked)
#设置窗口标题、图标
self.setWindowTitle(u'二维码扫码')
self.setWindowIcon(QtGui.QIcon('WeChat.png'))
#创建托盘
self.createTrayIcon()
#托盘点击事件
self.trayIcon.activated.connect(self.iconActivated)
if showFullScreen_enable == 'True':
self.showFullScreen()
else:
pass
self.show()
def linkClicked(self, url):
self.load(QUrl(url))
def closeEvent(self, event):
QtGui.QMessageBox.about(self,u'提示 ',u'不允许关闭! ')
event.ignore()
def focusOutEvent(self, QFocusEvent):
self.trayIcon.showMessage("警告", "窗口已失焦", 2)
def focusInEvent(self, QFocusEvent):
self.trayIcon.showMessage("提示", "窗口已聚焦", 1)
def createTrayIcon(self):
icon = QtGui.QIcon('WeChat.png')
self.trayIcon = QtGui.QSystemTrayIcon(self)
self.trayIcon.setIcon(icon)
self.trayIcon.setToolTip(self.tr("二维码扫码"))
self.trayIcon.setVisible(True)
def iconActivated(self, reason):
if reason in (QtGui.QSystemTrayIcon.Trigger, QtGui.QSystemTrayIcon.DoubleClick):
self.showFullScreen()
elif reason == QtGui.QSystemTrayIcon.MiddleClick:
self.showFullScreen()
if __name__ == '__main__':
app = QApplication(sys.argv)
#解决打包exe后,页面中文乱码问题
app.Encoding(QApplication.UnicodeUTF8)
utfcodec = QTextCodec.codecForName("UTF-8")
QTextCodec.setCodecForTr(utfcodec)
QTextCodec.setCodecForLocale(utfcodec)
QTextCodec.setCodecForCStrings(utfcodec)
webView = WebView()
sys.exit(app.exec_())

Mysql主从复制及读写分离的实现-MyCat

发表于 2016-03-10 | 分类于 技术 | 阅读次数

MyCat介绍

什么是MyCat

  • 一个彻底开源的,面向企业应用开发的大数据库集群
  • 支持事务、ACID、可以替代MySQL的加强版数据库
  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
  • 一个新颖的数据库中间件产品

MyCat官网:http://www.mycat.org.cn/

优势

copy官方的说明:
基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。

MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MYCAT的产品质量。

MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设(猜测是说的淘宝的TDDL,只开源动态数据源,分表分库部分还未开源)。

阅读全文 »

Mysql主从复制及读写分离的实现-Amoeba

发表于 2016-03-05 | 分类于 技术 | 阅读次数

#Amoeba简介

Amoeba(变形虫)项目,该开源框架于2008年开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面使用

Amoeba优缺点
优点:
1、降低费用,简单易用
2、提高系统整体可用性
3、易于扩展处理能力与系统规模
4、可以直接实现读写分离及负载均衡效果,而不用修改代码
缺点:
1、不支持事务与存储过程
2、暂不支持分库分表,amoeba目前只做到分数据库实例
3、不适合从amoeba导数据的场景或者对大数据量查询的query并不合适(比如一次请求返回10w以上甚至更多数据的场合)

Mysql GTID
Mysql 5.6的新特性之一,加入了全局事务性ID(GTID:Global Transactions Identifier)来强化数据库的主备一致性,故障恢复,以及容错能力;也使得复制功能的配置、监控及管理变得更加易于实现,且更加健壮。

阅读全文 »

Nginx配置ngx_pagespeed

发表于 2016-02-08 | 分类于 技术 | 阅读次数

pagespeed介绍

pagespeed是 Goolge 为 Apache 和 nginx 开发的前端优化扩展模块,其中适用 Apache 环境的叫 mod_pagespeed,适用于 nginx 环境的叫 ngx_pagespeed。

pagespeed 的功能包括但不限于以下方面:

优化传输带宽(过滤)(压缩图片、CSS、JS文件,去除html空白、注释…)、降低请求(CSS、JS文件合并、图片雪碧、识别并重定向常用JS库、缓存控制)、域名映射(支持CDN)、提升客户端体验(图片预加载、延迟加载,移动端图像优化),同时还提供对 https 的支持。

安装

安装方法 Google pagespeed 网站上有详细介绍,复制过来方便不能翻墙的朋友查看。

安装依赖

RedHat, CentOS, or Fedora:

1
sudo yum install gcc-c++ pcre-devel zlib-devel make unzip

Ubuntu or Debian:

1
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

安装ngx_pagespeed

目前 ngx_pagespeed 最新的版本是 1.12.34.2 beta版(要求 gcc ≥ 4.8 or clang ≥ 3.3),查看最新版本

1
2
3
4
5
6
7
cd /opt
NPS_VERSION=1.12.34.2
wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}-beta.zip
unzip v${NPS_VERSION}-beta.zip
cd ngx_pagespeed-${NPS_VERSION}-beta/
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}-x64.tar.gz
tar -xzvf ${NPS_VERSION}-x64.tar.gz

下载 nginx 并编译 ngx_pagespeed 模块

编译 ngx_pagespeed 模块

1
2
3
4
5
6
7
8
9
cd
# check http://nginx.org/en/download.html for the latest version
NGINX_VERSION=1.10.3
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --add-module=/opt/ngx_pagespeed-1.12.34.2-beta
make
make install

因为ngx_pagespeed模块的编译需要gcc ≥ 4.8 or clang ≥ 3.3,而我们使用的centos6系列gcc源版本只有4.7。官网给了一个解决方案:

1
2
3
rpm --import https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/slc6X/i386/RPM-GPG-KEY-cern
wget -O /etc/yum.repos.d/slc6-devtoolset.repo https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/devtoolset/slc6-devtoolset.repo
yum install devtoolset-2-gcc-c++ devtoolset-2-binutils

然后编译nginx的时候使用

1
2
3
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --add-module=/opt/ngx_pagespeed-1.12.34.2-beta --with-cc=/opt/rh/devtoolset-2/root/usr/bin/gcc
make
make install

我理解的是通过yum源将高版本的gcc已经安装到了/opt/rh/devtoolset-2/root/usr/bin/gcc目录下,然后编译的时候指定由高版本的gcc来进行编译。

配置

阅读书单

发表于 2015-10-15 | 分类于 读书 | 阅读次数
  • 2015.07阅读清单

    • Linux系统命令及Shell脚本实践指南(纸质)
    • 高性能Linux服务器构建实战—-系统安全、故障排查、自动化运维与集群架构(纸质)
  • 2015.10阅读清单

    • 构建高性能Web站点(纸质)
    • 深入理解Nginx(纸质)

TIPS

发表于 2015-07-16 | 分类于 资源 | 阅读次数

OPS运维工具

Ansible中文手册

正则表达式30分钟入门教程

性能调优

性能分析笔记

Linux进程

运维相关

Linux Shell命令

Linux 命令手册

GSLB全局负载均衡系统是如何构建

linux的运行级别及自启动程序

发表于 2015-07-16 | 分类于 技术 | 阅读次数

Linux运行级别:

Linux运行级别有七种:

1
2
3
4
5
6
7
0 - 停机(千万不能把initdefault 设置为0 )
1 - 单用户模式
2 - 多用户,没有 NFS
3 - 完全多用户模式(标准的运行级)
4 - 没有用到
5 - X11 (xwindow)
6 - 重新启动 (千万不要把initdefault 设置为6 )

默认的运行级别在/etc/inittab文件中进行设置。

阅读全文 »

Nginx+Tomcat+Memcached集群

发表于 2015-07-16 | 分类于 技术 | 阅读次数

部署环境

系统:Centos
软件及依赖包:
Nginx:
nginx-1.6.2.tar.gz
(http://nginx.org/download/nginx-1.6.2.tar.gz)
pcre-8.36.tar.gz (ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz)
zlib-1.2.8.tar.gz(http://zlib.net/zlib-1.2.8.tar.gz)

memcached:
memcached-1.4.22.tar.gz(http://memcached.org/files/memcached-1.4.22.tar.gz)
libevent-2.0.22-stable.tar.gz(http://libevent.org/)

memcached-session-manager:
下载地址

Tomcat:
apache-tomcat-7.0.59.tar.gz (http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.59/bin/apache-tomcat-7.0.59.tar.gz)
jdk-7u72-linux-x64.tar.gz

jar包:
我采用的是截止目前最新的版本,其中序列化方式是可选的。
序列化方式使用kryo时,jar包:下载地址
此处输入图片的描述

序列化方式使用javolution时,jar包:下载地址
此处输入图片的描述

了解到kryo序列化方式效率最高。

相关序列方式,所需不同jar包,可参考官方文档

阅读全文 »

CentOS下Oracle安装

发表于 2015-07-16 | 分类于 技术 | 阅读次数

安装前准备

安装依赖包

oracle 安装所需程序包,可以到安装步骤时,查看缺少什么程序就安装什么程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.14-11.el6 (x86_64) or later
unixODBC-2.2.14-11.el6.i686 or later
unixODBC-devel-2.2.14-11.el6 (x86_64) or later
unixODBC-devel-2.2.14-11.el6.i686 or later
libXp

使用命令 yum install -y ‘package name’ 安装所缺的程序包,pdksh包除外

安装pdksh包,使用rz命令上传pdksh-5.2.14-37.el5_8.1.x86_64.rpm文件到/opt/目录下

1
2
3
# 注意:该程序包与ksh冲突,如果已经安装ksh,建议使用命令 rpm -e ksh-* 卸载
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
阅读全文 »

CentOS 安装与调优配置

发表于 2015-07-16 | 分类于 技术 | 阅读次数

分区

至少2个分区,/以及swap分区。另外设置独立/boot分区。
所以生产环境分3个分区。

分区案例:http://oldboy.blog.51cto.com/2561410/634725

1
2
3
4
5
6
7
#分区查看
df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 8.6G 2.5G 5.7G 31% /
tmpfs tmpfs 242M 0 242M 0% /dev/shm
/dev/sda1 ext4 190M 53M 128M 30% /boot
阅读全文 »
12
Mr wang

Mr wang

运维笔记

18 日志
3 分类
11 标签
Links
  • Linux工具箱
  • Linux命令手册
© 2019 Mr wang 鄂ICP备16016806
由 Hexo 强力驱动
主题 - NexT.Mist