IntersectionObserver でオフスクリーンの画像を遅延読み込みする

Posted on 2018/12/03 in tech • Tagged with javascript, seo

Google の PageSpeed Insights が新しくなっていた。

で、改善案の一つに Offscreen Images のセクションがあったのだけれど、こう書いてあった。

Consider using an IntersectionObserver to intelligently determine when to lazy-load offscreen images. For example, suppose you have some images at the bottom of a very long page. With an IntersectionObserver, you can load the images only when the user …


Continue reading

エックスサーバー(ローカル環境)にtmuxを入れる

Posted on 2018/01/08 in tech • Tagged with tmux, shell

参考

エックスサーバーでsshログインする際にtmuxがないので泣いた。

エックスサーバーはubuntuで動かしてるようだけど、当然レンタルサーバーはapt-getができない。

仕方なくローカル環境へtmuxを導入した際のメモ。


前準備(なくてもいい)

~/tmpで作業

mkdir ~/tmp
cd ~/tmp

依存ライブラリインストール

依存ライブラリも当然ローカル環境にインストールする必要がある。基本はconfigure実行時に--prefixオプションでインストール先を指定する。

libevent

wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar zxf libevent-2.1.8-stable.tar.gz
./configure --prefix=${HOME}
make …

Continue reading

ServersMan@VPS と さくらVPS ベンチマーク比較

Posted on 2017/11/08 in tech • Tagged with server

まずはServersMan@VPS の1Gプラン。OSはDebian。

ベンチマークスコアはこちらの当時2013年の計測結果より低い428.5。

こちらの2013年当時のスコアより低い…

VPS比較2017年版:ベンチマーク:お名前/さくら/Conoha/GMO/カゴヤ/Serversman/Vultr/WebArena/Digital Ocean

同じサーバーを使いまわしているのか、リソース制限を行っているのかわからないけれど 、作業用だったりする分にはさほど困らない。

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: localhost.localdomain: GNU/Linux
OS: GNU/Linux -- 2.6.32-042stab092.2 -- #1 SMP Tue Jul 8 10:35:55 MSK …

Continue reading

Debianサーバーで文字化け

Posted on 2017/10/30 in tech • Tagged with debian, linux, shell

日本語が化ける。

user@localhost:~$ locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

POSIXて。。

export LANG=ja_JP.UTF-8

なおった。

.bashrcに追記してめでたしめでたし


特定の文字列を含まないファイル一覧を取得する

Posted on 2017/10/09 in tech • Tagged with shell, perl

hogeとファイル中に記載されていないファイル一覧を取得したい。

ワンライナーで書けたのでメモ。

find . -name "*.html" -print0 | xargs -0 perl -nle '/hoge/ and close(ARGV) and next; print "$ARGV" if eof(ARGV);'

findでファイルを読み込む。 perlclose(ARGV)は現在読み込み中のファイルをクローズする操作で、ただ、クローズ直後はファイルポインタがEOFになっただけなので、nextしてループを次にすることで、次のファイルを読み込みに相当させる。Perlではループ終了のための構文はbreakではなくてlastだが、上記でnextじゃなくてlastを記述すると、プログラム自体が終了してしまう。

雑な解説。


GCPでプロキシサーバ設置squidの導入

Posted on 2017/07/30 in tech • Tagged with proxy, linux, gcp, ubuntu

Webサイトを別サーバーに移転してあるタイミングでサーバーにアクセスできなくなった。社内以外のネットワークだとアクセスできる模様…

結論からいうと、GCEのサーバに何度かsshログインに失敗すると、pingさえ通らないようになるらしい。(リセットすれば治る)

ただ、そのことに気づくまでにあれこれ試して、プロキシまでたてた。今となっては不要だけどメモだけ。

プロキシサーバ

squidを使ったよ

プロキシサーバの設置

以下プロキシサーバ側

構成

  • Google Compute Engine
  • Ubuntu 16.04 LTS

Ubuntu 大好き人間です。はい。

CentOSとかが無難なのかな、とか思いますが、グローバルなシェアでみるとUbuntuの方が今多数派らしい。

squidインストール

$ sudo apt install squid

設定

$ sudo vim /etc/squid/squid.conf

以下コメント。

...
# 1190行目
# http_access deny all
...
# 1599行目 …

Continue reading

【GAS】Gmailのメール受信をChatworkに通知

Posted on 2017/07/16 in tech • Tagged with gmail, chatwork, api, gas

zapierChatwork と連携していて便利。Gmailの特定メール受信時に、Chatworkへ通知させてみたら喜ばれた。

けれども無料プランだと

  • 月に100のタスクまでしか処理できない
  • 5つまでしか設定を保存できない

という制限がある。

人は無料だと喜ぶけど、有料になったとたんに「はん。まぁ、金払えば便利にはなるわな」となる。切ない。

とりあえず前者だけ解決したくて、今回GASで書いたときのメモ

理想的な流れ

Gmail 受信 → Chatwork API たたく→ Chatwork に通知くる

現実

GAS定期実行で新規メール確認→新規メール発見したらChatwork API たたく→Chatworkに通知くる

要するにバッチ処理で新規メールを確認して判定する。ただ、おもむろに1分間隔でバッチ走らせてたら夜にメールがきた。

Gmailからのアラート

泣いた。

ここ↓をよく読んでおきましょう

https://developers.google.com/apps-script/guides/services/quotas?hl=en

最終的に15分間隔くらいでバッチを回しました …


Continue reading

MySQL/MariaDBのバックアップ

Posted on 2017/06/06 in tech • Tagged with mysql, mariadb, db, shell

何度も調べてるのでめも

データベース内のすべてのテーブル

$ mysqldump -h host_name -u user_name -p database_name > dumpfile.sql

localhostなら-hオプションは多分いらない

テーブルを指定する場合

mysqldump -h host_name -u user_name -p database_name table1 table2 table3 > dumpfile.sql

圧縮もするなら

$ mysqldump -h host_name -u user_name -p database_name | bzip2 -c > dumpfile.sql.bz2
$ mysqldump -h host_name -u user_name -p database_name | gzip > dumpfile …

Continue reading

Let's Encrypt + nginx + Ubuntu

Posted on 2017/06/05 in tech • Tagged with ssl/tls, nginx, ubuntu

めも。殴り書き。

Let's Encrypt

https://letsencrypt.org/

環境

  • Ubuntu 16.04 LTS
  • nginx 1.10.0

一応確認

  • サーバーに対してドメインが振られDNSでの名前解決ができている
  • 80番ポートにアクセスできる

certbotの導入

$ cd /usr/local/bin
$ sudo git clone https://github.com/certbot/certbot
$ cd certbot
$ sudo ./certbot-auto certonly --standalone -t
  • 依存するライブラリを自動でインストールするか途中訊かれるので、yと入力。
  • メールアドレスの入力
  • (A)gree

あとはよくわからないこと聞かれる

Your account credentials have …


Continue reading

nginxでWordPress環境をつくった。気分的にMariaDBで。

Posted on 2017/05/31 in tech • Tagged with mariadb, db, wordpress, nginx

Google大好きなうえだです。

Googleが最近AWSに対抗してGCPに力入れてるみたいなので、わざわざGCPで構築した。

300ドル分無料で使えるのでお試しあれ。

環境

Google Compute Engine 上の ubuntu 16.04 LTS

timezoneの変更

AWSにしろGCPにしろサーバーのタイムゾーンを忘れないように。

$ sudo dpkg-reconfigure tzdata

日本なら Asia -> Tokyo を選ぶ。

install nginx

$ sudo apt update
$ sudo apt install nginx

とりあえず設定はあとで。

install php

phpは7系。

$ sudo apt -y install php php-cgi php-cli php-mysql php-gd php-apcu php-fpm php-pear php-xmlrpc php-mbstring php-mcrypt …

Continue reading