###jQuery mobile
jQuery Mobile是一个基于jQuery/jQuery-ui的UI库,用于构建基于HTML5的应用程序,当然它主要针对移动设备平台,开发者使用它可以很容易的开发出运行在ios/android/windows phone上的应用,这些应用(尽管运行在不同的硬件/软件系统上)在界面上看起来几乎一致。
###基本元素
####页面布局
在移动设备上,一个页面一般由三部分组成(header区域,content区域,footer区域),当然,有的页面可能会缺失一部分(最常见的如:没有footer的长列表),jQuery Mobile通过在DOM元素上定义data-role来指定元素的归属:
page 整个页面 header header区域 content content区域 footer footer区域 <div data-role='page'> <div data-role='header'> <h1>This is header</h1> </div> <div data-role='content'> <p>This is content</p> </div> <div data-role='footer'> <h1>This is footer</h1> </div> </div> ####多个页面
通常一个应用程序会有多个“页面”,在jQuery Mobile中,所有的“页面”都放在同一个html文件中,通过data-role为page的元素的id来指定一个页面:
<div data-role='page' id='edit-page'> <div data-role='header'> <h1>Edit page</h1> </div> <div data-role='content'> <form> <label for='desc'>Description: </label> <input type='text' value='' /> </form> </div> </div> 在另一个页面中,可以通过link的href来引用这个id:
<a href="#edit-page">Go to edit page</a> ####列表元素...
###heroku 使用heroku,开发人员可以很容易的将自己的应用程序公开给世界上的其他用户使用,heroku会为你提供一个url,一些预设的空间如数据库(postgresql)等。这对于需要频繁远程showcase的场景提供了非常好的方式,当然对于开发人员向其他的开发人员或者最终用户展现自己的框架的外观/行为等场景也会非常有用。
###在heroku上注册用户 首先,当然是在heroku上注册一个开发账户,如果你已经注册过,就请接着第二步
###下载heroku的本地Toolbox heroku提供了一个很好用的工具包,通过这个工具包,开发人员可以很容易的对部署在heroku上的应用程序做操作。
###在本地登陆heroku 如果没有上传过key的话,heroku会提醒你创建一个新的ssh公钥,然后上传到heroku(这个过程与使用github非常类似)
$ heroku login Enter your Heroku credentials. Email: adam@example.com Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /Users/adam/.ssh/id_rsa.pub 如果已经上传过key,则可以直接登陆
###准备工作 在本地生成一个应用程序的基本结构,如:Gemfile,目录结构等。然后在本地配置好git环境,比如:
$ git init $ git add . $ git commit -m "init" 准备Procfile:
web: bundle exec ruby app.rb -p $PORT -E production app.rb相当于你的应用程序的主入口(main),-E指定运行环境(此处指定为production),你的应用程序可能会根据次设置来进行一些资源的选择(数据库指向,资源文件位置等)
在上传之前,需要确保自己的应用程序可以在本地正常运行:
foreman start 应用程序将在本地的5000端口上运行,此时可以做一些简单的验证,保证应用程序运行正常。...
###一些闲话
虽然对开源社区没有任何杰出的贡献,但是我自己在业余时间开发的很多小东西都是开源的,有部分放在google code上,可是除了一个sTodo有几个用户外,其他的工具几乎都纯属自娱自乐。虽然当时做的时候自己非常投入,会各种YY,假设用户会需要这个功能,会需要那个功能,用户会需要脚本化,自定义插件等等,但是到最后发现只有自己在使用,而再过一段时间,连自己也不会使用了。
我自己托管在google code上的,还算有点用处的项目有三个:
sTodo 一个简单的todo管理器 phoc 一个可以用JavaScript脚本化的计算器 utouch 一个使用styledTextCtrl的编辑器 虽然这种事情发生在几乎每一个喜欢写程序的家伙身上,但是整个过程对自我修炼来说,还是非常有现实意义的,首先专业技能得到了锻炼,而最重要的一点是:需求不是想象出来的!在没有和用户真正仔细的讨论之前,我们的假设和推断往往是错的。
Idea到处都是,有很多很酷且很有挑战的idea,但是它们不一定真的在解决人们的问题。这是一个很值得思考的问题,我最近在尝试组织一个活动,主题以及目标已经确定,上周找胡凯帮我把关,结果发现我又一次的进入了“帮助用户想需求”的老路上了。
###迁移
####使用svn同步到本地
根据google code的提示,将code从svn中的checkout到本地:
svn checkout http://phoc.googlecode.com/svn phoc-read-only ####去除掉.svn隐藏目录
现使用find在当前目录下找到名称为.svn的目录,然后将其删除,这个过程是递归的,即可以清除掉当前目录及所有子目录中的.svn目录:
find . -name ".svn" -type d -exec rm -rf {} \; ####初始化git的repo
git init git add . git ci -m "migrate of project xxx to github" 然后对应的在github上创建repo,创建之后,需要将本地的remote指向github上的repo:
git remote add origin git@github.com:project/project.git 如果本地的master分支没有配置,可以在.git/config中进行配置:
[branch "master"] remote = origin merge = refs/heads/master 最后将新的commit push到新的repo上即可:
git pull --rebase git push 我已经把这个工具迁移到了github上abruzzi,正式告别了google code。
慢一些的生活 某个晚上,我在网上为自己挑选一个适合出差的行李箱,两个小时之后,我突然发现我停留在了一个瑞士军刀的淘宝店里;本来计划晚上看看AppleScript的资料,结果一个小时之后,我在用python写一个opencv的小程序,又过了一个小时,我停留在Alfred的PowerPack的支付页面,面对着15英镑的价格陷入沉思。
而且周围好像每个人都有这样类似的经历。我咨询其他同事遇到类似的情况怎么处理,有人推荐使用Todo列表,而且Todo最好列在纸上。当列表中的Todo被消灭时,会激发你去写下更多的task。这当然是个好办法,我很早的时候就写过一个软件来完成Todo管理:sTodo。但是当打开电脑之后,时间就完全不受控制了,网络上总是有各种各样好玩的东西,新的框架,新的语言,某种颠覆式的CSS框架,新奇而好用的软件,可以大大提高用户体验的UI库,太多了……。
上周三的晚上,回家之后打开电脑,开始了“学习”,事实上是很盲目的在网络上游荡,当我意识到又要重蹈覆辙的时候,我毅然的合起了电脑,然后拿起一本纸质的《JavaScript: The good parts》。最后当我要睡觉时才发现,读了大概30多页,而且以前的一些概念也更加清楚了。而且事实上我并未因为没有打开计算机而有什么实质性的损失。
然后我突然意识到我之前的所谓的学习的方式有很大的问题,网络当然可以为你提供大量的信息,但是很多时候,这些呈碎片装的信息的作用并不如预期般的大。它会帮你解决手头的小问题,但是阻挡了你的视线,你本可以走的更远!
在网络上看资料,总是有一种紧迫感:这么多的东西都不会,落后于时代好多年。打开电脑,一个晚上过去了,你可能读了很多的东西,但是记下来的非常少,因为总是会被各种链接,图片等干扰,这个看似在学习的过程事实上完全是在浪费实践,一天之后,你前一个晚上看到的东西几乎被完全遗忘,然后周而复始。
所以,是时候慢下来,你不会因为没有浏览几个网页,或者少读几篇文章而落后于时代几十年的,你需要好多年才能积累起来的知识,别人同样需要好多年。
合上电脑,捧起纸质的书籍,世界突然慢了下来,但是却会充盈很多。事实上,放慢脚步,消除网络带来的虚假的紧迫感,反而可以以更快的速度掌握一项技术,一个框架,也可以让印象更加深刻。晚上回家尽量不带电脑,我用training经费购买的10本书,现在才读完2.5本,去年5月买的书还有两本没有读完,这些亏欠都需要在脱离电脑的舒服之后才能想起来,也才有可能完成。
慢下来。