タグ

ブックマーク / thinca.hatenablog.com (54)

  • Travis で並列テストが終わってから deploy する - 永遠に未完成

    Travis では複数のジョブを並列で実行できる。複数の処理系のバージョンでテストを回したりするのはよく行われている。 また、Travis は後処理でデプロイも行える。専用の設定をする項目があり、一部の有名所のデプロイ先については雛形が用意されていてオプションの項目を埋めるだけだ。 私は今まで Travis から https://www.npmjs.com/ へ npm パッケージをデプロイする設定をしていたのだけど、普通に設定しているだけだと並列で実行されている全てのジョブがデプロイを実行するので、多重デプロイが発生していることに気付いた。 幸い www.npmjs.com は同じバージョンのデプロイをエラーとして弾いてくれていたのでデプロイ自体は問題なく行われていたが、いかんせん無駄だし、気持ち悪い。また、この設定だと一部のジョブでテストが失敗しても、どれか1つが成功してしまえばデプロ

    Travis で並列テストが終わってから deploy する - 永遠に未完成
    oppara
    oppara 2018/10/02
  • Docker Hub で Vim の最新版をタグ付きで自動ビルドするようにした話 - 永遠に未完成

    今まで Docker Hub 上で最新の Vim のビルドが行われるように設定していたが、ふと思い立って過去のバージョンについても一通りタグに残ってると良さそうだと思って設定した際の記録。 ちなみにこの作業を開始したのは 2018 年 1 月です。どんだけかけとるんだ。 作業前の状態 Docker には Build Trigger 機能があり、URL を叩くことで任意のタイミングでビルドを走らせることができる。 この機能を使い、IFTTT の RSS Feed サービスで Vim のコミット Feed を監視して、新しいコミットがあった際にトリガーを実行し、Webhooks サービスを使って DockerBuild Trigger の URL を叩くことで、latest が常に最新の Vim のバージョンになるようにしていた。 これだと常に最新版の Vim のイメージは作られるが、過

    Docker Hub で Vim の最新版をタグ付きで自動ビルドするようにした話 - 永遠に未完成
    oppara
    oppara 2018/07/09
  • ssh 越しにクリップボード共有したり URL 開いたりする lemonade の便利設定 - 永遠に未完成

    私は普段は Windows マシンから自宅サーバの Linux に ssh で接続して作業しており、端末内で作業が完結している間はいいのだけど、Web ブラウザはローカル側なので、URL を開いたりクリップボードのやりとりなどが面倒。 そこで便利なのが lemonade! GitHub - lemonade-command/lemonade: Lemonade is a remote utility tool. (copy, paste and open browser) over TCP. ssh 越しから URL を飛ばしてローカルでブラウザを開いたり、リモート側からローカルのクリップボードの読み書きができる。便利。 lemonade を使う上であれこれやったのでメモ。 port forwarding lemonade 作者の pocke さんはローカルマシン内で動いている仮想環境との

    ssh 越しにクリップボード共有したり URL 開いたりする lemonade の便利設定 - 永遠に未完成
    oppara
    oppara 2017/06/12
  • ElixirConf Japan 2017 に行ってきた - 永遠に未完成

    ElixirConf Japan 2017 に行ってきたよ。 最初に書いておくと、私は Elixir に関しては全く書いたことがなく、Erlang についても遥か昔にちょっとだけ触って、今は忘却の彼方という感じ。 さすがに行く前にチュートリアルくらいやっておくか、と思ってたのだけど、結局時間が作れなくてできずじまい…。 何しに行ったんだよ感がすごいけど、まあ色々と縁があったのでお邪魔しました。 感想を書くけど、こういうレベルなので適当なことや的外れなことを書いてると思う(いつものこと)。 (あと特に後半はバッテリー切れによりほとんどメモが取れてないので記憶がやばい。) 「Opening Keynote」 by José Valim Elixir とはどういった言語なのか、その歴史と、未来の話、だと思う。たぶん。 ゆっくりしゃべってくれて聞きとりやすいと評判の英語だったけど、基的なリスニン

    ElixirConf Japan 2017 に行ってきた - 永遠に未完成
    oppara
    oppara 2017/04/05
  • Vim 8.0 Advent Calendar - 永遠に未完成

    この記事は 2016 年 12 月に Qiita 上で行われた Vim 8.0 Advent Calendar を 1 つにまとめたものです。 目次 前書き Vim 8.0 Advent Calendar 1 日目 関数機能の強化 Partials ラムダ クロージャ 2種類の関数参照 Vim 8.0 Advent Calendar 2 日目 チャンネル チャンネルを使う チャンネルのモード その他のメッセージの読み書きの方法 ch_sendexpr() ch_sendraw() ch_read() ch_readraw() ch_evalexpr() ch_evalraw() Vim 8.0 Advent Calendar 3 日目 ジョブ ジョブを使う ジョブのオプション モード 標準入出力の接続先 コールバック その他 ジョブを制御する ジョブを停止する ジョブの状態や情報を得る V

    Vim 8.0 Advent Calendar - 永遠に未完成
    oppara
    oppara 2016/12/31
  • Google の Vim script Guide について言っておきたいこと - 永遠に未完成

    この記事は Vim Advent Calendar 2014 の 25 日目の記事です。 Google が、様々な言語に対する自社内でのスタイルガイドを公開しているのはご存知でしょうか。C++ のものや JavaScript のものなどがあり、この辺りは割と有名かと思います。 では、Vim script のものがあるのはご存知でしょうか? Google は、Vim script について、2 つのガイドを公開しています。 Google Vimscript Style Guide Google Vimscript Guide 前者がカジュアルユーザー向け、後者がヘビーユーザー向け、といった位置付けのようです。さすが、Google がまとめているだけあって、なかなかポイントを抑えています。 ただ、これはあくまで Google が社内向けに作ったもの。鵜呑みにしてはいけない、もしくは、一般の人が

    Google の Vim script Guide について言っておきたいこと - 永遠に未完成
    oppara
    oppara 2016/07/02
  • カラースキームに個人的に求めるもの - 永遠に未完成

    最近 Vim のカラースキームの自作に関する記事をちらほら見かける。 私自身も最近、いいカラースキームないかなーと探していたりするので(作る気は皆無)、私が探す際のポイントなんかを書いておく。 ちなみにこの記事では主にカラースキームの機能面についてのみ言及する。 配色に関しては私はセンスがほぼないので、色について完全に感覚で選んでいて参考にならない。 一通りの色が定義してある 最重要項目なのだけど、できていないものが多い。個人的には全て設定されていてほしい。 大きく分けて Vim 自身が使う部品のハイライトと、テキスト内の構文ハイライトで使うものがある。 前者の一覧は :help highlight-groups で見ることができる。この記事を書いている時点での最新版である Vim 7.4.1639 では以下の 45 個だ。たまーに体への機能追加で増えるので、注意したい。 *hl-Col

    カラースキームに個人的に求めるもの - 永遠に未完成
    oppara
    oppara 2016/03/24
  • Minecraft サーバ Spigot のプラグインを Kotlin で書いてみたときのメモ - 永遠に未完成

    個人の作業メモになるので、内容の保証は一切できないけれど、誰かの参考になれば。 各レイヤーで何をやっているか知りたかったので、低レベルなところをコマンドラインでやってみている。 実際に開発する場合はもうちょっとちゃんと環境を整えた方が良いように思う。 私自身そんなに詳しいわけではないので突っ込み歓迎。 環境 Gentoo Linux Java 1.8.0_74 (dev-java/oracle-jdk-bin) Spigot 1.9 Kotlin 1.0 このメモの手順通りに作業した場合には以下のようなディレクトリ構造になる。 . |- kotlin (Kotlin コンパイラ) |- kikori-plugin (木こりプラグイン) |- kotlin-plugin (Kotlin サンプルプラグイン) |- hello-plugin (Pure Java サンプルプラグイン) |- s

    Minecraft サーバ Spigot のプラグインを Kotlin で書いてみたときのメモ - 永遠に未完成
    oppara
    oppara 2016/03/15
  • 全角スペースを可視化するプラグイン zenspace.vim を作った - 永遠に未完成

    プログラミングをしていると、混ざっていると困る全角スペース。 可視化するように設定を書いている人も多いんじゃないでしょうか。 実際ググると、全角スペースを表示するための設定がたくさん出てきます。私も vimrc に設定書いてました。 でもこれ…みんなやってるなら、もうプラグインでよくない? ってことでプラグインにしました。 zenspace.vim - Show Ideographic Space (a.k.a. Zenkaku Space). https://github.com/thinca/vim-zenspace 全角スペースを表示するためだけのプラグインです。(画像内のタブの表示は 'listchars' によるもの) デフォルトでは 'list' オプションの値に連動して、可視/不可視を切り替えます。なので、'list' オプションをオンにしてください。 set list 'l

    oppara
    oppara 2016/02/14
  • Vim script で AtCoder に参戦する方法 - 永遠に未完成

    先週、進捗キャンプという知り合いで集まって進捗を出す会に行ってきて、そこで @haya14busa さんと表題の件について色々話した。 その後個人的に手法をカイゼンしたりしたので、結果をまとめておく。 AtCoder とは http://atcoder.jp/ 私自身も「とは」と言って語れるほど詳しくはないので簡単に説明すると、主に日人向けの競技プログラミングサイト。 問題は全て日語で、定期的に様々なコンテストが開催されている。問題の難易度が低い初心者向けのコンテスト(AtCoder Beginner Contest 通称 ABC)なんかもあるので、競技プログラミングの入口としては最適だ。 AtCoder の対応言語 競技プログラミングでは、ソースコードを提出し、提出されたコードが正しく動くかどうかサーバ側で実際に動かして検証を行う。つまり、サーバ側に各言語の処理系が必要であり、競技プ

    Vim script で AtCoder に参戦する方法 - 永遠に未完成
    oppara
    oppara 2015/10/03
  • master への push を禁止するローカル git hook の正しい書き方 - 永遠に未完成

    GitHub などで Pull Request ベースで開発をしていると、master には間違っても push したくないわけです。 GitHub 側には残念ながら master への push を禁止するような設定はできないので、仕方ないのでクライアント側の Hook で対応しようってことになり、この方法についてググるとこことかこことか、いくつか方法を紹介しているページが出てくるんですが、どれもやり方が間違っている*1ので、正しい方法を紹介。 何がまずいのか 上記に挙げた方法では、細かい部分は違ってたりするけど、git symbolic-ref HEAD を使って現在ブランチを見て、master だったら push を禁止する、という方法を取っている。 しかし、push はカレントブランチから行われるとは限らない。dev ブランチにいるときに git push origin maste

    master への push を禁止するローカル git hook の正しい書き方 - 永遠に未完成
    oppara
    oppara 2015/03/07
  • Vim プラグインを Windows 環境でテストする - 永遠に未完成

    最近は専ら Vim script 向けテスティングフレームワーク themis.vim を作っているわけですが、テストを書いたら当然実行しないと意味がないわけです。 しかし手動でテストするのは面倒。そこで CI。設定しておけばリモートのリポジトリに push した時に自動でテストを走らせてくれます。 Linux 環境用の CI サービスはたくさんあるので、Travis CI なり drone.io なり自由に使えば良いと思います。便利。 しかし Vim はマルチプラットフォーム。当然 Windows 環境でもテストしたいですよね。と言うわけで Windows 環境で CI できるサービスと、そこで themis.vim を使ってテストを走らせる設定例を紹介します。全部無料でできます。 と言うわけで CI サービス AppVeyor を使います。 Continuous Integration

    Vim プラグインを Windows 環境でテストする - 永遠に未完成
    oppara
    oppara 2014/08/12
  • gf-user で gf の動作を拡張する - 永遠に未完成

    Vim Advent Calendar 2013 の 114 日目の記事です。 gf の問題について gf は、カーソル下のファイルを開く便利機能です。例えば、"foo.c" とバッファに書かれていた場合、ここにカーソルをのせて gf を押すと、foo.c を開いてくれます。更に gF を使うと、"foo.c:23" みたいになっていた場合に、foo.c の 23 行目を開いてくれるので、更に便利です。 便利なんですが、これ、Windows だとうまく動きません。なぜかと言うと、Windows では 'isfname' に : が含まれているから。 'isfname' は、ファイル名として認識する文字のセットを指定するオプションで、gf はこれを使ってカーソル位置のファイルを認識します。しかし Windows ではドライブレター(C:とか)の関係で : が isfname に含まれているた

    gf-user で gf の動作を拡張する - 永遠に未完成
    oppara
    oppara 2014/03/24
  • 本当にキモい Vim script - 正規表現編 - 永遠に未完成

    Vim Advent Calendar 2012 の 339 日目の記事です。 先日、Lingr で :s コマンドの引数をパースする方法についての話になりました。 :s はご存知の通り、置換コマンドです。 :[range]s[ubstitute]/{pattern}/{string}/[flags] [count]今回 [range] と [count] は無視するとして、それ以外の {pattern} と {string} と [flags]、あとはパターン内でエスケープされているかもしれない区切り文字(多くの場合は /) が何になるか知りたい。 結果的にできたのは以下のような正規表現です。 \v^s%[ubstitute]([\x00-\xff]&[^\\"|[:alnum:][:blank:]])(%(\\.|.){-})%(\1(%(\\.|.){-})%(\1([&cegiIn

    本当にキモい Vim script - 正規表現編 - 永遠に未完成
    oppara
    oppara 2013/11/04
  • Git で変更されたファイルを簡単に無視する設定 - 永遠に未完成

    管理下に置かれてるんだけどなぜか無駄に変更されてしまうファイルというのがたまにあって、まあ管理方法見直せという話もあるんだけど、それも叶わない場合、そういうのは無視したい。 その方法についてはこの記事が詳しいのだけど、私はこれを以下のように alias 設定している。 [alias] ignore = update-index --assume-unchanged unignore = update-index --no-assume-unchanged ignored = !git ls-files -v | grep "^[a-z]"これで、 git ignore {file} ファイルを無視する git ignored 無視されたファイルの一覧を表示する git unignore {file} 無視されたファイルを元に戻す という風に直感的に扱えるので便利。

    Git で変更されたファイルを簡単に無視する設定 - 永遠に未完成
    oppara
    oppara 2013/09/26
  • quickfix を便利に使う設定 - 永遠に未完成

    Vim Advent Calendar 2012 の 220 日目の記事です。 最近の Vim Advent Calendar は子供が生まれたり結婚したりで大変めでたいことが続いていますね。良いことです。みなさんも Vim Advent Calendar で執筆すれば御利益があるかもしれませんよ? あ、ちなみに私はいつも通りです。特に変わったことはありません。 さて、今回は私が quickfix で行っている設定をいくつか晒してみたいと思います。 設定方法 quickfix ウィンドウは filetype=qf が設定されます。なので、filetype qf に対する ftplugin を書けばよいです。つまり、 ~/.vim/after/ftplugin/qf.vimもしくは ~/vimfiles/after/ftplugin/qf.vimこの辺りに設定を書いていきます。 p で pr

    quickfix を便利に使う設定 - 永遠に未完成
    oppara
    oppara 2013/07/27
    quickfix を便利に使う設定 - 永遠に未完成
  • Copy.com を Linux から使う - 永遠に未完成

    最近 Copy って言う Dropbox 系のサービスを使い始めた。 Sync, protect, and share your files - A simple cloud solution to manage business and personal storage. 最初からいきなり15GB、招待コードから登録すると +5GB の 20GB から使い始められ、誰かを招待するたびに +5GB ずつもらえるのでかなり太っ腹。ちなみにこの招待キャンペーンはずっとやってるわけではないとの噂*1なので、登録だけでも先にしておくとよいかも。ちなみに私の招待コードはコチラ→ https://copy.com?r=GrQEqs で、クライアントも Windows / Mac / Linux / Android / iOS とすでに各種揃っているようだったので、今試しに使ってみている感じ。デスクトッ

    Copy.com を Linux から使う - 永遠に未完成
    oppara
    oppara 2013/06/21
    http://t.co/2znf17xSbZ を Linux から使う - 永遠に未完成
  • Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成

    Vim Advent Calendar 2012 の 173 日目の記事です。 今回は C# を書くのに便利な OmniSharp と言うツールを紹介します。これさえあれば、エディタとしての Visual Studio はもう必要ありません! 経緯 (興味ない人はここは飛ばしてインストールのところから読むと良いです) 先日、OmniSharp なるものの存在を教えてもらいました。 @thinca これってでどうなんでしょう URL 2013-05-09 23:47:26 via YoruFukurou to @thinca @mizchi お、面白そうですね!私は知らなかったです。明日あたり見てみますー。ありがとうございます。 2013-05-09 23:51:36 via tweetvim to @mizchi と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

    oppara
    oppara 2013/05/23
    Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成
  • 意外と知られていない diff に関する機能 - 永遠に未完成

    Vim Advent Calendar 2012 の 147 日目の記事です。 137 日目の tyru さんの記事で、Vim の diff 機能について紹介がありました。この記事ではもう少し細かい diff の機能について紹介したいと思います。 :diffthis 比較したい対象がファイルではない場合、例えば、外部からデータを無名バッファにコピーしてきた場合に、それらのバッファの diff を表示したいことがあります。この場合は、:diffsplit は使えません。 こういう場合は :diffthis を使います。diff を適用したいバッファでそれぞれ :diffthis をすると、実行したバッファ同士の差分を見ることができます。 これを利用した設定に、help で紹介されている :DiffOrig があります。(:help :DiffOrig) これは現在編集中のファイルと、最後に保

    意外と知られていない diff に関する機能 - 永遠に未完成
    oppara
    oppara 2013/04/26
    意外と知られていない diff に関する機能 - 永遠に未完成
  • カラースキームを作ってみよう - 永遠に未完成

    Vim Advent Calendar 2012 の 131 日目の記事です。 毎日のように Vim を使っているみなさんは、恐らくお気に入りのカラースキームがあったりすると思います。中には一部が気にわなくて改造してみたり、更にはすでに自作している方もいるかもしれません。 今回は、「カラースキーム作ってみたいけど作り方がよくわからない><」「改造して使ってるけど実はよくわかってないんだよね…」といった方を対象に、カラースキームの作り方について簡単に説明してみようと思います。長くならないように、適時端折っていこうと思います。 始めに ぶっちゃけてしまうと、最初は既存のカラースキームを改造するところから入るのが楽です。真似して書くとだいたいそれっぽくなるものです。 この記事では 0 から作ることを想定して解説していきますが、チュートリアル的な内容と言うより知識的な解説になっているので、改造だ

    oppara
    oppara 2013/04/10
    カラースキームを作ってみよう - 永遠に未完成