noark9 的开发小笔记
cocoa drawing guide学习第三集~总算是写到第三集了啊,看来drawing guide的学习分享应该是能完成的,不过看了看目录貌似还有第四第五第六第七第八的-,-…慢慢来:)
上一期想了想,总觉得是自己再笨拙的翻译,不过后来想了想,看了看,想了想,再看了看,再想了想,觉得自己还是吧一些重要的东西找了出来,也顺着把guide走了一遍,要是只是选出重点,或者选出怎么用來,那就是Cookbook了,所以大家别嫌啰嗦啊,我也是跟着学的,哈哈,不罗嗦了,正片开始。
这一集的故事是颜色和透明的,用好色,用好透,那画出来的界面,肯定杠杠滴。
Cocoa的颜色支持构建在Quartz的顶层,NSColor
类提供了创建和操作颜色的接口,其他的类提供了颜色和颜色空间的管理,以及在UI上选择颜色的控件。
关于OS X里面的颜色解析,颜色理论和颜色管理,还要看看Color Management Overview和Color Programming Topics,-,-要看的东西真是越来越多了,也不知道看完能不能成cocoa大师啊。
cocoa drawing guide学习的第二篇,预览了下,目测是坐标和变换(仿射变换),第一篇里面把coordinate想象成协调了。。。脑内老在用高达Seed里面的协调者(Coordinator)来脑补。。。于是老觉得怪怪的。。。今天终于想了想翻下词典,发现原来这个还有坐标的意思啊。。。。。。2b了啊-,-好了不扯那么多,正片开始了。
PS:关于啥是仿射变换→点我点我←
PPS:大家原谅下,其实part1只是想做读书笔记的,后来想了想还是写下记录下分享下,于是part1会比较粗糙。。。其实part2也很粗糙:P
mac应用里面窗口提供了一个用来绘图的坐标系,cocoa会把窗口移动、变化的情况处理好。每一个添加到窗口中的view都有一个自己的相对坐标系(原文是Local坐标系。。。难道叫菊部坐标系-,-不要不要XDDD),在绘制的时候只需要用view的相对坐标系,不需要和窗口的坐标系进行转换。当前已经有的坐标系可以用数学变化来修改。下面的内容就是讲cocoa怎么管理坐标系,并且使用仿射变换来处理绘图环境的。
开篇先简单说下,想要在blog中开主线把apple的一些自己感兴趣的guide好好学习一遍,最近在用的时候,发现绘图和动画方面确实缺了很多东西啊,但是不能像以前一样的半残的看看例子就开始用,还是想好好了解下例子。
这是cocoa drawing guide的第一篇,主要讲了cocoa drawing的基础知识和绘图上下文(Graphics Context,图形上下文)的基础知识。
文章的内容基于Cocoa Drawing Guide的内容以及自己对Cocoa Drawing Guide的一些翻译。
cocoa drawing由AppKit提供并且也兼容其他的模式:
Quartz,OpenGL,Core Image,Core Video,Quartz Composer,PDF Kit,QuickTime
最近一个项目,需要使用NSTableView显示一个列表,列表上显示用户头像和用户信息。在用户很少的时候,也就是item很少的时候,没啥问题,但是找了朋友的帐号来测试的时候,他的账号下有八百多个用户,这就让这个程序出现诡异问题了。在快速滚动的时候,出现了一个现象,当滚动停止时,列表上的头像不断的在变化,一直到变化到一段时间后,才会停止。
初步分析这个问题很奇怪,不过从问题的表象上来看,似乎是图片刷新的问题,Cell的文字部分似乎是不存在这个问题的。当然经过google了一段时间后发现,大家都是搞的UITableView的-,-UI**的。。。iOS这么火,Mac开发快成没人爱的孩子了。。。好吧,那还是自己继续研究了。
最近的工作里面,因为需要处理很多类似CSV之类的文本文件,让我突然想到了sed和awk这两个上古神器。并且在这两个神器的帮助之下,很多尝试性的工作减少了实际的代码编写量,毕竟脚本和C代码的代码量来看,脚本的编写要更加容易以及快速,在做一些探索性的尝试和对文本文件的处理上,是非常有帮助的。这一篇会随着我的使用慢慢的增多,我会慢慢给大家分享这两个神器以及其他的一些linux或是unix下一些工具的使用,所以潮一点就叫Cookbook了,这里面的命令很多是可以解决实际问题的,我也会对这些命令进行分析,告诉大家什么时候可以用、以及怎样用,同时也希望大家能对这些问题有更新更加优美的解决方法。
awk是一个文本流处理的工具,但是结合了awk,grep,sh以及一些常规的linux命令后,也可以实现通过awk输出shell的脚本,达到自动生成一些命令并执行的效果。
公司用的后台服务是tuxedo的,用过的人大概知道,服务配置太多了或者挂了的服务太多了等各种原因会导致整个tuxedo服务器挂掉,这时候tmshutdown
和tmipcrm
都已经失效了,那这时候怎么办呢——杀掉所有tuxedo用户下的ipc资源,那这样一个一个的清除会很麻烦,经过一段时间的Google发现了下面三条命令解决了这个问题
1 |
|
本文不是单独讲NSTableView如何使用,或是如何拖拽,或是其他的,我在参考了Apple的Guide以及一些资料整理后,综合运用NSTableView,NSPasetboard等一些基础技术,来告诉大家如何最简单最快捷的开始用起NSTableView,让新入门的童鞋们能够快速的吧自己的项目run起来,而不是再去花一两周去慢慢看文档了,当然要好好用文档还是少不了滴。
经过一段时间在iOS上的探索后,用自己在cocoa touch开发上半残的经验开始了cocoa开发的历险。在尝试了Button,TextField等基础的东西后,也基于最近在尝试的东西,决定试试当初在iOS开发上卡了好几天才想通怎么弄的TableView了。但是总觉得目前网上关于Mac app开发的资料非常少,主要是iOS太火了吧把Mac的光芒都掩盖了。参考了下Apple关于TableView,OutlineView(为啥是OutlineView,他两是一家子的)的Guide和TableViewPlayground的例子后,不敢说对NSTableView有多少了解,起码怎么用起来是知道了。
在Mac app的开发和iOS app的开发以及使用非常的相似,所以对应iOS上UITableView自然有一个NSTableView为Mac服务。而且其中的使用方法和使用的思想也是非常相似的。因此用过iOS上UITableView的童鞋们,对NSTableView肯定轻松上手了。
上面的图就是今天打算弄的Mac app的成品了,左边是分类,右边是分类下的东西,需要实现的功能包括了,左边选择左边分类的时候,右边显示分类下的东西,右边分类下的东西可以拖拽到左边其他分类中,右边分类下的东西可以拖拽到其他应用中(文本的方式),Add按钮实现在左边分类中添加一个分类并可以编辑名称。会弄的童鞋们肯定觉得这些功能小儿科了,嘛,这个还是挣扎了好几天才能有此结果啊,大家见笑了。
本文是对Felix Geisendörfer大神的Understanding node.js的一个翻译,主要是最近发现node.js这个东西似乎确实很强力,虽然不知道自己理解对不对,但是感觉,node.js和go里面最方便的一点就是把多线程以及web后端开发搞的更加容易了。下面正文开始,顺便说下本文主要自己学习的以及标题取得都挺洋气的就保留了,翻译水平不好,见谅啊=_,=,顺便说下,想学的同学可以去这里看看The Node Beginner Book
在我将node.js介绍给别人后,他们大多数有两种反应,一种是马上就了解了,另一种则觉得非常的疑惑。如果你是第二种人,那么我将试图这样来解释node.js是什么
node my_app.js
直接运行你的JavaScript程序