探索与发现

研究java技术

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  83 随笔 :: 0 文章 :: 109 评论 :: 0 Trackbacks

2009年6月24日 #


css 样式
.productshow{width:100%}
.productshow .text{list-style-type:none; margin:0; padding:0}
.productshow .text li{line-height:25px; background:url(../t_line.gif) repeat-x bottom}
.productshow .text li A {background:url(../icons/dot1.gif) no-repeat; background-position:0 3px; padding-left:13px}
.productshow .text A:link {color: #000; text-decoration: none}
.productshow .text A:visited {color:#000; text-decoration: none}
.productshow .text A:active {color: #000; text-decoration: none}
.productshow .text A:hover {color: #B00000; text-decoration: underline}
.productshow .pic{list-style-type:none; margin:0; padding:0}
.productshow .pic li{float:left; width:120px}
.productshow .pic li p{text-align:center; line-height:160%; word-break:break-all; width:120px; overflow:auto; }
.productshow .pic li .picture{margin:0 auto; text-align:Center; width:110px; height:110px}
.productshow .pic li .picture IMG{MARGIN-TOP: expression(( 110 - this.height ) / 2); width: expression(this.width > 110 ? 110 : true); height: expression(this.height > 110 ? 110 : true); max-width: 110px; max-height: 110px; VERTICAL-ALIGN: middle; TEXT-ALIGN: center}
.productshow .pic li .sprice{text-align:center;color:#999;text-decoration:line-through}
.productshow .pic li .proname{margin:0 auto; text-align:center; line-height:160%; height:40px; word-break:break-all; width:120px; overflow:hidden}
.productshow .pic li .price{text-align:center;color:#ff0000}
.productshow .pic li .buylist{line-height:25px; text-align:center;color:#6DAADA; display:none}
.productshow .pic .list-line{width:157px}
.productshow .pic .list-line .picture-s{float:left; margin:0 auto; text-align:Center; width:50px; height:50px}
.productshow .pic .list-line .picture-s IMG{MARGIN-TOP: expression(( 45 - this.height ) / 2); width: expression(this.width > 45 ? 45 : true); height: expression(this.height > 45 ? 45 : true); max-width: 45px; max-height: 45px; VERTICAL-ALIGN: middle; TEXT-ALIGN: center}
.productshow .pic .list-line .picinfo{float:left; padding-left:12px; width:95px}
.productshow .pic li A:link {color: #000; text-decoration: none}
.productshow .pic li A:visited {color:#000; text-decoration: none}
.productshow .pic li A:active {color: #000; text-decoration: none}
.productshow .pic li A:hover {color: #B00000; text-decoration: underline}



主体代码

<table width="609" style="border:1px solid #FF8119" cellspacing="0" cellpadding="0">
              <tbody><tr>
                <td background="shop/skins/56770_com_b_002/center_bg.gif"><div class="productshow">
<ul class="pic">
<form action="#" method="post" name="LEBI_FORMBUY_0001" id="LEBI_FORMBUY_0001"><li>
 <div class="picture"><a href="shop/product/default.asp?id=16" class="picborder" target="_self"><img border="0" src="shop/Pic/201009/1211144612000.jpg" {@onmouse}="" alt="2010男装 秋装商"></a></div>
 <div class="proname"><a href="shop/product/default.asp?id=16" title="2010男装 秋装商" target="_self">2010男装 秋装商</a></div>
         <p><span class="sprice">市场价:¥100.00</span></p>
 <p><span class="price">购买价:¥90.00</span></p>
 <p class="buylist">购买数量 <input type="text" name="pro_num_0001_16" id="pro_num_0001_16" value="1" size="3" style="width:30px;" class="form"><input type="hidden" name="pro_size_0001_16" id="pro_size_0001_16" value="-"><input type="hidden" name="pro_color_0001_16" id="pro_color_0001_16" value="-"><br><input type="button" name="button_0001_16" value="购买" onclick="javascript:addtobasket('16','0001','','1')" class="button">&nbsp;<input type="button" name="fav" value="收藏" onclick="location.href='shop/user/?action=shoucang_add&amp;id=16&amp;product_name=2010%E7%94%B7%E8%A3%85+%E7%A7%8B%E8%A3%85%E5%95%86&amp;backurl=http%3A%2F%2Flocalhost%3A80%2Fshop%2Fdefault%2Easp&amp;product_type='" class="button">
</p>
</li><li>
 <div class="picture"><a href="shop/product/default.asp?id=15" class="picborder" target="_self"><img border="0" src="shop/Pic/201009/1211103327386.jpg" {@onmouse}="" alt="2010男装 秋装商"></a></div>
 <div class="proname"><a href="shop/product/default.asp?id=15" title="2010男装 秋装商" target="_self">2010男装 秋装商</a></div>
         <p><span class="sprice">市场价:¥120.00</span></p>
 <p><span class="price">购买价:¥120.00</span></p>
 <p class="buylist">购买数量 <input type="text" name="pro_num_0001_15" id="pro_num_0001_15" value="1" size="3" style="width:30px;" class="form"><input type="hidden" name="pro_size_0001_15" id="pro_size_0001_15" value="-"><input type="hidden" name="pro_color_0001_15" id="pro_color_0001_15" value="-"><br><input type="button" name="button_0001_15" value="购买" onclick="javascript:addtobasket('15','0001','','1')" class="button">&nbsp;<input type="button" name="fav" value="收藏" onclick="location.href='shop/user/?action=shoucang_add&amp;id=15&amp;product_name=2010%E7%94%B7%E8%A3%85+%E7%A7%8B%E8%A3%85%E5%95%86&amp;backurl=http%3A%2F%2Flocalhost%3A80%2Fshop%2Fdefault%2Easp&amp;product_type='" class="button">
</p>
</li><li>
 <div class="picture"><a href="shop/product/default.asp?id=14" class="picborder" target="_self"><img border="0" src="shop/Pic/201009/121181193516.jpg" {@onmouse}="" alt="2010男装 秋装商"></a></div>
 <div class="proname"><a href="shop/product/default.asp?id=14" title="2010男装 秋装商" target="_self">2010男装 秋装商</a></div>
         <p><span class="sprice">市场价:¥100.00</span></p>
 <p><span class="price">购买价:¥100.00</span></p>
 <p class="buylist">购买数量 <input type="text" name="pro_num_0001_14" id="pro_num_0001_14" value="1" size="3" style="width:30px;" class="form"><input type="hidden" name="pro_size_0001_14" id="pro_size_0001_14" value="-"><input type="hidden" name="pro_color_0001_14" id="pro_color_0001_14" value="-"><br><input type="button" name="button_0001_14" value="购买" onclick="javascript:addtobasket('14','0001','','1')" class="button">&nbsp;<input type="button" name="fav" value="收藏" onclick="location.href='shop/user/?action=shoucang_add&amp;id=14&amp;product_name=2010%E7%94%B7%E8%A3%85+%E7%A7%8B%E8%A3%85%E5%95%86&amp;backurl=http%3A%2F%2Flocalhost%3A80%2Fshop%2Fdefault%2Easp&amp;product_type='" class="button">
</p>
</li><li>
 <div class="picture"><a href="shop/product/default.asp?id=11" class="picborder" target="_self"><img border="0" src="shop/Pic/201009/121101451977.jpg" {@onmouse}="" alt="2010品牌男衬衣"></a></div>
 <div class="proname"><a href="shop/product/default.asp?id=11" title="2010品牌男衬衣" target="_self">2010品牌男衬衣</a></div>
         <p><span class="sprice">市场价:¥100.00</span></p>
 <p><span class="price">购买价:¥100.00</span></p>
 <p class="buylist">购买数量 <input type="text" name="pro_num_0001_11" id="pro_num_0001_11" value="1" size="3" style="width:30px;" class="form"><input type="hidden" name="pro_size_0001_11" id="pro_size_0001_11" value="-"><input type="hidden" name="pro_color_0001_11" id="pro_color_0001_11" value="-"><br><input type="button" name="button_0001_11" value="购买" onclick="javascript:addtobasket('11','0001','','1')" class="button">&nbsp;<input type="button" name="fav" value="收藏" onclick="location.href='shop/user/?action=shoucang_add&amp;id=11&amp;product_name=2010%E5%93%81%E7%89%8C%E7%94%B7%E8%A1%AC%E8%A1%A3&amp;backurl=http%3A%2F%2Flocalhost%3A80%2Fshop%2Fdefault%2Easp&amp;product_type='" class="button">
</p>
</li><li>
 <div class="picture"><a href="shop/product/default.asp?id=9" class="picborder" target="_self"><img border="0" src="shop/Pic/201009/121053257865.jpg" {@onmouse}="" alt="2010年秋冬新款特"></a></div>
 <div class="proname"><a href="shop/product/default.asp?id=9" title="2010年秋冬新款特" target="_self">2010年秋冬新款特</a></div>
         <p><span class="sprice">市场价:¥100.00</span></p>
 <p><span class="price">购买价:¥100.00</span></p>
 <p class="buylist">购买数量 <input type="text" name="pro_num_0001_9" id="pro_num_0001_9" value="1" size="3" style="width:30px;" class="form"><input type="hidden" name="pro_size_0001_9" id="pro_size_0001_9" value="-"><input type="hidden" name="pro_color_0001_9" id="pro_color_0001_9" value="-"><br><input type="button" name="button_0001_9" value="购买" onclick="javascript:addtobasket('9','0001','','1')" class="button">&nbsp;<input type="button" name="fav" value="收藏" onclick="location.href='shop/user/?action=shoucang_add&amp;id=9&amp;product_name=2010%E5%B9%B4%E7%A7%8B%E5%86%AC%E6%96%B0%E6%AC%BE%E7%89%B9&amp;backurl=http%3A%2F%2Flocalhost%3A80%2Fshop%2Fdefault%2Easp&amp;product_type='" class="button">
</p>
</li></form></ul>

<div class="both"></div></div></td>
              </tr>
              <tr>
                <td><img src="shop/skins/56770_com_b_002/center_bottom.gif" width="609" height="10"></td>
              </tr>
            </tbody></table> 
           

posted @ 2010-09-15 22:55 蜘蛛 阅读(303) | 评论 (0)编辑 收藏

为测试 Flex 应用程序设置测试环境

正确的用于测试 Flex 应用程序的环境设置将有助于确保可靠的功能测试结果。测试环境一般由测试人员在测试计算机上进行设置。

关于此任务

要设置测试环境:

过程

  1. 检查浏览器的设置:
    1. Internet Explorer:
      1. 打开 Internet Explorer。
      2. 单击工具 > 互联网选项
      3. 单击安全性选项卡。
      4. 选择适当的 Web 内容区域。执行下列某个步骤:
        • 如果在远程机器上配置了 Web 服务器,那么请完成下列步骤:
          1. 选择本地内部网
          2. 单击站点 > 高级
          3. 将此 Web 站点添加到区域字段中,输入要添加到 Web 站点的 URL。
          4. 单击添加,然后单击确定
        • 如果在本地主机上配置了 Web 服务器,那么请完成下列步骤:
          1. 选择本地内部网
          2. 单击定制级别
          3. 复位至列表中,选择中低
          4. 在“设置”窗格中,针对初始化且脚本 ActiveX 控件不标记为安全一项单击启用
          5. 单击确定
    2. Firefox:
      1. 单击工具 > 选项 > 内容
      2. 清除阻止弹出窗口复选框。
      3. 单击工具 > 选项 > 安全
      4. 清除当有站点试图安装插件时发出警告复选框。
  2. 打开 IBM Rational Functional Tester,然后单击配置 > 启用测试环境。必须启用所需要的 JRE 并将 Internet Explorer 设置为缺省 Web 浏览器。
  3. 在“Web 浏览器”页面中启用所需要的浏览器。
  4. 将测试下应用程序设置为可信以在本地运行应用程序。指向单个文件或目录的路径处于可信状态,同时所有的文件将会分配到每个选定的目录及其可信的子目录中。按照下列步骤来分配信任目标:
    1. 在 C:\WINDOWS\system32\Macromed\Flash 中创建文件夹 FlashPlayerTrust。
    2. 在 FlashPlayerTrust 文件夹中创建一个名为 Flex 且不带扩展名的文件。
    3. 在 Flex 文件中输入 Flex 应用程序的目录路径。例如,如果 Flex 应用程序位于 C:\Test 目录中,请在 Flex 文件中输入路径 C:\Test
    4. 保存文件。
posted @ 2010-07-27 06:00 蜘蛛 阅读(245) | 评论 (0)编辑 收藏

http://unitedmindset.com/jonbcampos/2009/08/12/flex-best-practices-events/
posted @ 2009-09-18 06:53 蜘蛛 阅读(411) | 评论 (2)编辑 收藏

http://www.davidtucker.net/category/cairngorm/
posted @ 2009-09-15 20:36 蜘蛛 阅读(200) | 评论 (0)编辑 收藏

1.可以使用PopUpManager进行界面切换
2.使用状态(state),自定义一些状态事件(StateEvent),在index.mxml(mx:application)中监听组件派发的状态事件类型,利用改变状态来改变显示的界面.


⑴用第一种方式来实现相对简单,利用PopUpManager的一些静态方法即可实现,比较适用于一些size相对较小的可视化组件,比如:登陆表单组件,或修改一个值,要求重新输入一个新值等等类似情况.实现示例代码如下:

Js代码
  1. <span style="font-size: small;">var win:*;   
  2. win = new loginPanel();   
  3. //弹出显示登录框   
  4. PopUpManager.addPopUp(win,this,true);   
  5. //登陆框显示在中间   
  6. PopUpManager.centerPopUp(win); </span>  

 ⑵在第二种方法中利用state来改变显示的界面则要相对复杂许多.

①首先我们需要自定义统一的状态事件名称

Java代码
  1. <span style="font-size: small;">package note.events{  
  2. /** 
  3.  * 状态事件,每个状态值要和状态名称一样 
  4.  * @author halzhang 
  5. */  
  6. public class StateEvent{  
  7.           public static const NULL_STATE:String = "";  
  8.           public static const LOGIN_STATE:String = "loginState";  
  9.           public static const ADDNOTE_STATE:String = "addNoteState";  
  10.           public static const ADDUSER_STATE:String = "addUserState";  
  11.           public static const LISTALLUSER_STATE:String = "listAllUserState";  
  12.          }  
  13. }</span>  

 ②在Flex项目的主程序中定义state,当然也可以加上状态切换的动画.

Html代码
  1. <span style="font-size: small;"><!-- 定义状态,我们分别定义了三个状态,每个状态对应一个自定义的可视化组件  -->  
  2.     <mx:states>  
  3.         <mx:State name="loginState">  
  4.             <mx:AddChild position="lastChild">  
  5.                 <!-- 状态对应的自定义组件:登陆组件 -->  
  6.                 <view:loginPanel id="panel_login" x="195" y="89"/>  
  7.             </mx:AddChild>  
  8.         </mx:State>  
  9.           
  10.         <mx:State name="addNoteState">  
  11.             <mx:AddChild position="lastChild">  
  12.                 <!-- 状态对应的自定义组件:添加留言组件 -->  
  13.                 <view:addNotePanel id="panel_addNote" x="10" y="44"/>  
  14.             </mx:AddChild>  
  15.         </mx:State>  
  16.           
  17.         <mx:State name="addUserState">  
  18.             <mx:AddChild position="lastChild">  
  19.                 <!-- 状态对应的自定义组件:添加用户组件 -->  
  20.                 <view:addUserPanel id="panel_addUser" x="10" y="44"/>  
  21.             </mx:AddChild>  
  22.         </mx:State>  
  23.           
  24.         <mx:State name="listAllUserState">  
  25.             <mx:AddChild position="lastChild">  
  26.                 <view:allUserPanel id="panel_allUser" x="10" y="44"/>  
  27.             </mx:AddChild>  
  28.         </mx:State>  
  29.     </mx:states></span>  

③在组件中派发状态事件(StateEvent)

Js代码
  1. <span style="font-size: small;"> //关闭添加留言组件的时候派发"空"状态事件,也就是主程序界面不显示其他组件     
  2.  //如果想显示其他组件,则派发相应的状态事件     
  3.  internal function closeMySelf():void{    
  4.         appModel.dispatchEvent(new Even(StateEvent.NULL_STATE));    
  5.  }</span>  

④在主程序界面中监听状态事件(StateEvent),从而通过改变状态来显示我们需要的组件.

Js代码
  1. <span style="font-size: small;">                                                //添加状态事件监听,在程序初始化的时候执行  
  2.             internal function stateListener():void{  
  3.                 appModel.addEventListener(StateEvent.NULL_STATE,stateEventHandler);  
  4.                 appModel.addEventListener(StateEvent.LOGIN_STATE,stateEventHandler);  
  5.                 appModel.addEventListener(StateEvent.ADDNOTE_STATE,stateEventHandler);  
  6.             }  
  7.             //状态事件处理函数  
  8.             internal function stateEventHandler(evt:Event):void{  
  9.                 this.currentState = evt.type.toString();  
  10.             }</span>  

在项目中appModel是一个继承 EventDispatcher,使用单例模式实现的程序模型.不知道读者是否发现StateEvent中事件名称是和主程序界面中定义的state的 name值是一致的.因为这样定义我们就可以使用统一的状态事件处理函数,就不需要先去判断是哪个状态事件,在来改变当前状态.只要简单的执行 this.currentState = evt.type.toString();

posted @ 2009-09-10 17:50 蜘蛛 阅读(2860) | 评论 (2)编辑 收藏

http://blog.csdn.net/lixinye0123
posted @ 2009-08-24 06:31 蜘蛛 阅读(372) | 评论 (7)编辑 收藏

impersonation
<system.web>
<identity impersonate="true" />
</system.web>

Configuring log4net for SharePoint Windows Authentication
http://mikeknowles.com/blog/2009/02/17/ConfiguringLog4netForSharePointWindowsAuthentication.aspx


log4net does not work in IIS
http://forums.asp.net/p/1420781/3153374.aspx


http://stackoverflow.com/questions/1061857/sharepoint-and-identity-impersonatefalse
posted @ 2009-08-11 23:26 蜘蛛 阅读(589) | 评论 (3)编辑 收藏

http://msp.sfsu.edu/Instructors/rey/aepage/tutorials.html
posted @ 2009-08-05 02:17 蜘蛛 阅读(215) | 评论 (0)编辑 收藏

     摘要: Photoshop超级技巧 色彩技巧    139. Photoshop是32位应用程序,为了正确地观看文件,须将屏幕设置为24位彩色。    140. 先执行“视图”→“新视图”命令,产生有关新视窗后,再执行“视图”→“预览”...  阅读全文
posted @ 2009-07-31 14:35 蜘蛛 阅读(390) | 评论 (0)编辑 收藏

和动画一样,剪辑这个词涵盖的东西太多,以至于我们无从下口。到底什么是剪辑,

什么算剪辑,业内人也说不清楚,更别说介绍给普通观众了。我们从那些有记可查

的各种定义,定律,课本文章里跳出来,只谈谈感受–剪辑:剪什么?

以我的感受,面对一个片子或者是面对一个未出生的片子我们到底应该先剪什么?

首先剪到的应当是

1、剪调性,其次是

2、剪情绪,再次是

3、剪内容, 之后是

3、剪故事,然后是

4、剪道理,次之是

5、剪镜头,再次是

6、剪音乐,最次是

7、剪手法,完后才是

8、剪技术。

其中调性是和产品,和目标,和观众,和影片相关的,就是我们究竟要做一个什么

片子,给谁看,说的是男人的事还是娘们儿的事,是个广告还是专题,是诗歌还是

散文,是政府报告,还是书情小调–于是我们有了影片的调性,它决定了创作者

的情绪。

情绪,是控制影片的主观元素,我们将”我”,将代表”我”的”情绪”放在代表

客观产品和客户的调性要求之后,是因为我们需要以承认一个好的剪辑是在为客户

和观众剪辑的先决条件下确立的。因为调性的确立,而导引出”我”在整个影片控

制中的情绪应当是什么样的。当情绪控制完整时,我们进入了一个状态,开剪!

我们把情绪从空中迫降到内容,面对一大堆素材,内容的整理分类和控制、想象成

了一个庞大的工作,在这么庞大复杂甚至是有点机械重复的过程中,千万不要失去

情绪,选择素材时候还要时刻考虑调性。而这一步针对内容的筛选和分析,是影片

对错的基本保证。

内容确认,将零散的内容剪辑组织成有趣的故事,常常被看做是剪辑的魅力所在。

我们可以用剪辑影响情绪故事甚至改变内容,总之一切虽然在你手中,却依靠想象

力才能走得更远。人人心中有,各个笔下无。电视包装的故事往往并不复杂,但希

望通过剪辑增加信息量并且要求极其清晰和准确的表达。这里需要大量的训练和思

考。

故事的背后要考虑道理,往往剪辑时候需要一个理由,这个理由不一定有机会说出

来或者是展示给每个观众,或者是让每个观众都能体会到理由所在,但是剪辑师必

须有一个理由,能够说服自己剪下去的理由,能够将当前镜头和前后镜头连接起来

的理由。这个理由可能是内容的情绪的故事的,或也可能是镜头运动的,色彩的,

修辞的,反正需要一个理由,将影片进行到底!

道理依靠镜头的组织,这里我们终于剪到镜头了。这是一个很视觉的活,这是一个

很镜头感的饕餮。景别,运动,正反打,一个镜头一个镜头的衔接,一个堡垒一个

堡垒的推进,一组镜头和一组镜头的对话,镜头就是实在的字,讲着道理说着故事。

没有镜头,也可以剪辑,用黑场替代你现在不存在的镜头。我们依然可以组织影片。

镜头的另一魅力就是时长和观众的心理预期,恰到好处的镜头长短,如呼吸般可以

与观众同步,在同步的呼吸中控制观众的节奏,一定要在心里下一个预期前给一个

准确的时长。甚至可以留下一点点遗憾。这就是镜头的魅力。

配合情绪,故事和镜头的音乐举足轻重。但是只会按照音乐剪辑的剪辑,毫无控制

力。他们的影片就像流水帐一样”进人意料”。实际上音乐,同期,字幕,画面同

时构成一个 立体的影片空间与线索。完全可以通过音乐的控制手法去讲故事。对于

影片音乐无可厚非属于一个乘数,而非简陋的加法。

其次我们还有N多种剪辑手法配合,实际上可以把剪辑影片理解成一段舞曲,一段

旋律,我们变换的剪辑手法无非是123,223,323 423……或者是忽然转变成11123

—11223—11323……旋律的变化 ,节奏的调整。这些统称为剪辑手法,可以从广

告带中积累。当然也可以自己创造。而现代剪辑中我认为一些拍摄技巧可以说是从

剪辑中来的,也可以变成一种剪辑技巧。合成也是一种剪辑。合成影响了影片的色

调,质感,景别的重构,这些对剪辑都明显的帮衬作用。

最后要剪技术,这个不用多提,市场上,培训上也提的过多。我们再去技术上争你

死我活都没用。还是少提点为好,或者下一帖再说。

从技术上来说,剪辑软件都类似,看不出多少分别(实际还是有区别的),基本上

快的话一天就能学会慢的话两三个月也能了。之后,你就会剪辑了吗?你就懂得剪

辑了吗?一切要从实践中来。

回头看看:

1、剪调性,其次是

2、剪情绪,再次是

3、剪内容, 之后是

4、剪故事,然后是

5、剪道理,次之是

6、剪镜头,再次是

7、剪音乐,最次是

8、剪手法,完后才是

9、剪技术。

剪到手法还是音乐? —-你剪到了哪一步呢?

同志们!–剪出九级。

posted @ 2009-07-29 10:32 蜘蛛 阅读(280) | 评论 (0)编辑 收藏

http://itbbs.pconline.com.cn/dv/8515019.html
posted @ 2009-07-25 09:27 蜘蛛 阅读(185) | 评论 (0)编辑 收藏

www.noisejunkies.net/links ...you will find a nice list there
http://allbetsareoff.com
http://maltaannon.com
http://www.sternfx.com

And, of course,

http://library.creativecow.net/video-tutorials/adobeaftereffects

www.aetuts.com

creativecow.net,
maltaannon.com,
everythingfx.tk
moviemaker933.tk
fxresource.tk
noisejunkies.net,
aetuts+.com
visualfxtuts.com
aescripts.com

These range from beginning to advanced tutorials.
http://www.lfp-industries.com

This site is constantly growing and makes some exciting tutorials.



ref to :http://www.videocopilot.net/forum/viewtopic.php?f=33&t=19288




posted @ 2009-07-16 10:40 蜘蛛 阅读(171) | 评论 (0)编辑 收藏

I would start with Andrew's Basic Training to learn the basis. Also, I would recommend you to have a look at Andrew's DVD Products, I think Serious FX could be a good start to learn effects and compositing.

Before you go on with Andrews stuff..i suggest you to buy Creating Motion Graphics Vol1 and Vol.2 from Thris and Chris Meyer.
These books will give you the basic principles of the programm and also make you feel comfortable with the interface of the programm such as its basic rules and knowledge.

You must know how to put the gears in order to drive a car.....Andrews stuff is surely your next stop after you manage to drive you A.E vehicle goood!!
posted @ 2009-07-15 15:22 蜘蛛 阅读(225) | 评论 (0)编辑 收藏

美国教师Joe Harkins给即将毕业的CG动画大学生一封信

偶然在网上看到了这篇帖子,是一位名叫Joe Harkins的美国教师为了解答学生们的疑惑而发表的一封信。Joe Harkins从一个过来人的角度,解答了刚刚入行或者正在准备入行年轻人存在的一些疑惑。虽然有一些问题不适合中国学生,但是也有很多代表性的问题,能给我们一些启发。

              作为一个在各个学校演讲的演讲者,旧金山艺术学院新媒体传达中心和SIGGRAPH任教的老师, Joe Harkins会收到无数电子邮件。在回复了上百封邮件后,他逐渐认识到几乎所有的学生都关心这样一个信息:他们想知道他们所受的教育的真正价值有多少。

              他们需要一个真正诚恳的,有经验的人来评判他们的作品。最重要的是他们想知道如何才能获得一份工作。

         我应该去学校拿一个学位吗?

        是否上学拿学位并不是关键。毕业了以后没有人会在意你这个了。他们不想知道你在哪里毕业,学校里成绩多牛。他们不会问你“你主修什么?”
         他们更可能会说:“你会做什么?”

              说实话,这个行业还没有高端到去顾及每个从业人员的学历,这不同于医生和律师。的确,这个行业里有一些从名牌学校毕业的天才,他们对于行业来说是价 值连城的。但是那些毕竟是极少数。更多的是普通人,他们做着自己喜欢的事情,他们有天赋并且很努力去做着他们热爱的事情。

       是否一定需要一个大学学历才能在行业里生存?并非如此,但并不是说去上学没有意义,只是没有学历也不要郁闷,不管什么途径学到能帮助你在职场安身立命的技能,才是最主要的。


       如果我走技术路线,我需要有艺术素养么?  

        毫无疑问,所有能力都需要依赖于你天生的艺术天赋,观察细节的眼力,评价他人和自己作品的能力。虽然很多纯技术性工种并不要求艺术方面的能力,但是 如果你想在CG方面变的更优秀,你仍然需要具备一定的艺术素质。这会让你成为一个综合实力很强的技术工作者。

       我以前学的和CG毫不相干,进入这个行业怎么样?
       这很不错,至少你有一个后路可以做别的。不过你还是必须要选择一个你真正将要投身的行业,然后努力学习。学的多并不是一个坏事。但是有一个问题,既然你都做好了改行的准备,那么你究竟下了多少的决心投身到CG行业呢?


       我该学什么软件好呢?

       首先忘记软件这个东西吧!如果你对技术性的东西有兴趣,那么你需要一个很强悍的数学和科学基础。当然还要会编程!如果你走艺术路线,那么你 需要在传统技法上下工夫,比如速描,色彩,雕塑等。先打好扎实的2D基础,再来玩3D。

       软件仅仅是一个工具而 已,行业里用到最多的3D软件是MAYA;2D方面,PhotoShop仍然是一个必会项目。说到合成,你学好Shake 或者Combustion 不会有错,会AfterEffect更好。渲染部分,Renderman和Mental Ray所占比例最大。动作捕捉方面MotionBuilder用的最多。特效家们爱用Hudini,不过MAYA  仍然是用的最多的,尤其是它的流体,像 www.maya.la 这也是不错的学习交流地方。

      学什么软件还是很重要的,因为这些庞杂的软件学习起来会花费大量的时间和精力。对一个流行的软件你懂的越少,那么你就越不值钱。这并不是说哪个软件更好,关键的是行业中用的最多的软件是什么,这才是决定学什么软件更有价值的关键!


       马上要毕业了,我该做什么呢?

对于即将毕业进入行业的学生,这里有些简单的准备工作需要做:

            开始关注招聘的信息,准备好你的简历。
            着手制作你的作品展示或者一个demo。
            尝试去正式接触和联系那些看过你作品的公司。

       毕业的时候,我应该具备些什么呢?

         最重要的东西就是你手中的demo或者是一个作品展示。当然你还需要一个简历,但是那相对是次要的东西。几乎所有的人的demo都会被单独看过,如果你毕业的时候没有这些东西,那么你绝对没有作好竞争的准备。

       我已经毕业了,接下来该怎么做?

       毕业了,你就进入了这个行业的大海开始“漂”的生活。你是新人,没人认识你,但是你需要一份工作。“漂”这个词很重要。尽可能多的发送你的作品和简历。花 时间给每个公司写求职信,而且要保证这些信是针对这个公司而不是泛泛而写。绝对不要写那种很没个性的信,那会让你失去工作的机会。但是也别做的太过火,简 单到位就好。求职信,简历,作品这3样东西都准备好了,就够了。

关于作品,有以下几点法则:

          不要超过2分钟,任何过多的内容都是没有经验的表现。
          最好的作品放在第一个,绝对不要重复表现什么内容,更不要把一些不能体现你最佳水平的东西放进去充数。
          忘记配乐吧,你的作品基本都是关掉声音而且是被快进看完的。很遗憾。
          觉得你的作品很不错,可以到 www.299.com.cn 的久久CG动画论坛发出来。
          名字,电话和电子邮件要显醒目,千万别忘记这些联系方式。
          你的作品究竟有多少含金量?

       从某种程度上说,它是无价的!进入行业的机会是十分难得到的,你会和许多极富天赋的人来竞争一个工作。如果你用一个月的时间作出一个作品,很显然它会很有价值!世界上所有的天才艺术家绝对不会对自己的作品草草了事,不会偷懒和拖拖拉拉。作好准备吧,这里充满了竞争。

      作品决定了所有的事情。它是你唯一靠的住的伙伴,也是你进入行业唯一的敲门砖。作品会集中大部分的注意力!我有面试的机会了,但是我该怎么做呢?做你自 己!带上内容更多的作品和简历,准时去面试。最重要的是要诚实,别夸大你的能力,那不会有什么帮助。别过分打扮,但是至少要得体。你要保持自信,他们对你 有兴趣,你也要表现的对他们很感兴趣。

       所有的招聘都要求工作经验,但是我没有经验,我该怎么办?

        这是一个存在于任何行业中的悖论。对于公司来说,毕业生代表者无名和廉价。虽然招聘要求是只需要有工作经验的人,但是正因为你比其他人廉价,所以你 有机会去填补那些比较菜鸟的职位空缺,虽然你没有任何工作经验。工作经验的要求是为了筛选人,但是公司知道毕业生仍然会不断投送简历。只要你确定这个工作 你可以胜任,那么你就投简历吧!正因为你的不知名,所以你充满了可能性,公司愿意给你一次尝试的机会。如果你得到了能证明自己的机会,你该为自己高兴!

       拥有了第一份工作以后我该怎么做呢?

        当你还是一个新人你肯定要度过一段难熬的日子。别指望他们告诉你重要的东西,别指望他们来提拔你。你要做的就是埋头尽最大努力工作,尽可能的学习。 你正在充实你的履历。工作经验比工资重要的多。以长远眼光来考虑你的事业,别仅仅目光短浅的盯在这份工作上。

完成了最初的几个项目后,你可能在某些方面赢得了一些重视。

        你可能有足够的经验去另外的公司找到一个更好的职位。

        你可能在本公司升职且得到更多的尊重。

        如果可以的话,你可以试着做些新的工作,换些不同的岗位。

第一年或者第二年间可以尝试上面这些。但是你需要在这期间看到结果如何,否则你会陷在一个乏味的环境里。

       众多候选人中,HR更看重什么?

        HR不关心你从哪里来,你努力了多久,你在学校是尖子生还是垫底的。他们只需要你拿出你的作品来证明你可以做什么。同时你需要有谦虚好学的精神,愿 意接受指导。持之以恒,按时完成工作,努力工作直到下班为止。让他们看的出你是一个聪明的人,愿意自己解决问题而不是想都不想就请教别人。让他们知道你是多么想把事情做好,最重要的是你的热情!充满了活力。这些就是HR希望在侯选者中看到的。无论是不是新人。
posted @ 2009-07-14 16:49 蜘蛛 阅读(252) | 评论 (0)编辑 收藏

Problem. You want to split strings on different characters with single character or string delimiters. For example, split a string that contains ""r"n" sequences, which are Windows newlines. Solution. This document contains several tips for the Split method on the string type in the C# programming language.

Input string: One,Two,Three,Four,Five
Delimiter: , (char)
Array: One (string array)
Two
Three
Four
Five

1. Using Split

Here we see the basic Split method overload. You already know the general way to do this, but it is good to look at the basic syntax before we move on. This example splits on a single character.

=== Example program for splitting on spaces ===

using System;

class Program
{
static void Main()
{
string s = "there is a cat";
//
// Split string on spaces.
// This will separate all the words.
//

string[] words = s.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
}
}
}

=== Output of the program ===

there
is
a
cat

Description. The input string, which contains four words, is split on spaces and the foreach loop then displays each word. The result value from Split is a string[] array.

2. Multiple characters

Here we use either the Regex method or the C# new array syntax. Note that a new char array is created in the following usages. There is an overloaded method with that signature if you need StringSplitOptions, which is used to remove empty strings.

=== Program that splits on lines with Regex ===

using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string value = "cat"r"ndog"r"nanimal"r"nperson";
//
// Split the string on line breaks.
// The return value from Split is a string[] array.
//

string[] lines = Regex.Split(value, ""r"n");

foreach (string line in lines)
{
Console.WriteLine(line);
}
}
}

=== Output of the program ===

cat
dog
animal
person

Description. The first example uses Regex. Regex contains the Split method, which is static. It can be used to split strings, although it has different performance properties. The next two example show how you can specify an array as the first parameter to string Split.

=== Program that splits on multiple characters ===

using System;

class Program
{
static void Main()
{
//
// This string is also separated by Windows line breaks.
//

string value = "shirt"r"ndress"r"npants"r"njacket";

//
// Use a new char[] array of two characters ("r and "n) to break
// lines from into separate strings. Use "RemoveEmptyEntries"
// to make sure no empty strings get put in the string[] array.
//

char[] delimiters = new char[] { '"r', '"n' };
string[] parts = value.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
Console.WriteLine(parts[i]);
}

//
// Same as the previous example, but uses a new string of 2 characters.
//

parts = value.Split(new string[] { ""r"n" }, StringSplitOptions.None);
for (int i = 0; i < parts.Length; i++)
{
Console.WriteLine(parts[i]);
}
}
}

=== Output of the program ===
(Repeated two times)

shirt
dress
pants
jacket

Overview. One useful overload of Split receives char[] arrays. The string Split method can receive a character array as the first parameter. Each char in the array designates a new block.

Using string arrays. Another overload of Split receives string[] arrays. This means string array can also be passed to the Split method. The new string[] array is created inline with the Split call.

Explanation of StringSplitOptions. The RemoveEmptyEntries enum is specified. When two delimiters are adjacent, we end up with an empty result. We can use this as the second parameter to avoid this. [C# StringSplitOptions Enumeration - dotnetperls.com] The following screenshot shows the Visual Studio debugger.

Split string debug screenshot

3. Separating words

Here we see how you can separate words with Split. Usually, the best way to separate words is to use a Regex that specifies non-word chars. This example separates words in a string based on non-word characters. It eliminates punctuation and whitespace from the return array.

=== Program that separates on non-word pattern ===

using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string[] w = SplitWords("That is a cute cat, man");
foreach (string s in w)
{
Console.WriteLine(s);
}
Console.ReadLine();
}

/// <summary>
/// Take all the words in the input string and separate them.
/// </summary>

static string[] SplitWords(string s)
{
//
// Split on all non-word characters.
// Returns an array of all the words.
//

return Regex.Split(s, @""W+");
// @ special verbatim string syntax
// "W+ one or more non-word characters together

}
}

=== Output of the program ===

That
is
a
cute
cat
man

Word splitting example. Here you can separate parts of your input string based on any character set or range with Regex. Overall, this provides more power than the string Split methods. [C# Regex.Split Method Examples - dotnetperls.com]

4. Splitting text files

Here you have a text file containing comma-delimited lines of values. This is called a CSV file, and it is easily dealt with in C#. We use the File.ReadAllLines method here, but you may want StreamReader instead.

Reading the following code. The C# code next reads in both of those lines, parses them, and displays the values of each line after the line number. The final comment shows how the file was parsed into the strings.

=== Contents of input file (TextFile1.txt) ===

Dog,Cat,Mouse,Fish,Cow,Horse,Hyena
Programmer,Wizard,CEO,Rancher,Clerk,Farmer

=== Program that splits lines in file (C#) ===

using System;
using System.IO;

class Program
{
static void Main()
{
int i = 0;
foreach (string line in File.ReadAllLines("TextFile1.txt"))
{
string[] parts = line.Split(',');
foreach (string part in parts)
{
Console.WriteLine("{0}:{1}",
i,
part);
}
i++; // For demo only
}
}
}

=== Output of the program ===

0:Dog
0:Cat
0:Mouse
0:Fish
0:Cow
0:Horse
0:Hyena
1:Programmer
1:Wizard
1:CEO
1:Rancher
1:Clerk
1:Farmer

5. Splitting directory paths

Here we see how you can Split the segments in a Windows local directory into separate strings. Note that directory paths are complex and this may not handle all cases correctly. It is also platform-specific, and you could use System.IO.Path. DirectorySeparatorChar for more flexibility. [C# Path Examples - dotnetperls.com]

=== Program that splits Windows directories (C#) ===

using System;

class Program
{
static void Main()
{
// The directory from Windows
const string dir = @"C:"Users"Sam"Documents"Perls"Main";
// Split on directory separator
string[] parts = dir.Split('""');
foreach (string part in parts)
{
Console.WriteLine(part);
}
}
}

=== Output of the program ===

C:
Users
Sam
Documents
Perls
Main

6. Split internal logic

The logic internal to the .NET framework for Split is implemented in managed code. The methods call into the overload with three parameters. The parameters are next checked for validity. Finally, it uses unsafe code to create the separator list, and then a for loop combined with Substring to return the array.

7. Benchmarks

The author tested a long string and a short string, having 40 and 1200 chars. String splitting speed varies on the type of strings. The length of the blocks, number of delimiters, and total size of the string factor into performance.

Results. The Regex.Split option generally performed the worst. The author felt that the second or third methods would be the best, after observing performance problems with regular expressions in other situations.

=== Strings used in test ===
//
// Build long string.
//

_test = string.Empty;
for (int i = 0; i < 120; i++)
{
_test += "01234567"r"n";
}
//
// Build short string.
//

_test = string.Empty;
for (int i = 0; i < 10; i++)
{
_test += "ab"r"n";
}

=== Example methods tested (100000 iterations) ===

static void Test1()
{
string[] arr = Regex.Split(_test, ""r"n", RegexOptions.Compiled);
}

static void Test2()
{
string[] arr = _test.Split(new char[] { '"r', '"n' }, StringSplitOptions.RemoveEmptyEntries);
}

static void Test3()
{
string[] arr = _test.Split(new string[] { ""r"n" }, StringSplitOptions.None);
}

Longer strings: 1200 chars. The benchmark for the methods on the long strings is more even. It may be that for very long strings, such as entire files, the Regex method is equivalent or even faster. For short strings, Regex is slowest, but for long strings it is very fast.

=== Benchmark of Split on long strings ===

[1] Regex.Split: 3470 ms
[2] char[] Split: 1255 ms [fastest]
[3] string[] Split: 1449 ms

=== Benchmark of Split on short strings ===

[1] Regex.Split: 434 ms
[2] char[] Split: 63 ms [fastest]
[3] string[] Split: 83 ms

Short strings: 40 chars. This shows the three methods compared to each other on short strings. Method 1 is the Regex method, and it is by far the slowest on the short strings. This may be because of the compilation time. Smaller is better. [This article was last updated for .NET 3.5 SP1.]

Performance recommendation. For programs that use shorter strings, the methods that split based on arrays are faster and simpler, and they will avoid Regex compilation. For somewhat longer strings or files that contain more lines, Regex is appropriate. I show some Split improvements that can improve your program. [C# Split Improvement - dotnetperls.com]

8. Escaped characters

You can use Replace on your string input to substitute special characters in for any escaped characters. This can solve lots of problems on parsing computer-generated code or data. [C# Split Method and Escape Characters - dotnetperls.com]

9. Caching delimiters

The author's further research into Split and its performance shows that it is worthwhile to declare your char[] array you are splitting on as a local instance to reduce memory pressure and improve runtime performance.

=== Slow version - before ===

//
// Split on multiple characters using new char[] inline.
//

string t = "string to split, ok";

for (int i = 0; i < 10000000; i++)
{
string[] s = t.Split(new char[] { ' ', ',' });
}

=== Fast version - after ===

//
// Split on multiple characters using new char[] already created.
//

string t = "string to split, ok";
char[] c = new char[]{ ' ', ',' }; // <-- Cache this

for (int i = 0; i < 10000000; i++)
{
string[] s = t.Split(c);
}

Interpretation of the above table. We see that storing the array of delimiters separately is good. My measurements show the above code is less than 10% faster when the array is stored outside the loop.

10. Rewriting PHP explode

C# has no explode method exactly like PHP explode, but you can gain the functionality quite easily with Split, for the most part. You can replace explode with the Split method that receives a string[] array. [C# PHP explode Function - dotnetperls.com]

11. Summary

Here we saw several examples and two benchmarks of the Split method in the C# programming language. You can use Split to divide or separate your strings while keeping your code as simple as possible. Sometimes, using IndexOf and Substring together to parse your strings can be more precise and less error-prone. [C# IndexOf String Examples - dotnetperls.com]

posted @ 2009-07-10 14:41 蜘蛛 阅读(899) | 评论 (0)编辑 收藏

http://www.microsoft.com/click/SharePointDeveloper/
posted @ 2009-07-09 17:58 蜘蛛 阅读(190) | 评论 (1)编辑 收藏

相信

    相信你做得到,你一定会做到。

    不断告诉自己某一件事,即使不是真的,最后也会让自己相信。

   警觉

    对于那些使狗和儿童感到畏惧的人应提高警觉。

    警觉过度犹如不及,使人变得多疑。

    不要羡慕邻居的篱笆更绿,或许荆棘多于青草。

    对于满口“别人都说—–”的人,问他“别人”是谁,就会看到他张口结舌的窘态。

    陌生人过分热心帮你做事时 ,当心他别有居心。

    挑战

    如果你想要更上一层楼,就为别人提供超出预期更多更好的服务。

    每一次都尽力超越上次的表现,很快你就会超越周遭的人。

    亨利福特悬赏2.5万元,征求有办法让他在每一台汽车上节省一个螺钉和螺冒的人。

    你让我工厂的每个环节节省10分钱,我让你平步青云。

    如果你一直保持现状,10年后将会如何?

    在你有把握做得更好之前,不要破坏任何东西。

    主要目标

    你的人生想要什么?你能付出什么作为回馈?

    成功的人只想自己要的――而非自己不要的。

    不要管过去做了什么,重要的是你将来要做什么?

    如果你不知道你自己的一生要的是什么,你还想得到什么?

    智者除了有所为,还能有所不为。

    为自己想要的忙碌,如此即无暇担忧你不想要的。

    不要怕目标定得太高,你可能需要退而求其次。

    如果你不会知道自己要什么,别说你没有机会。
    正确的思考

    先正确的评判自己,才有能力评断他人。

    你是否欺骗别人,或是自己?想清楚再回答。

    三思而后行的人,很少会做错事情。

    企图说服不用大脑的人,是徒劳无功。

    认为整个世界都错的人,极可能错在自己。

    行动

    观察走在你前面的人,看看他为何领先,学习他的做法。

    忙碌的人才能把事情做好,呆板的人只会投机取巧。

    优柔寡断的人,即使做了决定,也不能贯彻到底。

    善意需要适当的行动表达。

    合作

    请求比命令能得到更好的结果。

    善于下命令的人,必定能够服从命令并且执行。

    乐意合作产生支持的力量,强迫服从导致失败的结果。

    告诉上司你想要什么,看他是否愿意帮助你去排除障碍。

    友善的合作比煽动更得人心。

    合作必须从部门领导开始,效率亦然。

    狼狈为奸绝非合作。

    除非你自己愿意被别人伤害,否则没有人能够伤害你。

    言之有物

    记住,别人从你所说的每一个字,了解你所知的多寡。

    你怎么说和你说什么同样重要。

    人们在有所求时,语气特别不同。

    语气委婉别人比较听得进去。

    口不择言往往造成尴尬的场面。

    刻薄的话伤人最甚。

    思考可以随心所欲,表达想法则必须谨慎小心。
   热诚

    当热诚变成习惯,恐惧和忧虑即无处容身。

    缺乏热诚的人也没有明确的目标。

    热诚使想象的轮子转动。

    一个人缺乏热诚就象汽车没有汽油。

    善于安排玩乐和工作,两者保持热诚,就是最快乐的人。

    热诚使平凡的话题变得生动。

    多做一点

    每次你多做一些,别人就欠你一些。

    让别人做得更好,同时提升自己的价值。

    善于钓鱼的人选用鱼喜欢的饵。

    你不能让所有的人喜欢你,却能减少别人讨厌你的原因。

    与人协商而不产生摩擦,是有待学习的一大课题。

    多做一些,机会将随之而来。

    为别人服务最多的人最富有。

    服务的道路才能通往快乐的城市。

    勇气

    勇敢的承认自己不知道的事情,才能学习并进步。

    勇气只是多跨一步超越恐惧。

    抱怨自己没有机会的人,多半没有勇气冒险。

   批评

    一事无成的无名小卒才能免于批评。

    不要怕不公正的批评,但要知道哪些是不公正的批评。

    不要批评你不了解的人,要趁机向他学习。

    不要怕受人批评。当你提出新的观念,就要准备受人批评。

    不要批评别人的行为,除非你知道他为何那么做。你在同样的情况下也可能会如此。

    不能忍受批评,就无法尝试新事物。

    如果你经常批评别人,何不试着赞美别人?

    开始批评之前,最好先略加赞美。

    如果你想要更受人欢迎,尽量多赞美,少批评。

    行为

    真正伟大的人,别人会从他的善行感受出来。

    一天没有臆见善行,就是白过了。

    奖章和头衔不能让你上天堂,善行才能增加你的分量。
   建设性的行为才能服人,言语的吹嘘无益。

    不要说你想要什么,用行为表达。

    善行是赞美自己最好的办法。

    如果你比别人更具智慧,别人会从你的行为看出来。

    善意的回应是惩罚对你不义的人最安全的方式。

    对不喜欢你的人不要多费口舌。

    花钱想要上天堂的人,一定后悔没有多行善。

    善行比滔滔雄辩更能打动人心。

    墓志铭不如善行更另人怀念。

    世界不会因为所知给你勋章,而会因你的善行而给你荣耀。

    善行不需要言语的粉饰。

    明确的目标

    明确的了解自己想要什么,致力追求。

    一个人没有明确的目标,就象船没有罗盘一样。

    智者都有清晰思考的习惯。

    意志力缘于持续的行动、自动自发、明确的目标。

    诚实与努力的工作,需要明确的目标引导才能成功。

    缺乏明确的目标,一生将庸庸碌碌。

    坚定的目标是成功的首要原则。

    教育或学习

    教育是开发内在的力量。所有的教育都靠自己的体会;没有人能够教育另外一个人。

    你从工作中学到的,比眼前得到的报酬更可贵。

    倾听才能学习,说话无益。

    好老师一定是好学生。

    不一定把所有的知识都记在心里,能够取得所需的知识即可。

    研究一个人良好的观念,剩过挑剔他的缺点。

    知识必须加以运用,才能产生力量。

    努力把事情做得比别人更好,你就会忘了财务的困扰。

    如果你不努力向上司学习,就虚掷了升迁及更好的工作机会。

    哲学家从犯错的人身上找出人类所犯的错误。

    善于发问使苏格拉底成为当时的智者。

    明智的运用知识,吸引更伟大的知识。
   你自工作中学到的越多,赚得越多。

    自工作学习的人,等于别人付钱让他上学。

    知识必须经由行动产生利益,否则无用。

   失败

    爱迪生失败一万次才发明灯泡。失败一次不必担心。

    “一般人”只失败一次就放弃。所以“一般人”者众,而爱迪生只有一个。

    漫无目的,随波逐流是失败的首要原因。

    横逆中能找出顺逆中所没有的机会。

    让孩子小时侯“好过”,长大之后经常会“难过”。

    批评别人错误时,更要加入一些赞美。

    失败和暂时的挫折有极大的差别,了解两者的不同,才能成功。

    不因一时的挫折停止尝试的人,永远不会失败。

    许多人只需要再多支持一分钟,多做一次努力,就能反败为胜。

    成功招揽成功,失败招揽失败。

    企图不劳而获的人,往往一事无成。

    别人的错误不是你犯错的借口。

    如果你尽力而为,失败并不可耻。

    不要责怪孩子不好,怪那些没有教好孩子的大人。

    错误象花园中的杂草,若未及时铲除,就会到处蔓生。

    自怜是让人上瘾的麻醉剂。

    智者注意自己的缺点,一般人吹嘘自己的优点。

    失败若能将人推出自满的椅子,迫使他做更有用的事情,则是一种福气。

    失败是一种让人承担更大责任的准备。

    了解自己为何失败,则失败是资产。

   残障

    一位中国西北大学的盲生以速记抄录讲义,卖给视力正常的同学,完成学业。

    如果你感到泄气,想想又瞎、有盲、又聋,一生过得充实愉快,著书鼓励更多人的海伦`凯勒。

    从顶端开始的人是极大的不幸,因为他只能往往是向下滑。

    快乐

    有些人累积金钱换取财富,智者累积快乐,与人分享仍取之不竭。

    快乐在于行动,不只是拥有。

    剥夺别人的快乐不能使自己快乐。
    微笑使人更美丽、更愉快,却不费分文。

    热情比怨恨更得人心。

    慷慨的给予快乐,自己更快乐。

    和谐

    和谐使宇宙运转不停。

    机器的摩擦耗费成本,人际间的摩擦损耗心灵。

    如果你不同意别人的说法,至少不要和他人争执。

    促进和平的人受人景仰,挑起摩擦的人遭人嫌恶。

    记住,至少要两个人才能争执。

    两个人以上为明确的目标同心协力,将产生无穷的力量。

    彼此信任是良好人际关系的基础。

    人际关系良好的人永远不愁没有朋友。

    喜欢和谐的人通常知道该如何维系。

    持久的成功建立在和谐的人际关系之上。

    尽量充当和事佬,就没有太多纷争。

    趁机浑水摸鱼的人才会挑起人事纷争。

   公平

    不要忽视小节,宇宙由原子构成。

    得到帮助最好的方式是开始帮助别人。

    信心

    信心愈用愈多。

    除非你愿意,没有人能破坏你对任何事情的信心。

    所有伟大的奇迹都只是信心的力量。

    不幸很少会纠缠有希望和信心的人。

    信心需要立足点,恐惧却能凭空存在。

    信心缘于明确的目标及积极的态度。

    信心是一种态度,常使“不可能”消失于无形。

    信心不能给你需要的东西,却能告诉你如何得到。

    恐惧

    虚张声势往往显示极深的恐惧。

    不要因为恐惧而犹疑,前进就能消除恐惧。

    恐惧是魔鬼最大的武器,人类最大的敌人。

    意识清楚的人很少畏惧任何东西。

    信心可以克服恐惧。

    把你的恐惧留给自己,别人有别人的恐惧。

    坏运气喜欢怕他的人。

    希望和恐惧不会同行。

    恐惧贫穷的人永远不会富有。
   朋友

    有求于人才会去找朋友,很快就没有朋友。

    如果你愿意要朋友,先做别人的朋友。

    不要让帮助你自消沉中振作的朋友失望。

    朋友是了解你并尊重你的人。

    友谊需要经常表达才能长存

    友谊是看出朋友的缺点却不张扬。

    抱怨

    如果你非要抱怨,那么你小声一些,以免吵到别人。

    不要太苛求抱怨的人,他把自己的日子弄得够难过的了。

    健康和习惯

    如果你感觉无精打采,等到饿了再去吃东西。

    生病之前就应该看医生。

    只吃八分饱

    不断想着疾病,你就会不断生病,健康亦然。

    新鲜的水果和蔬菜是永远不会过量的健康食品。

    不要头痛医头,找出病因才是根本之道。

    吃得多不一定健康。

    注意饮食习惯,省下看医生的花费。

posted @ 2009-07-02 15:09 蜘蛛 阅读(193) | 评论 (0)编辑 收藏

简介:影视的后期制作,分工是非常详细的,同样完成一个案子,效率就有高低之分。 广告片科学的方法,一般分为3D,粗剪,精剪等部分,一般胶片转好磁回来,粗剪和3D同时进行(如果该片没有3D,就省事多了),粗剪其 ...
影视的后期制作,分工是非常详细的,同样完成一个案子,效率就有高低之分。  

广告片科学的方法,一般分为3D,粗剪,精剪等部分,一般胶片转好磁回来,粗剪和3D同时进行(如果该片没有3D,就省事多了),粗剪其实不是剪辑画面,而是剪辑时间码,所以对画质和机器要求也低,粗剪是看感觉,可以说整个片子的感觉在粗剪里就决定了。得到导演认可后,通过时间码转到精剪设备里去,这回是在做画面和特技了,一定要1 比1完全无压缩的画质,这对机器的要求就非常高了。最后,一部广告片就出来了(当然还有音乐和配音)。  

那位老兄要问了,为什么不直接在精剪设备里做呢?省得费事转来转去的。老兄你不了啊,前期拍片子,一个镜头要拍很多遍,全都1比1 采到精剪设备里去?那机器不爆掉才怪,所以经过粗剪后,采集的画面都是最后要的,多余的已经去掉了。再说,通常精剪设备都同时接好几个片子,大家都有时间限制,不可能在这里花太多时间做粗剪。  

做电影也是这个套路,只不过剪辑点不是Timecode(时间码),而是Keycode了。  

至于大家经常看的电视剧,专题片,晚会什么的片子,并不要求1比1的画面,再说又不是用胶片拍的,所以一般直接在粗剪设备上做就是了。(在这里,原先的粗剪也就变成精剪设备了)一般画面3 比1,也有1.6比1的。  

再来说说设备:  

1.粗剪设备:粗剪设备通常采用硬件视频采集卡加剪辑软件和大容量的SCIS硬盘阵列组成。视频采集卡通常用RT2000和MGA的DIGISUIT卡(前者最大压缩比3 比1,后者号称1.6比1)  

AVID(采用RT2000系列),最早是AVID的MCXpress树立的标准,该软件非常专业,概念非常先进,一直在MAC上,后来被微软换股票后,移植到了W IN上,但没有MAC上的好用。优缺点以后再详说。  

EDIT(两个系列卡都可以用),著名的DISCREET公司出品,原来叫DVISION,后来DISCREET要进军PC市场,将其收购后改名为EDIT,理念和A VID差不多,但要便宜不少,用户很多。  

还有很多软件象什么快刀啊,ADOBE的PREMIRE,还有国产的大洋,索贝什么的大都采用DIGISUIT系列,软件都偏特技,电视台采用的比较多。  

2.精剪设备:一般采用SGI工作站上的软件,也有特殊的比如宽泰,它严格说并不是计算机。  

FLINT/FLAME /INFORNO系列,分别在SGI的OCTEAN和ONYX系列工作站上,充分发挥SGI64位的优势,1比1完全无压缩采集,特技功能十分强大,F LINT做电视为主,INFORNO做电影,FLAME主要辅助INFORNO,应用十分广泛。  

宽泰系列:自己的机器,有HAL,HEARY,DOMINO系列,HAL特技繁多,最适合做电视片头。HEARY系列剪辑功能强大,适合做纯剪辑的片子。D OMINO系列是做电影的设备。宽泰价格非常昂贵,一般的后期公司都不感问津,它的调色功能非常棒,无出其左右者。  

好六:在SGI上,本人不熟悉,好象广州用的人很多。  

3.特技软件:PC和MAC上都有很多,最常用的如AFTER EFFECT,mayafusion,digitalfusion,shake,combustion,commtion等等(可能会拼错,原谅),他们大都作为辅助软件使用。  

现在随着数字技术的进步,带来的是个人摄影的推广。DV也渐渐普及了,所以也涌现出不少DV的剪辑软件,除了老牌的ADOBE的PREMIRE之外,苹果公司收购了M ACROMEDIA公司的视频小组后,推出了FINAL CUT PRO,一开始是专门剪辑DV的,并宣布永远不会移植到PC上,让苹果用户放心。它一度是剪辑DV最好用的软件,可是AVID公司最近推出了A VID XPRESS DV2.0后,情况发生了变化,跟AVID公司相比,刚成立的FCP小组还是有不少差距的,FCP的诸如剪辑理念啊,快捷键啊这些可感不可说的地方跟X PRESS DV比还是差不少啊。最重要的是 AVID XPRESS DV的界面,使用习惯都和专业的AVID MCXPRESS甚至AVID FILMCOMPSER都一样,学会了一样,等于学会了其他的AVID产品,出去找工作也好找啊。 接下来说说AVID,小弟其实对别的非线编系统不是很熟悉,只是对AVID情有独钟,因为他的操作非常人性化,剪辑的概念非常突出,非常清楚自己是干什么的(这点很多软件都做不到),它就是个基于时间码的剪辑软件,我有一些朋友先用的其他系统,接触了 A VID之后对我说:“AVID一点也不好用,特辑很少!”老兄啊,你要知道它就是一个彻头彻尾的剪辑软件,你要它做特技干什么?!其实很多朋友接触剪辑都会有这样的疑问,其实在国内,工作的分工一直不明确,老板通常会让一个剪辑师干完所有的剪辑加特技,殊不知这样的效率很低。真正高效的方法是由一个或几个特技师完成需要特技的画面,由剪辑师完成剪辑。  

现在AVID也开放了自己的PLUGINS的开发包,已经有很多公司为AVID开发了对它的PLUGINS,AVID也变得和其他软件一样有众多的外挂特技包了。但我通常做特技还是用A E或MF,再转到AVID里去。  

AVID 还有一个所谓的“缺点”,就是非常的不开放,它有自己独特的媒体储存方式,任何外来的如MOV或AVI文件要导入AVID都要转换成AV ID自己的格式,这个过程很缓慢。但我觉得这也是它独特的剪辑理念造成的,就拿AVID XPRESS DV来说吧(其它的AVID系统也一样)。首先,用它剪辑好一个片子之后,可以将所有的从DV上采集下来的画面删除掉,只要存一个PROJEC T文件(1K左右大小)拿着该文件和你的DV母带,到世界任何一个有 AVID的地方,都可以自动将你剪辑好的片子恢复出来,方便吧!就是因为它的P ROJECT文件记录了该DV母带上那些是要的画面的时间码,打开 PROJECT文件后它找不到画面,就会问你要DV母带,再重新采集一边!  

如果你有别的软件作好的画面要加入剪辑,我建议你先把该画面录到DV带上去,再让AVID采集,而不是直接导入AVID,这样你只要存一个P ROJECT文件,其他都可以从硬盘上杀掉。若干月或若干年后,你的客户来找你想修改,你随时都可以恢复到你存盘的水平,只要你的DV母带和P ROJECT文件还在。  

先罗嗦到这里,有时间再讲吧。

 AE特效命令功能解释



Adjust 调节特效

Brightness &Conrtast      亮度和对比度

Channel Mixer          通道混合

Color Balance      颜色平衡

Color Stabilzer

Curues              曲线控制

Hue/Saturation      色调饱和度

Levels(Individual Controls)   灰度级

Posterize             色调分离

Threshold              阈值



Channel通道特效

Alpha Levels           调节图像Alpha通道

Arithmetic            算法

Blend              混合

Cineon Lonverter         转换Cineon帧文件

Compound Arithmetic       复合算法

Invert               转化

Minimax             扩亮扩暗

Remove Color Mating       删除蒙板颜色

Set Channels           设置通道

Set Mattle            设置蒙板

Shift Channels          转换通道

Image Control图像控制特效

Change Color           颜色转变

Color Balance(HLS)颜色平衡(HLS)

Colorama             彩光

Equalize             均衡

Gamma(中介曲线)/pedestal(最低输出值)/Gain(最大输出值)

调整每个通道的反应曲线

Median              中值

PS Arbitary Map         映像

Tint                色彩

Keying键控特效

Color Difference Key       对图像中含透明或半透明的素材键出

Color Key            对指定色键出

Color Range           对Lab,Yuv或RGB等不同颜色空间键出

Difference Matte         通过一个对比层与源层进行比较然后将源层中位置                   和颜色与对比层中相同的像素输出

Extract              通过指定一个亮度范围产生透明,键出图像中所                   有与指定键出亮度相近的像素,主要用于背景与保                   留对象明暗对比度强烈的素材

Inner Outer Key         指定两个遮罩路径,一个键出范围内边,一个键出                   范围外边,系统根据内外遮罩进行差异比较

Linear Color Key         通过指定RGB,HUE或Chroma键出,也可保留前                   边使用键控变为透明的颜色

Luma Key            键出与指定明度相似的区域适用,对比强烈图

Paint艺术化特效

Vector Paint           模仿绘画,书写等过程性动画效果

Render艺术化特效

Audio Spectrum         将指定的声音以其频谱形式图像化

Beam               激光效果

Audio Waveform         以波形指定的音频图像化

Ellipse          依据给定的尺寸在图像上画一椭圆

Fill          以选定的颜色对目标遮罩进行填充

Fractal          纹理效果(万花筒)

Fractal Noise        产生闪电效果或其它的电子特技效果

Lighthing        产生闪电效果或其它的电子特技效果

Radio Waves      沿效果点中心向外扩展发射出无线电波的波纹

Ramp          在图像上创建一个彩色渐变斜面,可以将其原图融合

Stroke          沿指定的路径产生描边效果

Vegas          沿图像轮廓或指定的路径进行艺术化描边

Stylize风格化效果(模仿各种画风模拟真实的艺术手法创作)

Brush Strokes   产生画笔描绘的粗糙外观效果

Color Emboss   产生彩色浮雕效果

Emboss      产生单色浮雕效果

Find Edges    强化颜色变化区域的过渡像素,模仿铅笔色边效果

Glow       搜索图像中明亮部分,然后对周像素明亮化,产生扩散的辉光效果

Leave Color    使指定颜色保持不变,而把其它部分转换成灰色显示

Mosaic      分割图像为许多正方形的方格,马赛克效果

Motion Tile    将多个源图像作为磁片复制到输出,屏幕分割为许多个正方形

Noise       在图像中加入细小的杂点,产生噪波效果

Scatter    在不改变每个独立象素色彩的前提下重新分配产生模糊的,涂抹的外观

Strobe Light    产生闪烁的效果

Texturize     指定层的纹理射到当层图像上

Write On     在指定层中产生笔书写效果

Simulation仿真特效

Card Dance        根据指定层的特征分割画面,产生舞踏的效果

Caustics          模拟气泡,水珠等流体效果

Shatter           对图像进行粉碎爆炸处理,产生爆炸飞散的碎片

Wave World        创造液体波纹效果

Particle Playground   产生大量相似物体独立运动的动画效果

Audio音效效果

Backwards         将声音从结束关键帧播放到开始关键帧,实现反向播放

Base & Treble       调整音频层音调

Delay           精确控制声音的延迟和调制,达到回声效果

Flange & Chorus      合成两种分离的音频特技效果

High-Low Pass       将低音和高音从声音中滤出

Modulator         通过变化频率和振幅给音频加颤音,比如逐渐消失

Parametric EQ       精确调整音频的声调

Reverb           表现宽阔的真实回声效果

Stereo Mixe        混合左右声道,产生一个声道到另一声道的完整音频

Tone            产生各种特技效果

Blue & Sharpen模糊和锐化

Channel Blur          对图像中的RGB和ALPHA通道进行单独的模糊

Compound Blur        沿指定的模糊层的的亮度为基准,对当层模糊

Directional Blur        沿指定方面产生模糊

Fast Blur/Gaussian Blur    高度模糊

Radial Blur          以效果点为基准,产生辐射模糊

Sharpen            通过相邻像素点之间的对比度进行图像清晰化

Unsharp Mask         通过增加定义边缘颜色的对比度产生边缘锐化效果

Distort 扭曲特效

Bezier Warp在层的边界上沿一条封闭的Bezier曲线变形图像

Bulge以效果点为基准对图像进行变形处理使图像产生凹凸

Corner Pin通过改变图像四个边角的位置变形图像

Displacement Map以指定层的像素颜色值为基准变形产生变形效果

Mesh Warp在层上使用网格的Beizer切片控制图像的变形区域

Mirror沿分割线划分图像并反向一边图像到另一边

Offset根据设定的偏量对图像进行偏移对图像推向另一边

Optics Compensation产生摄像机透镜变形的效果

Polar Coordinatess将直角坐标转为极坐标或将极坐标转为直角坐标

Reshape产生涟漪效果,以圆心为轴向四周扩散

Smear在图像中定义一个区域内图像进行偏移延伸和变形

Spherize球面化效果,可以改变球形效果点位置

Transform产生二维几何变化

Twirl围绕指定点旋转图像,产生漩涡效果

Wave Warp在指定的参数范围内随机产生弯曲的波浪效果

Perspective三维空间

Basic 3D建立一个虚拟的三维空间,在三维空间中对对象进行操作

Bevel Alpha在图像的Alpha通道区域出现导角外观

Bevel Edges在图像边缘产生导角外观

Drop shadow沿图像的Alpha通道边缘为图像制作阴影特效

Text文本

Basic Text文本

Numbers产生随机和连续的数字效果

Path Text使文字沿路进行动画

Time时间

Echo在层的不同点上合成关键帧,对前后帧进行混合,产生拖影或运动模糊

Postering Time为当前层指定一个新的帧速率产生特殊效果

Time Displacement通过按时转换像素以变形影像,产生各效

Transitions两个镜头间如何进行连接

BlockDissolve以随机的方块对两个层的重叠部分进行切换

Card Wipe和指定切换层进行卡片的反转擦拭

Gradient Wipe以指定层的亮值建立一个渐层

Iris Wipe指定顶点数产生多边形,对图像进行切换

Radial Wipe在指定的环绕方向上呈辐射擦拭层素材

Venetian Blinds在层素材或合成图像上产生百叶窗效果

Linear Wipe在层指定方向上显示擦拭效果,显示底层画面

Video视频效果

Brdcast Colors(广播级颜色)调整像素色彩的值

Reduce Interlace Flicker

Timecode消除隔行扫描产生的闪烁的现象

posted @ 2009-07-02 11:21 蜘蛛 阅读(214) | 评论 (0)编辑 收藏

MicroCosmforQuicktime 无损压缩编码器目前最新的版本是V1.0.1,可以到其网站(http://www.digitalanarchy.com /product_micro.html)下载一个Demo版本试用。下面以后期合成软件AdobeAfterEffects为例说明MicroCosm 无损压缩编码器的使用方法。


高质量保存自己作品的方法:对于作品,一般无需保存成无损压缩的格式,因此可以采用以下的几种常用方法:用DivX压缩成AVI格式;用SorensonVideoV3.1Professional压缩成体积很上的MOV格式;用TMPEGEnc 等编码器或在相应板卡的支持下压缩成DVD、VCD、SVCD等格式。根据所要应用的场合来选择不同的保存方式


首先先简单介绍一下用于高质量AVI格式压缩的DivX编码器。DivXCodec的开发,实际是挪用了Microsoft公司的 Mpeg4v34.1.00.4920LowMotion和4.1.00.4917FastMotion的编码核心。在经过一系列的修正和版本更新后,DivX编码器现在已经可以在所有主流操作平台上稳定地运行。DivX视频编码所使用的MPEG4编码压缩技术是一种高压缩比有损视频压缩技术。用它来压缩一部容量为5-10G的DVD,保持相同的分辨率和AC3音轨情况下只需要1-2张CDROM,压缩比接近10:1。这种编码器目前的主要应用是互联网上的高品质的DVDRip电影,但对于后期制作人员来说,它所提供的高品质和高压缩比使得我们可以更轻松而廉价的保存高品质的影像素材或自己的作品。


posted @ 2009-07-02 10:45 蜘蛛 阅读(731) | 评论 (0)编辑 收藏

简介:

第一遍,先看光,每个镜头中光是怎么用的,下一个镜头的光有什么变化,有没有投影的变化,有没有黑天白天的变化,有没有阴天、下雨;

第二遍,空间有没有大小的变化,大房间,小房间,有没有室内室外的变化;

第三遍,听声音,是同期还是后期,每个镜头中有有没有表现出的音空间来,它是什么样的,下个镜头的声音空间感有什么变化 ;

第四遍,背景是什么,与前景的关系,它怎样变的(这是透视关系);

第五遍,有没有运动,是画面内的被摄体在运动,还是摄影机在运动,是水平运动(左右横移)多还是纵深运动多。

第六遍,有没有用变焦,它是准确地表现了两个人物关系,还是造成了错误的关系。变焦用得多不多;摇镜头有没有增加新的信息或含义;

第七遍,运动的动与静的关系,是前景有运动,背景没有;或是背景有运动,前景没有;或是前后景都有,或前后景都没有;

第八遍,剪辑点在哪里,起幅的画面是怎么样的,落幅的画面是怎样的,如果是一个人在跑,注意起幅的人体造型好不好,好与不好,看的时候有什么不同;是用切换多,还是用叠化多。

第九遍,在一个镜头中人物的调度是怎样的,有没有第四面墙的舞台处理(即所有镜头中的人都排成一排面向摄影机,就象幼儿园里的排排坐,吃果果。)演员的单独表演也是力求面向第四面墙?

第十遍,音乐用在哪里;有没有主题歌,有作用吗?音乐与人物动作(或称表演)关系,音乐与摄影机运动的关系,音乐与色彩变化的关系,音乐与对话的情绪及节奏的关系,音乐与自然音响(即噪声)的关系等等

第十一遍,如果是故事片,情节的转折点是用什么手段来表现的,是用嘴皮子说出来的,还是无声的段落,如果是你的话,你能用无声把这一段落表现出来吗?

第十二遍,画面上人物关系的变化,有变化,还是没有变化,A在整个镜头里始终站在B右边,就没有走到B的左边去过,等等;

第十三遍,画外空间是怎么用的,是作为画面内的空间的延伸,还是另外一个非叙事的空间;

第十四遍,对话写得是否生活化,还是舞台腔,好念吗?

第十五遍,每个镜头中人物都穿什么颜色的服装,他们之间的相互关系,也就是说,有没有色彩的调度,即作为流动色彩来使用;

第十六遍,道具的时代,地域,民族,文化方面准确吗?

第十七遍,时间上是否用闪回,是用什么手段来表现的,合理吗?

第十八遍,用长镜头吗?最长的镜头有多长,你感觉是长,还是没有实际那么长,这个长镜头内的人物关系是怎样的。全在画面,或者是一个在画内,一个在画外(正反拍不算内)。
第十九遍,人声,是男高音,女高音,男中音,女中音,男低音这样的搭配吗?
 
第二十遍,特写是作为情节中的视觉重音来用的吗?

第二十一遍,全片的声画结合如何,有精彩的地方吗?
posted @ 2009-07-02 10:44 蜘蛛 阅读(159) | 评论 (0)编辑 收藏

http://www.infoq.com/cn/articles/SharePoint-Andreas-Grabner
posted @ 2009-06-25 18:57 蜘蛛 阅读(136) | 评论 (0)编辑 收藏

http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32

Web.config modifications with a SharePoint feature
http://weblogs.asp.net/wesleybakker/archive/2009/01/21/web.config-modifications-with-a-sharepoint-feature.aspx

Using SPWebConfigModification to modify a SharePoint web application's web.config for all servers in the farm
add ajax httphandle to web.config
http://www.zimbio.com/VisualStudio/articles/5/Using+SPWebConfigModification+modify+SharePoint
posted @ 2009-06-24 08:15 蜘蛛 阅读(251) | 评论 (0)编辑 收藏