Archive for 9 月, 2007

大蒜青鱼

星期六, 29 9 月, 2007

大蒜青鱼

材料:青鱼(草鱼)一段,大蒜2个,大葱一小根,泡椒、泡姜、花椒、白糖、料酒、豆粉、酱油(生抽)、醋、盐、油适量。

 

做法:

第一步:将青鱼洗净,用刀从背脊上将它分成2半,去掉背脊的大骨头,再在鱼身上划些小口。用少量盐涂在鱼身上,放点豆粉,再用料酒将鱼腌起来。

第二步:将大蒜去皮切成小团;泡椒,泡姜,生姜切好;大葱洗净,切成小段。

第三步:开火,放适量的油,把油烧热,将腌好的鱼放油锅的快速的过一下,放少许白糖,然后捞起锅。

第四步:将准备好的大蒜团,泡椒,泡姜,生姜,花椒放入油锅中炒,炒出香味来了,加入适量的酱油,料酒,少许醋,再炒1分钟左右,放入油酥过的鱼。

第五步:鱼放入锅内了,将锅里的汁浇在鱼身上,这样用中火烧10分钟左右,鱼肉熟了,放大葱,味精,起锅。这样一盘可口的大蒜青鱼就做好了!!!

 

 

识破超市的“温柔一刀”

星期二, 18 9 月, 2007

我们知道,超市的目标就是要让顾客尽可能的多花钱,只有钱从“上帝”口袋里转入超市的帐户上,超市才能有利润,才能盈利。那他们的策略是什么呢?

精明的超市总是把众多中高档商品,消费者并不急需的商品摆在显眼的地方,让顾客有更多发现、欣赏的机会。而把普通人家日常需要的食品和生活小用品放在超市里面,甚至让顾客历经艰辛,让他们在找到自己必须购买的物品之前,把超市琳琅满目的物品都“检阅”一遍。这样,超市众多的商品就得到了更多的销售机会。

对于超市如此策略,如果消费者您有足够的钱,安心受超市的一切,大把大把的消费,也无可厚非,毕竟“牡丹花下死,做鬼也风流”,会花钱才会挣钱。如果你钱不够多,甚至需要一分钱掰成两分钱用,那就单刀直入,直奔主题,买上自己的必需品,然后“非急需之物勿视,非急需之言勿听,非急需之物勿闻,非急需之物勿言”,发扬雷锋似的高尚觉悟,把花钱的机会“慷慨”地让给别人吧。

不过,这是个人隐私,不要轻易外传,要不超市会关门的,呵呵

从博弈论看“抵制日货”

星期二, 18 9 月, 2007

最近在看谢洪波写的《生活中的博弈论》,关于日本问题摘录两段如下,让我们一起来抵制日货

对于日本这样一个只崇拜强者的近邻,我们只能以实力来求得与对方的均衡,赢得对方的尊重。中日双方政治冷淡,这是事实,也是策略,但对于中国来说,政治寒冷,贸易额也屡创新高的“经热”对自己极为不利。日本从中国得到了巨额贸易顺差,实力更加强劲,这无异于资敌养虎;而与日本经济越密切,给欧美进入中国市场从中分食蛋糕的机会就少,反而加剧中国与欧美的贸易摩擦,使中国没法玩转“经济牌”。

日本与中国和韩国都存在岛屿与主权冲突,但日本在与中国钓鱼岛的冲突中采取强硬态度,而在与韩国的“独岛”冲突中采取软弱态度,方式截然不同,根源何在?日本人自己说过:“对韩国人再好,他们不会买日本的产品;对中国人再坏,他们还是愿意买日本产品。”这就是经济上的“投降”付出的政治和国土代价。因此,对日本只有减少经济上对它的“资助”,让它看到一个国家、一个民族的自强、自信,它才会低下高傲的头颅,主动修好双边关系,减少近邻“近攻”的威胁,进而削弱超级大国在东亚的支柱。

C# PropertyGrid自定义UserControl项不可编辑实现

星期一, 10 9 月, 2007

C#的PropertyGrid控件支持给属性项自定义Converter和Editor,当指定从TypeConverter派生的Converter时可以只能从下拉列表中选择,即属性值不可手工编辑,但不支持UserControl;而指定从UITypeEditor派生的Editor可以支持UserControl但又没办法限制用户直接编辑属性值。

有时我们需要实现既能从UserControl中设定值又不想让用户直接编辑,就象一些Collection一样,只显示"(Collection)"串不可编辑又可以通过下拉或弹出窗体让用户选择。经过多次实现,发现属性项同时指定自定义Converter和Editor可以解决这个问题,后面附一些实现代码。

定义属性项:
        private ItemContent _itemContent = new ItemContent();
        [EditorAttribute(typeof(ContentEditor), typeof(UITypeEditor)),
        TypeConverterAttribute(typeof(ConentConverter)),
        DescriptionAttribute("Select item content")]
        public ItemContent Content
        {
            get { return _itemContent; }
            set { _itemContent = value; }
        }

定义属性内容类:
    public class ItemContent
    {
        private string _type = "Type";
        private string _content = "Content";

        public string Type
        {
            get { return _type; }
        }

        public string Content
        {
            get { return _content; }
            set { _content = value; }
        }
    }

定义Converter:
    public class ConentConverter : ExpandableObjectConverter
    {
        public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
        {
            return true;
        }

        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
        {
            return true;
        }

        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
        {
            if (destinationType == typeof(ItemContent))
            {
                return true;
            }

            return base.CanConvertTo(context, destinationType);
        }

        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (destinationType == typeof(System.String) &&
                value is ItemContent)
            {
                return "(Collection)";
            }

            return base.ConvertTo(context, culture, value, destinationType);
        }
    }

定义Editor:
    public class ContentEditor : UITypeEditor
    {
        public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
        {
            return UITypeEditorEditStyle.DropDown;
        }

        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            SelectControl ctrl = new SelectControl();

            if (value is ItemContent)
            {
                ctrl.Selected = (value as ItemContent).Content;
            }
            service.DropDownControl(ctrl);

            (value as ItemContent).Content = ctrl.Selected;

            return value;
        }
    }

实现SelectControl的UserControl,提供Selected属性,做一些操作。

最后将包含有ItemContent属性的类对象赋给PropertyGrid的SelectedObject即可。