Monthly Archives: October 2009

Ubuntu 9.10(karmic) 升级源(sources.list)

备份软件源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

编辑软件源:

sudo gedit /etc/apt/sources.list

更新软件源:

sudo apt-get update

#—– contents of sources.list  —————————————————————#

#传说中的中国科技大学 5M/s
deb http://debian.ustc.edu.cn/ubuntu/ karmic main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ karmic-backports restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ karmic-proposed main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ karmic-security main restricted universe multiverse Read more »

将编译好的iPhone程序的PNG还原

iPhone程序包中的png文件是经过处理,不能直接查看。

如果一定要看!!!好了,这个工具能满足你的好奇心。

Name: iPhonePNG
Usage:  ./iPhonePNG <input>   input 可以是单个png文件也可以是文件夹
download:  iPhonePNGdecoding

以下链接能了解更多这个格式的细节:

Wiki for this png format
The author’s post for this tools

用 Redmine 管理iPhone项目中过多的图片文件

XCode 项目管理估计是人见人恨,如果是一堆人一起做一个项目。真会被项目文件整疯的。

而如果项目中有大量图片(数百张级别),并且频繁更新。那你完了。

之前的流程是这样的:美工更新了图片到服务器共享文件夹,然后程序部再取下来更新项目中对应的图片或添加。步骤繁琐,而且更新不及时,非常影响程序部的效率。

然后计划给美工找个 osx 下简单好用的svn管理工具,找了多款也不满意。最后就诞生了这个简单的基于redmine的小插件。

Redmine Image SVN plugin

Redmine Image SVN plugin

Read more »

厚积薄发一回

感觉这一年来一直霉运不断。

找了个画室学画画结果大失所望。

好不容易求了次佛结果那个签回家就丢了。

然后然后考试没报上名。

然后然后看演唱会被人捡走点米。

然后然后请假回去考试送礼居然没过。

倒霉来了真是无法阻挡。

这次终于等到风水轮着转的时候。

辞职是个正确的决定,不过下回是做iPhone 还是做 rails  着实难以抉择。

前几日看到Javaeye招聘一个rails程序员, 特鸡东。感觉就是给自己量身定做的,不过想想自己做了这么久iPhone就这么丢了,舍不得的很。

然后突然收到个老朋友的信息,还是Rails,可是那工资确实很吸引人,环境貌似也不错。这下迷糊了。当时义无反顾的从Rails 转到 iPhone ,没什么理由,想到了就想做而已。这次是否该回头呢?

一个在北京搞iPhone游戏的朋友告诉我:我看来这是一个巨大的趋势和商机。当然,并不能强迫你也这么看。

如果你iphone游戏开发的趋势看不清。整个手机游戏开发的趋势却是清晰的。android平台等等都在搞。网游也正在往这里发展。

中国的手机游戏业基本就是0.游戏现在主要看美国和日本厂商。这个现象是不正常的。我们有人力资源的游戏,最后的整个业界的平衡应该是中国至少占1/4江山

还是很难决定,但是至少事情在向着甚至比我预期更好的方向发展,不是吗?嘿嘿嘿

iPhone 组件模板(设计用)分享

还在设计iPhone程式时在草稿纸上涂鸦吗?你out了,使用这款iPhone组件模板并配合OmniGraffle这款软件,只需简单几步就可以设计出原生的iPhone程式界面了。

预览图

预览图

Read more »

[每日一兔]萌萌

第一辑诞生!见图。

rabbit01

rabbit02

附送本人头像一枚:

xhan‘s avatar

是或不是

Do or do not . There is no try

Do or do not . There is no try

look at me

look at me

Age is of no importance

Age is of no importance

William Shakespeare :

To be, or not to be: that is the question:
看图不说话。做抉择始终是困难的,这不像游戏可以在分叉路上存个档案。

2009年10月15日

PM 1 0:00  ,离开公司。36秒从18楼回到陆地,然后步行回家,结束一天的生活。
工作以来的状况大致如此,周而复始。

在学校最后一段日子仍然历历在目,一转眼居然已过去4个月。

现在,22岁或23岁。

理论上应该在今年7月份毕业,受益于大二那年复变函数的关照,至今尚未脱离苦海。期待着11月份第6次(大致是这个数字,年纪大了对数字越来越不敏感了)考试的来临。我不明白为什么念大学,学高等,学复变函数,学高等物理。甚至疯狂喜欢的计算机技术在老师口中出来也变的如此苦涩无味。逃课,玩游戏,吃饭睡觉,挂科,补考,重修不断的轮过4年,悲剧的是居然最后忘记报名参加毕业清考(当然有学校垃圾教务系统的原因)。

每次想起这段就特揪心,甚至身边还有许多毕业了连cpp文件怎么打开都不清楚的人,4年前的我们可是多么的牛逼闪闪。是大学毁了我们还是我们自甘堕落。我没有勇气学人家辍学,我不忍心看着自己的4年连个凭证都没留下,更不忍心告诉家里人自己连毕业证都没拿到。11月!我保证是最后一次去长沙了。

好歹好歹在学校没忘记程序这个东西,大二暑假在校acm培训的那段时间才真正领悟到原来程序可以写的这么简约和美丽。大三暑假开始实习,因曾玩过 _why 大侠的 TryRuby ,义无反顾的跑到杭州从零开始学 RubyOnRails 搞web搞 saas 。非常感激那段时间的磨练,从上班到下班没一点时间偷懒。后来去广州实习做JAVA开发,也是不懂 JAVA,JSP 纯粹抱着去大公司看看的想法而去。临近毕业突然决定去找份做iPhone的工作,然后就来到了现在的公司。

4个月快的有点无法相信。目前水平个人认为还是蛮不错的,不过没有预期中成长的好。由于项目使用了完全独立非系统的ui ,所以花费了大量时间在 UI 制作上,反而对iPhoneOS其他功能上的API了解不多。我们自己实现了带动画+UI的大部分组件。基本上把系统的逐渐自己重新实现加强了一遍。如果哪天公司允许开源绝对是个国内版的 Three20 。抛开复杂的UI ,功能层也相当复杂,大量的delegate,notification, 自己实现的HttpClient, image cache 成果也不少了。

下个月9号即将离职,决定自己在app Store 上拼一波,也好不用压抑积累了一堆的创意。同时也要把我之前的承诺 O2Jam Mac 完成。

今天突然收到个消息,说之前接的游戏外单(部分功能)那游戏卖的不错,觉得挺欣慰。不过一直不敢和他联系因为再那后又给我发了个单子而且是个完整的游戏,当时欣然就接了下来(原则:不放过任何机会)。结果后来发生的事情(请假回学校考试,结果居然没过,哭- – )以及工作实在太忙了导致我连策划都没写,就这样慢慢拖拖到不敢联系了。

这个教训是量力而行,道理是人都懂,能否领悟和执行就是另一码事了。

今天上 personalDNA.com 做了个心理测试,许多生词,还有些能看懂不知道啥意思的句子。虽然有这些因素的干扰出来的结果还是蛮能激励我的 :

You are a Considerate Director.


总有一天我可以笑傲江湖。

「以上今天都指的是14日,钦赐]

#update:工作时间算错了,这个月干完才是满4个月~

PlutoCMS! 基于ROR的内容管理系统

此为本人毕业设计,使用的是 Ruby on Rails 框架。

项目代码托管在 google code 上 http://code.google.com/p/plutocms/
(已停止更新,如果有机会重新启动我会把项目挪到github上)

本站下载: http://ixhan.com/kill/plutocms.tgz

让iPhoneApp发送带图片附件的邮件

更新(Nov 9,2009):

在3.0系统中,sdk 提供了 MFMailComposeViewController 来显示发件界面,并提供附件功能。

if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mcvc = [[[MFMailComposeViewController alloc] init] autorelease];
mcvc.mailComposeDelegate = self;
[mcvc setSubject:@"Here's a great photo!"];
NSString *body = @”<h1>Check this out</h1><p>I selected this image from the <code><b>UIImagePickerController</b></code>.</p>”;
[mcvc setMessageBody:body isHTML:YES];
[mcvc addAttachmentData:UIImageJPEGRepresentation(image, 1.0f) mimeType:@"image/jpeg" fileName:@"pickerimage.jpg"];
[self presentModalViewController:mcvc animated:YES];
}

在程序中如何启动系统的Email程序并在内容中添加图片附件?
以下是代码:

- (NSString *) base64EncodingWithLineLength:(unsigned int) lineLength data:(NSData *)imgData {
static const char *encodingTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
const unsigned char *bytes = [imgData bytes];
NSMutableString *result = [NSMutableString stringWithCapacity:[imgData length]];
unsigned long ixtext = 0;
unsigned long lentext = [imgData length];
long ctremaining = 0;
unsigned char inbuf[3], outbuf[4];
short i = 0;
short charsonline = 0, ctcopy = 0;
unsigned long ix = 0;
while( YES ) {
ctremaining = lentext - ixtext;
if( ctremaining &lt;= 0 ) break;
for( i = 0; i &lt; 3; i++ ) {
ix = ixtext + i;
if( ix &lt; lentext ) inbuf[i] = bytes[ix]; 			else inbuf [i] = 0; 		} 		 		outbuf [0] = (inbuf [0] &amp; 0xFC) &gt;&gt; 2;
outbuf [1] = ((inbuf [0] &amp; 0x03) &lt;&lt; 4) | ((inbuf [1] &amp; 0xF0) &gt;&gt; 4);
outbuf [2] = ((inbuf [1] &amp; 0x0F) &lt;&lt; 2) | ((inbuf [2] &amp; 0xC0) &gt;&gt; 6);
outbuf [3] = inbuf [2] &amp; 0x3F;
ctcopy = 4;
switch( ctremaining ) {
case 1:
ctcopy = 2;
break;
case 2:
ctcopy = 3;
break;
}
for( i = 0; i &lt; ctcopy; i++ )
[result appendFormat:@"%c", encodingTable[outbuf[i]]];
for( i = ctcopy; i &lt; 4; i++ ) 			[result appendFormat:@"%c",'=']; 		 		ixtext += 3; 		charsonline += 4; 		 		if( lineLength &gt; 0 ) {
if (charsonline &gt;= lineLength) {
charsonline = 0;
[result appendString:@"\n"];
}
}
}
return result;
}
- (void) emailButtonPressed:(id)sender {
NSString *body = @"";
NSData *imageData = nil ;
NSString* dataStr = nil ;
for (PhotoItem* item in _photoBoardView.itemsSelected) {
imageData = UIImageJPEGRepresentation(item.photo.image.image,0.9);
dataStr = [self base64EncodingWithLineLength:0 data:imageData];
body = [body stringByAppendingFormat:@"<strong><img src="data:image/jpg;base64,%@" alt=" image" /></strong>",dataStr];
}
body = [body stringByAppendingString:@""];
NSString *encoded = [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *atitle = [[@"" stringByAppendingFormat:@"title: %@", @"Image "] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString * urlString = [@"" stringByAppendingFormat:@"mailto:%@?subject=%@&amp;body=%@", @"",atitle, encoded];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
}