About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Aug

    23

    本文作者利用Git提交的元数据和Rapleaf API为流行的Github组织构建了一系列的统计数据(博客介绍具体数据),此外,他还对每门编程语言进行了统计,但作者希望统计能与现实接轨,他分别根据年龄、收入和性别来对每门编程语言进行划分。本文主要是统计每门编程的收入。

     
    统计方法

      ● 估算每个仓库的语言组成情况,例如,对某个项目进行评估,其中有75%的地方使用的是Java语言。

      ● 某个开源项目,如果有50%的地方使用了某门语言,然后统计所有做贡献开发者的总收入。

      ● 编程语言必须大于100个可用收入数据点。

    下面是每门语言的平均收入结果,由低到高排列:

     

    以图表形式显示,数据是一样的:

    大多数语言排名都比较符合我的预期,其中也有一些出乎意料的:

      ● Haskell是一门偏学术的语言,但学术界并不以高薪而闻名于世。

      ● PHP是一门非常易懂的语言,大多数人都可以上手。

      ● Java和ActionScript在企业软件中被普遍使用,所以他们在企业软件中的待遇肯定不菲。

    说明

      ●这些数据所使用的都是开源项目,所以它无法代表闭源项目开发者的收入情况。

      ●Rapleaf数据并没有覆盖范围,可能会存在偏差。

      ●对年龄、性别等其他方面没有进行纠正。

      ●没有抓取Github上的所有资料库,所以数据不具有代表性。

    此外,关于这份统计,在HN上引起了非常激烈的讨论,大家不妨去看看。

    英文来源:bpodgursky.wordpress

    More...

    Aug

    19

    突然很是怀念那个东方的武侠虚拟世界——我的《千年1》

    Aug

    16

    function analyzeEnvironment():void {
     //是否为移动处理器
     if (Capabilities.cpuArchitecture == "ARM") {
      var dpi:Number = Capabilities.screenDPI;
      //是否为iOS设备
      var iOS:Boolean = Capabilities.os.toLowerCase().indexOf("iphone") > -1;
      //尺寸(单位为英寸)
      var screenWidthInches:Number = Capabilities.screenResolutionX / dpi;
      var screenHeightInches:Number = Capabilities.screenResolutionY / dpi;
      if ( screenWidthInches > 5 || screenHeightInches > 5 ) {// Tablet
       if (iOS) {
        //iOS平板设备
       } else {
        //非iOS平板设备
       }
      } else {// Phone
       if (iOS) {
        //iOS手机
       } else {
        //非iOS手机
       }
      }
     } else {
      //桌面设备
     }
    }

    如果是对设备的功能有更精确的判断与控制,比如触屏可以分为触模屏、手写笔、无触模屏的移动设备等,以及设备的方向等等详细的功能属性分析,可参考以下链接(以下链接全部为外部链接,不保证长期有效性)《Flash Player 10.1在移动设备上的视频应用》:

    Adobe 官方开发者中心地址: http://www.adobe.com/cn/devnet/devices/articles/delivering_video_fp10-1.html

    国内转载的地址:http://www.riadev.com/flex-thread-224-1-1.html(国内用户访问这个地址可能速度会快一些)

    Aug

    14

    [AS3] try…catch VS if…else

    • 0 Comments
    • Flash Platform

    从以下对比中可以看出 try…catch 的性能远低于 if…else,前者因需在内存中建立处理栈、匹配块、冒泡等原因性能明显比后者低。

    一、try…catch 

    var arr:Vector.<int>  = new Vector.<int>();
    var time:int = getTimer();
    for (var i:int = 0; i < 100000; i++) {
     try {
      arr[i];
     } catch (err:Error) {
      arr.push(i);
     }
    }
    trace(getTimer() - time);//864ms

     二、if…else

    var arr:Array = new Array();
    var time:int = getTimer();
    for (var i:int = 0; i < 100000; i++) {
     if (arr[i]) {
     } else {
      arr.push(i);
     }
    }
    trace(getTimer() - time);//25ms

    More...

    Aug

    3

    1、在一个极短的时间内,如0.02-0.03毫秒内的速率是否大于20像素。在AS中可以用两帧之间的距离值来简化模似速率,在无帧的编程语言中需要用计时类来完成计算。

    2、当速率小于20像素时,判断从拖动开始,到拖动结束,被拖动的对象是否超过对象本身宽度距离的一半。

    小心陷井:在拖动对象时的方向,与释放拖动对象时的速率方向向反(包括拖动的对象距离超过对象宽度的一半时,但释放的瞬间速率与拖动方向向反,需要返回原页面)。