Home

张宗昌的搞笑诗

# 来源:天涯 张宗昌,字效坤,山东掖县人,土匪出身,身高1.85米,生得五大三粗却性情刁钻。适逢民国改朝换代,他舞枪弄棒、打家劫舍,拉队伍、抢地盘,侥幸混得一席之地。1925年任山东督办,横征暴敛,贩卖鸦片、勾结日本,成了北洋军阀当中声名最劣的一个,被当作是祸国殃民的军阀样本。 张宗昌有个“狗肉将军”的“美名”,还有一个外号叫“三不知将军”,据鲁迅所说,这三不知是指他不知道自己有多少钱,不知道自己有多少兵,不知道自己有多少姨太太,也就是说他兵多、钱多、女人多,多得他自己也数不清。 张宗昌本人大字不识一斗,却喜欢附庸风雅,主政山东时向清末状元王寿彭学习写诗,还正儿八经地出版了一本《效坤诗钞》。很多人嘲笑张宗昌的诗不像诗,但若要论影响,张宗昌的诗却比当时许多喝了一肚子墨水的诗家写...

Read more

多表级联增删查改操作的实现(C#)

本文背景: 我们经常会遇到这样的问题:从数据库里通过几个表级联查询数据,然后显示到界面上,用户修改了这些级联之后的数据后,如何将数据更新到数据库里去?我们查询的时候完全可以使用视图,但是视图不支持增删查操作。如何实现视图的可更新呢? 本文的实现主要采用了.Net DataTable(和DataSet),使用DataAdapter可更新数据的特性,底层通过存储过程更新数据。逻辑结构如图1所示: 图 1 逻辑结构 基本的想法是: 通过视图进行数据的查询操作,而且这样可以通过SQLServer等工具自动生成视图。 删除,插入和修改分别实现存储过程(或Sql语句),然后构建DataAdapter,将DataAdapter的InsertCommand,UpdateComm...

Read more

对“基于长度和定界符带校验的TCP分包方式”的一些改进

“长度、分隔符加校验的TCP分包设计(C#)”[1]一文提出了一种综合长度和特殊字符定界两种TCP分包方式的新的分包方式,原文给出的实现没有考虑长度字符被分开两次传播的情况,同时原算法没有明确的算法描述,基于多种情况的综合,容易遗漏,这里给出改进后的算法: 如果WaitForLength置位,则拼上原来的字段,凑齐长度字段信息。 如果LeftLength不为0,则判断剩余缓冲区是否包含了报文剩余部分,如果包含则拼合字段,判断结尾是不是结束定界符>,否则拼合剩余缓冲区,LeftLength更新。 找到一个开始定界符,否则拼合剩余缓冲区,等待下次数据到达。 总的来说,就是通过开始定界符标定一个报文的开始,通过长度字段得到报文的结尾位置,通过结尾位置是不是结束定界符...

Read more

长度、分隔符加校验的TCP分包设计(C#)

我们做TCP程序的时候最经常遇到的问题就是分包,这也是激动人心的程序开发(可能你不这么认为)中最不激动人心的一部分,换句话说,确实挺枯燥的。 这里简要说一下分包问题的来源吧,毕竟有人并没做过TCP。TCP或者说流式套接字都会面临一个同样的问题,就是逻辑上我们会引入报文或包的概念,通过报文传播消息,但是基于流的套接字不会在套接字层区分这个概念。传递来传递去的东西永远是一串串的char(抑或byte),不会有人告诉你从一个报文是从哪里开始到哪里结束,而且一个报文可能被拆成两部分传递。所以,我们要分包。 分包其实是个挺常见的问题,从Socket到串口,只要做流式套接字,都要在底层实现一个分包机制,然后给上层一个接口,实现对底层的透明。大体有如下两种常见的方式 特殊字符做分界符:比...

Read more

关于从某度扒取歌曲下载链接

时常从百度下载歌曲但是百度的一个链接点开还会打开一个页面再点再打开一个页面…… 所以我们可以从页面分析下载链接然后扒取百度的歌曲链接本来写了一个程序但是百度各个页面之间css差别太大所以发现没有通用性。只能把思想写一下了。 例如我们分析一个页面里有罗大佑的《光阴的故事》HTML源码如下 end = 至于中间的部分直接查找然后字符串分割即可。 参考文献 [1] C# Regex 深入正则表达式 [2] c#用正则表达式获得指定开始和结束字符串中间的一段文本

Read more

盒子的梦想

——我们的人生其实还很长,还有太多的时间去实现自己的梦想 这部短片讲述了一个名叫蕾蕾的女孩在工作闲暇巧遇一个装着1993年的自己写给多年后自己的信的盒子,却发现当年给自己制定,要在人生10000天实现的梦想还有很多没有实现,于是她开始了忙碌的人生的第10000天……From Baiduer 这是百度年会商业产品部的一段视频。话说某度有时候还是能给人一点惊喜的。作为Share同样思维的一帮IT geek们,能做出这样一段视频,确实堪称经典了。 算算来北京混迹已经四年半了。生活总是强迫一个人改变,然后让他把这种改变称作“成熟”并且写入博客里。大部分的改变总是使你更加适应环境,但改变总意味着失去,于是,但凡写“成熟”的文章最后都会加上一句:聪明的,你告诉我,我们的日子为什么一去...

Read more

关于.Net下DataGridView绑定自定义数据结构的问题

数据绑定是个非常有用的东东,经常在C 下写MVC结构程序的童鞋可能都苦于界面(View)和数据(Model)之间的一致,如果View单一而且需要做的一致性工作不多的话,我们经常会直接在Controller里写更新操作(如图1所示),而如果有多个View,数据同步复杂的话,经常需要手动实现一个观察者模式,每个对数据(Model)的原子操作都需要同时对View进行更新(如图2所示)。 ![临时1][1]![临时3][2] 图1 图2 总的来说.Net平台设计还是非常优秀而人性化的,比如说数据绑定。数据绑定相当于自动实现了从Model到View的数据更新(如图3所示),而免去了自己管理数据一致和自己实现观察者模式的麻烦。同时,DataGridView控件的引入极大的方便了表格形式数据的...

Read more

用LiveWriter写CNBlogs和CSDN的博客

习惯了LiveWriter写博客,于是想把各个地方的博客整合到一起,CNBlogs非常简单,只需要在添加帐户里选择WordPress填入用户名即可,CSDN非常麻烦,我试了好久没找到对应的组合,后来发现有高人指出应该使用Metaweblog,果然,方法见下:

Read more