成为设计师

####Hack design的建议 首先,design无处不在,它的目的是提高产品使用者的效率和易用性的。它不是一个“运用之妙,存乎一心”的东西,它是一个实实在在可以通过学习来获得的能力(正如编程或者写作或者厨艺一样,当然,如果一个人把精力和心血放在编程上,同样可以将编程做成一个“运用之妙,存乎一心”的东西。) 什么是一个好的设计?下面是设计师Dieter Rams给出的10条原则: 创新性 使产品有用 美学 使产品可以被理解 不那么引人注目 诚实的设计 可持久的 彻底,纯粹 尽量做小的设计 环境友好 这里有原文的链接,总而言之,设计不仅仅是一个web页面,一个海报,所有的产品都会有不同程度的设计包含在其中。 ####Alex的建议 想想你觉得“好看”的页面为什么好看,是字体,配色,背景色,布局还是其他?把这些记录下来,并在自己后续的设计中尝试使用。 多看一些优秀的设计,比如web页面,如果你发现上边有一些很感兴趣的特性,或者细节,比如这个菜单看着很漂亮,后者标签功能很炫,你可以用chrome的inspect来查看别人使用了什么样的HTML,又apply了那些CSS,做出了这样的效果。 如果在这个过程中,遇到一些没有见过的标签,或者标签的属性,那么去w3school上查看一下这些标签/属性的含义,尽量使用这些Tag原始的意义(设计时的初衷)。 比如div,它是divider的缩写,本来是用来分割块的,那么就用它来做分割,比如p(paragraph)标签,用来分段,可以将文字放入其中。这些都是HTML标签的设计初衷,我们应该尽量遵循,在实现的时候,如果使用原始的标签很难实现,那么可以尝试一些比较trick的方式来绕过,但是毕竟并非正途。 最后,design和编程类似,你需要不断的练习,自己动手多尝试,在研究了别人的实现之后,自己最好做一个示例出来。 ####其他人的建议 最近读到的一篇写的非常好的文章,作者也是一个有开发背景的设计师,因此有很多地方可以借鉴: 在转向designer的同时,不要丢掉编程 按照一定的顺序来学习design(可用优先,性能优先) 设计一切见得到的东西 和其他人一起讨论设计,并聆听别人 尝试分享,尝试将自己的设计讲给别人

March 26, 2013 1 min

关于项目上的HackDay

在我们的项目上,会定期的举行Hackday活动。每三个月举行一次,每次正式时间为两天,每次的hackday都有一个主题,比如对某个业务模块的数据挖掘,关于某个模块的功能/执行效率的改进。

March 22, 2013 1 min

使用Heroku开发Web应用

###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端口上运行,此时可以做一些简单的验证,保证应用程序运行正常。...

January 26, 2013 1 min

我需要慢一些

慢一些的生活 某个晚上,我在网上为自己挑选一个适合出差的行李箱,两个小时之后,我突然发现我停留在了一个瑞士军刀的淘宝店里;本来计划晚上看看AppleScript的资料,结果一个小时之后,我在用python写一个opencv的小程序,又过了一个小时,我停留在Alfred的PowerPack的支付页面,面对着15英镑的价格陷入沉思。 而且周围好像每个人都有这样类似的经历。我咨询其他同事遇到类似的情况怎么处理,有人推荐使用Todo列表,而且Todo最好列在纸上。当列表中的Todo被消灭时,会激发你去写下更多的task。这当然是个好办法,我很早的时候就写过一个软件来完成Todo管理:sTodo。但是当打开电脑之后,时间就完全不受控制了,网络上总是有各种各样好玩的东西,新的框架,新的语言,某种颠覆式的CSS框架,新奇而好用的软件,可以大大提高用户体验的UI库,太多了……。 上周三的晚上,回家之后打开电脑,开始了“学习”,事实上是很盲目的在网络上游荡,当我意识到又要重蹈覆辙的时候,我毅然的合起了电脑,然后拿起一本纸质的《JavaScript: The good parts》。最后当我要睡觉时才发现,读了大概30多页,而且以前的一些概念也更加清楚了。而且事实上我并未因为没有打开计算机而有什么实质性的损失。 然后我突然意识到我之前的所谓的学习的方式有很大的问题,网络当然可以为你提供大量的信息,但是很多时候,这些呈碎片装的信息的作用并不如预期般的大。它会帮你解决手头的小问题,但是阻挡了你的视线,你本可以走的更远! 在网络上看资料,总是有一种紧迫感:这么多的东西都不会,落后于时代好多年。打开电脑,一个晚上过去了,你可能读了很多的东西,但是记下来的非常少,因为总是会被各种链接,图片等干扰,这个看似在学习的过程事实上完全是在浪费实践,一天之后,你前一个晚上看到的东西几乎被完全遗忘,然后周而复始。 所以,是时候慢下来,你不会因为没有浏览几个网页,或者少读几篇文章而落后于时代几十年的,你需要好多年才能积累起来的知识,别人同样需要好多年。 合上电脑,捧起纸质的书籍,世界突然慢了下来,但是却会充盈很多。事实上,放慢脚步,消除网络带来的虚假的紧迫感,反而可以以更快的速度掌握一项技术,一个框架,也可以让印象更加深刻。晚上回家尽量不带电脑,我用training经费购买的10本书,现在才读完2.5本,去年5月买的书还有两本没有读完,这些亏欠都需要在脱离电脑的舒服之后才能想起来,也才有可能完成。 慢下来。

January 9, 2013 1 min

基于OpenCV的数字识别

基于OpenCV的数字识别的一个例子

January 5, 2013 1 min