太阳侠

我是一颗恒星


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

安装sqlserver2000出错,一般性网络错误

发表于 2016-04-21   |   分类于 服务器

问题:

安装sqlserver2000出错,一般性网络错误,错误提示如下:

安装程序配置服务器失败。参考服务器错误日志和C:\windows\sqlstp.log了解更多信息
正在启动?

Chinese_PRC_CI_AS

-m -Q -T4022 -T3659

正在与服务?

driver={sql server};server=zhangxx\MATCHONE;UID=sa;PWD=;database=master

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]一般性网络错误。

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionRead (WrapperRead()).

driver={sql server};server=zhangxx\MATCHONE;UID=sa;PWD=;database=master

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]一般性网络错误。

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionRead (WrapperRead()).

driver={sql server};server=zhangxx\MATCHONE;UID=sa;PWD=;database=master

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]一般性网络错误。

[Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionRead (WrapperRead()).

SQL Server 配置?

###############################################################################

13:11:03 Process Exit Code: (-1) 
13:11:25 安装程序配置服务器失败。参考服务器错误日志和 C:\WINDOWS\sqlstp.log 了解更多信息。
13:11:25 Action CleanUpInstall:
13:11:25 C:\WINDOWS\TEMP\SqlSetup\Bin\scm.exe  -Silent 1 -Action 4 -Service SQLAgent$MATCHONE
13:11:25 Process Exit Code: (1060) 指定的服务并未以已安装的服务存在。

13:11:25 C:\WINDOWS\TEMP\SqlSetup\Bin\scm.exe  -Silent 1 -Action 4 -Service MSSQL$MATCHONE
13:11:25 Process Exit Code: (0) 
13:11:25 StatsGenerate returned: 2
13:11:25 StatsGenerate (0xc0200006,0x1,0xf000000,0x300,2052,303,0x0,0x1,0,0,0
13:11:25 StatsGenerate -1,zhang)
13:11:25 Installation Failed.

SQL SERVER 2000在C:\windows\sqlstp.log中提示错误如下:
=======================================================
driver={sql server};server=soyo;UID=sa;PWD=;database=master
[Microsoft][ODBC SQL Server Driver][Shared Memory]一般性网络错误。
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionRead (WrapperRead()).
driver={sql server};server=soyo;UID=sa;PWD=;database=master
[Microsoft][ODBC SQL Server Driver][Shared Memory]一般性网络错误。
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionRead (WrapperRead()).
driver={sql server};server=soyo;UID=sa;PWD=;database=master
[Microsoft][ODBC SQL Server Driver][Shared Memory]一般性网络错误。
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionR
=======================================================

解决方案

把计算机名改为大写,重新启动

OK 真的解决问题。

另外提示一下,在安装sqlServer时 安装路径下不能有中文!

windows2000/2003/2008中安装sqlserver 2000图文教程

发表于 2016-04-21   |   分类于 服务器

本文章来详细的以图文形式来说明在windows操作系统中如何来安装sqlserver2000数据库的方法,有需要了解的朋友可以参考一下。

首先是sql2000的第一部分,rar包的安装过程:

第1步:解压rar的sql2000压缩包到当前路径,点击autorun.exe或者setup.bat进行安装,如下图:

第2步:点击”安装SQL Server 2000 组件”,如下图:

第3步:点击”安装数据库服务器”,如下图:

第4步:点击”继续”,如下图:

第5步:点击”下一步”,如下图:

第6步:选择”本地计算机”,如下图:

第7步:如果出现如下图的报错,请重启服务器,然后重新安装sql2000,如下图:

第8步:选中如下图的按钮,点击”下一步”,如下图:

第9步:默认,不用修改,点击”下一步”,如下图:

第10步:点击”是”继续,如下图:

第11步:选择”服务器和客户端工具”,点击”下一步”继续,如下图:

第12步:选中”默认”,点击”下一步”继续,如下图:

第13步:修改安装路径,一般安装在非系统盘,D盘或者E盘,如下三张图片:

第14步:选择”使用本地系统账户”,如下图:

第15步:选择”混合模式”,并输入sa(管理员)密码,如下图:

第16步:点击”下一步”,如下图:

第17步:在”每客户”输入5,如下图:

第18步:点击”继续”正式进入安装过程,如下面几张图:

第19步:点击”完成”.

接下来是sql2000的第二部分,sp4补丁包的安装过程:

第1步:解压sql2ksp4.rar这个压缩包到当前路径,点击setup.bat进行安装,如下图:

第2步:点击”下一步”,如下图:

第3步:点击”是”,如下图:

第4步:继续点击”是”,如下图:

第5步:点击”下一步”,如下图:

第6步:选择”我用来登录到自己计算机上的windows账户信息(windows身份验证)”,点击”下一步”,如下图:

第7步:勾选”升级microsoft search 并应用SQL Server 2000 SP4(必须)”,点击”继续”,如下图:

第8步:点击”确认”,如下图:

第9步:点击”下一步”,进入安装过程,如下图:

第10步:点击”完成”,如下图:

至此,sql2000全部安装完毕.

原文参考

MySQL数据库升级或者迁移

发表于 2016-04-12   |   分类于 Web构建

假设数据库根目录为 mysqlroot,则:

使用cmd切换到目录mysqlroot/bin,然后使用命令

mysqldump -u root -p 密码 --all-databases > all.sql

把整个数据库里所有数据库文件备份到all.sql
根据数据库文件的大小,需要导出的时间不同。只要没有提示错误,在命令行看不到结果,实际上就是在执行。可以在bin目录下查看正在生成的all.sql文件一直在增大。

备份完整之后,把all.sql移动到合适的目录备用。

导出导入数据库命令

升级或者迁移数据库,mysql配置好可以正常使用以后,在“根目录/bin”下执行命令

mysql -u root -p 密码 < all.sql

则原备份数据库可恢复。

注意:实际在命令行执行时,出现“密码”的地方留空即可,等当前这一条命令输入完毕按回车之后会提示输入密码。

win7(64位)php5.6-Apache2.4-mysql5.6环境安装

发表于 2016-04-12   |   分类于 Web构建

软件版本:

php-5.6.20-Win32-VC11-x64.zip
下载地址: http://windows.php.net/download

httpd-2.4.20-win64-VC11.zip
下载地址: http://www.apachelounge.com/download

mysql-5.6.29-winx64.zip
下载地址: http://dev.mysql.com/downloads/mysql

安装前请注意:

你注意下下载PHP,Apache的网站,上面有提示要安装Visual C++库的。

Apache2.4需要VC10库支持,Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)

PHP5.6需要VC11库支持,Visual C++ Redistributable for Visual Studio 2012 Update 1

注1:如果Apache2.4没有安装VC10库,会出现错误。

注2:如果PHP5.6没有安装VC11库,会出现错误。

一、安装配置Apache2.4.20(httpd-2.4.20-win64-VC11.zip)

1、解压下载的安装包:httpd-2.4.20-win64-VC11.zip将其放到自己的安装目录(我的目录C:\wamp\Apache24)

#####2、然后对http.conf(C:\wamp\Apache24\conf\http.conf)配置文件进行修改

(1)修改ServerRoot Apache的根路径:(37行)

ServerRoot"C:/wamp/Apache24"

改成=>

ServerRoot "C:\wamp\Apache24"

(2)修改ServerName你的主机名称:(217行)

ServerName www.example.com:80

将前面的#去掉(改为自己测试域名或者127.0.0.1),该属性在从命令行启动Apache时需要用到。

(3)修改DocumentRoot

Apache访问的主文件夹目录,就是php、html代码文件的位置。

Apache默认的路径是在htdocs(C:\wamp\Apache24\htdocs)下面,里面会有个简单的入口文件index.html。这个路径可以自己进行修改,我这里将其配置在我自己新建的文件夹www(C:\wamp\htdocs)下。(247行)

 DocumentRoot "C:/wamp/Apache24/htdocs"
<Directory"C:/wamp/Apache24/htdocs">

改为=>

DocumentRoot "C:\wamp\htdocs"
<Directory "C:\wamp\htdocs">

(4)修改入口文件配置:DirectoryIndex

一般情况下我们都是以index.php、index.html、index.htm作为web项目的入口。Apache默认的入口只有index.html需要添加其他两个的支持,当然这个入口文件的设置可以根据自己的需要增减,如果要求比较严格的话可以只写一个index.php,这样在项目里面的入口就只能是index.php(274行)

<IfModuledir_module>
    DirectoryIndex index.html
</IfModule>

改为=>

<IfModuledir_module>
    DirectoryIndex  index.php index.htm index.html
</IfModule>

(5)设定serverscript的目录:(358行)

ScriptAlias/cgi-bin/ "C:/wamp/Apache24/cgi-bin/"

改为=>

ScriptAlias/cgi-bin/ "C:\wamp\Apache24/cgi-bin"

(6)(380行)

<Directory"C:/wamp/Apache24/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

改为=>

<Directory"C:\wamp\Apache24/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
3、启动Apache

开始—运行,输入cmd,打开命令提示符。接着进入C:\wamp\Apache24\bin目录下回车httpd回车,如图所示.
没有报错的话就可以测试了(保持该命令窗口为打开的状态)。

把Apache24\htdocs目录下的index.html放到C:\wamp\htdocs目录下,用浏览器访问会出现“It works”那么就说明apache已经正确安装并启动了。也可以自己写一个简单的index.html文件也可以打开。

4、将Apache加入到window服务启动项里面并设置成开机启动

先关闭httpd的服务(将命令窗口关闭即可)
重新打开一个新的命令窗口进入到C:\wamp\Apache24\bin目录下:
添加HTTP服务的命令是:

httpd.exe -kinstall -n "servicename"

servicename是服务的名称,我添加的是:

httpd.exe -k install -n "Apache24"

命令成功后会有成功的提示。此时可以在window服务启动项中看到Apache24这个服务
然后点击启动即可,若不想设置成开机启动的话也可以将启动类型修改为手动。

如果要卸载这个服务的话,先要停止这个服务,然后输入

httpd.exe -k uninstall -n "Apache24"

卸载这个服务。

当然也可以通过C:\wamp\Apache24\bin下面的ApacheMonitor.exe来启动Apache.这里就不多说了。

如此Apache的配置就基本完成了。

###二、安装配置php5.6.29(mysql-5.6.29-winx64.zip)

1、将下载的php-5.6.20-Win32-VC11-x64.zip 解压到安装目录下我的是(C:\wamp\php-5.6.20-Win32-VC11-x64)。

2、将目录下的php.ini-development文件复制一份并改名为php.ini,这是php的配置文件。

3、为Apache服务添加php支持

打开Apache的配置文件http.conf在最后加上

# php5 support
LoadModule php5_module C:/wamp/php-5.6.20-Win32-VC11-x64/php5apache2_4.dll
AddType application/x-httpd-php .php .html .htm
# configure thepath to php.ini
PHPIniDir "C:/wamp/php-5.6.20-Win32-VC11-x64"

这里我添加在LoadModule下面
添加的时候要保证你的php5apache2_4.dll文件确实存在。php5.5的早期版本里面是没有这个文件的,不过高点版本里面已经有了,可以打开php安装目录找下这个文件

PHPIniDir "C:/wamp/php-5.6.20-Win32-VC11-x64"

这个就是你的php根目录

4.重启Apache服务器。

5.测试。删除www中其他文件,新建一个index.php,内容为

<?php phpinfo(); ?>

保存,访问出现php的信息就说明php已经成功安装。

备注:
Php的一些常用配置修改:(C:\wamp\php-5.6.20-Win32-VC11-x64\php.ini)
时区的设置:

date.timezone = Asia/Shanghai

错误报告等级:

error_reporting = E_ALL

这个在开发模式下可以全部打开。

三、安装配置mysql5.6.29(mysql-5.6.29-winx64.zip)

MySQL5.6.29解压版(zip版)安装配置教程

现将MySQL5.6.29解压版(zip版)的安装配置过程记录如下,希望能给需要安装该版本的朋友一点参考作用。

1、下载MySQL 5.6.29

从MySQL官方网站mysql.com找到MySQL Community Server 5.6.29的下载地址为
http://dev.mysql.com/downloads/mysql/,在这里可以选择操作系统平台。下面有三个可选的下载文件,第一个是MySQL Installer 5.6 for Windows,这将下载下来一个.msi可执行安装文件。另外有两个解压版(Zip版)分别是Windows (x86, 64-bit), ZIP Archive 和 Windows (x86, 32-bit), ZIP Archive。下载下来,分别是mysql-5.6.29-winx64.zip 和 mysql-5.6.29-win32.zip。我选择的是Windows (x86, 64-bit), ZIP Archive,因为我的服务器操作系统是Windows 7 sp1 64bit。

2、安装MySQL 5.6.29

下载的zip包有349MB,下载了几分钟就好了。

(1)、将mysql-5.6.29-winx64.zip 解压到D:\mysql-5.6.29\目录。
(2)、清理里面的调试文件

打开这个目录,发现里面的文件夹和文件跟一个安装好后的MySQL基本没有区别。可能你会很郁闷,这个MySQL5.6.29居然有1.04GB,呵呵,仔细一看你就会发现,里面有很有调试文件。后缀为.lib或.pdb的,其实可以删除掉。还有一些名为debug的目录,也删除掉吧。这样是不是就小很多了。

(3)、创建my.ini作为MySQL的配置文件

默认情况下没有my.ini文件,这需要我们手工创建一个。怎么创建呢?有没有像php.ini那样有模板呢?其实在MySQL5.6.29中带了一个my-default.ini,可以算作模板,只是里面的内容实在太少了。于是我带大家手工创建一个my.ini。
直接创建一个文本文件,命名为my.ini。打开它,输入如下内容:

[mysqld]

#绑定IPv4和3306端口
bind-address = 0.0.0.0
port = 3306

# 设置mysql的安装目录
basedir=C:/wamp/mysql-5.6.29-winx64

# 设置mysql数据库的数据的存放目录
datadir=C:/wamp/mysql-5.6.29-winx64/data

# 允许最大连接数
max_connections=200

好了,这样一个基本的MySQL环境所需要的参数就够了。

(4)、将MySQL安装成服务

打开一个cmd.exe,将目录切换到C:\wamp\mysql-5.6.29-winx64\bin,运行:

mysqld -install

提示服务安装成功!运行services.msc并查看,确实有一个名为MySQL的服务了,启动它。

到此,MySQL5.6.29 已经可以正常使用了。

3、配置MySQL 5.6.29

安装完后还要配置一下才能正常使用。

(1)、my.ini的参数配置

关于my.ini里面更多更复杂的参数配置,我这里就不介绍了。需要对MySQL进行优化的兄弟们可以参照MySQL官网的手册来操作。

(2)、配置root用户登录

默认情况下root是空密码,所以直接运行

C:\wamp\mysql-5.6.29-winx64\bin\mysql -uroot -p

提示输入密码时,直接回车即可以root身份进入管理MySQL了。
root没有密码是太恐怖了,我们来给它设置一个密码。运行

C:\wamp\mysql-5.6.29-winx64\bin\mysqladmin -uroot -p password <新密码> 

将<新密码>替换为你的自定义密码,然后按回车。这时会提示输入密码,其实是指的原密码,原密码因为是空,所以这里再回车即可完成设置。

(3)、其它操作

用root用户及其新密码登录进去之后,就可以完成其它所有的正常工作了。在此我就不赘述了。

4、安装完成mysql之后,为php添加mysql支持

打开php的配置文件php.ini(C:\wamp\php-5.6.20-Win32-VC11-x64\php.ini)

(1)在721行
; extension_dir = "ext"

去掉前面的“;”,并改为

extension_dir ="C:\wamp\php-5.6.20-Win32-VC11-x64\ext"

打开php的扩展支持,ext文件夹下有很多php的扩展支持.dll文件,感兴趣的同学可以看一下。

(2)然后就是打开php的mysql扩展

在875、876行,去掉前面的“;”

extension=php_mysql.dll
extension=php_mysqli.dll

当然也可以打开881行的php_pdo_mysql.dll启用php的pdo支持我一般都用这个。

注:在第863行到第888行有很多扩展选择,你要用到什么,去掉前面的“;”就可以了。当然如果要添加其他的扩展支持如redis支持,php本身可能没有提供相应的dll文件,就需要自己去找到相应版本的dll添加到ext文件夹中,然后在配置文件中添加一个extension=…
完成之后,重启Apache。

在访问 phpinfo 的时候就可以看到。

至此,WAMP环境配置好了。过程中参考了网络上的一些资源,截图和实际配置都是本人亲自操作。

最后,来看一下配置,以应用软件后台显示的为准:

Win下php5.6的curl模块无效

发表于 2016-04-12   |   分类于 Web构建

表现:
1、在调用 curl_init 函数时,提示错误

Fatal error: Call to undefined function curl_init() in ……

2、在 phpinfo 页不显示 curl 模块信息。

前提:
在 php.ini 配置文件中已经启用了:

;extension=php_curl.dll

去掉了前面的分号,而且在ext目录下存在php_curl.dll文件。

解决方案:

官方说明文档中的 http://php.net/manual/zh/curl.installation.php

Note: Win32用户注意
要在Windows环境下使用这个模块,libeay32.dll和ssleay32.dll必须放到PATH环境变量包含的目录下。 不用cURL网站上的libcurl.dll。

I had to also also copy libssh2.dll into my Apache24 folder for this to > work with my PHP 5.6.2 installation. So altogether I had to do the > following:

Move to Windows\system32 folder:
libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll

Move to Apache24\bin folder
libssh2.dll

Uncomment extension=php_curl.dll

Win7 配置VC++11环境

发表于 2016-04-12   |   分类于 技术日记

首先,安装的Win7 旗舰版,注意不是 Win7 旗舰版 sp1的话,首先需要升级SP1补丁包,因为VC++11不能安装在Win7旗舰版上却可以安装在Win7旗舰版 SP1上。

这样选择的原因:Win7旗舰版SP1是离Win7最近的版本,方便升级。当然如果升级到Win10也可以。

1、下载Win7 SP1补丁包

官网下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=5842

2、安装Win7 SP1补丁包,安装成功以后,在系统版本中可以看到SP1字样。

3、下载VC++11的安装文件

官网下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=30679

4、安装VC++11环境

出现如图提示,则安装成功。

队列是什么

发表于 2016-04-07   |   分类于 技术日记

首先,队列是一种数据结构,用链表和数组都可以实现,队列的特点就是先放入队列的数据先出队列。

不过看到话题标签有Redis,猜测题主想问的应该是现在很广泛使用的消息队列(MQ)。这里的消息不只是简单的文本信息,也可以是序列化后的对象。现在比较流行的开源消息队列系统有Beanstalkd,RabbitMQ,Redis(可以作为队列系统使用)等,其核心作用都是先将消息数据通过系统接口按顺序放入队列(暂存于内存),需要时再按放入的顺序依次取出以作后续处理。

就拿我前段时间做的邮件发送系统举例:

系统以HTTP协议提供服务,对外提供的主要功能是发送邮件,API地址为 /api/msg.send。使用者只要以POST请求此地址,传入subject,body,recipient这三个参数,即可发送一封邮件。

方案1: 不使用数据库,不使用队列

请求接口时,控制器直接调用sendmail或外部smtp服务器发送邮件,整个发送过程HTTP请求处于等待状态,待邮件发送完成,返回发送结果(只是调用发送程序是否成功的结果,不是邮件真正的发送结果,真正发送结果需要分析邮件日志)

这个方案最简单直接,平时发送少量邮件是可以的,但是缺点也很明显:

  1. 因为接口调用时整个邮件发送过程都是同步进行的,每次请求都要等待邮件发送端完成处理,必然导致每次调用接口的等待时间增长。
  2. 当系统接口并发请求较高时,系统可用性不仅受限于WebServer的处理能力,还完全受限于邮件发送端软件的处理能力,其中任一环节故障就会导致整个系统无法提供服务。
  3. 若邮件发送端软件出现故障(比如SMTP连接超时),导致某次请求时邮件发送失败,那这封邮件内容便彻底丢失了,系统没有任何存留,不能实现自动重发。

方案2: 使用数据库,不使用队列

请求接口时,将要发送的邮件信息存入数据库,表结构如下:

id | subject | body | recipient | sent_at | failed_at | failed_times
然后在服务器上运行一个定时任务,每秒一次读取 sent_at=0 && failed_times < 10 的记录,随后调用邮件发送端发送邮件,成功后把sent_at设为当前时间,失败后设置failed_at并累加failed_times。 方案2已经用到了类似队列的思想。

相对于方案1的提升:

  1. 去掉了同步发送邮件的操作,接口请求响应会快很多
  2. 邮件发送失败后可以重发,邮件不会丢失
  3. 当邮件发送端完全失效后系统也可以接受邮件发送请求,待发送端恢复后可以继续发送邮件。

但还是存在缺点:

每次请求都会写一次数据库,当大并发量或者大数据量(一次请求包含100万个收件人)时,数据库负载过高影响稳定性,同时也会严重增加接口的响应时间(一下子写入100万条记录不是闹着玩的)

方案3: 数据库 + 队列

请求接口时,将要发送的邮件信息以JSON格式存入队列系统,放入的单个消息形如:

{
"subject" : "今天没吃药",
"body" : "感觉自己",
"recipient" : "mengmeng@da.com"
}

现在的队列基本上都是内存队列,数据存取非常快,一瞬间写入100万条数据再也不是难事。
随后,在服务器上运行一个常驻进程任务(Worker),实时监听队列中是否有新的消息(Job,此处指邮件信息)。当新消息进入时,从队列中取出消息,调用邮件发送端完成处理,发送成功后将此消息销毁并将消息内容插入数据库(同方案2),如果发送失败,将此消息重新放入队列,并加入一个60秒的延时标记,意味60秒后再取出处理。

这样改进后整个系统的吞吐量和响应速度将大大提升,而且同时也让系统支持了分布式运行的能力。每个Worker进程都可以视为一个处理节点,倘若把worker分散到不同的服务器上,便实现整个系统的分布式处理了,这也是队列的一个重要特性之一。

在我实际项目中还是做了许多基于方案3的改进,对于群发还使用了邮件列表和邮件模板等设计,整个系统类似Mailgun和Sendcloud的设计,等整个系统稳定下来,我会考虑将代码开源到Github。

这个例子只是队列的一个常见使用场景,一般来说在需要缓解数据库写入压力的场景下面,都可以考虑使用消息队列,还有一些需要分布式处理的情况下,也是队列很好的使用场景。

现在大部分语言都有成熟的消息队列处理组件,可以很方便的使用各种队列系统,比如我常用的Laravel 便原生支持了 Beanstalkd,Amazon SQS,IronMQ,Redis。

抱砖引玉,不足之处请指正,谢谢。

原文链接: https://www.zhihu.com/question/26533799

月入十万,难吗?

发表于 2016-04-02   |   分类于 生活感悟

题主提到的月入十万,显然是站在一个打工阶层的视角来看问题,所以凡是凭借资本和风险作为要素来取得回报的情况,不太适用,尽管我后面的故事会讲到这个。

先讲一个纯粹而简单的真理:所有打工者创造的价值都远远超过其获得的收入。

假如你是一个房产销售员,你每个月为公司创造的业绩可能是几千万,但你的工资只有几万块(已经很好了)。

你是一个产品狗,你主导的一款App为公司带来了千万级的投资,然而,你可能只拿到了不过三十万的年薪。

你是咨询顾问,没日没夜加班,做了一单三个月的项目,公司收取了客户300万的咨询费用,而你们所有项目成员,加起来不过拿到了30万的工资。

收入分配的要素按照优先级排序是:风险>资本>劳动。

对于单纯的打工者而言,往往其投入的要素是优先级最低的劳动,所以其在价值(收入)分配当中,也处于分配链的末端。

金融学里一个基本的理念是,所有资产定价都无法绕开风险这一核心要素,或者说资本资产的定价,就是对风险的定价,也没有什么大的问题。诺贝尔经济学奖的成果之一CAPM就是讲述资本资产的定价,取决于它同整体市场的联动性(风险大小,行业里叫beta)。

这就是为什么在投资行业,往往绝对收益(注意,未经风险调整之前)最高的是成功的天使投资,极端如MIH对腾讯公司的投资,3200万美元变为现在近600亿美金,回报2000倍,这一成绩全球投资界无人超越。这是对风险是价值分配的第一优先要素的最好例证。

不承担风险,是不可能获得高回报的。同样地,成功的创业者后续获得的一系列财富,也属于利用其承担的风险,参与对价值的分配。

第二个要素是资本。资本这一要素和风险往往是联接在一起的。但有时也可以是分离的,例如在Pre-IPO进入的资金,可能承担的风险就比较低,而早期的(互联网)创业者几乎不会凭借资本参与后续创业成功的分配。MIH类似的案例,则属于资本和风险相结合的情况,为多。

最后才是劳动。这就是为什么之前提到的那条真理如此普遍而纯粹。因为劳动的提供者,几乎不承担任何风险(如果失业算一个的话),无论公司经营情况如何,你总会获得规定的报酬。

第二个简单而纯粹的结论是:打工者创造的价值,通过让渡风险,大部分转移给了老板(股东)

企业价值的大部分是员工创造的,这个结论没有任何问题,没有哪个公司可以仅凭老板和几个管理层就能实现营业收入和增长。但只有老板承担了公司经营的风险,员工没有,甚至职业经理人也没有(顺便再鄙视一下那些臭不要脸的职业经理人内部控制公司的行为)。

员工通过让渡自己创造价值的大部分给老板,同时也让渡企业经营的风险,这其实是一项非常公平的交易。

市场对风险的定价,以及由此形成的承担风险作为首要优先要素参与产出的分配,大概是人类文明发展过程中最伟大的发明之一,如果是某个人发明了这个规则,我想这个人足够拿一百次诺贝尔奖。对风险的承担其实是市场发挥资源配置作用的关键之所在,承担风险的多少来决定最终的报酬分配,也是整个经济和商业体系运转最公平的保障机制。

哦对,富二代,官二代,贪腐呢?

如果你把各种二代和他们的家族作为一个整体对象来看,其实就很公平。贪腐官员,承担了落马的风险,所以他获得了应该有的回报,从这个意义上说,也是非常公平的。

所以,非常简单地说,

如若你不承担风险,你就只能过一般人的生活。一般人是什么意思?意思就是,概率这件事是很准的。

你不会买彩票中500万,你不会成为比尔盖茨或者李嘉诚,你不会坐飞机掉下来,我们当中很少的人会创业成功,我们之中有30%的人会离婚,我们之中大部分人会活过65岁,你也不会娶到范冰冰,或者嫁给王思聪,当然,王健林或者马云也不会哪天碰巧想起你来和你谈个生意。

以下讲几个真实的故事。

故事一,我本科同学,美国Top10大学硕士毕业,回国在北京金融街国内排名前三的基金公司任职。现在工作第4年,基本工资5万,股市好的年景加上年终奖,勉强可以满足月入10万。

故事二,学妹,94年,本科毕业刚刚拿到某国际顶级PE公司的任职机会,基本工资人民币3万5,我猜算上奖金,三五年之后,月入10万不是什么难事。

故事三,我自己。早年在PE/VC工作过,大概见过这个行业拿着高工资的大有人在,不仅月入十万,月入20万,30万的也不算罕见。但是,对我影响最深的不是这些人,而是我看过的一家企业。

创始人普通三本院校毕业,办培训班,对就是很多一本大学学生看不起的课外辅导机构,或者再通俗一点,家教机构。月入多少?我觉得没有意义,现在35岁,公司年入数亿。

这个故事是最直接最深刻让我意识到,财富的分配,不是按照学历,按照知识经验,甚至不是按照能力来的,而是按照承担风险来的,如我上述讲过的那样。

不一定是要创业。买股票也算一种。13年在香港,碰到美股大牛市,标普当年指数都上涨了超过30%,很多中概股翻好几倍。我们自己的基金也当时运气好抓住了VISN的两个交易周翻10多倍的情况,这样的结果,就不是月入十万的概念了。

你可能会说,买股票,或者至少上面描述的这样买股票,和赌博有什么分别? 没错,从承担风险这一点来讲,的确没有分别,不过这并不重要。

以上所有的论述只为表达一个观点:要想获得高收入(如题主所言的月入十万),不承担风险,是永远不可能的。生活绝大多数时候都是只见贼吃肉,不见贼挨揍的游戏,不要只盯着别人的收入,要看看别人背后承担了什么,你是否承担得起。

当然,承担风险以及能不能承担得起,又是另外一个比较大的话题,以后有机会我们再说。

————————————————–分割线—————————————————–

几个问得比较多的问题回复一下。

1,我承担了风险,但是也没见我赚了很多钱啊。

我从来没说过承担了风险就一定可以赚钱,我只是表达,你要指望有超出均收入很高的回报,必须要以承担风险为前提。数学里有几个定义,充分条件,必要条件,和充要条件,我假设大家分得清他们的区别。

2,官二代富二代承担了啥风险,名人承担了啥风险?

请不要孤立地看问题。二代们请结合一代一起考虑。谁规定老子的财富不能传给儿子?巴菲特裸捐还给儿子10亿美金生活费呢!如果一代创业承担了风险,为什么二代不能享受一代的成果?同理,名人明星请参考整个群体。每年多少人做着明星梦进了上戏北电中戏这些学校,但最后有几个人成了范冰冰汤唯赵薇?

3.到底应该如何正确理解“风险”?

依然举金融学的经典模型说明。现代金融理论和实务的基石CAPM的结论:

没有金融背景的同学不一定能看懂,不过不要紧。先简单讲一下这个公式,Ri表示任何一种资产i(可以是股票,债券,或者资产组合)的收益率(Return),Rf表示无风险收益率(可以简单粗暴地理解为储蓄存款利率,虽然理论上这样的理解是错误的),Rm表示资产i所在的市场的整体收益率,例如整个股票市场。而Beta则表示资产i的风险系数。它是资产i同市场的协方差与市场的方差之比。

以上讲人话就是,一项资产的收益情况,取决于它跟市场的联动情况(Beta),因为其他变量都是可以看着是外生的(Exogenous)。这在术语里叫系统性风险,举个例子,这几天的股市暴跌,属于此列。

整个金融实务和理论都建立在这个公式上。你可以找出任何一个公司的股票他有各种各样的自己独特的风险因素(非系统系风险),但是这些并不会决定它的股票回报,它的回报唯一地取决于它和整个金融市场的联动性Beta。

这个理论放到更广泛的范围来看,你需要承担了“系统性风险”,你才可能获取超额的回报。

系统性是什么意思?就是这个系统里的绝大部分人是没有办法通过合理安排自己的行为去规避的,大部分人都逃不掉的。

例如,1000个创业的人,900个人会死掉,如果把创业活动看做一个系统,这个系统性风险就是“大部分人会失败”,创业成功的人承担的是这个风险。再例如,炒股票,全球股市都有一个常识:7亏2平1赚,那参与者承担了90%的人最终不会赚钱和70%的人最终会亏损的“系统性风险”。

非系统性风险是什么意思? 非系统性,就是你可以通过合理安排你的行为去规避它。比如我今天过马路,理论上有概率发生车祸的。比如我去上班,理论上我也可能被公司楼上的广告牌掉下来砸死。再比如,我选择安稳工作,有可能面临失业下岗的风险。这些都是非系统性的,而且大部分人是可以规避的。

所以,要获取高收入的前提是要承担风险,而且往往承担的是系统性风险。但反过来是不成立的。并非充要条件。

原文链接:https://www.zhihu.com/question/37050422/answer/79851080

什么是“富人思维”

发表于 2016-04-02   |   分类于 生活感悟

如果每个人都理解你,那你得普通成什么样。

上面这句话不是我说的,是陈老师说的,虽然陈老师算不上大富之人,但是他这句话却道出了富人思维的本质:富人思维是什么,是少数人的思维,20%的思维,是小众思维。有人说这个话是在放屁,富人本来就是少数,我这样说是在语义重复。但其实不是这样的。

记不清什么时候谁给我说过这样一句话:如果你寻求的是一种大多人都觉得合理的生活,那你就会过上大多数人的生活。如果你安全感的起点在于大多数人的赞同,那最终也会过上大多数人的生活。

如果我们把富人当做一个群体样本(即不分割所谓的一代还是二代),你会发现,他们在一开始积累财富的时候,都走了和大部分人不一样的路。这种不一样,可能是不认可,不理解,反对,唾弃,甚至是法律的边缘,以及极端情况下,暴力革命。

为了积累财富,如果你开始做一件事,80%的人都觉得这件事很棒,那么极有可能你也就是这百分之八十,但很遗憾,富人是剩下那20%。如果你开始做一件事,99%的人都觉得很棒,那么你就成为不了剩下那1%的富人。

以我的调性,通常会把日常的解释上升到理论的高度的。于是我想到了金融学里的无套利定价原理(Non-Arbitrage Pricing)。它的核心思想是,如果同一个东西,在两个不同市场的定价有差异,那么套利行为会使得这种差异消失。

比如,白菜在北京卖5块钱一斤,在上海卖10块钱一斤,就会有人在北京买了白菜拿到上海卖,无风险套利。当然,我们没有考虑交易成本,比如白菜从北京到上海的交通费用,也没有提及很多假设,但不重要,我们不是回答金融学的考试题。我们理解当中的思想就够了。

如果80%的人都觉得这是个可靠的赚大钱的机会,那么以大家对赚钱的强烈渴望来讲,必然大家会迅速冲进去,结果是什么,竞争变得异常惨烈,最后大家都赚不到钱,或者能赚也只能赚到远低于预期的小钱。这就是无套利的结果。这里暗含的意思,越多人认可或者可以去做到的事情,套利的交易成本就越低,套利行为的发生就越容易,最后大家赚到的钱,也就越趋近于市场平均水平。

富人会怎么样呢,富人会选择小众思维,大家都不太容易接受或者没能力接受的事情去做,比如创业。90%的人会觉得,哇,这个好大的风险,我不具备相关的资源/能力/资金,我要再准备准备。万一失败了我会很艰难,而且成功率那么低,等等。但剩下那10%的人思维会完全相反。

他们一旦成功,会立马摇身变为富人,而且会自然形成极高的交易成本阻止其他人的进入,即阻止套利行为的发生。这里的交易成本就包括胆大、敢冒险、有赌性、有血性、对风险承担能力特别强等等。

具体地,我们以公司老板和员工(少数人,近似的理解为富人,和多数人,近似地理解为非富人)为例,来看多数人思维和少数人思维的区别。以下内容来自网络。

————

多数人:哇塞,他真有钱。

少数人:尼玛,我要想办法比他有钱。

————

多数人:编制,社保,养老金怎么办?

少数人:还要靠政府养老,弱爆了!

————

多数人:买了头牛,然后找个绳子来牵。

少数人:先找个绳子,以后可以牵牛。

————

多数人:人多的地方才安全。

少数人:人少的地方风景更美。

————

多数人:存下来的才是钱。

少数人:花出去的才是钱。

————

多数人:这人真牛逼,向他学习。

少数人:真人真牛逼,把他用起来。

————

多数人:输了会很惨。

少数人:赢了会很爽。

————

多数人:借钱是负债。

少数人:借钱是资产。

————

多数人:现在创业越来越不容易了。

少数人:以后的人会说现在创业真容易。

————

多数人:明天早上起来把这事儿办了。

少数人:现在就把这事儿办了再睡。

————

多数人:钱是生活的保障。

少数人:钱是生活的工具。

————

多数人:没钱没资源,所以创不了业。

少数人:没钱没资源,所以要创业。

————

多数人:完了,基本没戏了。

少数人:不错,还有一线生机。

————

多数人:真好吃,下次还来。

少数人:真好吃,怎么做的?

————

多数人:成功,要付出很多代价。

少数人:不成功,要付出更多代价。

————

多数人:这座山的风景真不错。

少数人:这座山的那边是什么

————

多数人:吃着碗里的,想着锅里的。

少数人:吃着碗里的,想着田里的。

————

多数人:这人病得不轻。

少数人:这人活得没劲。

————

多数人:别做梦了,现实点吧。

少数人:不做梦,不如去死。

————

多数人:跟着走,有事大家担。

少数人:跟我走,有事算我的。

————

多数人:有一块钱,办一块钱的事

少数人:有一块钱,办十块钱的事

————

多数人:试试吧,不行就算了。

少数人:干到底,不行也得行。

————

多数人:都是鸡汤,并无卵用。

少数人:这鸡汤怎么熬的,鸡肉在哪?

————

所以,要有富人思维,第一步是什么,是把自己从大部分人的思维先解脱出来,开始做一件事的时候,不要向大部分人寻求安全感和认可,毕竟你是要超越碾压他们的啊!

原文链接:https://www.zhihu.com/question/26980854/answer/93253662

Facebook公司内部PPT分享:如何高效工作

发表于 2016-03-20   |   分类于 工作学习

Facebook内部PPT,看看人家是如何高效工作滴

1、时间常有,时间优先。

2.时间总会有的:每天只计划4~5小时真正地工作。

3、当你在状态时,就多干点;不然就好好休息:有时候会连着几天不是工作状态,有时在工作状态时却又能天天忙活 12 小时,这都很正常的。

4、重视你的时间,并使其值得重视:你的时间值 1000 美元/小时,你得动起来。

5、不要多任务,这只会消耗注意力;保持专注,一心一用。

6、养成工作习惯,并持之以恒,你的身体会适应的。

7、在有限的时间内,我们总是非常专注并且有效率。

8、进入工作状态的最佳方式就是工作,从小任务开始做起,让工作运转起来。

9、迭代工作,期待完美收工会令人窒息:“做完事情,要胜于完美收工” Facebook 办公室墙壁上贴的箴言。动手做,胜过任何完美的想象。

10、工作时间越长,并不等于效率越高。

11、按重要性工作,提高效率。

12、有会议就尽早安排,用于准备会议的时间往往都浪费掉了。

13、把会议和沟通 (邮件或电话) 结合,创造不间断工作时间:一个小会,也会毁了一个下午,因为它会把下午撕成两个较小的时间段,以至于啥也干不成。PS:当看到一个程序员冥思苦想时,不要过去打扰,甚至一句问候都是多余的。

14、一整天保持相同的工作环境。在项目/客户之间切换,会效率低。

15、工作—放松—工作=高效(番茄工作法)—拖延症—高效。

16、把不切实际的任务分割成合理的小任务,只要每天都完成小任务,你就会越来越接近那个大目标了。

17、从来没有两个任务会有相同的优先级,总会有个更重要,仔细考虑待办事情列表。

18、必须清楚白天必须完成的那件事,是么。“Only ever work on the thing that will have the biggest impact” 只去做那件有着最大影响的事情。—— Jason Cohen

19、把任务按时间分段,就能感觉它快被搞定了。

20、授权并擅用他人的力量。—君子善假于物(人)也,如果某件事其他人也可以做到八成,那就给他做!

21、把昨天翻过去,只考虑今天和明天。昨天的全垒打赢不了今天的比赛。—好汉不提当年勇。

22、给所有事情都设定一个期限。不要让工作无期限地进行下去。

23、针对时间紧或有压力的任务,设置结束时间,万事皆可终结

24、多记,多做笔记

25、进入高效状态后,记下任何分散你注意力的东西比如Google搜索词、灵光乍现的想法、新点子等等。如果你把它们记下来,它就不会再蹦来蹦去了。

26、休息,休息一下~

好好看看,能改则改。需要学习的方法和工作态度太多了。

工作很受用,尤其是做IT搞技术的。

2016/3/20 14:53:18

1…8910
isunman

isunman

love IT, love Movie, love Love

98 日志
12 分类
45 标签
RSS
github

Links

知乎
© 2011 - 2025 isunman
由 Hexo 强力驱动
主题 - NexT.Mist
PV -- UV