幸ログ

ナレッジを溜めていきます

Kotlin+Spring Boot で例外クラスの作り方

KotlinとSpring BootでAPIの例外処理を書いていたのですが、色々と悩んだのでブログにのこします。 例 今回はKotlinとSpring BootでRestAPIを作る想定でコードを書いています。 存在しないIDを渡したときにエラー情報をJSON形式で返します。 Kotlinで例外ク…

Spock + Gebでダイアログを操作する方法

ここ最近はGroovyでテストを自動化するためにSpockとGebを使っています。 WebサービスでJSでconfirmなどで確認ダイアログをすることが多いと思うのですが、 そのテストの書き方がわからなかったので調べて実装してみました。 環境 Groovy 2.4.1 Geb 1.1.1 IE…

Android Studio 3.0 Canary 3でKotlinの開発準備

はじめに KotlinがAndroidに完全サポートされるということでAndroid Studio 3.0でKotlinで書けるようになります。 今回はプレビュー版を使って環境を構築していきます。 環境 Mac OS Sierra 10.12.5 Android Studio 3.0 Canary 3を入手 まずはAndroid Studio…

JUnitについて

JUnitとは Javaのテスティングフレームワークであり、単体テストに用いられる。 構文 コード gist37f6d65a300bf252041410b4cbd84c06 解説 変数 sut System Under Test : テスト対象になるクラスやオブジェクトの変数sutに格納させる。 actual Actual Value :…

1ヶ月1本目標 ~TeamGeekを読んでみた~

今年から新卒としてエンジニアになりました。 学生の時はチームで物を開発するわけではなく、一人でなにかを作ることで自分の技術力を磨いてきました。 これからは一人で物を作るのではなく、チームで物を作っていくことが大半になってくると思ったので、 エ…

MacでTomcatのインストール

概要 Java servletを使うためにTomcatをMacにインストールします。 Tomcatとは WebでJavaを動かすための仕組みです。 軽量のため拡張がしやすいらしいです。 詳しくは公式へ 環境 Mac OSX Yosemite 10.10.5 Java 8 Tomcat (8.5.1) インストール Tomcatをダウ…

Java 例外が定義されている抽象メソッドを実装する際の挙動をまとめてみた

概要 抽象クラスで定義されている抽象メソッドに例外処理としてthrowsでIOExceptionを定義しています。 この抽象クラスを継承した実装クラスでは、抽象メソッドで@Override定義する必要があります。 そのときの挙動を調べてみました。 ソースコード 抽象メソ…

Java メソッドの引数に関する暗黙の型変換について

暗黙の型変換って響きがいいよね!! 暗黙の型変換って響きがいいし便利そうだけど、初見にはとても混乱するものですね。 Rubyをよく使っていましたが、暗黙の型変換は使った覚えがそこまでないですね…(無意識に使っているのか… はたまた自分のコーディング力…

emacsを使っているけどvimの環境を整えはじめました

なぜ? Emacs Advent Calendar 2016で公開された記事を見て、 対策を先に打っておきたいなと思い、vimの環境を整え始めました。 qiita.com emacsが使えなくなった後に動くのも嫌だったので先手必勝です。 したこと vimのバージョンを上げた プラグインマネー…

2016年の振り返って

今年もそろそろ終わってしまいますね。 なので2016年を振り返ってみます。 1月 あけましておめでとうございます!! デブ活中です!!みたいな感じの月でしたね。 けっこうぐーたらしながら生活をしていた気がします笑 おせち上手かった おせちってなんでこんな…

デザインパターン 写経 Adapter

前回はIteratourを写経したので今回はAdapterを写経しました。 写経と言っても 写経してからなにかを作ってみるというもので、写経ではないですね。 しかし、写経も実はしているので御愛嬌。 Adapter 既存のクラスに対して修正を加えることなく、インタフェ…

デザインパターン 写経 ~ Iterator ~

Javaの勉強をするために写経をしようと思ったので今回はデザインパターンを題材にしました。 これからちょっとずつ写経していこうと思います。 Iterator プログラミング言語において配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である…

ProgresTouch RETRO TKLを購入 続き

前回のエントリーで詳細を書くと言っていたので書いていきますね。 その前に... みなさんファンタスティックビースト見ました??? 私は4dx?で見てきました!! とてもお尻が痛い... 映画見るのにお尻が痛くなるとは思ってなかったですね... 感想はおもしろかっ…

ProgresTouch RETRO TKLを購入

なぜ購入したか 私もそろそろノートPCなどに依存したキーボードばかりを使うのはどうかと考えていました。 これからの仕事上、様々なPCの環境で仕事をしないといけないようになります。 様々な環境のなかでこれだけは変えたくないというものはキーボードとマ…

Ruby Gold 落ちました!

概要 資格1ヶ月チャレンジで今回はRuby Goldを受けてきました。 結果はタイトル通り落ちました。 大学生活初の黒星です...。 めっちゃ悔しい。 反省 まず公式問題集の問題と実際の試験の問題は難易度が違いました。 公式問題集の問題やCTCなどで公開されてい…

HANAMI(旧名 Lotus) ControllerとViewのデータの共有の仕方

概要 ここ最近HANAMI(旧名 Lotus)というRuby製の軽量Webフレームワークを勉強しています。 筆者はRuby on Rails Sinatraを使っているのですが、少し自分の技術の幅を広げようと思い触れちゃいました。 問題 Ruby on RailsやSinatraではController部分にイン…

これであなたもWebエンジニア!! Atomのおすすめのプラグイン3選

なぜおすすめするか? みなさんに一早くWebエンジニアになってほしいからです!(偉そうなことを言っていますねぇ...) 本当は上司の無茶ぶりです! なぜプラグインを入れるの? それは... 楽をしたいから!!! 楽をしているというとサボっているいう受け取り…

Ruby Goldを目指して ~ Mix-in 1 ~

include prepend extend Mix-inとは オブジェクト指向プログラミング言語において、サブクラスによって継承されることにより機能を提供し、単体で動作することを意図しないクラスである。*1 単体で動作することを意図しないクラスとはインスタンスが生成され…

Ruby Goldを目指して ~ 大域脱出 ~

大域脱出とは ネスト分のbreakを書く必要がないように catch throw という大域脱出するため仕組みが準備されている。 繰り返しの処理を途中で終了する場合、 break を使うことがある。 しかし繰り返しの処理がネストしているかつ、一度に処理を終了させたい…

多重sshでknife soloを実行する方法

------- -------------- ----------- |local| => | 踏み台のサーバ | => |目的サーバー| ------- --------------- ----------- 多段SSHをするためにconfigを書けば楽にできる。 踏み台にするホスト footstool 目的の接続先のホスト webserver ## $HOME/.ssh/…

Crystalを触ってみた

なぜ?? 基本Rubyで開発している私ですが、なにかそろそろ新しいものに触ってみたいなと思い、 Speaker Deckでサーフィンしていたところ... Crystalという言語を発見!! キッカケとなったスライドはこちら speakerdeck.com なんか流行りに乗れるんじゃないかと…

Sinatraでviews以下のディレクトリからファイルを指定する方法

Sinatraのディレクトリ構成 / Lmain.rb --- アプリのコントローラ Lconfig.ru --- WebアプリのフレームワークのRackの設定ファイル LGemfile --- Gemパッケージを管理する Lviews Llayout.slim --- 各ページで共通するパーツ Lindex.slim --- Topペー…

Rubyの入門記事をQiitaに上げました。

タイトル通りの内容です。 初学者向けの記事なのでRubyに興味がある人は見たらいいことがあります。 qiita.com

ruby on railsでherokuにデプロイする時に引っかかったこと

Ruby on Rails Tutorialを参考にherokuにPushするところまでやってみました。 状況は確認したらクラッシュしていました。 $ heroku ps === web (Free): bin/rails server -p $PORT -e $RAILS_ENV │Started GET "/" for ::1 at 2015-11-18 13:26:18 +0900 web…

MarkDownでTexからPDFに変換できるようにした

背景 私が所属している研究室は週報や論文をTexで書くことが決められています。 Texは素晴しいものだったので、勉強をしてみました。 残念なことに覚える気力を失なってしまいました。 しかしこのままでは卒業ができない!!ということで、 Markdownでtexを出…

Emacsでライフログを取るためにWakaTimeを入れてみた

WakaTimeとは プログラマためのライフトラッキングWebサービス wakatime.com エディタ上の作業をリアルタイムで集計し、可視化してくれるサービス。 プログラミング言語別に管理してくれる。 Githubの連携することでリポジトリ状況の可視化までできる。 導入…

11月の目標

目標 Docker実践入門を読む メタプログラミングRuby 第2版を読む find-a-bookのリファクタリング litaで遊ぶ

LPIC level2 exam202を受けてきた

取得した理由 10月中に取得できるぜ!!と友人に言ったところ、本気と受けとられました笑 勉強したおかげで、結果は合格でした。 これで晴れて約1億人の中の2万人になりました。 感想 学習期間 3週間 参考本 あずき本 Linux教科書 LPIC レベル2 スピードマスタ…

RubyでカーリルAPIを使ったShellコマンドを作ってみた!

理由 大学の図書館に時々行く事があります。技術系の本が家よりかは多い理由で! ただ僕が活動している場所の近くには図書館がなく、徒歩10分ぐらいかけて図書館に行かなければならない 事案が発生!! とてもめんどくさいです... Webサービスを使えばすぐに蔵…

初Gemのリリースでつまづいたこと

タイトル通り、始めてのGemのリリースでつまづいきました。 $bundle exec rake reaese を実行するとエラーを吐きました。 エラー内容がTagがおかしいぞ!!と言われていました。 Tagなんか付けた覚えないねんけど...と思ったのですが、 上記のコマンドを叩くと…

Webビギナーズ#2のお知らせ

Webビギナーズ#2が10月14日に開催されます。 テーマは 初学者向け! オブジェクト指向を学んでJavascriptを触ってみよう! 興味がありましたら下記のリンクにジャンプ!!! Webビギナーズ#2

Webビギナーズ(仮)#1 感想

今回始めて勉強会を主催させていただきました。 まだ正式に勉強会の名前は決まってないので(仮)です。 概要 webに関係する技術をみんなで勉強していくためのコミュニティです。 Webに関する基礎から応用までみんなで楽しく勉強していくために活動しています…

LPIC level2 201を受けてきました。

結果は"合格"でした 受けた理由 以前にLPIClevel1を取得したので、次のステップに踏み込むために受けてきました。

zshを使ってみた!

なぜ!? 以前'fishshell'を触って僕できる子やっほい!となってた僕なのですが…。 fishshellの独特のPATHの書き方などのうんざりし、bashかzshに変えよう という試みをしました。

flickrawでアップロードするRubyスクリプトを書いてみた

なぜ????? Flickrを使ってる僕はいつもアップロードする作業がとてもめんどくさいものでした。 アップロード作業をもっと楽したいなぁと思ったのでRubyで自動アップロードするスクリプトを作りました。 これで僕はサボれる!!!←

fishshellの導入方法 mac編

fishshellのインストール macのfishshellの導入はhomebrewで簡単に出来てしまいます。 $brew install fish homebrewが導入されていない方はMacにHomebrewをインストールするを参照してください。 fishshellを適用する

fishshellを導入しました。

fishshellとは? friendly interactive shellが正称です。 対話的利用、わかりやすさなどユーザフレンドリに重点を置いています。 詳細はwikiを参照してください。 fishshell_wiki 簡単に説明するとbashやzshの類ですね。