简单粗暴入门LDAP 

[sadly, I found my blog was blocked yesterday, so ironic. Fuck the Great Wall and the greate gov]

为了庆祝明天的反法西斯战争胜利70周年,我今天本来打算打一天酱油的。结果早上一到办公室领导说让我支援其他同事搞LDAP,而且要今天搞定。听到这个词我脑子里第一时间想到的是LAMP和DLNA,意识到这玩意从来没听过后,我表示呵呵……

趁着其它同事都还没来,我上网查了一下基本概念算是有个模糊的了解

LDAP: Lightweight Directory Access Protocol (轻量级这个词无视,关键是目录访问)

目的是用来存储各种层次化的信息,比如校、班、组,国、省、市、区等等。可以假设在网络上,并且支持检索和过滤等等。

说白了,就是个网络电话本一样的东西,鬼知道同事们要用这玩意干什么
1,安装LDAP服务器

无视windows,因为公司内部各种傻逼防火墙和组策略,在win上搞服务器就是自讨苦吃。

Ubuntu参见这篇 (http://www.cnblogs.com/xwdreamer/p/3469951.html),我不再重复发明轮子。

有两点需要注意

1.1 原文引用如下
『在安装完毕以后,可以通过以下命令来验证是否已经正确安装
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn

ldapsearch -x -LLL -H ldap:/// -b dc=envisioncn,dc=com dn』
切记,三个斜线后面也是命令的一部分!!!自动忽略//后面的技能让我郁闷了好久。
1.2 我执行ldapadd命令后并没有出现错误,但是原文add_content.ldif文件里的注释可能要删掉,否则会有异常信息
2,客户端

我使用的是ApacheDirectory Studio, 参见(http://directory.apache.org),基于Eclipse非常亲切

具体的使用也不用我说,非常简单,点点鼠标就行,有问题直接看Help或者上网搜
3,  API使用

同样使用的是Apache Directory的API, 简单的难以置信,官网有Five minutes tutorial,爽

就像使用SQLConnection一样,创建一个链接,bind(可以理解为鉴权), 然后search, 返回一个cursor, 使用完毕记得close。
—-完毕—-

常见术语和缩写 (不区分大小写)

DN: distinguished name/可识别名称

CN: common name/普通名称 (不是china。。。

DC: domain component/域名组件

OU: orgnizational unit/组织单位

objectClass: 对象类(可以理解为type或者interface

恼人的百度DSP弹窗

之前曾经装了百度影音,卸载后屏幕右下角经常出现弹窗广告,非常可恶,不仅看着糟心,而且影响打游戏!!
当时通过广告弹出时和未弹出时的进程信息,发现是一个叫popupwnd.exe的进程作怪。
当时随手删了也没当回事。
最近为了看B哥的演唱会,又装了个Letv的程序,看完后照例又删掉了。没想到久违的广告弹窗竟然又回来了!
流氓真是防不胜防,把删除的方法记录在这里,有同样困扰的朋友可以自行解决。对于这种强奸用户的无耻之徒,应该永远被唾弃。

进程叫: popupwnd.exe (64位机器上可能显示是*86)
位置在: C:\Users\[yourname]\AppData\Roaming\Letv\AfterPlay\popupwnd.exe

XPath With Namespace

dom4j +XPath用起来倍儿爽

但是遇到个问题,形如<rootNode xmlns=”xxxx” xmlns:asdf=”yyyyy” …>这样的解析起来有点问题。

如果是 <asdf:ghj name=”…”>这样的Element可以直接用 parent.selectSingleNode(“//asdf:ghj”)获取

但是同文档中的<asd name=”…”>再用parent.selectSingleNode(“//asd”)返回的都是null,失败

可行的写法是 parent.selectSingleNode(“//*[local-name()=’asd’]”)

—DONE—

 

ref: http://stackoverflow.com/questions/536441/xpath-namespace-driving-me-crazy

如何优雅的在办公室刷微博

社交网络已经完全渗透到我们生活的各个角落,当然包括办公室。任何时间在办公室转一圈肯定能发现不少在看微博的同事。
微博的界面布局非常有特色,以至于我在10米外都能识别某个人不是在看stackoverflow而是在刷新浪微博。
虽然我不是领导,但是我能看到就表示领导也能看到,那如何优雅的(仿佛在看文档)在办公室刷微博(而尽量不被领导发现)呢?

分享一个我自己使用的方法(特指新浪微博):
1. 使用weibo.cn而不是weibo.com
2. 如果追求界面的粗糙请使用‘简版’,如过追求界面简洁看图爽请使用‘大图’+‘触屏’

可能遇到的问题:
Q: 提示选择打开’text/vnd.wap.wml’类型的文件怎么办?
A: 遇到该问题很可能你在用Firefox浏览器并且人品和我一样较差,安装这个插件试试

给混合项目添加JS校验

最近在Eclipse编写一个多语言混合项目,项目本身是Android Project,但是又有大量JS代码,我想知道自己写的JS代码有没有语法错误。除了使用带错误提示的JS编辑器外,还可以对项目添加针对JS的builder和nature,这样项目在编译时能生成带有错误信息的marker,很方便。
做法很简单:
打开项目的 .project 文件,添加如下两段信息

<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>

<nature>org.eclipse.wst.jsdt.core.jsNature</nature>

以上配置针对Eclipse安装了Eclipse WST(Web Standerd Toolkit)的情况,如果安装了其他的JS builder/validator可以类比。

添加以上配置后可能会带来一些困扰,比如项目引用了第三方的一些JS lib库(jquery.js/ext.js 等),这些第三方库可能本身没有问题,但是validator可能认为它们有错误,会生成错误marker影响编译。
比如常用的jquery-1.7.2.min.js文件会被wst的jsvalidator认为有错误。

这时候应该做的就是:打开项目properties->Java Script->Include Path->Source->Excluded
点击edit,在Exclusion Patterns里填上你不需要校验的JS文件或目录。我的是assets/webapp/lib/ (即所有第三方JS库)。OK。

ALL DONE.