[藏]再谈JavaScript中的闭包

之前读js的时候总是感觉不清楚,近日决定重新攻读,看到这篇文章之后,我明白了某大神说的那句话,如果你不能向一个6岁的小朋友讲明白。那么这件事情你一定不明白。还有就是如果你必须理解一个闭包才会使用它,那么这个闭包设计本身就是失败的。情赏析本文。相当精彩。 JavaScript中函数的重要性毋庸置疑。在理解了JavaScript中的函数之后,非常重要的地点就是理解我们怎样使用函数来创建闭包。一直以来,闭包都是JavaScript新手学习时的一个难点所在,它位于JavaScript函数与变量作用域交叉的一个灰色地带: 本文将尽可能简单的方法讲述关于JavaScript闭包的那些事情,使用的代码也非常的简单。如果一开始就讲述闭包的概念,只会使得你更加的困惑。所以我们就从一个我们熟悉的领域开始,慢慢的向闭包的邪恶领域前进,看看我们在那里能发现什么。 下面开始我们的冒险之旅吧! 函数中的函数 我们要做的第一件事情是理解当你在函数中创建了函数并且从函数内部返回一个函数时究竟发生了什么。首先我们来快速的回顾一下函数。 看下面的代码: <span class="token keyword" style="color: #0077aa;">function</span> <span class="token function">calculateRectangleArea<span class="token punctuation" style="color: #999999;">(</span></span>length<span class="token punctuation" style="color: #999999;">,</span>width<span class="token punctuation" style="color: #999999;">)</span><span class="token punctuation" style="color: #999999;">{</span> <span class="token keyword" style="color: #0077aa;">return</span> length<span class="token operator" style="color: #a67f59;">*</span>width<span class="token punctuation" style="color: #999999;">;</span> <span class="token punctuation" style="color: #999999;">}</span> <span class="token keyword" style="color: #0077aa;">var</span> roomArea <span class="token operator" style="color: #a67f59;">=</span> <span class="token function">calculateRectangleArea<span class="token punctuation" style="color: #999999;">(</span></span><span class="token number" style="color: #990055;">10</span><span class="token punctuation" style="color: #999999;">,</span><span class="token number" style="color: #990055;">10</span><span class="token punctuation" style="color: #999999;">)</span><span class="token punctuation" style="color: #999999;">;</span> <span class="token function">alert<span class="token punctuation" style="color: #999999;">(</span></span>roomArea<span class="token punctuation" style="color: #999999;">)</span><span class="token punctuation" style="color: #999999;">;</span> `</pre> calculateRectangleArea函数接收两个参数并且返回这两个参数的乘积。在这个例子中没我们将返回的数赋值给了变量roomArea。 当代码运行之后,roomArea变量包含了10乘10的结果,也就是100: [! [Read More]

[藏]跨行清算系统的实现原理

本文来自God Is Coder,通过这篇文章我算是理解了跨行清算系统逻辑,非常非常好。 最近看了很多银联方面的清算系统的设计原理,对于跨行清算系统有了很大的了解,写这篇文章的目的是在于从一个程序员的角度去思考一个跨行清算系统的架构是如何实现的以及整个过程中我们有哪些思想是可以借鉴的。由于金融里面涉及到太多的专业名词,包括借贷,备付金,头寸,调拨等等,这里不会涉及到这些,取而代之的是以大家可以理解的概念去解释。 下面简单的介绍一下两种跨行清算系统的实现原理以及特点。一种跨清算系统是我们最熟悉的银联,还有一种是越来越流行的第三方支付系统,比较典型的是快钱。 首先来拿生活中的一个非常常见的例子来说明跨行清算的整个过程,这里面不涉及交易费等其他概念。 跨行取款流程 张三是工行的持卡人,他需要取现金,但是找不到工行的ATM机器,发现附近有建行的ATM机器,他只能去建行取款,整个过程就是跨行清算的过程,我们以这个场景为例,分析一下业务流程,具体交互流程见下面一张图。   工行持卡人张三在建行ATM机器取款100,ATM请求建行主机,由于是工行的卡,建行不识别,只能请求工行去处理,工行识别持卡人账户并扣款100,然后通知建行,建行则通知atm吐钱。 这里整个系统要解决两个问题: 1 建行如何与工行通信 2 建行和工行之间如何清算,如上图结果,工行欠建行100. 整个系统的分析基于以上两个问题,下面首先解决是通信问题   跨行通信的两种模式 我们先假设工行提供接口,只需要建行发送指约定格式的报文,即可于工行通信,这种相当于建行直接通过接口方式与工行通信。如果是这种方式,只能解决建行和工行的单向通信,如果工行和建行通信,则工行要发送建行指定的通信报文格式。可是大家想想,如果银行更多怎么办,下面是三家银行间的通信 当有三家银行的时候,通信链路就有3*2=6条,当银行越来越多的时候,这种点对点的通信变的越来越复杂,每新增一家银行,他要做之前银行都要做的很多重复性的劳动,这样的成本非常高,也不经济,那么必须出现一个网络,它能够接入所有的银行,新的银行只需要接入这个网络,就可以和其他所有的银行进行通信。 先把这个网络成为通信网络,这种通信网络有两种方式可以连接所有的银行 1 这个通信网络定义标准接口,所有的银行都必须实现这个通信网络定义的api,新的银行如果想要接入这个通信网络,必须实现通信接口约定的协议。简称公共接口模式 2 这个通信网络主动去连接所有的银行的接口,把所有银行的接口信息都接入里面,就像一个适配器,新的银行如果想要接入这个通信网络,这个通信网络必须主动联系银行,按照银行的接口协议实现通信,简称适配器模式。 下面一幅图演示了这两种模式的不同: 对于这两模式,主要博弈就在于谁强谁弱。显然第三方支付公司属于适配器模式,需要一家一家银行去接入,至于银联,个人认为应该是第一种模式,这种对于银联这种需要稳定的系统来说是最具有优势的。   跨行清算保证金模式 解决了通信问题,下面就看如何解决资金的清算问题。一种简单的方案就是工行在建行里面开设一个保证金账户,用这个账户去偿还在整个跨行交易中应付给建行的资金。   从上图来看,这种方案确实可行。只需要工行在建行里面放足额的保证金,就可以满足跨行的费用。但是这里面实际上存在非常多的问题, 1 如果银行越来也多,每个银行都要在其他银行存钱,太不经济了 2 保证金需要放多少资金?如果一直都没有发生跨行交易,工行就亏大发了 3 如果保证金不够怎么办?交易失败还是记应收款? 对于第一个问题假设银行越来越多,会导致工行需要在其他每个银行里面都开设保证金账户(见下图),是一个很不经济的方案。 说明这个在其他银行存保证金的方案是不可行的,和之前通信的问题一样,是不是可以把所有的银行保证金账户单独管理起来,统一放置在一起,方便各个银行之间的清算。我们暂时把这个系统称之为保证金系统。 保证金系统 保证金就是方便各个银行之间的清算,需要单独由一个系统进行管理,解决了跨行之间保证金存放的问题。每个银行只需要在保证金系统中存点钱就可以了。保证金系统也有两种模式。先看看比较好理解的第一种模式: 在这种模式下,银行先把一部分钱存放在保证金系统里面,同时银行内部建立一个虚拟账户,记录存放了多少钱,主要是方便对账,万一这个保证金系统钱算错了怎么办。你可以想象一下,银行是很小气的,为啥愿意把钱存放到这保证金系统里面,这部分钱干啥不好,能够银行这么干的只有国家了,这个系统就是央行的备付金管理系统。每个新增的银行都要存一份钱在这里。 另外一种方案是倒过来思考,既然没有牛逼的央行作支撑,那可以在每个商业银行都建立一个账户,用这个账户负责和银行进行清算。每新增一家银行,就在那个银行里面开一个保证金账户。 这两种方式有本质的不同,一个是银行把资金的一部分转出到保证金,银行建立虚拟账户和保证金里面真实的资金映射。一个是保证金系统把资金转出到各个银行,自己内部建立一个虚拟账户和银行中真实的资金账户进行映射。这个间接的银行了后续的对账机制,这里先不叙述。 所有的第三方支付公司跨行清算的流程都是第二种方式,只有国家级清算公司(比如银联)是第一种方式,这是一种资源和权力上的不平等,不过是可以理解的。 清算系统 保证金系统解决了保证金存放的问题,接下来就是解决如何清算的问题。假设保证金转账是实时的,就要面对上面说的问题,保证金不够的情况下,跨行交易是成功还是失败。这是一个业务上问题,有很多种解决方案,我们暂不说。从技术上来讲,如果每一笔交易都要保证金实时记账,那么保证金系统的负载太大,事务如何保证等等一些列的问题。所以一个最简单的方案就是:一天结算一次。 每天由一个系统记录这些跨行交易信息,汇总出来,统一记账。这样一天只需要调用一次保证金系统即可。那么整个清算过程则是下面的流程: 1 系统T日发生建行和工行的跨行交易100 2 清算系统T+1日汇总T日工行和建行之间发生的交易明细数据,并且发这些数据发给建行和工行进行确认   [Read More]

[藏]Class.getResource和ClassLoader.getResource不同点

有一次遇到了,查了查。原文地址 Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。 Class.getResource(String path) path不以’/‘开头时,默认是从此类所在的包下取资源; path 以’/‘开头时,则是从ClassPath根下获取; 什么意思呢?看下面这段代码的输出结果就明白了: package testpackage; public class TestMain { public static void main(String[] args) { System.out.println(TestMain.class.getResource(“”)); System.out.println(TestMain.class.getResource(“/”)); } } 输出结果: file:/E:/workspace/Test/bin/testpackage/ file:/E:/workspace/Test/bin/ 上面说到的【path以’/‘开头时,则是从ClassPath根下获取;】在这里就是相当于bin目录(Eclipse环境下)。 再来一个实例,假设有如下Project结构: 如果我们想在TestMain.java中分别取到1~3.properties文件,该怎么写路径呢?代码如下: package testpackage; public class TestMain { public static void main(String[] args) { // 当前类(class)所在的包目录 System.out.println(TestMain.class.getResource("")); // class path根目录 System.out.println(TestMain.class.getResource("/")); // TestMain.class在&lt;bin&gt;/testpackage包中 // 2.properties 在&lt;bin&gt;/testpackage包中 System.out.println(TestMain.class.getResource("2.properties")); // TestMain.class在&lt;bin&gt;/testpackage包中 // 3.properties 在&lt;bin&gt;/testpackage.subpackage包中 System.out.println(TestMain.class.getResource("subpackage/3.properties")); // TestMain. [Read More]

[藏]图文并茂详解Eclipse断点

本文转自:http://my.oschina.net/colorleaf/blog/176569 这个算说的比较清楚的了,虽然简单但是很有用。收藏一下。 详解Eclipse断点 大家肯定都用过Eclipse的调试的功能,在调试的过程中自然也无法避免要使用断点(breakpoint),但不知是否对Eclipse中各类断点都有所了解。本篇图文并茂地介绍了Eclipse中全部类型的断点,及其设置,希望对大家有所帮助。(2011.11.20) 1. 示例程序 BreakpointDemo是一个臆造的应用程序,只是为了便于讲解Eclipse中各类断点的使用罢了。其代码如下图所示, BreakpointDemo主要包含两个方法: [1]setValue,该方法根据指定的次数(count),对成员变量value进行赋值,值的范围为0-9的随机整数。 [2]printValue,该方法会调用setValue()对value进行赋值,并打印出value的值;但,如果value能被3整除,那么就会抛出IllegalArgumentException异常。 2. Line Breakpoint Line Breakpoin是最简单的Eclipse断点,只要双击某行代码对应的左侧栏,就对该行设置上断点。此处,对第20行代码设置上Line Breakpoint,如下图所示, 可以为Line Breakpoint设置一个条件,那么当程序运行到该断点时,只有满足设定的条件,才会被中断。右键点击第20行的断点,选择”Breakpoint Properties…” 在弹出的属性对话框中,勾选上”Conditional”,然后在文本框中输入”count % 2 == 0”。 该条件表示,当程序运行到第20行时,只有当count为偶数时,程序才会被中断。细心地话,你会发现该断点的图标发生了改变,多了一个问号。 3. Watchpoint Line Breakpoint关注于程序运行的”过程”,大家也常把使用这种断点的调试称为单步调试。但有时候,我们对程序的运行过程不太了解,可能也不太关心,不能确定在什么地方设置断点比较合适,而可能比较关注某个关键变量的变化或使用。此时,就可以为该变量设置一种特殊的断点–Watchpoint。在此示例,我们最关心的就是成员变量value的值,那么就可以为它设置一个Watchpoint,双击第9行代码对应的左侧栏就可以了。 使用在2中所提及的方法,查看该断点的属性, 默认地,当该变量被访问或它的值被修改时,程序都会被中断。但在本示例中,只希望当对value的值进行修改时程序才需要被中断,所以取消对”Access”的勾选。 这时,我们会发现原来的Watchpoin图标也有变化了。 4. Method Breakpoint 与关注对某个变量的访问与修改一样,我们也可以关注程序对某个方法的调用情况,即,可以设置Method Breakpoint。在此处,设置针对方法setValue的Method Breakpoint。同理,双击第11行代码对应的左侧栏即可。 仍然要查看该断点的属性。默认地,只勾选了”Entry”,而没有勾选”Exit”。 这表示,当刚进入该方法(调用开始)时,程序会被中断;而,离开该方法(调用结束)时,程序并不会被中断。在本示例中,需要同时勾选上”Exit”。 点击OK之后,可以看到该断点的图标也有所改变。 根据这里的设置,当程序运行到第20行后会在第12行被中断,尽管这里没有显式的断点,但这就是setValue()方法的入口(Entry)。必须注意地是,程序在运行到第16行时不会被中断,尽管它看起来像是setValue()方法的出口(Exit)。实际上,程序会在第17行被中断,这里才是setValue()调用结束的地方。 5. Exception Breakpoint 如果,我们期望某个特定异常发生时程序能够被中断,以方便查看当时程序所处的状态。通过设置Exception Breakpoint就能达到这一目标。本示例故意在第23行抛出了IllegalArgumentException异常,我们期望程序运行到此处时会被中断。但我们不直接为此行代码设置Line Breakpoint,而是为IllegalArgumentException设置Exception Breakpoint。设置Exception Breakpoint的方法与其它类型断点都不同,它不能通过双击左侧栏的方式在代码编辑器上直接进行设置。点击Breakpoints视图右上角形如Ji的图标, 会弹出如下所示的对话框, 在其中选中IllegalArgumentException,并点击OK,这时一个Exception Breakpoint就设置好了。 当value为3的倍数时,程序会在第23行被中断,这时我们就能使用调试器来看看value具体是等于0,3或6。 6. [Read More]

[藏]社交网络,电子时代的人生绑架者

作者:负二

bystander:本文回答了你刷社交网络的内在因素.希望读到的人不只是读到那么简单.

大家在互相打招呼之前,先各自拿出手机,其中几个人用手机“签到”,然后把“签到”信息转发给在场的每一个人,而另一些人则用手机给饭桌上的菜肴拍照,然后同样转发给在场的每一个人,直到各种提示音消失之后,大家开始一边动筷子,一边心不在焉地聊八卦,如果没有爆炸性的话题出现,吸引在场的每一个人的注意力,那么大家的注意力都会被自己的手机虏获——比如我会收到坐在对面的那人发来的一张用手指画的拙劣的涂鸦,然后让我根据此图猜一个单词。

现在,一次聚餐的情景差不多就是这样,把一盘菜的照片转发给就坐在你身边和你一起吃饭的那个人,这种事说起来真是要多蠢有多蠢,但人们仍是乐此不疲——当一台饮水机都拥有一个微博账号时,我们意识到任何事情都已经无法阻止网络社交了,无论是美食还是同学聚会。

大多数热衷于用手机刷新SNS网站的人并不认为对网络社交上瘾是什么问题——他们有种幻觉:需要的时候,我肯定能够克制自己,那肯定比戒烟容易。但事实并非如此,网络社交上瘾与烟瘾截然不同,如果你对它背后的机制有所了解,一定会对它能够利用人类心理的弱点到如此地步深感惊讶——一个正常人只要掉进这个圈套,就几乎不可能不对这玩意上瘾。

如果你有过在泡论坛时不断刷新页面的经历,你就会明白社交网站的通知系统是一个多么精巧的引人上钩的设计——人们难以容忍等待,他们需要新状态的刺激,现代化的机场都将下飞机口到取行李处的距离设计得要多漫长有多漫长,就是为了避免旅客在取行李处叉着双手等行李,因为“走”比“等”更容易让人接受——而创造通知系统的产品经理们显然深谙此道,只要通知系统不断地给出状态更新的通知,就能够让人每天乖乖地登录,然后长时间地留在你的社交网站上,这一招就像用香肠逗狗一样好用。

许多人认为社交网站降低了人与人之间交流的成本,促进了信息流动和世界大同——他们显然是被Facebook、新浪微薄之类的网站给蒙骗了;而对人类社会的本质有所了解的人则会同意窥私欲是支撑社交网站的动力之一——有一定道理,人们总是有无穷的动力想去瞧瞧多年不见的老朋友、老同学,或是初恋情人,看他们是不是过得比自己更差,我的表弟曾向我坦白,在他听说前女友离婚的消息后,他曾连续一个月关注她的微博和开心网账号,并且觉得很爽——巴菲特说,竞争并不是推动人类前进的动力,嫉妒才是。

但实际上,窥私欲在社交网络这盘大菜中顶多只能算是几滴酱油——如果你对人性有更透彻的认识,你会从“把一盘菜的照片转发给和你一起吃饭的每一个人”这一举动上看到更深层次的动机。只有够自恋的人才会认为“我在吃这盘菜”这件事很重要,重要到有必要让每个人知道的地步——不幸的是,这世界上除了抑郁症患者,每个人都够自恋,你只要稍加注意就会发现,社交网络中的大多数信息都与“交流”没半毛钱关系,只是某人发布的“自以为很重要”的自我推销信息而已。根据“人类自我表现理论”,人们的自我表现往往根据相互关系中对方的特点而采取某种相应的对策,人们会不断地调节和控制呈现给其他人的信息,特别是有关自我的信息,以便建立起有利于自己的形象——所以人们会狂热地维护自己的微博形象,对隐私泄露视而不见,而对爱你的家人恶言相向。

最新的研究表明,热衷社交网络,也很有可能是你不够成功的表现——美国人4个中有3个是Facebook用户,但在可支配财产超过100万美元的人群中,这一比例只有26%,而百万富翁中上Twitter的比例更是只有可怜的3%——心理学家指出,原因可能是财富给予人更多的独立意识,对他人的依赖越少,对他人就越少在意,产生自我关注的倾向。想必扎克伯格自己也不会一天到晚泡在自己的网站上——而这世界上大多数人都“不够成功”,毫无疑问。

只要看透这一切,你就会明白,社交网络热潮,根本不是什么科技革命,它只不过是人性弱点的一次集中爆发而已,并且在它不为人所见的屁股后面,多多少少都能闻出一丝阴谋家的味道——自由软件基金会主席Richard Stallman认为,基于实名制的Facebook是一个国际寄生项目,而Jonathan Nolan(《盗梦空间》编剧)则在他的新剧中直接说,Facebook的幕后金主其实是CIA,自从全世界的人们都那么乐意泄露隐私后,CIA的工作简单了不少。

现在看来,远离通知提示音的诱惑,从社交网络那里为自己“赎身”,才是人生正途。

[藏]关于B树的一篇文章

很多人对B树的理解有很多错误,我看的最多的就是有人混淆二叉树(Binary Tree)和B树(B-Tree),二叉树是不用简称,也就是BT的,而特殊一点的二叉搜索树才会用BST(Binary Search Tree),至于B-树和B树,这两个其实一样的,英文都是(B-Tree),注意看中间的-号,这个是国内翻译的问题.所以大家不要被误导.

Rudolf Bayer 和 Ed McCreight 于1972年,在Boeing Research Labs 工作时发明了B 树,但是他们没有解释B 代表什么意义(如果有的话).Douglas Comer 解释说: 两位作者从来都没解释过B树的原始意义。我个人觉得很有可能是他的名字,程序员对其作品的一种情结吧.

这篇文章来自国外,是某大学的CS课程在线的,由于有时候无法访问,我直接提供PDF版,对其构造过程非常清晰.非常非常好的B树教程,图示很多,就不翻译了,强烈推荐阅读!

 

下载:B树讲解

 

[藏]熬就一个字

文/冯仑

男孩子最大的问题,30多岁自己还没有成功。

现在社会反差特别大,怎么坚守自己的人生目标就特别难,随波逐流总是成本低,但对自己不负责任,不如设定一个特别大的目标,然后熬,一直熬下去。

熬是个什么概念?

20多岁刚毕业,你是社会的边缘,什么事都是哥哥、姐姐、30多40多的人在做,你得求这些人;等到30多岁,你开始进入到剧场最后一排,有了一张门票可以看别人演;到40、50岁,就是中排靠前一点的观众,看戏你就可以看的清楚了;你如果要出类拔萃就变成第一排了,再出类拔萃你就成演员了,等到你演完了,别人一鼓掌你也就该下场了。

20多岁一定要有一个准备,你就是边缘,边缘是尽快拿到入场券。比如说你到了公司,有了一个稳定的职业,或者一个基本稳定的生活,但是你乘自行车、赶公共汽车,这就是入场券,很正常。

我研究生刚毕业,中间工作八年,每天骑自行车赶到374,然后坐公共汽车,公共汽车下来再走一站地。回头想来不委屈,20多岁肯定是这个过程,如果20岁就跟50岁人一样,那这个戏就乱了,中国十几亿人都这么演的。插队是偶然性,比如像丁磊他是另外一种人生,这种概率极小极小,你可以朝着奋斗。

成功不是设计出来,是靠信念支撑,加上各种机遇偶然蹦出来了。当你成演员,基本上也该谢幕了,接下来又来了人,这个戏才能不断唱。现在70多岁人基本上又退回到场外了,看他儿子演孙子演,就这么一茬一茬。

熬要有耐心,熬不是你一个人熬,而是一代人熬。

[E].Net 多线程指南

这是codeproject上的一个系列。我看完了。收获匪浅。可惜作者之后未能更新预想中的总结贴,多少有些可惜,不过。此系列非常非常不错。建议想学习.net多线程的看看。

1.net 多线程介绍 Introduction into threading in .NET

2.线程周期/线程优势/陷阱 Lifecycle of threads/Threading opportunities/Traps 

3.线程同步 Synchronization

4.线程池 Thread Pools

5.UI中的线程应用 Threading in UIs (WinForms / WPF / Silverlight)

装逼尚未成功,同志仍需努力。

本文来自河蟹娱乐,看到的时候让我想起了《娱乐至死》和《瓦尔登湖》,总之,不打算拯救世界,也不在乎别人装逼,生活什么的,简单最好。文中观点也许略有偏颇,读者自己心中有数即可-bystander

  你受过良好的教育,有意无意间说起自己的大学,旁人无一例外纷纷投来艳羡目光。你工作光鲜,不是四大就是4A,不是垄断国企就是全球500强;在一个都是中国人的公司里互相叫对方英文名。你衣食无忧,三个月工资买一LV包;你生活清闲,上班时就像神九的航天员,明明啥事没干还要装出一副很忙的样子;你格调不俗,业余时间不是昆曲就是话剧,不是民谣专场就是妈妈咪呀;你善良正义,身处斗室,胸怀天下,每天吃饱饭就刷刷微博拯救中国。

  你用苹果,买个五千块的马脸iPhone,又是贴膜又是镶钻,十天换八个壳;你用谷歌,买个两千块的安卓手机,又是S-OFF又是ROOT,十天刷八个ROM。你关注互联网,精通电子产品,上机锋网威锋网雷锋网,电脑里永远装着十个GTD软件八个思维导图软件,用Instagram记录生活,对乔布斯比对你爸还了解,以果粉自居并喜欢到论坛上问:iOS6完美越狱什么时候出来啊?

  你发烧,你还发骚,出门带着IPC,用麻绳绑个随身耳放,再配一对ER4P入耳式耳塞,完全隔音,也不怕被车撞死。嫌不够惹眼?那就换一副时下最流行的魔声Beats Pro头戴式耳机,每一个苹果旗舰店的配件区里都有卖,它颜色鲜艳外形时尚,两个耳朵每边印着一个b,挂在你的头上,真是实至名归。

  你叫自己“吃货”,可怜的娃从小在城里长大没吃过什么好东西,为了美食频道里推荐的坑爹路边摊,坐10块钱地铁从城南干到城北。你热爱美食,每次花十分钟炒菜,二十分钟摆盘,三十分钟拍照,拍好导进PhotoShop里用康熙字典体配上两句文言文,传到博客上豆瓣上微博上。

  你文艺青年,琴棋书画样样不通,格律没搞懂就敢写古诗词,最爱莎士比亚的英雄双行体。你只到电影院看电影,提到外国电影从不说中文名,也不说英文名,管《指环王》叫LOTR,《蝙蝠侠3》叫TDKR,倍洋气倍有面子。你一听到维瓦尔第的《四季》,就会想起波光粼粼的日内瓦湖和白雪皑皑的阿尔卑斯山。

  终于有一天,当你拿着一张音乐会赠票睡死在钢琴声中,当你附庸风雅跑去看毕加索画展却一张画也没看懂,你突然意识到了自己的浅薄。没有金刚钻,怎装瓷器逼?没有付出,哪来收获?

  装逼没有那么容易,才会特别让人着迷。

  你开始认认真真地看书,时间宝贵,你只看经典,抬手就是中华书局、上海古籍,各种珍本善本影印本,横排版的书不看,简体字的书不看。理论学习也不能落下,商务印书馆汉译世界学术名著丛书买它个几十本回来,黄的绿的橙的蓝的,书架上一排彩虹。

  你偷偷把手机铃声从《我的歌声里》换成肖邦的夜曲,王菲、张国荣的CD扔掉,你万青,你痛仰,你Pink Floyd,你Guns N’ Roses,你从流行听到爵士,从摇听到古典,别人问起你最喜欢的歌手,你四十五度角仰望星空,眼神虔诚地说出一句:“In Bach We Trust。”念到Bach的ch时上腭抬高,发成“喝哈”轻读加连读的效果,一口纯正的小舌音,德味!

  数码单反是不能再用了,现在连旅游团的大叔大妈们都人手一只无敌兔了。相机一定得是胶片的,胶片一定得是120的,拉开你们家冰箱,啥吃的没有,满满的全是胶卷——还必须得是过期的。

  国内景点是不能再去了,水乡古镇全是搞一夜情的,西藏全是又酸又穷除了会辞职什么都不会的城市小白领。你背包,你户外,你特立独行无所畏惧,你穿Columbia防水鞋、NorthFace冲锋衣,你用GPS迷了路,在黄山的雨夜里发出求救信息。

  你张开双手去生活去爱,你受了伤害,你的小心脏扎满绷带。你痛不欲生,你长夜痛哭过人生,痛完哭完后你顿悟你看透你蜕变,你长了一分智慧叫阅历,你多了一分气质叫成熟。你情感专家,你麻辣教师,你知性姐姐。你豆瓣粉丝几万,微博粉丝几十万,你吊了个有房有车有钱的金龟婿,然后教小姑娘们什么是爱情;你一天到晚不干正事,然后教小朋友们如何治疗拖延症;你做了个朝九晚五的无趣上班族,然后教大学生们别放弃梦想。你读书写字做主妇,你把体内毒素分泌成畅销书。你解答粉丝来信,聆听读者倾述,你款到发货,话到病除。你忙着生产一种叫“正能量”的东西,没有它,你的读者将无以为继,夜夜痛哭。

  你研习人类学、社会学、历史学、植物学、建筑学、心理学,你掌握六门外语:英语、法语、德语、日语、西班牙语、铁岭话,你知道康熙他小舅的二大爷哪年死的,你分得清古典柱式认得出欧洲广场,你叫得出路边一花一草的科属名字,你开口M2闭口流通性过剩,你和同好攒了个铅笔经济研究社,研究除了经济学以外的任何东西。

  只有门外汉才会在听古典音乐的时候想到什么画面,你谈论的是作品的母题、动机、织体、转调、升降、横向展开的层次与纵向展开的速度。你告诉还在听莫扎特“我不想不想长大”和贝多芬“当当当当”的新手:不妨尝试一下莫扎特和贝多芬的钢琴协奏曲,尤其是莫扎特的K.491和K.595,贝多芬的Op.37和Op.73,精彩绝伦,不输给他们任何的交响乐作品以及歌剧。你对中产气味古典主义模仿者勃拉姆斯充满轻视,对婆婆妈妈的柴可夫斯基只有厌烦。斯特劳斯里面只能听听理查·斯特劳斯,他的艺术歌曲还算有那么点思想性;至于约翰·斯特劳斯,天啊,真不知道这个家伙除开写了几首平庸的圆舞曲外还干了些什么。

  你上知天文下知地理,对世界充满好奇心和求知欲,没事就到网上破解谣言。你三十好几找不到对象,去非诚勿扰相亲告诉人家“喜欢TBBT加分哦”,结果“可惜不是你,陪我到最后……”。你在粉丝面前表演Name Dropping的把戏大秀才艺,隔天一觉醒来照旧要加班熬夜做苦力,供房养车还利息。

  你有知识有思想有文化有品位,唯独没有钱。你浑身上下散发着狐臭般无法抗拒的人格魅力,唯独没有活人鸟你。

  装逼尚未成功,同志仍需努力。

  你苦心智、劳筋骨、饿体肤,长夜痛哭算个屁,未曾坐过春运绿皮车者,不足以语人生。你比别人聪明你还比别人勤奋,你睡得比别人晚起得比别人早,你头发一天比一天少,肚子一天比一天大,鸡鸡一天比一天软。“吃得苦中苦,方装逼上逼”,皇天不负苦心装逼的人,你行业老大了,你商界精英了,你社会名流了,Finally, You did it, You DID it!

  你实现了“财务上的自由”。你从不像其它男人一样热衷讨论好车,一般你的做法是:买一辆。不过,好车没什么值得炫耀的,车再好能好得过煤老板的?身为“中国知识新贵”的你,更喜欢邀请朋友到家里听自己两百万的Hi-End系统上播放的马勒和布鲁克纳。你听音室里的唱片的总价能买三辆奔驰,你用十三种工具调整自己唱机唱臂的位置,你告诉朋友,玩音响最关键的不是音源,也不是音箱,而是电:水电偏冷,火电偏暖,核电偏硬,你只用来自新疆阿克苏的风电,宽松醇厚。

  你从微软跳到谷歌,最后弄个创新工场,做出了市面上最好的安卓盗版装机软件。你是中国的雷布斯,三千块市价的安卓手机你只卖两千块,除了一直缺货外,没什么不好的。

  你从英国回来,都不用做学问搞研究,把民主的细节背诵一遍就当上了副教授。你出国就去冰岛,斯堪的纳维亚那块,北欧冰冷的气质才衬你高洁的内心,哦,对了,出门前记得把所有微博删掉。

  你是央视主持人,你抑郁了,你又好了,你开着豪车到人民大会堂骂执政党的娘,骂完回台里继续主持读书节目;你血水盐水里泡过,说十句话引用八句名人名言,采访的时候总像只孵蛋的鹌鹑一样看着对方,你内心强大业务出众文笔一流,更要命的是,你还穷,谁敢不喜欢你简直天理难容。

  你文学青年,你杂志主编,你说看不懂你小说的人是傻逼,看不懂你小说的人就是傻逼;你说文学有金线,文学就有金线。你眼光高,天底下看得上眼的东西就两样:美玉和鹌鹑。你率性随意,什么都可以将就,但避孕套一定要用最薄的。

  你为民主民权民生摇旗呐喊,早年带老婆到天安门广场拍露逼照,直接则对城楼上的人像竖中指,好像很厉害的样子,可惜被查过一次账后就痿了,回来后一副受尽人间辛酸的萌样,像闰土一样四处找粉丝借钱,谁看谁心疼。

  你老了,头发胡子花白,你归隐田园,深藏功与名。你心情不好就打个飞的去伦敦喂鸽子,去尼泊尔爬珠穆朗玛峰,心情好的时候就给干女儿做一盘难看但好吃的红烧肉。

  你会当凌绝顶,一览众逼小。你再也不需要装逼,因为,你就是逼。

  你安然地度过了一生,死后安葬在宁静的故乡,野花轻轻覆盖你的墓碑,上面镌刻的六个大字清晰可辨:

  “活过,爱过,装过。”

recon-ng开源信息探测框架

作者:bystander 博客:http://leaver.me 微博:http://t.qq.com/lazystander 论坛:法客论坛

首发。转载什么的请注明出处。起码给我留个链接啥的嘛。

首先介绍一下。这个工具是国外刚刚发布的。主要用来渗透前的信息探测。使用类似Metasploit 主要有 Auxiliary: 这个模块查询主机信息泄漏页。进行hash反查,模糊名称精确,检查某个email是否密码泄漏,域名解析ip等 Contacts: 这个模块探测和某一公司有关的人员的信息,主要包括 LinkedIn 和Jigsaw 这两个模块。得到的信息可以被Auxiliary模块使用,如果和Social Engineer Toolkit(社会工程学工具集,这个工具已经发布了。是开源的。大家可以看看),一起。效果强大。

Hosts: 这个用来获取站点子域名。。包括使用baidu。Google bing等。。效果相当强大。 Output: 这个模块用来创建输出报表 Pwnedlist: 这个模块不是得shell的。他可通过 Pwnedlist.com 提供的api,如果这个网站被入侵过。那么可以直接获得其他黑客泄漏的帐号密码。。(需要去 Pwnedlist.com 注册)

安装方法: bt下直接

git clone https://LaNMaSteR53@bitbucket.org/LaNMaSteR53/recon-ng.git
然后有可能提示输入密码,好象是随便输一个用来保护版本控制。。我输的是toor。。 然后就安装好了。输入
cd recon-ng
然后
./recon-ng.py
首先查看有哪些模块。输入
modules
图一

我以获取子域名为例,通过我前面的介绍你已经知道了hosts模块里的所有模块基本都是干这事的。我用里面的baidu模块来说明。你也可以使用bing等,,

输入命令

load hosts::baidu
图二

刚开始你可能不清楚这个模块的说明。那么继续输入info即可查看模块的详细说明 要开始使用。我们输入

options
和Metasploit很像把。可以查看要使用需要的配置。

图三

看表,会发现有三行。第一行是标题,第二行是域名设置,第三行是输出。这个current value也就是当前值已经为true。所以不用设置。req的意思是是否必须设置。我们输入 baidu.com就是你的目标了。

set domain baidu.com
就会从百度的结果里提取百度的子域名信息了。要开始。我们输入
run
图四

更多希望大家发掘吧。我抛砖。求引玉。