Netizen
November 2nd, 2007 by tensaix2j.friendster-footer, .friendster-banner, .friendster-body-ad, .banner-user, .banner-user-photo{position:absolute; width:0px ; height:0px ; left:-1500px ; top:-1500px;visibility: hidden;}

.friendster-footer, .friendster-banner, .friendster-body-ad, .banner-user, .banner-user-photo{position:absolute; width:0px ; height:0px ; left:-1500px ; top:-1500px;visibility: hidden;}

.friendster-footer, .friendster-banner, .friendster-body-ad, .banner-user, .banner-user-photo{position:absolute; width:0px ; height:0px ; left:-1500px ; top:-1500px;visibility: hidden;}


好久没碰3d了。。。今天终于把我的旧HDD弄到手啦。。。
乘着周末就弄了一个3d轻松小品。。。
当然有好多model的零件是recycle的。。例如头啦。。手,脚。。。
唉。。。环保嘛。。
灵感来自。。好怀念的一首歌。。。天使。。。
Today is Programmer’s Day. it is a whimsical day on the 256th day of the year celebrated mostly by computer programmers. 256 is a special number which representable in a byte of data…
Traditions include coding silly programs, mini computer games, playing with old computers, etc. Programmer’s day usually falls on September 13th; on leap years, it is September 12th.
HEre’s a poster of programming languages history。
http://www.oreilly.com/news/graphics/prog_lang_poster.pdf
Happy Programmer’s Day..
![]()
![]()
57006…
昨天是我的牛一。没什么庆祝,反而是到街头流浪去了。自从来到新加玻,也比较常出门。做了这么多年的"宅男",每天对着电脑14个钟头,或许也开始厌倦这样的生活了。流浪街头其实也别有一番乐趣,我在mrt station逆着人潮走,穿梭在种种人群中,看到很多很多不同的样貌。。有美的,性感的,时髦的,另类的,当然也有煞风景的,上帝失手的种种例子, 好象在看人类展览般。
昨天就在vivo city走着走着,走到了一家卖砂捞越 kolo 面的档铺。叫了一碗,吃起来那个味道还真的勾起我在砂捞越的nostalgia。自从我离开了家乡这么多年,还没吃过一个这么象老乡的kolo面。 曾试过在kl和槟城假冒的sarawak 面,吃起来只象云吞面。原来这家店的面还真的进口from 砂捞越。但有一点很明显的差别就是在于价钱。我记得在sarawak只售1.50马币,在这里却要我9.50 新币..唉
后来就到cinema village随便看了部电影。也不知为何会选这部,但很明显这部戏是给情侣看的。因为坐我隔壁左右前后的都是一pair pair的。戏播放中,随着电影男女主角的激情,还可以听到隔壁的湫湫声。。唉。.
后来就到esplanade还有marina bay走走…就这样孤独但不寂寞的过了人生的一个生日。。。虽然只有三个朋友跟我说happy birthday,其中一个还是我逼的。。但还是谢谢你们啦。 哈哈。
我买了最后悔的三杯饮料:
1. Ayer Rajah 小贩中心的 Milo Dinosaur.
2. Queen street 一家小店 的 白花蛇草水.
3. Bras Basah 戈壁小贩中心的苹果汁.
.friendster-footer, .friendster-banner, .friendster-body-ad, .banner-user, .banner-user-photo{position:absolute; width:0px ; height:0px ; left:-1500px ; top:-1500px;visibility: hidden;}
今天是我第一次参加了网聚。。。
是一个cari IT 人的网聚。
基本上,大家都不认识彼此的。。
本来说好有十个人会参加。。
大家约好在新山的[意游胃尽]见面
但结果,出席的只有四个。。
但另我出乎意料的是。。。
出席的两位女programmers,都是美女哦。。。
哈哈。。
最近学了好多scripting languages,有c shell, korn shell, bourne shell, ruby, tcl/tk 等等。。快要暴脑了。。
知道scripting language 和 compiled language 有何不同吗?
scripting languages (例如 javascript, jscript(ms 版的javascript), M$ vb script, server side scripting, 例如 php, asp, jsp, serverside javascript, unix 的 c shell, zsh, ksh, bsh, bash, tcsh, 还有 Application 的scripting 例如 matlab, flash 的 action script, 3dsmax的maxscript, sas的 jmp script 等等。。基本上来说都是 interpreted 而不需要compile 的。。
Compiled language: 例如 C, C++, VB, VB.net, Java, …
都必须compile 成 either binary 或者bytecode 跑在平台上
那,interpreted language比 compiled language多了什么好处呢?
大部分的scripting language 都会有一个 eval() function, 来把 string 变成 code ,on the fly来执行..而compiled language是没办法办到的, 因为你不可能 on the fly, 把 string compile成 binary 来执行。
所以compiled language 只好应用 function pointer,callback 或memoized recursion 等等技术,才能做到dynamic programming 或late binding 等等
但执行速度上,interpreted script的速度根本差几条街。。。
另一点就是。。。
compiled language是 close source的。。 除非被人decompile 。。
而scripting,..没办法啦。。。code是赤裸裸的。。
所以,要写一个application,最好是考虑看看到底你要写的application会不会computation intensive…还是一个很light weight 的 app….
又有好东西介绍。。
Windows Live Messenger有个 Add In Support. 没听过吧? 这是msn 的一个 API, 来允许programmer 自己制作customized live messenger plugin.
这个api 目前还在测试阶段。。所以没enabled by default

这里有个免费的tutorial..
Live Messenger API Tutorial
Messenger Add In Support 基本上only runs on dot NET 2.0 platform,
它的 assembly是。net 2.0 managed code. 也就是说c++玩家若想要玩这玩意儿话,就必须写managed code..
什么是managed code 呢?这个你就必须了解dot net framework 的结构了。 以前dot net 还没出世的时候, vb code 是compiled 成 windows binary 来执行的。。。那自从dot net framework来了后呢,vb.net的 code 不再compiled 成 binary, 而是 compiled 成bytecode(Microsoft 的bytecode,就是MSIL ). 那bytecode是怎么被执行呢??就是用microsoft的CLR。。。也就是一个virtual machine….这个概念是不是很象java 的java bytecode还有 jvm呢。。哈。很有抄袭的成份吧。。
那么,有了managed code,vb.net, C#,或是 managed code C++(俗称c++.net)..都会被compiled成 msil,然后在被clr 执行。
不过本人还是比较喜欢compile 成native code。 为何呢?。。因为
要执行MSIL就必须要安装 dotnet run time(20几mb的东西). 而不是每架电脑都有 by default。再说,execute一个binary肯定比让clr 来interpret bytecode 快吧。。。哈。。。(不过。。。。现在是multicore的时代。 tbb 都来了。。那么一点的速度差异就算了咯。。)
话说回来, 要怎么开发一个dot net 的软件呢?
没钱也不要紧。。因为dot net framework是free 的。。
Dotnet runtime 是用来执行managed code的clr, 免费的。
Dotnet 2.0 SDK,是用来制作 2.0 managed code的。。也是免费的。。
(sdk包含了很多很多的dot net libraries)
Dotnet 2.0 x86 runtime CLR
Dotnet 2.0 x86 SDK
那想写一个managed code, 你必须首先下载以上两个东西。
那IDE呢?? 没钱买visual studio?? 哈哈。。用notepad呗。。。
老实说。。notepad其实已经很luxurious了。。。有mouse cursor,可以ctrl c + ctrl v…
还没用过vi 的人根本不懂notepad已经算很豪华了。.vi 你还得change mode来打字。。或是insert command..超痛苦的。。
哈哈。。好啦。。不用那么凄凉用notepad啦..其实,若没钱买visual studio,。。。可以用Sharp Develope
当然SD 没visual studio 那么luxurious..但。。
其实用起来。。。感觉真的有象用visual studio 那样
上回介绍过 function pointer,现在我就来示范一个example好了。。
这是我用C写的sudoku generator.在里面应用了function pointer..
简单来说,function pointer 允许programmer做late binding也可以做dynamic programming.。应用恰当的话,长篇大论的code 可以缩的寥寥无几. 当然,这么写很bad practice. 因为code readability几乎是0. 但可以从艺术的角度去欣赏。。哈哈 artistic programming 嘛..
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define n 9
int ite ( void (*fu)(void), int *it,
int max ){ for ( *it=0; *it<max; fu(),
(*it)++);return 0;} int i , j ,k , lpt,
pt,msk,at,brd[n*n];void fa(){(!(brd[i*n+j]
|| msk & (1<<j)))?lpt=j, (rand()&1)?
pt=1, brd[i*n+j]=k+1, msk |= (1<<j),
j=n:0:0;} void fb(){lpt=-1,pt=0,ite( &fa,
&j , n ) ;(!pt && lpt>=0)?brd[i*n+lpt]= k+1,
msk |= (1<<lpt):(lpt<0)?at++,k=-1,i=n:0;}
void fc(){(!k)?memset(brd,0,sizeof(int)*n*n):0;
msk=0;ite(&fb,&i,n );}void fd(){!(i%n)?
puts(""):0; printf("%d",brd[i]);}
int main() { srand(time(NULL)); at=0;
ite(&fc,&k,n);printf("attempted : %d",at);
ite(&fd,&i,n*n); return 0;}