众所周知,ipod是不能打电话的。不过,我朝山寨还是十分V5的,比如说这家公司就开发出了一款产品。使得ipod可以打电话了。不过看他的界面显示情况,基本可以了解,它应该感谢乔大爷,如果不是ios4支持多任务模式,他的功能应该无法实现吧?
网址在这里,http://www.cnbeta.com/articles/118506.htm
内容我就不贴了。。。总之,很强悍。东西也不错叫苹果皮。额,乔大爷会生气吗?
膘叔的简单人生
众所周知,ipod是不能打电话的。不过,我朝山寨还是十分V5的,比如说这家公司就开发出了一款产品。使得ipod可以打电话了。不过看他的界面显示情况,基本可以了解,它应该感谢乔大爷,如果不是ios4支持多任务模式,他的功能应该无法实现吧?
网址在这里,http://www.cnbeta.com/articles/118506.htm
内容我就不贴了。。。总之,很强悍。东西也不错叫苹果皮。额,乔大爷会生气吗?
感谢同机柜内ARP攻击者的放手,使得我的网站可能、好象、大概正常了吧。
事实上我很郁闷,当我查出来中毒后,我告机了edong,结果他们给我的答复就是没有查到ARP攻击源,我很奇怪。
半年前,我的域名IP是另外一个,也是因为ARP攻击,导致网站经常打不开。开始以为硬件有问题,后来換到另一个内置网卡上,结果还是会断,网线也換了好几根,他们还说是我的机器有问题,让我重装系统,结果还是不正常。最后,然后怀疑是ARP。结果又是告知我没有ARP。于是申请換IP。
換了一个机柜后,一切正常,你说,是不是ARP呢?如今,这类事情又来了,你让我怎么办?今天我报上去,他又回复我:
您好,目前监控都没有arp
请检查是否是您本地网络的问题。
不过,值得欣慰的是。。。刚才我上去回复后,他们终于说:
您好,今天上午9点左右同机柜是有arp欺骗,我们马上就处理了
总算是完了一桩心事。
单独开个题目吧,觉得太小,所以以笔记的形式列出来,这样感觉会比较好一点
1、dedecms相关
dedecms用的人很多,但不限于,我用的还是很少的,所以看到一些东西就认为应该记录下来,比如这个{dede:loop}标签,就是查询后生成一个数组,然后循环。对于简单的数据读取还算是比较方便。当然也有缺点,没看到有缓存生成(我不知道是不是用了tag就自动缓存,不过我想应该不是,生成静态的话就忽略这点问题了吧。)只是现在还不知道如何将页码参数传进去。。。
2、创业
这里并不是说我的创业故事,当然我也有创业的想法,我这里是两个人对于创业的看法,一个是awflasher(http://www.awflasher.com/blog/archives/1829),他说:【借此,我想顺便说一点我的看法:为了让员工的风险降到最低全力工作,创业公司的薪水应该略高于大公司,那些号称是创业阶段要压低薪水或者拖欠薪水的公司, 如果没有股份可以不考虑了(证明管理团队的盈利能力太弱,这种公司风险太大);另外,我认为在中国,真的要慎用“股权”这个概念,这个概念不适用于大多数 人,在我这个行业内,我亲眼目睹了一个例子:有几家公司给出低薪+大量股份,而有一家公司给出高薪,结果后者很快就发展壮大了,而那几家把薪水压低出让股 份的公司几乎都死掉了。】还有一个就是DBA Notes(http://www.dbanotes.net/jobs/Jobs_info.html)上的【从大公司出来,投身创业团队。遇到的最大问题就是招聘问题。创业公司,薪水不可能像上市公司那样大方,公司福利也做不到国企那要啥有啥。好不容易瞄上个技 术差不多的,仔细沟通下来,人家还未必愿意一起来参与创业,更想着找个钱多人傻、事少家近的地方,不能破坏人家美好生活不是。其它包括地域问题的、家庭原 因的... 所以,招聘是个困难活儿,也是个持久战。创业团队,只能慢慢来,只找合适的,找对的。】
总之,创业是一个痛苦的事情。。以前在cnblog上看吉日嘎拉说自己的创业故事,说到创业时觉得要买这个买那个,等到买回来发现,大多数实际上可以不买,反而浪费了自己的精力和钱的时候。就觉得创业真的是需要考虑的事情。
3、php A-Z的循环问题
php的A-Z循环并不和其他程序一样。只是长度为26的循环,相反,PHP follows Perl’s convention when dealing with arithmetic operations on character variables and not C’s. For example, in Perl ‘Z’+1 turns into ‘AA’, while in C ‘Z’+1 turns into ‘[‘ ( ord(‘Z’) == 90, ord(‘[‘) == 91 ). Note that character variables can be incremented but not decremented and even so only plain ASCII characters (a-z and A-Z) are supported.这个信息来自http://www.laruence.com/2010/07/30/1682.html,以前真的一直不知道。或者说没有注意过。
最近,23c让我帮忙做一个网站的SEO,是一家北京的保洁公司,叫做北京馨月保洁,让我看看能否将网站排名往前推一点,理由是他在忙着他的亦庄信息网,没空。
操作步骤嘛,有点简单,主要是我先看了一下最初的排名。在百度400开外(不准备做google排名,理由嘛,大家都知道,国内的一些玩意,还是看百度排名重要)。
然后打开这个保洁公司的网站,发现最近更新的一篇新闻是在6月份,也看了一下百度快照,大约是在7月份。大致了解这个网站短时间内不会再更新快照了。
站点是用一些建站软件搭的,后来也非常简陋。主要是ASP的,自己也很久很久没有接触过了。因此只能做一些简单的调整,比如keyword,description,这些是需要改动的,把原来一些比较乱的keyword改成比较整齐的,description也稍做改动。
title就没有动它的,然后把首页里一些内容进行了扩充,修改了一些文章样式(原来的文章样式在截取摘要的时候,只显示一点点,而且很杂乱,修改后,让他在首屏显示的时候,内容比较完整)
对于图片做alt说明(这些原先都没有),图片标题也进行了修改,强行把“北京保洁公司”这几个关键字往上贴。比如原来的图片就叫:成功案例,现在我就改成了【北京保洁公司成功案例(一)】之类的。即使是这样,首页的关键字其实也不算太多。
由于首页内容不更新,网站内容也做不到持续更新,对于百度来说,极有可能就认为是一个死站,抓取的机率就会小很多,所以,对它的新闻内容,我还是进行了小小的更新。同时也对23c说了,你以后多少也加点文章呀。
但过了不少时间 。文章数仍然没有变化,心都碎了。对于死站,百度会去抓取吗?疑问....不过。怎么说这段时间排名还是上了一点点。虽然几乎没有什么改动,也没有主动去做外链。这种情况我已经有满足了,细细想一下,北京保洁公司,这个关键字对应的网站,有多少是活的呢?这和企业建站有啥区别?建完了就扔在那里,恐怕几年也不会想到动一下吧。只是做着按年付钱这样的活而已喽。
总体来说,还算是比较失败的一次SEO调整经历。
突然间在google reader里看到为之漫笔的订阅变成hello world,很是惊讶,后来才知道,是他的站点所在服务器硬盘坏了。这,确实是一件很痛苦的事情。不过所幸,他还是恢复了数据,然后他又选择了出国。额,好象越来越多的人选择了出国。
他在恢复数据后,对原来的文章进行了整理,把近年来一些优秀的文章提炼了出来,不过,目前还不是特别多:http://www.cn-cuckoo.com/the-good-parts-of-my-blogs-from-2007-to-2010,但已经有几篇了。
他是这么说的:【除了修补过往旧文,我还计划挑选整理一个《精华文章汇总》的页面,把那些价值相对较大的文章从“垃圾”堆里挑出来,摆在明面上。这样就不会过多地浪费读者 诸君的宝贵时间了。现在,这个页面的链接已经有了,今后还将不断充实:2007-2010年精华文 章汇总。】
所以,又可以期待了。
其实,挺佩服李老师的,他认为:【然而,眼瞅着后台那些十根手指头都数不过来的Ping链接,我清醒地意识到还有不少站点在引用和转载我以前的文章。如果这些引用都变成了空链接,不仅我面 子上不好看,也会给不知道有多少读者学习深造带来极大不便。毕竟,在这个网络时代,作为其中的一个结点,我和这个站点都已经不再孤立存在了,而是与千千万 万的其他结点建立并保持了千丝万缕的联系。如果数据真的丢了,可让我怎么面对那些素未谋面,而将来又有可能谋面但因此又可能永远也不会再谋面的花朵一样灿 烂的脸孔呢?想到这里,我原来如释重负的感觉一下子无影无踪了,一种因失职而难逃其咎的负罪感油然而生。】
我一直不敢換我的博客,其实也有类似的考虑。唉。。。当然我的外链可没有李老师那么多。
我想,我遇到的问题应该不是个案,即,博客的评论被大量的垃圾评论所占据。里面充斥着N多链接之类的,或者上来就是一句:博主,我看好你哦,又或者,我也在学习这个。然后就是一个主页链接。
事实上,自从08年8月1日以来,我的博客的评论就处于审核再发布的状态,因此所有的评论都不会直接发布出来,而是先审核再发布。对于这种垃圾评论,我一向是直接删除的。也请垃圾评论发布者们不要浪费大家的时间 。既浪费你也浪费我,何必呢?
记得前一阵,mysql中文网(mysql.cn)也宣布评论开始审核了在本站发广告评论的看过来。冯大辉等也早就开启审核。和他们这些大流量网站相比,我的站点的流量可以忽略不计了,但,我觉得这种事情不是一个个案,而是大家都遇到的(可惜不能把这些IP进行鉴定处理,否则可能对不起同一IP段的朋友),再加上即使我人工审核,每天还是有不少垃圾评论出现,因此设为置顶贴,请这些朋友手下留情。
可惜。。。
对于一些几乎没有变型的图片来说,下面这个方法或者会减轻你的工作量。
事实上,我也是从http://fr.cc0311.com/php-telephone-number-ocr.html看的代码,再想想,walkerlee在05年就写过了关于bmp图片的识别。不过BMP可能会相对简单一点吧?
看了这个法月博客的代码。脑子一热,花了半小时,重写了一遍。。。没有优化。因为大部分方法还是参考的他的,只是对法月的这篇文章中的代码,我做了简单的改动。版权,还是算他的吧。。。去年的时候,也写过类似的。。只是因为图片变形,最终识别率超低,因此对于这种不变形的,还是写下代码做个笔记吧。
<?php
$imgfile = 'http://bj.ganji.com/tel/5463013757650d6c5e31093e563c51315b6c5c6c5237.png';
interface imagedatas {
public function setimagedata();
public function getimagedata();
}
class GanjiImage implements imagedatas{
public $imagedata;
public function __construct(){
$this->setimagedata();
}
public function setimagedata(){
$this->imagedata = array(
0=>'000011111000001111111110011000000011110000000001110000000001110000000001110000000001011000000011011100000111000111111100000001110000',
1=>'011000000000011000000000111111111111111111111111',
2=>'001000000011011000000111110000001101110000011001110000011001110000110001111001100001011111100001000110000001',
3=>'001000000010011000000011110000000001110000000001110000110001110000110001011001110011011111011111000110001100',
4=>'000000001100000000111100000001111100000011101100000111001100001100001100011000001100111111111111111111111111000000001100000000000100',
5=>'111111000001111111000001110001000001110001000001110001100001110001100001110000110011110000111111000000001100',
6=>'000011111000001111111110011000110011110001100001110001100001110001100001110001100001010001110011010000111111000000001100',
7=>'110000000000110000000111110000111111110001110000110111000000111100000000111000000000111000000000',
8=>'000100011110011111111111110011100001110001100001110001100001110001100001110011100001011111111111000100011110',
9=>'001111000000011111100001110000110001110000110001110000110001110000110001011000100001011111100111000111111110000001110000',
);
}
public function getimagedata(){
return $this->imagedata;
}
}
class imageValidation
{
protected $imgfile;
protected $imgsize;
protected $imgdata; //数组
protected $hordata; //横向
protected $verdata; //纵向
protected $imgfunc;
function __construct( $imgfile , $imgsource = ''){
$this->imgfile = $imgfile;
$this->imgsize = getimagesize($imgfile);
$this->imgfunc = $this->getImageFunc();
if($this->imgfunc == 'imagecreatefromstring'){
$this->imgfile = file_get_contents($this->imgfile);
}
$this->imgsource = new $imgsource();
}
function getImageData(){
$func = $this->imgfunc;
$resource = $func( $this->imgfile );
for( $i=0 ; $i < $this->imgsize[1] ; $i++){
for( $j=0 ; $j<$this->imgsize[0] ; $j++){
$rgbcolor = imagecolorat( $resource , $j , $i);
$rgbarray = imagecolorsforindex( $resource , $rgbcolor );
if($rgbarray['red'] < 125 || $rgbarray['green']<125 || $rgbarray['blue'] < 125){
$data[$i][$j]=1;
}else{
$data[$i][$j]=0;
}
}
}
$this->imgdata = $data;
}
function getHorData(){
$z = 0;
for($i=0; $i<$this->imgsize[1]; $i++){
if(in_array('1',$this->imgdata[$i])){
for($j=0; $j<$this->imgsize[0]; $j++){
if($this->imgdata[$i][$j] == '1'){
$newdata[$z][$j] = 1;
}else{
$newdata[$z][$j] = 0;
}
}
$z++;
}
}
$this->hordata = $newdata;
return $newdata;
}
function getVerData(){
//$data = array_reverse($this->hordata); //这是180度翻转,不是90度
for( $i=0; $i< count($this->hordata[0]) ; ++$i){
for( $j=0;$j<count($this->hordata);$j++){
$newdata[$i][$j] = $this->hordata[$j][$i];
}
}
$i = 0;
foreach($newdata as $k=> $v){
if( in_array(1 , $v ) || (isset($newdata[$k+1]) && in_array(1,$newdata[$k+1]) )){
$newdatas[$i] = $v;
$i++;
}
}
$this->verdata = $newdatas;
return $newdatas;
}
function get(){
$i = 0;
foreach( $this->verdata as $val){
if(in_array(1,$val)){
$datas[$i] .= join("",$val);
}else{
$i++;
}
}
foreach( $datas as $k => $val ){
$number[$k] = $this->check($val);
}
return $number;
}
function check($str){
$imgsourcesdata = $this->imgsource->getimagedata();
foreach( $imgsourcesdata as $k => $val){
similar_text($str,$val,$percent);
$ret[$k]=$percent;
}
return array_search(max($ret),$ret);
}
function draw( $data ){
$str = '';
if(is_array($data)){
foreach ($data as $key => $val){
foreach ($val as $k => $v){
if($v == 0){
$str .= "<font color='#FFFFFF'>".$v."</font>";
}else{
$str .= $v;
}
}
$str.= "<br/>";
}
}
echo $str;
}
function getImageFunc(){
switch($this->imgsize[2]){
case IMAGETYPE_PNG :
$this->imgfunc = 'imagecreatefrompng';
break;
case IMAGETYPE_JPEG :
case IMAGETYPE_JPG :
$this->imgfunc = 'imagecreatefromjpeg';
break;
case IMAGETYPE_GIF :
$this->imgfunc = 'imagecreatefromgif';
break;
default:
$this->imgfunc = 'imagecreatefromstring';
break;
}
return $this->imgfunc;
}
}
$img = new imageValidation($imgfile,'GanjiImage');
$img->getImageData();
$img->getHorData();
$img->getVerData();
$phone = $img->get();
dump($phone);
function dump($data){
print("<pre>");
print_r($data);
print("</pre>");
}
对于该图片,识别率很高。
没有什么特别的东西。主要就是有了一个延迟,但效果不是特别好。。将就点了。
$.fn.gTab = function( opts ){
var options = {
'timer':0, //0.005秒
'hover':'',
'target':'',
'autoswitch':false,
'addClass':'',
'removeClass':''
};
var self = $(this);
opts = $.extend(true, {},options,opts || {});
if(!opts.target){
alert('对不起,请设置目标对象');
return ;
}
if(!opts.hover){
opts.hover = self;
}
var hoverIntervalFunc = function(index){
return setInterval(function(){
$(opts.target+':not(eq('+index+'))').hide();
$(opts.hover+':not(eq('+index+'))').removeClass(opts.addClass).addClass(opts.removeClass);
$(opts.target+':eq('+index+')').show();
$(opts.hover+':eq('+index+')').removeClass(opts.removeClass).addClass(opts.addClass);
},opts.timer);
}
$(this).hover(
function(){
var index = self.index(this);
cId = hoverIntervalFunc(index);
},
function(){
clearInterval(cId);
}
)
}
花了半小时写的。所以效果一些都没有特别的考虑。只考虑实现就完事了。。。象很多都是用的:eq和:not(:eq),事实上siblings()已经实现这个功能,但当时写的时候没翻到这个函数,就直接用:not(:eq)来解决了。
看zendstudio.net的博客才发现,zendstudio居然升级到8了。。感觉自从这个zendstudio在換了eclipse核心之后,版本号突突突的上升啊。6.0,6.1,7.0,7.1突然就到8.0了。。真是不可思议。
记得以前的版本,从5.0~5.5,花了多久,现在呢?半年一个版本?
唉,看zendstudio.net上的翻译吧,我也懒得翻译了。。。
--------------------------------------------
8.0新版具有以下几个亮点:
1、Zend Studio编辑器支持javascript以及常见js库,例如jquery,dojo,Extjs,prototype
2、更好的支持javascript,html,css等的编辑和调试(gently认为是否不用再做和 Aptana的整合工作了?)
3、集成的新的ajax调试器,将javascript和php的调试工作趋于统一
4、PHP编辑器的编辑功能和导航功能的改进和增强。
网址:http://www.zendstudio.net/archives/zend-studio-8-beta-is-now-available/