Linux 应用

如何 60 秒内进行 Linux 性能分析

#linux 应用#Performance

在你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第一分钟内做哪些检测呢?

阅读更多

May 21, 2020

Gartner中APM模型的优先级

#apm

前一段时间对APM的知识点做了一些梳理,对APM的基本概念也做了梳理,对于这个由Gartner提出的东西,在具体的应用落地场景上还是不免有很多不理解的地方。很多人直观的理解为APM就是一个监控,或者就是一个监控告警。就是我最早接触这个概念的时候也是这样认为的。

阅读更多

November 29, 2019

使用gitbook来写文档和文章啦

#git

前言​ 项目中文档管理是一个比较麻烦的事情,一般的做法都是写word文档,或者pdf;针对代码或者接口文档高级一点的可以使用Doxygen或者swagger这样的工具自动生成更新文档。但是项目中还有很多文档有是图文混合的。那这样的文档怎么有效管理呢? ​ 在找了几个工具之后,发现了一个比较合适的工具gitbook。这个工具之前也接触过,主要是用来书籍编写管理,这方面确实做的非常专业。但是我发现用来做文档管理也是非常好用的,所以拿来测试了一下,效果还是不错的。看看这个效果,也是左右分栏,左边是目录分类列表,右边是内容。还可以直接进行搜索。

阅读更多

November 24, 2018

windows10下使用dockerfile制作镜像

#docker

其实操作系统没有关系,主要还是Dockerfile的编写和执行,过程来说比较简单。 1.编写Dockerfile 我的dockerfile如下,主要是用于golang和c++的开发,所以相关软件安装都是和这方面有关的。 本来打算使用163的源的,后来看了一下官方源速度也还不错,就直接用官方的源了。

阅读更多

November 7, 2018

Windows10下安装Docker记录

#docker

之前一直使用window安装虚拟机的方式来做linux应用,这次想使用docker来试试,这里顺便记录一下,部分资料来自网上。 一、启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图:

阅读更多

November 5, 2018

helight.info域名启用

#linux 应用

纠结了好久,终于定了,启用了helight.info这个域名,同时还申请了helight.cn,helight.com的域名已经被人注册了,还是一个黑科技公司,看产品就很奇怪。 这几天已经配置把helight.info配置ok了,整个网站都切换了,zhwen.org还会继续使用,欢迎大家浏览。

阅读更多

January 29, 2018

nginx+php站点配置https

#nginx#http#php

今天准备搞一个小程序测试一下,结果发现如果要链接我的站点,那就必须要站点支持https。所以就顺便鼓捣一下把站点升级一下,增加https的访问支持。 首先解决的就是证书问题,一个个人blog就没有必要买证书了,发现证书老贵老贵的。所以找了找免费证书,最后发现腾讯云提供的还是比较好的,很方便申请,这里https://buy.cloud.tencent.com/ssl 直接选择免费证书,输入自己的域名就可以申请了,再按照他的流程就可以生效了,最后下载下来就可以用了。阿里云说是有,但是我的申请界面没有看到,所以没法用。

阅读更多

January 24, 2018

lex和yacc 学习笔记

#golang#yacc#uwsgi#sid

前一段时间在项目中要使用一个规则表达式计算的功能,而且想可以任意扩展计算功能,比如计算AUB,A和B都表示一个号码包,计算并集,当然实际使用的公式会更为复杂,这里举例说明。在计算时候要判断如果A包已经计算ok了就可以使用A包,如果没有计算成功就需要发起计算并且等待计算成功,B包也是要同样的处理过程,最后再计算并集。当然这样一个功能自己定义写肯定是没问题的,但是还要想到后面的扩展性和程序代码可移交等问题,还是想有一个通用的方法来解决,所以在最后想到了使用yacc和lex来组织解决。实际上后来发现用yacc和lex非常方便的可以解决这类问题,而且在扩展性上非常好。所以想这里先总结一下yacc和lex使用的一些语法特点和具体我们使用的方式。现在这篇中总体总结一下yacc和lex的语法特点,下一篇再写具体使用中的一些过程。

阅读更多

January 20, 2018

如何使用Swagger编写API文档

#lex

 最近在梳理内部系统的架构设计,而且前端时间也在kindle上看了一些国外开发在API的架构设计上的一些思考。所以就想着我们内部系统的api也应该梳理梳理了。 目前内部使用golang开发是重头,基本上的服务和调度都是使用golang来开发,而且内部模块之间的调用都是http的接口。而且目前golang1.8已经默认支持了http2的协议,在效率上以前顾虑的问题,现在都有所缓解,所以把这块的梳理重点放在了http接口的梳理上。 重点看了soap,json-rpc,restfull。在梳理中发现一个比较有意思的东东,叫 Swagger,中文名字也比较有意思:丝袜哥,哈哈。这个东西是做什么的呢:专门用户规范设计API的,简单用了一下还是非常好用的。在其官网这样介绍的:

阅读更多

January 19, 2018

ubuntu中编译安装protobuf记录

#cpp

1.下载protobuf 下载地址:https://github.com/google/protobuf/releases

阅读更多

September 11, 2015

Java通过swig调用C++接口

#java#uwsgi

记录一下过程

阅读更多

September 10, 2015

thrift maven编译运行

#thrift#java#scons

dependencies编译,pom.xml中加入build配置:

阅读更多

May 22, 2015

netty用pb来实现多接口rpc

#ubuntu#docker

在netty中使用pb, nettty的pb编解码必须指定要解码和编码的pb结构体,这然做多接口的应用就很不方便,这里采用了一种简单的方式来解决。 pb定义如下:

阅读更多

December 17, 2014

zz MySQL的InnoDB索引原理详解

#shell

原文地址:http://www.admin10000.com/document/5372.html 摘要: 本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。 InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyISAM作为对比。

阅读更多

October 27, 2014

ngingx访问限制和iptables简单使用

#hdfs#2pc

为了方便安装了一个phpmyadmin,结果公司扫描了之后说要做一些安全限制,主要还是用到nginx的访问限制和iptables,这里稍微做一下记录 nginx的限制较为简单,在server中添加对phpmyadmin的限制即可

阅读更多

October 14, 2014

hdfs的C++接口编译测试

#linux 应用

项目中要做一个数据包管理服务,我们主要项目开发都是C++的,所以这个数据包管理也是c++开发的,但是数据包的存储是个问题,最后选择了本地存储和hdfs存储结合。 昨天调试了以下hdfs的C++接口,简单这里记录一下: 代码程序是网上随处可以搜到的测试代码:

阅读更多

May 9, 2014

使用gdb和ps定位程序cpu占用问题

#uwsgi

先使用ps获取子进程cpu占用时间,可以看出那个线程cpu占用严重

阅读更多

April 30, 2014

Storm云计算学习摘录总结

#linux 应用

本想自己也总结以下,看到这篇文章总结的太好了,直接转载了 原文:http://my.oschina.net/yilian/blog/175451

阅读更多

April 12, 2014

Sqlite使用笔记

#nginx

在目前做的元数据节点中,为了保存一些节点的私有数据,选择了本地存储,在选择本地存储的选择上又选择了使用sqlite,sqlite对数据存储和数据解析在使用比较简单。而且编译入当前代码也是比较容易的。

阅读更多

April 10, 2014

scons学习笔记

#linux 应用

scons是一个python写的用来编译源码的一个工具,类似于make工具,但是支持的语言更多,灵活性更强。 这里来介绍一下scons的使用。下载可以在其官方网站:http://www.scons.org,源码安装就不说了,ubuntu和debian上安装更为方便,直接apt-get install scons就可以了。本文以编译c、c++为例来介绍其使用。

阅读更多

April 6, 2014

ROMFS文件系统分析

#linux 应用

作者:许振文 ROMFS是一种简单的只读文件系统,主要是用来当做初始文件系统来使用的,在嵌入式linux或是uclinux中通常使用这中文件系统来作为引导系统的文件系统,甚至uclinux有时就直接把ROMFS作为其根文件系统,而不是将其作为系统启动中的过渡文件系统。在前面我也分析过,linux操作系统启动中一个是要加载内核,另一个就是要加载一个用于系统简单初始化的文件系统。这个文件系统的格式也是经过了很多发展的。现在一般使用的是一中cpio的格式。在嵌入式系统中一般使用romfs+其它的可读文件系统。romfs由于它的小巧性(其内核编译只有4000字节),所以非常适合作为系统启动初始化的文件系统。本文就是对ROMFS文件系统进行结构上的分析。前面我也曾对其源代码结构进行了简单的分析。关于ROMFS最为权威的资料是内核源代码树下的“Documentation/filesystems/romfs.txt”。本文多数资料就是来自于该文件。

阅读更多

April 6, 2014

Ramdisk文件系统的制作-V0.2

#linux 应用

作者:许振文 Ramdisk文件系统: 可以利用工具软件BusyBox制作Ramdisk文件系统.busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了 一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.完整的BusyBox源代码可以从 http://www.busybox.net下载,压缩包大小为1.3 MB左右。下面是如何使用编译BusyBox的过程。

阅读更多

April 6, 2014

GUN 工具学习

#linux 应用

作者:许振文 nm nm默认的输入文件为a.out,也就是说,如果nm后面没有跟要查看的二进制文件名的话, 那它会默认读取当前文件夹下的a.out文件作为其输入。

阅读更多

April 6, 2014

git使用总结

#linux 应用

作者:许振文 Git 介绍 最近的小项目想使用git来管理,应为git可以不需要服务器而在任意的Linux机器上管理代码,相对svn和cvs还是有它的优势的,所以我选用了git来管理我的小项目,以后在提供svn的管理。 在使用了一段时间后想写一点总结,可能也是和网络上其其它的git的文章差不多。但是作为我的使用总结还是很有必要的。

阅读更多

April 6, 2014

Vim+cscope+ctags+tags阅读源代码

#linux 应用

作者:许振文 linux源代码提供了制作cscope索引文件和tags文件的make命令。

阅读更多

April 6, 2014

AutoMake 学习笔记

#linux 应用

作者:许振文 过程记录: 1. autoscan 2. 修改configure.scan,重命名为configure.in,编辑Makefile.am 3. 运行aclocal 4. autoconf 5. automake --add-missing 6. ./configure && make && make install了。

阅读更多

April 5, 2014

配置SSH无密码登录问题解决记录

#linux 应用

在本地测试搭建hadoop玩以下,不想在ssh配置上栽了了,记录以下过程和处理方式:

阅读更多

March 23, 2014

stl的内存管理

#django

zz http://biancheng.dnbcw.info/c/73875.html 在你大量使用stl的各种容器时,你确定它们会按你想象的那样释放内存吗?你使用map存放1G的数据,当map clear后,它占用的空间释放了吗? 下面是一些统计数据:

阅读更多

February 15, 2014

thrift之php客户端使用

#scons#crontab#uwsgi

一方面是测试使用,另一方面还想把server的一些状态和运维信息能够以web的方式展示出来,组内的web框架全是ci,我想使用django,但是组内python的人少,所以还是随大家要使用ci,用php做开发,那么就需要php也能支持使用thrift的rpc方式去访问。

阅读更多

February 13, 2014

thrift之python客户端使用

#scons#django#mysql

写好了cpp的服务器后,测试是个问题,写cpp程序来测试好像不是很灵活,所以想用python脚本来写测试程序,记录一下过程。 首先是thrift的python程序库的安装,有些基础库需要安装后才能运行,在thrift的目录库目录中,选择py目录,使用root账户就可以直接安装了。 cd thrift-0.9.0/lib/py python setup.py install 即可完成安装。当然安装完成之后也要记得测试一下,安装是否成功。

阅读更多

February 13, 2014

Thrift的required和optional源码分析

#scons#django

thrift的数据类型定义的时候和protobuf(后面简称pb)一样也有requried和optional标签,意义是类似的,required标示改消息在序列化之前必须设置该字段值,如果不设置则无法序列化,当然也就更无法反序列化,该标签标示的字段是必填字段;而optional字段则标示该字段可赋值也可以不赋值,当然不赋值的结果是在序列化之后的数据中该字段被标示为无值字段,就是说直接访问获取该值是不行的,必须先判断是否设置了该字段的值,再去读值;这样作的好处是在协议扩充和变更时可以较为灵活的设计程序,而且在传输上也就减少了不必要的字段传输。

阅读更多

January 11, 2014

shell字符串的截取

#shell

shell字符串的截取的问题: 一、Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : ‘\(.\\).*’ 6.echo $a|dd bs=1 count=8 2>/dev/null

阅读更多

January 11, 2014

SHELL学习笔记----IF条件判断,判断条件

#shell

无论什么编程语言都离不开条件判断。SHELL也不例外。

阅读更多

January 11, 2014

Thrift学习笔记—IDL基本类型

#scons#django

thrift 采用IDL(Interface Definition Language)来定义通用的服务接口,并通过生成不同的语言代理实现来达到跨语言、平台的功能。在thrift的IDL中可以定义以下一些类型:基本数据类型,结构体,容器,异常、服务

阅读更多

January 5, 2014

scons学习笔记

#makefile#mysql

scons是一个 python写的用来编译源码的一个工具,类似于 make工具,但是支持的语言更多,灵活性更强。 这里来介绍一下 scons的使用。下载可以在其官方网站: http://www.scons.org,源码安装就不说了, ubuntu和 debian上安装更为方便,直接 apt-get install scons就可以了。本文以编译c 、c++ 为例来介绍其使用。

阅读更多

January 5, 2014

Thrift 学习笔记--概念介绍

#Thrift

Thirft框架有几个比较重要的组成部分,这里简单介绍以下,主要翻译了其官方文档。加入了自己的一些理解。

阅读更多

January 4, 2014

Thrift http嵌入sever设计实现

#scons#django

背景介绍 在服务器模块程序种嵌入一个简单的httpserver,再通过网页或是后台再访问这个httpserver,得到一些服务模块的实时运行数据或是运行环境数据,或者在浏览器端调整服务器的实时运行参数,从而达到对后台服务模块的实时监控。 本文所写的是在thrift框架之下如何嵌入一个httpserver模块,并且如何在thrift框架之下使用js和httpserver交互,发送数据到服务器,并且获取展示服务模块的运算结果。

阅读更多

November 4, 2013

Nginx设置为代理服务器上网

#2pc

公司的网络部门抽风,突然之间不让办公机连接idc上的非80端口了,而内部写的大部分的后台模块都是会起一个非80的http端口,让开发去实时查看模块信息,甚至动态调整模块内的一些flags参数,兄弟们着实痛苦了好几天,本来想简单点直接在任意idc机器上使用w3m来去登录这些页面,但是这些页面偏偏使用了ajax获取数据才进行展示,所以没办法,只好开代理了,上nginx吧,反正想在那台内网机器上安装nginx好久了。

阅读更多

July 30, 2013

Program received signal SIGPIPE, Broken pipe

#uwsgi

在gdb调试程序的时候发现一个错误信息, Program received signal SIGPIPE, Broken pipe,原来是客户端程序在给服务器进行写入操作的时候,如果服务器执行了close操作,这时候根据tcp协议规定服务器要给客户端返回一个RST响应,如果client再用之前的fd往这个服务器写数据的时候,系统救护发一个SIGPIPE信号给进程,告诉进程链接已经断开。但是SIGPIPE信号的默认执行动作是terminate,所以客户端会退出,如果要想客户端不响应这个信号,则直接将其屏蔽忽略即可。

阅读更多

May 21, 2013

crontab 环境变量导致脚本运行错误

#crontab

1.缺少LANG的ls取值错误 程序: yestoday=`date +%Y%m%d -d-1day` ytoday=`date +%F -d-1day` pathroot="/data5/tt_chat/" filelist=`ls $pathroot/data/ -l|grep $ytoday|awk '{print $8}'` echo $filelist 按时间过滤过滤出昨天一天生成的文件,让后再做处理,本地测试执行,没有问题,加入crontab执行总是没有数据文件过滤出来,但是自己再本地执行,就可以了

阅读更多

April 15, 2013

mysqldb:2014:Commands out of sync; you can't run this command now

#shell#mysql

自己写了一个python的mysql的访问类,在python的多线程种使用种有了点问题,就是报这个2014的错误,在网上搜了很多资料,基本都是说mysqldb有问题,但是在解决方法上我这里测试通过一种方式: 在每次查询或是更新的时候,从新获取一个sql执行结构体cursor,执行完毕之后在close这个cursor,例如在类方法种我这样写:

阅读更多

February 5, 2013

python中thread的简单使用

#mysql

今天在整理一个pyton的脚本,功能是以http+json返回数据拉去线上一些模块的状态信息,一般在5分钟以内就可以跑完,昨天开始由于原始数据太多了,结果搞得5分钟跑不完了,后面的数据统计就有点乱了,仔细分析看了看之后是在网络数据拉去上花费的时间比较多,原来是单进程,单线程的,就想着如果修改成多线程会好一点,python种线程使用还是比较简单的了,从threading.thread继承了一个线程类,类里面直接编写__init__, run, __del__方法,这样就是一个基本的线程类了

阅读更多

February 5, 2013

js中使用sort对json数据进行排序

json格式的数据输出的时候一般是没有排序的,在展示的时候需要另外进行排序。这里总结了js对json数据排序的方法。 js中是弱类型变量,所以一般获取到数据是会按照系统自定义的类型处理,在我的系统中系统默认把数字也转化成了: “value”:“17404"这样的格式, 所以在处理上如果直接比较排序,它就会按照字符串来排序,所以要强制类型转化一下,转换为整型。 不说了,直接贴代码吧: 字符串比较排序:kdata是一个json数组,里面的有value字段,如下:

阅读更多

December 11, 2012

terminate called after throwing an instance of 'stdz::logic_error'

#uwsgi#django

程序编译没有问题,突然在测试的时候出了这样的问题。 terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_S_construct NULL not valid 这个问题在我这里是因为调用了getenv,但是在测试的是后getenv的返回值是一个空值,而我没有检查就直接给string赋值。

阅读更多

December 4, 2012

Apache显示有加载php模块却不支持php文件解析问题

#crontab#cgi

在测试环境搭建了一个新的LAMP环境,但是结果比较奇怪,访问页面的时候提示如下: Apache/2.2.9 (Unix) PHP/5.3.3 mod_wsgi/3.3 Python/2.6.4 Server at zhwen.isoso.com Port 80 这里显示已经成功加载了php的模块,应该可以支持php了,但是每次遇到php文件,结果还是原文下载了。 http.conf中的配置也没有错啊

阅读更多

November 19, 2012

c种内存分配错误:malloc.c:3096: sYSMALLOc: Assertion

#uwsgi#django

今天在学习一个小程序的时候出现了下面的内存分配错误。 rbtest: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)’ failed. Aborted

阅读更多

November 19, 2012

nginx模块编程学习笔记3--模块主要数据结构

#2pc#uwsgi

在nginx模块编写种主要会涉及到下面3个数据结构,这一篇我就先来看看这3个数据结构的作用和意义。 ngx_command_t ngx_module_t ngx_http_module_t 前面这两个是定义在这个文件中:src/core/ngx_core.h

阅读更多

October 31, 2012

nginx模块编程学习笔记2--数据类型

#2pc#uwsgi

在模块种出现了一些nginx特有的数据类型,这里做笔记记录一下。 nginx种数据类型:整型,字符串 src/core/ngx_config.h 种定义了这么集中比较常用的数据类型: typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t; typedef intptr_t ngx_flag_t;

阅读更多

October 31, 2012

nginx+uwsgi+django/flask配置

#2pc#php#flask#uwsgi#netfilter

这几天在不断的倒腾nginx的相关东西,今天测试了nginx+uwsgi+django/flask这个组合,配置启动没有问题,后面看有没有什么app可以做。另外之前做过Nginx+mod_wsgi+webpy 的配置开发,但是mod_wsgi感觉好久没有开发维护了,而且据网上说uwsgi的效率很高,倒腾一下。 nginx我这几天一直使用的nginx-1.2.0的,nginx的编译就不说了,直接./configure && make &&make install

阅读更多

October 30, 2012

redis使用----数据类型和操作命令

#redis#db

最简单的就是key<-->value, 就是每条数据都是一个键名一个键值,如下面的操作 在编译之后在源代码目录种就可以启动redis helight@zhwen:/data/opencode/redis/redis-2416/src$ ./redis-server 另外在这个源代码目录下还有一个集成客户端:和mysql命令一样启动后就可以登录redis进行命令操作了。

阅读更多

October 24, 2012

redis学习笔记--编译配置

#redis#db

一直在找个一靠谱的内存数据库,这里所谓的靠谱,是数据能上能下,能在内存中高速的读取写入,而且还能把数据落地保存,下次启动的时候直接先加载磁盘上的数据。以前都是使用memcache来保存数据,让后自己再从memcache取数据到mysql,后来公司有个ttc的内存数据库,可以做单表映射,让后数据写入ttc后它自己再写入mysql,还比较靠谱一点,速度也有,数据也是相对靠谱,但是它也优缺点,数据不能从mysql加载过去。

阅读更多

October 24, 2012

nginx模块编程学习笔记1

#2pc#uwsgi

这两天在做nginx的模块测试,想做一个可以把记录数据,以日志的形式直接写入到redis数据库中。 之前只是照猫画虎的写过nginx的模块,都是测试玩以下,这次想写个有用一点的(其实这个东西也不一定有用,先写再说)。 结果出现一个很异常的情况,也是我对nginx模块熟悉的不够,结果把filter的的模块加到处理模块的变量种–HTTP_MODULES,导致我的filter模块死活是不工作。这里整理了一下:

阅读更多

October 23, 2012

mysql主从又不同步了

#shell

做了数据库的主从,以为就这样没事了,一直可以稳定的用下去,但是现实是多变的。 在主库上建了一个临时库,这个库确实不需要备份到从库去,是做数据中转的,但是mysql的主从很傻瓜化,从库上没有这个临时库,所以它不能同步主库其他的数据了,卡到了那里,从库上上去看的时候:

阅读更多

August 23, 2012

mysql数据库主从全机配置

#shell

今天倒蹬了一下mysql的数据库主从配置,记录一下 MYSQL主从配置 Master配置

阅读更多

August 15, 2012

Apache的proxy配置

#cgi

最近在做的项目中有这样的需求,就是要在服务器上做一个proxy到另外一个内网机器的服务上,当然这个最多想到的就是nginx,因为nginx在proxy配置上比较简单,关键也是我会配置。但是偏偏那个服务器安装的apache,所以今天又学习了下apache中proxy的配置。 一般apache的这些功能我们在编译的时候都是以模块的形式加入的。所以我这里先是看了我的apache中有没有这个模块,结果没有,那么就需要重新编译一下这个模块:

阅读更多

April 13, 2012

也来学习写一下nginx的自定义模块

#2pc

这几天在家里,学习了一下nginx的一些东西,首先当然就是用编译安装来配置简单的服务了。上一篇也算是学习配置的一点心得,在网上看了nginx的可扩展性后,我也简单研究了一下nginx的自定义模块。并且在晚上代码的参考下,也编译了两个模块来玩了一下,这里先展示一下一个最简单的模块。 这个模块主要是这样一个目的,在输入一个指定的url后,会返回自定义的内容:

阅读更多

February 19, 2012

Nginx和apache共用80端口

#2pc#cgi

这几天在安装了nginx后,老想和apache一起使用,这种搭配,我这里测试使用了3种方式 方法一: 使用redirect的方式,nginx运行在80端口,apache运行在8080端口, 让后在nginx这边配置到apache8080端口的redirect,

阅读更多

February 19, 2012

svn 提交出现Password for '(null)' GNOME keyring: 错误

#xcut

新安装了系统之后一直没有给gcode提交过代码了,前天收到一位网友xgcom的patch,我整理了一下,想提交,不想出了这样的问题:在svn commit 之后出现了以下的信息:

阅读更多

December 16, 2011

Linux 让你的软件支持多国语言

#svn#msgfmt

开头 Xgcom一直想做成多国语言的支持,但是之前没有仔细研究怎么做,今天有时间,就研究了一下,感觉也挺简单的,这里先做一个测试demo出来,也刚好记录一下。

阅读更多

December 14, 2011

gnome3下ibus设置

#gnome

在gnome3下安装了ibus-pinyin后,安装方式如下: apt-get install ibus ibus-pinyin 并且在~/.bashrc文件中加入了以下内容。 export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus

阅读更多

December 4, 2011

debian下触摸板使用

#linux 应用

之前在本本上安装了debian,但是发现触摸板的点击功能就是用不了,以为是驱动问题,加之有鼠标,而且回家用本本来写程序的时间也是很少,因为小丁同学要学习,老占用电脑,所以就没有管这个所谓的问题了,但是总是感觉不方便。

阅读更多

October 27, 2011

自娱自乐写的linux下音乐播放器

#ibus#gtk

前一段时间周末在家没事做,突然之间就想写一个之前一直想写但是也是一直没有写的小程序--写一个自己的音乐播放器,现在终于写好了,可以使用,有基本的音乐播放功能,隐藏和tray按钮控制播放等等。小巧,程序了不多,够我自己平时在家里听音乐使用了。。。。下面是截图。

阅读更多

September 3, 2011

window.open的referer

#linux 应用

今天遇到一个奇怪的问题,一个网站在firefox下可以很好的把我的referer带到服务器去进行验证,但是在ie下面就是不行,服务器怎么都没法获取到referer值,追查追查,发现在这个网站中它使用window.open来打开我的网站,原本的感觉是,这个也没有问题啊,但是事实上它就是没有给我把referer带过去。

阅读更多

July 11, 2011

Nginx+mod_wsgi+webpy

#Nginx

最近在做一个项目是以结伴开发的模式来作的,最终两个人讨论一两个人都相对熟悉而且开发效率较高的python来开发,在web框架上最终抛弃了较为原始的直接cgi和较为臃肿的django,而选择了介于之间的webpy,webpy在使用了一段时间后发现,我们两个人都很喜欢使用而且用的是相当的顺手,后台环境就使用Nginx+mod_wsgi+webpy,也是非常流畅。现在把这个简单的‘复杂’环境搭建记录一下:

阅读更多

April 3, 2011

Django admin搭建简单站点记录

#netfilter#mysql

Django 安装: 从此下载:www.djangoproject.com/download/ 下载后直接解压到目录:Django-1.2.4 然后执行:python setup.py install 进行安装,当然安装需要root用户权限 安装完成后则开始建立站点: XiAn_xxx:/data/helight 例如在该目录下建立以个xsite的站点,使用如下命令:

阅读更多

February 4, 2011

Gstyle-Protocol Buffers(protobuf)

#django#cpp

部门内部在大行其道Gstyle—gtest、glog、protobuf。。。。。。所以我也就先学习学习,以备后面使用的时候在手慌脚乱的,上个月对gtest的使用做了一些学习,基本在日常的开发中已经开始慢慢使用了,而且我自己也根据网友的一个项目lcut分了一个分支xcut–主要是增加了一些我想要的特点。 这几天又学习了protobuf,是google的一个广泛的数据包协议,有了这个就可以把这边定义的包发送到对方,对方就可以很简单的解析出来,就类似于xml,json等协议一样,据网上说,该协议效率很高,空间占有量又很小,是一个比xml或是json要好很多的协议,但是一点就是可读性比较差,看不懂数据是怎么排列和各个字段的意思。

阅读更多

January 7, 2011

C单元测试框架-xcut

#linux 应用

今天的网络又可以用了,就这样断断续续的,赶紧的发篇blog。 现在给大家推出一款用于C语言的单元测试框架–xcut,是由Tony Bai和helight,就是我啦,一起开发的,当然开端是有tonny开始的,我只不过在后面加入并且开始了另外一个分支,加入了一些我认为比较好的方便的特性。使用基本c写的,可以在linux,windows下跑,但是目前主要是在linux测试使用的,测试系统debian5.0。基本上都是在家里的小本本上开发的,也感谢丁丁的支持,生命中有你真好!

阅读更多

December 25, 2010

python中实现ssh自动登录并且执行命令

#mysql

由于要做一个对大量机器访问并且执行命令的一个操作,一个一个来那肯定不行了,那家伙一个人做要到猴年马月啊。所以想写一个工具来完成,考虑到开发速度、对数据库访问的便捷性等因素,我选择了python开发。查了一下python的ssh库,呃用起来挺简单的。

阅读更多

December 21, 2010

xgcom0.04.1发布啦

#ssh

 在发布了xgcom0.04后发现一个makefile文件的错误问题,因为这个问题会影响编译安装所以是一个比较紧急的bug,所以在紧急修复后又发布了xgcom0.04.1,也感谢网友 gump.yang 的支持。感谢大家一直以来的支持! 项目地址:xgcom

阅读更多

November 19, 2010

Python 2.6 安装mysql支持(备忘)

#shell#mysql

做这方面的安装最麻烦的就是一些库啊,路劲啊什么的,有时候太费事了,虽然很多时候可以直接扔给运维的同事去给我安装,但是,毕竟不是很方便,尤其是为了自己做个测试,就不用去麻烦人家和浪费人家时间了。

阅读更多

November 19, 2010

在终端中显示彩色字符

#shell

部分转自:http://www.linuxdiyf.com/viewarticle.php?id=182904 文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例: echo -e "\033[44;37;5m ME \033[0m COOL"

阅读更多

November 10, 2010

mysql客户端编码问题:python

#shell#mysql

最近在使用python写一些web应用,之前使用一直没什么问题,但是昨天却出了点小问题:用python连接mysql读取数据,显示出来老是???号一类的东西,一看就知道是编码问题了,在数据库端一看:

阅读更多

October 28, 2010

debian sid中添加windows下的中英文字体

#sid

老是记不住这些命令,干脆就记录到这里吧。

阅读更多

September 11, 2010

矢量图表SVG学习

#linux 应用

最近在自己做的一个系统中需要图标显示一些信息,在查看学习了前面一些同事的程序后发现了svg这种图像格式比较适合,所以深入学习了一下,现在这里发一个demo程序。

阅读更多

July 20, 2010

我自己设计的体恤

#linux 应用

很喜欢Debian的系统,她的风格,她的颜色,还有她独特的设计。 我也自己设计了一件体恤,准备什么时候自己去印一下。也自由的疯狂一下。

阅读更多

April 27, 2009