初创公司项目管理那些事:
http://jacksongblack.blog.51cto.com/6378693/1334544
从“技术不是最重要的”说起:
http://489381.blog.51cto.com/479381/1334405
http://jacksongblack.blog.51cto.com/6378693/1334544
从“技术不是最重要的”说起:
http://489381.blog.51cto.com/479381/1334405
curl中为什么-d选项不能和-I连用
Unix/LinuxC技术 jackxiang 2013-12-2 16:52
背景:我在写http://jackxiang.com/post/4070/ 时发现的(Post并cookie,想看http头不行),一看还真有这个问题,主要是http头部Cookie值是否真送出去了以及Post数据是否也按指定方式给Post出去,查看加密前的待发送的数据的包头信息,以查看待发送头部的cookie信息等都有用的。于是做下记录。
-d是用post提交表单,-I是只读取http head,提示错误Warning: You can only select one HTTP request!
来自:http://bbs.csdn.net/topics/320186919
实践:的确Warning: You can only select one HTTP request!
国外:http://stackoverflow.com/questions/286982/curl-post-data-and-headers-only
Curl post data and headers only
I want to get the headers only from a curl request
curl -I www.google.com
All grand. Now I want to do that but to pass in post data too:
curl -I -d'test=test' www.google.com
But all I get is:
Warning: You can only select one HTTP request!
Anyone have any idea how to do this or am I doing something stupid?
2 Answers
The -I option tells curl to do a HEAD request while the -d'test=test' option tells curl to do a POST, so you're telling curl to do two different request types.
curl -s -d'test=test' -D- -o/dev/null www.google.com
or, on Windows:
curl -s -d'test=test' -D- -onul: www.google.com
That is the neatest way to do this as far as I can find. The options are:
-D- Dump the header to the file listed, or stdout when - is passed, like this.
-o/dev/null Send the body to the file listed. Here, we discard the body so we only see the headers.
-s Silent (no progress bar)
-d means you are sending form data, via the POST method. -I means you are just peeking at the metadata via HEAD.
I'd suggest either
Download to /dev/null and write the headers via the -D headerfile to the file headerfile
Use -i to include the headers in the answers and skip everything from the first empty line.
Old, I know, but I would suggest adding -s to clean up the output a little bit.
最后使用方法:
1)于是,返回服务端的头很容易看到,如下:
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 02 Dec 2013 09:57:59 GMT
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
2)最后,想看发出的请求头?
背景里说的:http头部Cookie值是否真送出去了以及Post数据是否也按指定方式给Post出去
请求的头用 curl 是看不到的
—————解决方案—————
抓包软件
(1)Windows下:firefox用firebug/httpfox/fiddler2/httplook/HttpAnalyzerStdV7
网卡用SmartSniff
(2)Linux下:用tcpdump抓包后,sz到windows上用wireshark查看http包发送的请求头:
File->ExportObjects->HTTP->找到发送的请求链接(因为还有一个回包的请求,所以要区分开),选中后,在主界面会自动定位到,展开:
Hypertext Transfer protocol ,就能看到如下我前面发的cookie:
而Post数据就在:HTML Form URL Encoded: application/x-www-form-urlencoded 下展开里面:
-d是用post提交表单,-I是只读取http head,提示错误Warning: You can only select one HTTP request!
来自:http://bbs.csdn.net/topics/320186919
实践:的确Warning: You can only select one HTTP request!
国外:http://stackoverflow.com/questions/286982/curl-post-data-and-headers-only
Curl post data and headers only
I want to get the headers only from a curl request
curl -I www.google.com
All grand. Now I want to do that but to pass in post data too:
curl -I -d'test=test' www.google.com
But all I get is:
Warning: You can only select one HTTP request!
Anyone have any idea how to do this or am I doing something stupid?
2 Answers
The -I option tells curl to do a HEAD request while the -d'test=test' option tells curl to do a POST, so you're telling curl to do two different request types.
curl -s -d'test=test' -D- -o/dev/null www.google.com
or, on Windows:
curl -s -d'test=test' -D- -onul: www.google.com
That is the neatest way to do this as far as I can find. The options are:
-D- Dump the header to the file listed, or stdout when - is passed, like this.
-o/dev/null Send the body to the file listed. Here, we discard the body so we only see the headers.
-s Silent (no progress bar)
-d means you are sending form data, via the POST method. -I means you are just peeking at the metadata via HEAD.
I'd suggest either
Download to /dev/null and write the headers via the -D headerfile to the file headerfile
Use -i to include the headers in the answers and skip everything from the first empty line.
Old, I know, but I would suggest adding -s to clean up the output a little bit.
最后使用方法:
1)于是,返回服务端的头很容易看到,如下:
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 02 Dec 2013 09:57:59 GMT
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
2)最后,想看发出的请求头?
背景里说的:http头部Cookie值是否真送出去了以及Post数据是否也按指定方式给Post出去
请求的头用 curl 是看不到的
—————解决方案—————
抓包软件
(1)Windows下:firefox用firebug/httpfox/fiddler2/httplook/HttpAnalyzerStdV7
网卡用SmartSniff
(2)Linux下:用tcpdump抓包后,sz到windows上用wireshark查看http包发送的请求头:
File->ExportObjects->HTTP->找到发送的请求链接(因为还有一个回包的请求,所以要区分开),选中后,在主界面会自动定位到,展开:
Hypertext Transfer protocol ,就能看到如下我前面发的cookie:
而Post数据就在:HTML Form URL Encoded: application/x-www-form-urlencoded 下展开里面:
Sina App Engine–使用Storage存储上传文件
torage是SAE(Sina App Engine)为开发者提供的分布式文件存储服务,用来存放用户的持久化存储的文件。
用户需要先在在线管理平台创建Domain(相当于一级子目录),创建完毕后,可以通过两种方式操作其中数
据:
1,通过SDK GUI操作,具体参考SDK => 工具
2,通过sae_std_lib下的SaeStor的API读写Storage
这里主要介绍的是第二种方法。
下面是一个上传文件的页面:
接下来是upload.php的内容:
其中:
string upload (string $domain, string $destFile, string $srcFile, [array $attr = array()], [bool $compress
= false])
将文件上传入存储
string getUrl (string $domain, string $filename)
取得访问存储文件的url
Sina App Engine现可开10个应用,支持最多10个Domain,单个应用最多5个Domain,单个Domain最大2G.
来自:http://blog.kiccp.com/30.html
参考:http://www.yangyanxing.com/?p=460
http://blog.kiccp.com/30.html
torage是SAE(Sina App Engine)为开发者提供的分布式文件存储服务,用来存放用户的持久化存储的文件。
用户需要先在在线管理平台创建Domain(相当于一级子目录),创建完毕后,可以通过两种方式操作其中数
据:
1,通过SDK GUI操作,具体参考SDK => 工具
2,通过sae_std_lib下的SaeStor的API读写Storage
这里主要介绍的是第二种方法。
下面是一个上传文件的页面:
接下来是upload.php的内容:
其中:
string upload (string $domain, string $destFile, string $srcFile, [array $attr = array()], [bool $compress
= false])
将文件上传入存储
string getUrl (string $domain, string $filename)
取得访问存储文件的url
Sina App Engine现可开10个应用,支持最多10个Domain,单个应用最多5个Domain,单个Domain最大2G.
来自:http://blog.kiccp.com/30.html
参考:http://www.yangyanxing.com/?p=460
http://blog.kiccp.com/30.html
http://www.oschina.net/translate/mysql-5-7-innodb-memcached-plugins
打开zend for eclipse 10.5出现failed to create the java virtual machine的处理。
Php/Js/Shell/Go jackxiang 2013-11-26 09:52
打开zend for eclipse 10.5时报了个错:
failed to create the java virtual machine
google了一下,解决的办法如下:
找到zend目录下的ZendStudio.ini,配置为如下内容:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120913-144807
--launcher.XXMaxPermSize
126m
--launcher.defaultAction
openFile
-showlocation
-name
Zend Studio
-vmargs
-Xms256M
-Xmx512M
-XX:MaxPermSize=512m
-DGIT_SSL_NO_VERIFY=true
-Dsvnkit.http.sslProtocols=SSLv3
说明:PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)等这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。
-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space
failed to create the java virtual machine
google了一下,解决的办法如下:
找到zend目录下的ZendStudio.ini,配置为如下内容:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120913-144807
--launcher.XXMaxPermSize
126m
--launcher.defaultAction
openFile
-showlocation
-name
Zend Studio
-vmargs
-Xms256M
-Xmx512M
-XX:MaxPermSize=512m
-DGIT_SSL_NO_VERIFY=true
-Dsvnkit.http.sslProtocols=SSLv3
说明:PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)等这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。
-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space
为什么我离不开Linux?
Unix/LinuxC技术 jackxiang 2013-11-25 22:22
深入理解javascript引擎对于脚本的处理
Php/Js/Shell/Go jackxiang 2013-11-25 22:18
背景:在做项目时常常因JS太多太长,导致如:取cookie时偶出现XXX is not defined(获取不到这人cookie函数XXXX),我想如果能知道Js的一行处理方式,可能会有一下程序的深入理解后,再编码可能会好一些。
脚本处理模型
javascript的基本特点
脚本处理模型
源码处理
函数解析
代码执行
脚本处理模型
javascript的基本特点
js是一门相当简单的运行时解释语言。
对象模型很直接也没有类的概念。
有自动垃圾回收。
弱数据类型。
动态类型(dynamic typing):运行的时候才确定对象的类型。
javascript没有内置的I/O机制。
扩展:javascript程序与宿主环境进行交互,是通过一系列预定义的方法和属性实现的,这些方法和属性会再映射成浏览器的内部原生代码,所以与其他很对常规的编程语言不同,浏览器开放的这些借口往往受限且有针对性。
脚本处理模型
首先,无论是独立的窗口还是在框架里面,每个展示在浏览器里面的html文档,都被赋予了一个独立的javascript执行环境实例,在这个环境里面加载的脚本的所有全局变量和函数都拥有一个独立的命名空间。
然后,同一个文档的所有脚本都运行在同一个执行环境里面,共享同一个沙箱,并且能够通过浏览器提供的API与其他上下文环境交互。
最后:在特定的执行上下文里面,每段javascript代码块都是自成体系处理的,顺序也基本确定。每段代码块都是由若干符合语法格式的独立单元组成,处理的过程包括清晰而且连续的三个步骤:源码处理,函数解析,代码执行。
源码处理
源码处理阶段会检查脚本代码块里面的语法,通常会先把代码转换成中间层的二进制映像,这样才能或得到令人满意的执行速度。在彻底完成这一步骤之前,这些二进制代码对全局并无影响。如果源码处理阶段出错,整个有问题的代码块都会被弃用;然后解析器会继续处理下一段代码块。
函数解析
完成了上一步骤之后,接下来就是解析器对当前代码块里所有具名的全局函数进行识别并注册。在这一阶段完成之后,这些函数才能被执行代码所调用。
对于代码
因为javascript在执行前会额外预处理,因此上面的写法会成功执行。
而对于代码
阅读全文
脚本处理模型
javascript的基本特点
脚本处理模型
源码处理
函数解析
代码执行
脚本处理模型
javascript的基本特点
js是一门相当简单的运行时解释语言。
对象模型很直接也没有类的概念。
有自动垃圾回收。
弱数据类型。
动态类型(dynamic typing):运行的时候才确定对象的类型。
javascript没有内置的I/O机制。
扩展:javascript程序与宿主环境进行交互,是通过一系列预定义的方法和属性实现的,这些方法和属性会再映射成浏览器的内部原生代码,所以与其他很对常规的编程语言不同,浏览器开放的这些借口往往受限且有针对性。
脚本处理模型
首先,无论是独立的窗口还是在框架里面,每个展示在浏览器里面的html文档,都被赋予了一个独立的javascript执行环境实例,在这个环境里面加载的脚本的所有全局变量和函数都拥有一个独立的命名空间。
然后,同一个文档的所有脚本都运行在同一个执行环境里面,共享同一个沙箱,并且能够通过浏览器提供的API与其他上下文环境交互。
最后:在特定的执行上下文里面,每段javascript代码块都是自成体系处理的,顺序也基本确定。每段代码块都是由若干符合语法格式的独立单元组成,处理的过程包括清晰而且连续的三个步骤:源码处理,函数解析,代码执行。
源码处理
源码处理阶段会检查脚本代码块里面的语法,通常会先把代码转换成中间层的二进制映像,这样才能或得到令人满意的执行速度。在彻底完成这一步骤之前,这些二进制代码对全局并无影响。如果源码处理阶段出错,整个有问题的代码块都会被弃用;然后解析器会继续处理下一段代码块。
函数解析
完成了上一步骤之后,接下来就是解析器对当前代码块里所有具名的全局函数进行识别并注册。在这一阶段完成之后,这些函数才能被执行代码所调用。
对于代码
因为javascript在执行前会额外预处理,因此上面的写法会成功执行。
而对于代码
阅读全文
Arudino虽然在开源硬件领域非常流行,但是对于不懂C/C++编程语言的玩家来说,还是需要一段学习时间。早些时候,我们在Kickstarter上看到一款相对特殊的开发板Espruino,他能让用户通过JavaScrpit轻松实现对单片机的控制,让更多的计算机初学者来动手做硬件。从现在开始,Python玩家也可以做类似的事情。
Micro Python:用Python语言控制单片机
Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?
要知道,Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。
Damien为了突破这种限制,他花费了六个月的时间来打造Micro Python。它基于ANSI C,语法跟Pyton 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前他支持基于32-bit的ARM处理器,比如说STM32F405。
借助Micro Python,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。阅读全文
Micro Python:用Python语言控制单片机
Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?
要知道,Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。
Damien为了突破这种限制,他花费了六个月的时间来打造Micro Python。它基于ANSI C,语法跟Pyton 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前他支持基于32-bit的ARM处理器,比如说STM32F405。
借助Micro Python,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。阅读全文
【转】Linux下c语言写的定时器(计时器)
Unix/LinuxC技术 jackxiang 2013-11-25 13:45
【转】Linux下c语言写的定时器(计时器)
【实现功能】:下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成的计时器保存到myTimer中,这样通过多次调用,就可以在同一个进程中生成多个计时器;定义timeout()信号处理函数,每隔一秒产生一个信号,通过调用timeout()对所有的定时器扫描一遍,检查哪些计时器超时。
【程序代码】:如下阅读全文
【实现功能】:下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成的计时器保存到myTimer中,这样通过多次调用,就可以在同一个进程中生成多个计时器;定义timeout()信号处理函数,每隔一秒产生一个信号,通过调用timeout()对所有的定时器扫描一遍,检查哪些计时器超时。
【程序代码】:如下阅读全文
php “mkdir -p” 递归创建
Php/Js/Shell/Go jackxiang 2013-11-25 11:28
For some reason however I expected it to behave like `mkdir -p` on the command line which succeeds if the directory already exists.
上面来自PHP手册老外的回复:
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7216695c7150888c40e8e3b081d0035bda66f780d5094992d215af2154bea87692b615860a09bbfca109fafd7756fde28762a5e9141638c40f9900632c151875a9fb81897f8&p=882a9543d2b112a05afcc665540883&newp=8b2a9712a49111a058eb9029164ccb231610db2151d1d11128a6c1&user=baidu&fm=sc&query=PHP+mkdir+-P&qid=&p1=1
下面来自网友没实践:
http://hi.baidu.com/hevensun/item/d28a0c08c68d98e0ff240d85
阅读全文
上面来自PHP手册老外的回复:
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7216695c7150888c40e8e3b081d0035bda66f780d5094992d215af2154bea87692b615860a09bbfca109fafd7756fde28762a5e9141638c40f9900632c151875a9fb81897f8&p=882a9543d2b112a05afcc665540883&newp=8b2a9712a49111a058eb9029164ccb231610db2151d1d11128a6c1&user=baidu&fm=sc&query=PHP+mkdir+-P&qid=&p1=1
下面来自网友没实践:
http://hi.baidu.com/hevensun/item/d28a0c08c68d98e0ff240d85
阅读全文
一、使用Editplus批量替换某个目录下包含某字符串的快捷方法:
(1)Find in Files 查找并选中哪些需要替换并全打开:
search -> find in files 查找需要替换的关键词,并列出来哪些文件;ctrl+选中哪些替换文件后右键后,点:全部打开。
(2)全部打开后,在所有打开文件里替换掉:
Ctrl + H 打开后,在替换所有范围里选中:所有打开文件。
(3)如果你替换内容较多:
则选更多(E),这样查找替换的输入框框更大,更方便。
它可以直接替换换行符为任意字符接替:单文件可通过正则对每行尾进行替换,如下:http://www.jackxiang.com/post/2038/
而多个文件则不行了,直接在大的框里输入回车,后下面什么也不输入,那此时就是把所有换行替换为空了。
如果选中了所有打开文件,那就是把所有文件的换行给替换为空了,所有文件成一行了,呵呵。
后记:
尽管有人说:Editplus的批量查找替换速度是DW的10倍以上……但dw这替换功能确实不错。
还不能满足你苛刻的要求么? 试试:Replace Pioneer :-)
http://blog.sina.com.cn/s/blog_3f6c1f670100sgj5.html
二、使用Editplus进行个性化替换某文件下的多个路径以符合线上环境的快捷办法:
Editplus支持的WScript进行按需替换,学得有点自己作符合自己替换工具的意思,特别引用并记录:
http://www.z3f.me/article.aspx?ID=1757
——————实践如下:——————
D:\Program Files\EditPlus\UrlParse.js
简单的调试方法:WScript.Echo(output);
上面是能够运行的,上面的原作者的Url里包有注释等,容易导致运行不了,提示:Microsoft JScript 运行时错误: 'arr' 未定义
,我后加上一行定义,好像是好了。
在Editplus里设置下:
菜单文字:批量替换文件中的多个路径
命令:Cscript.exe /nologo "D:\Program Files\EditPlus\UrlParse.js"
参数:$(FileName)
初始目录:$(FileDir)
动作:运行为文本过滤器(替换)
输出模板:使用默认输出
保存:无
即可进行对想替换的目录进行替换了。
三、让Editplus自动格式化css和js调试Js简单语法错误的简单设置(平时用aptana等的,只是偶会反过来用到:如线上代码是压缩成一行了,通过Js格式化下就多行看清了,WEB版本下的也有解压的,方法途径很多。):
http://bbs.blueidea.com/thread-2904136-1-1.html
1,在EditPlus中添加javascript调试工具,JavaScript调试下的Editplus配置:
菜单文字:javascript调试
命令:cmd /c
参数:$(FileName)
初始目录:$(FileDir)
动作:捕捉输出
输出模板:不使用默认输出,用正则:^Lint at line ([0-9]+) character ([0-9]+).*$"
保存:无
使用方法:
很简单,用Editplus打开一个javascript(.js)文件,选择菜单“工具”-“javascript调试”即可。
2,CSS格式化:
菜单文字:CSS格式化
命令:Cscript.exe /nologo "D:\Program Files\EditPlus\cssFormatter.js"
参数:$(FileName)
初始目录:$(FileDir)
动作:运行为文本过滤器(替换)
输出模板:使用默认输出
保存:无
3,Js脚本格式化:
菜单文字:CSS格式化
命令:Cscript.exe /nologo "D:\Program Files\EditPlus\jsFormatter.js"
参数:$(FileName)
初始目录:$(FileDir)
动作:运行为文本过滤器(替换)
输出模板:使用默认输出
保存:无
上面三个的JScript 包DownLoad:
(1)Find in Files 查找并选中哪些需要替换并全打开:
search -> find in files 查找需要替换的关键词,并列出来哪些文件;ctrl+选中哪些替换文件后右键后,点:全部打开。
(2)全部打开后,在所有打开文件里替换掉:
Ctrl + H 打开后,在替换所有范围里选中:所有打开文件。
(3)如果你替换内容较多:
则选更多(E),这样查找替换的输入框框更大,更方便。
它可以直接替换换行符为任意字符接替:单文件可通过正则对每行尾进行替换,如下:http://www.jackxiang.com/post/2038/
而多个文件则不行了,直接在大的框里输入回车,后下面什么也不输入,那此时就是把所有换行替换为空了。
如果选中了所有打开文件,那就是把所有文件的换行给替换为空了,所有文件成一行了,呵呵。
后记:
尽管有人说:Editplus的批量查找替换速度是DW的10倍以上……但dw这替换功能确实不错。
还不能满足你苛刻的要求么? 试试:Replace Pioneer :-)
http://blog.sina.com.cn/s/blog_3f6c1f670100sgj5.html
二、使用Editplus进行个性化替换某文件下的多个路径以符合线上环境的快捷办法:
Editplus支持的WScript进行按需替换,学得有点自己作符合自己替换工具的意思,特别引用并记录:
http://www.z3f.me/article.aspx?ID=1757
——————实践如下:——————
D:\Program Files\EditPlus\UrlParse.js
简单的调试方法:WScript.Echo(output);
上面是能够运行的,上面的原作者的Url里包有注释等,容易导致运行不了,提示:Microsoft JScript 运行时错误: 'arr' 未定义
,我后加上一行定义,好像是好了。
在Editplus里设置下:
菜单文字:批量替换文件中的多个路径
命令:Cscript.exe /nologo "D:\Program Files\EditPlus\UrlParse.js"
参数:$(FileName)
初始目录:$(FileDir)
动作:运行为文本过滤器(替换)
输出模板:使用默认输出
保存:无
即可进行对想替换的目录进行替换了。
三、让Editplus自动格式化css和js调试Js简单语法错误的简单设置(平时用aptana等的,只是偶会反过来用到:如线上代码是压缩成一行了,通过Js格式化下就多行看清了,WEB版本下的也有解压的,方法途径很多。):
http://bbs.blueidea.com/thread-2904136-1-1.html
1,在EditPlus中添加javascript调试工具,JavaScript调试下的Editplus配置:
菜单文字:javascript调试
命令:cmd /c
参数:$(FileName)
初始目录:$(FileDir)
动作:捕捉输出
输出模板:不使用默认输出,用正则:^Lint at line ([0-9]+) character ([0-9]+).*$"
保存:无
使用方法:
很简单,用Editplus打开一个javascript(.js)文件,选择菜单“工具”-“javascript调试”即可。
2,CSS格式化:
菜单文字:CSS格式化
命令:Cscript.exe /nologo "D:\Program Files\EditPlus\cssFormatter.js"
参数:$(FileName)
初始目录:$(FileDir)
动作:运行为文本过滤器(替换)
输出模板:使用默认输出
保存:无
3,Js脚本格式化:
菜单文字:CSS格式化
命令:Cscript.exe /nologo "D:\Program Files\EditPlus\jsFormatter.js"
参数:$(FileName)
初始目录:$(FileDir)
动作:运行为文本过滤器(替换)
输出模板:使用默认输出
保存:无
上面三个的JScript 包DownLoad:
下载文件
从我开始工作算起,已经有20多年了。即便如此,我依然记得当时对从大学毕业并开始工作的憧憬。在那之前,除了少数几份和编程无关的暑期工,我的人 生基本都是在学校度过的。虽然我对工作的大多数期望都实现了,不过在步入职场头几年中也发现这一行许多令人惊奇的事,下面是头五件:
5. 人际交往
编程看起来是一份相当孤独的工作——你需要完成一个功能,所以你坐下来并用代码将其实现。不过事实上,你和其他的同事会有相当多的交流。你会和同事讨论设计,你会在开会时审查新功能,你会和测试人员讨论你的代码。
学会委婉和圆通,在交流中非常有帮助。如果还不会,那你得去学一下。关于这方面,有一本畅销书——卡耐基的《人性的弱点》。如果还没有读过此书,我强烈建议你读一读。
4.写作很重要
通过写作清晰地表达观点,这很有帮助。从某种程度上来说,写代码和写作非常相似,两种都需要你把你的想法,通过某个结构化的方式清晰并且无歧义的表 达出来。Email当然是写不完的了,不过还有你所开发的产品特性所配套的文档、需要清晰描述Bug的漏洞报告、还有对你修复的Bug做出的解释。在大学 里写作并不是重点,但是如果你写作好的话,这绝对是工作中的一个筹码。
3.从来没有已做完的软件
在我开始工作以前,我觉得当我开发出一个特性之后,这个特性就算开发完成了。不过在现实中,你会很经常的要回到这个特性上来。有时候是因为这并不完 全是客户所要求的,也可能是因为你需要为它添加更多功能,又或者是你想要把有些相似的功能合并起来,或者修复一个Bug。不管怎么样,对你的代码继续进行 编程是很正常的事。
在大学里,我们经常会把一个程序从头做起,但这在现实世界中几乎是没有出现过的。当然,除了你做新功能的时候,但这些代码总要融入旧代码。正因为如此,做新功能时的很大一部分工作都是在阅读并理解旧代码。这是一项我们在学校里没有练习过的技能。
2.很少有巧妙的算法
在大学里我得到了一个计算机科学与工程的硕士,我学习了通信系统,里面包括信号处理、错误纠正码、排队论等等的课程。我们也有像算法和数据结构这样 的计算机科学核心课程,我很喜欢这些课,我觉得学会这些聪明的算法和数据结构是一件很酷的事,所以我非常期待在工作中见到它们。
我的第一份工作是在蒙特利尔的爱立信公司,在一个蜂窝网络的移动电话交换中心担任软件工程师。那里有大量的代码来控制通话的建立、挂机、漫游等等, 但当我看到这些功能都是用最基本的数据结构和算法完成时,我觉得有点失望。最有趣的是,我发现用来跟踪用户漫游状态的代码居然是由一千多个二叉树构成的, 用户手机号的末三位数决定了用户处于哪颗树上。当需要找到这个用户时,根据用户的手机尾号找到用户所在的树,然后遍历该树以找到该用户。除了这个,其他的 都是链表甚至是更简单的数据结构。
1.系统集成后的复杂性
说起来既然没有什么精巧的算法,而且整个应用程序都在使用基本的数据结构,那看来在这里工作应该没有什么挑战吧?错!我很快就意识到这套系统高度复杂,倒并不是因为那些复杂的功能,而是因为太多太多简单的功能集成合到了一起。
在我工作过的那么多套系统中,我看到了一些共同点:大多数特性都非常简单,但正因为就是有很多简单的特性,在集成这些特性之时所遇到的微妙(或不那么微妙)交互,就引发了Bug。
原文链接: Henrik Warne 翻译: 伯乐在线 - 吴鹏煜
译文链接: http://blog.jobbole.com/50950/
来自:http://www.phpchina.com/archives/view-43218-1.html
5. 人际交往
编程看起来是一份相当孤独的工作——你需要完成一个功能,所以你坐下来并用代码将其实现。不过事实上,你和其他的同事会有相当多的交流。你会和同事讨论设计,你会在开会时审查新功能,你会和测试人员讨论你的代码。
学会委婉和圆通,在交流中非常有帮助。如果还不会,那你得去学一下。关于这方面,有一本畅销书——卡耐基的《人性的弱点》。如果还没有读过此书,我强烈建议你读一读。
4.写作很重要
通过写作清晰地表达观点,这很有帮助。从某种程度上来说,写代码和写作非常相似,两种都需要你把你的想法,通过某个结构化的方式清晰并且无歧义的表 达出来。Email当然是写不完的了,不过还有你所开发的产品特性所配套的文档、需要清晰描述Bug的漏洞报告、还有对你修复的Bug做出的解释。在大学 里写作并不是重点,但是如果你写作好的话,这绝对是工作中的一个筹码。
3.从来没有已做完的软件
在我开始工作以前,我觉得当我开发出一个特性之后,这个特性就算开发完成了。不过在现实中,你会很经常的要回到这个特性上来。有时候是因为这并不完 全是客户所要求的,也可能是因为你需要为它添加更多功能,又或者是你想要把有些相似的功能合并起来,或者修复一个Bug。不管怎么样,对你的代码继续进行 编程是很正常的事。
在大学里,我们经常会把一个程序从头做起,但这在现实世界中几乎是没有出现过的。当然,除了你做新功能的时候,但这些代码总要融入旧代码。正因为如此,做新功能时的很大一部分工作都是在阅读并理解旧代码。这是一项我们在学校里没有练习过的技能。
2.很少有巧妙的算法
在大学里我得到了一个计算机科学与工程的硕士,我学习了通信系统,里面包括信号处理、错误纠正码、排队论等等的课程。我们也有像算法和数据结构这样 的计算机科学核心课程,我很喜欢这些课,我觉得学会这些聪明的算法和数据结构是一件很酷的事,所以我非常期待在工作中见到它们。
我的第一份工作是在蒙特利尔的爱立信公司,在一个蜂窝网络的移动电话交换中心担任软件工程师。那里有大量的代码来控制通话的建立、挂机、漫游等等, 但当我看到这些功能都是用最基本的数据结构和算法完成时,我觉得有点失望。最有趣的是,我发现用来跟踪用户漫游状态的代码居然是由一千多个二叉树构成的, 用户手机号的末三位数决定了用户处于哪颗树上。当需要找到这个用户时,根据用户的手机尾号找到用户所在的树,然后遍历该树以找到该用户。除了这个,其他的 都是链表甚至是更简单的数据结构。
1.系统集成后的复杂性
说起来既然没有什么精巧的算法,而且整个应用程序都在使用基本的数据结构,那看来在这里工作应该没有什么挑战吧?错!我很快就意识到这套系统高度复杂,倒并不是因为那些复杂的功能,而是因为太多太多简单的功能集成合到了一起。
在我工作过的那么多套系统中,我看到了一些共同点:大多数特性都非常简单,但正因为就是有很多简单的特性,在集成这些特性之时所遇到的微妙(或不那么微妙)交互,就引发了Bug。
原文链接: Henrik Warne 翻译: 伯乐在线 - 吴鹏煜
译文链接: http://blog.jobbole.com/50950/
来自:http://www.phpchina.com/archives/view-43218-1.html
Zend studio 10.5今天出现failed to create the java virtual machine的解决办法。
Php/Js/Shell/Go jackxiang 2013-11-20 10:43
昨天还是好的,最后修改了下-Xms125为256好像就好了,奇怪:
ZendStudio.ini -Xms256M好了。
ZendStudio.ini -Xms256M好了。
Percona公司真是勤勉上进的时代好青年,他将两套老掉牙的工具整理、合并、修订,发布了Percona Toolkit。这是一个非常好用的工具集,学好用好这个工具集,肯定会对你以后DBA的工作生涯中有所帮助。
这些工具大部分是用shell和perl编写的,提供YUM软件源,安装非常简单,但还有一种更简单的办法,比如我想用pt-mysql-summary这个工具,只需要:
#wget percona.com/get/pt-mysql-summary
然后
#chmod +x pt-mysql-summary
就可以使用了,像不像Windows中的“绿色免安装软件”?
官方的文档可以参见:
http://www.percona.com/doc/percona-toolkit/
这个工具集内容非常丰富,其中pt-summary, pt-mysql-summary, pt-show-grants, pt-slave-delay 是我最常用的工具,建议大家有空多研究尝试一下,磨刀不误砍柴工。
来自:http://www.zeuux.com/group/himysql/bbs/content/55142/
这些工具大部分是用shell和perl编写的,提供YUM软件源,安装非常简单,但还有一种更简单的办法,比如我想用pt-mysql-summary这个工具,只需要:
#wget percona.com/get/pt-mysql-summary
然后
#chmod +x pt-mysql-summary
就可以使用了,像不像Windows中的“绿色免安装软件”?
官方的文档可以参见:
http://www.percona.com/doc/percona-toolkit/
这个工具集内容非常丰富,其中pt-summary, pt-mysql-summary, pt-show-grants, pt-slave-delay 是我最常用的工具,建议大家有空多研究尝试一下,磨刀不误砍柴工。
来自:http://www.zeuux.com/group/himysql/bbs/content/55142/