【我在硅谷做码农】那些年,我们一起追过的女孩,都嫁给了老外

钛媒体注:这是钛媒体在10月8日改版后,隆重推出的首个独家公司人专栏 【我在硅谷做码农】 ,操刀者是一位毕业于清华大学的年轻人,八年前移民美国,目前在一家国际最著名IT公司硅谷总部担任工程师。每篇专栏将奉献作者有趣、有料的硅谷见闻、职场和情感纠葛,各种工作生活感悟。

上一篇《【我在硅谷做码农】大喊一声,“狗日的”老印》(引发了强烈的争议,也被各种吐槽,不管怎样也是作者在硅谷码农生活的真实写照。我在硅谷做码农之二,作者讲了在硅谷的尴尬的,触手不可及的爱情与婚姻经历,那些年,我们一起追的女孩,都嫁给了老外。

这是钛媒体独家专栏【我在硅谷做码农】系列

继续吐槽。

我们硅谷码农除了恨和我们抢职位的老印,还恨谁?

必须是外F啊,这是我们给嫁给国外人的国女的“尊称”。

我们有多恨外F?你只需要浏览下两大著名华人网站,每天十大热门话题中起码有两三个是声讨和咒骂外F的。

说到这里有人要说了,恋爱婚姻选择自由,人家嫁白人关你什么事儿啊。又有人会说了,你这明显是追白富美追不到的酸葡萄心理嘛,作为男人潇洒大肚点行不行!

你们说的这些我都承认,但你们有所不知,我们码农也是有一肚子苦说不出的,身在异国他乡,面对胸肌大肤白有身份的白男对手,想找个老婆真是太TMD不容易了!

洋妞纵使千般好,但你懂的,好说听点叫文化差异,说难听点叫高攀不上,一般国男还是不太敢挑战的。也有侥幸成功的,我读博期间有个访问学者师兄就追了一个美国女朋友,呵,那神气,那骄傲,那眼神,立马藐视一切猥琐男。啧啧!

那么,就剩国女了,但此时的国女已经非彼时的国女了。

在吸引国女方面,诚然,硅谷码农曾在国内竞争中打过漂亮仗。就说我吧,在成绩比天大的初高中时代,动不动就考第一的我曾一度是全校女生崇拜的偶像,走到哪里(尤其考试成绩公布后)都有女生崇拜的目光,情书更是如雪片一般飞来。只可惜,我那时候只顾自我陶醉了,心中想的也完全是理想与报效祖国,完全没有把一票女粉丝放在眼里,现在想想真是后悔地老泪纵横。

可情况从踏进大学校门的那一刻便急转直下。当意气风发优秀牛逼的我成功挤进清北大学最著名的电子系,幻想着在恰如其分的时间与百分百女孩谈一场轰轰烈烈的恋爱,不料却发现僧多粥少,一个几百人的电子系,女生个数屈指可数,更别提这仅有的几朵金花无论外在还是性格都与女神相差甚远。正在我暗自神伤之际,仅有的几个MM也被下手快的帅哥师兄弟们“抢购一空”,得了,大学四年女朋友是没戏了,那还是老老实实去自习室复习托G吧。

欧耶!终于成功踏出国门!米国的一切都是那么地新鲜,一应俱全的小留学生更是娇艳欲滴,我和其他码农一样大喜,“哥的机会终于来了”!

但是,我惊愕地发现此刻的竞争环境好像有点复杂,一顶“跨种族异性资源争夺战”的大帽子一下子把我扣懵了。此时,瞄准小留学生的不仅有来自全国各地同样优秀的国男们,其中不乏官二代﹑富二代等国男中的战斗机,更有从外表﹑经济﹑身份等都明显优于国男的白男。

我逼迫自己进入一级战备状态,并冷静地开始分析形势,“该去追谁呢?论喜欢嘛,自然是喜欢A女,但我既比不上高大帅气有身份的白男,也没有富二代官二代的犀利背景,那么从成功率上考虑还是追B女吧。C女?不行不行,老子等了这么多年不能落得如此结局”。

于是,在一次聚会上,我认识了小我五岁的师妹,算不得美人,但有讨男人喜欢的地方,就是这样的女子。我试着和她约会了几次,牙齿很白,有教养,不得寸进尺,起初几次印象并不很深,但随着见面次数的增多,感觉就越来越好。一次晚餐后,借着酒力,我一咬牙表白了,“不知你意向如何?”

师妹莞尔一笑,只是沉默不语。

那结局呢?当然是我偶然但又宿命地发现那个熟悉的网络ID在论坛“谈情说爱”版询问的都是“与白男约会如何控制节奏”之类的帖子,里面更有好事者建议,与心仪白男约会的同时,也不要拒绝其他追求者的约会,“这样心态可以更加良好”。

震惊!心碎!还是心碎!我瞬间明白了,过往的时间晚餐也罢,音乐会也罢,超市也罢,不过是一个悲催备胎的例行任务。

咔嚓!OFF!

其实我的经历在硅谷码农中并不罕见,多年之后,我已对此风轻云淡,但有些猥琐男们一直无法忘怀倒也可以理解。

这犹如突如其来地被自己最信任的人扇了一耳光,难免令人窝火和愤怒。失望夹扎着酸葡萄心理在默默地酝酿,再加上骨子里那一点点的爱国情怀和民族正义感,绝望的屌丝们开始把矛头指向外F,各大华人论坛上对于外F的骂声一直不绝于耳,过去﹑目前或许将来都将如此。

遥遥无期的绿卡,跳槽还是不跳的尴尬,枯燥孤独的异国生活,触手不可及的爱情与婚姻……于是乎,我们这些绝望的屌丝们只好发出愤怒的呼喊:起来,不愿做屌丝的码农,让我们团结起来,一起攻陷网络论坛这唯一可控的阵地!(本系列文章均独家首发钛媒体)

http://www.chinaz.com/start/2013/1015/322022.shtml

黑客公开CSDN网站数据库 600余万用户资料泄密

来源: 站长之家

360安全卫士官方微博发布了一条紧急通知,称CSDN网站600余万用户数据库泄密。

CSDN是Chinese software develop net的缩写,中国软件开发联盟。中国最大的开发者技术社区。它是集新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NET、Java、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的大型综合性IT门户网站,它有非常强的专业性,其会员囊括了中国地区百分之九十以上的优秀程序员,在IT技术交流及其周边国内中第一位的网站。

老板会因为你拼死写代码而感谢你吗?

程序员热衷于长时间地工作。我想说的是,你就承认吧,你的工作/老板并没有让你这样做,你自己要这样做而已。当然,我知道,也许并非所有程序员都喜欢长时间的编程。不过肯定的是,随着加班成为业内的普遍现象,至少一半的程序员必须喜欢加班,不是吗?我早已听惯了以下这类借口:“不,不是那样的,我们只是喜欢炫酷的技术活,而且不想遗留未解决的问题。实际上,加班是一件好事,它让我们变得出色!”

我认为,你不能只见树木,不见森林。从某个角度来说,你这样做并非为了自己,而是为了“某个人”。无须质疑,他也许是个高尚的人,但你并不是他的奴隶。从其他角度来说,你有多少次加班,是为了解决问题,研究新技术,编码实现某些东西,以及在截止时间之前完成任务?但是,你在业务上是机智过人的程序开发者,你在帮助公司获得成功。公司管理者已经向你说明了公司的经济状况——必须这样做,公司依靠你。我想说的是,除非这个管理者现在就在你旁边,半夜2点还在陪你聊天,否则他的话将一文不值。

让我来讲述一个朋友曾经跟我说过的故事。这个故事是关于一个天才程序员的,姑且叫他John吧。

John是一个百万程序员当中才出现一个的超级明星。他理解和编写代码的能力高超,工作效率是其他任何人的20倍。有一天,公司拿到了一项短交期的 大项目。客户提供了一本厚得让所有人沮丧的规格说明书。John出手相助,他把说明书带回家,此后三天没有人有关于他的消息。他回来上班的时候,样子十分 憔悴,但他看懂了整本说明书并完成了项目的基本框架。除了一小部分不可能完成之外,说明书的其余部分,甚至连客户自己也不甚了解的需求,John也完成 了。真让人吃惊!

当我第一次听说这个故事时,感受颇深,我问了第一个问题“那John现在何处?”我朋友回答——“他死了,生活太艰难了!”或许用编程过劳死来形容更加合适。这个故事令人意外的是——John才30岁而已。

程序员从分享死亡竞赛故事来获得反常的快乐。甚至当我们带着厌恶的情绪去这样做的时候,这种厌恶也带着一丝得意,以此怂恿同事去做得“更好”。但这 有点像那些穿着短裤的家伙,他们的短裤短到你都看得到他们的内裤;也有点像一些把抽烟当时尚的人,他们和他们的朋友觉得这很酷——但其他人却觉得愚蠢。

\

使糟糕的情况更糟

我可以理解偶尔付出一些额外努力以及一两天加班到半夜的必要性。但是,当偶尔变成经常,当老板不再因为你的努力而经常感谢你,而是习以为常时,事情就麻烦了。 老板希望程序员经常加班,这不仅是你的悲哀,也是整个行业的。人类就像狗一样,非常容易受到正面和负面强化的影响。整个行业的发展受到长年因过度加班而死 亡的悲剧影响,直到某个阶段,在那个阶段甚至还奖励这种行为。我们每次陷入长时间的争论中,都持续消极地加剧了这种趋势。

这不能帮助我们管理团队。你只需要让一个人做主,其他人遵守。内疚带来平等——“我们不能让我们的伙伴独自去做困难的事情,我们得帮帮忙”。遵守的 人越多,那些抛下同伴的人压力就会越大,直到整个团队半夜里聚在一起喝可乐,吃披萨。但他们如何容纳一个同样的人进入他们的世界,因为在这里也有一个因特 立独行而著名的程序员。当我们还是学生时,我们乐于把所有事情都推给某个人处理,然后在校内做我们想要做的事;但当我们走上工作岗位时,一切都要靠我们自己。真让人困惑。

有趣的是,有时候这些大量的努力甚至并没有得到正常合理的追踪记录,好像它反而让项目看起来很糟糕一样。所以他们“作假帐”,正如客户只关心每个人每周工作40小时(或 者他们拿的是40个小时的工资),也许还会关心项目在目前的进度,但他们从不在意小组每个成员花费在项目上的另外40个小时。好吧,或许他们会在“第二套 假账”中追踪记录的团队成员的真正努力。虽然会计会因为此类造假而锒铛入狱,但在IT业内,没有人会反对这种造假的要求。

可接受的进度成果

大多数敏捷开发过程都会就可接受的开发进度进行讨论。不过,我也见过有些甚至自认为灵活的团队会花几个小时的时间坐下来一起讨论交流如何让程序更加高效合理,等等,你懂的。尽管团队成员的思维依旧敏捷,你却不敢说出其他东西。

每当我想起这东西,我总想到律师。你就像一个刚入门的律师,付出了大量的努力和时间,这是你在这个行业中获得成功的常规途径。没有一个程序员想要跟律师做比较,但情况经常很相似,除非你不希望跟开发人员一样通过长时间的加班取得进步(就跟律师一样,除非你在4大咨询公司打工,也可以成为一名律师)。所以,律师跟程序员,哪个是呆子?

关于一周工作时间超过40小时导致生产力下降的研究呈现出令人不安的规律性。作为程序员,如果你的创造力下降了,你的失误就会增加,你就会遗漏现存 的问题,等等;直到到达某个阶段,这个阶段中,你做错的东西比做对的东西还要多。当你花了很多的时间在同样的活动中时,我应该特别提到健康问题。关于饮 食,你只能靠可乐存活很长一段时间——可怜的John甚至活下来不到40小时。

你现在能清楚我在反对长时间的工作和面临死亡威胁的行军了吗?你的睡眠时间和睡眠质量达标了吗?或许最近某一天我会告诉你我如何收到叫醒电话 (wake up call),这是一个有趣的故事。一群程序员步调一致地向一个方向努力,就像一群被豢养的猫——这是我对我们这些程序员又爱又恨的地方。但我希望过段时候,所有聪明的程序员要有一个明确的立场,坚决消除这种十分糟糕和违背生产力的业内趋势。正如我所提到的,聪明的程序员不喜欢长时间工作,也不会因为迫于压力而加班,他们把更多的时间用于享受生活。

编译地址:伯乐在线

英文地址:Did Your Boss Thank You For Coding Yourself to Death?

sqlserver 迁移到mysql详细步骤数据库表结构迁移

最近在开发的一个项目,需要从MS SQLServer迁移到MYSQL,以下把迁移过程记录下来,与大家共享!

sqlserver迁移到mysql 在数据库方面的工作主要是表的迁移,以及存储过程的迁移,这里先说说表的迁移.

首先先将MSSQL Server表结构导出为.sql文件. 表迁移,mysql一律不能运行带有[,],dbo.等带有sqlserver特征的脚步, 所以在导出的sqlserver脚步里面,首先要把这些字符全部过滤掉(可使用editplus进行过滤),在表创建方面的不支持的字符如下:[,],[dbo].,GO, on primary,.

在过滤完以上的字符后, 由于导出的sql文件都包含多个表, 为了能够一次性装载完所有的scripts并运行,需要在每个表的create语句后面加上分号, (同时还有加上ENGINE=InnoDB),否则你会发现只能一个一个表的进行运行,比如原来是这样:

CREATE TABLE bmapnamebidsg (
bword nvarchar (100) NOT NULL ,
bids text NULL ,
status int NOT NULL ,
cr_date datetime NOT NULL
)

CREATE TABLE BookStaticSortStatus (
sid int NOT NULL ,
sortStatus int NOT NULL ,
mxReviewStatus int NOT NULL ,
lReviewStatus int NOT NULL ,
up_date datetime NOT NULL
)

改动后是这样的:

CREATE TABLE bmapnamebidsg (
bword nvarchar (100) NOT NULL ,
bids text NULL ,
status int NOT NULL ,
cr_date datetime NOT NULL
)ENGINE=InnoDB ;

CREATE TABLE BookStaticSortStatus (
sid int NOT NULL ,
sortStatus int NOT NULL ,
mxReviewStatus int NOT NULL ,
lReviewStatus int NOT NULL ,
up_date datetime NOT NULL
)ENGINE=InnoDB ;

接下来就是数据类型了!

在数据类型方面,mysql基本对应了sqlserver的数据类型, 向bit,text,varchar,等,都对应得比较好, 但是,mysql并不支持smalldatetime(这个是sqlserver特有的),需要转成datetime,另外, sqlserver中的identity自增长属性在mysql中则表现为auto_increament属性,并且声明该属性的列必须是key!

最后我们看看主键,索引以及缺省值如何对应,一些是MS SQLServer(建一个主键,为两个字段定义缺省值,再为一个字段定义成索引):

ALTER TABLE BookStaticSortStatus WITH NOCHECK ADD
CONSTRAINT PK_BookStaticSortStatus PRIMARY KEY CLUSTERED
(
sid
)

ALTER TABLE BookStaticSortStatus ADD
CONSTRAINT DF_BookStaticSortStatus_status DEFAULT ((-1)) FOR sortStatus,
CONSTRAINT DF_BookStaticSortStatus_up_date DEFAULT (getdate()) FOR up_date

CREATE INDEX [sort2_books] ON [dbo].[books]([s2id]) ON [PRIMARY]

MySQL:

CREATE TABLE `bmapnamebidsg` (
`bword` varchar(100) character set utf8 NOT NULL default ‘1’,
`bids` text NOT NULL,
`status` int(11) NOT NULL,
`cr_date` datetime NOT NULL,
PRIMARY KEY (`bword`),
KEY `bids` (`bids`(1))
) ENGINE=InnoDB DEFAULT CHARSET=latin1

完成以上动作,表结构的迁移就基本完成了!

Microsoft .NET Framework 3.5 sp1离线安装(DotNetFX35)中文版制作

1. 离线安装包的bug. .NET Framework 3.5 SP1发布了,兴冲冲…下载,当然是完全离线安装包.net Framework 3.5 Service pack 1(Full Package) 231MB,网络慢呀!终于下载完了,安装….遇到新情况,还要连接网络下载,不是完全离线安装包吗?(急…等待中…大概需要30多分钟) 上火…啪啪的… 说明:呵呵,查了资料后才知道是微软制作安装程序时的一个无奈bug.在这里微软没有提醒大家,确实忽悠了我们。原来,.NET Framework 3.5 SP1(Full Package)是默认英文的安装包,如果要同时包含所有语言,那体积会太大了,可能考虑到这一点,发布时并没有包含其它的语言包,而是通过安装时在线下载,因而Full Package的称呼有点言不符实。
2. 自己动手,制作离线安装包. 自己能办到的,一般不求别人…
第一 下载.net Framework 3.5 Service pack 1 (Full Package) 231MB
安装包后dotnetfx35.exe,用WinRAR将其解压缩。
http://www.microsoft.com/downloads/details.aspx?familyid=D0E5DEA7-AC26-4AD7-B68C-FE5076BBA986&displaylang=zh-cn

第二 下载中文简体语言包。
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8489ed13-b831-4855-96f7-dd35e4c02a20
文件名 文件大小 dotnetfx35langpack_ia64zh-CHS.exe 16.9 MB
dotnetfx35langpack_x64zh-CHS.exe 33.3 MB
dotnetfx35langpack_x86zh-CHS.exe 27.4 MB
一般用户下载dotnetfx35langpack_x86zh-CHS.exe 即可 说明:也可从vs2008 sp1
提取,里面dotnetfx35langpack_x64zh-CHS.exe和
dotnetfx35langpack_x86zh-CHS.exe都有,前提是你已经下载了VS2008 sp1。
3.
将语言包dotnetfx35langpack_x86zh-CHS.exe复制到第一步解压缩的\wcu\dotNetFramework\dotNetFX35\x86文件夹里。
(如果是x64位的,可将dotnetfx35langpack_x64zh-CHS.exe
复制到\wcu\dotNetFramework\dotNetFX35\x64文件夹里。) 第四
点击运行dotNetFx35setup.exe,可彻底的离线安装了。安装之后需要重启计算机。
================================================
在没有装VS2008的机器上单独安装3.5SP1的时候,无论你下载的什么完整版还是非完整版,安装程序都需要连接Internet,去下一些东东,而且超慢。更要命的是:提示有63M的东西要下,然后已经下了63M了,还是在下。等了好久,快抓狂了。去网上找到了一个解决办法。
先说解决方案:
1.到官网上下载3.5SP1的完整安装包。
2.下载完成后,命令行下运行dotnetfx35.exe /x解压到一个目录
3.进入解压目录下进入wcu\dotNetFrameWork
4.从命令行运行dotNetFx35setup.exe /lang:ENU
5.OK一路畅通了。