TOEIC受験(3回目)

受験振り返り

  • まとめ

    • 前回(2014/11?)に比べて分かる単語が増えた
    • 全体を通して勘で解く問題が多い
      • Listenning
        • 聞き取れない単語や音が多すぎる
      • 文法
        • 文法部分は文を理解し単語を選ぶという事が出来ていない
      • Reading
        • 全体的に2割から3割り程度の理解
        • 175問目あたりまでしか読み進められず後半20-30問は時間が足りず適当にマーク
  • 次回までに

    • 中学英文法の復習
    • 英語学習のススメ方を再度スケジュール立て
        • 3/18
  • 結果は追記予定

PHPでファイルアップロードする時に気をつける事

PHPでファイルアップロードする時に気をつける事

何度調べても覚えられないのでメモ

  • /etc/php.ini

  • メモリ使用量の上限

    • memory_limit = 20M
  • POSTデータの最大サイズ ※合計サイズ

    • post_max_size = 20M
  • 1ファイルあたりの最大アップロードサイズ

    • upload_max_filesize = 20M

php.iniの上記設定を超えた場合の$_SERVERについて(追記予定)

imgタグにサムネイル画像表示

PHPでimgタグにサムネイル画像表示

  • imageをhttp経由で取得し、加工するまでの手順
  • Imagickを使った事なかったのでImagickクラスが利用出来るまでの設定メモ
  • Imagickはpeclでインストールする必要がある

サムネイル表示について利用①と利用②と試してみたが、サムネイル作成時に吐き出すtmpファイルは サーバに残したくないので、利用①で本実装する事にした。

20160227追記 方法③として、そもそもImagikを使わずタグのwidth/heightで対応する方法も追記

使ってみて

  • めちゃ面白いし便利

公式Imagickサンプル

http://php.net/manual/ja/imagick.examples-1.php

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// 幅あるいは高さに 0 を指定すると、
// 元の画像のアスペクト比を維持します
$image->thumbnailImage(100, 0);

echo $image;

?>

利用① imgタグにbase64_encodeした画像を指定

  • 理解出来ていない部分
    • getImageBlobで出力しているが、実態はどこでファイルを保持しているのか?
<?php
$filename = "https://xxxxxxxxxxxx.jpg"; // 読み込むファイル
$thumbImg = new Imagick($filename); // Imagickのコンストラクタに指定
 
/* サムネイルの作成 */
$thumbImg->thumbnailImage(60, 0); // width/height どちらかを0にすると比率を保持

/* ブラウザの出力 */
header("Content-Type: text/html");
echo '<img src="data:image/jpg;base64,'.base64_encode($thumbImg->getImageBlob()).'" alt="" />';
$thumbImg->clear();

利用② thumbnailImageで生成したtmpファイルを保持する

  • tmpファイルの削除タイミング
    • html表示時は保持している必要があるため、処理開始時にtmpファイルを全消しするか?
<?php
$filename = "https://xxxxxxxxxxxx.jpg"; // 読み込むファイル
$thumbname = "thumb1.jpg"; // サムネイルのファイル名
$thumbImg = new Imagick($filename); // Imagickのコンストラクタに指定
 
/* サムネイルの作成 */
$thumbImg->thumbnailImage(100, 0); // width/height どちらかを0にすると比率を保持
$thumbImg->writeImage($thumbname);
 
/* ブラウザの出力 */
header("Content-Type: text/html");
echo '<img src="'.$thumbname.'" />';
 
$thumbImg->clear();

設定メモ

configure: error: no acceptable C compiler found in $PATH
# yum install gcc make
  • 再度叩く
# pecl install imagick
...(中略)...
install ok: channel://pecl.php.net/imagick-3.3.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini
# service httpd restart
# php -i | grep imagick

参考リンク

20160227追記 利用③ タグで頑張る (Imagikでthumbnailを作るとコストがかかる)

  • thumbnail用の画像は利用せず、素の画像をタグのwidth/heightで対応

    • width/heightの指定が片側だけの場合、比率を保持出来る
      • どうやって画像サイズを取得するかの問題が残る
  • 画像サイズの取得の方法

    • CSSに頼る -> max-widht/max-heightを指定すればうまいこと判定してくれる
    • PHPなどサーバサイドでタグを吐いている場合は、タグにwidht/height属性をつけるかつけないか判定
      • URLを参照する画像の場合、結局Imagikで読み込んで画像サイズを取得するのでは、コストがかかるた
  • CSSに頼る

    • max-width / max-heightを指定しておけば、長辺が指定した値を超えた場合超えた方の値を利用する
img {
    max-width: 100px;
    max-height: 100px;
}
  • PHP側で実装
    • 上にも書いたがImagikを使って画像サイズを取得するのはコストがかかる気がする
      • 実際にthumbnailImageを使った場合と、thumbnailImageを使わないでsizeだけ取得する場合のコスト比較は次回

Laravel4.2のログ出力

Laravel4.2 のlog設定

環境ごとの設定

  • 環境ごとの判定
    • 私はhostnameを使ってます
    • /bootstrap/start.php
$env = $app->detectEnvironment(array(
    'production' => array('fqdn-prodcution'),
    'staging'    => array('fqdn-dev'),
    'local'      => array('local.*', '*.local', '*.lan', 'localhost.*' ), // vagrant 
));

環境ごとのloglevelの設定方法

私はstagingでもdebug barを出しています

  • debug と loglevel
    • /app/config/local/app.php
      • 'debug' => true,
      • 'log_level' => 'debug',
    • /app/config/staging/app.php
      • 'debug' => true,
      • 'log_level' => 'debug',
    • /app/config/app.php
      • 'debug' => false,
      • 'log_level' => 'warning',

ログを出力

  • log出力方法
    • /app/start/global.php
$logFile = 'laravel.log';
Log::useFiles(storage_path() . '/logs/' . $logFile, Config::get('app.log_level'));
void useFiles( string $path, string $level = 'debug')
  • Laravel側でrotate
void useDailyFiles( string $path, int $days, string $level = 'debug')

Swiftビギナーもくもく会

やった事

年末にやるやる言ってたLomdのアプリ側のsample実装

  • 新規Lomd-iOSプロジェクトを作成し、GitHubリポジトリ追加
  • SwiftyJSONを利用してapiの値をtableviewに表示
    • SwiftyJSONのAuthorがDanKogaiでおお!ってなった

参考にさせて頂いたページ

qiita.com github.com qiita.com github.com qiita.com

参加したイベント

  • Swiftビギナーズ勉強会 (掲載して良いという写真あったので貼ってみる) f:id:tbrhdys:20160110213137j:plain)

  • 茅場町にあるCo-Edoというコワークスペースで毎月開催している

  • アットホームな感じのモクモク会で、今回は親睦会に出ていないけど、時間あれば出たい雰囲気
  • 同じオーガナイザーがRailsビギナーもやっているので、そこにも参加したいと考え中
    • 平日やるような話もされていたので期待 (土日は家の事をやりたいので平日開催だと嬉しい)

2015振り返りと2016目標

Run

  • 目標
    • 600km ( 月50km )
  • 結果
    • 277km ( 月50km達成は3ヶ月 )

Learn ( TOEIC )

  • 目標
    • over 600
  • 結果
    • 未受験
    • 最終は2014/11

Learn ( Other )

  • 目標 ( 2014/12のブログから )
    • Vimに慣れる -> 2015/1 or 2 くらいで挫折
      • IDEA のIDEのノーマル使いに戻った ( Vimモードではない )
    • アプリ開発
      • 2015/7にAppStoreに「ハミガキ習慣」というアプリをリリースできた
      • 毎日GitHubへpushしようと思いたち61daysまでは行けた
        • でも日付変更前にちょこっとコメント直すとか、変なハックをやりだしたので、意味ないと思い中断した

2016目標

  • Run
    • 2015を継続して、達成率を上げる
  • Learn ( TOEIC )
    • 早速2016/3に受ける
    • over 600を目指す
  • アプリ
    • ハミガキ習慣の更新
    • Lomdの開発を進めたい
  • 実装方法、種類を学ぶ
    • OOPとしての書き方を実践していく
    • UMLも学びたい
  • Write Code Everyday
    • 毎日少しでもcodeを書いてcommit する
    • 2016の年始は、Javaで書き始めをした ( Interfaceの実装を学んでいるが、もっと実用として業務のコードに落とし込んで行きたい )
  • 育児休暇
    • 男性の場合は出産後1年以内という制約があるため、期間を事前に考えておく必要がある
      • 目標は2016/6 or 7 あたりだろうか

雑感

2015は息子の誕生という大きなイベントがあり、家族のためにも健康に気をつける事を意識するようになった

Fitbitで睡眠時間を計測するようにし、風邪を引く回数がいっきに減った。2015/6くらいからは一度も体調を崩していない(はず)

お酒を5ヶ月くらい止めてみたが、その結果として風邪を引かなかった?のかもしれない

2015/12には仕事でフィリピンに行く事があり、はじめて出張で海外へ行くことが出来た

2015年を締める趣味プロジェクト

SpriteKitを使った簡単なゲームアプリをAppStoreへ申請し、1つやりたかった事は出来た 次なる趣味プロジェクトは、そういったやりたい事をまとめるアプリにしようと思う さっと調べた感じだと競合アプリはいないので、取り掛かろうと思う

サービス名だけ先に 「Lomd」

ロムドと呼ぶ。まったく流行る気配ないけど、作って自分で使う事が目的なので、しょうがない。