自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 创业五年总结--产品出炉篇

从2007年加入的创业团队时候,我们整个团队并没有确定具体要做什么样子的产品和服务,只有一个大方向--教育行业,想利用互联网技术,在教育行业中做点事情。所以,我们开始之初就在不断进行市场调研和产品雏形设计。而我在那段时间,主要进行一些技术方面的研究和熟悉,因为之前的技术经验都是在windows平台上,而接下来整个系统架构都在开源系统之上进行搭建。        我们八个人分工相当明确。大家在北

2011-12-15 22:43:01 2383

原创 创业五年总结--开篇

从2007年1月8号正式加入创业团队,到现在再过二十来天就是快五周年了。这一路走下来,经历了不少事情,真可谓酸甜苦辣,各种滋味都有。团队从最初八个人发展到现在两百多人,从当初在北大图书馆某间小屋的办公场所发展到现在一千多平米的办公场所。业务也不断的朝正确的方向发展。想到这些,五年的付出是值得的。     在这五年我们从产品方向调研、第一个版本产品开发上线、市场和销售模式的不断摸索、最后回归到产

2011-12-15 08:46:16 2480 1

转载 HTML5未来发展的六大趋势

HTML 5从根本上改变了开发商开发Web应用的方式,从桌面浏览器到移动应用,这种语言和标准都正在影响并将继续影响着各种操作平台。  在移动领域,大家争论不休的一个问题就是开发Web应用还是原生应用?而随着HTML 5标准的发展,两者之间的差异已经逐渐变得模糊,今天各大媒体都争相报道与HTML 5有关的东西,那么,HTML 5未来的发展趋势到底是什么?  1) 移动优先

2011-12-14 08:54:23 2646

原创 利用Nginx的上传模块和上传进度模块实现网页上传文件

最近做一个产品,需要实现从网页上传文件给服务器。一般情况下都是采用Ajax异步方式,创建一个iframe,在iframe里面把数据以form方式提交给后端的服务器脚本,由服务器脚本(比如PHP)来负责接收上传的数据。这种方式存在性能和效率的问题。所以,决定采用Nginx的上传模块来完成接收数据的功能,接收完数据后,再去转给后端脚本语言进行后续处理(比如:移动文件、插入文件的信息到数据库中)。同时,

2011-12-04 21:27:41 29773 4

转载 【转】MySQL索引背后的数据结构及算法原理

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引

2011-10-07 23:50:17 2607

转载 mysql删除大表更快的drop table办法

在DROP TABLE 过程中,所有操作都会被HANG住。这是因为INNODB会维护一个全局独占锁(在table cache上面),直到DROP TABLE完成才释放。在我们常用的ext3,ext4,ntfs文件系统,要删除一个大文件(几十G,甚至几百G)还是需要点时间的

2011-09-01 15:16:39 8684

原创 在freeBSD环境下,svn的checkout操作出现 Can't convert string from 'UTF-8' to native encoding

在项目中文件命名使用中文很正常,但是在freeBSD环境下需要checkout代码时候,就会出现“Can't convert string from 'UTF-8' to native encoding”。具体解决方法是:setenv  LANG    zh_CN.UTF-8

2011-08-23 12:01:07 2937

原创 SVN库迁移的心得

由于公司发展的要求,需要把之前分散在好几个svn库中代码,统一迁移到一个新的svn库中。场景为在一台服务器中有两个独立的svn库(A、B),其中在A库中有a1、a2、a3、a4项目,B库中b1、b2项目,最后移植的结果是需要另外一台服务器中建立C库,目录结果是

2011-08-22 17:45:39 14750

原创 freebsd下根据进程名称kill对应的进程

kill -9  `ps -ax | grep nginx | grep -v grep | awk {print $1}`

2011-06-22 16:33:00 4366

原创 利用rsync搭建服务器之间文件同步

<br />    由于外网运行系统需要同时好几台机器提供服务,这样就有个问题是程序代码发布后,这些服务器怎么能比较及时的更新代码。这样就需要一个服务器之间文件同步的机制。在Unix下有一个比较好的工具rsync。具体场景为代码发布程序到服务器A,其他服务器B、C、D需要比较及时的从服务器A获取更新的代码。<br />    整体架构是服务器A当做rsync server,其他几个服务器B、C、D定时与服务器A进行文件同步。(这些服务器的操作系统都是freeBSD)<br />    第一步:搭建rsync

2011-05-25 17:16:00 2595

原创 在freeBSD服务器之间搭建ssh无密码登录

一般情况下,通过ssh方式登录到freeBSD服务器上,都需要输入登录密码。但是,有时候一些服务需要采用无密码方式登录,比如服务器之间同步文件,发布文件等。这时候就可以采用ssh的公私钥方式来实现无密码登录。假设有两台服务器A和B,在A服务器下用户为a,要以B服务器下b用户身份实现无密码登录。     1、以a用户身份登录的A服务器     2、利用ssh-keygen -t rsa 生成

2011-04-10 15:11:00 4209

原创 在freeBSD下搭建https方式访问svn

<br />  由于svnserver在某些情况下,不能访问,比如:有些公司就把某些端口禁止掉了。所以,需要通过https方式来对svn进行访问。我的环境是:freeBSD + apache + svn<br />1、安装apache,注意需要安装模块mod_dav.so,mod_dav_svn.so,mod_ssl.so<br />2、安装svn <br />3、创建svn的仓库。svncreate命令<br />4、然后编辑svn仓库下conf/passwd 和 conf/authz<br />5、启动

2011-04-06 21:34:00 3401

原创 我的微薄:http://t.sina.com.cn/waden

<br />如题

2011-02-14 16:26:00 2146

原创 在python2.6下搭建web service client

  最近,系统监控系统需要在报警状态下给运维人员发短信,就用python写了一个简短的调用短信web service服务。在python下使用SOAPpy这个库,所以,需要安装这个库。但是,在安装这个库之前,需要安装另一个依赖的库--fpconst。在安装SOAPpy时候,会有些错误。需要把from __future__ import nested_scopes 放到报错的文件开头。安装好了这两个库,就可以利用python去调用web service 了。

2011-01-29 17:13:00 2842

原创 Piwik 体系和源代码分析 --1

   最近打算花时间研究和分析piwik,这是一个开源项目,类似google分析。分析这个主要目的就是打算在自己公司网站中使用这个项目,作为网站和用户行为分析,用google分析有时候感觉还是不是太舒服。因为有些时候我们需要收集自己特定的数据,而google分析没有这样的功能。    今天就先起个头。

2011-01-29 12:02:00 6267 5

原创 IE下location.href 获取referer的值

<br />    最近,公司网站需要统计用户都是从哪些页面进入到注册页面的数据。开始,仅仅简单的通过在服务器端$   _SERVER['HTTP_REFERER'](php)来获取。但是,发现有好多注册用户没有referer值,后来查了一下在IE下采用window.location.href方式跳转的话,referer值为空。而在标签<a></a>里面的跳转的话referer就不会空。所以,通过一下代码就可以解决这个IE问题:<br />                            functi

2011-01-21 22:50:00 6856

原创 flex的mask处理

<br />  在做公司一个flash播放器时候,需要在一个swf中动态加载外部一个swf并显示出来,但是,这个需要加载的swf由于制作的原因,除了显示出stage的内容外,还会把swf隐藏(不知道制作是否隐藏)部分显示出来,这样非常不好。开始处理是通过限制这个swf的区域大小来屏蔽那些stage以为的内容,但是,由于swf的大小还不一致,这样导致一些swf被切去一部分,一些swf还是会显示出多余的部分。后来找到一种方式来处理,就是mask。基本原理就是设置一个mask,大小可以设定,然后设置到外部加载的s

2011-01-20 17:48:00 6393

原创 flex中使用Embed方式嵌入资源

  在做公司的播放器时候,开始为了减少swf的大小,并没有把资源在编译时候打包到swf中,而是采用运行时候通过外部加载方式。但是,这种方式虽然可以减少swf的大小,但是,在实际运行时候,由于用户大多数使用IE6(早该淘汰了),在并发请求的数目是有限制的(2个),所以,这样往往会资源加载失败的情况。因此,打算采用Embed方式把资源打包到swf中。不过,在这个播放器中,有不少的资源是,需要根据不同状态进行切换的。所以,建立一个Resourse类来管理这些资源。具体代码如下:                  

2011-01-16 18:32:00 4479

原创 在Windows下mysql++支持UTF8

<br />这几天帮一个朋友修改一个产品,这个产品是在Windows下通过C++的mysql++去访问mysql数据库,同时,该产品的数据需要支持多语言(中文、日文、韩文、法文等)。而mysql对于多语言的支持采用的字符集是utf8,但是,在windows下的vs中是采用unicode,这样就需要进行字符集的转化。而该产品的代码中,又使用了STL的string,这样就更麻烦了。<br />因此,在往mysql++传入sql语句的之前,需要先把string(ANSI)转为宽字节(wchar_t),然后再从宽字

2011-01-09 17:21:00 5269

原创 实现flex中实现图片平铺

<br />  在网页中实现一个图片平铺功能比较简单,只需要设置css样式就可以了。而在Flex中要实现图片的平铺的话,就不那么容易了,具体实现如下:<br />    第一步:设置样式。在mxml页面中设置如下样式。其中,et.RepeatBackground就是下一步需要实现的class<br />    <mx:Style> .menuBackground{ background-image:Embed("./assets/image/toolbar_bg.png");

2011-01-04 16:58:00 7159 3

原创 flex与flash的fscommand通信

<br />为了业务需要,最近利用Flex来重写我们公司客户端(c++写)的课件播放器。在写的过程中遇到一个问题,就是在播放课件时候,需要加载外部flash,同时,播放器还要能与该flash进行通信。查了相关资料,外部加载一些动作会发出fscommand的消息,所以,打算通过fscommand -> javascript -> flex(actionscript)。所以,这里面就有两步需要处理:   <br />         第一步:javascript响应fscommand消息。在网页的页面中需要增加

2011-01-04 16:46:00 2653

原创 告别2010年,踏上创业征程的第五年

      今天是2010年的最后一天,可能又像往年那样在加班中度过。其实,已经习惯了,既然选择了创业这条路,就需要付出。俗话说得好,付出了不一定有回报,但是不付出一定没有回报。这一年来公司的发展中,有可喜的方面,也有不足的方面,可喜的是      1、公司从四五十人规模发展到现在快一百人了。      2、办公场所面积从创业初期300平米发展到现在快800平米      3、公司这一年来持续盈利      4、开始第二轮融资了      不足的方面      1、技术团队没有得到发展,反而一个核心人员由于

2010-12-31 12:53:00 1215

原创 分享一个flex的datagrid

<br /> 最近,用flex做了一个项目,项目里面涉及到很多表格和分页处理,以及按照某个字段全部培训功能(一般的都是当前页的排序)。具体代码如下:<?xml version="1.0" encoding="utf-8"?><mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <!--[CDATA[ import mx.collections.SortField; import mx.collection

2010-10-17 16:22:00 766

转载 eAccelerator 配置参数详解

<br />eaccelerator.shm_size="32"<br />eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的。<br />eaccelerator.cache_dir="/home/php/tmp"<br />这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共

2010-10-03 09:27:00 560

原创 在freeBSD下搭建php共享Session

<br />     最近由于业务的发展,系统web压力越来越大,为了应付接下来的业务需要,需要增加机器来应付。但是,增加机器后,php这块的Session共享成为一个问题。本来采用nginx的ip_hash机制来解决session的问题,但是,运行一段时间后,客户老是由于session状态丢失,导致功能使用出问题(登录、注册等),所以,就把这种方式pass掉了。幸好php支持一种利用memcache方式来实现多机共享session。具体配置如下:<br />     由于我们系统前端是采用nginx来处理

2010-09-30 12:45:00 1246

原创 现在浏览器也是乱啊

  这两天被一个问题搞的很郁闷,问题是:我用flex写了一个flv的播放器,同时,在播放器的播放视频时候会有一个互动问答出现,让用户去回答,功能在IE所有版本上都正常,但是,在搜狗浏览器的高速模式下和在遨游改进版本下,互动问答的字体就是不显示出来。当时,非常奇怪,flash怎么也会依赖于浏览器呢? 接下来就是不断的实验,不断的找问题出在哪里。最后发现,我的互动问答的背景是一张png的图片,而问答的文字为了在这个背景图上显示,我设置alpha(具体可以参见flex相关手册)为0,这样就全透明了,可这个设置在上

2010-09-14 23:39:00 901

原创 最近利用flex开发项目的一些心得

<br />  目前,正在用flex开发一些小功能,中间遇到一些问题,现在总结如下:<br />  1、继承Sprite的对象,需要支持鼠标<br />       在使用从Sprite继承的对象时候,需要鼠标滑过该对象Sprite的时候需要改变鼠标显示形状。在Sprite属性有一个useHandCursor,设置为true,但是,设置了这个属性,还是不管用。后来发现mouseChildren属性,它的默认值为true,就是响应鼠标事件,所以,当使用addChild把一个子项加入到Sprite的时候,就把响

2010-09-01 10:45:00 948

原创 空格键实现对flv播放器的控制

<br />  最近,在用flex做个flv的播放器,在这个播放器中需要提供按空格键来暂停/播放视频的功能,当flv播放器处于全屏状态下,比较容易实现响应空格键,来实现视频的暂停/播放功能。但是,当flv播放器处于正常状态下,要实现响应空格键操控播放的话,就要费点周折了。<br />  具体实现方式如下:<br />    1、在加载播放器的页面中,实现对键盘事件的监听(这个比较容易做)<br />    2、在播放器中的使用ExternalInterface.addCallback这个方法,通过这个方法可

2010-08-18 18:27:00 1626 1

原创 [转载]Nginx完整配置说明

#用户 用户组      user       www www;      #工作进程,根据硬件调整,有人说几核cpu,就配几个,我觉得可以多一点      worker_processes  5;      #错误日志      error_log  logs/error.log;      #pid文件位置      pid        logs/nginx.pid;      worker_rlimit_nofile 8192;           events {      #工作进程的最大连接数

2010-08-10 12:14:00 5039

原创 IE解析codebase实现控件自动更新的机制

<br />   这几天忙着把我们的业务中的客户端功能简化,尽量都在网页实现相关功能。但是,有些功能是网页所替代不了的,比如:听课。所以,就需要通过ActiveX控件方式来实现网页与客户端的联动(调用)。这就涉及到ActiveX控件的升级,IE针对ActiveX的升级提供一种方式:就是在页面中增加一个object标签,比如:<object classid="clsid:012F24D4-35B0-11D0-BF2D-0000E8D0D166" codebase=http://192.168.1.111/so

2010-08-04 17:26:00 2893 1

原创 减小flex builder 3编译swf的大小

<br />   最近因为工作需要,需要自己写一个flv的播放器。花了一天时间写完,结果编译后swf的文件大小快400K,我一想没有用什么库,怎么会这么大。后来查了有关资料,发现flex builder 3编译时候是debug版本,如果想要release版本的话,需要右键点击项目-->选择“Export”-->按照要求一步一步操作就可以了,最后得到的swf文件大小不到200K,减少了一倍。不过,我觉得200K也有点大,因为我的代码量不到200行,我估计是类似与C/C++的静态链接编译方式,把所有需要要的库都

2010-07-30 12:43:00 2223

原创 在freeBSD上搭建时间同步服务

<br />   由于我们业务的发展,增加前端的web server的机器数,并且通过nginx进行了简单的负载均衡,但是,我们一些业务逻辑会依赖于机器的时间,所以,就需要同步这些web server机器的系统时间。幸亏freeBSD上提供了这样的时间同步服务,叫ntpd这样的服务。它的具体实现原理就是:有一台机器作为ntpd的服务器,这台时间服务器会定期与国外或者国内的标准时间服务器(这个可以在配置文件设定是那些服务器)校准时间,这样的话,自己系统中其他机器就以这台ntpd的服务器的时间为准,定期同步校准

2010-07-28 13:34:00 2686 2

原创 休假结束了

<br />  十天的假期结束了,明天开始上班了。回想起这段假期,感觉过得很快。不知道下一个假期是什么时候,可能两年,三年以后?记得上一次休假还是在07年十月份,那次休假回老家了。<br />   回想起这快四年的创业经历,可以用五个字来形容:累并快乐着。这四年一路走下来,原有的激情慢慢消失,取而代之是一种自我鼓励,自我麻痹的坚持。以后我会不定期的把我的整个经历写出来,算是对我过去四年一种回忆吧。<br /> 

2010-07-25 23:48:00 1455 1

原创 Objective C 学习心得 (一):--Windows下搭建objective C开发环境

<br />      最近打算针对iPhone、iPod touch和iPad开发一些应用,所以,需要开始学习Objective C(苹果推出的类似C语言的开发语言)。由于苹果的自我封闭的产业链发展模式(从芯片、机器、开发语言、终端产品、服务)的限制,要想开发针对苹果iPhone等产品的应用程序,就需要用Mac机器,在Xcode的IDE上使用Objective C语言开发。Mac机器就不用说了,那比PC机器要贵不少(当然性价比还是很高的),所以,要想廉价方式学习Objective C就必须要在Window

2010-07-25 23:37:00 41271 26

原创 打算开始写写自己的一点技术心得和创业心得

<br />EOF

2010-07-14 18:18:00 1944

原创 开始研究xbt Tracker

 

2007-09-16 21:47:00 1613 1

空空如也

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

TA关注的人

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