Kindle paperwhite 阅读mobi格式电子书文字发灰的解决方法

部分mobi格式电子书由于内置CSS将文字颜色设置为了彩色或灰色,导致用kindle paperwhite阅读时文字发灰,看起来眼睛很累。

解决方案:使用calibre的电子书格式转换功能,转换过程中过滤颜色样式(见下图),最后将转换后的电子书导入Kindle即可解决问题。

Ubuntu16.04 Shadowsocks

安装

sudo apt-get install -y python3-pip build-essential python3-dev python3-setuptools python3-wheel

sudo pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip

配置

sudo mkdir /etc/shadowsocks
sudo nano /etc/shadowsocks/config.json

输入以下内容:

{
    “server”:”::”,
    “server_port”:8888,
    “local_address”: “127.0.0.1”,
    “local_port”:1080,
    “password”:”password”,
    “timeout”:300,
    “method”:”aes-256-cfb”,
    “fast_open”: true
}

添加systemd服务

sudo nano /etc/systemd/system/shadowsocks-server.service

输入以下内容:

[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
ExecStartPre=/bin/sh -c ‘ulimit -n 51200’
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-abort

[Install]
WantedBy=multi-user.target

优化

sudo apt-get update
sudo apt-cache showpkg linux-image | grep generic

找到内核版本大于4.9的目标内核,例如:linux-image-4.15.0-38-generic,安装新内核

sudo apt-get install -y linux-image-4.15.0-38-generic

安装完成后重启,进入系统后删除就内核

sudo reboot

sudo purge-old-kernels

开启BBR

modprobe tcp_bbr
echo “tcp_bbr” >> /etc/modules-load.d/modules.conf

echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf

sysctl -p

检查是否开启成功,若以下两个命令返回值中有bbr则代表成功

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

优化吞吐量

sudo nano /etc/sysctl.d/local.conf

# max open files
fs.file-max = 51200
# max read buffer
net.core.rmem_max = 67108864
# max write buffer
net.core.wmem_max = 67108864
# default read buffer
net.core.rmem_default = 65536
# default write buffer
net.core.wmem_default = 65536
# max processor input queue
net.core.netdev_max_backlog = 4096
# max backlog
net.core.somaxconn = 4096

# resist SYN flood attacks
net.ipv4.tcp_syncookies = 1
# reuse timewait sockets when safe
net.ipv4.tcp_tw_reuse = 1
# turn off fast timewait sockets recycling
net.ipv4.tcp_tw_recycle = 0
# short FIN timeout
net.ipv4.tcp_fin_timeout = 30
# short keepalive time
net.ipv4.tcp_keepalive_time = 1200
# outbound port range
net.ipv4.ip_local_port_range = 10000 65000
# max SYN backlog
net.ipv4.tcp_max_syn_backlog = 4096
# max timewait sockets held by system simultaneously
net.ipv4.tcp_max_tw_buckets = 5000
# turn on TCP Fast Open on both client and server side
net.ipv4.tcp_fastopen = 3
# TCP receive buffer
net.ipv4.tcp_rmem = 4096 87380 67108864
# TCP write buffer
net.ipv4.tcp_wmem = 4096 65536 67108864
# turn on path MTU discovery
net.ipv4.tcp_mtu_probing = 1

net.ipv4.tcp_congestion_control = bbr

sysctl –system

启动服务并设置开机启动

sudo systemctl enable shadowsocks-server
sudo systemctl start shadowsocks-server

自建Gitlab邮件发送服务器配置

自建了Gitlab服务器,为了使用邮件发送(密码找回、验证等等),可以直接使用腾讯企业邮箱或其他国内免费邮箱作为发送服务器,而不必架设Postfix等邮箱服务器。

以腾讯企业邮箱为例说明:

修改配置文件/etc/gitlab/gitlab.rb

gitlab_rails['gitlab_email_from'] = 'xxx@xxx.com.cn'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@xxx.com.cn'

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@xxx.com.cn"
gitlab_rails['smtp_password'] = "xxxxxx"
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

修改完成后,运行gitlab-ctl reconfigure,然后运行gitlab-rails console,进入控制台后运行以下命令测试设置是否正确和生效:

irb(main):003:0> Notify.test_email('xxx@xxx.com', 'Message Subject', 'Message Body').deliver_now

其中xxx@xxx.com为接收人的邮箱,如果该邮箱成功收到邮件则说明设置成功。

WordPress 4.9.x主题添加ICP备案号

添加位置

主题目录下template-parts/footer/site-info.php文件

例如:
/htdocs/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php

添加内容

	<span>
	<a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank"><?php echo get_option( 'zh_cn_l10n_icp_num' );?>
	</a>
	</span>

具体位置见以下完整代码:

<?php
/**
 * Displays footer site info
 *
 * @package WordPress
 * @subpackage Twenty_Seventeen
 * @since 1.0
 * @version 1.0
 */

?>
<div class="site-info">
	<?php
	if ( function_exists( 'the_privacy_policy_link' ) ) {
		the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' );
	}
	?>
	<a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyseventeen' ) ); ?>" class="imprint">
		<?php printf( __( 'Proudly powered by %s', 'twentyseventeen' ), 'WordPress' ); ?>
	</a>
	<span>
	<a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank"><?php echo get_option( 'zh_cn_l10n_icp_num' );?>
	</a>
	</span>
</div><!-- .site-info -->

Ubuntu16.04 eGalaxTouch Calibration(校屏的方法)

在Ubuntu14.04中使用了官方的驱动,自带了校屏工具。系统升级到Ubuntu16.04后没有再使用官方驱动,内核中已经自带了驱动,工作良好。经过摸索,校屏方法同样很简单。

一条命令搞定,实时生效,不需要重启系统:

xinput_calibrator --output-filename /usr/share/X11/xorg.conf.d/99-calibration.conf

Calibre Windows下代理的设置

Calibre需要通过搜索引擎获取书籍的metadata,国内无法使用google,体验非常不好。同时shadowsocks没有http代理,所以需要借助于Privoxy实现http代理供Calibre使用。这里不讨论shadowsocks搭梯子的方法。

下载Privoxy

官网http://www.privoxy.org/无法打开,可以直接从sourceforge下载windows安装包:

https://sourceforge.net/projects/ijbswa/

配置Privoxy

修改config.txt,在文件末尾增加一行,内容如下:

forward-socks5 / 127.0.0.1:1080 .

注意:最后有一个点号,本地端口号1080是shadowsocks默认的,配置完成后启动Privoxy。

配置Windows环境变量

增加三个环境变量,如下:

http_proxy=http://127.0.0.1:8118
https_proxy=https://127.0.0.1:8118
no_proxy=.gitlab.com

备注:no_proxy的目的是为了避免影响其他程序的使用,忽略那些不需要从代理访问的站点

验证Calibre http代理设置是否生效

进入Calibre设置Preferences->Advanced->Miscellaneous中,检查是否已检测到http代理设置。

Ubuntu 16.04 cgit with apache2

Ubuntu 16.04环境下搭建Git服务器

(1)安装apache2

sudo apt-get install apache2

(2)安装cgit

git clone https://git.zx2c4.com/cgit
cd cgit
git submodule init
git submodule update
make
sudo make install

依赖项

sudo apt-get install build-essential
sudo apt-get install libssldev

(3)配置apache2

启用模块

sudo a2enmod cgid

添加/etc/apache2/conf-available/cgit.conf

ScriptAlias /cgit/ “/var/www/htdocs/cgit/cgit.cgi/”
RedirectMatch ^/cgit$ /cgit/
Alias /cgit-css “/var/www/htdocs/cgit/”
<Directory “/var/www/htdocs/cgit/”>
AllowOverride None
Options ExecCGI FollowSymlinks
Require all granted
</Directory>

启用cgit.conf

sudo ln -sf ../conf-available/cgit.conf cgit.conf

(4)配置cgit

/etc/cgitrc

#
# cgit config
# see cgitrc(5) for details

css=/cgit-css/cgit.css
logo=/cgit-css/cgit.png

repo.url=test.git
repo.path=/var/www/htdocs/cgit/test.git
repo.desc=the master test repository
repo.owner=test@example.com
repo.readme=info/web/about.html

 

[转载教程] 免 SHSH 从 iOS 9.0 ~ 9.3.5 降级到 iOS 8.4.1

【原文链接】

http://bbs.feng.com/forum.php?mod=viewthread&tid=11373525&extra=page%3D&fid=333&page=1

【转载说明】

感谢作者的分享,此方法经站长测试,ipad mini 1代有效,成功从9.3.5降级至8.4.1。

【友情提请】

Win10下运行Impactor不要使用管理员权限运行,否则无法使用文件拖动功能。

【教程】

如果你的 iPod touch (第五代)、iPad 2 (包含 2012 年的 32 纳米处理器制程改款)、iPad (第三代)、iPad (第四代)、iPad mini (第一代)、iPhone 4s 或 iPhone 5 正在运行 iOS 9.0 至 9.3.5 之间的任意一个 iOS 版本,你可以在无需备份固件签署证书的情况下降级到 iOS 8.4.1,但不能降级到 iOS 7。这个教程不支持 iPhone 5c。
由于目前没有兼容 iOS 10.3.3 的越狱工具,这一回答暂时不适用于 iOS 10.3.3 的 iOS 设备。当兼容 iOS 10.3.3 的越狱工具推出后,这一回答将同样适用于 iOS 10.3.3。

第一步:越狱你的 iOS 设备
– 如果你在运行 iOS 9.3.5,通过电脑前往 https://phoenixpwn.com 下载 PHŒNIX 越狱工具。如果你在运行 iOS 9.0 至 iOS 9.3.4,通过电脑前往 http://wall.supplies/ 下载 Home Depot 越狱工具。前往 http://www.cydiaimpactor.com/ 下载 Impactor。
– 将设备连接到电脑,在电脑打开 Impactor,并将下载到的越狱程序 IPA 安装包拖动到 Impactor 的窗口里。
– Impactor 会提示输入一组 Apple ID 和密码。输入你的 Apple ID 和密码。
– Home Depot 会被安装在你的 iOS 设备上。打开 Home Depot,并选择越狱。
– 越狱成功后,你的 iOS 设备会显示白色的 Apple 标识并重新启动主屏幕进程。

第二步:重新配置系统版本描述以欺骗软件更新机制
– 打开 Cydia 后,搜索并安装 Filza。
– 打开 Filza app,前往 /System/Library/CoreServices。打开 SystemVersion.plist。
– 修改 ProductVersion 的对应键值为 6.1.3,ProductBuildVersion 的对应键值为 10B329。
– 再三仔细检查所做的修改没有错误,随后保存所做的修改。如果在修改错误的情况下继续执行第三步,你可能失去降级的机会,并会被迫更新到 iOS 10。

第三步:解除越狱
– 前往设置 → 通用 → 还原 → 抹掉所有内容和设置,从而解除越狱。
– 完成设备重置后的设置流程并激活你的 iOS 设备。

第四步:下载并安装 iOS 8.4.1
– 打开设置 → 通用 → 软件更新。iOS 设备会检测到 iOS 8.4.1 软件更新。
– 轻按“更新”。iOS 设备会请求更新,请求更新的过程可能需要几分钟。请求完成后,下载更新可能需要几十分钟或几个小时。
– 下载完成后,同意许可协议并选择 “现在安装更新”。
– iOS 设备会显示一个 Apple 标识和进度条,并降级到 iOS 8.4.1。
– 当白色的进度条即将填满灰色的轨道时,白色的进度条可能会短暂冻结,设备温度也可能升高。这是正常的现象,请耐心等待并不要重启或强行断电。尽管 iOS 8.4.1 安装包的数据迁移脚本没有针对 iOS 9 的用户数据分区进行适配,只要耐心等待几分钟后,设备会自动跳过迁移脚本。
– iOS 设备已被成功降级并会重新启动,再次显示进度条。这是正常的现象。
– 完成设备降级后的设置流程并激活你的 iOS 设备。

第五步:清空用户数据分区以提升稳定性
– 此时,iOS 设备会启动到 iOS 8.4.1 并显示 iOS 8 的主屏幕。由于 iOS 8 的迁移脚本不能完全正确迁移 iOS 9 的数据分区,一部分内置 app、系统进程可能不稳定或出错。为了解决这一问题,再次前往设置 → 通用 → 还原 → 抹掉所有内容和设置。这一操作会抹掉包含来自 iOS 9 的、未经正确迁移的数据分区。
– 完成设备重置后的设置流程并激活你的 iOS 设备。

此时,你的 iOS 设备已成功降级至 iOS 8。你可以安装 tvOS 测试版系统的描述文件,从而禁用软件更新机制,防止设置 app 上方出现角标。

ubuntu设置Wifi链接为默认链接

运行环境:Ubuntu 16.04

网络管理:NetworkManager

网络:eth0 —> 局域网,Wifi —> 外网

默认情况下,eth0为默认路由,需要将wifi设置为默认路由,使用NetworkManager最简单的修改方法如下:

打开网络管理器,在eth0路由设置里将”Use this connection only for resources on its network”勾选中,IPv4和IPv6均设置。