洛阳铲的日志

2006年10月29日

yahoo的几个blog都是用的wp

Filed under: wordpress — HackGou @ 20:24

wordpress的影响如何?看看下面这几个链接,

  • http://ylocalblog.com/
  • http://ystoreblog.com/blog/
  • http://yuiblog.com/

当然还有我们公司自己的Blog(不过个人认为与goolge的黑板报以及上面那几个链接相比,有些差距)

在amazon上面,甚至有wordpress的书:
http://www.amazon.com/gp/product/0321450191/ref=pd_rvi_gw_1?ie=UTF8&tag2=hpug
一个blog系统能够做到这个样子,足以让我们思考的:我强,因为我专业!
好比有人分析如今的浙商之所以成功,只是因为靠的是家族模式+小狗经济+产业集群 其中的小狗经济便是轻量化、专业化的代名词。

做搜索引擎的,据说都是老大

Filed under: Google — HackGou @ 20:21

同样是搜索引擎,
看看 mail.google.com
再看看 mail.baidu.com
一个的mail系统全球通行,邀请炙手可热,甚至有人甘愿肾换取一个邀请,
另一个连自己的mail系统,都得假手他人 事实胜于雄辩,我们还能说什么呢?会叫的猫不一定是好猫

越狱中牵动观众心思的纸鹤

Filed under: 生活小札 — blog @ 20:12

自己在看越狱的时候,老是觉得Michael 送给Sarah的纸鹤不是导演随便找来的道具.其中应该藏着更多的玄机,果然有人道出了纸鹤之中的秘密线索 不过我第八集还没有看到,不知道是不是真的 :D
原文全文如下: 在越狱第二季第一集当中 Michael 给 Sarah 一个纸鹤….上面有很多点..

phprsscomcn-origami_code.jpg

这是Season II第一集第39分钟,Sarah在自己的包里找到的第一只纸鹤,上面写的是“There is a plan to make all of this right”。底下的其实并不是 莫斯密码,而是手机按键点按的次数的顺序,按照点的个数罗列如下: 3 2 2 1 2 4 3 3 2 4 4 2 2 1 3 1 2 2 3 1 2 3 1 3 3 1 2 1
第二只纸鹤,出现在第5集第11分钟,数字是:736-339-8687 ,与第一只纸鹤上的第一行点对应起来就是:
7 3 6 3 3 9 8 6 8 7 (第二只纸鹤的号码) 3 2 2 1 2 4 3 3 2 4 (第一只纸鹤的第一行点)
如果你有手机,可以试试…在英文abc输入法的状态下,号码7按3下(就是字母 R ),号码3按2下(就是字母 E ),号码6按2下(就是字母 N ),号码3 按1下(就是字母 D),号码3按2下(就是字母 E ),号码9按4下(就是字母 Z),号码8按3下(就是字母 V),号码6按3下(就是字母 O),号码8按2 下(就是字母 U),号码7按4下(就是字母 S)。完整拼写就是: Rendezvous 。 这个是法语单词,意思就是:会合的地方。
接下来,大家也明白… 第三只纸鹤所对应的是什么了….
7 8 6 3 6 9 6 4 6 8 (第三只纸鹤的号码) 4 2 2 1 3 1 2 2 3 1 (第一只纸鹤的第二行点)
得到的词组是: SUNDOWN HOT …
第四只纸鹤的数字是:35445266 ,对应起来
3 5 4 4 5 2 6 6 (第四只纸鹤的号码) 2 3 1 3 3 1 2 1 (第一只纸鹤的第三行点)
得到的词组是: ELGILANM 。
因此完整的句子是: “Rendezvous – Sundown Hotel – Gila, NM”。中文意思是,
Michael和Sarah见面的地点就是:新墨西哥州的Gila镇上的Sundown Hotel。

2006年10月26日

Mozilla Releases Firefox 2

Filed under: 生活小札 — HackGou @ 07:36

Mozilla Releases Firefox 2!
refer to : http://www.mozilla.com/

2006年10月24日

Python线程编程(三)同步队列

Filed under: Python — blog @ 17:18

我们经常会采用生产者/消费者关系的两个线程来处理一个共享缓冲区的数据。
例如一个生产者线程接受用户数据放入一个共享缓冲区里,等待一个消费者线程对
数据取出处理。但是如果缓冲区的太小而生产者和消费者两个异步线程的速度不同
时,容易出现一个线程等待另一个情况。为了尽可能的缩短共享资源并以相同速度
工作的各线程的等待时间,我们可以使用一个“队列”来提供额外的缓冲区。

此文章转自:

http://users.ir-lab.org/~bill_lang/blog10/archives/001837.html

此篇为其第三部分
看到URL中包含~bill_lang,知道这是bill_lang的个人地方,由于担心
好东西说不定那天就没了,所以全文转载过来。但是不知道bill_lang从
什么地方转载过来的,没法给出原文的链接了!

创建一个“队列”对象

import Queue
myqueue = Queue.Queue(maxsize = 10)

Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过
Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队
列长度无限。

将一个值放入队列中

myqueue.put(10)

调用队列对象的put()方法在队尾插入一个项目。put()有两个参数,第一个item为
必需的,为插入项目的值;第二个block为可选参数,默认为1。如果队列当前为空
且block为1,put()方法就使调用线程暂停,直到空出一个数据单元。如果block为
0,put方法将引发Full异常。

将一个值从队列中取出

myqueue.get()

调用队列对象的get()方法从队头删除并返回一个项目。可选参数为block,默认为
1。如果队列为空且block为1,get()就使调用线程暂停,直至有项目可用。如果
block为0,队列将引发Empty异常。

我们用一个例子来展示如何使用Queue

# queue_example.py
from Queue import Queue
import threading
import random
import time

# Producer thread
class Producer(threading.Thread):
def __init__(self, threadname, queue):
threading.Thread.__init__(self, name = threadname)
self.sharedata = queue
def run(self):
for i in range(20):
print self.getName(),’adding’,i,’to queue’
self.sharedata.put(i)
time.sleep(random.randrange(10)/10.0)
print self.getName(),’Finished’

# Consumer thread
class Consumer(threading.Thread):
def __init__(self, threadname, queue):
threading.Thread.__init__(self, name = threadname)
self.sharedata = queue
def run(self):
for i in range(20):
print self.getName(),’got a value:’,self.sharedata.get()
time.sleep(random.randrange(10)/10.0)
print self.getName(),’Finished’

# Main thread
def main():
queue = Queue()
producer = Producer(‘Producer’, queue)
consumer = Consumer(‘Consumer’, queue)

print ‘Starting threads …’
producer.start()
consumer.start()

producer.join()
consumer.join()

print ‘All threads have terminated.’

if __name__ == ‘__main__’:
main()

示例代码中实现了两个类:生产者类Producer和消费者类Consumer。前者在一个随
机的时间内放入一个值到队列queue中然后显示出来,后者在一定随机的时间内从
队列queue中取出一个值并显示出来。

Older Posts »

Powered by WordPress