A little bit of everything

情報系大学院生の備忘録

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の仕組みです。いわゆるスケジューラというプログラムです。 サーバ管理を任されるとよく、「サーバのバックアップを取るためのプログラムを毎…

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 ができなかった。 対処法 環境設定 → 一般 → キー フィルター欄に「元に戻す」と入力すると、元に戻すコマンドが出てくるので、それを選択 …

紙に書いてあることのほうが覚えやすい

3年ほど前、Java の勉強とTOEIC対策を同時にできないかと思い、英単語帳アプリを作ったことがあります。単なる単語帳ではなくて、絵とが音が出せる英単語帳というもの。 例えば、 "apple" という単語が出てきたときに、[めくる] ボタンを押すと、「りんご」…

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で再帰的にマージソートを使っているので、日…

マージアルゴリズム

マージとは 「併合」という意味で、複数の配列や連結リストなどのデータ列を1つにまとめることをいう。 単純に複数の配列を併合するならば、それぞれの配列の長さを合計した長さ以上の配列を用意し、すべてをそこに格納してしまえばよい(順序など関係なく)…

二分探索木 (binary search tree)

二分木のうち、すべてのノードの値が、 [左の子の値] ≦ [自分の値] ≦ [右の子の値] となっているもの。 この図は二分探索木の条件をみたしている。 ∵ 4 ≦ 5 ≦ 8 だし、 7 ≦ 8 ≦ 9 になっている。 1. 検索 二分探索木では、データを高速に検索することができ…

二分木(Binary Tree)

各ノードの子供の数が2以下である木構造のこと。 また、各ノードが「葉であるか、次数が2(子供が2つ)」である木を全二分木(full binary tree), すべての葉が同じ深さである二分木を完全二分木(perfect binary tree) という。 図1. 二分木の例(全二分木で…

安定ソート(stable sort)

ソートアルゴリズムにおいて「安定である」ということの意味 同順序のものの順序関係が、ソート前とソート後で保たれるもののこと。 (順序が保たれないものは、「安定ではない」という) 例) 本の値段と出版年によってソートする場合を考える。 最初に出版…

MongoDB の install (Mac)

homebrew を使用。 基本、Install MongoDB Community Edition on macOS — MongoDB Manual 3.6 に従う。 まず、brew update 次に、brew install mongodb ここで怒られた。対処したやり方↓ yuukiyg.hatenablog.jp で、これでinstall 完了。 Before you start M…

【メモ】homebrew で install するときに Permission denied になった

とりあえず brew doctor をやってみる。そしたら、 Warning: /usr/local/etc isn't writable. Warning: /usr/local/include isn't writable. Warning: /usr/local/lib isn't writable. みたいなことを言われた。 解決策は、 sudo chown -R $USER /usr/local …