A little bit of everything

情報系大学院生の備忘録

技術系

Spring Feign でRESTクライアントを作る

Spring Feign とは Spring プロジェクトの1つで、RESTクライアントを簡単に作るためのフレームワークです。 SpringでRESTクライアントというと、RestTemplateクラスを使う方法がすぐに思いつくと思いますが、Spring Feignを使うとRestTemplateのような実装を…

OpenWeatherMap の Web API の使い方

OpenWeatherMapとは 天気などの各種気象の情報を、無料のWeb APIとして提供するオンラインサービスです。 公的気象情報、空港の気象観測所、レーダーなどからのデータを、OpenWeatherMap独自のアルゴリズムで加工して提供しているようです。 使用できるAPIの…

Spring Bootでコンソールアプリケーションを作る方法

1. はじめに Spring Boot で、コンソールアプリケーションを作る方法のメモです。 Spring Boot はWebアプリケーションを作るためによく使われますが、コンソールアプリケーションも作れます。 今回は、コンソール上で標準出力に「Hello World!」と出力して終…

【まとめ】Springフレームワークにおける Bean の ライフサイクル

今後も情報が分かり次第、随時このページに情報を追加していきます! この記事では、Spring フレームワークにおける、Java Beanのライフサイクルについてまとめます。 ここに示す内容は、Spring Boot アプリケーションにも当てはまります。 基本、こちらのペ…

さくらインターネットで取得したドメインでAWSの静的Webホスティングをする(HTTP、HTTPS)

さくらインターネットで取得したドメインでAWSの静的Webホスティングし、AWS Certificate Managerで証明書を作って、httpsの通信をできるようにする方法のメモを残します。 前提 さくらインターネットでドメインを取得していること。 AWSのアカウントがある…

MongoDBでドキュメントの子要素の配列のUPDATE方法

MongoDBでドキュメントの中に配列が格納されている場合、その配列をUPDATEする方法のメモを残します。 前提 以下のようなusersというコレクションがあったとします。 users = { {_id: 111, age: 24, live: "Tokyo", skills:["Linux", "C", "Oracle"]}, {_id:…

RubyからMongoDBに接続して使用する方法

前提 以下が前提です。 mongod(MongoDBサーバ)が起動していること。 Rubyがインストールされていること。 gemがインストールされていること。 注意 MongoDBには、データベース、コレクション、ドキュメントという概念があります。よくわからない場合は、簡…

Cloud9で新しくenvironmentを作ったけど繋がらない問題、AdBlockが原因かも

症状 Cloud9 で新しく environment を作ろうとした際に、"Connecting..." の画面でいつまで経っても先に進まない。 数分経つと、以下のようなエラーが出ました。 This is taking longer than expected. If you think there might be an issue, contact AWS S…

AWSアカウントを取得したら最初にやること(2018年9月時点最新版)

AWSアカウントを取得したら最初にやること&なぜそれをやる必要があるのか?を説明します。 結論を述べると、以下のことを実施します。 [0] AWSのアカウントの取得 [1] AWSアカウントの多要素認証(MFA)を有効にする [2] ルートユーザの代わりに使用するIAM…

jedi-vim を導入してVimでPythonコードの補完をさせる

VimでPythonコードの補完をさせたい VimでPythonコードの補完をさせるプラグインとして、jedi-vimというプラグインがあるそうです。今回はこれを導入します。(導入するところまでを説明します) jediとは? jedi は Pythonのソースコードのオートコンプリー…

ReentrantLock の lock と tryLock

ReentrantLockとは 排他制御をJavaで実装するときに使用するLockインタフェースの実装で、ロックを取得するタイミング、解放するタイミングなどを明示的に指定することできます。 ちなみに、このようにロックの取得/解放タイミングをプログラマが自由に指定…

EclipseやSTSでlombokを使えるようにする方法

EclipseやSTSでlombokを使える状態にする方法の解説です。 したがって、「lombokとは?」みたいな説明は省略します。 環境: - OS:OS X El Capitan - Eclipse:Version: Neon.1a Release (4.6.1) Step1: lombok.jar をダウンロードする 主に2種類のやり方…

HBA:Host-based Authentication(ホストベース認証)とは

よくある認証方法は、User-based Authentication(ユーザベース認証) Facebook や Twitter にログインするときに、自分のユーザIDとパスワードを打ちますよね? つまり、Facebook や Twitter のサーバでは、 「このユーザIDとパスワードの組み合わせは○○さ…

CentOS 7 のディスクイメージのちがい(DVD ISO, Everything ISO, Minimal ISO)

CentOS 7 のディスクイメージ(DVD ISO, Everything ISO, Minimal ISO)の違いは? CentOSの公式ダウンロードサイトにいくと、↑のようにDVD ISO, Everything ISO, Minimal ISO の3種類がある。 Download CentOS DVD ISO CentOSのGUIインストーラでインスト…

String#splitで、文字列が分割できない場合

Stringクラスのsplitメソッドで文字列が分割できない場合、その文字列自身が分割後配列の0番目の要素に入る ふつうにsplitできる場合 String string = "AAA_BBB"; String[] splitStrings = string.split("_"); System.out.println(splitStrings.length); //…

Windowsでシステムファイル属性の削除方法

システムファイル属性とは システムファイルとは、OSの動作に必要なファイル群。通常はシステムフォルダなど特定の場所に集められており、ユーザが直接操作しないようになっている。システムファイルに異常が起こるとOSが起動しなくなることがある。内容はOS…

Mac で CapsLock キーに Fn を割り当てる方法

Fnだと思ってCapsを押してしまう問題 学生のときはUS配列のキーボードを使っていたけど、会社のPCがJIS配列なこともあり、自宅用にJIS配列のMacBook Air を購入 (US配列のMacは大学からの借り物でした) 。 今までのMacの設定では、Fn+F1 や Fn+F2 で画面の明…

cron4j を使ってみた - JavaVM上 で動く cron

そもそも cron とは cron とは、 定期的に or 指定した時刻に、何らかの処理を実行させたい場合に使うUNIX系のOSの仕組みです。いわゆるスケジューラというプログラムです。 例えば「サーバのバックアップを取るためのプログラムを毎朝AM4:00に自動で動かす…

su で root になれるユーザを限定する

ユーザが複数いる場合、全員がroot になれてしまうと、セキュリティ的によろしくない。そこで、root になれるユーザを限定する。 これは、/etc/pam.d/su の中身を変更すればできる。 # # The PAM configuration file for the Shadow `su' service # # This a…

apache2でindex.htmlが無いときにディレクトリの中身を見せない設定

ブラウザでWebサーバのURLを打つとき、http://〜〜〜.html というように具体的なファイルを指定するのではなく、ディレクトリ名でアクセスした場合、デフォルトでは index.html をGETすることになっている。 つまり、サーバ側に index.html がないと、エラー…

【Java】匿名クラスから親クラスのフィールドを参照する方法

匿名クラスの中から、親クラス名.this でアクセス可能。 public class OuterClass { //アウタークラスのフィールド private String str = ""; //インナークラスの定義 private class InnerClass{ //インナークラスのフィールド private String str = ""; //…

Swing でのコンポネント追加後に表示されない

「swingのコンポーネントが表示されない」(1) Java Solution − @IT

MySQL で /var/lib/mysql/mysql.sock に繋げないエラー

mysql -u root でMySQLを起動しようとしたときに出るこんなエラー。 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' /var/lib/mysql/mysql.sock に繋げないと言っているので、 ls -a /var/lib/mysql/…

UserScriptで自動ログオン

うちの大学にはWi-Fi アクセスポイントが張り巡らされていて、キャンパス内ならどこでもWi-Fi に繋ぐことができる。難点は、ブラウザから追加ログオンが必要なこと。PC が一瞬スリープ状態になっただけでも、ネットワークのコネクションが切れて再度追加ログ…

Eclipse4.3 の Redo と Undo のキーバインド(Mac)

Mac で Eclipse 4.3 (Kepler) を使っているんだけど、デフォルトで Command + Y とか Command + Z で Redo や Undo ができなかった。 対処法 環境設定 → 一般 → キー フィルター欄に「元に戻す」と入力すると、元に戻すコマンドが出てくるので、それを選択 …

PAppletで背景画像をつける際のエラー

PAppletで背景画像をつけようとして、こんなコードを書いた。 PImage bg; @Override public void setup(){ size(760, 840); //背景画像を読み込み this.bg = loadImage("bg.png"); this.bg.resize(760, 840); } @Override public void draw(){ background( t…

DNSサーバのアドレスを固定する

sudo apt-get update をやったら、「'jp.archive.ubuntu.com' が一時的に解決できません」的な文字がずらーっと出てきた。 これはDNSの場所が設定されていないのが問題らしい。DHCPサーバからDNSの情報などをもらうと、/etc/resolv.conf のDNSの情報が書き換…

apt-get をプロキシ経由で使用

apt の設定ファイルは、 /etc/apt/apt.conf にあるので、ここの Acquire::http::proxy とかを変えればよい。 プロキシサーバに認証がない場合 Acquire::http::proxy "http://プロキシアドレス:ポート番号/"; とすればOK. プロキシサーバに認証機能がある場合…

レジスタマシンとスタックマシン

レジスタマシン レジスタマシンは、メモリからレジスタに数値をロードして演算を行う。 スタックマシン スタックマシンは、メモリからスタックへ数値をプッシュ&ポップで演算を行う。 2つの特徴 スタックマシンは、操作に使用する位置がスタックポインタが…

マージソート

アルゴリズム: 配列の長さが1以下なら、ソート済みなので終了。長さ2以上なら2へ。 配列を等分し、この2つの配列にそれぞれマージソートを適用した後、3へ。 2つの配列をマージアルゴリズムでマージする。 手順2で再帰的にマージソートを使っているので、日…