Submitted by gouki on 2010, August 21, 9:37 PM
本文写的很乱,已经是想到什么写什么了。所以无可读性,纯属自己的记录和想法
不管是在生活中也好,工作中也好,其实都会有自己的短板,只有了解自己的短板才能扬长避短,以便更好发挥自己的特长 。如果尽让别人注意你的短板,而一直忽略了你的长板,那你在工作中也就会处处受阻无法正常发挥自己的能力。
什么是你的短板?交流?心态?算法?数据结构?数据库?又或者是其他?好好的了解,对自己的职业生涯也有好处。抛开技术因素,可能更多的就是心理因素了。
得明白自己想要的东西,才能真正获得自己想要的东西。看了一下Fenng写的去大公司还是去小公司工作?,就是说了那种迷惘的心态。
去大公司还是去小公司,自己究竟是想干什么 ,为了钱,还是为了技术?
所以我现在明白了自己想要做什么 ,才会想到写这个博客。算是做一个纪录罢
Tags: 短板
Misc | 评论:3
| 阅读:17173
Submitted by gouki on 2010, August 20, 10:33 PM
discuz的ajaxpost功能有点强大,但缺点也很明显,如果ajaxpost提交一个FORM,那么返回的时候只能显示showmessage的内容,而不会主动跳转,因此这里就有一个小技巧 了。。
比如默认submit按钮这样操作:onclick="ajaxpost('formid')";之类的,我们可以先这样。。
onclick="$('__formid').innerText='';ajaxpost('formid');checkPostResult();";
含义其实很简单,先把ajaxpost提示信息所在的div内容清空。然后提交。最后,根据返回值来判断。。
JavaScript代码
- function checkPostResult(){
- var cid = setInterval(function(){
- if( $('__formid').innerText == 'success'){
- alert('提交成功');
- location.href='xxxxx.php';
- clearInterval(cid);
- }
- },1000);
- }
这个处理也很简单,为什么是用setInterval和clearInterval,主要是由于ajax是异步操作,如果不用setInterval方法 ,那么在ajaxpost结束的时候,其实提示信息还没有append到提示信息所在的ID里,所以用setInterval方法先延迟然后循环处理最后再结束提示。。。
clearInterval用的不太对,但短时间内想不到更好的。先这样临时解决喽。
Tags: discuz, uchome, tips
PHP | 评论:0
| 阅读:16678
Submitted by gouki on 2010, August 18, 11:56 PM
COPY文字到剪贴板很方便,我是指在IE下面,而其他的就有点复杂了。firefox下面有安全选项的。所以很多人都采用了flash来实现。如果不计flash,那么下面这个函数就十分有用了,可能是转的过多了,也不记得来源是哪里了。如果是原作者看到,请提示一下,一定加上您的链接。
JavaScript代码
- function copyToClipboard(txt) {
- if(window.clipboardData) {
- window.clipboardData.clearData();
- window.clipboardData.setData("Text", txt);
- } else if(navigator.userAgent.indexOf("Opera") != -1) {
- window.location = txt;
- } else if (window.netscape) {
- try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- } catch (e) {
- alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'");
- }
- var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
- if (!clip)
- return;
- var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
- if (!trans)
- return;
- trans.addDataFlavor('text/unicode');
- var str = new Object();
- var len = new Object();
- var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
- var copytext = txt;
- str.data = copytext;
- trans.setTransferData("text/unicode",str,copytext.length*2);
- var clipid = Components.interfaces.nsIClipboard;
- if (!clip)
- return false;
- clip.setData(trans,null,clipid.kGlobalClipboard);
- alert("复制成功!")
- }
-
Tags: clipboard, flash, firefox
Javascript | 评论:0
| 阅读:19674
Submitted by gouki on 2010, August 17, 8:40 PM
服务器同步,最简单的恐怕就是rsync了。如果是同一机房,如果是ubuntu,那就真的是灰常灰常简单啊。apt-get install rsync就over了。当然配置还是需要自己来的。
找的资料居然是百度百科的。好郁闷啊。不过。。。还是COPY一份了(话又说回来,现在百度百科在人肉整理+金钱攻势下,资料也真的是越来越完善了。只是不知道啥时候会把RFC也帮忙全部汉化一下吧。比如大家关心的tcp/ip,http协 议等,是不是也该整个汉化的版本之类的?【或许已经有了只是没有注意过罢了】)
原文:http://baike.baidu.com/view/1183189.htm
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
- 可以镜像保存整个目录树和文件系统。
- 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
- 无须特殊权限即可安装。
- 优化的流程,文件传输效率高。
- 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
- 支持匿名传输,以方便进行网站镜象。
软件下载
rysnc的主页地址为:http://rsync.samba.org/ ,目前最新版本为3.0.7。可以选择从原始网站下载:http://rsync.samba.org/ftp/rsync/。
安装
Ubuntu安装: sudo apt-get install rsync
RedHat: yum install rsync
编译安装
rsync的编译安装非常简单,只需要以下简单的几步:
[root@www rsync-2.4.6]# ./configure
[root@www rsync-2.4.6]# make
[root@www rsync-2.4.6]# make install
但是需要注意的是必须在服务器A和B上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。这样在web服务器A上运行rsync守护进程,在B上定时运行客户程序来备份web服务器A上需要备份的内容。
rsyncd.conf
rsync服务器的配置文件是rsyncd.conf.
以下是一个rsyncd.conf的样本:
# Distributed under the terms ofthe GNU General Public License v2
# Minimal configuration file for rsyncdaemon
# See rsync(1) and rsyncd.conf(5) man pagesfor help
# This line is required by the/etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
port = 873
uid = root
gid = root
use chroot = yes
read only = yes
max connections = 5
#This will give you a separate log file
#log file = /var/log/rsync.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[test]
path = /home/nemo
list=yes
ignore errors
auth users = root, nemo
secrets file = /etc/rsyncd/rsyncd.secrets
comment = linuxsir home
exclude = tmp/
各个参数具体含义参见man rsyncd.conf
服务器端启动:
usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
可能需要root权限运行.
/etc/rsyncd/rsyncd.conf 是你刚才编辑的rsyncd.conf的位置.
也可以在/etc/rc.d/rc.local里加入让系统自动启动等.
客户端同步:
rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径 如:
rsync -avzP nemo@192.168.10.1::nemo /backup
说明:
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
- 扩展阅读:
- http://chenzhuo.blog.51cto.com/150592/269530 rsync配置实例
现在,windows下面也有rsync客户端了。。。
Tags: rsync, linux
Linux | 评论:3
| 阅读:20227
Submitted by gouki on 2010, August 17, 12:14 AM
上次我在 ThinkInLamp聚会记录 中提到了一个硬币游戏,当时也是Daniel Teng带着大家做这个游戏的。
只是我当时在博客里写的也是很简单,没有完全写出这个游戏的精髓。
内容如下:
分组:需要将参加者分组,每组8-10人。每一组围着一个桌子站好。每一组需要确定每个人的角色,需要一个President,一个Customer。另外是几对Manager-Worker去模拟几个部门。
材料:为每一组准备硬币(1元N枚,5毛N枚,1毛N枚),另备每组额外准备额外几枚1元硬币(用于第6轮);白板纸每组两张;水笔每组一支;计时器(可以使用手机的计时功能)。
游戏前准备:需要把游戏规则沟通给大家。具体规则如下:
工作:Worker用手翻硬币,1次只翻1个;Manager/Customer/President的任务是计时,具体如下:
计 时:Manager需要记录他手下的那个员工从开始工作到完成工作的时间长度;Customer需要记录从把硬币交给第一个部门,一直到从最后一个部门收 到第一个硬币的时间(其实也就是从需求到上市时间);President需要记录从硬币交给第一个部门,到Customer收到最后一个硬币的时间(其实 也就是项目完成的总时间)。
工作规模:每一轮都游戏组织者说明一个任务规模,每个员工在完成指定的规模工作之后才能把工作移交给下一个部门的员工。
记录:每个团队都需要记录每一轮每个部门花费的时间,上市时间以及完成时间;
图表:所有迭代完成后,每个团队需要根据记录的数据画出几个图表:
- 每个迭代每个部门员工完成工作所花费的总时间的变化图;
- 客户记录时间的变化图(也就是上市时间的变化图);
- President记录时间的变化图(项目完成时间的变化)
其他规则:只用左手
第一轮:指定的工作规模大小是全部硬币,也就是客户一下子把所有的硬币交给第一个部门,第一个部门的员工把所有硬币翻完之后,交给第二个部门,同时每个部门的manager也记录相应的时间。这一轮的目的是让每个人熟悉一下工作,尤其是该怎样记录时间。
第二轮:规模也是跟上一轮一样,重新运行一遍
第三轮:规模减半或者变为1/3,就交给下个部门。需要注意的是,每个部门的manager记录的是从本部门的员工收到第一个硬币,一直到完成所有硬币的总时间。
第四轮:解放生产力。可以使用双手,规模跟上一轮一样。
第五轮:规模降到1,也就是上一个部门每完成一个硬币,立刻交给下一个部门继续处理。
第六轮: 规模仍然是1,但是设定了完成时间,比如20秒,然后目标是在20秒之内生产出尽可能多的价值,因为每个硬币的价值是不一样的。开始几秒钟之后,我有给了每个团队额外的几个1元硬币。
反思
- 随着规模的减小,上市时间大大缩短。
- 随着规模的减小,项目完成时间会大大缩短。
- 随着规模的减小,员工的稼动律会大大减小。因此没有必要去过分关注每个员工的实际工作量,局部工作量的优化并不会带来全局优化。
- 任务的规模时候,开发的波动(Disburbance)会比较小,开发速度会比较快,形成了“流”。
- 随着规模的减小,瓶颈现象逐渐消失,但在规模较大的时候,瓶颈现象十分明显。
- 开发的时候应该关注的生产周期(Cycle time),而不是每个员工的稼动律。
- 随着规模的减小,在整个开发中的排队(Queue)会有显著的减小,等待也会减少。参见我的另一篇博客“浅谈排队”
- 在最后一轮中,通常用很短的时间内就可以给客户带来很多的价值
- 应该关注的是给客户价值,而不是要遵从最初的计划。
注:本游戏根据Peter Stevens和Tommy Norman的Scrum Penny Game做了部分修改而设计。
----EOF----
当然,我写的也不详细,图片我就没有上传,如果你要看更详细的内容,还是建议查看deniel的博客,网址是:http://www.cnblogs.com/tengzy/archive/2010/08/15/1800272.html,更详细。
Tags: scrum
Misc | 评论:0
| 阅读:16404