ダメでしょ!

プログラミングとか怒られた話とか…

今年オープンした岡山で最近好んで食べに行ってる今年オープンしたラーメン屋2選

これはなに? これは大都会岡山 Advent Calendar 2023の22日目の記事です。 ラーメン 相変わらずラーメンが好きです。 20数年、ラーメン屋を開拓しています。 昨年のエントリでは縛り無しで好みのラーメン屋について書きました。 今年は、今年オープンしたラ…

岡山で最近好んで食べに行ってるラーメン屋3選

これはなに? これは大都会岡山 Advent Calendar 2022の21日目の記事です。 ラーメン とてもラーメンが好きです。 20数年、ラーメン屋を開拓しています。 東京にいるときは、週2-3回ラーメン屋に行くくらいには好きでした。 (今はそこまでの頻度では行けてい…

Rails6 で導入された Guard against DNS rebinding とngrok 利用時の回避方法

Rails6にアップデートしたアプリを触っていた際に、Edgeブラウザで表示確認しようと思って ngrok を使おうとしたらエラーになりました。 ngrok rails6 error 原因はこれ。DNS rebinding という攻撃手法に対するセキュリティ機構が追加されていました。 githu…

はてなブックマークのRSSフィードをブックマークカウントでフィルタできる HB!F を作った

なんで作った? HB!F はてなブックマーク RSS フィルタ https://hb-f.herokuapp.com/ ちょっと前までは公式が threshold というクエリパラメータを用意していて、それでフィルタリングができたのですが、利用者が少ないという理由で廃止されてしました。 基本…

Rails の 実行環境を指定するオプション RAILS_ENV をサーバに覚えさせる方法

RAILS_ENV は Rails の実行環境を指定するための環境変数です。 指定しないで実行するとデフォルトとして development で実行されます。 久々に改修依頼が来たWebサイトでは、production 環境と staging 環境を用意していました。 staging 環境でテストを行…

Rails における Staging 環境の追加方法

売り切りで開発したシステムに改修依頼が来た 昔、作るだけ作ったシステムがあったんですが、特に改修とかの話もなく、1年以上経った今になって改修を依頼されました。 ありがたい限りです。 で、改修するんですけど、そもそも改修が来る想定がなかったのでp…

自動化していたつもりの、mac環境構築を2年ぶりに実施したらできなかった

今使っているmacbookproが調子悪くなってきたので、一度きれいにしようと思ってクリーンインストールしたけど、自動化したはずの環境構築がうまくいかなかった。。 今日の夜またチャレンジする予定だけど、ansible の playbook の書き方にどうも変更があった…

Entity Framework を導入するにあたり、まとまった情報が見つからなくて辛い問題

ようやく Entity Framework を導入することに 今までC#の開発では、所々の事情で iBatis というO/Rマッパーを利用していたのですが、ようやくEntity Framework を導入することで話がまとまってきました。 ということで色々と導入に向けて情報を集めている段…

ActiveAdmin にCSV取込機能を追加する際に便利な gem active_admin_import

前提 ruby 2.1.10p492 Rails 4.2.8 active_admin_import 既存システムの修正依頼 前に他の担当者が作成した Rails アプリで、CSVインポートが上手くいかないという相談があり、アプリを確認したところ、管理サイト側が ActiveAdmin を利用していました。 そ…

sqale がサービス終了するので、Heroku に移行した

sqale からの移行推奨先は Heroku info.sqale.jp 公式にそのような案内がありました。 ただ、正直な話、レイテンシが発生するということ、ドル払いになってしまうことから最初は他のサービスに移行したいと考えていました。 移行先調査した ということで、移…

Rails5 でバッチ処理を利用する際に知らないとハマるかもしれないポイント!

前提 Rails 5.0.2 Ruby 2.4.0 なににハマったのか? Rails5 で新規アプリを作成していて、バッチ処理を作成しました。 処理は .\lib\tasks\ 配下に格納し、 .\config\application.rb に以下の設定を行いました。 class Application < Rails::Application ・・…

Rails のルーティングに使用する id を別の内容に変更する方法

通常、edit 等に使用する URI に設定される id を、別のキー等で置き換えたい場合があります。 $ be rake routes Prefix Verb URI Pattern password_resets POST /password_resets(.:format) password_resets#create new_password_reset GET /password_reset…

Perl でパスワードZipを求められた際の対応方法

前提 Perl は初めて触りました。 対応を求められたサーバの環境は古いです。 $ perl -v This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi QBK (急にボールが来たので) 他にヘルプできそうな人間がいなかったということで、触ったことのない P…

ActiveRecord に対する scope は条件に一致するレコードが存在しない場合 .all の結果を返却する

scope を利用していたところ、思わぬところでハマってしまいました。。 指定の条件で検索を行い、返却された結果が nil かどうかで条件分岐させようと思っていたのですが、scope を利用すると常に nil ではなく、.all の結果が返却されてきます。 scope :sea…

Sqaleがサービス終了するとのことです

PaaSとして柔軟に利用していたGMOペパボのサービスであるSqaleですが、終了するとのこと。 【サービス終了のお知らせ】 | Sqale Information 安価であったため、結構使い勝手がよく、ちょこちょこ利用させてもらっていたんですが、rubyのバージョンアップに…

iBatis で LIKE 文を使うときの注意点

はじめに…SQLインジェクション発生! 現在対応中の案件で、なぜか iBtais の利用が指定されている案件があるのですが、ここでSQLインジェクションを発生させてしまったので、自戒として記載します。 iBatis の動的パラメータ受け渡し iBtaisには # と \$ が用…

コード整形のために積極的に利用したい拡張機能 CodeMaid

Visual Studio でのコーディング時の悩み C# での開発を行っていると、Visual Studio がいろいろな機能を持っていてデフォルトでもかなり使いやすいと感じています。(atom での開発と比較して) しかしながら、atom のパッケージで実現できていた機能で、Visu…

Zabbix3.0系における、各種OS毎の Zabbix-agent のインストール方法 (CentOS6系・CentOS7系・Ubuntu系・Windows系)

Zabbix3.0系は安定版 www.zabbix.com 上記のサイトを見ていただければわかるのですが、Zabbix3.0系はフルサポートの期限が2019/2、リミテッドサポートが2021/2となっており、現状の最新安定版となっています。 Zabbix社は1年半ごとにLTS(長期サポート: Long …

DELL サーバ系の Alert! Cover Was Previously removed. エラー

サーバにエラーが!! 今日はLinuxサーバを準備しようと思い、転がっているサーバを適当に選定して、HDDやらメモリやらを載っけて準備していました。 いざ準備ができたんで、起動してみると、見慣れないエラーが。 Alert! FRONT_FAN failure... Alert! Cover W…

require する際の指定文字列が大文字/小文字で挙動が変わる? → Macの大文字小文字区別の問題でした

ローカル環境で問題なく実行されたコードが別の環境でうまく動作しない 私の開発環境はMacなのですが、そこで以下のように記載したコードを作成しました。 require 'CSV' 自分のローカル環境での単体テストが問題なく終了したため、Linuxの実行環境で上記の…

rails_admin と devise を導入したプロジェクトで、root_path と rails_admin_path が異なる場合のログアウト遷移先設定方法

前提 rails_admin devise 困っていたこと 一般向けサイトと管理サイトを作成し、管理サイトのみ devise でログイン処理を作成しました。 プロジェクト自体の root_path は一般向けサイトを指定したのですが、そうすると、管理サイトからログアウトした際に r…

複数選択可能なチェックボックスやリストボックスで選択された内容を一つのカラムに保存する方法

前提 Rails 4系 haml 4.0系 どういう場面で使うか 入力画面で複数チェックボックスやリストボックスを表示するのは以下のようにかけます。(例としてリストボックス) = m.select :answer, [['ア', 'ア'], ['イ', 'イ'], ['ウ', 'ウ'], ['エ', 'エ']], {}, { m…

rails_admin 導入時の 管理サイトタイトル変更方法

rails_admin を導入してカスタマイズ rails アプリケーションを作成していて、管理サイトがほしい、と言われることが結構あります。 あんまりこだわりがないお客様の場合、rails_admin を導入することが多いです。 rails で良く利用されている管理画面の gem…

simple_form を利用している時にsubmit ボタンにボタン名と value をセットする方法

前提 導入gem simple_form haml 普通の書き方だと、ボタン名が value の値になってしまう 通常、submit ボタンは以下のように記載すると思います。 = f.button :submit, 'ボタン名' { name: "#{f.object_name}[completed]", value: '1', class: 'btn btn-pri…

simple_form と bootstrap を利用した環境で f.collection_select をどう書くか

前提 rails 4系 simple_form 3.2.1 bootstrap-sass 3.3.7 そのままだと(非bootstrap になる) 通常、collection_selectは以下のように記載しています。 = f.collection_select :option_id, OptionMaster.all, :id, :option_name, { prompt: true, class: 'for…

ruby において pry を利用している際に、binding.pry を強制的に停止する方法

ちょっと知らなかったので、小ネタですがご紹介。 pry を利用している場合、 ソースコード中に binding.pry と記載することで、記載した場所でデバッグが可能です。 これをループ中に利用し、どのように値が変わっていくかをチェックすることがあるのではな…

ActiveRecord から取得した1レコードから配列を作成する

例として、option_mastersというテーブルが存在していた場合 # # Table name: option_masters # # id :integer not null, primary key # option_name :string # option1 :string # option2 :string # option3 :string # option4 :string # option5 :string #…

Visual Studio でのリファクタリングに効果的な幾つかのショートカット

対象 Visual Studio 2015 Visual Studio には機能がたくさん たくさんありすぎて、使い始めの人間には到底把握することができません。 使いこなすことができれば、生産性が格段に高くなるのでしょうが、学習コストも高いです。 自分が必要としていることを少…

C\# と Visual Studio による開発に着手

ほぼ初学者 仕事でC#のデスクトップ・アプリケーションに取り組まなくてはならなくなりました。 2年前くらいに1ヶ月ほど同じような仕事を行ったのですが、すでに遠い記憶の果て。。 ほぼ蓄積なし、一からの対応をしています。 C# のよさ それはそれとして、C…

rails でログイン認証されていない場合にログイン画面へ遷移させる方法(と、Active Admin を利用して管理画面を作成する際に除外する方法)

ログイン認証チェックを全画面に対応させる ./app/controllers/application_controller.rb に以下の様な形で認証チェックを入れます。 # ./app/controllers/application_controller.rb class ApplicationController < ActionController::Base before_action …