除IE和EDGE外,Chrome Firefox 和 iOS系统不再信任StartSSL提供的免费证书……

来自StartSSL官方的回复如下:

SSL Certificates issued after 21.10.2016 are distrusted in Chrome 56+, Firefox 51+,safari and latest version of IOS system. All certificates are distrusted in chrome 57. Official document about distrust > https://blog.mozilla.org/security/2016/10/24/distrusting-new-wosign-and-startcom-certificates/
     We are working hard on remediation plan (https://bugzilla.mozilla.org/show_bug.cgi?id=1311832), and we are doing everything to regain trust ASAP.
We create new root certificate now, You need to wait the root certificate audit by the main browser so it can be trusted in the main browser,it will take several months.
As an interim solution, if you pass the class 3 validation or EV validation(with full payment) you can get 1 trusted certificate(issued by Camerfirma)  that can be trusted in all browser.

Android 导入android源码有错,R.java文件不能自动生成解决方法

情况一:
   
千万不要重启Eclipse、也不自己创建R.java 类文件
   
右击你的工程(项目)——>Android Tools——>Fix Project Properties
   
将会再次创建出R文件,数据不丢失
情况二:
    工程中没有R
文件,主要的原因是我们的工程没有编译,所以我们要手动编译导入的工程。
   
就是要将整个工程完全build一遍, R文件就会出来了。
情况三:
   
若为API导入,则方法如下:   
 
   
file->New->android sample Project->api->finish即可

======================
首先确定你的SDK是新的。

其次接下来检查你的.xml文件,文件名不能大写。

如果xml文件太多 ,那么clean一下你的项目,这时候注意看Console的提示。

Console会提示你xml文件错误在哪里

修改完xml文件之后

clean你的项目,再build你的项目

R.java会重新出现或更新
=============

1、选择菜单  Project >> Clean ,前提是勾选上 Bulid
Automatically(自动构建部署) ,
点Clean后会重新构建项目,因为一般情况下,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生成。
2、选择工程,右键 Android Tools >> Fix Project Properties
这个操作有时候可以修正一些错误,但我的不行。
3、还有的说法是重新建一个空的工程,然后把这里面的代码,资源文件按照对应的包路径什么的拷进去,然后重新生成一边,这种方法,也想当于是第一种方法,都是重新构建部暑,性质一样的。

  
以上几种方法都试了,R.java依旧没出现,整个工程还是一大堆错误。随便点了一个有错误的布局XML文件,看到这样一个错误代码
android:layout_height=”match_parent” , 之前我都用1.5/1.6/2.1 版本的SDK
layout_height里面没有看到match_parent这个属性,然后问群一个兄弟说这个属性是2.X版本的,想了下,是不是因为工程的SDK
版本和eclipse默认的SDK版本问题呢,于是选择工程,右键 Properties >> Android
然后看到右边的一块 Target Name, 我的是选中 Android 1.5,然后换了一个 2.1 的 ,点击Appply
,工程自动构建,看到错误少了一些,换到2.2,重新构建,错误没了,久未解决的问题解决了,R.java也出来了,一个字高兴啊,启动模拟器一切正常。

 
总结下当导入其它源码时候,首先要保证源码的SDK版本和你eclipse默认版本是否一致。
查看源码版本办法:打开default.properties 文件,看target=android-7 这后面这个数是多少。
版本对应关系:target=android-3 <—> android 1.5 
,target=android-4 <—> android 1.6 ,
target=android-7 <—> android 2.1 
,target=android-8 <—> android 2.2 其它的自己测试下。

Android模拟器分辨率收集

模拟器分辨率收集

QVGA = 320 * 240;
WQVGA = 320 * 480;
WQVGA2 = 400 * 240;
WQVGA3 = 432 * 240;
HVGA = 480 * 320;
VGA = 640 * 480;
WVGA = 800 * 480;
WVGA2 = 768 * 480;
FWVGA = 854 * 480;
DVGA = 960 * 640;
PAL = 576 * 520;
NTSC = 486 * 440;
SVGA = 800 * 600;
WSVGA = 1024 * 576;
XGA = 1024 * 768;
XGAPLUS = 1152 * 864;
HD720 = 1280 * 720;
WXGA = 1280 * 768;
WXGA2 = 1280 * 800;
WXGA3 = 1280 * 854;
SXGA = 1280 * 1024;
WXGA4 = 1366 * 768;
SXGAMINUS = 1280 * 960;
SXGAPLUS = 1400 * 1050;
WXGAPLUS = 1440 * 900;
HD900 = 1600 * 900;
WSXGA = 1600 * 1024;
WSXGAPLUS = 1680 * 1050;
UXGA = 1600 * 1200;
HD1080 = 1920 * 1080;
QWXGA = 2048 * 1152;
WUXGA = 1920 * 1200;
TXGA = 1920 * 1400;
QXGA = 2048 * 1536;
WQHD = 2560 * 1440;
WQXGA = 2560 * 1600;
QSXGA = 2560 * 2048;
QSXGAPLUS = 2800 * 2100;
WQSXGA = 3200 * 2048;
QUXGA = 3200 * 2400;
QFHD = 3840 * 2160;
WQUXGA = 3840 * 2400;
HD4K = 4096 * 2304;
HXGA = 4096 * 3072;
WHXGA = 5120 * 3200;
HSXGA = 5120 * 4096;
WHSXGA = 6400 * 4096;
HUXGA = 6400 * 4800;
SHV = 7680 * 4320;
WHUXGA = 7680 * 4800;

回顾Facebook历次改版:均遭用户反对

Facebook今晚将召开f8开发者大会

导语:Facebook今天将召开f8开发者大会,预计将对网站进行大规模改版,并增添多项新功能。美国IT网站PCWorld今天撰文,回顾了Facebook历次的改版过程,每次都会遭到用户反对。

以下为文章概要:

Facebook用户历来反对改版,最新的News Feed改版同样引发了用户的不满。新版News
Feed将会按照算法给一些状态更新赋予更高的权重,而不是单纯按照时间顺序排列。

事实上,遭遇用户反对完全在意料之中,倘若没有反对反倒会令人意外。在Facebook的发展历程中,曾经多次因为改版引发用户不满,这一次只是其中之一。以下则是Facebook历次改版引发的用户不满:

2006年9月:Facebook推出News
Feed,可以按照时间顺序展示好友最近的活动。“状态更新”当时尚未大行其道,因此该信息流中展示的消息都来自用户的个人资料页面。

反对者组织了“停用Facebook一天”的活动,借此表达对隐私被侵犯的不满。而当Facebook允许用户在News
Feed中隐藏自己活动后,他们则宣称“任务完成”。但这项功能现在似乎已经不存在了。

2008年9月:Facebook面向用户推出了新版页面,用多个独立且可以定制的标签对网站分区。用户认为这一设计“非常非常丑”,并且组织了数万用户抗议。最终,标签被转移到Facebook的侧边栏,但这一理念至今依然存在。

2009年3月:Facebook再次进行大规模改版,这一次主要围绕状态更新展开,目的是更好地与Twitter竞争。信息可以实现实时更新,并且在屏幕右侧突出显示(这与Facebook最新的改版恰好相反)。

这一次改版引发了用户空前的抗议,共有170万用户要求Facebook放弃本次改版。为了安抚用户,Facebook进行了一些小规模的调整,但仍然坚持使用新的设计,至少暂时如此。

2009年10月:Facebook再次对主页改版,推出了一种算法,以便对状态更新进行排序,而不仅仅是按照时间排序。同年早些时候移除的一些内容又被恢复,包括好友申请是否被接受以及关系现状。换句话说,Facebook对2009年3月的用户抗议做出了让步。

但用户仍然不满,共有超过100万Facebook用户要求其恢复原先的版面。部分用户甚至要求Facebook将News
Feed更新重新按照时间顺序排列。

2010年11月:Facebook悄然缩小了News
Feed更新的字号,用户在Twitter上抱怨这一行为,而Facebook同样在Twitter上回应。

2010年12月:Facebook对资料页面进行改版,最主要的是将用户信息浓缩成一份摘要,并展示在页面顶端。文字上方还附带一张用户图片。Facebook官方博客的评论几乎都是负面的。

2011年6月:Facebook针对部分用户测试了一项名为“Happening
Now”的功能,在屏幕右侧展示了一个独立的信息流。很多参与测试的用户都很讨厌这项功能,其中部分用户甚至组建了一个名为“Facebook
Happening Now仇恨者”的小组。

Happening Now功能最终演变成了News Ticker,并于本周面向所有用户推出。(鼎宏)

Ubuntu, Ruby, RVM, Rails, and You

http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/
http://www.iloopai.com/blogs/11
http://ivanbernat.com/guides/install-rails-3-with-sqlite3-mysql-ubuntu-10/

25 Dec 2010

This beginner’s guide will set up with Ruby 1.9.2, RVM
and Rails 3.0.7 and is specifically written for a
development environment on Ubuntu 10.10, but will probably
work on many other operating systems, including older versions of
Ubuntu and Debian. YMMV.

If you’re looking for a way to set this up on a
production server then I would recommend the use of the railsready script
which installs all the necessary packages for Ruby 1.9.2p136 and
then that version of Ruby itself, Bundler and Rails. Then it leaves
it up to you to install Apache or nginx to get your application
online.

If you’re not using Ubuntu then try
Wayne E. Seguin’s rails_bootstrap_script
which probably gets a
version of Rails working for you, albeit with 1.8.7 rather than
1.9.2.

Under no circumstance should you install Ruby, Rubygems or any
Ruby-related packages from apt-get. This system is out-dated and
leads to major headaches. Avoid it for Ruby-related packages. We do
Ruby, we know what’s best. Trust us.

Still not convinced? Read this.

This guide will go through installing the RVM (Ruby Version Manager),
then a version of Ruby (1.9.2), then Rails and finally Bundler.

By the end of this guide, you will have these things installed
and have some very, very easy ways to manage gem dependencies for
your different applications / libraries, as well as having multiple
Ruby versions installed and usable all at once.

We assume you have sudo access to your machine, and
that you have an understanding of the basic concepts of Ruby, such
as “What is Rubygems?” and more importantly “How do I turn this
computer-thing on?”. This knowledge can be garnered by reading the
first chapter of any Ruby
book
.

Housekeeping

First of all, we’re going to run sudo apt-get
update
so that we have the latest sources on our box so that
we don’t run into any package-related issues, such as not being
able to install some packages.

Next, we’re going to install Git
(a version control system)
and curl which are both
required to install and use RVM, and build-essential
which is required to compile Ruby versions, amongst other
compilable things. To install these three packages we use this
command:

sudo apt-get install build-essential git-core curl

RVM

RVM is a Ruby Version
Manager
created by Wayne E. Seguin and is extremely helpful for
installing and managing many different versions of Ruby all at
once. Sometimes you could be working on a project that requires an
older (1.8.7) version of Ruby but also need a new version (1.9.2)
for one of your newer projects. This is a problem that RVM solves
beautifully.

Another situation could be that you want to have different sets
of gems on the same version of Ruby but don’t want to have to do
deal with Gem Conflict Hell. RVM has gemsets for
this. This is a feature you wouldn’t have if you used the
packaged Ruby
.

We’re going to use it to install only one version of Ruby, but
we can consult the
documentation
if we want to install a different version of
Ruby.

With git-core and curl installed we’ll
be able to install RVM with this command:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

The beautiful part of this is that it installs Ruby to our home
directory, providing a sandboxed environment just for us.

Once that’s done, we’re going to need to add a line to
~/.bashrc file (the file responsible for setting up
our bash session) which will load RVM:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc 

Then we’ll need to reload the ~/.bashrc file which
we can do with this small command:

. ~/.bashrc

The next command we run will tell us what other packages we need
to install for Ruby to work:

rvm notes
...
# For Ruby (MRI & ree)  you should install the following OS dependencies:
ruby: aptitude install build-essential bison openssl libreadline6 libreadline6-dev
curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0
libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf

A couple of these packages we’ve already installed, such as
git-core and curl. They won’t be
re-installed again.

These packages will lessen the pain when we’re working with
Ruby. For example, the libssl-dev package will make
OpenSSL support in Ruby work, libsqlite3-0 and
libsqlite3-dev are required for the
sqlite3-ruby gem and the libxml2-dev and
libxslt-dev packages are required for the
nokogiri gem. Let’s install all these packages now
using this command:

sudo aptitude install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g
zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf

This command *must* be written on a single line, otherwise
some of the packages will not install.

Now our Ruby lives will be as painless as possible.

Ruby

With RVM and these packages we can install Ruby 1.9.2:

rvm install 1.9.2

This command will take a couple of minutes, so grab your
$DRINKOFCHOICE and go outside or something. Once it’s done, we’ll
have Ruby 1.9.2 installed. To begin using it we can use this lovely
command:

rvm use 1.9.2

Are we using 1.9.2? You betcha:

ruby -v
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux]

Or, even better, would be to make this the default for
our user! Oooh, yes!

rvm --default use 1.9.2

Now whenever we open a new bash session for this user we’ll have
Ruby available for us to use! Yay!

Rails

Now that RVM and a version of Ruby is installed, we can install
Rails. Because RVM is installed to our home directory, we don’t
need to use that nasty sudo to install things; we’ve
got write-access! To install the Rails gem we’ll run this
command:

gem install rails

This will install the rails gem and the other 22
gems that it and its dependencies depend on, including Bundler.

MySQL

If you’re planning on using the mysql2 gem for your
application then you’ll want to install the
libmysqlclient16-dev package before you do that.
Without it, you’ll get an error when the gem tries to compile its
native extensions:

Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

/home/ryan/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

PostgreSQL

Similar to the mysql2 gem’s error above, you’ll
also get an error with the pg gem if you don’t have
the libpq-dev package installed you’ll get this
error:

    Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

/home/ryan/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb
checking for pg_config... no
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Fin.

And that’s it! Now you’ve got a Ruby environment you can use to
write your (first?) Rails application in with such minimal effort.
A good read after this would be the official guides for Ruby on
Rails
. Or perhaps the documentation on the RVM site which goes into using
things such as gemsets and the
exceptionally helpful per-project
.rvmrc file
. A quick way to generate an .rvmrc
file is to run a command like this inside the project

rvm use [email protected] --rvmrc

RVM is such a powerful tool and comes in handy for day-to-day
Ruby development. Use it, and not the packages from apt to live a
life of development luxury.

Credits

Thanks to krainboltgreene for
pointing out that the guide needed to install the packages
specified by rvm notes. He’s got a similar write up here for Ubuntu
10.04
. Some of the instructions in this guide were “inspired”
by that post.

1、先安装gcc,mysql和一些库

sudo apt-get update
sudo apt-get upgrade
sudo dpkg-reconfigure tzdata
date

sudo apt-get install gcc
sudo apt-get install build-essential
sudo apt-get install git-core
sudo apt-get install libcurl4-openssl-dev libssl-dev zlib1g-dev libreadline5-dev

sudo apt-get install mysql-server mysql-client
 

2、编译ruby1.9.2 :

先下载源代码:http://www.ruby-lang.org/en/downloads/

tar vfxz ruby-1.9.2-p180.tar.gz  
cd ruby-1.9.2-p180
sudo ./configure --prefix=/usr/local/ruby-1.9.2

sudo make
sudo make install  

#添加路径
sudo gedit /etc/profile
#加入如下内容并且保存,注销就可以了
if [ -d "/usr/local/ruby-1.9.2/bin" ] ; then  
    export PATH=/usr/local/ruby-1.9.2/bin:$PATH
fi 

#查看安装到ruby版本
#sudo用到环境变量没搞清楚...加个-i就行了
sudo -i ruby -v

#安装rails,这儿也用-i
sudo -i gem install rails -y

设置MQSQL的UTF-8编码方式:

$sudo gedit /etc/mysql/my.cnf  #编辑添加如下内容
[mysql]
default-character-set = utf8 
[mysqld]
default-character-set = utf8 
init_connect = 'SET NAMES utf8' 

[client]
default-character-set = utf8

sudo /etc/init.d/mysql restart  #运行
sudo netstat -tap | grep mysql  #检查

#检查MYSQL查看编码,用MYSQL命令: 
show variables like'character%';  
#或者:mysql -u root -p
Enter password: ******
> \s # 查看是否配置成功
Client characterset:    utf8
Server characterset:    utf8
>quit

#Install nginx+passenger

sudo -i gem install passenger
sudo -i passenger-install-nginx-module

用rails new 新建 app

rails new blog -d mysql

现在3.0.7版本的mysql2不能用最新版,需要添加个限制

cd blog
gedit Gemfile

把gem ‘mysql2’改成: gem ‘mysql2′,'<0.3’
然后运行:bundle,如果提示下面到错误就是少了些运行库了:Could not create Makefile due to
some reason, probably lack of necessary libraries and/or
headers.
安装库:

sudo apt-get install libmysql-ruby libmysqlclient-dev 

在运行bundle就能正确安装mysql2了
执行:rake db:create还是出错…这个是rake
0.9版本到问题,这个有人给出了方法:打开刚才新建的app根目录下的Rake文件,在里面添加:

#注意把Blog改成你自己到模块名
module ::Blog
  class Application
    include Rake::DSL
  end
end

module ::RakeFileUtils
  extend Rake::FileUtilsExt
end
#这个是原来rake文件到最后一行,不是添加的,注意这个“Blog”就是你的模块名字
Blog::Application.load_tasks

第二种方法就是卸载0.9版本的rake了:

sudo -i gem uninstall rake -v 0.9
sudo -i gem uninstall rake -v 0.8.7
sudo -i gem install rake -v 0.8.7
 

我的系统里有rake 0.9和rake 0.8.7,把rake
0.9卸载了就找不到rake也许要加个链接到ruby/bin目录,我偷懒直接把2个都卸掉然后再安装0.8.7

这个就是安装mysql2过程中出现的问题:http://blog.csdn.net/linhx/archive/2011/03/29/6286899.aspx

配置ngnix:/opt/nginx/conf/nginx.conf

server {
        listen       80;
        server_name  localhost;
        root /home/xxx/rails_app/blog/public;  #xxx这个就是你刚才新建的app的public目录到完整路径
        passenger_enabled on;  
        rails_env development;     #设置为开发环境,默认是生产环境
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        #location / {
        #    root   /home/leslin123/rorails/helloMySQL/public;
        #    index  index.html index.htm;
        #} 

配置Nginx为启动项:

sudo apt-get install curl#在终端里输入curl,如果提示未安装就用这个命令安装,如果已经存在就跳过
curl -L http://bit.ly/nginx-ubuntu-init-file > nginx
sudo mv nginx /etc/init.d/
sudo chmod +x /etc/init.d/nginx 
sudo /usr/sbin/update-rc.d -f nginx defaults
sudo /etc/init.d/nginx start 

在浏览器里输入:127.0.0.1,看到Welcome to nginx!就是安装成功了,如果已经设置了rails
app的目录应该是rails程序到欢迎界面了
每次修改了nginx配置后需要重启生效:

sudo /etc/init.d/nginx restart 

注:如果提示:Access denied for user ‘root’@’localhost’ (using
password: NO)重启下nginx试试

用到的链接:rvm安装方式,只采用了前面:http://www.yangzhiping.com/tech/ubuntu-ree-nginx-passenger-rails3.blog.html

编译ruby1.9.2以及配置:
http://hi.baidu.com/rikioy/blog/item/57fdfe38b87ce3ccd462256a.html

解决mysql2版本不相容的问题:http://stackoverflow.com/questions/5840742/version-
of-mysql2-0-3-2-doesnt-ship-with-the-activerecord-adapter-bundled-anym

执行rake出错解决方法:http://stackoverflow.com/questions/5287121/undefined-method-task-using-rake-0-9-0-beta-4

安装mysql2不成功:http://blog.csdn.net/linhx/archive/2011/03/29/6286899.aspx

我要翻译Paul Graham了(zz)

http://www.ruanyifeng.com/blog/2009/12/i_will_translate_paul_graham.html

作者: 阮一峰

日期: 2009年12月28日

这些天,我总有点魂不守舍。

典型表现就是,非常烦躁和空虚。宁愿坐在电脑前,一遍又一遍扫雷,也不想干正经事,网志也不知道写些什么。不过有一件事,我想最好还是现在说一下,不要留到明年再宣布。

话说今年8月份,我翻译完More Joel on
Software
,已经精疲力竭,对这种通过长时间击键,将英语改写为汉语的廉价体力+脑力劳动深恶痛绝,再也不想干了。

交稿的时候,出版社编辑问我,还想不想翻译其他书。我说,不想了,除非你们有Paul
Graham
的书。此人的上一本书是五年前出版的,我觉得不太可能再引进了。

我要翻译Paul <wbr>Graham了(zz)Graham了(zz)” TITLE=”我要翻译Paul Graham了(zz)” />

但是,几星期前,图灵公司的傅志红编辑写信告诉我,他们买下了Paul Graham的文集Hackers and Painters的简体中文版权,询问我有无翻译意向。

我要翻译Paul <wbr>Graham了(zz)Graham了(zz)” TITLE=”我要翻译Paul Graham了(zz)” />

我一秒钟也没有停顿,立刻一口答应。我还能有什么其他回答呢?我是他的粉丝,翻译Hackers and
Painters
是我一直以来的心愿。

我要翻译Paul <wbr>Graham了(zz)Graham了(zz)” TITLE=”我要翻译Paul Graham了(zz)” />

下面,我就告诉你,我为什么那么想翻译Paul Graham。

他1964年出生于英国,在康奈尔大学读完本科,然后在哈佛大学获得计算机科学博士学位。1995年,他创办了Viaweb,帮助个人用户在网上开店,这是世界上第一个互联网应用程序。1998年夏天,Yahoo!公司收购了Viaweb,收购价约为5000万美元。

此后,他架起了个人网站paulgraham.com,在上面撰写了许许多多关于软件和创业的文章,以深刻的见解和清晰的表达而著称,迅速引起了轰动。2005年,他身体力行,创建了风险投资公司Y
Combinator
,将自己的理论转化为实践,目前已经资助了80多家创业公司。现在,他是公认的互联网创业权威。

我要翻译Paul <wbr>Graham了(zz)Graham了(zz)” TITLE=”我要翻译Paul Graham了(zz)” />

但是,在我眼里,除了程序员和创业导师,他更像一个思想家。网络技术将如何影响这个世界的未来,没有人说得比他更深刻。说实话,我在网上看了这么多人的文章,在思想方面,他的文章对我影响最大。这也是我热爱他的原因。

让我来随便摘录几段他的话,大家看看,说得多精彩。

* 最纯粹、最抽象的设计难题之一,就是设计桥梁。你面对的问题,基本上就是如何使用最少的材料,跨越给定的距离。(Five
Questions about Language Design)

* 软件最大的好处,就是让一切变得简单。但是,做到这一点的方法,是正确设置缺省值,而不是限制用户的选择。(The Other
Road Ahead)

* 如果你只知道设计软件,而不知道如何部署它,那么你不能创业。(The Other Road Ahead)

*
在任何一段历史中,人们都会把某些荒谬的东西当作正确,并且深信不疑,以至于一旦你出言质疑,就有被排挤或者被暴力伤害的危险。我们自己的这个时代,要是不同以往,当然令人欢欣鼓舞。但是就我所知,它并没有任何不同。(Taste
for Makers)

* 根据经验法则,一个国家的名字前形容词越多,它的统治者就越腐败。”某某社会主义人民民主共和国”(Socialist
People’s Democratic Republic of X),可能是地球上你最不想生活的地方。(A Plan for
Spam)

* 看上去,这是一个残酷的世界,也是一个乏味的世界,我不太肯定哪一个更糟一些。(Why Nerds are
Unpopular)

*
当你踩水的时候,你把水踩下去,你的身体就会被托起来。同样的,在任何等级制社会中,那些地位得不到公认的人,就会通过虐待他们眼中的下等人,来突显自己
的身份。我读到过这方面的文章,讲述为什么美国的底层白人是对待黑人最残酷的群体。(Why Nerds are
Unpopular)

*
许许多多不创造任何财富的人—-比如本科生,记者和政治家—-一听到最富有的5%人口,占有全社会一半以上的财富,往往会认定这是不公平的。一个
有经验的程序员,很可能也持有同样看法。因为最顶尖的5%程序员,写出了全世界99%的优秀软件。(How to Make
Wealth)

*
我偶尔会读到一些文章,讲述如何管理程序员。说实话,其实只要两篇文章就够了。一篇是如果你本人就是程序员,应该如何去管理其他程序员;另一篇则是你本人不是程序员的情况。后一篇文章也许可以浓缩为两个字:放弃。(Great
Hackers)

*
不管什么时候,黑客真正想工作的地方,只有10到20个。如果你的公司不是其中之一,你所能得到的一流技术高手,不是数量多少的问题,而是一个也不会有。(Great
Hackers)

* 竞争者不过就是对着你的下巴打一拳,而投资者则是一把抓住你的下身。(How to Fund a Startup)

* 对于做产品的公司,等你需要咨询公司帮你出主意的时候,就是你开始走向灭亡的时候。(How to Fund a
Startup)

*
对于那些他们真正关心业绩的企业,欧洲人实际上能够容忍解雇工人。但是不幸的是,目前他们唯一真正关心的企业只有一家,叫做”社会”。(Why
Startups Condense in America)

*
我实际上很担心自己变得”流行”,那样的话,我就会小心翼翼,不再像以前那样敢于说蠢话。这种事情发生在许多人身上,我真的想避免它。(A
comment in Lemonodor)

他的更多思想,请看我以前翻译的《未来的互联网创业》(),《为什么在经济危机中创业》《学历证书的终结》

我要翻译Paul <wbr>Graham了(zz)Graham了(zz)” TITLE=”我要翻译Paul Graham了(zz)” />

如果一切顺利的话,Hackers and Painters的中译本《黑客和画家—-Paul
Graham文集》将在明年下半年问世。

对于我来说,翻译完这本书以后,在翻译方面,就再没有什么心愿了。乔伊斯的《都柏林人》、《一个青年艺术家的肖像》和塞林格的《九故事》、《木匠们,把房梁抬高些》都有很完美的中译本,不需要我来译,而卡尔维诺的小说集我倒是想译,但是我不懂意大利文,估计出版社也不会来找我。

10款难看但好用的SEO工具

http://www.36kr.com/p/45332.html

人不可貌相,SEO工具也不例外。

SEO专业网站SEOmoz总结了十个SEO工具,这些工具看上去其貌不扬,甚至有些丑陋,但功能却非常强大、实用。

下面我们就来看看这十大难看却好用的SEO工具:

1. Shared Count

给力之处:Tom
Critchlow
开发的Shared
Count
不仅可以跟踪Twitter、Facebook、LinkedIn、Google+等社交网络上的社交分享统计数据, 而且还提供一个开放API,也就是说你也可以通过它开发自己的工具。

Shared Count

难看之处:该网站几乎没有任何设计可言。

2. IETester

给力之处:在检测浏览器兼容性的时候,IE总会让你忙个不停。IETester是一个免费的、可下载的浏览器,可以让你渲染不同版本的IE浏览器,放在同一个窗口中进行对比,然后检查错误。此外还支持调试模式。

难看之处: 什么东西到了IE6下都很难看,IE6本身也不例外。

3. Blogscape

给力之处:Blogscape允许你按天监测任何关键词、品牌或链接的热门程度。你只需输入一个关短语或网址链接,然后就可以看到大量提到这些内容的列表。如果你懂高级检索操作符的话,你还可以跟踪仅含有某个特定域名的文章,是发现新链接的利器。

Blogscape SEO Tools

难看之处:
这是一个收费工具,如果你不是付费会员,登录页面更加难看。

4. URI Valet

给力之处:URI
Valet
通过10个工具完成技术检查、网址点评等工作。你可以查看任何网页的服务器header,文本、HTML比率、下载速度等信息,并且可以进行W3C验证。

URI Valet

难看之处:谁说你需要一名图形设计师才能做出一个网页工具呢?

5-6. Robots.txt 检查器

http://tool.motoricerca.info/robots-checker.phtml
http://www.frobee.com/robots-txt-check

给力之处:两者实力相当,都可以发现robots.txt文件中的问题,并且还能发现不可见的错误。他们甚至还可以对文件中的隐藏代码作出解释,这些文件可以对搜索引擎爬虫产生影响。

Robots.txt

难看之处:robots.txt文件是很枯燥,但这并不意味着你的界面也要这么粗糙。

7. Wayback Machine

给力之处:Wayback
Machine
有一个巨大的网页存档,你可以查到15年前的页面。如果你想研究消失的链接或者跟踪网站修改对网站流量的影响,Wayback
machine可以让你回到从前。

Wayback Machine

难看之处:能看看你喜欢的网站在1996年的样子是件挺酷的事,但你必要一直保留1996年的那个logo吧,而且一直在测试期,搞毛啊?

8. SEO Browser

给力之处:从网页标签开始,一眼洞穿网页的SEO结构。该网页有robots.txt文件吗?安装了分析工具了吗?SEO
Browser
可以通过一个页面让你一目了然。

SEO Browser

难看之处:该网站的标语是:用搜索引擎的眼光查看你的网站。不幸的是大部分搜索引擎看上去都很漂亮。

9. Rank Checker(排名查看器)

给力之处:Rank
Checker
由SEObook出品的一个火狐插件,可以让你随时检测网站关键词的排名。

SEOBook's Rank Checker

难看之处:并不难看,但速度太快。

10. Xenu’s Link Sleuth(链接侦探)

给力之处:很多人认为Xenu’s Link
Sleuth
是一个运行在桌面电脑上的链接检查器,可以帮你发现网站中的死链,但其极简的界面和通俗易懂的报告使其成为一个网站审计的得力工具。

Xenu

难看之处:在Google上搜索Xenu,你的第一反应是后退,检查搜索结果。有可能是SEO工具中有史以来最难看的登陆页面,好像是回到了1992年。但请放心,这个网站没问题,只是有外星人而已。

除非注明,本站文章均为原创或编译,转载请注明: 文章来自36氪

如何在一年之内毁掉惠普

  假设有人给了你一年时间,让你去灭掉惠普(Hewlett-Packard)。那么下面就是你的实施办法:
  首先炒掉业绩不错的CEO赫德(Mark
Hurd),理由是他费用报销违规,并且牵涉进一桩猛料迭出、但你也认为没有根据的性侵指控。炒掉四名董事会成员,越高调越好。煽动那些知道怎样运营这家电脑巨头的关键高管大规模出走。

  从德国竞争对手、卖企业级软件不卖消费产品的SAP公司挖来一位新CEO。告诉这位名叫李艾科(Leo
Apotheker)的新CEO,说赫德离开的时候惠普状态很好。
  吸引一家重要的公司治理咨询公司的公开批评,让它说,李艾科安插了自己的死党来填补董事会的空缺席位。
  高价从事并购和股权回购活动。让成本失控。想方设法在下次全球经济衰退到来之前把数十亿美元的现金储备花光。
  扬言要在PC上安装惠普自己的操作系统,刺激微软(Microsoft)和甲骨文(Oracle)。然后决定不这么做。还记得惠普去年12亿美元收购Palm公司时购得的大有希望的webOS软件吗?让它坐冷板凳去。

  当甲骨文的埃里森(Larry Ellison)跟《纽约时报》(New York
Times)说,惠普做出了苹果董事会那些白痴炒掉乔布斯(Steve
Jobs)以来的最坏人事决定时,马上变得怒不可遏。然后在埃里森把赫德招过去时提起诉讼。
  吹嘘自己将用499美元的TouchPad向苹果iPad发起攻击。然后以99美元的跳楼价甩卖TouchPad,并宣布以后再也不卖了。

  电告全世界说,你们实在太傻,做不出智能手机来。
  两次上调财务预测,然后两次失算。
  一定要让李艾科的备忘录泄露给媒体。这份备忘录说,看好每一分钱,把所有招聘规模降到最低。
  宣布以100亿美元收购英国商业软件公司Autonomy的计划,因为这家公司跟SAP一样都是开发企业级软件的,而李艾科最了解的就是这方面。

  宣布可能出售PC业务,也有可能是把PC业务分拆为一家独立的公司。不给出一个确定的计划将会伤及价格。
  别在意惠普成为世界最大PC生产商所做的多年努力,包括与康柏(Compaq)公司的争议性合并。别在意PC业务有利于惠普更盈利的业务。将它甩卖掉
实在是荒谬,正如金融服务公司Robert W. Baird & Co.分析师诺兰德(Jayson
Noland)所说,就像是麦当劳(McDonald’s)不再做汉堡业务。
  冷眼旁观穆迪(Moody’s)下调惠普评级的威胁。
  惠普股价重挫40%以上的时候表现得大感意外。
  跑到华尔街去讲一些冗长的、让人不知所云的故事,说你是怎样在把惠普从一家低利润率企业转变为一家高利润率企业。
  从前CEO菲奥里纳(Carly Fiorina)的惨败,到前董事长邓恩(Patricia
Dunn)的非法窃密丑闻,再到赫德似乎完全与性无关的所谓性丑闻,这一切失灵就构成了”惠普之道”。
  惠普炒掉赫德已有一年时间。安乐死先驱人物凯沃尔基安(Jack
Kevorkian)也无法为一家公司的安乐死制定出一个更好的方案。但正如这位好医生曾经说的,死不是犯罪。。

从Rails聊聊小公司的研发团队建设(转自ITEYE ROBIN)

首先分享一点数据吧:

JavaEye的PV到了140万了,一年前才100万出头,增长算不错的。仍然是单台Web服务器,Rails处理动态请求超过340万,除了
真实用户访问,还有API,RSS以及很多爬虫的请求。看JE的alexa排名,CN排92名,全球790名,不过就2台服务器(1个web+1个
DB),2个程序员而已。

所以选择技术的时候,不能盯着TOP10的商业网站看,因为很少有创业团队最终能够走到TOP10,也不需要走到TOP10,即使现有的语言和架
构无法满足需要了,更换技术架构的网站也很多:2000年我在上海出入IDC机房的时候,旁边是易趣的服务器,都是用FreeBSD跑PHP,可是后来易
趣大了以后,迁移到了Java平台;阿里巴巴早期也是用PHP的,后来请了SUN的团队帮助做架构,后来慢慢迁移到Java平台了。而且正如很多人所说
的,一个大访问量和高负载的网站,性能好坏取决于架构,而不取决于编程语言,用什么编程语言都可以架构出来一个很强大的网站,所以,现实一点来说,选择什
么编程语言,更多的是从团队建设的角度来出发的。

因为每个团队的情况都不同,就拿我们自己来说吧:

招聘一个PHP的10人团队难不难?
难!非常难!我们现在连一个PHP程序员都招不到,投递简历过来的,绝大部分通知面试都不来,其中还有一个竟然这样和我们说:今天我没空,改天我面试你们
附近一家公司,顺便去你们公司面试。偶然幸运的来的几个候选人一聊,很多基本功都不过关。

上周末搞活动,有腾讯的哥们问我,有PHP程序员推荐给我啊,我们急需,我听了都想吐血。你们腾讯,百度,新浪,网易都在北京狂招PHP程序员,还给不给我们小公司活路?何况你们现在都招不到,我怎么可能招得到?

反过来说招聘一个3-4人的Ruby团队难不难?
也难,但是难度小一些,起码可以自己培养,而且自己培养出来的3-4人的Ruby团队的生产力会超过10人的PHP团队,也许单人成本高一点,但是整个团队的综合人力成本会更低,团队战斗力还更强。

其实这里面引申出来一个问题:小公司应该组建什么样的研发团队?
大规模普通水平普及型编程语言团队,还是高效率高生产力小规模团队?我认为目前小公司唯一的活路就是高效率的小规模团队,这样的团队才能充分发挥小公司灵
活创新的特点,才有可能在某些方面战胜大公司,也才有可能在人才竞争方面胜出。

小公司如果想组建大规模普及型编程语言团队,往往是个看似容易,实则无法实现的泡影:一方面普及型编程语言招聘需求旺盛,跳槽频繁,你比大公司在
人才方面的竞争力弱,不可能招聘到很多合适的人才;另一方面小公司去管理上规模的研发团队,管理上的挑战非常大。我们都知道,研发团队每增加一个人,沟通
成本都指数级上升,规模到了一定的阶段,就必须动用严格的KPI体系,而不是靠个人激励来管理研发人员,而一旦制度化管理研发团队,隐性的人力成本浪费就
是惊人的。最终结果就是你的研发团队规模越大,整体生产效率越低,而整体生产效率越低,你就被迫越扩大研发团队的规模,最终陷入恶性循环。

JavaEye的实践可以证明,高效率小规模团队的生产力可以超过大规模普通研发团队。其实我也很想有大把的钞票,很好的公司品牌,牛人们纷至沓
来的那种感觉,但是那都是幻觉。我们要以弱胜强,以少胜多,就必须选择自己build团队,自己培养人才,采用高效率的秘密武器。

最后推荐一篇文章: Rapid Development with Rails ( OSDC 演講)

原文链接:http://robbin.iteye.com/blog/972242

转CSDN研发和运营总监Robin的一篇文章《我来CSDN的这一年》

对网站运营型公司的研发和运营管理有很多参考和借鉴之处!

=========================================================================

从ITeye(JavaEye)被CSDN收购,我从上海搬家到北京上班,眨眼之间已经过去了一年多。回顾过去这一年,生活环境发生了巨大改变,工作的职
责和角色也重新定位,面临了一些新的困难和挑战。总体来说,感觉自己这一年过得很充实,很有成就感,在公司的大力支持下,计划做并且花了时间和精力努力的
事情基本都做成了,如果要给自己打分的话,我会打80分。那剩下的20分代表本计划去做却没有时间或者精力做的事情。希望在未来的一年,可以把我剩下的
20分也做好。

2010年3月 – 2010年8月

2010年3月底我到CSDN报道,接手了公司研发部门和产品运营部门,负责CSDN(包括ITeye)网站所有产品,研发,系统运维,网站运营
的工作,不过一直到8月我经常不在北京:一方面经常往返北京和上海处理公司并购的事情;另一方面因为母亲病重常常回家照顾。这段时间主要是熟悉公司的状
况,了解部门业务和员工。当时部门士气很低落,两个部门总共17个员工,在我接手部门前已经有两个员工提出了辞职,后来陆续有员工离开,到8月底部门剩下
了10个人。考虑到自己也是新人,需要时间了解和适应公司,另外刚刚空降,应安抚老员工保证部门正常运转,因此这段时间做了几项有针对性的改良措施:

1、两个部门人员很少,部门之间协作却存在互相推诿;我和基层员工隔了部门主管,团队经理两个层级,不利于深入业务层面进行调整。因此进行了组织架构调整:合并两个部门取消部门主管层级,改设5个团队,团队经理直接向我汇报,减少管理层级,提高执行效率。

2、逐步建立和完善部门规范的管理制度,如:使用JIRA进行整个部门的工作任务量化管理;建立定期周会,周报和月报制度;我亲自制定了部门绩效考评内容、评分标准和奖励等级;要求团队间工作配合必须邮件书面确认抄送给我等等。

3、针对公司过去跨部门配合出现的混乱状况,明确了本部门和公司其他部门合作流程,并要求跨部门合作必须抄送我和相应部门高管,得到我邮件确认才准执行。

4、针对公司过去产品无规划无设计的状况,设立产品团队,制定产品设计流程,我兼任产品经理主抓产品,并开始培养产品设计人员。

在我来公司前,CSDN无产品设计和研发流程,无论部门内部还是跨部门产品研发,都是业务人员直接找负责该产品线的程序员下命令修改;大的产品研
发,业务人员找UI设计人员做一套页面就发给程序员要求XX时间完成,相互之间缺乏沟通:一方面程序员反感和抵制没头没脑的需求和毫无计划性的产品变更,
觉得自己被使唤来使唤去在公司没地位;另一方面UI设计人员被迫承担了本应该是产品经理的需求搜集和产品设计工作,盲人摸象的做完就交差;最后是业务人员
抱怨UI设计人员和程序员根本不配合,觉得他们都是大爷哄着才能干活。结果团队之间部门之间推卸责任,事情做不好只怪对方不给力,自己全然没责任。

针对这种状况我设立了产品团队,亲自兼任产品经理把所有产品都抓过来统一管理。无论部门内部还是跨部门产品研发,统一走产品设计流程:所有产品先
经我批准,然后在产品团队立项,走产品原型设计流程,接着才是UI设计和页面制作,最后才是程序员研发。从源头上狠抓产品原型设计,在原型设计阶段反复推
敲和修改,慎重的对待每项产品功能,避免了后续UI反复推翻页面设计,程序员反复改产品的大问题。从CSDN产品角度来说这段时间做了一些小的产品改进,
如主题课堂,织梦内容发布系统,投票评论留言,新浪微博整合等,但主要工作在梳理CSDN混乱的产品线,通过两次清理,关闭了100多个废弃或者很少被使
用的子网站和域名,关闭了很多鸡肋性质的频道,以及核心产品的鸡肋功能。

这几个月虽然做了大量的部门建设工作,员工士气得到了很大的提高,但员工流失仍然在继续。而且我反复强调的工作理念得不到良好的贯彻执行,员工完成的任务质量离我心中的标准差距很大。

2010年9月 – 2011年1月

2010年8月底我彻底base在北京办公,这个时候部门员工只有10个人:3个程序员,3个社区运营和客服,2个网站运维,1个产品设计,1个
UI制作,巧妇难为无米之炊。所以9月和10月在公司支持下进行了一轮大规模招聘,总共招聘了10名新员工,重新build了整个部门团队,开始取得了一
些成绩,但也遇到了非常大的困难。

在部门团队build方面:设立了PHP,.net和Ruby三个研发团队,分别负责不同的产品线;公司整个UI团队也划到我部门管理;网站的社
区运营方面增设了内容审核团队,后来我又将运营团队分拆成CSDN运营和ITeye运营两个团队,加上原有的产品设计和运维,总共有8个团队经理直接向我
汇报。

在产品和研发方面:彻底重写了CSDN用户管理功能(以下称passport),数据库也迁移到了Linux下MySQL;编写整个CSDN的搜索部分代码,提供了全文检索;对CSDN网站全站导航进行了重新设计和改造;开发了新的针对移动的cmdn社区(后废弃)。

由于CSDN各产品线都是独立的,因此需要统一的用户注册登录管理产品passport。在过去,passport代码极其臃肿,不同产品线的登
录代码直接hard code在源码中;数据库使用SQL
Server,大量有用无用的存储过程调用,用户表数据量庞大,而且非常多无用冗余字段,查询缓慢,用户时常无法登录;而且CSDN用户注册和登录页面的
用户体验极其糟糕;最后CSDN很多产品以各自的方式调用passport,导致passport不得不维护多套协议适配各种产品。因此欲改进CSDN网
站,必先动passport,而一动passport,则牵一发而动全身,CSDN所有产品都可能出问题。因此在动手重写passport之前,我耐心等
待了好几个月,一方面一遍一遍做CSDN产品线梳理,尽可能找出所有耦合产品提前解决隐患;另一方面等待各部门高管一致表态愿意承担各自产品线出问题的代
价来支持重写。

新的passport产品从2010年9月设计到2011年元旦上线花了3个月时间,passport产品看似需求简单,代码量不大,然而却有非
常多的细致工作:重新设计整个用户登录验证功能,以确保更高的账号安全性;尽可能的测试所有CSDN需要登录验证的产品线,跨不同编程语言,以确保兼容
性;由于账号数据库达到了1700多万条,必须使用缓存来提高用户账号数据查询效率;详细的登录日志记录、授权记录以及账号审核功能以确保误操作的可追溯
和找回;庞大的数据量从SQL
Server迁移到Linux下MySQL的迁移效率问题;重新设计用户注册,登录和账号设置,改进用户体验等等。新的passport产品上线并不引人
注目,但意义非常重大,它是第一个真正讲究产品设计和用户体验的CSDN产品,而且解决了passport问题,其他产品才有可能改进。

这段时间遇到的最大困难是我始料未及的团队融合问题:9月和10月集中入职了10名新员工,整个部门有一半都是新人,但到11月有5名新员工离
职。公司招聘新人留不住是个很严重的问题,这也是我进CSDN以来遇到的最严峻的挑战。新员工离职虽然有很多原因,但最核心问题在于两点:

1、新员工入职过多过于密集比例过高,我没有高度重视新员工的融入问题。后来关于新员工融入也有很多经验和教训:新人入职前两周对公司的印象决定
了他对公司的最终印象;新人入职第一个月适应与否决定了他在这家公司会待多长时间。那段时间集中入职了10个新人,没有制定系统的新人融入计划,而我又有
一周多时间不在北京,新人茫然无措。

2、虽然经过我前几个月的调整,但当时部门都是工作多年的老人,老的风气和习惯已经形成了很顽固的不良文化,新人很难适应这种不良的文化和环境,同时又被个别老员工灌输了太多公司n年前沉芝麻烂谷子的负面八卦,工作情绪受到很大的影响。

公司文化说起来很飘渺,但它又实实在在影响每个员工。一个新员工进入一家公司,要么被公司的文化同化,要么自己适应不了离开。而这次是大批新员工
入职,老的公司文化和新员工群体之间的融合问题突然变得很尖锐,大批新员工离职就是一个很糟糕的信号。我当时感觉到这是个生死攸关的挑战和契机:如果任由
这种情况发展下去,老的公司文化会迅速吞噬掉新的员工,然后整个部门回到一开始死气沉沉的状况,我所有的努力都会化为泡影。一鼓作气再而衰三而竭,这次如
果不能借新员工入职来冲击和改变老的公司文化,而是任由新员工全部流失,以后未必能有第二次机会和心气去改变整个团队的风气,因此我下定决心把整个部门风
气彻底扭转过来,并且针对性采取了一些措施:

1、加强部门内部的沟通和交流,打造一个交流氛围浓厚,成员关系很融洽的部门。鼓励员工工作时间经常热烈讨论和交流,甚至说说笑笑,无拘无束。

2、重视团队内部的分享,团队间轮流进行内部培训,将自己最近钻研的工作和技术心得向大家分享
3、在部门内部加强团队管理,树立赏罚分明,及时落实的威信,发现问题迅速解决避免拖延;
4、抓重点团队主次分明,在团队建设积极向上的交流氛围,推动整个部门风气的转变;
5、坐在员工旁边,及时和员工交流,杜绝各种杂事,拿出时间多和员工交流;

我原来有自己独立的办公隔间,但坐在隔间里面不方便和员工直接交流,也不利于发现团队的问题。所以我就干脆搬到员工的工位坐,这段时间主抓哪个团
队的工作,就搬到那个团队中间的位置坐,随时随地和员工沟通,检查员工工作,及时解决团队出现的问题,并且这样做也可以身体力行的教会员工怎样正确的做事
情,怎样达到我要求的工作标准,怎样成为一个优秀的员工,怎样避免犯不应该出现的错误;此外我给自己设置了3个月的冻结期,从11月到春节前除了必须在上
海出席的SD大会之外,杜绝一切外事活动,专心致志在公司蹲点练好部门的内功;在抓团队工作的时候,深入到业务层面提高工作要求,如对研发团队我会做详细
的code review,对产品团队我会仔细检查每个产品原型设计。

经过3个月的不懈努力,整个部门的风气被彻底扭转过来了,新人和老人开始融合成为了一个集体,团队的执行力得到了巨大的改变。过去我下达的一个命
令,要我自己一个环节一个环节盯下去才能完成,这个时候下达一个命令,整个团队就会动起来自己按部就班的执行下去,并且这种风气反过来开始影响老的员工,
推动老员工开始转变。我所管理的部门从3月底接手的时候被公认是公司最差的部门,到年底变成了公司风气最好的部门。

2011年2月 – 2011年7月

虽然部门的风气已经开始走上了健康的自我循环,但部门缺岗仍然很严重,过完春节之后整个部门有20个员工,这个时候遇到的最大问题就是招聘荒了。
今年2月-3月是整个IT行业招聘都特别困难的时期,一方面由于各大互联网公司特别是电子商务和团购网站的疯狂招聘,另一方面IT人才供给开始减少,连大
公司招人都很困难,更不要说我们了。在4月之前长达1个半月招聘期间一个新人都没有招到,而且由于各种原因陆续有人离职,到4月,部门员工又缩减到14
人,团队又需要重新build了。

从2月到5月份我的核心工作就是招人和build团队,整个招聘状况从4月份开始转变,4月-5月招聘了大量的新人,同时也有很多公司内部转岗的
员工,到现在,整个部门人员已经扩张到了11个团队总共36人。由于有了去年的惨痛教训,对新人入职进行了高度重视,因此虽然入职本部门有22个新人,远
超过原部门员工14人,但新人融合情况非常好,整个部门蒸蒸日上:

1、我将带新人列入各个团队经理的绩效考核项目之内,加强对团队经理带新人方面的考评;
2、每周和各团队经理沟通新人入职后的表现状况,入职前两周几乎天天询问团队经理,对新人出现的各种状况立刻采取应对措施;
3、我定期对入职新人进行本部门的新人培训,帮助新人迅速了解部门状况;
4、对团队经理们进行管理培训,教会他们如何带好新人;

由于一方面高度重视新人适应期,另一方面经过去年底的风气扭转已经形成了良好的部门文化氛围,因此除了个别拿我们当去大公司跳板的无良新人,绝大
部分新人都很好的融入了部门,并且随着新鲜血液的不断加入,很多新人工作的冲劲和心气对部门文化氛围不但没有冲淡,反而对部门文化进行了很大的加强,而这
种更加活跃,更加积极主动承担责任做事情的态度反过来又不断激励了部门老人改变自己的作风,以更加积极的态度工作,新人和老人之间的互相促进起了美妙的化
学反应。

在部门团队build方面,扩张到了11个团队:3个产品团队:产品设计,产品UI,平台UI;4个研发团队:PHP,Ruby,.net和搜
索;3个运营团队:社区运营,内容审核,高校俱乐部,此外还有系统运维团队,这11个团队经理直接向我汇报,整个部门职能团队基本齐全了。在我来CSDN
之前,公司没有产品设计团队,产品设计方面一片空白;社区运营团队也十分残缺,干的活根本就达不到运营的基本要求,所以我针对性的build了产品团队和
运营团队:

1、设立了产品设计团队,制定了规范的产品流程,强调以互联网产品设计驱动整个产品设计,UI,研发和运营流程,将目前公司所有平台级产品开发统统规范起来了;

2、搭建了两个职能分开的UI设计团队:产品UI团队紧密配合产品设计团队,负责产品UI设计和页面制作;平台UI团队负责公司商务,会务,编辑,市场以及平面宣传品方面的设计;

3、对运营团队进行了重点建设:分设CSDN和ITeye的网站运营和客服人员,搭建了一支社区运营编辑团队,此外在公司内部进行社区运营之道的系列讲座,以及对社区团队进行专业知识培训,灌输运营理念,强化运营人员的专业水平;

在产品方面,根据公司整体战略和其他部门的需求,改版上线了CSDN博客产品;重写改版了CSDN学生大本营和高校俱乐部;重写改版了CSDN移
动频道,云计算频道,对资讯频道和软件研发频道都进行了相应的改版;ITeye网站制定了全站整体的产品改版和改进计划,已完成了资讯产品改版,博客产品
改版,精华频道开发,资讯采集和管理平台开发,审核系统开发,多账号登录等,正在和即将完成的还有全站消息通知系统开发,群组产品开发,网站首页改版,问
答改版,论坛改版;此外还有CSDN下载产品,外包产品和俱乐部产品的设计和研发工作等等,这些产品将在今年下半年陆续上线发布。

CSDN博客是其中开发周期很长的产品,由于我主要精力都放在招聘和团队建设上,放松了对博客产品的管理,而手下产品经理的能力和权威尚不足以独
自掌控博客产品,因此到5月底,产品开发陷入了失控的边缘。这个时候我召集产品,UI,研发和运维团队进行了博客产品特别团队的立项,下了死命令6月底产
品必须公测,由我主持所有相关人员每天下班前开会,review每天进度,同时产品经理每天根据会议情况写日报抄送给大家,我亲自抓每个产品细节和每天项
目进度。两周之后,产品状况得到了彻底扭转,此时我让运营团队也加入特别项目组,开始进行博客上线前期的运营准备,包括邀请用户内测,定期发布公告,整理
博客专家等等,最终博客产品顺利上线并且取得了良好的效果。

CSDN博客产品的成功推出和后续成功的运营对团队有很大的鼓舞作用,它并非各团队配合最好的产品,但从博客产品开始,我手把手教运营团队如何处
理一个产品从上线前准备,到上线,到上线后持续运营,以及如何制定专家运营策略,博客推广策划,如何掌握运营节奏等。在CSDN博客产品上线之
前,CSDN的运营还没入门,从博客产品开始有了真正意义上的运营。此外产品,UI,研发和运营团队从博客产品开始进行充分的磨合,中间暴露了很多问题,
也取得了一些宝贵的经验:今后核心产品的研发从立项开始,我就会召集产品设计,产品UI,产品研发和运营四个团队参与,从一开始就紧密配合,共同完成好一
个产品的设计,研发,上线和运营流程。

个人总结

回顾这一年多的工作,觉得自己取得的成绩有以下方面:

1、在公司的大力支持下,彻底改变了部门的风气,打造了一支积极进取,配合默契,对工作有责任心,执行力高的团队,尤其让我欣慰的是当我出差一周不在北京期间,整个部门仍然有条不紊各负其责的运转,所有工作按计划照常推进;

2、在部门内部树立了规范的制度化管理,各个团队的工作都是在有目标有计划有策略开展,整个部门做事情条理性很强,思路很清晰;
3、打造了一支专业的产品设计团队,正在培养一支专业的运营团队;制定了从产品设计,UI设计到研发和运营配合良好的产品流程,个人觉得这种专业化的产品团队配合在国内互联网公司并不多见;

4、已经做了一些成功的产品,正在继续做更多成功的产品,这些产品将在今年下半年集中发布

亦留下不少遗憾和不足:

1、针对我接手前团队一盘散沙的现状,进行了一系列部门调整,说到底宗旨只有一条:进行中央集权式管理。将所有决策权和团队协调工作,跨部门协调
工作全部集于我一人,依靠我在公司的地位、威望和个人能力来推动所有的事情往前走。这样做的好处当然是立竿见影的解决掉了所有的问题,团队执行力也非常
好,通过一年的努力也彻底改变了部门状况。但负面影响就是我很忙也很累,直接向我汇报工作的人就有11个人,加上部门常规管理,帮助个别团队解决问题,跨
部门工作协调,公司高管会议等等,每天都忙得不可开交。

我也考虑在合适的时间将权力下放,将一个大部门再分拆成三个子部门,分别是:产品UED部门,下辖产品设计,产品UI和平台UI3个团队;研发部
门,下辖PHP,Ruby,
.net,搜索和运维5个团队;运营部门,下辖社区运营,内容审核,高校俱乐部和架构师俱乐部4个团队。产品UED部门和运营部门设立部门主管职位,研发
部门主管我自己兼任,但改设首席架构师职位,负责架构设计和code
review。但目前主要的障碍就是缺少主管级人才,而且整个部门团队都是我手把手带出来的,工作方式已经深深打上了我的烙印,要寻找到能够从气质上能力
上都符合的主管殊为不易。

2、缺人,严重的缺人!
目前的产品团队只有2个人,还大大的缺少产品设计人员和产品经理,以致于我自己和产品人员都身背多个核心产品的设计和管理工作,负担超重;搜索团队还缺少
经验丰富,对数据挖掘有研究的资深工程师,以致于严重影响到了规划中的数据分析工作;网站编辑还缺人,ITeye网站的运营最缺少的就是优秀的网站编
辑,ITeye网站品牌的重振需要编辑人才的加盟;最后有经验的Ruby工程师,我强烈的召唤你!
=====
招聘软文的招聘链接部分省略~呵呵,有兴趣的同学去原文看。
=====

如今CSDN无论从我管理的部门还是整个公司,都在蒸蒸日上,正处在需要更多优秀的人才大战拳脚的时候,在这里,你可以在一个非常舒适和开放的文化环境中工作,飞速的提升你的经验和能力,做出很多令人瞩目的成绩!

原文链接:http://robbin.iteye.com/blog/1136859