C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2017年6月2日金曜日

[Mac][AirMac]AirMacに接続された外付けHDDをTimeMachineに利用する

16:03 Posted by 井口達也 No comments

もう6月ですね。早いですね

最近、海外ドラマの「シリコンバレー」にはまっています。
エンジニアの井口です。

皆さん、マシンのバックアップはどうされていますか?

僕はDropboxを使っていたのですが、
時々CPUを凄く使うことがあったり、マシンに差分ファイルを勝手に作ったりしたりするので、
Dropboxでbackupを取ることは止めました。

今ではMacのバックアップにAirMacを利用しています。
それで外付けHDDをAirMacに挿して
Macのバックアップにしようとした時のメモを共有します。


外付けHDDを「Mac OS 拡張ジャーナリング」でフォーマット

これは他のサイトも色々書いてるので参考にされて下さい
Mac 外付けディスクをフォーマットする方法|EzXNetwork


AirMacユーティリティで外付けHDDを認識してるか確認


普通に認識されていますね。
今回追加したのはI-O DATAのHDDです。


Time Machineの環境設定で、増やしたHDDを選択

したいんですが・・・

TimeMachineの環境設定からは、増やした外付けHDDを認識していませんでした。


色々やってみた結果・・



とりあえずFinderの共有から、外付けHDDにアクセスする

ことで解決しました。

アクセスすると、外付けHDD内に
.com.apple.timemachine.supported
というファイルが自動で生成されます。

このファイルの生成によって、
TimeMachineのHDD選択で、外付けHDDが選択できるようになるようです。


外付けHDDを指してみたけど、認識しないと困っている方がいらしたら
試してみて下さい(^^)


以上です



↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナー、システムエンジニア、HTMLコーダーの方を求人しております。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2017年5月30日火曜日

[Yii2]便利なDBからの呼び出しと社内緑化

20:06 Posted by 井口達也 , , No comments

こんばんわ!

日本代表U20がベスト16で負けましたね。残念・・
エンジニアの井口です。

最近、社内に潤いが欲しいということで、植物たちを設置しました。
やっぱりオフィスに緑が増えると落ち着きますねぇ
心に余裕って大事ですね!


では、今日もYii2の便利な機能について共有します。

カラムを別名で呼び出す

モデルに設定していないプロパティ名でも、
・別名をつける
・配列化
して取り出せば、容易に参照できます。
$managers = Manager::find()
             ->select(['id', 'CONCAT_WS(\' \', name_sei, name_mei) AS name'])
             ->andWhere(['del_flg' => 0])
             ->andWhere(['shop_id' => $shop_id])
             ->orderBy(['view_order' => SORT_ASC])
             ->asArray()
             ->all();
ここでのポイントは
・selectメソッドで別名として読み出し設定(concat_wsで連結してます)
・asArrayメソッドで配列化
です。

あとはお好みで

加工しちゃいましょう。
Yii2で超便利がいい、ArrayHelperを使って、dropdownListの項目にしちゃいます
$options = \yii\helpers\ArrayHelper::map($managers, 'id', 'name');

かなり使い勝手がいいですね(^^)

そんな感じで、Yii2の便利機能の紹介でした



↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナー、システムエンジニア、HTMLコーダーの方を求人しております。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2017年5月23日火曜日

[Yii2]AutoCompleteの使い方とGWの事

16:08 Posted by 井口達也 , No comments

もうゴールデンウィーク終わっちゃいましたね!

ほんとあっという間に終わっちゃいました。

GWに2回キャンプに行きました(^^)
エンジニアの井口です。

みなさんどうですか?案件に追われてますか?
弊社はありがたいことに、日々案件に追われております。
いつもありがとうございます。

今日はみなさんが大好きであろう、
Yii Framework2の便利な機能である、Autocomplete生成について紹介します。

Yii2でAutoCompleteを実装する

Yii2には、便利なウィジェットである、jui が実装されています。
ウィジェットというのは、Htmlの共通部分を切り出した、便利部品みたいなものですね
jui は jQuery ui の略です
読み方がわからないので、社内では「ジュイ」と読んでいます。(^_^);

参考:AutoComplete, yii\jui\AutoComplete - Yii Framework 2.0 API Documentation

Yii2の公式ドキュメントは完結に、しかもしっかりと内容が記載してあり、
かなり充実していると思うのですが、
autocompleteに関しては、公式ドキュメントに書かれていない、
ちょっと便利な使い方が見つけたので、共有します。

AutoCompleteに値を渡す

値を渡すことそのものに関しては、ドキュメントにあるように、
echo AutoComplete::widget([
    'name' => 'country',
    'clientOptions' => [
        'source' => ['USA', 'RUS'],
    ],
]);
と渡せます。
この場合、値は'USA', 'RUS'ですね。

今回はちょっとこだわって、
  • 値を生成
  • 値を別名をつけて生成
  • 選択したあとにinput[type=hidden]のdomに値を受渡し
とやってみます。

多分この部分まで読んでくれているプログラマの人たちだけだと思うので、
(しかもYii好きな)
そのコードを見てもらうのが早いですね!

AutoCompleteの便利な使い方のコード

<?php
    // autocomplete用に配列生成      
    $title_data = \common\models\CmsContent::find()
         ->select(['id as id', 'title as value']) // jsに渡すようにidとvalueを作成する idを受け渡す
         ->asArray()
         ->all();
      $page_id_datas = \common\models\CmsContent::find()
         ->select(['id as id', 'page_id as value'])
         ->andWhere(['!=', 'page_id', ''])
         ->asArray()
         ->all();
      $data = array_merge($title_data, $page_id_datas);

?>
<?= AutoComplete::widget([
     'model' => $model,
     'attribute' => 'cms_content_search',
     'options' => [
        'class' => 'form-control'
      ],
     'clientOptions' => [
        'source' => $data,
        'select' => new JsExpression("function( event, ui ) {               
    $('.ajax_cms_content_id').val(ui.item.id);               
    $('.ajax_cms_content_id_selected').show();            
}")
     ],
  ]);
?>
ポイントは
値を生成する際に、
->select(['id as id', 'title as value’]) // jsに渡すようにidとvalueを作成する idを受け渡す
このように別名でカラムを読み出している点と、

'select' => new JsExpression("function( event, ui ) {               
    $('.ajax_cms_content_id').val(ui.item.id);               
    $('.ajax_cms_content_id_selected').show();            
}")
selectされたときに実行されるjsで、
ui.item.id
で値を取り出している点です。

Yii2は本当に気が利きますね。


すごく気が利くのに、素直なところがYii Frameworkのいいところだと思います(^_^)

ちょっと便利なYii2の機能の紹介でした


↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナー、システムエンジニア、HTMLコーダーの方を求人しております。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社


2017年1月11日水曜日

[sendmail][ubuntu]メール送信でX-Authentication-Warningがでたら・・

23:46 Posted by 井口達也 , , , No comments

新年あけましておめでとうございます

今年もどうぞよろしくお願いいたします。

エンジニアの井口です。

またご無沙汰してしまいました。

今日は、みなさんが大好きであろう、
sendmailの事について書こうと思います。 笑


SPFレコードを設定しても消えないエラーがある

AWSからメールを送信する場合、迷惑メールフィルタに引っかからないように
awsの管理画面からSPFレコードを設定したりしますが・・
それでもまだ残るエラーがあります。
参考:SPF レコードについて - G Suite 管理者 ヘルプ

webサービスなどからメールを送信すると、
ubuntuの場合、www-data というユーザでphpのプログラムをうごかし、
その www-data というユーザが sendmailを動かし メールを送信することになります。
www-data というユーザは信用できるの? という部分で、エラーが出るようです。

rootじゃないやつが送ってきたから、スパムかもよ

ってことみたいです。
www-data でなくても、サーバ側でも正式にsendmailに認められてないユーザから
メールを送信するとこのエラーがでます
X-Authentication-Warning: ip-xxxxxxxxx.ap-northeast-1.compute.internal: www-data set sender to info@xxxxxx.com using -f

このエラーが出ていると、
SPFレコードを設定していても受け取ってくれないメールサーバがあります。

あいかわらずメール送信って・・
めんどくさいですね(> <)


www-data を 許可ユーザリストに追加する

www-dataにメール送信許可を与えます。
参考:configuration - sendmail: how to configure sendmail on ubuntu? - Stack Overflow



まずsendmailがmtaとして動いている確認
$ ps aux|grep sendmail
root     31485  0.0  0.2 100700  2744 ?        Ss   23:05   0:00 sendmail: MTA: accepting connections
ubuntu   31601  0.0  0.0  10460   948 pts/0    S+   23:33   0:00 grep --color=auto sendmail

その次は/etc/mail/submit.cfを編集

【重要】sendmail.cfをいじっても何も意味がないです! submit.cfを編集しましょう

submit.cf:phpなどでメール送信する場合はこちらを使うようです
sendmail.cf:こっちはデーモンモードでの起動となるようです (rootでの起動)

/etc/mail/trusted-usersファイルでの許可ユーザ制御がコメントアウトされているので
コメントを外します
$ sudo vi /etc/mail/submit.cf
- #Ft/etc/mail/trusted-users %[^\#]
+ Ft/etc/mail/trusted-users %[^\#]

/etc/mail/trusted-users に www-dataを追加
$ sudo vi /etc/mail/trusted-users
+ www-data

sendmailを再起動
$ sudo service sendmail restart
 * Restarting Mail Transport Agent (MTA) sendmail       [ OK ]

メール送信テストして、メールソースから
X-Authentication-Warning: ip-xxxxxxxxx.ap-northeast-1.compute.internal: www-data set sender to info@xxxxxx.com using -f
↑これが消えてればOK。

メールってめんどくさい

メールの送信って・・・
いろいろめんどくさいですね(> <)


↓↓引き続き募集中です(^^)

弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナー、システムエンジニア、HTMLコーダーの方を求人しております。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 C-limber(クライマー)株式会社