PostgreSQL从菜鸟到专家 PostgreSQL介绍
PostgreSQL介绍 本书都是关于一个最近最成功的开源产品,一个名叫PostgreSQL的关系数据库。
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
PostgreSQL介绍 本书都是关于一个最近最成功的开源产品,一个名叫PostgreSQL的关系数据库。
周末在家,随手翻看了一点吴军老师的《浪潮之巅》这本书。去年这本书上市之后我从头到尾阅读了一遍,在《浪潮之巅》中吴军老师历数了IT行业公司的兴衰发展史,提出了一个令人印象深刻的“基因决定论”,即由于公司基因的影响,当一家大公司想要转型占领新的领域,做出颠覆性创新产品的时候,往往会败得很惨。这种例子其实很多,摩托罗拉,诺基亚,英特尔,微软不一而足,大公司体制内创新的困境已经成为常态。杰克韦尔奇在谈到这个问题的时候,曾经说过:“管理一条产值为5万美元的新生产线的第一年,要比管理一个销售额为5亿美元的企业的第20年更为困难”。他在《Winning》这本书里面具体提到3条原因: 1、公司对创新项目的投入不足,特别是业务人员投入不足 2、公司对创新项目的前景和重要性宣传太少,反而保持秘而不宣 3、公司限制了创新项目的自主权。
公共网络(如 Internet)不提供实体间安全通信的方法。这种网络上的通信容易被未经授权的第三方读取甚至修改。加密有助于防止他人查看数据,它提供了检测数据是否已被修改的方式,同时有助于在非安全信道上提供安全的通信方式。例如,可以使用加密算法对数据进行加密,在加密状态下传输数据,然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据,解密数据是很困难的。 一、加密基元 在使用加密的典型场合中,双方(Alice 和 Bob)在不安全的信道上通信。Alice 和 Bob 想要确保任何可能正在侦听的人无法理解他们之间的通信。而且,由于 Alice 和 Bob 相距遥远,因此 Alice 必须确保她从 Bob 处收到的信息没有在传输期间被任何人修改。此外,她必须确保信息确实是来自 Bob,而不是来自模仿 Bob 的人。
在公司工作,很多时候都是被会议牵着鼻子走,一天下来4-5个会议成为家常便饭,很多时候你会觉得会议是在浪费时间,如何让会议变得更加高效,下面是网上的一些方法,大家一起研究学习。 制定22分钟的会议 - 谁规定会议时间应该是半小时或1小时的?这样的会议时间是不是有数据支撑?当然没有。30分钟或者60分钟这点时间要是留给每个人去阐述、辩论自己的观点显然不够,平均每个人需要1小时才能把思路理清。实际上不是所有的会议都可以控制在22分钟内,但是很多会议是可以控制的,我们可以尽可能的尝试将会议的时间控制的越短越好。 有一个基于目标的议程 - 有个明确目标的议程将会使会议锦上添花、有的放矢。可以考虑在白板上写出议程的内容,同时加粗相应的关键点,由此不断提醒大家我们这个会议需要达到什么样的目标。
闲着无聊看了jQuery event部分的代码,发现一个小惊喜,嘿嘿,可能我奥特曼了。以下一jQuery 1.4.4版本说事,更高级版本稍有不同,但是关系不大。 jQuery 在元素上绑定事件的时候,会在该元素上添加一个自定义属性“evens”,这个属性包含了通过jQuery绑定事件的事件集合。
1、逐层注释 使用统一格式对每一个语句块进行注释,如: * 类:简单描述、作者、最后修改时间等 * 方法:关于该方法的目的、函数、参数、返回值的描述 在团队工作中,使用统一的注释规范显得尤为重要。当然,也推荐使用一些专门用来添加代码注释的工具,如C#中的XML、Java中的Javadoc等。 2、使用段落型注释 将代码分割成能完成独立任务的段落,并在其前后添加注释,告诉读者程序将要做什么。 3、对齐连续的行注释
在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Switch). 上下文切换的精确定义可以参考: http://www.linfo.org/context_switch.html. 下面做个简单的介绍. 多任务系统往往需要同时执行多道作业.作业数往往大于机器的CPU数, 然而一颗CPU同时只能执行一项任务, 如何让用户感觉这些任务正在同时进行呢?
众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢一点儿. 由于内存的发展都到技术及成本的限制, 现在获取内存中的一条数据大概需要200多个CPU周期(CPU cycles), 而CPU寄存器一般情况下1个CPU周期就够了. CPU缓存 网页浏览器为了加快速度,会在本机存缓存以前浏览过的数据; 传统数据库或NoSQL数据库为了加速查询, 常在内存设置一个缓存, 减少对磁盘(慢)的IO. 同样内存与CPU的速度相差太远, 于是CPU设计者们就给CPU加上了缓存(CPU Cache).
典型的CPU微架构有3级缓存, 每个核都有自己私有的L1, L2缓存. 那么多线程编程时, 另外一个核的线程想要访问当前核内L1, L2 缓存行的数据, 该怎么办呢? 有人说可以通过第2个核直接访问第1个核的缓存行. 这是可行的, 但这种方法不够快. 跨核访问需要通过Memory Controller(见上一篇的示意图), 典型的情况是第2个核经常访问第1个核的这条数据, 那么每次都有跨核的消耗.
预计2012年5月7日,阿里巴巴集团将正式公布技术团队合并的事情,涉及的部门:阿里巴巴运维团队、阿里巴巴DBA团队、阿里巴巴平台技术部、大淘宝运维团队、大淘宝DBA团队、大淘宝核心系统部、阿里云计算运维团队、阿里云计算DBA团队和阿里巴巴集团安全团队,上述技术团队合并之后,从一些可以猜测到的信息分析,大淘宝的员工成为相关技术团队的掌舵者,以及去IOE政治运动是阿里巴巴集团首席架构师王坚主导的,阿里巴巴和淘宝的技术团队内部非常有影响力的行颠负责执行,那么阿里巴巴集团内部所有子公司去IOE运动将继续深化,就淘宝、阿里巴巴和支付宝去IOE事件,以局外人的角度进行利弊分析,希望能达到给明白真相和不明白真相的群众一个合情合理中立的分析。
动点科技创始人卢刚有一次在微博上发起一个讨论:中国的创业环境与美国相比而言,根本因素上缺少了什么?他列出了几个他称之为硅谷的创业基因:允许失败、海量好主意、风投群支持、一批优秀的创业导师、连环创业、骨子里的DIY精神、政府税收等政策支持等。这些我都基本同意,但根本上,恐怕另有原因。 对于IT圈来说,鲜有不靠风投而成功的创业案例,概因为免费+规模基本上是各种创业故事的特征。风投不是散财童子,每一笔投资都会追求尽可能大的回报:风投A把股权溢价转卖给了风投B,风投B再如是为之,但总有最后一棒的时候,那就是在公开市场上的风投退出。 虽然很多人说上市不是结束而是另一种开始,但恐怕很多人都打心眼里认为,上市至少是一种里程碑式的胜利。可惜这种里程碑式的胜利,在中国互联网圈的中国公开市场上,案例极少。
Java的闭包(Closure)特征最近成为了一个热门话题。一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。 不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。尤其是他问道“ for 循环为何可恨?”: 我不知道,有些人这么着急的要把 for 循环消灭掉,他们反对的究竟是什么?这已经不是第一次或第二次计算机学界的理论家们起来反对 for 循环(或类似的东西)了。 如果只说Elliotte质疑不起眼的闭包的价值,这是不公平的。
关于puppet 的高可用性,以及扩展性puppet pro 书中有详细介绍,本文是参考puppet pro资料进行安装与配置. 为什么要使用Apache来实现,因为puppet 内置的web服务器 比较慢,现在主流的有nginx,apache,关于使用nginx来实现puppet 负载均衡可以参阅:puppet nginx,puppet 官文也有相应文档.可供参考。
有人问:你做过的最有效的提高你的编程水平的一件事情是什么? 回首作为一个程序员这些年来的生活和职业道路,我使用了很多种不同的方法来提高我的编程技能 —— 阅读代码,编写程序,阅读书籍,听讲座,看视频,等等。 我的问题是:你做过的最有效的提高你的编程水平的一件事情是什么?对于那些想提高水平的程序员,你的建议是什么? 我希望你们提供的答案是各种各样的,并且不是那种“放之四海而皆准”的答案 —— 我希望得到适用于不同人的不同的答案。 有很多人给出了自己的答案,在这里,我将其中最受认可的前三种答案选出来翻译给大家。 最受欢迎的回答:学无止境 没有特别的先后次序… 和比自己更聪明的人一起工作 永远乐意听取他人的意见,不管对方是低级水平,一般水平,资深,还是大师。职称头衔并不代表一切。
一、番茄工作法的基本方法 把想要做的事情都记录在活动清单上,活动清单就像一个累积待办事项的仓库 每天早上从活动清单中挑选今天想做的事情抄入今日待办清单,按重要性排序并估测大致需要的番茄数 在今日待办清单上选出最重要的一件 开始一个番茄时间,倒计时25分钟,专注于你的工作,直到铃声响起 尽量保护你的番茄时间别被打断,如果有新想法或外部干扰,先记录下来,留到铃响之后处理 每个番茄时间结束后休息3-5分钟,4个番茄时间算一轮结束后休息15-30分钟 已经做完的事及时划掉 一天结束后在记录单中记录自己完成的番茄数,被打断的次数等等信息 将计划外且没完成的工作记回活动清单 分析和思考看看是否有需要改进 每天工作前,整理出当天要做的所有事项,然后设置一个25分钟闹钟,开始做其中最重要的一件事。
在很多时候,我们需要使用备份控制文件恢复数据库,在恢复完成后,准备打开库,很多人知道这个时候如果要打开这个库,需要使用resetlogs操作,虽然在oracle 10g及其以后版本中在恢复的时候可以跨越resetlogs操作,但是很多时候大家还是希望使用备份的控制文件能够正常的open一个库,而不是resetlogs.这里通过实验展示使用备份控制文件正常open库的过程.
索引扫描不同于表扫描,表扫描只有一种类型就是全表扫描(full table scans),而索引扫描根据具体情况不同可以分为如下几类:索引唯一扫描(index unique scan).这种扫描发生在主键或者唯一索引上,根据键值可以唯一确定要访问的记录,这种扫描方式因为返回的记录数少,能够快速定位记录,扫描效率较高索引范围扫描(index range scan).这种撒么一般发生在返回多个值的时候,如where条件中>and <或者非唯一索引中的=时,范围扫描要求返回的结果集不能太多,否则不能从索引扫描上获取益处,因为从索引只能获得rowid与索引列的值,,有可能还需要根据rowid回表一条条的去找行的其他数据,除非不需要回表便能从索引上获得必需的数据。
这周阿里集团DBA内部分享时,支付宝的黄忠同学提了一个问题,关于InnoDB索引page 的利用率。 page利用率 主要是指btee里面每个page的使用被使用的空间大小。我们知道InnoDB默认一个page大小是16k。但实际使用情况不会总用满.
正则用了好些年,有两个东西总结出来是在web开发中非常有用的,尤其在抓取、代码分析中经常用到。
从MacBook Pro转向MacBook Air已经数月了,谈下使用Air之后带来的便利与效率提升。 便利虽然进入云计算时代,由于国内网络环境原因,访问国外一些知名云提供商并不稳定。因此在相当长一段时间内,国内用户依然非常依赖本地存储,使用轻便笔记本是一个最佳的选择。随时随地使用同一个工作环境后,可以极大改善个人效率及体验。这是使用Air之后一些日常的便利。 工作忙时浏览器标签页打开的文章可以在其他环境继续阅读,不需要收藏到ReadLater之类的工具中,而且ReadLater更大的障碍是,打开一个网页在粗读完之前,无法判断是否需要收藏。由于是SSD,启动程序及打开文档速度非常快,几乎不需要等待。由于Air很轻,尤其是11寸也很小,可以用方便随身携带,不需要为“今天是否要带走”思考。可以坐在床上、沙发、公园、咖啡厅或者其他随意的地方编写代码或者文档,不会感觉压腿、发烫或者沉重