A little bit of everything

情報系大学院生の備忘録

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

概要 ざっくりいうと 「特定のマシン(ホスト)からの接続要求だったら、誰であろうと接続OKですよ」という認証方法。 よく見かける認証方法は、User-based Authentication(ユーザベース認証) よくあるサーバ&クライアントシステムでは、 「Aさんからの接…

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インストーラでインスト…

【Java】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

cron4j とは cron は定期的に、もしくは、指定した時刻に実行させたい何らかの処理がある場合に使う、UNIX系のOSの仕組みです。 この仕組みを JVM上で実装できるようにしたのが cron4j というライブラリ。これを使うと、Java で cron っぽいことをできるので…

RubyでTwitterのBotを作ってみた(後編)

RubyでTwitterのBotを作ってみた(前編)RubyでTwitterのBotを作ってみた(前編) - A little bit of everything のつづき。 ※OS X ver.10.9.5 でやってます。 テキストファイルにTweetする内容を列挙しておいて、Postするときにランダムに1つ取ってきてTwee…

RubyでTwitterのBotを作ってみた(前編)

Rubytter という Ruby の Twitter API でbot を作る。 ※以下はrubyとgemが入っていることが前提 ※OS X 10.9.5 を使用 まずはRubytterのインストール $ sudo gem install rubytter Password: Fetching: oauth-0.4.7.gem (100%) Successfully installed oauth-…

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 でアクセス可能。 class A{ private int i = 0; public A(){ Thread t = new Thread(new Runnable() { @Override public void run() { //something A.this.i++; // ← 親クラスAのthisにアクセスしている }); t.start(); } }

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

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

【Java】スレッドが死ぬタイミング

start() で起動したスレッドは、run が終了すると消滅する。 へー。

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. プロキシサーバに認証機能がある場合…

4. Gitの状態遷移

3. Gitでシェア - A little bit of everything の続き。 Git には3つの状態がある。 作業ディレクトリ ステージングエリア(インデックス) リポジトリ(ローカルとリモート) ファイルを作ったり修正したりするのは作業ディレクトリ。 ある程度のまとまり…

3. Gitでシェア

2. Git でリポジトリを作る - A little bit of everything の続き。 リポジトリ作成者側の操作 Settingsから Collaborators を選び、シェアしたい人の名前を入れる。Add Collaborator を押した瞬間に相手にメールが届く。 ここからはメールを受け取った相手…

2. Git でリポジトリを作る

Git のセットアップメモ - A little bit of everything の続き。 if(あなたが学生である場合) { 無料でプライベートリポジトリが作れます(本来は有料)。その場合、Education.com | Printable Worksheets, Online Games, and More から、Request a discount…

1. Git のセットアップ

(1)GitHubにSign Up ここから github.com 学生ならば、学校のアドレス(acドメインだと理想)で登録するとよい。 (2) 最初は自分の名前とEmailアドレスをGitに登録(必須) git config --global user.name "XXX" git config --global user.email "XXX@xxx.co…

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

レジスタマシン レジスタマシンは、メモリからレジスタに数値をロードして演算を行う。 スタックマシン スタックマシンは、メモリからスタックへ数値をプッシュ&ポップで演算を行う。 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 OS X — MongoDB Manual 3.2 に従う。 まず、brew update 次に、brew install mongodb ここで怒られた。対処したやり方↓ yuukiyg.hatenablog.jp で、これでinstall 完了。 Before you start Mo…

【メモ】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 …

データベースの種類

リレーショナルデータベース 関係モデル(リレーショナルデータモデル)にもとづいて設計、開発されるデータベース。スキーマが決まっていて、トランザクションが利用できるもの。 オブジェクトリレーショナルデータベース リレーショナルデータベースの一種…

スケールアウトとスケールアップ

スケールアウト(水平スケール): システムにノードを追加することで、システム全体のスケーラビリティ(システムの規模の変化に柔軟に対応できるかの度合い)を向上させること。具体的には、サーバが動いているようなシステムで、単純にサーバの数を増やせ…

DHCP のしくみ

DHCP (Dynamic Host Configuration Protocol) プロトコルスタック TCP/IPのアプリケーション層 下位プロトコル UDP ポート番号 67と68 (67はDHCPサーバ、68はDHCPクライアント用) 用途 TCP/IPで通信を行うためのIPアドレスやサブネットマスク、デフォルトゲ…

【Java】for文でリストを回して要素を削除

for文でリストを回して要素を削除しようとして初歩的なミスをしてしまった…。注意が必要。 こんなコードがあったとする。 import java.util.ArrayList; public class Sample1 { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>();</integer></integer>…

シャットダウンフック

Java では、JVMの終了時に何らかの処理をさせることが可能。 それがシャットダウンフック(ShutdownHook)。 ここで言う「JVMの終了時」とは、以下のものを指す。 System.exit() が呼ばれた場合 ユーザ割込みでJVMを停止させた場合(Ctrl+Cとか) デーモンス…

【Java】TCP通信

サーバ側 //これから立てるサーバのポート番号 int serverPort = 10000; //そのポート番号でサーバソケット(ServerSocket)をつくる ServerSocket serverSocket = new ServerSocket(serverPort); //accept() と書いた瞬間、クライアント待ちのループに入る So…