脳汁portal

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

2015-08-01から1ヶ月間の記事一覧

jqueryプラグインのtablesorterで"Uncaught TypeError: Cannot read property '0' of undefined"が出るとき

tablesorterのfilter widgetが動かない 以前のversionでは問題なく動いていたはずなのに、半年くらいたって久しぶりにみてみたら以下のようなエラーが出てFilter機能が動かなくなっていました。 Uncaught TypeError: Cannot read property '0' of undefined …

Javascritでデフォルト引数を設定するには

以下のように同じ名前で変数宣言して代入してやれば似たような処理になります function test(val) { var val = val || 777; . . } 仮引数に値が入っていればその値がそのまま新しいvalに再格納されます。 仮引数に値が入っていなければ、undefinedとなり、次…

Linuxでプロセスの名前でkillする方法

稼働中のプロセスを名前で指定してkillする方法 pkill -f 'プロセス名' もしくは、 pgrep -f 'プロセス名' | xargs kill

sinatra + Apache + Passengerでサブディレクトリとしてアプリリリースする方法

sinatraアプリをApache + Passengerを使ってリリースする手順 Apacheのinstall まずはWebサーバとしてApacheをインストールします yum list installed | grep httpd yum install httpd httpd -v #Server version: Apache/2.2.15 (Unix) #Server built: Aug 2…

編集中のVimなど、作業中のプロセスを一時的にバックグラウンドに退避する方法

Viでファイルを編集して、その後webサーバを再起動して確認したい場合など、screenを使ったり複数ターミナルを開いていない限り 一度viを終了しなければいけません。 このとき何が面倒って、一度ファイルを閉じてしまっているので動かなくなったときにvimのu…

yumとwgetのプロキシ設定

yumとwgetのプロキシ設定の方法です。 wgetrc vi /etc/wgetrc ##以下の2行を追加 http_proxy = http://hoge-proxy.co.jp:1111/ ftp_proxy = http://hoge-proxy..co.jp:1111/ yum.conf vi /etc/yum.conf ##以下の1行編集 proxy=http://hoge-proxy..co.jp:2222/…

Reactで呼び出す子コンポーネントを条件分岐させる方法

Reactで、条件によって表示させるコンポーネントを切り分けたい時などに、条件分岐によって切り分ける方法 記法 var ${変数名}; if (条件文1) { ${変数名}; = ${コンポーネント1}; } else { ${変数名}; = ${コンポーネント2}; } return ( <div> {${変数名}} </div> ); …

Reactのコメントアウト

Reactでコンポーネント呼び出し時にreturn内でコメントアウトする方法 記法 {/* コメントエリア */} 例 以下のようにコメントアウトしても普通に文字列として表示されてしまいます。 var Test = React.createClass( { render: function() { return ( <div> // コ</div>…

arpをソースからinstall

リポジトリが古いらしく、yum installでinstallされるarpが古かったりする場合にソースからダウンロードする方法 arpのインストール # ソースのダウンロード wget http://archive.apache.org/dist/apr/apr-1.5.1.tar.bz2 # buildに必要なライブラリのダウン…

Linuxで対象ディレクトリ以下のファイルの中身を一斉置換する方法

URLが変わったとか、ユーザネームを変えたいとか、特定のディレクトリ以下の全ファイルに対して、置換をかける方法です。 コマンド find ./ -name '*' -type f | xargs sed -i 's/${置換前}/${置換後}/g' ひとつずつ説明 # 指定したディレクトリ以下の指定し…

ReactのcomponentWillReceiveProps内ではまだpropsは反映されていない

とてつもなくはまったのでメモ。 componentWillReceiveProps コンポーネントのプロパティ(props)は親コンポーネントにより任意のタイミングで変更されます。 その場合、componentWillReceivePropsが呼ばれるので、そこで新しいpropsの値を参照して、 それを…

rubyのgemファイルの作成・公開方法

自分の作ったアプリやライブラリなどをgem化してrubygems.orgへ公開する方法です。 gemファイルの作成 Create gem $ cd ${your APP} $ rake -T $ rake build $ ls -l total 320 -rw-rw-r-- 1 root root 16159 Aug 19 11:50 CHANGELOG -rw-rw-r-- 1 root root…

VagrantでVirtualBoxにUbuntu14.04(LTS)の環境を作成する方法

VM

タイトルの通り、Windows環境でVirtualBoxにVagrantでCentOSをいれる方法です。 環境 Windows7(64btit) VirtualBox 4.3.16 Ubuntu14.04(LTS) Vagrant 手順 1. まずはVirtualBoxをダウンロードします(http://www.virtualbox.org/) 2. 次にVagrantをダウンロー…

CSS3だけ、もしくはJavaScriptだけでマウスオーバー時に色を変える方法

CSS

マウスオーバーで要素の色を変更する方法です。 CSS3 記法 <セレクタ>:hover 例 HTML <input id='test-button' type='button' value='Test Button' CSS input#test-button:hover { background-color: red; } Sassの場合 Sassの場合は以下のように書くことも出来ます。 <セレクタ> { background-color: red; &:hover { background-color: blue; } } Javascript JSの場合は、onMouseOverとonM…

Linuxのscreenで縦分割にする方法

LinuxのScreenで縦分割にする方法です。 もちろん横(水平)分割も出来ます。 こんなん install手順 yum installでデフォルトにinstallされるscreenには縦分割機能がついていないので、gitからcloneしてきて使います。 cd /usr/local/src/ # 必要なライブラリ…

Javascriptでヒアドキュメントを使う方法

Rubyなどで見られる一括して文字列を格納するヒアドキュメント(以下例)をJavascriptで使う方法です。 Rubyでのヒアドキュメントの例 str = <<EOS 1 line 2 line 3 line EOS # ==> #1 line #2 line #3 line JavaScriptでヒアドキュメント 構文 function heardoc() { var heredoc = (function () {</eos>…

ReactでDOMの要素を直接取得・変更する方法

構文 //取得 var test = React.findDOMNode(this.refs.${ref名}).${取得したい要素名}; //格納・変更 React.findDOMNode(this.refs.${ref名}).${変更したい要素名} = ''; Example render: function() { return ( <div> <input type="text" ref="command" /> </div> ); } 上記のinputタグの中身を、例えば空…

Reactでstateに上書きではなく追加する方法

現在Reactのstateの値を変更するメソッドとして、「setState」や「replaceState」は用意されていますが、「appendState」はありません。Component API | Reactfacebook.github.ioなので、既存のstateの値に新しい値を追加したい場合は以下のように書きます t…

正規表現Tips18選

正規表現のTipsでよく使う記法等をTipsとして残します。 宣言方法 // //で囲むことにより正規表現を表せます %r{} %r{}の括弧内に書くことで正規表現を表せます Regexp.new() Regexp.newの引数として書くことで正規表現を表せます 正規表現文法 文頭指定(^) …

Reactでinputタグのautofocusを使うには

html HTML5ではinputタグの中にautofocusと書けば、Pageを表示した際に自動でフォーカスを合わせてくれます。 <input autofocus>-HTML5タグリファレンス React しかし、Reactでは下のように普通にinputタグ内にautofocusと書いても反映されません。 var Test = React.createC…

inputタグで入力中に出てくる青い枠を消す方法

inputタグでテキストボックスに入力している最中に出てくる青い枠線を消す方法です。 input[type="text"]:focus { outline: 0; }

ReactでEnterキーのpushイベントを取得する方法

ReactでEnter keyが押されたときにアクションを設定する方法です。 ソースコード var Test = React.createClass( { sendCommand(e) { # <== ① var ENTER = 13; # <== ② if (e.keyCode == ENTER) { # <== ③ // Enterが押されたときのアクション } }, render: …

CentOSの言語設定を変更&反映させる方法

CentOSの言語設定を変更する方法です。 今回は試しにドイツ語から英語へ変更します。 現在の設定の確認 locale | grep LANG # ==> LANG=de_DE.UTF-8 一番上のLANGが言語設定です。 設定の変更 vi /etc/sysconfig/i18n ### LANGを以下に変更 LANG="en_US" 今…

Reactのstate(prop)内で改行文字を使いたい場合

JSX構文 ReactはJSXを採用しているので、構文の中で以下のようにhtmlタグを直接書くようににコーディングできます。 var Test = React.createClass( { // 処理とか }, render: function() { return( <div> {this.state.foobar} </div> ); } ); しかし、このhtmlタグライ…

ReactのJSX構文内でclass属性を設定する場合

render: function() { return ( <div class='foo'>Hello React!!</p> ); } 上記のように直接class属性を指定しようするとエラーが出て怒られます Warning: Unknown DOM property class. Did you mean className?これはclassという文字がReact側で予約後として他で使われているため…

RubyのOptionParserのopt.onが引数を無限に取れることをはじめて知った

以下のポストでOptParserの使い方を書きましたが、どうやらopts.onメソッドは引数を無限に取れるらしい [Ruby]オプションの使い方・取得の仕方(OptionParser) - 脳汁portalコード(上のポストのを流用) require 'optparse' opt = OptionParser.new options = …

Sinatraでcssやjsファイルを読み込む方法

問題 sinatraで普通に外部ファイルにcssやjavaScriptを書いてそれを読み込もうとしたんだけど404エラーになって読み込めない <link rel="stylesheet" href="./test.css" /> <script type="text/jsx;harmony=true" src="./test.js"></script> ↓ 192.168.33.1 - - [05/Aug/2015:05:19:39 +0000] "GET /test.css HTTP/1.1" 404 38 0.001 192.168.33.1 - - [05/Aug/2015:05:1</link>…

JavaScriptでブラウザ側のsessionを使う方法

使用法 // セッションの格納 window.sessionStorage.setItem(['キー名'],['値']); // セッションの数の取得 window.sessionStorage.length // セッションの値の取得 window.sessionStorage.getItem(['キー名']); console.log(a); // => value1 // 指定したセ…

Reactで、jquery(ajax)内でsetStateしようとすると「this.setstate is not a function」って怒られて失敗する場合の対策

問題 Reactを使っていてstateにsetしようとして普通にthis.setStateとかやっていると、this.setstate is not a functionってエラーが出るときがあります。 JavaScript的にどういうかはわかりませんが、Ruby的に言うとスコープが切り替わってself(=this)が変…

ajaxと非ajax(jqueryだけ)でweb APIにクエリーを投げる方法

jQueryだけ $.${通信方式}(${URL}, { ${param名1}: ${value1}, ${param名2}: ${value2} }, function(res){ // 成功時の処理 }); // 例 $.get('http://hogehoge.html', { foo: 'bar', hoge: 'fuga' }, function(res){ alert(res); }); 簡潔に実装できる 失敗…