高木のブログ

Sinatra関連の小ネタ

2021/02/23

Sinatraに関する小ネタを随時更新していく 小ネタ 開発環境か本番環境か ホットリロード 参考 【Sinatra】オートリロードしてほしい - Qiita Sinatra: README (Japanese)

【Git】git addしたあとに差分を確認する

2021/02/19

したあとにしても差分を確認することができないが、 オプション()付けたら確認することができる。 変更ファイルだけじゃなく新規ファイルの中身も確認できるので便利。

mackerel-agentのアップデート

2021/02/15

Amazon Linuxで使っているmackrel-agentのバージョンが古かったのでアップデートをした 手順 アップデート バージョン確認 再起動 参考 Amazon Linuxにmackerel-agentをインストールする - Mackerel ヘルプ

【Mac】Touch BarからEscキーが消えた時の解決方法

2021/02/11

起きたこと Vimを使っていて、インサートモードからノーマルモードに切り替えようとした時にTouch BarにEscキーが表示されていないことに気づいた。 解決方法 アクティビティモニタで「TouchBarServer」を終了させる。 他にもMac自体の再起動でも復活するみた…

【Mac】mkfileでダミーファイルを作成する

2021/02/08

サンプルのために大きめのファイルが欲しかったので探したら、標準で入っているmkfileというコマンドでできるらしい。 手順 使い方の確認 オプションの詳細は参考リンクを 1GBのテキストファイルを作成 1GBあるかの確認 参考 mkfileコマンド - Qiita

【Pixela】グラフのバックアップを取るスクリプト

2021/02/04

以前ブログに書いとおり、Togglで記録した作業時間をPixelaで可視化している。 昨年の7月くらいから毎日続けることができて、可処分時間を無駄にしないで済んでいるのは間違いなくPixelaのおかげである。 Togglの作業時間をPixelaで可視化する GASで作った「To…

【Ruby】minitestを実行する方法

2021/01/31

とあるGemにプルリクを出すためにminitestを実行したいのにやり方が分からず、ググっても意外とすぐに出てこなかったのでメモ。 どこのリポジトリか忘れたが、GitHub Actionsで実行している記述を見つけて無事解決した。

SwitchBotのスマート加湿器が止まっていたら起動させるスクリプト

2021/01/27

SwitchBotのスマート加湿器が振動によって安全装置が作動したのか、一定時間連続起動していると止まるのかわからないが、気がついたら止まっていることがある。 ということで、止まっていたら起動させるシェルスクリプトを書いて、Raspberry Piで動かすことにした。 さっそく…

Upptimeでブログの死活監視をする

2021/01/23

「Upptime」という無料でウェブサイトの死活監視ができるサービス(というかOSS)を見つけたので、 このブログとまだ1記事も書いていないけどエンジニア以外の記事を書く予定の「高木のノート」を死活監視するようにしてみた。 GitHub ActionsやGitHub Pages…

SwitchBotのスマート加湿器をAPIで操作する

2021/01/19

SwitchBotのスマート加湿器を買ったので、ご多分に漏れずAPIで操作してみる。 ちなみに買ったメインの目的が加湿器をAPIを使って操作してみたいという理由だけだけど、加湿器の機能としても大変満足している。 手順 ドキュメント: SwitchBotAPI/README.md…

Nature RemoのローカルAPIを叩いて家電を操作する

2021/01/15

Nature Remoはアプリなどから操作した際、たとえ家に居たとしてもクラウドAPIを経由して実行される仕様になっている この仕様のせいで、Nature Remoのクラウドで障害が起きたときに電気が消すことができなくて不便な思いをしたので、次に障害が起きても問題ないようにロー…

Nature Remo E用のGem作った

2021/01/11

Nature Remo E / E lite用のAPIクライアント用のGemを作った。E liteでしか動作確認していないけど、Eでも使えるはず。 ytkg/nature_remo_e - GitHub 作った理由 単純にGemを作ってみたかった Nature RemoのGem…

【Nature Remo E lite】瞬時電力計測値をAmbientでグラフ化する

2021/01/07

半年くらい前にNature Remo E liteを買って放置していたが、せっかくなのでAmbientに値を投げてグラフ化してみることにした。 Nature Remoの公式アプリでグラフは見れるので、正直何も意味はない。 APIでいろいろ値は取れるが、ばっと見、意味がわかるのは…

RubyでAmbientにデータを送信してグラフ化する

2021/01/03

AmbientというIoTデータ向けの可視化サービスを見つけたので、RubyからAmbientにデータを送ってグラフを作るところまでをやってみた。 手順 1. ユーザー登録 Ambient 新規登録 2. チャネル作成 様々なグラフを表示するボードみたいなもの。(多分) 「チャ…

RustでHello, World!

2020/12/30

Rustも触っておきたいなと思ったので、取り急ぎのHello, World!をやってみた。 手順 事前準備 RustのDockerイメージを取得し、コンテナに入る Vimのインストール 作業用ディレクトリを作成し、移動 Rustファイル作成 コンパイル mainという名前の実行…

Homebridge on Raspberry Pi

2020/12/27

Raspberry Pi上にDocker ComposeでHomebridgeを起動する手順。 手順 ディレクトリを作成し、移動 docker-compose.ymlを作成 起動 起動ログ 確認 にアクセスする。 初期ユーザー名: admin 初期パスワード: admin …

RailsにTailwindCSSを導入する

2020/12/23

Rails6.1にTailwind CSS v1.9.6を導入した手順。 Tailwind CSSのv2系はまだ対応していない部分が多いため、v1.9.6にした。 参考: https://tailwindcss.com/docs/installation#post-css-7-…

SwitchBot 温湿度計のMACアドレスを確認する方法

2020/12/15

正確には温湿度計に入ってるBluetoothセンサーのMACアドレスを確認する方法。 SwitchBot公式のアプリで確認することができる。 iOS: https://apps.apple.com/jp/app/switchbot/id1087374760 Android: h…

【Rails】symbolize_keysとstringify_keys

2020/12/14

ハッシュのキーをシンボルから文字列にしたい時があって調べたのでまとめる。 Rails ハッシュのキーを文字列からシンボルに変える ハッシュのキーをシンボルから文字列に変える ネストがある場合 だと全部は変換できない JSONをパースしたい時 のオプションを付ける Ruby を使…

Raspberry Piで回線速度を計測する

2020/12/11

Speedtest公式のCLIを使って計測する。 https://www.speedtest.net/apps/cli 手順 インストール 実行 この時間帯は8Mbpsしか出ないみたい。。。(23時30分頃) 出力形式をJSONにする 参考 Speedtest.net の公式 …

Gatsbyでブログを作ってやったことのまとめ

2020/12/07

この記事は、「Jamstackその2 Advent Calendar 2020」7日目です。 はじめに このコマンドを叩いて作り始めた、このブログでやったことをまとめる。 いろいろやったけど、また新しくブログを作った時にもやると思うことをピックアップしている。 タグページについ…

【Ruby】存在しない日付に対してのDate.parseとTime.parseの挙動の違い

2020/12/04

毎月29日対してにごにょごにょしないといけない要件があり、以下のようにDate.parseメソッド使った。 これで問題ないと思ったが、閏年ではない年の2月の場合、29日が存在しないのでコケることが判明。 (閏年ではない年のこと平年いうらしい。以下、平年という。) 条件…

Raspberry PiにMackerelを導入する

2020/12/01

Raspberry Piだって一応サーバーということでサーバー管理・監視サービスのMackerelを導入してみた。 とりあえずモニタリングができる状態までで、監視ルールの設定はしていない。 環境 Raspberry Pi 4 Model B Raspberry Pi OS 10…

Raspberry Pi 4を買った

2020/11/28

IoTをやりたくなったので買ってみた。 いろいろ後で揃えるのは面倒だと思ったので、スターターキットした。 ヒートシンクとファンもついててRaspberry Piは本格的になったな。 https://jp.rs-online.com/web/p/raspberry-pi/20…

PixelaのグラフをTerraformで作成する

2020/11/25

Pixelaのグラフの作成がTerraformでできるようなので試してみた。 手順 TerraformはDockerで。 必要なファイルを作成 docker-compose.yml .env main.tf terraform init terraform plan terra…

Docker ComposeでSinatraの開発環境を構築する

2020/11/24

SinatraでちょっとしたAPIを作った時の構築メモ。 DBなど使わないシンプル構成。 手順 アプリのディレクトリを作って移動 必要なファイルを作成 Dockerfile docker-compose.yml Gemfile app.rb ビルドと起動 動作確認 参考 Doc…

Macにgcloudコマンドをインストールする

2020/11/23

GCPも触っておかないといけないので、とりあえずgcloudコマンドを使える状態にしておく。 インストール方法 インストール 対話形式で質問に答えていけばあっという間にインストールできる。 シェルの再起動 確認 環境の初期化 ブラウザが開くので認証などを済ませる。 参考 Goo…

Rails Consoleで表示されるSQLのログを非表示にする

2020/11/20

普段はどんなSQLが発行されたかがわかるのでとても便利だが、大量にSQLが発行される場合は逆に邪魔になる。 しかも出力をしているので、その分処理時間も無駄に掛かってしまう。 その時は、loggerの中身をnilにしてしまえばよい。 元に戻せるように、既存の中身は退避させておくと…

【Rails】APIモードで作成したあとに一部機能で画面を作成する方法

2020/11/13

RailsアプリをAPIモードで新規作成()して、一部機能だけ画面を作成したい時のやり方。 対象のコントローラーでではなく、を継承させてあげれば良い。 あとは通常通り、Viewを用意するだけ。 APIモードで作成すると、は不要な機能を省いたAPI用のを継承している。

Rails6にRubocopを導入する

2020/11/01

rubocop以外にrubocop-performanceとrubocop-railsも一緒に追加する。 手順 おわり 個人的な追加設定 したばかりの状態だとこのくらいの設定になった。 : 基本的に新しいCopは有効にしておきたい : これいる? apiモードじゃなかったらno…

Heroku + Rails + MySQL + APIモード + Docker

2020/10/31

タイトルのまんま。 バージョン Ruby: 2.7.2 Rails: 6.0.3.4 MySQL: 8.0.22 Docker: 19.03.13 docker-compose: 1.27.4 手順 1. アプリのディレクトリ作って移動 2. 各種ファイル作成 Docker…

Gatsbyで作ったブログにtextlintを導入する

2020/10/26

このブログにtextlintを入れてみた。 本当はGitHub Actionsでいい感じに動かすところまでやりたかったけど、とりあえず今回はローカルで動く状態までにした。 手順 1. textlintとルールプリセットを追加 textlintだけでルールがないと動かないので、複…

【Ruby】カリー化と部分適用

2020/10/21

※ 下書きにずっと残っていていつまで経っても公開できそうにないので、まとめ終わる前に自分用のメモとして公開する(カリー化の使い所がいまいちわかっていない) カリー化 2つの引数の積を返すメソッド(正確にはProcオブジェクト(ラムダ)) 部分適用 引数を3倍にして返すProcオ…

Gatsbyで作ったブログをOpenSearchに対応させる

2020/10/16

dev.toのソースコードを見たくてアドレスバーから検索しようとしたら 「dev.to github」と入力している途中で表示が変わって、dev.toの検索結果が表示された こんなことできるのかと驚いた OpenSearchというらしい 特に新しい技術ではなく、2005…

【Ruby】URI.escapeとCGI.escapeの違い

2020/10/07

URIエンコードにを使っていたらRubocopに怒られてしまった どうやら時代遅れらしい の代わりにを使うことにした URI.escapeメソッドは時代遅れであり、使用すべきではありません。代わりに、CGI.escape、URI.encode_www_form、またはURI.e…

ts-nodeで始めるTypeScript

2020/10/04

ついにTypeScriptに手を出す時が来た ローカルマシンでの実行環境はts-nodeが代表的らしい バージョン ts-nodeのインストール 対話形式で実行 ファイルから実行 おわり これでカタカタおじさんの仲間入り 参考 りあクト! TypeScriptで始めるつらくない…

【Ruby】バージョン番号のソート

2020/09/28

問題 文字列で表されたバージョンをソートすると正しくない結果になる “2”と”10”では”2”の方が大きい値と判断される(“10”の”1”の部分を先に評価してしまうため) 解決方法 文字列で表現されたバージョンを比較可能にするためのクラス(Gem::Version)を使えば解決…

Ruby 3.0.0 Preview 1を試す

2020/09/26

Ruby 3.0.0 Preview 1がリリースされたっぽいので一応触ってみた Ruby 3.0.0 Preview 1を手に入れる 追加された機能(ほんの一部)を試す これでirbを起動する 右代入演算子 左辺の値を右辺の変数に代入する演算子 エンドレスメソッド定義構文 ブ…

GitHub ActionsでHerokuアプリを24時間稼働させる

2020/09/24

Herokuの無料プランには30分間アクセスがないとアプリがスリープになるという仕様がある これを回避する方法としてよく使われるのが、Heroku Schedulerを使ってcurlでリクエストを送るという方法 今回はHeroku Schedulerの代わりにGitHub Ac…

【RuboCop】grepとawkを使って楽に新しいCopを有効にする

2020/08/26

問題 RuboCopを実行したら、以下のような警告が出るようになった RuboCopのバージョン 0.89.1 新しく追加されたCopはデフォルトで有効にならないので、rubocop.ymlに設定を追加しないといけないらしい これをちまちま設定していくのはたまにならいいけ…

【Rails】Twitterログイン機能を実装する

2020/08/22

RailsアプリにTwitterアカウントでログインできる機能を実装したのでメモ Twitterアカウントでログインができればよかったので最低限の実装しかしていない deviseを使うほどでもないので、omniauth-twitterだけ使った バージョン ruby: 2.6.…

Gitのタブ補完を有効にする

2020/08/19

手順 git-completion.bashのパスを探す ~/.bashrcに追記 参考 【2ステップ】Gitコマンドでtab補完を有効にする - Qiita

Glide使ってNoCodeでアプリを作ってみる

2020/08/17

巷で話題のNoCodeでアプリ作成をやってみたかったので、Glideを少し触ってみた Glideとは 簡単に言うと、GoogleスプレッドシートをデータベースとしてノーコードでPWAサイトを作れるサービス https://www.glideapps.com/ 作成するアプリ Y…

青空文庫を縦書きで読むブックマークレット

2020/08/14

別のものを作ろうした時にできた副産物だけど記録として残しておく 青空文庫の小説を本らしく縦書きにする ブックマークレット Before これが After こうなる もっと本らしく読めるウェブサービス 調べたら「えあ草紙」という青空文庫の縦書き書籍リーダーがあった 色もそう…

Togglの作業時間をPixelaで可視化する

2020/08/13

コロナの影響で在宅勤務なり、可処分時間が増えた せっかく増えた時間を無駄にしないようにと自己研鑽に励み、その時間をTogglで管理している さらに可視化をしたらモチベーション上がるかなと思ったので、Pixelaに草を生やしてみた Lambdaでやろうとしたけど、僕はひよっこエン…

GASにおけるパスワード等の機密情報の取り扱い方

2020/08/12

GASでパスワードやトークンなどをハードコーディングしたくなかったので、環境変数的なものに格納する方法を調べた PropertiesServiceを使うといいらしい 使い方 値の登録 ファイル→プロジェクトのプロパティ→スクリプトのプロパティ 値の取得 一括取得 長いし、複数…

【Rails】スコープとクラスメソッドの違い

2020/08/11

普通に実装していたら違いなんてなくてどっちでもいいじゃんって思ってたけど、明確な違いがあった 今までたまたまそういう実装をしていないからハマらなかっただけで、いつかハマるかもしれないからメモしておく スコープとクラスメソッドの違い メソッドチェインができるようにスコープはAct…

コアを吐いた

2020/08/02

いつの間にかプロジェクトルートにという名前のファイルが出来ていることに気づいた。 しかもrootだし、容量もでかい。怖い。 調べてみるとこれはどうやらコアファイルというらしい。 コアファイル プログラムが異常終了した時に出力されるファイルのこと 異常終了直前のメモリの状態などが…

Toggl APIで前日の総作業時間を取得する

2020/07/25

APIで取得できる項目はいろいろあるけど、前日の作業時間だけ欲しかったのでそれだけ調べたメモ 手順 API Tokenの取得 プロフィールページの下の方に表示されている https://toggl.com/app/profile curlで叩く とはドキュメントに載ってたダミー…

Pixelaを使ってみる

2020/07/23

Pixela あなたの頑張りや継続を記録し、育てたい。 そのすべてを、APIで。 Pixela はAPIサービスです。このサービスを使えば、あなたの日々の様々な活動量を GitHub のような鮮やかなグラフで表現することができます。 そのすべての操作を、APIで。もちろん、無料…

Docker ComposeでRuby on Jetsの開発環境を構築する

2020/03/29

Docker Composeを利用して、Ruby on Jetsの開発環境を構築してみる。 細かい設定はいろいろあるけど、とりあえず最低限のJetsの画面が表示される状態をゴールとする。 そもそもRuby on Jetsとは? サーバーレスアプリケーションをRailsライクに作…

pipでmacOSにAWS CLIをインストールする

2020/03/03

AWS CLIにはバージョン1とバージョン2があるらしい。今回はバージョン1を入れた時のメモ。 バージョン 手順 pip3でAWS CLIをインストール PATHを通す インストールしただけだとそんなコマンドないよと怒られる 正しくイントールをされたか確認する 完璧だね! 参考…

生産性を上げるためにdotfilesの世界に入門する

2019/12/08

ずっとdotfilesを作って整備していきたいなと思っていたけど、なかなか進められずに何年か経ってた。 でも以下のアドベントカレンダー見てたらやらずにはいられなくなったので今日から進めていく! dotfiles Advent Calendar 2019 - Qiita とりあえ…

PHPで簡易Webサーバーを起動する

2019/12/06

動作確認したい時に便利。MacにPHPはデフォルト入ってるしね。 正確にはビルトインサーバーっていうらしい。 PHP: ビルトインウェブサーバー - Manual バージョン 起動コマンド エイリアスに 登録 エイリアスにで登録してすぐ起動できるようにしてる。

HTMLの雛形

2019/12/03

簡単なサイトの作成やCSSの挙動を確認する時に使う HTML ワンライナー テンプレートをGitHubに上げた。 ytkg/html_template

ベーシック認証の手入力を省略する方法

2019/11/30

開発中とかにいちいちユーザー名とパスワードを入力するのはとても面倒。 URLにユーザー名とパスワードを含めると認証を省略できる。 他にもiPhoneのホーム画面に追加するようなWebアプリはこのやり方でアクセスしたあとにホーム画面に追加すれば認証を求められないので便利。

Herokuで動かしているRailsアプリにベーシック認証を掛ける

2019/11/26

家用のRailsアプリをHerokuで動かしているが、一応認証は入れておきたいなと思ってベーシック認証を掛けた時のメモ やり方 というメソッドが用意されているので、ApplicationControllerに記述するだけで出来る。 最終的には本番時のみ動作してほしいのととは環境…

「Hello World!」を返すGo言語アプリをHerokuにデプロイする

2019/11/23

概要 「Hello World!」を返すGo言語アプリをHerokuにデプロイする。 以下に載っているチュートリアルをそのままやるだけ。 https://jp.heroku.com/go バージョン 手順 Govendorのインストール パッケージ管理ツールを入れる。Rubyで…

ReactアプリをNowに爆速でデプロイする

2019/09/01

インストールなどは端折る。 バージョン 手順 Reactアプリ作成 でアプリ作成。最初のcommitまでやってくれる。 ディレクトリ移動して、で起動確認。 Nowにデプロイ でデプロイできる。未ログイン状態の場合は別途ログイン作業がある。 https://sample-reac…

映画の公開日情報は映画.comがiCalフォーマットで公開してくれていた

2019/08/04

映画の公開日を取得できるAPIってないのかなと探していたら、映画.comがAPIではないけれど、iCalフォーマットで公開してくれていたのでこれを使うことにする。 iCal公開予定スケジュール - 映画.com からまでが1つの映画の情報で、 が公開日、がタイトルになっている…

RailsでRakeタスクを作成する方法

2019/06/10

手順 というファイルが生成される タスクの中身はこんな感じで書く 実行の仕方 モデルにアクセスしたい場合は、を付ける。 実行結果

codicのAPIを試してみる

2019/06/06

いつもお世話になってるcodicにAPIがあったので試してみる。もちろん認証が必要。 トークンの取得とか使い方の説明は以下を参照 API | codic 手順 こんな感じでcurlを叩く。 実際に叩いてみた結果。 見にくいし、文字があれなので、jq使う。 変換されたものだけ…

duコマンドで大きいディレクトリを見つける

2019/06/02

ディスク使用率が100%になっててやべ!ってなったので要らないファイルを消す。 duコマンドで大きいディレクトリを見つける。sortコマンドを組み合わせて見やすく。 procディレクトリってなんだろ。次回「procディレクトリって何」の巻。 homeディレクトリが大きいみたいな…


Written by ytkg, Twitter, GitHub

Pixela