信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    スプレッド演算子

    スプレッド演算子(可変長引数)【...】←この三点リーダーみたいなやつのこと読んで字のごとくですが、関数に渡す引数を任意の個数渡すことが出来ます。悩んでたんです、既に用意されている(実態がない)関数の引数が可変長だったのです。。。それをどのようにすれば、可変で引数を渡せるのか。その時に出会いました!!使用する機会が最近ありましたので、簡単な例を載せてご紹介いたします!<?php // [...]引数が過変数で受け取ることが可能 public function my_method (int ...$nums) {   // init   $sum = 0;   foreach ($nums as $num)   {     $sum += $num;   }   return $sum; } my_method(1,2,3,4,5);  // output = 15(引数が5つ) my_method(10,20,30);   // output = 60(引数が3つ) ...のように引数の数を可変で渡せる これは、かなり便利!!そうそう使う機会は多くはないとは思いますが、是非!「ここだ!」と思うタイミングで使ってみては?それでは、これにてm(_ _)m
  • レビュー

    静電容量無接点方式の注目キーボード紹介

    こんにちは、kaiです。過去の投稿を見たらレビューばかりやっていたことに気が付きましたが、今回もレビューです。かなり前にやったキーボード紹介ですが、その第二弾として新しいキーボードを購入して実際に職場で利用しているので紹介します。紹介するのは「NiZ ATOM66」という耐久性のすぐれた静電容量無接点方式のキーボードになっています。この方式のキーボードは国産のRealforceなどが有名ですが、そのクローンとして近年注目を浴びてきています。おすすめしたいポイント・安価値段は15,000円程度と一般的なキーボードと比べると値は張りますが、Realforce製品が20,000~30,000円となることを考えると、エントリーモデルとしておすすめできます。・最小キー構成フルキーボードだと112キー、テンキーレスでも91キー程度あるのが一般的ですが、こちらは名前の通り66キーしかありません。(フルキーボードの60%程度の大きさになります)ファンクションキーに関しては「Fn」キーと組み合わせて使うのですが、そこまで多用するわけではないのでなるべく省スペースに済ませたい人にもってこいのキーボードだと思います。・Cherry MX軸採用キーの押し心地にかかわる軸ですが、世の中に多く出回っているCherry Mx軸を採用しているので、「軽すぎて押しずらい…」などの悩みも軸を変えることで解消できるので自分好みのキーボードに仕上げることができます。少しキーボードにこだわってみたいけど、高すぎるのは気が引ける…と思っている方やすでにこだわっている方でも職場や作業用として一台持っておきたいというような方などにおすすめできるキーボードだと感じました。機会があればぜひ見てみてください!それではまた。
  • at CORETECH

    フロントエンド技術の共有会をしました

    こんにちは、おっしーです先日、課内で情報共有会を行いました。WEBサイトの評価の一つとして「サイト表示速度」は非常に重要ですよね。今回はマークアップ担当エンジニアが施策として入れたフロント側の速度改善についての共有会です。主に・クリティカルパスの改善・jsイベントの間引き処理・複数行3点リーダーをtrunk8の処理からCSSに変更・lazyloadからlazysizesへ変更・css設計このあたりの共有会でした。今回はマークアップ担当エンジニアが、バックエンド担当のメンバーを集めて共有会を行いました。同じ領域を担当するメンバー同士の情報交換はもちろんのこと、ときには同じ案件を担当している領域の違うメンバー同士でも情報交換を行います。週1のチームMTGの場を使ったり、改めて場を設けたり、実施方法は様々ですが気軽に情報交換を行える環境は良いですね。またコアテックでは特に技術に縛りはないので、「こういうのやりたい」「こういうの入れたらもっと良くなる」という技術については積極的に取り入れていく方針です。今回も「とにかく速度をあげて、Googleの点数をあげたい」というオーダーに基づき、マークアップ担当者が調査して施策を入れ、展開まで行ってくれました。ではではまた近いうちに。
  • テクログ

    AWS【S3】再入門

    こちらからご覧ください↓https://qiita.com/s-yanada/items/f5b008cb11df85f0201b
  • テクログ

    CloudWatch Logsエージェントがローテートさせるとtimestamp is more than 2 hours in future.で止まってしまう件について

    こんにちわ。パグです。本日はCloudWatch Logsエージェントのログがtimestamp is more than 2 hours in futureで止まってしまう件について書きます。現在の環境はFuelPHPで、主にFuelPHPのローテートログをCloudWatchエージェントでPUSHさせたいって内容になっています。が、恐らく他の環境のログの場合で起きた事象もこれに近しいのではないかと思います。CloudWatchLogsエージェントは導入済みで、ローテート時にうまく動かない人向けなので、そもそもCloudWatchLogsにログが反映されていない場合は別の要因によるのではないかと思います。[/server/fuelphp/logs] datetime_format = %Y-%m-%d %H:%M:%S file = /path/to/fuel/app/logs/20*/*/* buffer_duration = 5000 log_stream_name = {instance_id} initial_position = start_of_file log_group_name = /server/fuelphp/logs 他にマルチラインの設定などが必要かと思いますが、簡単に書くとこんな感じに設定。CloudWatch側では、log_group_nameで検索ができるようになりますが、翌日「 timestamp is more than 2 hours in future.」とエラーが出ておりPUSHイベントが動いていません。色々調べていて、皆大好きStackOverflowを見て見ると、以下のような記事が。https://stackoverflow.com/questions/40604940/cloudwatch-logs-acting-weirdhttps://forums.aws.amazon.com/thread.jspa?threadID=243092この記事の人に激しく同意>Yes I'm experiencing the issue too. Is there a way to reset the state file without doing this?うん。私もそう思うわ。それやらないでResetしたいんだよぉぉぉぉ。はい。じゃあ。本題です。awslogsのPUTイベントが失敗する原因は以下です。PutLogEvents オペレーションの制約に従って、次の問題によりログイベントまたはバッチがスキップされる場合があります。以下本家のマニュアルから抜粋https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html注記1.データがスキップされた場合、CloudWatch Logs エージェントはログに警告を書き込みます。2.ログイベントのサイズが 256 KB を超過した場合、ログイベントは完全にスキップされます。3.ログイベントのタイムスタンプが 2 時間以上未来の場合、ログイベントはスキップされます。4.ログイベントのタイムスタンプが 14 日以上過去の場合、ログイベントはスキップされます。5.ログイベントがロググループの保持期間よりも古い場合、バッチはすべてスキップされます。単一の PutLogEvents リクエストでログイベントのバッチが 24 時間実行されている場合、PutLogEvents オペレーションは失敗します。上記の3がこの「 timestamp is more than 2 hours in future.」というエラーにあたります。タイムスタンプが実行時間より2時間以上未来日になっているので、スキップしますとのことで、最初はUTCと日本時間のズレのせいかと考えたのですが、どうもズレている時刻が異なります。実行タイムスタンプの調べ方はStackOverflowに書いてある通りで「/var/lib/awslogs/agent-state」をsqlite3で検索(JSON形式で保存されているので実行された体の時刻を調べます)調べるストリームIDは/var/log/awslogs.logに出ています。2019-09-28 06:01:02,041 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Removing dead reader [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/09/27.php] 2019-09-28 06:01:02,041 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Removing dead publisher [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/*/*.php] 2019-09-28 06:01:02,044 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Starting publisher for [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/09/28.php] 2019-09-28 06:01:02,044 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Starting reader for [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/09/28.php] 上記の77cbf636732d4f124469c8ccb0f71abeです。(PATHはサイトの詳細が記載してあるので少し削りました)これを検索します。[root@server]# sqlite3 /var/lib/awslogs/agent-state SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from push_state where k="8deaef1856dda2abe912ceedc4180f53"; 上記のkの部分にストリームIDを入れると、JSONからPUSHした時にイベントが出てきます。8deaef1856dda2abe912ceedc4180f53|{"start_position": 248, "source_id": "8deaef1856dda2abe912ceedc4180f53", "first_timestamp": 1570412666000, "first_timestamp_status": 1, "sequence_token": "49599891918873079124975725871068904036184047788058782002", "batch_timestamp": 1570412666866,  "end_position": 369}|2019-10-06T21:00:13|2019-10-07T01:44:32 このFirstTimestampとbatchtimestampが明らかに前日になっています。前日になっていますが、9時間ズレとかではありません。なのでUTCの問題ではありません。なんでかなーと調べていくと、書き込まれない時に、ローテートされた後のログストリームIDがずっと変わらないではありませんか。2019-09-28 06:00:58,041 - cwlogs.push.reader - INFO - 12879 - Thread-1346 - Reader is leaving as requested... 2019-09-28 06:01:02,041 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Removing dead reader [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/09/27.php] 2019-09-28 06:01:02,041 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Removing dead publisher [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/*/*.php] 2019-09-28 06:01:02,044 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Starting publisher for [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/09/28.php] 2019-09-28 06:01:02,044 - cwlogs.push.stream - INFO - 12879 - Thread-1 - Starting reader for [77cbf636732d4f124469c8ccb0f71abe, /logs/2019/09/28.php] 2019-09-28 06:01:02,045 - cwlogs.push.reader - INFO - 12879 - Thread-1348 - Replay events end at 384. 2019-09-28 06:01:02,045 - cwlogs.push.reader - INFO - 12879 - Thread-1348 - Start reading file from 74. 2019-09-28 06:01:02,045 - cwlogs.push.batch - WARNING - 12879 - Thread-1348 - Skip event: {'timestamp': 1569618001000, 'start_position': 74L, 'end_position': 153L}, reason: timestamp is more than 2 hours in future. 2019-09-28 06:09:30,216 - cwlogs.push.batch - WARNING - 12879 - Thread-1348 - Skip event: {'timestamp': 1569618569000, 'start_position': 153L, 'end_position': 229L}, reason: timestamp is more than 2 hours in future. ダメだった時のログはこんな感じで。Removing dead publisherしてるのにStarting publisherのストリームIDが変わらない。77cbf636732d4f124469c8ccb0f71abeこの場合、翌日になっているのにずっとタイムスタンプ上9月27日の朝6時とかになっているので、9月28日のPUSHとならずに、スキップされてしまいます。原因は、FuelPHPのログって、一番上位に<?php defined('COREPATH') or exit('No direct script access allowed'); ?> こんな感じの固定文言が出ているんですけど、こいつが前日とまったく同じなものだから、Startを前日のログから検索してしまって、日付がリセットされないーって内容でした。なので、FuelPHPはCoreの LogsClassをOverwriteして2019-10-01 08:26:02<?php defined('COREPATH') or exit('No direct script access allowed'); ?>タイムスタンプを突っ込んでやりました。2019-10-07 06:00:08,256 - cwlogs.push.stream - INFO - 14088 - Thread-1 - Removing dead reader [729a61c49dafeeb9472f9bc030510546, /logs/2019/10/06.php] 2019-10-07 06:00:08,261 - cwlogs.push.stream - INFO - 14088 - Thread-1 - Starting reader for [8deaef1856dda2abe912ceedc4180f53, /logs/2019/10/07.php] すると、ログに設定した日付を判別して、勝手にローテートされるようになりました。うまくローテーションがかからなくてログの一部が翌日になったら送れなくなった人はお試しください。(Sitemapって、エラーじゃないやんけとか、いわない。)ではでは〜。
  • 旅行

    九州縦断でごわす

    こんにちは!よっこです!毎度旅行に行くたび、タイミングよくブログ当番が回ってくるので、今回も先週行ってきた九州のたびについて書きます!今回は鹿児島から、車を使って福岡まで九州を縦断してきました!スタートは鹿児島から!車を借りてさっそく鹿児島市内へ西郷さんの像上野にいる西郷さんよりごつかったです。鹿児島の西郷さんはわんこ連れていないんですね次に島津家別邸の名勝・仙厳園へ静かな庭園を回っているときに事件は起きました。目の前で桜島が噴火しました。最初はテンションが上がって写真を撮っていたのですが、次第に火山灰がこっちの方へ。。。たくさん火山灰をかぶりながら建物に避難しました。借りたインプレッサも火山灰まみれに・・・ここ最近は桜島は噴火しているらしいです。鹿児島市民も大変だなと思いました(洗濯物とか)次の日は熊本に移動して、午前中は日本三大急流の球磨川でラフティング!日頃運動してなかったせいか、手足が攣りまくり。あと水が冷たくて震えてました:( ;´꒳`;):午後は熊本市内を回りました!くまもんにも遭遇!!被災した熊本城の大天守はほとんど修復されていましたその次の日は大分県に移動し、湯布院と別府を観光別府では特色ある温泉を回る「地獄めぐり」をしてきました。血の池地獄※「地獄」はすべて100度近い熱湯なので入れません。気を付けてください最終日は福岡で観光!!もう受験とは無関係かもしれませんが、太宰府天満宮へ行きましたおみくじ引いたら大吉でした!最後は福岡駅中で〆のラーメン総走行距離 580kmいろんな経験ができたいい旅でした