tag:blogger.com,1999:blog-3781180958583175172024-02-07T18:42:49.439+09:00作業ログyoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.comBlogger37125tag:blogger.com,1999:blog-378118095858317517.post-86678053412023920902018-03-01T23:32:00.000+09:002018-05-02T11:53:49.360+09:00API Gatewayでバイナリペイロードをサポートする場合の注意点<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.Hiragino Kaku Gothic Interface'; color: #454545}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545}
span.s1 {font: 12.0px 'Helvetica Neue'}
span.s2 {font: 12.0px '.Hiragino Kaku Gothic Interface'}
</style>
<br />
<div class="p1">
<span class="s1">API Gateway</span>でバイナリペイロードをサポートする場合は、<span class="s1">RestApi</span>リソースの<span class="s1"> binaryMediaTypes</span>にメディアタイプを追加します。</div>
<div class="p2">
<br /></div>
<div class="p3">
<span class="s2">参考:</span><a href="https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-payload-encodings.html">API Gateway <span class="s2">ドキュメント</span></a></div>
<div class="p2">
<br /></div>
<div class="p1">
そうすると、ペイロードが<span class="s1">Base64</span>でエンコードされ渡されます。</div>
<div class="p2">
<br /></div>
<div class="p1">
ただ、<span class="s1">API Gateway</span>は<a href="https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-enable-compression.html#api-gateway-supported-content-encodings">サポートされているコンテンツコーディング</a>のいずれかで圧縮されたペイロードで呼び出された場合、ペイロードを自動的に解凍します。</div>
<div class="p2">
<br /></div>
<div class="p1">
優先順位的には自動解凍が先に行われるようで、<span class="s1">gzip</span>で圧縮されたペイロードをそのまま送ろうとする場合は、<span class="s1">Content-Encoding</span>を<span class="s1">HTTP header</span>から除去しないと、解凍されたペイロードが<span class="s1">Base64</span>でエンコードされ渡されます。</div>
<div class="p2">
<br /></div>
<div class="p2">
</div>
<a name='more'></a><br />
<div class="p1">
補足</div>
<div class="p1">
<span class="s1"><br /></span></div>
<div class="p1">
<span class="s1">binaryMediaTypes</span>を<span class="s1">CloudFormation</span>もしくは、<span class="s1">CLI</span>から設定する場合は、スラッシュをエスケープする必要があります。<br />
<br /></div>
<div class="p3">
image/jpeg -> image~1jpeg</div>
<br />yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-68876712267185694812017-09-06T01:00:00.000+09:002017-09-06T01:00:25.150+09:00gitignoreを自分で作っていませんか?gitignoreを自分で作っていませんか?<br />
<br />
<a href="https://github.com/github/gitignore">https://github.com/github/gitignore</a>にあるんです。<br />
<br />
また、リポジトリを作成する際に指定することもできます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKUaUNv4F_PhFtHyAlJ_Fya0UAuWU8ehCIHN5D4Px4dRaYieoQvD1gHGOk5IsCvzXTaO9HceQaMUyyVJqoAqS6t63kp7TCCj9m7WG6gm7l6Wog1vvXDgn-eFPOTRyL-9cmMPr2ht3K3g0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-09-06+0.54.51.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="260" data-original-width="752" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKUaUNv4F_PhFtHyAlJ_Fya0UAuWU8ehCIHN5D4Px4dRaYieoQvD1gHGOk5IsCvzXTaO9HceQaMUyyVJqoAqS6t63kp7TCCj9m7WG6gm7l6Wog1vvXDgn-eFPOTRyL-9cmMPr2ht3K3g0/s400/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-09-06+0.54.51.png" width="400" /></a></div>
<br />yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-27359706136001549112017-07-05T17:01:00.000+09:002017-08-29T23:14:34.576+09:00XcodeでCMakeプロジェクト開発(AWS SKD)<h4>
環境</h4>
macOS Sierra 10.12.5<br />
Xcode Version 8.3.3<br />
<h4>
Download</h4>
<div>
AWS SDKをclone</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ git clone https://github.com/aws/aws-sdk-cpp.git<br />
$ cd aws-sdk-cpp</div>
※aws-sdk-cpp配下に移動<br />
<h4>
CMake</h4>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ mkdir xcode<br />
$ cd xcode<br />
$ cmake .. -G "Xcode"</div>
※xcodeフォルダ配下にAWSSDK.xcodeprojが作成されます。<br />
<br />
あとは作成されたAWSSDK.xcodeprojをXcodeからOpenするだけ。<br />
<br />yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-63734098135637981602017-07-05T16:27:00.000+09:002017-07-05T16:27:00.749+09:00CMakeのインストール(Mac)<h4>
環境</h4>
macOS Sierra 10.12.5<br />
<h4>
Download</h4>
<div>
CMakeをダウンロード</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ wget https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz<br />
$ shasum -a 256 cmake-3.8.2.tar.gz<br />
da3072794eb4c09f2d782fcee043847b99bb4cf8d4573978d9b2024214d6e92d cmake-3.8.2.tar.gz<br />
<br />
$ tar zxvf cmake-3.8.2.tar.gz<br />
$ rm zxvf cmake-3.8.2.tar.gz</div>
<br />
<h4>
Install</h4>
<div>
Installおよび、バージョンの確認。</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ cd cmake-3.8.2<br />
$ ./bootstrap<br />
$ make<br />
$ make install<br />
<br />
$ cmake -version<br />
cmake version 3.6.3</div>
※make installで下記のエラーが出た場合はsudo make installを実行して下さい。<br />
CMake Error at cmake_install.cmake:31 (file):<br />
file cannot create directory: /usr/local/doc/cmake-3.8. Maybe need administrative privileges.<br />
<br />
参考:<a href="https://cmake.org/install/">https://cmake.org/install/</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-73707038377968532982017-06-19T23:39:00.001+09:002017-06-19T23:46:29.545+09:00Windowsにpythonをインストール<h2>
環境</h2>
<div>
Windows 10 64 bit</div>
<h2>
手順</h2>
<div>
ダウンロード<br />
<ol>
<li><a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a>からインストーラを取得(現在の最新は3.6.1)</li>
<li>pathを設定(Install時に「<span style="color: #222222; font-family: "hiragino kaku gothic pro" , "ヒラギノ角ゴ pro w4" , , "osaka" , "ms pゴシック " , sans-serif; font-size: 16px;">Add Python to…</span>」にチェックした場合は不要)</li>
</ol>
<ul>
<li>C:\Users\Yoshihiro\AppData\Local\Programs\Python\Python36-32</li>
<li>C:\Users\Yoshihiro\AppData\Local\Programs\Python\Python36-32\Scripts</li>
</ul>
確認<br />
<div style="text-align: left;">
</div>
<ol>
</ol>
</div>
<div>
<ol>
<li>コマンドプロンプトを起動して下記を実行</li>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
C:\Users\hoge>python --version</div>
<li>下記が表示されれば完了です。</li>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
Python 3.6.1</div>
</ol>
</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-81232930105458099902017-06-15T23:38:00.001+09:002017-06-19T23:47:34.361+09:00Hello Objective-C<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<h2>
環境</h2>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWqAUz5pntrlZ7FDTjpAlpiqb53kkTfJQ7uEvs7K_j9Gp4zZFQBtFZERLv_QYNUDZYgWhkHBqgHGRPNxELKctWNntGZRESXgUpbzxflaGVSNxRWdZOBY7wSHJ94ppqugDETw-rl7EAWhk/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-05-31+23.30.28.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="468" data-original-width="801" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWqAUz5pntrlZ7FDTjpAlpiqb53kkTfJQ7uEvs7K_j9Gp4zZFQBtFZERLv_QYNUDZYgWhkHBqgHGRPNxELKctWNntGZRESXgUpbzxflaGVSNxRWdZOBY7wSHJ94ppqugDETw-rl7EAWhk/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-05-31+23.30.28.png" width="320" /></a><br />
<ul>
<li>MacOS Sierra 10.12.5</li>
<li>Xcode 8.3.2</li>
</ul>
<h2>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ90fOGYbikrZSTG69u-PsojgwVZbc8jurmGwK4w6Gx-cHqrwPB3Nr_hxd8iBV0M5jjSuMZJIYxLmt21j9hAv1c1_rV0VXSxWZ-7HOaWP3O2LGXHL7FtrlCAVWnXkOA3DFq6Ouv4eZVBE/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-05-31+23.37.21.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="526" data-original-width="737" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ90fOGYbikrZSTG69u-PsojgwVZbc8jurmGwK4w6Gx-cHqrwPB3Nr_hxd8iBV0M5jjSuMZJIYxLmt21j9hAv1c1_rV0VXSxWZ-7HOaWP3O2LGXHL7FtrlCAVWnXkOA3DFq6Ouv4eZVBE/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-05-31+23.37.21.png" width="320" /></a>手順</h2>
</div>
<div>
<ol><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUB5f4OBlyD9_qyNUFxpvhahYGDMohxONRO9WvRPgEejDcQhYygYYQNwvaISQUHw1AuhED_ZTAt4Kfz4_lutCE79ncMmSqQR0bOjNhuqUcqyQVsaY6PgmVarnXbSnn4PSDCWSv1z-bmn0/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-15+23.13.57.png" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"><img border="0" data-original-height="432" data-original-width="716" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUB5f4OBlyD9_qyNUFxpvhahYGDMohxONRO9WvRPgEejDcQhYygYYQNwvaISQUHw1AuhED_ZTAt4Kfz4_lutCE79ncMmSqQR0bOjNhuqUcqyQVsaY6PgmVarnXbSnn4PSDCWSv1z-bmn0/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-15+23.13.57.png" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA8gD1-2OXgImI_XWc_DGwA-FfzVej96qGk0aEkW3PBrGZ0TtDwhjNgWmwZCseJ1nn0PKZWoJcIKPrZZctdzQIRfQaMPQOm9CGB3LeXoOCrni6IFxhsG5KcEpnBNLMnehBOY9AWJX0lvY/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-01+0.07.07.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="522" data-original-width="732" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA8gD1-2OXgImI_XWc_DGwA-FfzVej96qGk0aEkW3PBrGZ0TtDwhjNgWmwZCseJ1nn0PKZWoJcIKPrZZctdzQIRfQaMPQOm9CGB3LeXoOCrni6IFxhsG5KcEpnBNLMnehBOY9AWJX0lvY/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-01+0.07.07.png" width="320" /></a>
<li>Xcodeを起動して[Create a new project]を選択して下さい。</li>
<li>今回は[Single View Application]を選択します。</li>
<li>Nextを押して下さい。</li>
<li>Product Name、Organization Name、Organization Identiferを設定して下さい。</li>
<li>今回、LanguageはObjective-Cを選択します。</li>
<li>Nextを押して下さい</li>
<li>保存先を指定して、Createを押して下さい。</li>
<li>プロジェクトが作成されます。</li>
<li>ViewController.mを開いてviewDidLoadメソッドに下記のサンプルコードを追加</li>
<li>command + Rでアプリを実行する。</li>
</ol>
<div>
[サンプルコード]<br />
UILabel *lavel = <span class="s1">[[</span>UILabel alloc<span class="s1">]</span> initWithFrame:CGRectMake<span class="s1">(</span>0<span class="s1">,</span> 0<span class="s1">,</span> 200<span class="s1">,</span> 100<span class="s1">)];</span>lavel.text = @"Hello Objective-C"<span class="s1">;</span><span class="s1">[</span>self.view addSubview:lavel<span class="s1">];</span><br />
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.Hiragino Kaku Gothic Interface'; color: #454545}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545}
span.s1 {font: 12.0px '.Hiragino Kaku Gothic Interface'}
</style>
</div>
<div>
<div class="p1">
<span class="s1"></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtTyg976m2hPx3pNuzT87IxDsmDSleUMES7swZqwFKzhTuKkgb_pR3KigcHHFsDiqCBGI40N5Dv0ii7shohYkiCzsdooXFBAG3vxWgvTws0Hqz5KRPEHAGskHu4xpVkPSmRQz2xkN_eDM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-15+23.25.53.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="404" data-original-width="900" height="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtTyg976m2hPx3pNuzT87IxDsmDSleUMES7swZqwFKzhTuKkgb_pR3KigcHHFsDiqCBGI40N5Dv0ii7shohYkiCzsdooXFBAG3vxWgvTws0Hqz5KRPEHAGskHu4xpVkPSmRQz2xkN_eDM/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-15+23.25.53.png" width="320" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGnF3OITvf6fh457Evu0OpUauZYYLmC18WXAGp6r5eF6fF5wy6lyJrTQ-bY1Pm0Vmw4PTgiCBO3Hr5y7LWhCAkbkG9QD5wHgK5D7vtfZoFGgTSvuC3Ivem6uuPyD4sLDhlsawqe6s48aA/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-15+23.34.30.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="347" data-original-width="752" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGnF3OITvf6fh457Evu0OpUauZYYLmC18WXAGp6r5eF6fF5wy6lyJrTQ-bY1Pm0Vmw4PTgiCBO3Hr5y7LWhCAkbkG9QD5wHgK5D7vtfZoFGgTSvuC3Ivem6uuPyD4sLDhlsawqe6s48aA/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2017-06-15+23.34.30.png" width="320" /></a><br />
<br />
<div class="p2">
<br /></div>
</div>
<ol>
</ol>
</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-87594597212922821902017-02-25T23:59:00.000+09:002017-06-19T23:48:10.722+09:00Hello CMake<h4>
前提条件</h4>
<a href="http://yoshihiro-kato.blogspot.com/2017/02/cmake.html">CMakeのインストール</a><br />
<h4>
環境</h4>
Ubuntu 16.04.2 LTS (32bit)<br />
<h4>
Sauce</h4>
<div>
ディレクトリを作成</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ mkdir hello-cmake</div>
<br />
hello-cmake/CMakeLists.txt<br />
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
cmake_minimum_required (VERSION 3.6)<br />
project (HelloCMake)<br />
add_executable(HelloCMake main.cpp)</div>
<br />
hello-cmake/main.cpp<br />
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
#include <iostream><br />
int main() {<br />
std::cout << "Hello CMake" << std::endl;<br />
}</div>
<h4>
Build</h4>
<div>
Build用のディレクトリ(tmp)を作成</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ mkdir tmp<br />
$ cd tmp<br />
$ cmake ../hello-cmake/<br />
<br />
$ make</div>
<h4>
実行</h4>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ ./HelloCMake<br />
Hello CMake</div>
<br />
参考:<a href="https://cmake.org/install/">https://cmake.org/cmake-tutorial/</a>
<br />
Sample:<a href="https://github.com/yoshihiro-kato/Sample">https://github.com/yoshihiro-kato/Sample</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-63326785891666746482017-02-24T23:29:00.000+09:002017-07-03T00:32:27.349+09:00CMakeのインストール<h4>
環境</h4>
Ubuntu 16.04.2 LTS (32bit)<br />
<h4>
Download</h4>
<div>
CMakeをダウンロード</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ wget https://cmake.org/files/v3.6/cmake-3.6.3.tar.gz<br />
$ sha256sum cmake-3.6.3.tar.gz<br />
7d73ee4fae572eb2d7cd3feb48971aea903bb30a20ea5ae8b4da826d8ccad5fe cmake-3.6.3.tar.gz<br />
<br />
$ tar zxvf cmake-3.6.3.tar.gz<br />
$ rm zxvf cmake-3.6.3.tar.gz</div>
<br />
<h4>
Install</h4>
<div>
Installおよび、バージョンの確認。</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ cd cmake-3.6.3<br />
$ ./bootstrap<br />
$ make<br />
$ make install<br />
<br />
$ cmake -version<br />
cmake version 3.6.3</div>
※make installで下記のエラーが出た場合はsudo make installを実行して下さい。<br />
file cannot create directory: /usr/local/<br />
<br />
参考:<a href="https://cmake.org/install/">https://cmake.org/install/</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-81714803039560402082016-06-16T21:40:00.000+09:002016-06-16T21:40:32.749+09:00MavenコマンドMavenには色々なコマンドがあります。<br />
<br />
例えば、依存関係を表示するには<br />
<br />
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ mvn dependency:tree</div>
<br />
クラスパスを表示するには<br />
<br />
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ mvn dependency:build-classpath</div>
<br />
その他にも色々あります。<br />
覚えておくと便利かもしれません。<br />
<br />
参考:https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.htmlyoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-26795464516261815282016-05-25T22:52:00.001+09:002016-10-30T16:53:57.246+09:00MapReduce applicationのHadoop 1.xから2.xへの移行についてMapReduce applicationのHadoop 1.xから2.xへの移行については、互換性が保証されています。<br />
<br />
packageが"org.apache.hadoop.mapred"のもののみ使用している場合は、そのまま使用できます。<br />
<br />
"org.apache.hadoop.mapreduce"を使用している場合は、recompileが必要です。<br />
recompileせずに実行すると、下記のエラーが発生します。<br />
<br />
java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected<br />
<br />
参考:<br />
http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduce_Compatibility_Hadoop1_Hadoop2.html<br />
<br />
補足:<br />
<br />
Mavenを使っている場合は、pom.xmlに下記の修正が必要です。<br />
<br />
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">[修正前]</span><br />
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> <dependency></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><groupId>org.apache.hadoop</groupId></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><artifactId>hadoop-core</artifactId></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><scope>provided</scope></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"></dependency></span></span><br />
<span style=""><br style="box-sizing: border-box; empty-cells: show; font-family: monospace; font-size: 11.6188px; line-height: 13.9425px; margin: 0px; overflow: hidden; padding: 0px;" /></span>
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">[修正後]</span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><dependency></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><groupId>org.apache.hadoop</groupId></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><artifactId>hadoop-common</artifactId></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><version>2.7.2</version></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><scope>provided</scope></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"></dependency></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><dependency></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><groupId>org.apache.hadoop</groupId></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><artifactId>hadoop-mapreduce-client-core</artifactId></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><version>2.7.2</version></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><scope>provided</scope></span></span><br />
<span style=""><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"> </span><span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"></dependency></span></span><br />
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;"><br /></span>
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">※hadoop-commonは、org.apache.hadoop.conf, fs, io, util, securityのAPIを</span><br />
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">使うのに必要</span><br />
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">※hadoop-mapreduce-client-coreは、org.apache.hadoop.mapreduce, mapredの</span><br />
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">APIを使うのに必要</span>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-12205863802119432582016-04-17T19:01:00.000+09:002016-05-26T08:12:33.042+09:00Android StudioでLibrary作成どうやら、Project作成時にはLibraryの作成は出来ないようです。<br />
そのため、通常通りアプリケーションを作成します。<br />
アプリ作成後、[File]→[New]→[New Module]でAndroid Libraryを選択<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5GMilVzWq6WhsNMNCYIFUA-R8FiBc4d9Ta6dELD5fZ6wXXJU6DEReZmapKPQGd0FgZguaNYijyqKV5QC5XChOaauSqor_MsJgXKAc4DNB_neNBmYper8nA4OJtpc3y5JX1fFwxcDIqcI/s1600/Create+New+Module.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5GMilVzWq6WhsNMNCYIFUA-R8FiBc4d9Ta6dELD5fZ6wXXJU6DEReZmapKPQGd0FgZguaNYijyqKV5QC5XChOaauSqor_MsJgXKAc4DNB_neNBmYper8nA4OJtpc3y5JX1fFwxcDIqcI/s320/Create+New+Module.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
Actibityは作成しないを選択<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbLKMXQWhyphenhyphenyM8MSNR23lTHhY_AvL9dLuAZGpmUDf-rco6F5GXuy9u-89vM2rPpiif6xzNcClbNVytIRqXpJtZ4LnfAsJwgSIIYzMMExvjb3dPG2ut7AeELgddZ6lRjQR-DE4c9Ak5ckpc/s1600/Add+an+activity+to+Mobile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbLKMXQWhyphenhyphenyM8MSNR23lTHhY_AvL9dLuAZGpmUDf-rco6F5GXuy9u-89vM2rPpiif6xzNcClbNVytIRqXpJtZ4LnfAsJwgSIIYzMMExvjb3dPG2ut7AeELgddZ6lRjQR-DE4c9Ak5ckpc/s320/Add+an+activity+to+Mobile.png" width="320" /></a></div>
<br />
Projectのappと同じレベルに追加したModuleが作成されます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpj1002bNYHI-pHivk69dFf0CEU4PKk4zXAcymSKm81xY-fw4VGVJuNbB95fIzIzlwQDTO8EOYHRRi2LfjY6h3Cqwx0NL0kiqhTewpYEt0NEVLTNEB_3wXnHlfJQ0YJJwUETRxjI0FLNE/s1600/mylibrary.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpj1002bNYHI-pHivk69dFf0CEU4PKk4zXAcymSKm81xY-fw4VGVJuNbB95fIzIzlwQDTO8EOYHRRi2LfjY6h3Cqwx0NL0kiqhTewpYEt0NEVLTNEB_3wXnHlfJQ0YJJwUETRxjI0FLNE/s320/mylibrary.png" width="149" /></a></div>
<br />
フォルダ内の構成はアプリとほぼ同じです。<br />
※表示系のファイル(res/layout)が無い位です。yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-72691438175753258102015-12-11T08:16:00.001+09:002016-04-17T19:02:23.363+09:00XcodeでEXC_BAD_ACCESS<div dir="ltr">
Xcode 7.0.1でXCTestを実施した際、EXC_BAD_ACCESSでハマったのでメモしておきます。<br />
※<a href="https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html">add exception breakpoint</a>してもわかりませんでした。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
結論としては、テストクラスのメソッド数が多すぎたようです。</div>
<div dir="ltr">
XCTestのリファレンスにも乗っていなかったので、詳しいことは不明ですが、メソッド数が70を超えると発生するようです。<br />
※直接の原因は他(メモリ等)にあり、メソッド数が増えることにより、発生する可能性もあります。</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-45506851447652887172015-12-02T10:36:00.002+09:002017-03-19T14:05:18.052+09:00UbuntuのLauncherにアプリを追加する方法eclipseなどをインストールした際に、Launcherに追加する方法です。<br />
<br />
<h3>
1. Desktop entry fileを作成する</h3>
<div>
<span style="font-family: monospace; font-size: 11.6188px; line-height: 13.9425px;">~/.local/share/applications/</span><a href="https://github.com/yoshihiro-kato/Sample/blob/master/linux/DesktopEntryFile/eclipse.desktop">eclipse.desktop</a></div>
<div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
[Desktop Entry]<br />
Encoding=UTF-8<br />
Version=1.0<br />
Type=Application<br />
Name=eclipse luna<br />
Icon=/home/sample/bin/eclipse-jee-luna-SR2-linux-gtk-x86_64/icon.xpm<br />
Path=/home/sample/bin/eclipse-jee-luna-SR2-linux-gtk-x86_64<br />
Exec=/home/sample/bin/eclipse-jee-luna-SR2-linux-gtk-x86_64/eclipse<br />
Actions=Clean<br />
<br />
[Desktop Action Clean]<br />
Name=Clean<br />
Exec=/home/sample/bin/eclipse-jee-luna-SR2-linux-gtk-x86_64/eclipse -clean</div>
※パスは適切に変更して下さい。<br />
<br />
<h3>
2. Launcherに追加する</h3>
</div>
<div>
「search your computer and online sources」からeclipseを検索し、Launcherにドラックする。</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-80612587232165979672015-09-05T00:41:00.000+09:002015-09-05T00:49:28.361+09:00UbuntuにOracle JDK8をtar.gzからインストール<div dir="ltr">
Ubuntu 12.04にOracle JDK8をtar.gzからインストールしてみました。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
環境:Ubuntu 12.04.1 32ビット</div>
<div dir="ltr">
<br />
<a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Oracle</a>からtarをダウンロード<br />
<br />
解凍<br />
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ tar zxvf jdk-8u60-linux-i586.tar.gz</div>
<br />
適当な位置に配置する<br />
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ sudo cp -r jdk1.8.0_60 /usr/lib/jvm</div>
<br />
<div dir="ltr">
JAVA_HOME</div>
<div dir="ltr">
</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ sudo vi /etc/profile</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
下記を追記</div>
<div dir="ltr">
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_60</div>
export PATH=$PATH:$JAVA_HOME/bin:<br />
<br />
PCを再起動</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
確認コマンド</div>
<div style="border: 1px solid rgb(153, 153, 153); margin-bottom: 10px; padding: 10px;">
$ java -version</div>
<div dir="ltr">
java version "1.8.0_60"と表示されれば成功です。</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-71805408209300831172015-07-28T10:23:00.002+09:002015-07-28T10:24:03.929+09:00Android StudioでHello World<h2>
Create Sample Project</h2>
<div>
<br /></div>
Android Studioを起動し、[Start a new Android Studio project]を選択<br />
※Application name、Packageなどは、とりあえすデフォルト値を使用。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2nSfwQmfQorEc4NQ7RYHCdwV-mgIC7JtODPHnta8Jj0FSDwvKfY0IlUkbaRKfoAEj2DTwzn0m_eKHg4RwMn7gsbKfex498PSK0Us1IljKmceHqoGk7bUkfDaWkPDVbIOZQ-802g108w/s1600/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2nSfwQmfQorEc4NQ7RYHCdwV-mgIC7JtODPHnta8Jj0FSDwvKfY0IlUkbaRKfoAEj2DTwzn0m_eKHg4RwMn7gsbKfex498PSK0Us1IljKmceHqoGk7bUkfDaWkPDVbIOZQ-802g108w/s320/1.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
今回は、Phone and Tablet Minimum SDK API 10のアプリを作成します。<br />
※なぜ、API 10:Android 2.3.3(Gingerbread)なのかは別途ブログで書きます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyvrmH4_U9VEluAhxUVSzHuIZmo5JIxqk70Yf5zC9JTo1Z9Z6S9HVeW2OlBiLNGWDB9N1u7Bx4QwskjGuxTYi3apcj0ZsbFWCb146NxtONNNfqeAlunyjwxI6J1cV9u1RhgGZ1lphJCU8/s1600/3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyvrmH4_U9VEluAhxUVSzHuIZmo5JIxqk70Yf5zC9JTo1Z9Z6S9HVeW2OlBiLNGWDB9N1u7Bx4QwskjGuxTYi3apcj0ZsbFWCb146NxtONNNfqeAlunyjwxI6J1cV9u1RhgGZ1lphJCU8/s320/3.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
追加するActivityはBlank Activityを選択<br />
※Activity Name等はとりあえずデフォルト<br />
<br />
<h2>
Install SDK Packages</h2>
<div>
<br /></div>
<div>
[Tools] -> [Android] -> [SDK Manager] でSDK Managerを起動</div>
<div>
※起動時にチェックが付いているもとAndroid 2.3.3のPackageをインストール</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxjRDS-Iq7SH3V1Hwv1wAN6mYBtHH7V_s5MK3lAyusGovT6QjkNDsw23KLqUWY_4dI0zM22otLN8FYtUUHGLM9VH3ezzkReSVnl5Gi43OoogtUDWSUv4DzJAJgCHYL7uXH-fcxgpRSAug/s1600/7.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxjRDS-Iq7SH3V1Hwv1wAN6mYBtHH7V_s5MK3lAyusGovT6QjkNDsw23KLqUWY_4dI0zM22otLN8FYtUUHGLM9VH3ezzkReSVnl5Gi43OoogtUDWSUv4DzJAJgCHYL7uXH-fcxgpRSAug/s320/7.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Create AVD</h2>
<div>
<br /></div>
<div>
[Tools] -> [Android] -> [AVD Manager] でAVD Managerを起動し</div>
<div>
Android 2.3.3のVirtual Deviceを作成</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW_ePWidPeRXZPDFt0Gp8Eg-yzxYlGrIIh3nRjzrtdRLUbm6G0siSCYr-BQ1qZukz0mMI52_IxFgSjd5lDsmuiq5f6mU50zzLAMOcLT09oSn2xc6zOI64hW-1fKmZUmt9QjKyNl2-phyphenhypheng/s1600/8.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW_ePWidPeRXZPDFt0Gp8Eg-yzxYlGrIIh3nRjzrtdRLUbm6G0siSCYr-BQ1qZukz0mMI52_IxFgSjd5lDsmuiq5f6mU50zzLAMOcLT09oSn2xc6zOI64hW-1fKmZUmt9QjKyNl2-phyphenhypheng/s320/8.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Launch Application</h2>
<div>
<br /></div>
<div>
[Run] -> [Run 'app']で先ほど作成したAVDを選択し、アプリケーションを起動</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpE_OSci4nHygckjCHsZ54Ex1xuOEHOHWgtm46FnsVzrJabWHadjZWwCVyEsjFxvzcrfSThKVYnozqhhvQrYUu0gukjuZOiR01rut0paFA0tcWEnIBuyddfsbShNC8FJfe_4lE64066wg/s1600/9.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpE_OSci4nHygckjCHsZ54Ex1xuOEHOHWgtm46FnsVzrJabWHadjZWwCVyEsjFxvzcrfSThKVYnozqhhvQrYUu0gukjuZOiR01rut0paFA0tcWEnIBuyddfsbShNC8FJfe_4lE64066wg/s320/9.png" width="269" /></a></div>
<div>
<br /></div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-86646705575766566152015-07-26T08:43:00.001+09:002015-07-28T09:25:43.128+09:00Ubuntu 64bit環境でAndroidをantビルドする際の注意点Ubuntu 64bit環境(14.04.2)で、Androidをantビルドする際に<br />
下記のようなエラーが出る場合があります。<br />
<br />
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
android-sdk-linux/tools/ant/build.xml:694: Execute failed:
java.io.IOException: Cannot run program "/home/ubuntu/android-sdk-linux/
build-tools/23.0.0-preview/aapt"</div>
<br />
その場合は、下記のライブラリをインストールして下さい。<br />
<br />
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
sudo dpkg --add-architecture i386<br />
sudo apt-get update<br />
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386</div>
<br />
参考:<a href="https://developer.android.com/intl/ja/sdk/installing/index.html?pkg=tools">https://developer.android.com/intl/ja/sdk/installing/index.html?pkg=tools</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-78197071549388890962015-07-20T17:38:00.000+09:002015-07-28T10:28:03.673+09:00Android StudioのDownloadとInstall (Windows)<br />
<h3>
Download</h3>
Android Developersからexeをダウンロード<br />
<br />
<h3>
事前準備</h3>
Android Studioを使用するにはJDK 6以上が必要となります。<br />
<br />
※Android 5.0以上の開発にはJDK 7が必要となります。<br />
※JAVA_HOMEの設定が推奨されています。<br />
<br />
<h3>
Install</h3>
Downloadしたexeを実行して下さい。<br />
<br />
<h3>
トラブルシューティング</h3>
初期起動じに下記のエラーが発生した場合<br />
<br />
The environment variable JAVA_HOME does not point to a valid JVM installation.<br />
<br />
JAVA_HOMEを下記の通り変更して下さい。<br />
<span class="Apple-tab-span" style="white-space: pre;"><span style="white-space: normal;"><br /></span></span>C:\Program Files\Java\jdk1.7.0_71\bin;<br />
↓<br />
C:\Program Files\Java\jdk1.7.0_71<br />
<br />
<a name='more'></a><br />
<a href="http://yoshihiro-kato.blogspot.com/2015/07/android-studiohello-world.html">Android StudioでHello World</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-80814319422013510122015-07-09T23:21:00.000+09:002015-07-28T10:26:35.257+09:00ADT in Eclipseのサポート終了Android Developer Tools (ADT) in Eclipseのサポートが2015年末で終了となります。<br />
<br />
※Android Ant buildも終了となります。<br />
<br />
本格的に、Android Studioへの乗り換えが必要となるようです。<br />
<br />
参考:<a href="http://android-developers.blogspot.jp/2015/06/an-update-on-eclipse-android-developer.html">Android Developers Blog</a><br />
<br />
<a name='more'></a><br />
<a href="http://yoshihiro-kato.blogspot.com/2015/07/android-studiodownloadinstall-windows.html">Android StudioのDownloadとInstall (Windows)</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-38395548964248797422015-06-03T23:27:00.002+09:002015-07-09T23:22:41.046+09:00Androidでorg.json.JSONObjectを使う際の注意点Android標準(5.1現在)の<a href="http://developer.android.com/intl/ja/reference/org/json/JSONObject.html">org.json.JSONObject</a>には、MapとListをputできません。<br />
<div dir="ltr">
<br /></div>
<div dir="ltr">
正確には、入れても想定通りのエンコードができません。(valueにtoStringしたような値が入ります)</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
MapやListはJSONObjectやJSONArrayへの詰め替えが必要となります。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
補足:JSONObjectのput関数には、valueの型にMapおよびListのものがなく、put (String name, Object value)のvalueにはMapおよびListが含まれない。</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-66822981196149125212015-05-10T18:20:00.000+09:002015-07-20T17:58:49.721+09:00gitのインストール(Windows)<h3>
Download</h3>
<a href="http://git-scm.com/downloads">git</a>からexeをダウンロード<br />
<br />
<h3>
Install</h3>
ダウンロードしたexeを実行<br />
<br />
<br />
<a name='more'></a><br />
<h3>
便利なコマンド</h3>
<div>
gitk : コミット履歴の表示</div>
<div>
<br /></div>
<div>
git gui : 変更点の標示</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-63870268544095628682015-01-13T13:55:00.000+09:002015-01-13T13:55:43.717+09:00gitでブランチを作成する際の注意点gitで新しくブランチを作成する際、<br />
<br />
git checkout -b newBranch origin/baseBranch<br />
<br />
としていませんか?<br />
<br />
これは危険です。<br />
<br />
<br />
上記の場合、作成されるnewBranchの追跡ブランチはorigin/baseBranchとなります。<br />
<br />
※追跡ブランチとは、リモートブランチとつながりを持つローカルブランチのことです。<br />
※追跡ブランチの確認は「git branch -vv」で行えます。<br />
<br />
<br />
例えば、「git push」(オプションなし)を行った場合は、newBranchの修正が、リモートのbaseBranchにpushされます。<br />
<br />
また、「git push origin newBranch:newBranch」(リモートにnewBranchを作成)とした場合でも、その後「git pull」(オプションなし)を行うと、リモートのbaseBranchの修正がnewBranchにマージされます。<br />
<div>
<br /></div>
<br />
新しくブランチを作成する際は、<br />
<br />
git checkout -b baseBranch origin/baseBranch<br />
<br />
の後(ローカルのbaseBranchで)に<br />
<br />
git branch newBranch<br />
<br />
を行うことをお勧めします。yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-85587541311696337672014-11-16T08:32:00.000+09:002015-06-04T08:12:57.239+09:00UbuntuでJSONの整形 (2)<a href="http://yoshihiro-kato.blogspot.com/2014/03/ubuntujson.html">UbuntuでJSONの整形</a>で紹介した方法では、<br>
日本語がユニコードにエスケープされてしまうので回避方法を紹介します。(キーのソートも追加しました)<br>
<br>
JsonPrettyPrint.pyを作成<br>
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
#!/usr/bin/env python<br>
# -*- coding: utf-8 -*-<br>
import json<br>
<br>
jsonStr = raw_input()<br>
prettyPrint = json.loads(jsonStr)<br>
print json.dumps(prettyPrint, indent=4, ensure_ascii=False, sort_keys=True)</div>
<br>
整形する場合は<br>
<br>
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
$ python JsonPrettyPrint.py<br>
{"キー":"値"}<br>
<br>
{<br>
"キー": "値"<br>
}</div>
<br>
でできます。<br>
<br>
sample : <a href="https://github.com/yoshihiro-kato/Sample/blob/master/python/JsonPrettyPrint.py">JsonPrettyPrint.py</a>yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-76272646679500247932014-11-08T18:25:00.000+09:002015-05-24T13:21:39.998+09:00Maven projectで、Maven project以外のjarを参照する方法<div dir="ltr">
Local Repository(localRepo)を作成し、jarを配置。</div>
<div dir="ltr">
jarと同じ位置に、pomファイル(SampleSub-1.0.0.pom)を作成する。<br />
<br /></div>
<h4>
- ファイル構成</h4>
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
SampleMain<br />
|- pom.xml<br />
|- src<br />
|- localRepo<br />
|- sample<br />
|- sub<br />
|- SampleSub<br />
|- 1.0.0<br />
|- SampleSub-1.0.0.pom<br />
|- SampleSub-1.0.0.jar</div>
<div dir="ltr">
<br />
<div dir="ltr">
<h4>
- SampleSub-1.0.0.pom</h4>
</div>
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
<project><br />
<groupId>sample.sub</groupId><br />
<artifactId>SampleSub</artifactId><br />
<version>1.0.0</version><br />
</project></div>
<br />
メインのpomにrepositoryとdependencyを追加する。
<br />
<br /></div>
<div dir="ltr">
<h4>
- pom.xml</h4>
</div>
<div style="border: 1px solid #999999; margin-bottom: 10px; padding: 10px;">
<project><br />
...<br />
<br />
<repositories><br />
<repository><br />
<id>local Repo</id><br />
<url>file:${basedir}/localRepo</url><br />
</repository><br />
</repositories><br />
<br />
<dependencies><br />
<dependency><br />
<groupId>sample.sub</groupId><br />
<artifactId>SampleSub</artifactId><br />
<version>1.0.0</version><br />
</dependency><br />
</dependencies><br />
<br />
</project></div>
<div dir="ltr">
<br />
<a href="https://github.com/yoshihiro-kato/Sample/tree/master/maven/localRep/SampleMain">Sample</a></div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-21464082616084355642014-10-26T11:27:00.003+09:002014-11-16T08:08:57.010+09:00Linux(Ubuntu)でファイル構成を確認する方法Linux(Ubuntu)でファイル構成を確認する方法<br />
<div>
<br /></div>
<div>
tree</div>
<div>
<br /></div>
<div>
インストールされていない場合は</div>
<div>
<br /></div>
<div>
sudo apt-get install tree</div>
<div>
<br /></div>
<div>
でインストールされる。</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com0tag:blogger.com,1999:blog-378118095858317517.post-24998563290591160292014-10-22T19:18:00.001+09:002014-10-23T06:29:56.772+09:00JUnitとTestNGのassert関数の違い<div dir="ltr">
JUnitとTestNGのassert関数には、パラメーターに違いがある。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
- JUnit<br />
<b>assertEquals</b>(Object expected, Object actual)</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
- TestNG(org.testng.Assert)<br />
<b>assertEquals</b>(Object actual, Object expected)</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
求められる結果は一緒だが、expectedとactualを逆に書いてしまうとエラー時のログがややこしくなる。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
ただし、TestNGにはorg.testng.AssertJUnitというクラスがある。</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
- TestNG(org.testng.AssertJUnit)<br />
<b>assertEquals</b>(Object expected, Object actual)</div>
<div dir="ltr">
<br /></div>
<div dir="ltr">
JUnitとTestNGの両方を使う機会がある場合は、org.testng.AssertJUnitを使っておけば、間違いが減るかも。</div>
yoshihiro katohttp://www.blogger.com/profile/11517585426134708481noreply@blogger.com1