域名服务商、注册续费优惠码等

国内注册商有很多,但已经很多年不用了,多方面原因,可以自行google. 这里只说国外注册。更便宜,随便迁移,经常有有优惠码,更便宜。

最广为人行的是godaddy(狗爹),号称全球最大域名商。不过他们家域名续费价格通常有点高。还有name.com, namecheap等无数多个。

通常各域名商的初注册、域名转入,价格会比较便宜,所以一个捡漏的办法:每年换一次注册商!虽然有点不厚道,但确实节省了成本。其实转入60天后就可以下一次转入,这样多转几次,也相当于折腾着续费多年,不至于忘续费而丢掉。

域名商 name.com WHOIS隐私保护 优惠码 PRIVACYPLEASE  ,效果是隐私保护免费!

excel公式实现:根据当前单元格偏移位置引用计算、多条件查找

根据当前单元格偏移位置引用计算

直接上公式示例

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))

作用:引用当前单元格上一行同列的值。
原理:自己查excel自带帮助的公式说明。
特点:可以无脑的将该公式粘贴到任意位置,即做相对引用,不受表格其他内容、位置的影响。
使用场景示例:如下图所示,尾行是计算周变化值/比例。选中格事实就是=B706-B698。每周会插入8行数据。使用了上面偏移位置方案,就不用每次更新下面公式,省心且不出错。

 

多条件查找

本方法来源于:https://www.zhihu.com/question/41820039/answer/93329442 在此表示感谢。

通用公式

=lookup(1,0/((条件1)*(条件2)*(条件3)),结果区域)

原理:参看出处说明

另外还有更多方法

华为mate 9折腾经验记录:google服务,twrp recovery, root等

使用android的历史,从最早的山寨平板开始,到使用近三年的glaxy nexus,再到nesux 5,从今年2月份开始换mate 9,至今已经半年多,记录一下经验。

mate 9的粗略印象

电池比较大,屏幕也略嫌大。华为对android做的定制,基本上还比较合理,自带的系统应用,也比较有用,比如名片扫描、二维码扫描、滚动截屏、天气、等。不便处也有,举例,最近应用列表下的清理按钮,太容易误点到,令人崩溃。

基本使用

网络:shadowsocks,kcptun,谁用谁知道。

重置与备份:华为手机助手,可以免root做整机配置备份,类似于固件工具箱的应用备份功能。

重置手机:可以通过eRecovery在线安装系统,官方不提供刷机包。

Google服务

google服务是绝对不可少的,即使在如此恶劣的网络环境下,借助shadowsocks神器。以前的系统,可能装第三方的google服务安装器,免root环境安装;最新的版本已经自带google服务了,所以整机备份后,通过eRecovery重装系统,再还原备份。

开机启动选项

Recovery: 关机状态下,按住音量上键+电源键开机,出现开机画面1-2秒后,放开电源键,音量上键继续按住不动,直至进入recovery;
出现开机画面即放开音量上键则进入恢复出厂、清空cache界面。
音量下键+电源,进入fastboot, 似乎解锁后就不能用了。

解锁等

fastboot 命令提示:failed <remote: command not allowed> 通常这种情况关闭手机找回就可以正常解锁了,选项在 “设置-云服务” 中。  from http://club.huawei.com/thread-12177115-1-1.html

第三方Recovery, Root

习惯使用twrp的recovery,不过twrp官方并不支持mate 9,所幸有高手做的mate9全系列适配版,当前已知最新版本为 3.1.0,(支持设备:MHA-L29 devices, MHA-L09 devices, MHA-AL00 devices, MHA-TL01 devices, LON-L29 devices, LON-AL00 devices)。直接下载链接 twrp-3.1.0-1-hi3660.img 。当前版本不支持机身存储的加密方式,所以要刷root包时,推荐使用tf卡。具体是:在twrp主界面 - install ,点下按钮切换存储器为sd/tf卡(默认是机身存储,sdcard目录里全是加密字符串)。

参考xda帖子:https://forum.xda-developers.com/mate-9/development/recovery-unofficial-twrp-huawei-mate-9-t3515617  ,本帖中有root的方法,使用的是Phh's superuser方案,只是因为习惯使用的是 SuperSU,故不采用。

root ,使用SuperSU的方案。当前版本 SuperSU 2.82-SR1,已经官方支持mate 9,直接下载SuperSU 2.82-SR1,注意需要 使用TWRP 3.1.0 ,系统固件 B182+ 以上版本。似乎有点诡异,以前刷这个无限重启,只好erecovery还原折腾;这次先刷了前面的phh's supersuer,因为没看到root管理器而装了supersu,但提示su文件被使用,于是死马当活马医而再刷supersu 2.82-SR1的zip包,竟然正常了,重启两次就进入系统。170920

参考xda帖子 https://forum.xda-developers.com/mate-9/development/root-supersu-2-79-t3573155

其它参考 http://www.teamandroid.com/2017/04/11/root-huawei-mate-9-emui-50-android-70-nougat/

180302后记:事实上,已经很久没有root了,之前折腾root方案的目的,其实只有一个:使用google位置记录,通过location_enable应用及xposed模块都不行;然而并没成功。于是不再root.

(个人探索)卸载windows 10自带应用方法

windows10自带了很多应用,说实在的,实在烂得让人失去吐槽的兴趣,卸载是最好的对策。网上有一些卸载方案,比如google搜索出的这两篇

感觉这里的方案有点简单粗暴,不够优雅。突然发现了一个更好的办法,利用windows任务管理器,只卸载让你感到恶心的那些“应用”。

方法如下:

  1. 如果你发现某个恶心的“应用”被打开了(比如双击打开某个视频文件后,打开了“电影与电视”),先不要关闭它。
  2. 打开windows任务管理器,进入“进程”选项卡,在“应用”一组里,找到上述应用,点右键 - 属性
  3. “属性”对话框的“常规”选项卡里的“位置”一项,是一个路径,形式如 C:\Program Files\WindowsApps\***** 最后一级目录(即前面星号代替部分)就是应用的包名,将包名复制到剪贴板
  4. 以管理员身份启动Powershell(可以在开始菜单里找到 Windows Powershell,点右键 - 以管理员身份运行),运行 Remove-AppxPackage 包名
  5. 完成。

这样就只卸载你不需要的那些应用。

 

MacPorts简介及日常应用与维护/mac port

MacPorts是在mac osx下的软件包安装系统,包含了一系列Unix/Linux工具、软件包等。同类软件还有HomeBrew。macPorts的优点之一是,它把所有软件安装到一个固定目录下,与osx本身完全隔离,不造成混乱。

安装MacPorts

 

有用知识

macports默认安装到/opt/local下

安装、卸载、升级装软件

安装软件:普通用户下运行 sudo port install {包名}   ;或者先sudo su切换到root用户下直接执行port install {包名},下面皆省略sudo 。

卸载软件:port uninstall {包名}      (其中包名)

更新软件:port upgrade {包名}

全面升级:port upgrade outdated

全面升级前,通常需要对macport自身升级(port会提示你的):port selfupdate

关于port下包名:指定版本号时包名会带空格,这时不要用引号括起来(括起来反而不认,这与bash习惯很不同),示例  port info gettext @0.19.3_1

其他有用命令

查看帮助:port help {子命令名}        (例如:port help search)

列出当前安装过的包:port installed          (注意不要用 port list installed,原因)

列出可用包:port list          (即可以通过port install安装的包)

搜索包:port search {关键词}          (有很多参数,port help search查看或文档

查看软件包介绍: port info {包名}

查看依赖包:port deps apache2

清理安装包时的临时文件:port clean {包名}    (注意不是卸载,更多参考

升级软件包时带-u参数可以同步清理旧软件包 port -u upgrade outdated

清理MacPorts里的老旧包、无用文件等

使用过一段时间后,/opt/local会变得很大(可通过 du -sh /opt/local 查看占用大小),这主要“得益于”(归罪于)port更新包时保留旧版。定时清理一下好了。

  1. 清理编译文件等 port clean --all installed
  2. 清理老旧包 port uninstall inactive

事实上这并不能让 /opt/local 变小很多,因为里面还有很多下载的源码 /opt/local/var/macports/sources/release/ 可以进去手工清理一下

某商vps上编译php时报错“undefined reference to `libiconv_open'”的处理

帮朋友的阿里云的服务器装wordpress。该服务器上面已经装了有好几个站点,web环境是wdlinux的所谓一键安装脚本,向来极其厌恶这种所谓的一键脚本,版本老化,目录不合理,乱。但为了兼容现有环境,还是决定在它上面继续。无语的是,这个web配置实在乱透了,nginx作前端,把动态请求反代到后方apache上,这样配置一个web站点,要同时设置两套web。而且还是使用php 5.2.17,这个老掉牙的版本!搞了半天,真心不想搞下去了。于是决定新安装php新版本,以php-fpm运行,简洁优雅地在nginx上跑。

之前自己服务器上路的是php 7.0.9,直接下载这个版本源码,使用之前自己的configure参数,但在make时出错了,错误消息第一行非常长,核心就是iconv有问题

undefined reference to `libiconv_open'

尝试安装iconv-devel等办法都使用了,都不行。

经过google,也有别的朋友遇到同样问题,make时加参数即可,如下:

 make ZEND_EXTRA_LIBS='-liconv'

堪称完美,在所有解决方案里最简便,向该博客作者表示感谢。 继续阅读

Microsoft Excel的坑:数据处理方面

首先一个不可否认的事实:Microsoft Excel是个使用简便、功能丰富的数据处理工具;但这不能掩饰它本身的不少缺陷,本文只讲其在数据转换时的陷阱,就是“坑”。

脑残的转义约定:双引号转义、不转义换行符

csv是常用的数据交换格式,但excel生成的csv文件却有几个脑残的约定(大概是微软自己的历史包袱所致),通常excel使用双引号括起来字段内容,如果字段内容中有双引号,则使用 \" 代替;还有其他特殊符号,也会做相应转义。所以,使用excel转换数据(如导入到MySQL)时,要注意处理这些问题。

换行符转义。可以事先在excel中替换,excel查找格里先清空格中内容,按几次Backspace再按几次Delete,确保真正的清空。按住Alt键不松开,输入数字10,此时格里没有任何显示,然后在替换格中输入\n,全部替换,即完成换行符的转义。

双引号转义。这个问题有点恶心。1)如果对内容一致性要求不高,可以将双引号完全删除(查找替换成空字符串)。2)将双引号替换成一个其他字符串(比如~^这类特殊字符、或者~~这样的组合字符串),事先在excel文件里查找、以确保该字符串不会在内容中出现。保存成csv后,再将该保护字符串替换成\",完成转义替换。

 Excel表导入MySQL的几个可选方案

导数据前一般需要事先建好目标表,目标表的字段长度可以适当大一此,避免导入失败。或者通过事先计算每个字段的最大长度,比如用awk 参考。下面是几种导入方法,按操作难度从易到难排列

  • 使用第三方工具(如navicat 等)直接导入,但不少时候会报错,而且原因不明。
  • excel转为csv,通过phpMyAdmin或Load Data等导入MySQL。
  • excel公式构造一系列insert 语句,拿到mysql里执行(粘贴到客户端里运行,或保存到文件让mysql加载)。
  • excel导入到ms access(微软自家产品内部有良好兼容性),再使用navicat等第三方工具导到mysql。
  • 自己写脚本处理。

后面只是几张图,随便参考一下吧。

navicat导excel到mysql报错

navicat导excel到mysql报错

vlookup函数匹配到空格,但返回结果却是 0

解决方案:vlookup函数结果拼接上个空格,比如  =vlookup(C1,sheet2!A:F,5,0)&""

EOF

windows下安装zip压缩版的mysql服务器端v5.7.16

环境:windows 10某个版本(写本文的最新版本)

目的:安装个mysql服务端,从官方下载的zip压缩版5.7.16,而不是msi版本。

操作过程折腾了,以前安装过多次,不过好像不是真正意义上的从zip安装,而是使用之前通过msi安装过的版本,后面只是注册成系统服务一项。

本次折腾的的操作,主要从官方是下载.zip版本压缩包,选择的是x64版,解压缩到合适的目录里,本文以 C:\Program Files\mysql\  为例。

step 0. 准备配置文件:复制my-default.ini得到my.ini ,修改其中的basedir, datadir两个参数,示例如下

basedir = C:\Program Files\mysql
datadir = D:\data\mysql-data

step 1. 安装为windows服务:管理员身份启动cmd,进入mysql/bin/目录,执行如下安装命令:

mysqld --install MySQL --defaults-file="C:\Program Files\mysql\my.ini"

注意:--install 参数必须在前,否则mysqld会认为你要运行mysqld进程,然后启动失败)

setp 2. 初始化数据目录:创建 D:\data\ ,注意不需要创建mysql-data子目录;运行 mysqld --initialize

step 3. 查root用户初始密码:查windows日志-应用程序日志,里面应该有类似如下一条

A temporary password is generated for root@localhost: 5cuiMezaNd>QFor more information....

其中5cuiMezaNd>Q即是默认密码,到命令行里修改一下吧,如下一行,将root密码改为000111, 会有交互提示输入旧密码的。

mysqladmin.exe -uroot -p password "000111"

step 4. 启动windows服务:net start MySQL. 完工。

Addition. 如需要卸载服务,到mysql/bin/目录里执行 mysqld.exe --remove 即可。需要的话删除mysql数据文件目录。

MySQL复制设置及相关维护操作

1. 主库服务器配置

主服务器MySQ配置参数,参数主要依据《高性能MySQL 第三版》

#replication safe for innodb engine
innodb_flush_logs_at_commit
innodb_support_xa=1


#replication
server-id=100
log-bin=mysql-bin
log-error=mysql-bin.err
expire_logs_days=30
sync_binlog=1

2. 添加复制用户

只需要赋两个全局的权限: REPLICATION SLAVE, REPLICATION CLIENT

CREATE USER 'repl'@'192.168.10.132' IDENTIFIED BY '***';
GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO 'repl'@'192.168.10.132' IDENTIFIED BY '***';

3. 备份主库,备份中加入binlog及位置

全面备份主库,备份前需要已经启用二进制日志。

mysqldump -hlocalhost --opt --master-data=1  --all-databases --max_allowed_packet=8M --net_buffer_length=128K -uroot -pyour-password >all.sql

为了获得一致性的备份,考虑加入参数--single-transaction 或 --lock-all-tables,分别针对事务型引擎及非事务型引擎,但它们不能同时使用。

注意其中--master-data=1参数,它将binlog及位置信息生成到备份文件中,大概如下一行

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=8747725;

4.iptables放行备库连入

针对从服务器ip到本地3306端口的连接

iptables -I INPUT 7 -s 192.168.10.132/32 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

5. 配置从服务器

server-id=201
log-bin=mysql-bin
relay_log=/var/lib/mysql/mysql-relay-bin
log_slave_updates=1
expire_logs_days=30
read_only=1

6. 还原到从库服务器上

SOURCE /path/to/bakup.sql;

6. 配置从库,连接到主库

事实上下面的log_file,log_pos可以不用再指定,因为备份里已经有该信息并还原到这里了。当然再指定一次也没负作用。

change master to master_host='192.168.10.100', 
master_user='repl',
master_password='repl-password', 
master_log_file='mysql-bin.000004', 
master_log_pos=8747725;

7. 启动slave

start slave

顺利的话即完成。

如报 Failed to open the relay log 的错误,先停止slave的mysql服务,删除 /var/lib/mysql/ 下的中继日志相关文件,主要是  *-relay-bin.* 及 relay-log.info,再启动重新start slave

x. 如果异常,复制失败时,或许需要重配置slave才可以解决问题

 

stop slave;
RESET SLAVE;
SOURCE /path/to/bakup.sql;
RESET SLAVE;
change master to ...
show slave status; #检查状态,确认主库及连接账号等
START SLAVE;

附记注意事项:

  • 关于binlog_format 参数。在mysql 5.5(win32)版下,该参数默认值为STATEMENT。于是,至少有以下问题insert into tablename select ... limit n这样的语句,执行时会报warning错误,原因是limit结果在一致性上是非安全的。

end

本博客正式支持HTTPS/SSL浏览(powered by Let's Encrypt)

今天起,本博客已经正式启用https/ssl,页面上链接已经更新为https链接。

使用的是Let's Encrypt提供的免费ssl证书服务。

Let's Encrypt服务优势

免费、支持多域名、国际化,并且服务商是Linux基金会成员,可信度高。

目前主流浏览器都支持该证书的,参看官方的“证书兼容列表”

负面影响评估

以GA上最近1万(准确数字是10523)次会话作样本做评估,GA只计算“人”的访问,而不计蜘蛛,这更符合现实。(可以认定,主流的搜索引擎蜘蛛应该是支持该证书的,这个影响按理可以忽略。)

按网友的经验IE6是不支持的,经过虚拟机下windows 2003里IE6测试证实了这一点(手上没带IE6的xp)。样本会话中共计10次IE6,9次IE7;由此IE6占比不到0.1%即使带上IE7,也不到0.2%. 因此旧版IE可以忽略。

Safari 4.0以下无访问。

 

Pages: Prev 1 2 3 4 5 6 7 8 9 10 ... 46 47 48 Next