IT技术博客大学习 共学习 共进步

技术文章

精选技术长文、实践记录与系统化阅读

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT 算法/ 2013-04-06 22:59:21 / 累计浏览 3,106

思考题:如下场景如何设计mongo collection

Mongo 中collection相当于MySQL的表,那么当我有下面需求时,我应该如何设计我的collection及字段(key/value结构)? 场景及需求描述: 记录用户每次登录的业务标识及ip,以及登录时间 指定qid、ip需要查询该ip是否已经存在 针对上述需求,我的collection应该如何设计? 目前有两种方案,正在纠结于哪个更好一些: 方案一 [cc lang="javascript"] {'userid':$userid,'appid':$appid,'ip':$ip,'logintime':timestamp} [/cc] 方案二 [cc lang="javascript"] {'userid':$userid, 'appid':$appid, 'ipArr':{ {'ip':$ip1,'logintime':$timestam

IT 奋斗/ 2013-04-06 22:43:36 / 累计浏览 11,364

加州求职记

一年多前,出于显而易见的原因,下定决心肉身翻墙。经过一番考虑,放弃了读书这条途径,决定直接找工作,通过H1B签证出去。于是去年八月份从百度辞职,开始着手准备。当时觉得今年拿到H1B的成功率大致能有个六七成,加上周围朋友们的不断鼓励,可以说还是相当自信的。然而,时至今日,在历经Google、Amazon、Facebook三家公司之后,这第一次尝试却可耻地失败了……

IT 发现/ 2013-04-06 22:42:45 / 累计浏览 36,609

如何高效使用搜索引擎

把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。bd和Google 都支持这个指令。例如搜索: “javar高性能程序开发”

IT Oracle/ 2013-04-06 22:40:36 / 累计浏览 5,471

Oracle DBA的学习进阶成长树-从初出茅庐到高瞻远瞩

最近很多朋友问我DBA的成长之路,这一路走来该如何设定目标、如何努力?我总结了一下,大约描述了DBA之成长树,从初出茅庐到高瞻远瞩大约要经过5个阶段,10年时间。在任何一个行业,没有扎实的积累是无法成就职业生涯的。所以频繁的更换工作对于DBA极为不利,我们要确保每个阶段都获得了足够的积累和成长,然后才能够跃迁到下一个层面。

IT 算法/ 2013-03-11 13:58:35 / 累计浏览 4,506

深入理解 VXLAN

​VXLAN 是非常新的一个 tunnel 技术,它是一个 L2 tunnel。Linux 内核的 upstream 中也刚刚加入 VXLAN 的实现。相比 GRE tunnel 它有着很的扩展性,同时解决了很多其它问题。

IT JavaScript/ 2013-03-11 13:55:16 / 累计浏览 5,784

JavaScript深度克隆(深度拷贝)一个对象

​我有一个前端笔试题:使用JavaScript深度克隆一个对象。可是我发现大多数人都是空白,问他为什么不做,大部分说不懂这题目的意思。 科普一下: js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递; 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内存中的地址。

IT 算法/ 2013-03-11 13:53:46 / 累计浏览 3,808

从抛硬币试验看概率论的基本内容及统计方法

这篇文章以抛硬币试验为引子引出了一系列现代数学中概率的基本模型、定理及基本的估计及显著性检验方法。写这篇文章是我无聊抛硬币时一时兴起,其中对很多东西只是给出一个轮廓,没有处处给出严格的定义和证明,不过大约说明了常用的一些统计方法及其理论基础,限于篇幅不能面面俱到,例如一个假设检验如果展开写可以单独写一篇文章。目前随着大数据概念的热炒,基于互联网的数据挖掘和机器学习也变得火热,其实很多数据挖掘和机器学习都是基于概率和统计理论的,很多方法甚至只是传统统计方法的应用。因此如果准备在这方面深入学习,不妨考虑先在概率论和数理统计方面打好基础。

IT 算法/ 2013-03-11 13:52:23 / 累计浏览 3,565

如何测试洗牌程序

我希望本文有助于你了解测试软件是一件很重要也是一件不简单的事。 我们有一个程序,叫ShuffleArray(),是用来洗牌的,我见过N多千变万化的ShuffleArray(),但是似乎从来没人去想过怎么去测试这个算法。所以,我在面试中我经常会问应聘者如何测试ShuffleArray(),没想到这个问题居然难倒了很多有多年编程经验的人。对于这类的问题,其实,测试程序可能比算法更难写,代码更多。

IT 算法/ 2013-03-11 13:48:34 / 累计浏览 3,383

模糊逻辑在 AI 中的应用

在《游戏人工智能编程案例精粹 》 和 《 Windows 游戏编程大师技巧 》 中都分别有一章谈及模糊逻辑。记得前几年我的同事 Soloist 同学曾经研究过一小段时间,给我做过简单介绍,我便仔细把这两章书读了一遍。感觉都是点到为止,所以又翻了一下 Wikipedia 的 Fuzzy Logic 的介绍。午饭时跟做 AI 的同事交流了一下,觉得可以做一点笔记记录理解的部分。

IT Linux/ 2013-03-11 13:47:58 / 累计浏览 9,470

rsync同步的艺术

如果你是一位运维工程师,你很可能会面对几十台、几百台甚至上千台服务器,除了批量操作外,环境同步、数据同步也是必不可少的技能。 说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术。

IT 发现/ 2013-03-11 13:40:49 / 累计浏览 4,366

编程珠玑番外篇之番外篇-N 答 UNIX 痛恨者王垠

我欢迎所有的 UNIX 使用者加入痛恨者阵营,因为我也是 UNIX 痛恨者。只有成为了 UNIX 痛恨者,你才是一个真正的 UNIX 使用者。至于 Windows, 我们对它没有感情,无所谓爱恨。

IT 网络系统/ 2013-03-11 13:40:08 / 累计浏览 5,185

网络栈内存不足引发进程挂起问题

TCP协议栈内存是不可交换物理内存,用一字节少一字节。也正是由于这一点,操作系统出厂的时候上面的默认的内存设置都不算太大。对于一个不是网络密集型的服务器问题不大,但是对于如承担C1M链接的服务器来讲,问题就来了。我们在实践中会发现tcp服务经常超时,有时候超过100ms. 那么这个问题如何定位呢?

IT 发现/ 2013-03-11 13:38:12 / 累计浏览 4,387

《Rework》摘录及感想

感想:我始终在跟我的团队成员说,最有效的管理就是自己管理自己,而不是还要专们的人来管你。不然的话,你一定会很难受的。如果你能管理好你的工作和任务,我们就不需要项目经理。如果你能管理得好你的做事的方法和流程,就不需要那些搞流程的。如果你能管理得好你的程序质量,我们就不需要QA来监管你…… 等等。其实,你们如果能管理得好自己,并能自我进化。你们甚至不需要一个经理。但是,你们可能会需要一个为你们跑腿打杂的人,其实,那个人就是经理。

IT 算法/ 2013-03-11 13:31:26 / 累计浏览 3,751

JVM垃圾收集器

垃圾收集器就是收集算法的具体实现,不同的虚拟机会提供不同的垃圾收集器。并且提供参数供用户根据自己的应用特点和要求组合各个年代所使用的收集器。本文讨论的收集器基于Sun Hotspot虚拟机1.6版。 下图中展示了jdk1.6中提供的6种作用于不同年代的收集器,两个收集器之间存在连线的话就说明它们可以搭配使用。没有最好的收集器,也没有万能的收集器,只有最合适的收集器。从Serial收集器到Parallel收集器,再到CMS收集器, G1收集器,用户线程的停顿时间在不断缩短,但是仍然没有办法完全消除。

IT 安全/ 2013-03-11 13:30:56 / 累计浏览 5,309

Servlet线程安全问题

Servlet的线程安全问题只有在大量的并发访问时才会显现出来,并且很难发现,因此在编写Servlet程序时要特别注意。线程安全问题主要是由实例变量造成的,因此在Servlet中应避免使用实例变量。如果应用程序设计无法避免使用实例变量,那么使用同步来保护要使用的实例变量,但为保证系统的最佳性能,应该同步可用性最小的代码路径。

IT 发现/ 2013-03-11 13:30:12 / 累计浏览 7,826

Java程序员应该知道的10个eclipse调试技巧

在开始前给大家提3点建议!   不要使用System.out.println作为调试工具   把所有涉及到的组件日志级别激活并使用   使用日志分析器来读取日志

IT 算法/ 2013-03-11 13:29:33 / 累计浏览 4,090

java中byte转换int时为何与0xff进行与运算

Java中的一个byte,其范围是-128~127的,而Integer.toHexString的参数本来是int,如果不进行&0xff,那么当一个byte会转换成int时,对于负数,会做位扩展,举例来说,一个byte的-1(即0xff),会被转换成int的-1(即0xffffffff),那么转化出的结果就不是我们想要的了。 而0xff默认是整形,所以,一个byte跟0xff相与会先将那个byte转化成整形运算,这样,结果中的高的24个比特就总会被清0,于是结果总是我们想要的。

IT 奋斗/ 2013-03-11 13:29:01 / 累计浏览 4,126

程序员的五个阶段

第五阶段:产品成长的见证人。 也许很少人能够参与从零开始,经过创意、市场分析到产品设计的过程,在明确要做什么之前有大量的时间会花在产品探索性的工作上面。也许会做很多的产品原型,也许某些版本和功能在A/B测试之后就被放弃了,更有些产品在流传开来以前就销声匿迹了,或者很快就死在抄袭和山寨手里。产品的更迭和换代总是千辛万苦,而看得到的部分往往如此简单,但是谁知道它的历史有多曲折呢?

IT 系统架构/ 2013-03-11 13:27:14 / 累计浏览 7,311

Web应用的缓存设计模式

从10年前的2003年开始,在Web应用领域,ORM(对象-关系映射)框架就开始逐渐普及,并且流行开来,其中最广为人知的就是Java的开源ORM框架Hibernate,后来Hibernate也成为了EJB3的实现框架;2005年以后,ORM开始普及到其他编程语言领域,其中最有名气的是Ruby on rails框架的ORM - ActiveRecord。如今各种开源框架的ORM,乃至ODM(对象-文档关系映射,用在访问NoSQLDB)层出不穷,功能都十分强大,也很普及。