于无声处听惊雷

在阿里的实习让我感受到了真正”所谓大公司”的风格。写代码之前需要制定详细的文档,每一步的情况都要考虑到,之后的编码工作根据文档按部就班的执行。
我不得不承认,这种方法确实可以让问题变得更少,代码更容易被维护,有着无数的优点。但是请原谅我只能称之为编码,而并不是编程。
真正的编程应该是充满创意的,应该是天马行空的,是不该被条条框框所束缚的。我走在公司,看到一个个为了工作疲于奔命的人,他们用这是自己的梦想支持走着,也许这就是现实。
我认为如果一家互联网公司为了一致性而只能使用一种开发语言,为了一致性连代码格式都要控制,那么也许他现在可以走的很好,但终究不会长远。这种地方,我想我也不会久留。
所以,每当我熟悉了一个地方,也就意味着我离离开那里也不远了。

风林火山

今天去东厂转了一圈,走了很多路,外面又热,真的感觉有点累。
不过辛亏没有被电脑,要是带上那个重装备,非得给累死不可。从东厂出来和作冲以前回了恒生的宿舍,我之前也住过,很有感觉。
这两天仔细想了一下自己的发展方向,还是先出国吧,所以实习结束又要告别了。
也许这是很久之前就学会的保护方法,对于预知很快就要告别的人,我不会敞开心扉。这样确实可以不让自己受伤,但是也让我失去了很多东西。事情总是有利有弊,现在觉得一切随缘就好。当初能去腾讯,能进阿里我觉得都是非常机缘巧合的事情。我在这些公司学到了很多以前闻所未闻的东西,确实很有帮助。但同时我也可以感觉到这不会是我最终的归宿,我并不适合这种大公司的环境。既然都是生命中的过客,点到为止就好。

又要到周末了

又要到周末了。
这次实习确实随意了很多,大概是因为没有打算留下来,抱着玩的心态。
要是以前现在应该会是考虑周末还有哪些需求需要搞一下,
现在已经变成了戴着耳机码着字,脑子里想着周末这两天要去东厂玩,
去延安路吃什么的事情了。


我发现以前自己总是犹豫不决的原因真的是因为选择太多了,
适当的自断退路也许是好的,破釜沉舟总能在你想后退的时候狠狠地推上你一把。
下学期真的是要专心的做事了,也算是补我之前欠下的账吧。该还的总是要还的。
出国确实可以很好的开阔视野,学到很多在国内学不到的知识。
现在既然只剩下了这条路,那就拼命的走下去吧。

另外,今天捉鱼同志给我发信息说他要去成都了。我一开始还以为是他想炫耀一下去找妹子玩,结果这家伙居然直接转岗去mig了。爱情的力量果然是伟大的,我大写的服啊。
不过我大成都确实风水不错,好吃的又多,陷入深深的羡慕中无法自拔~.~

杭城七日

已经在杭州待了一周了。
本来早就想要写点东西记录一下这几天的生活了。但是组里要求写日报,每天一报,这让宝宝很痛苦,用来写blog的力气全部用去写日报了2333。
蚂蚁的待遇确实没什么说的了,实习生的补贴应该是国内TOP级别的了,另外每天的餐补,免费夜宵以及团队聚餐让我这个吃货心服口服。
要是和鹅厂对比一下的话,鹅厂更注重的是人文关怀,阿里则比较实在,给的东西都很硬。工作氛围的话,鹅厂更加轻松,阿里有点工作狂,不过投入和产出总是呈正比,阿里的技术在国内算是首屈一指了。
这两天速成了一发Java,另外这周打算再速成一发Spring和SOFA。这周SVN的权限也申请下来了,很愉快的checkout了代码。所幸代码里没有用太多Java语法糖,我担心的看不懂代码的事情不会发生了。不过真正难的是复杂的业务逻辑,挑战还在后面呢。
这算是抽出来半个小时写的blog了,还是很感谢妙才老师招我进来,给了我一次和大神们一起战斗的机会,作为一个Java小白我会努力的。

新的旅程

最近一直生活的很不规律,玩命的写代码。
发现自己自从ACM退役以后就不怎么写C了。以前对于底层实现的崇拜,现在慢慢变成了对高效的追求。Python,Scala变成了手边常用的工具,我很享受那种快速实现的感觉。
因为小时候写代码都是为了OI,很自然而然的养成了面向过程的编程风格,这样我对面向对象的编程思路多少有些不适应。我不太习惯按照既定的套路去做大型系统,短小精悍的完成任务可能很适合我。在这个方面,对象的概念显得有点多余了。
明天就要去阿里了,leader让我学学Java(虽然我的岗位是C++研发~~)。
感觉去阿里真的是一件很有因缘的事情。一开始拿了鹅厂的TST真的是打算留在鹅厂了,组里的同学也很好,算是已经把我当成自己人了,我也根本没想过会离开。后来月黑风高的晚上接到了妙才老师的电话,于是剧情开始神转折,我鬼使神差的完成了阿里的面试,拿到了offer。
后来跟鹅厂leader说想要离职的时候想了很久,后来唯一可以想到的理由居然是可以和好基友一起玩(虽然这货陪我玩不了多久了2333)。
确实,一个人实习太寂寞了。在恒生的时候,我甚至会去楼道里自己和自己说话。当然,从那里回来之后,我压抑已久的话匣子喷薄而出,从此走上了段子手的不归路。
最后想一想,相比于深圳与杭州,我还是更喜爱后者,那里有我想要的平湖秋月。
一生痴绝处,无梦到杭州,again~

网络视频串流实时输出原型设计

今天下午折腾了一下视频监控的东西。
之前一直打算用树莓派搭建一套视频监控系统,但总是没有合适的时间。这几天正好考完试,也放了假,就抽出了一下午时间来搞这个。由于每个部分都有现成的组件,所以搭建的工作蛮轻松的。
首先第一步需要更新apt源,下载VLC:

sudo apt-get update
sudo apt-get install vlc

然后我们来测试一下,看VLC可不可以正常使用:

$ VLC
VLC is not supposed to be run as root. Sorry.
If you need to use real-time priorities and/or privileged TCP ports
you can use vlc-wrapper (make sure it is Set-UID root and
cannot be run by non-trusted users first).

不知道其他环境是不是也这样,我在运行的时候遇到了这个问题。解决方法很简单,修改一下 /usr/bin/vlc 的内容就好。

$ vim /usr/bin/vlc

/geteuid 命令将内容中的 geteuid 改为 getppid 即可。重启之后,问题就应该可以解决了。
最后我们使用CVLC将视频流通过h264编码,以ts的形式封装,然后输出到8090端口。

sudo raspivid -o - -t 0 -w 640 -h 360 -fps 20 | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8086}' :demux=h264

之后,如果可以看到下面的结果,就说明大功告成了。

VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
[0x14498f0] main libvlc debug: VLC media player - 2.0.3 Twoflower
[0x14498f0] main libvlc debug: Copyright © 1996-2012 VLC authors and VideoLAN
[0x14498f0] main libvlc debug: revision 2.0.2-93-g77aa89e
[0x14498f0] main libvlc debug: configured with ./configure  '--enable-static' '--build=arm-linux-gnueabihf' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security' 'LDFLAGS=-Wl,-z,relro' '--config-cache' '--disable-maintainer-mode' '--disable-silent-rules' '--disable-update-check' '--enable-fast-install' '--prefix=/usr' '--docdir=/usr/share/doc/vlc-nox' '--sysconfdir=/etc' '--with-binary-version=5+deb7u2' '--enable-a52' '--enable-aa' '--enable-bluray' '--enable-bonjour' '--enable-caca' '--enable-dbus' '--enable-dca' '--enable-dirac' '--enable-directfb' '--enable-dvbpsi' '--enable-dvdnav' '--enable-faad' '--enable-flac' '--enable-fluidsynth' '--enable-freetype' '--enable-fribidi' '--enable-gnutls' '--enable-jack' '--enable-kate' '--enable-libass' '--enable-libmpeg2' '--enable-libproxy' '--enable-libxml2' '--enable-lirc' '--enable-live555' '--enable-mad' '--enable-mkv' '--enable-mod' '--enable-mpc' '--enable-mtp' '--enable-mux_ogg' '--enable-ncurses' '--enable-notify' '--enable-ogg' '--enable-oss' '--enable-pulse' '--enable-qt4' '--enable-realrtsp' '--enable-samplerate' '--enable-schroedinger' '--enable-sdl' '--enable-shout' '--enable-skins2' '--enable-smb' '--enable-speex' '--enable-svg' '--enable-taglib' '--enable-theora' '--enable-twolame' '--enable-upnp' '--enable-vcd' '--enable-vcdx' '--enable-vorbis' '--enable-x264' '--enable-zvbi' '--with-kde-solid=/usr/share/kde4/apps/solid/actions/' '--disable-dxva2' '--disable-gnomevfs' '--disable-goom' '--disable-portaudio' '--disable-projectm' '--disable-sqlite' '--disable-telx' '--enable-alsa' '--enable-atmo' '--enable-dc1394' '--enable-dv' '--enable-fbosd' '--enable-libva' '--enable-linsys' '--enable-omxil' '--enable-pvr' '--enable-udev' '--enable-v4l2' '--disable-crystalhd' '--disable-mmx' '--disable-sse' '--disable-neon' '--disable-altivec' 'build_alias=arm-linux-gnueabihf'

在任意终端的VLC上打开网络串流,输入“http://树莓派的IP地址:端口号”,即可看到实时的监控视频了。