月度归档:2013年07月

第一个ps例子:泡泡笔刷

效果图泡泡笔刷
制作步骤
1.新建一个文件,高400,宽400,分辨率72,rgb颜色8位,背景内容白色
2.改变背景色:图像->调整->反相(ctrl+i)
3.双击右下方的黑色图片,弹出确定就行(进行解锁,把它变色图层)。
4.滤镜-》渲染-》镜头光晕,选择第三个,出现一个关照效果
5.滤镜-》扭曲-》极坐标,选择第二个
6.图像-》图像旋转-180度
7.滤镜-》扭曲-》极坐标,选择第一个,出现一个圆的效果
8.长按选框工具,选择椭圆选框工具,按住shift拉出一个圆,大小不要大于外围圆的大小
9.ctrl+shift+i,进行反相,按delete删除
10.ctrl+shift+i,进行反相,按ctrl+i,图像从黑变白
11.右键-》取消选择
12.编辑-》定义画笔预设

可以直接拿来用的15个jQuery代码片段

摘要:开发人员利用jQuery代码不仅能给网站带来各种动画、特效,还会提高网站的用户体验。本文总结了开发者经常使用的15个jQuery代码片段,大家可以直接拿来用。

jQuery里提供了许多创建交互式网站的方法,在开发Web项目时,开发人员应该好好利用jQuery代码,它们不仅能给网站带来各种动画、特效,还会提高网站的用户体验。

本文收集了15段非常实用的jQuery代码片段,你可以直接复制黏贴到代码里,但请开发者注意了,要理解代码再使用哦。下面就让我们一起来享受jQuery代码的魅力之处吧。

1.预加载图片

 

1
2
3
4
5
6
7
8
9
10
11
12
(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
jQuery.preLoadImages("image1.gif""/path/to/image2.png");

源码 

 

2. 让页面中的每个元素都适合在移动设备上展示

 

 

 

1
2
3
4
5
6
7
8
9
10
11
var scr = document.createElement('script');
document.body.appendChild(scr);
scr.onload = function(){
    $('div').attr('class''').attr('id''').css({
        'margin' : 0,
        'padding' : 0,
        'width''100%',
        'clear':'both'
    });
};

源码 

3.图像等比例缩放

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$(window).bind("load"function() {
    // IMAGE RESIZE
    $('#product_cat_list img').each(function() {
        var maxWidth = 120;
        var maxHeight = 120;
        var ratio = 0;
        var width = $(this).width();
        var height = $(this).height();
        if(width > maxWidth){
            ratio = maxWidth / width;
            $(this).css("width", maxWidth);
            $(this).css("height", height * ratio);
            height = height * ratio;
        }
        var width = $(this).width();
        var height = $(this).height();
        if(height > maxHeight){
            ratio = maxHeight / height;
            $(this).css("height", maxHeight);
            $(this).css("width", width * ratio);
            width = width * ratio;
        }
    });
    //$("#contentpage img").show();
    // IMAGE RESIZE
});

源码 

4.返回页面顶部

 

1
2
3
4
5
6
7
8
// Back To Top
$(document).ready(function(){
  $('.top').click(function() { 
     $(document).scrollTo(0,500); 
  });
});
//Create a link defined with the class .top
<a href="#" class="top">Back To Top</a>

源码 

 

5.使用jQuery打造手风琴式的折叠效果

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var accordion = {
     init: function(){
           var $container = $('#accordion');
           $container.find('li:not(:first) .details').hide();
           $container.find('li:first').addClass('active');
           $container.on('click','li a',function(e){
                  e.preventDefault();
                  var $this = $(this).parents('li');
                  if($this.hasClass('active')){
                         if($('.details').is(':visible')) {
                                $this.find('.details').slideUp();
                         else {
                                $this.find('.details').slideDown();
                         }
                  else {
                         $container.find('li.active .details').slideUp();
                         $container.find('li').removeClass('active');
                         $this.addClass('active');
                         $this.find('.details').slideDown();
                  }
           });
     }
};

6.通过预加载图片廊中的上一幅下一幅图片来模仿Facebook的图片展示方式

 

 

1
2
3
4
5
6
7
8
var nextimage = "/images/some-image.jpg";
$(document).ready(function(){
window.setTimeout(function(){
var img = $("").attr("src", nextimage).load(function(){
//all done
});
}, 100);
});

源码

7.使用jQuery和Ajax自动填充选择框 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
$(function(){
$("select#ctlJob").change(function(){
$.getJSON("/select.php",{id: $(this).val(), ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '
' + j[i].optionDisplay + '
';
}
$("select#ctlPerson").html(options);
})
})
})

源码 

8.自动替换丢失的图片

 

 

1
2
3
4
5
6
7
8
// Safe Snippet
$("img").error(function () {
    $(this).unbind("error").attr("src""missing_image.gif");
});
// Persistent Snipper
$("img").error(function () {
    $(this).attr("src""missing_image.gif");
});

源码

9.在鼠标悬停时显示淡入/淡出特效

 

 

1
2
3
4
5
6
7
8
$(document).ready(function(){
    $(".thumbs img").fadeTo("slow", 0.6);// This sets the opacity of the thumbs to fade down to 60% when the page loads
    $(".thumbs img").hover(function(){
        $(this).fadeTo("slow", 1.0);// This should set the opacity to 100% on hover
    },function(){
        $(this).fadeTo("slow", 0.6);// This should set the opacity back to 60% on mouseout
    });
});

源码 

10.清空表单数据

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function clearForm(form) {
  // iterate over all of the inputs for the form
  // element that was passed in
  $(':input', form).each(function() {
    var type = this.type;
    var tag = this.tagName.toLowerCase();// normalize case
    // it's ok to reset the value attr of text inputs,
    // password inputs, and textareas
    if (type == 'text' || type == 'password' || tag == 'textarea')
      this.value = "";
    // checkboxes and radios need to have their checked state cleared
    // but should *not* have their 'value' changed
    else if (type == 'checkbox' || type == 'radio')
      this.checked = false;
    // select elements need to have their 'selectedIndex' property set to -1
    // (this works for both single and multiple select elements)
    else if (tag == 'select')
      this.selectedIndex = -1;
  });
};

源码 

11.预防对表单进行多次提交

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function() {
  $('form').submit(function() {
    if(typeof jQuery.data(this"disabledOnSubmit") == 'undefined') {
      jQuery.data(this"disabledOnSubmit", { submited: true });
      $('input[type=submit], input[type=button]'this).each(function() {
        $(this).attr("disabled""disabled");
      });
      return true;
    }
    else
    {
      return false;
    }
  });
});

源码 

12.动态添加表单元素

 

1
2
3
4
5
//change event on password1 field to prompt new input
$('#password1').change(function() {
        //dynamically create new input and insert after password1
        $("#password1").append("");
});

源码 

13.让整个Div可点击

 

1
2
blah blah blah. link
The following lines of jQuery will make the entire div clickable: $(".myBox").click(function(){ window.location=$(this).find("a").attr("href"); return false; });

源码 

14.平衡高度或Div元素

 

1
2
3
4
5
var maxHeight = 0;
$("div").each(function(){
   if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
});
$("div").height(maxHeight);

源码 

 

15. 在窗口滚动时自动加载内容

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var loading = false;
$(window).scroll(function(){
    if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
        if(loading == false){
            loading = true;
            $('#loadingbar').css("display","block");
            $.get("load.php?start="+$('#loaded_max').val(), function(loaded){
                $('body').append(loaded);
                $('#loaded_max').val(parseInt($('#loaded_max').val())+50);
                $('#loadingbar').css("display","none");
                loading = false;
            });
        }
    }
});
$(document).ready(function() {
    $('#loaded_max').val(50);
});

来自: codegeekz

创业者如何在Demo演讲上打动投资人?

摘要:Demo演讲中怎样才能打动投资人?一句话说清你的idea。在Google两位创始人Larry和Sergey向红杉资本寻求融资的时候,他们就一句话介绍了Google的独特与功能:Google一键通世界。你们感受一下。

作为记者,有时会参加一些创业创新类会议倾听创业者们的演讲。一般来说,主办方会给创业者10分钟的时间去展示自己的idea。在讲的过程中,有的创业者可能是因为长时间和机器交流,本身并不擅长言谈,演讲的时候显得特别腼腆和不自信。演讲结束后谁大家都云里雾里,在最后投资人提问的环节也答非所问。

也许有的投资人会在会后深入的了解你的产品,挖掘出它的潜力,但大部分投资人都不会有这个精力和时间。怎么才能在演讲中吸引到他们?如果你看过《乔布斯的魔力演讲》,应该会有所感触,虽然是乔布斯在新品发布上会的演讲技巧,但是很多其实是通用的。下面分享一些自己的观点(并不完全是书中所说):

 

时间控制。我们都知道,人的大脑会产生厌倦感,注意力时间是有限的,一般是在10分钟以内大家会认真听你的演讲(更甚的说法是六分钟),一旦超过那个时间点,大家的注意力可能都不在你那里了,打哈欠、看手表、玩手机、窃窃私语等,一片躁动。但是有些创业者就是无法在10分钟内讲完自己的内容,让人很是着急。

演讲思路。一般以讲故事的方式提出问题,然后介绍你的idea能解决这个问题。当然,不同的idea有不同的演讲思路,总的来说,你要能一直吸引大家的注意力,让他们关心你所讲的内容。

幻灯片尽量简洁。“复杂的最终境界是简单”,虽然微软给你提供了一级标题、二级标题、三级标题,但你最好不要用,否则幻灯片感觉像学术论文一样的复杂。堆砌文字只会让大家为了去理解幻灯片上大量的文字信息而分心,导致对你所讲的内容关心不多。最好一张幻灯片一个点。

把投资人都当“懒人”。投资人也是观众,而观众分为视觉、听觉、知觉性观众,反映到你的幻灯片就是,对听觉和视觉型观众,尽量用图片,因为图片更直观易理解,且能给人留下更长久的印象。对于必须要用文字的表达,也尽量简洁,比如只显示一个关键词,它可能是某个数据、年份或者游戏中某个角色,你要做的事情就是具体去解释这些关键词背后的意义给“懒惰”的观众。对于知觉性的观众,如果你做的是硬件产品,一定要与他们互动,让他们去触摸、把玩。

把投资人当小白。演讲中尽量避免专业术语,措辞尽量简单。关于这点,对比最强烈的的两个演讲是在2007年的Macworld大会上乔布斯和盖茨的。盖茨给人的感觉就是用一堆的专业术语自说自话,乔布斯给人的感觉是用通俗易懂的语言和观众互动。

让数字鲜活起来。对于一些枯燥的专业数据,你要去类比或者作比喻。比如形容IBM的超级计算机Roadrunner。如果给你说:这台计算机能力超强悍,运算速度达到了1petaflop/s,也就是每秒1000万亿次。是不是觉得有些懵?好像特厉害,但不知道到底有多厉害。如果这么给你形容:它的计算能力与10万台笔记本电脑计算能力的总和,是不是一下就觉得数字鲜活起来了?

idea的精简有力表达。你需要用一句话说清楚你idea能解决的问题和独特之处。在Google两位创始人Larry和Sergey向红杉资本寻求融资的时候,他们就一句话介绍了Google的独特与功能“Google provides access to the world’s information in one click”(Google一键通世界),正是这简单的表达,让投资人理解了Google技术的意义。

当然,上面这些只是一些通用的东西,演讲起来还得具体问题具体分析,但无论你介绍的是硬件、App、游戏或是开发工具,在去见投资人或者参加演讲之前,一定要彻彻底底弄清自己在做什么,不仅是为了融资,更是为了弄清你的这个idea到底有没有价值。

 

http://www.csdn.net/article/2013-07-17/2816253-startup-pitch

几道容易出错的JavaScript题目

下面这几道JavaScript题目大多来自于周五的一个小分享。都是很小的题目,但是很容易犯错。有一些是语言特性使然,有一些则是语言本身没有设计好而留下的陷阱。结果就是,遇到的人很容易陷进去骂娘,这些东西是略有些反直觉,感兴趣的不妨看看,平时我们还是尽量少些这样似是而非的代码。

1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function Container( properties ) {
    var objthis = this;
    for ( var i in properties ) {
        (function(){
                var t = properties[i];
                objthis[ "get" + i ] = function() {return t;};
                objthis[ "set" + i ] = function(val) {t = val;};
        })();
    }
}
var prop = {Name : "Jim", Age : 13};
var con = new Container(prop);
console.log(con.getName());
con.setName("Lucy");
console.log(con.getName());
console.log(prop.Name);

这段代码会输出什么?前面两行分别是“Jim”和“Lucy”,这不会有问题;但是第三行应该输出的是“Jim”,但是有的人会误认为prop对象已被修改,故输出“Lucy”。其实在匿名函数中,properties[i]的值已经赋给了临时变量t,之后闭包对于外部变量的引用完全由t这个媒介来完成,因此prop传入以后并未发生任何属性的更改。

2.

1
2
3
4
5
function a (x) {
    return x * 2;
}
var a;
console.log(a);

这段代码中,其实var a并没有任何影响,输出的是a(x)这样的方法签名。

3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
c = 999;
var c = 888;
console.log(this.c); //①
function b (x, y, c) {
    c = 6;
    arguments[2] = 10;
    console.log(c); //②
    console.log(this.c); //③
    
    var c = 6;
    console.log(c); //④
    console.log(this.c); //⑤
}
b(1, 2, 3, 4);

这道题是比较变态的。

  • 第①处,this指的是window,在window下,c、this.c、var c在这里指的是同一个东西,看透这一点就好办了。打印的是888。
  • 第②处,方法体中,参数c和arguments[2]指的是同一个地址,所以把后者赋为10的时候,打印的是10,不是6。
  • 第③处,this指的是window,打印的是888。
  • 第④处,打印的是6。
  • 第⑤处,打印的是888。

4.

1
2
3
4
5
6
7
8
9
var start = new Date();
setTimeout(
    function(){
        var end = new Date();
        console.log(end - start);
    },
    1000
);
while(new Date() - start < 2000);

JavaScript因为是单线程工作的,因此虽然回调函数设置了1000毫秒后执行,事实上在1000毫秒的时候根本得不到执行,等待到while循环执行完毕后(因此已经是2000毫秒以后了),才去执行,因此输出应该是一个大于2000的数字。

5.

1
2
3
(function(){
    console.log(typeof arguments);
})();

很多人会说打印的是array,其实,typeof根本不会打印array的啊,打印的是object。

6.

1
2
function a(){return a;}
console.log(new a() instanceof a);

应该打印的是false,其实原因很简单,new a()的时候,因为return语句,得到的不是a的实例,而是a本身,a instanceof a当然是false啦。

最后,还有一个小题目是关于Function Invocation Pattern的,我在这篇文章里有写到,就不单独贴出来了。

文章系本人原创,转载请保持完整性并注明出自《四火的唠叨》

http://www.raychase.net/1485

基于Java的四大开源测试工具

摘要:成功的应用程序离不开测试人员和QA团队反复地测试,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。

测试是应用程序生命周期里至关重要的一步,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。

网络上许多开源的Java测试工具,然而真正经得起时间和实践考验的不多,本文例举了Java里的四大开源测试工具,这四个工具主要专注于前端测试,并且得到了测试人员和QA团队的广泛使用。

 

Apache JMeter——JMeter是一款开源的纯Java测试工具,其主要用于负载测试和性能测试。QA团队使用它来查找和发现相关的性能和负载管理问题,尤其是Web应用程序的性能问题。它可以用于对静态的和动态的资源(文件、Servlet、Perl脚本、Java对象、JDBC数据库连接和查询、FTP、HTTP、JMS、通用的TCP连接、LDAP和OS本地进程访问等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。

Jmeter架构提供了“out of the box”功能。此外,它还支持各种插件,这些插件可以实现其独特的创新功能,用户可以根据自己的需求进行自定义配置,添加相应地插件。

Selenium ——Selenium是一个开源的自动化测试工具,其主要用于Web应用程序的自动化测试,与其它测试工具不同的是,它可以在许多平台和操作系统上运行,可以直接在浏览器下运行,并且支持所有流行的测试框架和编程语言,如C++、Java、Python、Per和Ruby等。

Sahi ——Sahi是另一个开源的自动化Web测试工具,Sahi可以专门测试动态的AJAX应用程序,还带有非常出色的自动播放效果机制。其主要特点是:独立的平台和浏览器、出色的刻录机、无需等待、无需XPath、内置Java异常交互报告。

Robotium——Robotium是一款测试Android应用程序的开源自动化测试框架,应该说,Robotium是开发者们最常用的一款开源工具。主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium无需测试应用程序源码,并且安装简单、容易编写测试用例。当然,它还可以测试基于浏览器的一些Android应用程序,但前提是有些限制条件。

各位开发者,你们使用哪一款工具呢?

来自: Open Source Testing Tools in Java

http://www.csdn.net/article/2013-07-12/2816206-Open-Source-Testing-Tools-in-Java

用来简化开发任务的20个JavaScript类库

摘要:所谓JS库就是预先写好的JS程序库,用于简化以JS为基础的开发程序,尤其是对AJAX和其他以Web为中心技术的JS代码集。文章搜集了20个JS库,帮你处理与开发相关的问题,让你的网站在竞争中领先一步。

所谓JS库就是预先写好的JS程序库,用于简化以JS为基础的开发程序,尤其是对AJAX和其他以Web为中心技术的JS代码集。JS的首要用途是将编写的功能内嵌在HTML页面,并与页面的对象模型(DOM)进行互动。

很多JS库很容易和其他Web开发技术进行整合,例如CSS、 PHP、Ruby、和Java。许多程序库可以检测运行环境之间的差异,删除一些应用程序,以满足整合需求。文章搜集了20个JS库,帮你处理与开发相关的问题,让你的网站在竞争中领先一步。

1. Tracking.js

Tracking.js是一个独立的JS库,可以跟踪照相机实时收到的数据。跟踪对象既可以是色彩也可以是人物,当检测到某个特定的颜色时或人物/脸庞/身体出现移动的时候,我们可以触发JS事件。

2. Aristochart

Aristochart是一个不依赖于其它库的JS库,它能够使用Canvas创建静态的2D线形图表。这个库专注于打造客户化设计,提供多种选项用于更改设计、标签等等。

3. Hitch

Hitch是一个轻量级的JS库,能够向CSS文件添加表现能力。同时具备CSS预处理程序能力,比如添加前缀或变量,还有一些其他的功能。这个程序库有多个随时可用的表达方式,如“any of,all of,has…”,并允许我们定义任何一种方式(称为hitches)。

4. Cesium

Cesium是基于WebGL的JS绘图库,支持3种不同的视图:3D globe、2D map、2.5D Columbus View,相互转换只要一行代码而已!绘画各种形状,突出显示特定区域以及使用鼠标或触摸板与地图进行互动是非常简单的。Cesium作为一个独立的JS文件可以在所有主流浏览器上运行,包括手机上。

5. Two.js

它是一个2D的绘图API,一个优秀的JS库,用于较新的Web浏览器,可基于不同上下文绘制,包括svg、canvas和webgl。 这个库目前只支持形状(非文本或图片),允许导入SVG数据。当需要一起转变的时候,Two.js可以聚合多个有用的元素。其中还有一个内置动画循环方法来绘制各种图形,还具有使之个性化的多个选项。

6. Sequel.js

Sequel.js是一个轻量级JS库,有助于通过一个面向对象的API来构建SQL查询字符串,既可以在浏览器上运行,也可以在所有标准的SQL查询上运行。

7. Draggabilly

这是一个可以让页面元素可拖动的独立JS库,Draggabilly能够帮你轻松实现网页上各种元素的拖放操作。可以在一个限制的容器范围内拖动页面元素,对于每一个事件(start,move,end)都有回调,可以返回当前元素的位置。它可用于大部分浏览器(IE8+)并内置支持触摸事件。

8. Zebra

此JS库带有一串富用户界面组件,可以创建类似于桌面效果布局。UI元素由HTML5 canvas构建,由CSS着色,预期在所有浏览器中渲染出相同的效果。拥有30多个UI元素,包括grid、tabs、menu、form elements、menu等等。

9. Formula.js

这个JS库为Web开发者带来了大多数公式,公式列举了多重分类——日期/时间,文本,逻辑,金融等等。此外,除了在客户端运行,还在服务端(即将发布)上运行。

10. Chart.js

这是一个给人印象深刻的JS独立图表库,大小不足5kb的程序包,建立在HTML5 canvas之上。目前支持6种图表类型:直线图、条形图、雷达图、饼状图、柱状图和地区区域图。颜色、字体、边框、大小都可以根据用户需求自定义。

11. Flippant.js

这是一个迷你JS和CSS库,允许自动翻转桌面上的东西。不依赖任何其它类库,便于自定义,翻转功能效果好。

12. React

React是一个用来构建用户界面的JS库,可以高效灵活地与你之前使用的类库和框架结合使用。

13. PathFinding.js

PathFinding.js是JS里一个综合路径寻找类库,其目的是提供一个可以方便结合到网络游戏里的路径寻找类库。它可以在服务端运行,也可以在浏览器上运行。提供在线演示算法是怎样执行的。当具体使用路径寻找器时,你可以通过其它的参数来指示该用哪一个策略。

14. Reactor.js

这是一个用于响应式编程的轻量级类库。它提供的反应变量,当它们所依赖的的事物发生改变的时候可以实现自动更新。这和电子数据表的运作方式有点相似,当一个单元格的数值有所变化的时候,与其有联系的其他单元格数值也会变化。

15. Bootbox.js

Bootbox.js是一个很小的JS库,允许使用Twitter的Bootstrap模式创建程序对话窗口,不需要担心创建、管理或删除任何任何需要的DOM元素或JS事件处理程序。

16. Parallel.js

Parallel.js在JS里是一个用于多核处理的微型库,它的创建充分发挥了成熟的Web-workers API,JS的确是很快,但由于它的单线程计算模式,它缺乏了与其对等语言的平行计算功能。

17. SVG.js

SVG.js可以通过SVG进行操作和手动绘画,此库轻便独立,功能丰富,有内置方法可以创建各种形状——三角形、圆形、多边形,或自定义图形。

18. Packery

这是一个使用“装箱算法”的JS布局库,这是“补漏”的体面说法。Packery的布局可以是井然有序的,也可以是错乱无序的。元素可以被固定在相应的位置,也可以随意拖放。

19. FPS Meter

FPS Meter是一个简单的JS库,用来制作迷人的、快速的、可主题化的FPS仪表。他可以测量出每秒的帧数,帧之间的毫秒数,以及使用.tickStart()方法时,渲染一帧所需要的毫秒数。

20. Howler.js

Howler.js一个是JS库,通过默认方式运行在网页音频API上,当浏览器不支持时退回到HTML5音频。为了保证跨浏览器的兼容性,它允许接收多种文件格式。该库能同时缓存和播放多个声音,还有循环播放功能,淡入淡出效果和标准的多媒体控制功能。

原文:CodeGeekz

 

http://www.csdn.net/article/2013-07-09/2816111-javascript-libraries

还逝者以宁静

—— 请放过旧金山空难中逝去的女生

石述思 昨天 21:00

 

 

(编辑配图;图片来源于网络)

一群怀揣梦想的孩子,在学校组织下,花着比正常旅行贵一倍的费用,绕道韩国乘坐便宜的飞机,结果出了意外,两个据说品学兼优的花季女生罹难。这场发生在旧金山的悲剧震惊了全国,甚至惊动了总书记。

 

 

在一个充斥着冷漠和功利的时代,有那么多人能对素昧平生的同胞一掬同情之泪,进行深切哀悼,无疑是值得上新闻联播的正能量。但围观效应像病毒一样持续发酵。她们的身份很快被披露,成群的记者萦绕在其悲伤的家长和同学周围,网络上用近乎人肉搜索的方式对这两个不满18岁的女孩进行深度曝光,发展下去,她们荣膺最美女孩的日子不远了。或许都是出于好心,但有时这样的好心却是通向地狱的阶梯。

 

对于死于意外的任何无辜者,全世界通用的术语都是“让亡灵安息”。如果你参加过追悼会,就知道你唯一能做的事就是面对死者肃穆地默哀,而不是如此痴迷于她们生前美丽的容貌和勤奋好学的光荣事迹。中国是个缺少死亡教育的国度,每个人的死亡都难以摆脱被过度消费的威胁,在美国一本名为《死亡课》的教材中,提醒所有悼念者:不要不断去揭死者家属的伤疤,永远不要对他说:我理解你此刻的感受——你永远理解不了。

最值得关注的是那两个女孩的家人,毕竟,那么多同学一起遭遇事故,只有自己的孩子无法生还,你越强调她们生前多优秀乖巧善良,越相当于向其家长伤口上撒盐,无异于为其尽快接受现实,完成心理康复制造人为障碍。

 

请记住:出于人道的考虑,这两个孩子不是你发挥个人情感、宣泄个人情绪的工具。你唯一能做的就是默默地为她们祈祷,希望天堂中不再有空难。

在这个阶层撕裂的社会,更有人借两个冤魂吐槽,说什么能出国游学的都不是普通人,都是权贵富豪的化身,不和广大寒门子弟同甘共苦,去美国送钱,纯属炫富且不爱国。而这样的言论,宛如来自地狱的声音,除了点燃仇恨的烈焰,就是捻灭这世道仅存的悲悯与同情。

 

 

围绕这两个女生的过度关注乃至人肉搜索与其说是社会爱心的一次积聚,不如说是一次集体无意识的情绪宣泄与对别人隐私的一次公然的践踏。

 

其实,这场空难留给人们有价值的思考有很多:比如学校为啥热衷于组织孩子花大价钱去美国游学,是对国内教育的反讽,还是利益的驱动?再比如绕道韩国,多飞那么长的时间,竟然比乘坐国内航班便宜,是韩国航空公司为抢滩内地市场进行的促销,还是国内航空公司平时存在牟取暴利的恶行?更重要的是,据美国救援人员披露,其中一个罹难的女孩出事时没有系安全带,不管是不是疏忽,无疑都能对未来的乘客起到足够的警示作用,尽可能避免悲剧的重演。

 

但显然,这些真正有价值的反思,都不如两个花季少女的信息有收视率和点击率。但从尊重死者、尊重死者家属、尊重未成人的角度,这样的关注度显然在挑战这个社会基本的道德法治底线。

 

在悲剧发生后不久,北京市海淀区检察院对李双江公子以轮奸罪提起公诉,由于其是未成人,检方隐去了公子的姓名。对于如此少年,中国法律尚且尊重其基本权利,何况两个无辜的花季少女呢?她们不需要因为一次意外死亡事故被包装成英雄少女,她们的家长也不需要。再联想起那个在埃及神像上刻上“到此一游”的南京14岁孩子被人肉搜索的全民狂欢,让人感到道德绑架的威力是如此令人惊骇。

 

如果真的有生命意识和人文关怀,我可以推荐给一些发挥的对象:比如中国死于井下的矿工、亡于尘肺病的农民工都没有姓名,其中多数正当权益难以得到维护,而且他们身上也具备了相当多足以感动中国的品质,请将他们的姓名公开吧。在一个以人为本的国度,每个生命都不应该被轻易抹去。

“这是生者与死者共有的世界,爱是唯一的桥梁。”

 

(责任编辑:杨光)

http://dajia.qq.com/blog/224315033462716

七个习惯可使你成功

习惯一:别指望谁能推着你走
如果你不向前走,谁又会推你走呢?因此,积极主动的态度,是实现个人愿景的原则。
我们常说:“我不会……,因为遗传……”、“我迟到,因为……”、“我的计划没完成,因为……”
我们总是在找借口或是抱怨,在不满中消耗自己的生命。而人类与动物的区别正是人能主动积极地创造、
实现梦想,来提升我们的生命品质。所以,有效能的人士为自己的行为及一生所做的选择负责,
自主选择应对外界环境的态度和应对方法;他们致力于实现有能力控制的事情,
而不是被动地忧虑那些没法控制或难以控制的事情;他们通过努力提升效能,
从而扩展自身的关切范围和影响范围。积极的心态能让你拥有“选择的自由”。
我们虽然不能控制客观环境,但我们可以选择对客观现实做何种反应。
积极的涵义不仅仅是采取行动,还代表对自己负责的态度。个人行为取决于自身,
而非外部环境,并且人有能力也有责任创造有利的外在环境。

习惯二:忠诚于自己的人生计划
我们经常在人生的道路上迷失方向,因徘徊和迷途消耗了生命。而高效能的人懂得设计自己的未来。
他们认真地计划自己要成为什么人,想做些什么,要拥有什么,并且清晰明确地写出,以此作为决策指导。
因此,“以终为始”是实现自我领导的原则。这将确保自己的行为与目标保持一致,并不受其他人或外界环境的影响。
我们将这个书面计划称之为“使命宣言”。任何一个存在的社会组织都需要“使命宣言”,任何一个企业或个人也不例外。
“使命宣言”需要阶段性地评估以及持续修正和改良。确立目标后全力以赴,就是我们所说的在正确的时间做正确的事,
并把事情做对。为什么很多人成功了反而感到失落?许多人在埋头苦干时,尚未发掘人生的终极目标,
只是为忙碌而忙碌着,未曾洞悉自己心灵深处的所欲所求,也不曾审视过自己的人生信条:
你到底要做什么?什么是你生命中最重要的?你生活的重心是什么?只有确立了符合价值观的人生目标,
才能凝聚意志力,全力以赴且持之以恒地付诸实现,才有可能获得内心最大的满足。

习惯三:选择不做什么更难
每个人的时间都是有限的,所以要做重要的事,即你觉得有价值并对你的生命价值、最高目标具有贡献的事情;
要少做紧急的事,也就是你或别人认为需要立刻解决的事。消防队的最大贡献应是做好防火工作,而不只是忙于到处救火。
因此,“要事第一”是自我管理的原则。有效能的人只会有少量非常重要且需立即处理的紧急、危机事件,
他们将工作焦点放在重要但不紧急的事情上,来保持效益与效率的平衡。“有效管理”是把最重要的事放在第一位的重点管理。
先由领导决定什么是重点后,自己掌握住重点并时刻把它放在第一位,以免被感觉、情绪或冲动左右。
要想集中精力于当前的要务;就必须先排除次要事情的牵绊,要勇于说“不”。

习惯四:远离角斗场的时代
懂得利人利己的人,把生活看作一个合作的舞台,而不是角斗场。一般人遇事多用二分法:非强即弱,非胜即败。
其实,世界给了每个人足够的立足空间,他人之得并非自己之失。因此,“双赢思维”成为人们运用于人际领导的原则。
我们从小就参与各种比赛、考试,培养了一种你赢我输、你死我活的竞争心态。试想一下,谁又甘心在竞赛中认输呢?
树立双赢思维就是要在人际交往中不断寻求互利,以达成双方都满意并致力于合作的协议计划。
具有双赢思维的人,往往有三种个性品格:正直、成熟和富足心态。他们忠于自己的感受、价值观和承诺;
有勇气表达自己的想法及感觉,能以豁达体谅的心态看待他人的想法及体验;相信世界有足够的发展资源和空间,人人都能共享。
利人利己观念的形成是以诚信、成熟、豁达的品格为基础的。豁达的胸襟源于个人崇高的价值观与自信的安全感,
所以不怕与人共名声、共财势,从而肯尝试无限的可能性,充分发挥创造力和宽广的选择空间。

习惯五:换位思考的沟通
如果一位眼科医生为病人配眼镜,他先摘下自己的眼镜让病人试戴,其理由是:
“我已经戴了10多年,效果很好,就给你吧,反正我家里还有一副。”那么,谁都知道这是行不通的。
如果医生还说:“我戴得很好,你再试试,别心慌。”在病人看到的东西都扭曲了的同时,
医生还反复说:“只要有信心,你一定能看得到。”那就真叫人哭笑不得了。我们常说遇事要将心比心。
因此,“知彼解己”是交流的原则。
这位医生尚未诊断就开处方,谁敢领教?但与人沟通时,我们常犯这种不分青红皂白、妄下断语的毛病。
因此我必须强调:“了解他人”与“表达自我”是人际沟通不可缺少的要素。首先要了解对方,
然后争取让对方了解自己,才是进行有效人际交流的关键,要改变匆匆忙忙去建议或解决问题的倾向。
要培养设身处地的“换位”沟通习惯。欲求别人的理解,首先要理解对方。人人都希望被了解,
也急于表达,但却常常疏于倾听。众所周知,有效的倾听不仅可以获取广泛的准确信息,还有助于双方情感的积累。
当我们的修养到了能把握自己、保持心态平和、能抵御外界干扰和博采众家之言时,我们的人际关系也就上了一个台阶。

习惯六:1+1可以大于2
统合综效是对付阻碍成长与改变的最有力途径。助力通常是积极、合理、自觉、符合经济效益的力量;
相反,阻力则消极、不合逻辑、情绪化和不自觉。不设法消除阻力的后果就等于向弹簧施加作用力,结果还是要反弹。
如果将双赢思维、换位沟通与统合综效原则整合,不仅可以化解阻力,甚至可以化阻力为助力,“统合综效”就是创造性合作的原则。

集思广益的合作威力无比。许多自然现象显示:全体大于部分的总和。不同植物生长在一起,根部会相互缠绕,
土质会因此改善,植物比单独生长更为茂盛;两块砖头所能承受的力量大于单独承受力的总和。
这些原理也同样适用于人,但也有例外。只有当人人都敞开胸怀,以接纳的心态尊重差异时,才能众志成城。

习惯七:过着身心平衡的生活
身心和意志是我们达成目标的基础,所以有规律地锻炼身心将使我们能接受更大的挑战,
静思内省将使人的直觉变得越来越敏感。当我们平衡地在这两方面改善时,则加强了所有习惯的效能。
这样我们将成长、变化,并最终走向成功。
人生最值得投资的就是磨练自己。生活与工作都要靠自己,因此自己是最值得珍爱的财富。
工作本身并不能给人带来经济上的安全感,而具备良好的思考、学习、创造与适应能力,才能使自己立于不败之地;
拥有财富,并不代表有永远的经济保障,拥有创造财富的能力才真正可靠。
以上这七个习惯是相辅相成的。前三个习惯在于我们本身,确立目标就要全力以赴,着重于如何进行个人修炼,
由依赖转向独立,实现“个人成功”;第四、五、六个习惯,即建立共赢、换位沟通、集思广益,
都将促进团队沟通与合作;而第七个习惯涵盖了前六个,督促我们从身心开始完善。通过培养这些习惯,
我们可以循序渐进地获得实质性的变革,成为真正的高效能人士。

P!nk–Try

Ever wonder about what he’s doing

How it all turned to lies
Sometimes I think that it’s better to never ask why

Where there is desire
There is gonna be a flame
Where there is a flame
Someone’s bound to get burned
But just because it burns
Doesn’t mean you’re gonna die
You’ve gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try

Funny how the heart can be deceiving
More than just a couple times
Why do we fall in love so easy
Even when it’s not right

Where there is desire
There is gonna be a flame
Where there is a flame
Someone’s bound to get burned
But just because it burns
Doesn’t mean you’re gonna die
You’ve gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try

Ever worried that it might be ruined
And does it make you wanna cry?
When you’re out there doing what you’re doing
Are you just getting by?
Tell me are you just getting by by by
Where there is desire
There is gonna be a flame
Where there is a flame
Someone’s bound to get burned
But just because it burns
Doesn’t mean you’re gonna die
You’ve gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try
Gotta get up and try try try
Gotta get up and try try try
You gotta get up and try try try
Gotta get up and try try try

You gotta get up and try try try
Gotta get up and try try try

 

超棒的30款JS类库和工具

摘要:对于Web设计人员和开发人员来说,手里有一套便利的、最新的工具可供使用是极其重要的。Web设计和开发的趋势变化极快,所以拥有最新的工具是必不可少的。因此小编今天为大家整理了30个JS类库和工具以供参考。

当设计人员和开发人员真正快速便捷的使用JavaScript类库和工具的同时,他们的生活也就变得更轻松、简单。你付出的越多,它回报你的也就越多,这正是JS类库和工具需求量很大的原因。

对于Web设计人员和开发人员来说,手里有一套便利的、最新的工具可供使用是极其重要的。Web设计和开发的趋势变化极快,所以拥有最新的工具是必不可少的。

可是要想找到质量高和效率高的工具并非易事,尤其是考虑到这种类型的工具它所带有的额外工具的可用性,并且,不是所有的工具都是高质量的。因此,寻找好的工具不仅仅是一项艰巨的任务,同时也很耗时。这就是为什么小编今天为大家提供30个JS类库和工具列表的原因。所有的工具都很有用,找出最能够满足你需要的那一个!

dynamo.js

这是一款使用很便捷的工具,它可以快速容易的创建HTML动态bits,为文本目录添加微妙效果。

Smoke.js

Smoke.js是一个轻量级且灵活的JS插件,只是用来替代原有的alert而已。它完全由HTML与CSS3构成,所以你能够自己添加样式来表现出个性化。

Holder.js

Holder.js可直接在客户端渲染图片的占位。支持在线和离线,允许轻松创建占位符,并快速使用可链接API(chainable API)风格。

Graphene

这款工具有惊人之处,有一个控制面板和绘图工具箱,使用起来很容易上手。

GMap

这是一款了不起的轻量级jQuery插件,用来将Google Maps插入到网页或者博客中。提供了更加简便的方法用于集成、管理和定制。

jPages

jPages是一个超给力的jQuery分页插件,它提供了很多丰富的新特性,例如自动翻页功能、可用键盘和鼠标滚动浏览、内容延迟显示、支持自定义分页导航菜单等等。使用起来很简单,效果也很出色。

Leaflet-JS Library

Leaflet是一个开源的基于移动开发的互动式地图JS库,代码量仅约28 KB。

JSZip

JSZip允许使用JS创建、阅读和编辑.zip文件。

Colors

这是一款非常有用的颜色处理类库,工作效率高,可以为项目选择正确的颜色。

Fitvids.js

这是另一款轻量、易用的jQuery插件,如果你需要你的视频能够自动适应网页的宽度,FitVids.js这个jquery插件可以帮助你。

Stroll.js

这些滚动效果是纯粹使用CSS3所实现的,其中所用到的JS仅是用来实现绑定和移除CSS样式。

Hammer.js

Hammer.js是一个轻量级的JS库,能让你的网站轻松实现触控事件。它依赖于jQuery,用来控制触摸设备上的多点触控特性。

Socialite.js

Socialite.js 是一个用来方便生成各种社交网站分享按钮的JS库,提供多种按钮排列样式,可以根据客户需求实现个性化设置。

Retina.js

顾名思义,Retina.js是很棒的脚本,帮助你在Retina显示设备上制造出高质量的图片,这是一款便捷的开源软件。检查网页中的图片是否存在高清的版本,如果有将会替换显示。

KineticJS

这是一个很简便的HTML5 Canvas独立JS类库,使用这个类库你可以轻松的在桌面和移动设备上进行图形和图片绘制和修改,执行动画效果,或者和图形图片进行互动。

URI.js

URI.js是一个JS库,用于处理URLs地址。它提供了类似于jQuery风格的API(便利的接口和方法链),用于读写所有常用组件,像.directory和.authority一样的方式。

Crossfilter

Crossfilter是一个用来展示大数据集的JS库,在浏览器里有很多不同的多元数据集,支持超快的交互,甚至在上百万或者更多数据下都很快。主要用来构建数据分析程序。

DropKick.js

从头开始做下拉式菜单可能是非常耗时和繁忙的任务,因此DropKick出现了,它是一个下拉框美化插件,使用非常简单,直接为下拉框select调用方法即可,瞬间让你摆脱繁琐。

Foresight.js

Foresight.js可以在装载图片之前知道用户的设备是否可以显示高分辨率的图片。

Kartograph

Kartograph是一个简单且轻量级的框架,建立交互式地图应用程序无需谷歌地图或其他任何地图服务。

Patternizer – Stripe Pattern Generator Tool(条纹模式生成器工具)

Patternizer是一个在线的带状模式生成工具,可以帮助你简单快捷的创建复杂的模式。你同样可以把你创建模式的经验与别人分享,收集别人的意见。

Morris.js

Morris.js是一个轻量级的JS库,使用jQuery和Raphaël来生成各种时序图。

JavaScript Library Boilerplate

JS Boilerplate可以帮助你来轻松创建你自己的JS库,例如jQuery,Zepto,Prototype等等。

heatmap.js

Heatmap.js用来生成基于用户自定义数据上的Web热图,内嵌HTML5 Canvas元素。

uiji.js

uiji.js很独特,它是jQuery的反向,它不是使用CSS选择器来查找元素,您可以使用相同的语法来创建元素。

sigma.js

sigma.js是一个开源的轻量级JS库,用来绘制各种图形,使用的是HTML Canvas元素。它同样可以用来显示交互式的静态和动态图表。

Heyoffline.js

heyoffline.js是一个简单的JS库,当用户网络不可用的时候可以提示用户保存信息,以免数据丢失。

JavaScript Console–Debugging JavaScript Tool(JS调试工具)

从字面意思可以看出,它是一个JS调试工具,同时为移动Web Apps提供远程调试。

Yeoman

它旨在为开发者提供一系列“健壮的”工具、程序库和工作流,帮助他们快速构建出漂亮、引人注目的Web应用。

Batman.js

这个框架就像它的名字一样酷——它可以创建丰富高效的单页面浏览器Apps。Batman.js框架利用CoffeeScript或JavaScript来快速构建Web Apps。由于其拥有强大的视图绑定和可观察的属性,所以它的代码非常简洁。

原文:Inspire Trends

http://www.csdn.net/article/2013-07-01/2816068-best-javascript-libraries-and-tools