作者存档
20107 月7

实现鼠标拖动div交换位置

<html>
<head>
<title>月影</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style>
body {margin:0px;padding:0px;font-size:12px;text-align:center;}
body > div {text-align:center; margin-right:auto; margin-left:auto;}
.content{width:900px;}
.content .left{
        float:left;
        width:20%;
        border:1px solid #FF0000;
        margin:3px;
}
.content .center{float:left;border:1px solid #FF0000;margin:3px;width:57%}
.content .right{float:right;width:20%;border:1px solid #FF0000;margin:3px}
.mo{height:auto;border:1px solid #CCC;margin:3px;background:#FFF}
.mo h1{background:#ECF9FF;height:18px;padding:3px;cursor:move}
.mo .nr{height:80px;border:1px solid #F3F3F3;margin:2px}
h1{margin:0px;padding:0px;text-align:left;font-size:12px}
</style>
<script>
var dragobj={}
window.onerror=function(){return false}
function on_ini(){
        String.prototype.inc=function(s){return this.indexOf(s)>-1?true:false}
        var agent=navigator.userAgent
        window.isOpr=agent.inc("Opera")
        window.isIE=agent.inc("IE")&&!isOpr
        window.isMoz=agent.inc("Mozilla")&&!isOpr&&!isIE
        if(isMoz){
                Event.prototype.__defineGetter__("x",function(){return this.clientX+2})
                Event.prototype.__defineGetter__("y",function(){return this.clientY+2})
        }
        basic_ini()
}
function basic_ini(){
        window.$=function(obj){return typeof(obj)=="string"?document.getElementById(obj):obj}
        window.oDel=function(obj){if($(obj)!=null){$(obj).parentNode.removeChild($(obj))}}
}
window.onload=function(){
        on_ini()
        var o=document.getElementsByTagName("h1")
        for(var i=0;i<o.length;i++){
                o[i].onmousedown=function(e){
                        if(dragobj.o!=null)
                                return false
                        e=e||event
                        dragobj.o=this.parentNode
                        dragobj.xy=getxy(dragobj.o)
                        dragobj.xx=new Array((e.x-dragobj.xy[1]),(e.y-dragobj.xy[0]))
                        dragobj.o.style.width=dragobj.xy[2]+"px"
                        dragobj.o.style.height=dragobj.xy[3]+"px"
                        dragobj.o.style.left=(e.x-dragobj.xx[0])+"px"
                        dragobj.o.style.top=(e.y-dragobj.xx[1])+"px"
                        dragobj.o.style.position="absolute"
                        var om=document.createElement("div")
                        dragobj.otemp=om
                        om.style.width=dragobj.xy[2]+"px"
                        om.style.height=dragobj.xy[3]+"px"
                        dragobj.o.parentNode.insertBefore(om,dragobj.o)
                        return false
                }
        }
}
document.onselectstart=function(){return false}
window.onfocus=function(){document.onmouseup()}
window.onblur=function(){document.onmouseup()}
document.onmouseup=function(){
        if(dragobj.o!=null){
                dragobj.o.style.width="auto"
                dragobj.o.style.height="auto"
                dragobj.otemp.parentNode.insertBefore(dragobj.o,dragobj.otemp)
                dragobj.o.style.position=""
                oDel(dragobj.otemp)
                dragobj={}
        }
}
document.onmousemove=function(e){
        e=e||event
        if(dragobj.o!=null){
                dragobj.o.style.left=(e.x-dragobj.xx[0])+"px"
                dragobj.o.style.top=(e.y-dragobj.xx[1])+"px"
                createtmpl(e)
        }
}
function getxy(e){
        var a=new Array()
        var t=e.offsetTop;
        var l=e.offsetLeft;
        var w=e.offsetWidth;
        var h=e.offsetHeight;
        while(e=e.offsetParent){
                t+=e.offsetTop;
                l+=e.offsetLeft;
        }
        a[0]=t;a[1]=l;a[2]=w;a[3]=h
  return a;
}
function inner(o,e){
        var a=getxy(o)
        if(e.x>a[1]&&e.x<(a[1]+a[2])&&e.y>a[0]&&e.y<(a[0]+a[3])){
                if(e.y<(a[0]+a[3]/2))
                        return 1;
                else
                        return 2;
        }else
                return 0;
}
function createtmpl(e){
        for(var i=0;i<12;i++){
                if($("m"+i)==dragobj.o)
                        continue
                var b=inner($("m"+i),e)
                if(b==0)
                        continue
                dragobj.otemp.style.width=$("m"+i).offsetWidth
                if(b==1){
                        $("m"+i).parentNode.insertBefore(dragobj.otemp,$("m"+i))
                }else{
                        if($("m"+i).nextSibling==null){
                                $("m"+i).parentNode.appendChild(dragobj.otemp)
                        }else{
                                $("m"+i).parentNode.insertBefore(dragobj.otemp,$("m"+i).nextSibling)
                        }
                }
                return
        }
        for(var j=0;j<3;j++){
                if($("dom"+j).innerHTML.inc("div")||$("dom"+j).innerHTML.inc("DIV"))
                        continue
                var op=getxy($("dom"+j))
                if(e.x>(op[1]+10)&&e.x<(op[1]+op[2]-10)){
                        $("dom"+j).appendChild(dragobj.otemp)
                        dragobj.otemp.style.width=(op[2]-10)+"px"
                }
        }
}
</script>
</head>
<body>
<div>
        <div id=dom0>
                <div id=m0>
                        <h1>dom0</h1>
                        <div></div>
                </div>
                <div id=m1>
                        <h1>dom1</h1><div></div>
                </div>
                <div id=m2><h1>dom2</h1><div></div></div>
                <div id=m3><h1>dom3</h1><div></div></div>
        </div>
        <div id=dom1>
                <div id=m4><h1>dom4</h1><div></div></div>
                <div id=m5><h1>dom5</h1><div></div></div>
                <div id=m6><h1>dom6</h1><div></div></div>
                <div id=m7><h1>dom7</h1><div></div></div>
        </div>
        <div id=dom2>
                <div id=m8><h1>dom8</h1><div></div></div>
                <div id=m9><h1>dom9</h1><div></div></div>
                <div id=m10><h1>dom10</h1><div></div></div>
                <div id=m11><h1>dom11</h1><div></div></div>
        </div>
</div>
</body>
</html>
20107 月6

相亲

  相亲,跟一mm在茶馆里相对而坐。

  在了解过双方的工作、教育、家庭、爱好后,交谈陷入困境,于是开始扯些社会话题。

  偶:你是如何看待房市的?                

  mm愣了下,然后低头沉默了一会儿,脸一红:还是…还是不要过于频繁比较好……

20107 月6

Android 3.0战略:Google欲强制性超越苹果?

随着苹果iPad和iPhone4上市后的火爆热销,似乎已经没有什么力量可以阻挡苹果前进的脚步。虽然业内一直期待可以与其一决高下的Google的Android能够有所作为,事实也证明Android是除了苹果的iPhone外,在智能手机市场份额和增长速度表现最佳的,但最新的统计显示,苹果的iPhone,加上iPad的助力,苹果在移动平台的大战中仍然以较大的优势领先于Android。而更让Google着急的是,由于平台上的优势,苹果于 7月1日正式推出的移动广告平台iAds,据称已经获得了有兴趣参与的企业价值6000万美元的订单。面对收获颇丰的苹果,Google何以应对?

苹果的iPhone和Google的Android一直被业内认为是在移动互联网领域(智能手机平台及市场)最直接的竞争对手。但事实却是,Google的Android无论是在应用程序数量还是在基于Android平台的硬件(智能手机)的出货量上都要落后于苹果的iPhone,而且苹果自身仰仗着庞大的用户基数仍在增长。所以对于Google来说,要想缩短差距,甚至在未来像业内预计的超越苹果的话,唯有让自己跑得更快些,尽管目前Google Android的增速已经不慢。但要是让自己的增速更快,Google的突破口在哪里?也就是说Google通过什么方式来获得更快的加速度?

从智能手机市场的竞争看,无非是硬件、操作系统和应用程序综合实力的比拼。以此来衡量Google和苹果,Google要想在应用程序上赶超苹果,难度很大,虽然目前基于Google Android的应用已经达到了8万左右,但与苹果App Store的22.5万的应用相比,确是小巫见大巫。那剩下的只有硬件和操作系统。而Google却只有Android操作系统,毫无疑问,Google惟有通过操作系统影响硬件的性能表现来获得更快的增长加速度。而所幸的是,苹果新的iPhone4及iOS4的搭配似乎给了Google突破的机会。据称,由于苹果iOS4首次支持多任务处理(这也是iOS4最大的卖点之一),而导致iPhone4性能的下降,例如有用户称,安装iOS4之后,iPhone 运行变得不可思议的慢。还有用户说iOS4存在备份慢的问题。而这主要和苹果iPhone4采用自家A4处理器在性能和功耗间的取舍和平衡有关。

也许Google自己已经意识到了苹果在超速发展中的软肋,在日前曝光的Google下一代Android 3.0 Gingerbread系统中,一向以开放自诩的Google首次对采用该系统的终端(例如智能手机)的硬件配置提出了强制性的要求。而这些强制性要求的提出预示着Google的Android战略开始真正清晰起来。

据相关报道,Android3.0系统将最低运行配置提高到1GHz CPU,512MB RAM,同时很好的支持4英寸及以上级别的显示屏,所支持分辨率达到1280×760。同时,Android 3.0系统将会完全更改用户界面,即Android 3.0系统将会弃用第三方用户界面,如之前HTC的HTC Sense,摩托罗拉的MotoBlur等。这意味着不管是哪家合作伙伴,只要采用Android 3.0系统的智能手机都将具有统一的操作界面。

如果用这些Google强制性的指标看,当前多数的基于Android 2.1和2.2系统的智能手机都只是入门级的产品,而Android3.0系统的智能手机无疑定位在高端,加上统一的界面,人们很自然地就会想到它的对手苹果的iPhone。只是这种配置的智能手机的性能要远高于苹果的iPhone(包括最新的iPhone4)。说到这里,笔者顺便提及的是近日苹果iPhone4遭遇的信号接收的问题,为此,苹果还遭受了对手的冷嘲热讽。至于原因,有的认为是硬件本身的设计缺陷所致,但苹果称该问题可通过iOS4的升级予以解决。如果真是这样的话,至少可以证明操作系统与硬件性能本身之间密切的联系,也让Google从中感悟到也许之前没有界定的随意在任何配置的智能手机上搭载自己的Android系统,远未发挥出其系统真正的优势。

其实在Google的Android3.0的信息未被披露前,其战略合作伙伴摩托罗拉就已经对外宣称要在今年的下半年发布采用2GHz处理器的Android系统的智能手机,而Google的另一个合作伙伴HTC据称也正在为Sprint开发一款配备2GHz处理器开发代号为Sabor的采用Android3.0系统的智能手机。Google、摩托罗拉、HTC三者间是不谋而合?还是早在计划之中?不管怎样,当Google的Android3.0发布的时候,基于该系统的智能手机的性能将会是打击苹果iPhone的利器。

当然,除了像摩托罗拉和HTC这些终端战略合作伙伴的支持外,Google之所以采用这种从芯片层面就采取强制性的要求和芯片厂商的大力支持也是密不可分的。由于苹果的iPhone和iPad都采用自家的芯片,这让智能手机芯片厂商的老大ARM自然站到了Google的Android阵营。ARM近日宣布,今后新投资战略重点将放在Android手机芯片生产上。与此同时,全球芯片厂商的老大英特尔也破天荒地宣布其针对智能手机市场的芯片率先支持Google的Android系统。有了这两家芯片厂商的支持,Google自然是底气十足,这种底气的体现是,尽管Android3.0要求的配置很高,但在功耗和待机时间上又不会输于苹果。

另外就是Android3.0的统一界面让使用不同合作伙伴的终端的用户能够得到近乎一致的使用体验,这一点和苹果的iPhone达到了相似,又避免了之前不同厂商的智能手机,不同的界面所导致的用户使用的差异。还有就是Android3.0系统强制性的高要求,让Google正式把Android分割为两部分。Android 3.0系统或以上版本将会支持高端产品(直接与苹果iPhone竞争),Android 2.1和2.2将面向低端、廉价手机市场(从诺基亚和微软那里夺取可能会流失到苹果iPhone的市场份额)。这不但清晰了Android的市场定位,又能让硬件和系统的配合发挥出最大的效力。

综上所述,笔者认为,未来Google Android3.0系统的登场是Google在苹果iPhone压力下采取的强制性超越的战略,这个战略的核心就是通过操作系统对于智能手机硬件本身高配的要求,以性能突击苹果iPhone封闭产业链中最为薄弱的一环,至于能否达到预期的效果,即进一步加快扩大Google Android市场份额的速度或遏制苹果iPhone的扩张,还要看Google执行的力度及苹果的反应。

来源

20107 月5

今天才知道原来新闻联播是填空题【转发】

       1.今天是____年__月__日,农历_______,距离______还有_____天。今天节目的主要内容有:_____、_____、______。下面请听详细内容。

      2.____在XXX亲切会见了____,双方进行了亲切友好的会谈。____高度赞赏了____,并对____一贯坚持“一个ZG”的原则表示感谢。

      3.____出访____,会见了____,_______高度赞扬中__两国关系,对____表示欢迎,并强烈谴责了___国家____的做法。

      4.______会议在北京隆重召开。_____致开幕词。____以____票支持、0票反对、1票弃权通过一项____决议。

      5.WJ部发言人____就____发表声明,对____表示遗憾,提出抗//议,并将继续关注。

      6.______就____向______致慰问电,对_____表达诚挚哀悼

      7.“__五”期间,我国____重点工程,突破____课题,创造效益____,实现利税____。

      8.______在____的陪同下,不远万里,来到_____家中,为_____带来了节日的祝福和良好的祝愿,并饶有兴致的观看了_____。____握着___的手激动的说_______。

      9.____省____市____县____村加强学习“____”的重要精神,切实为农民办好事,办实事。情为民所系,利为民所谋。一年内共解决_____农民的实际问题,受到农民的好评。

      10.____海关加大打击XXX力度,破获一起特大XXX案件,查获____共____件,价值人民币____万元。

      11.今天是____日,各地群众、学生纷纷走上街头,宣传普及____知识,加强____教育。

      12.____事丶件的原因已经查明,有关责任人已被刑事拘留。

      13.今天是____诞辰____周年,____举行座谈会,深入探讨____,缅怀这位____家。

      14.本台短评:中国________受到各国称赞,________行为不得民心

      15._____国发生_______级地震,目前已造成______人伤亡。我国已派出______人救援队前往救援

      16._____国发生_______特大飓风,_____人受灾,直接经济损失达_________美元。

      17.____,____,请看今晚19点38分播出的《焦点访谈》节目。

中国__的优秀_员,久经考验的忠诚的__战士,无产阶级__家、__家、__家,我国杰出的___,原___,___,___,______**,于___年__月__日__时__分在北京逝世,享年__岁。

20107 月4

关于2010世界杯

马某人:我要成为第一个当教练拿世界杯的球王!卡佩罗:我要成为第二个带英格兰拿冠军的教练! 邓加:我要成为第三个队长教练都拿世界杯的人! 贝利:楼上都会成功。

20107 月3

魅族M9 样板机开始评测了…(真机谍照?)

20107 月3

功夫梦.M8.mp4

剧情简介

12岁的德瑞•帕克(贾登•史密斯饰)本可以成为底特律最受欢迎的男孩,但他的妈妈(塔拉吉 P. 亨森饰)因为工作原因把他带到了中国。最初德鲁很难与周围的人打成一片,直到他遇到了他的同班同学美莹,但是文化差异让这段友情看起来并没有想象中顺利。更糟糕的是,德鲁跟班上的小霸王,程,结下了梁子。德鲁只会一点点空手道,程轻轻松松地就把“空手道小子”给放倒在地。在他乡倍感寂寞的德鲁没有朋友可以倾诉,除了维修工韩先生(成龙饰),一个隐姓埋名的功夫大师。韩先生开始训练德鲁,二人建立起了深厚的友谊,并且携手准备与程在比武场上一决胜负。经过韩先生的教导,德鲁明白功夫比得不是进攻与防守,而是成熟与冷静。德鲁更意识到,惩凶除恶将成为他的使命。

迅雷下载地址:thunder://QUFodHRwOi8vczMubWVpenU4LmNvbTo4Mi8yMDEwLzA3L1RoZSBLYXJhdGUgS2lkLm1wNFpa

来源

20107 月3

魅族M8:65种隐藏功能

1.在状态栏时间的位置按住往下拉可以打开任务管理器

2.按住”M”主键也可以打开任务管理器

3.双击电源开关可以拒绝接听电话

4.顶栏信号栏(左上角)往下拉可以切换程序

5.双击”M”主键可以打开音乐界面

6.来电模式下,按音量大小都可以静音 (还可以通过按一下电源键来实现来电静音)

7.编辑短信文本时,长按会有放大效果

8.关闭任务管理只要按M键或点下边三个点的位置往上拉或点击顶栏

9.复制和粘贴功能可以在任意集成的软件中使用

10.照相的时候可以调整大小/白平衡,在音量键+-

————————防疲劳线——————————-

11.音乐键可以拍摄.(非se版)

12.在拔号状态下,直接按”正下角的电话标志”,也是拔号键可以提出前一次的拔号.

13.同时按住M键+音量键就可以快速切换无声或有声模式

14.电话记录或短信列表中选择后往右接可以删除(此功能很多地方通用)

15.当免提接电话时,如果要显示状态可以用手在听筒位置闪过一下.

16.计算器当横屏时会自动改为科学计算器

17.电话状态下输入电话号码之后按0不放直到变成+,再按拨号键可以显示归属地

18.如果短信显示发送失败,只要点一下那个红色的时间,就可以直接继续发了,不用重新再打一遍信息

19.双击桌面的时间和天气插件,都可以直接进入时间和天气

20.任务管理器只要点标题栏中间就会收起来了

———————-防疲劳线————————–

21.打字的时候,如果点右上角可以关闭输入法

22.天气插件,有多个城市时,只要点一下插件图标,会自动显示另一个城市的天气

23.在M8自带文件夹下,选择文件夹重命名,会有加密功能

24.后台通话,顶栏变绿;录音后台,顶栏变橙

25.在电话详情状态下,点住电话号码不放可以复制操作.

26.死机的时候 长按10秒 关机键 会重启….

27.蓝牙,可以浏览对方文件!

28.通话记录列表里,查看联系人信息。点击号码前的电话图标,(未接,拒接,已接等)直接回拨电话至该联系人!

29.通话完毕后如顶栏显示白色表明没有挂断电话,按顶栏会显示挂电话界面,此时可以挂断了。

30.电源建+M!可以截图

————————防疲劳线————————-

31.自带web浏览器可以浏览本地硬盘文件,详细显示名称、类型、大小、创建时间,能够打开超大图!

32.设置了IP拨号,要按号码前那个IP图标才是IP拨号,如果直接按号码是普通拨号 。

33.锁屏状态下 音乐插件也可以滑动显示封面、歌词、频谱分析

34.在拼音输入法时如果要输入英文,直接输入然后回车

35.插着耳机时,按小白点通话键打开音乐播放。

36.通话记录中长按回拨的电话图标是ip拨号

37.照相模式下按住照相键或者音乐键可手动对焦

38.用耳机听歌时双击耳机上的接听挂断键可以切换到下一曲

39.在输入方式下长按CH 可切换输入法

40.调节音量大小时按圆点旁的进度条可以进行+1-1的小量调节

——————–防疲劳线——————————

41.输入有英文字母与数字的组合,只要输入数字键完成.如yumiao1,当输入字母后,不选择,直接再输入1,前面的yumiao会自动输入

42.音乐界面,直接打开,选中文件夹即可创建同名播放列表

43.在英文输入状态下,双击回车左边那个大写按钮,可连续输入大写

44.待机时连接USB是1.0模式,点亮屏幕再连接USB是2.0模式

45.播放视频的时候双击屏幕会切换不同的缩放模式

46.m8和m8发送超过1m的文件会调用wlan模块

47.播放视频的时候点视频图标是从头开始放,点视频名字是从上次退出自动记录的点开始放。

48.进入文档=>选择你要编辑的文件=>选择编辑的文件=>点击选项=>选择重命名!快速批量修改文件名!
49.用系统自带的电子书看书时点击屏幕的右侧会出现百分比的滚条

50.发短消息时,点右上角的绿色或红色送达时间,可以查看具体的发送及到达详情

—————————防疲劳线—————————-

51.音乐播放器在播放歌曲并后台运行,再打开录音机录音,可以直接录歌,系统会连声音加音乐一起录制。

52.在设置中调节背光亮度时单击滑动条的左边和右边,分别可以达到减少1%和增加1%的效果

53.当你操作误按时候,手指不要松开,直接划过去,系统会默认你是在划动,而不是选定

54.短消息详情状态下长按可以“转发”、“删除”、“复制”某条短信

55.来电时,点一下右边的几个小点也有静音效果

56.联系人存在多号码时,编辑界面里,每个号码前有五角星,实心五角星表示此号码为首选号码,在联系人列表中联系人名字下显示此号码。可以点空心的五角星将对应的号码改为首选号码,显示在多个号码的第一个位置。

57.进入软件商店,点击一下特定图标!然后点击左上角的软件图标,会发现出现很多截图

59.关机后M8RE 先按按音乐键再按电源键;M8SE 先按音量上再按电源键直到进入刷机模式不放。

60.编辑短信,新建联系人,输入人名的拼音系统会自动匹配的联系人

————————-防疲劳线—————————-

61.设置壁纸背景时,当壁纸选择一张图片时,用手点住图片上下移动,可调整背景位置及低色补充!

62.看电子书的时候,点屏幕上半部分会显示上一页,点屏幕下半部分会显示下一页(

63.播放视频时,点击进度圆点的前方(不要离圆点太远)是快进3分钟;点击进度圆点的后方则是快退3分钟。

64.按住M键不放,再长按电源键,直到屏幕下方出现clear…字样,恭喜你,你已成功进入重置注册表模式

65.魅族M8超级交流群:21658800

原帖地址

20107 月3

魅族M8:新版Opera发布

新版Opera for M8 发布,可以在M8手机软件中心下载到,新版打开网页速度大升,效果炫丽,但是页面响应显然没有UCWEB强大,有一卡一卡的感觉,且在登陆新浪围脖时,始终登陆不了,不知道是什么地方出的问题,后来重启登陆进去,但是发布不了图片。囧。。。

魅族M8超级交流群:21658800

20107 月3

全国首例博客文章著作权案宣判 于芬赔1800元

引用博文不署名 跳水教练于芬赔1800元

本报讯(通讯员闫肃 刁云芸)指著名跳水教练于芬博文剽窃自己文章内容,内蒙古的出租车司机李强把于芬告上法庭。昨天,海淀法院认定于芬侵权,判决其赔偿李强1800元。据悉,该案是国内首起形成判例的博客文章著作权纠纷案。

李强称,他在搜狐博客发表了《西方理念是科学,东方思想是宗教》一文,而于芬多次访问其博客,并对该文进行过评论。后李强发现,于芬博文《如何突破难度与稳定的瓶颈,继续领跑世界跳坛》,使用了自己的那篇博文整段内容,且未以任何形式注明引文的作者和出处。李强认为,于芬侵犯了其著作权,要求法院判令于芬赔偿7000余元。

于芬认为,李强和她的文章只是发表在博客上,因此引用内容属于合理使用,不构成侵权。

法院审理认为,博客是一种新兴的网络传播形式,但博文同样受到著作权法保护和规制,因此于芬构成侵权。法院判令于芬停止使用李强文章内容,在网站上刊登致歉声明,并酌情判定赔偿李强损失1800元。

摘自中华网-科技频道

20107 月2

iPhone 4:信号不佳因显示有误

新浪科技讯 北京时间7月2日晚间消息,据国外媒体报道,针对iPhone 4曝出的信号问题,苹果周五在官方网站上发表公开信,称信号不佳是iPhone显示信号强度有误,并非iPhone本身信号接收存在问题,并表示将在未来数周内进行软件升级。 。

  以下为苹果致iPhone 4用户的公开信:

  亲爱的iPhone 4用户:

  iPhone 4是迄今为止苹果推出的最成功的一款产品,全世界的评论家们也都认为iPhone 4是最优秀的智能手机,而用户也十分喜欢这款产品。因此,当我们接到iPhone 4问题报告时,感到非常意外,并立即展开调查,以下就是我们的调查结果。

  首先要说明一下,紧握任何一部手机都会导致信号强度下降1格或更多,iPhone 4也不例外。不仅iPhone 4,iPhone 3GS、摩托罗拉Droid、诺基亚和RIM的智能手机同样如此。

  但有用户反映,iPhone 4最多时可下降4格或5格,这明显高于一般水平,因此,有人认为是iPhone 4天线设计有问题。

  与此同时,我们也收到数百名用户的电子邮件,称他们的iPhone 4接收效果要好于iPhone 3GS,他们很满意。为什么会出现两种截然相反的现象呢?

  经调查后发现,导致信号减弱的原因很简单,但却有些令人意外。我们发现,用来计算应该显示几格信号的公式出现问题,在很多情况下,手机所显示的信号强度要比实际多出2格。

  例如,当手机显示4格信号时,而实际上只有2格的强度。因此,有些用户所说的用手握紧后信号强度会下降好几格应该是在信号十分弱的地区,而此时手机却错误地显示4格或5格信号。

  为解决该问题,我们将采用AT&T最新推荐的信号强度计算公式。真正的信号强度不变,而iPhone所显示的信号强度更加准确。此外,代表iPhone信号强度的1格、2格和3格的图标的高度也将有所增加,以便于用户查看。

  在未来几周内,我们将发布一款免费的软件更新。由于该问题从一代iPhone起就已经存在,因此,该软件更新同时还向iPhone 3GS和iPhone 3G手机提供。

  经过实验室的反复论证,iPhone 4的无线性能是所有iPhone手机中最好的。对于绝大部分用户而言,他们都不受该问题影响。而此次即将推出的软件更新也只是让iPhone的信号强度显示得更准确。对于因该问题而给用户带来的困扰,我们表示歉意。

  如果用户仍不满意,可以在购机后30天内,将未损坏的iPhone 4退回任何一家苹果专卖店或网上商店,我们将全额退款。

  最后,我们希望大家能和我们一样喜欢iPhone 4。(李明)

20107 月2

魅族M8:原文件或目标文件正被使用

三种解决方法:
1、先拷贝到任一文件夹,用m8上自带的移动或复制功能覆盖;
2、关机之后当U盘拷贝进去覆盖;
3、启动M8上的ftp软件,通过ftp方式;

20107 月1

视频: Joe Wong (带字幕)2010年美国记者年会上的表演

20107 月1

打包

周末,寝室同学决定去外面改善伙食。老四有事去不了,让我们帮他带份饭菜回来。

我们5人围坐一桌,吃相凶猛,一个菜上来,一顿哄抢,盘子就空了。服务员端上新菜,再把空盘撤下。于是桌子上竟一直只有一个盘子。

最后吃完了,拎着给老四点的菜刚想走,旁边一个刚来吃饭的同学看了我们一眼,说,”真牛,一帮人吃一个菜,还打包……”

20107 月1

收藏:魅族M8 Android内核源码和固件下载

魅族官方提供了M8的Android内核源码,包含了完整的驱动以及说明,由于MEIZU M8的物理硬件和iPhone一样平时操作的只有1个Home键无法模拟,Android的Back、Menu以及其他因素魅族放弃了M8跑Android的计划。由于M8使用的是Samsung ARM11内核的S3C6410工作频率为667MHz,山寨厂商有一定的借鉴价值。

  有关魅族M8的ADB驱动 http://m8-android-kernel.googlecode.com/files/M8_6410_adb_driver.rar

  M8的Android编译好固件下载,刷机方法和Wince的一致,下载后直接解压放到USB Storage的根目录 http://code.google.com/p/m8-android-kernel/source/browse/bin/m8_android.rar 

  M8 for Android源码托管在Google Code上面,使用SVN工具直接提取 浏览地址 http://code.google.com/p/m8-android-kernel/source/browse/#svn/trunk 需要注意的是Android开发网发现有关Modem这块代码没有,涉及到了英飞凌的机密,不过可以看到编译好的库,直接挂上即可。

  SVN Checkout地址 http://m8-android-kernel.googlecode.com/svn/trunk

  最后是Android123找到的有关M8的移植文章网上整理的word文档,有兴趣的网友可以DIY下,不过Android开发网表示Android和M8原始的Wince比较差距较大,个人还是建议使用完善的WinCE系统,毕竟可以直播RMVB、WinCE对于M8更适合些。

  1. make menuconfig

A. 串口改成串口3输出打印信息。
(一) (root=/dev/nfs init=/init nfsroot=192.168.1.10:/nfs ip=192.168.1.100 console=ttySAC2,115200
console=ttySAC2,串口2输出,必须与下面同时修改
(二) System Type  —>S3C UART to use for low-level messages—>2
值设成2,即串口2输出,必须与上面同时修改。

B. Onenand驱动支持
(一) Device Drivers  —>Memory Technology Device (MTD) support  —>OneNAND Device Support  —>
[*]   Verify OneNAND page writes                                
<*>   OneNAND Flash device via platform device driver
(二) onenand的支持
从贺超提供的linux2.6.27包drivers\mtd\onenand目录复制s3c6410.h,s3c_onenand.c,s3c_onenand.h提供对三星onenand的支持
(三) Makefile修改
drivers\mtd\onenand\Makefile文件最后添加一行:onenand-objs = s3c_onenand.o,编译s3c_onenand.o,连接进内核。
(四) 在arch\arm\mach-s3c6410\mach-smdk6410.c中
 
static struct platform_device pmem_gpu1_device = {
 .name = “android_pmem”,
 .id = 1,
 .dev = { .platform_data = &pmem_gpu1_pdata },
};
#endif
的后面添加代码:
/*add by liuyihui 2009-08-21*/
/*
*添加onenand驱动支持
*/
/* OneNAND Controller */
/* OneNAND flash controller */
#define S3C64XX_PA_ONENAND     (0x70100000)
#define S3C64XX_SZ_ONENAND     SZ_1M
static struct resource s3c_onenand_resource[] = {
 [0] = {
  .start = S3C64XX_PA_ONENAND,
  .end   = S3C64XX_PA_ONENAND + S3C64XX_SZ_ONENAND – 1,
  .flags = IORESOURCE_MEM,
 }
};
或者替换新的代码:
 arch\arm\plat-s3c64xx\devs.c,
linux/arch/arm/mach-s3c6400/include/mach/map.h
struct platform_device s3c_device_onenand = {
 .name    = “onenand”,
 .id    = -1,
 .num_resources   = ARRAY_SIZE(s3c_onenand_resource),
 .resource   = s3c_onenand_resource,
 .dev.platform_data = &s3c_nand_mtd_part_info
};
/*add end*/
在数组static struct platform_device *smdk6410_devices[] __initdata = {的最后添加:
 &s3c_device_onenand /*add by liuyihui 2009-08-21*/
(五) 分区表修改:使userdata从0x0a000000开始
文件linux/arch/arm/plat-s3c/include/plat/partition.h中:
 
        {
                .name  = “cache”,
                .offset  = MTDPART_OFS_APPEND,
                .size  = (67*SZ_1M)+0x1000000,//orig:(67*SZ_1M)/*modified by cefanty 2009-08-21*/
        },
 
(六) 修改drivers\mtd\onenand\generic.c
复制drivers\mtd\onenand\generic.c替换掉。
 

C. Device Drivers  —>Input device support  —>  []   Keyboards  —>
(一) 暂时去掉键盘支持,因为键盘占用了GPK14口,GPK14口在M8是USB供电开关的GPIO,拉高才能用USB

D. Device Drivers  —> [*] USB support  —>  <*>   USB Gadget Support  —>
(一) <*>   USB Gadget Drivers (Ethernet Gadget (with CDC Ethernet supp
(二) Ethernet Gadget (with CDC Ethernet support)             
(三) [ ]       RNDIS support
(四) d.1)选择Ethernet Gadget (with CDC Ethernet supp,用于把M8模拟成网卡,实现nfs挂载系统。同时去掉RNDIS support支持,因为ubuntu下没有驱动支持。
(五) drivers\usb\gadget\s3c-udc-otg-hs.c修改为USB使用外部晶振
 
//writel(0x20, S3C_USBOTG_PHYCLK); /*commented by liuyihui 2009-08-24*/
writel(0x00, S3C_USBOTG_PHYCLK);  /*00:USB使用外部晶振。modified by liuyihui 2009-08-24*/

2. 驱动移植和修改

A. LCD驱动移植
i. drivers\video\Kconfig,搜索config FB_S3C_LTS222QV,在后面添加如下选项
config FB_S3C_LMS340KC01
 bool “LMS340KC01”
 —help—
 TBA
ii. 添加驱动:drivers\video\samsung\s3cfb_lms340kc01.c
 
a) 复制刘奕辉开发的s3cfb_lms340kc01.c驱动到目录drivers\video\samsung\
b) 在drivers\video\samsung\Makefile文件最后添加内容:
obj-$(CONFIG_FB_S3C_LMS340KC01) += s3cfb_lms340kc01.o
iii. 修改drivers\video\samsung\s3cfb_fimd4x.c,在函数s3cfb_set_gpio最后注释代码,添加:
 

#if 0/*commented by liuyihui 2009-08-24*/
 /* module reset */
 if (gpio_is_valid(S3C64XX_GPN(5))) {
  err = gpio_request(S3C64XX_GPN(5), “GPN”);

  if (err) {
   printk(KERN_ERR “failed to request GPN for ”
    “lcd reset control\n”);
   return err;
  }

  gpio_direction_output(S3C64XX_GPN(5), 1);
 }

 mdelay(100);

 gpio_set_value(S3C64XX_GPN(5), 0);
 mdelay(10);

 gpio_set_value(S3C64XX_GPN(5), 1);
 mdelay(10);

 gpio_free(S3C64XX_GPF(15));
 gpio_free(S3C64XX_GPN(5));
#endif

/*add by liuyihui 2009-08-24*/
/*
*打开M8 LCD需要用到的GPIO口
*/
#if 1 //M8 GPIO set hight
 /* module reset *///LCD_nRESET_SHIFT/*4*/
 if (gpio_is_valid(S3C64XX_GPQ(4))) {
  err = gpio_request(S3C64XX_GPQ(4), “GPQ”);

  if (err) {
   printk(KERN_ERR “failed to request GPQ for ”
    “lcd reset control\n”);
   return err;
  }
  gpio_direction_output(S3C64XX_GPQ(4), 1);
 }
 mdelay(100);
 gpio_free(S3C64XX_GPQ(4));

 /* module reset *///LCD_nSS_SHIFT/*5*/
 if (gpio_is_valid(S3C64XX_GPQ(5))) {
  err = gpio_request(S3C64XX_GPQ(5), “GPQ”);

  if (err) {
   printk(KERN_ERR “failed to request GPQ for ”
    “lcd reset control\n”);
   return err;
  }
  gpio_direction_output(S3C64XX_GPQ(5), 0);
 }
 mdelay(100);
 gpio_free(S3C64XX_GPQ(5));
  
 /* module reset *///LCD_MOSI_SHIFT/*7*/
 if (gpio_is_valid(S3C64XX_GPQ(6))) {
  err = gpio_request(S3C64XX_GPQ(6), “GPQ”);

  if (err) {
   printk(KERN_ERR “failed to request GPQ for ”
    “lcd reset control\n”);
   return err;
  }
  gpio_direction_output(S3C64XX_GPQ(6), 1);
 }
 mdelay(100);
 gpio_free(S3C64XX_GPQ(6));
 
  /* module reset *///LCD_MOSI_SHIFT/*7*/
 if (gpio_is_valid(S3C64XX_GPQ(7))) {
  err = gpio_request(S3C64XX_GPQ(7), “GPQ”);

  if (err) {
   printk(KERN_ERR “failed to request GPQ for ”
    “lcd reset control\n”);
   return err;
  }
  gpio_direction_output(S3C64XX_GPQ(7), 1);
 }
 mdelay(100);
 gpio_free(S3C64XX_GPQ(7));
 
 /* module reset *///LCD_CLK_SHIFT/*8*/
 if (gpio_is_valid(S3C64XX_GPQ(8))) {
  err = gpio_request(S3C64XX_GPQ(8), “GPQ”);

  if (err) {
   printk(KERN_ERR “failed to request GPQ for ”
    “lcd reset control\n”);
   return err;
  }
  gpio_direction_output(S3C64XX_GPQ(8), 1);
 }
 mdelay(100);
 gpio_free(S3C64XX_GPQ(8));

#endif

 return 0;
}
/*add end*/
c) 
iv. 修改drivers\video\samsung\s3cfb_spi.c,在函数s3cfb_set_gpio最后注释代码,添加:
 
在代码#elif defined(CONFIG_PLAT_S3C64XX)后面添加:

#define MEIZU_M8
#ifdef MEIZU_M8
#define S3C_FB_SPI_CLK(x) (S3C64XX_GPQ(8 + ( 4)))
#define S3C_FB_SPI_MOSI(x) (S3C64XX_GPQ(7 + (4)))
#define S3C_FB_SPI_CS(x) (S3C64XX_GPQ(6 + (4)))
#else
#define S3C_FB_SPI_CLK(x) (S3C64XX_GPC(1 + (ch * 4)))
#define S3C_FB_SPI_MOSI(x) (S3C64XX_GPC(2 + (ch * 4)))
#define S3C_FB_SPI_CS(x) (S3C64XX_GPC(3 + (ch * 4)))
#endif

B. 触摸屏移植
drivers\input\touchscreen:synaptics510_i2c.c,synaptics510_i2c.h,Makefile,Kconfig
      
C. 按键移植
覆盖如下文件:目录drivers\input\keyboard\下的:gpio_keys.c
 

3. Busybox在Android上的使用

To build busybox
• Download the latest version of busybox from the following website. At the time of writing the latest version was v.1.13.3.
http://www.busybox.net
• Extract the busybox source:
tar jxf busybox-1.13.3.tar.bz2
• Configure busybox by running menuconfig
cd busybox-1.13.3/
make menuconfig
• In menuconfig set the following options
Busybox Settings –> Build Options –> Build Busybox as a static binary (no shared libs)  –  Enable this option by pressing “Y”
Busybox Settings –> Build Options –> Cross compiler prefix  –  Set this option equal to “arm-none-linux-gnueabi-”
Busybox Settings –> Installation Options –> Don’t use /usr  –  Enable this option by pressing “Y”
Linux Module Utilities  —>  [ ] Simplified modutils 这项不能选,否则insmod 驱动模块加载会提示找不到*.ko驱动文件的路径
• Export path to where the cross-compiler is located on the host, for example:
export PATH=/opt/arm/arm-2007q3/bin:$PATH
• Build busybox
make
 
Installing Busybox
________________________________________
To install busybox in the target file-system
• Create a /bin directory in the target file-system. For example:
mkdir /<path-to-android-fs>/bin
• Copy the busybox binary to the /bin directory in the target file-system
cp busybox /<path-to-android-fs>/bin
•  Install the busybox command line tools on the target by executing the following commands:
cd /bin
./busybox –install
 
Make the Busybox shell the default shell
________________________________________
To make the busybox shell the default shell, edit the file “init.rc” in the target file-system as follows:
• Edit the console service so that it runs the busybox shell and not the default shell by replacing:
service console /system/bin/sh
With:
service console /bin/sh
• Add the path of the busybox command line tools to the system path variable by replacing:
export PATH /sbin:/system/sbin:/system/bin:/system/xbin
With
export PATH /bin:/sbin:/system/sbin:/system/bin:/system/xbin

Android cupcake 1.5版移植

1. 在Android挂载SD移植

cupcake 1.5版需要改写下列文件。

A.    编译mountd,并在文件系统中启动这一服务。

   修改 system/core/mountd/Android.mk文件,开放最后一行

    # disabled – we are using vold now instead
    # include $(BUILD_EXECUTABLE)
    为:

    # disabled – we are using vold now instead
    include $(BUILD_EXECUTABLE)

B.     增加 安装mountd.conf 文件

      修改 system/core/rootdir/init.rc文件

   释放下两行:

     service mountd /system/bin/mountd
          socket mountd stream 0660 root mount
C.     修改  system/core/rootdir/Android.mk 文件, 增加 etc/mountd.conf \,如下:

    copy_from := \
       etc/dbus.conf \
       etc/init.goldfish.sh \
       etc/mountd.conf \
       etc/hosts
D. 修改根文件系统的system\etc \mountd.conf文件:
block_device    /dev/block/mmcblk0

20106 月30

叶问2:宗师传奇.中文无字幕.2010.mp4

内容提要

         抗日战争期间,叶问以双拳捍卫国人的尊严,打死日军军官后,在友人的帮助下,携妻带子,逃离佛山,旅居香港,开始新的生活。

  碍于生活艰难,叶问不得不开馆收徒,大弟子黄进得叶问亲传,在与当地武馆的切磋中连战连捷,但却被众武馆的话事人洪师傅教训一番,由此引出一场咏春对洪拳的大战!

迅雷下载地址

thunder://QUFodHRwOi8vczUubWVpenU4LmNvbTo4Mi8yMDEwLzA1L01laXp1OC7Sts7KMqO619rKprSrxuYu1tDOxM7e19bEuy4yMDEwLm1wNFpa

20106 月30

人在囧途.M8.mp4

昨天晚上突击了下“人在囧途”。

剧情简介

  大老板李成功(徐峥 饰)遇上挤奶工牛耿(王宝强 饰)之后,旅途便频出状况。被情人逼迫回长沙老家跟老婆摊牌的李成功,机场遭遇到前往长沙讨债的乌鸦嘴牛耿。牛耿人如其名,不但耿直憨厚,而且透出一股傻气。先是登机前安检一口气喝完一大罐牛奶,后来又飞机上让乘务员开窗,好不容易折腾到飞机到达长沙上空,结果让他咒得因长沙大雪飞机被迫返航。无奈挤上火车硬座车厢的李成功刚松了一口气,却又一次在人群中看到牛耿。牛耿就像李成功生命中的瘟神一样,只要他“金口一开”,便会出现如他所言的意外。由于途中的频频意外,两人从火车换乘巴士,又从巴士爬上拖拉机。尽管牛耿的乌鸦嘴让李成功吃尽苦头,但这个混身透着傻气的青年却用自己真诚与乐观感染着李成功。一路的颠簸之后,两人最终到达长沙又回到各自的生活轨迹中去,然而旅途中所遭遇的种种却影响着两人之后的生活……

观后感

  电影不像是纯喜剧电影,全剧笑料不多(或者我不会笑?),惹我笑的只有两处。而更多的是对社会现实的描写,剧情有强拼硬凑的感觉(包括对话),不过整体还好。★★★☆☆ 我打三星~~

人在囧途迅雷下载地址:thunder://QUFodHRwOi8vczUubWVpenU4LmNvbTo4Mi8yMDEwLzA2L8jL1NrNvi65+tPv1tDX1i4yMDEwLk1laXp1OC5tcDRaWg==

20106 月29

子腾

早上闺蜜问我:我给我儿子起名叫子腾,你觉得这个名字咋样?我说很好啊,我喜欢!接着闺蜜继续唠叨着,气死老娘了,年轻时我就想好了将来儿子的名字,偏偏嫁了个姓杜的,害得我这个名字没法用!!!!!

20106 月29

80后的我们

80后的我们需要一个家,更需要一个真诚的她。。。

20106 月28

第三方开发者看好Android

手机软件工具供应商Appcelerator周三发布报告称,在谷歌Android操作系统 和苹果的iOS之间,第三方独立开发者更看好Android的发展前景。Appcelerator 对2733名第三方独立开发者进行了调查。调查结果显示,超过半数的被调查者表示在智能手机操作系统当中谷歌Android最具长期潜力,而支持苹果 iOS的开发者约为40%。该调查结果暗示,Android正在蚕食苹果iOS的市场份额。谷歌公布的数据表示,全球目前约有60款采用Android操 作系统的设备,6万款可供下载的应用,每天新增超过10万 Android用户。市场调研公司Gartner此前也发布报告称,Android将会在2012年超越iOS,在全球最流行的手机操作系统中排名第二。
 
Appcelerator营销副总裁斯科特·斯瓦茨佐夫(Scott Schwarzhoff)表示:“谷歌和苹果正在参与一场竞赛,而其他人则在追赶。”Android不仅在智能手机市场对苹果、微软、RIM、Palm和 全球最流行的操作系统Symbian等构成威胁,包括索尼、罗技和东芝等10多家厂商都将推出平板电脑、上网本、机顶盒、电子书阅读器和电视等采用 Android操作系统的产品。
Gartner副总裁肯·杜兰尼(Ken Dulaney)表示,“Android是目前唯一有资格取代iOS的产品。”截至目前,苹果发言人史蒂夫·道宁(Steve Dowling)对此报道未置可否。
重新上演PC大战
智能手机操作系统的竞争就如同是上世纪80年代至90年代初苹果与微软之间的PC大战,当时的 PC操作系统市场仍被群雄分割。美国移动运营商Sprint Nextel营销副总裁大卫·欧文斯(David Owens)说:“微软和苹果之间的PC大战又在手机市场重新上演。”Sprint Nextel在去年年底引入采用Android操作系统的手机。该公司在本月发布了宏达电的Evo 4G,这款手机发布首日的销量也创出Sprint Nextel首日手机销量之最。
市场调研公司IDC的统计数据显示,受 Android操作系统的推动,今年第一季度宏达电在美国智能手机市场的分额从去年第三季度的7.3%增加至9.4%。与此同时,摩托罗拉的市场份额也从 2.1%增至12.4%。IDC项目总监威尔·斯托费加(Will Stofega)表示,“手机制造商也认识到了这一点,Android未来将会给他们带来帮助。”
手机制造商跟风
移动运营商 Verizon无线透露,摩托罗拉计划于本周三推出新款Android手机,而此前推出的Droid已经十分风靡。三星电子重金打造的Galaxy S智能手机同样采用Android操作系统。三星通信美国公司战略副总裁贾斯汀·德尼森(Justin Denison)表示:“Galaxy S是三星电子今年最重要的一款高端智能手机。”
移动运营商同样对Android倍加 青睐。作为iPhone的独家服务供应商,AT&T也渴望提供Android手机。今年3月,AT&T推出了首款Android手机,6 月推出了HTC Aria,而即将推出三星Captivate。AT&T发言人道恩·本顿(Dawn Benton)表示,“我们正计划丰富Android产品线。”
知 名品牌
Android之所以能够迅速普及,与谷歌的支持和品牌知 名度不无关系。Sprint Nextel的欧文斯表示,“几乎所有人都知道Android是谷歌的产品,这种认知转变成消费者的兴趣。”
价格优势同样是Android手机被认可的重要原因。在过去的6个月里,Verizon无线推出了 两款Droid手机,售价仅为1美元。目前Droid Eris在签署两年服务合约的前提下,售价50美元。相比之下,iPhone最低售价99美元,在6月24日上市的iPhone 4起始售价199美元。
许多手机厂商正在开发更廉价的Android智能手机。Gartner副总裁杜兰尼称:“这些低 端智能手机将于今年晚些时候上市。”Android早期存在的漏洞都已被修复,而且该软件提供了越来越多的功能。IDC的斯托费加表示,“手机制造商从这 些错误中吸取了许多的经验。Android如今已变得非常成熟。”