Works by

Ren's blog

@rennnosuke_rk 技術ブログです

【Kotlin】Java(8) -> Kotlinやってみて「良い」と思ったことリスト

Kotlinをやっていて、Java(8)と比較して良いな、と思った部分を書きました。 null許容型 Swiftなどにもありますが、Kotlinではnull許容型が定義されており、それと対を成すようにデフォルトの型宣言ではnullが許容されないようになっています。 val hoge: St…

【Kotlin】Kotlin CLIでKotlinをJavaバイトコードにコンパイル/実行する

今日はじめてKotlinを触ってみたのですが、その際に使用したKotlin CLIによるコンパイルと実行のメモです。 Kotlin CLIのインストール 実施環境:Mac OS X Mojave 10. 14.2 brew でインストールできます。 $ brew update $ brew install kotlin コンパイル …

【Twitter】Twitter OAuthでメールアドレスの第三者共有を許可する設定

メモ。 Twitter OAuth1.0a認証にて、メールアドレス認可を第三者に行いたい場合、下記のような設定が必要になります。 1. OAuth認証ページURLリクエストに include_email を含める https://api.twitter.com/1.1/account/verify_credentials.json?include_ema…

【npm/yarn】パッケージをダウングレードする

npm

メモ。 npm では、パッケージのダウングレードを行う場合、一旦パッケージを削除してから再度インストールし直す必要があります。 $ npm remove cowsay $ npm install --save cowsay@1.0.0 yarn であれば、 yarn upgrade [パッケージ名]@[version] で指定し…

【React Native/Expo】Google Oauth認証で認証後リダイレクトを行う

前回の記事では、Expoを使用して作成したReact NativeアプリにGoogleのOAuth認証を実装しました。 rennnosukesann.hatenablog.com 今回はその認証後にリダイレクト先URLを設定し、リダイレクト先にログインユーザの情報にアクセスするためのトークンを渡す手…

【ReactNative/Expo】Google OAuth認証をReact Native(Expo)アプリに実装する

前回はExpo CLIでReact Nativeプロジェクトを作成しました。今回は同じくExpoを使って、Google OAuth認証を実装するネイティブアプリをReact Nativeで実装してみます。 OAuthとは OAuth、特に2.0については下記の記事参照。 rennnosukesann.hatenablog.com …

【React Native】Expo CLIを利用してReact Nativeプロジェクトを作成する

あけましておめでとうございます。新年一発目の記事です。 今年もやっていきましょう。 今回はバックエンドAPIのドライバとしてクライアントアプリ(React Native)を作るためにExpoを使ったので、備忘録も兼ねてExpo CLIの紹介をしようと思います。 Expoと…

【2018年終】約半年間、技術ブログを毎日書き続けた話

TL;DR 2019年はがんばります 概要 2018年ももう終わりなので、今日は技術的な話ではなく「ブログ書いててどうだったか」について書こうと思います。 なぜ、毎日ブログを始めたのか 技術ブログを毎日書くきっかけとなったのは、「SOFT SKILLS ソフトウェア開…

【Spring】@TransactionalでTransactionManagerを明示的に指定する

メモ。 TL;DR Spring で使用する@Transactionには、下記のように使用する Manager を明示できます。 @Transactional("jpaTransactionManager") 複数のTransactionManagerの定義と@Transaction Springにおける@Transactionは、デフォルトで用意されている一意…

【Spring/Jackson】Rest API : JSON RequestBodyのプロパティをEnum型としてマッピングする

メモ。 SpringのControllerでは、 @RequestBody を使用することでHTTPリクエストボディに設定されたパラメータをJSONで受け取ることができます。 @RestController public class FluitController { // Request Body にJSONを指定するAPI @RequestMapping(valu…

【Spring】オリジナルの `.properties` ファイルを作成・読み込み

メモ。 Spring では application.properties 以外に独自の .properties を生成し、その中で定義した値を使用することができます。 オリジナル .properties ファイルの作成とプロパティの参照 例えば、オリジナルのプロパティファイル myconfig.properties を…

【Angular】Angular CLIでライブラリの追加・ビルドを行う

Angular CLI 詳細は下記記事にて。 rennnosukesann.hatenablog.com ng add : 外部ライブラリを追加する ng add を使用すると、Angularプロジェクトへの外部ライブラリの追加を行えます(複数指定可能)。 Installing packages for tooling via npm. の文言か…

【webpack】webpackを使用してWebアプリケーションをバンドルする

webpackとは webPackとはモジュールバンドラと呼ばれるツールです。アプリーケーションが依存するjsモジュールを一つのjsファイルにまとめ上げ、依存関係の解決やトランスパイルを自動実行してくれます。内部的にモジュール同士の依存関係を表すグラフを自動…

【Angular】Angular CLIで簡単にAngularプロジェクトの作成・デプロイ・テストを自動化する

Angular CLI Angular CLIはGoogleが提供するフロントエンドフレームワークAngularのためのCLIツールです。Angularプロジェクトの作成やデプロイ、テスト自動化などをより簡単に実行することができます。 インストール npm でインストールします。 $ npm inst…

【Node.js】npxでローカルにパッケージを一時的にインストールして実行する

npm

npx npx はローカルにインストールしたnpmパッケージバイナリを直接実行できるコマンドです。npm5.2.0より導入されました。 このnpx にはパッケージを一時的にだけインストールしてその機能を実行する機能が備わっているので、 今回はその機能について紹介し…

【IBM COS】IBM Cloud Object Storageで署名付きURLを発行する

IBM Cloud Object Storageとは IBM Cloud Object Storage(COS)はIBMが クラウド上で提供するストレージサービスです。IBM Cloud上でAWSのS3のようなオブジェクトベースでリソースを保存できるストレージ環境を提供します。IBM Cloud上でサービスとして提供…

Macターミナルでカレントディレクトリを維持したまま新規タブを開くコマンド作った

script macho(script) #!/bin/bash PREV_WD=`pwd` osascript <

【Spring】環境変数で適用するapplication.propertiesを切り替える

複数の application.properties の切り替え Springフレームワークでは、アプリケーション内で使う設定を application.properties に書き込み、実行時に設定内容を反映させることができます。 application.properties // DB接続先 spring.datasource.url=http…

【Firebase】Firebase(+Vue.js)でWebアプリケーション上に認証を実装する

Frebaseとは Firebaseは、Googleが提供するモバイルアプリケーション開発のプラットフォームサービスです。mBaas(Mobile Backend as a Service) とも呼ばれ、モバイルアプリケーションのバックエンド機能を提供します。例えばアプリケーションの構築に必要な…

【Git】一部のstashファイルを復元する

Git

メモ。 Git管理下のプロジェクトで、下記の hoge/fuga/file1.txt hoge/fuga/file2.txt のような差分ファイルがあり、別の作業をしたくなってこれらを一旦 git stash で一時退避したとする。 $ git status On branch master Changes not staged for commit: (…

【Vue.js】vue-cliでVueプロジェクトを作成する

Vue.jsとは Vue.jsとは、近年急激に普及しつつある軽量フロントエンドフレームワークです。ReactのVirtual DOMやAngularの双方向バインディングといったメジャーなフレームワークが実装する強力な機能を備えつつ、学習コストが抑えめであるという特徴を持ち…

【IBM COS】IBM Cloud Object Storage

IBM Cloud Object Storageとは IBM Cloud Object Storage(COS)はIBMが クラウド上で提供するストレージサービスです。IBM Cloud上でAWSのS3のようなオブジェクトベースでのストレージ環境を提供します。 COSが使われるシーン 多くの場合、Webアプリケーシ…

【Git】ファイル名の大文字小文字の差分をトラッキング可能にする

Git

Gitに関するメモ。 TL;DR gitでファイル名の大文字・小文字の変更差分をトラッキングするには、下記オプションを有効にします。 $ git config core.ignorecase false 概要 gitの差分管理では、デフォルトでファイル名の大文字・小文字の変更差分を追跡してく…

【Spring Data JPA】@Queryによる更新/削除クエリには@Modifingアノテーションを付加する

TD;DR Spring Data JPAのRepositoryに@Queryで更新/削除クエリを定義するとき、@Modifingアノテーションを付加します。 @Modifing @Transactional @Query(value = "DELETE FROM PHOTO AS p WHERE p.USER_ID = :userId", nativeQuery = true) public void del…

【App】社内イベント用モバイルアプリ開発をやっていった話

まえおき この発言は個人の見解であり、所属する組織の公式見解ではありません。 TL;DR 社内イベント用のアプリ開発を、フロントエンドを中心にやっていきました。 経緯 私の所属する会社では年2回ほど著名人や社内で活躍する方々を招いた大規模なラーニン…

【python】QRコードを生成する

メモ。 qrcode モジュールを使えば、pythonで簡単にQRコードの作成ができます。 Usage import qrcode # QRコードに埋め込みたいテキストを引数に渡す # PIL.Imageオブジェクトが返戻される img = qrcode.make('hoge') # 保存 img.save('./qrcode.png') Resul…

【Java】log4j2

log4j2 log4j2はJavaのロギングユーティリティであるlog4jの後継です。 厳密にはv1のlog4jがv2担っただけのものですが、プロパティファイルの命名やプロパティの設定方法などが一部新しくなっています。 Log4j – Apache Log4j 2 - Apache Log4j 2 Usage Mave…

【CloudFoundry】CloudFoundryアプリケーションに対してssh接続を行う

メモ。 CloudFoundry上で立ち上がっているアプリケーションのホストにSSH通信したいとき、cf コマンドを利用できます。 cf こちらのページからインストーラをダウンロードし、インストールして完了。 github.com brew/yum/apt-getでもインストール可能です。…

【shell】任意拡張子を持つファイルの総行数をカウントする

メモ。 ある拡張子(複数可)を持つファイルすべての行数をカウントするコマンドは以下のようになります。 $ find . -type f | grep -E ".*\.java|.*\.css|.*\.html|.*\.js|.*\.php|.*\.py" | xargs cat | wc -l 適当にフィルタを掛けたい場合はパイプしてgr…

【Mac】rootlessとcsrutil

Mac

rootless MacではOS X 10.11(El Capitan)より、/userや/binなどのディレクトリへの書き込みがroot権限でも不可能となりました。 $ sudo mkdir /usr/hoge Password: mkdir: /usr/hoge: Operation not permitted この措置はrootlessと呼ばれるシステム整合性保…