カテゴリー
システム開発技術

【web会議】カメラが起動できない

コロナウィルスの影響で在宅勤務など増えてきてます。

それに伴って、オンライン会議を行う会社も増えてきましたね!

注文住宅の打合せもオンライン会議へと変わってカメラが起動できなくて困ったので調査しました(^_-)-☆

私のPC環境
  1. OS:windows10
  2. カメラ:PC内臓カメラ
  3. ブラウザ:google chrome
  4. ウィルス対策ソフト:カスペルスキー

web会議の可能なツールが多い

ここ1っカ月以内に触れたツールです。

web会議ツール一覧
  1. Skype
  2. Zoom
  3. meet in
  4. Face Hub

特に何もせずに行ったところ、使えないツールが続出(;´・ω・)

マイクカメラ使用した事
Skypeテスト接続
Zoomオンライン飲み会
meet inエージェントのヒアリング
Face Hub注文住宅打合せ

skypeとその他の違い

skypeは、windows10のアプリケーションで使用してました。

それ以外は、ブラウザ経由のツールでした。

ブラウザ経由に問題がありそう

chromeの設定でブロックされていた(;・∀・)

ブロック解除手順

01.サイトの設定を選択

02.カメラとマイクの設定

03.カメラの設定
接続するカメラの設定
ブロックの解除

ブロックの解除で、カメラへアクセス時に確認されます。

04.マイクの設定
接続するマイクの設定
ブロックの解除

ブロックの解除で、カメラへアクセス時に確認されます。

ウィルス対策ソフトに問題ありそう

カメラの保護でchromeがブロックされていた(;・∀・)

ブロック解除手順

01.カスペルスキーを起動

02.小さいですが左下の設定マークを選択

03.webカメラ保護を選択

04.webカメラへのアクセスをすべてブロックする、チェックなしの確認
webカメラのアクセスをブロックしていますを確認

05.chromeがあれば、webカメラへのアクセスを許可する

まとめ

ブラウザの設定、ウィルス対策ソフトの設定で使用できるようになると思います。

ウィルス対策ソフトで、マイクやカメラのドライバーのインストールが制限せれている可能性もあるので、併せて確認してください。

カテゴリー
SQL

Workbench 起動しない

開発環境作る際にハマったのでメモ

バージョン:MySQL Workbench 8.0.19

windows10 Home 64bit

windows10でインストール後起動しない

インストール後にアイコンをクリックしても起動しない

アンインストールして入れ直しもダメ

ネットで検索しても解決にならない

必殺技!レバフレンズ(^_-)-☆

現場には以前一回お昼行ったことのある「レバテックフレンド」2人がいるんです‼

作業しているパソコンを確認!

一人目、、、Mac

二人目、、、「Windows」(/・ω・)/

よし!お昼誘って聞いてみよう!

エンジニア同士の食事は楽しい(*´▽`*)

午後の作業に入り、15分ぐらいしたらコバッチが教えに来てくれた(*ノωノ)

Windowsにインストールする際は、〇〇〇が必要

このページ見て―!!
全部英語、、、
これ入れないと動かないってー(/・ω・)/

さらっと英語できる人なんだなと羨ましく思った瞬間でした(;・∀・)

これを調べれば他にも対応できる

workbenchダウンロードページ

workbenchダウンロードページ01

英語苦手でもインフォメーションは確認すべき

workbenchダウンロードページ02

危険!デフォルトの文字コード

mwbファイルが開けなくなる

MySQLの文字コードちゃんと「utf8-general-ci」にしましょう。

多分これで mwbファイル が開けるようになった(;^ω^)

macで起動しなくなった

2020/07/06
いつも起動していたのにオプションバーしか表示されなくなった。

↑ この表示のみ

Quit MySQl Workbenchで停止し、開き直せば問題なく起動できるようになった。

カテゴリー
Git

【Git】現役プログラマーが使うGitコマンド

こんにちは!

まったりのんびり、@vVv_kenshi_vVvです!

Gitの状態を綺麗にする

プラグインアップデートしたけど取り消したい時、あれこれいじったけどやっぱり取り消したい時

Bash
name@pc eccube % git status
On branch develop
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   .htaccess
	modified:   app/Plugin/VeriTrans4G/Controller/PaymentController.php
	modified:   app/Plugin/VeriTrans4G/EventListener/Vt4gEvent.php
	modified:   composer.json
	modified:   composer.lock
	modified:   vendor/composer/autoload_classmap.php
	modified:   vendor/composer/autoload_static.php
	modified:   vendor/composer/installed.json

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	app/Plugin/VeriTrans4G/Common/
	app/Plugin/VeriTrans4G/Resource/tgMdkPHP/tgMdk/Lib/tgMdkDto/RakutenReAuthorizeRequestDto.php
	app/Plugin/VeriTrans4G/Resource/tgMdkPHP/tgMdk/Lib/tgMdkDto/RakutenReAuthorizeResponseDto.php

no changes added to commit (use "git add" and/or "git commit -a")
name@pc eccube % 

・全ての変更の破棄:Changes not staged for commit

Bash
git checkout .

未追跡ファイル、ディレクトリの削除:Untracked files

Bash
git clean -df

コマンド実行後

Bash
name@pc eccube % git status
On branch develop
nothing to commit, working tree clean
name@pc eccube % 

ローカル環境のみ追跡除外したい

環境により設定が違う場合に、Gitの追跡から除外したい場合に使う

Bash
git update-index --skip-worktree .htaccess

Gitコマンド一覧

ついつい調べてしまう、忘れっぽいあなた(私)の為に捧げるw

記事です!

リセット系

取り消しやコミット履歴を綺麗にする際に、使用するコマンドを紹介

reset

・直前のコミットの取り消し

Bash
git reset --herd HEAD^

・直前のリセットの取り消し

Bash
git reset --hard ORIG_HEAD

・addファイルを破棄する(最後にコミットした状態へ戻す)

Bash
git checkout HEAD -- [ファイル名]

未追跡ファイルの削除

Bash
git clean -f

checkout

・変更の破棄(ファイルの削除ではない)

Bash
git checkout HEAD ファイル名
git checkout HEAD app/Customize/TestController.php

・指定ディレクトリは以下の破棄

Bash
git checkout HEAD ディレクトリ名
git checkout HEAD app/Plugin/Api/

・全ての変更の破棄

Bash
git checkout .

ログ関連

表示を見やすくするのに使用するコマンド(オプション)

log

・GUI( SourceTree など)までは、見やすくはなりませんが、気持ち良くなります。

Bash
git log --oneline --graph --decorate

・マージ履歴

Bash
git log --oneline --merged

Checkout

developブランチへ移動

Bash
git checkout develop

指定の作業ブランチへ移動

Bash
git checkout feature/XXX

作業ブランチを作成して移動

Bash
git checkout -b feature/XXX

Commit

直前のコミットメッセージ変更

Bash
git commit --amend

Push

指定ブランチをリモートブランチへプッシュ

Bash
git push origin feature/XXX

安全な強制プッシュ

Bash
git push --force-with-lease origin feature/XXX

Rebase

直前の2コミットをまとめる

Bash
git rebase -i HEAD~2

Rebase取消

Bash
git rebase --abort

再Rebase

Bash
git rebase --continue

developブランチを現在ブランチへRebaseする

Bash
git rebase develop

Stash

現在状況を退避する

Bash
git stash

直近のStashを適用する

Bash
git stash apply

Branch関連

・developブランチにマージ済みローカルブランチの削除

Bash
git branch --merged develop | grep -vE '^\*|master$|develop$' | xargs git branch -d

カテゴリー
JavaScript システム開発技術

【JavaScript】メモ

デバック

// 文字列 console.log('test'); 
// 変数 var name = 'leveliving'; console.log(name);

変数初期化

// 変数初期化 初期値は「undefined」
var name;
// 変数初期化+代入
var name = 'leveliving';

配列初期化

// シンプル初期化
var array = [];
// 初期化 + 値代入
var array = [1,2,3]; 

配列の表示

// 最初の値
array[0];
// 最後の値
array.length -1;

配列の加工

// 配列から最後の要素を取り除き、値を返す。
array.pop();
// 配列から最初の要素を取り除き、値を返す。
array.shift();
// 配列の最後に 1 個以上の要素を追加する。元のインデックスは変更なし
array.push('sword');
array.push('sword', 'shield');
// 配列の最初に 1 個以上の要素を追加し、インデックスをスライドさせる。
array.unshift('sword');
array.unshift('sword', 'shield');

fecth API

fetch(api, {
   method: "POST",
 }).then( response => {
   return response.json();
 }).then( data => {
   phpData = data.result[0].body;
   // json_encodeが上手くいかない時は、JSON.parseで変換する
   createBlock(JSON.parse(phpData));
 }).catch(error => {
   throw new Error("ネットワークエラー");
 });

PHPのreturnデータ取得

fetch(api, { method: "POST", })
   .then( response => { return response.json();})
   .then( data => { phpData = data.result[0].body;})
   .catch( error => { throw new Error("ネットワークエラー")
 }); 

一回目のthenの引数が二回目のthenへ渡される。

dataの構造を確認し取得する。

カテゴリー
jQuery

【jQuery】メモ

セレクタ操作

複数ヒットした場合は、全要素取得する。

セレクタにヒットしなければ、何も取得できない。

セレクタ指定コピペするとシングルクォートが変わるので、加工して使ってください(´・ω・`)

セレクタ指定

メソッド名説明
$(‘#id名’)id名で要素の取得
$(‘.class名’)class名で要素の取得
$(‘タグ名’)タグ名で要素の取得
$(‘input[name=”name名”]’)inputタグのname名で要素の取得
$(‘[data-userid=”11″]’)data属性で要素取得
data-useridの11で要素取得

同一階層セレクタ

メソッド名説明
siblings(‘セレクタ名’)同一階層の要素をセレクタ指定で取得
next()同一階層の次の要素を取得
nextAll(‘セレクタ指定’)同一階層の次以降の要素をセレクタ指定で取得
prev()同一階層の直前の要素を取得
prevAll(‘セレクタ指定’)同一階層の直前以降の要素をセレクタ指定で取得

階層別セレクタ

メソッド名説明
find(‘セレクタ名’)一つ下の階層の要素をセレクタ指定で取得
parent()親要素の取得
parents(‘セレクタ名’)すべての親要素を取得

FixedMidashi

「_fixedhead」属性を定義して、「FixedMidashi.create()」を呼べば固定できます。

onLoad="FixedMidashi.create();

1カラム目と1行目固定は下記コード

 <table _fixedhead="rows:1; cols:1"> 

複数ファイルアップロード

画像や動画を複数アップロードする際に手間取ったので追加

アップロードファイルの情報取得

例:「input」タグのname属性を下記にした場合

name="uploadFirld[0][file]"
name="uploadFirld[1][file]"
name="uploadFirld[2][file]" 

こちらで取得:$(‘:file’)

オブジェクトの確認(デバック)

for (val of $(':file')) {
    if (val.files.length > 0) {
        // inputタグのname取得
        console.log(val.name);
        console.log(val.name.replace(/[^0-9]/g, ''));
        // アップロードしたファイル名取得
        console.log(val.files[0].name);
     }
}  
if (val.files.length > 0) {
    // inputタグのname取得
    console.log(val.name);
    console.log(val.name.replace(/[^0-9]/g, ''));
    // アップロードしたファイル名取得
    console.log(val.files[0].name);
}  

・PHPでの処理$_FILES[‘uploadFirld’]

console.logでの表記

{name: Array(3), type: Array(3), tmp_name: Array(3), error: Array(3), size: Array(3)}
JSでデータ取得

formData.get('uploadFirld[0][key]');

PHPでデータ取得時

name[0][file] => "file1"
name[1][file] => "file2"
name[2][file] => "" 
tmp_name[0][file] => "/tmp/phpaOtDsF"
tmp_name[1][file] => "/tmp/phpaCtNzV"
tmp_name[2][file] => 

・s3アップロードに必要なのは、[inputのname]と[tmp_name]

foreach ($_FILES['uploadFirld'] as $property => $data) {
     if ($property === 'tmp_name') {
     foreach ($data as $firldNum => $value) {
         if (!empty($value['file'])) {
             $name = date('YmdHis', Time::time());
             $key = "test/{$ID}/{$firldNum}/{$name}";
             AwsS3::multipartUploadPublic($key, $value['file']); 
         }
    }
} 

■input file 複数情報取得

カテゴリー
Git

【RhodeCode】

プルリクエスト手順

Pull Requestボタンを押下

Open new Pull Request ボタンを押下

作業ブランチとマージ先ブランチを選択

※レビュー者が確認しやすいようにコメントを編集

Submit Pull Requestボタンを押下

Pull Request履歴画面

カテゴリー
システム開発技術

Microsoft office 365

2台目インストールパス

http://www.office.com/myaccount/

カテゴリー
Linux システム開発技術

【Linux】コマンド一覧

こんにちは!

ファイル転送関連コマンド

5GBぐらいまでは圧縮なしで転送した方が良い

  • ファイルのダウンロード

サーバーにある(aws用パス)eccube4の特定のログファイルをダウンロード

configは別途設定

Bash
scp -F .ssh/config -r [domain]:/var/www/eccube/var/log/prod/admin-2024-06-21.log /Users/[user]/Downloads/
  • ディレクトリのダウンロード

サーバーにある(aws用パス)eccube4のsave_imageをダウンロード

configは別途設定

Bash
scp -F .ssh/config -r [domain]:/var/www/eccube/html/upload/save_image /Users/[user]/Downloads/

ディレクトリ関連コマンド

ファイル関連

ファイルの文字コード確認

unknown-8bit = shift-JIS

mac

Bash
file --mime

linux

Bash
file -i

ディレクトリの確認

  • ディレクトリの中身確認
Bash
ls -la
  • ディレクトリの中身確認:新着順で10件取得
Bash
ls -lat | head -10 
  • ディレクトリのファイル数確認
Bash
ls -l | wc -l
find . -type f|wc -l

ファイルの中身確認

  • ファイルの中身確認
Bash
less [file_name]
less test.txt
  • ファイル中身確認または、変更
Bash
vi [file_name]
vi test.txt
vim [file_name]
vim test.txt
  • ファイル中身コピー
  • 公開鍵コピーなどで使用
Bash
pbcopy < ~/.ssh/work_key.pub

認証鍵作成コマンド

  • ed25519方式で公開鍵秘密鍵を作成する
Bash
ssh-keygen -t ed25519 -P "" -f [name]_key.pem -C "コメント:名前など"

エラーファイルの追跡

  • ファイルのリアルタイム表示
Bash
tail -f [file_name]
tail -f test.txt

コマンド履歴

  • 実行したコマンド履歴表示
Bash
history
  • コマンド履歴最新20件
Bash
history | tail -20
  • 実行したコマンド履歴から、キーワードを含むコマンドの表示
Bash
history | grep [キーワード]
history | grep git

権限コマンド

  • プロジェクト配下の権限777設定
Bash
sudo chmod [権限] -R [ディレクトリ名]
sudo chmod 777 -R /srv/project

ファイル検索

  • 拡張子検索
Bash
find [ディレクトリ] -name ["*.拡張子"]
  • ディレクトリ検索
Bash
find / -name [ディレクトリ名] -type d

Linuxコマンドではないけど使うコマンド

linuxコマンドだと思っている方もいるかも、、、

エンジニア最初の頃は、気にもしなかった(*´・ω・。)σ

php.ini場所

phpの設定ファイルを探す。

設定ファイルの読み込みパスがわかる。

ただ、htaccessやuser.yamlで設定している場合もあるので注意

Bash
php --ini

 Configuration File (php.ini) Path: /etc
 Loaded Configuration File:         /etc/php.ini
 Scan for additional .ini files in: (none)
 Additional .ini files parsed:      (none)

phpコマンドというのかな!?
/etc/にあるのが分かります。

カテゴリー
システム開発技術 小技

【簡単にCSVファイル】作成する方法

CSVファイルとは?

【comma-separated values】の略称
カンマ区切りのデータ及びテキストファイル

推測:機械が判別し易いように、項目毎にカンマ区切りされている。
仕様例:マスタ登録の機能でアップロードする際に使用される。

余談:画面からのマスタ登録の機能開発は、費用が高くなる為、費用が抑えられる一括アップロードでマスタ登録を実装するシステムもある。

CSV形式への加工(置換)方法

システムのマスタ登録の際に、使用できる技術

正規表現で、置換しダブルクォーテーションやシンブルクォーテーションで囲んだりして作成する。

今回は、私がよく使っているサクラエディタで紹介します。

➀テストデータの作成

基本的には、データベースで取得したデータや、Excelのデータで作ると思います。

データ出来たら、「Ctr + r」もしくは、メニューの「検索」から「置換」の選択

➁赤枠の部分を入力

置換前:(.*)\r\n
置換後:"\1",\r\n 

「すべて置換」を押したら完成

カテゴリー
PHP

【PHP】メモ

独自メソッド

ハイフンなし郵便番号へハイフンを入れる

PHP
function zipFormat($zipNumber) {
    $result = '〒 '. preg_replace("/(\d{3})(\d{4})/", "$1-$2", $zipNumber);
    return $result;
}

電話番号を3,3,4でハイフン

PHP
function phoneFormat($phoneNumber) {
    $result = preg_replace("/(\d{3})(\d{3})(\d{4})/", "$1-$2-$3", $phoneNumber);
    return $result;
}

CodeIgniter

軽量で速度重視のフレームワーク

メソッドの命名規則は、、、

PHP
 function get_user_id()

全部「小文字」で長ければ、「アンダースコア」で命名
基本キャメルケースだったから、違和感が(;・∀・)

デバック簡単設定

configファイルで設定
project/application/config/config.php

PHP
$config['log_threshold'] = [1,2];

logsの権限設定
ターミナルでコマンド

sudo chmod 777 project/application/logs

Bash
sudo chmod 777 project/application/logs

デフォルトのログファイルは、こちら「project/application/logs/」(^_-)-☆

デバックコード

変数・配列・実行クエリ

PHP
// 変数のデバック
log_message('debug', $user_id);
// 行番号追加
log_message('debug', 'line: '.__LINE__.' '.$user_id);
// 配列のデバック
log_message('debug', print_r($user_ids, true));
// 最終の実行クエリを表示
log_message('debug', $this->db->last_query());

配列のデバックの「print_r()メソッド」は、PHPのメソッドで第二引数にtrueを設定すると配列を表示してくれる(^_-)-☆

実行クエリの「last_query()」は、 CodeIgniterのヘルパーメソッド(^_^)/

CodeIgniterのあれこれ

デフォルトのエラーページ

show_404();

INSERTしたIDの取得

$this->db->insert_id();

INSERTかUPDATEした行数取得

$this->db->affected_rows();

まとめてINSERT
1レコードずつ登録するより効率的(^_-)-☆

// レコード作成
$recode = [
  ['name' => 'hosoda', 'age' => 28],
  ['name' => 'houhashi', 'age' => 35],
];

// ユーザーテーブルへ登録
$this->db->insert_batch('user', $recode);

Laravel

ララベラー

Laravel 5.1

Validation

public function rules()
{
 return [
   ’name’ => ‘required|max:255’,
   ’id’ => ‘required|max:255|unique:users,id,NULL,id,deleted_at,NULL’
 ];
}

integer

整数値判定:…-1, 0, 1…
範囲:-2147483648~+2147483647
上記2点を検証する。

integerを「min, max, between」を掛け合わせる事で、数値として検証してくれる。

unique

ModelのソフトデリートがValidationで効かない為、考えた結果

  1. 必須条件
  2. 最大値
  3. ユーザーIDがユニークかつソフトデリートを除外

‘id’ => ‘required|max:255|unique:users,id,NULL,id,deleted_at,NULL’

※今回編集画面の実装が無かった為、第3第4引数はIDのNULL除外を入れて対応