KUSAMAKURA

智に働けば角が立つ。情に棹させば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい。

O'Reilly Japan Ebook Store で購入時の領収書の求め方

O'Reilly Japan Ebook Storeでは、O'Reilly Japan のすべての書籍を DRM Free で購入することができる。結構、前から実施されているので何を今更と言ったところなのだが、毎度困るのが、領収書。本家には領収書の取り方に関する記述が記述がなく、いつもやり…

トランザクションの整合性が保てないからロックしました、というお話

フィクションとノンフィクションって、どっちが創作なのだかすぐ忘れる。いや、fiction が創作なのはわかるんだけど、フィクションですと結びつかないのですよ。同じ人居るかな? さて、問題。次のような事態が発生しました。次のように対応したのですが、何…

これは便利!slack で会話の迷子から解放されるスレッド機能の概要と使い方を紹介

概要 スレッドの機能 メッセージをスレッド化 スレッドのフォローとアンフォロー 派生元チャンネルにも通知 スレッドを利用する際の注意点 元のチャンネル側には表示されません スレッド化が目立たない フォローしていないスレッドは存在すら見えない まとめ…

IntelliJ IDEA を使って最速で REST API を動かす手順(Maven + Spring Boot + Tomcat + Lombok)

概要 IntelliJ IDEA のインストール SPRING INITIALIZR でひな形プロジェクトを作成 1. Dependencies の追加 2. ひな形プロジェクトの作成 3. IntelliJ でプロジェクトの読み込み 4. ひな形プロジェクトの動作確認 Web API 5. プロジェクトの起動 クライアン…

シグネチャに、T とか、K とか書いてあると API そっ閉じしちゃうジェネリクス フォビア向けに、Java の総称型を説明してみた

総称型(ジェネリクス)とは 総称型の書き方 クラス メソッド コンストラクタ 総称型のネーミング ワイルドカード(非境界ワイルドカード) extends と super(境界ワイルドカード) (上限付き境界ワイルドカード) (下限付き境界ワイルドカード) まとめ …

Stream の API 見てみたけど、 「Predicate<? super T> predicate」 とかぼんやり眺めてあきらめた人向けに、Stream を使えるように、関数インターフェースを説明してみた

関数インターフェースとは もうひと砕き パッケージ java.util.function の分類 Consumer Function<T,R> Predicate Supplier 副作用 まとめ 余談 関数インターフェースとは ラムダ式やメソッド参照の対象となる型を提供するインターフェースのこと。関数メソッド</t,r>…

Java8 で導入された Stream の使い方をはじめて使ってみる人向けに体系的に説明してみた

Stream とは オブジェクトに対する Stream と、プリミティブに対する Stream オブジェクトに対する Stream プリミティブに対する Stream Stream メソッドの種類 中間処理 終端処理 Stream インターフェースのメソッド分類 Stream の使い方 よく使う中間処理…

redis キーのネーミング

redis キーのネーミングルールに迷ったが、本家の topics にサンプルになりそうな記述があったのでまとめてみた。 記事としては、Redis のキーに対してどのような値を設定するべきか、と言った内容なのだが、ここではネーミングに関してのみ書き出してみた。…

boolean 値を返却するメソッド名、変数名の付け方

boolean 値を返却するメソッド名や、変数名の名前のテンプレを作ってみた。名前に気を付けるだけで、意外と綺麗なコードになるので、参考にして欲しいです。 名前の付け方 is + 形容詞 形容詞の状態であるかを尋ねる. ex) isEnabled has + 過去分詞 動詞の状…

Spring の @Scope のデフォルト挙動

Spring の DI では、デフォルト「Singleton」が設定されます。Controller であってもデフォルト Singleton と言うのは、直感的な動作とは異なるため、それぞれの Scope 設定でどのように動作するのかを調べてみました。 スコープの説明 まずは、それぞれのス…

コード値を持つEnum型のJSONシリアライズ

Enum型のJSONシリアライズ Enum型はJSONに変換すると、nameで変換される。コード値などを持った Enumの場合、コード値を使って変換したい場合があるので、一番簡単そうな方法を書いてみた。 SerializedName を使用 @SerializedName で、Jsonシリアライズ時の…

Redis のデータ型

Redis のデータ型 ここでは、単純ながらList型、Set型、Hash型の違いを主に説明する。 詳しい説明は、原文 と、丁寧に説明しているサイト があるので、そちらを参考にして欲しい。 Redis のデータ型 ざっと、Redis で扱うデータ型の説明。データ型は下記のパ…

JavaScript の Overload

JavaScript の Overload をテスト。というより、ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO を使ってみたかっただけなんじゃないかという。 JavaScript では関数の多重定義をすると、直前の定義で上書きされます。実際に多重…

git リモートリポジトリの作り方

git

サーバ作業 mkdir /var/lib/git/HOGE/moge.git cd /var/lib/git/HOGE/moge.git git --bare init --shared クライアント作業 mkdir HOGE/moge cd HOGE/moge git init echo "my first commit" > readme git add . git commit -m "my first commit." git remote…

git push で「error: RPC failed; result=22, HTTP code = 0」が発生

git

事象 git push 時に下記のエラーが発生する。 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly error: RPC failed; result=22, HTTP code = 0 Everything up-to-date 原因 Content-Length の指定がないため、サーバ…

自己証明書を使った Git に繋ぐ

git

事象 自己証明書を使った Git に繋ぎに行くとエラーになる。 解決方法 自己証明書を許容するようにする。 git config --global http.sslVerify false または、 .gitconfig に直接設定を書き加えてください。 [http] sslVerify = false まあ、正規の証明書を…

ncmb (NIFTY Cloud mobile backend) の logout メソッドの挙動

ncmb.User のログアウト挙動がAPIドキュメントを確認しても今ひとつ理解できなかったので、実際に実行結果を比較してみた。 APIドキュメントの確認 先ずは、APIドキュメントの記述を確認。 User.logout ( callback ) (クラスメソッド) カレントユーザ情報…

hubot pug me で Proxy エラー

社内環境等、インターネットと Hubot の間に Proxy を挟んだ環境では、 Proxy を設定しないと Socket Error が発生してしまいます。 proxy を設定しないと・・・ Proxy を設定しないと下記のようなエラーが発生してしまいます。 Hubot> hubot pug me Hubot> …

Hello Hubot

これまでは、hubot --create を利用していたが、現在は非推奨になっています。 generator-hubot を使う形式となるため、この記事の実施前に、Windows で hubot を動かす の記事を参考に、hubot の実行環境を整えて置いて下さい。 bot 用の作業ディレクトリを…

Windows で Hubot を動かす

Node.js のインストール nodejs.org からインストーラ落として、ウィザードに従うだけで完了。 特に落とし穴もありませんでしたが、 「Node.js」のインストール を参考にしました。 Hubotのインストール HUBOT をインストールします。TOP のロボットには何事…

Slack で Channel を削除する方法

Deleting a channel Because channel deletion is a destructive activity, only team owners and admins can delete channels. If a channel is deleted, all of its content will be removed from your team’s Slack archives permanently. We are unable …

Slack の始め方

最近国内企業でもチラホラと聞くようになった 「Slack」 について説明したいと思います。 Slack とは? スラックは、1対1のメッセージング、グループチャット、永続的なチャットルーム、ダイレクトメッセージ、トピック別に編成されたグループチャットをWeb…