自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 Apollo k8s 配置

Apollo k8s 配置服务模块构建镜像原官方仓库提供的 DockerFile 文件会有 Read-only file system 问题,详见:https://github.com/ctripcorp/apollo/issues/1864https://github.com/ctripcorp/apollo/issues/1491另外也需要下载 Apollo jar 包放置在...

2019-04-11 07:08:42 1073

原创 使用strace为swoole查bug

最近使用swoole写了websocket系统服务,出现cpu和内存持续增长的故障。 使用strace工具查看系统栈调用情况:strace -cp 进程在syscall一栏发现socket创建过于频繁,系统服务定义了一个5秒的定时器进行轮询redis队列。而在这个定时器里,每次执行都会new redis对象,频繁创建socket连接是有开销的,这也是出现cpu持续增长的原因。解决方...

2018-03-13 21:03:35 580

原创 程序员的学习总结

数据结构+算法网络编程分布式框架

2017-09-16 10:44:49 2068 1

原创 希尔排序

希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。基本思想   希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。pa

2017-09-05 23:52:45 253

原创 冒泡排序

冒泡排序是一种用于对存储器中给出的N个元素进行排序的算法,例如:具有N个元素的数组。冒泡排序将逐个比较所有元素,并根据它们的值进行排序。它被称为冒泡排序,是因为每次迭代,列表中最大的元素向上浮起来,就像一个水泡上升到水面。通过遍历所有数据项进行排序,并比较相邻的数据项和交换出错的每对数据。下面列出golang实现的冒泡排序法:package sortfunc BubbleSort1(list []i

2017-09-02 23:21:30 265

原创 golang版使用队列秒解数独

golang版使用队列秒解数独本文找了两个不同版本的算法实现的数独解法,均转译成golang版本。最后以执行时间对比相互之间的效率。 {0, 0, 0, 0, 0, 2, 0, 5, 0}, {0, 7, 8, 0, 0, 0, 3, 0, 0}, {0, 0, 0, 0, 0, 4, 0, 0, 0}, {5, 0, 0, 0, 0, 0, 0, 0, 0},

2017-08-27 13:39:37 884

原创 记录python pdb 调试方法

最近在学习算法,有很多是关于python的实现。对python也就了解语法,算不上特别熟悉。所以看算法也就了解个大概,想完全掌握,觉得最好还是用自己熟悉的语言再实现一遍。而想啃透一门算法的思路,最好方式还是拿出调试工具完全走一遍,才加深理解。python 调试工具有两种,分别是Python标准库自带的pdb和开源的ipdb。pdb原生自带,ipdb需要另外安装第三方库实现。 而pdb基本能满足我的

2017-08-18 09:55:09 457

原创 开源技术蓬勃发展,开发语言无优劣之分,视乎场合使用

得益于开源技术发展,各种新的技术日渐更新。 php 也从5飙升到了7,性能有了质的飞跃。虽说短期很多公司的项目还在用旧的 php 版本,但版本更换是必然的趋势。 golang 作为后起之秀,语言简洁了结,开发效率也高,在高并发多线程场合大有用武之地。 docker这个项目基本也是以后一统运维环境,减轻运维成本。 开发思想也是互相借鉴。代码依赖管理,各语言都有自己的工具,java:maven;n

2017-03-31 23:49:26 303

原创 关于 golang 并发

golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"go”,但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包和channel机制来解决这一问题. sync 包提供了互斥锁这类的基本的同步原语.除 Once 和 WaitGroup 之外的类型大多用于底层库的例程。更高级的同步操作通过信道与通信进行。 而golang中的同步是通过

2017-03-31 13:48:08 442

原创 docker镜像使用composer

镜像地址:docker pull graze/composercomposer install 使用方法docker run --rm -it \ -v $(pwd):/usr/src/app \ -v ~/.composer:/home/composer/.composer \ -v ~/.ssh/id_rsa:/home/composer/.ssh/id_rsa:ro \ gra

2017-03-08 09:55:55 11557

原创 docker web应用多容器开发环境部署

开发环境的镜像来源有以下方式:从镜像仓库拉取。国外:http://hub.docker.com/(比较全,且Dockerfiles开源)国内有阿里云之类的镜像仓库,拉取速度比较快自己写Dockerfiles构建运行基础容器,链接进去搭建好环境,然后提交成新的镜像连接容器连接容器基本上通过exec命令,或者通过容器开启ssh进入管理,exec命令只能本机连接,ssh可以远程连接管理。两种方式各

2017-03-05 10:15:56 2066

转载 cygwin安装使用经验: 在Windows下使用命令行之一

原文转自:http://www.blogjava.net/xiaomage234/archive/2011/07/29/355350.html    1. 什么是Cygwin?    2. 什么不是Cygwin?    3. Cygwin的下载与安装    4. cygwin下的一些应用    .   4.1 默认的应用--也是我选择cygwin的原因    .

2013-04-08 09:17:14 12691

翻译 物体移动篇

翻译自Beginning Game Development with Python and Pygame, 代码有改动在现实世界中,物体的各种移动方式,取决于他们的物体运动轨迹。例如,在移动直线与恒定速度和方向可以改变在一瞬间,但如果你的应用这种运动汽车驾驶游戏,它会破坏错觉。毕竟,在驾驶游戏中你会期望车花一些时间达到最高速度,它不应该瞬间180度旋转!游戏真实感,程序员必

2012-10-09 13:43:58 1257

转载 php 源码结构

目录结构1. build 和编译有关的目录。2. ext 扩展库代码,例如 Mysql、zlib、iconv 等我们熟悉的扩展库。3. main 主目录。4. sapi 和各种服务器的接口调用,例如apache、IIS等,也包含一般的fastcgi、cgi等。5. win32 和 Windows 下编译 PHP 有关的脚本。用了 WSH。6. Zend 文件夹核心的引擎。

2012-09-22 15:44:33 830

原创 ecshop改造读写分离

前两天配置好了mysql主从方式,今天就拿ecshop练习读写分离。以下代码仅供学习参考,不成熟的地方,还需完善。config.php<?php$db_name = "ecshop";$prefix = "ecs_";$timezone = "Europe/Berlin";$cookie_path = "/";$cookie_domai

2012-09-20 14:08:51 4555 4

原创 VirtualBox+centos 配置mysql主从

参考http://www.mike.org.cn/articles/mysql-master-slave-sync-conf-detail/利用VirtualBox虚拟两台服务器,配置mysql主从。环境:centos 5.5mysql5.5A主机ip:192.168.2.175B主机ip:192.168.2.176centos iptalbes 防火墙 开

2012-09-18 17:21:23 1251

原创 ZEND_API 宏定义

最近看php扩展源码,发现有很多如下面代码定义的方式:ZEND_BEGIN_ARG_INFO(name, 0)    ZEND_ARG_INFO(。。。)ZEND_END_ARG_INFO()查资料得知这是使用宏声明扩展函数的参数。======================================================================

2012-09-17 09:53:45 3131

转载 又拍网架构

文章来源:http://sting.topgeek.org/?p=652又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文章会介绍一些在技术上的积累。又拍网和大多数Web2.0站点一样,构建于大量开源软件之上,包括MySQL、PHP、nginx、Python、memca

2012-09-12 11:00:53 1142

原创 编译php扩展问题记录

最近玩php扩展遇到编译问题,现做下记录1.后缀用.cpp还是用.c?有时候写扩展的时候遇到error C2143错误,在网上查资料得知改成.cpp后缀可以解决问题,原因是因为源文件中包含有C++的库或者函数,故此改后缀可以解决问题。但改后缀又引起一些函数不能使用:如php_print_r();暂未找到好的解决方法!error C2018?中文全角符号引起的问题,替

2012-09-11 15:03:25 2662 4

原创 php扩展函数返回

ZEND_API提供参数返回方式设置返回值并且结束函数设置返回值宏返回类型和参数RETURN_LONG(l)RETVAL_LONG(l)整数RETURN_BOOL(b)RETVAL_BOOL(b)布尔数(1或0)RETURN_NULL()RETVAL_NULL()NULLRETURN_DOUBLE(

2012-09-11 14:24:53 1596

原创 c写php扩展传参学习记录

最简单的获取函数调用者传递过来的参数便是使用zend_parse_parameters()函数。zend_parse_parameters()函数的前几个参数我们直接用内核里宏来生成便可以了,形式为:ZEND_NUM_ARGS() TSRMLS_CC,注意两者之间有个空格,但是没有逗号。从名字可以看出,ZEND_NUM_ARGS()代表这参数的个数。紧接着需要传递个zend_parse_p

2012-09-10 13:16:18 2324

原创 window编译c开发的php扩展

php扩展在linux下面开发最是方便,对编译问题不用太头疼。但我现在工作使用的系统是window,只能在window下折腾。现在把window下面编译遇到的问题,做下记录。有关在window下面使用C语言开发php扩展请参考下面博客:http://koda.iteye.com/blog/315779采用的编译工具vc6,个人比较喜欢使用命令行编译:msdev myhe

2012-09-08 10:02:25 1978

原创 正则记录

正则在处理字符方面,是强大的瑞士军刀。正则表达式很灵活,也并不是经常用到,而且容易忘记。但到了需要用的场合,写不出来,非场尴尬。今天同事就遇到过滤a标签的问题,就把写的正则记录下来吧。首先温习正则知识。匹配字符1).-范围匹配1.数字匹配[0123456789]可以简写成[0-9]2.字母匹配[a-z]匹配a-z范围小写字母[0-9a-z

2012-09-07 10:01:54 437

原创 c 指针学习记录

以前在学校,没有把C语言学好,最近想下定决心学好,把学习过程中遇到的问题做下记录。c语言中,指针的操作是很灵活,很强大的,极容易犯错。而避免犯错的方式,是把所有错误都犯一次。嘿嘿,当然这句话你不能用在生活中....#include void pass(){    int number = 20;    int *n;    n = &number;    *n = 40

2012-09-06 23:05:14 459

原创 小技巧莫乱用

工作中,发现老大利用str_replace做函数判断的方法很鸡血,一开始看代码的时候没整明白,后来问老大才知道他的做法是间接使用str_replace做数组判断。附上一段代码: if (empty($gift["buylimit"]) == false) { $contain_str = explode(",",$gift["buylimit"]); if (

2012-09-01 23:29:38 447

原创 2012 学习计划

过年回来,2012学习计划如下:1.学习java web开发,过去从事的php开发工作,面向对象运用的不全面,设计模式接触的少。打算利用休息时间系统的学习一下java web开发,借签一下开发思想,也为以后的工作打个基础!2.接触服务器集群技术,大流量高并发的网站系统架构。3.学习数据结构,linux c, 算法。4.oracle,数据库集群技术5.学英文,提高词汇量。

2012-01-30 14:22:19 576 1

原创 又到年终时

今年3月份加入到真友营从事社交网站开发到现在11月底结束,项目失败,团队解散。心理百般滋味,对这个项目可说投入了不少精力。虽说进入这家公司前,对这个项目没有抱有太大希望,只是进来学习,也确实学到了不少东西。这个项目失败的原因很多,总结一下无非是以下理由: 1.国内社交网站太多,没有做出自已特色。2.投入的人力物力都太少。主程序只有我和老板,开发的进度远远跟不上其他社交网站。3.

2011-12-01 22:30:47 396

原创 android sdk eclipse 开发环境配置

最近搭建android sdk 开发环境的时候遇到了几个问题,我所安装的环境是ubuntu+eclipse+android sdk最新版折腾了两三个晚上才弄好。现在整理一下,做个记录,分享给有同样问题的朋友。1)java环境的问题,大多数朋友这个问题可以忽略,注意一下就好。我是安装的时候把jre安装了,却没有安装jdk。(java编译是靠jdk编译的,虽然安装jre后可以运行java程序,

2011-10-31 19:30:56 484

原创 微博你还能走多久?

微博一个可以让你分享图片,视频和有限制的140字的微博客。目前国内新浪微博,腾讯微博平台非常火爆。其内容多数为生活片断,心情,恶搞,且有众多明星入驻。个人认为微博是有一个生存期限的,首先微博上面的内容大多数很无聊,充满了空虚,恶搞,色情和暴力,而且大多数草根的微博都没有互动,能参与互动的微博多数为名人。而且所关注的微博大多为转发,原创不多。据我所想韩寒大概就因为这个原因不开

2011-10-31 15:21:13 795 1

原创 vim 使用系统粘贴板复制粘贴

习惯了windows下面的复制,粘帖快捷键。转到vim编辑器会发现这两个键没什么作用,其实vim是使用ctrl+shift+c,ctrl+shift+v复制粘帖的。但是使用这些快捷键只能在一定屏幕范围使用,且只能在插入模式才有效。而在vim中简单用y只是复制到"(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容。要将vim的内容复制到某个粘贴板,需要退出编辑模式,按v进入视图模式

2011-10-26 16:13:11 2425

转载 mysql 视图

摘抄自网络视图是5.1版新加入的功能什么时候使用视图呢?经常用到的查询,或较复杂的联合查询应当创立视图,这是会优化性能的,还有就是涉及到权限管理方面,比如某表中的部分字段含有机密信息,不应当让低权限的用户访问到的情况,这时候给这些用户提供一个适合他们权限的视图,供他们阅读自己的数据就行了。ALTER VIEW语法ALTER [ALGORITHM = {U

2011-10-26 11:07:40 3828

原创 随笔

古人有云:生于忧患,死于安乐;也有听说过温水煮青蛙的故事。这几个月来基本上没有写博客,空余时间也没有主动去学习些什么东西,倒是玩起来游戏来了。也没有刚出来工作那时候的干劲,什么东西都会主动去学。时间真是消磨人锐气的玩意。虽说现在所处的工作环境,没有加班什么的,安排下来

2011-10-13 15:20:34 348

转载 mysql 查询慢分析

摘抄自网络MySQL有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在MySQL启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行long_query_time = 1l

2011-09-19 10:58:47 654

原创 ubuntu+netbeans+xdebug调试

<br />xdebug安装<br /> 1.sudoapt-get installphp5-xdebug<br /> <br />2. sudopecl installxdebug<br /> <br />3. php.ini 配置<br />在底部添加<br />#zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so                 这一步一般通过sudoapt-get installphp5-xdebug命令已经生成<br />

2011-04-19 17:27:00 1846

原创 Imagick 添加文字水印示例

<br />原文来自<br />http://eclecticdjs.com/mike/tutorials/php/imagemagick/examples_04/setgravity.php<br /> <br /> <br />描述:<br />bool ImagickDraw::setGravity ( int $gravity )<br />设置文字水印的位置<br /> <br />参数:Gravity参数只能是以下常量:imagick::GRAVITY_NORTHWEST //左下<br /

2011-04-11 17:53:00 5567

原创 ubuntu+apache2+php 添加so扩展

<br />so文件一般放在/usr/lib/php5/下<br />启用模块有比较多的方法<br />可在/etc/php5/cli/conf.d/pcntl.ini下添加<br />/etc/php5/cli/conf.d/是路径<br />pcntl.ini是扩展文件名,文件里面内容extension=pcntl.so。<br />也可在php.ini文件里面添加

2011-03-29 11:14:00 1006

原创 ubuntu+apache2+php禁止输出notice信息

<br />修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE

2011-03-28 11:47:00 630

原创 zend framework 使用firephp调试(转载自phpchina)

FirePHP 是Firefox 的扩充套件,但它可以帮你debug 后端PHP 的程式,听起来很神奇是吧?其实用的技术跟某些IDE 一样,要求你在写程式时加入一些追踪用的代码。通过使用Firephp你可以在Firebug的Console栏中看到要调试的数据,而不影响php程序的正常执行,所以说,这东西对于Ajax开发是很有帮助的! 在firefox中选 工具->获取组件-〉获取附件组件,然后搜索firephp 安装后重新启动 。此外还需要firefox的JavaScript

2011-03-22 15:29:00 992

原创 (转载)Ubuntu 10.10 配置 Zend Framework

一直以来都没有用过框架来开发网站,之前一直都是自己手写全部,发现效率很慢。终于在UBUNTU10.10下成功配置ZendFramework。第一步,打开apache的rewrite模块,因为在UBUNTU下使用apache必须执行这一步1sudo a2enmod rewrite #激活rewrite模块2sudo /etc/init.d/apache2 restart #激活后要重启apache服务器第二步,安装Zend Framework1sudo apt-get install zend-framewo

2011-03-20 18:47:00 989 1

原创 ubuntu apache 多域名配置

<br />以下部分摘抄自网上<br /><br /><br /><br />为了说明清楚 我们添加一个虚拟主机站点 edunuke.britepic.org,首先到<br />/etc/apache2/sites-available/ 目录中建立一个文件 edunuke。当然这个文件名中是没有 “.”<br />或 “#” 这两个字符的了。然后编辑该文件:<br /><VirtualHost 10.39.6.59><br />ServerName edunuke.britepic.org<br />Ser

2011-03-20 15:04:00 4251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除