サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
vividcode.hatenablog.com
1 行まとめ Ubuntu ベースの Docker コンテナで SSL 接続をするために ca-certificates パッケージをインストールしましょう。 エラー内容 Ubuntu 18.04 (ubuntu:18.04) ベースの Docker コンテナで HTTPS 接続ができなくて npm install に失敗した。 root@068c8e545fca:/# npm install -g carto npm ERR! Linux 4.9.125-linuxkit npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "carto" npm ERR! node v8.10.0 npm ERR! npm v3.5.2 npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY np
概要 背景 これまで Terraform を local バックエンドのみで使ってきた (tfstate ファイルをローカルホスト上に保持) のだけれど、複数マシンで Terraform を使いたい場合に不便だったのでバックエンドについて調べた。 そこで、最近は remote バックエンドというものがあって便利そうということが分かったので使ってみた。 やったこと もともとローカルホスト上に tfstate ファイルを保持していたが、remote バックエンドを使うように変更した。 雑感 remote バックエンドで Terraform Cloud を使うのは、かなり簡単に始められて楽だった 取り入れるのも楽だし状態保持だけなら無料枠でできるので、個人の趣味プロジェクトとかでも気軽に使っていきたい Terraform Cloud が止まったときとかのリスクは多少気になるが リモート実行もチー
Gradle でビルド成果物 (build artifact) を Maven リポジトリに公開するためのプラグインとして、maven-publish プラグインがある。 Maven Publishing (new) - Gradle User Manual maven-publish プラグインとマルチプロジェクトの依存関係 簡単な例 Java ライブラリのプロジェクトがあったとして、JAR ファイルを Maven リポジトリに公開するための build.gradle の記述は以下のようになる。 // Java ライブラリのビルド用の設定などは省略 apply plugin: 'maven-publish' publishing { publications { mavenJava(MavenPublication) { from components.java } } } これで pu
インフラやっていくぞー、という気持ちで去年の中ごろに読んだ。 Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス 作者: Kief Morris,宮下剛輔,長尾高弘出版社/メーカー: オライリージャパン発売日: 2017/03/18メディア: 単行本(ソフトカバー)この商品を含むブログ (2件) を見る 本書では最初 (第 1 部) に 「なぜ Infrastructure as Code が必要なのか」 「Infrastructure as Code とは何なのか、何を目指しているのか」 といった説明から始まり、Infrastructure as Code に関わるサービスやツールの紹介がなされる。 そして 2 部では、1 部で紹介されたツールなどを使ったサーバーの追加や変更といったインフラストラクチャの運用のパターンが紹介される。 最後の 3
こんにちは、Docker ビルドおじさんです。 今日ずっと docker build してる (してない)— Nobuoka Yu (@nobuoka) 2019年3月22日 ubuntu:18.04 ベースで Dockerfile を書いてビルドしまくってるのですが、apt install がとにかく遅い!!! なぜなら日本に住んでいるから!! archive.ubuntu.com が遠い!!! Dockerfile に追記せずに apt で使うリポジトリを https://t.co/Skrw55Kyjw から国内のミラーに変える技みたいなのないんだろうか……— Nobuoka Yu (@nobuoka) 2019年3月22日 解決方法 調べてみたらいろいろ解決策がありそうだった。 解決策 その 1 日本を出る。 archive.ubuntu.com の近くに行きましょう。 解決策 その
エンジニアリングマネージャってエンジニアリングに対するマネージャだと思うんだけど、たまに 「エンジニアリングマネージャはエンジニアリングをわかっていなくても務まる」 みたいな言説を目にする。 それはエンジニアリングマネージャではなくて単なるエンジニア組織のラインマネージャなのでは?— Nobuoka Yu (@nobuoka) 2019年2月19日 最近エンジニアリングマネージャという言葉をよく聞くようになった気がするのだけど、自分の思っているエンジニアリングマネージャ像 *1 と全然違うエンジニアリングマネージャ像を語っている人もいる *2 ので、何かしら文献があったりしないのかなーと思って調べたところ、1997 年の paper を見つけた。 peer.asee.org 修士課程のエンジニアリングマネジメントのカリキュラムで使えることを目的とした paper らしく、なかなか興味深かっ
ユースケース駆動開発実践ガイド (OOP Foundations) 作者: ダグ・ローゼンバーグ,Doug Rosenberg,三河淳一,船木健児,佐藤竜一出版社/メーカー: 翔泳社発売日: 2007/10/17メディア: 大型本購入: 11人 クリック: 105回この商品を含むブログ (33件) を見る ユースケースを出発点とする開発プロセスを学びたかったので読んだ。 ちなみにこの書籍が言っている 「ユースケース」 というのは Ivar Jacobson (イヴァー・ヤコブソン) によるものであり、Uncle Bob の Clean Architecture が言う 「ユースケース」 と (基本的には) 同じものである *1。 結論から言うと、本書は個人的に学びの多いものであった。 私は 「DDD を実際の開発プロセスにどう取り込んでいくと良いか?」 「Clean Architectur
Twitter で見かけて面白そうだったのでちょっと考えてみた。 関連記事 Fizz Buzz ユースケースについてのまとめ : 2019-02-16 UseCase とは何か | wada811.com ユースケースについて : FizzBuzzを題材にユースケース層についてを考えるのはおそらく無意味な気がする - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く ドメインモデリングしなおすことについて : 仕様変更が想定される場合の Fizz Buzz のドメインモデリングについて - ひだまりソケットは壊れない Fizz Buzz のロジックをドメインレイヤ (Entities 層) とアプリケーションレイヤ (Use Case 層) のどちらに書くか UseCase がわからない... FizzBuzz で 「3の倍数のときは fizz が返る」 「5の倍数のときは buzz が返
DroidKaigi 2019 にスポンサー枠で参加しました。 弊社では Android アプリエンジニアをはじめとして各分野のソフトウェアエンジニアを募集しております。 人生を豊かにするプロダクトの開発や、大きな企業でのソフトウェア開発をいかに改善していくかといったところに興味がある方はぜひお声がけください! いっしょにやっていきましょう! DroidKaigi 2019 それはともかく DroidKaigi、様々なセッションがあって素晴らしかったですね。 運営、スピーカー、スポンサー、そして参加者の皆様、ありがとうございました。 私個人としては、GraphQL についての知見を得られたのが大きな収穫でした。 本記事について 本記事は、GraphQL サーバーを Kotlin で立てるにあたって、仕組みを学んだ軌跡を残すものです。 GraphQL 自体の初心者が、Kotlin で Gra
Robert Cecil Martin 氏、いわゆるアンクル・ボブ (ボブおじさん; Uncle Bob) による Clean Architecture についての書籍。 Clean Architecture 達人に学ぶソフトウェアの構造と設計 作者: Robert C.Martin,角征典,高木正弘出版社/メーカー: KADOKAWA発売日: 2018/07/27メディア: 単行本この商品を含むブログを見る アンクル・ボブの Clean Architecture といえば、下記記事を読んだことがある人も多いだろう。 The Clean Architecture | The Clean Code Blog 翻訳 : クリーンアーキテクチャ(The Clean Architecture翻訳) | blog.tai2.net ここ数年の Android アプリ開発界隈でも Clean Arch
2018 年の Google I/O でも発表があった *1 Android アプリバンドル (Android App Bundle)。 Android Studio 3.2 を使っているとアプリのビルドで App Bundle を選べるようになっていたりするし何となく存在は知っていたけどちゃんと調べてはいなかった。 developer.android.com Instant アプリを試しに作ってみようとしたら Android アプリバンドルの知識が必要になったので、この機会にちゃんと調べてみることにした。 とりあえずコードラボの内容をさーっと見たのでまとめておく。 コードラボ : Your First Android App Bundle Android アプリバンドルについて Android アプリバンドル (Android App Bundle) : Google Play へアップ
use std::io::prelude::*; というコードを見かけて、「プレリュード (prelude) ってなんだっけ」 と思ったので調べた。 Rust のプレリュード まず、Rust で真にプレリュードと呼ばれるものは std::prelude というモジュールらしい。 Rust comes with a variety of things in its standard library. However, if you had to manually import every single thing that you used, it would be very verbose. But importing a lot of things that a program never uses isn't good either. A balance needs to be str
広木大地さんの 『エンジニアリング組織論への招待』。 良い本だと話題になってましたね。 うちのチームでも皆で読んでます。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング 作者: 広木大地出版社/メーカー: 技術評論社発売日: 2018/02/22メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 本書の 「はじめに」 には、以下のように書かれています。 本書は、「不確実性に向き合う」 というたった 1 つの原則から、エンジニアリング問題の解決方法を体系的に捉える組織論です。 わからないものを避ける本能を、どのように理解し、克服し、導くのか。 テクノロジーを力に変えたい経営者やエンジニアリーダー、そして、今、かつての私と同じように悩んでいる人へのチャレンジのきっかけとなればうれしいです。 エンジニアリングとは 「何か役に立つものを」 「
Activity が再生成される際の、View の onSaveInstanceState メソッドと onRestoreInstanceState メソッドについて個人用にまとめておく。 Activity の再生成 Activity が再生成 (re-creation) される際には、以前の状態が Activity#onCreate と Activity#onRestoreInstanceState に渡される。 See : The Activity Lifecycle | Android Developers Activity#onRestoreInstanceState が呼ばれるのは、Activity#onStart が呼ばれた後。 『This method is called after onStart() when the activity is being re-initia
試した環境 Windows 10 Home (Anniversary Update; 64-bit 版) Docker Toolbox 1.12.0 前提知識 docker run -v /path/of/host/dir:/path/of/container ... という感じでホストディレクトリをデータボリュームとしてマウントできる。 Windows で Docker Engine を使う場合、ホストディレクトリのパスは 「/c/Users/.../...」 という形式で記述する。 バージョン 1.10 のドキュメント 参照。 最新のドキュメント では 「c:\Users\...\...」 という表記になっているが、これがあってるのか間違ってるのかは不明。 Windows で Dockcer Toolbox 1.12.0 を試した限りではだめだった。 ホストディレクトリのパスは絶対パス
CircleCI 2.0 のウリの一つが、1.0 より柔軟になったキャッシュ機能である。 キャッシュのキーを自分で決定し、ファイル群をキャッシュすることができる。 そして、キャッシュのキーの決定には、ブランチ名を使ったり、指定のファイルのチェックサムを用いたりできる。 たとえば pom.xml のファイルの内容に応じてキーを変更したい場合は m2-{{ checksum "pom.xml" }} という風に記述する。 (下記参考ページのサンプルより。) 参考 : Caching Dependencies さて、ファイルの内容が異なっていたらキーを変えたい、というとき、その対象のファイルが複数個存在することが多いと思う。 記法的には m2-{{ checksum "pom.xml" }}-{{ checksum "..." }}-{{ checksum "..." }} という風に複数ファイ
背景 : コルーチンの Select 式の実装を理解するのが難しかった コルーチンのドキュメントを読んでいて select 関数というのが出てきたのだけど、これの実装がどうなっているのかすぐにはわからなかった。 suspend fun selectFizzBuzz(fizz: ReceiveChannel<String>, buzz: ReceiveChannel<String>) { select<Unit> { // <Unit> means that this select expression does not produce any result fizz.onReceive { value -> // this is the first select clause println("fizz -> '$value'") } buzz.onReceive { value -> /
KotlinConf 2017 の情報を追ったり、Ktor を見たりしているとコルーチンがよく出てくる。 コルーチンについては概要は知っているが詳細を追いかけていなかったので、コルーチンについて学んでメモ程度に記録しておく。 Kotlin 1.1 においてコルーチンは実験段階で、将来にはこのページの情報は古くなっているかもしれないので注意されたし。 本記事に書かれている内容 コルーチンとは何か コルーチンの実装がどこにあるのか (言語サポートと標準ライブラリと外部ライブラリ) コルーチンの基本的な使い方 コルーチンのキャンセル処理について コルーチンコンテキストについて チャンネル 並行性の問題 Select 文 Coroutine (コルーチン) って何? まずは公式リファレンスの情報を追う。 公式リファレンス : Coroutines - Kotlin Programming Lang
JDK の javac コマンドを使って過去バージョンの Java 言語で書かれたソースコードをコンパイルする際には、-source オプションや -target オプションを使用してきました。 (JDK 8 までの話。) このとき、適切なブートストラップクラスパスを設定しなければ、対象バージョンに存在しない Java API を使用していてもビルドが通ってしまう、という問題がありました。 参考 : Java のバージョン間クロスコンパイル時の標準ライブラリについて (JDK 8 で Java 7 向けにコンパイルする場合など) - 一角獣は夜に啼く JDK 9 の javac コマンドには --release オプションが追加されました。 今後は (基本的には) このオプションを使用するようにすると良さそうです。 ドキュメント : javac Java SE 9 (Oracle JDK
Java SE 9 がリリースされましたね! めでたい! さてさて、Java SE 9 の目玉といえばやはり The Java Platform Module System (JPMS; JSR 376) ですよね! Project Jigsaw の心臓部です。 この記事では JSR 376 をさらっと読んで、JPMS の全体像をまとめておきます。 (実際の使い方などはこの記事の範囲外です。) モジュールシステムの理解への取っ掛かりとして皆さんの一助となれば幸いです。 仕様 (JSR 376) 概要 The Java Platform Module System (JPMS) の目的とその手段 JSR 376 に書かれているとおりの内容を日本語にしてます。 目標 JPMS の目標は、親しみやすく、それでいてスケーラブルなモジュールシステムを定義すること。 開発者がライブラリやフレームワーク
もともと Selenium 2.0 で導入された WebDriver ですが、単に 「WebDriver」 と言ってもいろいろなものを指すことがあり *1、WebDriver を初めて使おうとする人にはややこしい状況だと感じています。 (私は数か月前に WebDriver を使おうとして混乱しました。) というわけなので、私が調べた 「WebDriver とは何か」 を簡単にまとめておきます。 WebDriver とは何か WebDriver とは、ユーザーエージェント (web ブラウザ) を外部のソフトウェアから操作したり情報を取得したりできるようにするためのものです。 テストの自動実行などに便利ですね。 W3C WebDriver と Selenium WebDriver 冒頭で述べた通り、Selenium 2.0 の目玉機能として導入された WebDriver なのですが、現在は
最近 Android のアカウントマネージャを仕事で触ったので、調べた内容としてアカウントマネージャの概要をまとめておきます。 Web 上を調べると AccountManager を使う処理の実装方法はいろいろ見つかるのですが、アカウントマネージャの概要を説明しているページはあんまりなくて全体像を掴みにくいと思っています。 そういう情報を探している人の役に立てば幸いです。 公式ドキュメント アカウントマネージャに関する公式ドキュメントは以下のものぐらいしかなさそうです。 AccountManager クラスのドキュメントを全て (各メソッドの説明も含めて) 読むと大体理解できると思います。 (下記ドキュメントを見て理解したら本ページの内容を読む必要はありません。) AccountManager | Android Developers AbstractAccountAuthenticato
Kotlin エバンジェリスト (JetBrains 黙認) であり、日本 Kotlin ユーザグループ代表であるたろーさん (長澤 太郎) によって書かれた書籍 『Kotlin スタートブック ― 新しい Android プログラミング』 (赤べこ本) を読みました!! Kotlinスタートブック -新しいAndroidプログラミング 作者: 長澤太郎出版社/メーカー: リックテレコム発売日: 2016/07/13メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 本書を読む前から、公式のリファレンスやチュートリアルなどの気になる箇所を見てはいて Kotlin についてはなんとなく理解はしていたのですが、ところどころ知識が欠けている部分もあったので、本書によってそういった知識の欠落を埋めることができました。 どんな本か? 内容については著者のたろーさんが紹介されてい
まあドキュメントを読めって話ではあります。 次のページにまとまっています。 Chapter 4. Guest Additions - 4.2.2. Guest Additions for Linux (Oracle VM VirtualBox User Manual) 背景 わりと長く VirtualBox を使ってきて、何度も Guest Additions をインストールしてきましたが、これまで Guest Additions のインストール手順をちゃんと見たことがありませんでした。 これまでは雑にインストールメディアからインストールできてたのですが、今回 VirtualBox 上の仮想マシンに Debian 8 をセットアップして Guest Additions をインストールしたらちゃんとインストールできてなかった *1 ので、改めて調べてみました。 インストール方法 最初に言った
レスポンシブデザインのために CSS メディアクエリを使うことが多いと思います。 CSS 側だけで完結したらいいのですが、JavaScript 側でも画面サイズの変更を検知したかったり、画面サイズ以外のメディアクエリ相当のことをしたくなったりすることはありますよね。 画面サイズの変更自体は window に発生する resize イベント (window.onresize イベントハンドラ) で検知できますが、CSS メディアクエリとこれを組み合わせてレスポンシブ対応しようとすると以下の問題がでてきます。 ウィンドウサイズ変更時に resize イベントが高頻度で発生するので、resize イベントのリスナでコストのかかる処理を行うのはよくないとされる。 (Throttling することが推奨される。) 参考 : resize | MDN CSS メディアクエリと完全に対応するものではない
私事で恐縮ですが、2016 年 8 月 31 日付で株式会社はてなを退職しました。 はてなユーザーの皆様や一緒に仕事をした皆様、また、仕事以外でも勉強会などで一緒になった皆様、大変お世話になりました。 ありがとうございました! いろいろと送別の品を頂きました! ありがとうございます!! 入社したのは 2012 年 4 月で、当時は本格的な web サービス開発について全然知らないという状態でした。 そこから約 4 年間、Perl での web アプリケーションの開発から JavaScript や TypeScript でのフロントエンド開発、Windows ストアアプリや Android アプリといったクライアントアプリ、開発環境周りなどを経験し、社内の人にも社外の人にもいろいろと教えてもらいながら web サービスのエンジニアとして成長することができました。 本当にありがとうございました
この記事は、もともと次のページに書かれていた内容に、加筆・修正を行ったものです。 Java における byte 型の扱い方 - vivid memo はじめに この記事では、ビット列を角括弧で囲み、[00000000] のように表現する事にします。 byte 型の表現範囲 Java のプリミティブ型 (基本データ型) の 1 つに byte 型というものがあります。 その名の通り 1 バイト (8 ビット) のサイズの整数値を表現できます。 つまり、[00000000] から [11111111] まで表現することができます。 数値でいうと 0 (0x00) から 255 (0xFF) まで表現できる、と思うところですが、実際には Java の byte 型は符号付きであり、表現できる範囲は -128 から 127 までとなっています。 The values of the integral
Android Testing Support Library (ATSL) の話。 バージョン 0.5 時点での情報です。 ライブラリの準備方法などはドキュメントを読んでください。 テストサイズを表すアノテーション android.support.test.filters というパッケージがあって、この中にはテストをフィルタするのに使用できるアノテーションが入っています。 その中に、テストのサイズを表すためのアノテーションが 3 つ入っています。 @SmallTest アノテーション : 200 ms 未満で終わるようなテスト。 ほぼユニットテスト用。 各種リソース (ファイルや DB、ネットワーク) は使用しない。 @MediumTest アノテーション : 1,000 ms 程度で終わるようなテスト。 コンポーネント単体やいくつかのコンポーネントを結合してテストする場合に使用する。
#2 に続いて Rust のドキュメントをぼちぼち読んでます。 このブログ記事はメモと感想程度のものですので、詳細は各見出しの下のリンク先を見てください。 今回は構造体とか列挙型とかメソッドとかトレイトとかそこら辺のオブジェクト指向っぽい部分 (の途中まで) を読みました。 パターンマッチとか文字列とかも出てきました。 構造体 (Structs) Structs // こういう感じで定義して、 struct Point { x: i32, y: i32, } // こういう感じでインスタンスを生成。 let origin = Point { x: 0, y: 0 }; // `..` に続けて別のインスタンスを指定すると、残りのフィールドにそのインスタンスの値を渡せるぽい。 let x1 = Point { x: 1, .. origin }; Tuple に名前を付けたような Tuple
次のページ
このページを最初にブックマークしてみませんか?
『ひだまりソケットは壊れない』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く