chevron_left

メインカテゴリーを選択しなおす

cancel
のーずいにたたきcom https://www.nooozui.com

未経験からweb系?のエンジニアとなってベンチャー企業で働いている駆け出しプログラマのブログ。日々得られたIT関連の技術的な知見を共有します

damako
フォロー
住所
未設定
出身
未設定
ブログ村参加

2019/11/03

arrow_drop_down
  • <php>get_object_varsを共通のスーパークラスのメソッドに実装するときの注意

    概要 問題 対策 概要 PHP8においてインスタンスの情報を取得するメソッドにget_object_varsがあり、これを使えば引数に渡したインスタンスのもつアクセス可能なプロパティについてArray型で出力してくれる。 これはDTOのようなプロパティ主体で構成されるクラスなんかの共通処理として実装しておけば色々楽になりそうだったので、抽象クラスにget_object_vars($this)を戻り値として返すようなpublicなメソッドを定義した。(オーバライドせずそのまま使用する用途) 問題 継承先のクラスではprivateのプロパティは「アクセス不能」とみなされ取得できない。 誤解いただき…

  • Mysqlでレコード挿入時に作成日を、更新時に更新日を自動で行えるようにする

    概要 結論 その他 概要 DBの各テーブルには大抵の場合、更新日と作成日、また作成者を登録したくなる。 これを全テーブルで、更には各updateとinsertのSQL操作で毎回書くのは冗長すぎるのでなんとか自動でできる手段を探していたが、 テーブル作成段階でこれを可能にする方法があったのでその備忘録。 結論 CREATE TABLE文で以下のようにする。 CREATE TABLE Users ( //他のカラム定義 created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated DATETIME NOT NULL DEFAULT CUR…

  • <PHP>サブディレクトリのnamespaceの名前解決ができない

    概要 原因 todo 概要 以前にcomposerを導入したとき、composer.jsonで定義したauto_loaderがなぜか機能せず、一旦調査保留にしていたのだが、その原因がざっくりわかったのでとりあえずのメモ 原因 自分でプロジェクトのソース内で宣言していたspl_autoload_registerがどうも悪さをしてたようで、当該宣言を削除しcomposer側で生成されるauto_loaderを読み込むようにしたところ、サブディレクトリの名前空間も無事読み込めるようになった。 todo spl_autoload_registerとかcomposerのautoload周りの挙動を理解す…

  • PHPのnamespace(名前空間)について

    はじめに requireとinclude namespaceの意義 どちらを使うべきか その他 参考 はじめに Pythonにはなく、ほかの言語ではある程度一般的な概念としてnamespaceがあるが、 requireやincludeといった宣言との使い分けがよくわからなかったのでそのメモ requireとinclude ざっくりいうと読み込む対象が読み込めなかった場合に... 警告のみで継続->include 中断->requrie という違いなようだ。 またrequireに関してはrequire_onceもあり、こちらは既に読み込み済みの場合は多重で読み込むことで発生するバグを防ぐことが可…

  • PHPのインタプリタを手っ取り早く利用する方法(wsl2(windows)&docker&tmux)

    概要 構築方法 雑感 参考 概要 プログラミング言語のインタプリタで簡単に組み込み関数の挙動を見てみたかったりする場合、Pythonのようなスクリプト言語だと組み込みでインタプリタがすぐに使用可能であるが、PHPだとインストールの方法によってはインタプリタが有効になっていないようだった。 一応特定のバージョン(v5?)以降はビルド時の設定によってPHPのインタプリタを有効にすることもできるが、wsl環境を汚したくない等の理由でせっかくdockerがあるのでそこで試せれば良いやという結論に、その備忘録。 構築方法 方法もクソもないが、dockerHUBにphp8.0-cliのイメージがあるのでそ…

  • Chrome Remote Desktopで一部キーが反応しない、もしくは謎のショートカットと関連付けられる現象

    概要 原因と対策 概要 題の通り、Chrome Remote Desktop(windowsのRDPのようにリモートで社外から社内のPCにアクセスできるツール)において、キーボードの一部キーが反応しないという現象が発生した。 正確には反応するキーもあり、正しく入力できる場合もあれば、なぜか接続が切れる(自分の場合はPとRキー)で再接続になったりと、ググっても類似の現象がなく、困っていたのだが今日ふと解決に至った。 原因と対策 Vimium(Chrome拡張機能)が原因だった。拡張機能から無効にすれば正常に動作するようになる。 この不具合(現象)の厄介なところは、ChromeRemoteDesk…

  • シェルスクリプトでファイルに行を挿入したい

    概要 結論 ハマりどころ 参考 概要 CLIでログデータを簡易的に処理する際、headerがなかったので該当のログデータにヘッダー行を挿入したかった。 結論 以下で可能。 複数ファイルがある場合のケースを記載。 #!/bin/bash IFS=$'\n' header=`cat ./header.txt` for file in *.log do sed -i 2i$header $file done 補足として... IFS はInput Field Separaterの略で、今回の例に限らず基本メトリクスデータは空白による行列分割を行っているので、 これを変更しないと処理中に分割して解釈さ…

  • データベース設計(エンティティ抽出とビジネス的正規化)

    はじめに 基本のき 知っておくべきこと 正規化 プライマリキーの話 業務で使用するコードはプライマリキーにしてはいけない コード=プライマリキーとすることの弊害 その他の問題 データモデルが複雑になることに恐れるな データのライフサイクルとその後の都合よって生じる問題 はじめに いくつかの書籍や記事を参考にしながらまともにRDBのデータベース設計をやったのでその備忘録。 使用した書籍は以下。 楽々ERDレッスン (CodeZine BOOKS)作者:(株)スターロジック 羽生 章洋翔泳社Amazon 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon …

  • xampp環境で直接開発しているときのエラー出力確認方法

    開発環境 確認方法 その他 参考 開発環境 大雑把に以下のような構成で開発している。 VScode(remote-container)---- (デプロイは内部でのファイル移動) WSL2(ubuntu)------------docker container(Apache tomcat/PHP) 端的に言えば、webサーバ上で直で開発しているようなものでこのときバックエンドのエラーについて確認する方法についてわからなかったので、その時の備忘録。 確認方法 結論:何らかの方法で/opt/lamp/logs/php_error_logを監視すれば良い。 監視の方法としてはいくつか方法があるが、…

  • wsl2を使う前にやっておきたいこと(ディストロのバックアップ)

    はじめに wsl2はディストロ(≒ディストリビューション)をdocker imageのように使えない 1. 任意のディストロをインストール 2. ディストロをエクスポートする 3. ディストロをインポート(複製)する はじめに 転職してから開発環境がMac→Windowsと変更になり、色々と試行錯誤している最中です。 windowsでの開発、となるとwindowsデスクトップアプリケーション等のを除いた一般的なweb/ネイティブアプリケーションの開発はunix環境で行うのが一番ベストなので、 そうなるとwsl2を使うのが一番良い選択肢だと思う。 wsl2はディストロ(≒ディストリビューション)…

  • awkでオプション'OFS'(output field separater)が適用されない

    概要 結論 概要 タイトルの通り、以下のようにpsコマンドの情報を整形しようとしたとき、想定した内容にならなかった。 $ ps aux grep httpd grep -v grep awk -F ' ' -v 'OFS=#' '{print $1 $2}' apache5768 apache5769 apache5776 apache5777 apache5779 apache6679 root17779 特にエラーはなく、表示も1,2列目が表示されている。 結論 typoレベルのミスで、'{print$1 $2}'の列指定の間にカンマがないことが原因だった。 カンマをいれると.…

  • wsl2にsshで接続する

    概要 wsl2サーバーへログイン wsl2サーバーでのsshサーバーの導入 sshd_configの編集 ホスト側公開鍵の仕込み ssh_config作成 その他 概要 ホストOS (ssh 接続) ゲストOS(wsl2,ubuntu20.04) 通常はホストOS側でwsl2がインストール完了していれば、wsl -d Ubuntu20.04のようにコマンドを叩けば、一般的なsshと同様な感覚でログインシェルに接続できる。 なので本来この作業は意味がない(ゲスト-ホスト間のファイル転送もwslからみると/mnt/c/以下にホストOSのシステムドライブがマウントされているため、容易にアクセスがで…

  • tomcatのheapdump取得&apacheやtomcatといったユーザにログインできない問題

    やりたかったこと エラーメッセージの意味と原因 解決方法 やりたかったこと tomcat上で動いているwebアプリケーションの不具合調査のためjcmdコマンドでJVMの情報取得を試みたときに以下のようなエラーがでた。 $ jcmd 27318 GC.heap_dump /var/log/heapdump/heapdump.hprof 27318: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not…

  • 久々の、あとこれからどう生きるか

    2020年~2021年は色々な方にご迷惑をおかけしました。 現在は 苦しい時期を経験して得たものは 2022年から、どういう風に生きたいか 2020年~2021年は色々な方にご迷惑をおかけしました。 久々の投稿になりました。 一応見出しの期間にもわずかに投稿していた時期はあったのですが、基本的にはプログラミングそのもの自体あまりしていませんでした。 精神に不調を来したことで、口約束ではありましたが約束やプロジェクトをいくつか反故にし、前職もなし崩し的に退職することとなり、これまで自分が寝る間を惜しんで積み上げてきたものもすべて無に帰し、27年間の人生で最も苦しい時期でした。 自身の至らなさでご…

  • Google map api をVue.js(Nuxt.js)のコンポーネントで利用する方法

    やりたいこと 結論 参考 やりたいこと 一般的にGoogle map api をwebアプリケーションで使おうとしたとき、例えば以下のような感じで利用する。 html <!DOCTYPE html> <html> <head> <title>Simple Map</title> <style> #map { height: 100%; width: 100%; } </style> <script src="https://maps.googleapis.com/maps/api/js?key={API_KEY}&callback=initMap&libraries=places&v=week…

  • Vue.jsでVuexを使わずに他コンポーネントのプロパティやメソッドを操作する方法

    はじめに 親コンポーネントにアクセスする方法 $parent provide/injectによる依存性注入 子コンポーネントにアクセスする方法 ref属性 それぞれの注意点 参考 はじめに 本記事は編集中なので、全方法は網羅していません。 ググったときにvuexとかばかり出てきて忘れてしまうので、早見表みたいな位置づけです。 コードも具体的な呼び出し方を示すためのみで、コンポーネントとしての動作は確認していないので注意が必要です。 (公式にもほぼおなじ記事があったのでそっちの方見たほうがよさそう) 親コンポーネントにアクセスする方法 $parent $parentを使うと、1個上のコンポーネン…

  • google map apiでクリックしたスポットの情報を取得したい

    なにをやりたいのか? googlemap api はそもそも3種類に分かれている 結論 参考 なにをやりたいのか? google map api for javascriptを使用することで例えば以下のようにGooglemap をwebページで表示させることができる。 google map api によるgoogle mapの表示 このうちmouseイベントを捕まえることで地図上のスポット(赤丸で囲んだような施設情報を持つ場所)の情報を取得したい。 googlemap api はそもそも3種類に分かれている 上記の地図を表示してみるとわかるのだが、上記で表示できるのは機能制限されたGoogle…

  • windows10のPCがスリープから勝手に休止状態(シャットダウン)になる現象

    概要 結論 変更方法 雑感 概要 タイトルの通り、windows10のPCにおいて手動もしくは設定の通りにスリープ状態に移行後に本来であれば解除するまでスリープが継続するところ、一定時間経過後に自動的に復帰後に即座にシャットダウンするような現象が発生した。 自分の無知によるものだがシャットダウン、と記載したのは正確には休止状態であることが後にわかった。(休止状態とは、ざっくりいうと作業の状態を保存してシャットダウンしているような状態で、復帰後にスリープ同様作業が再開できるようなシステム状態を指す) 現象から調べてもバグ系列を疑うものが検索結果のトップに並び、想定以上に時間を要したので本調査を備…

  • ブログ再開する

    ここ最近色々とあり、勉強を初めとした目標のために続けていたあらゆる習慣をすべて中断していた。 今後は技術以外の日頃考えていることについても言語化しながら、自分を客観的にながめる手段としても活用していきたい(それを公開する必要はあるかはわからないが...) ひとまずは失った集中力や純粋な知識、習慣の回復に努めてとりあえず7月の転機を目標に徐々に頑張ろうと思う。

  • gitの補完が効かなくなったとき(mac)

    はじめに 解決策 はじめに gitの補完を以前に設定していて、ある日急に使えなくなることがある。 使えなくなるケースとしては主に gitのバージョンアップ MacOSのバージョンアップ のいずれかが原因であり、実態は補完用スクリプトのシンボリックリンクが切れたりしていることが実際に補完が効かなくなっている原因である。 今回自分はCatalinaにアップグレード後に補完が効かなくなった。 解決策 そもそも補完のためには次のように.bashrcへ設定しているはずである。 #~/.bashrc source /usr/local/etc/bash_completion.d/git-prompt.sh…

  • Makefileでスマート(if文を使用せず)に処理を分岐させる

    はじめに Makefileのワイルドカード 自動変数を用いてtarget名の一部を利用する おわりに はじめに Makefileではifやwhileを使うことができるのだが、予めどんな値が入るかわからない場合においては使用できない。 今回の使用法は汎用性に富んでおり、かつ簡単にかけるのでそのやり方を紹介しておく。 Makefileのワイルドカード Makefileではワイルドカードとして、*や%等を使用することができる。 今回は詳細に説明しないが、%をターゲット名に使用することで、%の部分を自動変数に格納できることを利用する。 自動変数を用いてtarget名の一部を利用する %に該当する部分は…

  • Makefileとシェルスクリプトの変数参照とコマンド実行

    はじめに シェルスクリプトの変数参照 シェルスクリプトでコマンド実行結果を変数に保存する Makefileでの表現 コマンドを変数へ格納して変数をコマンドをして実行するには? 入れ子になっていても実行できるのか? おわりに はじめに シェルスクリプトの変数参照とコマンド実行についていつも混乱するので、もっとシンプルにまとめることを目的とする。 シェルスクリプトの変数参照 以下のどれでも参照できる。 //代入 $ var='a b c' $ echo $var a b c $ echo "$var" a b c $ echo "${var}" echoを使用せずに参照すると、参照した値をコマンド…

  • Ansible実行時にエラー[no filter named 'changed']

    はじめに 原因 解決策 参考 はじめに 業務の中でAnsible2.4→2.9に上げる必要があったので、まず単純にバージョンを上げたところタイトルのエラーが出た。 原因 whenディレクティブで条件式を使用するが、その際に2.4以前では を使用して以下のように記載ができていた。 when: result true 解決策 これは2.5以上では廃止されたようで、 の代わりにisを使う必要がある。 when: result is true` その他にも2.5から廃止された項目があるので注意したい。 参考 docs.ansible.com

  • MacOS Catalinaアップグレード後にitamaeを使おうとしたらエラー[...usr/bin/ruby: bad interpreter: No such file or directory]が出た

    はじめに エラー内容 解決策 原因 参考 はじめに ruby製のデプロイフレームワークであるitamaeを使用しているが、とあるときに以下のエラーが発生して使えなくなったので、解決方法とその備忘録。 エラー内容 -bash: /usr/local/bin/itamae: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory rubyを使ったことは殆どないのだが、どうもitamaeとrubyどちらにも問題があるように見える。 解…

  • DeepLearning&xR開発用PCを構築する 〜その3:VPNでセキュアなリモート開発環境設定編〜

    今回やること やるべきこと、知っておくべきこと 1. 自宅サーバを静的IP化 DDNSの設定 VPNサーバの用意 使用側(クライアント)にVPNクライアントソフトウェアを導入 OpenVPNのインストール 接続設定&認証情報を取得&OpenVPNへ反映 接続したその後 VPN状態でサーバへ接続確認 sshが問題なくできたら…開発準備! 参考 シリーズ 今回やること 今回は外部ネットワークからVPNで自宅開発環境へ接続できるようにすることを目標とする。 ちなみに、現状ではmDNSを利用して簡単にlocalのデバイスに接続できるようになっており、Visual Studio Codeの`remote…

  • githubにsshで接続して、usernameとpasswordの入力を省略する方法

    はじめに 対策方法 httpsのまんまでやる方法 補足 参考 はじめに よく忘れてしまうので、あといろんなやり方が出てきてかなり検索性が悪かったので自分用にメモを残しておく。 対策方法 参考そのまんまであるが、以下の方法が非常に良かった。 これでhttps接続を自動的にssh接続に変換してくれる。 git config --global "url.git@github.com:.pushinsteadof" "https://github.com/" --globalがついているので、設定はリポジトリによらず反映される。 httpsのまんまでやる方法 git config --global c…

  • <python>json.load()でjsonを読み込めない(jsonlinesを読み込む方法)

    はじめに 対策 raw_decode()とは? jsonlinesファイルで実験してみる json.loadでデコードしてみる。 JSONDecoder.raw_decode()でデコードしてみる 原因 おわりに はじめに 自然言語処理100本ノックの3章20番の問題を解いているときに詰まったエラー。 Pythonでjson形式の外部ファイルを読み込む場合、多くの場合json.load(fp)を使うと思う。 最初そのやり方を試みたところ次のようなエラーが出力された。 json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char …

  • pre-commitでisortの設定ファイルをpyproject.tomlにする

    はじめに 競合する理由 解決する方法 参考 はじめに pyproject.tomlでblackとisortの競合を修正して、実行したところ、以下のように競合&warningメッセージが出力された。 /path-to-your-directory/.cache/pre-commit/reponx26mlg0/py_env-python3/lib/python3.7/site-packages/isort/settings.py:298: UserWarning: Found /Users/path-to-your-directory/pyproject.toml with [tool.isort…

  • 複数言語が混在したプロジェクトでlinterとformatterをgit-commitにフックする

    はじめに 複数言語をすべてgit-hookで連携するのはしんどい git-hook連携ツール:pre-commitを使用する インストール 設定ファイル 設定の反映 単純な実行 汎用的なチェック 各言語の方針 Python pre-commitへのhook設置 各設定ファイル Node.js 1. pre-commitへフック設置 2. 設定ファイルの作成 終わりに 参考 ツール集 eslint-plugin 失敗したScalafmt + pre-commit その他 はじめに linter&formatterの導入を解説した記事はかなりたくさんネット上にあって非常に助かるのだが、いずれもシン…

  • はてなブログでvimを使いたい

    はじめに Chromeなら拡張機能「wasavi」をつかおう はてなブログで使用するとどうなるか リアルタイムプレビュー機能は問題なく使用可能 写真投稿はエディタを閉じないと不便 リンクも埋め込み機能はエディタ起動時は使えない それでもvimが使用できるのは便利 参考 はじめに タイトルの通り、私はvimmerなのでvim以外の入力方法ではかなり辛いことになってしまう。 なんとかできないか探してみた。 Chromeなら拡張機能「wasavi」をつかおう wasaviはブラウザでvim入力を実現する拡張機能である。 以下からインストールできる。 chrome.google.com 導入はかなり簡…

  • 15stepで踏破 自然言語処理アプリケーション開発入門 を読んだ

    本書の感想 本書の構成 学習まとめ 本書の感想 私は自然言語処理のサービスを提供する会社に勤めているのだが、そろそろ自然言語処理の仕事をする必要が生じたため、とっかかりとして以下の本で勉強した。 15Stepで踏破 自然言語処理アプリケーション開発入門 (StepUp!選書)作者:土屋 祐一郎出版社/メーカー: リックテレコム発売日: 2019/09/27メディア: 単行本(ソフトカバー) 結論、非常に良い本だった。 基本的に最近の自然言語処理は機械学習等のAI技術とほとんどセットになっているのだが、その影響もあり理論から学ぶのはかなりコストがかかる。 その点本書はエンジニアを対象に手を動かす…

  • 僕のブログ継続を支える3つの工夫

    はじめに 技術1:すべての技術メモはブログの下書きにする 技術2:記事のアウトラインをテンプレート化 技術3:色々なブログの読者になる 最後に はじめに タイトルの通り、自分がブログを継続するために意識している事やその取組を記事化してみた。 タイトルが大げさすぎる気がしないでもないが、もともと継続が苦手な自分がなんとか2ヶ月(=継続は8週かかるらしいので)以上続けられているので、一応メソッドとして成り立つと思う。 今回は「ブログ」を続けるためのメソッドとしていくつか紹介し、汎用的な「習慣化」のためのメソッドは紹介しない。これについては、メンタリストDaiGoさんの書籍を読めば十二分に学習可能な…

  • 2020年の目標はどうしようか

    振返りは先日したけれど… 自分が何を目指すのか? なぜプロになりたいのか なんのプロになりたいのか? でも自分は怠惰なので… 結果どうしたいのか? ところで目標は? なんとか頑張ろう…地道に…堅実に… 振返りは先日したけれど… 以下の通り、毎月の振返りをするようにしたので2019年(12月)の振返りをさっくりやってみた。 www.nooozui.com 正直不甲斐ない結果というか、反省が多い年だったように思う。 2019年1月にはちゃんとした目標というものは建てていなかったのだけれど、それでもなんとなくこれは出来るようになっていないといけない、といったぼんやりとしたイメージはあって、それに対し…

  • プログラマ1年目、2019年12月の振返り

    プログラマとしての1年目が終わった 実績確認 GitHubのContribution ブログ 読書 読了(一旦必要な知識は読み終えたと感じたもの) 読書中(少しでも読んだもの) 勉強会 前月の振返りと今月の目標決定 Keep Problem Try 全体的な所感 2019年の所感 終わりに プログラマとしての1年目が終わった タイトルの通り、現職に就職したのが昨年の丁度1月1日(正確には出社日は7日だが…)だったので、明日でちょうど1年ということになる。 10月から振返りを開始したので、また2019年の目標というものは決めていなかったから今回は12月の振り返り、ということになる。 まあとりあえ…

  • <Mac>MeCabをMacへインストール/アンインストール/文字化け対処

    はじめに mecabエンジンのインストール エンジンのインストール 辞書のインストール 文字化け対処 MeCabのアンインストール はじめに タイトルの通り、mecabの導入についての備忘録。 散々qiita等で記事にされているが、今日時点でのうまく行った結果として記録しておく。 mecabエンジンのインストール ダウンロード先はこちら、基本的にインストール方法は同サイトに説明がある。 taku910.github.io エンジンのインストール $ tar zxfv mecab-0.996.tar.gz $ cd mecab-0.996 $ ./configure --with-charset…

  • <Java>H2DBの例外:SQLExceptionをエラー内容によってハンドリングをしたい

    はじめに JavaのJDBCのエラーについて SQLExceptionのエラーコードを使おう エラーコードとは? 実際のコード 終わりに はじめに とあるアプリケーションのデータベースとして、H2を採用していた。そのアプリケーションでは問題があり、都合上DBへ挿入するデータに重複があり、どうしても一意制約違反(既に主キーが存在している項目をinsertすると発生する)が発生してしまっていた。 エラーが発生してもアプリケーション自体には問題はないが、アラートがうるさい(これは致命的)ので、なんとかこのケースの場合は例外をにぎりつぶすこととした。 JavaのJDBCのエラーについて ハンドリングす…

  • <AWS>EC2のuser-dataでメインアプリケーションの実行をしてはいけない

    はじめに システムの概要 user-dataとは? どういう問題が起こったのか? この問題の特徴 原因と解決策 はじめに 本記事はタイトルについての不具合の備忘録である。 正直、私の未熟さ故の不具合であり普通のエンジニアならこんな失敗はしないものと思うが、念の為書き記しておく。 システムの概要 業務でとあるシステムを開発しており、そのインフラとしてEC2を採用していた。 そしてそのシステムは常時タスクがあるようなシステムではなく、どちらかというとサーバレスアーキテクチャがフィットするような、逐次実行系のシステムだった。 本来ならば、Lambdaを使用するところなのだが、Lambdaの最大処理時…

  • <AR>Amazon Sumerian で ARをはじめてみた

    はじめに 今回やってみたこと 必要な知識 該当のチュートリアル マーカーレスAR Sumerianプロジェクト作成 オブジェクトを配置 ARkitで使用するURLのビルド ARkit側の設定 実行結果 画像認識(マーカーあり)AR Sumerianでオブジェクトを準備 Sumerianエンティティとスクリプトの連携 スクリプトの編集 アプリ側の準備 終わりに はじめに これはQiitaのARアドベントカレンダー2019の22日の記事(完全に忘れていた) 現在ARのアプリを作成する方法はいくつかあるが、その方法の一つにAWS Sumerianがある。 Sumerianがどういうものか、まだあまり…

  • Lambdaでseleniumを使ってフォームテストを自動化してみた

    はじめに ソースコード Lambdaデプロイパッケージの準備 seleniumとheadless-chromeをインストール lambdaへデプロイ パッケージ構成 Lambdaへデプロイ 参考 はじめに サイトの問い合わせフォームの調子が時折悪くなるため、seleniumとheadless-chromeを使用して、フォームの動作確認スクリプトを自動化したかった。 インフラにはAWS Lambdaを使用したが、seleniumに関するエラーが色々出たためちょっと苦労した。 とりあえず動けばOKがゴールだったのでコードとかはかなり雑に書いているのでポイントだけ理解いただきたい。 ソースコード 一…

  • <GCP>Google BigQueryのテーブルのパーティション列とは

    はじめに パーティション列とは? パーティション・プルーニング 終わりに 参考 はじめに 最近仕事でGCPのサービスの一つ、Google BigQueryを使用することとなった。 使用する、と入ってもひとまずクエリを作成して中身を確認するだけなのだがその中で初めて知る概念「パーティション列」について学んだのでその備忘録。 パーティション列とは? 本題の前にBigqueryの性質について少し説明をする。 BigQueryでは「パーティション分割テーブル」という概念(仕組み)がある。これはざっくりいうと、「スキャン範囲を局限するためにテープルを日時で分割する仕組み」といえる。 これには以下の2点の…

  • <Scala>await resultによるOOMErrorで苦しんだときに学んだこと

    はじめに 遭遇したバグ 発生したバグについて OOMErrorには種類があるということ 調査にはヒープダンプをとるのが最も簡単な方法 結局の原因 await resultのネストの危険性 最後に 参考 はじめに 職場で遭遇したかなり苦しかったバグについて、具体的なコードでの言及は避けて説明する。 今回のバグに遭遇した状況は以下である。 scala2.11.8 DBアクセスにSlickを使用、ただしコネクションプールについては設定していない 遭遇したバグ 端的に言うとOOMErrorが発生した。 トレースバックは以下であった。 Oct 21 04:24:07 java[2171]: Caused…

  • kinesis data firehoseでCloudWatchLogsのログを収集する

    概要 kinesis firehoseの設定 step1: Name and source step2: Process Records step3: Choose a destination step4: Configure settings CloudWatchLogsの設定 LogGroupの作成 サブスクリプションフィルター用のIAMロールを作成する LogGroupにサブスクリプションフィルターを設定する 参考 概要 AWSのCloudWatchLogsでは、ロググループ単位でログを収集することが出来るが、CloudWatchLogsの分析機能のまま分析するには少々非力であったり、別…

  • kinesis firehose の 変換用Lambda関数によるデータ変換中にエラーが出た場合の対処

    どういう問題か? エラーログ 原因 解決策 参考 どういう問題か? CloudWatchLogsのとあるロググループに蓄積されるログをサブスクリプションフィルターで全て取得して、データをS3に出力するkinesis streamを作成した。 その際のログは、出力前にlamba関数による変換を有効にしていた。 大量のログ(合計数十万レコード程度)の処理を試みたところ、以下のエラーが発生した。 エラーログ Some records failed while calling PutRecordBatch to Firehose stream, retrying. Individual error c…

  • <勉強会>xR Tech Tokyo #18に行ってきた備忘録

    はじめに VR脱出アドベンチャーゲーム『Last Labyrinth(ラストラビリンス)』での没入感向上テクニック(@furaさん) アナログとデジタルを溶け合わせて作る「体験としてのAR」作り(@katakoto_std) 体験を直感的に理解出来るようにするにはどうするべきか でも体験の翻訳自体が難しいのでは??… ドラゴンボールのコポコポの中に入るとマトリックスの世界に行ける未来をプールVRで創る まとめ 体験させて頂いたデモ(他にも色々ありました) はじめに はじめて xR Tech Tokyoに参加してきたので個人的に得られた知見をまとめなおしてみたもの。 LTについては内容が凝縮され…

arrow_drop_down

ブログリーダー」を活用して、damakoさんをフォローしませんか?

ハンドル名
damakoさん
ブログタイトル
のーずいにたたきcom
フォロー
のーずいにたたきcom

にほんブログ村 カテゴリー一覧

商用