気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Maven プラグインが落とせない場合の確認ポイント

1. プラグイン取得先

プロキシ設定などがされている場合、人によって、プラグインが取得できない場合がある。

pom.xmlの通常設定

  <repositories>
    <repository>
      <id>central</id>
      <name>Maven2 Central Repository</name>
      <url>http://repo1.maven.org/maven2/</url>
    </repository>

上手くいかない場合は、以下のURLを試してみるとダウンロードできる場合がある。

      <url>https://repo.maven.apache.org/maven2/</url>

2. Mavenのクラスパス変数の設定

設定 ⇒ Java ⇒ ビルドパス ⇒ クラスパス変数 に「M2_REPO」が存在するかどうか確認
なければ、変数を追加する。

クラスパス変数:M2_REPO
パス:C:\Users\user_name.m2 ※mavenディレクトリを指定

3. プロキシの設定

基本的には、設定 ⇒ 一般 ⇒ ネットワーク接続におけるプロキシ設定が反映されています。

ただし、m2e, m2eclipseの場合は、追加の以下の設定が必要なようです。

設定場所
C:\Users\user_name.m2\settings.xml ※ファイルがなければ作成

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <proxies>
    <proxy>
      <id>http_proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.example.test</host>
      <port>12345</port>
    </proxy>
    <proxy>
      <id>https_proxy</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>proxy.example.test</host>
      <port>12345</port>
    </proxy>
  </proxies>
</settings>

もし、エラーが発生する場合は、Mavenコマンドの update projectを実施すると解決する可能性があります。

MacでHome brewを用いて、MongoDBをインストール&初期設定

1. インストール手順

1.1 Home brewパッケージをアップデート

$ brew update

1.2 Mongo DBをインストー

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.4.4.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mongodb-3.4.4.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb now and restart at login:
  brew services start mongodb
Or, if you don't want/need a background service you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
🍺  /usr/local/Cellar/mongodb/3.4.4: 18 files, 269.8MB

1.3 バージョン確認

$ mongo
MongoDB shell version v3.4.4

1.4 設定ファイル

/usr/local/etc/mongodb.conf

2. Mongo DBの起動

2.1 初期設定

データ格納ディレクトリの作成を行います。

$ sudo mkdir /var/lib/mongodb

ログファイル作成を行います。

$ sudo touch /var/log/mongodb.log

2.2 Mongo DBを起動

2.2.1 通常起動

先程作成した、データ格納ディレクトリとログファイルを指定します。

$ sudo mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb.log

2.2.2 バックグラウンド起動

--fork コマンドを付与して起動します。

$ sudo mongod --fork --dbpath /var/lib/mongodb --logpath /var/log/mongodb.log

停止する場合は、Mongoシェルより行う。

$mongo
> use admin
switched to db admin
> db.shutdownServer()
server should be down...

3. Mongo DBの自動起動設定

サービスを起動する。

$ brew services start mongodb
==> Successfully started `mongodb` (label: homebrew.mxcl.mongodb)

サービスリストを確認する。

$ brew services list
Name       Status  User   Plist
mongodb    started tezuka /Users/aaa/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

自動起動設定の確認

$ ls -l ~/Library/LaunchAgents/
total 24
lrwxr-xr-x  1 aaa  staff   50 Jun  2 22:33 homebrew.mxcl.mongodb.plist -> /usr/local/opt/mongodb/homebrew.mxcl.mongodb.plist

サービスを停止する。

$ brew services stop mongodb
Stopping `mongodb`... (might take a while)
==> Successfully stopped `mongodb` (label: homebrew.mxcl.mongodb)

Oracle 前月初日と前月末日を取得する

前月初日

2ヶ月前の末日の次の日で求める。

select TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-2))+1)
from dual;

結果

2017-04-01

前月末日

1ヶ月前の末日で求める。

select TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,-1)))
from dual;

結果

2017-04-30

cron設定方法

1. 編集方法

crontabコマンドでcron設定を行います。

crontab [ -u ユーザ名 ] {-l | -r | -e }

optionは以下です。

-u:cronを設定するユーザーを指定
-l:cronを一覧で表示
-r:cronの設定を全消去
-e:cronを設定するエディタを起動する

コマンド実行ユーザー毎に設定が可能。
ユーザー指定なしではrootの設定を参照、編集することになる。

2. cron設定方法

2.1 cron設定エディタの起動

-uで指定ユーザーのcron設定を編集するエディタを起動する (-uオプションはroot のみ使用可)
rootのcron設定変更時は、-uオプションは不要。

crontab -u root -e

2.2 cron設定の記述方法

分 時 日 月 曜日 <実行コマンド>
指定方法 記述例 説明
固定指定 0 15 * * * echo “hello” 15時になる度にechoの文字列を表示
間隔指定 */5 * * * * echo “hello” 5分ごとに実行
複数指定 5,10 2 * * * echo “hello” 2時5分と2時10分に実行
範囲指定 5 2-4 * * * echo “hello” 2時5分と3時5分と4時5分に実行

設定ファイルの読み込み

cron設定を記述したファイルを読み込むことで、cron設定できます。

echo '*/5 * * * * echo "hello"' > cron.conf
crontab cron.conf

crontabで-rオプションをつけて設定を全削除してしまう場合があります。 そのような場合に、設定ファイルを出力しておき、読み込むことで、すぐに復旧が可能です。

設定ファイルの実体の場所

バックアップする場合、以下のユーザー毎の設定を保存しておくと良いです。

/var/spool/cron/【ユーザー名】

カレントディレクトリにファイル属性をそのままで/var/spool/cron/以下をすべてコピー

sudo cp -pr /var/spool/cron/ .

Linux suコマンド

ユーザー切り替え

# 「-」オプションはログイン・シェルを使用してユーザーを切り替える
# ユーザー指定なしの場合は、rootとなる
su - 

suとsudoの違い

ほぼできることは重複しているが、以下の違いがある。

su:切り替え先ユーザー(root)のパスワードが要求される sudo:sudoは元ユーザーのパスワードが要求される。/etc/sudoersで権限の細かい設定が可能

JavaScript 連想配列への要素追加・削除

要素追加

var obj = {a:10, b:20};
obj.c = 92;
obj["d"] = 76;

要素削除

var obj = {x:100, y:80, z:92};
delete obj.y;

jQueryでcheckboxの全選択をシンプルに実装する

HTML

<ul>
    <li><label><input type="checkbox" id="all" /> Check all</label></li>
    <li><label><input type="checkbox" name="check" value="1" /> value 1</label></li>
    <li><label><input type="checkbox" name="check" value="2" /> value 2</label></li>
    <li><label><input type="checkbox" name="check" value="3" /> value 3</label></li>
    <li><label><input type="checkbox" name="check" value="4" /> value 4</label></li>
</ul>

jQuery

//全選択・全解除をクリックしたとき
$('#all').on('change', function() {

//チェックしたチェックボックスの状態を他のチェックボックスに反映
$('input[type=checkbox]').prop('checked', this.checked);
});

上記の場合、HTML上の全チェックボックスへ反映してしまうため、以下のように
範囲を絞って反映するとより安心感があります。

//全選択・全解除をクリックしたとき
$('#all').on('change', function() {

// idがupdateAreaの子要素のcheckboxにのみチェック状態を反映
$("'input[type=checkbox]'", "#updateArea").prop('checked', this.checked);
});