Posts by admin:
[Toy] 获取土豆FLV下载地址的小工具
一个获取土豆FLV下载地址的小工具,使用方法也比较简单: 前提条件,你必须安装了JAVA JRE 1.5以上的运行环境 1. 访问欲下载的土豆视频连接 2. 点击视频下方的转帖到博客或BBS 3. 拷贝FLASH代码的连接(例如:http://www.tudou.com/l/9Uby2NgANWI) 4. 运行下面的命令 java -jar FLVParser.jar -t http://www.tudou.com/l/9Uby2NgANWI 得到如下下载连接: http://124.232.157.18/f4v/65/65364165.h264_1.f4v?80000&key=a7111b24f706743495ab584cff1934fe94f5d5&playtype=1&tk=476898256&brt=2&id=tudou&itemid=38111542&fi=65364165&sz=243731218 http://180.137.254.12/f4v/65/65364165.h264_1.f4v?80000&key=a7111b24f706743495ab584cff1934fe94f5d5&playtype=1&tk=476898256&brt=2&id=tudou&itemid=38111542&fi=65364165&sz=243731218 5. 使用你喜爱的下载工具下载FLV视频即可 下载地址
[Toy] 一个将指定URL的页面数据保存成图片的小工具
这个小工具功能比较简单,将指定的URL的页面的DOM元素保存成图片文件。 —————————————————————————– Usage: WebPageCapture –url=http://www.example.org/ –out=localfile.png —————————————————————————– –help Print this help page and exit –url= The URL to capture (http:…|file:…|…) –out= The target file (.png|bmp|jpeg|emf|…) –html= Output HTML file –class= Mark specified class name element –bg= Background image path –id= Mark specified id element —————————————————————————– http://www.jjos.org – (c) 2010 Jiang Jiang – 下载 下面附上一张抓去取的新浪网首页图片
构建XCode免证书开发环境
写在最前面 如果你和我一样,是一名爱好iOS开发的开发者,并且又舍不得花费99美金去购买一个合法的开发License,这篇博客则非常适合你。如果,您是一位已经获得Apple开发者证书的开发者,则可以完全无视该篇Blog。 开篇 在没有证书的情况下,开发iOS应用程序只能在功能有限的模拟器环境中运行你的应用程序(x86环境)。对于那些与硬件平台关系不大的iOS应用程序开发来说,模拟器环境可以模拟大多数功能,但是一旦你的应用需要涉及实际的硬件设备(比如:摄像头,感应器等),则模拟器就无法满足您的开发需求。拜股沟大神所赐,网路上已经早已有开发者用自签名证书的方式,绕开XCode的证书检查,可以将XCode编译的应用程序部署到实际的iOS设备上进行测试和调试。 生成自签名开发证书 1. 启动证书链管理工具(应用程序->实用工具->钥匙串访问)创建证书 设置证书名称设置为iPhone Developer(该名称需要和XCode编译签名时使用的证书名称一致,下文会提到),身份类型选择自签名根证书,证书类型选择S/MIME (电子邮件),并且在覆盖这些默认值选项上打勾。 选择继续制作自签名证书 设置证书有效期365天(时长不要超过365天) 输入用户信息 选择密钥大小和算法(2048位和采用RSA算法) 设置密钥扩展功能(选择签名功能和代码签名功能) 禁止基本约束扩展 设置主题设备用名称扩展,RFC822输入邮箱即可 设置钥匙串类型为登陆类型 至此,自签名证书创建完毕 Hacking XCode 1. 绕开XCode证书检测(以下代码在终端执行) #!/bin/bash cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf “\x8f\x2a\x00\x00″ >> working dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504 /bin/mv -n iPhoneOS\ Build\ System\ [...]
青春如同奔流的江河,而生活像一把无情刻刀
不想多说什么,一切都在短片中。。。 那是我日夜思念深深爱着的人呐 到底我该如何表达 她会接受我吗 也许永远都不会跟他说出那句话 注定我要浪迹天涯 怎么能有牵挂 梦想总是遥不可及 是不是应该放弃 花开花落又是雨季 春天啊你在哪里 青春如同奔流的江河 一去不回来不及道别 只剩下麻木的我没有了当年的热血 看那漫天飘零的花朵 在最美丽的时刻凋谢 有谁会记得 这世界她来过 转眼过去多年时间多少离合悲欢 曾经志在四方少年羡慕南飞的燕 各自奔前程的身影匆匆渐行渐远 未来在哪里平凡啊谁给我答案 那时陪伴我的人啊 你们如今在何方 我曾经爱过的人啊 现在是什么模样 当初的愿望实现了吗 事到如今只好祭奠吗 任岁月风干理想 再也找不回真的我 抬头仰望着满天星河 那时候陪伴我的那颗 这里的故事 你是否还记得 生活像一把无情刻刀 改变了我们模样 未曾绽放就要枯萎吗 我有过梦想 青春如同奔流的江河 一去不回来不及道别 只剩下麻木的我没有了当年的热血 看那漫天飘零的花朵 在最美丽的时刻凋谢 有谁会记得这世界她曾经来过 当初的愿望实现了吗 事到如今只好祭奠吗 任岁月风干理想 再也找不回真的我 抬头仰望着满天星河 那时候陪伴我的那颗 这里的故事你是否还记得 如果有明天 祝福你亲爱的
Tomorrow is just another day
刚刷新苹果的官方主页,发现下面一张页面,难道明日苹果ios 4.2即将发布么?期待中…
iPad把玩-初体验
从老乔手握iPad出现在Apple新品发布大会的那一刻起,iPad华丽的外观、强大的功能以及App store上数以千计的高质量应用就深深的吸引了我。在我毫无意识的情况下,又一次被拉入到老乔的“陷阱“中。经过半年时间的关注,最终还是决定入手一只iPad。 从iPad发布之初公布的尺寸大小(242.8×189.7×13.4mm)以及相关的视频上看,iPad的尺寸是相当薄的。但是一直只是一个概念性的认识,直到第一次拿到iPad真机后,才惊叹Apple竟然可以在不影响功能、效率的基础上将iPad作的如此只薄,真的不得不佩服Apple的工艺水平。下面从拿到iPad后把玩的过程,来介绍一下这个新增神器。 iPad配备了9.7英寸大小的电阻式多点触摸显示屏,由于其运行的系统和iPhone/iTouch一样,并且其外观类似,因此之前很多网上评论文章都将其比为打好iPhone/iTouch。但是,在实际的把玩过程中发现,iPad的大屏幕的用户体验感受是iPhone/iTouch的小屏幕无法比拟的。比如,在iPhone/iTouch上打开一张页面,要想导航到目标区域可能需要做多次的放大,移动等滑动操作。而在iPad上的体验确大为不同,由于其9.7寸屏的优势,可以让整个网页内容尽收眼底,并且不需要做很很多(甚至压根不需要)滑动操作即可浏览到想要的信息。处理器方面,iPad采用了自家设计研发的A4 SoC处理器,主频是1GHz。电池采用25Whr的俚电,按照老乔的介绍,该电池可让iPad续航10个小时,但是按照我实际的使用时间来计算,一共使用了16.5小时后,系统剩余电量还有25%。在这个过程中主要是进行iTunes同步,网页浏览,QQ,邮件,RSS,越狱等操作,这让我对iPad的续航能力非常满意。Flash容量有16G,32G和64G三种规格。内存大小是256MB。由于我没有做实际的称量,按照前人的评测说,整体重量0.73公斤。虽然感觉很轻便,但是在实际的使用过程中发现,长时间的手握iPad会感觉 1. 安装iTunes和注册iTunes美国免费帐号 拿到iPad后的第一件事情是安装iTunes,然后注册一个美国的iTunes帐号。关于如何注册美国免信用卡帐号的方法网络上有很多介绍,这里不做详细说明,可以参考weiphone网的这篇注册介绍文章: http://bbs.weiphone.com/read-htm-tid-205881.html 2. 同步和备份iPad 当iTunes安装完毕后,使用刚才注册的美国帐号登录App Store,后将数据线插入iPad,这时iTunes会自动弹出检测到iPad的对话框,并且提示用户输入该iPad的名称。点击确认后,就可以在iTunes中看到iPad的当前名称,序列号以及系统的版本号。这时,右键点击iTunes左边栏的iPad图标,选择备份,即可将iPad中的数据备份到PC端。 3. 获取和保存SHSH 获取SHSH的工具,当然是传说中的umbrella,备份的过程全图形化操作,很简单。可以参看下面这篇文章: http://ifan.178.com/thread-690979-1-1.html 4. 越狱 并不是说不越狱iPad不能使用,App Store上为iPhone/iPad/iTouch提供了很多免费的应用供下载。但是一些主流、优秀、功能强劲的Apple应用往往是需要出血的。而且,在没有越狱的情况下,一些辅助性的神器(backgrounder,activator等)都是无法使用的。因而,对于我个人来说越狱是必须的,可以让我更好的体验iPad上强大的应用程序以及功能。 我的iPad运行的是iOS 3.2.2版本,通过疯狂的Google后发现,网络上提供两个越狱软件-绿蛙、绿雨,以及大量的越狱教程(在这里,不得不感谢哪些无私奉献的DXJM们)。通读完大量的越狱文章,了解了越狱的大致步骤、可能出现的问题后。先是下载了绿蛙的最新版本,然后开始了我的第一次越狱。按照网站上的教程说明,启动绿蛙后软件再等待2秒以后,会提示用户按住POWER键,关闭iPad(大概持续3秒),然后提示用户按住POWER键的同时,按下HOME键,进入到恢复模式(整个过程大概持续10秒)。最后,软件会提示用户按住HOME键不放,松开POWER键(过程大概持续15秒)。当软件的越狱按钮变为可用时,松开HOME键,然后用鼠标点击软件上的越狱按钮进行越狱。此时,iPad会显示让用户插入iTunes连接线的图标。等待大概10-15秒以后,iPad会出现白色屏幕,然后出现Console界面。最后,iPad会关机,手工按住POWER开机后,按照教程上所说,应该在第2屏中出现Cydia的图标。在我疯狂的用手翻动iPad面板后,我失望了。iPad屏幕中只有默认屏和search屏,压根没有传说中的第2屏,更别说见到神奇的Cyndia图标了。继续关机重启数回以后,现象依旧,难道是越狱失败? 没招,这次转换工具用传说中的绿毒进行第二次越狱。不得不说,绿毒的用户操作要比绿蛙简便。不说别的,由于不熟悉越狱的按键过程,在使用绿蛙的时,几次都由于没有及时按照提示按键被要求重新尝试,而这点绿毒要作的好很多。打开绿毒界面后,按照提示一路走下去,最后会弹出一个对话框说明,表示越狱成功。此时,iPad屏幕上显示一个硕大的绿色水滴图标,并且风火轮开始神转。紧接着,iPad重启了并且一直停留在要求用户插入iTunes连接线的界面。按照界面提示,插入数据线后,iTunes提示,系统进入恢复模式,要求下载3.2.2版本进行恢复。神马?难道给刷挂了?不管了,点击了下载按钮后。将iPad关机了,然后再次使用绿蛙进行越狱。整个操作和上面过程一样,但是这次不同的是,越狱之后竟然iTunes找到iPad设备了(不再提示要求下载固件并且恢复了)。虽然,是可以进入系统了,但是依旧是没有看到Cydia图标。 就这样来回用绿蛙和绿毒越狱多次后,一次关机重启后发现神奇的第2屏出现了,而且屏幕上出现了绿毒和绿蛙两个图标,并且神奇的Cydia图标也出现了。后来,我在想,之前也许也越狱成功了,但是由于自己越狱心切,越狱在进行中时,由于没有提示,误认为是关机或者其他操作了,然后强制重启,导致越狱失败。 越狱教程可以参看: http://ifan.178.com/thread-690450-1-1.html 5. 设置Cydia源,安装补丁 同样参看上面的越狱教程,里面有很详细的说明 最后,越狱完毕后就是疯狂的下载软件。至此,神器可以真正开始释放威力了。 ~~~ END ~~~
Introduce to WebKit2
WebKit2是为WebKit引擎而设计的支持单独进程模型的API层。将Web的内容(Javascript,HTML,布局等)处理与应用程序UI分离,分别运行在两个不同的进程之中。这种分离的进程模型和Google的Chrome浏览器有几分类似,不同的是WebKit2将从引擎内部原生的支持这种多进程机制。通过将内容和展现相分离的方式,可以更加有效的提高浏览器的运行效率。 WebKit2提供了一套基于C语言的非阻塞API接口,为了实现WebKit2引擎中对这些API接口的非阻塞调用,WebKit2在设计的时候采用了以下几个方面的技术: 以通知的方式回调客户端函数(比如,didFinishLoadForFrame),通过这种机制可以告知client发生了什么事情(目前WebKit版本中也大量的使用了该技术,用来通知client事件的发生) 以策略方式回调客户端函数(比如,decidePolicyForNavigationAction),当引擎执行某一项操作时,通过该机制由实现具体功能的client来决定是否该操作被执行。 策略设置(例如WKContextSEtCacheModel, WKContextSetPopupPolicy),该机制允许client重新定义策略,而不需要再通过回调的方式访问UIProcess。 代码注入(例如,WebBundle),当所有其他的方法都无法完成时,可以通过代码注入的方式将代码载入到WebProcess中。不过按照WebKit官方文档所说,这个功能目前只是在计划中,还没有真正的在代码级实现。 WebKit的多进程架构 下图是之前webkit的进程架构图 从上图可以看到,之前的WebKit的ui进程和webkit内核进程都是运行在相同的进程空间。其中API Boundary表示和系统相关的api层,应用层使用webkit api使用webkit引擎,并且引擎使用该api访问系统资源。 接着,再看看新版的webkit2引擎的架构 从上图可以看到,webkit2将webkit引擎分成了2个部分,一个部分是和ui相关的操作,运行在一个进程中。而另外的webkit部分运行在独立的进程中。通过多进程机制的支持,增加了ui响应和引擎布的效率,同时也增强了系统的健壮性和安全性。 之前也提到,webkit2的多进程模型有点类似chrome的多进程模型,但是有一些不同之处,下图是chrome的进程模型: 从上图可以看到api bondary是在render进程的下方,也就是说ui绘制进程是在webkit框架之上扩展支持的。该部分的扩展是非webkit原生支持的,属于chromium代码的一部分,这导致无法在其他平台或者框架中支持多进程功能。 为了支持多进程的机制,在webkit中增加了两个新的子系统: CoreIPC:为消息传递和事件处理提供支持。 DrawingArea:为交叉绘制区域提供了抽象。通过共享内存位图信息的方式,为多个进程绘制提供了支持。 目前,我只在Mac OS 10.6.3平台上编译并且体验了Webkit2,可以使用下面的方法加入多进程支持: WebKitTools/Scripts/build-webkit –webkit2 ~~~ END ~~~
Titanium 架构分析
一、分析的目标 了解Titanium产品的基本框架结构和特点 了解Titanium产品如何扩展本地API以及访问方式 了解Titanium产品中的动态语言之间如何相互调用 二、Titanium概述 2. 1 Titanium介绍 Titanium是一个Web应用程序运行环境,它支持不同的系统平台(Windows、Linux、Mac),并且支持Web应用程序对本地APIs的访问。在基于Titanium平台上,用户可以快速开发和方便的部署应用程序,并且这些应用程序可以使用本地APIs实现许多普通Web应用程序无法完成的功能和特性。 2.2 Titanium特点 Titanium框架具有如下几个方面的特点: 支持多平台(Linux、Mac、Windows、移动设备) 使用Web技术加快软件开发速度 支持Web中内嵌多种编程语言 支持对本地APIs的访问 通过Appcelerator网络云服务,基于Titanium的应用可以更容易的打包、测试和部署 本地功能的模块化,可动态加载指定的功能模块 强大灵活的语言扩展,用户在Titanium框架中可以很方便的扩展多种动态语言 2.3 Titanium 框架结构 上图来自于Appcelerator官网,该图以iPhone和Android两个移动平台为例,描述了Titanium的总体框架结构。在Titanium框架中,Web应用程序可以很方便的访问设备UI组件。比如,可以在页面中使用Titanium提供的API控制导航条、工具栏、菜单,以及可以动态的向用户弹出对话框、警告框等。除此,之外Titanium API还支持本地功能模块的访问,即用户可以使用Titanium提供的APIs接口访问数据库、定位功能、文件系统功能、网络功能、媒体功能等。 不过该框架图,并没有将Titanium中对多种脚本语言的相互访问机制很好的表现出来。但是,这一机制却又是Titanium框架的一个比较重要的功能特性。 三、Titanium构建 Titanium的构建过程使用scons管理(http://www.scons.org/)。scons是一个开源的软件构建工具,使用Python语言来描述软件构建规则。通过Titanium的源码级构建和Titanium的构建规则两个方面,可以了解Titanium运行环境由那些部分组成、这些模块和模块之间的关系是什么。 [注]以下所有的测试和分析内容均是以Linux平台上Desktop版本的Titanium代码为基础。 构建Titanium所依赖的库和环境 Ruby 1.8.x 开发包 Python 2.5.x开发包 scons构建工具 git 版本管理工具 Ubuntu 9.04上构建Titanium所需的支持包 sudo apt-get install build-essential ruby rubygems libzip-ruby \ scons libxml2-dev libgtk2.0-dev python-dev ruby-dev \ libdbus-glib-1-dev libnotify-dev libgstreamer0.10-dev \ libxss-dev [...]

