Nov 05 2009

突破Windows并发连接数上限

Category: 技术ssmax @ 19:02:02

除了调整tcpip.sys 的并发连接数,还需要修改windows并发连接数上限,默认大概只有5k左右

最重要的两个注册表键值 TcpNumConnections(TCP连接上限),MaxUserPort(能使用的端口数,默认5000)

还有其他的一些调整参数,具体如下:

 

Configure the max limit for concurrent TCP connections

To keep the TCP/IP stack from taking all resources on the computer, there are different parameters that control how many connections it can handle. If running applications that are constantly opening and closing connections (P2P), or are providing a service which many tries to connect to at the same time (Web-server like IIS), then one can improve the performance of these applications by changing the restriction limits.

There is a parameter that limits the maximum number of connections that TCP may have open simultaneously.

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
TcpNumConnections = 0x00fffffe (Default = 16,777,214)

Note a 16 Million connection limit sounds very promising, but there are other parameters (See below), which keeps us from ever reaching this limit.

When a client makes a connect() call to make a connection to a server, then the client invisible/implicit bind the socket to a local dynamic (anonymous, ephemeral, short-lived) port number. The default range for dynamic ports in Windows is 1024 to 5000, thus giving 3977 outbound concurrent connections for each IP Address. It is possible to change the upper limit with this DWORD registry key:

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxUserPort = 5000 (Default = 5000, Max = 65534)

Note it is possible to reserve port numbers so they aren’t used as dynamic ports in case one have a certain application that needs them. This is done by using the ReservedPorts (Q812873) setting.

Note Vista changes the default range from 1024-5000 to 49152-65535, which can be controlled with the dynamicport setting using netsh. More Info MS KB929851.

More Info The Cable Guy – Ephemeral, Reserved, and Blocked Port Behavior
More Info MS KB Q196271
More Info MS KB Q319502
More Info MS KB Q319504
More Info MS KB Q328476
More Info MS KB Q836429

For each connection a TCP Control Block (TCB – Data structure using 0.5 KB pagepool and 0.5 KB non-pagepool) is maintained. The TCBs are pre-allocated and stored in a table, to avoid spending time on allocating/deallocating the TCBs every time connections are created/closed. The TCB Table enables reuse/caching of TCBs and improves memory management, but the static size limits how many connections TCP can support simultaneously (Active + TIME_WAIT). Configure the size of the TCB Table with this DWORD registry key:

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxFreeTcbs = 2000 (Default = RAM dependent, but usual Pro = 1000, Srv=2000)

To make lookups in the TCB table faster a hash table has been made, which is optimized for finding a certain active connection. If the hash table is too small compared to the total amount of active connections, then extra CPU time is required to find a connection. Configure the size of the hash table with this DWORD registry key (Is allocated from pagepool memory):

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
MaxHashTableSize = 512 (Default = 512, Range = 64-65536)

Note Microsoft recommends for a multiprocessor environment, that the value should not be higher than the maximum amount of concurrent connections (MaxFreeTcbs), also if multiprocessor then it might be interesting to look at the registry-key NumTcbTablePartitions (Recommended value CPU-count multiplied by 4).

More Info MS KB Q151418
More Info MS KB Q224585

If having allocated a 1000 TCBs then it doesn’t mean that one will be able to have a 1000 active connections. Especially if the application is quickly opening and closing connections, because after a connection is “closed” it enters the state TIME_WAIT, and will continue to occupy the port number for 4 minutes (2*Maximum Segment Live, MSL) before it is actually removed. This behavior is specified in RFC 793, and prevents attempts to reconnect to the same party, before the old socket is recognized as closed at both sides. It is possible to change how long a socket should be in TIME_WAIT state before it can be re-used freely:

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
TcpTimedWaitDelay = 120 (Default = 240 secs, Range = 30-300)

More Info MS KB Q137984
More Info MS KB Q149532
More Info MS KB Q832954

Note with Win2k the reuse of sockets have been changed, so when reaching the limit of more than 1000 connections in TIME-WAIT state, then it starts to mark sockets that have been in TIME_WAIT state for more than 60 secs as free. It is possible to configure this limit:

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
MaxFreeTWTcbs = 1000 (Default = 1000 sockets)

Note with Win2k3 SP1 the reuse of sockets have been changed, so when it has to re-use sockets in TIME_WAIT state, then it checks whether the other party is different from the old socket. Eliminating the need to fiddle with (TcpTimedWaitDelay) and (MaxFreeTWTcbs) any more.

If using an application protocol that doesn’t implement timeout checking, but relies on the TCPIP timeout checking without specifying how often it should be done, then it is possible to get connections that “never” closes, if the remote host disconnects without closing the connection properly. The TCPIP timeout checking is by default done every 2 hour, by sending a keep alive packet. It is possible to change how often TCPIP should check the connections (Affects all TCPIP connections):

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
KeepAliveTime = 1800000 (Default = 7,200,000 milisecs)

More Info MS KB Q140325

When data is sent/received the data is copied back and forth to non-paged pool memory for buffering. If there are many connections receiving/sending data, then it is possible to exhaust the non-paged pool memory. The max size of the non-paged pool buffer allocated for each connection is controlled by MaxBufferredReceiveBytes or TCPIP Receive Window depending on which is smallest. More Info MS KB Q296265

Note if using the Professional/Home edition of Windows then it is very likely that it is crippled (By Microsoft) not to handle many concurrent TCP connections. Ex. Microsoft have officially stated that the backlog limit is 5 (200 when Server), so the Professional edition is not able to accept() more than 5 new connections concurrently. More Info MS KB Q127144

Note even if having optimized Windows to handle many concurrent connections, then connections might still be refused when reaching a certain limit, in case a NAT-Router/Firewall is placed infront of it, which is unable to handle so many concurrent connections.

Note if having activated SYN-Attack-Protection (Enabled by default in Win2k3 SP1) or installed WinXP SP2, a limit is introduced on how many connection attempts (half-open) one can make simultaneously (XP SP2 & Vista = 10; Vista SP2 = no limit). This will keep worms like blaster and sasser from spreading too fast, but it will also limit other applications that creates many new connections simultaneously (Like P2P).

EventID 4226: TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts

More Info www.LvlLord.de

Windows Vista SP2 removes the limit again, but it can be enabled with the following DWORD registry setting:

[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Tcpip \Parameters]
EnableConnectionRateLimiting = 1

More Info MS KB 969710

Related No more than 10 connections to a remote computer


Sep 30 2009

win2003 SP2 X64 程序字体变小的问题

Category: 技术ssmax @ 18:08:00

今天用了win2003 sp2 r2(x64)的简体中文msdn标准版,怎么发现应用程序里面的字体小了,不知道哪里能改呢?比如QQ好友组的那些字体都好小,谁知道怎么搞啊???谢谢了

通过更改主题外观不能解决问题,这个我已经测试了。有其他办法么?

自己终于搞定了,希望对其他人有类似问题的有帮助
  打开注册表编辑器找到这里
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]
  把”GUIFont.Facename”字符串的值改为Tahoma
  把”GUIFont.Height”DWORD值改为8
   
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
    把”MS Shell Dlg 2″和”MS Shell Dlg”字符串的值改为Tahoma
  结果如下面所示:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]
  ”GUIFont.Facename”=”Tahoma”
  ”GUIFont.Height”=dword:00000008

  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
  ”MS Shell Dlg 2″=”Tahoma”
  ”MS Shell Dlg”=”Tahoma”

改完后重启就好了,呵呵。


Sep 17 2009

新版Eclipse和Flashget、360safe等冲突问题

Category: 技术ssmax @ 14:02:24

新版伽利略eclipse会和flashget、360安全卫士等冲突,导致不能启动,

以下是解决方法

快捷方式加上参数 -vm “%JAVA_HOME%\jre\bin\javaw.exe”

指定使用javaw,以前eclipse默认是使用javaw的,不知道为啥现在改了,呵呵。

可能是问题原因:

The reason we need a contiguous memory region for the heap is that we have a bunch of side data structures that are indexed by (scaled) offsets from the start of the heap. For example, we track object reference updates with a “card mark array” that has one byte for each 512 bytes of heap. When we store a reference in the heap we have to mark the corresponding byte in the card mark array. We right shift the destination address of the store and use that to index the card mark array. Fun addressing arithmetic games you can’t do in Java that you get to (have to 🙂 play in C++.

Usually we don’t have trouble getting modest contiguous regions (up to about 1.5GB on Windohs, up to about 3.8GB on Solaris. YMMV.). On Windohs, the problem is mostly that there are some libraries that get loaded before the JVM starts up that break up the address space. Using the /3GB switch won’t rebase those libraries, so they are still a problem for us.

We know how to make chunked heaps, but there would be some overhead to using them. We have more requests for faster storage management than we do for larger heaps in the 32-bit JVM. If you really want large heaps, switch to the 64-bit JVM. We still need contiguous memory, but it’s much easier to get in a 64-bit address space.


Sep 10 2009

Mysql 按拼音排序

Category: 技术ssmax @ 15:18:10

永久解决方案:

用gbk建表,或者指定gbk字段,mysql 5.x支持某列单独定义字符集。

临时解决方案:

SELECT * FROM table ORDER BY CONVERT( chinese_field USING gbk ) ;

 

今天转换sql server 项目遇到的问题,记录一下,呵呵


Sep 04 2009

OpenSSH SFTP chroot() with ChrootDirectory

Category: 技术ssmax @ 16:52:46

今日升级了一下openssh,用了里面的自带chroot来实现SFTP的目录权限限制,详细如下:

首先升级openssh,目前版本是5.2p2,要使用ChrootDirectory需要4.8以上的版本

centos下:

./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-kerberos5 –with-md5-passwords –with-tcp-wrapper

make

make install

 

编辑/etc/ssh/sshd_config

Subsystem      sftp    /usr/libexec/openssh/sftp-server

替换为

Subsystem sftp internal-sftp

开启内部sftp server支持

增加:

AuthorizedKeysFile /home/%u/.ssh/authorized_keys

Match group sftponly
  ChrootDirectory /home/%u
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp

 保存退出。

/etc/init.d/sshd restart

重启sshd 服务

假设user是ssmax

# chown root.root /home/ssmax
# usermod -d /sftp ssmax

# mkdir /home/ssmax/sftp

# chown ssmax.ssmax /home/ssmax/sftp

# groupadd sftponly
# adduser user sftponly

 

由于chroot必须目录是只有root可写,所以我们 ChrootDirectory /home/%u 之后,必须把  /home/%u 改为root权限。

而把用户根目录改成/sftp,其实就是在chroot以后自动进入/home/%u/sftp目录,该目录才是用户可写的

这里有个必须要注意的地方就是,用户Key验证的时候,读取的key文件是在还没有chroot之前就读取的,所以如果改变了用户根目录,默认ssh就回去/sftp/.ssh/authorized_keys 里面读取公钥,这个目录当然是不存在的,所以我们要改变默认的key读取方式:

AuthorizedKeysFile /home/%u/.ssh/authorized_keys

当然也有例外一种解决方法,就是在/home/%u下面,再建立 /home/%u/home/%u

这样key验证会在 /home/%u/.ssh/authorized_keys 下面进行

chroot登录后直接就进入 /home/%u/home/%u,但是这样的话,好像目录就太多层了,而且也很混乱,哈哈。

 

整个sftp的过程:

首先用key登录ssh:

查找AuthorizedKeysFile 指定的key文件,如果是相对路径,就查找当前登录用户根目录(/etc/passwd)下的.ssh/authorized_keys文件

登录ssh后chroot 到 ChrootDirectory 设置的目录,改目录必须是只有root可写。

chroot以后进入用户根目录,这个时候根目录还是读取(/etc/passwd)里面的设置,但是根是相对于ChrootDirectory 的存在了,比如ssmax的根目录是/home/ssmax,ChrootDirectory 也是/home/ssmax

这个时候用户的根目录就在 /home/ssmax/home/ssmax 里面了。

 

当然如果不用key的话就不用搞得这么复杂咯,哈哈。


Aug 15 2009

魔兽的寂寞——源自中国的寂寞

Category: Gamesssmax @ 17:08:13

魔兽的寂寞——源自中国的寂寞
本文为尚良原创,允许转载,但请注明原作者:尚良。(尚良,崇尚的尚,良知的良。)

本文本人原发于地精区,但想到广大的WOW,又发到这里,我只是希望大家能多些理解,少些寂寞.

还有,说我穷的,其实我自信我有富起来的一天,但总有穷人,因为社会结构的问题,总有一部分的收入卡在这个位置,不是我不够富有,而是这个社会必定有太多穷人。

前言:有些话本来是不想说的,说了会让人很无奈,有些字本来是不想写的,写了会让人很郁闷,但每每总有些所谓的“专家”和“教授”,无所事事,养尊处优之
外,喜欢站在道德制高点上,对那些所谓的“刁民”“精神病人”指手画脚。无奈和郁闷之余,我以为还是应该把事实的真相写一写,虽不能改变什么,但俗话说——
岂能因声音微小而不呐喊,怎敢以身份卑微而忘忧国。
正文:

“说的好,但是这毫无用处!”—对之以,岂能因声音微小而不呐喊,怎敢以身份卑微而忘忧国.

一、理论基础

“存在即合理”,这是黑格尔的名言,也被很多人批判,这里我首先要给这句话正名,这句话的比较普遍的英文原文是“what is real is rational”,字面翻译过来就是“所有真实存在的事物必定是有原因的”那么就这次魔兽事件有人去探究过事件背后的原因吗?貌似没

有,或者说声音弱小到微不可闻,那么我就来谈谈我认为的魔兽吸毒者众的合理性。

1、基本的科学精神

说到科学,就不得不说科学的精神。科学的精神包括很多,例如谦虚,谨慎,戒骄戒躁等等,但最基本也是最重要的就是实事求是。邓小平先生最著名的论断就是——实践是检验真理的唯一标准。问题是现在的很多专家和教授连这最起码的科学精神都没有了。

“凡是存在的事物都是有原因的”,一个客观的事物如果他已经存在在那里了,那么他的存在本身必定是有原因的,如果某种理论说这个事物是根本不应该存在的,那么百分之百的,这个理论错了,因为那个事物已经存在了。

500万人一起吸毒!这就是“专家”和“教授”们的结论,这些专家和教授只知道站在所谓的道德制高点上指指点点,可却从来不去探寻事物的原因与本质。在他们看来他们的理论是完美的,如果有任何实际情况与他们的理论不符,那么必定是实际情况错了,他们的理论肯定是对的。

那么这些专家们你们探究过事物背后的本质吗?你们想过500万人一起“吸毒”的客观情况和这背后深层次的社会原因吗?没有,因为他们根本不需要,他们只需要抱 着你们的理论来指责就行了。所以我说,这些“专家”们连最起码的科学精神都没有。

2、经济学的第一假设——人是理性的

任何一种科学都是对某类客观事物的简化和归纳,以总结其规律并加以利用。既然要简化就必须进行假设,将一些细枝末节的东西简化掉,以更好的研究事物的本质。所以经济学也有诸多假设,这当中最根本的假设之一就是经济人假设——任何人在进行决策的时候都会尽可能的最大化自己的收益,即使用最少的资源来获得尽可能大的效用。

这一假设的推论就是——当若干消费者选择购买某种商品的时候,那么这些消费者必定是认为该商品的效用大于等于其他任何同等价格的商品。举例来说,包子和馒头都买5毛钱一个,我选择了包子就意味着在我看来,包子更合算,至少是和馒头一样合算,买哪个都一样。如果我觉得馒头好吃,那么在都是5毛钱的情况下,我肯定是买馒头。

换句话说,当消费者手中的货币数量既定,并存在多种可选消费方案的时候,消费者总能选出能够提供最大化效用的方案。用经济学的话说就是消费者的购买行为最终成立于效用无差别曲线上。那么就让我们来看看魔兽玩家的效用无差别曲线吧。

二、现实论点

1、收入决定消费

对于大多数人而言,决定消费的最主要因素是收入。简单的说我一个能挣多少钱,我能花多少钱,这个没什么可说的。

2、消费是分层次的,在低层次的需求得到基本满足后,消费者才会追求更高层次的需求

马斯洛的需求层次理论复杂的就不说了。简单的讲,一个人在饿了三天肚子的时候是不会去想怎么去游乐园玩的,更不会去想开着奔驰去海边兜风。人的需求是有层次的,吃饱了肚子,能活下去,这是最低层次——生理需求。然后是遮风挡雨,免收侵害,这是安全需求。再往上就是与他人交流和沟通的需求,称之为感情需求,

在与人交流后希望得到尊重,称之为尊重的需要。最高层次的是自我实现的需要,比如我从小就想当歌星,结果我真的当了歌星,称做我的自我实现需求被满足了。一般来说在低层次的需求被基本被满足后,人就会想要满足更高一层次的需求。比如——能吃饱饭了,就想着买房子。这就是在生理需求被满足后,接着需求安全需求。

三、我本人的例子

我决定以自身的实际情况来说说我为什么要吸魔兽这个毒。

我本人身处一个中部省份的省会。大学本科毕业以后考进某毫无油水的事业单位,享受公务员待遇,但灰色收入基本为零。

该市上年度公布的全市平均工资为28000元左右(税前,且不扣三金的数额,对于这个统计出来的平均工资我虽有怀疑,但不做任何评论)。我本人上个月的实际收入为2100元(扣除税和三金后的净收入)。转换为全年收入合25200元 。那么每个月的2100元我怎么花呢?

(1)月供。我市的房价约4800元/平方,按67平方的房子计算,总价32.1万,加上契税和印花税及其他费用和装修。约40万,首付30%也就是12万,剩下的28万按利率5%,25年还清计算,月供1636,其中公积金还款590,剩余1100从收入支出。

(2)生存型花销。吃饭,按早晚餐各4元,午餐8元,总计480元/月(备注:我军现在的伙食标准为一类灶11,二类灶16,三类灶23,四类灶39,我也就相当于二类灶水平),衣服,120元/月

(3)储蓄:200。总要给自己准备个看病钱,养老钱,给孩子准备个奶粉钱,200块够吗?我不知道。

以上加总:1100+480+120+200=1900元。这意味着我每个月能用来做为娱乐消费的收入仅200元……
我所在的城市200元够干什么呢?一场《哈里波特与混血王子》的票价是45,2个人就是90,加上爆米花15,可乐10块,很好,一个月可以看两次电影呢。问题是剩下的28天干什么?

一般档次的卡拉ok小包的最低消费是388元,恩,200块钱够去半次,就是两个月能去一回,恩,当然还不能叫陪唱的,否则200块连出场费都不够(这时才能真正体会到老婆还是自己的好啊)。

出去吃饭是比较便宜的,恩,一套麦当劳的套餐也就38元(50多那些我就不说了),2人就是76块钱,200块购吃3回的。什么?想吃中餐,基本上一顿火锅200块就可以报销了。

旅游是个不错的选择,就是太贵了,北京上海间的动车往返票仅1200。上海一般中档旅馆据说才300块/晚,这样的话一个3日游,也就2、3千块钱,我存一年够去一次。

开车去兜风该多么惬意啊,不过按一辆车30000计算(3万的车那该多破啊),我要存12年。恩,12年就能买辆车了,一辆车的寿命还没12年呢。另外,我就算买的起,我养的起吗?

好吧,说个教授们喜欢听得,我要去学习。但是,知识就是财富啊,恩,在职研究生一年的学费是多少呢?我们这的平均水平是28000年/年,我一年不吃不喝的全部收入,这还不算诸如MBA之类的吓人项目,动辄100000元/年,我要存5、6年才能上一年呢。看来知识不是一般的贵啊。当然,教授们会说学习最重要,可是我真的学不起啊,除了每月能到旧书市场去扒扒旧书外(现在的新书一般要60-80元一本,当然这价格不算贵,但我真的一个月也买不了几本),我真的连大学的门都不敢正视,想当年上4年大学已经给家里造成了不小的负担,而且现在研究生据说上了也是废柴,毕业=失业, 听说西方很多国家上大学是不要钱的,或者是奖学金高到能顶上学费,哎,中国的父母真命苦。当然没有这么多傻傻学子来送钱,教授和专家们的“津贴”和“专项科研经费”从何而来呢?

四、玩魔兽的经济学原理

玩魔兽的成本有多高呢?一台电脑5000元,寿命5年,考虑年金的话,约合每月100元,再用90元买3张点卡,合12000分钟,按每天4小时计算,正好能玩30天(恩,还能剩点时间周末多玩会,我真怀疑9c和网易是不是也是这么算好定的价)。

“教授”和“专家”们,现在明白我们为什么要玩魔兽了吧不是因为我们吸毒,而是因为我们寂寞。不是因为只有我们寂寞,而是因为我们没钱去用别的方法来排遣寂寞。

昨天的午间新闻有条报道,西班牙发生大规模堵车,堵车是因为人们为了消遣金融危机的郁闷,纷纷外出度假,因为掏不出飞机钱去外国度假,就选择自驾车出游,出游的人多了,就堵车了。

在本次金融危机来袭的时候,大多数公司纷纷裁员并调低利润预期,但是暴雪公司却恰恰相反,他们在金融危机期间一次就扩编了600人,并大大增加了利润预期。其CFO(首席财务官)对此做出的解释是,大多数美国人的收入降低了,人们没钱来进行消费了,就会选择更为廉价的娱乐方式,而魔兽世界显然是这些廉价娱乐方式中最为优秀的之一。其销售不仅不会下降,反而会上升。从2008年底至今,暴雪的预言成为了现实,确实有越来越多的美国人因收入下降,无力到海边度假,于是选择呆在家里玩电脑游戏。

如果你每月的收入足够你开着奔驰带着老婆孩子到海边度假,你会选择坐在家里打魔兽吗?想象中你每月的可支配收入能使你每周末去和同学朋友喝个小酒,吃个小菜,但现实是你只能和从未谋面的战友去和一个个想象出来的BOSS推来推去。单位真的能有公费研究生的名额我一准要去考,考上了我很可能就不怎么玩魔兽了,问题是没有,不要钱的大学在中国已经绝迹了。

五、魔兽的寂寞,源自中国的寂寞

教授们,专家们,你们自己招的有研究生吗?你问过他们一个月的生活费是多少吗?看看你们身边的年轻人,刚从大学毕业,每月的收入不过2、3千元,却要背上沉重的房贷成为房奴。每月的可支配收入区区几百元,却还要规划自己的未来。能用于娱乐的收入可能连200块还不到,却被国家要求拉动内需。

当然我们应该感到幸运,比起那些农民工,我们至少受过中等以上教育,至少接触过电脑和网络,至少知道这个世界是如此的多姿多彩。我们无需在42度的高温下抡锤盖房,无需挑着60公斤重的货物每天跑50次以上的400米往返,无需冒着生命的危险到随时会塌方的矿井去挖煤,无需吸着能把自己的肺熏成黑色的粉尘,到头来还要开胸。相比起来,我们这种被称为夹心层的所谓白领们已经是如此的幸运了。

对此我们其实已经很满足了,看看那些到政府门前静坐的,年轻人是最少的,看看各大论坛里支持社会和谐的,青年人是最多的。我们只是想在自己辛苦工作了一天之后,能够回到自己那沉重的龟壳里(为了买房,成了房奴,就把房子叫龟壳了),玩玩游戏,排遣一下自己的无奈与寂寞。但是即使是这小小的幸福也会被人剥夺.看看魔兽停服后那无助的人群吧,他们就像一群乞丐,以面前的一个破盒子为自己唯一的希望,但是在连自己面前的那唯一的破盒子也被人抢走的时候,他们先是忍耐,既而无助,最后愤怒。而那些专家们就如同身处朱门的贵族一般,对着连盒子也丢掉的乞丐不屑一顾之余,说着“看啊,这就是疯子,这就是精神病人!”

就是这样的疯子和精神病人我们每天干着牛马一样的工作,受着猪狗一样的待遇,吃着糟糠一样的食物,却要连最后的娱乐——到虚拟世界去躲避自己的懦弱,也要被人指指点点。

华为的员工累死了,而且累死的不止一个。看看现在的单位里,干活的是那些人,那些每天加班到8点,10点,通宵的是哪些人,是年轻人(男同志居多),说是6点下班,上到8点是正常,而且不给加班费。说是正式加班到8点(这种加班有加班费),但一般就要通宵了。据我所知,连农民使用牛马也要劳逸结合。牲口使住了是要休息休息的。但人不用休息。所以我说这是干着牛马般的工作。

富士康的员工跳楼了,听说企业几年前是逼着员工下跪,现在升级了,改逼着跳楼了。样机确实重要,但是否比人的生命还重要这不好说。但我知道,人们养猪,虽然要杀猪,但从不逼猪下跪,人们养狗,虽然要狗摇尾乞怜,但从不逼狗跳楼。所以我说这是受着猪狗一样的待遇。

   每天的饭钱能有几何?16块钱算是多的了,就算现在的美元不值钱,也不过2美元多些。联合国的标准,每天的饭钱不足1美元的叫贫困,看看,我们一个人能顶2个赤贫了。但比起传闻中的88888元一桌的黄金宴,真的不具可比性。所以我说这是吃着糟糠一样的食物。(这里插一句,中国的贫困标准是每天的收入低于1美元的叫贫困,美国是根据联合国的标准,每天的食物支出低于1美元的叫贫困,所以中国的贫困人口就比例而言比美国还要低的多。看看我们的国家“消灭”贫困很有心得啊。)

专家们说网络世界是个虚拟世界,沉溺网络会如何如何,但有没有人想过为什么这么多人沉迷网络呢?是不是因为现实的世界存在什么问题使得人们对现实世界有逃避的情绪呢?一百年前,梁启超先生曾写过这么一番话:少年智则国智,少年富则国富;少年强则国强,少年独立则国独立;少年自由则国自由,少年进步则国进步;少年胜于欧洲则国胜于欧洲,少年雄于地球则国雄于地球。一百年前的中国暗弱无光,大国将倾之际尚有梁先生这样的人物在奔走疾呼,但是在如今,所谓国力强盛,民族复兴,却是一帮“砖家”“叫兽”饱食终日,不学无术。想来真的很让人无奈。

于是我说:少年愚则国愚,少年穷则国穷;少年弱则国弱,少年束缚则国束缚;少年弱于欧洲则国弱于欧洲,少年熊于地球则国熊于地球;少年退步则国退步,少年寂寞则国寂寞。魔兽的寂寞实源于中国的寂寞啊。

后记:

病状:大量人口沉溺网络,癫狂;

病因:寂寞;

深层病因:国家财富分配不均,整个社会称严重的正三角形阶层分布。中间阶层选择逃避现实,于是沉溺网络;

除表药方:合理建立游戏的分级制度,《哈里波特和混血王子》在西方是要求13岁以上儿童必须在监护人陪同下方可观看的影片,但在中国则是把片子给裁的一沓糊 度。《魔兽世界》在西方是个13+游戏,儿童是不能玩的,但在中国则是把游戏“和谐”的面目全非之后,可以所有人玩。(说是要身份验证,基本是个样子。)这个比较实际而且可行.

除根药方:尽可能的维护社会公平,控制房价及其他基本生活消费品,降低普通群众的生存成本,提高中间阶层的可支配收入,建立起真正意义上的中产阶级。当我也能开着私家车带着老婆孩子去海边度假的时候,沉迷网络的人自然就少了。当然这个要实现还远的很.

庸医误国魔兽的存在不是一种偶然,是一种必然,即使没有魔兽,也必然会有一款类似魔兽的游戏来主导这部分年轻人的娱乐时间,因为我们国家现阶段的国情决定了这种娱乐手段是最便宜,最合理的。对于国家而言,这部分年轻人的多余精力必须通过某种途径释放出来,否则后果不堪设想,而网游显然是最理想的方案之一。所以断然不可用堵塞或威压的办法。想想现实吧,500万人的投诉,那仅仅是个开始,那是在炫耀我们的力量,如果文化部和版署仍然一意孤行,那只会使矛盾越来越激化,等到真的闹成“群体性事件”的时候,恐怕即便是国务院也会被问责,因为这不仅仅是个体问题,这牵扯到一个阶层。所以,文化部让先内测的决定是正确的,也是必须的。少吃拿卡要一点,多做点实事,总比最后闹到无法收场时再来扇自己的耳光强。至于那些“砖家”,“叫兽”,都不过是哗众取宠之流,是媒体抢夺眼球的道具而已,时间会很快把他们遗忘,但是若相关人员真的相信了他们的错误言论,拿来作为决策的依据,那只会使事情越弄越糟,“砖家”“叫兽”们就真的误国误民了。


Aug 10 2009

笑话一则

Category: 乱up当秘笈ssmax @ 13:34:09

某电视片播映引起轰动,演员均为业余人士,角色把握都很到位而且自然。记者好奇问:“那位泼妇演得真好,她是?”
答:“哦,她是公交售票员。”
问:“黑社会老大呢?”
答:“曾任过多年公安局长。”
问:“伪君子呢?”
答:“当过大学教授,如今为政府官员。”
问:“纯情公主演
得那叫一个感人,她是?”
答:“从夜总会找来的。”
问:“土匪?演得是太自然了。”
答:“当过城管,现在在税务局。”
问:“老骗子呢?
此人无任何做作的痕迹。”
答:“是个成功的律师。”
最后记者问:“那个店小二呢? 任劳任怨,随叫随到,加班还不给钱,从没怨言。”
答:“嗯,是很到位,以前干it的”


Aug 07 2009

立秋

Category: 乱up当秘笈ssmax @ 15:19:14

我是5月5号立夏当天来的上海,今天已经立秋了,不知不觉这个夏天就在上海度过了。。。>_<


Jul 30 2009

让我们等了4年的内测

Category: 乱up当秘笈ssmax @ 00:51:22

魔兽世界终于开始内测啦,原来我们之前4年都是压力测测?技术测?xx测?

哈哈,实在是太搞笑了。


Jul 19 2009

国内500年一遇日全食

Category: 乱up当秘笈ssmax @ 13:39:32

7月22号这次日食是自1814年至2309年近500年间,我国境内日全食持续时间最长的一次,日全食从初亏到复圆将持续两个小时左右,全食最长将近6分钟。

日全食:
2009年7月22日中国几个城市所见日全食预报(北京时间)
地名 初亏     全食始    食甚       全食终    复圆
上海 8:23:25   9:36:44 9:39:16   9:41:49   11:01:36
重庆 8:07:54   9:12:59 9:15:08    9:17:17   10:30:34
苏州 8:22:21   9:35:13   9:37:41    9:40:10   10:59:41
杭州 8:21:26   9:34:11 9:36:55    9:39:40   10:59:21
嘉兴 8:22:20   9:35:01   9:37:59   9:40:57   11:00:21
合肥 8:18:39   9:30:48   9:31:48    9:32:49   10:52:07
铜陵 8:18:49   9:29:47   9:32:39   9:35:31   10:53:46
武汉 8:14:53   9:23:56   9:26:39    9:29:24   10:46:15
宜昌 8:12:11 9:19:27   9:22:07    9:24:48   10:40:01
成都 8:07:05   9:11:06   9:12:47    9:14:29   10:26:22
乐山 8:06:15   9:09:31   9:11:54    9:14:19   10:25:38

日偏食:
2009年7月22日中国主要城市所见日偏食预报(北京时间)
地名    食分 初亏时分 食甚时分 复圆时分
北京     0.72   8:25           9:31           10:44
天津     0.75   8:24            9:32           10:46
石家庄 0.79 8:21            9:28            10:42
太原      0.79 8:19             9:26           10:39
呼和浩特0.69 8:22           9:26           10:35
沈阳 0.65       8:34           9:42           10:53
长春 0.58        8:40           9:45          10:53
哈尔滨 0.52     8:45            9:47         10:51
南京 0.99        8:20           9:34         10:54
合肥 0.99         8:18          9:31          10:51
福州 0.88        8:19         9:35          10:58
南昌 0.96       8:15           9:28          10:50
济南 0.83        8:21         9:31          10:48
郑州 0.90         8:16         9:26          10:43
长沙 0.95       8:12          9:23          10:43
广州 0.77        8:12           9:23           10:43
南宁 0.78        8:08           9:15           10:32
贵阳 0.91        8:06           9:14          10:30
昆明 0.88         8:03           9:08          10:22
拉萨 0.95        8:02           9:01          10:07
西安 0.90        8:12           9:20          10:34
兰州 0.82        8:11           9:15           10:25
西宁 0.80        8:11         9:13          10:22
银川 0.76         8:15          9:19         10:28
乌鲁木齐0.49 8:21            9:10         10:03
台北 0.84        8:23            9:40         11:04
香港 0.75        8:14           9:25         10:45
澳门 0.74         8:13           9:24         10:43

注:食分 是用来表示日食的程度。是表示日面直径的被遮部分与太阳直径的比值。以太阳的直径作为1,如果食分为0.5,这就表示太阳的直径被遮去了一半;如果食分大于等于1,那就是太阳的整个圆面被遮住,那就是日全食。


« Previous PageNext Page »