星期六, 十一月 24, 2007
NFO convert to plain text(txt) python script
line = infile.read()
newline = ""
for i in range(0,len(line)):
c1 = ord(line[i])
if c1 > 0x7e or c1 < 0x20:
if c1 == 0x0a or c1 == 0x0d:
newline += line[i]
else:
newline += " "
else:
newline += line[i]
print newline
import string
import re
pattern_empty = """^\s*$"""
pattern_head = """^\s+"""
pattern_tail = """\s+$"""
reg_empty = re.compile(pattern_empty,re.MULTILINE)
reg_head = re.compile(pattern_head,re.MULTILINE )
reg_tail = re.compile(pattern_tail,re.MULTILINE)
newline, num = reg_empty.subn("<br>",newline)
newline, num = reg_head.subn(" ",newline)
newline, num = reg_tail.subn(" ",newline)
print newline
print num
星期二, 十一月 20, 2007
星期一, 十一月 19, 2007
星期日, 十一月 18, 2007
拦阻索
当舰载机降落时,尾钩放下,其位置比起落架还低,着舰点在1、2道拦阻索之间为好,这就要求飞行员有很高的操纵技术。据美国海军统计,白天着舰的舰载机尾钩挂住2、3道拦阻索的合计约占62-64%,尾钩挂住第4道索的约为18%,尾钩挂到第1道索的约为16%。在夜间尾钩多挂住第3、4道索。如尾钩未挂住拦阻索,着舰机必须拉起复飞,这在白天约为5%,夜间则高达12-15%。
美国航母的MK-73型拦阻索缓冲器可使30吨重的舰载机以140节的速度着舰后滑跑91.5米停止。舰载机停下后,拦阻索自动复位,迎接下一架着舰机的到来。/摘自环球军事论坛
航母飞机弹射器的发展
不过,弹射飞机可不像弹射弓箭和打乌用的石子,飞机不仅比它们大得多,而且,航空母舰弹射飞机是为了使飞机在极短的飞行甲板上达到起飞速度,这就要求飞机弹射器具有独特的性能。据资料表明,现在普遍采用的喷气式舰载机起飞时,需要加到每小时350公里以上的速度才能拔地而起,依现行飞机的重量和发动机功率计算,飞机需在跑道上滑跑几千米距离才能达到,而航空母舰的甲板最长也不过百余米,所以,弹射器加快起飞速度是必不可少的环节。
弹射器目前主要有三种:液压弹射器、蒸汽弹射器、内燃弹射器。世界上最早的弹射器是由美国西奥多・埃利森海军上尉于1911年研制成功的。这种原始的弹射器由三条绳索和一块法码组成,但这种弹射器太原始,几乎没起到什么作用。后来,埃利森又对这种原始的弹射器进行改进,研制成功压缩空气式弹射器,于1912年11月12日进行了人类史上第一次弹射起飞。
不过,埃利森的发明并没有引起人们的注意。因为当时的舰载飞机重量轻、速度低,不需要弹射也可从航空母舰的飞行甲板上起飞。直至喷气式飞机诞生后,弹射器才变得日渐重要起来。而第二次世界大战结束时,航空母舰上所装备的弹射器都是液压的,弹射能量极小,根本无法满足喷气式飞机的需要。1951年,英国海军航空兵后备队司令米切尔率先提出研制蒸汽弹射器的设想。他当年就将其研制成功,并装备在海军"莫仙座"号航空母舰上。后来,美国人又于1960年研制成功了内燃弹射器,并将这种弹射器安装在"企业"号核动力航空母舰上。不过,这种内燃式弹射器至今仍不能令人满意,所以"企业"号上除了装备内燃弹射器之外,还装备有蒸汽弹射器。
综上所述,目前航空母舰上采用的弹射器以蒸汽弹射器为主。蒸汽弹射器就是一台往复式蒸汽机,只不过其动力冲程很长,目前已近百米。蒸汽弹射器由发射系统、蒸汽系统、拖索张紧系统、复位系统、润滑及控制系统等部分组成。工作时,由锅炉产生高压蒸汽,并把这种高压蒸汽储存在蒸汽室里,弹射前,用拖索将舰载机钩在往复车上,一旦将高压蒸汽充入汽缸筒,蒸汽的巨大压力推动活塞,活塞带动往复车,往复车带动舰载机飞速向前滑动,从而将飞机弹射出去。如美国的C-13型蒸汽弹射器,可将36.3吨重的舰载机以185节(即每小时339公里)的高速弹射出去。
蒸汽弹射又分为两种方式,最先采用的是拖索式,后来采用前轮拖曳式。拖索式弹射是首先由牵引车将舰载机拖到弹射器上,由甲板工作人员用钢质拖索将飞机挂在往复的滑块上。然后,用一根牵引释放杆把飞机尾部与弹射器后端固定,竖起喷气偏流挡板,飞行员将飞机发动机启动并放到推力最大位置。这一系列准备工作完成后,甲板指挥官一声令下,高压蒸汽使弹射滑块猛向前冲,拉断牵引释放杆上的定力拉断栓,滑块拉着飞机沿轨道加速,在轨道即将结束时把飞机加速到起飞速度。此时,拖索从飞机上脱落,飞机在自身发动机的牵引下飞向空中。而滑块则返回弹射轨道起点,准备弹射下一架飞机。
1964年开始,美国海军又研制成功另一种蒸汽弹射方式,即前轮拖曳式。这种弹射方式目前已在航空母舰上普遍采用。它放弃了弹射拖索,从而使专门用于回收弹射拖索的加收角没有存在的必要了。所谓前轮牵引式弹射起飞,就是给舰载飞机的前轮支架装上曳杆,把前轮直接挂在滑块上,弹射时由滑块直接拉着飞机的前轮加速起飞。取消了拖索,既可减少挂拖索和回收拖索的8~10名甲板人员,也可减少每架飞机弹射的时间间距。目前,美国海军的航空母舰中,除装备CB-1型弹射器的航母弹射一架飞机需45秒钟,其他每弹射一架飞机仅需30秒钟。
Torpark软件的简介和下载 zz
TorPark是一种整合了Tor(The Onion Router洋葱头表层代理网络)和FireFox的代理软件。
Tor作为一个Socks5代理软件,如果要用于HTTP,FTP类运用,必须使用专用软件转换协议后方能使用,例如Privoxy、SocksCap。Privoxy
是一个开放源码的WEB代理服务软件。
由于Tor的设置对于一般网民来讲有点困难,因此有人就提供了一个TorPark软件包,里面将设置全部都做好,可以直接运行,免去了不少麻烦。对于一般网民来说很省事。
我使用TorPark的感觉是,有时候速度较慢,IP地址会不断变化,其FireFox浏览器访问某些网站显示会有点问题,不过在IE里其实也可以用。如果懒得去找代理服务器的话,用这个软件可以省事不少。不仅仅可以访问Google,类似维基百科,新语丝,Wordpress等网站都可以正常访问了。
另外,对于ADSL用户,请在使用这个软件前,一定记住先打10000号去关闭"互联星空"这个电信支付服务(电信局开通帐号会自动开通"互联星空"),因为Torpark属于代理服务器,别人可能会使用这个代理,直接去一些网站(如Q币充值)进行消费而无需验证,这将造成个人经济上的损失,这就是电信的"互联星空"服务本身具有的巨大安全隐患。
突破网络防线 Tor
所以想找找有没有其他的替代。
TOR tor 以前也听说过,不过那时没有GUI,没有深入去研究。
今天发现 tor也提供了GUI支持,Vidalia,现在使用也很方便。
可以直接去tor的官方网站去下载打包好的软件包。
直接安装就可以使用,基本不用配置。
http://www.torproject.org/download.html.zh-cn
包内有下面四个部分:
Tor & Privoxy & Vidalia & Torbutton bundle
Tor提供socks接口,使用sockscap可以网遍天下了
Tor为了防止垃圾邮件,不提供对25端口的链接。
不过速度不快,有点慢:(
星期六, 十一月 17, 2007
static variable in python
L[0]+=1
return L[0]
print fun(),fun(),fun(),fun() # will produce 1 2 3 4
this use the default variable.
the default variable value should be a list.
星期五, 十一月 16, 2007
去除 blogger 中的虚线
你可以找到对应的部分去除。
先找到定义侧边栏的部分,
然后可能描述的语句会类似:
border-bottem:1px;
去除即可
google blog search
It can index my article just 2 hours after my publish it.
It amazing.
wonderful thing
http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&q=site%3Akeepoo.blogspot.com&btnG=Search+Blogs
----------------------------------------------------
I think I was punished because of this post, all my blog is gone from google search result
META标签的常见用法
最近,Danny Sullivan谈到了如何处理的搜索引擎meta标签的问题,以下是一些关于在Google中如何处理这些问题的答案。
多内容数值
我们建议你把所有的Meta标签内容放在一个meta中。这将使得meta标签更易于读取并降低发生错误的概率。例如:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
如果一行包含对个meta标签,我们将会累加标签的内容,例如,我们会将
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="NOFOLLOW">
理解为:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
如果内容的数值有冲突,我们将使用最严格的那个。所以,如果有个页面包含下面的meta标签:
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="INDEX">
我们将只遵守noindex的数值。
单词拼写规范
Googlebot可以理解任何大小写的组合,所有大小写都是同样的效果。如果包含多内容的数值,数值之间需要使用逗号分隔。
同时使用robots.txt和robots meta标签
如果你同时使用了robots.txt文件和robots meta标签,如果robots.txt和meta标签有冲突,googlebot 将使用限制更严的。具体来说:
如果你在robots.txt里禁止了某一页,Googlebot永远也不会去索引那一页,也不会读取那一页的任何标识。
如果你在robot.txt中允许,但是在页面中使用 meta 标签对其进行限制,那么Googlebots会访问那一页,读取里面的标签,但不会对其进行索引。
有效的meta标签数值
Googlebot可以对下面的标签进行如下的解读:
NOINDEX - 阻止页面被列入索引。
NOFOLLOW - 阻止对于页面中任何超级链接进行索引。(注,这不同于超级链接上的nofollow属性,那个属性只是组织索引单独的链接)
NOARCHIVE - 不保存该页面的网页快照。
NOSNIPPET - 不在搜索结果中显示该页面的摘要信息,同时不保存该页面的网页快照。
NOODP - 在搜索结果中不使用Open Directory Project中的描述信息作为其摘要信息。
NONE - 相当于"NOINDEX, NOFOLLOW"。
数值NONE的含义
据robotstxt.org的定义, 下面的标记等价于 NOINDEX, NOFOLLOW 。
<META NAME="ROBOTS" CONTENT="NONE">
不过,有些网站站长使用这个标签来限制和组织所有搜索引擎来的内容索引。
Using the robots meta tag
Multiple content values
We recommend that you place all content values in one meta tag. This keeps the meta tags easy to read and reduces the chance for conflicts. For instance:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
If the page contains multiple meta tags of the same type, we will aggregate the content values. For instance, we will interpret
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="NOFOLLOW">
The same way as:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
If content values conflict, we will use the most restrictive. So, if the page has these meta tags:
<META NAME="ROBOTS" CONTENT="NOINDEX">
<META NAME="ROBOTS" CONTENT="INDEX">
We will obey the NOINDEX value.
Unnecessary content values
By default, Googlebot will index a page and follow links to it. So there's no need to tag pages with content values of INDEX or FOLLOW.
Directing a robots meta tag specifically at Googlebot
To provide instruction for all search engines, set the meta name to "ROBOTS". To provide instruction for only Googlebot, set the meta name to "GOOGLEBOT". If you want to provide different instructions for different search engines (for instance, if you want one search engine to index a page, but not another), it's best to use a specific meta tag for each search engine rather than use a generic robots meta tag combined with a specific one. You can find a list of bots at robotstxt.org.
Casing and spacing
Googlebot understands any combination of lowercase and uppercase. So each of these meta tags is interpreted in exactly the same way:
<meta name="ROBOTS" content="NOODP">
<meta name="robots" content="noodp">
<meta name="Robots" content="NoOdp">
If you have multiple content values, you must place a comma between them, but it doesn't matter if you also include spaces. So the following meta tags are interpreted the same way:
<METANAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
If you use both a robots.txt file and robots meta tags
If the robots.txt and meta tag instructions for a page conflict, Googlebot follows the most restrictive. More specifically:
- If you block a page with robots.txt, Googlebot will never crawl the page and will never read any meta tags on the page.
- If you allow a page with robots.txt but block it from being indexed using a meta tag, Googlebot will access the page, read the meta tag, and subsequently not index it.
Googlebot interprets the following robots meta tag values:
- NOINDEX - prevents the page from being included in the index.
- NOFOLLOW - prevents Googlebot from following any links on the page. (Note that this is different from the link-level NOFOLLOW attribute, which prevents Googlebot from following an individual link.)
- NOARCHIVE - prevents a cached copy of this page from being available in the search results.
- NOSNIPPET - prevents a description from appearing below the page in the search results, as well as prevents caching of the page.
- NOODP - blocks the Open Directory Project description of the page from being used in the description that appears below the page in the search results.
- NONE - equivalent to "NOINDEX, NOFOLLOW".
As defined by robotstxt.org, the following direction means NOINDEX, NOFOLLOW.
<META NAME="ROBOTS" CONTENT="NONE">
However, some webmasters use this tag to indicate no robots restrictions and inadvertently block all search engines from their content.
robots的写法介绍
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。
当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
另外,robots.txt必须放置在一个站点的根目录下, 而且文件名必须全部小写。
robots.txt写作语法
访问以上具体地址,我们可以看到robots.txt的具体内容如下:
# All robots will spider the domain
User-agent: *
Disallow:
以上文本表达的意思是允许所有的搜索机器人访问www.csswebs.org站点下的所有文件。
具体语法分析:其中#后面文字为说明信息;User-agent:后面为搜索机器人的名称,后面如果是*,则泛指所有的搜索机器人;Disallow:后面为不允许访问的文件目录。
下面,我将列举一些robots.txt的具体用法:
允许所有的robot访问
Disallow:
或者也可以建一个空文件 "/robots.txt" file
禁止所有搜索引擎访问网站的任何部分
Disallow: /
禁止所有搜索引擎访问网站的几个部分(下例中的01、02、03目录)
Disallow: /01/
Disallow: /02/
Disallow: /03/
禁止某个搜索引擎的访问(下例中的BadBot)
User-agent: BadBot
Disallow: /
只允许某个搜索引擎的访问(下例中的Crawler)
Disallow:
Disallow: /
另外,我觉得有必要进行拓展说明,对robots meta进行一些介绍:
Robots META标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots META标签也是放在页面的<head></head>中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。
Robots META标签的写法:
Robots META标签中没有大小写之分,name="Robots"表示所有的搜索引擎,可以针对某个具体搜索引擎写为name="BaiduSpider"。 content部分有四个指令选项:index、noindex、follow、nofollow,指令间以","分隔。
INDEX 指令告诉搜索机器人抓取该页面;
FOLLOW 指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;
Robots Meta标签的缺省值是INDEX和FOLLOW,只有inktomi除外,对于它,缺省值是INDEX,NOFOLLOW。
这样,一共有四种组合:
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
其中
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">可以写成<META NAME="ROBOTS" CONTENT="ALL">;
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">可以写成<META NAME="ROBOTS" CONTENT="NONE">
目 前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令"archive",可以 限制GOOGLE是否保留网页快照。例如:
表示抓取该站点中页面并沿着页面中链接抓取,但是不在GOOLGE上保留该页面的网页快照。
hoho 今天 $1.28 看来英文的就是值钱
AdSense for Content 344 7 2.03% $3.73 $1.28
看来英文的就是值钱,中文的哼哧哼哧搞半天也没英文的多
ooo
http://efd-j.blogspot.com
星期四, 十一月 15, 2007
Godaddy免费空间广告去掉屏蔽方法 zz
其实最初我对广告横幅是理解的,因为天下没有免费的午餐。但后来使用中发现两个大的问题:一是由于广告是在正常显示网页后,让正常页面下移腾出空间显示的。所以打开每个页面都会非常明显的感受到页面加载中的下移过程,让人非常不舒服。二是广告的载入速度非常慢,结合第一点,使网页显示完成大为延缓。
我不得不决定去广告,查看加广告后的网页代码,可以看到在末尾加上了一段Java语句:
< script language='javascript'
src='https://a12.alphagodaddy.com/hosting_ads/gd01.js'>
< /script>
Godaddy就是通过这段代码,在每一页加上广告的。
在网上搜索了一下,发现不少去广告的方法。
方法一:在页面最后加
<script>
可以完全去掉广告,在需要去广告的页面后面加该标记后,广告代码加入后就成为:
<script>
中间可以有非Java内容
< script language='javascript'
src='https://a12.alphagodaddy.com/hosting_ads/gd01.js'>
< /script>
这就造成广告代码匹配出现错误,从而阻止了广告代码的执行。这种方法完全去除了广告的影响,可以大大提升页面显示速度,是目前最好的方法,我用的就是这一种。不足之处是可能导致空间被K,为了尽量避免其发生,建议保留部分页面的广告。
方法二:在文件结尾处加入
<noscript>
可以完全去掉广告。原理和方法一差不多,阻止后面的广告代码的执行,效果和可能导致的后果也完全一样。
方法三:文件的开头加入
<div style= "margin-top:-94" >
在末尾加入
</div >
这种方法是让页面顶端的部分内容不显示出来,由于顶端是加的广告,所以可以起到隐藏广告的作用。隐藏内容的高度为:94,可以修改-94的大小适应广告的高度直到隐藏广告。使用这种方法是隐藏广告不是删除广告,广告仍然存在只是看不到了,所以空间应该不会被K。不足之处是,广告仍然被载入,所以广告对页面显示速度的影响没有消除。
我没有用过这种方法,不知道效果如何,但我分析想法是好的,用起来仍会非常不爽。因为不是一开始顶端显示的就是广告,广告是正常显示页面后,让正常页面下移腾出地方显示广告的。
那么针对Zblog,需要做哪些修改呢?我使用的是第一种方法,当然不是在每一个文件后面都做修改,我们要做的是在适当的地方做适当的修改。
Z-Blog 用户只需要修改TEMPLATE目录下的
Catalog.html/Default.html/Search.html/Single.html/Tags.html
5个模板文件,在这五个文件末尾加上<script>,再重建文件和索引就可以了。修改后前台页面的广告就都去掉了,后台管理页面的广告仍然存在,我想没必要去掉。如果一定要有人看到那些广告的话,那么博客主们是当仁不让的了,对吧?
星期二, 十一月 13, 2007
blogger 搬家注意事项 (ZZ)
請注意,Blogger 每天文章數量發表限制約是 50 篇,所以你一次只能搬 50 篇而已,可以分多天慢慢搬!
請注意,如果你第一次匯50篇成功,可是隔天或之後的文章一直之後一直匯失敗,可能是 Blogger
開啟圖片驗證把你的搬家機器人擋掉,一旦出現這種情形,請使用
https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger
解鎖,再繼續匯入。
星期一, 十一月 12, 2007
星期日, 十一月 11, 2007
星期六, 十一月 10, 2007
Google AdSense优化关键技巧
经过无数人(次)的证明,在投放GGAD时,应优先选择下列尺寸的广告格式:
大矩形 (336 X 280)
中等矩形 (300 X 250)
为什么?原因很简单,因为它能够带来最高的点击率。我自己的研究表明,这种尺寸的广告看上去非常像是网页正文的一部分。我对所有的adsense广告尺寸都做过试验,它的效果是最好的。
其他人也告诉过我相同的结论。我只要知道这一条就足够了!
我也推荐你采用"宽幅摩天大楼",当然,只要文字的,并且把它放在网页紧贴右侧边缘的位置。你是否想过这个问题,几乎所有的PC机使用者都是右手拿鼠标 (即使像我这样的左撇子也是用右手)。显示在右侧边缘的广告在"心理上"缩短你的右手和屏幕之间的距离。我认为,这种"亲密"的关系会使浏览者感觉更加舒 适,因而也更容易去点击链接。
特别提醒:远离468 X 60的广告!
Google AdSense优化关键技巧之二:广告颜色的设置
如果您在使用Gmail,看看Gmail的右侧广告就知道关于GGAD颜色的设置,一个原则:将你的ggad风格与网站风格融为一体。
以下面是ggad代码中相关颜色的设置为例进行说明:
google_color_border = "FFFFFF"; 边框颜色,设成与页面背景相同,就是不要边框
google_color_bg = "FFFFFF"; 背景色,设成与页面背景相同
google_color_link = "0379C0"; 大标题链接颜色,设成网站链接颜色
google_color_text = "000000"; 广告中的文字颜色,设成页面正文颜色
google_color_url = "008000"; 广告中的url地址颜色,与广告中的文字保持相同颜色
Google AdSense优化关键技巧之三:广告位置的选择
位置就是一切。如果不在第一位置让观众看见,就算是全世界最漂亮的广告也等于一张白纸。但是经过这么多次的Google Adsense投放之后,我想告诉你的是:最可见的位置并不总意味着最好的效果。实际上,很可能正因为它们"太显眼"了而被浏览者视而不见。
仔细看一看网页的设计和布局,确定大多数访问者都能看到的地方,把这些地方标记出来作为可能的广告位。
实际上,Google已经为我们提供了一张"热图",它能够帮助我们更有效率地做这个工作。
http://www.google.com/images/adsense/zh_CN/support/general_zh-CN.jpg
Google的"热图"显示了一个"普通"网页的热点区域。颜色较深的地方是浏览者最经常关注的区域。但是,记住,没有哪个网页是"普通"的,所以,确认你自己的热点区域。
Google承认网页上某些区域相对其它区域的广告效果更好。研究者也发现当访问者浏览一个网页时,他们的视线总是先从左上角开始,然后从左至右,逐行向下。
上面说的这些都没错。但是每一个网页的热点区域都是不同的,只有实践才能出真知。
Google AdSense优化关键技巧之四:如何吸引相关的广告
合适的颜色和位置可以帮助你提高点击率,但是它们决定不了哪些广告会出现在你的网站上。 理论上说,这是由Google控制的,用户无法选择。但我们可以通过一些技巧使广告的相关性增强,广告的相关性越强,浏览者点击广告的几率就越大。
最重要的技巧是在URL、title标题中包含你的关键词!
URL中的目录名和文件名是非常重要的。如果你在把网页文件上传到服务器之前,用本地机浏览这些网页,你会发现adsense是根据网页文件所在的目录的名称或文件来展示相关的广告。
如果你发现网站上出现的广告和网站内容毫不相干,那么首先应该纠正的是目录名和title,重新给它们起一个更相关的名字。
标题也很重要。不要给它们用<font>标签,尝试一下<h1>。标题最好能包含内容关键字,这有助于机器人的识别。
如果整个网页中一个标题都没有,试着加几个上去。
做到上面几步,您的Google Adsense优化已经达到非常不错的水平了,等着收Money吧:)
给所有Adsense使用者提了几项建议:
1)要分析访客的IP地址。通过访客的IP地址,来分析他来自于哪个国家和地区。因为很多时候,美国的一个访客点击一个广告,可能会给你带来5美金的广告收入。但是其他地方的访客有可能只有2毛钱的收入。
2)你必须建立一个能吸引回头客的网站。他的建议是:不要幻想能通过搜索引擎优化本身来致富。但是如果你建立的是一个免费的找工作的网站,你却可能一年赚 个3 千万。其他像俱乐部会员,免费交友等等,这类网站都有可能赚大钱。寻找一个已成熟的市场,给这个市场提供一个免费的服务,然后卖广告。
3)让你的用户和访客来生成网站内容。比如让他们写一些例如夜总会的,旅馆的或是高尔夫球场的评论。
4)不要进入一个太多人已经在用Adsense的市场。最好是能创造一个你自己的市场。
5)网站必须非常简单,必须速度快。一页最多两个广告,最多一到两张图片。不要让你的访客晕头转向,不知所措。
6)到其他论坛里去转转。如果人们没有在谈论你的目标市场,那么你有很大的机会在这个市场里赚钱。
adsense 突破
google adsense 的收入 终于 突破 $1了, 虽然这是个小数字.
不知道点CTR是不是太高了一点
Page impressions | Clicks | Page CTR | Page eCPM [?] | Earnings | |
AdSense for Content | 89 | 8 | 8.99% | $11.79 | $1.05 |
cnbook_ccword_buttom | 58 | 5 | 8.62% | $18.04 | $1.05 |
ccbook_ccworld_top | 13 | 0 | 0.00% | $0.00 | $0.00 |
view all AdSense for Content channels » | |||||
Browser Name | Number of requests | |
---|---|---|
1. | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) | 9,465 |
2. | Baiduspider+(+http://www.baidu.com/search/spider.htm) | 3,331 |
3. | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) | 1,927 |
baidu和google也一直在抓我的站,不过我的流量都来自baidu, 看来国人用baidu的比较多
http://cnbook.ccworld.info/
星期五, 十一月 09, 2007
在JavaScript中实现命名空间
注:好久没写了,今天把我在公司内网写的文章拷一份,出来露露脸,刚转Web开发,所以开始学JavaScript!
在引入命名空间之前,一个令开发人员头疼的问题就是如何防止函数名/类名和其他人的冲突,在一个公司内部项目组之间可以通过命名预定(比如加前缀等)解决这个问题,但是把视线放到整个软件开发领域,在当今协作开发相当盛行的时代,这个问题却依然存在。在使用多个第三方框架或类库的时候,你唯一能作的就是祈祷它们的命名不要冲突,如果真正发生这种灾难的话,你唯一能作的就是放弃其中一个(注:可能是我孤陋寡闻,呵呵)。命名空间的引入相当程度上解决了这个问题,当然,如果你使用的命名空间和其他公司不幸一样,而对方又是微软、SUN等大佬,那恭喜你,呵呵@_@!
从事Web开发不可避免要接触JavaScript,目前最新版本的JavaScript还是不支持命名空间,所以命名冲突的问题凸显无疑,想象一下你引用了两个js文件,却发现由于命名问题导致你不得不放弃其中一个,从而导致多写了许多代码,无疑是十分令人沮丧的。在JavaScript新版本引入命名空间概念之前,发扬自立更生精神和创造性是我们程序员的基本义务;-)
实现前提:与Delphi、C#等语言不同,JavaScript中的类并不是对象的定义,事实上JavaScript中并不存在真正的类,这里的类实际上是用函数模拟实现的,而JavaScript中的函数实际上是一个对象,因此在JavaScript中:一个类就是一个对象。这和传统概念概念极为不同,在JavaScript中,创建某个类的实例实际上就是将类(=对象,记住)复制了一份。看到这里,有点设计模式概念的应该就可以看出来了,在JavaScript中,类机制使用了 原型(prototype)模式。
实现原理:既然看清楚了类的本质,那么问题就简单了,如果将GEA项目组所有JS类和函数作为属性放在名为GEA的对象里面,然后将GEA对象以属性的方式放在名为Grandsoft对象里面不就可以达到我们的目的,比如Grandsoft.GEA.Person实际上是在Grandsoft对象的属性GEA(也是一个对象)中的类Person(还是一个对象)。
实现非常简单,整个命名空间机制的实现不超过20行代码,分析如下:
Namespace = new Object();
// 全局对象仅仅存在register函数,参数为名称空间全路径,如"Grandsoft.GEA"
Namespace.register = function(fullNS)
{
// 将命名空间切成N部分, 比如Grandsoft、GEA等
var nsArray = fullNS.split('.');
var sEval = "";
var sNS = "";
for (var i = 0; i < nsArray.length; i++ )
{
if (i != 0 ) sNS += "." ;
sNS += nsArray[i];
// 依次创建构造命名空间对象(假如不存在的话)的语句
// 比如先创建Grandsoft,然后创建Grandsoft.GEA,依次下去
sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
}
if (sEval != "") eval(sEval);
}
上面就是在JavaScript中模拟命名空间机制的完整实现,使用方式如下:
Namespace.register("Grandsoft.GEA ");
Namespace.register( "Grandsoft.GCM");
// 在Grandsoft.GEA命名空间里面声明类Person
Grandsoft.GEA.Person = function(name, age)
{
this.name = name;
this.age = age;
}
// 给类Person添加一个公共方法show()
Grandsoft.GEA.Person.prototype.show = function()
{
alert(this.name + " is " + this .age + " years old!" );
}
// 演示如何使用类Person
var p = new Grandsoft.GEA.Person("yanglf", 25);
p.show();
哈哈,简单吧,这么简单的代码我就不多说了,大家自己看着玩吧,其实我有点懒,呵呵@_@!!!