WebEngine

だらだらと綴る技術系メモ

【初心者】matchメソッドでさらっと正規表現を勉強する【JavaScript】

正規表現 正規表現とは、いくつかの文字列を1つの形式で表現するための表現方法です。 この表現方法を利用すれば、たくさんの文章の中からカンタンに特定の文字列を抽出できます。 ここではJavaScriptで正規表現について見てみます。 しかし、正規表現は、…

スプレッド構文の使い方【JavaScript】

スプレッド構文 スプレーや霧吹きは、高圧の空気などを用いて、液体を霧状に噴出する装置です。 この機構を最初に思いついた人は天才だなあ、と思います。 そういうものはたくさんありますが、自分の身近にあるものは尚更そう感じます。 そんなスプレーのよ…

引っ掛けの多いタプル【Python】

環境 Python 3.5.1 すべてコマンドライン上で確認 タプルってなに? タップルではありません。タプルです。 タプルってなに? 「コレクション」タイプのデータ型の一種です。 アクセスの仕方はリストとだいたい同じですが、リストと異なり、生成したあとに変…

元弓道部、アロー関数を勉強する

アロー関数に救われたい 高校時代、弓道部に所属していました。 高校に入って、部活の見学をしていたとき、先輩たちの放った矢がズドンと音を立てているのを聞いて、入部を決めました。 授業は嫌いでしたが、部活は結構楽しかったので、学校にはちゃんと行っ…

辞書型の基本操作【Python】

辞書、ひいてますか? 授業中で調べものをするときなんかに、学生時代は辞書をよく引きました。 筆者は電子辞書を持っていなかったので、国語辞典、英和辞典、漢和辞典など、それぞれ 紙媒体の辞書をカバンに入れて登下校していました。 重かったです。 年齢…

複数の値がすべて等しいか判断したい

手法 値をすべて配列に格納 値が重複しないように配列(リスト)を操作 配列(リスト)の要素数を調べる 調べた要素数が1ならば、すべての値が等しい。 以下は、PHP、Python、JavaScriptの記述です。 処理速度などは一切考慮していません。 PythonとJavaScr…

forEachとmapの違い【JavaScript】

forEachはundefinedを、mapは値を返す 表記のとおりです。 久しぶりにJSを使ったら、ちょっとつまづいたのでメモです。 const arr = [1, 2, 3].forEach(value => { return value * 2; }) console.log(arr) // undefined const arr = [1, 2, 3].map(value => …

非道な非同期処理を理解したい【JavaScript】

目次 非同期処理って理解しづらいですよね。でも、分解して見ていけば、きっとわかるはず! 同期処理 非同期処理 コールバック Promise async/await 参考 ※ 注意 Google Chormeでしかテストしていません。 各項目での説明やソースコードは参考にした記事をち…

Docker ComposeでLAMP環境構築

この記事は今までのDocker系記事のゴール地点になる位置づけになります。(まだまだ怪しいところたくさんあるけれど...) Dockerは初めて、という方は以下の記事を順に追う形で読まれていくとぼんやりとイメージが湧いてくるんじゃないかと思います。 Docker…

DockerfileでPHP7環境構築

今回、Docker HubにあるPHP公式リポジトリのCreate a Dockerfile in your PHP projectの部分を参考にしました。 環境 mac OS Sierra上にDocker for macでPHP7 + apacheの環境を構築していきます。今はnginxが主流となりつつありますが、トラブルシューティン…

Docker for MacでPython3環境の構築

きっかけ 仕事ではPHPとか、javascriptとかばっかりいじっているので、プライベートでは仕事で使う以外の言語でなにかつくったりしよう(遊ぼう)と思い立ったのが2ヶ月前くらいでした。 「機械学習とか流行ってたなあ。出来たら面白そうだなあ。日本ではそ…

Milkcocoaを使って簡易チャットを制作

前提 Google Chromeでしかテストしていません Milkcocoaってなに? Uhuru社から提供されているBaaS(Backend as a Service)です。 Baasというのは、「自分でサーバを用意して、データベースを入れて〜」というような一連の環境構築をする必要がなく、さらに…

内部結合と外部結合[SQL]

前提 環境:MySQLを使います(mysql Ver 14.14 Distrib 5.7.18) 結合とは 結合とは、複数のテーブルを特定のキーで結びつけて処理することです。 DBを使ったシステムやアプリケーションの多くは、1つのテーブルだけで実装されていることは少なく、 何枚かの…

PHPのforeachの罠

php

foreachの$valueは参照渡しではない $arrayに格納されている要素を、すべて空文字列に置き換えたいとします。 方法はいろいろありますが、今回はforeachの話なので、foreachを使います。 string(3) "php" [1]=> string(6) "python…

PDOのfetch系メソッド

前提 PHP 5.6 mysql Ver 14.14 Distrib 5.7.18 Google Chromeでしかテストしていません PDOのfetch系メソッドをまとめただけです テストデータを用意 ※ fetch系メソッドだけ調べたい方は下の方まで飛ばしてください ターミナルでMySQLを起動。それから以下の…

ComposerでSmartyを入れて遊ぶだけ

php

Composer 最近のPHPerには必須のツール。PHP系ライブラリをインストールする際、依存関係を標準的に管理してくれる。(ある ライブラリをインストールした際、あのライブラリも要るのかあ、という状況を解決してくれる) Smarty PHPのテンプレートエンジン。…

jQueryでAjaxを扱う

前提 Google Chromeでしか検証していません Ajaxを使うメリット 非同期通信ができることです。 具体例を挙げると ユーザのストレスを軽減できる サーバへの負荷を軽減できる というメリットがあります。もちろんデメリットもありますが、ほかのサイトでいろ…

Node.jsでいろんな形式のデータを扱う

注意事項 以下のファイルの文字コードはすべてUTF-8で実装しているので、Windows環境などでは、日本語が 文字化けする可能性があります。それらを踏まえた上で、テスト用のテキストなどに日本語 を使うことは避けていますが、やはり、環境によっては上手くい…

Node.jsでSQLite3を使ってみる

環境 Ubuntu16.04 Node.js v7.7.1 npm 4.1.2 SQLite3をnpmでインストール node.jsはサーバサイドでjavascriptを扱えるようにしたもの。当然、データベースも扱うことが できます。 今回はSQLiteというデータベースを使ってみます。ほかの選択肢としてはmongo…

Expressを使ってみる

Expressってなに Node.jsのウェブアプリケーションフレームワークです。Node.jsのフレームワークはKoaや RailsライクなSailsなんかがありますが、おそらくExpressがもっとも有名ではないかと 思います。 準備 環境:macOS Sierra10.12.3 とりあえず本家サイ…

MacにNode.jsをインストールする

前提条件 2017.2.19現在の情報 homebrewインストール済み 現在node.jsが入っていない 黒い画面を操作できる 手法 node.jsをインストールする方法はいろいろあるのですが、今回はnodebrew というものを使います。nodebrewでは複数のnode.jsを切り替えたりして…

vimのカラースキーマをMolokaiにしただけ

vim

Molokaiが結構良いみたいなので Macのターミナルのvimでやっています(Windowsだとおそらくキツイ) 今までデフォルトのカラースキーマで満足していたのですが、ほかの人のvimを見て「いいな」と思い導入することにしました。 続きを見てもいいですが、僕が…

今さらながら == と === の挙動の違いをチェック

そもそもコレなんて呼ぶ PHP、javaScriptで、いつも使っているけど、何て言うのか 覚えていますか? ネット上とかで毎回見ているけど、意外とスルーしていたりします。 正解は == 等価演算子 === 厳密等価演算子 うーん、会話で使うには長いんですよね。普段…

javaScriptのthis

thisイコール「自分自身」からの脱却 以下のコードはGoogle ChromeとFireFoxでしかテストしていません コードにはjQueryを使用しています 先にコードとコンソール(開発者ツール)での結果を出します。 <div id="test_zone"> <button id="test_button">テストボタン</button> </div> $(function() { "use strict"; console.l…

CSS3で光沢を表現する

ナビゲーションをつくる 今回は以下のナビゲーションにlinear-gradientを施す形で光沢を表現します。 コードは以下の通り。 <html lang="ja"> <head> <meta charset="utf-8"> <title>DEMO</title> <link rel="stylesheet" href="style.css"> </head> <body> <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Works<…</a></li></ul></nav></body></html>

よく使うdisplayプロパティまとめ

displayプロパティとは? displayプロパティはCSS3において、要素の表示特性を操作するものです。たとえば、ブロック要素をインライン要素に 変更したり、その逆にしたりすることが可能です。(HTML5ではブロック要素やインライン要素といった分類は廃止されま…

JavaScriptでオブジェクト指向プログラミング

注意(2017.12.30追記) JavaScriptの進化は早いです。少し前に調べものをしていたら、自分の知っているJSとは別物のような記述の仕方などが出てきて戸惑いました。 この記事では古いクラス実装の手法を紹介していますが、まだこの記事と同じようなスタイル…

PHPでJSONを扱う

php

JSONってなに? JSON(JavaScript Object Notation)は、テキストフォーマットの一種です。シンプルで 開発者が理解しやすい構造をしており、コンピュータにとっては高速で処理しやすいというすぐれもの。 WebAPIなどを使って引っ張ってくる形式のファイルはCS…

パスワードをデータベースに保存するときは、一緒に塩を入れよう

セキュアに保存する -> 漏れた場合を想定する データベース(以下DB)にパスワードを保存するとき、そのまま (平文で)保存してはいけません。データが漏れた場合に、パスワードが 見た瞬間わかってしまうからです。 パスワードを保存する場合、暗号化してからD…

strictモードで厳格なjavaScriptを書こう

strictモードとは? 近頃見られるようになった下記のような記述。javaScriptを書く際、必須になりつつあります。 (function() { 'use strict'; // 処理 })(); jsファイルの先頭に 'use strict'; と記述することにより、strictモードを 宣言することができま…