X.d 笔记

小Web,大世界

0%

新发现一个编辑器软件:Sublime,用于几天后直接抛弃 Notepad++/UltraEdit,实在是用的太爽,所以单独写篇文章推荐一下。

首先:就两个原因就可以完爆其它编辑器:

  1. 界面看起来爽,如果对比 Eclipse 来编辑 JavaScript 文件,就知道什么是体验了
  2. 操作流畅,速度惊呆了我。

下载地址 : http://www.sublimetext.com/

更何况,插件功能让他比起 IDE 也毫不逊色!

收藏一下常用快捷键:

Ctrl+Shift+P:打开命令面板
Ctrl+P:搜索项目中的文件
Ctrl+G:跳转到第几行
Ctrl+W:关闭当前打开文件
Ctrl+Shift+W:关闭所有打开文件
Ctrl+Shift+V:粘贴并格式化
Ctrl+D:选择单词,重复可增加选择下一个相同的单词
Ctrl+L:选择行,重复可依次增加选择下一行
Ctrl+Shift+L:选择多行
Ctrl+Shift+Enter:在当前行前插入新行
Ctrl+X:删除当前行
Ctrl+M:跳转到对应括号
Ctrl+U:软撤销,撤销光标位置
Ctrl+J:选择标签内容
Ctrl+F:查找内容
Ctrl+Shift+F:查找并替换
Ctrl+H:替换
Ctrl+R:前往 method
Ctrl+N:新建窗口
Ctrl+K+B:开关侧栏
Ctrl+Shift+M:选中当前括号内容,重复可选着括号本身
Ctrl+F2:设置/删除标记
Ctrl+/:注释当前行
Ctrl+Shift+/:当前位置插入注释
Ctrl+Alt+/:块注释,并Focus到首行,写注释说明用的
Ctrl+Shift+A:选择当前标签前后,修改标签用的
F11:全屏
Shift+F11:全屏免打扰模式,只编辑当前文件
Alt+F3:选择所有相同的词
Alt+.:闭合标签
Alt+Shift+数字:分屏显示
Alt+数字:切换打开第N个文件
Shift+右键拖动:光标多不,用来更改或插入列内容
鼠标的前进后退键可切换Tab文件
按Ctrl,依次点击或选取,可需要编辑的多个位置
按Ctrl+Shift+上下键,可替换行

插件安装:

安装Package Control

安装插件先要安装 Package Control,才能安装其它插件。步骤如下:

阅读全文 »

用了这么久 Wordpress 忽然想自己开发一个插件,简单看了下教程后,开工。

介绍一下插件结构,就是一个php文件就可以了,就算是完全没有内容都没关系,写一点说明,把这个php文件放在放在wp-content/plugins目录下,就变成了插件比如我开发一个抵制百度插件,就一个php文件就够了。

<?php
/*
Plugin Name: 抵制百度
Plugin URI: https://www.xdnote.com/do-not-use-baidu
Description: 注意:本插件会抵制百度,请看清功能后再安装使用。如果你的博客需要百度流量就不要装了!  功能点如下:1.当百度蜘蛛抓取时,自动响应一个抵制百度的页面。2.当其它用户通过百度搜索点到博客页面时,显示一个抵制百度页面。想修改抵制内容可以直接对插件进行编辑,HTML格式即可。 
Version: 0.1
Author: xdnote.com
Author URI: https://www.xdnote.com/do-not-use-baidu
*/
?>

把这个文件保存为php,传到plugins目录后,到wp后台插件管理页面,就可以看到插件了,点一下激活插件就生效。

当然这是没什么功能的,如果你的文件较多,你可以新建一个目录,目录名为你插件php文件的名字,比如我上面的php命名为nobd.php,那我的文件夹名就叫nobd,煞后我就补全代码,很简单的8行代码,很强大的功能。

<?php
function nobd_fiter(){
    if(stristr($_SERVER[&#039;HTTP_USER_AGENT&#039;],&#039;baiduspider&#039;)){
        include &#039;nobd_crawl.php&#039;;
        exit();
    }else if(stristr($_SERVER[&#039;HTTP_REFERER&#039;],&#039;http://www.baidu.com&#039;)){
        include &#039;nobd_view.php&#039;;
        exit();
    }
}
add_action( &#039;init&#039;, &#039;nobd_fiter&#039;);
?>

程序就这么点代码,然后再把程序用到的两个资源补充进来就OK了,代码很简单,就是HTML静态文件了,如下:

阅读全文 »

说完了Apache的,再说下Tomcat的,思想和Apache差不多。

一:软件版本

Jdk 版本,Tomcat 版本,这个很重要,据悉6.0.x有些Bug连最新的版本也没fixed掉。由于目前tomcat8还没有稳定版,比较先进的是tomcat7,如想使用websocket的功能,需要安装jdk7或以上版本做为运行环境。Tomcat版本的补丁安全报告见:http://tomcat.apache.org/security.html

另外,不管是 Apache 还是 Tomcat ,系统版本也很重要,如有漏洞安全问题需及时更新补丁或其它对策。

二:用户权限

运行 Tomcat 的用户不能有太大的权限,但 Tomcat 没有 Apache 一样的配置项指定运行的用户组,所以需要建立一个应用用户运来安装与运行 Tomcat。不能使用 root 用户到安装(解压)与启动(startup.sh) Tomcat。

group add tomcatgroup
useradd -g tomcatgroup tomcat -p tomcat
阅读全文 »

每次装Apache,总是有一大堆条例配置来看,总结下心得。

一:软件版本、修改服务器

Apache 貌似高高危的漏洞不是太多,但还是安装最新版本比较好,安装前,可以对版本号进行隐藏:

  1. 方法是在 make 之前,用 vim 编辑 ap_release.h 文件,
  2. 找到 #define AP_SERVER_BASEPRODUCT “Apache”
  3. Apache 修改为其它字符串,比如”abc server”

这样,在响应头中,就看不到服务器信息了。

二:用户权限

一般来说,Apache都是root用户安装运行。但不能让Apache具有root权限,如果是用root用户安装的话,需要专门为Apache建立一个单独的用户或用户组

groupadd apachegroup
useradd -g apachegroup apache -p apache

再修改httpd.conf

User apache
Group apachegroup

修改后,以root用户重启apache时,子进程会自动以apache身份运行

阅读全文 »

JavaDoc 可以根据我们写的代码,直接生成 api 的帮助文档,我们天天看的 JDK帮助文档就是用 JavaDoc 生成的,各大开源软件里面的 Api文档也都是 Javadoc。

只要写代码的时候注意点,多留点心写下代码的说明,那么自己的项目中也可以生成出漂亮的JavaDoc来。

使用javadoc 命令行,和 eclipse 的工具都可以给快速生成一个项目的API帮助文档。

  1. 包的javadoc:在所在包的下面建立一个package.html文件,进行描述。通常进行简单描述包的功能和一些注意事项。
    如果有必要就在包上加上这个html文件,javadoc工具会自动生成package-summary.html文件。虽然是HTML文件 ,但也不一定要写成HTML,如果喜欢可以直接写文字,但一般还是保留最基本结构,如:
<h3>com.xdnote</h3>
<ul>
    <li>com.xdnote包说明一</li>
    <li>com.xdnote包说明二</li>
</ul>
      com.xdnote注意事项
  1. 类的javadoc
    类的javadoc估计都见得不少了,在eclipsenew一个class或是interface时都会有杂七杂八的注释,或是开源代码每份上面都会有lisene什么的。
    一般工具都会对javadoc自动识别,开发过程中也会有不少帮助,比如
    javadoc
    类的javadoc一般格式
/**
 * {Description}
 *
 * {Tags}
 */
阅读全文 »

开发过程中往往会遇到JS需要调试的时候,会写上几名调试代码,发布时往往忘记干掉。导致IE8以下报脚本错误。

比如:

var test='xxxxxx';
/**
* some code
*/
console.log(test);

本意一般是开发时调试下,但周期一长代码一放置,发布时居然给忘删了,那用户很在IE上由于打不到console对象而报脚本错误,实际上可以在代码里面定义一个console对象保证代码正常运行:如下

if(!(window.console&&console.log)){
    if(!(window.console&&console.log)){
      var console={
        log:function(){},
        error:function(){}
          /*这里当然还可以继续,比如console.debug,assert,info等等,如果项目里面没有使用这些就没必要加了,一般项目貌似LOG即可*/
      };
    }
    console.log("test");

这样的话,说算是在IE等没有 Console 对象的浏览器里面也不会看到黄色的叹号弹出什么脚本错误了

经常使用一些括号语法,由于功能都知晓,所以没研究过,拿来就用,今天有空研究研究。

例:

//代码一
(function(x){console.log(x);}(1));
//代码二
(function(x){console.log(x);})(1);

这两段代码广为各大框架公司个人使用,功能如下

var method= function(x){
console.log(x);
};
method(1);

两段代码除了括号位置都一样,而且功能也一样,执行结果也一样。都是省略了定义的方法直接执行。

说明:写这篇文章不考虑为什么这么写,不考虑性能等问题,只从合法性思考一下。

先看代码一

阅读全文 »

在php或其它语言面经常遇到这样的方法:

function getData($page_no=1,$page_size=40){
  //code
}
可以只传少量参数,参数不够时就以默认值代替,在Java里面实际上也可以

这种方法的好处是参数可传可不传,不传将使用默认的参数。在JAVA里面貌似又没有这种语法,想实现的时候经常写几个方法互调,感觉很不好看。

现在发现还是有这样的方法的,而且更灵活,有个语法是三个点,由于一直少用所以不容易被记起。
上面的方法在Java里面可以写成这样

    public String getData(int... args){
        int page_no = args.length>1?args[0]:1;
        int page_size = args.length>2?args[1]:40;
    }

调用的时候就

getData();
getData(2);
getData(3,50);
getData(3,50,45);//后面无效,也不会有语法错误

取值的时候就当参数的类型为数组,如String…=String[],int…=int[],Object…=Object[].

三个点前面可以放在任何类型后面,当然不确定类型时也可以用Object代替,就可以想传什么就传什么了,但三个点只能放在最后一个参数,理由不解释~