克莱's profile克莱沃曼PhotosBlogListsMore Tools Help

Blog


    September 24

    Facebook Application的开发

    最近比较闲,没什么事情可做,就随便看了看facebook的F8到底是怎么回事。本来是有一些idea来做一些东西出来的,可是facebook不提供web host, 需要自己来提供。可是自己又没有找到合适的,所以就蜻蜓点水看了看,没有具体深入下去,可能有些理解也存在着错误。

    首先F8的最大的优势就是提供了一个Web上的平台,就相当于PC的windows一样,可以把Web上的各式各样的应用,服务集成到它的这个统一的平台上来。这个平台的实现技术个人认为应该不会太难,Facebook可贵之处在于在微软,Google,Yahoo等等网络巨头之前把这个平台实现了,并且受到了广泛的支持,欢迎和应用。这个时间差还是非常重要的,正如当时的Google的Search Engine和AD system的率先实现,使得现在微软花这么大的力气都不能动摇Google的这个优势。因此,Facebook现在成为了最炙手可热的新兴公司,其价值竟然达到了60个亿美金,还不卖。

    在Web应用/服务上,最最基本和重要的就是用户群了。Facebook的特点就是采用实名,真实的个人信息,并且具有比较严格的审查制度。另外就是Facebook的应用特点也使得匿名用户在上边不会获得太大的乐趣。就如一个同学聚会,大家都互相认识,突然闯进一个陌生人,大家会怎么看待他呢?因此,Facebook基本杜绝了我们在Web上深恶痛绝的马甲这些东西,使得每个人都变得真实。所以,Facebook也就积攒了大量的忠实用户的群体。我见过不少人,刚上来的时候是假名,没多久就改称真名了,因为大家都用真名,他用假名就有种鬼鬼祟祟的感觉了。Facebook的用户基础对于它的未来非常的重要。不可否认,微软,Google完全有实力做出更好的平台出来,可是想把Facebook的用户拉到自己的系统将会是一件非常困难的事情。甚至可以说,如果Facebook真的能在现在的基础上好好的发展,有可能确立起Web上的平台霸主地位,从而成为下一个Google。

    说了这么多好话,我认为Facebook目前还是有一些问题的。由于Facebook采用的是开源PHP技术,使得Facebook整体的感觉比较简单,单调。我对PHP不是特别的了解,但是功能应该没法跟Java,.NET相比。所以,我不清楚从长期的发展来看,从技术的角度来看,Facebook是否能够保持优势。毕竟,它是依赖于开源PHP技术的。当然了,Facebook的成功也会推动PHP技术的发展,也许能够发展越来越好。可是开源的技术总让人感觉心里不放心。另外就是Facebook目前有4000多个Application,而我感觉真正吸引人的并不多。实际上我也只是用着一个除了Facebook以外第三方App。主要的原因就是开发这些App的集中在了个人和小公司,好像没有大公司在真正支持。因此,开发能力和App的吸引力都不是很强。我还是希望能有人把大公司的服务也集成进来,而且要很好的集成进来,这样的话Facebook就可以成为网络用户的入口网站,用户可以在Facebook上做任何自己想做的事情。本人的idea就是想把微软的Live服务集成进来,比如hotmail, live space, messenger 等等。相信如果能做出来的话,会有很多人去使用。

    Facebook还有一个局限就是App的位置,它的整体页面布局很固定,App得到的只是整个页面的部分页面,因此页面的设计受到了一定的限制。不知道能不能让App占有整个的页面,可以采用浮动菜单等技术,缩小Facebook固有的界面。也不知道PHP是否具有这些功能。另外一个局限就是Web host, 开发人员需要自己来提供。我准备采用.NET技术,可是搜索了好长时间也没有找到一个合适的。目前只是爱好,还不想采收收费的服务,可是免费的往往有很多的限制,使得开发Facebook App成为不可能。前几天有消息说,Facebook可能会自己提供storage服务,真希望是真的,这样的话他们会增加大量的开发人员,这是一个很好的策略。

    说了很多自己对Facebook的看法,现在说说Facebook App的开发。F8的框架就是Facebook负责把你的网页显示给用户,而你负责自己的business logic。因此,你需要一个web host, 需要得到Facebook信息的时候调用API, 生成页面之后返回给Facebook。Facebook 自己设计了一套“Facebook Markup Language”,简称“FBML”。这个是在HTML里面加入了Facebook自己的elements and tags, 用以显现页面。

    我采用的是Visual Web Developer 2008 Express Edition 和 CodePlex的Facebook Developer Toolkit. ToolKit里包含三个dll, 一个封装了Facebook API, 一个包含了3个Web 控件,另一个包含了三个桌面控件。通过这三个API,你可以很方面的开发Facebook Web和桌面的App。

    目前就是要找到一个免费的.NET Web host, 如果谁有这方面的信息,一定要通知我呀。

    September 21

    以System帐户身份运行应用程序的三种办法 (转)

     

    SYSTEM帐户是系统中的“太上皇”,其权力甚至凌驾于管理员之上,很多操作系统的组件(例如SMSS、winlogon等),还有许多服务,都以SYSTEM身份来运行。在我们登录系统之前,SYSTEM帐户就已经存在于系统上。在命令提示符下运行PsLoggedOn命令,可以看到SYSTEM帐户已经在本地登录,如下图所示。
    本文将介绍以SYSTEM身份运行应用程序的方法,在讲述之前,先说说为什么要这样做,原因有二:
    ⑴ 不少系统资源只有SYSTEM帐户才有权限访问,例如HKLM\SAM注册表项和系统还原的工作目录C:\System Volume Information等。如果能够获得SYSTEM权限,就可以访问这些原本只向SYSTEM帐户“特供”的系统资源。
    ⑵ 如果应用程序可以运行在SYSTEM上下文,则该程序可以在注销以后继续运行,方便我们执行一些特别任务。
    本文介绍三种提升进程运行特权的方法,以帮助读者更好地利用SYSTEM帐户(本文假设在Windows XP Professional上进行操作,并假设所涉及的命令工具都安装在默认路径)。
    1.PsExec命令提升进程特权
    我们可以借助PsExec命令工具以SYSTEM身份运行进程。我们已经知道只有SYSTEM帐户才能访问C:\System Volume Information文件夹,所以这里可以借助PsExec命令打开CMD命令提示符窗口,然后在命令提示符下运行DIR命令查看该文件下的内容,步骤如下:
    ⑴ 以管理员身份登录系统,打开CMD命令提示符窗口。
    ⑵ 在命令提示符下运行以下命令,以SYSTEM帐户身份打开另一个CMD窗口。
    PsExec -i -d -s CMD
    ⑶ 在新打开的命令提示符窗口下运行以下命令:
    DIR /a "C:\System Volume Information"
    即可查看C:\System Volume Information文件夹下的内容,如下图所示。这说明当前的命令以SYSTEM帐户身份运行。
    提示 如果对以上结果有所怀疑,可以打开任务管理器,然后在“进程”标签页查看CMD进程的用户是否为SYSTEM。
    2.AT命令提升进程特权
    由AT命令启动的计划任务,默认以SYSTEM特权运行。这里举个例子,借助AT命令以SYSTEM特权启动注册表编辑器,以便查看HKLM\SAM注册表项。
    ⑴ 以管理员身份登录系统,打开CMD命令提示符窗口。
    ⑵ 假设当前系统时间是13:19。
    ⑶ 然后运行以下命令,让系统在13:24时自动启动注册表编辑器:
    at 13:24 /interactive C:\WINDOWS\regedit.exe
    命令参数/interactive表示以交互模式启动注册表编辑器,必须加上该命令参数,否则将无法看到启动的注册表编辑器。
    ⑷ 到了下午13:24,就会自动用LocalSystem帐户的身份启动注册表编辑器,然后尝试访问HKLM\SAM注册表项,现在应该可以看到其下的内容。
    提示
      ⑴ Internet上的某些脚本文件声称可以提升系统权限,其实质就是运用AT命令。
      ⑵ 尽管可以用“Schtasks /ru SYSTEM”命令以SYSTEM特权运行某个进程,但是这时候无法以交互模式访问进程,也就是说我们无法看到以SYSTEM特权运行的进程。
    3.把应用程序安装为服务
    由于服务可以运行在SYSTEM特权下,所以我们可以将应用程序安装为服务,并且使服务以SYSTEM帐户的身份运行。举个例子,我们可以将注册表编辑器安装为服务,以SYSTEM帐户身份运行。