转到正文

浪淘沙

静观己心,厚积薄发

存档

2013 年 4 月 的存档

原文地址:http://blog.csdn.net/zbf8441372/article/details/8847457

目标

尝试了一下把PageRank算法结合了文本相似度计算。直觉上是想把一个list里,和大家都比较靠拢的文本可能最后的PageRank值会比较大。因为如 果最后计算的PageRank值大,说明有比较多的文本和他的相似度值比较高,或者有更多的文本向他靠拢。这样是不是就可以得到一些相对核心的文本,或者 相对代表性的文本?如果是要在整堆文本里切分一些关键的词做token,那么每个token在每份文本里的权重就可以不一样,那么是否就可以得到比较核心 的token,来给这些文本打标签?当然,分词切词的时候都是要用工具过滤掉stopword的。

我也只是想尝试一下这个想法,就简单实现了整个过程。可能实现上还有问题。我的结果是最后大家的PageRank值都非常接近。如: 继续阅读

原文地址:http://blog.csdn.net/mark_qi/article/details/8862489

1.      基本概念

计算机存储的信息包括数据信息和控制信息。数据信息又分为数值信息和非数字信息。非数据信息和控制信息包括了字母、各种控制符合、图形符合等,它们都是以 二进制代码存入计算机中。所谓字符编码,就是定义了一套规则,指定了计算机将要存入的所有信息(字母,符号)对应的实际数值;计算机读取的实际数值对应的 显示信息(字母,符号)等。 继续阅读

原文地址:http://huoding.com/2013/04/21/246

被遗忘的Logrotate

Posted on

我发现很多人的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!

Logrotate的介绍

显而易见,Logrotate是基于CRON来运行的,其脚本是「/etc/cron.daily/logrotate」:

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

继续阅读

原文地址:http://www.zendstudio.net/archives/tcp-udp-socket-toolkit/

还记得我在很久很久以前和大家推荐的FiddlerCharles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用。好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控。

假如有一天,你写“传统”的PHP有些累了,想玩玩socket了,搞搞python、NodeJS、GO之类的新兴语言或框架(当然我不是说这些 语言不能写web),或者干脆就用PHP吧,事实上PHP5.4的性能提高的真是相当之多,用PHP 的socket函数就能简单的写一个web socket服务器 (代码在评论里)了,甚至有个很不错的PHP框架—— swoole,他和其他的大多数常见的框架都不同,因为他不依赖http服务器!号称高级开发框架,“目标是向Java框架、Rails On Ruby、Python Django Pylons等一流框架发起挑战”的一种以socket方式运行的PHP框架。还有一个叫nanoserv,……我说这么多就是为了证明PHP也能玩好socket的,所以socket以及TCP、UDP都是平易近人的。

说工具
继续阅读

原文地址:http://www.williamlong.info/archives/3435.html

我还没有见过比源码版本控制这样跨任意编程语言更基本的工具。 这是我们用过的最基本的工具,是很多开发团队的生命线。 那么,为什么我们经常会用错呢? 为什么一些真正的核心,版本控制系统的基础往往知之甚少?

我总结了10个实践 或“戒律” – 这通常是发生故障或错误理解的开始, 是与版本控制产品和编程语言无关的。 我会从Subversion和.NET挑选一些例子,但它们广泛适用于其他技术。

1。 如果还在使用VSS,马上停手

平心而论,在1995年VSS曾是一个伟大的工具。  不过因为有了像Subversion甚至分布式的如Git和Mercurial工具变得黯然失色。 很多年前微软已经明确表明废弃它了!

由于一系列的重大缺陷,VSS曾受到广泛的几乎一致的鄙视, 俗称为微软的源代码破坏系统 。

2。 如果源代码没有处在版本控制,那等于还没有 继续阅读

原文地址:http://www.aqee.net/just-say-no/

又一次情绪激动、气氛高度紧张的会议,这一次是商议如何让目前这个重要项目“重回正轨”——计划的完工日期早已超了几个星期。所有的这些场景听起来都很耳熟吗?我想说的是,项目超期在任何行业里都是常见的事情。然而,软件行业里看起来更容易出现这种情况。

我们怎么会走到这种地步的?这还要从我们梦开始的地方说起。所有的开始都是精神抖擞、干劲十足。一个漂亮的创意,这次我们发誓绝不会重蹈上次的覆辙,不会犯上次的错误。这次我们告诉自己,这次的计划将会“正确”的执行,不会图省事,也不会中途变更。经常有时候我们会感觉梦想正朝正确的方向前进,设计很成功,每个人都很乐观,外界评论也很好。然后,噩梦开始降临,因为各种打击开始出现。

系统中最容易的部分却耗用了大家全部的时间。一个微小的疏忽就可能意味着当初一系列简单的假设都不再成立。错误的假设产生连锁效应,导致系统设计陷入死局。需要对设计进行修改来纠正这些问题。希望仍然存在,只要付出足够不眠之夜和周末加班,我们仍然能让项目“重回正轨”继续阅读

原文地址:http://www.aqee.net/14-lessons-after-five-years-of-professional-programming/

排列不分先后:

1. 当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL,sqlite更容易掌控。

2. 关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例 如,在iOS中,GCD,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。

3. 尽可能简化状态,尽可能局部本地化。适用至上。 继续阅读

有的时候,需要为一个function添加一个可选参数(Optional Parameter),当没有传递这样的一个参数的时候,会为这个参数设置一个默认值。

这个功能再php下面很容易就可以做到:


function testArgs($arg1 = 1, $arg2 = 2)

{

//code....

}

但是,再javascript下面这样就行不通了。因为javascript压根就不支持这种function的定义方法。但是也可以有变通的方法来解决这个种问题。 继续阅读

原文地址:http://blog.sina.com.cn/s/blog_573c3a4d0101d77x.html

郑板桥在没有做官前,以卖画为生,画室开在苏州桃花巷。巷子的另外一头也有一个卖画的,是当地有名的画家,叫吕子敬。

吕子敬以擅长画梅远近闻名,他自己也很得意,老不客气的称自己笔下的梅花是“远看花影动,近闻有花香。”郑板桥却只画兰、竹、菊三样,坚决不画梅花。有的顾客登门求他画,也被他拒绝,反而推荐对方去吕子敬那里,说吕先生比我水平高,画有所值,你买我的就亏了。这事传出去以后,吕子敬得到业内人士的肯定,人气更旺,更加坚信自己的画技。

过了几年,郑板桥要走了,吕子敬前来送行。按照绘画界的规矩,画友分别要以丹青相送,郑板桥当场画了一幅梅花给吕子敬,吕子敬一看就傻了,原来郑板桥的梅花气韵不凡,完全秒杀他的梅花,人家当初不画梅花,不过是要给他“留饭”,不想赶尽杀绝。于是吕子敬彻底服气了,对郑板桥充满感激。 继续阅读

原文地址:http://blog.csdn.net/cnweike/article/details/6779409

一个程序的函数元素不能太大是一个长期存在的编程风格原则。如果程序的某些组件增长到读难以理解的成都,它就变成一大堆的复杂东西,它们隐藏错误就像一个大城市隐藏逃亡者一样简单。这样的软件将很难读、很难测试、很难杀臭虫。

 

遵循这个原则,一个大的程序必须被分成很多片,一个程序越大,就需要被越多地分割。你怎样分割一个程序呢?传统的方法是自上而下的设计:你说“这个程序的目的是做这7件事情,所以我把它分成7个子功能”等等。这个过程持续到整个程序有正确水平的粒度——每块都可以独立地做一些事情,但是能够作为一个单元小到可以读懂。

继续阅读