タグ

ブックマーク / qiita.com (1,152)

  • 新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 今年、書いた幾つかの記事のタネであったり、新卒教育の際に参考書籍としてあげたものを中心にリストアップします。一応amazonへのリンクも貼っておきますが、先輩が持ってたりすると思うので、冬休みに借りて一気に読んでおくのもいいかと思います。 その時々、必要な技術の習得に日々追われているんじゃないかと思いますが、いつまでも使

    新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita
    kadoppe
    kadoppe 2018/09/16
  • Dataflowでデータに応じてBigQueryのテーブルを振り分け - Qiita

    Google Cloud Dataflowでは、パイプラインを分岐することでデータを複数の場所に出力できます。しかし、この方法では事前に出力先が決まっていなければならず、例えば「データ内で指定された任意のBigQueryテーブルへ出力」みたいなことはできません(多分)。そのような動的な出力振り分けを実現する方法を探していたところ、汎用的なものとして DynamicDestinations というクラスを利用すればいいことが分かりました。 記事ではこの DynamicDestinations を用いた方法および簡略化された方法の2通りでテーブル振り分けを試してみます。 サンプル構成 今回は出力のみ興味があるので、余計なデータ処理を挟まず「Pub/Subから取得したテキストをそのままBigQueryに保存する」ことをします。ただし、通常の単一テーブルへの出力と比較できるよう、パイプラインを分

    Dataflowでデータに応じてBigQueryのテーブルを振り分け - Qiita
    kadoppe
    kadoppe 2018/09/07
  • docker-compose(Docker for mac)で実践的なnode.js開発環境を作る - Qiita

    Docker のメリット、デメリットについてはこの記事が詳しい。 個人的に大事かなと思うProsは以下のふたつ。 複数人で開発する際に、環境の差が生まれない。 バージョンに依存した開発をしてる場合などに、同一の環境である保証ができる。 「It works on my machine!!」とか言えなくなる。 コンテナを捨てる・再生成するのが容易。 たとえば、Node.jsのバージョンを変えたい場合、Dockerfileのimageを書き換えるだけで出来る。 ただDocker自体、職人技とかクセが多かったりもするのでVagrantでいいじゃんとなることもありますが。。。 ここでやること この記事ではExpress4でnode.jsのプロジェクトを作成してHello Worldを表示するnode.jsコンテナ ポート80番をnode.jsの3000番にポートフォワードするnginxコンテナ、 使

    docker-compose(Docker for mac)で実践的なnode.js開発環境を作る - Qiita
    kadoppe
    kadoppe 2018/09/06
  • Node.jsで現在時刻を取得 - Qiita

    ちなみに自由に区切り文字を入れられるので dt.toFormat("YYYY/MM/DD HH24時MI分SS秒");とかにすれば,2014/02/13 22時29分06秒と出力されます. 使ってる(サーバー)マシンで指定されている時間を呼び出すので,表示される時間がおかしい時はマシン設定を見てみると良いと思います. 指定の仕方 toFormat()というメソッドで割と色々な形で時刻を取得できます. d.toFormat(format); // returns date formatted with: // YYYY - Four digit year // MMMM - Full month name. ie January // MMM - Short month name. ie Jan // MM - Zero padded month ie 01 // M - Month ie

    Node.jsで現在時刻を取得 - Qiita
    kadoppe
    kadoppe 2018/09/06
  • async関数においてtry/catchではなくawait/catchパターンを活用する - Qiita

    async/awaitのエラーハンドリングはtry/catchで行うのが一般的です。 しかし、これは複数のawaitを使い、それぞれ別のエラーハンドリングを行いたい場合など、冗長になりがちです。 そして、特に気に入らないのが、tryのスコープ外で非同期関数の戻り値を使う場合、letを使う必要があるところです。

    async関数においてtry/catchではなくawait/catchパターンを活用する - Qiita
    kadoppe
    kadoppe 2018/09/06
  • Mocha+Chai+SinonでPromiseの単体テストをするときはPromiseを返そう - Qiita

    結論 タイトルのとおりです。 背景 doneを使っていたら、Unhandled promise rejectionではまったのでその解消のため。 Vueでのajax通信にはaxiosを使っています。 例えばajax通信でアイテムの情報を取得するitemsコンポーネントを考えます。 import axios from 'axios'; export default { data() { return { items: [] }; }, methods: { fetchItems(){ axios.get('/api/items').then((res) => { this.items = res.data; }); }, }, } import axios from 'axios'; import { shallow } from 'vue-test-utils'; import it

    Mocha+Chai+SinonでPromiseの単体テストをするときはPromiseを返そう - Qiita
    kadoppe
    kadoppe 2018/09/05
  • Google Cloud Functions(Beta)の基本的な仕組み、使い方を学ぶ - Qiita

    概要 Google Cloud Functions(Beta)の基的な仕様や使い方を、オフィシャルドキュメントの入門ガイド、チュートリアルをもとに学習したまとめの記事です。 下記に引用した通りGoogle Cloud Functionsはベータ版(2018年4月現在)です。将来のリリースでこの記事の内容が役に立たなくなるかもしれませんのでご注意ください。 ★ Beta これは、Google Cloud Functionsのベータ版リリースです。このAPIは、下位互換性のない方法で変更される可能性があり、SLAサポート終了予定ポリシーの対象ではありません。 参考 Google Cloud Functionsに関するドキュメント Google Cloud Functionsの概要 関数の実行環境 Google Cloud Functionsで利用しているNode.jsのバージョンは下記に引用

    Google Cloud Functions(Beta)の基本的な仕組み、使い方を学ぶ - Qiita
    kadoppe
    kadoppe 2018/09/03
  • Firebaseを使い始めたら人生が変わった(ような気がした) - Qiita

    最近、僕の周りでFirebaseを使った人たちは、 「サーバーの処理をFirebaseに置き換えたら、筋肉がつきました!」(29歳, 社会人) 「Firebaseを使ったら友達も増えてわっしょいわっしょい」(11歳, 小学生) 「もうFirebase無しじゃ生きられない」(38歳, エンジニア) 「にゃーん」(1歳4ヶ月, うちの) と言っていました。嘘です。 冗談はさておき、趣味で開発しているアプリのサーバーサイドをFirebaseに置き換えたらすごく良かったので、ずらずらと書いていきたいと思います。 Firebaseとは? Firebaseは、Googleが運営しているmBaaSで、iOS/AndroidアプリからWebサービスまで幅広く使えます。 リアルタイム同期や豊富な機能が特徴で、サーバーサイドの開発コストを大幅に減らすことができます。 色々機能はあるのですが、今回僕が使った機

    Firebaseを使い始めたら人生が変わった(ような気がした) - Qiita
    kadoppe
    kadoppe 2018/09/02
  • Bean Validation (Hibernate Validator) の日本語メッセージを考えてみませんか? - Qiita

    Bean Validation (Hibernate Validator) の日語メッセージを考えてみませんか?JavaEEBeanValidationhibernate-validator このエントリについて Java EE を構成する仕様の一つに Bean Validation があります。これはその名の通り、JavaBean のプロパティをバリデーションするためのもので、Java EE だけでなく、Spring Framework など様々な場所で利用されています。 Bean Validation の参照実装は Hibernate Validator です。この Hibernate Validator、バリデーションに引っ掛かった時に表示するメッセージリソースも様々な言語に翻訳されているのですが、GitHub の次のページを見ると分かるように何と日語のメッセージリソースが未だに

    Bean Validation (Hibernate Validator) の日本語メッセージを考えてみませんか? - Qiita
    kadoppe
    kadoppe 2018/09/02
  • ちょっと良さげな負荷ツール vegeta をつかって分散負荷試験を実現してみる - Qiita

    motivation Scalaのgatlingを使っていたけど、test_caseとして実装する必要があり、ローカル以外から仕組み的に実行するのがちょっと手間だった。(testをjarにするというのが難しい) シンプルにインストールせずに実行できる負荷ツールはないものか 負荷をかける側の限界でパフォーマンスを正しく測定できないこともあるので、クラスタ的に投げれたらなお良い そんなフワーッとした雰囲気で調べてみたら面白そうなものがあった。 その名も Vegeta 。 名前がやばい。そう、みんな知ってるアレ。 github にもこんな画像がデカデカと というわけで早速試してみましょう。 最初に結果を書くと、結構いい感触。おすすめしたい。 インストール方法 インストール方法は複数あります。 公式のドキュメントにあるのは2種類で、 Homebrewでインストールする(mac

    ちょっと良さげな負荷ツール vegeta をつかって分散負荷試験を実現してみる - Qiita
    kadoppe
    kadoppe 2018/09/02
  • curl option 覚え書き - Qiita

    curl コマンド、ちょくちょく使うけどオプション忘れてまう ってことで備忘録 -o <file>: ダウンロードしたデータをファイルとして保存 long option は --output curl で URL 叩いて、ファイル名を指定してダウンロードしたいときは 小文字 の o。 wgetだと 大文字 の -O でダウンロードファイルの指定になるから毎回迷う。やってられん。 curl は 小文字 で指定。 ちなみに wget で小文字の -o はログファイルの指定。やってられん。 -O: 指定した URL の内容をそのままファイルとしてダウンロード long option は --remote-name ...は? この記事を参照してくださってた記事で書いてあったオプション← 上で紹介した -o のように、このオプションを使ってもファイルダウンロードになる。 た・だ・し! このオプショ

    curl option 覚え書き - Qiita
    kadoppe
    kadoppe 2018/08/31
  • nsenter・docker-enterでコンテナに入る方法 - Qiita

    概要 nsenterかdocker-enterコマンドを使う事で、コンテナ(namespace)にSSHを使わず入ることができまる。ここでは、セットアップの仕方と使い方を紹介。 課題 Dockerfile 等でENTRYPOINTをデーモンに指定すると、サーバの操作ができず、SSHログインすることが出来ない。CentOS6 の Docker コンテナであれば sshd を起動させておけるが、CentOS7 では環境によって systemd で sshd を起動させることが出来ないだけでなく、来のコンテナの使い方としては推奨されていない。 また、docker attach を使う場合は Ctrl+Pキーが無効のため、emacs等のキーバインドに支障がでる。 nsenterとは? Dockerで作った名前空間(ネームペース;namespace)に入るためのコマンドライン・ツール。nsente

    nsenter・docker-enterでコンテナに入る方法 - Qiita
    kadoppe
    kadoppe 2018/08/27
  • Docker for Macのvolumesの場所 - Qiita

    docker-composeにてvolumesを指定すると、dockerコンテナを再起動してもデータが消えないように どこかにvolumeが作られるが、どうやってアクセスするのかがわからなかった・・・ アクセスする方法がわかったのでまとめておく 環境 macOS: 10.13.1 docker: 17.09.0-ce 仮想マシンにアクセスする 仮想マシンの上で実行されている(らしい)ので、 一度仮想マシンにアクセスする必要がある screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

    Docker for Macのvolumesの場所 - Qiita
    kadoppe
    kadoppe 2018/08/27
  • Docker Composeでボリューム作成 - Qiita

    app: image: busybox container_name: app volumes: - /home/vagrant/opt/mysql:/var/lib/mysql mysql: image: mysql container_name: mysql environment: MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes_from: - app パーミッションエラーにならないパターン 「/var/lib/docker/volumes/mysql-db」フォルダに永続化される ※ ただし、「docker-compose down -v」されるとボリュームも削除されるので注意! トップレベルにvolumes:を置いてボリュームの定義する

    Docker Composeでボリューム作成 - Qiita
    kadoppe
    kadoppe 2018/08/27
  • 「さようなら ImageMagick」の考察 - Qiita

    はじめに サイボウズさんの ImageMagick の利用をやめる記事について少し思う所を書きます。否定というよりアシストのつもりです。(2018年08月26日投稿) さようなら ImageMagick 自分のスタンスを3行でまとめると、 policy.xml で読み書き出来るファイル形式を絞れば、いうほど怖くはない ただ、ImageMagick に限らずサーバサイドで動かすのは手間と覚悟が要る Yahoobleed の件でコード品質が信用ならないと言われたら、ごめんなさい 「ImageMagick を外した理由」 サイボウズさんのブログでは、2017年の ImageMagick 脆弱性報告数が多いので駄目との事です。 脆弱性 ImageMagick には脆弱性が大量に存在します。 2017 年に報告された ImageMagick の脆弱性は 236 件 でした。 大量にある上にリモートコ

    「さようなら ImageMagick」の考察 - Qiita
    kadoppe
    kadoppe 2018/08/26
  • Google Cloud Dataflow ってなんだ? - Qiita

    株式会社WACUL、CTOの包です。 会社のみんなでパンを作ったりカレーを作ったり映画をみたりと楽しい日々を過ごしてます。 ここ最近、Google Cloud Dataflow をいじってみているので、入門したメモとして、整理してみました。 これから触ってみようとする人が最初に読んで、ざっくり概要を理解する助けになればと思います。 ストリーミングやバッチ処理に深い専門知識があるわけではないので、間違ったことを言っていたら教えていただけるとうれしいです。 この記事を読んでわかること Google Cloud Dataflow のだいたいの概要と目指している世界感 だいたいのコードの雰囲気 概要を知った上で次に読むべき参考資料 この記事を読んでもわからないこと Dataflow 上でコードを書いていくときの具体的な知見 運用上のの知見 まずは参考資料 これまでに読んだ Google Cloud

    Google Cloud Dataflow ってなんだ? - Qiita
    kadoppe
    kadoppe 2018/08/21
  • Git LFS で大きいサイズのバイナリファイルも Git で管理する 🚀 - Qiita

    Git LFS (Git Large File Storage) とは、Git で大きいサイズのバイナリファイル(稿では、ラージファイルと省略して呼びます)をバージョン管理するための仕組みです。 Git はその性質から、ラージファイルを扱うにはいくつかの問題をはらんでいて、Git LFS はその問題を解決するための機能を Git の拡張として提供するものです。 稿では Git LFS の概要紹介として、どういった問題が存在していて、どのように解決されるか、一方でどういった問題が解決されないかまでを、まとめて紹介します。 Git のラージファイル管理における問題点 まず Git LFS の背景として、ラージファイル管理における問題点を、Git の特徴を抑えつつ紹介します。 バイナリファイルの管理に不向き Git は、ソースコード(テキストファイル)のバージョン管理に特化したツールです。

    Git LFS で大きいサイズのバイナリファイルも Git で管理する 🚀 - Qiita
    kadoppe
    kadoppe 2018/08/19
  • CSSフレームワークBulmaの概要をまとめてみた - Qiita

    記事の内容 簡単な文法で、モダンなWebデザインが構築可能なBULMAの概要をまとめまてみました。 以下の内容は、公式HPのOverviewをまとめたものです。 関連記事 概要ではなく、個別の機能については以下の記事にまとめています。 CSSフレームワークBulmaのModifiersとは BULMAとは CSS3標準のFlexboxをベースにした、オープンソースのCSSフレームワークです。 公式HP:https://bulma.io Overview Getting started BULMAの利用方法は3つあります。 npm, CDN, github直接ダウンロードにより利用可能です。 ex) npmの場合:

    CSSフレームワークBulmaの概要をまとめてみた - Qiita
    kadoppe
    kadoppe 2018/08/12
  • Nuxt.jsとContentfulでブログ作ってみた - Qiita

    これは Vue.js #3 Advent Calendar 2017 – Qiita 21日目の記事です。 デモ:https://hisako135.github.io/nuxt_blog/ リポジトリ:https://github.com/hisako135/nuxt_blog Nuxt.js 使ってみたいけど何をつくろうかな〜と思案していたらば、『SEOOGP……Vue.js製SPAの「困った」を解決できる「Nuxt.js」が便利だ!』という記事でブログを作っていたので、なんだかちょうどよさそうと思い以下を追加してやってみることにしました。 Contentful から記事を取得する トップページに配置するコンポーネント( components/PostPreview.vue )をつくる 記事一覧ページと個別記事ページをつくる nuxt generate で静的ファイルを生成する Gi

    Nuxt.jsとContentfulでブログ作ってみた - Qiita
    kadoppe
    kadoppe 2018/07/08
  • Node.jsのStream APIの概要 - Qiita

    Streamとはファイルの読み書きやSocketでの通信など、主にI/Oにおけるデータの流れを制御するAPIです。 Streamは0,1,2,3のバージョンがありますが、Node.js v0.12からは3が使われているのでそれについて書きます。 公式ドキュメントNode.js v5.2.0 Documentation Streamがわかりやすいですが、特に重要だと思った部分だけ大雑把にまとめてみました。(ドキュメントの日語訳はv0.11.11のものがあります。多少異なりますが参考までに) 利用する側 ReadableStream 例えばReadableStreamによるファイル読み込み処理は次のように書きます。 全てのまとまったデータが一度に取れるのではなく'data'イベントで少しずつデータが流れてくるのが特徴的です。 var readableStream = fs.createRea

    Node.jsのStream APIの概要 - Qiita
    kadoppe
    kadoppe 2018/06/26