本站推荐的 Chrome 浏览器扩充套件 (Extensions)

要使用这些扩充套件,你得先安装 Google Chrome 浏览器。

书签/稍后阅读

  1. Save to Pocket: 快速储存连结及网页内容到它的“Pocket”网站,之后你可以在它的网站或行动装置上阅读储存的网页 (Pocket 行动装置版本)。它会重新编排网页,让网页更加容易阅读。以前它的名字叫“Read it Later”。
  2. Diigo Web Collector: 网络书签,其功能像以前“Delicious 美味书签”的加强版。

Read more

设定 MediaWiki 可以上传 zip 档

MediaWiki 默认只能上传 png、gif、jpg、jpeg 这些图档,我们可以在 LocalSettings.php 编辑:

$wgEnableUploads  = false;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg' );

加入你额外想要上传的档案类型 (找不到这两行的话就自己加上去):

$wgEnableUploads  = true;
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'zip', 'pdf', 'rar' );

上面的目的是为了可以额外再上传 zip、pdf、rar 类型的档案。可惜事与愿违,上传 pdf 与 rar 档都没问是,但要上传 zip 档却给我出现:

MIME 类别 "application/zip" 不是容许的档案格式。

原来是因为 MediaWiki 有设一些副档名的“黑名单”,刚好 zip 就在其中,设定档在: includes/DefaultSettings.php

找到内容:

$wgMimeTypeBlacklist= array(
        # HTML may contain cookie-stealing JavaScript and web bugs
        'text/html', 'text/javascript', 'text/x-javascript',  'application/x-shellscript',
        # PHP scripts may execute arbitrary code on the server
        'application/x-php', 'text/x-php',
        # Other types that may be interpreted by some servers
        'text/x-python', 'text/x-perl', 'text/x-bash', 'text/x-sh', 'text/x-csh',
        # Client-side hazards on Internet Explorer
        'text/scriptlet', 'application/x-msdownload',
        # Windows metafile, client-side vulnerability on some systems
        'application/x-msmetafile',
        # A ZIP file may be a valid Java archive containing an applet which exploits the
        # same-origin policy to steal cookies
        'application/zip',
);

将“'application/zip',”删除即可。

至于上传 zip 档未来的后果会是如何...这我就不能预料了。

解决 Windows 10 自动开机的问题

查看系统的电源设定

1. 查询最近一次电脑被唤醒的原因

C:\>powercfg /lastwake

唤醒记录计数 - 1
 唤醒记录 [0]
 唤醒来源计数 - 1
 唤醒来源 [0]
  类型: 唤醒计时器
  拥有者: [SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker)
  拥有者提供的原因: Windows 将执行 'NT TASK\2BrightSparks\SyncBackFree\ASUS-User\DailyBackup' 排定要求唤醒电脑的工作。

2. 查询系统中已设定用来唤醒电脑的程序

C:\>powercfg /waketimers

没有的话会显示:

系统没有使用中的唤醒计时器。

有的话会显示:

[SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker) 设定的计时器在 下午 10:59:29 的 2017/2/11 到期。
 原因: Windows 将执行 'NT TASK\2BrightSparks\SyncBackFree\ASUS-User\DailyBackup' 排定要求唤醒电脑的工作。

你得依查询的状况去找出程式来关闭唤醒电脑功能。

例如,根据上面于我的电脑执行 powercfg 所得到的结果,我必须去执行 SyncBack 程式,将 Profile: DailyBackup 于排程设定中的“Wake the computer to run this task”选项给关闭。

自动维护

Windows 的“自动维护”功能也会唤醒电脑。

关闭唤醒的步骤:

  1. 进到 控制台 \ 系统及安全性 \ 安全性与维护 \ 自动维护。
  2. 将“允许排定的维护在排定的时间唤醒我的电脑”给取消勾选:

 

解决 Chrome 遗失 chrome_elf.dll 的问题

最近我的 Google Chrome 浏览器常出问题,不知道从哪一版开始,当要从外部的程式开启网页时,就会出现遗失“chrome_elf.dll”的问题:

除了出现这个错误之外,经常还会有网页打不开,或是网页停止回应的状况!!

一开始以为是装了哪个扩充套件造成,但问题一直解决不了!!

Read more

[JavaScript]如何防止自己的网站被别人以 iframe 盖台嵌入 (与反制办法)

“iframe (内置框架)”是用来在网页中的特定位置嵌入另一个网页。目前 Facebook、Google+、Twitter...等用来在网页上显示社群内容的社群元件,几乎都是以 iframe 实作出来的。

原本框架是一种很好的应用,但如果是自己辛苦制作的网页被别人的网站以 iframe 嵌入,因而出现在别人的网站里,成为别人网站的一部份!!这种感觉就像是自己的心血被别人整碗捧走一样!!

两个解决方法

方法 1

于网页的原始码加入以下 Script:

<script type="text/javascript">
if( top.location != document.location ){
	top.location.href = document.location.href;
}
</script>

以上的 Script 会检查浏览器最上层视窗的网址是否与目前网页的网址一致,如果不一致,则把最上层视窗的网址改为目前网页的网址,就酱。

方法 2 (反制办法)

于网页的原始码加入以下 Script:

<script type="text/javascript">
if( top.location != document.location ){
	document.write("<h1 style='color:#FF0000'>未经授权嵌入别人的网页是可耻的行为!!</h1>(<a href='"+document.location+"' target='_blank'>原站网址</a>)");
}
</script>

以上的 Script 会检查浏览器最上层视窗的网址是否与目前网页的网址一致,如果不一致,就显示:

未经授权嵌入别人的网页是可耻的行为!!
(原站网址)

我比较不喜欢与人家互呛,所以我通常是用“方法 1”啦!

[MySQL]数据库的备份与还原

数据库汇出/备份

1. 备份单一数据库:

$ mysqldump -u Username -p --opt DatabaseName > Backup.sql

2. 仅备份特定数据库下的资料表:

$ mysqldump -u Username -p --opt DatabaseName Table1 Table2... > Backup.sql

3. 仅汇出资料表结构:

$ mysqldump -u Username -p --opt --no-data DatabaseName > Backup.sql

4. 备份全部的数据库:

$ mysqldump -u Username -p -A --opt > AllBackup.sql

mysql/mysqldump/mysqladmin 与“登入”有关的参数说明:

  • -u Username: 用来存取 mysql 资料表的用户名称。此参数可省略,若省略,则表示为目前登入 linux 的用户名称。
  • -p: 于执行时再询问密码。
  • -pPassword: 用来存取 mysql 资料表的密码,-p 与 Password 的中间不可有空格。

数据库汇入/还原

1. 建立数据库,再从备份档汇入单一数据库:

$ mysqladmin -u Username -p create DatabaseName
$ mysql -u Username -p DatabaseName < Backup.sql

2. 从备份档汇入全部的数据库 (不需先建立数据库):

$ mysql -u Username -p < AllBackup.sql

状况处理:

状况 1.

汇入数据库时出现错误讯息: Unknown collation: 'utf8mb4_unicode_ci' Unknown collation: 'utf8mb4_unicode_520_ci'

说明:

MySQL 于 v5.5.3 版之后才有“utf8mb4”的编码格式。原本 utf8 的最大编码长度为 3bytes,而 utf8mb4 的最大编码长度为 4bytes,因此它比 utf8 可以储存更多的字符。但是以常用的文字来讲,utf8 已经完全足够使用了。若不升级 MySQL Server,则只须将汇入的字符编码格式改为原本的 utf8。

解决方法:

先将备份档中的 utf8mb4 字串替换成 utf8: (以下的三行指令需依照顺序执行)

$ sed -i 's/utf8mb4_unicode_ci/utf8_general_ci/g' Backup.sql
$ sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' Backup.sql
$ sed -i 's/utf8mb4/utf8/g' Backup.sql

全部替换完再进行汇入:

$ mysql -u Username -p DatabaseName < Backup.sql

状况 2.

以 mysqldump 汇出数据库时出现错误讯息: Got error: 1044: Access denied for user 'backup'@'localhost' to database 'test' when using LOCK TABLES

说明:

这错误讯息已说明了用来执行 mysqldump 的帐号没有“LOCK TABLES”权限! 通常用 root 帐号汇出数据库不会发生这个问题,因为我们会给 root 所有的权限。然而我们在设定其它帐号时可能会忘了给它设定“LOCK TABLES”权限,而执行 mysqldump 至少需要“SELECT”与“LOCK TABLES”权限才行,最好再加上“SHOW VIEW”、“EVENT”与“TRIGGER”。

解决方法:

重新授予用户权限:

grant SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER on *.* to 'backup'@'localhost' identified by '{Password}';
flush privileges;

状况 3.

从 cpanel 下载的 MySQL 档案格式为 *.gz,可以用 gunzip 解压缩:

$ gunzip Backup.sql.gz

注意: 使用 gunzip 解压缩后,原本的 *.gz 会被删除!!若要保留旧档,须改用下列指令:

 $ gunzip -c Backup.sql.gz > Backup.sql

数据库离线备份/还原

MySQL 的数据库放在 /var/lib/mysql 下,以数据库的名称做为目录的名称。直接将 /var/lib/mysql 下的数据库目录用 tar 指令个别压缩起来即可做为备份。要还原再把档案解压缩回去。

要以这种方式执行备份与还原都必须先停止 MySQL 的服务:

$ service mysqld stop

参考网页

处理 DNS 的 CNAME 造成收件者错误的问题

第一次遇到客户因为自己 Server 的 DNS 问题,造成我方要寄信给客户时,收件者的 EMail Address 会于 SMTP Server 端被自动变更 (寄给 user@example.com 会变成寄给 user@other.example.com),以致于客户收不到 EMail 的问题!! (客户可能以为是我方的问题)

我自己测试的结果是与 DNS 的 CNAME 有关:

C:\>nslookup -type=cname example.com
  Server:  dns.hinet.net
  Address: 168.95.1.1
  example.com canonical name = other.example.com

同时我在网络上找到一篇微软的 KB 文件,已经写得很清楚了,我就直接把内容放上来。

Read more

免跑银行,直接线上领取 Google AdSense 广告收入 (西联汇款)

Google AdSense

约莫等了半年,终于又收到了一笔 Google AdSense 的广告收入了,算是农历过年前的一个小小小红包。

在台湾,AdSense 的用户可以使用“西联汇款”来进行收款,目前台湾有支援西联汇款的银行有京城银行大众银行元大银行

我是使用“京城银行”,这个有点陌生的银行。它的“网络西联汇款”服务可以直接将我的 AdSense 广告收益从美金转为台币存入我的银行帐户,并且不收取任何手续费、不用等待,但是会有汇损的问题

不过我今天要操作收款时,发现做为“汇款人”的 Google 的身份又改变了! 原本的身份“Google Ireland Ltd. (爱尔兰)”,更早之前是“Google Inc. (美国)”,现在的汇款人身份则为“Google Asia Pacific Pte. Ltd. (新加坡)”!

这个付款人的资讯会影响我们能否正常收款,不过没关系,下面会教你如何识别付款者的身份。

Read more

[JavaScript]简易网页下拉选单,可支援 MouseOver 与 Click 事件

在网页界已经有很多的“下拉选单”程式了,不过似乎都搞得太过复杂或太华丽了。

其实下拉选单的原理很简单,一开始只是先让“子选单”隐藏,当鼠标移至“主选单”时再让子选单显示。因此,只要能控制网页元件的 display 样式属性就已经成功一半了。

因为本人喜欢重新发明轮子,所以也写了一个简易的网页下拉选单的程式,可以做为初学者入门的参考。

在范例的原始码中,我尽量让程式码看起来浅显易懂,并且只用 JavaScript,不使用 jQuery 或其它 Framework。我也尽量多写一些注解,希望 JavaScript 的初学者能看得懂。

Read more

加入 Spotify Premium 会员 3 个月只要 NT$19

欢庆圣诞节,Spotify 从现在起至 12/31 止,加入 Premium 会员 3 个月只需要 NT$19 元,其中包括了收听音乐时不会突然有广告的插播、没有网络也可以收听清单中的音乐...等。

  • 活动介绍与线上订购: Click Me
  • 限非 Premium 会员申请

三个月后就会调整回原价 NT$149 元,记得要在第三个月去停止信用卡继续付款哟!

return top