投稿者: admin Page 23 of 46

いろいろ図書館で借りて読んだ本のメモ。

いろいろ図書館で借りて読んだ本のメモ。

だいぶ久しぶりにちかくの図書館へ近年の書籍もふえていたのでいろいろ借りて読んでみました。
とはいっても、時間もあれなので、かなりざっくりと目を通して気になったところをメモ。

詳解wordpress

DBの中身まで理解したい人や、プラグイン、ウィジェット、テーマなどをオリジナルで開発したい人は読んでおくと良さげ、すでに開発などしている人はソースコードなど読んだ方がはやいかと。
DBはテーブルごと細かく解説されていて、プラグインの開発サンプルなども解説あります。
※すこし発行が古いのでHHVMなど紹介あるが、いまとなってはPHP7でいいかもとかはある

ハイパフォーマンス ブラウザネットワーキング

前半はTCPの基礎などネットワークの基礎的なところから、後半はコンテンツ(HTTP)側のXHR,WebSocketなどコンテンツ部分まで幅広くカバー、インフラエンジニア〜フロントエンドエンジニアな人にはおすすめ、時間があれば購入してしっかりよみたい。
オンラインゲームの通信とか、チャットとか、配信サービスとかいろいろと礎になりそう。

面白かったのは以下のユーザの知覚。
このブログも5秒くらい、どうにか安く1000msくらいにしたいな。

  • メモ : 時間とユーザの知覚
遅延 ユーザの知覚
0–100ms 瞬時
100–300ms わずかな知覚可能な遅延
300–1000ms マシンが動作している
1000ms+ メンタルコンテクストスイッチが発生する
10000ms タスクを破棄

vim関係メモ

複数行コピー

開始行へ行き mm
終了行の次の行で y`m

行表示非表示

:set number
:set nonumber

vimでUTF–8が文字化け回避

~/.vimrc に以下を追加( or 新規作成)

set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac

robot.txt とかカノニカルタグとか、sitemap.xml とか

robot.txt とかカノニカルタグとか、sitemap.xml とか

いつも入れる必要?いれない不要?入れたほうがSEO的に(迷信だよ)?いや、もしものために念のために、
ってなるので再度調べてまとめておくことに。

robot.txt

登録したくないコンテンツが含まれる場合のみ必要で、基本必要ない。
ただし、以下の参考サイトにあるとおり、

サイトに robots.txt ファイルが存在するがアクセスできない(言い換えれば、HTTP ステータス コード 200 または 404 が返されない)場合は、クロールすべきでない URL をクロールすることにならないよう、クロールを延期します。

つまりサーバーで何かしらの不具合などで robots.txtが404,200も返さない状態になったらクロールしないよ。とのこと、常にSeachConsoleなどでサイトを管理している場合は問題ないがそれ以外の放置している系のサイトは入れていたほうが無難っぽいです。あと最近のWordPressの場合は以下のようなrobots.txtを仮想で生成してくれます。(※注意パーマリングの設定が?p=123とか、サーバーのリライト設定が有効でないと生成されない)
(WordPress自動生成のrobots.txt 管理画面を除外してくれている

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

参考サイト : Google Search Console ヘルプ

カノニカルタグ(canonical)

  • 複数あるURLを正規化、www有、無などあるので基本入れたほうが良いっぽい、
  • ただ静的(Static)なコンテンツの場合はメンテナンス性も落ちたりURL変更時の編集コストなどが高そう。なにか変更の際のうっかり変更もれは注意。
  • スマホがページ別等の場合は必須かな。
    GogoleのSearch Console ヘルプでの説明は以下。このページ自体もちゃんと入ってますね。

参考 : Search Console ヘルプ

動的サイトなどの場合はヘッダーは共通のはずなので入れて置くほうがよいかも

環境変数などで簡単に設定できるはずなので、入れておけば無難かな。

静的サイトは入れなくてもよいのかも

基本SEOアクセスを気にするようであればAnalyticsで気づくはず、気付かないれべるの気合なら入れないほうが皆幸せかも。

サーバー側で、

www 有り無しの統一などはしてあげてあげると良いかも。

sitemap.xml

こちらは基本的には、サイトマップが必要かどうかを検討する必要もありそうです。
他のページからリンクされているページは基本クロールされそうだけどそもそもリンクが無いページをインデックスさせるケースとか設計的にかなり特殊そうな気もする。
あとは初期公開のサイトや、リニューアルでURLが変更になったりなどのばあいは、クロール漏れなどは怖いので念のために入れておきたい気もする。(合わせてページ変更の302リダイレクトなども)

以下のGoogleのヘルプページの、‘サイトマップが必要かどうか’ 部分が参考になります。

参考 : サイトマップについて Search Console

ページが多いサイトでのメンテナンスも大変なので、基本はなしで、必要な際に設置、ボリュームが莫大なら自動生成プログラムや、WordPressだとプラグインで自動生成が楽そう。

Search Consoleの登録

検索キーワードがAnalyticsでほとんど見れなくなっているので、こちらでアクセスに繋がったキーワードの表示順位や実際のアクセスになったかなど非常に有益な情報をみれたり、クロールのエラーなども検知できるので必須といえます。
(そういえば昔、Bing – Web マスターツールって登録したけど全然みなくなったな、なにか有益な活用方法など教えて欲しい)
あと、AMPのエラー検知なども便利。

nginx関係のメモ

nginx関係のメモ

主なディレクトリ構成

Directory note
/etc/logrotate.d ログローテーション設定ファイル
/etc/nginx/~ 設定ファイル関連
/usr/lib/systemd/system/nginx.service 起動スクリプト(systemdの設定ファイル)
/usr/lib64/nginx/modules/~ モジュール置き場
/usr/share/nginx/html/ ドキュメントルート
/var/cache/nginx/~ キャッシュファイルが置かれる
/var/log/nginx/~ ログファイル

設定ファイル

  • nginx.conf : 最初に読み込みまれる、以下の記述が有り別のファイルを読み込んでいる。
  • mime.types : フィアルタイプのマッピング
  • conf.d/default.conf : 基本的なWebサーバーの設定
  • scgi_params,uwsgi_params : CGI/WSGIのパラメータとnginxの変数のマッピング
  • win-utf,koi-utf,koi-win : ロシア語の文字コード関連ファイル普段使わない

設定ファイルのチェック

sudo nginx -t

状態確認、起動、終了、再起動、再読込+バイナリ入れ替え

$ sudo systemctl status nginx
$ sudo systemctl status nginx  //状態表示+ログ
$ sudo systemctl start nginx
$ sudo systemctl stop nginx
$ sudo systemctl restart nginx
$ sudo systemctl reload nginx

バイナリ入れ替えは新しいものが起動した後で、元を順次終了するのでサービスをストップせずに行える

$ sudo /sbin/service nginx upgrade

nginxコマンド

Command Note
nginx -h ヘルプ
nginx -v バージョン
nginx -t 設定ファイルのテスト
nginx -T 設定ファイルのテスト+表示
nginx -V バージョン情報+コンパイルフラグなど、組込モジュールの確認
nginx -s stop デーモンの停止強制
nginx -s quit 処理中のリクエストを待って停止
nginx -s reopen ログファイルを開き直す
nginx -s reload 実行中に設定ファイルを再読込

設定ファイルで使える変数

var value
$request_method GET
$host,$http_host www.example.com
$uri,$document_uri /path/to/file
$request_uri /path/to/file?a=1
$http_user_agent ユーザーエージェント
$http_cookie クッキー
$server_protocol HTTP/1.1
$query_string,$args 引数部分
$arg_{name},$cookie_{name},$http_{name} 引数、クッキー、HTTPヘッダー

端末が縦(portrait)と横(landscape)の方向を判定するメディアクエリの書き方(sass記法)

めも

@media all and (orientation: portrait)
    #footer
        position: fix
        bottom: 0
@media all and (orientation: landscape)
    #footer
        position: relative
        bottom: auto

GoogleMap JavaScript APIで地図にマーカー(ピン)を複数表示するサンプル (2017.07現在 ver3)

Google Cloud PlatformでAPIキーを取得

https://console.cloud.google.com/home/dashboard

にアクセスします。

まずプロジェクト作成

ヘッダーのプロジェクトの一覧部分をクリックして、ポップアップウィンドウが開いたら+ボタンを押して新規作成画面へ行き作成します。

title

title

title

title

APIの有効化

左メニューの [API Manager] をクリック、作ったプロジェクトが選択されていることを確認して、+APIを有効にするボタンを押します。

title

title

そこでGoogle Maps JavaScript API を選択

title

title

そのまま▶有効にするボタンをおす。

title

title

認証情報(APIキー)を取得をクリックして認証情報を作成とすすみます。

title

title

認証情報(APIキー)が作成されました。

※ちなみに作成した時点では左側に警告マークがでています。これはAPIへのアクセスがドメインなどで制限されていないので、他のサイトで流用されたりすることがある旨の警告です。
(公開時にはドメインを設定するとよいでしょう)

HTMLのベースを作成

GoogleMapを表示する部分をマークアップします。

HTML

普通にIDをつけたタグ(エレメント)を作成します。
(id名はなんでも良い)

<div id="map"></div>

CSS

HTMLにサイズなどを指定します。(幅、高さを指定しないと表示されない)
ここでは、ブラウザ横幅いっぱいで4:3の比率での設定例としています。vwの単位は画面の幅を基準にした単位

#map { 
    width : 100vw;
    height : 75vw;
}

JavaScriptと全コードまとめ

以下にHTML,css,JavaScriptをまとめ。※YOUR_API_KEYの部分を前項で取得したあなたのAPIキーに置換します。

<style type="text/css">
#map { 
    width : 100vw;
    height : 75vw;
}
</style>
<div id="map"></div>
<script>
        function initMap() {
            var uluru = {lat: -25.363, lng: 131.044};
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 4,
                center: uluru
            });
            var marker = new google.maps.Marker({
                position: uluru,
                map: map
            });
        }
    </script>
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>

JSの処理の流れ

まず、以下の部分でGoogleからJavaScriptのソースコードを取得します。

<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>

読み込みが完了すると、コールバック関数(JavaScript)が実行されます。
「callback=initMap」の部分で指定されている ‘iniMap’ 関数
いかinitMap部分の解説

<script>
        function initMap() {
            //1.緯度経度を設定
            var uluru = {lat: -25.363, lng: 131.044};   
            //2.マップオブジェクトを作成     'map'はHTMLのID名を指定
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 4,
                center: uluru
            });
            //3. マーカーオブジェクトを作成
            var marker = new google.maps.Marker({
                position: uluru,
                map: map
            });
        }
</script>

以下のように表示されれば成功です。

title

title

Macの不要ファイル”.DS_Store” をLinuxコマンドで一括削除

Macの不要ファイル“.DS_Store” をLinuxコマンドで一括削除

findで探してxargsに送ってrmで削除

$ find ./ -name ".DS_Store" | xargs rm

find ファイル・ディレクトリ検索コマンド

引数1 「.」

これはファイルを探す場所、特定のディレクトリを指定する。
ここではカレントディレクトリ「.」を指定

引数2 「-name “.DS_Store”」

これはファイル名を指定

この部分だけを実行すると以下の用にファイル一覧が標準出力へ表示されるのでこのファイル一覧それぞれに対してxargsが「$ rm (ファイル名)」を行っています。

$ find . -name ".DS_Store"
./.DS_Store
./img/.DS_Store
./news/.DS_Store
./news/wp-content/.DS_Store
./news/wp-content/plugins/.DS_Store

実行イメージ

findで検索 → |(パイプ)でxargsへ結果を渡す → xargsは rm を全てに対して実行
(内部的に以下の用に実行される)
$ rm ./.DS_Store
$ rm ./img/.DS_Store
$ rm ./news/.DS_Store
$ rm ./news/wp-content/.DS_Store
$ rm ./news/wp-content/plugins/.DS_Store

(詳細・参考サイト)

http://www.k4.dion.ne.jp/~mms/unix/linux_com/find.html
http://wa3.i–3-i.info/word11619.html

CSSでのフォント指定

CSSでのフォント指定

いかのような基準で作っています。

通常のなんでもないサイトの場合

  • ゴシック : win メイリオ、mac : ヒラギノ
font-family : "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif
  • 明朝 : win HG明朝 or MSP明朝、Mac : ヒラギノ明朝
font-family : "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif

すっきりしたデザインの場合

  • ゴシック : mac,winとも 游ゴシック体
font-family : "游ゴシック体", YuGothic, "游ゴシック Medium", "YuGothic M", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, sans-serif;
font-weight : normal;

(POINT : font-weightを明示)

  • 明朝 : mac,winとも 游ゴシック体
font-family : "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" ,"ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "MS P明朝", "MS 明朝", serif;
font-weight : normal;

※IEのバグに注意

游明朝、游ゴシックでIEで文字の上下の揃えがずれるバグがります。

どっちが読みやすいとかも考えると。

特に意図しない普通のサイトの場合ユーザーの読み慣れているフォントが読みやすいことも考えられたりするかもなども気になる。

Sass記法,FlexBox,Compassでよく使う書き方メモ

Sass記法,FlexBox,Compassでよく使う書き方メモ

世の中SCSS記法がありふれてるのですが、小規模一人Web開発がおいので、より効率的なSASS記法+Compassをつかっています。あまりサンプルも落ちていなくよく忘れがちなので記法をメモ。

CSS(SASS記法)

@import compass
.row
    +flex-wrap(wrap)
    +flexbox((display: box,box-orient: horizontal), $version: 1)
    +flexbox((display: flexbox,flex-direction: row), $version: 2)
    +flexbox((display: flex,flex-direction: row))
.row.row-nowrap
    +flex-wrap(nowrap)

HTML

<!-- 折り返し有り -->
<ul class="row">
    <li>要素</li>
    <li>要素</li>
    <li>要素</li> 
    <li>要素</li>
    <li>要素</li>
    <li>要素</li> 
    <li>要素</li>
    <li>要素</li>
    <li>要素</li> 
</ul>
<!-- 折り返しなし -->
<ul class="row row-nowrap">
    <li>要素</li>
    <li>要素</li>
    <li>要素</li> 
    <li>要素</li>
    <li>要素</li>
    <li>要素</li> 
</ul>

jQueryでページ内リンクへスムーズにスクロールする方法

jQueryでページ内リンクへスムーズにスクロールする方法

いつも忘れるのでメモ。

$("a[href^='#']").click(function(e) {
    e.preventDefault();
    var href= $(this).attr("href");
    var target = $(href == "#" || href == "" ? 'html' : href);
    var position = target.offset().top;
    $('body,html').stop().animate({scrollTop:position}, 400);
});

Page 23 of 46

Powered by WordPress & Theme by Anders Norén