スキップしてメイン コンテンツに移動

投稿

2020の投稿を表示しています

S3、Amazon API Gateway、LambdaとDynamoDBを利用したサーバレスなWebアプリを構築する

■システム構成 ■S3 ■Amazon API Gateway ■Lambda ■DynamoDB 1.システム構成  システム構成については、下記のような構成となる。 2.S3  静的コンテンツを配置するサービス。例えば、下記のようなファイルがある。  ・HTML  ・Javascript  ・Image  ・動画コンテンツ 3.Amazon API Gateway  APIの入り口となる。実処理がLambdaの関数を呼び出して、結果を返す役割となる。 4.Lambda  関数単位で、処理を実装し、APIのリクエストに応じて、DynamoDBに問い合わせる、  または、外部のAPIを呼び出して、処理結果を返す役割となる。

MongoDB入門編 その1)

mogoDBについて、勉強しながら、紹介していきます。 1.インストール  https://www.mongodb.com/try/download/communityにアクセスして、Available Downloadsの ところから、ダウンロードして、手順に沿ってインストールする。 2.サービスの起動と停止 起動:sudo service mongodb start 停止:sudo service mongodb stop 3.mongoシェルの起動 #mongo 4.実際に使ってみる。 ・用語  MongoDBとRDBとの比較  -------------------------------------  MongoDB          | RDB  -------------------------------------  データベース     | データベース  -------------------------------------  コレクション     | テーブル  -------------------------------------  ドキュメント     | 行(レコード)  -------------------------------------  フィールド       | 列  -------------------------------------   ・データベースの作成  >use study   switched to db study      これだけで、studyというデータベースができました。     > db.stats() {     "db" : "study",     "collections" : 0,     "objects" : 0,     "avgObjSize" : 0,     "dataSize" : 0,     "stora...

XMPPとは

XMPPとは、インスタントメッセージソフトなどに使われるXMLベースのオープンソース・プロトコルである。2004年に、IETF(Internet Engineering Task Force)でIMPP(Instant Messaging and Presence Protocol)の標準案に選ばれた。 Jabber社が開発したインスタントメッセージソフト「Jabber」のプロトコルを、セキュリティ機能などを追加して改良したものである。具体的な機能としては、インスタントメッセージソフトで必要不可欠となるメッセージの送受信や、プレゼンス状態の通知などを受け持っている。 XMPPは柔軟性や拡張性が高いのが特徴であり、JabberやGoogle Talkなどのインスタントメッセージソフトで採用されている。 XMPPを使っているサービスの例はCERN、アメリカの軍事衛星、BBC News、MLB、DuckDuckGoなどがある。また、SlackやHipchatなどのXMPP連携を行うコミュニケーションサービスも数多くある。 時間があれば、ぜひ使ってみたいと思います。

PHP7.4の新機能

PHP7.4にバージョンアップされましたので、新機能をまとめて 紹介します。 ■新機能 1)型付きプロパティ  <?php class User {     public int $id;     public string $name; }  ?> 2)アロー関数 暗黙的な値スコープを持った関数を定義する簡便な文法を提供します。 <?php $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]); ?> 3)返り値の型を狭めたり、引数の型を広げたりする  <?php class A {} class B extends A {} class Producer {     public function method(): A {} } class ChildProducer extends Producer {     public function method(): B {} } ?> 4)Null 合体代入演算子 「??」 <?php $array['key'] ??= computeDefault(); // 上記は、以下にほぼ等しい if (!isset($array['key'])) {     $array['key'] = computeDefault(); } ?> 5)配列内での値のアンパック <?php $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; ?> 6)数値リテラルのセパレータ 数値リテラルは、桁と桁の間にアンダースコアを挿入できるようになりました。 <?php 6.674_083e-11; // float 299_792_458...

PHP isset, empty, is_null, *&&* の違い早見表

PHP isset, empty, is_null, *&&* の違い早見表 値 if($var) isset empty is_null isset($var) && $var != '' $var=1 true true false false true $var=""; false true true false false $var="0"; false true true false true $var=0; false true true false true $var=NULL; false false true true false $var false false true true false $var=array() false true true false true $var=array(1) true true false false true

sendmailをgmail経由で送信する設定

 1.sendmail.iniで下記の設定を行う。 ------------------------------- smtp_server=smtp.gmail.com smtp_port=465 auth_username=youraccount@gmail.com auth_password=youraccountpassword force_sender=youraccount@gmail.com ------------------------------- 2.gmailでの設定 https://myaccount.google.com/securityへアクセスし、 安全性の低いアプリのアクセス 「オフ―」から「オン」に変える。 3.php.iniでsendmail_pathを設定する。 [mail function] ; For Win32 only. ; http://php.net/smtp ;SMTP = localhost ; http://php.net/smtp-port smtp_port = 465 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from ="admin@wampserver.invalid" ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = "sendmailフォルダーのパス\sendmail.exe -t" 4.Apacheを再起動すれば、sendmailが使えるようになる。 以上です。

gitよく使うコマンド集

よく使うgitのコマンド集をまとめてみた。 1.ローカルリポジトリの登録  #git init 2.gitの状態を確認  #git status 3.gitのファイルを追加  #git add . 4.ローカルのマスタにコミットする  #git commit -m "体温管理アプリの初期化" 5.リモートリポジトリを登録する  #git remote add origin https://github.com/ユーザーID/リポジトリ名  例)git remote add origin https://github.com/githubkyo/taionkanri 6. リモートリポジトリの変更履歴の取得 git fetch origin master 7.差分のあるファイル名を表示 > git diff --name-status ローカルブランチ名 origin/リモートブランチ名 【例】 > git diff --name-status master origin/master 8.リモートのファイルのみをローカルに反映する。 git checkout origin/master --src/Eccube/Resource/template/default/default_frame.twig 9.別ブランチをマスタへマージする git checkout master git merge other_branch 以上で、随時更新していく予定。

Laravelでよく使うコマンド集

 ■クリア系コマンド ・キャッシュクリア php artisan cache:clear ・configクリア php artisan config:clear ・ビュークリア php artisan view:clear ■リセット系コマンド ・データベースをリセットする php artisan migrate:refresh ・データベースをロールバックする php artisan migrate:reset ■テーブル、コントローラ、モデルを同時に作成する php artisan make:model Groups -c -m ※Groupsは必ず複数形を使ってください。 ■カラムの追加 php artisan make:migration add_column_group_id_options_table --table=options ・add $table->bigInteger('group_id'); ・drop $table->dropColumn('group_id'); 下記のコマンドを実行 php artisan migrate 追加完了! ■カラムの削除 php artisan make:migration remove_column_group_id_groups_table --table=groups 出来上がったファイルで、下記のコードを追加 ・drop $table->dropColumn('group_id'); ・ロールバック $table->bigInteger('group_id'); 下記のコマンドを実行 php artisan migrate 削除完了! ※カラム名の変更で下記のエラーが出た場合、 Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found 下記のコマンドを実行すればいい。 #composer require doctrine/dbal とりあえず、以上です。 ほかにあれば、随時更新する。

javascripのinputイベントについて

日常の開発で、<input type="text">DOMのテキスト変更があった場合、よく changeベントを使っていた。ある開発のきっかけで、inputイベントを知った。 changeベントと比べると、inputイベントのほうがリアルタイム的にイベントが 発生するため、使いやすい。 詳細をみてみよう。 change イベントは”要素の変更が終わったときにトリガされます。”と定義されているが、 わかりにくい。例えば、<input type="text">の要素があるとして、この要素に「12345」の 文字を入力しようとする、①1を入力し終わったときに、イベントがくるのか、それとも②12345を 入力し終わったときなのか?正直よくわからないが、②という人がいるでしょう!どっちも違う。 正しいのが、要素に変更を加え、その要素からカーソルが外れた場合に、トリガーされる。 では、inputイベントについてみてみよ。 inputイベントは”要素の値が変更されるたびにトリガされます。”と定義されている。 これがわかりやすい。つまり、要素の値を変更した場合、即時にイベントが来る。 change イベントとinputイベントを使い分けて、 リアルタイム性を求めない場合、change イベントを使う。 テキストを変更して、そのテキストをプレビューしたいといったリアルタイム性を求める機能なら、 inputイベントを使ったほうがいいでしょう。