天生我才必有用

NET 4特性聚焦:并行编程

Posted in C# & .Net    作者:Ray    2008年十月22日

作者: Jonathan Allen 译者: 朱永光

通用语言运行时(Common Language Runtime,CLR)以锁、线程和线程池的形式为并行编程提供基本的支持。不过,随着多核CPU重要性的逐步增加,大家又重燃构建高级并行编程函数库的热情。

很多人现在都投身于函数式编程的世界,由于它们具有不可变的对象,以及与生俱来的线程安全属性。基于F#语言的HaskellOCaml可以归入此类。其他例如Erlang这样倍受大家偏爱的语言,是基于消息传递和轻量级进程的。除了支持F#外,微软也尝试了几种不同的方式,以需求并行编程的准确提炼。

最先公布的产品是并行LINQ(Parallel LINQ),也即所谓的PLINQ。类似对SQL的处理一样,并行的版本通过语言本身来处理,而无需开发人员的努力。通过把AsParallel附加到查询上,就能正常工作了。不过正如SQL一样,在这里通常还是需要设定很多额外的选项。

下一个出现的是结构化并行性语法(Structured Parallelism),这种技术会让人想起OpenMP。不过它不像OpenMP那样,使用编译器指令标记;微软的解决方案是基于匿名委托。最直观的反应就是代码只需作细微的修改;在“for”语句内的代码块,可以作为参数传递到“Parallel.For”函数中。

如果代码无法轻易地表示为查询或迭代循环,则可以选择任务并行库(Task Parallel Library)。乍看之下,它似乎是另外一种线程池,但它却支持任务之间的父子关系。

为了对应用程序进行更好地控制,微软提供了协调一致的数据结构(Coordination Data Structures)。它们为未来提供了线程安全的集合以及改良过的同步对象。

摘自:InfoQ

标签:

搜索机器人的PHP代码

Posted in PHP    作者:Ray    2008年十月21日
/**
* 判断是否为搜索引擎蜘蛛
*
* @access  public
* @return  string
*/
function is_spider($record = true)
{
    static $spider = NULL;
    if ($spider !== NULL)
    {
        return $spider;

    }
    if (empty($_SERVER['HTTP_USER_AGENT']))
    {
        $spider = '';
        return '';
    }

    $searchengine_bot = array(
        'googlebot',
        'mediapartners-google',
        'baiduspider+',
        'msnbot',
        'yodaobot',
        'yahoo! slurp;',
        'yahoo! slurp china;',
        'iaskspider',
        'sogou web spider',
        'sogou push spider',
        'feedfetcher-google',
        'yahoofeedseeker'
    );

    $searchengine_name = array(
        'GOOGLE',
        'GOOGLE ADSENSE',
        'BAIDU',
        'MSN',
        'YODAO',
        'YAHOO',
        'Yahoo China',
        'IASK',
        'SOGOU',
        'SOGOU',
        'Feedfetcher-Google',
        'YahooFeedSeeker'
    );

    $spider = strtolower($_SERVER['HTTP_USER_AGENT']);
    foreach ( $searchengine_bot AS $key => $value)
    {
        if (strpos($spider, $value) !== false)
        {
            $spider = $searchengine_name[$key];
            if ($record === true)
            {
            // do something
            }
            return $spider;
        }
    }
    $spider = '';
    return '';
}
标签: , ,

ffmpeg的安装及使用

Posted in 技术,网站设计    作者:Ray    2008年十月21日

ffmpeg是一个类似Imagemagick的工具,两者最大的区别在于:ImageMagick是转换图片,而ffmpeg主要提供视频的转换。同时两者也有一个非常相似的优点就是支持的格式很多,基本涵盖了所有流行的图片和视频格式。

不过ffmpeg有一个非常不方便之处,就是安装比较麻烦,在Linux系统中并非默认安装,特别是想在一些共享空间(Virtual Host)里使用可能非常的困难。

那 我们首先来讲如何在Windows系统里安装它,网上很多文章都洋洋洒洒写了很多,教你怎么编译这样ffmpeg。其实在Windows系统中进行 ffmpeg的编译是难得最高的,毕竟它是Linux的产物,在Windows下编译难度不言而喻。其实有很多替代方案可以使用,毕竟Internet是 个热心人的时间,通过Internet可以减少很多重复的工作。

  1. 你可以从http://sourceforge.net/project/showfiles.php?group_id=205275&package_id=248632下载已经编译好的版本。
  2. 你也可以安装ImageMagick,其中也包含了一个ffmpeg的binary执行文件。

如果想在Linux中编译,可以参考官方的说明。我们这里再介绍如何在虚拟空间(Virtual Host)中进行编译,其实编译的过程也非常的简单。可以参考DreamHost的Wiki中的一篇文章的介绍,http://wiki.dreamhost.com/index.php/FFmpeg ,按照步骤如果编译无错应该就没问题,不过国外的虚拟空间技术都比较成熟,不清楚国内的虚拟空间支持了如何。

最后讲2个ffmpeg的视频转换命令:

1.把视频转换成flv文件(这个用得最多,现在Flv基本上已经成了网络视频的标准了)

ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv 。

其中:

  • source:是原始文件的名字,可以是mov,mpeg,avi,wmv各类格式,ffmpeg基本都支持。
  • -s wxh: 指定视频的宽和高
  • -b : 设定视频的比特率
  • -aspect: 保持视频的比率。如4:3或者16:9
  • -y : 如果目标文件存在时,直接覆盖原有的目标文件。
  • -f : 指定转换的文件格式,这里是flv格式。(其实如果不指定文件格式,ffmpeg也会按文件的后缀名来进行转换)。
  • dest: 转换的目标文件名字,并不一定需要是flv,可以是mov,mpeg以及其他的常用格式。

2. 截取视频的某一帧保存为图片。

ffmpeg -i source -ss 00:00:06 -t 00:00:01 -r 1 -s 320×240 -f image2 -y dst.jpg

网上也提到了很多保存视频,但很难找到如何从指定的位置开始保存,很多视频的第一帧都是黑屏,所以如不指定起始位置容易造成保存了一副黑的图片。

  • -ss : 指定其实视频的时间: hh:mm:ss.xxx 其实还可以指定到毫秒级,不过看了下手册没找到怎么从指定的帧开始,不过这个可以通过换算实现。
  • -t: 指定保持时间长度,因为是图片,所以固定设为00:00:01。如需保持为gif动画,可以设定为其他值,具体实现官方文档有说明。
  • -r: 指定帧,这里指定为第一帧。
  • -s: 图片的宽和高
  • -f: 指定为图片格式
  • dst: 图片的名字。

先分享到这里,如有问题大家可以一起讨论。

标签:

Image MIME 参考

Posted in 网站设计    作者:Ray    2008年十月17日
image/bmp bmp
image/cis-cod cod
image/gif gif
image/ief ief
image/jpeg jpe
image/jpeg jpeg
image/jpeg jpg
image/pjpeg jpeg pjpeg
image/pipeg jfif
image/png png
image/svg+xml svg
image/tiff tif
image/tiff tiff
image/x-cmu-raster ras
image/x-cmx cmx
image/x-icon ico
image/x-portable-anymap pnm
image/x-portable-bitmap pbm
image/x-portable-graymap pgm
image/x-portable-pixmap ppm
image/x-rgb rgb
image/x-xbitmap xbm
image/x-xpixmap xpm
image/x-xwindowdump xwd

资料摘录:http://www.w3schools.com/media/media_mimeref.asp

标签:

IBM Page Detailer

Posted in 网站设计    作者:Ray    2008年十月15日

一个类似FireBug中的功能,用来分析网站性能。个人一直觉得Firebug内嵌在Firefox中,可能即是它的优点同时也是他的缺点,使用起来很多的屏幕被Firebug占据。现在有这个工具后,就可以对网页进行独立测试了。

下载地址:http://www.alphaworks.ibm.com/tech/pagedetailer/download

使用说明:http://www.ibm.com/developerworks/cn/web/wa-lo-pagedetailer/index.html

Microsoft Silverlight 2 RTM 正式发布

Posted in C# & .Net    作者:Ray    2008年十月14日

Microsoft Silverlight是一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NET的媒体体验和丰富的交互式应用程序。Silverlight提供灵活的编程模型,并可以很方便地集成到现有的网络应用程序中。Silverlight可以对运行在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。

包括以下新功能

  • .NET Framework支持完整.NET Framework的一个兼容子集
  • 内置了一些控件,包括DataGrid、ListBox、Slider、ScrollViewer、Calendar等等很多控件
  • 支持换肤和模板
  • Deep Zoom,能实现更具交互性和导航的超高分辨率图像应用
  • 更好的网络支持。开箱即支持对REST、WS*/SOAP、POX、RSS和标准的HTTP服务的调用
  • 广泛的.NET Framework语言支持,包括Visual Basic、C#、JavaScript、IronPython和IronRuby
  • 支持内容保护,包含基于PlayReady技术的Silverlight DRM
  • 提高了服务器可伸缩能力,广泛的广告商支持,包括新的流式和渐进式下载功能,出众的搜索引擎优化技术,以及内容流内的广告支持

安装路径:http://www.microsoft.com/silverlight/resources/install.aspx?v=2.0

标签:

中国明星的外国籍

Posted in 闲暇人生    作者:Ray    2008年十月11日
郎朗 中国香港
邬君梅 美国
李云迪 中国香港
顾长卫 美国
章子怡 中国香港
蒋雯丽 美国
刘璇 中国香港
宁静 美国
汤唯 中国香港
王姬 美国
胡军 中国香港
蒋大为 加拿大
李连杰 美国
徐帆 加拿大
刘亦菲 美国
陈明 加拿大
陈凯歌 美国
张铁林 英国
陈红 美国
斯琴高娃 瑞士
陈冲 美国
韦唯 德国

其实中国一天天的强大,何必羡慕外国国籍呢。

标签:

ActionScript 3 libraries

Posted in Flex, Flash & AS    作者:Ray    2008年十月10日
  1. as3ebaylib is a library for accessing eBay’s XML API through ActionScript.
  2. as3corelib is a collection of classes and utilities that make ActionScript development easier.
  3. as3flexunitlib is a unit testing framework for Flex development.
  4. as3odeolib is an ActionScript library for retrieving podcasts from the Odeo service.
  5. as3youtubelib is a library for accessing the YouTube data API.
  6. as3syndicationlib provides a single interface for dealing with RSS and Atom feeds.
  7. as3flickrlib is a library for consuming the Flickr API.
  8. as3mapprlib provides access to the Mappr API that combines Flickr and geo-tagged information.
  9. Cairngorm is a framework for developing Flex-based rich Internet applications.

Flash Open Source 相关站点

Posted in Flex, Flash & AS    作者:Ray    2008年十月10日
  • OSFlash: http://osflash.org
  • OSFlash Mailing List: http://osflash.org/mailman/listinfo/osflash_osflash.org
  • The GAE SWF Project: http://gaeswf.appspot.com
  • Google App Engine: http://code.google.com/appengine/
  • Papervision3D: http://osflash.org/papervision3d
  • Red5: http://osflash.org/red5
  • SWFAddress: http://www.asual.com/swfaddress/
  • PyAMF: http://pyamf.org/
  • Fuse: http://osflash.org/fuse/
  • GoASAP: http://osflash.org/goasap/
  • SWX: http://swxformat.org
  • AMFPHP: http://www.amfphp.org/
  • MTASC: http://mtasc.org
  • swfmill: http://osflash.org/swfmill
  • AMES: http://osflash.org/ames
  • FlashDevelop: http://osflash.org/flashdevelop
  • ASDT: http://osflash.org/asdt
  • PureMVC: http://puremvc.org/
  • Arp: http://osflash.org/arp
  • Cairngorm: http://labs.adobe.com/wiki/index.php/Cairngorm
标签: ,

在Debian/Ubuntu上安装Trac系统

Posted in Linux    作者:Ray    2008年十月10日

如何在Debian系统中安装Trac系统?Debian还真的不错,可以非常方便的进行安装。

1.快速安装

Debian 4.0 Etch系统已经包含了Trac系统,不过版本不是很新,使用的是Trac 0.10的版本。不过安装非常的方便,apt-get install Trac。虽然版本不是最新,但至少经过测试的版本。

2.手动安装

不过既然安装为何不选择最新的版本呢?其实Python已经提供了一套完整安装机制,安装最新0.11版本同样非常方便。

1. sudo apt-get install python-setuptools,安装Python安装工具包。

2.使用setuptools进行Trac安装。输入sudo easy_install trac,setuptools会自动寻找最新Trac版本进行安装。

3.关于Apache、ModPython的配置信息可以查看Trac官方网站的说明:http://trac.edgewall.org/wiki/TracFeistyhttp://trac.edgewall.org/wiki/TracOnDebian

标签: , ,