紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

プログラミング

【N+1問題対策】Ransackとincludesメソッドを使ってActiveRecordの多段の関連を検索する方法 #Rails5

はじめに N+1問題を解消するために、複数の関連を持つModelをincludesメソッドで解消する方法をメモ。 実行環境 Rails5.2.0 Ransack Slim Model定義 Userに持っている名称と、Corporationに持っている名称を取得したい。 class User < ApplicationRecord has…

【Python+Postgres】'int' object does not support indexingが発生したときの対処法。タプルの要素が1つの場合でもカンマが必要。

はじめに Psycopg2のmogrifyにint型の要素を1つ渡して、エスケープしたSQLを取得しようとしたらエラーになったのでメモ。 環境 AWS Lambda Python3.6 PostgreSQL9.6 発生したエラー "errorMessage": "'int' object does not support indexing", "errorType":…

【Rails5.2.0】ActiveRecord::DangerousAttributeError association is defined by Active Record. が発生したときの対処法 #Rails #ActiveRecord

はじめに Rails5.2.0でアプリケーションを開発中に見慣れないエラーが出たのでメモ。 実行環境 Rails5.2.0 ActiveRecord5.2.0 PostgreSQL 9.6 発生したエラー ActiveRecord::DangerousAttributeError association is defined by Active Record. Check to mak…

【ActiveRecord5.2.0】JoinDependencyのコンストラクタの引数の仕様がいろいろ変わっている事に気づかず、3日くらいハマった話。#Rails #ActiveRecord

はじめに Rails5.1.1で動かしていたプログラムを、Rails5.2.0で動かしたら、JoinDependency.newでエラーが発生した。 いろいろ回り道して調べた結果、ここ3日くらいハマってしまったのでメモ。 発生したエラー wrong number of arguments (given 3, expected…

【VS Code】Failed to start Solargraph: Unable to load the EventMachine C extensionのエラーが出たときの対処方法 #Solargraph

はじめに Visual StudioでSolargraphが動かなくなったので、解決するまでをメモ。 実行環境 Windows10 64bit Pro Vivual Studio Code 1.27.2 Ruby 2.4.4 発生したエラー Failed to start Solargraph: Unable to load the EventMachine C extension; To use t…

【読書】36歳にして初めてリーダブルコードを読んで猛省している件。プログラマはもちろん経営者にも読んで欲しい1冊

はじめに 同僚に薦められて、リーダブルコードを読み始めました。 リーダブルコードとは? わかりやすいプログラムを書くための原理原則が書いてある本です。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practic…

【Python+Psycopg2】PostgreSQLからEXISTSを使ってデータの存在チェックメソッドを作る方法

実行環境 AWS Lambda Python3.6 PostgreSQL9.6.6 psycopg2 やりたいこと existsでデータの有無を確認 結果をBooleanで返却したい 解決方法 fetchone()を使う。公式ドキュメントは以下。 The cursor class — Psycopg 2.7.5 documentation 実装例 def is_exist…

【Python】複数のインデックス番号を指定してリストから一括削除する方法

やりたいこと 複数のインデックス番号を指定して、リストから対象のデータを一度に削除したい 結論 lambda式を使う 困った例 以下だと、削除したいインデックスがずれてしまう。 list = ["りんご","みかん","バナナ","メロン","スイカ"] # りんごとメロンを…

でかドージョーin東京にはじめてメンター参加したらニンジャたちのレベルの高さに衝撃を受けた話 #CoderDojo #DecaDojo

はじめに 2018年7月22日に開催された、でかドージョーin東京にはじめて参加してきました。 いろいろ学ぶことがあったため振り返ります。 参加しようと思ったきっかけ 以下の記事にまとめました。 www.yokoyan.net 会場はサイボウズさん 今回のでかドージョー…

「Scratchをはじめよう」をやってみました。 #Scratch

はじめに ツールバーのヒントをクリックすると出てくる、Scratchをはじめようの学習ログです。 色を変える 見た目をクリックします。 色の効果を25ずつ変えるブロックをドラッグします。 ドラッグしたブロックをクリックすると語に、ネコの色が変われば成功…

【Python3】メソッドの戻り値を複数返す方法

やりたいこと 1つのメソッドで複数の戻り値を返したい 解決策 returnする値をカンマで区切る 文字列と数字を返す例 def hoge(): # 略 return "hoge",123456789 文字列と数字が含まれたリストを返す例 def hoge(): # 略 return ["hoge",123456789] 複数のリス…

【はじめてのScratch】アカウント登録からネコを動かして保存するまでの手順

はじめに 今後、CoderDojyoにメンターとして継続的に参加したいと考えています。 CoderDojyoでは、子ども向けのプログラミング言語Scratchを使うことが多いため、自分でも触ってみることにしました。 Scratchに興味がある方々の参考になれば幸いです。 事前…

DecaDojo(でかドージョー)in Tokyoにメンター参加します #CoderDojo

はじめに 2018年7月22日(日) に開催される「DecaDojo(でかドージョー)」in 東京にメンターとして参加させていただくことになりました。 DecaDojyoとは? CoderDojo(コーダー道場) は7〜17歳の子どもを対象にしたプログラミング道場で、ボランティアで運営さ…

【Python】Scrapyでログを出力する方法

やりたいこと Scrapyで実装した処理の任意の場所にログを追加したい。 環境 Scrapy1.5.0 Python3.6 実現方法 import loggingと、logging.log_level()を使用する。 以下、infoレベルのログ出力の実装例。 import logging # 略 logging.info("hogehoge") 参考…

【Python】flake8指摘事項まとめ

はじめに 最近、Pythonを使ってコードを書きます。まだまだ不慣れなので、flake8を導入してみました。 Rubocopみたいで便利ですね。後学のために指摘された内容をまとめます。 【参考情報】flake8公式 lintlyci.github.io E111 indentation is not a multipl…

【Visual Studio Code】Pythonのコードフォーマッター設定を行う

はじめに Visual Studio CodeでPythonの開発を行う際のコードフォーマット設定を行います。 参考 dev.classmethod.jp 事前準備 Visual Studio Codeの統合ターミナルで以下を実行します。 $ pip install flake8 $ pip install yapf settings.jsonの設定変更 V…

#CoderDojo さいたまにメンターとして初参加してきました

はじめに 5/20に開催されたCoderDojoさいたまにメンターとして参加してきました。 coderdojo-saitama.com 会場の6Fはとってもおしゃれ!! 大宮のコワーキングスペースである7F(ナナエフ)の一つ下の6F(ロクエフ)で開催されました。フリードリンクもあり…

【初挑戦】小・中学生向けのプログラミングクラブにメンター参加します #CoderDojo さいたま

はじめに 年始の目標に掲げていたCoderDojoのメンターに申し込みました。直前の申し込みにもかかわらず、快諾いただいた運営の方々に感謝です。 CoderDojoとは? CoderDojo は7〜17歳の子どもを対象にしたプログラミング道場です。2011年にアイルランドで始…

【Ruby】多重配列の中身を1行ずつ改行して表示したい

はじめに AtCoderの問題をいろいろやっている中で、多重配列について迷ったのでメモ。 やりたいこと 多重配列の中身を1行ずつ改行して表示したい。 実現方法 joinメソッドを使う。 docs.ruby-lang.org 実装例 $ irb 2.4.0 :001 > H,W=3,4 => [3, 4] 2.4.0 :0…

【まずはBeginners Selectionから】35歳だけどAtCoderはじめました #AtCoder

はじめに 育児の合間にAtCoderのBeginners Selectionの問題を少しづつ解いています。 qiita.com やってみた感想 自分のプログラムの書けなさっぷりに衝撃を受けました。 SIerでプロジェクトリーダーやPJ管理の仕事ばかりしていたため、プログラムを書いてき…

【はじめてのあっとこーだー】Ubuntu16.04にVisual Studio Codeとrubyをインストールしてチュートリアル問題やってみた #AtCoder

はじめに Qiitaで見つけた以下の記事が面白そうです。 qiita.com 上記10問を解いて、プログラミングコンテストであるAtcoderのコンテストに参加してみようと思い立ったので、まずは環境構築からチュートリアル問題までやってみます。 Visual Studio Codeの取…

Windows10にVisual Studio Codeをインストールする

Railsの開発のために、MicrosoftのVisual Studio Code(以下、VSCode)を入れます。 VSCodeのメリット IDEと比べると圧倒的に軽い。 インストール手順 Visual Studio Codeから、インストーラをダウンロードする。 インストール 次へをクリック。 デフォルト…

【Ruby】ドットインストールRuby入門(全26回)を完走しました

ドットインストールの学習状況です。 学習中のレッスン Ruby入門 (全26回) 現在の進捗状況 全26回完了。 所要時間 5日間。 − なんだかんだで5〜6時間くらい。 作成したプログラム github.comにて管理しています。 やってみた感想 基礎の基礎から学べるので非…

【Ruby】ドットインストール学習中

ドットインストールの学習状況です。 学習中のレッスン Ruby入門 (全26回) 現在の進捗状況 20章まで完了。 残り6章。 作成したプログラム github.comにて管理しています。 学習の効率化のために ドットインストールの有料オプションに申し込みました。 無料…

【Ruby】ドットインストールでの学習をはじめました

Railsでスラスラ開発できるようにするために、Rubyの基礎を学ぶことにしました。 今の課題 私はRailsチュートリアルでRubyを学んだため、Rubyの基礎に疎いです。 ドットインストールとは? 無料でプログラミングを学習することができる動画サイトです。 ドッ…

【Rails5】Rubyの文字列リテラルはダブルクォーテーションが基本だと思う

開発中のアプリケーション仕様 viewのテンプレートはslimを使用 多言語対応のため、日本語はja.ymlに定義 今日の失敗 Rubyの式展開が文字列としてそのまま展開されてしまった。 = smart_article name: t('title.#{@class_name}_index') view側では、title.#{…

【Rails5】includedをincludeと記載して30分ハマった件について

開発時に猛烈にはまってしまったので自戒のために残します。 発生したエラー ArgumentError (wrong number of arguments (given 0, expected 1+)): 原因 コーディングミス。 includedと記述するべき箇所を、includeと書いてしまっているため。 デバッグ bind…

【Rails5】RuboCopから指摘されたエラーと解決策のまとめ

はじめに はじめてのRailsプロジェクトで作成したプルリクエストで、RuboCopから指摘された事項をまとめます。 RuboCopとは Rubyのコードが「コーディング規約どおりに書かれているか」をチェックする静的コード解析ツールです。 私のようなRails初心者には…

【14章】Ruby on Railsチュートリアル演習まとめ&解答例【14.3 ステータスフィード】

はじめに Ruby on Rails チュートリアル実例を使ってRailsを学ぼう 第4版の 14章 14.3 ステータスフィードの演習まとめ&解答例です。 個人の解答例なので、誤りがあればご指摘ください。 動作環境 cloud9 ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-…

【14章】Ruby on Railsチュートリアル演習まとめ&解答例【14.1 Relationshipモデル】

はじめに Ruby on Rails チュートリアル実例を使ってRailsを学ぼう 第4版の 14章 14.1 Relationshipモデルの演習まとめ&解答例です。 個人の解答例なので、誤りがあればご指摘ください。 動作環境 cloud9 ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-…