Flat Tire

昨天吃完晚饭,原本打算和Mei去一趟Trader Joes,结果刚把车倒出车库,就发现有不对劲。停下检查一看,原来是左后轮漏气了,而且是漏的一点都不剩的那种。于是取消出门计划,找出打气泵,重新打满,再仔细检查了一下,发现果然扎了一个钉子。

今天一早,下楼,发现昨晚打满的胎,已经瘪得只剩差不多一半了,于是再次重新打满,发动,前往车胎店补胎。

由于之前的车胎是在American Tires换的,于是我理所当然的就来这里补了。小哥告诉我,他们会先尝试着补一下,如果补不了,就只能换新胎。

等了大约30分钟不到,小哥出来告诉我,他们找到了扎胎的位置,取出了钉子,并把胎给补好了。因为我的胎是他们家买的,所以补胎不用收费。

我悬着的心才放了下来。要知道,最近真是有点点背,一个月前,同一个位置的胎,才被扎破,并且由于伤在靠近胎壁的位置,所以没法补,只能换,已经损失了200大洋了。

最后,这就是这次扎胎的罪魁祸首:

Chase Sapphire Preferred bonus churning

近日,惊闻Chase Sapphire Preferred信用卡大酬宾,新开卡可获80000积分。记得几年前我申的时候,64000的积分已经乐的屁颠屁颠得了。

虽然我是CSP的现任用户,但是由于距上一次拿开卡奖励已经超过48个月,所以按理也有资格重新申卡,并再一次拿开卡礼。

因为一个用户同一时间只能拥有一张CSP,所以我先拨打卡背后的热线号码,将现在手上的CSP降级成了没年费的Freedom。降级以后,原先卡里的积分会跟着带到新的Freedom上,而且额度和开卡历史,都不会有影响。

降级后,等了两天,确认网银里原先CSP的图标,已经变成了淡蓝色的Freedom,便提交了新的CSP的申请。也许是我和Chase八字不合,每次申他们家的卡,都无法立即获批,要等30个工作日blah blah,虽然我的信用分常年保持820+。。。

又等了两天,不耐烦了,于是拨打了Chase的后门号码:(888) 338-2586

拨通后,一路根据语音提示选择输入,最后听到的最新进度还是需要30天的review。这时候不要挂电话,有语音提示可以选择与客服通话系统会提。选择与客服通话后,系统提示需要输入当前的信用卡号码,但是我这是新申卡,哪来的号码?不要着急,这时候什么都不要输入,干等半分钟,系统便会自动接通客服。接下来就是常规操作了,客服确认身份后,只要告诉他我前两天申了卡,但是系统告诉我要等30天云云,我打进来想问下需不需要我提供什么额外信息可以加速审批blah blah blah。这时候客服会说,哦,那你等等, 我把你的申请翻出来看一下。没有意外的话,几分钟后,就会告诉你,我已经看了你的申请,并且批准了,你的额度是多少多少,请等多少多少天收卡云云。到这里,就没问题了。

这次的开卡礼,需要头三个月花满4000块钱,马上就是感恩节,黑五,圣诞节了,这个开卡消费,我相信应该不会有问题吧。。。唯一遗憾的是,前两天Mei也同时申请,却当场遭到无情拒绝,看来她这个人,“信用”确实不怎么样。。。。

做噩梦

吃饭的时候,Mei和我说:我昨晚梦见我去逛JM (日本一家比较贵的女装品牌)了。

我回她:哦,我昨晚好像做噩梦了。

本来准备接着说做了什么噩梦,但是想了一下,发现不记得梦的内容了,于是灵机一动,接了句:好像就是梦见你去逛JM了。。。

继续折腾PiAware

之前一篇说到,在闲置的RaspberryPi上折腾了PiAware,到现在已经运行了快三周了。之前提到说原配的天线信号不好,可能要再折腾个更强大的。这不,上周末,我又折腾了一把,不过不是买了新的天线,而是将整套设备从客厅挪到了阳台上,虽然仅仅隔了一扇玻璃门,但是接收到的信号却强了不少,每天追踪到的飞机,几乎增加了20-30%。

上图中,前三天是室内,后五天是转移到阳台上以后的数据,可以明显得看到蓝色加深了不少(颜色越深,则代表接收到的信号越多)。

Woke up to this orange sky

早上醒来,被窗外的橙色的天空给惊到了,于是赶紧背上相机,去小区后面的公园拍了几张照。

看着眼前的一切,很不真实,像是走在火星上,又像是世界末日的感觉。奇怪的是空气又没有很差,不像前几天空气中弥漫着烧焦的味道。

至于这种天色的成因,专家是这样说的:

The ominous skies, experts said, were a product of the plumes of smoke billowing from the historic number of wildfires burning across the state. Wind conditions overnight pushed smoke into lower elevations, filtering sunlight and producing dark tints of red, orange and gray. Still, air quality remained mostly unchanged.

之前每年都有山火,但是今年特别厉害,刚到9月,已经超过了之前全年的过火面积;加之仍在肆虐的新冠病毒;连续几天40多度的高温;以及周六的地震,希望这些灾难很快会过去,一切平安!

My Olympus Gears

  • Olympus PEN E-PL2
  • Olympus PEN E-P3
  • Olympus PEN E-P5
  • Olympus OM-D E-M5 Mark II
  • Olympus M.Zuiko Digital ED 12-40mm f/2.8 PRO
  • Olympus M.Zuiko Digital ED 40-150mm f/2.8 Pro

未出镜的还有:

  • Olympus M.Zuiko Digital MC-14 1.4x Teleconverter
  • Olympus M.Zuiko Digital ED 9-18mm f/4-5.6
  • Olympus M.Zuiko Digital ED 45mm f/1.8
  • Olympus M.Zuiko Digital ED 12-50mm f/3.5-6.3 EZ
  • Olympus M.Zuiko Digital ED 40-150mm f/4.0-5.6 R
  • Panasonic Lumix G 20mm f/1.7 II
  • Panasonic Lumix G 14mm f/2.5 II

折腾WordPress的Media Library在迁移后不显示图片的故障

用WordPress自带的migration tool迁移到新服务器,会遇到这样的问题:虽然之前上传的照片都已经拷贝到wp-content/uploads目录下,但是在Media Library下,这些照片都无法正常显示,原因是有两张表的数据没有导过来:wp_posts和wp_postmeta。

搞了半天,才找出解决办法。

首先,在旧服务器,导出所有attachment类型的posts:

sudo mysqldump wordpress wp_posts --where="post_type='attachment'" > wp_posts.sql

导出所有与attachment有关的wp_postmeta记录:

sudo mysqldump wordpress wp_postmeta --single-transaction --where="post_id in (select id from wp_posts where post_type='attachment')" > wp_postmeta.sql

之后,将两个sql文件上传到新服务器,并导入对应数据库:

mysql -u root -p wordpress < /home/wp_posts.sql

mysql -u root -p wordpress < /home/wp_postmeta.sql

这个方法存在一个问题:导出的记录的id可能在新实例中的表里已经存在了,这就很麻烦了,一个办法是,在sql文件里手动改掉冲突的id;另一种就是放弃所有冲突的id(在sql文件手动删掉对应的脚本)。我在wp_posts里使用手动改id的方法,因为一共只有四五条记录冲突;而在wp_postmeta表,我采用了批量修改新插入记录的ID后导入。具体方法是,首先在新实例的数据库上执行

select max(meta_id) from wp_postmeta;
+--------------+
| max(meta_id) |
+--------------+
| 15840 |
+--------------+
1 row in set (0.00 sec)

找出当前wp_postmeta表最大ID,然后用文本编辑器打开wp_postmeta.sql,查找”),(“,替换为”),(15840+”,也就是在原ID的基础上自增15840,以保证新ID不存在。当然,脚本第一条记录由于不符合”),(“的格式,所以需要手动修改为(15840+”。完成以后,放到服务器上导入,问题顺利解决。

继续折腾:Piwigo相册

前阵子,趁迁移blog的机会,把计划了很久的相册给建了起来。最早用的是Flickr的免费相册,无限容量,而且画质优化也特别棒,可是几年前,免费用户的容量被限制到了1000张照片,远低于我希望管理的照片数,所以就慢慢地放弃了Flickr。之前也试用过其他一些免费云端相册,总有这样那样的限制,还用了一阵子QNAP自带的Photo Station,始终没法习惯他的管理模式,所以也放弃了。

这次试用了一下selfhost的Piwigo相册,出人意料的满意。Selfhost意味着可以为所欲为,不用为容量或者照片数量担心,于是便慢慢的将自己过去几年拍的一些照片,传到了Piwigo里。经过一个月左右的摸索,感觉已经达到了一个比较理想的状态了。

Piwigo的相簿管理非常简单,而且支持子相簿,相簿的封面照片可以自选。同时,每张照片都能看到拍摄时的exif信息,并且支持添加GPS坐标(如果拍摄时自动添加了坐标,则无需手动添加),并显示在地图插件上。

另一个比较有意思的功能是Piwigo支持标签功能,每张照片可以添加多个标签,便于管理。比如我,就创建了彩虹、瀑布、极光、野生动物、湖面倒影的几个标签,方便检索同一类型的照片。

不过,我平时管理的照片,基本都是用相机拍摄的,然而每次出游,Mei都会用自己的手机拍不少照片,其中也不乏一些蛮有意思的作品,我现在还没想好该用什么样的一种方式去管理这些相片。

Raspberry Pi – 继续折腾FlightAirMap

PiAware最大的问题是没办法记录曾经检测过的飞机,于是我又开始折腾起了功能更强大的FlightAirMap

安装过程

Install git, mariadb, apache and PHP with needed modules:

sudo apt-get install git mariadb-server apache2 php5 php5-curl php5-mysql php5-gd php-pclzip

Or this on Stretch:

sudo apt-get install git mariadb-server apache2 php7.0-common php7.0-cgi php7.0-mysql php7.0-curl php7.0 php7.0-xml php7.0-zip php7.0-gd php7.0-json

Get FlightAirMap from git:

cd /var/www
sudo git clone --recursive --depth=1 http://github.com/ysurac/flightairmap

Edit Apache conf /etc/apache2/site-available/000-default.conf, add this in VirtualHost section:

<VirtualHost *:8088>
        ServerName 192.168.68.128/flightairmap
        DocumentRoot "/var/www/flightairmap"
        <Directory /var/www/flightairmap>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>

Enable mod rewrite:

sudo a2enmod rewrite

Restart apache2:

sudo service apache2 restart

Fix permissions:

cd /var/www/flightairmap
sudo chmod 666 require/settings.php
sudo chmod 777 install/tmp
sudo chmod 777 data

Create database and user, may skip if already created:

mysql -u root -p
update mysql.user set password=password('YOUR_DB_PASSWORD') where user='root';

Then:

CREATE DATABASE `flightairmap`;
GRANT ALL ON `flightairmap`.* TO 'youruser'@'localhost' IDENTIFIED BY 'yourpass';
FLUSH PRIVILEGES;

Now use your browser to go to http://127.0.0.1/install/ (or ip of your server) Run scripts/update_db.php in a shell.

cd /var/www/flightairmap/
php scripts/update_db.php

Add FlightAirMap service:

sudo cp /var/www/flightairmap/install/init/flightairmap.service.systemd /etc/systemd/system/flightairmap.service

Alter paths to match your path, may skip i no change to the installation folder:

sudo nano /etc/systemd/system/flightairmap.service
sudo chmod 644 /etc/systemd/system/flightairmap.service

Then you can run flightairmap daemon:

sudo systemctl enable flightairmap.service

Add update_db.php in /etc/crontab:

sudo 5 * * * * root php /var/www/flightairmap/scripts/update_db.php >/dev/null 2>&1

运行效果: