サイトのリンクをタイトル付きのマークダウンでコピーする

Posted on 日 20 1月 2019 in tech • Tagged with javascript, bookmarklet

ブログやメモは Markdown で書いてるし、Trello も Markdown をサポートしてる。

こうなると参考サイトとかの URL をよくタイトルでリンクにして使うことがあるのだけれど、いちいち

  1. URL をコピー
  2. タイトルを調べる
  3. Markdown に整形する ([タイトル](http://hogehoge.com) みたいなテキストにする)

とやるのがとても面倒だったので、ブックマークレットを作った。

ブックマークレットとは

ブックマークには http(s):// から始まるテキストだけじゃなくて、javascript: から始まる javascript テキストも登録できる。

javascript: から始まるブックマークは、クリックされたときに登録された javascript を実行してくれる。

これをブックマークレットという。

任意のテキストをコピーするスクリプト

何かのテキストをコピーするブックマークレットを作るとき、テンプレとして使っているソースがあるので公開。

(function() {
  var text = 'hogehoge'; // このテキストをコピーする

  // ブラウザ上の選択エリアをすべて解除する
  var selection = document …

Continue reading

ローカルのファイルを暗号化しながらリモートに保存する

Posted on 日 13 1月 2019 in tech • Tagged with encrypt, openssl, unix, shell

そもそも論

シェルを書くなら標準入出力ベースで考えるのがスマートだと思うのです。

極論いうと

$ cat hoge.txt

みたいなのは

$ cat < hoge.txt

と書こう、みたいな。

流石に cat でこんなことはしないけれど、

  • 読み込みは標準入力
  • 出力は標準出力

をベースとして考えるのが、シェラー1の道第一歩だと思うのです。

ローカルのファイルをリモートサーバに保存したい。

たまたまそれなりなサイズの嫁2動画ファイルが手元にあって、いいアーカイブ場所を探してたときに、いい感じに容量が有り余ってるレンタルサーバがあった。

......これはもう ここに置くしかない でしょう。

ただ、レンタルサーバというのは基本管理者(サービス提供者)が自由にアクセス・閲覧できるサーバである。 そこにプライベートなものを置くのは多少なり抵抗があるので、 暗号化したい

対象ファイル

ファイルというかディレクトリ。ビデオカメラで撮影したデータを SD カード経由で取り込み、 そのままのディレクトリ階層で保存したい

ここでは単純に hoge,foo,bar の 3 つのディレクトリを保存することを考える …


Continue reading

Isso でブログにコメント機能を導入する

Posted on 日 06 1月 2019 in tech • Tagged with blog, docker, oss

このサイトは最近 Pelican で作成したものに置き換えたのだけれど、 Pelican は静的サイトジェネレータなので、当然ながらコメント機能がついていない。

動的なコメントには Disqus を使えと書いてある のだが、Disqus はいきなり広告を出し始めて反発を買った とか。広告は上位のサイトだけとか、個人利用なら表示されないようだけれど、そういう不安の種は抱えたくない。

代替案

前提として、VPS があるので自前ホスティングでもよかった 3 つくらい良さそうなのを見つけた

Commento

Commento はデモ画面に惹かれた。

一度導入してみたのだが、無料の CE プランの場合コメントが投稿されたときの通知機能が使えない という致命的な問題がある。

スクリプト仕込んで自前の通知をつくってもよかったが、そこまでしたくない。

Staticman

Staticman は Github 上にコメントファイルをホスティングするという エンジニア的にはナイスな発想でコメント機能を提供している。

仕組みとしては、

  • コメント管理したいリポジトリのコラボレータに staticmanapp を追加する
  • コメント投稿時の POST リクエストを Staticman の …

Continue reading

Intersection Observer で実現する Lazy Load

Posted on 月 03 12月 2018 in tech • Tagged with javascript

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 月 08 1月 2018 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 水 08 11月 2017 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 月 30 10月 2017 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に追記してめでたしめでたし


Continue reading

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

Posted on 月 09 10月 2017 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を記述すると、プログラム自体が終了してしまう。

雑な解説。


Continue reading

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

Posted on 日 30 7月 2017 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 日 16 7月 2017 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分間隔くらいでバッチを回しました。

用意するもの

  • Chatwork API …


Continue reading