作者归档:Daniel Sun

分享快速翻qiang方法,老D的host

Google_副本

老D的host更新频率和质量都非常高,是不使用任何其他工具的情况下,结合HTTPS使用访问一些不存在的网站是很好选择。

地址是:http://laod.cn/hosts/2016-google-hosts.html

另外再分享个软件SwitchHosts!,这款软件支持本地hosts和自动同步在线hosts,并且还可以设置方案的公用hosts,这些修改只需要在软件中进行,不需要再使用文本编辑器

其实如果老D的hosts有直链就可以直接用这个软件更新了,但是如果有直链。。呵呵,指不定会被别人利用,而且老D服务器流量也撑不起毕竟不是人人都会付款的啊

QQ截图20151118012939

现在就使用Letsencrypt,免费并被信任的SSL证书(解决Error creating new authz问题)

QQ截图20151112215616

前几天,收到了Letsencrypt发给我的测试回复邮件,告诉我我的证书申请已经通过了,就赶紧来部署一下。

1. 执行以下代码安装Letsencrypt,并准备生成证书

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory certonly

2. 然后会出现让你输入邮件和域名地址(可用逗号分开)的画面,输入就好

QQ截图20151112220110

3. Ok之后如果没问题就会出现Congratulations,并告诉你证书的位置,比如我的位置就是/etc/letsencrypt/live/onlyke.com,这里面会放相应的证书文件,在Apache或者Nginx配置好即可。

其中,在第三步如果出现如下问题

Error: serverInternal :: The server experienced an internal error :: 

QQ截图20151112220605

则可能是你的NS服务器有问题,原因在下面的页面上

https://github.com/letsencrypt/letsencrypt/wiki/Known-Issues

Error creating new authz (#1138, #1283): this is a problem with Boulder (boulder#1048) that happens if you request a domain that has a DNS CNAME to a subdomain of the requested domain, fix is on the way (boulder#1065). Some user solved this issue by changing domain’s Name Servers: #1369.

我的域名onlyke.com就出现了这个错误,后来我参考了https://github.com/letsencrypt/letsencrypt/issues/1369#issuecomment-154668208。把我的域名NS服务器从DNSPOD换到了Namecheap,这同样也是一家提供免费DNS解析的服务商。经过NS刷新之后,这个问题就解决了。如下图所示万网的解析应该也有这个问题。

QQ截图20151112221403

 

现在博客已经用上了Letsencrypt的免费SSL证书!

Linux配置Msmtp1.6.2和Mutt发送邮件,支持ssl

首先,安装一些需要的包
1. gcc
2. gnutls-devel或openssl-devel,这个在后面使用tls/ssl发送邮件的时候需要,ubuntu安装openssl即可

1. 下载msmtp,配置并编译(openssl也可以替换成gnutls)

#if Ubuntu
apt-get install pkg-config

wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.6.2.tar.xz
tar xvf msmtp-1.6.2.tar.xz
cd msmtp-1.6.2
./configure --prefix=/usr/local/msmtp --with-tls=openssl
make
make install

2. 配置msmtp
切换到相应文件夹

cd /usr/local/msmtp

新建文件夹etc

mkdir etc

使用vi新建文件

vi /usr/local/msmtp/etc/msmtprc

编辑内容如下:

# Set default values for all following accounts.
defaults
logfile /usr/local/msmtp/msmtp.log 
timeout 10
# The SMTP server of the provider. 
account test
# SMTP邮件服务器地址
host smtp.domain.163.com
# 发送的邮件Email
from [email protected]
auth login
# 邮件服务器登录账号
user [email protected]
# 邮件服务器登陆密码
password yourpassword
# Set a default account
account default: test

如果我们使用ssl方式发送,请在timeout后面加

tls on
tls_certcheck off
#使用网易邮箱必须有下面这句
tls_starttls off

3. 测试msmtp配置结果

/usr/local/msmtp/bin/msmtp [email protected]

输入任意字符,然后按Ctrl+D退出,查看邮件是否收到。

由于设置了日志,可以到 /usr/local/msmtp/msmtp.log,查看日志,发信成功失败都会有记录。

4. 安装并配置编辑mutt配置文件

#if Ubuntu 出现的选择框选择第一个保持系统默认即可
apt-get install mutt

vi ~/.muttrc

#总配置文件的位置,不推荐使用
#vi /etc/Muttrc

编辑mutt的总设置,修改以下几行

set from="发送邮件地址"
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="发件人"
set editor="vi"

发件地址最好与msmtp设置的账号相同,否则可能会出错。

5. 测试一下mutt是否有效

#echo "测试测试" | mutt -s "测试" 测试邮件地址
echo "test" |mutt -s "my_first_test" [email protected]

Sublime3 安装SublimeLinter PHP+Javascipt+CSS 帮助检测语法错误

前段时间把自己的Sublime2更新到了3,发现原先的SublimeLinter配置文件不起作用了。目前国内给出相应答案的网站比较少,现在给出对于Sublime3的解决方案。

在Sublime3中,SublimeLinter的检测插件被独立了出来,也就是说我们除了SublimeLinter本体以外,我们还需要安装Sublimelinter-phpSublimelinter-jshintSublimelinter-csslint这三个插件。

QQ截图20150918184608

然后需要用nodejs安装jshint和csslint,使用如下命令。(没有安装nodejs请先安装nodejs)

npm install -g jshint
npm install -g csslint

安装完成后如下图所示

QQ截图20150918182832

可以使用如下命令检查这两个插件是否安装完成

npm install -g jshint
csslint --version

除了nodejs以外,我们还需要php程序包,没有的可以到http://php.net/downloads.php这里下载,这里我放到了D盘根目录

QQ截图20150918185414

接下来打开SublimeLinter的设置,如下图

QQ截图20150918184709

我们配置文件修改如下

{
    "user": {
        "debug": false,
        "delay": 0.25,
        "error_color": "D02000",
        "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme",
        "gutter_theme_excludes": [],
        "lint_mode": "background",
        "linters": {
            "csslint": {
                "@disable": false,
                "args": [],
                "errors": "",
                "excludes": [],
                "ignore": "",
                "warnings": ""
            },
            "jshint": {
                "@disable": false,
                "args": [],
                "excludes": []
            },
            "php": {
                "@disable": false,
                "args": [],
                "excludes": []
            }
        },
        "mark_style": "outline",
        "no_column_highlights_line": false,
        "passive_warnings": false,
        "paths": {
            "linux": [],
            "osx": [],
            "windows": [
                "D:\\php"
            ]
        },
        "python_paths": {
            "linux": [],
            "osx": [],
            "windows": []
        },
        "rc_search_limit": 3,
        "shell_timeout": 10,
        "show_errors_on_save": true,
        "show_marks_in_minimap": true,
        "syntax_map": {
            "html (django)": "html",
            "html (rails)": "html",
            "html 5": "html",
            "javascript (babel)": "javascript",
            "php": "html",
            "python django": "python"
        },
        "warning_color": "DDB700",
        "wrap_find": true
    }
}

其中paths项,需要把PHP的路径放进去,show_errors_on_save可以控制是否在保存的时候提示错误,这里我选择了打开

然后重启sublime,就可以执行代码检查了

解决WIN10系统 VIA HD驱动无法自动切换外置音响和耳机的问题

注意:现在这个方法可能已经不适用,请在设备管理器里将声卡更新最新版本WIN10驱动!

qq%e6%88%aa%e5%9b%be20161112132139


问题表述

不想看过程的可以直接看下面的问题解决部分!

笔者电脑:神州K650C-I7D4,

这几天新升级了WIN10,突然发现声音无法播放。查看 播放设备发现系统的默认设备变成了耳机(Headphone)类似下图

注意,因为笔者的问题已经解决。。所以只能找个WIN7里类似的图,实际上WIN10的UI肯定跟这个有区别

QQ截图20150803232119

当我们把默认设备改成扬声器后,喇叭即可出现声音。

但是问题又来了,在以前的系统WIN8.1或者WIN8,的时候,如果我们插入耳机,系统会自动把默认音频硬件切换到耳机。而在WIN10,可能是由于驱动原因,这一自动操作只能由手动完成。造成了非常严重的麻烦。

随后笔者发现,如果我们卸载VIA High Definition Audio驱动的话,也就是用微软默认的High Definition Audio。缺可以进行自动切换了。这不禁让我想起来在以前WIN7的时候也是因为VIA驱动太烂,笔者直接不装,系统默认就是High Definition Audio,如下图(也就是笔者现在正常的状态)

QQ截图20150803232537

 

但是在后面又发现,即使我们回退了驱动或者在当前系统卸载了VIA,一旦重新启动系统,这个倒霉的驱动又回来了,然并卵。包括当我们采取多种方式卸载驱动,这个VIA都十分的顽固,每次都重新出现在系统里。

QQ截图20150803232931

如上图,我在41分的时候删除了这个驱动然后马上重启,发现在开机的时候系统自动请求安装该驱动并且马上就装上了。。真是快啊。

所以,解决方法就是禁止系统安装这个VIA驱动

问题解决(改动系统请注意安全)

QQ截图20150803233128

查看事件的具体信息,我们找到了这个系统自动驱动会先加载到viahdb01.inf_amd64_33dd55a863d25a14这个文件夹里,然后通过viahdb01.inf进行安装。这个目录的实体是在C:\Windows\System32\DriverStore\FileRepository里面(如果你的这个文件夹跟我不一样,但是问题跟我类似,也可以尝试解决)

QQ截图20150803233333

笔者想到的方法是删除系统对该文件夹的一切权限,包括SYSTEM。来禁止开机的时候安装这个倒霉玩意。

首先由于这个文件夹权限比较高,我们需要把这个文件夹的所有者由SYSTEM改成我们自己。

注意,由于笔者已经修改过,下面这个图应该现在的所有者是SYSTEM,这只是一个之后的示意图

QQ截图20150803233720

这一步完成之后,找到上一个页面左下角的禁用继承,然后会弹出一个对话框,选择一个带有删除子样的选项,这样就删掉系统其他用户的继承权限。

QQ截图20150803233948

最后,别忘了点击添加,给我们自己添加“完全控制”权限

QQ截图20150803234334

现在,只有我们这个用户对这个文件夹拥有权限,所以我们可以把这个文件夹下面的文件全部删除,保持为空或者你也可以勾选只读之类的~

然后回到设备管理器,卸载VIA驱动,重启之后,系统就会为我们安装High Definition Audio,这样VIA驱动不能自动切换耳机和外放的问题也就解决了。

重启之后我们再看这个设备,发现系统重启之后为我们安装了hdaudio.inf,而不是viahdb01.inf了

QQ截图20150803234601

 

 

md5冲突演示

碰撞文件下载:http://pan.baidu.com/s/15Ac7W 密码: uqua

QQ图片20150725153106

 

下面给出两个文件的十六进制数据,请注意每个文件的后两行

文件1数据

4D C9 68 FF 0E E3 5C 20 95 72 D4 77 7B 72 15 87 
D3 6F A7 B2 1B DC 56 B7 4A 3D C0 78 3E 7B 95 18 
AF BF A2 00 A8 28 4B F3 6E 8E 4B 55 B3 5F 42 75 
93 D8 49 67 6D A0 D1 55 5D 83 60 FB 5F 07 FE A2 

文件2数据

4D C9 68 FF 0E E3 5C 20 95 72 D4 77 7B 72 15 87 
D3 6F A7 B2 1B DC 56 B7 4A 3D C0 78 3E 7B 95 18 
AF BF A2 02 A8 28 4B F3 6E 8E 4B 55 B3 5F 42 75 
93 D8 49 67 6D A0 D1 D5 5D 83 60 FB 5F 07 FE A2