サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
中東情勢
qiita.com/kompiro
私が4年前にweb業界に転職する前はJavaのデスクトップアプリケーションを開発していたのですが、他の人の黒い画面を見ては「あの黒い画面に表示されている枠はなんなんや?」と思っていました。実際に使ってみると生産性が3倍(当人の感覚)になりました。 特に開発環境はIDE派の方は、tmuxを使うことでCUI環境もIDEのように見せられます。 早速見ていきましょう。 tmuxとは? tmux は Terminal Multiplexer の略です。multiplexerとは多重化する、という意味です。一つのターミナル環境の中に複数ターミナルを作成できるのが tmux です。わかりやすいですね。 インストール方法 homebrew でも入るので
asdf-vmとは? プログラミング言語及びツールのバージョン管理ツールです。類似ツールに anyenv があります。 anyenv と比較すると、下記の点で優れています。 direnvやsops 等のツールもプロジェクトごとにバージョン管理できる→READMEに記載するインストールセクションをすっ飛ばせる バージョン管理したいツールはプラグインにより拡張できる プラグインはURL指定できるので、 asdf global コマンドを使うと、ユーザーグローバルにツールのバージョン管理ができる ($HOME/.tool-versionsに永続化されているので、dotfilesと相性がいい) 使い方 インストール 基本的に https://asdf-vm.com/#/core-manage-asdf-vm を読んでインストールすればOK。 macOSでhomebrew を使っている場合は
org.hamcrest.CoreMatchers#hasItem()等が見つからずにコンパイルエラーになる問題の解決方法JUnithamcrest JUnitは4.4からhamcrestを内包するようになりました。4.4のCoreMatchersにあるAPIのみを使っている場合は特に問題なかったのですが、CoreMatchers#hasItemなど、4.4がリリースされた以降に追加されたAPIを使うと、クラスパスの指定順でAPIがうまく解決できない事があります。 どういうこと? 例えばMavenの場合、各ライブラリに設定された依存関係を元にクラスパスを決定しますが、ライブラリごとに依存関係が設定できる事が原因で、古いCoreMatchersを先に参照してしまう事があります。Javaはコンパイル時に同じFQCNのクラスを複数ロードできないため、古いCoreMachersを先に参照してしまう
posted articles:JavaScript:15%coderetreat:15%GitHub:13%React:13%redux:13%
これはなに? インクリメンタル検索ができるGo製のツールです。同様でよく使われるツールにpecoがあります。fzfはプレビューウィンドウ表示ができるのが一番の違いでしょうか。 その他、tmuxと連携する fzf-tmux が同梱されていたり、 vim と連携する fzf.vim が開発されていたりするなど、関連ツールが充実しています。 インストール方法 fzf は homebrew 等でも配布されていますが、go製のツールなので、リポジトリをcloneしてビルドしたほうが手っ取り早いかもしれません。 homebrew/Linuxbrewでのインストール $ brew install fzf # shellのキーバインディングへの追加やfuzzy finder(ゆるふわ検索)機能を追加したい場合は下記のコマンドを実行しましょう $ $(brew --prefix)/opt/fzf/insta
この記事で伝えたいこと Docker for Mac が使う Dockerの実行環境 moby vm と LinuxKit Docker は Mac 上ではなく hyperkitという 仮想マシン上で動いている(Docker for Mac の場合) Linux で Dockerを使うときは同じカーネルを使うのでMac環境とかなり異なる volume は仮想マシン上の /var/lib/docker/volumes 配下においている 前回のおさらい 前回はコンテナとイメージ周りのデータ構造を見てきました。イメージは複数の読み取り専用のレイヤで構成され、コンテナはイメージのレイヤをベースに起動し、レイヤとしてcommitするまで永続化されないことを見てきました。では、MySQLのデータのような、コンテナを破棄しても残しておきたいデータはどうしておくとよいでしょうか? 今回は永続化したいデータ
はじめに 1年くらい前にDockerに入門した初心者です。いくつか自分でDockerfileを書いてみて、ある程度知識が得られてきたので、ここらでちょっとまとめてみます。 数回に分けて公開するつもりです。 dockerの主な概念 レイヤ イメージ コンテナ 今日はこのあたりの話をコマンドとともに解説します。 この記事を読むと docker image周りの構造がわかります。 データ領域を別途ボリュームに指定する理由がわかります。 git と docker の類似性 docker には git と似たコマンドがあります。 git commit / docker commit git tag / docker tag git pull / docker pull git push / docker push git log / docker history これらはどれもレイヤを操作するコマン
https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html を読んでまとめました。 対象読者 例によって主に自分 Mappingとは? ElasticsearchはDocumentの登録時に合わせてindexを作成する。そのindexをどのように登録するのかを定義するのがMappingである。(RDBだとMappingはテーブルスキーマにあたる)。Mappingは下記の用途に使われる。 どの文字列フィールドが全文検索の対象か? どのフィールドが数値、日付、geolocationか? documentの複製である _all フィールドをインデックス化するかどうか? 日付の形式は? 動的に追加されるフィールドのマッピング Mapping Types Documentを論理的なグループに分けるため、in
この記事はSelenium/Appium Advent Calendar 2016の10日目の記事です。 はじめに freee株式会社でアプリエンジニアをしている @kompiro と申します。普段は selenium をガリガリ動かしているエンジニアではないのですが、SitePrism というgemを使って PageObjects パターンを実装してみたら、想像以上に捗ったのでご紹介します。 SitePrism の特徴 SitePrism とは PageObjectパターンをCapybaraを使って実装するためのDSL です。 例えば google.com のページオブジェクトを SitePrism を使って定義すると下記のようになります。 # Pageの定義 class Home < SitePrism::Page set_url 'http://google.com' element
この記事は freee Engineers Advent Calendarの6日目です。 こんにちは。freee株式会社でアプリエンジニアをしている @kompiroです。主に会計freeeの開発に携わっています。 僕には「よりよい機能を、より早くユーザーに届けたい」という信念があります。今日はよりよい機能を、より早くユーザーに届けるためのGit/GitHubを活用する10の方法と題してGitやGitHubの便利な使い方や日々のTipsをお届けします。1 PRのレビュー完了までの時間を最速にするための工夫 freeeではGitHub上でレビューをしながら開発を進めています。レビューをするのもされるのも、うまく進めないと結構時間がかかります。もちろんコードをより良くする作業に時間を割いているのであれば時間がかかるのも致し方ないです。しかし、進め方による問題でも数日〜数週間デプロイが延期されれ
overcommitとは? git hooksの管理と、その拡張を簡単にできるRuby製ツールです。同様のツールにpre-commit by YelpやRailsに特化したpre-commitがあります。overcommitはこれらのツールと違い、pre-commit以外のフックにも対応しています。 リポジトリはこちら overcommitの導入でできること コミットのタイミングでrubocopやeslintなどlintツールをかけられる コードの読みやすさが向上することを期待できます checkoutやpullのタイミングでbundle installやnpm installを実行できる 他の開発者がGemfileやpackage.jsonに追加したらしくなんか動かない問題を回避できる pushする前に変更したファイルのみ対象にrspecを実行できる CIする前に自分が行った変更の結果を
動機 EMF等Eclipseの成果物は、Mavenリポジトリで配布されていない配布されている1。Gradle等を使う場合、Mavenリポジトリが欲しい。EclipseにもJGit等を配布するリポジトリはあるが、そこにライブラリがないのであれば、とりあえず自前のMavenリポジトリにデプロイしたい。ただデプロイするだけでも骨が折れるが、プラグインには依存関係があるので、それも解決したい。プラグインの依存関係は、META-INF/MANIFEST.MFのRequire-Bundleに記述されている。この情報を解析したいが、ここの形式は次のようになっていた。 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0) ",org.eclipse.emf.ecore;visibility:="reexport";bu
エンジニアチームのみんながどんな事に詳しいのかをざっくり知るため、Qiita:Teamをテキストマイニングしてスキルマップを作ってみる、というお話です。 ご挨拶 こんにちは。2015年10月にfreee株式会社にJoinした @kompiro こと近藤寛喜と申します。(本日34歳になりました)普段はフルスタックエンジニアとしてfreeeのユーザーさんにマジ価値を提供すべく日々奮闘してます。 freeeはまだ若い会社ですが猛烈な勢いでサービスが成長しており、結構な量のコードがあります。僕は入社したてということもあり、これまでチームの誰がどの仕事をしてきたのかがわかりません。なにか改善すべき点があったとして、 また、ここまでのAdvent Calendarの流れを見ていただいてもわかるとおり、freeeのエンジニアのみんなには得意技、言い方を変えればとんがっている分野を持っています。freee
概要 SSLを使ったクライアント認証は、特定のクライアント以外からサイトを見せたくない時、非常に便利に使えます。ここではMavenなどJavaのアプリケーションでもクライアント証明書を使う方法をまとめます。 全体の流れ JREに同梱されている証明書ストアcacertsにクライアント証明書を発行した認証局の認証局証明書をインポート 実行時のシステムプロパティにcacertsやクライアント証明書を指定 クライアント証明書が必要な特定のサイトが利用可能に 認証局証明書のインポート JREに同梱されている証明書ストアcacertsにインポートしないと、JREは実行時にインポートした認証局のみ認証されていると勘違いします。指定したファイルにある証明書のみ読み込みます。JREに同梱されているcacertsには主なルート認証局の証明書が入っているので、そこに自前認証局の証明書を読み込みましょう。 JRE
このページは作業ログです。やったことをつらつら書くだけなのでまとめません。あしからず。 モチベーション JavaScript界隈のビルドツールは雨後の筍のように色々あるね。GruntやらGulpやらはたまたmakeを使いましょうっていう記事もある。最近出てきたWebpackがReact界隈だとよく使われているので試してみる。 チュートリアルをやってみる Webpackのチュートリアルはこちら Qiitaに日本語でまとめられた方がいる。そちらを参照することをオススメする。 まず最初は設定ファイル無しから始まる。entry.jsを用意しただけの所からbundle.jsをwebpackで作り、htmlに読ませる。 次も設定ファイルなし。require文を使って他のファイルの内容を読み込んだentry.jsを作り、htmlの読み込ませる。 引き続き設定ファイルなし。npm install css-
このページは作業ログです。やったことをつらつら書くだけなのでまとめません。あしからず。 対象読者 主に自分 今日のゴール jQueryではない方法を使ってajaxを使えるようになっていること Reactのコンポーネントを非同期リクエストで構築できるようになっていること モチベーション React.jsはビューのみをサポートしたライブラリ。サーバーとの通信部分はなんも用意していない チュートリアルではjQueryを使ってサーバーと通信してた。でもjQueryはその他もろもろいろいろ機能がある。Virtual DOMとの相性がありそうなので、jQuery自体導入せずに済ませられるのならそうしたい。 調べてみた A Comparison of JavaScript HTTP Libraries for the Browserという記事によると、Ajaxリクエストを実現するには下記の方法がある。
このドキュメントの目的 当ドキュメントは http://coderetreat.org/facilitating/structure-of-a-coderetreat の翻訳を基に、Coderetreatのファシリテーターになる方の助けとなるドキュメントをまとめたものです。 このページは、Coderetreatをどのように進むか、その概要と、実際によく使われているファシリテーション上のTipsをまとめたものです。CoreyはCoderetreatのファシリテーターの役割について、ブログを執筆しています。(英語) Coderetreatはプログラミングの実践に集中するために最適化され、何度も実施され、確立された構造があります。 課題:コンウェイのライフゲーム 1セッションの時間: 45分 開催時間: AM 8:30 〜 PM 5:00 か PM6:00 Coderetreatではペアプログラ
React.jsと組み合わせるfluxのライブラリreduxを試してみた。 このページは作業ログです。やったことをつらつら書くだけなのでまとめません。あしからず。 対象読者 主に自分 今日のゴール redux-react-routerを使ってページ切り替えを実現する redux-react-routerとは? Reactのラウター(ルーターではない)ライブラリとしてよくreact-routerが使われる。react-routerの機能は十分だが、現在表示しているページという"状態"がアプリケーションに登場する。これもできればstoreに押し込めたい。ということで登場したライブラリ。react-routerをベースにしたライブラリなので、まずreact-routerから見ていく。 react-routerの特徴 ドキュメントの構造とURLの構造をマッピングするライブラリ。最初ドキュメントを読
React.jsと組み合わせるfluxのライブラリreduxを試してみた。 このページは作業ログです。やったことをつらつら書くだけなのでまとめません。あしからず。 対象読者 主に自分 今日のゴール reduxのBoilerplateを試してみる redux-devtoolsを試してみる Boilerplate Boilerplate(ボイラープレート)とは、package.jsonに予め必要なライブラリが定義されていたり、srcやdocs等、基本的なディレクトリ構成が定義済みだったりする、別名テンプレートプロジェクトのこと。 よくしらないけど、YaomenはBoilerplateを生成するツールじゃなかったっけ?と思って、YaomenのGeneratorにreduxのものがないか検索してみたらやっぱり見つかった。 こういうgenerator系のツールは、中身がよくわかってない初心者泣かせな
概要 octokit.rbとは、GitHub API v3に対応したRubyのクライアントである。リポジトリのREADMEを見てもわからなかった部分が多いので、メモ リポジトリの場所 github:octokit/octokit.rb 基本的な使い方 アカウント設定 username/passwordでログイン usernameとpasswordを記述するシンプルな例です。
React.jsと組み合わせるfluxのライブラリreduxを試してみた。 このページは作業ログです。やったことをつらつら書くだけなのでまとめません。あしからず。 対象読者 主に自分 今日のゴール Reactの構成を理解できていること Reactコンポーネントのイベントハンドラの設定が理解できていること やったことメモ Reactのドキュメントを読む チュートリアル(日本語)。に目を通しつつ、手を動かす。 チュートリアルの結果 感想 手を動かしながら学べるのは良い <script type="text/jsx">の中に実装をしていく?まず、tutorial1.jsを実装してみる。 コンポーネントの定義ができる下記のようなスニペットがあるとよさそう var Component = React.createClass({ render : function(){ return ( // wri
React.jsと組み合わせるfluxのライブラリreduxを試してみた。 このページは作業ログです。やったことをつらつら書くだけなのでまとめません。あしからず。 対象読者 主に自分 ゴール 最近のJavaScript開発環境に馴染むこと reduxを使ったアプリケーション開発がどんなものか理解できていること reduxを試した理由 React.jsと組み合わせるfluxの中で最右翼 今作っているSPAアプリがある程度複雑になりそうなのが見えているため (Mithrillくらいシンプルな方が良さそうな気がする) やったことメモ node.jsの更新 まずはnodeを更新しようと思い、下記のコマンドを実行。 するとError: uninitialized constant Formulary::HOMEBREW_CORE_FORMULA_REGEX. Please report this b
TL;DR 自動インストールでインストールされるJDKのアーキテクチャは、各Nodeを登録するために起動するslave.jarのJREのアーキテクチャだよ Jenkinsのソースコードは構造のバランスがいい Jenkinsは週次リリースできるソフトウェアのアーキテクチャを学ぶ題材として最適 きっかけ Jenkinsの便利な機能に、JDKの自動インストールがある。プロジェクトに利用するJDKを設定すれば、実行するノードに自動でJDKをインストールしてくれる、という素晴らしい機能だ。WindowsやLinuxだと32bit、64bitのJDKが配布されているので、どうやってインストールするJDKを判定してるんだろう、と思ってコードを読み始めた。 ゴール 自動インストールを実装しているクラスを見つけ、どのように実装されているか理解すること 実装クラスを見つける 実装を見つけるときは、ログを出力し
こんにちは。製品事業部の近藤( @kompiro )です。JavaDayTokyo2015で平鍋が発表したそうですね。いい機会ですので、これらのツール群をどのように連携させているかを紹介します。 利用している主なツール Idobata: 開発状況を共有するためのチャット Trac: Wiki&Ticket 管理 GitHub: 言わずと知れたGitHub。SCMとして利用するだけでなく、コードレビューにも活用しています。 Jenkins: CIやインストーラのビルド。 VMWare ESXi: 複数の仮想マシンを動作させる仮想マシンサーバ Trello: ふりかえりで活用するだけでなく、HubotがIdobataに流れる情報を元に適宜Trelloに反映してくれるおかげでプロジェクトの状況をデジタルに俯瞰できるボードもできました。 Hubot: chatops&プロジェクトで色々助かることを
身近な人にDevOpsの最初の一歩を解説するために、Vagrantというツールの紹介と使い方をまとめてみた。 Vagrant(ベイグラント)とは 仮想マシン環境を簡単に構築・管理・配布できるツール。どのくらい簡単かというと、例えばUbuntu 12.04 server 32bitの仮想マシンを準備するのであれば、Vagrantをインストール後は下記の3行で済む。 $ vagrant box add base http://files.vagrantup.com/precise32.box $ vagrant init $ vagrant up
アナログなKanbanの状態を定時に写真を撮って保存して、上海のチームメンバーと共有するため、Raspberry Piにhubotをいれてアップするこのシリーズ。今回はGoogle Drive Web APIを使って撮った写真を保存するやり方をまとめておく。 参考リンク Google Drive Web APIのトップページ 認証について Google APIの認証には大きく分けて2つある。OAuthとSimple API Key Google Drive内のリソースにアクセスするので、Simple Keyは使えない OAuth2認証 Google APIのOAuth2 にはアプリが対象とする環境によっていくつかやり方がある。 今回はhubotに組み込む。常時HTTPサーバーを立ち上げることもできるが、認証情報はひとつでいい。今回はインストール済みアプリケーションを選んだ。(Youtubu
大事なこと ドングル型無線LANアダプタだと給電性能が足らずに安定稼働しないため、現在は使っていません。 ではどうぞ hubotをRaspberry Piに乗っけてプロジェクトのアレやコレをつぶやかせてやろうとワクワクしてRaspberry Piを買った。Raspberry Piを初めて触っているので、こじ研さんのページを参考にセットアップしていた。こじ研さんのページには無線LANのドングルを適当に買って来ればつながるんじゃないか?と書かれていたので、Elecom WDC-150SU2Mを買ってみて楽しみに挿してみたらウンともスンとも言わない。1000円の買い物なのでそれほど高い買い物ではないけど、なんか悔しい。いろいろ調べたら動作させられたのでまとめておく。 やったこと Raspbianの更新 kernel headerのビルド 無線LANアダプタドライバのソースコード入手&ビルド 実際
ソフトウェアエンジニアにとって、ユニットテストは重要です。僕はなるべくユニットテストを書くようにしており、ソフトウェアエンジニアはもっとユニットテストを書くべきだ、と考えています。ここで言及している「ユニットテスト」は、単なる「テストコードによる自動化」全体を指すのではなく、「テストから見えてくるグーグルのソフトウェア開発」で登場した用語である「Sテスト」を指します。 「テストから見えてくるグーグルのソフトウェア開発」では、テストコードが対象とするプロダクションコード(製品コード)の規模、S、M、Lとサイズごとに分類しています。 「Sテスト」とは、テスト対象のクラスのみを対象にしたテストを行うことを目的としています。テスト対象以外のクラスの処理は、積極的にモックを多用することで、テスト対象のクラスの振る舞いを確認します。 Sテストは主に品質向上に寄与すると「テストから見えてくるグーグルのソ
このドキュメントはCoderetreatを開催したい人にために http://coderetreat.org/hosting を元に翻訳し、いくつか補足を加えました。 Coderetreatとは Coderetreatとは、ソフトウェアの設計と開発の基礎を徹底的に練習する終日イベントです。仕事では必ずさらされる「終わらせなければならないプレッシャー」からできる限り開放され、「良い設計とはなにか」を考え、実践することに集中できるよう、Coderetreatは設計されています。そのため、効果的にプログラミング技術を向上させられる楽しいイベントです。 Coderetreatを主催するには 主催者は、コードを書くのに不自由がない、快適な場所を参加者に無料で提供してください。そのために、下記を良く読み従うようにしてください。 Coderetratを終日開催できるように環境を整えてください。 イベント
次のページ
このページを最初にブックマークしてみませんか?
『@kompiroのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く