HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

実家にて無線LAN環境を整えてタブレットを導入した話

はじめに

大前提として、有線LANは既に使える状態にありました。
父(70過ぎ)がタブレットを欲しがっていたので、
 1. 無線LAN環境を整える(ルーターの選択、購入、設置)
 2. タブレットの選択と購入
を代わりにやりました、という話です。

ルーター5,000円、タブレット17,000円、合計22,000円くらいでした。

何を買ったの?

ルーター

その日のうちに設置まで済ませたかったので、近くの電気屋で買ってきました。
5,000円くらいしたんですが…ネットで買うほうが安かった…( ;∀;)

2階建てで使えるもの、かつ同時接続数が多いもの(これだと8台)を探した結果がこれでした。
実家なので人数が集まることを想定しました。
予算は抑えたかったので、安いものを選びましたが、特に問題なく動作してくれているようです。

設置については、難しいことはなく、説明書を読めばすぐに使えるようになっていると思います。
自宅ではBuffaloのルーターを導入しましたが、同じように簡単にセットアップができました。

タブレット

私自身がタブレットを持っていなかったので、ネットで評判やスペックを調べてこれにしました。
要望があったので、8インチで探してました。

Huaweiのタブレットをネットで買って実家に送付しました。
楽天だと17,000円くらいで売っていました。今はAmazonの方が安い…( ;∀;)

簡単にレビュー

設定のために実家に帰り触ってみましたが、まず(完全に私基準の印象ですが)軽くてビックリ。
ネット検索やYouTubeくらいなら動きもサクサク。
カメラも実家にあった古いデジカメよりも、全然性能がいいのでは。

元々入っているアプリは、Google関連が一式。あとはLINEも最初から入っているようでした。
LINEの設定だけ行って、使い方も簡単に説明しておきました。

これで、私から実家に孫の写真や動画を送りやすくなりました。
8インチもあれば、老眼の父も写真や文字の視認に問題はないようでした。

70過ぎの父がどこまでできたか?

実はルーターの設置だけしてその日は帰り、のちにタブレットが送られました。
Wi-Fi接続の設定をしてあげないと、しばらく使えなくてモヤモヤするだろうなぁと思っていたのですが…
困ることなく自分で設定できたみたいです。パスワードの話とかしてなかったんですが。

それに加え、カメラで既に写真を取っていたり、なかなかに使えているではないですか。
ちょっと心配しすぎでした。

一応、注意点としてルーターに書いてあるパスワードは簡単に他人に教えないように、とだけ伝えておきました。

最後に

外部にサポートを頼むと費用がかさみそうだったので、先に手を出せてよかったなと思っています。
もし同じ要望を持つ親御さんがいる方のお役に立てれば、幸いにございます。

以上でした!

文字列の省略 +「…」をTwigでやるには?

どういうこと?

要は長い文字列に対して、例えば15文字で切って、その後を「…」で省略する。
というのがやりたいことです。

CSSのtext-overflowでもできますが、そちらはwidthを指定するもので、文字の長さの指定ではありません。

やりかた

15文字で区切りたかったら…

{{ target.name|length > 15 ? target.name|slice(0, 15) ~ '…' : target.name }}

ただ、sliceの実装はTwig 1.6からになるので要注意です。
「自分のSymfonyに入ってるTwigのバージョンはいくつなんだろう?」
と思われた方は…

// vendor/twig/twig/lib/Twig/Environment.php

/**
 * Stores the Twig configuration.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Twig_Environment
{
    const VERSION = '1.24.0';

ここに書いてあります。
最近のSymfonyだと、場所が変わっていたりして…。

短いですが、以上でした!

サポート対象バージョンの調査

はじめに

セキュリティの観点から、Webサービスに使用しているアプリケーションのサポートバージョンを調査する必要性に駆られました。
私はいわゆるLAMP環境で作られたWebサイトを扱っておりますので、対象はそれに付随するものとなります。

きちんとしたページが用意されているところもあれば、ないところもあり…
様々でした。

対象

Apache, MySQL, PHP, Symfony
この4つだけです。

調査結果

Apache

Welcome! - The Apache HTTP Server Project

きちんとしたページはないですが…
よくよく見ると、「Apache httpd 2.2.32 Released」のところに書いてあります。

2.2.x 
maintenance releases: June of 2017
security patches    : December of 2017

今年の12月までですね…。
2.4.xについては、特に期限は書いていないようです。

MySQL

MySQL :: MySQL テクニカル・サポート

http://www.oracle.com/jp/support/library/lifetime-support-technology-069183.pdf?ssSourceSiteId=ocomjp

MySQLはPDFファイルです…
資料の19ページ目に、MySQLについて書いてあります。

5.7: 2020年10月
5.6: 2018年 2月
5.5: 2015年12月
5.1: 2013年12月
5.0: 2011年12月

PHP

PHP: Supported Versions

PHPはきちんとしたページがあります。
セキュリティサポートの期限は、下記のとおりです。

5.6: 31 Dec 2018
7.0:  3 Dec 2018
7.1:  1 Dec 2019

Symfony

Symfony roadmap, notifications and release checker

Symfonyも専用のページがあります。
下の方にいくと、「Symfony version checker」なるものまであります。

まとまったものが見たいなら、Wikipediaの方がいいかも…
ただし、調べるからには一次情報をみたいものですよね。

Symfony - Wikipedia

2.7: 2019年5月
2.8: 2019年11月
3.4: 2021年11月
※現在生きている長期サポート版だけを抜粋
※3.4は2017年11月にリリースですけど…

おわりに

本日時点のものを書き出してみましたが、当然変わる可能性があります。
最新版につきましては、必ず一次情報を参照するようにお願い致します。

以上でした!

JSON整形ツール?を作りました

はじめに

整形されていないJSON形式の文字列を整形するツールです。
Webサイトで公開されているものが多々ありますが、入力情報を取得されていたら困ります。

そこで、ローカルで同じことができるものを作成しました。
「JsonFormatter.html」とでも名前をつけて、ローカルに保存してお使いください。

ただし、CDNを使用してるため、通信は発生しているという中途半端さがあります…。

内容はこちら

・エラー処理はしていないので、お好みで変更してください。
・インデントは半角スペース4つです。これもお好みで変更してください。
CDNを使用してるため、通信は発生します…。

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>Json Formatter</title>
        <script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <script type="text/javascript">
        <!--
            $(function() {
                var sampleText = '{"id":12345,"code":10,"detail":{"name":"Foobar","size":"50.00"}}';
                $('#input-area').val(sampleText);

                $('#formatter').on('click', function() {
                    var inputData = $('#input-area').val();
                    try {
                        var jsonBefore = JSON.parse(inputData);
                    } catch(e) {
                        return false;
                    }
                    var outputData = JSON.stringify(jsonBefore, null, "    ")
                    $('#output-area').val(outputData);
                });
            });
        // -->
        </script>
    </head>
    <body>
        <div class="col-md-2"></div>
        <div class="col-md-8">
            <textarea class="form-control" id="input-area" rows="10"></textarea>
            <button id="formatter" class="btn btn-primary btn-lg">Format</button>
            <textarea class="form-control" id="output-area" rows="20"></textarea>
        </div>
        <div class="col-md-2"></div>
    </body>
</html>

見た目はこんな感じ

シンプルですが、使えればいいということで(;´∀`)

以上でした!

lsの実行結果をforでくるくる on Bash

はじめに

たまにBashスクリプトを書くときがあるのですが、毎回のように忘れるんですよね…。
例えば、配列の扱いやfor文の書き方など。

そこで今回は「lsの実行結果をforでくるくる」についてのメモを残すことにしました。

ソースコード

lsの実行結果を配列にして、forでくるくる

array=($(ls /home/${USER}/work))

for eachValue in ${array[@]}; do
    echo ${eachValue}
done

解説

コマンド実行について

`(バッククォート)で囲む方法もありますが、入れ子にできないのもあって私は$()を多用します。
その実行結果を()で囲むことにより、配列としています。

配列について

Bashの配列はこんなふうに()にスペース区切りになっています。

fruits=(apple orange banana)

lsコマンドを打つことで、自然とスペース区切りの文字列ができあがり、それを()で囲むことで配列としています。

for文と配列の展開

${array[@]}は配列の中身を展開するものです。

fruits=(apple orange banana)
echo ${fruits[@]}

# 出力:
# apple orange banana

なので、こんなふうに書いてもOK

for eachValue in apple orange banana; do
    echo ${eachValue}
done

# 出力:
# apple
# orange
# banana

${array[*]}っていうのもあるよね?

${array[*]}についても同じ、というような書き方をたまに見ますが、違いは明確にあります。
"(ダブルクォート)で囲まれたときに違いが出ます。

IFS=',|*'
fruits=(apple orange banana)
echo "${fruits[@]}"
echo "${fruits[*]}"

# 出力:
# apple orange banana
# apple,orange,banana

IFSの最初の1文字目が区切り文字として使われるんですね。
詳細はman bashをご参照ください。

最後に

Bashネタは今後も投稿すると思います。
今回は以上でした。