PostgreSQL
PostgreSQL
2019.1.23 水
開発中のブランチにmasterブランチを取り込む git checkout master git fetch origin master git merge FETCH_HEAD HEAD git checkout TARGET_BRANCH git merge master
2019.1.9 水
特定のファイルのみの履歴(log)を取得する git log -p PATH/FILE_NAME -pでコミット履歴とともにdiffが取れます。-pをつけない場合は通常のlogと同様になりますが最新4件だけ取得します。
2019.1.7 月
WordPressのアクションフックの話なので特に説明も何もないんですが備忘録して。 今回の趣旨はマニュアルや資料をWordpressを使ってコンテンツを整理しておきたく、また資料はmdで保存しておきたいというのがありました。このブログもそうですが、手順書やマニュアルといったものは過去の履歴を含めて保存しておきたいのですが、Wordpressのリビジョン機能は履歴のバージョン管理ではないので、厳密な管理ができない。ですのでファイルで出力しておいてWordpressのコンテンツごとファイルでその履歴を管理してやろうという魂胆です。バックアップにもなる。 また今回はMarkdown変換のプラグインにJP Markdownを利用しています。 WordPressの記事保存時のアクションフック フック...
2019.1.3 木
これは案外難しい。ちょっと考えただけでは駄目でした。 例にある通りだと以下のようになり、英数字のハッシュタグは所定のアンカーリンクに変換できます。 $test = preg_replace("/(?<![0-9a-zA-Z'\"#@=:;])#(\w*[a-zA-Z_])/u", "<a href=\"http://search.twitter.com/search?q=\\1\">#\\1</a>", $test); これに数字と日本語を加えると $textarea = preg_replace("/(?<![0-9a-zA-Z'\"#@=:;])#(\w*[a-zA-Z_0-9ぁ-んァ-ヶ\x{3005}\x{3007}\x{303b}\x{3400}...
2019.1.2 水
Parse error: syntax error, unexpected '?' in ... PHPのバージョンが古い疑い。php5.3とか使って新しいフレームワーク使おうとしているとか。
2018.12.26 水
composerを使うとVendorのライブラリーをすぐにつかえて嬉しい。Wordpressもそれ相応のコンテンツを作るには便利。プラグイン開発もだるい。functions.phpにやたらと複雑な機能を入れて何千行になるのも嫌だ。そこでAoutoloaderをwordpressの中で使えると便利なのです。 function.phpに読み込んだ方がいい と思います。theme単位の諸々なのでたぶんfunctions.phpに組み込むのがベスト・プラクティスなのではないかと。 wp-content/themes/sampledoc/function.php 以下を一番上あたりに追記 require_once __DIR__ . '/vendor/autoload.php'; WordPressに...
2018.12.24 月
Laravelのキャッシュシステムは抜群に使いやすくなっているのでほとんどの場合使うことになると思います。PHPそれ自体でキャッシュを使う場合はroot権限相当で多くの作業が必要なのですが、Laravelはそこらあたりをとても簡単にまとめてくれています。ベンチマークはとっていないので実際速いのかどうかという問題はあるかもしれないですが、比較的小規模なwebアプリの場合はほとんど問題のない速さで使えています。 キャッシュの種類はたくさんあって必要なキャッシュシステムはすべてサポートしています。また裏側のキャッシュシステムがどうあれLaravel上でのキャッシュ扱い方は非常に容易です。 apc PHPのあのキャッシュ array ただ配列にぶっこむだけ Redis う、玄人っぽい(というかちゃん...
2018.12.22 土
8GBから16GBに増設します。 まずは搭載しているメモリの確認。 $ system_profiler SPHardwareDataType Hardware: Hardware Overview: .... Memory: 8 GB .... 8GBなので16GBにします。 物理的にメモリを取り出す Macbookをひっくり返して裏側の蓋を外します。隅に小さなネジがあるので外します。私はメガネ用のドライバーを使いましたがなかったら買うしかないです。 背面部分の3つのネジは長いものになっています。その他はとても小さいので失くさないように注意しましょう。 蓋をカパッとあけると中央にメモリがあるのがすぐわかります。 メモリの両側に抑えのプラスティックの爪があるのでそれを軽く外に開きます。パチンと...
2018.12.19 水
PhpStormの日本語化(Windows環境・Pleades利用) Download PhpStorm 【PhpStorm】無料でPhpStormをインストールする方法 PhpStormの使い方
2018.12.11 火
基本は全部Atomを使っているので、BracketsはMarkdown編集のときのみ使っています。 Bracketsダウンロード インストールとセッティング デフォルトではMarkdown機能が使えないので拡張機能を入れて使えるようにしてあげます。Bracketsを立ち上げて右横にあるブロックのようなマークをクリックすると拡張機能操作の画面が開きます。入手可能タブの検索窓で「Brackets markdown preview」を検索します。出てきたらインストールボタンを押して完了です。 検索欄に出てこない場合は、URLからインストールするかzipファイルを落としてインストールすることも可能です。 インストール済タブに移動してインストールされていることを確認しましょう。 Bracketsを再起...
2018.12.10 月
WindowsOSでのSourceTreeの使い方です。 必須ではありませんが、Bitbucketのアカウントを事前に作成しておいた方が無難です。すでにアカウントを持っている場合は問題ありません。 ダウンロードとインストール(初期設定) ダウンロードとインストール(初期設定) まずはこちらからダウンロードします。 https://ja.atlassian.com/software/sourcetree 2018-12-10現在では「SourceTreeSetup-3.0.8.exe」がダウンロードされます。 exeファイルをクリックしてインストールを開始します。 ログの保存場所を選択します。Bitbucketのアカウントをもっている場合は「Bitbucket」を選択します。(Bitbucke...
2018.12.10 月
コマンドクラスの作成 コマンドのクラスを作成します。 php artisan make:command monitorAppStatus app/Console/Commands/monitorAppStatus.phpが作成されます。 このクラスをartisanで実行するためにはこのクラスファイルの$signatureを書き換えます。 protected $signature = 'command:name'; ↓ protected $signature = 'monitor:app'; これでphp artisan monitor:appで実行できるようになります。 コマンドの中身を作成 コマンドの実際の中身の作成は、このクラスファイルのhandle()部分に書きます。 public ...
2018.12.7 金
選択しているファイルを左のツリー状メニューに表示する win: [Ctrl] + [Shift] + [\] ファイルのフルパスをコピーする win: [Ctrl] + [Shift] + [C] ページ内検索 [Ctrl] + [F] 検索後は[F3]で次を検索。[Shift] + [F3]で戻って検索 全文検索 win: [Ctrl] + [Shift] + [F] 指定のディレクトリ内を全文検索 win: [Ctrl] + [Shift] + [F] ディレクトリの指定は検索ボックスの一番下のフィールドに、プロジェクトを読み込んだパスから書く。(例)component/lib
2018.12.5 水
Remote-FTP 仕組み的には非常に単純でローカルにあるファイルを更新するごとにリアルタイムで同期してくれるものです。サーバー上のファイルを編集するというのは事実上ダミーで即時同期といった仕組みです。結果サーバー上のファイルを触っているのと同じ感覚になります。 設定手順 Packegeをインストール 接続したいプロジェクトファイルのrootにいく。 Atomを再起動してからFTP設定したいプロジェクトを開いてから「パッケージ」->「Remote-FTP」-> 「Create SFTP config file」。ここで.ftpconfigファイルで接続情報の雛形が作成されます。 ftpconfigファイルを書き換える { "protocol": "sftp", "host": "examp...
2018.11.26 月
PostgreSQLは優秀なデータベースなんですが、これまでの歴史の中でいろいろと複雑になっていて面倒になっているというのがあります。正直面倒臭い。でも優秀。MySQLの方が使いやすさで言えば断然使いやすい。最近は能力も拮抗しだしたし果たしてPostgreSQLを使う意味があるのか?と言われればそれまでですが、差別化っていう意味では非常に難しくなってますよ。 Ownerなのかuserなのか。 マニュアルとか読んでいるとuserとownerとroleがほんとよくわからないです。どうして「CREATE ROLE …」というコマンドがユザー作成のコマンドなのか?ほんとわかりません。直感的にcreate roleって個々の権限とか権限セットみたいなものを作るコマンドだと思うじゃないですか...
2018.11.22 木
え、こんなのあるの?こんなのあったの? リンククリック。確認画面が出て、OKしたらリンク先に飛ぶ。キャンセルしたらそのまま、という簡単なやつです。window.confirm()自体の返り値がOK押してもキャンセル押しても後続のスクリプトが実行されるってのが。。 <html> <head> <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> <script> $(functi...
2018.11.22 木
インストールデータの入手(ダウンロード) インストールと設定 接続テスト、環境編数の設定(パスを通す) 動作確認 PostgreSQLをWindowsPCのローカル環境にインストールする手順です。MySQLはXAMPPとかにくっついているので便利なんですが、Postgresは自分でインストールしないと駄目です。 以下ダウンロードページに行って最新バージョンの「Windows x86-64」をダウンロードします。 Windows x86-64: 11.1 Download exeファイルなのでインストール方法はクリックするだけですね。 インストールと設定 postgresql-11.1-1-windows-x64.exeというexeファイルをクリックするとインストールが始まります。 格納先はこ...
2018.11.19 月
配列 初期化 list=[] 値の格納 (int) list=[1,2,3,4,5] 値の格納 (string) シングルクォートで囲っても同じです。 list=["a","b","c","d","e"] 値の取り出し print(list) print(list[0]) 配列の種類 タプル(tuple) 任意の数の要素を持つことができる配列です。作成したあとは要素の追加や削除を行うことができません。 リスト(list) 任意の数の要素を持つことができる配列です。作成したあとでも要素の追加や削除を行うことができます。 ディクショナリ・辞書(dict) 任意の数の要素を持つことができる配列で、keyとvalueのペアを一要素とします。作成した後でも要素の追加や削除を行うことができますが、1つの...
2018.11.19 月
パッケージ管理のためpipはインストールしておいてください。 Pythonをインストールする Python3のモジュールをインストール インストールコマンドのpipをアップグレードしておきます。 $ python -m pip install --upgrade pip 基本的なモジュールインストールのコマンドは以下になります。アップグレードするときは–upgradeオプションをつけます。 $ python -m pip install SomePackage $ python -m pip install --upgrade SomePackage 実際にインストールしてみます。 python -m pip install lxml という感じで手軽にインストールできます。 イ...
2018.11.19 月
インスールしてPythonの使える環境を整えます。 CentOS7に最新(でもないかな)のPythonをインストールする Pythonが使える環境が整ったらさっそくHello Worldを書いてみます。 Hello world hello.pyを作成して、 print("Hello world!") これをpythonでたたきます。 python hello.py Hello world! これでOK。 変数 普通の変数は普通に格納する。 a=1 print(a) 文字列もそのまま string='hello' print(string) 文字列はシングルクォートでもダブルクォートでもOKです。
2018.11.15 木
料金ポリシーがコロコロ変わるのでその都度確認が必要ですが2018年11月15日現在でのある程度の方法論となります。 料金制限の設定 従量課金は無尽蔵に課金されるので料金の上限を設けて、それ以上になるとアラートが飛ぶように設定します。 GCPのメニューから「お支払い」→「予算とアラート」を選択します。 予算アラートの設定 予算の設定 予算名: アイデンティファイできるように名前を設定します。 プロジェクトまたは請求先アカウント: 全体をターゲットにしたい場合は”請求先アカウント”を設定します。 無料枠内での算出をしたい場合は「クレジット適用後の費用」のチェックを外しておきます。 予算額: 指定額を選択してから、適当な金額を入力します。(数千円から数万円といったところでし...
2018.11.14 水
これやたらとよく使うけど毎回忘れる。 $title_count = mb_strlen($title,"UTF-8"); $title = $title_count < 20 ? $title : mb_substr($title, 0,20)."..."; タイトルの文字数が20文字以下だったらそのまま出力。20文字以上だったら20文字に丸めて「…」をつけて出力。
2018.11.14 水
Python3.6.5をインストールします。現時点の最新は3.7ぐらいになっているはずなんですが、3.6はまあまあ安定版だと思うのでよいでしょう。 ここではPython3.6をpythonコマンドで使えるようにしてデフォルトで入っているPython2.7.5を(一応とっておいて)python2で叩けるようにしておきます。 Python 3.6.5インストール まずはリポジトリをインストールします。 # yum install -y https://centos7.iuscommunity.org/ius-release.rpm Pythonをインストール # yum install -y python36u python36u-devel python36u-libs これで終わりなので、バ...
2018.11.13 火
設定ファイルのデフォルトの状態のバックアップは必ずとっておく。 # cp -p /etc/php.ini /etc/php.ini.org Error表示関連 画面にエラー表示をする display_errors = Off ↓ display_errors = On たぶんデフォルトのままでよし。 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT /var/log/httpd/errorあたりのログに出力するやつ。たぶんデフォルトのままでよし。 log_errors = On php関連のエラーログを有効にする ;error_log = php_errors.log ↓ error_log = php_errors.lo...
2018.11.12 月
GCP プロジェクトの作成にやたらと時間がかかる。早い場合でも10分程度かかる。下手すると数時間から半日ぐらいかかる感触です。とにかく時間がかかるのでご注意。 GCE VMインスタンスの外部IPからの接続は最初はやたらと面倒くさい。AWSのように直感的に設定はできない。外部IPからアクセスするには通常のFWの設定やグローバルIPアドレスの設定などの他にgcloudeコマンドなるものを通しておく必要があり、その作業フローを経てSSHの鍵認証が有効になるようです。
2018.11.12 月
CGP(GCE VMインスタンス)のSSH接続方法です。インスタンス作成が成功したらブラウザーウィンドウからSSH接続できるようになっています。これは結構便利は便利なんだけど、LOCAL PCの普通のSSHクライアントとかで鍵認証でアクセスした方が長い開発の中では便利なので、ブラウザーウィンドウでのコマンド操作は初期構築の場面やクライアントからSSHアクセスできなくなったとき(FWの設定などを失敗した場合)ってことになるかと思います。 Google Cloud SDKのインストール Google Cloud SDK ドキュメント 「Cloud SDKのインストーラ」をダウンロードします。GoogleCloudSDKInstaller.exeというファイルが落ちてくるのでダブルクリックしてイン...
2018.11.12 月
The zone 'projects/PROJECT_NAME/zones/asia-northeast1-c' does not have enough resources available to fulfill the request. Try a different zone, or try again later. 東京リージョンの「asia-northeast1-a、asia-northeast1-b、asia-northeast1-c」が比較的不安定なようです。VMインスタンス作成時に失敗し上記エラーが出ることがあります。タイミングが悪いと比較的頻繁に多発します。しばらく時間をおくとたいていはインスタンスの作成が可能になります。VMインスタンスは作成成功時は30秒程度で完了する...
2018.11.9 金
VMインスタンスを作る時間は1分もかからない程度だけどプロジェクトを作成してスタート時の初期化は少なくとも半日以上はかかった。 プロジェクトに対してのユーザーの権限設定があるのであってVMインスタンスに対する権限があるのではない。 システムのユーザー単位でSSHログインしようと思うときは、通常のSSH鍵の接続方法でのみ接続可能でgcloudeやプラットフォーム上でユーザー管理ができない。root権限に相当するユーザーはgcloudeやIAMで管理できるっぽい。 起動中とか停止中とかを表示するGUIが消極的。AWSの方が気持ちがいい。 極端に高スペックなVMインスタンスを作成した次の日に「インスタンス「xxxxxxxx」は十分に使われていません。次のマシンタイプに切り替えると、毎月およそ$78...
2018.11.8 木
とかいうタイトルですが普通にhttpプロトコルでリクエスと投げてレスポンスが返ってくるというだけの話です。RESTという観点で言えば認証のところがちょっとおもしろいというだけです。いわゆるあのRESTFULLでセッションを持たないという考え方です。それ以外は別に特に何も考えなくていいです。 ルーティングとエンドポイント APIのエンドポイントの設定です。 Route::get('/foobar/search/standard', function(){ echo "foobar"; }); “/foobar/search/standard”にアクセスしたら、Laravelはデフォルトで”/api/foobar/search/standard”が...
2018.11.8 木
Reverse Proxyがかんでいるwebサーバーでは以下のようなエラーになって正しいログイン情報を入れてもログインできません。 There is mismatch between HTTPS indicated on the server and client. This can lead to non working phpMyAdmin or a security risk. Please fix your server configuration to indicate HTTPS properly. mysqli_real_connect(): (HY000/1045): Access denied for user 'xxxxx'@'localhost' (using pass...