家里的home server,使用mldonkey下载资源(见这里),有视频和电子书等,需要编写个脚本,将不同后缀的文件移动到指定的目录下。
这里使用python,写了个简单的脚本:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import osscan_path=”/Users/marshal”
book_path=”/Users/marshal/books”def file_action(file):
if(file.endswith(“.pdf”) or file.endswith(“.epub”)):
os.rename(scan_path+’/'+file, book_path+’/'+file)
print ‘移动文件:’,fileprint “开始文件整理,目录:”,scan_path,” …”
if(os.path.exists(book_path) is False):
os.mkdir(book_path)#print os.getcwd()
files=os.listdir(scan_path)
for file in os.listdir(scan_path):
file_action(file)print “整理完毕。”
现在,越来越多的iOS项目需要用到Web开发技术,尤其是HTML5方面的。
如果是开发标准界面的Web开发,可以使用Dashcode,我打算另写一篇文章介绍。这里的开发环境,是针对自定义界面的,从应用范围来看,也更广泛一些。
开发环境
首先是开发环境,因为比较熟悉Eclipse,使用的是Eclipse插件WTP来开发Html、Css和Javascript。我直接安装的是SpringSource Tool Suite(是Spring定制的Eclipse版本,带wtp插件),因为后续还要使用Grails开发服务器端的动态内容。
虽然我使用Mac系统,但是一直要通过虚拟机使用Windows。因为曾经有两个工具在Mac环境下无法被替代。
第一个是QQ,Mac系统也有QQ,但是功能少,时常掉线。这个情况已经是历史了,现在Mac系统下的QQ也很好用了,甚至支持传输文件夹了。
还有一个,是目前唯一需要我启动虚拟机的应用,Windows Live Writer。可以参见我以前有关WLW的文章列表。虽然Wordpress自带Web界面的文章编辑器,但是除非只写文字,如果需要文章中带图片,操作就很繁琐。WLW可以直接将系统剪切板中的图片复制到文章中去,这是个难以割舍的特性。
今天使用了ScribeFire,发现它支持将图片直接复制到文章中。这太好了,也许它可让我摆脱对Windows Live Writer的依赖?
上面的图就是直接截取复制的。缺点嘛,就是没有WLW的默认图片特效,比如阴影效果。不过,我觉得如果只差这个的话,我是可以接收的。 Continue Reading »
Git没有SVN的export功能。
比如你想导出一个干净的项目文档,不包括版本控制文件,使用SVN很简单:
svn export url
Git提供了archive命令,可以把版本的文件流导出,但是目前无法直接导出到某个目录下,至少我没有找到这样的功能。
可以类似这样做:
git archive v0.1 | gzip > site.tgz
这是把标签为v0.1的项目文档重定向给gzip生成一个gz文件。
看起来不错,不过如果这样频繁向其他人传递文件,可能造成混淆。可以考虑把Git的特征值加到文件名中,比如这样:
git archive –format zip -o site-$(git log –pretty=format:”%h” -1).zip HEAD
这样生成的文件名类似这样:
site-87424a7.zip
上文创建Chrome Web app编写了一个hosted app。如果在开发中测试,hosted app就很不方便,需要编写代码部署到服务器端才能测试和调试。
因此,本文尝试编写Packaged app,这样可以很容易的在本地调试和测试,直到需要和服务器端交互的时候再修改为hosted app。
编写了一个最简单的应用,安装后类似这样:
点击该应用的效果:
可以看到,地址栏是空的。
编写了一个Chrome下使用的Web app。效果如下:
点击这个应用,就可访问我的博客。
看起来这很类似一个书签。其实有它特殊的好处,直接访问网站,程序无法自动获取HTML5的权限,比如存储限制。安装应用,相当于安装了一个配置文件,浏览器将打开必要的权限。
如果你也使用Chrome,可以通过这里下载安装。
开发这样的应用并不难,过程类似以前开发Chrome扩展(编写最简单的chrome扩展)。
日志引用
rcs是一个古老的本地版本控制软件,最早的版本发表于1982年,用于Unix和后来的Linux,距今差不多30年了,而且在44天前还发布了5.8版本。可通过维基百科链接做下了解。点击这里进入rcs的官方网址。
如果你使用Mac并且安装了Xcode,那么已经安装了该工具。可以输入rcs这个命令验证这点。Linux的发行版本Ubuntu已经不再默认包含这个工具,可这样安装:
sudo apt-get install rcs
体验这个工具,是想了解版本控制工具的发展历史,体会发展趋势。
rcs是针对本地文件管理的,也就是说需要不连接服务器端。以下参照这篇文章和man命令简要说明该工具的使用。
目前开发中,需要借鉴一些做的比较好的网站,这些网站的网页是在移动设备上展示的,用桌面浏览器无法看到。
这里列出3种办法,不全面,只是我现在用到的。这些方法的基本思路是通过设置HTTP头来“欺骗”服务器,让它给出适合移动设备的响应HTML内容。
Chrome加参数
可以使用Chrome浏览器,通过命令行执行,增加一些参数,来模拟指定移动设备。
可以参见这篇文章:http://luckerme.com/archives/903.html
我用的是Mac,这里启动Chrome的命令是:
open /Applications/Google\ Chrome.app –args -user-agent="Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10"
测试了一下:http://ipad.qq.com,正常显示:
能正常显示使用。另外,如果要调整窗口大小,匹配移动设备的分辨率。需要下载插件web developer:
iOS屏幕变换,比如从竖屏转为横屏,虽然可以直接使用UIViewController的:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)
但是,因为屏幕变换一般都要在视图(UIView)中处理,这种写法对视图并不方便。
也可以覆盖UIView的:
- (void)layoutSubviews
在该方法中调整自身的frame属性。不过该方法应该是用于对自身的子视图做处理的方法:
Subclasses can override this method as needed to perform more precise layout of their subviews. You should override this method only if the autoresizing behaviors of the subviews do not offer the behavior you want. You can use your implementation to set the frame rectangles of your subviews directly.
因此,也不适合。
日志引用
这个工具不但好用,而且免费。
如果你使用Mac OSX 10.7,或者10.6的后期版本,应该有App Store。那么安装是极为方便的。
如图所示,直接在search框中输入skitch,就可以找到它,然后安装即可。
以前经常看到使用这个工具截图的图片,这回终于使用到这个工具了。可以看到它有特色的箭头形状。另外,如果用手工画线,它会反锯齿。