脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

2015-01-01から1年間の記事一覧

AWS EC2のIPアドレスを固定・いつも同じIPにする方法(elastic IP)

AWS

前回のポストで作成したインスタンスだが、EC2のインスタンスは起動する毎にIPアドレスが振りなおされるので、前回のIPアドレスではアクセスできなくなってしまう 単純な検証であればよいのだが、それでは困る場合はelastic IPという固定のIPアドレスを使う…

ぼくがかんがえたさいきょうの.screenrc(とAutoHotKey)

screenrc 全体像 ### Under Bar Style hardstatus alwayslastline "%H[%n] [%w]" termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l' shelltitle "$ |bash" ## active screen is red(rw) ## non active screen are blue(bw) caption always "%?%F%{=…

AWS EC2(コンソールにログインするまで)

AWS

AWSのEC2の使い方です とりあえず今回はteratermでアクセスするまでの方法を説明します インスタンスの作成 1. まずはEC2にアクセス 2. instances(インスタンス)を選択 3.『 インスタンスの作成』を選択 4. OSの選択 希望のOSを選択します 5. インスタンスタ…

3PARに関して(チャンクレット, Dynamic Optimization, Adaptive Optimization)

3PARとは 3PARは、1999年に設立されたストレージベンダーです チャンクレット 従来型のディスクストレージで4台の物理ドライブとRAID 1によってLUNを構成した場合、1台の物理ドライブが毎秒200回のI/Oを処理できるとすると、LUN全体のI/O性能はライトで毎秒4…

NOSQLのDBアーキテクチャ

大まかに分けると マスタ型 GoogleのBigtableが元祖 Bigtable, CouchDB, HBase, Hibari, MongoDB ひとつのマスタノードが配下にある多数のノードを分類する マスタがダウンするとシステム全体が止まる マスタを冗長化したり、他のnodeにマスタの代行をするよ…

NOSQLのデータモデル

データモデル マスタ型P2P型イネーブラ型オンメモリタイプオンディスクタイプKVS型HibariDynamoVoldemortRiakROMAMemcashedRedisScalaris TokyoCabinet/Tyrant カラム型BigtableHBaseHyperTableCassandraグラフ型Neo4jInfiniteGraphドキュメント型MongoDBCou…

なぜRDBじゃなくてNOSQLを使うのか?

NOSQLとは Not Only SQLの略 昨今のweb業界などにおけるBigdataを扱う為に研究・開発された 早い時期からビッグデータに直面して、対応技術を開発してきたのがAmazon(Dynamo)とGoogle(Bigtable)であり、その後に開発された多くのNOSQLの見本となっている Big…

cookieとは

同じくPCを整理していたら(ry cookieとは HTTPにおいて、クッキー{Cookie}とは、元々ユーザエージェント(Webブラウザ)によって保存される「小さな」ファイルを指す クッキーは、専用のHTTPヘッダ、あるいはJavaScriptにより利用することができる HTTPでは“…

Web APIとは(REST, SOAP, XML-RPC)

なんか年末大掃除でPC内を掃除してたら新人の頃に作ったドキュメントが出てきたので。。 概要 HTTPを利用してネットワーク越しに処理を実行して結果を受け取る仕組み 例) 例えばGoogleやYahoo!が公開する検索APIは、検索キーワードを送ることで、検索結果を…

Gemfile/Gemfile.lock/gemspec/Rakefileそれぞれの違い・役割

Gemfile gemの取得先を記述する 通常はsourceとgemspecの2行、もしくはsourceの1行だけでよい source "https://rubygems.org" gemspec gemspec 実際の情報を記述するファイル Gem::Specification.new do |s| s.authors = [] s.homepage = '' ・ ・ ・ gemの…

TokyoCabinetのmanagement toolである'tchmgr'の使い方

tchmgr ハッシュデータベースAPIやそのアプリケーションのテストやデバッグに役立つTool コマンド tchmgr put [-nl|-nb] [-sx] [-dk|-dc|-dai|-dad] path key value 代表的なコマンド tchmgr put tcファイルにデータを格納する tchmgr put test.tc key1 val1…

ライブラリの依存関係を調査するlddコマンド

lddコマンドを使ってライブラリの依存関係を調べることが出来ます。 ライブラリ調査 コマンド ldd ${ライブラリ} 例 ldd libtokyocabinet.so libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00002b859cd82000) libz.so.1 => /usr/lib64/libz.so.1 (0x00002b859cf…

grepコマンドで指定したディレクトリ以下のファイル内容を全検索する方法

コマンド grep -r '#{検索したい輪ワード}' #{検索したいパス} 例 カレント以下のファイルからhogehogeという文字を含む行を全検索する場合 grep -r 'hogehoge' ./

Riakのinstall方法

NOSQLのRiakをinstallする方法です http://docs.basho.com/riak/latest/ Installation 1. erlangをinstallする portaltan.hatenablog.com 2. ライブラリのinstall # いらないのもあるかもしれません yum install gcc gcc-c++ glibc-devel make ncurses-devel…

Erlangのinstall方法

ErlangをCentOSにinstallする手順です。 今回は最新versionの18.1をinstallしてみたいと思います。 Install Erlang 1. download kerl curl -O https://raw.githubusercontent.com/spawngrid/kerl/master/kerl chmod a+x kerl ls -k kerl # => -rwxr-xr-x 1 r…

Linuxのセクタサイズとブロックサイズの調べ方

セクタサイズ # fdisk -l /dev/sda1 | grep 'Sector size' Sector size (logical/physical): 512 bytes / 512 bytes HDDのデータ領域の最小単位 ブロックサイズ # tune2fs -l /dev/sda1 | grep "Block size" Block size: 4096 IO sysytemが利用する最小単位 …

Rubyのpack, unpackでエンディアンを指定する方法

前回に引き続きエンディアン関連のポストです。 ネットワークバイトオーダー・ビッグエンディアン・リトルエンディアンとは - 脳汁portalBOMをデータの先頭に付与することで、データを受け取る側がエンディアンを判別できるようになると書きましたが、Rubyで…

ネットワークバイトオーダー・ビッグエンディアン・リトルエンディアンとは

バイトオーダー マルチバイトデータのメモリ上での並べ方(順番)のこと ホストバイトオーダー、エンディアンともいう この並べ順は統一されておらず、プロセッサの種類によって異なる 並べ方 ビッグエンディアン データの上位バイトからメモリに並べる並べ方 …

I/O多重化の方法(selectとepollの違い)

select 監視するファイルディスクリプタのサイズに制限がある 一件一件FDを確認する kernel側でFDのstatus情報を保持していないので、毎回チェックする必要がある I/O処理の流れ 1. select側で監視するFDのリストを持つ 2. I/O処理のリクエストをselectが受…

キネシスキーボードとMSのNatural Ergonomic Keyboard 4000を数ヶ月使ってみた感想

キネシスキーボードとMicrosoftのNatural Ergonomic Keyboard 4000を数ヶ月使用してみた感想です。 Kinesis Niceな点 キー一つ一つに傾斜がついていて、楽に打てる(らしい) テンキーがついていないので、意外と幅が小さい 手首毎動かす頻度は確かにすごい減…

データコレクションの形式(vector/linked list/tree list/dequeue)と各々メモリの使い方

(データ)コレクション は、オブジェクトの集合を扱うための仕組みです。 メモリ上におけるデータ配置に注目しながら代表的な四つを説明します。 データ形式 vector A(iteratable)であり、B(random accessible)でもある。 メモリは連続領域を確保しなければな…

文字列で返ってきたHashやArrayをそれぞれのクラスに再変換する'to_array'と'to_h'メソッド

APIやTCP socketsの返り値が強制的にstringになってしまう場合に、それを再び正しいクラスへ戻すメソッドです。 to_array to_array gem to_array | RubyGems.org | your community gem host install 方法 gem install to_array 例 require 'to_array' array …

ローカルに既に存在するプロジェクトを新規にGithubにpushする場合

Git

途中までローカルで作成したプロジェクトをやっぱりgithubで管理したいとなった時の手順 クライアントを使ったり、サーバ内で完結する方法など何個か方法がありますが、(私が)一番簡単だと思う方法を載せます。 手順 1. WebのGithub Pageから対象のリポジト…

gemファイルを作成して公開する方法

自作のgemを開発してrubygems.orgへ公開する方法です。 RubyGems.org | your community gem host 今回はto_arrayという名前のgemを作りたいと思います。 to_array arrayがto_strメソッドによってstringに変換されてしまったり、文字列で返ってきた場合に文字…

to_boolメソッドをgem化して公開しました。

以前以下のように文字列で返ってきた"true"や"false"をBooleanに変換するto_boolメソッドの実装方法を紹介しましたが、それをgem化して公開しました。portaltan.hatenablog.comたが問題として、「to_bool」も「to_boolean」も「to_b」も全部既にgemの名前と…

Arduinoはじめようキットを買ってみた(初期設定とLED点滅)

興味はあったけど手を出さずにいたarduino unoを買ってみました。 簡単な使い方 1. arduino IDEをinstallする 開発に必要なarduino IDEを以下のリンクからダウンロードしてinstallしておきます。 (結構容量が大きいので我が家では10分程度かかりました。) ma…

各種proxy設定(環境変数, yum.conf, wgetrc)

各種proxyの設定方法です。 環境変数 bash export http_proxy="${proxyURL}:${port}" export https_proxy="${proxyURL}:${port}" tcsh setenv http_proxy ${proxyURL}:${port} setenv https_proxy ${proxyURL}:${port} yum yum.confを作成・編集する vi /etc…

Vagrantのboxの配置場所をDドライブに変更する

VM

Vagrantのboxは気づけば結構容量を食っているので、配置場所を変更する方法を載せます。 今回はDドライブへ変更します。 手順 コマンドプロンプトから $ SETX VAGRANT_HOME D:\Vagrant\.vagrant.d $ echo "%VAGRANT_HOME%" $ vagrant -h 終わったら実際に指…

Gitの過去のcommitのユーザ名やemail addressを変える方法

Git

過去のコミットのユーザ名やemail addressを変更する方法です。 typoに後から気づいた場合や、アカウントを使い分けていたが統一したくなった場合など。 注意 歴史改変になるのでバックアップ推奨 コマンド 以下のコマンドをコマンドラインで実行する git fi…

rubyのデフォルトのUnit testの使い方

Rubyにデフォルトで入っているテストフレームワークのUnit testの使い方です。 ちなみに以前書きましたがrubyのデフォルトのテストフレームワークは各versionで中身が違います。portaltan.hatenablog.com 使い方 準備 unit.rb require 'test/unit' class Sam…