-
Supervisor安装使用教程
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。##安装##因为Supervisor该组件使用python开发的,所以它的安装我们也可以pip进行安装。Supervisor ...…
-
MariaDb主从复制失败
为系统设置数据库的主从复制,今天突然发现数据库在某个时间点报错后不再继续同步,需要处理一下使之继续工作。在slave上使用show slave status\G 查看一下同步的状态,发现同步出现错误。从网上找了两种解决方式#方法一该方法适用于主从库数据相差不大,或者要求数据可以不完全一致的情况,即数据要求不严格的情况。在从服务器上执行:stop slave#表示跳过一步错误,后面的数字可变set global sql_slave_skip_counter = 1start slave之后再...…
-
计算机乱码的问题
我们都知道,任何信息在计算机中都是以二进制01的形式存在,通过不同的01组合,可以表达出不同的信息,这就是编码了。我们通常所说的字节(byte),就是一个最基本的单元,它由8个0或者1来表示,可以组合出256种状态,如果每一种状态代表一个符号,那么一个字节可以编码出256个不同的符号,从00000000到11111111。计算机最早是美国人在折腾,于是他们捣腾出一套ASCII码表,也就是将一个字节中的0~127种状态分别用来表达数字0~9,大小写英文字母,还有一些标点符号。比如说大写字母A...…
-
使用winrar制作自加压缩格式软件
使用python编写的客户端程序,需要进行打包,所以选择使用pyinstaller进行打包。但是由于一些原因打包的程序要希望可以做到自解压缩格式,同时创建桌面快捷方式,所以就选择使用winrar进行处理。前提说明,使用pyinstaller打包时,没有打成onefile形式,因为此类型对多进程有些影响。使用winrar打包的过程如下:第一步,右键选择需要打包的文件,选择’添加到压缩文件’第二步,勾选’创建自解压缩格式压缩文件’,之后选择高级选项卡第三步,选择自解压选项第四部,在弹出来的窗口...…
-
Python用PyInstaller打包笔记
使用 python 编写的程序,打算发布到windows平台上,希望windows上的用户需要安装python的执行环境即可执行,所以选择使用pyinstaller进行打包,发布成exe执行格式。 准备工作** 安装pywin32到http://sourceforge.net/projects/pywin32/下载 PyWin32,如果想发布到32位和64为操作系统上,这里可以分别选择pywin32-219.win32-py2.7 和 pywin32-219.win-amd64-py2....…
-
python操作配置文件
python读写配置文件还是比较方便得。 基本的读取配置文件** read(filename) 直接读取ini文件内容** sections() 得到所有的section,并以列表的形式返回** options(section) 得到该section的所有option** items(section) 得到该section的所有键值对** get(section,option) 得到section中option的值,返回为string类型** getint(section,opt...…
-
Python进程的理解
由于python实现了多线程的功能,现在为了提高计算机多核的效率,需要把多线程的程序修改成多进程的计算模式,但是发现进程和线程的执行还是有很大区别。也许之前的工作中没有关注过多线程和多进程的程序吧!#子进程和父进程的工作原理在python中,使用os.fork()之后,在内存中把父进程的代码及内存分配情况拷贝一份生成子进程的运行空间,这样子进程的所有代码都与父进程一样,两个进程之间的运行是独立的,互不影响。 在Unix/Linux操作系统提供了fork()系统调用,fork()调用一次,...…
-
Python多进程操作
python中的多线程其实并不是真正的多线程,如果想充分利用多核CPU的资源,在python中大部分情况需要适用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同的形式的同步,提供了Process、Queue、Pipe、Lock等组件。#单进程from multiprocessing import ...…
-
设计模式--策略模式
#说明本篇文章的代码在github上,感兴趣的可以下载:源码#策略模式在策略模式中(strategy pattern),一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。策略模式又叫算法簇模式,就是定义了不同的算法类,并且之间可以互相替换。此模式让算法的变化独立于使用算法的客户。策略模式的好处在于你可以动态的改变对象的行为 意图:定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换。 主要解决:在有多种算法相似的情况下,使用if…else所带来的复杂和难...…
-
python tkinter按钮传递参数
最近在使用python tkinter实现一个小程序,但是实现button点击事件时,无法传递参数,google了一下原来需要使用lamdba语法。tkinter要求由按钮(或者其它的插件)触发的控制器函数不能含有参数,目的就是为了以统一的方式去调用他们。def save(id): passbutton = Button(root,text="test",command=lambda:save(id))这样就可以完美调用了…
-
spring mvc介绍
以前一直在使用ssh、ssi、guice等框架,SpringMVC也是一个比较火热的技术,一直没有实际体验过。目前在考虑某个项目的技术架构,考虑到了该技术,最近也在熟悉spring mvc方面的信息。#简介#Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring框架是一个分层架构,由7个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义...…
-
centos6升级python
1、yum install libjpeg-devel gcc gcc-c++ zlib-devel bzip2-devel openssl-devel xz-libs2、下载python最新版2.7.10解压缩后进行安装 tar -zxvf Python-2.7.10.tgz cd Python-2.7.10/ ./configure --prefix=/usr/local make all make install make clean make distclean #保存老版本并创...…
-
在centos6上安装thrift
我们将要安装thrift版本为 0.9.21、安装前环境准备–安装依赖yum -y install libtool flex pkgconfig gcc-c++ boost-devel python-devel ruby-devel autoconf、automake、bison、libevent-devel zlib-devel openssl-devel使用上述安装bison,在安装thrift过程中会报错,bison版本过低,需要安装>2.5版本。wget http://f...…
-
perl程序安装模块
#用cpan命令在线安装##安装依赖yum -y install unzip links ftp make wget gpgyum -y install cpan##使用cpan命令安装,egcpan -i Net::Telnet…
-
Tomcat Daemon模式下乱码问题
在linux普通用户下面,使用daemon进行设置tomcat在普通用户下开机启动,但是之前tomcat的编码是正常的,但是使用了该插件后,日志出现了乱码,解决方案如下:在daemon.sh中加入一下代码:###CHANGE BY PHPDRAGON#####Repair of Tomcat container Garbled problem##CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"##Tomcat optimization...…
-
Log4j配置详解
#一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。##1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ER...…
-
Maven基本操作
本文只是记录在使用maven过程中常用的命令,不做为详细的maven教程#创建一个web项目mvn archetype:generate -DgroupId=com.nova.dr -DartifactId=dr -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false#创建一个java项目mvn archetype:generate -DgroupId=com.nova.dr -DartifactId=dr ...…
-
branch和tag的区别
以前工作代码都是在svn上进行管理,在svn上也没有过多的关注过branch和tag,甚至branch和tag的作用还有一些模糊。最近学习使用了一下github,同样遇到了branch和tag,不由地了解了一下。branch是工程需要并行开发不同版本而创建的。如一个原型项目完成后,可能有不同的客户购买并定制,于是就需要在这个原型上构建两个独立的开发库,各自并行开发不同客户的需要。这样,branch可以是进程中的工程,而且之后会不断修改的。tag多用于建立里程碑。比如开发达到某中程度,发布某...…
-
Python TK编程1-helloword
最近在学习python,基本的语法看了一遍了,想了解一下gui编程方面的知识,所以对Tkinter进行一些了解,此博客记录自己的学习过程。#我的第一个python gui程序 #!/usr/bin/evn python # -*- coding: utf-8 -*- #filename:helloworld.pyfrom Tkinter import * root = Tk()w = Label(root,text="Hello,World!")w.pack()root.mainloop(...…
-
python安装PIL的问题
最近在学习Tkinter的知识,这使用图片时发现不能正常显示,google一下,发现Tkinter默认支持gif格式,使用其他格式的文件需要安装PIL模块。不过在安装过程中出现了一下错误问题:1 warning generated.clang: warning: -framework Tcl: 'linker' input unusedclang: warning: -framework Tk: 'linker' input unusedIn file included from _ima...…