プログラミング

JavaScriptで経過時間をリアルタイムで表示するサンプル

サンプルコード // HTMLが読み込まれた後に以下の処理を読み込む window.onload = function(){ function Time_exchange() { now_time = new Date(); sec_present = (now_time.getTime()/1000).toFixed(0); // 経過時間の始点 sec_start = (Date.parse("2021-…

rails6にredisを導入してheroku上でも動かす

rails側の設定 gemの導入 config/initializers/redis.rbを作成し以下を書く redisを使うクラスでredisオブジェクトを作る redisオブジェクトに値を入れる処理を作る ローカル環境での設定 herokuでの設定 herokuの管理画面からheroku redisをインストール サ…

gemをプロジェクト直下にインストールしない方法

gemがプロジェクト直下にインストールされる原因 bundle install --path vender/bundleとしたから。 gemをプロジェクト直下にインストールしない方法 プロジェクト/.bundle/configの「BUNDLE_PATH: vendor/bundle」を削除する。 削除はbundle installで使用…

rails6でrails newした後に入れるgemとその導入方法まとめ

view系 slim インストール htmlをslimに変換する 参考 bootstrap 導入 参考 デバッグ系 pry-rails 導入 参考 テスト系 rspec 導入 参考 文法系 rubocop 導入 参考 view系 slim インストール gem 'slim-rails' htmlをslimに変換する gem 'html2slim' for i in…

rails5でDBの代わりにymlを使って値を記録・更新する方法

DBの代わりにymlを使って値を記録・更新したい 複雑なデータを記録したいわけじゃないので、DBは使いたくない。 サンプル 前回の起動時間からn日経ってたらtrueを返す例 class TimeKeeper require 'yaml' def last_acted_at data = open('./lib/time_keeper/…

rails6でdeviseを使ってユーザー機能を実装してみた

本記事は「メディアサイトを作る」の作業の一環です spreadthec0ntents.com やったこと deviseを使ってユーザーの作成、ログイン、ログアウトなどの機能が実装できる。 やったこと一覧 deviseのインストールと設定 userクラスの設定とテーブル作成 dotenvの…

rails6でメディアサイトを実装する

rails6でメディアサイトを実装する 現在、rails6でメディアサイトを実装している。実装中は各実装フェーズごとに記事を書いていく。本記事ではそれらの記事をまとめた目次的な物である。 実装しながら随時加筆していく。 やったこと rails6の環境を構築する …

gemをvendor/bundle以下にインストールしない

問題 以下の手順でrailsのプロジェクトを立ち上げた際に、以下のコマンドによってgemがvendor/bundle以下にインストールされてしまい、gemを追加するごとにプロジェクト配下に膨大な差分が生まれてしまう。 膨大な差分が生まれるとgitで差分を確認し辛くなる…

3wayマージでコンフリ解消を便利にできる

3wayマージの利点 コンフリ状態のコードが、「マージの起点コミット」「マージさせたいコミット」「2 つのコミットの最近共通祖先となるコミット」で見れること 例えばこんな感じ。 <<<<<<< マージの起点コミット def hoge puts "hoge" end ||||||| 2つのコ…

Arctic Code Vault Contributorに選ばれていた

Arctic Code Vault Contributorとは qiita.com いつの間にか対象になっていた 保存対象になったレポジトリは全てクソコードが入ったものだけどなんだか嬉しい。。

herokuのclearDBにsequel proでアクセスする方法

herokuのclearDBにsequel proでアクセスする方法 herokuの管理画面から「Config Vars」を開く heroku管理画面: https://dashboard.heroku.com/apps/アプリ名/settings Config Vars: 環境変数DATABASE_URLの中身を確認する 以下のような形になっている値が…

herokuでclearDBを使う時は手動でmigrationする

herokuの管理画面からのデプロイにはmigrationは含まれていない なので手動で実行する。 heroku run rake db:migrate -a アプリ名 ちなみにrake db:createは実行される模様。。

herokuのfree dynoで新しいタブを開いていくとSelenium::WebDriver::Error::NoSuchWindowError: no such windowが出る

herokuのfree dynoで新しいタブを開いていくとSelenium::WebDriver::Error::NoSuchWindowError: no such windowが出る ローカルでは問題なく動いていたコードが、herokuのfree dynoで動かすとエラーが出る。 原因は、herokuのfree dyno上ではなぜか2つ以上タ…

herokuのfree dynoでchromeを動かすとSelenium::WebDriver::Errorでクラッシュする

エラー Selenium::WebDriver::Error::UnknownError: unknown error: session deleted because of page crash リモートサーバー環境 herokuのfree dyno メモリは512MBらしい。とはいえ、chromeを動かすだけなら大丈夫なのでは?と思うがクラッシュする。。 対…

rake taskを終了する時にexitを使ってLocalJumpError: unexpected returnを出さないようにする

returnでrake taskを終了しようとするとエラーが出る namespace :hoge do desc 'fuga' task exit_rake_task: :environment do p "rake taskを終了する" and return if true end end > LocalJumpError: unexpected return まぁ結果は終了するのだけど、エラー…

Heroku Schedulerで任意の間隔でスクリプトを実行したい

Heroku Schedulerで任意の間隔でスクリプトを実行したい 1週間毎とかに実行したい。 Heroku Schedulerは実行間隔を10分毎、1時間毎、1日毎しか設定できない もう少し選べるといいが、仕方ない。。 1週間毎に起動させる例 ただのブロック節でコントロール…

seleniumチートシート@ruby

seleniumチートシート@ruby 使うたびに調べているので、よく使うものはまとめておく。 調べたことは随時追加する。 chromeを開く # 通常モードで開く @driver = Selenium::WebDriver.for :chrome # ヘッドレスモードで開く options = Selenium::WebDriver::C…

seleniumでeachなどで作られた一覧の要素全てに対して操作をする@ruby

seleniumでeachなどで作られた一覧の要素全てに対して操作をする@ruby 例えば「投稿一覧」のような画面で各投稿を1つずつクリックして開きたい時のパターンを想定。 操作する要素の例 こんな感じのやつを想定。多分よくあるやつ。 各post以下のlinkを1つずつ…

TimeWithZoneオブジェクトを指定した期間で1時間ごとにstrftime("%Y-%m-%d %H:%M:%S")のフォーマットで配列にする

やりたいこと TimeWithZoneオブジェクトを指定した期間で1時間ごとにstrftime("%Y-%m-%d %H:%M:%S")のフォーマットで配列にしたい。 サンプル start_at = Time.zone.parse("2021-04-09 00:00:00 +09:00") end_at = Time.zone.parse("2021-04-09 23:00:00 +09…