每天做得最多的就是用VIM打开文件、保存文件。使用VIM编辑文件时我习惯用'x'命令在保存并退出。而我的一个同事习惯用'wq'命令保存并退出,有一次他问我用'x'和'wq'有什么区别吗?我当时答不出来。

今天我在用'x'命令保存退出时发现了一个有趣的地方,保存退出后有时会显示 "filename" 1L, 10C 已写入  这么一行,有时又不显示。多试了几次才发现在没有修改文件时用'x'命令保存退出时不会显示 "filename" 1L, 10C 已写入 ,文件的修改时间也不会发生变化。有修改时则会显示这一行,而且文件的修改时间也会随之更新。接着我又使用'wq'命令保存退出时终于发现了点问题:不管我是否修改了文件内容,用'wq'命令保存退出时都会显示 "filename" 1L, 10C 已写入 ,并更新文件的修改时间。呵呵原来"x"与"wq"的的真正区别在这里:

wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。


From:http://blog.chinaunix.net/uid-12115233-id-3268894.html
首先,用 telnet 链接WEB服务器:
telnet 172.21.73.12 80
键入下面两行命令,然后回车2次,即可得到HTTP响应(下面的命令是get index.html文件,请根据你测试的server的实际情况修改这个参数)。
GET /index.html HTTP/1.1
host:172.21.73.12:80

响应的结果如下所示:
HTTP/1.1 200 OK
Date: Thu, 30 Jul 2009 03:42:18 GMT
Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch5~pu1 mod_perl/2.0.2 Perl/v5.8.8
Last-Modified: Thu, 30 Jul 2009 03:21:07 GMT
ETag: "320692-19e-cb5d6ec0"
Accept-Ranges: bytes
Content-Length: 414
Content-Type: text/html; charset=UTF-8
来自:http://blog.chinaunix.net/uid-20644632-id-68039.html

可以用来排查一下那个网路的问题:


——————————————————————————————
实践OK如下:


不用这么复杂,但有一个问题,用telnet手打的话就写个 GET /  就好了
这host没有设置,访问默认到ip了: curl -H"Host:jackxiang.com" ...怎么体现在telnet里:


得用ip去连接后,写Host才行,如下:


=================================================================================
Telnet Post/Get  实现方式:
Get方式
1. telnet 192.168.1.110 80,连接上之后。
2.

windows doc命令行下:ctrl键 + ']' 键 进入输入模式,接着按回车切换到显式输入模式(可以显示输入的字符)

linux命令行则不需要此此操作。



3. 输入http头部,两次回车(\r\n)。

GET  /api.do?user=charlie&pwd=w2ss42   HTTP/1.0

Content-Type: text/html; charset=UTF-8


POST方式
1. telnet 192.168.1.110 80,连接上之后。
2. 同上。



3. 输入http头部,两次回车(\r\n),接着输入post参数。

POST   /api.do   HTTP/1.0

Content-Type: application/x-www-form-urlencoded  

Content-Length: 15



user=charlid&pwd=w2ss42

POST/GET 来自:http://blog.csdn.net/xiongli880612/article/details/40300861
来源2:http://blog.csdn.net/fym0121/article/details/7647887
==========================一个哥们是IOS上这样就行,我发现不行======================================
http GET http://jackxiang.com    GET必须大写,否则返回:400 Bad Request:



本文转载自:http://www.cnblogs.com/stg609/archive/2008/07/06/1237000.html
      1、打开"运行"->cmd进入命令环境;
      2、输入"telnet www.baidu.com 80",回车后 ,屏幕为全黑,此时我们利用快捷键"Ctrl+](右中括号)"来打开本地回显功能,这样我们就可以看见我们所打的东西了,如图:(注本阶段执行过程和以下的过程均要求操作时间尽可能短,因为时间一长,便会被认为断开连接。)


      3、单击回车,进行编辑状态。
      4、输入:"GET / HTTP/1.1"后回车,在第二段接着输入:"HOST:"然后按回车,这样一个简单的HTTP请求就完成了,接着我人只要再按下回车,便向服务器递交这个请求了。如图:(我们来看一下这个是什么意思:GET表示请求方式,/表示请求的根目录下的文件,HTTP/1.1表示HTTP协议版本,HOST就是一个消息头,据某些朋友说1.1的版本一定要加一个"HOST:"可是我实验后发现"HOST :"不加仍旧可以正常发送请求,但是GET HTTP这个必须大写,否则就该请求无法发送)


      5、接收服务器返回,这步其实不需要我们来做,因为当我们发送请求后,只需几秒钟,我们便会收到来自服务器反应.


      6、这样,请求就算完成了。下面我们在百度中搜一下"1",浏览器中的地址应该是:http://www.baidu.com/s?wd=1.看看请求是怎么样的


      怎么样,大家会了吗?以上只是用GET方式进行请求,当然还可以用POST方式进行请求,只是POST我这不方便做实验,所以就不写了。大概的格式给大家参考下:
      POST /localhost/login.aspx HTTP/1.1
      HOST:
      Content-Type:application/x-www-form-urlencoded
      Content-Length:10
      
      uid=xxxxxx
用C语言实现一个循环队列并不难。关键点在于对队列 "空" 和 "满" 状态的判断。

正如《C和指针》中所描写的,有两种方法来实现对队列空和满状态的判断。

在数组中空一个元素不填,起始时, 置tail为0, front为1, 这样一来, 实现要浪费queue buffer中两个元素空间:
队列空:  (tail+1) % queue_size == front
队列满:  (tail+2) % queue_size == front
定义一个变量来记录队列中元素的个数, 判断队列的空和满直接看变量的值即可


本文中使用的是第2种:


来自:http://blog.csdn.net/huangkangying/article/details/44066729
背景:公司服务器存的ftp是utf-8,用那个leapftp打开是乱码,如何让leapftp支持UTF-8编码?
leapftp 通过发送命令 可以将服务器的乱码识别为正常编码:
登录乱码服务器;
随意点击服务器上任意乱码文件或目录;
按键盘CTRL+R 弹出对话框;
输入opts utf8 off  点击确定;(需勾选完成时刷新选项)
服务器会从乱码态转为正常可识别状态;
缺点:每次登陆都需要敲入这个命令,但是对于下载已经没有影响了;

以上实践OK。
在 .vimrc里添加:


按一下 f 键就能显示函数名字。

来自:http://blog.csdn.net/caspiansea/article/details/42570311


vim里一个函数很长(几百行),光标在函数中间的某个位置,怎么快速跳到函数头?
[]
是跳到函数头。[ 是 p 右侧那个键。
正常模式
跳到头
[[
跳到尾
][
跳到下一个函数
]]
调到上一个函数
[]
调到上一层大括号
[{


ctrl + o 回到光标回到上次位置:
ESC下面那个按两下也可以实现


命令模式下跳转到某行:
比如开始在第n行,然后用mG后,跳到了m行,
技术创新持续进行、速度不断加快,企业竞争优势主要来自创新。随着科技的日新月异,人们的生活节奏越来越快以及对个性的追求,产品的生命周期不断缩短。
顾客需求瞬息万变,产品周期不断缩短。在知识经济时代,那种”生产什么就卖什么”的时代已经一去不复返了。如今的”买方市场”使顾客的选择范围大大拓宽,也使得他们对产品的期望值在不断提高,他们不再满足于合理的价格,而且还要追求产品的个性化,企业往往要根据顾客的需求”量体裁衣”。
于是顾客不再有耐心为某一种产品而长时间地等待了。 企业如果不能即时对市场需求变化做出快速响应,不能在短时间内开发、生产并销售出其产品,企业就会被淘汰出局,SO,中小企业如雨后春笋,进行专业化灵活多便的生产或服务,并以其低成本运营对规模化企业高成本运营直接产生竞争威胁。
目前,不求最好,但求最贵的公司,设备该上的都上了,事故该来的仍然会来,使用第三方企业提供的解决方案未必靠谱,昂贵的硬件与软件投资并没有为创造出应有的价值。为什么?在我看来,是因为硬件软件分离太久用户行为思维习惯审美发生了大变化,在天下大势,分久必合,合久必分的必然演变下以合为主要潮流,鉴于此背景,我们也必须要顺应潮流,把整个软硬件的链条拉长并牢牢的控制在我们手中,这不是不可能,现在软件硬件的技术已然成熟不再是难点问题而最多的是利用这一整套结构体系去满足用户的迁移和品味的变化,同时,这个潮流不是迅速就来就过而是一个循序渐进的过程,这也就是为何慢也没关系再就是硬件的研发本来就慢,即便如此,我们出发时就要在整个链条上贯穿上我们自己的兄弟,势必完整把握住灵活构建出软硬件一体化的根本原因所在。

————————————————————————————————————————————————————————————————
警惕IT黑洞

什么是IT黑洞

IT黑洞是指企业在利用信息技术进行经营管理时,巨额的软硬件或软件投资并不能给企业带来预期的管理效率,企业在这方面的投资好像陷入一个“黑洞”的现象。

产生IT黑洞原因是,运维管理层没有能力解决生产中遇到的问题,害怕承担责任,从而将风险转嫁给第三方。试图说服企业,上了这些硬件就能保证生产安全稳定。

如此一来IT预算成倍增长,企业几乎将所有的技术都应用的生产环境中。

使用最新的防火墙,转发能力最强的路由器,吞吐最强的交换机,昂贵的负载均衡,高大上的SAN区域存储,去重复压缩备份,实时备份与恢复,主流的服务器甚至小型机。

我曾经写过一个段子调侃一下IT黑洞:

要是咱做首席架构师
一定要的选Java
选最好的五星级机房
万兆骨干以太网直接接入
至少百十来个机柜吧
什么防火墙,路由器,交换机,负载均衡呀
能给他接的全给他接上
楼上有健身房,楼内有游戏室
一进门儿,甭管有事儿没事儿都得跟人家说
may i help you sir?
一口地道的英国伦敦腔儿
倍儿有面子
什么 hibernate, structs, spring,ActiveMQ 全都给我装上
别说代码多少行,光 xml 配置文件就100M多兆
一个 EMC 存储放那儿, 干啥, 存储Log4J的日志
一年服务费就得几万美金
这样一个系统, 你猜得多少码农开发, 得, 光累死的就10好几个
这样的系统能用吗? 当然不能
你还得找个外包公司, 一打 Application Server管理员, 18M认证的那种 , 24*365
在招聘几十个运维的,二十四小时候着
系统光启动就得好几天
周围的公司不是Hadoop就是BigTable
你要是用PHP, MySQL都不好意思跟人家打招呼
就是一个字儿---“贵”
一天的网络流量得花个万八千的
你说这样的开发,码畜一天的多少钱
我觉得怎么着也得四千美金吧
四千美金?!那是成本
八千美金起
你别嫌贵,还不打折
你得研究老板的心理
愿意掏几千美金租五星级机房的企业
根本不在乎再多掏两千
什么叫土豪企业你知道吗?
土豪企业就是
买什么东西都买最贵的,不买最好的
所以,我们做项目的口号就是
不求最好,但求最贵.

设备该上的都上了,事故该来的仍然会来,使用第三方企业提供的解决方案未必靠谱,昂贵的硬件与软件投资并没有为创造出应有的价值。

起初IBM,EMC,VMware,Oracle,Microsoft,SAP 等等企业针对不同行业提出很多解决方案,例如ERP,CRM,零售业,航空业解决方案等等。 传统行业经过半个世纪发展,提炼,已经有一个完整、完善、科学的管理方法,流程明确,如制造业有ISO标准,这些软件企业经过漫长需求收集整理最终针对不同行业开发出完善的产品与行业解决方案。 这些方案在传统企业是成功的,我们可以看到IBM,SAP,Oracle在各种传统行业取得了辉煌的成功。

然而,进入90年代,这种传统企业管理模式越来越跟不上时代的步伐,新经济时代的到来致使企业所处的时代背景和竞争环境发生了根本性的变化。 软件供应商的传统解决方案也不适合当下的企业,日益显露出其弊端。传统软件开发方式,一年过半年发布一个版本已经不能适应互联网时代,我们需要一周甚至每天一个版本。尤其在当前中国互联网大环境下,每天可能频繁更新数个版本到生产环境。

技术创新持续进行、速度不断加快,企业竞争优势主要来自创新。随着科技的日新月异,人们的生活节奏越来越快以及对个性的追求,产品的生命周期不断缩短。 与工业经济时代不同,创新(Innovation)成为知识经济时代的首要目标。人们通过有计划的、连续不断的创新来赢得市场的竞争优势。 也就是说在知识经济时代创新不再具有一定的阶段性,产品变化不再具有相对稳定性的特点,从而企业通过将产品生产分解再分解,使生产的每一步骤规范化和简单化,并通过规模化大生产降低生产成本,获得市场竞争优势的历史成为过去。

顾客需求瞬息万变,产品周期不断缩短。在知识经济时代,那种”生产什么就卖什么”的时代已经一去不复返了。如今的”买方市场”使顾客的选择范围大大拓宽,也使得他们对产品的期望值在不断提高,他们不再满足于合理的价格,而且还要追求产品的个性化,企业往往要根据顾客的需求”量体裁衣”。同时,市场竞争加剧,大量的替代产品使得任何一家企业都无法垄断市场,而贸易壁垒的取消还意味着顾客不仅仅可以从本国产品还能从外国产品中寻求其最佳利益,于是顾客不再有耐心为某一种产品而长时间地等待了。 企业如果不能即时对市场需求变化做出快速响应,不能在短时间内开发、生产并销售出其产品,企业就会被淘汰出局。

竞争空间不断扩大,激烈程度不断加剧。随着全球经济一体化,企业竞争将不再受地域限制,任何企业都要承受来自国际化企业发展的竞争压力。另一方面,中小企业如雨后春笋,进行专业化灵活多便的生产或服务,并以其低成本运营对规模化企业高成本运营直接产生竞争威胁。

IT黑洞产生的原因分析

人的因素

企业重管理,轻技术。趋向于管理层把人管好,而不是充分授权技术人员,重视技术研发。

管理层没有能力解决生产中遇到的问题

害怕承担责任,如果在生产环境使用MySQL出了问题怎么办,谁能承担责任?不如使用Oracle,出现问题厂家上门解决,将责任转嫁给厂商。

求稳心态,不做事就不会出事,不要在我任上出事,评价下属工作的标准是办事的准确度如何,任何冒险与创新的行为都是不受欢迎的。 因此极大地抑制了成员自我决策的积极性与创造性。导致员工技能单一,适应性差,员工缺乏积极性、主动性、责任感差,致使工作和服务质量下降。

来自组织架构的问题

传统的企业组织理论告诉我们,当组织规模扩大到一定程度,必须通过增加管理层次来保证有效领导。在企业规模一定的情况下,管理幅度与管理层次成反比。当企业发展到一定规模后,这种管理体制的弊端就突显出来。

组织层次过多,各部门按专业职能划分,组织机构臃肿,助长官僚作风 这些都是出现IT黑洞的主要原因。各部门只关心本部门的工作,并以达到上级部门满意为准,缺乏合作与服务意识。 各部门往往会从自己局部的利益出发,精心构思自己的行为,使自己的目标凌驾于整个组织的目标之上。这种分散主义和利益分歧,或许能够实现局部利益的提高,但却弱化了整个组织的功效。

延伸阅读《Netkiller 系列 手札》

作者

陈景峰,昵称 Netkiller, 英文名 Neo 《Netkiller 系列 手札》电子书的作者,读者QQ群:128659835,个人网站:http://netkiller.github.io/

转载请注明出处与作者声明

2015-8-4
背景:尽管登录vps会发邮件,但是会偶出现,登录了又发了一邮件,于是想此时看到底有多少个终端在登录态,还是阿里的alikid触发,还是真有黑客,怎么办,w查看,w tux。
LINUX是个多用户系统,一旦连接到网络中,它可以同时为多个登录用户提供服务。系统管理员可以随时了解系统中有那些用户,用户都在进行什么操作。
查看用户的操作
系统管理员若想知道某一时刻用户的行为,只需要输入命令w即可,在SHELL终端中输入如下命令:
tux@tux-desktop:~$ w
21:13:14 up 7:08, 2 users, load average: 0.22, 0.32, 0.20
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tux      tty7     :0               14:05     ?    37:55   0.33s x-session-manag
tux      pts/1    :0.0             21:13    0.00s 0.13s 0.00s w

可以看到执行W命令及显示结果。
命令信息含义
上述显示的信息分别表示如下:
第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登陆哟内用户总数及系统平均负载信息。对于上述势力中的几个显示数据意义为:
21:13:14 表示执行W的时间是在晚上9点13分。
7:08 表示系统运行7小时8分。
2 users 表示当前系统登陆用户总数为2。
load average与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。
从第二行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资料。
USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。
TTY:用户登陆所用的终端。
FROM:显示用户在何处登陆系统。
LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。
IDLE:用户空闲时间,从用户上一次任务结束后,开会记时。
JCPU:一终端代号来区分,表示在摸段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
PCPU:指WHAT域的任务执行后耗费的CPU时间。
WHAT:表示当前执行的任务。

查看某用户
当登陆系统用户很多的时候,可以在W后面加上某个用户名,则会查看该用户执行任务的情况。
tux@tux-desktop:~$ w tux
21:19:01 up 7:14, 2 users, load average: 0.25, 0.21, 0.18
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
tux      tty7     :0               14:05     ?    38:05   0.33s x-session-manag
tux      pts/1    :0.0             21:13    0.00s 0.13s 0.00s w tux

默认情况下,系统会显示上述所有的信息,如果只关心某一方面,可以只使用相关的选项。
http://mp.weixin.qq.com/s?__biz=MzAxNjAzMTQyMA==&mid=204468062&idx=1&sn=bfafd45d802964c8b4636841a38011d1&scene=5&ptlang=2052&ADUIN=372647693&ADSESSION=1438218622&ADTAG=CLIENT.QQ.5425_.0&ADPUBNO=26505#rd
关系数据库:除了上面说的Facebook的MySQL的例子,PCIe闪存SSD卡通过缓存(又名读缓存)写入的功能也非常有利于关系数据库。热文件、索引、元数据都可以被放置在SSD中作为缓存使用。数据也可以被放置其中。当有查询、排序和计算操作时,数据库反应速度可以成倍地增加。

facebook的MySQL数据库使用FusionIO公司的IODrive PCIe闪存卡。使用这种闪存卡来代替传统的HDD,Facebook就可以关闭MySQL的低效冗余日志系统,并且能充分利用FusionIO的记录系统。通过结合PCIe闪存与较少的写入量,与同等HDD存储相比,可以将数据存储量减少50%,并降低50%的延迟,还能增加33%的吞吐量。从Facebook的角度来看,他们降低了存储基础设施和成本的投入,因为他们的客户获得了更快的响应时间。


推动PCIe/NVMe标准化和做更多的固态硬盘产品和解决方案仍然是见效非常快的角色

摘自:http://stor.zol.com.cn/386/3865458.html
背景:这个哥们儿真是喜欢开发,找个CEO也不错啊,国外的就是大气...关键是这个东西赚钱有些难,或没发爆发,可能新CEO有办法。

北京时间7月21日早间消息,Evernote联合创始人菲尔-里宾(Phil Libin)几个月前计划不再担任公司CEO。本周一,Evernote宣布,将任命克里斯-奥尼尔(Chris O'Neil)为公司新任CEO。奥尼尔此前在谷歌供职约10年时间,近期曾负责Google X实验室的全球业务运营。Google X开发了无人驾驶汽车和谷歌眼镜等创新产品。奥尼尔将于下周正式上任,他将负责Evernote的桌面端和移动端应用。

前Google X实验室高管克里斯·奥尼尔(左)和Evernote联合创始人菲尔·里宾(右)的合影
目前这些应用在全球范围内已有超过1.5亿用户。
里宾周一在博客中表示,Evernote需要“实现”自身的潜力。里宾此前曾表示,Evernote的目标是吸引超过10亿用户。他表示:“很少团队有机会让他们的梦想对他人产生重要价值,在变革行业的过程中成为有形的一部分,或是让世界围绕他们而改变。我们做到了这一点,但未来还有很多要做。”
里宾仍将担任Evernote执行董事长。他表示,自己仍将继续坚持这些目标,并“开发优秀的产品”。

From:http://www.cnbeta.com/articles/412843.htm
地球和土星周围都有“冲浪波”:同方向规律运动:
http://www.cnbeta.com/articles/412869.htm


48亿公里外惊鸿一瞥:冥王星照片的通信难题,
关于信号的编码有一个大致讲述,可以了解下:
http://www.cnbeta.com/articles/412877.htm

你是等不到了 - 10亿年地球表面温度将达100度:
http://www.cnbeta.com/articles/412837.htm
背景:装的mantis来外包提供一帐号发现收不到邮件。用户名:noreply@example.com,mail title是 $g_from_name            = 'Mantis Bug Tracker'; $g_smtp_host            = '192.168.105.171'; 用户名密码为空。$g_smtp_username = '';$g_smtp_password = ''; 果然是postFix:
[root@localhost mantisbt]# telnet  192.168.105.171 25
Trying 192.168.105.171...
Connected to localhost (192.168.105.171).
Escape character is '^]'.
220 jackxiang.com ESMTP Postfix
———————————————————————————————————————————————————————

方法一,不使用邮件:
不用邮件提醒通知这些功能,则在config_inc.php 中如下增加一行即可,这样的话新增的用户的密码都是空的。
$g_enable_email_notification  = OFF; //不使用邮件

方法二,配置好你的邮件发送参数:
以下代码可以在 config_defaults_inc.php 中找到,建议把该内容拷到 config_inc.php 中再进行修改 。
下面以qq邮箱为例进行详细的配置说明:
邮件服务器配置
     在Mantis中注册新用户时,会给你指定的邮箱发一封邮件,点开邮件中的链接才可以设定密码,因此需要给Mantis添加邮件功能。
     使用phpmailer作为邮件服务器,首先下载phpmailer,网址为:http://phpmailer.codeworxtech.com,下载完后解压到D:\APMServ-v5.2.6\APMServ5.2.6\www\htdocs\mantis\phpmailer。
       修改D:\APMServ-v5.2.6\APMServ5.2.6\www\htdocs\mantis\config_inc.php,添加以下内容:
        $g_smtp_host = 'smtp.qq.com';//mantis发送邮件所需要的服务器
    $g_smtp_username = '6449694';//mantis登录的用户名
    $g_smtp_password = 'qqxxxxx';//密码
    $g_use_phpMailer = ON; //打开phpmailer
    $g_phpMailer_path = 'D:/APMServ-v5.2.6/APMServ5.2.6/www/htdocs/mantis/phpmailer/';//保证phpmailer所安装的路径正确
      
    $g_phpMailer_method = 2;
/*此处的数值可为0,1,2
0为调用了一个mantis内置的mail()函数来发送邮件;1为sendmail方式(这个我也不是很清楚);2为使用smtp方式,登录到邮件服务器内来发送邮件*/
    $g_return_path_email = '6449694@qq.com'//这个即带上了域名的完整邮箱名


来自:http://www.51testing.com/html/71/410671-809247.html
Diagnostic:
Exception in window.onload: An error has occuredJSPlugin.3005
StackTrace:
Error: An error has occuredJSPlugin.3005 at getString (res://[...]\F12Ressources.dll/23/pluginhost/plugin.f12.js:5021:17) at ToolWindoHelpers.loadString
[...]

------------------

Diagnostic:

Exception in window.onload: Error: An error has ocurredJSPlugin.3005

Stack Trace:

Error: An error has ocurredJSPlugin.3005 at getString (res://C:\Program Files\Internet Explorer\F12Resources.dll/23/pluginhost/plugin.f12.js:5021:27) at ToolWindowHelpers.loadString (res://C:\Program Files\Internet Explorer\F12Resources.dll/23/Common/CommonMerged.js:5803:13) at TabPanes...

-------------------



解决方法安装Windows7补丁:KB3008923;

下载地址:

http://www.microsoft.com/en-us/download/details.aspx?id=45134  (32位)

http://www.microsoft.com/zh-CN/download/details.aspx?id=45154 (64位)
ORACLE发给ACE的邮件中提到MySQL 5.7.8新功能,有几个地方比较感兴趣:

1、新增super_read_only选项防止read_only开启后,仍有SUPER权限的用户修改数据(这时只有复制线程能写数据),避免主从数据不一致等问题;

2、新增disabled_storage_engines选项,比如说可用来强制禁用MyISAM引擎,避免有人再意外创建MyISAM表;

3、即将发布mysqlpump客户端工具以取代mysqldump,这是全新的并行备份工具。测试备份6个一样大小的表,默认并发2线程时相比mysqldump提速2.1倍,并发6线程时则提速5倍,并发的威力还是很猛的,当然了,实际线上使用时还要考虑服务器的I/O压力能否承载得住。



总的来说,5.7版本是非常值得期待的
M3U8文件简介:http://blog.sina.com.cn/s/blog_6cf7acdf0102v0xv.html

好消息,刚发现天天浏览器搞定优酷的m3u8了:
安卓伪装成ipad播放html5上的视平大家早就熟悉了,但是优酷自从使用了m3u8封装后就没法正常播放,今天因为一个帖子又上了次优酷,发现天天浏览器提示下载天天影音,抱着试一试的心情下载了,结果用他果然可以解析播放m3u8,嘿嘿,这下麻烦问题终于结局呃,大家也去尝试下
mobo是不支持的
来自:http://bbs.imp3.net/thread-10484710-1-1.html

获取m3u8可以看的地址 : http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8
阅读全文
linux svn工作空间锁定无法更新的解决方法(Working copy ‘.’ locked)
背景:有人在linux上直接修改文件(可能是debug),但没有提交成功。产生这种情况大多是因为上次svn更新命令执行失败且被自动锁定了。
于是会出现如下情况:
[root@localhost justwinit_devel]# /usr/bin/svn  update --username xiangdong --password xiangdong
svn: Working copy '.' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
怎么办?

两步解决:
步骤1:
写个脚本批量清,cleanuplocked.sh:
#!/bin/sh
for lk in `find /data/htdocs/justwinit_devel -name "lock"`
do
`rm $lk`
done
exit


步骤二:运行命令svn cleanup:
[root@localhost justwinit_devel]# svn cleanup
[root@localhost justwinit_devel]# /usr/bin/svn  update --username xiangdong --password xiangdong

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <http://svn.jackxiang.com:80> Authorization Realm

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
At revision 2736.


参考:http://www.xuebuyuan.com/1112787.html
背景:rango兄弟搞一个swoole,这兄弟尼玛名字取得太大 Tencent Sever Framework。 不怕腾讯告你啊,tsf用了PHP的生成器语法实现了协程,这是最大的创新。QQ 现在 部分后台协议 是用这个搞的公众号。也有人用swoole做日志服务器。
顺带介绍下swoole:采用swoole+redis,基于swoole扩展,根据内部的需求,封装了一套可扩展、高性的PHP server,已应用于多个业务模块,提供高并发的kv数据查询及业务数据的在线计算,每天亿级的PV量,某熊公司有一套分布式压测系统,他们对实际项目做过100亿次的测试,无问题,正在用,我没用,哈哈。

开始扯:
协程也有一个小小的缺点:做并发不如异步IO方便。除非你再启动一个协程。做comet还是golang比较舒服,swoole的comet也非常方便。
golang+redis (数字公司在用,跟开发普通后端server一样,不过golang是协程机制,hold连接很简单,单机一般有100w,经过优化后连接能到200w).......swoole这块我就不想提了,毕竟要相信PHP是最好的语言没有之一
go吸引人的是顺应了目前主流语言的编程风格,进行了语法的一些改进,吸收了erlang的协程机制,另外与c的无缝混编。
仅管看go很NB的样子,但我还是要说PHP才是最好的语言,没有之一,因为swoole也能实现了。
总之,PHP是世界上最好的语言
————————————————————————————————————————————————————————————————————————
PHP 协程方案 tsf

tsf (Tencent Server Framework) 是腾讯公司推出的 PHP 协程方案,基于 Swoole+PHP Generator 实现的 Coroutine。Tencent Server Framework 是快速服务器部署框架,PHP 现在可以像 Golang 一样用协程实现高并发服务器,同时支持同步阻塞,异步非阻塞回调,协程这 3 种 IO 模型。

主要特性:

    基于 PHP,相比 C++ 开发更高效

    基于 Swoole 扩展,强大的异步 IO

    支持 PHP coroutine

    支持服务器监控器和提供接口

要求:

    php5.5+

    Swoole1.7.18+

    linux,OS X

服务器配置:

vim server.ini

[server]
;server type:tcp,udp,http
type = http
; port
listen[] = 12312
; entrance file
root = '/data/web_deployment/serv/test/index.php'
;php start path
php = '/usr/local/php/bin/php'

[setting]
; worker process num
worker_num = 16
; task process num
task_worker_num = 0
; dispatch mode
dispatch_mode = 2
; daemonize
daemonize = 1
; system log
log_file = '/data/log/test.log'

启动服务器:

cd /root/tsf/bin/
php swoole testHttpServ start

使用 TCP/UDP/HTTP 客户端:



$tcpReturn=(yield $this->tcpTest());
  $udpReturn=(yield $this->udpTest());
  $httpReturn=(yield $this->httpTest());
  public function tcpTest(){
    $ip = '127.0.0.1';
    $port = '9905';
    $data = 'test';
    $timeout = 0.5; //second
    yield new Swoole\Client\TCP($ip, $port, $data, $timeout);
  }
  public function udpTest(){
    $ip = '127.0.0.1';
    $port = '9905';
    $data = 'test';
    $timeout = 0.5; //second
    yield new Swoole\Client\UDP($ip, $port, $data, $timeout);
  }
  public function httpTest(){
    $url='http://www.qq.com';
    $httpRequest= new Swoole\Client\HTTP($url);
    $data='testdata';
    $header = array(
      'Content-Length' => 12345,
    );
    yield $httpRequest->get($url); //yield $httpRequest->post($path, $data, $header);
  }

来自:http://m.oschina.net/p/tsf?from=timeline&isappinstalled=0
背景:想下一个secureCRT的绿色版本,一装,我x,七大姑八大姨都来了,360也来了,还把我的IE浏览器的默认页面给改了不说,还给我变灰了,于是怎么办呢,卸载后还是灰的,于是查了下解决办法,如下:

IE主页地址栏被禁用的解决办法,很多设置按钮变灰

现在有些网站,不但改标题,改主页地址,还竟然修改注册表,让IE的许多设置选项禁用(变灰),下面是修改注册表开锁的的方法,保存成gray.bat好像还是不行,直接到这项里修改成功,实践发现修改后不用重新启动浏览器都行,直接修改成自己所想要的就可以重新给变灰,不让修改,多好:
[HKEY_CURRENT_USER Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel]
"HomePage"=dword:00000000
既将HomePage的键值改为“0”(“1”为禁用)。
实际上在[HKEY_CURRENT_USERSoftwarePoliciesMicrosoft中,缺省只有主键“SystemCertificates”,而“Internet Explorer”是没有的,只有想控制某些功能时才加上的,恐怖分子正是利用了这一点。

如IE还有别的设置被禁用,很多本来可以改的都变成“灰色”,不如直接将主键“Internet Explorer”一删了之。
SecureCRT 软件中的字体大部分都不好看,好看的新宋体等等中文字体有时又会出现乱码!

所以决定让 SecureCRT 使用 NetTerm 的字体,还是 NetTerm 的默认字体舒服,呵呵!

步骤:

  1、启动NetTerm,选择菜单 Options->Setup->Font
          发现 NetTerm 使用的默认字体是 isi_oem
  
  2、不要关闭 NetTerm,再启动 SecureCRT, 选择菜单 Options->Session Options->Terminal->Appearance
          选择 Font... 按钮,弹出字体选择菜单,看看里面是不是有isi_oem字体了,呵呵,选择它吧!
  
  3、看看 SecureCRT 的字体效果是不是和 NetTerm 的默认字体效果一样了,呵呵,偷着乐吧!

注:
   NetTerm 必须先启动,而且不能退出,相当于 NetTerm 给 SecureCRT 做代理了,呵呵!

太麻烦了,将NetTerm安装目录下的 ISIFONT1.DLL 拷贝到 c:\windows\fonts 即可,不用NetTerm代理

Ntoem.TTF Ntansi.TTF
是把这俩文件放到fonts下,但是这个字体好难看啊
我用的是自己用Adobe中提取的Courier std ,调到11号,人见人爱

来自:http://bbs.csdn.net/topics/320216347
1.在http://www.percona.com/downloads/XtraBackup/LATEST/  下载对应平台的XtraBackup,这里使用的是 http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-2.0.0/binary/Linux/x86_64/percona-xtrabackup-2.0.0.tar.gz



2.解压tar -zvxf percona-xtrabackup-2.0.0.tar.gz -C /usr/local/



3.因为MySQL我安装的是Percona-Server-5.5.21,而且安装目录为:/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/,注:同样可以用于其他MySQL版本
Shell代码  收藏代码

    cd /usr/local/percona-xtrabackup-2.0.0/bin  
    cp * /usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/bin/  

因为系统Path里面已经加入
Shell代码  收藏代码

    export PATH=$JAVA_HOME/bin:/usr/local/Percona-Server-5.5.21-rel25.0-227.Linux.x86_64/bin:$PATH  



4.我的mysql的配置文件是/etc/my.cnf,如果不指定,XtraBackup默认使用此文件识别mysql安装目录,数据文件目录等信息



5.全量备份:innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/,我使用/data/backup/mysql/作为mysql备份文件存放目录
Shell代码  收藏代码

    innobackupex --user=YOUS --password=YOUS /data/backup/mysql  

看到类似输出说明备份成功,如出错,根据提示解决
Shell代码  收藏代码

    innobackupex: Backup created in directory '/data/backup/mysql/2012-05-28_19-01-32'  
    innobackupex: MySQL binlog position: filename 'mysql-bin.000063', position 44718229367  
    120528 19:07:53  innobackupex: completed OK!  

可以在/data/backup/mysql/2012-05-28_19-01-32看到备份的文件

此时,cat xtrabackup_checkpoints会看到
Shell代码  收藏代码

    backup_type = full-backuped  
    from_lsn = 0  
    to_lsn = 44718229367  
    last_lsn = 44718229367  





6.全量Preparing:innobackupex --apply-log /path/to/BACKUP-DIR
Shell代码  收藏代码

    innobackupex --user=YOUS --password=YOUS --apply-log /data/backup/mysql/2012-05-28_19-01-32/  



可以看到如下生成文件:
Shell代码  收藏代码

    -rw-r--r--. 1 root root          13 May 28 19:07 xtrabackup_binary  
    -rw-r--r--. 1 root root          26 May 29 15:07 xtrabackup_binlog_info  
    -rw-r--r--. 1 root root          43 May 29 15:07 xtrabackup_binlog_pos_innodb  
    -rw-r-----. 1 root root          85 May 29 15:07 xtrabackup_checkpoints  
    -rw-r-----. 1 root root     2097152 May 29 14:03 xtrabackup_logfile  

cat xtrabackup_checkpoints,可以看出是全量备份并且做了prepare的
Shell代码  收藏代码

    backup_type = full-prepared  
    from_lsn = 0  
    to_lsn = 49556823920  
    last_lsn = 49556823920  



7.增量备份的前提是必须已经做过全量备份。

增量备份:innobackupex --incremental /path/to/BACKUP-DIR/--incremental-basedir=BASEDIR,当有了INCREMENTAL-DIR-1之后,下一次增量备份的需要基于INCREMENTAL-DIR-1,变成innobackupex --incremental /path/to/BACKUP-DIR/ --incremental-basedir=INCREMENTAL-DIR-1

全量备份的目录是:/data/backup/mysql/2012-05-28_19-01-32
Shell代码  收藏代码

    innobackupex --incremental /data/backup/mysql --incremental-basedir=/data/backup/mysql/2012-05-28_19-01-32/ --user=YOUS --password=YOUS  



增量备份成功会生成目录/data/backup/mysql/2012-05-29_14-25-03

cat xtrabackup_checkpoints
Shell代码  收藏代码

    backup_type = incremental  
    from_lsn = 44718229367  
    to_lsn = 49556823920  
    last_lsn = 49556823920  



8.增量Preparing,对每一个增量备份目录:

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
Shell代码  收藏代码

    innobackupex --apply-log --redo-only /data/backup/mysql/2012-05-28_19-01-32/ --incremental-dir=/data/backup/mysql/2012-05-29_14-25-03 --user=YOUS--password=YOUS  

看到如下输出:
Shell代码  收藏代码

    120529 14:29:43 InnoDB: Shutdown completed; log sequence number 49556823920  
    120529 14:29:43 innobackupex: completed OK!  

cd BASE-DIR,cat xtrabackup_checkpoints
Shell代码  收藏代码

    backup_type = full-prepared  
    from_lsn = 0  
    to_lsn = 49556823920  
    last_lsn = 49556823920  

当把所有的增量备份都执行Preparing后,还可以全量备份和全部的增量备份做一次Preparing,

innobackupex --apply-log BASE-DIR



9.恢复数据:innobackupex --copy-back BASE-DIR



参考:http://www.percona.com/doc/percona-xtrabackup/innobackupex/innobackupex_script.html
来自:http://willvvv.iteye.com/blog/1544043
ZeroClipboard,大意是使用flash作为媒介,将内容复制到剪贴板。这比用纯javascript好,因为不同浏览器会出于安全的原因,有不同反应,例如IE会给出提示,有的浏览器不支持复制到剪贴板。

但是用flash就可以复制。例子就是VeryCd,看“复制选中的连接”按钮是一个flash。看来flash的安全沙箱没有限制将内容复制到剪贴板
但是也是有限制的:

Zero Clipboard 开源的 JavaScript+flash 复制库类 :
开发中经常会用到复制的功能,在 IE 下实现比较简单。但要想做到跨浏览器比较困难了。本文将介绍一个跨浏览器的库类 Zero Clipboard 。它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的 document.execCommand("Copy") 更加灵活。

Zero Clipboard 的实现原理
Zero Clipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash。但最新的 Flash Player 10 只允许在 Flash 上进行操作才能启动剪贴板。所以 Zero Clipboard 对此进行了改进,用了一个透明的 Flash ,让其漂浮在按钮之上,这样其实点击的不是按钮而是 Flash ,也就可以使用 Flash 的复制功能了。

如何使用 Zero Clipboard
首先下载 Zero Clipboard ,并解压缩。其中需要两个文件:ZeroClipboard.js 和 ZeroClipboard.swf ,将这两个文件放入到你的项目中。

注意:测试过程总,本地运行时不可以的,在web环境中测试即可,例如 http://127.0.0.1/cp/test.html
分页: 20/194 第一页 上页 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 下页 最后页 [ 显示模式: 摘要 | 列表 ]