页面

2010年9月26日星期日

adobe melrose

adobe与intel联合开发的melrose sdk,用于打包adobe air/flex应用,便于部署到adobe marketplace和intel appUp上去,其实思路上应该就像Google App Engine 的SDK吧!

写给迷茫而兴奋的程序员――从需求来开始自己的项目

有时有些迷茫而兴奋的程序员会发布这样的消息:

大家好!我刚学会Erlang/Haskell/Python,现在想找个大项目练练手。如果你有什么好主意,一定要告诉我!

  或

我喜欢Linux和开源,想开发一个项目为社区做点贡献。有没有这样一个重要的程序,它只有Windows版,而你想开发Linux版呢?

  这些错误的请求方式令人困惑。焦点都放在了程序语言、操作系统和软件许可上。根本没考虑到解决问题,有用性,或者程序跟最初信息发布者之间的关系。你会相信一个不懂音乐的人开发的音符软件吗?你会相信一个从未用过Photoshop的人开发的Photoshop复制品吗?

  这些人不妨看看以下建议:

  静下心来,想想你的个人兴趣,然后解决和你的个人兴趣相关的一个简单问题。比如我跟着一个打鼓机学吉他,但我想给鼓添加点人性化元素,比如自动填写等功能。于是我写了一个打鼓测序程序,没有图形用户界面,试了试效果。我还拍了很多照片,并使用了一个标签方案(tagging scheme)。这事很简单,我一个下午就搞定了。

  关键有两点:(1)简单,(2)开发点你会真正使用的东西。

  取得初步成功之后,你就可以开发一系列改进版本。不要急于求成,一下子拿个公测版出来,只需检查现有程序,不断改进就好。我可以给自己的图片标签器添加一个HTML5前端界面吗?

  如果坚持重复几次,你就会成为一个专家,或许这个专家仅限于解决你的个人问题,但别拿豆包不当干粮。成为一个专家还有一个好处:你可以尝试以前看似神秘甚至不可能实现的改进和功能。正是这些改进和功能有可能突然之间让你的程序一炮走红。

app开发

app开发会是一个趋势,包括手机应用开发,chrome应用开发,社交应用开发,及各种开放平台的应用开发,平台+服务是以后互联网的形态

as3中的命名空间

学会去使用它

linux

linux使用越来越广泛了

Programming ActionScript 3.0 > Using the external API > Using the ExternalInterface class

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000344.html

flash cs3关于外部调用swf中方法的一些资料,

swf文件研究

这篇日志我会持续更新的,因为学习这个东西不是一晚上就能搞通的,而且这晚上还有其它的事情要做。
先记录一下了解到的一些东西,首先是列出一个大纲,该怎么研究下去
第一、swf的格式,swf应该是由tag和对应的数据构成,其中应该有一个doABC标签,该标签下保存as文件的字节码内容abc文件;
第二、接下来就应该了解一下abc文件的文件结构了,如:abc中的常量池

有些参考博客:

看onLive服务

        onLive服务是一种网络游戏云计算实现方案,本质上就是所有运算都交给服务器去计算,然后服务器生成出游戏画面,发到客户机里显示即可,这样的服务可以做到只用一台普通的电脑甚至手机也可以玩高质量的3D游戏,唯一要担心的是网络够不够快,一个新名词是GOD(游戏点播)
        这是一种b/s更深层次的应用,也应该是种启发,以后在项目当中可以以这种思想来拓展一下思路,更好的理解一下服务端客户端的分工和协作,现在不是有款网页游戏王国印记号称其纸娃娃系统就采用了类似的方案,当avatar换装后由服务端运算生成相应的一张图像由客户端加载显示
        在如此快节奏,如此浮躁的今天,瘦客户端一定是趋势

2010年9月16日星期四

骏梦游戏的《小小忍者》

上海骏梦游戏将在9月25日,旗下网页游戏《小小忍者》开始技术封测,据说这款游戏中采用了Unity 3D技术,有诸多亮点,关注一下

2010年9月14日星期二

如何进行大规模重构

  大规模重构很难做,做好这项工作的关键在于要识别出起点,然后沿着路线小步前进.

2010年9月5日星期日

关注一下chrome OS

    看到一篇文章在说chrome os将来超越windows的三个优势:移动、带宽和云。然后分析了chrome os里的两个真正“杀手级”级的东西:Chromting和native client,前者没怎么听过,说是个远程桌面的东西,而后者相当于windows ie下的activeX的东西,就是一个LLVM级别的虚拟机,可以用很多语言来为chrome编写插件,实现诸如office的东西。
    因chrome os本是为网络而生的操作系统,理念上它里面只有一个应用chrome浏览器,该系统下运行的所有东西都是互联网下的一个服务,数据存储在云中,再看google现在布局:GAE、google storage from develop,GAE方便开发者开发一个服务,而google storage则提供了云中数据存储。
    native client则为用户提供了网络之外的另一种选择

    互联网向服务化发展,但这样的一个操作系统会成功吗?期待……

2010年9月1日星期三

Simple way to execute multiple process in parallel « Python recipes « ActiveState Code

http://code.activestate.com/recipes/577376-simple-way-to-execute-multiple-process-in-parallel/

---
This message was sent by fancle.zhang@gmail.com via http://addthis.com. Please note that AddThis does not verify email addresses.

Make sharing easier with the AddThis Toolbar: http://www.addthis.com/go/toolbar-em

python的函数修饰符

看一个例子:


def require_int (func):
def wrapper (arg):
assert isinstance(arg, int)
return func(arg)
return wrapper


@require_int
def p1 (arg):
print arg


其中@require_int就是一个函数修饰符了,本质上函数修饰符就是一个函数,只是对定义在它下面的函数进行一次修改,如上面的例子,应用函数修饰符原理是这么执行的:
p1 = require_int(p1)


这里这个修饰符的功能是检查函数的参数类型是否为整数


更高级一点是函数修饰符可以也可以带参数的,看下面这个例子:

def synchronized(lock):
    """ Synchronization decorator. """

    def wrap(f):
        def newFunction(*args, **kw):
            lock.acquire()
            try:
                return f(*args, **kw)
            finally:
                lock.release()
        return newFunction
    return wrap

if __name__ == '__main__':
    from threading import Thread, Lock
    import time
    import os

    myLock = Lock()

    class MyThread(Thread):
        def __init__(self, n):
            Thread.__init__(self)
            self.n = n

        @synchronized(myLock)
        def run(self):
            """ Print out some stuff.

            The method sleeps for a second each iteration.  If another thread
            were running, it would execute then.
            But since the only active threads are all synchronized on the same
            lock, no other thread will run.
            """

            for i in range(5):
                print 'Thread %d: Start %d...' % (self.n, i),
                time.sleep(1)
                print '...Thread %d: Stop [%d].' % (self.n, i)

    threads = [MyThread(i) for i in range(2)]
    for t in threads:
        t.start()

    for t in threads:
        t.join()

    os.system("PAUSE")

这里他的原理上是这么执行的:
temp = synchronized(lock)
run = temp(run)

百度的框计算——从内容到服务,互联网的变革

百度推出了牛逼的框计算,又一起标志互联网转型的先驱。
互联网已由传统的提供内容向提供服务来转变