pig's diary

何でも忘れるので万年初心者ね

HASURA、AWS AppSync - GraphQL PaaS比較

あくまで現状の理解です。加筆、修正すると思います。 HASURA GraphQL PaaS DBにテーブルを作るとQuery/Mutationエンドポイントを自動生成するスタイル Actionsは独自エンドポイント。スキーマを拡張し、HTTP経由で処理する。AWS Lamda相当を自前で用意する…

Lerna で webpack を内包したパッケージを開発する際の注意点

Next.jsは、webpackとwebpack.configを内包し、自身のソースをエントリポイントにして起動する風変わりなnpmパッケージである。非常にレアなケースで、多くの人がその気を起こすことなく一生を終えるケースだと思うが、私は同様のパッケージを作ってみたくな…

Certbot / Let's Encrypt

https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx メモ Let's Encrypt は認証局 Certbotを、ドメイン登録したWebサーバで実行すると、SSL証明書を発行してくれる 期限が90日と短いため、cronで自動更新する想定 参考: https://www.slideshare.net/…

SSLはどう安全か

> SSLの仕組み https://cspssl.jp/guide/ssl.php SSLの大きな特徴は「通信対象の真正性の確認」「通信内容の暗号化」「改ざん検知機能」の3点です。 主に暗号化について知っておく。 共通鍵暗号と公開鍵暗号 https://cspssl.jp/guide/key.php 共通鍵暗号 ク…

Docker おぼえがき

Be careful it's optimized only for me so the format probably doesn't make sense to you. Docker Build docker image without cache with a Dockerfile of the current directory with a name identiproxy with a tag 0.1 docker build --no-cache -t id…

Redisのおぼえがき

Tiny memo for my personal use of Redis. Be careful it's optimized only for me so the format probably doesn't make sense to you. About persistence Redis provides 2 types of persistence setting: RDB and AOF. RDB: Redis Database File. Stored …

Travis CI で WebdriverIO + Headless Google Chrome で E2E テストを通す

後述の参考の記事を組み合わせただけの簡単なお仕事。 .travis.yml --- sudo: required dist: trusty addons: apt: sources: - google-chrome packages: - google-chrome-stable language: node_js node_js: - "7" cache: directories: - node_modules - "$H…

Arch LinuxをUSBからインストールほか

安い中古PCを何台か買って、LANに繋いで遊んでみた。コモディティマシンで分散で何か。Intel Core2Duo が1800円で買えたので(送料1500円)いつもどおり Arch Linux を入れる。もちろん問題が起きる。メモをする。 USBフラッシュメモリをインストールメディ…

Elixirプロセス基礎

Processes - Elixir OTPの軽量プロセスはLinuxのプロセスとは違う、数百が同時に稼働するのも普通 プロセス同士の通信は send と receive で行われる send すると、対象のプロセスの"Mailbox"にメッセージが蓄えられる matchするとメッセージが消化される 例…

DHCPのLAN内で固定IPにする2つの方法

の覚書 クライアント側で設定する場合 クライアント側のインターフェースでDHCPでなく特定のIPを持つように設定する。サブネットマスク(255.255.255.0 や /24 など)、ゲートウェイ、DNS のIPアドレスが必要になる。 サーバへの作業が不要で楽だが、LAN内で…

systemd-networkd + wpa_supplicant でワイヤレスネットワーク接続

netctl で繋いでいたが、別のマシンで systemd-networkd での接続が比較的スムーズに行ったので、母艦の ArchLinux も systemd-networkd で管理することにした。netctl で接続したときはツールがいろいろ出てきて(wifi-menu, wpa_supplicant)、正直どうや…

Webページ表示直後にスタイルが当たらず画面が点滅するように見える現象

Flash of unstyled content - Wikipedia, the free encyclopedia http://stackoverflow.com/q/34615898/804314

IndexedDB調査

IndexedDBの動きを見てみた。特徴とおぼしき点を列挙する。 DBバージョンとマイグレーションのための機構を提供 JSONで表現できる型しか保存できない functionが生えてるとこける 主キー、もしくはマイグレーション(onupgradeneeded)で予めindexを作ってお…

`pointer-events:none;` で作る視覚効果

CSSで、視覚的には手前(z-indexが大きい)にあるんだけど、clickやmouseoverに反応しない(他の要素へのイベントを一切妨げない)要素、みたいの作れるんだろうか。画面の特定箇所をハイライトする目的で使いたい。— piglovesyou (@takamura_so) March 21, …

キーワードをハイライトできるテキストボックスをReactで作った

デモ github.com 山場 ハイライト自体は、contenteditable+keyup+el.innerHTML.replaceですぐに動く。問題はel.innerHTML = el.innerHTML.replace(...)したあとカーソルが先頭に戻ってしまうこと。これによりユーザーが入力し続けることができず、入力装置と…

MutationObserver/Mutation Events は孫DOMへの操作も検知するのか

MutationObserver/Mutation Events は、孫DOMへの操作も検知するのだろうか。Chrome48.0.2564.103 とFirefox44.0.2で検証した。 ※ざっくりした調査なのでご参考までに。 結論 MutationObserverは仕様にsubtreeオプションがあり、ChromeもFirefoxもこれを実装…

urxvt が unicode 記号を見つけるのに失敗

軽量ターミナル urxvt (rxvt-unicode) でチェックマーク(✓)が出てくれなかった。 失敗したときのフォント設定はこちら。 ! ~/.Xdefaults urxvt.font: xft:Ricty:Normal:size=14:antialias=true ✓ がでないと「ヨシッ」って気持ちになれないですよ。 rxvt F…

VirtualBox で VMDK 形式のディスク容量を大きくする

前提 VirtulaBox を使ってる vm のディスクが VMDK 形式だ(vm情報のストレージ項目 に "box-disk1.vmdk" のような拡張子のファイル名があったらそう) ディスク容量が足らなくなっちゃった ディスクをリサイズする VMDK形式を直接リサイズはできないようで…

Soy の boolean 評価はどうなってる?

基本的には JavaScript の boolean 評価にならっているようです。 /** * ここからレンダリングをスタート。 */ {template .soyweb} {call .myTemplate} {param myString: '' /} {param myBoolean: false /} {param myNumber: 0 /} {param myNullable: null /…

ブログの移転

ブログを引っ越してがんばり直します。 http://pig.hatenadiary.com/

ArchLinux の Wi-Fi 設定

Mac mini (Late 2012) にパーティション切ってArchLinux を入れている。Wi-Fi 設定の過程で試したことをメモしておく。-- 起動時に自動的にWi-Fi を探すよう加筆。 まず前提として、pacstrap などは Ethernet 経由で入れ、ネットに繋がるようにはしていた。a…

Solr を導入

Solr を導入しました。インストール先のサーバに合わせたディレクトリ構成です。 Ubuntu 10.04.3 LTS aptパッケージを使わず、自前で Solr を落としています。多少古くてもいいなら solr-tomcat や solr-jetty などのパッケージの利用を検討すべきです。 htt…

sed でマッチした行だけ標準出力する

マッチした行だけ出力するには -n オプションと p コマンドの両方が必要。 $ sed -n -e '/nobody/p' /etc/passwd nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false そもそも sed は、取り込んだ全てのデータを標準出力するデフォルト挙動がある…

arch, gnome, terminal, vim, tmux, clipboard setup

arch 入れた。gnome 入れた。ターミナルで vim 使う。* にヤンクする。クリップボードにコピーされない。悲しい。 $ vim --version ... -clipboard -xterm_clipboard ... コピーされそうな気配が無い。オプションを足して、コンパイルしなおす。 クリップボ…

iTerm, Vim, Solarized, command-t

MacVim.app と Terminal.app を交互に切り替えて使っていたけど、iTerm を使うと全画面でターミナル、Vim を表示できるらしい。 iTerm2 をインストール http://www.iterm2.com/#/section/home さて Vim を起動 :colorscheme solarized 色がなんか変。iterm …

マージャンのやつ JavaScript

あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 http://www.itmedia.co.jp/enterprise/articles/1004/03/news002_2.html ※トータルで1週間以上かかっているorz var assert = require('assert'); var test = function(results, answers) {…

Ti ヘッダ 取りにくい

検索クエリ「Ti ヘッダ 取りにくい」の方にのみお送りしております。私の場合 Titanium でHTTP 通信したくなった結果こういうことになりました。 気づいたことなど iPhone だと、getAllResponseHeaders できないらしい。(動きとドキュメント見た限り)だか…

WebDriverJs 〜果たされた約束〜

相変わらずSEO無視気味のうざいブログタイトルシリーズです。WebDriverJs というのがあって、SeleniumのJavaScriptドライバです。npm で簡単に入れられます。 $ npm install selenium-webdriver https://code.google.com/p/selenium/wiki/WebDriverJs WebDri…

PromiseとDeferredを表面的に実装してみた。

promiseにはpromise/A という小さなルールがあって、それに則って皆ライブラリを作っているみたいだけど、それはいいからとにかくthen したくなった。主に、promiseオブジェクトのありかたが本家を無視しています。promiseオブジェクトは、thenを一度しか呼…

苛烈!マングースは3度噛む

node.js のMongoDBドライバに Mongoose というものがあります。これの model.update 関数のコールバックの動きが分かりにくかったので、注意して様子を見てみました。まず、ネイティブのREPLの動きを再確認します。 $ mongo MongoDB shell version: 2.2.1 co…