Details

Blog.create {
:name =>'李骥平',
:location => '中国, 太原',
:linkedin => fsjoy.blog.51cto.com,
:contractor => true}
 

我最近发表的评论

深入理解alias, a.. 回复
alias_method_chain是不是从rails3..
自你两岁起,我陪.. 回复
挂了2张!~
Git学习教程(三.. 回复
废话,你在.git外部一层目录执行能..
Git学习教程(三.. 回复
你clone了一遍以后文件夹已经存在了..
发评论骂我的博友.. 回复
我想看看匿名同学无比辛苦写出来的..

博客统计信息

51cto推荐博客
用户名:fsjoy1983
文章数:301
评论数:234
访问量:422967
无忧币:2144
博客积分:3830
博客等级:7
注册日期:2008-02-04

刚才看google reader的时候看到这位朋友写了一样一个面试题。javaeye不知怎么今天打不开。我给解答解答吧。一道面试题目?请求解答公司要搬新大楼了,初步的规划是每层有1900个工位,请问当这一层的工位全部坐满..
类别:|阅读(179)|回复(3)|(1)阅读全文>>
2010-03-14 15:31:24
一、 名词解释 
1、 80后:今年最大的30,最小的21

2、 电影:小时候看剧情,长大了看明星

3、 时尚:时尚就是卡姿兰

4、 梦想:进度条到100%时,不希望进入死循环的关键点 

5、 情欲:无止尽的在..
类别:|阅读(131)|回复(3)|(0)阅读全文>>
最近可能是到了冬天的缘故吧,总是被电,而且有时候电流还挺大。去上个厕所,回身就不敢摸我的mbp本本了。一摸bia 一下。是不是它是铝合金外壳的原因呢。上次查了一下,说是接上三项插孔就没事。可还是被电。真是..
类别:|阅读(192)|回复(3)|(0)阅读全文>>
这篇文章我觉得写的还不错,对于cocoa入门来说。【原文地址】
大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,..
类别:mac|阅读(1128)|回复(0)|(0)阅读全文>>
用迅雷下载iphone sdk下了将近4个钟头,基本上是一路高速。最后到99.9%速度也有,但是就是不见到100%。参看威锋里的帖子才看到解决方法。先暂停任务,选择属性->更多->只从原始线程下载。再开始任务。。..
类别:|阅读(670)|回复(1)|(0)阅读全文>>
第七课 Git差异比对
内容提要:显示项目的两个不同版本之间的差异,或者显示指定文件的不同之处
 
在‘git日志’一课中,我们通过'git log -p'命令来显示每一次提交与其父节点提交内容之间快照的差异。这..
类别:ROR|阅读(3142)|回复(0)|(0)阅读全文>>
第六课 Git 日志
内容提要:浏览项目历史,查询指定提交内容,图形化显示分枝和合并...

'git log'是git中最常用的一个命令,执行之后,会显示该项目的提交历史。如果命令不加任何参数,那么就会显示目前所在..
类别:ROR|阅读(4498)|回复(0)|(0)阅读全文>>
第五课 Git标签
内容提要:创建有签名,无签名、轻量级标签来永久的标记项目历史中的关键点
 
跟大多数的VCS工具一样,git也有在历史状态的关键点“贴标签”的功能--一般人们用这个功能来标记发布点(例..
类别:ROR|阅读(8003)|回复(1)|(2)阅读全文>>
第四课  分枝和合并基础知识介绍
 
内容提要:创建工作分枝,合并分枝以及删除分枝
 
从第一课的介绍中,我们了解到,git处理分枝和合并是非常独到的。首先,无论是创建新分枝还是分枝之间切..
类别:ROR|阅读(8930)|回复(0)|(0)阅读全文>>
第三课   Git 工作流程
    与远程仓库同步,修改,载入(stage)和提交项目
 

现在你已经有一个git本地仓库,一切都配置完毕。然后该怎么办?
一般来说,跟其他的源码控制系..
类别:ROR|阅读(11824)|回复(6)|(1)阅读全文>>
第二课.配置和初始化

 

配置git

在使用git之前你需要配置一下git。git在你创建提交的时候会记录你的名字和email地址,所以你应该告诉git这些内容。可以使用'git config'命令来设置,如果传递参数'-gl..
类别:ROR|阅读(5830)|回复(1)|(2)阅读全文>>
原文地址



第一课. git简介
内容:什么是git,为什么要使用git以及获取和学习git的途径。
 
 
欢迎来到github学习教程的第一课。本教程将通过一系列的实例来介绍如快速,轻松地使用Git。教程..
类别:ROR|阅读(7598)|回复(0)|(1)阅读全文>>
原文地址序:
最近在做医疗相关的数据应用,知道治病要找到病因,才好对症下药,因为不同的病因,有可能引发相同的病症。而从症状入手确定病因,却也是最直接最常用的一个种诊断手法,但不能浮于表面现象,还要深..
类别:ROR|阅读(1007)|回复(1)|(0)阅读全文>>
2009-12-01 22:53:00
环境:leopard 1.5.x, macport 1.8.1升级和查看macport的命令:$  sudo port -d selfupdate$ port version安装nginx:$ sudo port install nginx--->  Computing dependencies for nginx...---> ..
类别:ROR|阅读(513)|回复(1)|(0)阅读全文>>
这是界面图:



这个可以在design界面里拖动组件,修改组件属性值来实现。

然后是计算器的算法(仿照win下的计算器算法):

问题描述:
输入一个数,然后按某个运算符,再输入另一个数,按等号即可得出结果。只按照输入顺序计算结果,而非按照运算符优先级来得出结果,即,如果按顺序输入2+8*3=会得到30,而非26.

算法描述:
定义三个全局变量,分别是first(Number), second(Number), symbol(String)

first代表二目运算中第一个数,second代表第二个数,symbol代表运算符(+-*/)

(初始化之后flex对Number型默认值为NaN, String型默认值为null)

1.二目运算第一个数的输入数字阶段,对于小数点(.)按钮,如果输入一次之后enable属性设为false.
2.输入运算符(+-*/),将第一步输入的数字保存到first变量中,并将此运算符保存到symbol中,小数点(.)按钮enable属性为true.
3.二目运算第二个数字输入阶段,对于小数点(.)按钮,如果输入一次之后enable属性设为false.
4.
     4.1如果输入等号(=),将前面存储的first, second, symbol按照相应规则运算得出结果,这个结果存储到first中,second和symbol分别设为NaN和null。小数点按钮enable属性为true。然后可以转入步骤2.
     4.2 如果输入运算符(+-× /) ,将first, second, symbol按照规则运算出结果,结果保存到first中,second设为NaN, 将输入运算符保存到symbol中,小数点按钮enable属性为true。然后可以转入步骤3。


下面是整个计算器的代码及注释:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal">

<mx:Script>
    <![CDATA[
 
        
        public var first:Number; //定义二目运算第一个数的存储变量
        public var second:Number;//第二个数的存储变量
        public var symbol:String;  //运算符 
        public var display_content:String='0' //input_Text显示内容

        private function addText(str:String):void//输入数字时,显示内容
        {
            display_content+=str; //每点一个数字,显示内容增加进去
              var myFloat:Number = parseFloat(display_content);
//将显示内容转换为Number型
              if(str!='.')
                  {
                      txt_display.text = myFloat.toString();
//将刚转换的Number型转换为String型,显示到input_Text中   
                  }
              else//处理小数点情况
                  {
                      txt_display.text = myFloat.toString()+".";
                      bt_dot.enabled=false;
                  }
                  
        }
//C按钮的功能
        private function c():void
        {
            display_content ='0';
            txt_display.text='0';
            first=NaN;
            second=NaN;
            symbol=null;
            bt_dot.enabled=true;
        }
//CE按钮功能
        private function ce():void
        {
            display_content='0';
            txt_display.text='0';
            second=NaN;
            bt_dot.enabled=true;
        }
//运算功能
        private function cal():void
        {
            second=parseFloat(txt_display.text);
            switch (symbol)
                    {
                        case "+":
                        first=first+second;
                        break;
                        
                        case "-":
                        first=first-second;
                        break;
                        
                        case "*":
                        first=first*second;
                        break;
                        
                        case "/":
                        
                            first=first/second;
                        break;
                        
                        default:
                        // do nothing
                    }
                txt_display.text=first.toString();
                display_content='0';
                symbol=null;
                second=NaN;
                bt_dot.enabled=true;
        }
//输入运算符(+-× /)符号处理
        private function process_symbol(str:String):void
        {
            if(first.toString()=='NaN')
                {
                    first=parseFloat(txt_display.text);
                    if(str!="=")
                        { symbol=str; }
                    display_content='0';
                    bt_dot.enabled=true;
                }
            else if(second.toString()=='NaN' )
            {
                symbol=str;
            }
            else
            {
                    cal();
            }
        }
        
//输入等号时       
        private function equals():void
        {
            if(first.toString()=='NaN')
            {
                first=parseFloat(txt_display.text);
                display_content='0';
                bt_dot.enabled=true;
            }
            
            else
            {
                cal();
                
            }
        }
        
    ]]>
</mx:Script>
//组件代码:
    <mx:Canvas width="309" height="354">
        <mx:Panel y="10" width="273.5" height="334" layout="absolute" title="calculator" horizontalAlign="center" verticalAlign="middle" backgroundColor="#AFB6B9" horizontalCenter="-2">
            <mx:TextInput x="10.75" y="29" width="231" id="txt_display" text="0" textAlign="right"/>
            <mx:Button x="13" y="98" label="7" width="36" height="31" color="#0B0C0F" id="bt_7" click="addText('7')"/>
            <mx:Button x="57" y="98" label="8" width="36" height="31" id="bt_8" click="addText('8')"/>
            <mx:Button x="101" y="98" label="9" width="36" height="31" id="bt_9" click="addText('9')"/>
            <mx:Button x="145" y="98" label="+" width="36" height="31" color="#0DC5ED" id="bt_plus" click="process_symbol('+')"/>
            <mx:Button x="145" y="137" label="-" width="36" height="31" color="#089D5C" id="bt_minus" click="process_symbol('-')"/>
            <mx:Button x="145" y="176" label="*" width="36" height="31" color="#F018CA" id="bt_multiply" click="process_symbol('*')"/>
            <mx:Button x="145" y="215" label="/" width="36" height="31" color="#67B0BF" id="bt_divide" click="process_symbol('/')"/>
            <mx:Button x="180" y="59" label="C" width="58" height="31" color="#FB2407" id="bt_c" click="c()"/>
            <mx:Button x="189" y="98" label="=" width="49" height="148" id="bt_equal" click="equals()"/>
            <mx:Button x="103.75" y="59" label="CE" width="58" height="31" id="bt_ce" click="ce()"/>
            <mx:Button x="13" y="137" label="4" width="36" height="31" id="bt_4" click="addText('4')"/>
            <mx:Button x="57" y="137" label="5" width="36" height="31" id="bt_5" click="addText('5')"/>
            <mx:Button x="101" y="137" label="6" width="36" height="31" id="bt_6" click="addText('6')"/>
            <mx:Button x="13" y="176" label="1" width="36" height="31" id="bt_1" click="addText('1')"/>
            <mx:Button x="57" y="176" label="2" width="36" height="31" id="bt_2" click="addText('2')"/>
            <mx:Button x="101" y="176" label="3" width="36" height="31" id="bt_3" click="addText('3')"/>
            <mx:Button x="101" y="215" label="." width="36" height="31" id="bt_dot" click="addText('.')"/>
            <mx:Button x="13" y="215" label="0" width="80" height="31" id="bt_0" click="addText('0')"/>
        </mx:Panel>
    </mx:Canvas>
    
</mx:Application>









[/img]..
2009-10-16 12:48:42
关于我的论文课题。
目前实验在预处理数据阶段,关于瓦斯预警系统的实现。
原始数据为access存储的一年的数据。是KJ70系统所用到的处理数据。
里面的格式是一个库里有一个月每天的数据,以及这一个月里的报警..
最近在翻译一本数据库的教材,碰到Cardinality这个词,这个词在许多国内的数据库教材中不常见。查了一下英文资料觉得很有必要翻一下,原文地址
内容如下:
Cardinality defines the numeric relationships betw..
类别:数工|阅读(746)|回复(0)|(0)阅读全文>>
原文地址:

我和Bill Scott在编写Designing Web Interfaces: Principles and Patterns for Rich Interactions(web界面设计:富客户端的原则和模式)这本书中的实例时,曾经对上百个RIA应用做过分析。我们有一张R..

原文地址



在ruby on rails环境下使用restfulx框架来实现的一个flex应用(5分钟搞定的demo):



首先需要搭建的环境


ruby187+  rails2.2.2+

Flex SDK 3.4+
MySQL 5.0+
1.ruby187,rails22..
类别:ROR|阅读(498)|回复(1)|(0)阅读全文>>
macports(darwinports)是mac操作系统上的一个非常不错的包管理器,可以很方便的编译安装软件,在安装一个软件的时候会将这个软件所依赖的软件环境一起搭建好,这样可以很方便的安装和升级所需要的软件。就像gem一..
类别:mac|阅读(2807)|回复(0)|(0)阅读全文>>
【转】
 
安装软件GnuWin32(使用下面命令一定需要),但是不是必须的;
如何安装命令行7zip解压软件(使用下面命令一定需要),但是不是必须的。
安装ImageMagick命令(只要下载下面这个文件就可以了..
类别:ROR|阅读(153)|回复(0)|(0)阅读全文>>
[转]
所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优解。

  贪心算法不是对所有问题都能得到整体最优解,但对..
类别:ruby|阅读(3069)|回复(1)|(0)阅读全文>>
2009-06-22 14:50:07
原文地址:http://scruffy.rubyforge.org/
Scruffy是什么?
Scruffy是一个用来生成图表的ruby库,它的功能非常强大,可以用它来做web开发,在页面上输出多媒体数据。
 
Scruffy的主要特性包括:

基于..
类别:ROR|阅读(107)|回复(0)|(0)阅读全文>>
2009-06-03 21:30:36
例:要求存储多个城市各自的坐标和两两之间的距离。
 
可以这样实现:

class CreateCities < ActiveRecord::Migration
  def self.up
    create_table :cities do |t|
 &..
类别:ROR|阅读(333)|回复(1)|(0)阅读全文>>
2009-03-30 12:29:21
Simple Search Form
A search form is quite different than other forms, this is because it does not deal with model's attributes. See a good way to add a simple search form in this episode.
  ..
 <<   1   2   3   4   5   >>   页数 ( 1/13 )