日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

Webエンジニア

猫にあげる1日の餌のカロリー量とフードのグラム数を計算出来るツールを書いた

ランキング参加中ライフスタイルランキング参加中犬★猫 ペットグループ 背景 猫がご飯を全然食べずに順調に痩せていってしまったので、ウェットフードやドライフードやおやつなどの複数種類のご飯を合わせたときに必要な食事量はどれくらいにすべきなのかに…

2023年使って捗っているObsidianのプラグインたち

ランキング参加中雑談ランキング参加中雑談・日記を書きたい人のグループ この記事はObsidian Advent Calendar 2023の9日目の記事です。 adventar.org 昨日は hann-solo さんによるObsidian探検記:おすすめ機能・プラグイン・ツールのランキングでした。 ma…

Rustのgoogle/arghライブラリで引数をstructにbindする

GWにRustを触り始めたら楽しくなってきました。 新しい言語を触るのはやはり楽しいです。 今回はなんやかんやするコマンドを作ろうと思って、 引数をいい感じにしてくれるライブラリないかなと思って調べてたら、 googleのarghというライブラリがあったので…

SwiftでJSON文字列をStructのEnumやDate型にbindする

こんにちは、最近Swiftをやっていて、Scalaのコレクション操作が欲しくなってよくないなってなっています。 API等でJSON文字列を受け取って特定のオブジェクトなどにデータを入れたいみたいなのはよくあることだと思うのですが、 Swiftでやったのは初だった…

JupyterLab上でjupyter-lspを使って補完してもらう

ランキング参加中プログラミング jupyter全然触ってなかったらjupyter labってのが出ててへーってなったりしてました。 Tabとか押したら補完してくれるんですが、もっとリッチにできないかなーと思ってらLanguageServerのextensionがあったので、今回はそれ…

localstack上でSQS->Lambda(Scala製)の連携を動かしてみる

開発時にlocalstackをAmazon Resourceのモックとして使っていて、 前試してなんか動かなかったんだけど、ちゃんとやったら動いたのでそのメモです。 github.com localstack上のSQSにメッセージを送ったら、localstack上でmappingされたScala製のLambdaがキッ…

Travis CIからSlackに通知できなくて困った

個人のレポジトリからタイトル通り通知させようとしたら全然できなくて困った話です。 結論Slackのドキュメントが少し古いのか間違っていて、 .travis.ymlに生成される設定が間違ったものになってしまうことが原因でした。 Slackの設定(間違ってるやつ) Trav…

ScalikeJDBCでMySQLにREPLACE INTOのクエリを投げるだけ

こんばんは、普段ScalaでMySQL用のライブラリにScalikJDBCを利用していて、 QueryDSLをよく使ったりしているんですが、 ふとMySQL固有のクエリを使いたくなった時に、テーブル名やカラム名はべた書きではなく、 case classに定義しているものを使いたいんだ…

Scala製ValidationライブラリのAccordを触るぞい

最近Scalaのコードを書いててフレームワークに付随しないタイプのValidationのライブラリなんか無いかなー と探していたらAccordというものを見つけたので触ってみた備忘録です。 http://wix.github.io/accord/index.html 準備 検証用リポジトリはこちらで、…

PHPのプロファイリングが出来るblackfireでPOSTリクエストもプロファイルする

以前blackfireを試したんですが、そのときはブラウザでページを開いて、 chrome extentionでプロファイリングしてました。 なのでGET以外のリクエストがプロファイルやりづらく、 もうちょっといいやり方無いかなと思って探してみました。 以前の話 arata.ha…

scalikejdbcを使ってMySQLにクエリを投げるだけのメモ

久しぶりにScalaを触ってMySQLにクエリを投げたいだけなんだけど、 それすらもぱっとは思い出せなかったので備忘録として書いとこうと思います。 scalikedjbc github.com 検証用レポジトリはこちら。 make run で多分動きます。 github.com build.sbt とりあ…

PHPのjson_encodeで空オブジェクトを出力する

phpで空オブジェクトを出力したくなって、 おもむろに json_encode([]); とやったら空配列になってしまいました。 $php -a Interactive shell php > echo json_encode([]); [] さてどうしたものかと思ってふと浮かんだstdClassを突っ込んでみました。 そした…

API BlueprintとdrakovとdreddでAPIドキュメントを書きつつモックサーバを立ててさらにテストを走らせる

タイトルの通りのことをやってみました。 どんな時にテストがコケるか等の精査が出来てないのでまた続きを書くことになりそうですが、 とりあえずやってみたメモです。 API Blueprint? API Blueprintはmarkdown形式でドキュメントを書けるweb APIのドキュメ…

monologで例外のstack traceをいい感じに表示する

普段phpでログを出力するのにmonologを使っていて、 開発時にはdocker-composeでサーバを起動してログを標準出力に出したりしています。 開発時に例外が発生したタイミングでmonolog経由でエラーログを出しているのですが、 stack traceが1行に表示されてし…

travis上でdockerのmysqlを使ったらCan't connect to MySQL serverと言われてハマった

travisでdocker container上のmysqlに接続しようとしたらなぜか接続できずハマりました。 最終的な原因は $HOME/.my.cnf に設定が上書きされてたのという点でした。 検証用にちょろっと書いたレポジトリはこちら github.com travis上でdocker containerを立…

MacのFinderとかIntellijのOpen Projectでdot directoryを表示させる

GolandでGoのProjectを開こうとしたんですが、 $GOPATHが .go になっていて、 Openしようとしてもどうやって選択すればいいかわかりませんでした。 Golandでプロジェクトを開こうとしている時の状態 困って inttelij dot directory open とかで頑張ってググ…

webpackでERROR in Entry module not found: Error: Can't resolve 'babel' と言われて怒られた

ランキング参加中プログラミング 久しぶりにwebpackを触ったらタイトル通り怒られてしまったので その時調べたメモです。 エラー内容について webpack.config.jsの様子(before) webpack.config.jsの様子(after) 実行後エラーがなくなった様子 検証コードにつ…

terraformを使ってさくらのクラウド上にサーバを立ち上げる

ISUCON7予選と同じ環境を立ち上げたいなーと思ってsakura cloudのterraformを触ってみたのでそのメモです。 第一歩目として単にサーバを立ち上げて見ました。 さくらのクラウドユーザコミュニティによる公認ツールがあるようなのでそれを使いました。 github…

ISUCON7で予選落ちしてきた

去年同様に id:hoto17296 と id:jp_taku2 と一緒にDarkというチームで出てきました。 結果は26772点! 去年は0点で、26722 / 0 = ∞(?)倍のスコアなのでこれこそ圧倒的成長ですね! arata.hatenadiary.com 最終的なランキングも出てましたが、144(=12 ^2)位で…

PHPのプロファイリングが出来るblackfireを試してみた

またもやISUCONで使おうと思ってblackfireをいうものを試してみました。 有料な機能も結構ありますが、 無料で使える機能でもどのメソッドがどれくらいの回数呼ばれてるのかとか、 どれくらいの割合を使っているのかとかがわかって便利でした。 blackfire.io…

phpredisをPHP7系で触るためにやったこと

ISUCONでredis使おうと思った時にPHPからredis触ったこと無いなということに気がついたので、 触れる用にphpredisを試してみた備忘録です。 利用したPHPのversionは 7.1.10 です。 php -v PHP 7.1.10 (cli) (built: Oct 10 2017 01:16:36) ( NTS ) Copyright…

terraform v0.8.8からv0.10.3に移行した時remote state周りでやったことメモ

気がついたらterraformのバージョンが上がってました。 使ってた時は0.8.xだった気がしたけど、 この前見たら0.10.xになってて、なるほど〜となりました。 細かいCHANGE LOGは terraform/CHANGELOG.md at master · hashicorp/terraform · GitHub をみるとし…

Golangのsqlxでテーブルをjoinした結果をstructにbindする

ランキング参加中プログラミング ちょい前に簡単なSQLをstructにbindしたり、 IN句を使ったりしたやつは書いたんですが、 joinした時とか、structがstructを持ってる場合、 dbタグをどうやってbindするんだろうと思ったら、 友人が記事見つけてくれたので試…

docker-composeでmysqlにmigrationかけたい時にconnection refusedで失敗したときの対応

開発環境にdocker-composeを使っていて、 テーブルスキーマのマイグレーションをしようとしたらconnection refusedと言われて困った時の対処法です。 結論はマイグレーションをかける側はmysqlが立ち上がるまで待ちましょうという感じです。 (素のSQLでDBがm…

redashで操作履歴とか見れる画面がなかなか見つからなくて困った話

redash便利ですよね。 色んなデータソースに対してクエリを発行できて、 それを可視化できて、共有できる。 とても便利。 redash.io 便利なので会社で使おうと思った時、 誰がどんなクエリ発行したのかとか見れたらいいなぁと思ってそんな画面を探していまし…

ファイルの変更を検知してなんらかのコマンドを走らせるreflexが便利

ファイル変更があったらテストを流すとかいろんなライブラリありますが、 言語に依存しないやつないかなぁと思って探してたらgo製のものがありました。 github.com go製なのでbinaryが配布されていればそれを持ってくればすぐ使えますね そう思っている時期…

今更ながらRetryするGolangのpackage書いてみた

何番煎じかわからないですが、かいてみました。 呼び出し方がretry.Retryってなってなんかびみょ・・・ github.com 使い方 retry.Retryの第三引数の実装にリトライがありえる処理を書く感じです。 errorが返った場合にはretry.Retryの第一引数に与えた回数分…

GolangのsqlxでIN句が使いたかったので調べたメモ

Golangでバッチを最近書いてるんですが、 sqlxを使っていて、 IN句のprepared statmentどうやって使うんだろうと思ったので調べたときのメモです。 準備 とても適当なテーブルを用意します。 idとnameをカラムにもつhogeというテーブルです。 3件適当なデー…

PHPStormを使っている時にCannot resolve file 'xxxxx.js' と怒られる

ランキング参加中プログラミング PHPStormでテンプレートをいじっている時に、 scriptファイルのパスを指定したらタイトルの通りに怒られてしまったのでその対処方法を探しました。 イメージはこんな感じです。 検証に使ったレポジトリはこちらです。 github…

golangでSQLを投げて返ってきた結果をstructにbindしたい

クエリを投げた結果のデータをいい感じのstructにbindしたいなと思ってやり方を探してました。 いい感じのないかなと思って探したら下記のライブラリを見つけたのでそれを触ったメモです。 github.com テーブル準備 適当なテーブルを作ります。 idとnameしか…