Skip to main content

Posts

Showing posts from September, 2012

Web development tools

you have deep knowledge in the entire LAMP stack and also: ·       RHEL 5.x or CentOS ·       LDAP ·       Web servers like nGnx, Apache, etc. ·       Tomcat application server, ·       Network security (eg. Firewalls, IDS, etc.) ·       Logical security (eg. PAM, VP, trusted/bastion, ssh, Kerberos, etc.), ·       Software Load Balancers like Zeus ·       Infrastructure monitoring solutions like Zabbix, WebMetrics, Nagios, Cricket, MRTG, etc. ·       Clustering/HA: Memcached, Repcached, Hibernate and Terracotta ·       Automation ·       Bare metal provisioning (eg. Kickstart) ·       Configuration management (eg. Puppet)

Google Adsense 博客能赚钱吗 (转)

个人网站加入Google AdSense赚钱的多少,主要取决于网站访问量、网站内容所在领域(不同领域的广告价格有所差异)、网页设计和AdSense广告代码优化等因素(直接 影响广告点击率),一般说来网站访问量越高,广告展示字数多,在点击率相对稳定的前提下,获得的广告佣金也就越多。 在google AdSense提供的常见问题解答中有这样一个问题:我可以通过此计划获得多少收入(原文附后)?不过,google并没有直接告诉内容发布商将可以从广 告主支付的每次点击费用中获得多大比例的佣金。事实上google AdSense提供给加盟会员(即google所说的内容发布商)的佣金比例也可能并不是固定的。“尽管我们不会详细公布收入分配情况,但我们的目标是保 证发布商获得的收入不会少于他们加入其他广告网所能获得的收入。”这是google对于佣金的惟一解释,从中很难获得google AdSense佣金政策的具体信息。事实上,通过对多家网站联盟佣金的分析发现,google AdSense提供的佣金是比较高的,这就意味着,同样访问量的网站加入google AdSense比其他的网络联盟赚钱要多一些。 另外,由于google有较高的知名度和可信度,你的个人网站加入google AdSense显示google提供的网页内容相关的网络广告,相对于其他网站联盟提供的广告来说,有更高的可信度,对充实网站的相关内容也有一定的价 值。也正因为如此,加入google AdSense获得的综合价值是最高的。 总之,google AdSense制定的会员佣金政策应该比一般电子商务网站提供的固定佣金比例的模式复杂得多,要想准确了解google AdSense的佣金支付方案可能是徒劳的,并且既然google声明不会详细公布这一分配方案,那么我个人认为也没有必要对此做过多的猜测,加盟会员只 要大致了解一下每次点击的平均佣金状况也就差不多了。 根据作者对部分网站佣金情况了解的一些信息,发现一些统计信息,对于推测个人网站赚钱多少可能有一定参考价值:平均每次点击的佣金大概在 0.02-0.25美元左右,或者说每千次广告展示eCPM大约0.5-1.5美元左右。如果从广告点击率来看,由于各网站广告点击率差异较大,从 0.4%-10%之间都属于正常,1%-3%都是比较常见的点击率。这样推算,

Java GzipInputStream GZIP can not read the whole file

GzipInputStream can only read a small portion of gzip file. This is a bug for Java http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4691425 Reason: the gz/zip file is concatenated before. (e.g. you continuously append the gz/zip file) Solutions: Use following class "MultiMemberGZIPInputStream" to replace "GzipInputStream"  import java.io.InputStream; import java.io.PushbackInputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; /** * replace GZIPInputStream to read concatenated gz file FileInputStream fis = new FileInputStream(zipFileName); BufferedReader reader = new BufferedReader(new InputStreamReader( new MultiMemberGZIPInputStream(fis))); */ public class MultiMemberGZIPInputStream extends GZIPInputStream { private MultiMemberGZIPInputStream parent; private MultiMemberGZIPInputStream child; private int size; private boolean eos; public MultiMemberGZIPInputStream(InputStream in, int si