易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
记忆中的片段

记忆中的片段

在10岁左右的时候,来过一次上海 ,那时候叔叔在上海的一家印刷厂里当裁缝。印刷厂的名字是上海十一印刷厂。有没有人民两个字不记得了。
然后来玩了将近有一个月,去了大世界、西郊公园。公交车是5分还是2分来着记不清了。
记忆中,厂里夏天有冰水,还有大光明冰砖(这个记不清是买的还是发的了。),反正我睡觉后醒来,叔叔在工作,旁边放着我溶化的冰砖。
其实,最想说的好象应该就是大世界里的一场电影。到现在为止,记忆犹新,场景是一个庄园,有西部牛仔,有拔枪游戏,然后牛仔好多都是机器人。但一直不知道是什么电影名称。。。

今天上网查了一下,用的关键字是:庄园 机器人 快速拔枪 牛仔,结果查到的都是什么摩尔庄园。最后。。。我真的找到了,关键词:电影 机器人 西部牛仔
第一条的内容就是:电影一部老片美国片未来游乐场西部牛仔全部是机器人因为事故 ...,收到了这个回复,很开心:

《西部世界》 70年代的一部老科幻片,中国曾引进过  详情见链接:  http://baike.baidu.com/view/5107579.htm
又是VPN手记。。。

又是VPN手记。。。

这是一个自动安装脚本,for 大便系列。比如 大便和ubuntu(版权不是我的,我也只是拿来改改) :

#!/bin/bash

function installVPN(){
apt-get update
#remove ppp pptpd
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp
apt-get -y remove ppp pptpd
apt-get -y install ppp pptpd iptables

#注意,这里的一些refuse-pap之类的要注意,如果不能连接首先改这里。
#如果一直出错,将require-mschap-v2和require-mppe-128 这两行加密注释掉,(对应源文件)
echo name pptpd >> /etc/ppp/pptpd-options
echo refuse-pap >> /etc/ppp/pptpd-options
echo refuse-chap >> /etc/ppp/pptpd-options
#refuse-mschap
echo require-mschap-v2 >> /etc/ppp/pptpd-options
echo require-mppe-128 >> /etc/ppp/pptpd-options
echo proxyarp >> /etc/ppp/pptpd-options
echo nodefaultroute >> /etc/ppp/pptpd-options
echo lock >> /etc/ppp/pptpd-options
echo nobsdcomp >> /etc/ppp/pptpd-options


echo ms-dns 8.8.8.8 >> /etc/ppp/pptpd-options
echo ms-dns 8.8.4.4 >> /etc/ppp/pptpd-options
echo ms-dns 4.3.2.1 >> /etc/ppp/pptpd-options

#写到pptpd.conf文件中
echo option /etc/ppp/pptpd-options >> /etc/pptpd.conf
echo logwtmp >> /etc/pptpd.conf
echo localip 192.168.99.1 >> /etc/pptpd.conf
echo remoteip 192.168.99.9-99 >> /etc/pptpd.conf

#这个最好只能处理一次。否则每次都会修改,以防万一,改两次吧。。第一次应该失败
sed -i 's/#net\.ipv4.ip_forward=0/net\.ipv4.ip_forward=1/' /etc/sysctl.conf
sed -i 's/#net\.ipv4.ip_forward=1/net\.ipv4.ip_forward=1/' /etc/sysctl.conf
#echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
sysctl -p
#以下内容是for OPENVZ
#iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'`
#sed -i 's/exit\ 0/#exit\ 0/' /etc/rc.local

#echo iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'` >> /etc/rc.local
#echo exit 0 >> /etc/rc.local



# --- the sentence below was remarked By yanwen , what are you doing ??-----

}

function installOpenVZ(){
(installVPN)
iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'`
sed -i 's/exit\ 0/#exit\ 0/' /etc/rc.local

echo iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'` >> /etc/rc.local
echo exit 0 >> /etc/rc.local
(setDefaultUser)
}
function installXen(){
(installVPN)
iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o eth0 -j MASQUERADE
sed -i 's/exit\ 0/#exit\ 0/' /etc/rc.local

echo iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o eth0 -j MASQUERADE >> /etc/rc.local
echo exit 0 >> /etc/rc.local
(setDefaultUser)
}

function setDefaultUser(){
#默认用户
echo gouki \* 123456 \* >> /etc/ppp/chap-secrets
/etc/init.d/pptpd restart
}

function repaireVPN(){
echo "begin to repaire VPN";
mknod /dev/ppp c 108 0
/etc/init.d/pptpd restart
}

function addVPNuser(){
echo "input user name:"
read username
echo "input password:"
read userpassword
echo "${username} pptpd ${userpassword} *" >> /etc/ppp/chap-secrets
/etc/init.d/pptpd restart
}
function disableEncyption(){
sed -i 's/^require-mschap-v2/#require-mschap-v2/' /etc/ppp/pptpd-options
sed -i 's/^require-mppe-128/#require-mppe-128/' /etc/ppp/pptpd-options
/etc/init.d/pptpd restart
}
function enableEncyption(){
sed -i 's/^#require-mschap-v2/require-mschap-v2/' /etc/ppp/pptpd-options
sed -i 's/^#require-mppe-128/require-mppe-128/' /etc/ppp/pptpd-options
/etc/init.d/pptpd restart
}
echo "which do you want to?input the number."
echo "1. install Xen VPN service"
echo "2. install OpenVz VPN service"
echo "3. repaire VPN service"
echo "4. add VPN user"
echo "5. disable encryption"
echo "6. disable encryption"
read num

case "$num" in
[1] ) (installXen);;
[2] ) (installOpenVZ);;
[3] ) (repaireVPN);;
[4] ) (addVPNuser);;
[5] ) (disableEncyption);;
[6] ) (enableEncyption);;
*) echo "nothing,exit";;
esac

第一次写和改。连参数都不会。将就点了。。嗯。上面的内容复制起来比较麻烦,所以我做一个文件,可以直接下载:
放到自己的目录下,chmod a+x 这个文件。再执行就OK了。
你可以先看一下这个文件。。。以防万一
下载地址:21a964d1c161938b942054770a657e97

还是VPN的问题(openVZ , debian ,buyVM)

还是VPN的问题(openVZ , debian ,buyVM)

昨天发了一个微博,说是buyvm上面的VPN很容易装。非常方便,只要下载一个脚本包就OK了。
但是我用了之后还是发现没有用。。能连得上,但是上不了网,而且在/etc/ppp/pptpd-option里也设置了ms-dns,为什么上不了网呢?

找了一下,突然发现,/etc/pptpd.conf里就剩两行内容了,localip和remoteip,奇怪那怎么加载option呢???
对比了一下老文件,是有这么一行的:option /etc/ppp/pptpd-options
所以,立刻将这一行加入,OK,可以上网了,但是这时候还不支持加密。。如果选择了加密,就无法登录
再看/ppp/pptpd-options,居然也只有2行ms-dns的配置。连name什么的都没有,怪不得我刚才加的用户选择了服务名称为pptpd的时候都不能连接上网。我晕啊

对着原有的文件,加入:

name pptpd
refuse-pap
refuse-chap
#refuse-mschap
require-mschap-v2
require-mppe-128


proxyarp
nodefaultroute
lock
nobsdcomp

再重启一下/etc/init.d/pptpd restart,一切都正常了。这些人啊。为了偷懒,也不能这样啊,心哇凉哇凉的,果然不可尽信一键包。下次我也来做一个一键包算了。。。NND

笔记:为虚拟机再挂载一块虚拟硬盘

笔记:为虚拟机再挂载一块虚拟硬盘

原来的虚拟机只分配了8G空间,用啊用啊的就满了。怎么办?
于是想过挂载硬盘,但是不太会弄,今天在hover(http://www.hoverlees.com/blog/)的帮助下,搞定了。

1、fdisk -l,看看挂载进来的硬件是什么?

Disk /dev/sda: 8589 MB, 8589935104 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777217 sectors
Units = sectors of 1 * 512512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006642a

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 16775167 8136705 5 Extended
/dev/sda5 501760 16775167 8136704 8e Linux LVM

Disk /dev/sdb: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 sectors
Units = sectors of 1 * 512512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/mapper/webserver-root: 7763 MB, 7763656704 bytes
255 heads, 63 sectors/track, 943 cylinders, total 15163392 sectors
Units = sectors of 1 * 512512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/webserver-root doesn't contain a valid partition table

Disk /dev/mapper/webserver-swap_1: 532 MB, 532676608 bytes
255 heads, 63 sectors/track, 64 cylinders, total 1040384 sectors
Units = sectors of 1 * 512512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/webserver-swap_1 doesn't contain a valid partition table



2、将上面的红色部分的设备先格式化成某一类型的盘,输入:“mkfs.” 然后按TAB,出现:
mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev
为了更通用一点,我还是用了Ext3,所以我后来输入:mkfs.ext3 /dev/sdb1,返回:

mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1572864 inodes, 6291200 blocks
314560 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
192 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

3、mount到一个目录下,

root@webserver:/mnt# mount /dev/sdb1 /mnt

4、然后df看一下结果:

root@webserver:/mnt# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/webserver-root
7462608 4930416 2153108 70% /
udev 246512 4 246508 1% /dev
tmpfs 101524 576 100948 1% /run
none 5120 0 5120 0% /run/lock
none 253808 0 253808 0% /run/shm
/dev/sda1 233191 154710 66040 71% /boot
/dev/sdb1 24769916 176196 23335480 1% /mnt

一切就这样的完成了。
做个笔记。。。

成功利用apache对内容进行替换[更新]

成功利用apache对内容进行替换[更新]

说是成功了,但其实最终我还是通过PHP来实现的,因为遇到的问题是对方是gzip后的数据,无法直接替换,只能用php先将gzip的内容解压开,替换完后再gzip输出。
头疼。

参考:apache的mod_ext_filter,这个是功能比较强悍的替换模块了
nginx下当然也有更好的。不过因为我的服务器目前用的是apache。而且我习惯了用apache的一些配置,一下子要换到nginx不太习惯。
以后慢慢考虑吧。

---------

如果用PHP做,有些网站的gzip无法用:gzuncompress,gzinflate,gzdecode解压的。
可以用这个函数:http://www.jb51.net/article/15262.htm,原网站没有格式化,所以我格式化了一下:

function gzdecode2($data) {
$flags = ord(substr($data, 3, 1));
$headerlen = 10;
$extralen = 0;
$filenamelen = 0;
if ($flags & 4) {
$extralen = unpack('v', substr($data, 10, 2));
$extralen = $extralen[1];
$headerlen += 2 + $extralen;
}
if ($flags & 8) // Filename
{
$headerlen = strpos($data, chr(0), $headerlen) + 1;
}
if ($flags & 16) // Comment
{
$headerlen = strpos($data, chr(0), $headerlen) + 1;
}
if ($flags & 2) // CRC at end of file
{
$headerlen += 2;
}
$unpacked = @gzinflate(substr($data, $headerlen));
if ($unpacked === FALSE) {
$unpacked = $data;
}
return $unpacked;
}
这回就可以了。。。
安装VPN。。。debian / centos

安装VPN。。。debian / centos

说实话,xen和openVZ安装VPN我真的不是特别了解 ,以前只知道openVZ默认不能装,因为没有ppp和tun设备,但即使有了ppp和tun设备 后,其实,iptables的NAT转发也不是每台机器 都支持。
我在cloud3k上的VPS后台里可以安装ppp和tun设备 ,但安装后无效,发了一个TK给客服,客服说是开通了NAT转发。然后就OK了。
但网上的一些教程中的iptables其实都不能用。因为那句: /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE,其实是针对xen的VPS的。openVZ根本 就没有MASQUERADE这类的用法,而且。。。eth0,在openVZ上都没有。只有venet0。所以,我又找了一些资料,比如 :
1、http://qiaodahai.com/personal/article/2012/centos-6-pptpd-one-key-installation.htm
2、服务器架设:PPTPD VPN一键安装包 For CentOS 5
3、BuyVM OpenVZ VPS Debian安装PPTP VPN

其实现在网上有openVZ的一键安装包,我这里就不多介绍了,google一下或者百度一下,N多。
安装完后就三个功能
1、安装pptpd服务
2、修复pptpd服务
3、设置帐号
非常方便。但设置帐号后一定要去chep-secrets文件里看一下,理论上是可能有一个所谓的默认帐户存在的。注意删除一下。

二手商品出售

多年以来,慢慢慢慢集成了N多的工手商品,有兴趣的朋友可以向我购买,(所有商品均可小刀)

1、nook2 ,可触摸的电子书(可刷android系统),我买的时候 1200,实际使用时间不超过24小时,要说成色嘛,还算新吧。。。现在嘛 ,明显不要这个价了,可以看淘宝价后再小刀我【已出】

2、蓝牙键盘,本以为是一个很大的键盘,可以让电脑用的,结果。买回来才发现是IPAD和iphone用的。纠结
http://item.51buy.com/item-202961.html ,购买时间2012-06-28
【已出】

3、HP 5510(hp的瘦客户端),可以用来玩的,装的是winCE,可以直接运行。耗电量不高,但我好象没电源了。所以。。。

4、福珑电脑,龙芯第一代,内存加过,如果你有兴趣玩玩这个系统倒是可以的,当年,我买了1800,现在嘛 ,你懂的。都4年过去了。。。。如果你怀旧,可以考虑

5、家中的沙发(这个只限上海地区,可当床,原来是为了新房入住的时候买的,当年买的时候750,不过已经N年了,也没有好好的用过它),如果你有兴趣,可以大刀,但需自提。。

6、对了,还有gameboy advance,有两盘卡带,恶魔城+KOF,这么多年没用,好象卡带有问题了。当年买了600,现在嘛。黑黑。。。而且GA居然是没有夜光屏的,如果你对旧机有收藏,可以考虑。同1一样,实际使用时间不超过50小时,算是一个比较纠结的东西。

其实还有好多,一下子想不起来了都。。有兴趣可以直接留言啊。哈哈

-------

2012-12-11新增:

1、iphone/ipad 的蓝牙上网设备(类似苹果皮,不过它是蓝牙的。可以插双卡),使用时需越狱。当时淘宝买的时候300多。现在嘛,其实价格没大跌,如果有兴趣玩的人倒是可以收。因为我升到6.0.1不太想越狱了。而且现在也花钱买了很多正版的软件。越狱不太想了。正规点

thinkinlamp 数据库大会

thinkinlamp 数据库大会

归到数据库分类实在让我有点汗颜,毕竟这只是一个聚会性质的交流。并非真的就是与数据库相关,但内容因为还是涉及到了数据库,所以。。。归到这里吧。

这次大会去的比较晚了,因为小朋友的屁股上发了点东西(俗语:风疹块),所以本来是考虑不去的,但因为三件事,我还是去了:1、小朋友的屁股上用了以前的药,好了很多,几乎没了;2、票子送不掉,很多人一听是早上8点到场,都大义懔然的放弃了;3、锅巴引诱我,说是给我准备了特别的礼物

意外:意外在这里看到了前前同事,余老板,原来,她还在篱笆网,她笑称自己是钉子户,其实我是真的挺佩服她,能在国内一家互联网公司做超过5年,并不是一件容易的事情。

废话说了那么多,现在就让我们开始吧。
因为去的晚,所以对数据库与SSD的存储没有听到多少,但说白了,听了对我也没多大用处,小公司吧,用不上这些,大公司吧,可挑选的余地又太大,如果求稳,就研究不了新技术 ,如果求新技术 ,却又不能保证一定稳定,象网易,在云阅读上就用了SSD的硬件,我想他在备份上面的代价会是多少呢?小公司真的烧不起这个钱啊,虽然说混合应用的SSD+SATA的盘1T也才1000左右,但我们没那么多机房来折腾,也不会有dell公司的人来帮忙维护和技术支持,我们不是VIP用户啊,亲

第二个演讲的又是让我很郁闷的,虽然我在事前其实也很想知道这一块的东西,legenddb,类似于mysql proxy或者说mysqlcluster的工具,他们确实走在了我们的前面,但对应用型 的公司来说,没人敢用就是一个很大的问题。你没有完整的技术支持,不能保证后续的服务,出了BUG,你不能在很快响应。国内很多公司选择了mysql,有很大一部分原因在于,mysql社区版是开源的,所以可以有针对性的对它进行修改。如果你legend开源了,你还能走多久?legenddb,老谭也在台上说了,目前在某些join查询上效率还不是很高。而legenddb最大的功能其实就是用来做分布式数据库,并且通过timeline来做数据同步等(为了一致,每台服务器还必须得精准校验时间,否则可能会出问题,即数据出错),有兴趣的朋友可以上他们的网站上看看:http://www.mysqlab.net/,我感兴趣的原因是,它们说他们的软件是基于go开发的,黑黑

第三位演讲的是支付宝的朋友。讲了一个数据库的架构方面的设计,即又要保证ACID,还得让CAP这个标准也能够相对较好的应用。什么时候选择ACP,什么时候选择APC,都是一个讲究,在这上面,他用了一个简单的例子,即:用户付钱给商家。看起来很简单,但因为支付宝是担保交易,所以,简单的看起来就是:
1、用户支付时:用户update余额,中间帐户update状态
2、物流进行时:中间帐户维护状态
3、用户确认时:商家update余额,中间帐户update状态
只是在第一步的时候,特别是在聚划算的时候,传说每秒就是几千单,如果从传统意义上来说,没有一台服务器能够达到这样的效果,于是就采用了类似分片的效果,将中间帐户切分成N份(也就可以用N台机器来处理),然后再通过事务合并(这一段是我猜想。。。)
有时候说起来简单,做起来很复杂啊。比如他说,当搞活动的时候就加几台机器,活动结束后就减几台机器。对于程序来说,加减法并不是数学上的加减法,每加一台服务器,带来的成本和风险就会大几分,怎么把握也是一个难题。当然对于我这样的应用型人来说,暂时遇不到,很幸福啊。
好象我对第三位演讲的内容也介绍的比较水,但由于他的内容集中在CAP把握的度上,所以我也不太好介绍,毕竟我对这方面的掌握也不是特别的深

第四位是神仙,(http://xiezhenye.com/),介绍了mongodb的auto sharding。好吧,小公司又是不太会用的一个项目,在小项目中,mysql的查询效率并不会太低于mongodb。所以我就稍稍看了一下,主要也是因为auto sharding是自动切分的,我就不多介绍了。
不过,技术人员的通病就是,自己会用,但不会说。或者是在QQ里在聊天群里非常能说,但现场三棍子打不出个闷屁来,这都是一个问题。下一步我就是要建议thinkinlamp经常搞搞小型聚会,先内部交流,逼着大家上台讲。讲完了再下来沉淀,然后所有人讲完后,再接着讲一遍。只有这样,以后才能真正的走出来,不然,永远只是幕后,没有人认识你啊。

第五位是新浪微博的朋友。他先是很自我宣传了一下,然后介绍了他们在项目中用redis处理计数的功能。表面上很简单的几个数字,来的却并不方便,这其中最大的问题就是用户基数。用他们的话来说,就算是做cache,也不是那么简单的。注册用户3.x亿,每天发贴有1亿+,峰值达到了300W+/秒(这个数据记不清了,希望没错,据说是在春节那天),1亿的数据,相应的人员的微博数要加1,相关人员的未读数要+1,这些存储所花的代价是多少?好吧,我们先用100,000,000折腾一下,1M是多少字节?1G是多少字节?光这些+1所占的空间是多少?如果再加上要绑定的key呢?即用户ID,但又不是直接就用户ID+1,而是uid+comment,uid+post这类组合的key,这样一算的话,它的key得是多长?占了多少空间???说说都是很恐怖的事情,不要说是在做了,所以新浪在不停的为key减少空间。毕竟value只是一个整型,占的空间并不大,相反,key却真正的成了最大的存储空间占用的罪人。这一块的水比较深,我不多介绍。

其实中间还有一位厂商,DSG,但是我没有好好听,毕竟,oracle对我们来说太大了。。我还是初级用户。我很蛋定,谢谢。。。

中间,为了拿到锅巴准备的礼物,上去做一个“oppa 江南 style”的鸟叔POSE。。。。

还是APNS的一些问题

还是APNS的一些问题

其实在做APNS发送信息的时候,总会有一些信息好象没有收到。所以我就在想是什么问题。

看到这一篇的时候,才感觉可能会是这种原因:

问题四:Push消息丢失

如果客户端偶尔能收到消息,但有丢失,那很有可能是服务器往苹果APNs服务器写入失败、或者写成功后苹果服务器未发送(批量往一堆token发送消息,如果第一个token发送失败,那么苹果不会再给后面同一批的token推送消息)。失败原因可通过向苹果做Feekback查询。

---

这段文字来自:http://yangzl.net/tag/ios%E5%BC%80%E5%8F%91%EF%BC%8C%E6%B6%88%E6%81%AF%E6%8E%A8%E9%80%81/

同时觉醒和我说,feekback在这里可以查询一下:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html

里面是这么一句:Feedback Service

Sometimes APNs might attempt to deliver notifications for an application on a device, but the device may repeatedly refuse delivery because there is no target application. This often happens when the user has uninstalled the application. In these cases, APNs informs the provider through a feedback service that the provider connects with. The feedback service maintains a list of devices per application for which there were recent, repeated failed attempts to deliver notifications. The provider should obtain this list of devices and stop sending notifications to them. For more on this service, see “The Feedback Service.”

证明还是可以查的嘛 .准备下次慢慢查一下

生日快乐

生日一直是过阴历的,所以老婆也不知道我具体是哪一天。
反而,一大早老爸电话过来说生日快乐 .一下子心情感到激动又羞愧,他们生日的时候,我却也只是一个电话过去而已。

本来约定要吃穷某人的,结果因为老丈人、丈母娘发烧,小朋友拉肚子,老婆身体不舒服,所以放弃了这个伟大的计划,回家带小孩了。当然,照顾完小孩睡觉后。去楼下的小摊上叫了瓶啤酒,点了两个菜。算是过了生日。

然而,令人震精的事情发生了。。某些人居然在微博上炫耀:

最后的海豹:我们的目标,吃穷@颓废小魔,喝穷@膘叔,膘叔,你的牛肉在我这里,欢迎自提,啊哈哈哈,btw,生日快乐

转发(3)| 收藏| 评论 5分钟前 来自小米手机

颓废小魔微博达人: @膘叔 看! 我在:http://t.cn/zll6jsA

上海市,闵行区,姚虹路 - 显示地图

转发| 收藏| 评论 44分钟前 来自iPhone客户端

颓废小魔微博达人: @膘叔 看 我在:http://t.cn/zll6WlO

转发| 收藏| 评论 45分钟前 来自iPhone客户端

你说说看, 这个素质 .。。。真不厚道