2015年12月27日日曜日

アンドロイドエミュレータインストールできない解決方法

アンドロイドの開発サイト(http://developer.android.com)に載っているトレーニング通りに開発環境を構築し、「Building Your First App」を試してみたら、エミュレータがインストールできず、起動してくれない。。。

知り合いに聞いてみたら、ライブラリーが足りないらしい> <

足りないライブラリーをインストールしたら解決できました。
やったことの手順をまとめってみました。

1、まず「Android SDK Manager」を起動します。
 アンドロイドSDKがインストールされているディレクトリー/sdk/tools/android.sh を実行します。(Windowsだと、android.batファイルを実行します。)

2、「Android SDK Manager」管理画面から、足りないライブラリー「Google APIs」、「Google APIs Intel x86 Atom_64 System Image」、「Google APIs Intel x86 Atom System Image」を選択して、インストールします。

 ここで少し余談ですが、エミュレータを高速するライブラリー「Intel x86 Atom System Image」と「Intel x86 Emulator Accelerator(HAXM installer)」も一緒にインストールすることをお勧めです。

3、最後Android Studioを再起動して、エミュレータを再インストールします。

2015年12月15日火曜日

git間違ったコミットをなかったことにするには?

gitでリモートに間違ったコミットをなかったことにする方法は?

例えば、branch名はmasterとします。

以下のコマンドを実行すれば、リモートのコミット履歴は綺麗に消えます。
※注意してほしいのは、その操作を実行する前に、念のため、masterブランチをバックアップしておくといいでしょうか。(簡単にgit branch master_bkを実行すれば、バックアップ用ブランチを作成できます)

 git reset --hard <commit-hash>
 git push -f origin master

2015年12月14日月曜日

2015年12月10日木曜日

spawn: コマンドが見つかりませの解決方法

expectを使って、scpにパスワードを送ろうと思ったところ、
スクリプトを実行したら、こんなエラーが出た
spawn: コマンドが見つかりませ
もしかして、expectはインストールされてない?「which expect」で実行したら、ちゃんっと返答が帰ってきた
/usr/bin/expect

いろいろ調べて結果、最後以下の二つ事をやったら、ちゃんと動いてくれた。
1、スクリプトファイルの先頭に「#!/usr/bin/expect -f」を書く 
2、スクリプトファイルの実行権限を持たせる「 chmod +x test.sh 


2015年11月23日月曜日

rbenvでRubyの最新版をインストールする方法

以下のコマンドを使えば、最新版をインストールできます。
rbenv install $(rbenv install -l | grep -v - | tail -1)

インストールが終わったら、rbenvを再読み込み
rbenv rehash

Rubyのバージョンを変更
rbenv global x.x.x

最後、Rubyのバージョンを確認
ruby -v

2015年10月26日月曜日

ipアドレスの正規表現

ipv4にマッチする正規表現は:

/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

例:angularJsでIPアドレスをチェックする
<input type="text" maxlength="15" name="ip" placeholder="例:111.111.111.111" ng-model="ip" ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/" required>


2015年10月17日土曜日

MAC OS環境でmysql サーバ起動するコマンド

久しぶりmysqlを使おうと思ったら、mysqlの起動コマンドを忘れてました。

メモとして、mysqlサーバ起動するコマンドは:
kaoru-no-MacBook-Pro:~ kaoru$ mysql.server start
Starting MySQL

. SUCCESS! 

2015年10月15日木曜日

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance の解決方法

今日「npm i」コマンドを実行したら、
こんなエラーが、、
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
完全版のXCodeをインストールが必要だそうです。
解決方法としては、
1、まず、「https://developer.apple.com/xcode/」からXcodeをダウンロード、インストールします。

2、以下のコマンドを実行
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

もう一回実行したら、まだ新たなエラーがでました。
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

ApplicationsからXcodeを開いて、「同意」を押さなければなります。これでやっと問題解決。


2015年10月14日水曜日

AngularJs ブラウザのコンソールで$scope変数を出力する方法

ブラウザのコンソールで$scopeの中身を出力する方法は、以下のコンマンドでコンソール画面に打ちます。

angular.element($0).scope() 
以下の図のように↓

angularjs モデルの値をリセットする方法

AngularJsモデルの値をリセットする方法は、
最初の値をdeep copyで保存しておく

例:
function TodoCtrl($scope) {
    // 最初のデータ    $scope.data = [
        {text:'learn angular', done:true},
        {text:'build an angular app', done:false}
    ];
    // 最初のデータをdeep copyで保存しておく    $scope.orig = angular.copy($scope.data);
    // リセットボタンを押したら実行する    $scope.reset = function() {
        $scope.data = angular.copy($scope.orig);
    };
}

2015年10月7日水曜日

java unitテスト  Thread.sleepのモックする方法

@Testpublic void Sleepモックテスト(@Mocked("sleep") final Thread thread) throws Exception {

    new NonStrictExpectations() {{
        // 
    }};

    Thread.sleep(1000);

}

config.vm.box_url にローカルのファイルに指定する方法

「Vagrantfile」ファイルのconfig.vm.box_urlをローカルファイルに設定するには

  config.vm.box_url = "file://../my_test.box"


ついでに、vagrant コマンド一覧をメモ:

vagrant up

設定ファイルVagrantfileに基づいて、バーチャルボックスを起動する.

vagrant suspend

保留する
パソコンを閉じる前にやっておいた方がいいコマンド

vagrant destroy

バーチャルボックスを破棄する。慎重に使った方がいいコマンド

vagrant reload

vagrant reload と vagrant reload --provision 両方とも再起動したい時に使うコマンド 

vagrant ssh

バーチャルボックスにsshでログインする

vagrant ssh-config

接続情報を表示する

angularjs 共通フッターの追加方法 ng-include

「ng-include」を使えば、手軽く共通フッターを追加することができる。

使い方は、htmlファイルに以下のソースを追加すればいい

<ng-include src="'views/footer.html'"></ng-include>
もしくは
<div ng-include="'views/footer.html'"></div>
ここで注意していただきたいのは、「src」の中にスペースを入れないこと。そして、「src」ダブルクォーテーションの中に、シングルクォーテーションもお忘れなく


もし「ng-include」部分のフラグメントに、専用なcontrollerを追加したいなら、「ng-controller」を追加すればいい

「ng-controller」の使い方

<div ng-include="'views/footer.html'" ng-controller="FooterCtrl" ></div>

そして、footer.jsを作成します。以下はfooter.jsの中身です。
'use strict';

/** * @ngdoc function 
@name app.controller:FooterCtrl 
 * @description 
 * # FooterCtrl 
 * Controller of the app 
*/
 angular.module('app')
    .controller('FooterCtrl', function ($scope, $window) {
    // FooterCtrlのソースコードはここに書きます    
    
    });

2015年10月6日火曜日

vagrantでバーチャルボックスをバックアップと復元する方法

バックアップする方法:
まず、ゲストマシンが停止している状態なのか確認する
vagrant status
停止状態でなければ停止する

いよいよバックアップ
$ vagrant package --output=~/mybox_bk.box
....
ここはちょっと時間がかかります。
じっと待つ10分ぐらいかな(>_<)。。。
以下のようなメッセージが表示されます。
$ vagrant package --output=~/mybox_bk.box
/opt/vagrant/bin/../embedded/gems/gems/vagrant-1.7.2/lib/vagrant/pre-rubygems.rb:31: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
/opt/vagrant/embedded/gems/gems/bundler-1.7.11/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: /Users/matsuoka/mybox_bk.box

matsuokakaoru-no-MacBook-Pro:kac-virtualmachine matsuoka$ 

/Users/matsuoka/mybox_bk.boxファイルが出力されたことを確認できればバックアップ完了


復元の方法:
いざ何かありましたら、復元します。
$ vagrant box add mybox ~/mybox_bk.box
「vagrant box add」を使えばいい



angularjs angular-cookiesの使い方

1、angular-cookiesのインストール
bower.jsonファイルの「dependencies」に、以下のように、「"angular-cookies": "^1.4.7"」を追加
そして、コマンドで「bower install」で関連ファイルをダウンロードする

もしくは、直接
npm install angular-cookies
でダウンロードする

2、自分のプロジェクトのフhtmlァイルに以下を追加
<script src="bower_components/angular-cookies/angular-cookies.js"></script>

3、jsファイルのmoduleに「ngCookies」を追加
例:

'use strict';

/** * @ngdoc overview * @name app * @description * # app * * Main module of the application. */angular  .module('app', [
    'ui.bootstrap',
    'ngAnimate',
    'ngCookies', // ←ここ
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'      })
      .otherwise({
        redirectTo: '/'      });
  });

4、最後に、Cookieを使う。「$cookieStroe」を使って値を読んだり、保存したりする。
例:

angular.module('app')
    .controller('MainCtrl', function ($scope, $q, constant, $cookieStore) {

        $scope.name = "";
     // クッキーを読み出す
        if ($cookieStore.get('name') != 'undefined') {
            $scope.name = $cookieStore.get('name');
        } else {
            $scope.name = "初期値";
        }

        
        // クッキーに値を保存        $scope.setCookie = function (value) {
            $cookieStore.put('name', value);
        };

    });

2015年9月30日水曜日

angularJs ui.Calendar eventを更新してくれない問題

angularJsのui.Calendarをつかって、eventを再描画してくれない問題が発生しました。

解決方法としては、 「uiCalendarConfig.calendars.calendar.fullCalendar('refetchEvents');」を追加

$scope.uiConfig = {
    calendar: {
        ....
        viewRender: function (view, element) {
            if (uiCalendarConfig.calendars.calendar !== 'undefined') {
                uiCalendarConfig.calendars.calendar.fullCalendar('refetchEvents');
            }
        }
    }
};

angular-ui/ui-calendar uiCalendarConfig.calendars undefined 問題

angularのuiCalendarをサンプル通りに使ってみました。

uiCalendarConfig.calendars[calendar].fullCalendar('render');」を読んだら、「undefined」のエラーになりました。


解決方法としては、
まず、HTMLに、「calendar」属性はなかった
<div class="calendar" ui-calendar="uiConfig.calendar"     ng-model="eventSources"></div>

追加した

<div class="calendar" calendar="myCalendar" ui-calendar="uiConfig.calendar"     ng-model="eventSources"></div>

JSのところ、
uiCalendarConfig.calendars.myCalendar.fullCalendar('render');

2015年9月29日火曜日

Warning: fontconfig-2.11.1 already installed, it's just not linked

brew install fontconfig
を実行したら、こんなエラーが、
Warning: fontconfig-2.11.1 already installed, it's just not linkeds
すでにインストール済みだそうなので、リンクをはってあげればいい
 sudo brew link fontconfig

2015年9月28日月曜日

git HTTPSリポジトリのユーザー名とパスワードを保存する方法

gitでHTTPSのリポジトリにアクセスする度に、ユーザー名とパスワードが毎回聞かれます
そこで、パスワードを保存すれば、次回から聞かれなくなります。

git config credential.helper store
bower update xxx-frontend

2015年9月26日土曜日

tar.unpack untar error の解決方法

方法一:「npm cache clean」を実行 ついでに「bower cache clean」も実行

方法二:「sudo」で実行

2015年8月20日木曜日

angular 入門 目次

まず、angular-phonecat repositoryからサンプルソースコードをダウンロードする


git clone --depth=14 https://github.com/angular/angular-phonecat.git

ダウンロードしたangular-phonecatディレクトリーに移動する

cd angular-phonecat

依存関係をインストールする

npm install

最後、ウェブサーバを起動する

npm start

ウェブサーバが起動できたら、ブラウザから動作を確認できます。

http://localhost:8000/app/index.html

引用元:https://docs.angularjs.org/tutorial

2015年6月24日水曜日

mvn 証明書を無視

MVN証明証を無視してコンパイルするコマンド:

mvn clean compile -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true


参考URL

IntellijのFormatterをかけないようにするには

IntellijのFormatterをかけないようにするには

Intellijでファイルを保存すると、自動的にファイルをせいけいしてくれます。
ためには(例えば配列などに)Formatterをかけたくないコードがありますよね
Formatterをかけないようにする方法は、
Step1、Intellijの 「Intellij IDEA」→「preferences...」→「Editor」→「Code Style」→「Formatter Control」→「Enable formatter markers in comments」をチェックする



Step2、フォーマットしてほしくない始点で @formatter:off、終点で @formatter:on を設置する。
例:
  // @formatter:off    /** 名前 */    private Long name; 

    /** ID */    private Long id;
    // @formatter:on

authorized_keysファイルとは

authorized_keysファイルとは

主に公開鍵を保存するためのですが、ログイン時に自動的に実行するプログラムを入れたり、環境変数を入れたりすることもできるファイルです。

2015年6月7日日曜日

Chromebブラウザで「No 'Access-Control-Allow-Origin' header is present on the requested resource」エラーの解決方法

chromeのブラウザでrest apiを呼んだら、こんなエラーが出た

No 'Access-Control-Allow-Origin' header is present on the requested resource

エラーの解消方法は、
Windowsユーザーの場合は、
こんな感じで起動すれば解決できるはずです。

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
他の環境、マックユーザーなどの場合は、
ChromeのプラグインCORSをインストールして、
後そのプラグインの設定のところ、「Enable cross-origin resource sharing 」ONにすれば解決できるはずです。
CORSのプラグインURLは以下の通りです。
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en-US)

Spring Restfull APIで200 OKレスポンスを返す方法

関数にアノテーション「@ResponseStatus(HttpStatus.OK)」を追加
関数の返却値は「void」で定義する

例:
@RequestMapping(value = “/xxxx/{Id:.+}", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.OK)
public void delete(@RequestHeader(“code") final String code, @PathVariable final String Id) throws ApplicationException{
    // 処理
    try {
        
    } catch (ApplicationException e) {
        
        }
    }
}

Spring Data JPAでselect IN-clause クエリーの使い方

Spring Data JPAでselect IN-clause クエリーの使い方


@Query(value = "SELECT * FROM User WHERE id IN (:ids)", nativeQuery = true)
Set<User> findByIdInSet(@Param("ids") Set<Long> ids);

2015年6月3日水曜日

Linux 主に環境変数

Linuxで主なロケール関連の環境変数は以下になります
1、LC_TYPE. 文字の分類 文字属性の定義など
2、LC_MESSAGE メッセージの言語
3、LC_MONETARY 通貨
4、LC_NUMERIC 数値の入力に使用する形式
5、LC_TIME 時刻形式に各国語

2015年6月1日月曜日

macにJAVA_HOMEの設定方法 

Step1 まず、コマンド「/usr/libexec/java_home -V」でインストールされて全てのJDKを確認できます。

Step2 次に、自分のホームディレクトリーのファイル、「~/.bash_profile」に、以下のコードを追加します。
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home’
Step3 最後、コマンド「echo $JAVA_HOME」で確認できます。

2015年5月30日土曜日

Error: Cannot write to /usr/local/Cellar エラーの処理

「brew install mongodb」を実行したら、

Error: Cannot write to /usr/local/Cellar のエラーになりました。

/usr/local/Cellar に書き込み権限がないから、
以下のコマンドで権限を修正したら、問題を解決できました。

sudo chmod a+w /usr/local/Cellar

2015年5月23日土曜日

linux kill と killallの違い

killコマンドは、指定したプロセスにシグナルを送信するコマンドです。
killallコマンドは、指定したプロセス名にシグナルを送信するコマンドです。

書式:

  • kill [-シグナル名またはシグナル番号] <プロセスID>
  • killall [-シグナル名またはシグナル番号] <プロセス名>

主なシグナル名とシグナル番号:
シグナル名シグナル番号動作
HUP1再起動を行う
INT2割り込み Ctrl+Cキーと同じ動作
KILL9強制終了する
TERM15普通終了

2015年5月19日火曜日

Linux オプション -v

Linuxコマンドのオプションの中に、よく-v オプションがあります。
-v  はverbosの略称です。

verboseの意味は?
辞書によりますと、
まず、読み方は:
ver・bose /vɚːbóʊsvəːbˈəʊs/

【形容詞】
そして日本語の意味は
言葉数の多い多弁のくどい冗長な.
用例


Linuxコマンドに、-v よくxxx詳細出力に使います。
例: tar -v 処理したファイルの一覧を詳細に出力

2015年5月17日日曜日

Linux プリンターと印刷を管理する

Common Unix Printing System(コモン・ユニックス・プリンティング・システム)とは:
  Unix系オペレーティングシステム (OS) 用のモジュール化された印刷システムである。普通CUPS(カップス)と略称される。


CUPSの設定ファイルは、/etc/cups/cupsd.confです。

よく使うコマンドは、


  • lpr  -print a file 印刷ジョブを生成し、キューに登録するコマンドです。
  • lprm --remove a print job プリントキューにある印刷ジョブを削除する。
  • lpq -view print jobs キューに登録されている印刷ジョブの確認を行うコマンドです。

2015年5月16日土曜日

Linux キーボードアクセシビリティ

キーボードアクセシビリティの主な機能は:

  • スディッキーキー:
    StickyKeys 同時に複数のキーを押下することが困難である人のために、これを順次入力可能となる機能
  • リピートキー:
    RepeatKeys キー押下した後すぐ離すことが困難な人のために、ある一定時間以上にキーを押さないと入力操作が繰り返されない機能

  • スローキー:
    SlowKeys 一定時間以上にキーを押下したもののみ入力が確定する機能
  • バウンスキー:
    BounceKeys 一定時間内に複数入力された場合は無視する機能

  • マウスキー
    mousekeys キーボードのテンキーでのマウスポイントの操作を可能にする機能
    

LINUX ファイルのパーミッションと所有者を管理する SUID SGID スティッキービット(Sticky Bit) それぞれの使い方


  1. SUID (Set User Idの略称) SUIDが設定されると、実行したユーザーではなく、そのファイルの所有者の権限で実行されたものとみなされます。                           test.txtファイルをSUIDを設定する例:                                    $ chmod u+s test.txt                                     $ chmod 4755 test.txt
  2. SGID(Set Group Idの略称) SGIDが設定されると、実行したユーザーではなく、そのファイルの所有グループの権限で実行されたものとみなされます。                       設定例:                                                             $ chmod g+s test.txt                                     $ chmod 2755 test.txt
  3. スティッキービット(Sticky Bit)  ファイルではなく、ディレクトリに対して設定するアクセス権です。 スティッキビットが設定されたディレクトリは、書き込みが許可されたファイルであっても、ほかのユーザーが所有しているものの削除することができません。
     設定例:
   $ chmod o+t test.txt                                       $ chmod 1755 test.txt

2015年5月15日金曜日

LPICレベル1試験の出題範囲詳細

101試験範囲:出題範囲詳細(Ver3.5)※2012/10/1~2015/11/30まで