posts - 42,comments - 80,trackbacks - 6
     Google在官方博客介绍说,普通的HTTP浏览是不安全的,用户和服务器之间的通讯会被第三方监听和干扰,对于Google来说,你在Google搜索的词语会被第三方截获,如果第三方不希望你在Google搜索这个词语,还可以通过技术手段阻止用户的搜索行为。
  这也就是Google发布的beta版本的SSL加密搜索的原因,在HTTPS(超文本加密传输协议)的Google搜索中,用户搜索的信息将无法被第三方获取,也不会出现数据泄漏的问题。目前HTTPS的Google搜索覆盖了Google网页搜索的部分产品,目前还不支持图片搜索和地图搜索,而其他搜素(资讯、博客、视频、动态等)都支持。
  对于中国用户来说,HTTPS的加密搜索一劳永逸地解决了中国用户对于Google搜索的稳定性问题,我们知道,从某一天开始,一些常用的中文单字在Google中被屏蔽,搜索包含“吴”、“温”、“贾”、“李”、“习”、“贺”、“周”、“胡”等字的词语,会出现“连接被重置”,这导致一些很常用的词语,例如“学习”、“胡萝卜”、“温度计”等无法在Google搜索,而现在,使用HTTPS的Google,我们可以搜索你想搜索的任何词语,再也不会出现“连接被重置”了。
  HTTPS虽然较为耗费系统资源,但对于中国用户来说意义实在太大了。
  为了你的用户隐私、安全和稳定性,现在就把你的Google搜索地址更换为 https://encrypted.google.com 吧。

 

 

 以下是从解决DNS污染到Google chrome自定义默认搜索的设置,重新介绍具体的方法:

一、无需SSH加密代理解决DNS污染的方法——修改hosts文件(windows vista/7系统需要修改权限)
1、找到hosts文件。在C:\windows\system32\drivers\etc目录下。
2、用记事本打开hosts文件。
3、按照“IP地址 域名”的格式添加单独的一行记录,注意IP地址前不要有空格,IP与域名之间至少空一个
我们在此要添加的是encrypted.google.com的可用IP地址。目前可用的有
因此,可以添加一条这样的记录(复制黏贴即可):
203.208.46.29 encrypted.google.com
4、重新启动浏览器测试结果(可以是任意浏览器)。地址栏中输入encrypted.google.com,回车。OK,又可以用Google的加密搜索服务了。
 
二、设置Google chrome的默认搜索为https加密搜索。
1、启动Google chrome,“选项”—“基本设置”—“默认搜索引擎”—“管理”—“添加”。如下图:

 

 2、名称、关键字可以随意输入,只要不与现有的配置项重名。

3、在“网址”一栏中输入https://encrypted.google.com/search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}sourceid=chrome&ie={inputEncoding}&q=%s
此设置参数是从Google chrome安装之后默认的那个设置选项中改造而来,原来为:{google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}sourceid=chrome&ie={inputEncoding}&q=%s
即将{google:baseURL}改为https://encrypted.google.com/,其他不变。(因为默认的那个设置选项的参数是编辑不了的,所以只能自己重新添加一个)
4、确定,保存退出,重启Google chrome。
好了,至此,所有设置完毕。可以在你完成设置的电脑顺畅地在Google chrome中使用加密搜索啦。

 

 

posted @ 2012-02-03 14:55 李佩亮 阅读(51) 评论(1) 编辑
本文由应用邦整理自创业者Bowei Gai的研究,对中美互联网环境中多个方面进行了比较,阐述了中国互联网中公司生存的现状以及整个互联网的大环境。

中国的互联网市场规模巨大

  • 13亿人口,6.55亿城市人口(>50%)
  • 4.85亿能上网,超过1.35亿在网吧上网
  • 中国移动和中国联通共有8亿手机用户
  • GDP自1985年以来增长了44.5倍,预计在2020年超越美国

中、美互联网市场规模对比

  美国 中国
人口 3.07亿 13.31亿
手机用户 2.92亿 >8亿
互联网用户 2.39亿 >4.85亿
GDP 14.12万亿美元 4.99万亿美元
自1985年以来增长的倍数 3.4倍 44.5倍
截止2010年百万富翁数量 310万 50万

中国富裕阶层

  • 53.4万位百万富翁
  • 115位亿万富翁
  • 每周能看见五辆兰博基尼(开玩笑的,不必当真)

中国顶级互联网公司

  • 腾讯游戏/即时聊天 390亿美元
  • 阿里巴巴/电子商务 450亿美元
  • 百度/搜索引擎 430亿美元
  • 其他知名网站:人人网、新浪微博、点点网、淘宝网、开心网、土豆网/优酷

中国的互联网文化

  • 中国的互联网是独立的、沙箱式的以及有管理制度的

-你从未听说过中国的互联网公司是因为他只服务中国的网民。中国的互联网公司生存于由中国政府高度管理的巨大且封闭的环境中。

  • 互联网的基本制度在中国并不适用

-例1:一些网民基本从来没有查收电子邮件的概念,因为他们几乎把所有时间都花在了QQ上。中国挑战着你对互联网最简单的想法,无法理解为什么在中国没有事实的东西。

-例2:中国的网站通常非常拥挤而且不美观,这主要跟语言和习惯有关,尽管如此其流量还是令人难以置信地比那些漂亮的web2.0的要高很多。

其它特点

  • 70%的中国用户在30岁及一下,他们是新一代的“购物狂”。

-中国网民由很多非常有经验的互联网用户组成。他们喜欢在网上购买任何东西,在淘宝网上他们付账单甚至买机票。这一代“购物狂”正在改变中国消费市场的大格局。

  • 一般不会为软件付费,只为实体商品和游戏付费

-微软及一些消费者软件服务公司都无法在中国生存,而淘宝拥有8亿产品,在中国独占鳌头。

  • 过度依赖搜索引擎

-由于语言障碍、键盘转换以及懒惰,人们只记得很少网站名。人们大都通过在搜索引擎里输入“苹果”来访问苹果官网而不是通过“www.apple.com”直接访问。

中国互联网竞争形态

  • 无止尽的残酷竞争

-在美国,任何商机都有一些竞争对手是非常普遍的。在中国,则会有很多很多竞争对手。据说在中国有3000——5000家复制团购公司以及100家以上的安卓商店。虽然确切的数字会改变,但是这给了你对于中国市场竞争的明确信息,真的非常惨烈。

  • 所有公司都有缺点,很多没有职业道德,一些是非法的

-在中国,竞争是非常激烈的。例如,公司可以花钱购买消费者、评论甚至雇人通过评论来破坏竞争对手的形象。知识产权保护是中国政府迫切要求的,但在实践中几乎不存在。在中国的竞争需要不同的思维模式,这对于一些企业来说是非常艰难的。

  • 美国互联网巨头在中国将一无是处

Facebook、雅虎、Ebay、谷歌、Twitter、Foursquare、Dropbox这些服务都因为特殊的原因在中国惨遭失败。然而,对于每一家在中国失败的美国公司,都有一家模仿它的中国公司获得了成功。

外国公司在中国建立公司的困难

  • 在中国成立公司可谓是一场噩梦
  • 初创公司都被剥夺了在线开发者服务
  • 初创技术一般都相对落后

-一般新的技术文档翻译成中文都要花一段时间,因此很多开发者都还在使用几年前的技术,例如.Net或者php。

中国互联网人才薪酬

  • 中级工程师薪水:美元1000美元—1500美元
  • 顶级工程师薪水:美元2500美元以上
  • 对工作的忠诚度低,奖金期望值高

-由于市场对高级编码员的需求大导致工作的忠诚度很低。人们还希望在假期的时候可以收到现金或者礼物这样的奖金替代品。

  • 知名高校过于自大

-名校出来的员工也比较骄傲。但事实上,踏实比名气更重要。

创业环境

  • 去北京发展
  • 好的创业团队为你张开双臂
  • 人们对硅谷文化和企业相当了解
  • 外国企业很少会与本地企业合并

中国的天使/VC市场

  • 中国的VC市场很大而且也不缺钱
  • 小的天使团队大都是由独立的有钱人组成的
  • 大环境下人们很少相信公司或者天使投资人

创业心理准备

  • 开一家IPO或者生活类的公司,不要想着会有退出的机会
  • 大多数员工选择高工资而不是高收益
  • 比起初创公司,人们还是更喜欢大公司

文化背景

  • 中国的年轻成年人在结婚之前都还父母生活在一起。与其相似的是,拥有30至40人的初创公司还在孵化中。
  • 初创公司通过租一个大的漂亮的办公室来展现其前景。一个特别杂乱的公司在中国是招不到员工的。
  • 劳动力非常廉价,因此初创公司通常人满为患。有一家中国的复制公司承认其员工数是美国原始公司的两倍,这是非常可笑的。

你的优势

  • 本地人对你的尊重及好奇心
  • 筹钱相对容易
  • 获得外国知识及资金的途径

你的劣势

  • 不了解当地文化及语言
  • 无力或不知道如何应付残酷的竞争
  • 在中国的初创公司之中由于名气的原因外国公司通常比较获得到当地人的信任
posted @ 2011-11-02 14:37 李佩亮 阅读(21) 评论(0) 编辑

用C# winform开发界面时会遇到很多小问题,比如贴透明的png图片或GIF图片后,图片无法透明,这点可以通过属性设置:外观/BackColor (Web TransParent)可以解决。

但当用多个控件时,如PictureBox,控件都贴透明图片后,两个PictureBox有重叠的地方,希望重叠的地方能透明,就是透视下面的控件部分,结果测试后发现两控件重叠透明的地方对整个框架的背景透明,但对下面控件无法透明,最后在网上找了一段代码,解决了这个问题。

解决时,对每个控件使用:ControlTrans(pic,pic.Image);然后层叠之后就可以透明了。

        private unsafe static GraphicsPath subGraphicsPath(Image img)
        {
            if (img == nullreturn null;

            // 建立GraphicsPath, 给我们的位图路径计算使用   
            GraphicsPath g = new GraphicsPath(FillMode.Alternate);

            Bitmap bitmap = new Bitmap(img);

            int width = bitmap.Width;
            int height = bitmap.Height;
            BitmapData bmData = bitmap.LockBits(new Rectangle(00, width, height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            byte* p = (byte*)bmData.Scan0;
            int offset = bmData.Stride - width * 3;
            int p0, p1, p2;         // 记录左上角0,0座标的颜色值  
            p0 = p[0];
            p1 = p[1];
            p2 = p[2];

            int start = -1;
            // 行座标 ( Y col )   
            for (int Y = 0; Y < height; Y++)
            {
                // 列座标 ( X row )   
                for (int X = 0; X < width; X++)
                {
                    if (start == -1 && (p[0] != p0 || p[1] != p1 || p[2] != p2))     //如果 之前的点没有不透明 且 不透明   
                    {
                        start = X;                            //记录这个点  
                    }
                    else if (start > -1 && (p[0] == p0 && p[1] == p1 && p[2] == p2))      //如果 之前的点是不透明 且 透明  
                    {
                        g.AddRectangle(new Rectangle(start, Y, X - start, 1));    //添加之前的矩形到  
                        start = -1;
                    }

                    if (X == width - 1 && start > -1)        //如果 之前的点是不透明 且 是最后一个点  
                    {
                        g.AddRectangle(new Rectangle(start, Y, X - start + 11));      //添加之前的矩形到  
                        start = -1;
                    }
                    //if (p[0] != p0 || p[1] != p1 || p[2] != p2)  
                    
//    g.AddRectangle(new Rectangle(X, Y, 1, 1));  
                    p += 3;                                   //下一个内存地址  
                }
                p += offset;
            } bitmap.UnlockBits(bmData);
            bitmap.Dispose();
            // 返回计算出来的不透明图片路径   
            return g;
        }

        /// <summary>  
        
/// 调用此函数后使图片透明  
        
/// </summary>  
        
/// <param name="control">需要处理的控件</param>  
        
/// <param name="img">控件的背景或图片,如PictureBox.Image  
        
///   或PictureBox.BackgroundImage</param>  
        public static void ControlTrans(Control control, Image img)
        {
            GraphicsPath g;
            g = subGraphicsPath(img);
            if (g == null)
                return;
            control.Region = new Region(g);
        }

posted @ 2011-10-13 13:32 李佩亮 阅读(121) 评论(0) 编辑

    在最近的ICMS项目中,为了实现完全的分离业务和视图部分(同时也需要视图偶尔能调用业务逻辑用用),所以决定引入已经非常成熟的开源搜索引擎Nvelocity.

但很可惜的是Nvelocity 的最新版本0.4.2 也在2003 年停止了更新和维护,其中引用的其他开源组件也都是当时的版本,比如:

Log4Net版本是2002 年的 1.2.0.(而今的Nhibernate 3中自带的Log4Net 版本为2010年10月版本号1.2.10)

当ICMS项目同时引入Nvelocity 和 Nhibernate 3 后,由于项目引用只能引入一个版本的log4Net, 终于。。。。杯具发生了.

1、当项目中使用新版的Log4Net 时,Nhibernat OK 正常,可是Nvelocity 对新版的Log4Net 不兼容,因为新版的Log4Net 已经取消了很多命名空间,初始化方式也不同,甚至日志的分级也有些改变。所以调用Nvelocity 运行后直接异常。(NND,Nvelocity 竟然还没有取消写日志的函数。)

2、干脆替换成Nvelocity支持的老版本的Log4Net,又餐具了!当Nhibernate 检测到 log4Net 存在时,就试图加载,因为Log4Net 版本差异太大,所以Nheibernate 也异常了。。。 (⊙o⊙)!

   这简直是一山不能容二虎啊,考虑到未来可能对ICMS日志进行统一处理,还是决定花点时间改造Nvelocity ,以支持新版的Log4Net。这次虽然我碰上Nvelocity 和Nhibernate 之间的Log4Net 的兼容性问题,想想还有很多其他开源组件或项目也都是用基于Log4Net 的,估计遇到我这样问题的人应该不少吧!

改造中。。。

    重写了Nvelocity 中的Log4Net 的引用和调用部分开发,支持最新版本1.2.10 。

    为了方便其他人的使用,我打包重新封装了(2003 年的Nvelocity 好像是基于.net 1.x 编写的啊!!!)

 

    可能还有很多人对Nvelocity 比较陌生,我大致按照我的理解介绍一下Nvelocity ,同时包含一些开发中的经验知识点。

 

NVelocity 特点介绍:

    NVelocity 是基于Java 的模板引擎Velocity 的.net 版本,在JAVA的模板引擎界还是赫赫有名的。

    NVelocity 的模板语法基于SUN的Bean 语法结构,所以它是非常灵活的。

    业务可以完全和视图模板隔离,NVelocity 直接使用业务中的结果类型进行模板的组织构造,当然还可以直接使用业务中给出的自定义类型。

 

Nvelocity 使用方面的简单介绍:

    Nvelocity模板的定义

可以是任意文本文件,注意文件编码最好是UTF-8;官方给出的模板文件扩展名为 “.vm”,不过可以自己随意定义。

        这里我定义了一个模板,/VT/Hello1.vm

       内容如下:

${bill}
<br>

#set($count=8)
#foreach ($i in ${bill})
    ${owner}:您的 $i 号${type}在 ${date} 已支付<br>
#end

 

    初始化Nvelocity:

        //初始化Velocity 实例,可以采用单例模式节省内存,提高执行效率
        VelocityEngine vltEngine = new VelocityEngine();
        //初始化Velocity 的属性
        ExtendedProperties props = new ExtendedProperties();
        //模板文件路径属性是必须要声明的,这里设置根路径即可,具体模板载入可以使用相对路径,不设置载入模板会异常。
        props.SetProperty(RuntimeConstants_Fields.FILE_RESOURCE_LOADER_PATH, Context.Request.PhysicalApplicationPath);
        //日志路径属性设置
        props.SetProperty(RuntimeConstants_Fields.RUNTIME_LOG, Context.Request.PhysicalApplicationPath + props.GetString(RuntimeConstants_Fields.RUNTIME_LOG, "nvelocity.log"));
        vltEngine.Init(props);

   

   指定模板并输出业务结果数据:

        //加载指定模板,指定上面定义的根路径 的相对路径即可
        Template vltTemplate = vltEngine.GetTemplate("/VT/Hello1.vm"); 
        //结果上下文保持器,填充数据
        VelocityContext vltContext = new VelocityContext();
        vltContext.Put("owner", "Unmi");
        vltContext.Put("bill", new List<int>() { 1, 2, 3, 4 });
        vltContext.Put("type", "报销单");
        vltContext.Put("date", DateTime.Now.ToLongDateString());
 
        StringWriter sw = new StringWriter();
        //内容和模板合并
        vltTemplate.Merge(vltContext, sw);
        //lt1 是页面中的Label 控件。
        lt1.Text = sw.GetStringBuilder().ToString();

 

最终页面结果输出:

System.Collections.Generic.List`1[System.Int32]
Unmi:您的 1 号报销单在 2010年12月24日 已支付
Unmi:您的 2 号报销单在 2010年12月24日 已支付
Unmi:您的 3 号报销单在 2010年12月24日 已支付
Unmi:您的 4 号报销单在 2010年12月24日 已支付

 

其实Nvelocity 超简单,语法也非常简单,下方有模板语法文档的下载,模板语法不分Velocity 和Nvelocity 版本。

另外注意:NVelocity 大部分情况下是区分大小写的,请务必注意。

 

 

我改版后的源码和Assembly 点这里下载: Velocity项目源码下载

Nvelocity 模板语法文档点这里下载: Velocity 语法文档下载

posted @ 2010-12-24 14:52 李佩亮 阅读(345) 评论(0) 编辑

如果是服务器控件:<asp:Image   id="Image1"   ruant=server   ImageUrl="~/images/img1.jpg"/>

如果是Html控件:<img  src='<%= ResolveUrl("~/images/img1.jpg")%>'>

 

记性太差,总是忘记,特此记录。。。 

posted @ 2010-11-30 14:01 李佩亮 阅读(86) 评论(0) 编辑
摘要: 1、猜牙签 由一个人在手中握着N根牙签,这个N小于等于桌上的人数,也可以没有。然后请大家猜他手中的牙签数。每个人猜的数目必须是不一样的哦。谁说对了,谁就喝酒。要是没有人说对(比如他手上没有,而人人都猜了一个数字),拿着牙签的人就喝酒。2、叫七 也称缝七过,一桌人围着大圈,开始数数,通常从十以内的数开始喊,喊到七或者是七的倍数的数字或者是带七的数字,比如7、14、17、21等等,不能喊出来,只能用筷...阅读全文
posted @ 2009-09-24 18:25 李佩亮 阅读(206) 评论(0) 编辑
摘要: 今日在淘宝,偶然发现一个店主写的,是说他已过世的外公是经商的,曾经给他讲过一下十条商场的规则。我觉得相当好,条条清晰且据理,就特别摘出整理了一下,共勉。  废话不多说,就把这十条商场规则说出来送给大家,其这十个规则如下:”第1条:做生意从小单做起,不要因小单而不作,往后的日子还长。” 我的理解是:初入商场,一定要想办法作到人生的第一张订单(不管有多小的额度),因为有了这一张...阅读全文
posted @ 2009-09-16 10:36 李佩亮 阅读(40) 评论(0) 编辑
摘要: 该内容在帖子中部出现,隐藏的太深,所以摘出收藏,望原作者见谅。如果你只是简单地想用上Ubuntu,可以这样操作:1)如果你是直接将整个硬盘都用来装Ubuntu,机器上没有需要保存的数据,或者已经做好备份的情况下,可以直接在Ubuntu分区时选择“向导──整个硬盘”2)如果你是做双系统,并已经在Windows下倒出一块空白空间(在磁盘管理中直接删除某个...阅读全文
posted @ 2009-09-11 11:36 李佩亮 阅读(199) 评论(1) 编辑
摘要: 网页中常用到的效果...图片不存在时转向默认图片..网页中一般有两种方法..服务器重定义或用js重定向...在flex/flash中也可以用相应的方法.. 侦听ioError事件..然后指定默认的图片地址..<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/20...阅读全文
posted @ 2009-09-01 16:33 李佩亮 阅读(553) 评论(0) 编辑
摘要: 分享C#高端视频教程WPF讲座——Application类的使用本视频讲述了WPF中的全局应用程序类Application类的使用,介绍了如何在程序代码中创建Application类,如何使用Application类的属性和方法控制应用程序的生命周期,讲述了使用XAML程序代码控制Application类。观看网址:http://player.youku.com/playe...阅读全文
posted @ 2009-08-25 09:39 李佩亮 阅读(510) 评论(1) 编辑