読者です 読者をやめる 読者になる 読者になる

やはり俺の AUTO INCREMENT を含むテーブルに対するリソースに PUT を使うのはまちがっている、または HTTP PUT の冪等性と AUTO INCREMENT の相性が最悪な件について (あるいは私が PUT を諦め POST を使うまで)

3行で伝える代わりにタイトルで説明してみた (親切心)。 (2016/07/30 2:45 追記) ちなみにコメント欄で指摘頂いた通り、今回問題視した PUT の設計も冪等と言えます。 私の冪等性の理解が間違っていたので、以下の冒頭の項目で説明する PUT の設計が RESTful…

CSS3 アニメーションで猿 (2)

昨夜ちょっと CSS いじったせいでまたサルを動かしたくなった。 という訳で前回に引き続き、ブログ上部にある怪しげな Vim アイコンをクリックするとサルが動き出すようになります。 注意:もう一回動かしたい時は2回クリックしてください。 昨日夜遅くまで…

最近読んだ漫画 (と CSS で感想の表示・非表示を切り替えてみるテスト)

あまり人に漫画を勧める時に感想って言いたくない。 けど自分はしょっちゅうブログのデザインを変えるので、単純に背景色と同じにするだけだとテーマを変えた場合に隠したはずの文章が見えてしまう。 それはあまりにもあんまりなので、CSS で感想の表示・非…

setInterval() を requestAnimationFrame() に変えてもカクカクさせない方法

前提知識 まず requestAnimationFrame() は setInterval() と同じで定期的にコールバックを実行する API。 アニメーションを実装するなら知っておきたい「requestAnimationFrame」の使い方 | 株式会社LIG HTML5 で、コンピューター ハードウェアをより効率的…

現代的な React の書き方へのリンク

React 初心者を対象とした記事です。昨日の記事からの続き。 React、Redux、D3を用いたアニメーション | プログラミング | POSTD class App extends Component { ... } ってなんだろ React v0.13.0 Beta1でclassでComponentが作れるようになった - blog.koba…

React 入門以前 (Windows で環境構築)

犬さんにいろいろ教えてもらった。 @Linda_pp さんて今 TypeScript + React で NyaoVim とか書いてる感じですか?今 ES6 と TypeScript どっちがいいかなぁと思ってるのですが…— tyru (@_tyru_) June 24, 2016 @_tyru_ はい,型チェックがほしい+豊富な型定…

JavaScript でスマホから気軽に遊べる糸通しゲーム作った

糸通し たまにものすごくやりたくなる。 ちょうど HTML5 Fullscreen API で遊びたいと思ってたので作った。 最初データはランダムじゃないけど一通り動くところまで作ったあと一旦興味を失ってしまった。 ので、そこからちゃんと遊べる状態にするまでずいぶ…

Protractor + WebDriver で楽天銀行と Gmail にログインして入出金明細を保存

motemen.hatenablog.com 上記のリポジトリに Pull Request を出させてもらった。それがこちら。 github.com (Gmail等に) IMAP でログインしてメールを監視 楽天銀行にログインしてワンタイムパスワードのメールを送信 ワンタイムパスワードが書かれたメール…

人は天啓を得ないと一日以上に渡る自己学習をすることは難しい

気がする。 例えば「セキュリティのこと勉強しよう!」とか「数学を勉強しなおそう!」とか思って継続的に続くことってあんまりない。 この例は毎日の仕事や趣味とかでやってることと全く違うことだから尚更なんだけど。 だから数時間でできることを継続的に…

Angular で「Error: 10 $digest() iterations reached. Aborting!」というエラーが出る時の対処法

最近 Angular で調べたことを週末に記事にして上げるサイクルになりつつある。良い傾向。 あと説明する時につっかからずに説明できたりするので、自分で調べてまとめて人に教える重要さをひしひしと感じる… なので最近は「書かなくても分かるやろ」ってとこ…

Angular での単体テスト、E2E テスト、バックエンド無しの開発について

Jasmine による単体テスト Jasmineのみを使用したAngularJSのテスト - Qiita Karma (テストランナー) によるテスト実行の自動化 Jasmine 単体でもブラウザからテスト実行できるが、わざわざアクセスして確認するのが面倒な場合は Karma を使う。 コマンドか…

私、普通のVimmerに戻ります

Vim

頭のおかしいいつも通りのヨタ話です。半分ネタです。 もう限界です。 プラグインを入れたり作ったりしてプラグインが増えていき、気が付くと Core i3 4130 3.4 GHz, メモリ 16G の PC にもかかわらず Vim が起動するまで3秒ぐらい掛かるようになってしまい…

空白のページに遷移してしまうバグと格闘した (Chrome の開発ツールに助けられた話)

原因 (一行で) <a href><img src='...' ng-click='...'></a> と書いていて (href が空のため) 空白のページに飛んでいただけだった(ズコー ng-router + html5mode(false) を使ってるなら href で (#... 以外のリンクに) 直接飛んだら otherwise は素通りされる *1 *2 なので遷移はちゃんと $location 使え…

Angular でハマった時に試すこと

(JavaScript, Angular) 初心者の人も含めたメンバーに言ったことをまとめた。 フロントエンドエンジニアには当たり前のことだったり、あと今のプロジェクトで Angular 使ってるってだけで Angular あまり関係ない。 何はともあれコンソールにエラーが出てい…

Windows 10 で WebDAV をマウントしようとした時、ホスト名が . (ドット) 入りの URL にしないとマウントできなかった(あと Windows でアップロード上限有り)

自分は Linux サーバでは domainname 設定してなかったので DHCP で domainname を配布するようにして、 Windows 10 でも参照できるように DNS レコードを .lan 付きのものにした。 全体で言うとこんな感じ。 (DNSサーバ) レコードは hogeserver.lan で引け…

davfs2 の キャッシュディレクトリを tmpfs にしたら大きいファイルのコピーがエラーになった

以下、最初はベンチマークとってみたって記事にしようと思って書いた文章です。 あと以下の記事の続きです。 tyru.hatenablog.com スペック ちなみに http (not https) です。over SSL だったらもっと違うかも。 そんな真面目にベンチマークやるつもりなかっ…

mount.davfs でハマった (fstab でマウント失敗、一定時間後にファイルが消える)

サーバ:CentOS 7 + Apache クライアント:davfs2 でマウント しようとしてみた。 /etc/fstab に _netdev 忘れてた _netdev を付けないとオンラインになるまで待たずにマウントしようとして失敗する。 http://hogehost/webdav/ /mnt/dav davfs rw,user,uid=p…

コンポーネント指向は CSS の局所性を保証しない

大げさなタイトル付けたけど中身はただの日記です。 CSS の局所性の定義とは… 今日仕事で Angular でコンポーネント指向のアプリを書いていて、 あるコンポーネントに含まれる透明の div に z-index が指定されていて、その div が他のコンポーネントの領域…

ファイルサーバの OS 再インストールをした

ゴールデンウィークの時に書いた記事*1を少し修正して公開。 ファイルサーバを2台所有していてその2号機の HDD が1基壊れた ので転がっていたスペア*2の HDD を交換したらほんの少しサイズが違っていて RAID が組めなかった*3 それに加えてファイルシステム…

Angular Tree Control で Explorer っぽいツリービューを表示して遅延ロードする

ふと必要になって Angular Tree Control というツリービューを表示できるライブラリを使ってみた。 遅延ロードがしたかったので本家 issues を漁ってみたらisLeaf を使えばできるよと書いてあったのでやってみた *1。 説明に余計なコードは省いたバージョン …

画像なしでローディングアイコン (Angular コンポーネント)

tyru.github.io CSS3 アニメーション楽しい。 Angular コンポーネント (追記) 書き忘れた。 ちなみにタグはコンポーネント化したので、以下の URL の場所に置いて /component/tyru-loading-icon /component/tyru-loading-bounce-icon それぞれの .js を読み…

CSS3 アニメーションで猿

プロフィール画像のホバーか上部の Vim の画像をホバーしてみてください。 ※注:PC のみです。モバイルやタブレットには対応していません

印刷用ページの CSS 5つのコツ

がスタイルシートスタイルブックに書いてあった。 CSS がまだまだ発展してない頃の古い書籍なので不要な記述はたくさんあるけど、「印刷用ページの CSS を作る上で考えるべきこと」はまだまだ通用するはず (しなさそうなのもあるけど)。 必要ないものは消去…

「Web制作者のためのCSS設計の教科書」を読んだ

久しぶりの本読んだエントリ。 大体こんな感じの事が書いてある すごーく端折ってます。詳しくは目次参照。 CSS 設計 具体例 Sass やその他のツール WebComponents 本文 CSS 設計とかロクに考えてこなかったレベルだったので一気にレベルアップできた(気がす…

MSYS2 での Vim のビルド

Vim

「TODO」の lua.exe が実行できない件は解決してないけどまぁとりあえず実害は出てないし何より解決するやる気が無くなってしまったので公開。 # Lua のインストール curl -O http://www.lua.org/ftp/lua-5.3.2.tar.gz pacman -S tar tar xzf lua-5.3.2.tar.…

Vim script での依存ライブラリのバージョン管理について (vital.vim が生まれた経緯とこれまでのあらすじ)

Vim

何となく自分の考えを整理するためにつらつら書いた。 Vim プラグイン開発者にとっては目新しい情報はないかもしれないけど、vital.vim の最近の動向を知りたい人や、これから Vim プラグイン作りたい人にとっては有用かもしれないと思ったので公開してみる…

skk.vim と eskk.vim でデフォルトのマッピングを上書きする方法

Vim

skk.vim や eskk.vim ではデフォルトで多くの言語モードマッピング(:lmap,:lnoremap)を行うため、ユーザーが vimrc で追加したインサートモードやコマンドラインモードでのマッピングを覆い隠してしまう問題があります。 skk.vim でも eskk.vim でもこの問題…

Angular 1.5 でコンポーネント指向で書いてみた時の所感

今仕事でも Angular 1.5 を使っていてコンポーネント指向でアプリを作ってみた結果、例えば Java で Web アプリを作る時に比べて特定スコープごとの値を入れる場所が足りないと感じた。 当たり前だけど、下記で話しているデータは localStorage 等に入れない…

このブログのポリシーについて

日々の出来事や、何か物事を整理したりする時(プログラミングや仕事の事も含まれる)、私は日記ブログに書いている。 けど、たまに筆が乗ってこのブログで公開したくなったりする。 前記事はそんな記事の一つ。 折を見てそんな記事もこちらに書いていきたい。

箸という古くて新しい道具

Vim

私は私生活がダラけきっており、箸を洗うのが面倒なため普段の生活から割り箸を使っている。 買ってるのも安い割り箸なので、ちょっと力を入れただけですぐ折れてしまう。 なので折れないようそっと使っている。 箸とVimは似た所があると思った。 箸は言って…

Software Design 5月号の Vim 特集に記事を書きました

Vim

gihyo.jp Software Design 5月号の Vim 特集に一筆参加させて頂きました。 自分は正規表現について書きました。 なぜ正規表現か 職場によっては (職場指定のソフトウェアしか使用できないルールがあり) Vim を使うことを禁じられている、または (Linux サー…

VimプラグインのGitHubでのブランチ運用について (2)

Vim

tyru.hatenablog.com またもや上記記事からポリシーを変更することになった。 ブランチの運用についての点で、feature や fix には当てはまらない変更はどういうブランチ名にすればいいか?というのが分からなかったので、もう PR に「[New] Add xxx feature…

VimプラグインのGitHubでのブランチ運用について

Vim

Vim プラグイン は Git flow 的なブランチ運用した方がいい気がしてきた - Humanity 上記記事から半月程経過したので現状のブランチの運用についてさらに考えをまとめる。 あとこの記事を書いてる途中、現在の運用について不要な労力を割いている箇所が見つ…

Vim プラグイン は Git flow 的なブランチ運用した方がいい気がしてきた

Vim

理由 しばらく手元で試してマージできる devel ブランチには push してるのでリポジトリが失われる心配をしなくて済むので精神衛生上良い いざとなったら誰かに試してもらえる エラーとかが発生した際にどこから問題が起きたか分かりやすい Gitに詳しくない…

全く履歴が被らない (別リポジトリとかの) ブランチ同士を無理矢理マージ

@_tyru_ それ、履歴上はマージになってないのでは?— MURAOKA Taro (@kaoriya) 2016年2月29日 仰る通り、「マージ」とタイトルに書きましたが、履歴上は全くマージになってないです。 単にブランチのファイルを丸ごと上書きしただけです。 そもそもこんな状況…

KDE のランチャーが .bash_profile で変更した PATH 等を見てくれない

.xprofile から source ~/.bash_profile すればOK。 このファイルを作った事自体忘れてた。 これで自前ビルドした Vim をランチャーから起動できるようになった。 参考リンク make path environment set in .bashrc available in krunner • KDE Community Fo…

Vim runtime で必須そうなファイルを調べてみた

Vim

@todesking 必須そうなの選別しました。ご査収ください (Vim 本体のソースコードからこれらのファイルのみ持ってきて $VIMRUNTIME 環境変数セットすればいけそう) https://t.co/OhumjyeU10— tyru (@_tyru_) February 22, 2016 Vim runtime files (at 7.4.138…

Vim のビルドスクリプト

Vim

tyru.hatenablog.com どうしても最新版を使いたい派ではないので、これまで ArchLinux で落ちてくる Vim (7.4.1190) で満足していた。 しかし次期リリースのために活発に実装されている job や channel を使いたいのでふと最新版が欲しくなった。 リポジトリ…

Vim script でメニューを追加&日本語化する際のノウハウ

Vim

restart.vim と open-browser.vim で 日本語化されたメニューを提供しているのですが、メニューは無効化していたり使わない人も多く、あまりノウハウが Web 上に無いのでここに記載しておきます。 目次 メニューを追加するタイミング メニューを追加するかど…

Perl で $HOME 以下にモジュールやコマンドをインストールして使用するための環境変数の設定

dlnico.plを久しぶりに更新した - Humanity 上の記事にもちょろっと書いたんですが、Perlで cpanm のデフォルトインストール先を $HOME にする perl コマンドでインストールしたモジュールを使用できるようにする cpanm コマンドでインストールしたモジュー…

My interview on "How I Vim"

Vim

howivim.com (日本語版はこちら) Recently, I wrote one blog entry which is an interview from How I Vim, also mattn and Shougo wrote. It has a little bit too large amount of information because I wrote about various things, of what I haven't …

How I Vimからのインタビューを受けました

Vim

howivim.com (English version of this post) mattnさんやShougoさんも受けたと言うHow I Vimからのインタビュー記事に私も参加させて頂きました。 日本語でもあまり書いてこなかった事も詰め込んだので、けっこう情報量が多くなってしまいました… ただ日本…

Vimのメタデータリポジトリに関する議論とその落穂拾い

Vim

昨日はVimのメタデータリポジトリに関してShougoさんとめっちゃ有益な議論ができたと思う。 ので、以下でその落穂拾いや言い忘れた事について補足します。 参照リンク vim-jp – Lingr Vimプラグインのメタデータリポジトリについて話し合いましょう · Issue …

おすすめbotを自分のURLで動かしたくてRuby 2.0.0 + PostgreSQL環境整えたり今更Herokuデビューしたりしてた

LingrのVim部屋でいつも頑張っておすすめしてくれているのでちょっといじったりしてみたくなった。 あとHerokuもいい加減触りたかったのですでに動いているHeroku appを別のURLで動かしてみた。 環境 OS: Arch Linux herokuコマンド入れた 最初は https://au…

AppVeyorでVimプラグインリポジトリのCIを回す

Vim

AppVeyorでのVimプラグインのテストについてはid:thincaさんの記事が素晴らしくまとまっています。 Vim プラグインを Windows 環境でテストする - 永遠に未完成 しかし、上記記事だけではいくつか動かない点があったのと、 Web画面からではなくリポジトリにa…

GoogleとGitHubを二段階認証に変更した

Gmail乗っ取り対策!2段階認証プロセスで、Googleアカウントを死守する手順 GitHubで二段階認証に変更する - Qiita Googleのアプリ固有のキーを生成する場合は以下のページで行う。 https://accounts.google.com/b/0/SmsAuthSettings#devices https://securi…

ssh-agentの設定

つい最近GitHubを二段階認証に変えて、git pushがSSHのURLでないと出来なくなるらしいのでssh-agentの設定をいい加減設定することにした。*1 結局色々参考記事を見てみたけど、expectでキーを追加することにした。 これならSSH_ASKPASSにexpectスクリプトを…

最近のVim関連の活動状況

Vim

送ったPull Requestやissuesは管理しきれなくなって投げたことを忘れるのでRedmineで管理することを覚えました。 なんでGitHubのPublic Activityは30件ぐらいしか遡れないんだろう… 作ったプラグイン tyru/share-cmdline-history.vim GitHubの1行説明:Share…

AngularJSメモ

最近仕事でAngular.js(1.x)を使っていてさっとページを作れるのが楽しい。 SPAアプリ*1はずっと前、インフラエンジニアだった頃に毎朝送られてくるsyslogを解析するHTMLページを(prototype.jsで)作った記憶があるのだけど、その頃にAngularがあればかなり早…

SKK辞書のsyntaxファイル(skkdict.vim)はeskk.vim、skk.vimのリポジトリに含まれなくなりました

Vim

表題の通り、SKK辞書のsyntaxファイル(skkdict.vim)はeskk.vim、skk.vimのリポジトリに含まれなくなりました。 理由は、SKK辞書を直接編集するユーザは少ないはずで、そのSKK辞書のsyntaxファイルを skkdict.vim、skk.vim、eskk.vimそれぞれのリポジトリで変…