タグ

2018年12月9日のブックマーク (14件)

  • CIマニアから見た各種CIツールの使い所 - くりにっき

    社内外でちょいちょい聞かれるのでメモ。 前置き GitHubを使ってる場合 ライブラリを作ってる場合 Travis CIを選択する理由 2020/4/21追記 Travis CIを選択しない理由 アプリを作ってる場合 CircleCIとWerckerの共通点 CircleCIとWerckerの機能差異 GitLabを使ってる場合 GitLab CIの優位点 Jenkinsなどを使った方がいい場合 追記:2018/12/8 前置き 100%自分の主観なので偏ってます SaaSかオンプレならSaaS派。(自分でサーバの面倒身たくない) 自分が使ったことがないものは紹介していません 今回紹介してるTravis CI, CircleCI, Wercker, GitLab CI, Jenkinsに関しては仕事趣味で各3〜4年くらいは使ってるはず GitHubを使ってる場合 ライブラリを作ってる場合

    CIマニアから見た各種CIツールの使い所 - くりにっき
    igrep
    igrep 2018/12/09
    マトリックステストしやすい、なるほどね!
  • Elm と他のフレームワークを組み合わせる - Qiita

    はじめに 既存のプロジェクトがあり Elm を導入したいというとき,全体を置き換えることはできなくても,一部だけ Elm で置き換えるということができれば良いですよね.Web Components を使って ElmReactAngularVue などの既存のプロジェクトと組み合わせて使えないかなと思い,実際に組み合わせてみました. 成果物は calmery/elm-advent-calendar-2018: Elm Advent Calendar 2018 にあります. Web Components とは Web Components は,再利用可能なカスタム要素を作成し,ブラウザ上で利用するための技術HTML Templates や Custom Elements,Shadow DOM をまとめた総称です.これまで ReactAngularVue などのフレームワ

    Elm と他のフレームワークを組み合わせる - Qiita
  • Vim の :terminal の色を設定する方法 - Qiita

    Vim に :terminal 機能が入り、Vim 上からシェルを実行したり、fzf.vim のようにプラグインから :terminal を活用出来るようになりました。 この :terminal ですが、実は Vim 8.0.1685 で色設定が出来るようになりました。 patch 8.0.1685: can't set ANSI colors of a terminal window · vim/vim@f59c6e8 :terminal の色設定の方法 patch 8.0.1685 では以下の関数とオプションが導入されており、GUI の場合か termguicolors が有効な場合、 :terminal を設定した色で表示することが出来ます。 term_getansicolors({buf}) term_setansicolors({buf}, {colors}) g:termina

    Vim の :terminal の色を設定する方法 - Qiita
    igrep
    igrep 2018/12/09
  • ClojureサーバサイドフレームワークDuctガイド - Qiita

    ClojureによるWeb開発のサーバサイドで注目度の高い(マイクロ)フレームワークとしてDuctがあります。 ちょうど1年前の2017年12月に私自身初めてDuctによる簡単なREST APIを試作してみて、その過程をAdvent Calendar記事にしたことがありました。 今回は主にClojure言語のことを知っていてWebアプリ開発に興味のある方向けに、英語も含めてドキュメントのとても少ないDuctというフレームワークがどのようなものなのか、技術的な詳細に踏み込んだ解説を試みます。 ちなみに、執筆時点で参照/動作確認した各種ライブラリのバージョンは、サンプルプロジェクト"hello-duct"のproject.cljの通りです(Duct最新安定版0.12.0のテンプレートのまま)。 Ductとは アプリケーション状態/ライフサイクル管理ライブラリのひとつIntegrantを基礎とし

    ClojureサーバサイドフレームワークDuctガイド - Qiita
    igrep
    igrep 2018/12/09
    “アプリケーション状態/ライフサイクル管理ライブラリのひとつIntegrantを基礎としたサーバサイド(マイクロ)フレームワーク”
  • テストで、配信事故を起こさない&不自由なくテストできる環境の作り方 - Qiita

    この記事は、メール Advent Calendar 2018 8日目のものです。 そもそも、テストのメール配信事故ってなに? 様々なインターネット用のシステムで欠かせないメールの送信。テストでも実施すると思います。ところが、不用意なテストの実施で送ってはいけない先にメールを送ったり、テストの不足によって番になってメールを送信できなかったり、とトラブルが発生することがあります。これをテストのメール配信事故と呼んでみます。 ※もっと良い呼び名があるかもしれない。 下記のようなパターンがあるかと思います。 第三者に送信 例えば、ECサイトのテスト環境の会員データを hoge@abc.com とか fuga@test.com など、適当なメールアドレスで作ります。テスト環境で決済するたびに hoge@abc.com に決済完了のメールが飛んでいくのですが、abc.com はアメリカ ABC Ne

    テストで、配信事故を起こさない&不自由なくテストできる環境の作り方 - Qiita
    igrep
    igrep 2018/12/09
    そうそう、メールに限らずテストデータは極力テスト専用のものにすべきよね。
  • RubyのTime系の型は小数点以下も保持するので気をつける - Qiita

    Rubyなら Time.now 、Railsなら Time.zone.now などで使う Time や TimeWithZone 意識して使わないと思わぬバグを生む原因なのでその事例を箸休め的にご紹介。 環境

    RubyのTime系の型は小数点以下も保持するので気をつける - Qiita
    igrep
    igrep 2018/12/09
  • ペアプログラミングの可能性を広げる Party REPL - Qiita

    この記事は Clojure Advent Calendar 2018 8日目の記事です。 前日の記事は @lagenorhynque さんのClojureサーバサイドフレームワークDuctガイド でした。 もう年末ですが皆さんパーティしていますか?え、予定がない?パーティって何すればいいか分からない? では今年の年末はペアプログラミングならぬパーティプログラミングなんていかがでしょうか。 いつも最善とは言えませんが、ペアプログラミングの効能は広く浸透しています。現在、モダンなエディタはリモートでの共同編集機能をサポートしており一台の端末の前に二人座って行う必要もなく、ペアプログラミングの環境は満足のいくものとなりつつあります。しかし、それを一段押し進めて「動作しているアプリケーション」を直接、ペアプログラミングで開発できるとしたらいかがでしょうか。 出来るんです Clojure なら!cl

    ペアプログラミングの可能性を広げる Party REPL - Qiita
  • 最近のHaskell案件事情について - Qiita

    お題:最近のHaskell事情 Haskell のお仕事って言うても少ないよ。どこにあるの? Haskellのお仕事がなんで少ないねん問題 1.Haskellできる人がすくないよ 2.学習コスト(お勉強する時間と労力、等)が高いよ 3.アルゴリズムや自然言語処理、数学をある程度知らないとできないよ 4.ライブラリーが偏ってるから手薄な分野ではつかわれにくいよ 5.Haskellじゃなくても他の言語で出来ちゃうよ 6.なかなかHaskellに入り込めないよ... 以上が今までのHaskellのお仕事が少ないんやんって問題でした。 ところが.... AI案件あるいはセキュリティの深い所まで知るために Haskell案件が急上昇してきているのです。 例えば 1.Scalaとの融合でビックデータをよりよく把握しシステムに反映したい 2.関数型プログラミングで堅牢かつ安全なSPAを作りたい 3.仮

    最近のHaskell案件事情について - Qiita
  • Elm に CodeMirror を埋め込む - Qiita

    Elm で描画した要素の中に JavaScript のコンポーネントを埋め込みたくなることがたまにあります。この記事では、よくある例としてエディタを埋め込むサンプルを作ってみます。今回使うライブラリは CodeMirror です。 というわけで出来たのがこちら。 DEMO コード これだけだと分かりにくいですが、エディタはちゃんと Elm の中にいます。下手に DOM をいじると Virtual DOM がエラーを出しますが、ポイントさえ押さえれば特に問題ないようです。 Elm 側のコード #editor 要素を元に CodeMirror に初期化してもらいます。 CodeMirror 特有の事情としては、この要素のすぐ後にエディタの要素が挿入されるため、その場所に他の要素は置かないようにします。 view : Model -> Html Msg view model = div [ cl

    Elm に CodeMirror を埋め込む - Qiita
  • PowerShellで文字列の差分を求める - Qiita

    下記のように、文字列の差分を求めるアルゴリズムの確認をしたかったので、PowerShellで実装してみた。 (アドカレ用に記事を書いていたわけではないが、時期的に被ったので投稿) 元ネタ 差分検出アルゴリズム三種盛り 典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~#レーベンシュタイン距離-diffコマンド 意外と解説がない!動的計画法で得た最適解を「復元」する一般的な方法#2-3-レーベンシュタイン距離 やりたいこと 素朴な動的計画法で下記を求める 編集距離(ただし、置換は含まず、挿入・削除の編集のみ) SES(Shortest Edit Script) 色付きの差分表示 なお、詳細な説明も、効率的なアルゴリズムの実装もしないので、気になる人は元ネタを読んでください。 動的計画法の表を求める 下記のとおり、表(2次元配列)を2つ求める。 編集

    PowerShellで文字列の差分を求める - Qiita
  • Vim で Clojure 開発するためのプラグイン vim-iced を作った話 - uochan

    V i m で C l o j u r e 開 発 す る の に 便 利 な プラ グ イ ン を 作 っ た よ 。 使 っ て ね ♪

    Vim で Clojure 開発するためのプラグイン vim-iced を作った話 - uochan
  • 子供に邪魔されない開発環境を整える - Qiita

    NIFTY Advent Calendar 2016 の9日目の記事です。 ここまでしっかりした内容が続いたのでここらで休憩としましょう。 経緯 子供が歩くようになってから、ノートPCを開くとキーボードを叩きにくるようになりました。 ここでいう叩くは指先によるものではなく、手のひらによるものです。 これではうかうかPCを開いていられません。 家で趣味の開発ができなくなってしまいます。 そうだ、スマホで開発しよう。 用意したもの Android端末 Termux https://play.google.com/store/apps/details?id=com.termux&hl=ja Bluetoothキーボード http://www.logicool.co.jp/ja-jp/product/multi-device-keyboard-k480 Termux を使う上では必須です Term

    子供に邪魔されない開発環境を整える - Qiita
    igrep
    igrep 2018/12/09
    Termux便利だよねー。
  • Compact Regionsについて軽く - Qiita

    現在ghc最新は8.6です。 Compact Regionsはghc-8.2から搭載された機能です。 Compact RegionsはGC中に走査されない、連続したメモリ領域に載ったデータを提供します。 Hackage / compact: Non-GC'd, contiguous storage for immutable data structures サーバーにバッチ処理で生成しておいたデータ(数百MBから数十GBくらいでしょうか)を持たせておくことを考えましょう。そのデータはサーバーがリクエストを捌く際にRead Onlyでアクセスされるとします。 そういうこと自体は問題によりますが、まあよくやることと思います。Redis等にアクセスするにもネットワークは遅すぎる、手元のKVSでも毎回デシリアライズ発生するのは遅すぎるといったケースですね。 しかしGHCのようなGC持つ処理系でサー

    Compact Regionsについて軽く - Qiita
    igrep
    igrep 2018/12/09
    “GHCにはimmutabilityとかpurityを前提とした機能や最適化がそこそこあったりして、他の言語が真似しようにも真似できないことが割とあるように思います.”
  • Vim のレジスタに :terminal のシェル上からアクセスする - Humanity

    Vim その2 Advent Calendar 2018 の記事です。 Advent Calendar 4日目で mattn さんが紹介してくれていた Tapi について、 ちょうど Tapi を使ったプラグインを作っていたので紹介したいと思います。 実際にこんな事ができるという例としてもシンプルで分かりやすいと思います。 概要 github.com tapi-reg.vimVim のレジスタと端末の標準入力/出力を繋げるものです。 :terminal で動かしているシェル上に Vim のレジスタの内容を出力したり、 逆にシェル上から Vim のレジスタの内容を書き換えたりできます。 セットアップ 動作には jq コマンドが必要です。 インストールはほぼ全ての OS でパッケージが用意されています。 jq コマンドをインストールしたら source <this repo>/macro

    Vim のレジスタに :terminal のシェル上からアクセスする - Humanity
    igrep
    igrep 2018/12/09