Home

刘瑜 《一个人要像一支队伍》

![b_large_GikE_789a00017a095c43][1] 前两天有个网友给我写信,问我如何克服寂寞。 她跟我刚来美国的时候一样,英文不够好,朋友少,一个人等着天亮,一个人等着天黑。“每天学校、家、图书馆、gym、几点一线”。 我说我没什么好办法,因为我从来就没有克服过这个问题。这些年来我学会的,就是适应它。适应孤独,就像适应一种残疾。 快乐这件事,有很多“不以主观意志为转移”的因素。基因、经历、你恰好碰上的人。但是充实,是可以自力更生的。罗素说他生活的三大动力是对知识的追求、对爱的渴望、对苦难的怜悯。你看,这三项里面,除了第二项,其他两项都是可以自给自足的,都具有耕耘收获的对称性。 我的快乐很少,当然我也不痛苦。主要是生活稀薄,事件密度非常低,就说昨天一天我都干...

Read more

发一套华丽的Vista风格日历控件

最近需要用一套可编辑的日历控件,ASP.NET里的日历控件是可用的,但是WinForm下的日历控件无法编辑。没时间写,就直接上网找了个控件修改了一下。其实这控件严格说不能叫日历……这明明是月份牌,实际上就是在一张底图上写上一些日期文字而已。主要的改动是加了一些接口,然后写了部分自动生成的代码,可以直接把一个月的日历显示上去。勉强可用,不过总觉得有点山寨。不说了,上图(打牌这部分纯属吐槽,请勿随意联系)。 ![无标题][1] 代码[这里][2]下载。 参考文献: Vista风格日历控件C#版,

Read more

C#配置文件读写的两种思路

配置文件是增加软件扩展性不可获取的一部分。本文提供两种C#配置文件读写的方式。 第一种是使用Windows自身的INI文件读写API,在.NET下调用的时候需要对其进行声明,这也是最传统的一类,问题在于INI文件表达能力有限,每次都要费心地去给每个不同的配置项设置不同的KEY,不适合LIST型的配置项的书写。 另一种是使用XML序列化与反序列化。这里只是用XML作为一个例子,其实.NET下的几种序列化方式[1]都可以用来作为配置文件读写的一种方式。XML的表达能力强于INI文件,同时序列化方式也大大简化了配置文件读写的过程,确是一种方便的工具。 详见[代码][1]。 参考文献: [1]C#序列化技术详解(转),

Read more

关于吞灯泡问题

之前网上有一个很火的帖子,关于为什么不能吞灯泡的问题[1],还有很多被好奇心害死娃们前仆后继的证明并跟帖[2]。不过最近果壳传出一个视频辟谣,看结果貌似吞灯泡没神马大不了的。 PS:这位哥哥真是很有献身精神和娱乐精神啊。 视频1 吞宝剑吞铁球算个毛,真的猛士敢于吞灯泡 参考文献: [1] 为什么不能吞灯泡(好奇心太强者慎入), [2] 为什么不能吞灯泡(亮点在下面的跟帖),

Read more

基于本地缓存的多表级联操作的实现(C#)

背景:数据库操作中我们经常会遇到级联修改的问题,在之前的一篇文章1里我们探讨了多表级联的一种实现方式,这篇文章我们将探讨另一种实现方式,即通过本地缓存的方式,避免不必要的存储过程。 定义: 事实表:中央表,它包含联系事实与维度表的数字度量值和键。简单说,事实表包括各个维度的ID。 维表:述事实数据表中的数据。维度表包含创建维度所基于的数据。 首先,我们的条件是,级联不是很复杂,存在一张事实表和若干维表,通过单ID将事实表和维表进行级联。思路是:首先本地缓存维表的所有数据,然后将事实表的数据绑定到DataGridView上,将ID列设置为DataGridViewComboBoxColumn,绑定相应的维表,指定值字段和显示字段,让结果自动对应。 举个简单的例子:订单...

Read more

仿QQ、MSN消息提示窗口的实现(C#)

前言:我们在QQ、MSN、飞信等即时通信软件中经常看到消息弹出提示,即屏幕右下角弹出一个消息提示框,然后过一段时间隐去(有时候也不隐去,比如一个艰难的决定)。这种提示方式在消息通信中比弹MessageBox更符合用户习惯,前者往往阻碍用户正常操作。我们尝试在.Net下模拟这种方式。 坦白的说核心代码是某位大牛(John O’Byrne)写的,另一位大牛Patrick Vanden Driessche 修改了部分代码,我在此基础上增加了对多弹框的支持,文后附了原代码和我修改之后的代码。 多弹框的实现部分主要写了一个PlaceManager类每次从0下标开始检测哪个位置可用,然后在这个位置弹出消息提示框,消息提示框隐掉之后再回收这个位置。 考虑到同时弹出两个及两个以上框的几率非常小,...

Read more

“违反并发性: UpdateCommand 影响了预期1条记录中的0条”原因分析

该问题出现在使用DataAdapter自动对DataTable(或DataSet)进行更新的时候,具体情形是:通过界面添加了一条记录,然后调用DataAdapter的Update方法更新了数据,之后又修改或删除了这条记录。 原因网上有很多说法,大部分的分析我感觉是扯淡,其实主要的原因是自增长字段的值没有跟数据库同步1,即前台的记录里添加了一条记录,但是程序不知道自增长的ID字段应该填充多少,用户也不可能指定这个ID,更新了之后数据库自动填充了自增长ID,但是前台对应的DataTable(或DataSet)里却没有同步更新,从而导致DataAdapter不知道根据什么字段来定位修改的记录,因而出错。 具体的解决方法参考1一文中给出了一种方法,即每次插入记录的时候去服务器查询自增长种子...

Read more

关于腾讯12年品牌广告

据说是春晚前的一个广告,拍的挺感人的。腾讯开始走温情路线了,尤其瞄准了老爸老妈这一辈人。不过不得不说还真是挺有效果。 罗永浩(或者是周云蓬)说过:我们这些在外打拼的人,一点点的成绩在父母那里都会被无限的夸大。其实不只是成绩,父母眼里跟我们任何相关的事情都会变得无限重要,虽然这在我们自己看来只是小事。 父母曾经何等意气风发,现在却已两鬓斑白,这事情想起来就心酸。 二十年光阴,想想真不知道是怎么过来的。时间就是如此无情,你意识到沧桑的时候,光阴早已将过往带到记忆里去了,无可挽回。 珍重万千啊。 顺便附一个太平洋保险的广告,温情路线,甚为感人。背景音乐是李健的《爱的四季》。

Read more