asp.net 创建web自定义控件.

April 14th, 2010 Arale 1 comment

最近因为工作需要写了一个asp.net的web的自定义控件. 总结一下心得.
写控件的过程中, 遇到了几个问题.
1. 资源的引用, 比如说控件中要使用js, 图片什么的, 应该如此去处理.
2. 在写控件的时候, 设置属性的时候, visual studio 总是崩溃, 找了几个小时才找到原因.
3. 就是如何响应外部的postback.

如何创建自定义控件.
如果是visual studio2005的话, 需要创建Visual C# – Windows – Web Control Library 项目.
如果是Visual Studio 2008的话, 是要创建 Visual C# – Web – ASP.NET Server Control 这一个项目.
项目建立好之后, 如果需要在项目中使用JavaScript的话, 则需要继承INamingContainer接口.
然后, 具体继承什么扩展, 是根据你的需要来的, 如果你需要增加Dropdownlist,则继承自Dropdownlist. Textbox, Label等等,同样道理.
我这里需要的是一个组合控件. 即是一个文本框与一个下拉列表的组合. 因此我选择继承自CompositeControl
然后override CreateChildControls的方法, 就可以在里面进行编程了. 不过需要注意的是, 一定要把 base.CreateChildControls(); 这一行给禁用掉, 否则你的控件什么都显示出不来.
如果需要将来在引用控件的时候, 在工具栏上面, 控件左侧显示一个小图票, 可以设置ToolboxBitmap选项.

[ToolboxBitmap(typeof(DropDownList))]
public partial class SearchableList : CompositeControl, INamingContainer
{
        protected override void CreateChildControls()
        {//这里书写控件
            Textbox txt = new Textbox();
            txt.Text = "Hello CompositeControl";
            txt.ID = "txt";
            txt.TextChanged += new EventHandler(txt_TextChanged); //后面会用到.
            txt.AutoPostback = this.TextboxPostBack;
            this.Controls.Add(txt);
           //base.CreateChildControls(); //一定要删除,否则控件不会显示内容.
        }
}

当然, 还需要的是定义控件的属性.如果需要控件显示在属性菜单上面. 则需要设置上面的标签.例子如下.

        [Bindable(true)]
        [Category("Appearance")] //哪一个分类里面, 可以自己定义
        [DefaultValue("")] //默认的值
        [Localizable(true)] //是否本地化.
        public string Text
        {
            get
            {
                String s = (String)ViewState["Text"];
                return ((s == null) ? String.Empty : s);
            }
 
            set
            {
                ViewState["Text"] = value;
            }
        }

这里有几点要注意的.
1. 如果属性的类型是一个自定义类型的话, 该类一定是 [Serializable]
2. 所有的属性的上面都需要定义标签. 最起码也要定义一个[Browsable(false)]或者是[Browsable(true)]
3. 并不是所有的属性都可以设置为[Browsable(true)], 像dropdownlist的selectindex,如果设置了, 在Design的时候, 选中控件, 会导致VS崩溃.
4. 属性一定要放在ViewState里面, 否则的话, 定义的状态不会永久保存, 在postback之后,会消失.

如何响应外部的POSTBACK.
要响应外问的POSTBACK, 首先要注册事件. 然后写根据前面已经注册的事件,来写处理程序.

public event EventHandler TextChanged;
protected virtual void textbox_TextChanged(object sender, EventArgs e)
 {
        if (TextChanged != null)
        {
             TextChanged(this, e);
         }
 }

这里需要注意2点.
1. Textbox的Autopostback需要设置为True, 当然, 可以通过属性来设置.
2. 在Web 页面定义事件的时候, 不要把自定义控件的事件注册过程写在if(!Page.IsPostback)里面, 这样会丢失事件. 正在研究更好解决的方法.

[Bindable(true), Category("MyCategory"), Localizable(true), Browsable(true)]
public bool TextboxPostBack
 {
       set { ViewState["istestpostback"] = value; }
       get
        {
            return ViewState["istestpostback"] == null ? false : (bool)ViewState["istestpostback"];
        }
 }

外部资源的引用.
其实外部资源的引用相对简单

[assembly: WebResource("NameSpaceLibrary.JavaScript.js.js", "text/javascript", PerformSubstitution = true)]
namespace NameSpaceLibrary
{
     //然后调用的时候,使用
     this.Page.ClientScript.RegisterClientScriptResource(this.GetType(), "NameSpaceLibrary.JavaScript.js.js");
}

这里很简单.NameSpaceLibrary命名空间, JavaScript是文件夹, js.js是文件名. 可以根据自己的情况更改.
这里需要注意的是, 在创建好了文件之后,如js文件, 右击js文件, 属性, 一定要选择Build Action: Embedded Resource , 编译进dll里面. 这样在调用的时候, 就不用额外的把js文件复制给别人了~

Read more...

C#中的MD5加密方法

April 12th, 2010 Arale No comments
using System.Security.Cryptography;
public static string MD5(string password)
{
     MD5 md5 = new MD5CryptoServiceProvider();
      byte[] output = md5.ComputeHash(Encoding.Default.GetBytes(password));
      string pass2md5 = BitConverter.ToString(output).Replace("-", "");
      return pass2md5;
}
Read more...

Bridge Pattern (桥模式) 第二篇

April 8th, 2010 Arale No comments

之前写过一篇关于桥模式的文章, 点击这里查看总感觉理解不太透彻, 今日又深入了解了一下:

对象是由对象的行为, 和对象的属性2部份组成. 桥模式可以理解为将对象的属性与行为分开, 然后再链接起来.
举个简单的例子, 星巴克的咖啡. 星巴克的咖啡有小杯的, 中杯的, 大杯的. 咖啡的种类有Mocha, Espresso,Cappuccino等.这里先暂时使用3种咖啡.

也就是说, 现在星巴克有
小杯Mocha, 小杯Espresso, 小杯Cappuccino,
中杯Mocha, 中杯Espresso, 大杯Cappuccino,
大杯Mocha, 大杯Espresso, 大杯Cappuccino 共9种组合.

所以, 我可以将杯子抽象出来, 将咖啡的种类抽象出来, 然后让这两个对象相互组合.

首先呢,需要定义一下咖啡的种类.

//这里定义了一个抽象的咖啡的类型的类, 不管什么类型的咖啡,总是要倒出来的. 所以都包含了一个倒咖啡的方法.
public abstract class CoffeeType
{
    public abstract void PourCoffee();
}
 
public class CoffeeMocha : CoffeeType
{
    public override void PourCoffee()
    {
        Console.WriteLine("这是Mocha咖啡");
    }
}
 
public class CoffeeEspresso : CoffeeType
{
    public override void PourCoffee()
    {
        Console.WriteLine("这是Espresso咖啡");
    }
}
 
public class CoffeeCappuccino : CoffeeType
{
    public override void PourCoffee()
    {
        Console.WriteLine("这是Cappuccino咖啡");
    }
}

咖啡的类型定义好了, 接下来需要定义的是杯子了.

public abstract class Coffee
{
    CoffeeType coffeeType;
    public CoffeeType CoffeeImplement
    {
        set { this.coffeeType = value; }
        get { return this.coffeeType; }
    }
    public abstract void PourCoffee();
}
//小杯
public class MediumCoffee : Coffee
{
    public override void PourCoffee()
    {
        CoffeeType coffeeType = this.CoffeeType;
        coffeeType.PourCoffee();
    }
}
 
//中杯
public class MediumCoffee : Coffee
{
    public override void PourCoffee()
    {
        CoffeeType coffeeImp = this.CoffeeType;
        coffeeType.PourCoffee();
    }
}
 
//大杯
public class BigCoffee : Coffee
{
    public override void PourCoffee()
    {
        CoffeeType coffeeImp = this.CoffeeType;
        coffeeType.PourCoffee();
    }
}

上面的咖啡杯, 和咖啡的种类都已经使用好了. 接下来就可以使用了.

CoffeeType coffeeImp = new CoffeeEspresso();
Coffee coffee = new MediumCoffee();
coffee.CoffeeImplement = coffeeImp;
coffee.PourCoffee();
//一杯中杯的Espresso可以喝了~
Read more...

[转]清朝的房价:一年的收入够买一套房

April 6th, 2010 Arale No comments

转自: 王思想家
清朝的房价:一年的收入够买一套房

当全国人民被高房价折磨得几乎发疯的时候。我就想找个什么办法安慰大家一下。于是就想到了万恶的旧社会。我想,万恶的旧社会一定是房价5年涨3倍,民不聊生。通过对比,可以让大家感受新旧社会两重天,不要觉得一套房子吞噬你100年的收入是件多么悲惨的事情,要在万恶的旧社会,或许1000年也买不起一套房呢。

今天就看一下万恶的清朝。

清朝末年人口大约4至5亿,是现在的1/3。那么,清朝房价是现在的多少呢?

要进行比较,必须有前提——

前提1:不能换算为白银价格来比较,因为那样会显得今天房价太高。现代社会都放弃了金本位,白银也基本是饰品了。

前提2:可以换算成粮食价格来比。跟恩格尔系数一个道理。

前提3:最靠谱的比较,是用普通人的年收入来比,看到底多少年的收入可以买一套房。

1,七个例子:

由于清朝人不研究房价,所以查不到系统的材料,只能找几个例子,不知道是否能全面反映出当时的情况:

例一:乾隆十六年(1751年),天津丁予范在刘家胡同二道街买了一块地,盖了一处四合院,这四合院占地近一亩,盖了10间房,连买地带盖房,花了180两银子。

例二:道光十八年(1838 年),天津任秀坡花200两银子,把丁予范在刘家胡同二道街开发的这套四合院接了下来,加盖一间客房、一间门楼、三间书房、三间板房,总共投资了350两,最后卖了600两。

例三:乾隆12年,北京内城西北角太平湖东(新街口),七间半85两,相当于现在12750元。

例四:乾隆13年,北京内城新帘子胡同(长安街南,新华门与和平门之间),四间瓦房70两,相当于现在10500元。

例五:康熙五十七年(1718),北京大兴县北城日南坊(坊名“日南”,相当于某某街道)有一所楼房出售,该房临街,下面两间开店,上面两间住人,楼后加盖厢房一间,合计5间房,卖了210两(参见张传玺《中国历代契约汇编考释》)。

例六: 乾隆五十八年(1793),安徽休宁县二十一都二图(“都”相当于乡镇,“图”相当于行政村)也有一所楼房出售,不临街,但宅基较大,房子共4间,卖了270两(同上)。

例七:咸丰七年(1857),浙江山阴县三十六都三图有人卖房,共计平房3间,卖了60两(同上)。

(备注:下面按每间大约15平方比较)

2,当时的米价

为了能与现代可比,按大家常用的粮价来作衡量。

在清朝米价的波动比较大,按最太平盛世的清乾隆年间算,粮价大约15文钱/升。一升米据说大于1斤,不到1.25斤,按照最多1.25斤来算,现今超市的米价1.8元/斤,则一升米价格为2.25元/升。1两银合1000文,1000/15*2.25=150元,清乾隆的1两银子相当于现在150元。

3,房价与米价的比较

1两=1000文,则新街口的房子(七间半)换算=85000文,新帘子胡同的房子(四间)=70000文,分别相当于5667升米和4667升米。

如果每间房子按照25平米计算,新街口房子面积187.5平米,新帘子胡同的房子面积100平米,则新街口的房价为30.23升米/平方米,新帘子胡同的房价为46.67升米/平方米。

一升米据说大于1斤,不到1.25斤,姑且按照最多1.25斤来算。超市的米价1.5元/斤,则一升米价格为1.88元/升。目前,新街口的二手房单价在3万元/平方米。

用升米来衡量,今天的房价就是15958升米/平方米。

今天的房价粮价比,是清代的528倍!也就是说,今天要想买同样的房子,得用比当年多527倍的粮食去换。呜呼哀哉!

4,房价与收入的比较

《大清会典》卷二一“文职官之俸”条:“一品岁支银180两,二品150两,三品130两,四品105两,五品80两,六品60两,七品45两,八品40两,正九品33两有奇,从九品、未入流31两有奇”。此为基本工资,称“正俸”;而“京员(中央机关和京城地方官员)例支双俸”,即在基本工资之外加发同样数目的津贴,称“恩俸”;此外“每正俸银一两兼支米一斛,大学士、六部尚书侍郎加倍支给”,称“俸米”;三者相加,就是清朝公务员的工资了。

那么一个七品知县工资45两加45斛米,年收入约合56两银,相当56*150=8400元。(1斛相当100升)

清五品郎中何刚德《春明梦录》云:“余初到京,皆雇车而坐,数年后始以24金买一骡,雇一仆月需六金;后因公事较忙,添买一跟骡,月亦只费十金而已。”一只骡子24两*150=3600元,一个仆人月工资6两*150=900元,比现今的标准略低。

从以上可以看出,清代的官吏收入是很低的,一个七品知县的工资抵不上一个仆人,所以清代的官员贪污是必然的,所谓3年清知府,十万雪花银,实在与工资不成比例,所以实际收入高的吓人,相当于年收入500万元。

那么无论如何,清代的人无论从官吏还是到仆人,在北京市区范围内买得起一套四间瓦房(草民买差一点的),相当现在100平米的房子,需要多少银子呢?

答案是:普通人一年的收入就够买一套房子了。

(现在说的一人多少年收入买一套房,也是取普通人。不要拿一个穷困农民的收入来算,那样的话,他1000年的收入也买不起北京新街口一套房)

并且,清朝人买的,基本上能还是连排别墅型,还没有公摊面积。也没有说房子是我的,土地却是属于清政府的。

如果大清帝国多维持100年,那么,房价……

Read more...

JQuery sortable 的保存

March 29th, 2010 Arale No comments

最近需要做一种类似Google UI的那种用户自定义的拖拽效果. 经google, Jquery的 sortable可以实现. 现总结如下.
首先是使用了Jquery中的几个库文件.

<script language="javascript" src="js/jquery-1.4.2.js"></script>
<script language="javascript" src="js/jquery.ui.core.js"></script>
<script language="javascript" src="js/jquery.ui.widget.js"></script>
<script language="javascript" src="js/jquery.ui.mouse.js"></script>
<script language="javascript" src="js/jquery.ui.sortable.js"></script>

接下来是定义HTML标记的样式~

<style type="text/css">
	#sortable1, #sortable2,#sortable3 { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
	#sortable1 li, #sortable2 li,#sortable3 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
</style>

好了, 接下来的就是默认的HTML页面了, 在Jquery的Sortable示例中, 给出了2列的布局, 我这里用的3列.

<div class="demo">
 
<ul id="sortable1" class="connectedSortable">
	<li id="1a" class="ui-state-default">Item 1</li>
	<li id="1b" class="ui-state-default">Item 2</li>
	<li id="1c" class="ui-state-default">Item 3</li>
	<li id="1d" class="ui-state-default">Item 4</li>
	<li id= "1e" class="ui-state-default">Item 5</li>
</ul>
 
<ul id="sortable2" class="connectedSortable">
	<li id="2a" class="ui-state-default">Item 1</li>
	<li id="2b" class="ui-state-default">Item 2</li>
	<li id="2c" class="ui-state-default">Item 3</li>
	<li id="2d" class="ui-state-default">Item 4</li>
	<li id= "2e" class="ui-state-default">Item 5</li>
</ul>
 
 <ul id="sortable3" class="connectedSortable">
	<li id="3a" class="ui-state-default">Item 1</li>
	<li id="3b" class="ui-state-default">Item 2</li>
	<li id="3c" class="ui-state-default">Item 3</li>
	<li id="3d" class="ui-state-default">Item 4</li>
	<li id= "3e" class="ui-state-default">Item 5</li>
</ul>
</div>

在起始的HTML中需要说明的一点是, jquery中, 允许你对父容器中子容器进行sort, 子容器必需要有ID, 否则的话, 在后面的.sort方法中, 你会取不到值. 从而影响到后面的操作.

这里是关键的部份, 声明哪些列是允许拖拽的, 并且定义可以拖拽元素的父容器.

$(function() {
		$("#sortable1, #sortable2,#sortable3,#div1").sortable({
			connectWith: '.connectedSortable',
			stop:saveLayout  //调用savelayot方法. 将内容保存
		}).disableSelection();
	});
function saveLayout() {
    //该方法, 可以取出该容器内的元素的顺序. 元素取出来了, 至于怎么保存就是a piece of cake了~
      var col1 = $("#sortable1").sortable("toArray");
      alert(col1)
       var col2 = $("#sortable2").sortable("toArray");
       alert(col2)
       var col3 = $("#sortable3").sortable("toArray");
	alert(col3)
 }
Read more...

医疗保险,公积金、养老、生育、工伤、失业保险

March 25th, 2010 Arale No comments

请转载,省的以后到处找了,方便大家,更方便自己。欢迎大家转载啊!
具体的社保构成比例为:
养老保险:单位每个月为你缴纳21%,你自己缴纳8%;
医疗保险:单位每个月为你缴纳9%,你自己缴纳2%外加10块钱的大病统筹(大病统筹主要管住院这块);
失业保险:单位每个月为你缴纳2%,你自己缴纳1%;
工伤保险:单位每个月为你缴纳0.5%,你自己一分钱也不要缴;
生育保险:单位每个月为你缴纳0.8%,你自己一分钱也不要缴;
住房公积金:单位每个月为你缴纳8%,你自己缴纳8%
以上,这么算下来,单位每个月为你缴纳的社保比例应该是21%+9%+2%+0.5%+0.8%+8%=41.3%
你自己每个月为你缴纳的社保比例应该是8%+2%+10块+1%+8%=19%+10块
暂时去掉你交的10块钱不谈,单位缴纳的比例和你缴纳的比例应该为413:190,这就是说如果
你每个月为自己的社保缴纳了190块钱,那么单位会往你的社保帐户上打进去413块钱,每个
月你的社保帐户上增加的钱就应该是413+190=603块钱
所以说在你看不见的情况下,单位交的社保费用其实是你的2倍还多,所以你每个月交社保费
的时候千万别心疼呀~你要知道单位比你交的多得多了呢,心疼的其实是单位。
话说回到那三险一金和五险一金,这里大家应该已经看出来了,其实江湖上所说的三险
一金完全就等于五险一金,只是三险一金是从你个人交的保险(养老+医疗+失业+公积金)来
说的,五险一金是从你单位交的保险(养老+医疗+失业+工伤+生育+公积金)来说的。把三险一
金说成五险一金其实只是说起来好听而已。
除了单位能为你交社保,其实没工作但有收入的人员或者有单位但单位不交社保的人员也可
以自己交社保,不过个人只能缴纳养老保险+医疗保险,工伤呀生育呀失业呀公积金呀,你个人都交不起来的。
下面介绍下什么是社会保险缴纳基数
刚才大家已经知道了每个月单位缴纳的社保比例和你缴纳的比例差不多是413:190了,那
么现在又出来一个问题:自己每个月交的社保费和这个比例有什么关系呢,社保费到底是怎
么确定的呢?
大家可能没注意过,各个省市每年都会在7月初发布一个“社会保险最低缴纳基数”,这个基
数是根据上一年度职工的平均工资+福利+各种补贴等杂七杂八的费用经过统计和计算以后
确定的,南京今年7月公布的最低基数是1189元,这是个什么意思呢,意思是说南京只要是正
规为职工缴纳社保的单位,每个月为每个职工交的钱最少为1189×41.3%=491元,而职工每个
月最少要交1189×19%+10=236元,这样你和单位每个月应该交的社保费就出来了。
但是现在又出来了新问题,南京市职工工资差别很大呀,有人一个月拿1000,有人一个月能拿
10000,难道叫拿1000和拿10000的都交同样的社保费?
请注意,这1189是最低基数,在1189之上还有最高基数, 南京今年的最高基数好象是8000多
,具体我也忘记了,反正如果你的工资每个月在1189元以下,单位也必须按照1189元为你交1
189×41.3%= 491元,而你自己每个月最少也要交1189×19%+10=236元,这个就是1189作为社
保最低缴费基数的意义之所在了:哪怕你一个月拿1000或者800块,你每个月最低也必须要按
照这1189交钱!
但是如果你工资比1189要高,比如你一个月拿3000块,那单位去劳动局给你交保险的时候(你
单位和你缴纳的社保费用都是劳动局扣的喔~)就应该对劳动局说:”呀呀,我们这边有位同
志一个月拿3000,请按照3000块钱的标准来扣社保费”.那么劳动局就会以3000块为缴纳基
数来扣你单位和你的钱然后打到你的社保帐户上,你单位这时候每个月就应该为你交3000×
41.3%= 1239元,而你个人每个月就该交3000×19%+10=580元
就是说如果你的工资在1189元以下,那么每个月你就按照1189交;如果你的工资在1189元以
上,那么每个月你就按照你的实际工资交,除非你的工资比最高基数还要高,如果你一个月拿
10000而最高基数是8000的话,你和你单位就都按照8000交
在这里要揭露一些公司的无耻做法, 这些公司每个月可能给你好几千的工资,但是他们去劳
动局申报你的基数的时候并不会按照你的实际工资去报,比如你如果每个月拿3000块,他们
去劳动局可能说你只拿1189块,然后劳动局每个月只扣你1189×19%+10=236元,你恐怕还高
兴的很,因为你觉得扣你的钱少,你实际拿到手的钱多
错! 如果这样你的公司就太无耻了!因为公司缴纳的钱是你的2倍多,所以你交的越少他们也
交的越少!如果按照你的实际工资3000来算,他们每个月该给你交 3000×41.3%=1239元的社
保费,而按照1189来算的话,他们每个月只为你交1189×41.3%=491元!所以实际上你吃了大
亏!正规的公司只会按照你的实际工资去劳动局申报然后扣钱!只有那些下作的公司才会不
管你工资多高都按照最低标准给你交!!千万别以为每个月你的社保费扣的越少越好!!可能
你已经被公司无耻地欺负了而你还完全不知情!!!
要确定单位为你到底缴纳的基数是多少很简单:如果你每个月扣300块的社保, 那你的基数
差不多就是300÷19%≈1578元,你看看你工资是不是这个数,如果你工资明显比1578高,比如
每个月你其实拿3000或者4000,那肯定你已经被公司给欺负了,被欺负以后你可以去当地的
劳动监察大队告你单位,一般一告一个准,不过最好在离职的时候把证据(比如工资条等)找
好了再告,否则你告了以后在公司一般混不下去了- -+
要再次说明的是,各个地方的社保构成比例不一样,如果你不在南京那你的缴费比例很可能
不是19%,但是肯定不会差太多,比如你的基数可能是20%或22%,但绝对不会是30%或40%!所以
虽然19%是南京的比例,但是外地的同学也可以靠这个大概算出自己的基数
下面介绍一下这些社保费具体是什么情况以及该怎么用
前面已经说了, 社会保险=养老保险+医疗保险+工伤保险+生育保险+失业保险+住房公积金
先说说养老保险好了
这个保险一般都要交满15年以后到退休的时候才能终生享受养老金,所以想拿养老金的同学
请务必在自己退休之前的15年以前就开始交,这个在南京以外差不多也是这样规定的
如果你到退休年龄交养老保险不满15年,那等到你退休的时候国家会把你个人帐户上存的8
%的养老金全部退给你
那你会问,单位给你交的21%到哪里去了?
这个你就别指望国家会交给你了,你退休把你个人的钱拿走之后,国家就把单位为你交的21
%的钱全部划到国家的养老统筹基金里了,从此这钱就和你再也没有关系了
你也许会说:我靠!那是我的钱为什么不给我
因为国家就是这么规定的
退钱的时候只退给个人他自己扣的个人交的钱,单位为他交的钱全部都为国家做贡献了- –
下面我们来看一下你退休时候的养老金是怎么算出来的
养老金的算法很复杂,因为国家每年都会把缴费基数变一次,举例来说好了:如果你现在30岁
,你现在的缴费基数是3000元,而退休年龄如果是55岁的话,那你必须在你40岁以前就开始交
养老保险了,而如果你现在从30岁就开始交,交到55岁是25年,那首先肯定你能享受养老金了
,其次,如果25年后你交的 3000块的缴费基数已经变成了6000块(我说的是如果),那你55岁
的时候首先每个月可以拿到6000×20%=1200块的基本养老金,这是国家给你的,此外你的个
人帐户上的钱在25年里也积攒了不少,把缴费基数平均一下好了,(3000+6000)÷2=4500,那
么你这25年里个人帐户上应该有4500×8%(你缴纳的养老保险的个人比例)×25年×12个月
=108000元钱,那么除了之前的1200块以外你每个月还能拿到108000÷ 120=900块,这样你5
5岁开始每个月起码可以拿到1200+900=2100元的养老金,当然每年国家的基数还在往上涨,
这样每年除了你自己的 900块,你退休以后每个月都会拿到比1200块更多的钱,那你的养老
金当然也会越来越多的
所以说交养老保险交得越多越好,你交得越多你退休以后享受的也越多,而且,国家每年调整
基数以后你拿的钱也会越来越多,现在交1000十年之后拿1500都是有可能的
这里要介绍一个变态的政策,就是不管你在哪里交社保费,等你退休的时候你都只能回你的
户口所在地享受当地的退休待遇,这么来看,在基数高的地方交社保但是退休回基数低的地
方享受养老金的人那就亏大了, 为什么这么说呢?我来举个例子,如果你年轻的时候在南京
工作,交了20年的社保然后退休了,但是如果你的户口在黑龙江,那你必须回黑龙江享受养老
金.如果你在南京交了20年的平均基数是3000(我说的是如果),而当你退休的时候黑龙江的
缴费基数才1000(我说的是如果),那么你退休的时候只能享受 1000的待遇!这是很亏的!一
句话,如果你在富地方交社保但是退休的时候回穷地方享受社保,那你一辈子交的很多但是
享受的很少!交3000 块可能只能享受1000块!这是很恐怖的事情,但是没办法,国家就是这个
政策,所以请所有目前户口在西部等基数低的地方但是在北京或上海等基数高的地方工作交
社保的同学注意了,你要么就在西部交社保,要么就在退休之前把户口迁到北京或上海,否则
你就是在做人生一笔巨亏本的买卖
那也许你会说,如果我的户口在南京,那我在黑龙江交20年不就好了嘛,在基数低的地方交钱
,退休的时候回基数高的地方享受高福利.错!你以为南京市劳动局会随随便便就让你享受么
?!一般这种情况下南京会找个理由直接拒绝你转入!到时候你就聪明反被聪明误了:在黑龙
江享受不了,在南京也享受不了!
不过有些地方对这样的情况有了一些缓和的规定,比如南京允许你在退休前5年从基数低的
地方转回南京,再在南京继续交5年南京的高基数,之后它才允许你回南京享受养老金.这个
政策各个地方估计都不一样,今后打算转的同学最好现在就去你当地的劳动局把这个问题搞
清楚,免得退休时候发生你意想不到的意外!
下面说说医疗保险
这个险国家的政策还算不错,重要的是住院报销的不少
之前说了单位每月给你交的医疗保险是9%,你个人每月交的医疗保险大概是2%外加10块钱的
大病统筹,这个大病统筹不管别的只管你住院,而那11%里国家每个月会往你的医保帐户上打
属于你自己的2%,如果你每个月按照1189元的最低基数交社保,那么1189×2%=23.78元就是
国家每个月打给你个人的钱,这个钱你可以积累起来直接刷卡去买药或者看门诊,剩下的9%
国家就拿去算到医疗统筹基金里了
按照南京的规定,如果你从2007年1月开始缴纳医疗保险,那么从2007年2月起你就可以刷卡
买药或者看门诊了,从2007年7月起你住院的费用就可以报销了,报的还蛮复杂的,举例说好
了:
如果你2007年8月1日住院了,住的是南京市最好的三级医院,住院期间用的都是医保范围内
的药,手术+住院等费用一共花了5000元,那么报销的时候医保中心首先扣除1000块,这是起
步价,剩下的4000块医保中心可以报销4000×86%=3440元,你个人只要付4000×14%=560元就
可以了,加上之前的1000元起步价,你花了5000块自己只要付1560元就可以了,而且这1560元
还可以从你的医保卡里扣(如果你平时不怎么用那卡), 所以实际上你住院花不了多少钱
医疗保险对于我们年轻人来说比养老保险重要多了,毕竟看病住院实在太他妈贵了,这也是
参加社会保险最重要的意义之所在
不过南京市规定医疗保险必须交满25年才能在退休以后终生享受,所以如果你55岁退休,那
最迟30岁起就必须开始交医疗保险了
下面说说工伤保险
这个险实践中一般用得少,我接触的也不多,需要提醒大家的是你如果在工作的时候或者上
下班的时候出了什么事,这个险就用得上了
但是在实践中很多人出了事不注意保存证据,导致自己无法享受工伤保险,这是很可惜的
如果你下班的时候被车撞了,那你应该赶快报警,让警察来调查记录并拍照采集证据,警察处
理完以后会给你开个事故什么鉴定书之类的东西,你就可以拿这个去单位要求报工伤了
如果你出了事就随便让人跑了而且还不找证人还不报警什么的,那没证据的情况下一般不会
被采纳为工伤的
工伤还有个时效问题,如果你2007年7月1日出了工伤,那你必须马上报告单位,把警察出具的
证据和事故鉴定书以及你出工伤以后去看病或住院的病历交给单位,叫单位拿着这些材料去
做工伤鉴定,你的单位必须在2007年8月1日之前把你的有效材料送到工伤鉴定中心,如果距
离你出工伤的日子超过了一个月, 那工伤可能就鉴定不起来了.如果你单位不去给你鉴定,
那你自己可以拿着材料去鉴定中心鉴定,最好也不要超过一个月,否则会很麻烦很麻烦
下面说说生育保险
这个也举例说明好了,如果你是位女生,每个月工资为1000元,2007年1月1日开始交生育
保险,缴费基数为1189,而你2007年3月怀孕,2007年12月底生了孩子,2008年1月出院,那么你
出院以后要赶快把结婚证(未婚生子的报销不了)+独生子女证(一般来说生2胎的报销不了)
+病历+建大小卡检查和住院和手术费用的所有发票+住院清单+出院小结这些所有的材料交
到公司,如果你怀孕时候检查花了500块,生孩子的时候住院+手术花了2000块,一般来说,公
司在医保规定范围内基本上可以给你全部报销,报销以后给你的钱包括:500块检查费+2000
块住院手术费+1189元/月×4个月=7256块, 1189元/月×4个月这是医保中心特别为报销的
女生补贴的,只有女生报销才能拿的到
国家规定女孩子报销生育保险的时候必须给4个月的平均工资,所以你生孩子报销的话不仅
不要花钱而且还可以赚4个月的工资!如果你基数交的比工资高,比如拿1000块交的是1189,
那么你还赚了呢
生育保险起码要交一年才能享受,切记切记
此外还有个问题,男生也交生育保险呀~那么男生可不可以享受生育保险呢?
如果你是男生,你老婆没工作或者工作单位没交保险,而她生孩子的时候你交生育保险也已
经超过了一年,那么你也可以报销生育保险哦,但是以之前的例子为例,你只能报销500块检
查费+2000块住院手术费的一半=1250元, 补贴的1189元/月×4个月的工资你就享受不到了
!这是只有女生报销的时候才可以享受的哦~
同样的花费,女生报销就能拿7256块,男生报销只能拿1250块,这大概也是中国少有的”歧视
男性”的政策的说- -+
所以说,女生要生孩子之前最好计划一下,提前一年开始找个单位交生育保险,可以赚呢!
而男生如果要娶老婆,最好娶一个生孩子的时候已经交了一年生育保险而且缴的基数还比她
本身工资高的女生哦!不过如果她实在没保险也没关系,你还可以给她报销生育保险呢,不过
你没补贴的4个月工资拿,而且该报的费用你只能拿回来一半。
失业保险
失业保险,这个也是要你交满一年才能享受,一般交1年拿2个月,交2年拿4个月,但一辈子最
多拿24个月.举例说明好了:
如果你2007年1月1日开始交保险,2008年1月你被公司辞退了,那你可以让公司给你拿2个月
的失业保险,如果这一年你都是以1189的基数交的保险,那你2个月起码可以拿到800多块钱
或者你2007年1月1日开始交保险,2008年1月你和公司合同到期了,你们都不想续签合同的话
那你也可以在离开公司以前让公司给你去拿2个月的失业保险,也是800多块
就是说合同到期或者公司辞退,你都可以按照一年拿2个月的失业金的比例去要求公司给你
办,如果公司不给你办你可以去告它,一告一个准。
但是如果你是合同没到期自己辞职走,那就算你交满了1年也享受不到失业保险
只要是自己辞职的,别说交1年了,就是交10年的失业保险到辞职的时候你也拿不到一分钱。 住房公积金是个好东西啊
这么说吧,如果你每个月为公积金交200块,那么公司每个月也往你帐户上打200块,你买房子
的时候这就是400块了,如果你一辈子交了5万,那你帐户上就是10万了,这种好事大家一定不
要拒绝啊。
公积金可以用来买房子,还贷款,装修什么的,如果你自己家可以找到地皮盖房子,那盖房子
的钱也可以从公积金里付
如果你一直不用这钱,最后退休的时候貌似可以把钱全部取出来吧
[进阶篇]各项补充说明 [5KB]
来说说和南京不同的地方吧,魔都是不允许不缴医疗保险的,也就是说社保中心这一块包
括养老医疗失业工伤生育一起问企业收的,倒是公积金可缴可不缴,因为这是隶属公积金
中心的管辖范畴
具体的社保构成比例为:
养老保险:单位每个月为你缴纳22%,你自己缴纳8%;
医疗保险:单位每个月为你缴纳12%,你自己缴纳2%;
失业保险:单位每个月为你缴纳2%,你自己缴纳1%;
工伤保险:单位每个月为你缴纳0.5%,你自己一分钱也不要缴;
生育保险:单位每个月为你缴纳0.5%,你自己一分钱也不要缴;
住房公积金:单位每个月为你缴纳7%,你自己缴纳7%
补充住房公积金:单位每个月为你缴纳8%,你自己缴纳8%(这个只有一般效益很好的国企
才会有的,且比例又公司自己定,一般公司缴个公积金就算很道义了)
另外要说的是社保和个调税的关系
在缴纳个调税的时候,是把个人扣金那部分扣除后再算应纳税基数的,但是有一点要注意
,公积金和补充公积金超过12%的部分(个人和企业缴纳部分)也需要算在应纳税基数中
比如上面说的公积金7%、补充公积金8%,加起来就是15%,那么个人扣金那3%的部分就要算
在应纳税额中,同时,企业的那3%,虽然不是从个人工资里扣除的,但还是要算在应纳税
基数中,也就是说,个人要为这笔费用的个调税埋单。
医疗保险使用这一块,各地对于划入个人账户的方式不同
爱说的是南京那种按月划入的方式,还有很多地方是按年划入
具体来说是这样的,医保年度是每年的4月1日至次年的3月31日,同时社保缴费基数变更也
是在4月上中旬确定。
医保局会在4月1日按照每人的社保基数预提1年的个人医保(也就是那2%)进入个人医保卡
账户,但这时候就有问题出现了,4月1日的时候,当年的社保基数尚未确立,医保局只能
按照上一年的基数来预计当年的个人医保金,那么这个差额该怎么办呢?那就是在第二年
的4月1日来补足少算的或扣除多给的
可能这么大段字看起来会觉得很麻烦,那我们举例来说
某人2004年月平均收入5000元,2005年月平均收入4000元,2006年收入6000元
医保局在2006年4月1日给个人账户打入金额的时候,社保中心还没有核准2006年的缴费基
数(也就是2005年的月平均收入),所以医保局还是按照2005年的缴费基数(也就是2004
年的月平均收入)来计算全年的个人账户数额,
也就是5000*2%*12=1200,
但实际上此人这一年的个人账户数额应该是
4000*2%*12=960,
那么这多给的240元会在2007年4月1日的时候扣除。同时2007年4月1日打入帐户的新一年个
人金依然是960元(其实应该是6000*2%*12=1440元),少给的480元,会在2008年4月1日补
回来。
所以因为大部分人每年的缴费基数都不相同,所以几乎每个人每年3月的帐户总数和4月时
看到的历年帐户的金额是不同的,这就是医保局在做每年的费用核算时产生的。
工伤还有个时效问题,如果你2007年7月1日出了工伤,那你必须马上报告单位,把警察出具的
证据和事故鉴定书以及你出工伤以后去看病或住院的病历交给单位,叫单位拿着这些材料去
做工伤鉴定,你的单位必须在2007年8月1日之前把你的有效材料送到工伤鉴定中心,如果距
离你出工伤的日子超过了一个月,那工伤可能就鉴定不起来了.如果你单位不去给你鉴定,那
你自己可以拿着材料去鉴定中心鉴定,最好也不要超过一个月,否则会很麻烦很麻烦
这点有个补充,申报工伤有两种途径,一个是单位申报,就和上面爱说的一样,30天内有
效,还有一种是个人申报,一年内有效,但由于伤势或其他原因,拖得越久证据就越不足
,个人申报的话也会因为不懂得流程耽误很多时间和精力。
生育保险方面,流产的、难产的、多胞胎的、早产的,可以具体看看下面这个链接,虽然
是上海的政策,但各地都有相似性。
可能上海和南京政策上有不同,公司绝对不会管这方面的报销,都是由医保直接和孕妇挂

在生育检查生产住院期间,医保统筹范围之内的都是医保统筹支付,当然自费的项目(比
如高级病房、自费药etc)还是要自己承担。
生好孩子后,自己去医保局申请生育补助,医保局给3000块钱
社保那块,再给3个月的缴费基数的收入
晚育的加半个月,多胞胎的,多一个加半个月
如果上一年月平均工资性收入是大于社保缴费基数上限的,那么社保只支付缴费基数那部
分,剩下的由公司支付
例如某人上一年月平均工资性收入为10000,社保基数封顶为7392。
那么社保给的每月收入为7392,剩下的10000-7392=2608就是由单位支付。
(虽然我觉得这种情况,在云中的各位看官不太容易碰到=。=。。)
其实关键的地方有两点:
1、生育前缴费满1年
2、社保缴费基数正常申报
所以说同学们,特别是女同学们,不要觉得公司给你申报的基数高低无所谓,甚至为了基
数低些自己工资到手高而庆幸,到这时候就看出问题来了吧!
这也就是为啥有那么多女职工宁可留在工资低但是社保足额申报的地方生完孩子再跳槽的
原因,一来小地方不喜欢未婚未遇的女性员工,二来生育保险也是很大一笔收入补充。
比如说,一个人正常工资3000,但是社保基数申报时算上她的年终奖等等其他奖金收入,
那么月平均可能达到5000,这时候生孩子的那几个月拿的就是一月5000的收入。
如果你一直不用这钱,最后退休的时候貌似可以把钱全部取出来吧
不是貌似,是绝对可以!
而且公积金贷款比商业贷款利息低的多,这也是一大好处。

Read more...

可笑的标准

March 19th, 2010 Arale No comments

最近公司执行的标准真是可笑到家.
为了保护知识产权, 公司购买了若干套Visual Studio和Photoshop. 且规定, 使用者与所购买的序列号有一张明确的对照表. 今天收到的客户的要求是要对图片进行修改, 我没有Photoshop, 按照标准, 我应该是先和manager申请, 待manager批准, 发送给IT申请, 待IT接受申请, 然后给我安装上. 这一套流程下来估计要到明天了. 然后我再修改完毕, 发还给客户, 已经是后天的事情了.
我说: 要不然, 我先凑合装个, 你们就当我用那个正版的序列号了还不行?
答曰: 不行, 要按照标准行事.
我说: 那好, 那咱就按照流程来走, 反正我又不是老板, 有损失也没我什么事. 我白赚了一天上网的时间,我也没损失.
结果是, 原来一天不到就能搞掂的事情, 用了2天~ 当然, 由于没有在使用Photoshop的列表上面, 使用完之后, 还要卸载. 真是闲的有够蛋疼.

为了保护公司网络安全, 公司明令禁止使用各种IM, 包括Gtalk, Skype, MSN, QQ, 淘宝旺旺 等等. 且美其名曰防止病毒入侵, 然后又说为了进行内部交流, 公司内部建立了自己的企业内部聊天工具.Spark, 允许外部读取MSN用户数据. 我这就不明白了, 既然是为了防止病毒, 你允许导入部的MSN数据, 允许和外部的用户进行数据交换, 那么, 用什么客户端又有什么不一样?

关于隐私这事更可恶, 对于公司内部的邮件, 进行备份, 这倒说的过去, 毕竟公司的邮件是与工作相关的, 可是在强制使用了Spark之后, 把员工的聊天记录保存, 而且在不告知这种行为的前提下, 这样做, 有意思?

这些事情, 如果发生在国有企业, 私人企业, 其实倒还是可以说的过去. 但是发生在那些对外打着外企的名号,号称轻松的工作环境, 美式的管理;对内却干着国营式管理方式的伪外企, 是不是就有一些说不过去了? 这种即想当婊子, 又要立贞洁牌坊的好事, 怎么就偏偏让我给撞上了?

到这里, 看到这些蛋疼的规定, 我倒是开始怀疑, 我当初的选择是不是有错误了… …

Read more...

小记

March 17th, 2010 Arale No comments

已经回家2个周了, 一直在瞎忙活.
上个周, 忙活了一个周的慈善演出. 在后场帮忙摆摆东西, 换换背景什么的. 累到不行. 应该是刚刚下飞机没有太好的休息导致的.
周末的演出可谓算是成功了, 3场演出, 场场爆满~ 只是结束之后, 难免有一点点的落寞~

Read more...

几句拍马屁的英语

February 20th, 2010 Arale No comments

Personal Qualities 个人才能

Mature,dynamic and honest.思想成熟、精明能干、为人诚实。

Excellent ability of systematical management.有极强的系统管理能力。

Ability to work independent1y,mature and resourceful.能够独立工作、思想成熟、应变能力强。

A person with ability plus flexibility should apply.需要有能力及适应力强的人。

A stable personality and high sense of responsibility are desirable.个性稳重、具高度责任感。

Work well with a multi-cultural and diverse work force.能够在不同文化和工作人员的背景下出色地工作。

Bright,aggressive applicants.反应快、有进取心的应聘者。

Ambitious attitude essential.有雄心壮志。

Initiative,independent and good communication skill.积极主动、独立工作能力强,并有良好的交际技能。

Willing to work under pressure with leardership quality.愿意在压力下工作,并具领导素质。

Willing to assume responsibilities.应聘者须勇于挑重担。

Mature,self-motivated and strong interpersonal skills.思想成熟、上进心强,并具极丰富的人际关系技巧。

Energetic,fashion-minded person.精力旺盛、思想新潮。

With a pleasant mature attitude.开朗成熟。

Strong determination to succeed.有获得成功的坚定决心。

Strong leadership skills.有极强的领导艺术。

Ability to work well with others.能够同他人一道很好地工作。

Highly-motivated and reliable person with excellent health and pleasant personality.上进心强又可靠者,并且身体健康、性格开朗。

The ability to initiate and operate independently.有创业能力,并能独立地从业。

Strong leadership skill while possessing a great team spirit.有很高的领导艺术和很强的集体精神。

Be highly organized and effecient.工作很有条理,办事效率高。

Willing to learn and progress.肯学习进取。

Good presentation skills.有良好的表达能力。

Positive active mind essential.有积极、灵活的头脑。

Ability to deal with personnel at all levels effectively。善于同各种人员打交道。

Have positive work attitude and be willing and able to work diligently without supervision。有积极的工作态度,愿意和能够在没有监督的情况下勤奋地工作。

Young,bright,energetic with strong career-ambition.年轻、聪明、精力充沛,并有很强的事业心。

Good people management and communication skills. Team player.有良好的人员管理和交际能力。能在集体中发挥带头作用。

Able to work under high pressure and time limitation.能够在高压力下和时间限制下进行工作。

Be elegant and with nice personality.举止优雅、个人性格好。

With good managerial skills and organizational capabilities.有良好的管理艺术和组织能力。

The main qualities required are preparedness to work hard, ability to learn, ambition and good health.主要必备素质是吃苦耐劳精神好、学习能力优、事业心强和身体棒。

Having good and extensive social connections.具有良好而广泛的社会关系。

Being active, creative and innonative is a plus.思想活跃、有首创和革新精神尤佳。

With good analytical capability.有较强的分析能力。 唬老外的常用赞誉之辞语”

Read more...

Cross-thread operation not valid

February 20th, 2010 Arale No comments

解决方案1: Control.CheckForIllegalCrossThreadCalls = false;

解决方案2:

private void button1_Click(object sender, EventArgs e)
{

Thread thread = new Thread(new ThreadStart(CallModiMethod));
thread.Start();
}
private void CallModiMethod()
{
ModiControl("Hello Cross Thread Operation");
}

private delegate void ModiControlDelegate(string value);
private void ModiControl(string value)
{
if (label1.InvokeRequired)
{
label1.Invoke(new ModiControlDelegate(this.ModiControl), value);
}
else
{
label1.Text = value;
}
}

Read more...