2012年8月31日星期五

jquery横向菜单动态伸缩背景框

jquery横向菜单动态伸缩背景框

(function($) {    $.fn.menuBorderSlide = function(options) {        var defaults = {            // 边框高度            gtHeight : 4,            // 边框颜色            gtColor : '#CC0000',            // 当前被选中的li的样式类            currentClass : "current",            // 振幅比率            amplitude : 1 / 2,            // 最小振幅宽度            minAmplitudeLength : 30        };        var opts = $.extend(defaults, options);        // 创建一个背景振动框        var slideBorder = $("<div class=\"slide-border\" id=\"slide_border\"></div>");        $("body").append(slideBorder);        $this = $(this);        // 获取ul对象        var ul = $this.find("ul");        // 获取ul对象下的第一个li对象        var firstLi = ul.find("li").first();        // 获取li的宽度        var liWidth = firstLi.width();        // 获取第一个li的顶部偏移        var liTop = firstLi.offset().top;        // 获取当前被选中的li对象        var prevous = $("." + opts.currentClass + "");        // 当前被选中的li的左偏移        var prevousLeft = prevous.offset().left;        // 初始化背景框        initSildeBorder(slideBorder);        // 初始化方法        function initSildeBorder(o) {            o.css({                'width' : liWidth + "px",                'height' : $this.height() + "px",                'top' : (liTop - opts.gtHeight) + "px",                'left' : prevousLeft + "px",                // 上边框样式                'border-top' : '' + opts.gtHeight + 'px solid ' + opts.gtColor                        + '',                // 下边框样式                'border-bottom' : '' + opts.gtHeight + 'px solid '                        + opts.gtColor + ''            });        }        var currentLeft;        // 边框左右移动的标识,向右移动为true,向左移动为false        var flag = true;        // 全局计数器        var t = 0;        // 全局定时器        var si;        // 遍历所有li        ul.find("li").each(function(i, val) {            // 添加mouseover事件            $(val).bind("mouseover", function() {                // prevousLeft变量需要重新定义(纠结)                var pl = prevousLeft;                // 计算当前鼠标与预定义li的间距                // 清除计时器                t = 0;                // 清除定时器                clearInterval(si);                // 创建一个新的定时器                si = setInterval(function() {                    // 计时器+1                    t++;                    // 如果计时器的数值大于10,表示鼠标在当前的li元素上已经停留了一段时间                    if (t > 10) {                        currentLeft = $(val).offset().left;                        var leng = currentLeft - pl;                        // 如果间距小于零,表示当前向右移动                        if (leng < 0) {                            // 下一次向左移动                            flag = false;                            // 计算间距的绝对值                            leng = parseInt(avalue(leng)) - liWidth;                        } else {                            // 表示当前是向左移动的,下一次向右移动                            flag = true;                            leng = leng - liWidth;                        }                        // 开始偏移                        amp(flag, leng, 50, currentLeft);                        // 振动后计数器归零                        t = 0;                        // 振动后清除定时器                        clearInterval(si);                    }                        // 每10毫秒计数器自增                    }, 10);                // 指向为当前li元素                prevousLeft = currentLeft;            });        });        function amp(flag, leng, time, currentLeft) {            // 当前左偏移            var l;            // 每调用一次间距减半            leng = leng * opts.amplitude;            // 向右移动            if (flag == true) {                // 增加                l = currentLeft + liWidth + leng;                // 下一次向左移动                flag = false;            } else {                // 减少                l = currentLeft - leng;                // 下一次向右移动                flag = true;            }            // 如果结果小于最小振幅宽度            if (avalue(l - currentLeft) <= opts.minAmplitudeLength) {                // 移动到当前选中的li元素上                slideBorder.animate({                    'left' : currentLeft + "px"                }, time);            } else {                // 振动                slideBorder.animate({                    'left' : l + "px"                }, time);                // 回调                amp(flag, leng, time, currentLeft);            }        }        // 计算绝对值        function avalue(value) {            if (value < 0) {                return String(value).substring(1, String(value).length);            } else {                return value;            }        }    };})(jQuery);
.top-ul {    z-index: 1;    position: absolute;    top: 300px;    background: #333;    width: 100%;    left: 0px;    opacity: 0.9;}.top-ul #top-left-ul {    float: left;    left: 400px;    position: relative;}.top-ul ul {    font-family: "微软雅黑", "宋体", Arial;    margin-top: 0px;    list-style-type: none;}.top-ul #top-left-ul ul {    direction: rtl;}.top-ul ul li {    float: left;    width: 100px;}.top-ul ul li a {    display: block;    height: 35px;    padding: 6px 10px 0 10px;    text-decoration: none;    color: #ddd;    line-height: 35px;    text-align: center;}.top-ul ul li a:hover {    background: #5EB2E5;    color: #FFFFFF;}#slide_border {    position: absolute;    background: #fff;    -moz-border-radius: 5px;    -webkit-border-radius: 5px;    border-radius: 5px;    -moz-border-radius: 5px;}
<script type="text/javascript">        $(document).ready(function(){        $("#top-left-ul").menuBorderSlide();        });    </script>    <body>        <div >            <div id="top-left-ul">                <ul>                    <li>                        <a href="">首页</a>                    </li>                    <li>                        <a href="" >记录</a>                    </li>                    <li>                        <a href="">空间</a>                    </li>                    <li>                        <a href="">好友</a>                    </li>                    <li>                        <a href="">消息</a>                    </li>                </ul>            </div>        </div>

效果图:

发现编辑源文件,显示个demo,总会出现问题


TAG:

总结SEOer几种透过“钱眼”做网站的恶劣行为

总结SEOer几种透过“钱眼”做网站的恶劣行为

  如果我问大家为什么要进入站长行业,大家一定会回答赚钱。这是一个很现实的问题,毕竟无利不起早,谁都不会纯粹的为了振兴互联网事业而奉献出自己的时光。可是话说回来,赚钱的目的我们可以理解,但是在网站优化过程中过多的强调钱的因素未免就有些过分了,因为很多操作要领如果从钱的角度出发,效果就会大打折扣。

  过多的追求性价比

  这算是在SEO行业比较普遍的建站心态,很多朋友都怀着花最少的钱办做多的事心思开始自己的站长事业,这样想本无可厚非,但是在实际操作过程中我们终究是需要一定慷慨的行为。

  就像选择空间一样,很多站长会碍于资金的限制,而多处衡量空间的参数,从中找到一个性价比最高的空间作为自己网站的落脚点,可是世上终究是没有免费的午餐,不可能一个全能的产品只卖很低的价格,你用200块钱买一个空间,而用500买一个空间效果肯定是不一样,可能200的空间承诺不限制IIS连接数,但一台服务器所能负担的流量,IIS都是有限的,当服务器上大部分网站的流量和IIS都超标了之后,服务器就会运行不了,而我自己就是经营朝暮数据的,这点我深有体会,所以选择空间的时候不能一味的为了便宜,毕竟效果稳定才是王道,毕竟谁也不想给自己以后的发展之路留下隐患。

  过度使用免费和共享资源

  一些新手站长在刚刚进入行业的时候,肯定会对自己的付出十分谨慎,每花一分钱都要思考它是否能带来实在的回报,因此新手站长总是对免费的源代码或者破解包特别有兴趣。

  但还是那句话,天下没有免费的午餐,免费的源代码或是压缩包很有可能是来源不明,存在漏洞,那么如果在网站中使用这些免费的模板,那么很有可能使网站整体的稳定性遭到破坏,进而让网站在收录以及快照上表现大幅下降,等到那个时候我们要想将网站恢复到正常的水平,付出的代价恐怕要比现在多很多。

  以为只要是钱换来的就是好的

  虽然现在站长人群中没钱的居多,但不排除一些暴发户,他们手里资金充裕,想做什么就做什么,网站投资也都是五位数以上,在他们眼里,只要是钱换来的就是最好的。于是你会经常看到这些朋友购买链接,购买文章,花钱请人做优化,做竞价。可是RMB政策真的能让自己的网站长久不衰吗?我想未必吧,买来的链接虽然权重高,但不是一个行业的,不具有相关性,用户体验一样不好,请人做优化,自己没有实力,不会巩固优化成绩,网站排名同样会下降,竞价推广更不用说了,你再有钱也抵不上他人的恶意点击,不用统计和分析,账户上的钱只能白白送给百度,而转化率只有那可怜的百分之几。所以RMB换来的并不一定是好的,相反,通过自然优化建立的网站才是最具生命力的。

  为了省钱,宁愿选择效果慢的方式

  友链交换可以说是外链建设中最重要的一步,一个好的友链可以说是网站成功的基石。但是一个新站想要找到一个适合自己的网站交换友链并不是那么容易,打开站长交易中心,我们会发现很多质量好的网站链接都需要购买,而那些免费的外链质量倒是一班班,是花几百块钱购买链接,还是选择免费的链接甚至是不要友链呢?我想很多新手站长都会选择后者,因为在新手朋友的眼里看来,没必要耳朵投资都是可以去掉的,再说了自己刚刚进入行业,能不能赚到钱还不好说,投资太多只会让自己赔本更多,所以为了省钱,这些朋友会选择在博客留言,论坛发帖,甚至和一些快照不稳定的网站换,在笔者看来这都是一些不负责任的行为,因为任何一个行业都需要投资,想空手套白狼,这样的好事想都不要想,效果慢的方式虽然可以省钱,但是在百度时常发疯的今天,只要让网站尽可能快的成长并得到百度的信任才是关键,再说了免费的东西一般效果都慢,而在这漫长的等待中我们又会失去多少商机呢?

  网站所有的优化都是冲着钱去的

  做排名是为了争夺订单,做竞价是为了获得更多的网上交易,总之网站优化所有的手段都是奔着钱去的,换句话说,换不到钱的优化方式一律不采纳。于是你会看到很多新手网站中的内容相当随意,阅读价值根本没有,一看就是为了做内容而做内容,而到了产品介绍的时候就做的精致有加,这样不平衡的发展状况就是一种畸形的营销策略,因为网站在前期发展过程中不能只为了赚钱,我们要从长远考虑,就像很多站长在网站还没摆脱沙盒期的时候拉广告一样,盈利是目的,但不是主线,我们要做品牌,要做未来,广告收入只是很小的一部分,只有让网站得到更多人的承认,而违反相关规定的赚快钱,钻法律的空子,打规定的擦边球,这个带来的后果可能就不仅仅是影响网站那么简单。本文出自我的网站朝暮数据 http://www.zhaomu.com ,转载请注明链接,谢谢。


TAG:总结 SEOer 几种 透过 钱眼 做网站 恶劣行 如果 站长 网站 网站推广 赚钱

站长应该忘掉SEO 关注UEO

站长应该忘掉SEO 关注UEO

  SEO, 英文全称为Search Engine Optimization, 中文名称为搜索引擎优化。今年来,SEO被越来越多的站长所重视。广大站长朋友总结出了8字箴言:内容为王,外链为皇。

  现在社会上普遍的浮躁和急功近利的心态,导致广大站长大量采用伪原创, 购买外链等所谓的黑帽手段,快速提高网站权重,以再短时间内获取大量流量,从而导致了大量伪原创,以及外链买卖业务的催生。

  可是,来得快,去得也快,一旦被搜索引擎发现,或者购买的外链被取消,流量一下跌至0,收入也就自然跌至0了。其实从技术角度分析,搜索引擎要发现你的外链是购买来的是非常容易的。首先,卖链接的网站,特别是权重比较大的,PR比较高的,就那么几十家上百家,百度能不知道吗?其次,这种网站的链出网站,和他本身网站的相关性都非常差。所以百度真的是很容易发现这种作弊行为的。

  世界上一切事物的存在,都是因为它有一定的价值。你费尽心机,做出来一个垃圾网站,对用户来说毫无价值,就算你通过这种SEO手段,短时间内获得了大量流量,也会很快烟消云散。对用户没有价值,用户从搜索引擎点击过来,发现你网站内容没什么用处,页面上到处都是广告,弹窗广告无数,那用户很快就会关闭你的网站,搜索引擎从跳出率和用户停留时间,就能基本判断你这个网页质量是非常差的,长期积累下来,网站被降权只不过是早晚的事情。

  其实我们应该换一个思路,静下心来做产品,做内容,做真正对用户有价值的网站。只要你的网站真正对用户有用处了,他们自然会推荐给其他网友,口碑相传。我们这里的口碑相传当然不是传统意义的言语上的相传,肯定是通过必须社区,社交媒体,论坛,博客,微博等媒体传播,这样的话,还需要你费劲心思去做外链,天天发垃圾帖吗?自然形成的链接,和人工制造的链接,它肯定是不一样的。

  所以除去SEO,我们更应该关注在UEO上面。UEO,User Experience Optimization, 用户体验优化。通过UEO,提示用户体验,提高用户满意度,提高用户对我们网站的价值认可度,从而达到自然的长远的增长。

  第一企业网 http://01p.com 站长原创发布。转载请注明来源。


TAG:seo uto 站长 网站 网站推广 赚钱

温故知新装饰者模式

温故知新装饰者模式

有些基础知识很早就学习过了,但可能当时理解不深刻,或者工作中没有应用到,以致渐渐淡忘了。这个系列就是对这些淡忘知识的一个复习,也希望复习的同时可以加深理解,故取名温故知新。

概述

装饰者模式是GOF23种设计模式的一个,属于结构型的设计模式。主要意图是:动态的给一个对象添加一些额外的职责。“动态”和“给一个对象”的表述说明了这种“添加额外职责”是在运行期决定的,而不是由静态的父子类继承实现。因此应用装饰着模式提供了较大的灵活性,由组合替代了继承,避免了子类的数量上的爆炸。

下面引用了一个论坛帖子(http://bbs.m.the9.com/forum.php?mod=viewthread&tid=700)中对装饰者模式应用场景、优点与缺点的描述:

装饰者模式的应用场景:
1、 想透明并且动态地给对象增加新的职责的时候。
2、 给对象增加的职责,在未来存在增加或减少可能。
3、 用继承扩展功能不太现实的情况下,应该考虑用组合的方式。
装饰者模式的优点:
1、 通过组合而非继承的方式,实现了动态扩展对象的功能的能力。
2、 有效避免了使用继承的方式扩展对象功能而带来的灵活性差,子类无限制扩张的问题。
3、 充分利用了继承和组合的长处和短处,在灵活性和扩展性之间找到完美的平衡点。
4、 装饰者和被装饰者之间虽然都是同一类型,但是它们彼此是完全独立并可以各自独立任意改变的。
5、 遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。
装饰者模式的缺点:
1、 装饰链不能过长,否则会影响效率。
2、 因为所有对象都是Component,所以如果Component内部结构发生改变,则不可避免地影响所有子类(装饰者和被装饰者),也就是说,通过继承建立的关系总是脆弱地,如果基类改变,势必影响对象的内部,而通过组合(Decoator HAS A Component)建立的关系只会影响被装饰对象的外部特征。
3、只在必要的时候使用装饰者模式,否则会提高程序的复杂性,增加系统维护难度。

结构

装饰者模式的实现类图:

装饰者

从图中可以看出装饰着模式包含如下参与者:

1、一个被包装类和包装类均需遵守的接口——IComponent;

2、被包装类——ConcreteComponent;

3、包装类的抽象类——Decorator;

4、包装类的具体实现——DecoratorA、DecoratorB;

5、发起调用的客户端程序——Client。

示例

示例的业务场景:某网页上有一个产品列表的模块,这个模块展示一系列产品。后来随着业务的发展,允许厂商付费推广的产品,这些推广的产品需要附加在普通产品的前面。

经过分析,产品的列表的产生逻辑是易于变化的部分,可能加入新的规则,也可能去掉旧的规则。这些规则构成了对原有对象的“包装”,因此采用装饰者模式进行实现。

下面代码与上面类图的对应关系已经用注释标出:

1、首先定义一个表示产品的模型类Product。

 1:  using System;
 2:   
 3:  namespace DesignPatterns.Decorator
 4:  {
 5:      /// <summary>
 6:      /// 商品类
 7:      /// </summary>
 8:      public class Product
 9:      {
10:          public int Id { get; set; }
11:          public string Name { get; set; }
12:      }
13:  }
14:   

2、IProductsBlock接口。

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      /// <summary>
 7:      /// 产品块接口-被包装对象和包装对象均实现此接口
 8:      /// </summary>
 9:      public interface IProductsBlock
10:      {
11:          List<Product> GetProductsBlock();
12:      }
13:  }
14:   

3、基本商品块ProductsBlock。

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      /// <summary>
 7:      /// 基本商品块-被包装的基础对象
 8:      /// </summary>
 9:      public class ProductsBlock : IProductsBlock
10:      {
11:          public List<Product> GetProductsBlock()
12:          {
13:              List<Product> products = new List<Product>() {
14:                  new Product() { Id = 11, Name = "一般商品1" },
15:                  new Product() { Id = 12, Name = "一般商品2" },
16:                  new Product() { Id = 13, Name = "一般商品3" }
17:              };
18:   
19:              return products;
20:          }
21:      }
22:  }
23:   

4、包装类的抽象类BlockDecorator。

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      /// <summary>
 7:      /// 包装类的抽象父类
 8:      /// </summary>
 9:      public abstract class BlockDecorator : IProductsBlock
10:      {
11:          protected IProductsBlock block;
12:   
13:          public BlockDecorator(IProductsBlock block)
14:          {
15:              this.block = block;
16:          }
17:   
18:          public abstract List<Product> GetProductsBlock();
19:      }
20:  }
21:   

5、附加广告商品的包装器实现类AdDecorator。

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      /// <summary>
 7:      /// 附加广告商品的包装器实现
 8:      /// </summary>
 9:      public class AdDecorator : BlockDecorator
10:      {
11:          public AdDecorator(IProductsBlock block)
12:              : base(block)
13:          { }
14:   
15:          public override List<Product> GetProductsBlock()
16:          {
17:              List<Product> adProducts = new List<Product>() {
18:                  new Product() { Id = 11, Name = "广告商品1" },
19:                  new Product() { Id = 12, Name = "广告商品2" }
20:              };
21:              var list = this.block.GetProductsBlock();
22:              list.InsertRange(0, adProducts);
23:   
24:              return list;
25:          }
26:      }
27:  }
28:   

6、最后完成客户端代码。

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      class Program
 7:      {
 8:          static void Main(string[] args)
 9:          {
10:              //组装过程
11:              IProductsBlock block = new ProductsBlock();
12:              block = new AdDecorator(block);
13:   
14:              //对客户程序来说,包装是透明的
15:              var products = block.GetProductsBlock();
16:   
17:              foreach (var p in products)
18:              {
19:                  Console.WriteLine(p.Name);
20:              }
21:              Console.WriteLine("按任意键结束...");
22:              Console.ReadKey();
23:          }
24:      }
25:  }
26:   

7、查看结果。可以看到广告产品已经插入到一般产品前面了。

image

变化出现了,假设为了吸引用户,需要在广告产品和一般产品之间插入一些降价产品,应该怎么实现呢?

8、增加一个包装类的实现CutPriceDecorator。

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      /// <summary>
 7:      /// 附加降价商品的包装类实现
 8:      /// </summary>
 9:      public class CutPriceDecorator : BlockDecorator
10:      {
11:          public CutPriceDecorator(IProductsBlock block)
12:              : base(block)
13:          { }
14:   
15:          public override List<Product> GetProductsBlock()
16:          {
17:              List<Product> adProducts = new List<Product>() {
18:                  new Product() { Id = 21, Name = "降价商品1" },
19:                  new Product() { Id = 22, Name = "降价商品2" }
20:              };
21:              var list = this.block.GetProductsBlock();
22:              list.InsertRange(0, adProducts);
23:   
24:              return list;
25:          }
26:      }
27:  }
28:   

9、稍微修改一下客户端程序中的组装过程。(第12行)

 1:  using System;
 2:  using System.Collections.Generic;
 3:   
 4:  namespace DesignPatterns.Decorator
 5:  {
 6:      class Program
 7:      {
 8:          static void Main(string[] args)
 9:          {
10:              //组装过程
11:              IProductsBlock block = new ProductsBlock();
12:              block = new CutPriceDecorator(block); //添加降价商品
13:              block = new AdDecorator(block);
14:   
15:              //对客户程序来说,包装是透明的
16:              var products = block.GetProductsBlock();
17:   
18:              foreach (var p in products)
19:              {
20:                  Console.WriteLine(p.Name);
21:              }
22:              Console.WriteLine("按任意键结束...");
23:              Console.ReadKey();
24:          }
25:      }
26:  }
27:   

10、再次查看运行结果。降价产品已经插入到结果中了。

image

通过代码可以发现包装器的组装是有次序的,次序不同结果可能也不相同。所以可以通过建立不同的包装类,调整包装类不同的组装顺序,为基础对象附加不同的职责。


TAG:

当script中的type等于text/html时,我们可以做很多事件!

当script中的type等于text/html时,我们可以做很多事件!

我们可以在<script>片断中定义一个被JS调用的代码,但代码又不在页面上显示,这时,我们可以使用下面的方法:

 1   <script id="commentTemplate" type="text/html"> 2      <li> 3         <div > 4             <a href="#"> 5                 <img src="[UserImg]" /></a></div> 6         <p> 7             <a href="#">[UserName]:</a><span >[CreateDate]</span></p> 8         <div > 9         </div>10     </li>11     </script>
 1 <div id="comment_ul_2"> 2     </div> 3     <input type="button" id="addFun" value="click me" /> 4     <script type="text/javascript"> 5         var reg = new RegExp("\\[([^\\[\\]]*?)\\]", 'igm'); //i g m是指分别用于指定区分大小写的匹配、全局匹配和多行匹配。 6         $("#addFun").click(function () { 7             var html = document.getElementById("commentTemplate").innerHTML; 8             var source = html.replace(reg, function (node, key) { return { 'UserImg': '1', 'UserName': 'zhang', 'CreateDate': '2011-1-1'}[key]; }); 9             $("#comment_ul_2").append(source);10         });11 12         var zzl = "name:[name]";13         zzl = zzl.replace(reg, function (node, key) { return { 'name': '占占'}[key]; });14         alert(zzl);15 16     </script>

OK,这个意思是说,当你单击按钮时,可以把commentTemplate的内容追到comment_ul_2里,这很有意思吧,呵呵!

而其中有一个replace,也很有意思,向在替换时,可以接受一个json字符串,然后根据json的key来对比js模块里的key,进行赋值!

真的很有意思!


TAG:

百度新算法迷雾:心理战识别作弊网站

百度新算法迷雾:心理战识别作弊网站

  在网络安全的博弈中,我们除了技术之外,还要培训学员一些反社会工程攻击的能力,也就是说,通常黑客在攻击目标的时候除了技术方面之外,现在用到最多的是心理战术,在安全领域我们将其称之为:社会工程学。

  所谓的社会工程学准确的说不是一门科学,而是一门艺术,社会工程学利用人的弱点,以顺从你的意愿、满足你的欲望的方式,让你上当的一些方法、一门艺术与学问。

  SEO中的作弊者和搜索引擎的较量也好比黑客与管理员之间的博弈,技术手段永远解决不了所有问题,所以需要通过一些非常规的方式来识别作弊行为,为此,百度新算法出台,前段时间google公布了一项可以麻痹识别Spammer的专利,zac的博客做了介绍,大概内容摘录:

  一个页面原本的排名比如说是A,进行了页面本身优化或外链建设后(这两者都可能是白帽的,也可能是黑帽的),Google根据优化后的条件计算出排名B,但Google可能并不会直接把排名从A提升到B,而是经历一个过渡期,在过渡期里,排名可能:

  延时反应,也就是过一段时间才提升排名,虽然Google早就检测到了优化

  负向反应,本来新排名应该提高,Google却故意先下降排名

  随机反应

  无法预期的反应

  在过渡期中,Google还会检测站长的反应,以帮助判断是否意图操纵排名。比如说,spammer堆积了关键词,按正常算法排名应该是上升的,但Google故意给一个负向反应,spammer一看坏事了,赶紧又把堆积的关键词删了。本来不删还好点,一删反倒被检测到了。(当然要不删也可能被其它算法检测到)。

  没有太关注排名的网站通常不会改来改去,更不会一看排名变了马上修改网站的。

  当然百度无法使用google的算法,但是好的东西百度怎么能错过,根据冯志强对一些行业网站的监控数据显示,百度极有可能已经在新的算法中融入了这个概念,也是说,当你的网站排名流量波动的时候一定要淡定,有可能是百度对你网站的考验,不要随意改动,这需要SEOer对自己的操作和技术具有足够的信心和预判能力,当然如果你是一个只知道发外链、买链接的三流SEOer,很有可能会看到这样的调整变的不淡定,从而改变你的操作方式,结果却被百度判断为作弊。

  如何应对百度新算法的调整

  有人说,既然这样那我发现网站被降权了不动就是了,我不得不说这是多么愚蠢的做法,并不是所有的降权都是考验,有些降权是真实的,是因为你的网站确实纯在了问题,你不得不进行一些改动。

  应对方法:

  1、扎实自己的知识,合理优化,一切作弊的行为都将是短暂的。

  2、彻底检测网站,不留任何死角,将每一个细节做到极致。

  3、将你的目标回归到用户,不要一味盯着搜索引擎。

  4、开发丰富自己的流量入口,不能让搜索引擎控制你的命脉。

  The END

  最后冯志强声明,以上均发自冯志强个人猜测,非百度官方,各位站长相信就去做,不信也别纠结。

  本文作者:冯志强,原文发表自冯志强说:http://www.crazyer.org


TAG:百度 新算法 迷雾 心理 战识 别作 弊网站 网络 安全 站长 网站 网站推广 赚钱

WindowsPhone7 SQLCE数据库

WindowsPhone7 SQLCE数据库

WindowsPhone7 内置数据库SQLCE。

简单做了一个Demo实现创建数据库并对一张表进行操作。

创建项目后记得引入一个引用。

image

1.首先定义表结构(实体类)。

image

Table:将某个类指定为与数据库表相关联的实体类。

Column:将类与数据库表中的列相关联。

2.然后定义数据库。

image

需要继承DataContext

DataContext:数据上下文是表示数据库、代理的对象,包含表示数据库中表的 Table 对象。

3.然后我们再写对这个表进行操作的业务类。

image

image

4.下面就可以使用了。

image

这样在隔离存储中会生成一个sdf文件(sqlce数据库文件)

image

image

做一个ListBox,和2个按钮用来保存和修改,以及删除。

image

image

image

--------------------------------------------------------------------分界线---------------------------------------------------------------

顺便做下广告:

还没毕业就能做自己喜欢的工作,表示灰常鸡动。也出了第一个产品。

应用市场地址:http://windowsphone.com/s?appid=842303d9-b04e-4e36-a250-9554dfeb9a38(域名必须是zh-cn)

其他市场:http://ntexe.com/20999.html

目前只针对大陆用户希望大家给与多多支持。

11112222333344445555


TAG:

【转】安卓巴士在各地建立了分站群,欢迎android开发热爱者加入

【转】安卓巴士在各地建立了分站群,欢迎android开发热爱者加入

安卓巴士建立了各地交流群,主要是为了大家同城方便线下交流,工作推荐,以及技术交流,适当的时候我们会赞助分站管理版主组织线下交流会。

以下为各地分站的QQ群:

安卓巴士厦门群253604146

安卓巴士湖南群217494504

安卓巴士大连群253672904

安卓巴士青岛群 257925319
安卓巴士广州群252743081
安卓巴士广州超级群218251417
安卓巴士南京群 220818530
安卓巴士上海群252742977
安卓巴士深圳群252742753(已满)
安卓巴士深圳群之二 260134856
安卓巴士成都群 252743807
安卓巴士北京群111059554
安卓巴士西安群252746034
安卓巴士武汉群121592153
安卓巴士杭州群253603803



大家加了这个群,相信就再也不用加别的群了。统一进群暗号,安卓巴士

注意了,希望大家加自己所在城市的群,不要多加!!


TAG:

Windows 8 安装之后怎样更改产品码

Windows 8 安装之后怎样更改产品码

在Windows 8安装之后,需要激活。但在激活之前,需要更改产品码。操作介面找不到更改的地方,只有使用下面方法来实现了。

1. 用管理员权限运行命令提示。

2. 输入"slmgr.vbs -ipk <insert your product key here>” ,如 slmgr.vbs -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

3. 更改产品Key激活Windows之后,重启电脑,电脑在进行系统时,会自动激活windows。 或者是运行"slmgr.vbs -ato"。


TAG:

CSS预处理器 SASS 和 Compass

CSS预处理器 SASS 和 Compass

近段时间踌躇,了解extjs的themes时发现了sass,刚好又是基于ruby的,今后说不定就要用这个了

发个指南记录下 想深入了解的朋友自己google资料了

http://ruby-china.org/topics/4396

官方资料

http://sass-lang.com/docs.html


TAG:

地方门户型网站的昨天、今天和明天

地方门户型网站的昨天、今天和明天

  地方门户网站占据了多少流量?据互联网行业的分析报告,占据了互联网总流量的30%左右,总流量远远超过了各大门户网站流量。今天,笔者就在速途网细数地方门户网站的前世今生,让大家有一个更加系统的了解。1994年,中国和美国签署互联网输入协议,1996年,海底光纤正式开通,从此,中国进入了互联网高速时代,向信息化迈进。

  新浪、网易、搜狐三大门户乘势崛起,奠定了在中国的地位。凤凰网、人民网、腾讯门户、新华网等门户网站随风而起,门户网站进入了一个高速发展的阶段,竞争呈现了白热化,各大门户网站进行了站内栏目的细分,锁定属于自己的用户群,争抢流量。

  时光进入了21世纪,地方门户网站暂露头角,也就是从2000年起,地方门户网站才开始呈现发展的势头,因为当时市场的空白,所以,很快就牢牢占据了统治地位,锁定了浏览用户群。到了2004年,各地门户网站基本发展壮大,而后来进入者,不得不付出高昂的代价去竞争,去争取用户群。

  随着网络的普及和网络市场竞争的加剧,最终老牌的地方门户网站始终坚挺,后来者倒下了一批,同时,也有一批顽强的生存下来,并且引进新思路,实现了超越。

  其中的代表者有杭州19楼和福建小鱼网,这两家地方门户,屏弃之前的靠流量卖广告位的传统互联网思维,进行了大胆的改革,和商家进行线上、线下的合作,在各个细分领域,比如交友、聚会、团购、装修等栏目进行重点打造,创造了盈利的新模式,吸引了民间资金和风投的投资,走向品牌化、战略化发展道路。

  这种模式也让很多的地方网站模仿,有的成功,有的还是没有起色。

  互联网永远不缺乏的就是创意,笔者的几个朋友就在此时对地方门户网站进行了细分,让地方门户网站的触角延伸到每一个角落。

  其实这算不上创意了,在欧美国家,地方门户网站的分类中可以精确到每一个村庄,每一条街道,而我国因为初期网络普及率的限制,地方门户网站无法延伸,随着网络的普及率提升到了90%以上,考虑这些方面就成为了一个水到渠成的事情。

  很多的门户型网站,设置了每个城市的论坛,甚至精确到了每个县、区,而地方门户网站没有那种实力,就只能做进一步的细分了。

  当地方门户网站精确到了每一个村、每一条街道,从技术的角度来看,当有人要搜索一个不知名的小地方时,这些信息通过搜索引擎的抓取,会实现在非常靠前的位置,而这就是一个精确的流量,当无数的类似流量汇聚起来的时候,就变成了一个非常可观的数字,从而给地方门户网站带来无限生机!

  我们有理由相信,地方门户网站的明天会更美好!

  文章由减肥药排行榜www.jianfei820.com原创发表,欢迎大家的点评!


TAG:方门户 网站 昨天 今天 明天 方门户 网站 多少 流量 站长 网站 网站推广 赚钱

性爱新知:趴着睡易做性梦

性爱新知:趴着睡易做性梦

  据英国《每日邮报》8月9日报道,《做梦》杂志刊登一项最新研究发现,与其他睡姿相比,趴着睡更容易让人做性梦。

  新研究负责人,香港树仁大学心理学博士余启程及其同事对670名男女大学生进行了有关做梦的问卷调查。内容包括:做梦的频度、梦境激烈程度、醒来时对梦境的记忆以及梦的主题等。研究人员还要求参试者写下侧卧、俯卧和仰卧等睡姿习惯。结果发现,习惯趴着睡的参试者在梦中与明星“幽会”的性梦频率最高。

  余博士表示,这项新研究表明,做梦内容会受到睡姿的影响。在睡眠中,大脑并不完全与外部世界脱离,外部环境的刺激源融入梦境的可能性会大大超出人们的想象。趴着睡会影响大脑正常供氧,导致大脑开始无意识思考或想象,性梦几率随之提高。

(责任编辑:张阳)


TAG:夫妻性保健 两性 性爱

2012年8月30日星期四

【VB】Format 格式化日期时间数字函数详解

【VB】Format 格式化日期时间数字函数详解

【VB】Format 格式化日期时间数字函数详解

VB 中 Format 格式化日期时间、数字函数功能详解:

VB 格式化日期时间:MsgBox Format$(Now, "c") '2006-5-25 14:56:05

Format[$] (expr[,fmt])
format 返回变体型
format$ 强制返回为文本

--------------------------------
数字类型的格式化
--------------------------------

固定格式参数:
General Number 普通数字,如可以用来去掉千位分隔号
format$("100,123.12","General Number") 返回值 100123.12

Currency 货币类型,可添加千位分隔号和货币符号
format$("100123.12","Currency") 返回值 ¥100,123.12

Fixed 格式为带两位小数的数字
format$("100123","Fixed") 返回值 100123.00

Standard 标准,即带千位分隔号和两位小数
format$("100123","Standard") 返回值 100,123.00

Percent 百分数
format$("100123","Percent") 返回值 10012300.00%

Scientific 科学记数法
format$("100123","Scientific") 返回值 1.00E+05

Yes/No 当值为0时返回 NO,否则返回 YES
format$("100123","Yes/No") 返回值 Yes

True/False 当值为0时返回 False,否则返回 True
format$("100123","True/False") 返回值 True

On/Off 当值为0时返回 Off,否则返回 On
format$("100123","Yes/No") 返回值 On
自定义格式参数

"" 不进行格式化 返回值 原值

0 占位格式化,不足补0
format$("100123","0000000") 返回值 0100123

# 占位格式化,不足时不补0
format$("100123","#######") 返回值 100123

. 强制显示小数点
format$("100123.12",".000") 返回值 100123.120

% 转化为百分数,一个%代表乘以100
format$("10.23","0.00%") 返回值 1023.00%
format$("10.23","0.00%%") 返回值 102300.00%%

, 以千为单位格化
format$("10.23",",") 返回值 0
format$("10010.23",",") 返回值 10
format$("10010.23",",0.00") 返回值 10.01

E- E+ e- e+ 显示为科学记数(要注意格式语句,否则会和E的其它含义相混)
Format$(12.5,"0.00E+00") 返回值 1.25E+01

$ 强制显示货币符号
format$("10.23","{threadcontent}.00") 返回值 ¥10.23

- + ( ) space 按位置显示本样
Format$("1234.56","-(0.00)") 返回值 -(1234.56)

\ 转义符,显示出特殊符号
Format$("1234.56","\#.00") 返回值 #1234.56

"ABC" 显示双引号 (" ") 之内的字符串。如在代码中想在 format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号 ("))
Format$(123.45,"TTT") 返回值 TTT
注:当双引号中的文本包含特殊的参数符号如e,要使用转义符"\",否则会按e的作用显示

; 类似多目运算符的作用。

当共有 四 部分时,
当大于0 时,按第一部分进行格式化,
当小于0 时按第二部分进行格式化,
当等于0 时按第三部分进行格式化,
当为null值时,按第四部分进行格式化。如:
Format$(0,"0.00;负数;零;空") 返回值 零

当共有 三 部分时,
当大于0 时,按第一部分进行格式化,
当小于0 时按第二部分进行格式化,
当等于0 时按第三部分进行格式化,如:
Format$(-10,"0.00;ttt;零") 返回值 ttt

当共有 两 部分时,
当大于或等于0 时,按第一部分进行格式化,
当小于0 时按第二部分进行格式化,
Format$(-123,"0.00;abc") 返回值 abc
Format$(123,"0.00;abc") 返回值 123.00

当共有 一 部分时,按分号左边进行格式化

---------------------------------
日期类型的格式化
---------------------------------

注意:在中文操作系统中,系统自动将月份输为如:五月,而非 May

固定格式参数
General Date 基本类型
Format$(Now,"General Date") 返回值 2006-5-25 14:56:15

Long Date 操作系统定义的长日期
Format$(Now,"Long Date") 返回值 2006年5月25日

Medium Date 中日期(yy/mmm/dd)
Format$(Now,"Medium Date") 返回值 06-5月-25

Short Date 操作系统定义的短日期
Format$(Now,"Short Date") 返回值 2006-5-25

Long Time 操作系统定义的长时间
Format$(Now,"Long Time") 返回值 15:06:36

Medium Time 带AM/PM的12小时制,不带秒
Format$(Now,"Medium Time") 返回值 03:08 PM

Short Time 24时制的时间,不带秒
Format$(Now,"Short Time") 返回值 15:08

自定义格式参数
: 用来标识时间字符的间隔
Format$(Time(),"hh:nn") 返回值 15:25

/ 用来标识日期字符的间隔
Format$(now,"yyyy/mm/dd") 返回值 2006-05-25

c 格式化为国标的日期和时间
Format$(Now,"c") 返回值 2006-5-25 14:56:15

y 一年中的第几天
Format$(Now,"y") 返回值 145

d 一个月中的第几天(1-366)
Format$(Now,"d") 返回值 25

dd 当小于10时前面带0的天数(01-31)
Format$("2006-1-7","dd") 返回值 07

ddd 周几
Format$(Now,"ddd") 返回值 周四

dddd 星期几
Format$(Now,"dddd") 返回值 星期四

ddddd 显示标准日期
Format$(Now,"ddddd") 返回值 2006-05-25

dddddd 长日期
Format$(Now,"dddddd") 返回值 2006年5月25日

w 一个星期中的第几天
Format$(Now,"w") 返回值 5

ww 一年中的第几周
Format$(Now,"ww") 返回值 21

m 月数(注:当用于时间时,也可以表时为分钟)
Format$(Now,"m") 返回值 5
Format$(Now,"h:m") 返回值 16:11

mm 当小于10时前面带0的月数(注:当用于时间时,也可以表时为带0的分钟)
Format$(Now,"m") 返回值 05
Format$(Now,"hh:mm") 返回值 16:09

mmm 月份
Format$(Now,"mmm") 返回值 五月

q 一年中的第几季(1-4)
Format$(Now,"q") 返回值 2

yy 两位数的年份(00-99)
Format$(Now,"yy") 返回值 06

yyyy 四位数的年份(0100-9999)
Format$(Now,"yyyy") 返回值 2006

h 一天中的第N小时(0-23)
Format$(Now,"h") 返回值 16

hh 当小于10时带0的小时数(00-23)
Format$("7:30:28","hh") 返回值 07

n 一小时的分钟数(0-59)
Format$("7:30:28","n") 返回值 30

nn 当小于10时带0的分钟数(00-59)
Format$("7:3:28","n") 返回值 03

s 一分钟中的秒数(0-59)
Format$("7:30:8","s") 返回值 8

ss 当小于10时带0的分钟数(00-59)
Format$("7:3:8","ss") 返回值 08

ttttt 标准时间,小时数当小于10时不带0,与h:mm:ss相同
Format$("7:3:28","ttttt") 返回值 7:03:28

AM/PM 显示当前为AM或为PM
Format$(Now,"AM/PM") 返回值 PM

A/P 显示当前为A或为P
Format$(Now,"A/P") 返回值 P

AMPM 对0至2359的数值进行判断是AM还是PM,可以看作是同等于对00:00至23:59的数字进行判断,如1000可以看作是10:00。
Format$(1000,"AMPM") 返回值 AM

联合格式化

m/d/yy Format$(Now,"m/d/yy") 返回值 5-25-06

d-mmm-yy Format$(Now,"d-mmm-yy") 返回值 25-5月-06

d-mmmm Format$(Now,"d-mmmm") 返回值 25-五月

mmmm-yy Format$(Now,"mmmm-yy") 返回值 五月-06

hh:mm AM/PM Format$(Now,"hh:mm AM/PM") 返回值 04:50 PM

h:mm:ss a/p Format$(Now,"h:mm:ss a/p") 返回值 4:51:38 p

h:mm Format$(Now,"h:mm") 返回值 16:51

h:mm:ss Format$(Now,"h:mm:ss") 返回值 16:51:38

m/d/yy h:mm Format$(Now,"m/d/yy h:mm") 返回值 5-25-06 16:54

----------------------------------
文本类型的格式化
----------------------------------
; 当两部分时,则第一部分为非空格式化,第二部分为null值或空值的格式化表达式
@ 匹配位置插入格式化文本,占位位置不存在时,显示空白(空字符串)

只有一个@符号时,是在最后面加上格式化文本
Format$("CHIN","@a") 返回值 CHINa

有多个@占位符,是按从右至左匹配,并在相应的位置上显示格式化文本
Format$("CHIN","@a@@") 返回值 CHaIN

当与 ! 配合时,则变为从左至右匹配
Format$("CHIN","@@") 返回值 CaHIN

当占位符比原文本字符串多时,刚在相应位置上添加空格
Format$("C","@@a@") 返回值 空白空白aC

& 字符占位符。除在当占位位置不存在时,不显示外,其余均与@相同

当占位符比原文本字符串多时,刚在相应位置上添加空格
Format$("C","&&a&") 返回值 aC

< 强制小写。将所有字符以小写格式显示。
Format$("I love you","<") 返回值 i love you

> 强制大写。将所有字符以大写格式显示。
Format$("I love you",">") 返回值 I LOVE YOU

! 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。
Format$("CHIN","@@") 返回值 CaHIN

----------------------------------------
强制使用中文格式的日期时间
----------------------------------------
aaaa 星期
Format$(Now,"aaaa") 返回值 星期五

O 中文月份
Format$(Now,"O") 返回值 五月

o 单字节月份
Format$(Now,"o") 返回值 5月

A 中文日期
Format$(Now,"A") 返回值 二十六日

a 单字节日期
Format$(Now,"a") 返回值 26日

E 短中文年份
Format$(Now,"E") 返回值 六年

e 单单字节年份
Format$(Now,"e") 返回值 6年

EE 中文年份
Format$(Now,"EE") 返回值 二○○六年

ee 单字节年份
Format$(Now,"ee") 返回值 2006年

想不到中文日期的问题就这么容易解决:
Format$(Now,"EEOA") 返回值 二○○六年五月二十六日


TAG:

万能简单GridView分页代码

万能简单GridView分页代码

<asp:GridView ID="GridViewHistory" runat="server" AutoGenerateColumns="False"
            CssClass="vip_table" GridLines="None" BorderStyle="None" CellPadding="0"
            ShowHeader="False" AllowPaging="true" PageSize="20"
            onpageindexchanging="GridViewHistory_PageIndexChanging">

 

<PagerTemplate>
                <asp:LinkButton ID="lb_firstpage" runat="server" onclick="lb_firstpage_Click">首页</asp:LinkButton>
                <asp:LinkButton ID="lb_previouspage" runat="server"
                    onclick="lb_previouspage_Click">上一页</asp:LinkButton>
                <asp:LinkButton ID="lb_nextpage" runat="server" onclick="lb_nextpage_Click">下一页</asp:LinkButton>
                <asp:LinkButton ID="lb_lastpage" runat="server" onclick="lb_lastpage_Click">尾页</asp:LinkButton>
                第<asp:Label ID="lbl_nowpage" runat="server" Text="<%#GridViewHistory.PageIndex+1 %>" ForeColor="#db530f"></asp:Label>页/共<asp:Label
                    ID="lbl_totalpage" runat="server" Text="<%#GridViewHistory.PageCount %>" ForeColor="#db530f"></asp:Label>页
            </PagerTemplate>

gridview

后台代码:

//分页
    protected void GridViewHistory_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridViewHistory.PageIndex = e.NewPageIndex;
        dataBinding();
    }

    protected void Button_search_Click(object sender, EventArgs e)
    {
        dataBinding();
    }

    protected void lb_firstpage_Click(object sender, EventArgs e)
    {
        this.GridViewHistory.PageIndex = 0;
        dataBinding();
    }
    protected void lb_previouspage_Click(object sender, EventArgs e)
    {
        if (this.GridViewHistory.PageIndex > 0)
        {
            this.GridViewHistory.PageIndex--;
            dataBinding();
        }
    }
    protected void lb_nextpage_Click(object sender, EventArgs e)
    {
        if (this.GridViewHistory.PageIndex < this.GridViewHistory.PageCount)
        {
            this.GridViewHistory.PageIndex++;
            dataBinding();
        }
    }
    protected void lb_lastpage_Click(object sender, EventArgs e)
    {
        this.GridViewHistory.PageIndex = this.GridViewHistory.PageCount;
        dataBinding();
    }

dataBinding()为GridViewHistory的数据源绑定事件
TAG:

js时间转换+比较

js时间转换+比较

var tip = setInterval("checkTime()", "10000");
    var temp = document.getElementById("hidden_endT").value;
    var datereturn = toDate(temp);
    function checkTime() {
        var myTime=Date();
        if (Date.parse(myTime) > datereturn) {
            clearInterval(tip);
            var auctionCode=document.getElementById("auctionCode").value;
            window.open("ResultAuction.aspx?auctionCode=" + auctionCode, "_self");
        }
    }
    function toDate(getTemp) {

        temp = getTemp.split(" ");
        var dateReturn = temp[0].split("-")[1] + "-" + temp[0].split("-")[2] + "-" + temp[0].split("-")[0] + " " + temp[1].split(":")[0] + ":" + temp[1].split(":")[1] + ":" + temp[1].split(":")[2];
        return Date.parse(dateReturn);
    }

 

比较的时间格式:2012-8-30 17:45:00


TAG:

JSON转NSDictionary后遍历多维的NSDictionary

JSON转NSDictionary后遍历多维的NSDictionary

 1 - (NSString *)stringFormDict:(NSDictionary*)dict 2 { 3     NSMutableString *str = [NSMutableString string]; 4     NSArray *keys = [dict allKeys]; 5     for (NSString *key in keys) { 6         if ([[dict objectForKey:key] isKindOfClass:[NSDictionary class]]) { 7             id obj = [dict objectForKey:key]; 8             [str appendFormat:@"\n%@: %@",key,[self stringFormDict:obj]]; 9         }else if ([[dict objectForKey:key] isKindOfClass:[NSArray class]]){10             [str appendFormat:@"\n%@:",key];11             for (id obj in [dict objectForKey:key]) {12                 [str appendFormat:@"\n%@",[self stringFormDict:obj]];13             }14         }else{15             [str appendFormat:@"\n%@: %@",key,[dict objectForKey:key]];16         }17     }18     return str;19 }

TAG:

如何删除Firebird数据库的注释和存储过程代码

如何删除Firebird数据库的注释和存储过程代码

因为发布一个项目的需要,稍微研究了一下如何清除给用户的Firebird数据库中的各种注释以及存储过程、触发器的源码。

/* --- 清除注释和代码 --- *//* view description */update RDB$RELATIONS set RDB$DESCRIPTION = null;/* Table fields description */update rdb$relation_fields set rdb$description = null;/* domain description */update RDB$FIELDS  set RDB$DESCRIPTION = null;/* procedure description */update RDB$PROCEDURES set RDB$DESCRIPTION = null;update rdb$procedure_parameters set rdb$description = null;/* trigger description */update RDB$TRIGGERS set RDB$DESCRIPTION = null where RDB$DESCRIPTION is not null;/* exception description */update RDB$EXCEPTIONS set RDB$DESCRIPTION = null;/* udf description */update RDB$FUNCTIONS set RDB$DESCRIPTION = null;/* procedure code */update rdb$procedures set rdb$procedure_source = null;/* trigger code */update RDB$TRIGGERS set RDB$TRIGGER_SOURCE=null where RDB$SYSTEM_FLAG<>1;

TAG:

企业开展微博营销的几个关键点

企业开展微博营销的几个关键点

  随着网络的迅猛发展,微博成了人们网络社交的新宠,仅仅两年时间,微博的发展遍布全国各个角落,越来越多的人成了微博控。

  目前新浪微博和腾讯微博是当前主流的两个微博平台,微博用户基本被这两家瓜分,庞大的人群能够给你的企业带来多少商机呢?一些嗅觉灵敏的人早已开始盯上微博,筹划着怎样利用微博平台来给企业进行营销,为企业获得利益。电子商务类型的企业做网络微博营销比较早,还有一些品牌企业也在不断尝试,有的已经有所收获。今天我就与大家一起探讨企业微博营销的问题。

  一、找准定位,明确目标客户

  中国有句古话叫做心急吃不了热豆腐,急功近利一刀切的做法,对于微博营销同样不受用。企业的目的很明确,就是通过微博营销来提高自己的知名度,那么企业首先要做到的就是找准定位,之后才能以发表的内容来引起顾客群的关注。信息从发布到接收需要一个过程,这个过程就好比金字塔的结构一样,一传十,十传百,越传播越广泛。企业通过定位准确,建立微博,接下来要做些什么呢?

  1、内容是关键,创意是亮点

  企业发布的微博内容必须能够满足用户的信息需求,这样用户才会认可你的企业。刚才已经提到了企业微博的定位,在此基础上发布与定位相符的内容,这样关注你的用户们才会更加信任你的企业。短短的140个字能表达的内容有限,这就需要企业去挖掘发布内容的创意和亮点,有了创意和亮点的内容更容易得到粉丝的转发,否则不但粉丝不转发,还会因为平淡无奇而失去粉丝。发布图文并茂的微博内容也是创意之一,更多的方法大家自己挖掘。

  2、炒作助推广,名人显效应

  刚开始建立微博,是需要通过一些活动和炒作来吸引用户关注的。当粉丝的量达到一定程度以后,就可以开展一些回馈用户的活动了,当然同时也是在宣传自己的企业,这样做的目的是不断吸引粉丝的注意力,让粉丝活跃在微博上,忠诚于企业的微博。赶集网就是利用了姚晨的名人效应而鲜为人知的,不断重复的广告滚动播放,席卷广大网民的大脑,效果很好。由此可见,企业微博的推广营销也可以参照这样的做法,借助明显的力量来传播自己的企业。明星的微博粉丝数量相当惊人,就算是不怎么出名的明星,他所带来的转播次数也是非常可观的,转播越多粉丝越多,这些粉丝都有可能成为你的客户。比如谢娜发布的一条广告,转播的粉丝高达两百多万人,我建议珠宝类企业和化妆品类企业也可以效仿,即找明星代言产品,又可以让明星在自己的微博上发布广告,两全齐美。

  3、巧妙处理危机公关

  微博交流平台的实效性很高,一般好事不留名,臭名骂名的话可要远扬了。在遇到危机公关时,企业微博应该用积极和细致地态度去对待粉丝的意见,特别是搞活动期间,一定要体现公正公平,尽量不要引起粉丝的疑虑。危机公关在很多领域都常见,比如明星的丑事或者离婚等等,不管明星作何回应,都是一种公关意识。我们都要有高度的危机公关意识,任何时候都不要无视微博的力量。

  二、细分目标客户群

  一个企业会有多种产品,每种产品的目标客户群不一样,企业应该有针对性地分类建立微博。如同百货商场的柜台设置一样,产品销售分楼层分区域进行,目标客户才会明确。产品分类的方法有很多,比如按照性别分类,或者按照价格高低分类等等。企业产品微博的粉丝群也应该是相对明确和固定的,这样的营销更高效更精准。大家熟悉的淘宝商城就是一个成功的例子,产品分类非常明确。

  上述几点是本人研究微博营销的一些认识和看法,微博营销的前景非常宽广,任重而道远。只要牢牢抓住微博的内容,巧妙地利用名人效应和处理危机公关,详细地进行客户信息整理和分类,借助微博的平台,企业可以把营销做得更加有特色,更加切合实际,企业的营销之路才能越走越宽阔。以上观点是本人的浅薄之见,希望能够与大家产生共鸣,也希望更多的人参与到微博营销的研究中,探讨更多微博营销的方法。原创文章来自:http://www.xiaochunv.com网上怎么赚钱 转载保留链接!


TAG:企业 开展 微博 营销 几个 关键点 随着 网络 迅猛发 站长 网站 网站推广 赚钱

SilverLight 学习篇八

SilverLight 学习篇八

Silverlight API 将它的一组对象定义为对象树,这样您可以通过加载 XAML 来填充基于 Silverlight 的应用程序的初始内容,然后在运行时调整对象树。在托管 API 中,与 Silverlight 对象树的交互是通过托管代码定义的。使用 CLR 可将托管代码编译为程序集。该程序集通常还包含用于基于 Silverlight 应用程序的 XAML。托管代码可支持 Silverlight 应用程序模型,可以调用托管代码以响应对象生存期事件或用户启动事件。还可以使用托管代码编写支持类,定义数据对象以及用于许多其他应用程序方案。您还可以使用 DLR 而不是 CLR,Silverlight 中的动态语言 对此进行了讨论。

托管 API 的特性

托管代码是可扩展的

在以前的 Silverlight 1.0 中和当前的 JavaScript API(与客户端版本无关)中,不支持定义真正的自定义 UI 元素。您可以合成一个元素,然后从同一定义 XAML 多次加载它,并将相同的函数指定为代码支持,但这种方法不支持大型扩展。使用托管 API,扩展实质上只是从支持有用基本功能的现有类或控件派生,可能还包括定义某些支持元素,例如新控件模板、更新的类特定的事件处理程序等。扩展托管代码是托管编程和 .NET Framework 编程的基本概念,在 Silverlight 文档中没有专门的主题,但下列主题可能非常有用:

  • 公共语言运行时

  • 控件自定义

  • XAML 和自定义类

  • 自定义依赖项对象和依赖项属性

对象树

对象树概念存在于 JavaScript API 中,但在该模型中操作对象树在某种程度上受对象构造方法缺乏的限制。在托管 API 中,可以对类调用构造函数,无需使用 XAML 分析器作为中间源即可向树添加对象。实际上,仅使用代码即可构建树的大部分,方法是:连续调用构造函数,从根开始向对象树添加对象,然后完成各种"子"属性。有关如何通过代码使用 Silverlight 对象树的更多信息,请参见 Silverlight 对象树。

托管代码隐藏和分部类

在 Silverlight 中定义 UI 的主要方法是在 XAML 标记中定义相应的元素。这可能包括使用样式和模板,它们也是在 XAML 标记中定义的。很多情况下,需要将标记分解为与 Silverlight 应用程序模型集成的不同 XAML 文件。为了定义应用程序所需的交互,通常需要为 XAML 中定义的对象定义事件处理程序,以响应对象生存期事件或用户启动事件。在托管 API 中,需要事件处理的每个 XAML 页或其中的 XAML 要作为根元素内容的每个 XAML 页必须作为生成的一部分进行标记编译处理。标记编译处理提供了必要的挂接,以便与加载 XAML 页时创建对象树进行运行时交互。这些挂接包括在 XAML 中赋予其 Name 或 x:Name 的任何对象的事件处理程序和引用。在 Silverlight 体系结构中,XAML 不进行完整编译。在运行时将 XAML 页真正加载到应用程序中并由 Silverlight XAML 分析器处理之前,会推迟创建来自 UI 的 XAML 标记的大部分对象树。代码隐藏和分部类中对这些概念进行了更加详细的说明。

规范化 DOM 交互

在 JavaScript API 中,可以非正式地从 Silverlight 脚本引用 HTML DOM 中的对象或变量,反之亦然,这是因为脚本由同一浏览器脚本引擎解释并可能位于同一个作用域中。在托管 API 中存在更正式的分离,因为托管代码由 Silverlight 核心库及其 CLR 使用,而不是由浏览器使用。为了从托管 API 与 DOM 进行交互,可以使用一系列功能,这些功能有时统称为 HTML Bridge,或 HTML DOM Bridge。这些功能包括:

  • 将 DOM 的常用部分(如 Document 对象

  • 使托管类型可从 DOM 编写的功能。
  • 用于从封送 JavaScript 值或对象生成托管类型的转换技术。
  • 专门用来在 DOM 中公开 Silverlight 插件的对象表示形式的 API。

TAG:

分类信息,商城商品自定义属性设计,数据入库,检索规则

分类信息,商城商品自定义属性设计,数据入库,检索规则

自定义属性字段表:存放属性自定义信息,主要存放字段数据库信息,字段表单信息,字段验证规则,字段显示规则

级联表:存放多级分类数据,如品牌,多级地区数据等

内容属性值表:主要存放不同分类信息,商品信息的相关属性值信息,字段有信息编号,属性字段ID,级联字段ID,整数型值ValueInt,字符型值ValueVar

根据研究58同城,赶集网,百姓网等分类信息网站,和一些商城商品自定义属性的设计而成

下面是数据入库,检索规则

1、后台添加自定义属性字段入库规则:
1.1、级联字段选项都入级联表

1.2、需要在列表筛选的字段:

1.2.1、如果是单选框字段,值必须是整数,表单默认选项填写筛选预设项;

1.2.2、如果是单选和下拉框,选项值入级联表

2、发布信息内容入库规则:
2.1、级联字段,值都入内容属表VId字段,字段属性ID入PId字段
2.2、列表筛选字段,单行文本框,值都入内容属性ValueInt字段
2.3、其它非筛选字段,值都入内容属性ValueVar字段

3、前台列表筛选读数据规则:
3.1、筛选级联字段都从级联表读数据
3.2、单行文本框字段,读取表单默认选项中的预设筛选值


TAG:

二进制图片格式转换

二进制图片格式转换

View Code
 1  public static bool IsAllowedExtension(byte[] imgArray, FileExtension[] fileEx) 2         { 3             MemoryStream ms = new MemoryStream(imgArray); 4             System.IO.BinaryReader br = new System.IO.BinaryReader(ms); 5             string fileclass = ""; 6             byte buffer; 7             try 8             { 9                 buffer = br.ReadByte();10                 fileclass = buffer.ToString();11                 buffer = br.ReadByte();12                 fileclass += buffer.ToString();13             }14             catch15             {16             }17             br.Close();18             ms.Close();19             foreach (FileExtension fe in fileEx)20             {21                 if (Int32.Parse(fileclass) == (int)fe)22                     return true;23             }24             return false;25         }26         public  enum FileExtension27         {28             JPG = 255216,29             GIF = 7173,30             PNG = 13780,31             SWF = 6787,32             RAR = 8297,33             ZIP = 8075,34             _7Z = 55122,35             XLS = 208207,36             XLSX = 8075,37             bmp = 667738         }39 40 调用41  //判断下是否为gif42                         if (IsAllowedExtension(buffer, new FileExtension[] { FileExtension.GIF,FileExtension.PNG,FileExtension.bmp }))43                         {44                             using (MemoryStream newstream = new MemoryStream())45                             {46                                 bitmap.Save(newstream, System.Drawing.Imaging.ImageFormat.Jpeg);47                                 //48                                 using (Bitmap newbitmap = new Bitmap(newstream, true))49                                 {50 }51 }52 }

TAG:

如何删除Firebird数据库的注释和存储过程

如何删除Firebird数据库的注释和存储过程

因为发布一个项目的需要,稍微研究了一下如何清除给用户的Firebird数据库中的各种注释以及存储过程、触发器的源码。

/* --- 清除注释和代码 --- *//* view description */update RDB$RELATIONS set RDB$DESCRIPTION = null;/* Table fields description */update rdb$relation_fields set rdb$description = null;/* domain description */update RDB$FIELDS  set RDB$DESCRIPTION = null;/* procedure description */update RDB$PROCEDURES set RDB$DESCRIPTION = null;update rdb$procedure_parameters set rdb$description = null;/* trigger description */update RDB$TRIGGERS set RDB$DESCRIPTION = null where RDB$DESCRIPTION is not null;/* exception description */update RDB$EXCEPTIONS set RDB$DESCRIPTION = null;/* udf description */update RDB$FUNCTIONS set RDB$DESCRIPTION = null;/* procedure code */update rdb$procedures set rdb$procedure_source = null;/* trigger code */update RDB$TRIGGERS set RDB$TRIGGER_SOURCE=null where RDB$SYSTEM_FLAG<>1;

TAG:

经常交流房事的伴侣更融洽

经常交流房事的伴侣更融洽

  考克斯博士表示,30多岁时,这个年龄段大多结婚生子,性欲不如20多岁时那么旺盛。所以人们爱做性爱试验,寻求新奇刺激。比如,改变性爱地点,尝试户外性爱、“夫妻鸳鸯浴”、蒙眼性爱等。

  考克斯博士表示,40多岁的男人容易红杏出墙,他们爱看色情片爱讲荤段子,但也可能会出现ED(勃起功能障碍)问题。另外,而这个阶段的女人性欲会更旺盛,更容易被比她年轻的男子吸引。

  专家支招:小技巧提高性爱质量

  20岁

  美国一项对一组20岁的年轻人进行调查发现,经常交流性爱喜好的伴侣关系更融洽,更快乐,性满意度更高。芝加哥市性学专家瓦莱丽·戴维斯·拉斯金博士表示,获得性快感的关键是知道自己想要的,并大声说出口。

  哥伦比亚大学医学中心妇产科教授希尔达·哈切森博士表示,年轻人性伴侣更多,性病危险更大。20多岁时,女性子宫颈外层细胞更脆弱,更容易发生感染。

  30岁

  这个年龄段大多结婚生子,性欲不如20多岁时那么旺盛。主要是因为女性怀孕生子之后,其身材、思想和性欲都会大受影响。一项调查发现,半数女性表示,生完孩子后身体变形影响其性生活。另一项研究发现,孕期经常锻炼的女性对自己身材满意度更高。

  考克斯建议,孕期性爱每月4—5次为宜。分娩后7周内应禁止同房。4个月之后逐渐恢复正常性爱频率。夫妻间应该多爱抚拥抱,不要让新生儿影响夫妻性生活,可以忙里偷闲,不时享受“性爱快餐”。拉斯金博士表示,30岁的女性要加强锻炼。感觉身体健康、强壮和灵活,有助于女性提高性生活质量。

  40岁

  伊利诺伊大学医学院妇产科教授苏珊·特鲁平博士表示,40左右的女性容易出现阴道干涩等问题,但是女性可以采取积极措施予以应对。润滑剂或雌激素软膏可更安全解决阴道干涩问题。研究发现,女性经常做爱,阴道更加润滑。

(责任编辑:张阳)


TAG:夫妻性保健 两性 性爱

Windows phone 程序启动页面停留时间

Windows phone 程序启动页面停留时间

很多人都想让自己的WP 程序启动很快,我也不例外。

但是在一味追求快速启动的同时,又不想让自己精心设计的启动页面一闪而过,别人还来不及看就已经进入到程序里面了。

网上有很多设置启动页面停留时间的方法,看了很多,找到了一个据说是最科学,最简单的方法。

WP的项目里面都有一个App.xaml,它是干什么的呢?如果你有打开过就知道了。

里面包含有很多方法,有程序启动的,程序关闭的...

所以我们只要找到对应的程序启动的方法就行了,然后在里面添加线程睡眠时间就OK了。

如下:

   private void Application_Launching(object sender, LaunchingEventArgs e)         {             Thread.Sleep(500);    //1000毫秒等于1秒         }

  


TAG:

2012年8月29日星期三

民营医院的微博营销要如何做

民营医院的微博营销要如何做

  网络营销一直离不开社交网络平台,医疗网络营销当然也不例外。每一种新兴社交网络平台的出现,必然会催生许许多多相关的营销方式。2010年,微博开始在国内流行,随着越来越多人的关注、使用微博,微博营销的大环境已经形成。许许多多不知名的企业或者产品成功利用微博营销给自己带来了巨大的成功,那么民营医院适合利用微博来做营销吗?民营医院微博营销如何做呢?

  目前很多家医院都很重视微博营销,然而真正操作成功的医院确是少之又少,很多家医院注册的官方带V账号,表面看似热闹,其实里面充斥了大量的死粉、僵尸粉。无效粉丝太多,在此号上的任何营销推广自然不能产生多大影响。

  造成这种局面,一方面是医疗行业本身受关注力度小,另一方面与医院微博更新内容策略有关。以往这些微博更新的内容无一不是以医院的广告,优势来狂轰乱炸;现如今策略有所改变,很多都以发布科普,常识类内容为主,在其中顺带夹杂着发布医院的优惠信息或者活动内容,但是这2方案都很难给账号带来人气。

  那么民营医院微博营销如何做呢?接下来笔者根据自己的实践来跟大家谈谈,具体该如何利用微博来为一家医院做营销推广。

  1、品牌建设:官方微博

  建立一个医院的官方微博,最好能够通过认证。每天定时更新内容,维护粉丝。广告内容尽量少出现,多与粉丝互动,另外官方微博专业性是关键,更新内容要有权威性。第一步这是基础。

  2、专家营销:个人微博

  以医院各科室的主治医生个人名义开微博,能通过认证最好。这步是重点,医院是死物,专家是活人,医院微博既然无法吸引到人气,那就以专家微博来为医院微博带流量。目前很多家民营医院都是聘请三甲医院专家坐诊,在当地都有一定的知名度,便于推广。下面附带一些操作要点:

  (1)专家的资料都必须是真实的,粉丝在网上能够找到具体的资料。头像采用专家生活照,资料标注是某某医院某科室主任。

  (2)微博内容多样化,可以是以个人名义谈谈对一疾病的看法,例如婚前性行为泛滥导致医院人流患者众多;医院或者生活中的趣闻;特殊的患者案例;转发社会热门话题等等,在医院微博有发布医院的优惠内容或专题活动时,适当的转发点评下。

  (3)专家微博,我们应该把自己当做真实的专家,多与微博用户互动。既然是一名专家,那肯定会有用户在微博上提问一些疾病问题,以医生的口吻回复,和微博用户拉近关系,懂的怎么转化用户。

  (4)利用好微博的相关应用,例如根据微博用户相关特征建微群;针对某一事件进行投票;创建微刊等等。

  (5)微博要体现真实性。一个专家是不可能一天到晚在上网玩微博的,所以在更新微博的时间这块也有讲究的。一般来说,尽量以在晚上八点后为宜。

  3、资源利用:医院官网、官方博客、官方微博、专家微博等互相结合利用推广。

  大部分医院都有一些自己的网络平台,例如,官方网站,官方博客,官方论坛等等,这里要求官方微博与专家微博应在医院全部平台上面展现;专家微博多对医院微博的活动,优惠内容转发点评;专家微博里面,粉丝的提问,可以由医院微博来回答,以此来把粉丝导向医院微博中。

  好了,如何做民营医院微博营销?上诉就是笔者整理分析的3点,有兴趣的朋友可以立即去实践下,希望对你有所帮助。在医疗行业网络营销竞争已经达到白热化的今天,以往任何一种途径都已经被利用到极致,如果能在微博营销中寻找出突破瓶颈的新方法,那将会收到什么样的效果?欢迎对医疗行业微博营销有兴趣的朋友一起来交流下。本文A5首发!审核通过后,欢迎各位转载!http://www.ysem.cn


TAG:民营医院 微博营销 站长 网站 网站推广 赚钱

搜索引擎对外部链接以权威性判定其重要程度

搜索引擎对外部链接以权威性判定其重要程度

  做为一名网站站长,并且是对其网站关键词进行过seo推广的网站站长来说,都会知道外部链接对seo的重要性。但就做外链而言,它确实存在不小的难度,很多站长至今也没找到合适的方式去完善的处理这一问题。在关键词seo推广工作中,我本人认为最不容易的就是做网站外部链接,由于每次搜索引擎根新都会掉一批,同时外部链接还涉及到高质量的问题,因此总让人感觉到头疼无比,但外部链接又是seo工作中无法摆脱的重要一环。互联网本身是由各种类型的网页共同组成,网页与网页之间相互由链接串联到了一起,链接是各种网页之间相互联系的纽带,它客观的反应了网页之间各种内在的联系关系。

  各个搜索引擎能对网站外部链接的数量进行分析和统计,可以记录和了解网站和其网页的情况。搜索引擎通过对外部链接的精准分析,就可以得出网站及其网页的质量,加以权重评分,从而最终给出排名。

  外部链接分析的主要内容包括:网站导出链接和被链接数量,链接的网页类型,外部链接的频率和变化,链接网页之间的关系。

  1、网站导出链接和被链接数量

  几乎现在所有的主流搜索引擎都能很精准的统计到网站及其网页被链接的次数,通过这种搜索技术,可以直接用检索的链接数量,于来判断某一个网站被其他网站的链接情况,从而进行关键词的排名排序。

  2、链接的网页类型

  很多seo教程中都曾经强调过外部链接相关性的重要性。其网站类型相关性的外部链接,在搜索引擎SEO优化中占据着相当重要的位置。这类链接等于是网站获得了同行业的认可,搜索引擎对此类链接相当看重。外部链接的相关类型又可以细分为:合作链接、推荐链接、相关链接、广告链接等等。其中与其他网站所做的主页及其主要栏目频道所建立的链接价值更高。而如推荐链接就是直接对被推荐的网站质量做了客观评价,在搜索引擎的关键词排名上,有极佳的推动效果。

  3、外部链接的频率和变化

  内容有价值的站点,终究会满足网友的需求并被网友自然传播。一个网站的网页被外部网站链接的次数越多,从一个侧面可以证明此网站的质量越高。搜索引擎即可利用被链接的频率、次数和变化对该网站或其网页信息质量进行一个比较客观的评价。

  4、链接网页之间的关系

  如果二个站点,站点A和站点B之间的相互引用内容较多,则它们之间的关系就较为亲密。网站的内容都是以网页的形式展现出来的。所以同样,网页之间如果相互引用较多内容则也能说明它们之间的亲密关系。因此建议有达到一定规模的网站尽量避免网页大规模的进行相互互链。此种行为很容易让搜索引擎误认为是想操纵搜索排名而产生的行为,并且搜索引擎是相当反感此种行为的,情节严重的还会被搜索引擎惩罚网站。

  网站的链接机质并非是哪个人凭空幻想出来的,而是搜索引擎利用科学理论而研究得出的。总结一点,就是被外部链接越多的网站及其网页,其网站本身的重要性就越发显现,因此其关键词排名才能在搜索引擎前列展现。但是现实和科学理论是有一定的差异性的,外部链接很容易受人为操纵的控制影响。所以搜索引擎会对外部链接的质量进行全方面的分析,并以其权威性来判定链接的重要程度。本文由非主流头像网http://www.ye766.com 首发A5站长网,欢迎大家转载,转载请保留链接。


TAG:搜索引擎 外部链接 站长 网站 网站推广 赚钱

网站内容价值是取得搜索引擎排名的关键

网站内容价值是取得搜索引擎排名的关键

  一个网站的内容,可以给用户和浏览者提供价值,才能获得更好的搜索引擎排名,那么什么样的网站内容才算是有价值呢?下面介绍几种互联网常见的、在搜索引擎中排名较好的内容,与广大站长分享:

  知识分享-权威性、专业性强的内容

  用过搜索引擎的都知道,很多常见词汇,在搜索引擎中排名靠前很多都是百科、文库、大型门户等等网站的内容,因为这些网站的知识更加专业,在读者心中的感觉更加权威,所以像这类网站内容更容易排在搜索引擎前面。笔者建议,在策划网站的内容的同时,一定要适当的给读者和用户以利益,多分享一些用户想要知道和学习的知识,最好这些内容能够做到专业,我们就能留下更多的用户。

  兴趣爱好-娱乐、新闻、视频等内容

  大多数人上网,不是为了工作和在网络上面挣钱,而是在互联网上找乐趣。一些娱乐八卦、及时新闻、网络视频等内容,更能吸引广大网民的眼球和共鸣,当然,搜索引擎也会相应的更加重视网民爱好和感兴趣的内容,会给予这些内容更高得排名。因此,在网站策划之初,要从网民的兴趣的和喜好出发,一个网民内心喜欢的网站才是好网站。

  答疑解惑-问答交流、行业知识分享等内容

  搜索引擎最大的好处就是方便网民查找,解决问题和困惑。搜索引擎在互联网中更加恰当的身份是生活帮手,我们不懂的知识,不知道的知识、感兴趣的人、感兴趣的事都可以在互联网中找到。因此,一个网站要想体现价值,必须要能够帮组自己的浏览者解决问题,这对树立网站品牌和口碑都有很大的帮组。

  互动交流-微博、社区等等

  虽然社会在进步,但是宅男宅女在不断的增加,足不出户的人的越来越多。微博、人人网、开心网、朋友网还有社区论坛,拉近了人与人之间的距离,满足了广大网民的需求。所以,一个好的网站,一定要能够更好的与自己的用户互动,这样不断可以发现网站的问题、改进网站,还可以拉近与用户自己的距离,建立相互之间的信任。

  互联网的发展,必然导致竞争力度的加大,如何才能让我们的网站在数以亿计的网站中脱颖而出,一定要抓住网民的心理,才能做一个网民喜欢的网站。以上四点,是笔者在长期的网站内容策划中,积累的心得体会,希望可以给广大站长以帮助。本文原创出自:http://www.jxswdq.com/转载请注明出处


TAG:网站价值 搜索排名 站长 网站 网站推广 赚钱

C#中的var

C#中的var

使用var的一些好处 :

1. 它有利于更好地为本地变量命名。

2. 它有利于设计更好的API。

3. 它促使对变量进行初始化。

4. 它消除了代码的混乱。

5. 它不需要using指示符。


TAG:

外链建设之文本外链不可忽视的优化作用

外链建设之文本外链不可忽视的优化作用

  外链的推广是网站生长的主命脉之一,不过在外链建设方面,A5站长网SEO诊断团队(http://www.yuehuai.com/seozhenduan/)发现文本外链是很多SEOer不经意最易忽视的地方,因为大家都认为具有可点击的跳转意义的链接才是可用的外链,很多SEOer都不太愿意做纯文本的外链,所以在很大程度上,纯文本外链的确存在很大的争议。不过从搜索引擎优化的角度看,纯文本外链也是能起到网站的优化作用的。

  文本链接需要量的积累

  纯文本链接相较于超链接,在蜘蛛的抓取速度方面没有那么多优势,文本外链所起到的作用是一个相对持续性的过程,只有经过一定时期的积累,它的效用才发挥的出来,当数量达到一定程度的时候,会有一个从量变向质变飞跃的过程只有达到了一定量的积累,文本链接才能发挥出自身的作用。这个量,不仅需要推广的面的积累,在更多的地方发文本链接,更需要持续性的去做,最典型的例子,就是大家做百度知道,百度知道是不能加外链的,但是很多人还是将百度知道作为推广的一个重点,这不仅仅是做增加关键词的曝光率,其中也有文本链接的优化。

  文本链接具有非常好的稳定性

  因为文本链接没有超链接那样的跳转性,也因为它不受广大SEOer的待见,所以文本链接本身的广告性非常弱,很多站点也不会排斥你加文本链接。在CHINAZ或者A5发文章,站长们发文章的目的之一就是加链接,但是我们一般留在文末的链接都是不可点击的纯文本链接,但这样的一线站长平台还是每天都有很多的人投递文章,这样的外链质量高稳定性好,这是站长们追求的,结果对网站的优化也非常好,这也证明了文本链接具有很好的稳定性,这样说名文本链接只要网站的权重高,优化作用是非常显著的。一般只要发布成功了,就不会被删。从这个角度来说,文本链接对网站排名的稳定性也具有很好的作用。

  文本链接建立的难度小

  这也就如小编上面所说的,因为它本身没有跳转性,所以很多的网站都可以建立,一般站长是不会介意你六个文本链接的,而大家都很清楚,虽然超链的作用强一些,但是发外链其实并不容易,难度很大,很多网站是不给留外链的,而且超链非常不稳定,发了不久就被删掉是家常便饭,而且超链很容易造成违规,比如天涯博客及问答等,都是非常容易封你的账号的,一旦账号被封,或者这个网站被K,你发的外链自然也就没有了,如此一来,外链也就很不稳定,外链不稳定,网站肯定会受影响。

  因为文本链接建设的难度小,稳定且持续,所以通过文本形式建立的链接一般说来,更加天然、多元化一些,你没有刻意去打广告,这样博取搜索引擎的信任也更加容易些,所以从网站长期的优化角度来说,不管是站长还是SEOer都不能忽略文本链接的作用。总是想着如何去发超链接,很容易会让你走进狭隘的误区。这同样也告诉我们,做网站,还是要心平气和,追求量的积累,不可急功近利。徐州52房地产网www.52fdc.com投稿原创


TAG:外链 之文本 不可 忽视 优化 作用 外链 推广 网站生 站长 网站 网站推广 赚钱

百度两次算法升级带你体验什么叫真正的内容为王

百度两次算法升级带你体验什么叫真正的内容为王

  打击垃圾内容是每一个搜索引擎永恒的使命,其实打击垃圾内容也是年年有,只不过今年特别严。百度两次算法升级全是围绕内容这块进行,而且力度这大是前所未有,受波及的网站之多也是前所未有。但我却在反思一件事,我看到百度是否通过这两次算法升级对广大站长一个暗示,似乎在暗示站长你们别提供垃圾内容了,不然你我都挺累的。你做个站不容易,我收录你们的网站也要占空间,在计算过程中更占资源,所以大家还是好好做站吧,不知道大家有没有这样的理解。

  如果大家都是这样的理解,那我们网站真的是要从内容质量出发了。应该告别那种复制加粘贴以及伪原创的时代了。最近在听到一些群里听到有些人说最近新站难做了,以前是个把星期百度就开始收录了,现在十几天二十天,甚至还有说网站上线一个月了还有没收录的。其实发生这样的情况首先要从我们自身的网站找原因了,你的网站各项指标是不是按百度的优化指南进行的。在内容这块是不是花心思了,因为我知道在一个网站前期,内容要的非常多,所以有很多站长在前期喜欢采集一些内容丰富一下网站,让自己的网站尽快上线。缩短这个时间,以前这个方法笔者也是用过,还是可以的,至少一个星期过去,首页是会收录的,一个月之内总放出几个内页。但眼下这种情况完全不能按老的思路走了。

  那你说老的思路不能走了,大家可能会问你新的思路是什么呢?现在做网站如果你想长久经营真的是要一步一个脚印,前期网站的内容必须原创程度达到80%。在前期搜索引擎虽然不能通过数据知道你网站的用户体验到底好不好,但至少知道你网站的内容是不是原创的。笔者发现目前百度在原创和伪原创以及采集内容这块有了长足的进步,正因为百度对这些识别能力加强了,才有可能发动两次如此大规模的内容升级算法。所以大家在前期做网站的时候一定要加强高质量原创内容,如果你一开始让百度知道你网站的大部分内容是采集的。你网站的信任度就在百度眼里大打折扣了,以后经营起来要比别人努力很多倍才能赶上别人。

  我跟大家谈谈我是怎么知道这个关于内容质量的问题吧,我的一个WP博客,以前不更新内容,快照也是隔天的,但自从6月21日之后一直就没有再更新了。直到一个多月以后我投诉了一下百度快照,快照才回到了当天,但此后又不更新了。我判断这里面也一定跟内容质量有关,因为我每次发表文章的时候首先去各大网站投稿,比如A5,chinaz,草根网等等这些,大家知道这些网站都是传播源,只要是这些网站上的内容,很多人都会采集或者转载。所以导致我博客上的内容重复量过高,搜索引擎认为我博客没有原创型,有稀缺度的内容,导致博客快照都不更新了。后来我去搜索了我博客上的一些主要关键词,发现情况也是如此快照片基本上正常是隔天的都很少,滞后一两个月的网站大把的。

  当然仅仅这些数据还不够,我又对一些大论坛进行观察,发现了一些大型的SEO论坛收录都没有以前理想了。不管是收录数量和速度都明显没有以前快了,而且一带链接上去都很难收录,这是以前我们很少碰到的。还有我在做其它B2B平台推广以及分类信息的时候也发现了这个严重的问题,大家知道分类信用和B2B平台都得依靠百度的流量,我们去这些平台发布信息也需要得到百度的流量。我发现很多以前收录非常不错的网站居然都不行了,我想应该跟B2B平台本身的性质有关。因为大量的人去里面发信息,而且这样的信息相似度极高,完全没有原创性以及稀缺性的程度在里面。正是这一情况导致搜索引擎现在开始对B2B信息平台上的内容越来越不感冒了。

  当然还有我在发外链的时候遇到的问题,那就是收录的很少,要么审核的时间相当长。以前一个月做上千外链是很容易的事情,可是现在一个月才做五六百外链。我想这一定是跟百度当下的算法有关,最有关的是内容这块,很明显的感觉到现在的博客都不行了。除了新浪还有秒收的功能之外,别的博客都是等到百度大更新的时候放几篇内容出来,收录数量真是大不如前了,而且我发现一些以前秒收的论坛现在一带链接收都不收录了,不带链接可能还好说,但速度方面明显放慢,这个说明百度在审核方面是加强了的。正是由于百度针对内容算法的提升,直接导致我们做外链都很难了。

  通过以前数据和经验我总结了,一切都要从内容质量开始了,不管是网站内容还是外链要发布的内容。我们都应该受到重视,所以我最近也调整了SEO运营的方向,以前一个人管所有的内容收集,现在增加到三个人,三个人收集内容,两个人编辑内容,保证不管是网站本身要发布的内容还是用来推广的内容还是外链的内容,都进行深层次的包装。以便能达到搜索引擎收录的标准,发现调整这个策略以后,各方面的数据明显好转了。所以大家不要把时间都花在外链上或者推广上,即使我们要做外链,要做推广,也需要建立在高质量的内容本身才可能做好。否则只会做无数的无用功,浪费了我们宝贵的时间却获取不了任何效果。以前的内容为王大家只是当口号喊,没几个人做,但如果现在不以内容为王,你可能就很难在搜索引擎混下去了。通过这两次的算法完全能总结现在出我们来到了一个真正内容为王的时代?那我问大家准确好了吗?做好调整策略了吗?文章内容由台泉水泵http://www.shuibeng0769.com/原创分享,希望广大站长能吸取教训,本着内容为王的理念经营网站,谢谢。


TAG:百度 两次 算法升 级带 你体 验什 么叫 真正 内容 打击 站长 网站 网站推广 赚钱

哪些“症状”不用看男科

哪些“症状”不用看男科

  尿线分叉。患了前列腺炎、前列腺增生,甚至前列腺癌时经常会伴有尿线分叉的症状,这和尿道口黏连有关。但并不是只要出现尿线分叉就是病。比如,在阴茎勃起或半勃起状态时,排尿时的尿线就呈分叉的状态,这是因为勃起或半勃起状态时,前列腺是充血的、饱胀的,对后尿道存在着压迫,后尿道是紧张的,前尿道是放松的、扩张的。尿液在后尿道内的流速较快,在前尿道相对较慢,所以在离开尿道外口时就形成了散射状。

  会阴麻木。久坐会引起很多种疾病,与泌尿男科关系最紧密的就属前列腺疾病了。但久坐所引起的会阴部不适不都是前列腺炎。会阴部是敏感区域,当久坐引起血液供应不畅,则会导致神经末梢缺氧、麻痹,其所支配和管辖的那个区域内的肌肉、韧带也就指挥“失灵”。因此,只要连续坐不超过20分钟,这种会阴部的不适就会减少许多。反之,如果不是久坐引起的会阴部不适,则需要就诊。

  射精后排尿困难。门诊中,经常会碰到一些男性咨询这个“症状”。其实,这不是病。当有性生活或自慰后,勃起的消退不是瞬时发生,而要经历两个阶段。第一期为阴茎快速复归,阴茎丧失硬度为高潮期的50%左右。第二期是阴茎回复到萎软状态,此期时间长短根据年龄有差异,有些人可能持续很长一段时间。在这之后,膀胱括约肌才逐渐松弛,前列腺的充血也渐渐消散,后尿道一点一点地被打开,排尿才能恢复正常,因此出现射精后排尿困难是正常的。

(责任编辑:张阳)


TAG:性教育 两性 性爱

Scrum迭代中的质量标准(续)

Scrum迭代中的质量标准(续)

    

前一篇文章《Scrum迭代中的质量标准》提到Scrum迭代内的质量标准,关于质量标准,不同的人给与了不同的看法,在这里根据大家的一些反馈进行一些补充。

    1.全能人才的Scrum团队实际上也需要一个质量标准进行把关,只是需要汇总前面的研发bug数和测试人员的bug作为一个质量标准进行验收。

 

    2.不同人员的能力不同,导致的质量目标是不尽相同的,但如果把这个质量标准放在一个团队内进行考量的时候,个体的偏差就会变得比较小了,这个时候,可以根据质量标准进行衡量整个迭代的质量,而不是个体的质量。另外就是,如果项目属于中型项目的话,也可以使用模块级别来衡量,也是可以消除一定的个体偏差,使用质量标准来进行决定是否达标。

 

    3.前面文章的质量标准只是一个参考值,并不是一个恒定不变的值,是用来借鉴的。尽信书不如无书就是这个道理,每个团队可以根据自己的实际情况进行衡量,适配,初步的时候,可以使用这个标准进行参考,后面根据每次的反馈进行调整这个值。另外就是,这个标准也可以在Scrum的大迭代周期内进行调整,根据每次迭代的内容进行一定量的调整还是必要的,比如这次迭代主要是算法,以及框架部分,可能代码量不是很大,这个时候为了更好的保证质量,每千行的bug数可以适当的调高。根据情况,灵活使用,这样才能更加的适配实际情况,更能符合现实。

 

     4.关于自动化测试部分,实际上是后期质量保证的一部分,并不属于质量标准的部分。所以没有涉及到相关内容。


TAG:

2012年8月28日星期二

SilverLight 学习篇四

SilverLight 学习篇四

一般通过统一资源标识符 (URI) 在代码或 XAML 中引用资源文件。所需的 URI 格式取决于部署文件的方式。您还可以选择指定相对或绝对 URI。

本主题介绍如何配置资源文件的部署位置并通过 URI 来引用资源文件。有关应用程序打包以及如何组织应用程序的结构以获得最佳响应效果的信息,请参见应用程序结构。有关部署和本地化的信息,请参见部署和本地化。

配置资源文件

在 Visual Studio 中,可以将资源文件添加到 Silverlight 项目并通过设置其"生成操作"值来为部署配置这些资源文件。可以为 Silverlight 项目中的资源文件使用以下生成操作:

  • 资源:此生成操作会将文件嵌入项目程序集。您可以将此选项用于应用程序和库项目,并且在应用程序包的内部或外部部署这些程序集。

  • 内容:此生成操作会将文件包含到应用程序包中,而不嵌入项目程序集。将此选项用于包中多个程序集共享的资源文件。

  • 无:此生成操作不会将文件包含到应用程序包或程序集中。将此选项用于要按需检索的资源文件。通常在与应用程序包所在服务器位置相同的地方部署按需文件。

警告:

Visual Studio 中的"属性"窗口提供了"生成操作"下拉列表中的几个其他值。但是,您只能将前面三个值用于 Silverlight 项目。特别要注意的是,Silverlight 嵌入资源必须始终使用"资源"生成操作,而非"嵌入的资源"生成操作,后者使用 Silverlight 无法识别的格式。

如果决定共享嵌入的资源文件或按需检索它,可以更改生成操作。在这种情况下,必须重新生成和重新部署您的应用程序。如果没有使用相对 URI,还必须在重新生成前更新您的 URI 引用。以下各节对 URI 格式选项进行了说明。

说明:

通过 URI 引用字体文件时,必须在程序集中嵌入该字体文件并将 URI 语法用于嵌入的文件。有关更多信息,请参见 FontFamily 类概述。作为替代方案,可以设置各种控件都具有的 FontSource 属性。有关更多信息,请参见文本和字体。

使用通过 .NET Framework 版本 1.1 编译的资源文件将导致 NotSupportedException(如果这些文件包含 Boolean、 Char、Byte 或 Stream 类型)。

绝对和相对 URI

Silverlight 支持绝对和相对 URI,并通过使用相对 URI 提供用于查找文件的回退机制。

绝对 URI 指定资源文件的确切位置,绕过回退机制。例如,"http://www.contoso.com/resources/OnDemand.png"表示指定域中资源文件夹中的一个文件。如果资源文件所在的域不是应用程序包的宿主域,必须指定绝对 URI。

相对 URI 指定相对于应用程序根或引用 XAML 的资源文件位置。

相对于应用程序根的 URI

具有前导斜杠的相对 URI 表示相对于应用程序根的位置,例如"/resources/image.png"。

应用程序根是应用程序包的根文件夹或服务器上应用程序包的位置。相对 URI 回退机制首先搜索应用程序包,然后搜索服务器。如果在前导斜杠后包括路径,则在这两个位置中搜索相同的文件夹层次结构。

相对于引用 XAML 的 URI

不具有前导斜杠的相对 URI 表示相对于引用 XAML 的位置。如果您在代码中使用相对 URI,则引用 XAML 是您的代码操作的 XAML。

如果引用 XAML 位于文件夹中,可以引用相对于该位置的其他文件夹中的文件。但是,不能在应用程序根上进行搜索,例如"../resources/image.png"。此 URI 搜索包含 XAML 的文件夹所在级别上的资源文件夹,假定该文件夹不是应用程序根。

如果从应用程序包加载引用 XAML 但是未找到引用的资源文件,则使用默认回退机制。应用程序包中引用 XAML 的路径用于在服务器上搜索。例如,考虑应用程序包中以下位置的 XAML 文件:/pages/xaml/MyPage.xaml。在这种情况下,回退机制将在服务器上的以下位置搜索"../resources/image.png":/pages/resources/image.png。

如果将引用 XAML 编译为程序集,则必须在该同一程序集中嵌入资源文件。在这种情况下,URI 回退机制由 ResourceManager 类提供。此回退机制使用语言和区域性设置来查找附属程序集中的资源文件。有关更多信息,请参见本地化基于 Silverlight 的应用程序。

指向其他程序集的 URI

还可以引用嵌入某程序集的资源文件,该程序集不是包含引用 XAML 的程序集。在这种情况下,URI 使用以下格式:"/assemblyShortName;component/resourceLocation,例如"/SilverlightLibraryAssembly;component/image.png"。请注意,需要使用前导斜杠和 component 关键字(后跟一个斜杠)。

对于其他嵌入的资源,此 URI 格式使用 ResourceManager 类提供的回退机制。


TAG:

网站优化如何针对算法改变提前对网站进行布局

网站优化如何针对算法改变提前对网站进行布局

  最近几个月百度算法一直在升级中,面对升级很多网站要么被降权,要么被K,前不久百度又出了一个公告,主要是针对五种类型的站点,但是我们从公告中就可以看出网站是可以提前预防的,预防被百度算法调整中被K和被降权的结局,那么我们应该如何预防呢?下面我来谈谈我的看法。

  一、从网站的内容角度预防

  百度近期的调整都一直在公告说是为了给予用户更高的用户体验,抱着这个目的百度进行了调整,因此我们从网站的内容上就要开始转变思路,以前很多网站的内容主要是为了优化而优化,现在我们的网站内容就应该是为了用户而写作,很简单的道理以前我们写文章主要是凑字数、凑语句,而现在我们写文章主要是为了满足用户的需求。往往很多站长没有认清楚网站的形式还是一成不变的优化网站,这种不改变自己做法的行为在现在看来是找抽型。我建议各位站长在现在的这种形式之下一定要转变自己的内容角度,将以前那种随便的内容转换为正规的内容,这样或许能够挽救网站。在网上我也看了不少的文章说搜索引擎的调整不到位,很多网站被降权,我觉得大家不要只顾着埋怨,转换思路也是重中之重。

  二、提前布局网站站内质量

  站内质量一直是搜索引擎关注的重点,这不现在百度搜索引擎还发出了一个对欺诈或者违规的网站也将对网站进行降权的公告,面对这种情况我们就不要等着百度K站了再去修改网站,我觉得现在各位站长就应该动手检查一下看自己的网站是否有违规的内容,是否存在欺诈内容,如果有就赶紧删除,百度既然敢说那么必然敢做,你不修改就是等百度K你的网站,我觉得随着搜索引擎的不断改进,以前那些违规的内容或许会慢慢的淡出搜索引擎的视线,这也是一种社会进步吧。

  三、提前改变作弊方法

  很多时候站点被K都是由于优化方法不到位,12年以前的时候百度对网站还是抱着容忍的态度,一些作弊的站点也能够立足于搜索引擎之后,但是到了12年百度就加大了对作弊网站的处罚力度,现在如果你的网站还在作弊优化,我估计即使这次调整你的网站没有受牵连,在下次的调整之中你的网站都会受到百度的重点关注,站长千万不要马虎大意,如果你还在使用作弊手法优化网站,那么我建议你立即停止这种手法,如果你还在用群发机、伪原创软件等为网站增添光彩我也建议你赶紧停止,或许百度在下一次的算法调整中如果你改变了还有一线希望,如果你没有改变就是死路一条,为了自己的网站提前改变作弊方法吧。

  四、提前改变优化思想

  思想的不成熟就会引起行动的幼稚,很多站长在建立网站的时候都是豪情万丈,都认为会在几个月就将网站发展得好,其实不然一个网站从建立到运营都是漫长的过程,在这个过程中网站站长要学会转变自己的思想,什么事情都不是一蹴而就的。我们就举个简单的例子:大家都知道百度可以投诉快照吧,一些网站站长在了解到有这个功能之后只要网站的快照停止了更新就去投诉,难道投诉就那么好吗?其实不然百度快照的投诉这个方法用一次两次还是可以,但是用了超过三次以上你的网站或许就会被降权,我以前就尝试过,到后来我才想明白这个道理:网站优化不可能一步到位,需要稳扎稳打。

  百度算法的不断调整是站长头疼的事情,作为一名站长我们不能够预测如何调整,但是我们却可以改变自己的网站,我觉得只要你根据百度的提示去改变,那么你的站点必然不会存在被降权或者被K的行为。本文出自于小洮百度排名优化http://www.alonely.com.cn/站长,意在于让更多的站长提前改变网站优化手法,转向正道方是上策。


TAG:网站 优化 如何针 算法 改变 提前 进行 布局 几个 百度 站长 网站 网站推广 赚钱

网站优化成果测试心得 从分析站点转化率出发

网站优化成果测试心得 从分析站点转化率出发

  优化到底好不好怎么去评判呢?优化是否到位怎么去辨别呢?今天我来谈谈我的网站优化心得,在我看来网站优化并不是只看一个网站的排名与流量,而应该去关注优化的核心,我们为什么要优化网站?因为我们需要提高网站的转化率,那么你的网站优化到现在提高了转化率吗?这就是我们今天要谈的内容。

  网站从诞生开始可以说是根本没有转化率,不管是做什么类型的网站我们都可以在网站运营中去辨别页面转化率、广告转化率、二次转化率,下面具体来谈谈这三种转化率,我想如果你明白了这三种转化率的根本,那么你的网站运营将会走向真正的正规。

  页面转化率

  大家可以想一下,假如你的网站在运营初期只有十个人来你的站点,但是这十个人有五个都能够从首页跳进内页,这说明你的网站页面转化率达到了一半以上,而在网站优化之后你的网站上升到了百度首页,而这个时候你的网站有100个不同的流量,但是能够进入内页的不足30人,从中说明什么?说明你的网站页面转化率并不高,在网站排名上升的时候你的站点页面没有做好,现在很多网站都面临这种问题:排名上升了,但收入却并没有增多。这也是我们在网站优化道路上第一个需要认识的问题,优化网站并不仅仅是优化网站在搜索引擎中的排名,我们还应该注重页面转化率这个问题,如果你是淘宝客网站,页面转化率越高是不是能够提高你的盈利呢?

  广告转化率

  广告可以说是一个网站的收入主流,抛开卖产品、淘宝客系列的网站,大多数网站的收入都是靠打广告,但是站长你是否想过你的广告转化率高吗?往往很多站长在注重优化网站的同时却忽视了站点内部质量的加强,其实广告转化率也能够很好的让我们分析出站点是否服务到位。假如你的站点的广告转化率不足百分之10,这说明10个用户有9个都没有点击你的广告,从中我们可以看出几点问题:

  1、广告可能不符合网站主题,这样的广告转化率肯定不高,必须修改。

  2、广告可能涉嫌敏感区域,这样的广告有些用户看了直接会关闭网站。

  3、广告效果图做得不高,大家都知道用户想进入网站第一印象看的是表面,所以广告的表面效果最好还是选择 一些质量高的。

  发现了问题就必须整改,站长在优化的同时也不要忘记了整改网站的站内质量,网站的站内质量也是网站的根本,我们也可以选择从整改网站的广告开始,这一步开始很简单。

  二次转化率

  网站的二次转化率是判断网站是否真正留住了用户的要素之一,二次转化率能够带来的效果器其实比第一次进入网站的用户效果好,用户为什么还要进入你的网站,这说明你的网站有用户值得留念的价值,相反如果你的站点二次转化率太低,这说明用户根本就不认可你的网站,试问这样的网站即使去做竞价、优化到百度第一位又有何意义呢?卖产品用户不买,卖服务用户不信,这样的站点可以说不管你是排名第几都不会有好的效果,我建议各位可以通过统计工具分析一下二次转化率,看看自己的网站优化是否存在问题,切记:不要为了优化而优化,应该为了用户为优化,达到这个境界之后我相信你的站点会越来越好,用户二次转化率会越来越高。

  判断一个网站优化好不好并不是单纯的靠排名就可以决定,而应该去看网站的转化率,如果你的网站排名搜索引擎第一位但是转化率太低在,这样的网站在运营过程中我相信也会非常吃力,所以各位站长朋友们不要为了排名而排名,希望能够在站点排名上升的同时注重网站的转化率。本文来源于金宏购物网(http://www.lipin6688.com/) ,转载请保留作者链接,谢谢。


TAG:网站 优化成 果测 试心 析站点 转化率 出发 优化 底好 站长 网站 网站推广 赚钱

xml转json

xml转json

function // Create the return object    var obj = {};    if (// element        // do attributes        if () {            obj["@attributes"] = {};            for (var j = 0; j < ) {                var attribute = "@attributes"][attribute.nodeName] = attribute.nodeValue;            }        }    } else if (// text        obj = // do children    if (for (var i = 0; i < ) {            var item = var nodeName = item.nodeName;            if (typeof (obj[nodeName]) == "undefined") {                obj[nodeName] = else {                if (typeof (obj[nodeName].length) == "undefined") {                    var old = obj[nodeName];                    obj[nodeName] = [];                    obj[nodeName].push(old);                }                obj[nodeName].push(return obj;};

TAG:

Scrum迭代中的质量标准

Scrum迭代中的质量标准

       在Scrum迭代过程中,比较看重的一点是最后的验收质量,迭代是滚动的,如果迭代的质量不达标,就会导致质量债一直存在,这样就会像滚雪球一样,逐步积累起来,越来越大,最终导致Scrum只有形而已,而不是真正的敏捷。因为不能在任意阶段拿出可以发布的产品。

 

       而产品质量这个词汇,又是一个比较虚的词汇,谁也不能保证产品没有bug了,谁也不能说产品的质量到达一个什么地步了。另外一点就是在Scrum迭代过程中存在着三种角色,产品经理,研发,测试。在高质量的敏捷素质要求里面,要求后两者合二为一了,成为一个全能人才。但是很多公司里面,研发和测试还是割裂开的。那么这三个角色之间也会面临着质量诉求,研发要求产品经理的输出是在合理的质量范围,而不能在研发,或者测试的过程中发现问题。测试对于研发的质量输入也是有一定的要求的,不能出现太多的低级bug。这样就面临了一个质量标准问题。

 

      最早的时候,是有上游说了算的,需求人员把文档交给程序员,告知完成了,程序员研发完成告知测试人员写完了。因为没有约束,所以导致质量不是很好,测试人员总是抱怨质量太差,测试的都是低级错误。后来进行实践,做过checklist(自检列表),然后根据测试的反馈进行了调整自测列表,但是即使这样,测试人员的满意度也不是很高,认为研发的输出质量依然不是很高,导致测试这边的压力很大。另外一点就是,公司里面的测试人员的配比很低,只有8:1或者10:1的比例,这样也要求研发的输出质量要高一些,避免上一个迭代的测试还没有完成,下一次的迭代输出就已经到了。导致测试永远都是瓶颈,也是压力最大的人员,也避免作为最后的一道屏障因为前面的输出质量太差,而纠缠在普通的bug上无法自拔,导致质量水平偏低。

 

      针对上面的这些问题,参考了对日软件的经验和标准,制定了一套Scrum迭代内的质量标准。在公司的研发体系内,Scrum迭代内包括以下内容,详细需求,研发,测试。这样根据本次迭代的条目挑选出详细需求,进行研发,成果进行交付测试人员测试。三个过程都进行了约束,制定了质量标准。按照之前的经验,约定Scrum迭代内的质量标准为16Bug/KL(每千行代码16个bug),约定详细需求为4Bug/KL,设计+CD为7Bug/KL,测试为3Bug/KL。

      

     约定了这个标准之后,要求研发人员需要找出详细需求4Bug/KL,研发后研发人员需要测出7Bug/KL的标准才能交付给测试人员,测试人员必须测试出3Bug/KL之后才能认为本次迭代结束。因为需求文档还没有对应的代码行数,于是根据研发时间进行估算,按照50L/D的天数进行计算。(按照生产性来说,应该是20L/D,但是因为现阶段的重复代码的存在,所以制定上翻了一倍左右。)这样按照预言的研发天数进行需求文档的质量约束。


TAG:

2012年8月27日星期一

WPF:分类的可收缩的WrapPanel列表

WPF:分类的可收缩的WrapPanel列表

效果如下,WrapPanel样式的列表同时支持分类。

image

 

如果点击分类列表Header后,相应的类别子元素会收缩。

image

 

 

起初想用ListBox实现,但是很快被WrapPanel和GroupStyle整的一头雾水。同时对WPF中数据源ICollectionView的分类是采用PropertyGroupDescription这种靠反射来执行的逻辑表示不爽,最终定自己写一个类似的控件。

 

image

核心类型WrapList继承自WrapPanel。

三个非常基础的WPF常见控件/数据样式选项:HeaderStyle,HeaderTemplate和ItemTemplate分别设置类型Header的Style和Data Template,以及子元素的Data Template。

同时还有一个WrapListGroupHeader控件代表类型Header的显示控件,它就是一个ToggleButton,在点击后会自动收缩其子项目。

 

ItemsSource类型是object,但是它只支持IEnumerable<IGrouping<TKey, TElement>>类型,没有使用WPF中ICollectionView的PropertyGroupDescription,而是LINQ中GroupBy返回的原生结果。当ItemsSource被设置后,元素即会被显示。

 

那么数据源的设置的示例代码:

//mylist是WrapList控件的名称

//设置WrapList的数据源为1-50余3的结果

var groups = Enumerable.Range(1, 50).GroupBy(i => i % 3);

mylist.ItemsSource = groups;

 

接着定义XAML上的WrapList。最好把WrapList抱在横向的ScrollViewer中,同时由于WrapList继承自WrapPanel,因此可以适当设置ItemWidth和ItemHeight属性。最上方示例程序截图的界面XAML:

<!-- loc是WrapList所在的命名空间 -->

<!-- 设置好横向滚动条 -->

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">

    <!-- WrapList控件 -->

    <loc:WrapList x:Name="mylist" ItemWidth="100">

        <!-- Header样式 -->

        <loc:WrapList.HeaderStyle>

            <Style TargetType="loc:WrapListGroupHeader">

                <Setter Property="Background" Value="Gray"/>

                <Setter Property="Foreground" Value="White"/>

                <Setter Property="Margin" Value="2"/>

                <Setter Property="Padding" Value="0 3"/>

                <Setter Property="HorizontalContentAlignment" Value="Center"/>

            </Style>

        </loc:WrapList.HeaderStyle>

        <!-- 子成员数据模板 -->

        <loc:WrapList.ItemTemplate>

            <DataTemplate>

                <Border Margin="5">

                    <StackPanel Orientation="Horizontal">

                        <Ellipse Width="5" Height="5" Fill="YellowGreen" Margin="0 0 7 0"/>

                        <TextBlock Text="{Binding}"/>

                    </StackPanel>

                </Border>

            </DataTemplate>

        </loc:WrapList.ItemTemplate>

        <!-- Header数据模板 -->

        <loc:WrapList.HeaderTemplate>

            <DataTemplate>

                <TextBlock Text="{Binding StringFormat=除以3余:\{0\}}"/>

            </DataTemplate>

        </loc:WrapList.HeaderTemplate>

    </loc:WrapList>

</ScrollViewer>

 

 

当前版本的源代码下载
下载地址
注意:此为微软SkyDrive存档,请用浏览器直接下载,用某些下载工具可能无法下载
示例程序运行环境:.NET Framework 4.0 Client Profile
源代码环境:Microsoft Visual C# 2010 Express


TAG:

员工满意度调查问卷

员工满意度调查问卷

我很明确自己的工作目标、岗位职责和工作流程。
对 于公司使命的达成,我的工作是重要的。
我 的工作带给我很多成就感。
我 的工作很有挑战性,让我充满工作热情。
我 的工作强度和工作紧张度是比较合理的。
我 每天都有机会做我最擅长的事,我的各方面能力在工作中得到了很好的发挥和锻炼。
公 司有人鼓励我的发展。
在 本部门工作我会有很好的发展前途。
过 去一年里,我在工作中有机会学习和成长。
在 过去的六个月内,有人和我谈及我的进步。
公 司的评优、晋升及调薪制度是科学公正的。
公 司有较为科学完善的薪酬绩效管理制度,与自己的付出相比,我对自己的收入感到很满意。
我 很满意公司的福利制度。
目 前的排班管理和考勤管理很合理。
公 司为我提供了我所需的入职培训、专业培训、素质技能培训。
公 司的培训课程大多能对我的工作产生积极影响。
我 认为我的硬件工作环境很舒适。
我 对自己在公司内的人际关系感到满意。
我 总是知道到哪里去找我所需要的资源(如材料、设备等)。
我 认为公司员工整体素质很高,具有良好的团队合作意识。
我 觉得我的主管或同事关心我的个人情况。
我 在工作单位有一个最要好的朋友。
通 常情况下,公司同事都表现出积极的工作态度。
在 工作中,我总是能够获得本部门或其他部门同事的支持和帮助。
公 司里没有这种现象:其他部门人员老是把责任推在我们部门头上了。
我 的同事们大都致力于提高工作的质量。
我 的的上司综合素质很高,包括经验、学识、品格、职业道德等方面。
我 很信任我的主管/经理,在我需要时他总能帮助我。
我 知道公司及上司对我的工作要求。
在 过去的七天里,我曾因工作出色而受到表扬。
工 作中,我觉得我的意见受到了公司的重视。
我 的上司向我提供重要的改进意见,以帮助我提高绩效。
公 司有较为完善的规章制度,且各项制度在执行中保证了公平性。
公 司提倡以人为本的企业文化,关注员工精神文化生活。
总 的来说,我对公司和工作非常满意。

在日常工作开展中, 要从各方面关注部门同事的工作和感受。


TAG: