<![CDATA[Gobbin Path -> 工兵主站]]> zh_CN 2010-09-09 09:06:05 2010-09-09 09:06:05 Gobbin Modified RSS Generator <![CDATA[纪念工兵主站改版]]>  这是改版后博客的第一篇文章,在庆祝的同时,也是为了纪念过去一年多Gobbin的成长。从最开始的啥都不懂,然后一点点的积累,成长,从开始充满活力的更新,到后来半死不活的放着,反正都是一种经历。呵呵

在春暖花开之际吧,gobbin.cn正式重新改版。本次改版经历了很多,其实从寒假就开始筹划了,但是总遇到一些问题,有外因也有内因,有时开心,有时烦躁。无论如何,当它再次充满活力的再次上线的那一刻起,心中总是充满喜欢和兴奋,呵呵。

小驴博客正式更名为工兵主站,并且子域名分配了blog、feed、board、code、studio、lab等,同时管理人员也从仅由Gobbin管理变成了工作组。虽然功能不多,而且也没想指着它挣钱,但却充满了心血啊。当然,代码写的还是很丑陋的,不过毕竟是本人第一次完全手工打造的程序,期待会有更多的朋友来关注和支持吧。下面分别介绍一下吧。

工兵博客,主要发表关于网站开发、网页制作等技术交流方面的文章,同时关注平日里程序开发的点滴积累,希望和大家共同努力,一同进步

订阅文章,当然就是rss订阅了,从网上找了一个大体符合标准的rss生成类然后改了改,支持订阅没有问题

黑板报,就是积攒朋友们建议和意见的地方,也是联系工兵工作组成员的最好方式

代码库,主要积累工兵工作组平日的开发程序代码和常用算法、模块等,我们能够保证所有代码能够正确运行,而且对所有代码提供免费下载

工作室,展示了工兵工作组点滴积累的大部分的开发项目,这些成功案例中充满了工兵工作组成员热情,我们展示这些项目,希望更多的朋友能够了解工兵工作组,促进交流与合作

PHP是很强大的,而且内容是很丰富的,慢慢学习吧。今后本站更新会更多一些,更多原创,更多学习笔记,同时也会粘一些代码,一起探讨探讨吧。另外,管理后台的话用FCK还是蛮不错的说。不多说了。

Come On!

You want something. Go get it!

]]>
2010-04-13 13:24:16
<![CDATA[《程序员》4月刊读后感]]> 程序员在跟宇宙赛跑,他们努力开发出更大更好的傻瓜程序,而宇宙则努力培养出更大更好的白痴,到目前为止,宇宙领先。

这两天把4月的《程序员》大致看了下,其中当然是满篇不懂的英文缩写居多,不过还是有很多值得看的地方。

给我印象最深的是李开复的对于互联网发展的一个评价和展望,他主要看好3中应用:电子商务、移动互联网和云计算。对于电子商务,我了解的是很少的,除了是个普通的用户之外可以说了解的不多,不过个人感觉这个东西现在是还会火下去一阵的,据李开复童鞋预测未来5~10年之内会出现50个价值在10亿美元的B2C品牌。不过我感觉这个不是普通人能轻易把握住的商机,因为电子商务在中国已经比较成熟了。另外,对于移动互联网,这是我很关心的问题,不仅仅因为自己的兴趣,身边的朋友也有在做相关的事情,移动互联网用户绝对会在很短的时间内再暴涨,那么如何遇见并抓住这个商机是现在应该去考虑的。关于云计算嘛,绝对不错的点子应该是和移动互联网、手机平台联合,没准会有新的IDEA。仅仅个人看法吧

话说给我印象比较深的倒不是09年的图灵奖得主,虽然他曾经并依然很猛。我所佩服的更是像Steve Wozniak那样的人,但并不是他永远只想做一名工程师的想法,而是有什么新的想法就去自己实现的态度和勇气,毕竟现在的我们在这方面缺乏的很。

话说这期《程序员》还真花了不少篇幅介绍vs2010,虽然我从来没用过除了vc6.0之后的微软IDE吧,不过上次我见朋友开发.NET程序时,真的感叹,做商业应用,做用户体验,微软真的是没话说。但并不是所有人都买Microsoft的帐,包括本人在内,总是觉得微软的东西总是充满漏洞、BUG等等,而实际上有哪些程序不是这样的呢?就好像卷首语中说的那样,微软阵营的人只关心微软公司的技术、平台、实践,而忽略其他;而非微软阵营的人呢也心存偏狭,对微软技术不懂装懂,却喜欢动不动骂上几句。哈哈。

最后堆砌点名词吧:lighttpd、saas、windows phone、MIX10、YUI、Rail 3.0、visual studio 2010

]]>
2010-04-14 21:06:47
<![CDATA[PHP中的标签函数]]> 想了想有什么好写的,就把在开发BLOG的时候遇到的问题贴一个出来吧,呵呵。

话说BLOG的后台管理界面也是由手工打造的,在编辑文档的时候难免要用到一些编辑工具,当然我选的是FCK。现在FCK已经发布到2.6版本了,而且发布了更名之后的版本叫CK,当然这个不是重点。

在使用FCK编辑之后的文档内容自然是有格式的,那么在显示的时候就会有点问题,如果仅仅是从数据库中提出并显示就有可能使得CCS被改乱。这里介绍下strip_tags函数,能耐去掉html中的标签,函数原型为:

string strip_tags ( string str [, string allowable_tags] )

返回一个去除了HTML标签的字符串;第二个参数用来设置不需要删除的标签。我在BLOG的简短显示中就是这样做的。

其实,关于输入、验证的问题是一个老问题,我记得有人曾经说过“永远不要相信用户的输入”。addslashes函数提供的功能还不够,一般来讲,htmlentities和htmlspecialchars的配合是不错的,当然还有所谓的“魔法函数”,不过我记得有人说过,那个东西效率不高的说。

]]>
2010-04-16 11:09:03
<![CDATA[PHP学习笔记(1)]]> 好吧,我也整个学习笔记之类的,记一些东西吧

1 没人不知道print_r这个函数吧,看数组的确好用

2 常用的变量检查函数:isset——用于检查一个变量是否已经定义;unset——用于取消某个变量的定义;empty——用于判断某变量是否为null或者空;is_array——判断变量是否为数组;is_integer——判断是否为整数;is_numeric——判断变量是否为数字

3 魔术常量:

  • __LINE__:返回PHP脚本中的当前行号
  • __FILE__:返回当前PHP脚本的完整路径和文件名
  • __FUNCTION__:在函数中调用,返回该函数的名称
  • __CLASS__:在类中调用,返回该类的名称
  • __METHOD__:返回类的成员方法的名称

4 foreach 比 for 快

5 字符串函数虽然有很多很多,但是要谨慎选择,而且不同的函数虽然能实现相同的功能,但是效率上是不同的,需要揣摩

6 header函数虽然好用,不过需要在页面上输出head信息之前,否则没什么效果了;其实URI和URL还是有点区别的,有一个parse_url()函数能解析URL字符串的内容,很好用,可以配合parse_str()函数使用,可以不但解析URL地址,并且获取GET传递的变量和值,省去了用explode的过程

7 PHP提供了URL加密和解密的函数,实际上就是对中文等宽字符进行URL编码,用到的函数是urldecode()和urlencode()

]]>
2010-04-16 23:05:19
<![CDATA[假如你的月收入只有2000元(转载)]]> 个人感觉很不错的建议,既然改变不了环境,还是从自身做起吧,呵呵


假设你的月收入只有2000元,你也可以过得很好。我帮你把钱分成五份。每一份,是400元。
第一份,用来做生活费。这么少的生活费,每天只能够分到十几元。早餐一个地瓜,两个鸡蛋,一个苹果。中餐两个鸡蛋,一杯酸奶,一个水果。晚上生的包菜,加南瓜,一根黄瓜。这样只花了4元到5元。你依然有条件吃上一勺蛋白质粉,两个B,两个C,两个钙镁片。不过,如果你还年轻,身体暂时还没有太多问题,这样的食谱,够你数年内不会有健康问题。
第二份,用来交朋友,扩大你的人际圈。这就宽裕了。你的电话费可以用掉100元。每个月可以请客两次,每次150元。请谁呢?记住,请比你有思想的人,比你更有钱的人,和你需要感激的人。
每个月,坚持请客,一年下来,你的朋友圈应该已经为你产生价值了,你的声望、影响力、附加价值正在提升,形象又好,又大方。
第三份,用来学习,每个月可以有50元—100元用来买书。钱不多,买的书就要认真阅读,学会学了就用的精神。每一本书,看完后,就把它变成自己的语言讲给别人听,与人分享可以提高你的信誉度,并且,提升亲和力。另外的300元存起来,每一年参加一次培训。从不间断。等收入高一些了,或者有额外的积蓄,就参加更高级的培训。参加好的培训,既可以免费结交志同道合的朋友,又可以学习平时难以领悟的道理。
第四份,用于旅游,一年奖励自己旅游至少一次。生命的成长来自不断地历练。参加那种自由行的旅游,住进青年旅社,地球其实并不大,每年都出门,几年下来,就可以把红旗插到地图上,许多美好的回忆,成为生命的动力,更加有热情和能量,去投入工作。
第五份,用来投资。先存起来,然后可以投资到股市里,也可以用来做进货的本钱,小本生意很安全,开一个淘宝网帐户,去批发点东西来卖,亏了反正也不多,赚呢,既赚了金钱,又赚了自信和胆量,还赚来做事情的阅历。赚的钱多了,就可以开始购买长期的投资计划,使自己提早获得一份长久的保障,保证自己和家人在将来,不论发生什么事情,都有一份充足的资金来照顾,生活品质不会下降。

好了,这样熬了一年,第二年如果你还在拿2000元的收入,那就是你的不是了,这么不长进,活着也够丢脸的,看看有什么品牌的豆腐比较硬,买一点来,用头去撞吧。月收入在3000元以下的,一定要兼职赚钱,不要穷,还很有个性,挑三拣四的,这个不愿意做,那个没有兴趣。收入不高,一定要非常勤奋,尽量去找跟销售有关的工作,比如房地产中介,这就是很不错的兼职工作,既可以认识很多有价值的人,又可以锻炼自己的信息收集能力和营销技巧。

衣服啊,鞋子啊,这一年你是得尽量少买了。最好全部通过你的兼职赚的钱去买。当作奖励自己的一种方式。额外多赚钱的时候,记得买个礼物给你的爱人,谢谢他/她支持你的财务计划。很坦诚地告诉他/她,为何你那么勤俭,告诉他/她你的梦想和努力的方向。

到处都有需要帮助的生意人,兼职帮他们做点事情,去磨练自己的意志、口才、和工作能力吧,加上你的理财技巧,第二年,你的收入至少要增加到5000元。最低也应该是3000元,否则你收入的成长还赶不上通货膨胀呢。

无论你的收入是多少,记得分成五份。增加对身体的投资,让身体始终好用,增加对社交的投资,扩大你的人脉,增加对学习的投资,加强你的自信,增加对旅游的投资,扩大你的见闻,增加对未来的投资,增加你的收益。保持这种平衡,逐渐你就会开始有大量的盈余。这是一个良性循环的人生计划。身体将越来越好,得到更多的营养和照顾。朋友会越来越多,存储许多有价值的人脉关系,同时,你也有条件参加那些非常高端的培训,使自己各方面的羽翼丰满,思维宽阔,格局广大,性格和谐。而你,也就能够逐渐实现自己的各种梦想,购买自己的需要的房子、车子,并且给未来的孩子准备一笔充足的教育基金。

人生是可以设计的,生涯是可以规划的,幸福是可以准备的。现在就可以开始。在你穷的时候,要少在家里,多在外面。在你富有的时候,要多在家里,少在外面。这就是生活的艺术。穷得时候,钱要花给别人,富的时候,钱要花给自己。很多人,都做颠倒了。

穷得时候,不要计较,对别人要好。富的时候,要学会让别人对自己好。自己对自己更好。穷要把自己贡献出去,尽量让别人利用。富,要把自己收藏好,小心别让别人随便利用。这些奇妙的生活方式,是很少人能够明白的。

穷的时候,花钱给别人看。富的时候,花钱给自己享受。穷的时候一定要大方,富的时候,就不要摆阔了。生命已经恢复了简单,已经回到了宁静。

年轻不是过错,贫穷无需害怕。懂得培养自己,懂得什么是贵重物品,懂得该投资什么,懂得该在哪里节约,这是整个过程的关键。别乱买衣服,少买一点,但是可以买几件很有品味的。少在外面吃饭,要吃就请客,要请,就请比自己更有梦想的、更有思想、更努力的人。

一旦生活需要的钱已经够了,最大的花费,就是用你的收入,完成你的梦想,去放开你的翅膀大胆地做梦,去让生命经历不一样的旅程。

这些,就是我自己成长过程的亲身经历,其实我只是做了该做的事情,就有了该有的结果。一切不是偶然,却也不是很难。如果你愿意,现在就可以开始你的幸福、健康、财富之旅

]]>
2010-04-21 18:50:19
<![CDATA[PHP学习笔记(2)]]> 最近体会PHP的数组的确是很强大,很好用,写个小总结吧。

PHP数组其实内部就是哈希实现的,因此无论是索引数组还是关联数组,都可以看做是在做一个HASH,其实在刚接触C++的STL的MAP的时候,就觉得很赞,现在回想以下,也是,为什么平时只会想到让数字作为数组的索引呢?呵呵,思维惯性吧。

PHP的数组同样是不限制维数的,使用三个函数:print_r、var_dump和var_export函数,可以显示数组的结构和内容

可以将所有数组都视为key和value,那么,就有一系列关于键和值的操作了:

  • asort、ksort按值和按key为数组排序
  • array_count_values统计值出现的次数
  • array_key_exists统计键值是否出现过
  • in_array统计数组值是否存在
  • array_unique去除数组中重复的值
  • array_keys和array_values提取数组中的键值和数据值
  • array_flip将数组的键名和值对调

另外关于数组的内容修改方面有不少的好函数:

  • array_push
  • array_pop
  • array_shift
  • array_unshift
  • array_splice

其实有另外一个函数配合起来很好用,extarct,能将数组中的元素转成变量,这样配合_POST变量等就可以很容易的进行表单操作了,当然还要配合好数据验证

 

]]>
2010-04-27 22:31:58
<![CDATA[PHP学习笔记(3)]]> 序列化函数serialize能够将一个数组序列化为一个串,和它对应的函数为unserialize函数,将一个已经序列化的数组返回其数组形态

addslashes做字符串转义工作,对应的函数为stripslashes,在插入数据库之前可以进行转义,然后查询提出数据的时候使用stripslashes函数

切割字符串explode,对应的函数为组合字符串implode,是join函数的别名

parse_str可以解析一个字符串,就好像解析get后面的一大串url的变量

similar_text函数可以计算两个串的相似度

base_convert用于任意进制之间的转换

checkdate可以检验日期的有效性

ucfirst,ucwords可以将首字母大写

strip_tags用于去除串中的html和php标签

str_replace串替换,str_pad串填充,str_repeat串重复,str_shuffle串乱序

]]>
2010-05-10 12:22:30
<![CDATA[关于JAVA的记录]]> 最近看了一个JAVA的代码,感觉挺好,学了不少东西,对一些概念有了更深的理解,呵呵。

首先是Reflection机制,就是所谓的反射机制,以前是没有接触过甚至不知道的,现在的理解就是:根据变量找类。这东西貌似在C/C++中是没有的,专门用于动态的进行加载。使用Class类的Class.forName方法,找和传入的变量值一致的类,然后getDeclaredMethods,就能获取该类的所有方法。实际上这个东西是见过的,就在最native的servlet的链接数据库的时候一般都会使用Class.forName,但是从没知道过这东西有深层含义

然后是单键模式,就是Singleton,其实这个应该是源于设计模式,单键模式实际上是为了简化实例化的操作,对于该类只实例化一个对象,定义并使用static的getInstence方法获取该对象,在相应的调用其他方法,可以作为全局化使用的工具

最后,再次体会了JAVA中封装、继承、多态的NB之处。平常看书也就是弄个Animal类,写个cat、dog之类的,只有看了真正的牛人的代码才明白这个东西原来是那样的强大,很是赞叹啊。

 

]]>
2010-05-26 13:54:24
<![CDATA[前端控制器和页面控制器]]>       传统的基于Form请求的MVC框架大都采用前端控制器模式,这个模式包含一个分发器(Dispatcher),分发器将请求URL映射至需要被执行的动作命令实例(Command Instance),命令实例就是CakePHP中的Action Controller中一个action,命令实例与系统后端的服务(Model)进行交互,命令实例在处理完业务逻辑后会将结果转发到视图中。在不同语言和不同实现中,视图可能只是模板页面(如JSP),也可能是个类(如CakePHP中的View类)。
      页面控制器的代表就是Microsoft的ASP.NET。在这种MVC中,并不是令分发器去寻找一个控制器并执行之,而是直接到达视图并且在继续生成视图之前调用相应的控制器。这种模式下,一个页面对应一个控制器,并且控制器的粒度不是表单而是更小的页面元素(这种基于事件响应机制的请求处理和传统的GUI很相像)。尽管这种模式丢掉了在大多数经典MVC实现中所使用的某些解耦合特性,但在拥有强悍的开发工具的情况下,它可以明显提高开发效率。比如使用Microsoft的Visual Studio,再配合GridView等数据绑定组件,开发效率还是很高的。

]]>
2010-05-28 13:26:58
<![CDATA[SVN的建立与使用(eclipse)]]> 今天倒腾了一阵SVN相关的东西,主要是记录一下单纯的SDK eclipse中如何添加SVN组件,机及其使用,以及如何在linux服务器上相应的配置好SVN server的过程,其实还是挺有意思的

还有点前言,因为要做PHP的东西,如果用Eclipse作为IDE的话,可以用一个PHPEclipse的插件,搜下就有下载,十几M的样子,将features和plugins文件夹里的东西添加到Eclipse相应的文件夹中就可以了,安装比较简单

然后是安装subclipse,就是在eclipse中的SVN组件,可以在线安装,http://subclipse.tigris.org/  上有相应的说明,说明了下载和安装方法,这里不赘述了

然后是在linux下配svn server:先去下载:http://subversion.apache.org/ 下载进行安装,我是下的source code,subversion-1.6.11.tar.gz 和 subversion-deps-1.6.11.tar.gz ,两个包都tar xfvz之后,会生成一个文件夹,在其中进行 ./configure --prefix=要安装的位置;然后make、make install,最后设置环境变量profile,指定svn的bin目录;使用svnserve --version查看是否安装成功

然后是配置单个的目录,对于一个目录,比如/usr/abc,要设置svn:首先svnadmin create /usr/abc ,然后进入该目录,设置相应文件:

svnserve.conf:

  • anon-access = none # 使非授权用户无法访问
  • auth-access = write # 使授权用户有写权限
  • password-db = passwd # 指明密码文件路径
  • authz-db = authz # 访问控制文件

passwd文件内容是 username = password,每个一行

authz文件内容是

[/]
* = rw

啊,注意,不要有前导空格

新建好之后是空的,要使用svn import 导入一次

svn  import /home/user/import file:///usr/abc  –m "initial import"
这里假定 home/user/import 中存放的最原始的代码

最后 启动服务,svnserve –d –r /usr/abc,默认监听3690端口

然后就可以在eclipse里面进行check out了

]]>
2010-06-07 14:31:54