手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

转:遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法

看了这篇文章后,对其中的一句话特别感兴趣,原文中有一条下划线,但那不是我有兴趣的。我的兴趣我加红。

我对老板说:“老板,我想做件疯狂的事情,我打算开家公司,在网上卖书。”之前我和他泛泛聊到过这个想法。“走,陪我散散步去。”他对我说。于是, 和他在纽约中央公园逛了两个小时后,他最后对我说:“你这个打算听起来是很靠谱,但这个事情更适合那些眼前没有一份好工作的人去做。” 他的话让我苦思良久。

为了能做好这种重大的决定,我努力寻找正确的思考框架。我也和妻子讨论过这个念头,她对此非常支持:“不论你做什么, 我都百分百支持你。”她嫁给了我这么一个有着稳定职业道路的稳重的家伙,而我现在想去做的事情是如此疯狂,但她却对此百分百支持——这个决定最后还是完全 在于我自己。最后,我找到了一个框架,它能助你轻松做出人生的重大决定,我把它称作“遗憾最小化框架”。

我 把自己想象成80岁的模样,并思考:“现在回望我的一生,我要把遗憾事件的数量降到最低。”我知道在我80岁时,我不会因这次尝试而后悔,我不会后悔参与 到互联网这个我认定是了不起的事情中来。我知道,哪怕我失败了,我也不会遗憾,而我可能会因为没有尝试而最终后悔不已。如果你能想象自己年满八旬,并思考 “老了的我会怎么想呢?”这个问题,你就可以因此而摆脱每日琐碎的困惑的干扰。你要知道,当时我从那家华尔街公司离职创业时恰逢年中,这样连年终分红都没 我的份了。就是这类短期的事情会干扰你的判断,只要你把眼光放得更长远些,你就可以做好生命中的重大决定,而不至于日后后悔了。

via bijansabet.com

http://www.36kr.com/category/digest

IBDATAi清除

其实之前也遇到过样的问题,但这次是发生在虚拟机上,所以不得不再次记录一下
虚拟机磁盘空间有限,因此,当ibdata1的文件过大的时候,机器动不了了,一重启之后,mysql也无法启动了。哭
一看ibdata1居然就占用了我800多M的空间,我一共是8G的虚拟机,这怎么吃得消?于是找了篇文章做参考。
ibdata1是mysql使用InnoDB引擎的时候需要使用的文件。这个文件有的时候会变得很大,并且在你删除数据的时候,文件也不减小。这意味着,即使我将数据库啥的清空了也没啥用,ibdata1大小仍然保持不变。
不得已,只能做了如下操作
1、对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件
[mysqld]
innodb_file_per_table

2、 导出所有的数据,重建数据库,然后恢复数据:
# /usr/bin/mysqldump -R -q --all-databases > /temp/all.sql
# service mysql stop ,ubuntu下面可以是/etc/init.d/mysql stop
# rm -fr /var/lib/mysql/*
# /usr/bin/mysql_install_db
# service mysql restart ,同上/etc/init.d/mysql start
# mysql < /tmp/all.sql

这样导入的sql,root是没有用户名的,所以还需要再设置一下

  1. >use mysql  
  2. >update user set password=password("new_pass") where user="root";  
  3. >flush privileges;

如果这样还不行,参考这一篇:http://neatstudio.com/show-1042-1.shtml

3、 /var/lib/mysql的每个数据库下面,都有会很多的.ibd文件。这些分散的.ibd文件取代了原来的那个ibddata1。
以后删除数据库的时候,直接删除某个数据库的目录就可以了

-------EOF-------
以上的参考来自于:http://bbs.chinaunix.net/thread-3646471-1-1.html
还有一段:
mysql 使用的引擎:
mysql> show engines;
+------------+---------+----------------------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+----------------------------------------------------------------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys |
| BerkeleyDB | YES | Supports transactions and page-level locking |
| BLACKHOLE | NO | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | NO | Archive storage engine |
| CSV | NO | CSV storage engine |
| ndbcluster | NO | Clustered, fault-tolerant, memory-based tables |
| FEDERATED | NO | Federated MySQL storage engine |
| MRG_MYISAM | YES | Collection of identical MyISAM tables |
| ISAM | NO | Obsolete storage engine |
+------------+---------+----------------------------------------------------------------+
12 rows in set (0.00 sec)
For InnoDB tables, OPTIMIZE TABLE is mapped to ALTER TABLE, which rebuilds the table to update index statistics and free unused space in the clustered index.
所以不会直接来减少ibdata的文件尺寸。
减少ibdata的方法如下

- 1. 用mysqldump等工具导出数据 - 2. 停止 mysqld
- 3. 删除ibdata*, ib_logfile* 文件
- 4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)

- 5. 将到出来的数据导回去,体积才会减小。

Tags: mysql

ZendFramework

Zend 2.0的框架改动与1比实在是太大了,当然抛开Namespace不说,即使是应用和架构,都有了一部分调整。
Zend实在太庞大了。用来开发项目不一定是首选。以前都是当成类库来用的,毕竟他实现了几乎目前所需要用到的一切功能,甚至GData之类的接口都全了,你还能奢求什么?
要赶时髦?openID和oauth也有,要实用?连pdf库都有,发邮件、本地化、命令行,应有尽有,不是类库是什么?
不过2.0就不太一样。我随便看了一个DB类,和以前的操作都有点不太一样了。或许是一下子没有适应过来那种newZend_Db_TableGateway之类的调用方式吧
手册在这里:http://packages.zendframework.com/docs/latest/manual/en
下载在这里:http://packages.zendframework.com/

还有一个相对比较实用的wiki:http://framework.zend.com/wiki/display/ZFDEV2/Home
可以看看。2.0的架构和代码还是值得学习的。

Tags: zend, yii

一周回顾

本周没有什么大事发生,只是对于自己来说有几件事情要记住。
1、编码,关于编码这件事,我在文章出现乱码怎么办?已经记录了
2、mongo,虽然很多人说,如果只有一台服务器就不要用mongo了,但是想来想去,我大字段内容过多,而且访问频繁,短时间内居然不能做缓存,这才是我纠结的,毕竟只要做了缓存,那就什么都好说了
3、redis的订阅。我用的是yiiredis的订阅。然后事情就开始纠结了。在yii的event中,我写了一个小函数,将内容再存到redis中,但死活存不进去。可能还是闭包的问题。没有仔细查,实在没时间啊。
   不过本周会测试一下,不用yiiredis组件中自带的订阅,再看一下究竟如何

4、其它就真没大事了

Tags: 一周回顾

SQL to Mongo Mapping Chart

mysql 与 mongo之间是怎么替换的?
官方有一个表格:

SQL Statement Mongo Query Language Statement
CREATE TABLE USERS (a Number, b Number) Implicit or use MongoDB::createCollection().
INSERT INTO USERS VALUES(1,1) $db->users->insert(array("a" => 1, "b" => 1));
SELECT a,b FROM users $db->users->find(array(), array("a" => 1, "b" => 1));
SELECT * FROM users WHERE age=33 $db->users->find(array("age" => 33));
SELECT a,b FROM users WHERE age=33 $db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
SELECT a,b FROM users WHERE age=33 ORDER BY name $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));
SELECT * FROM users WHERE age>33 $db->users->find(array("age" => array('$gt' => 33)));
SELECT * FROM users WHERE age<33 $db->users->find(array("age" => array('$lt' => 33)));
SELECT * FROM users WHERE name LIKE "%Joe%" $db->users->find(array("name" => new MongoRegex("/Joe/")));
SELECT * FROM users WHERE name LIKE "Joe%" $db->users->find(array("name" => new MongoRegex("/^Joe/")));
SELECT * FROM users WHERE age>33 AND age<=40 $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));
SELECT * FROM users ORDER BY name DESC $db->users->find()->sort(array("name" => -1));
CREATE INDEX myindexname ON users(name) $db->users->ensureIndex(array("name" => 1));
CREATE INDEX myindexname ON users(name,ts DESC) $db->users->ensureIndex(array("name" => 1, "ts" => -1));
SELECT * FROM users WHERE a=1 and b='q' $db->users->find(array("a" => 1, "b" => "q"));
SELECT * FROM users LIMIT 10 SKIP 20 $db->users->find()->limit(10)->skip(20);
SELECT * FROM users WHERE a=1 or b=2 $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));
SELECT * FROM users LIMIT 1 $db->users->find()->limit(1);
EXPLAIN SELECT * FROM users WHERE z=3 $db->users->find(array("z" => 3))->explain()
SELECT DISTINCT last_name FROM users $db->command(array("distinct" => "users", "key" => "last_name"));
SELECT COUNT(*y) FROM users $db->users->count();
SELECT COUNT(*y) FROM users where AGE > 30 $db->users->find(array("age" => array('$gt' => 30)))->count();
SELECT COUNT(AGE) from users $db->users->find(array("age" => array('$exists' => true)))->count();
UPDATE users SET a=1 WHERE b='q' $db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));
UPDATE users SET a=a+2 WHERE b='q' $db->users->update(array("b" => "q"), array('$inc' => array("a" => 2)));
DELETE FROM users WHERE z="abc" $db->users->remove(array("z" => "abc"));


不过,硬要说的话,这个还不全,http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart,这里有更全的。
在上面的页面还能够讲这个mapping chart导出成pdf。
比如,这个:docs-8716963-090117-10.pdf

Tags: mongo