プログラミングについての記事

ライブラリのインストールとアンインストール
No image
Pythonの仮想環境「venv」で必要なライブラリをインストールしたりアンインストールしたりする方法について書いていく。 pipが使えるかどうか確認 直接指定してインストール pip install ライブラリ名で必要なライブラリをインストールできる。 インストール済みのライブラリを確認 pip listで確認できる。 .venv/lib/python3.8/site-pac ...
Pythonの仮想環境「venv」
No image
Pythonの仮想環境「venv」を作成→起動→無効化する方法をまとめる。 コマンド入力 仮想環境を作成したいディレクトリで、 以下のコマンドを入力する。 エラー発生 macで行うと、2系のpythonを使用してしまい、 エラーが出た。 エラー解決 python3を明示すると、エラーなく仮想環境がインストールできた。 仮想環境を起動 以下のコマンドで仮想環境を起動した。 インタ ...
FastAPIの「Hello World」を動かす
No image
ChatGPTに相談しながら、今週足りなかったFastAPIについての知識を補強していく。 やらざるを得ない環境に身を置いていることに感謝して。 環境 Pythonは3.12.2だった。pythonコマンドでバージョンを確認して、exitと打った後に案内にしたがって、Ctrl-Dを押してプロンプト状態に戻した。 python -m venv venvで仮想環境を作成した。 ディ ...
これから自分が学ぶべき技術は、山のようにあるかもしれない
No image
でも、そのときに気をつけたいのは、恐怖をモチベーションにしないということだ。 ある程度は、「恐怖」や「不安」の感情をベースにしてもいいかもしれない。 けれど、それだけに頼ってはいけない。 好奇心やワクワクする気持ちを大切にしながら、プログラミングスキルの勉強を続けていくほうが、長い目で見て確実に力になるだろう。 そうでなければ、続かないし、やりがいもなくなってしまい、つまらない ...
シンプルなように見えて、中身は複雑
No image
私たちがブラックボックス的に使っているものって、実は「シンプルそうに見えて、めちゃくちゃ複雑」なものが多い。 例えば、以下のYouTubeで作っている投稿編集画面。 ユーザーからすると直感的で簡単そうに見える。 でも、Reactなどのいろんな技術が組み合わさって動いている。 今、自分が取り組んでいる搬送システムもそう。 見た目は単純で、「倉庫にある商品を、A地点からB地点に運ぶ ...
AGV(Automated Guided Vehecle)
No image
次の職場で、AGVに指示を出す、WCS(Warehouse Controll System)の別工場仕向けの開発に携わる。 ファミマで、AGVを見かけたので、記事を書いている。 ファミマにあったAGV 工場のAGVは、用途が違うとは思うが、上記のようにものを運ぶのがAGV。 WCSとAGVの関係 以下のソースコードを作成した。 実行すると、以下のようになる。
postgresqlをHomebrewでインストールしようとしたらエラーが発生した
No image
エラーの内容 Homebrewのhomebrew-coreリポジトリが「shallow clone(浅いクローン)」であるため、更新やインストールができない状態。以下の太字部分がそれに該当する。 もう一つのエラーが以下の太字部分。brew側のフォーミュラ情報とシステムのタグが噛み合っていない可能性がある。 エラー文でおすすめされた解決コマンドを実行 brew updateをする ...
モジュール間の循環参照(circular import)のエラーについて
No image
先週のPythonETLの作成で、以下のようなエラーが発生した。 この記事では、このエラーを再現させて、モジュール間のやり取りについての理解を深めていきたい。 サンプルの作成 モジュール間のやり取りに関するエラーを発生させたいので、以下のサンプルファイルを作成した。 main.pyは実行ファイル。module_a.pyからMyClassを読み込んで、そのインスタンス生成を行って ...
現在の日時から20日前の日時を生成する
No image
PentahoETLのPython化において、取得元のフォルダから最終更新日時が20日前のファイルのみを抽出する必要があった。 理由は、3万くらいのファイルがあり、すべて取得してしまうと処理が重くなってしまうから。 その20日という期間を日時型で生成して、ファイル取得のインスタンス生成時にコンストラクタ引数として渡す必要があった。 「20日という期間を日時型で生成」という部分に ...
ReactでDjango REST frameworkのバックエンドAPIと連携してタスク一覧を表示させる
No image
【フロントエンドとの連携】CORS設定でフロントエンドからAPIを呼び出せるようにするでフロントエンドとの連携に必要なCORS設定を行った。 今回はReactを使用して、DRFとの連携を行い、最終的にはタスク一覧をReactの開発環境で表示させる。 viteを使ってReactプロジェクトを作成 vite(ヴィート)は、ReactやVueのフロントエンド開発で使われる高速なビルド ...
【エラー解決】GET http://localhost:5173/src/components/TaskList.js?t=1742020997344 net::ERR_ABORTED 404 (Not Found)
No image
こちらのエラーを解決していこう。 これは、vite(ヴィート)がTaskList.jsを探しているが見つからないというエラー。 .tsxファイルの拡張子が.jsファイルとして解釈されている? ViteはTypeScriptプロジェクトを使用していると、デフォルトでは.tsxを.jsに変換して扱う。 しかし、ファイルのインポート時に拡張子を指定しないと、正しく変換できない場合があ ...
【エラー解決】Parsing error: Unexpected token <
No image
以下のjsでeslintのエラーが発生していた。 こちらを解決していこう。 エラー内容 「Parsing error: Unexpected token <」というエラー。 TaskList.jsの16行目で発生している。 API_URLで指定したエンドポイントがJSONを返しているか 以下のURLがJSONを返しているかどうかを確認する。 HTMLを返していると、JSX ...
リモートとの差分を確認する
No image
現在、MacBookで作業をしている。 以前、iMacで作業した時に、react_todoというプロジェクトをリモートに作成した。そして、TaskList.jsをTaskList.tsxに変更した。 MacBookでは反映されていなかった。そのことによるエラーが発生していた。 リモートの状態 リモートでは、TaskList.tsxが存在している。TaskList.jsが残ってい ...
テキストファイルから特定の文字列が入った行を抽出する
No image
仕事でいくつかテーマがあって、そのPentahoETL処理のログから、目的のテーマのログを抽出する必要があった。 Pythonで実現予定なので、記事を書いていく。 テキストファイルの用意 ChatGPTにお願いして、1000行のなかにJapanが含まれるテキストファイルを生成してもらった。 テキストはこちら。japanが10個ランダムと指示したはずだが、64個入っていた。 ro ...
react_todoディレクトリでnpm installを行った
No image
ディレクトリ移動とnpm install WARNの嵐 164個のパッケージをインストール完了! パッケージ名を直接指定してインストール WARNは途中省略した。
完全に自分に最適化されたお金の管理アプリを作成する
No image
Googleスプレッドシートを使ってお金を管理している。 しかし、だんだん管理しなくなってきた。 レシートを毎回入力するのとかがめんどくさい。 目的を見失っている感覚もある。 そこでこの記事では、自分に最適化されたお金の管理アプリの仕様を作成していこう。 実現方法はGoogleスプレッドシートでもDjangoでも構わない。 個人プロジェクトであれば簡単に上流工程を経験できる。 ...
タスク管理アプリを作っていく
No image
PythonのDjangoでWEBアプリ開発を行いたい。 そこでまずは、タスク管理アプリを作成していく。 記事ベースで進めていくので、見届けて欲しい。 アプリのコンセプト 以下の2点が達成できればいい(今回は) Djangoプロジェクトを準備する WEBアプリを作るのに必要なPython製フレームワークのDjangoを使用していく。 pythonの仮想環境はvenvを準備してあ ...
Pythonで作る「FizzBuzz」
No image
みなさんは「FizzBuzz」をご存知だろうか? 3の倍数の時は「Fizz」、5の倍数の時は「Buzz」、15の倍数の時は「FizzBuzz」と出力するやつだ。 前提として、1~100まで出力する。 今回はそんな「FizzBuzz」をPythonで作成してみたので、ソースコードの解説をしていきたい。 まずは単純出力 for文とrangeの知識を試すコードを書いた。 こちらを実行 ...
pythonで作った「買い物リスト作成アプリ」について解説
No image
ChatGPTの力もお借りして、コンソール上で動く「買い物リスト作成アプリ」を作成したので、見ていただきたい。 アプリの動作について ざっくりとこのアプリの動作についてお話しすると、起動して指定した場所にある買い物リストのテキストを読み込む。そして、買い物リストの内容を表示する。その後に、追加、削除、終了の3択をユーザーに選んでもらう。 追加の場合、買い物リストに商品を追加する ...
Pythonとポケモンとオブジェクト指向
No image
誰でもエンジニアさんの動画でオブジェクト指向について分かりやすく解説していたものがあった。 使用している言語はPythonで、プログラム内容はポケモンの対戦シーン。 オブジェクト指向のポイント 呼び出し元の処理を楽にするというのがポイント。 今回の例で言うと、ポケモンの内容はポケモンクラスにまとめて書くことで、呼び出し元ではポケモンクラスのインスタンスを生成して、使いたいメソッ ...
今後のプログラマー人生において重要な意識5点
だれでもエンジニアさんの動画が、今後のプログラマー人生において非常に参考になったので、記事を書いていく。 プログラミングという抽象度で学ぶ Ruby、Python、Java、Cなどプログラミング言語はたくさんある。 しかし、根本的な部分は似通っている。 上から順番に処理が流れていって、データを目的の形にしていったりするだけだ。 if文で条件分岐させたり、for文で繰り返し処理を ...
テストケースを考える – 単体テスト仕様書作成の挑戦と気づき
今回は、Pythonで開発したETLプロセスの単体テスト仕様書を作成する中で感じた課題や、新たに学んだテスト手法について記録する。テストケース作成の進め方や、それを支える生活習慣や心構えについても触れる。自分の成長と今後のキャリアを見据えた目標に向け、試行錯誤を続ける日々だ。 テストケース作成の難しさ 現在、PythonのETL処理の単体テスト仕様書を作成しているが、テストケー ...
herokuでマイグレーションする方法
現在、herokuにアップしているRailsアプリの一覧画面で起こっているエラー。 postsテーブルがないというエラーメッセージが表示されていたことから、エラーの原因は本番環境でマイグレーションしてないことと推察された。 マイグレーションとは マイグレーションファイルに記載の内容をデータベースに反映させること。 ローカルでは、rails db:migrateというコマンドでマ ...
本番環境のlogを確認してエラーを解決していく①
作成中のRailsアプリケーション「Money-app」の一覧ページにアクセスしたときに、エラーが発生している。 本番環境はHeroku。 log 打ったコマンド heroku logs -a 「Heroku環境にアップしたアプリ名」というコマンドを打った。 これで、アプリのログを出力できる。 トップページは問題なかった 上記のログでは、HomeControllerのtopアク ...
Herokuコマンドを実行するには?
公開したRailsアプリケーションで以下のエラーが起こっているので、解決を試みてググっていると、Herokuコマンドでログを確認できるとの記述があった。 heroku logs -tをどこに打てばいいのか? 以下のようなコマンドをどこに打てばいいのか分からなかった。 開発環境にあるRailsプロジェクトのディレクトリで打ち込んでも、zsh: command not fount: ...
テーブルにデータを追加する
現状、以下のようなエラーが発生している。 エラーの分析 以下のエラーは、空のクラスに対して、eachというメソッドは定義されていないという意味。 nilとは、存在しないという意味。 @postsの定義箇所 コントローラーで以下のように定義している。postsテーブルからすべてのレコードを取得したものが、インスタンス変数の@postに入っている。 rails cで対話型モードを起 ...
PostsControllerのindexアクションの疎通確認
app/controllers/posts_controller.rb にindexアクションがある。そこで、render plain: “OK”と入力した。 ブラウザ ブラウザの表示は以下のようになった。 render plain: “”の解説 render plain: “OK”とすれば、ブラウザにOK ...
indexページに遷移するときに発生しているエラーの原因
money appのindexページで以下のエラーが発生している。 「ログを確認してください」とのことなので、ログを確認してみた。 ログを確認してみる 検証ツールを開くと以下のエラーが出ていた。 500エラーの原因のひとつに、ソースコードの記述が正しくないことが挙げられる。 index.html.erbの記述に誤りがある 以下のようにeach文で投稿内容を表示させているが、@p ...
git cloneで去年作成していた「money app」をインストールした
去年、お金を管理するアプリをRuby On Railsで作ろうとしていた。 最近、Progateでgitの復習をしているので、今回、github上にある「money app」のソースコードで、gitの機能をあれこれと試してみたいと思った。 github上にある「money app」 まずはフォルダを作ってターミナルを開く money appというフォルダを作成した。 ここで疑問 ...
辞書の値を更新する方法
辞書の値を更新するには、キーの値を取り出す記述を左辺に、右辺に更新したい値を記述すればいい。 下記の例では、pref_listという辞書が入ったリスト(1~5行目)を用意した。for文で、辞書を一つずつ取り出して、prefに代入している(7行目)。pref[‘e_name’]で、e_nameの値が取り出せる(8行目の左辺)。pref[‘e_n ...
Progateの学習項目をスクレイピングして進捗表を作成した
先ほど呟いたように、進捗表作成のために、レッスン項目をスクレイピングしていく。 Pythonでスクレイピングを行う。スクレイピング対象は、Progate道場レッスンの各レッスン。進捗表のタスクに記入するために、WEBページからテキストを一括でもってきたい。これをてさぎょうでやろうとすると、一見一見コピペする必要があり時間がかかる。10件ならいいが、100件あったとしたら・・・ ...
pythonとExcelでWebスクレイピング Part4
前回までの記事で、スクレイピングしたい要素を取得することができた。 今回は、「4 取得した内容をExcelのA2〜A4に出力する」を行う。 取得した内容 当サイトのトップページの記事タイトルを取得することができている。 ExcelのA2〜A4セル 戦略 openpyxlを使用する。 取得した記事タイトルのデータをExcelシートに展開する。 openpyxlを使う ブックを読み ...
pythonとExcelでWebスクレイピング Part1
pythonでWEBスクレイピングを行ってみる。 スクレイピングとは、WEBページにある情報を取ってくること。 スクレイピング対象 当ブログの「最近書いた記事」のタイトルをスクレイピングしてみたい。 フォルダ構成 my_sampleフォルダの配下にエクセルとpythonファイルがある。 必要なライブラリ PythonからHTTP通信を行うのに必要な「Requests」、取得した ...
変数は使うところで宣言する
変数はソースコードの先頭のあたりで宣言することもできる。 しかし、ペアプロ面談にて「変数は使うところで宣言する」ということを学んだ。 そのことについて書いていきたい。 以下のように書く for文の初期化の部分で「int i = 0;」というように、変数の宣言と同時に初期化を行なっている。 この方が先頭あたりで宣言するよりも可読性が高いだろう。 先頭あたりで変数を宣言する場合 以 ...
だれでもエンジニアさんの動画で、SQLのSELECTを学ぶ
SQLは、企業のデータを扱うのに使われるから、身につけておいて損はない。 以下の動画の5:28に飛んでいただきたい。 SQLは大事 複雑になると分からないが、コツを理解すると一気にわかるようになるそうだ。 アジェンダ 全部、基礎中の基礎である。 基礎ができていないと応用が効かないということで、早速見ていこう。 SELECT FROM kimetsuテーブルからnameとfeat ...
SQLが一本で分かる動画
会社の先輩から教えてもらった、データベースの「SQL」が一本で分かる動画を紹介する。 1時間近くある動画だが、これで基礎は全て分かるだろう。 動画を見た時のメモを記事として残しておく。 このブログはシリーズものになるだろう。 SQLとは データは大事。企業活動などをする上で。 amazonの購入データなどもデータ。 それを扱うのがSQL。 追加、更新、削除などができる。 データ ...
Do whileループで無限ループ発生
Excel VBAの学習をしていたら、無限ループが発生した。 この記事では、無限ループが発生するまでの過程と、その解決方法について書いていく。 前提 こちらのサイトからダウンロードしたファイルに対して、以下のような処理を書いていた。 E11が2018/10/31だった場合に、C11からH11をL8からQ8にコピーするという処理。 E11はこちら。 C11からH11はこちら。 L ...
Excel VBAのIf文の使い方
Excel VBAでIf文をどのように使えばいいのかについて書いていく。 If文とは、条件分岐のことだ。 「もし、〜なら、〜する」のような構文がIf文。 「もし、雨が降っていたら、傘を持っていく」と同じ構文だ。 それでは早速見ていこう。 基本 まずは、Excel VBAのIF文のお作法を学ぼう。 こちらのサイトで、基本的なIF文の使い方が学べた。 以下のように、「If 条件 T ...
マクロの記録と記録したマクロのコードの確認を行った
Excel VBAの基礎は、すらすら分かるシリーズで、一年前に学んでいる。 基礎ができていても応用が出来なければ、スキルとしてアピールすることが出来ない。 今の仕事でもマクロを使って効率化できる部分があるかもしれない。 ネット上に落ちている情報を使って、マクロを使っていく。 ちなみに、マクロとVBAは同じ意味なのか? その辺についても書いていきたい。 それでは早速始めていこう。 ...
googleスプレッドシートで、現在のセルよりも上にあって、値が入っているセルの一番下の値を取得する方法
今日が2023年4月24日で、貯金額が10,000円で、 2日後の26日に8,000円の支出予定があるとします。 C4セルで10,000 – 8,000を行い貯金額の予測を出すには、 以下のように直接セルを指定して(C4セル)計算式を入力する方法もありますが、 計算式(上の例では、C4セル)よりも上にあって、空白ではないセルのうち一番下のセル(上の例では、C2セル) ...
標準APIについて学びました
プロになるJavaという本でJavaの学習を進めています。 前回は、メソッド・変数・型などの学習を行いました。 今回は、標準APIについて学習していき、学習ブログを書いていきます。 標準APIとは APIとは、Application Programing Interfaceの略で、機能をまとめて他のプログラムから呼び出せるようにした部品です。 現在の時刻を取得する java.t ...
IntelliJ IDEAを使ってみた
プロになるJavaという本でJavaの学習を進めています。 前回は、本についての内容などを書きました。 今回は、Javaの開発環境であるIntelliJ IDEAを使ってみたというテーマで学習ブログを書いていきます。 IntelliJ IDEAとは 書籍で紹介されていたIDEです。IDEとは、Integrated Development Environmentの略で、統合開発環 ...
googleスプレッドシートで、初歩的なスクレイピングを試してみた
スクレイピングとは、WEBサイトの情報を引っ張ってくることです。 googleスプレッドシートの「IMPORTXML関数」を使えば、スクレイピングができるみたいなので、やってみました。 今回スクレイピングする情報 私の個人サイトのプロフィール欄にある名前を引っ張ってきて、googleスプレッドシートに記入したいと思います。 全体の流れ googleスプレッドシートとサイトを開く ...
vercelを使用してNext.jsをデプロイする
こちらの記事でNext.jsをセットアップして、ローカル環境で起動しました。 今回は、Vercelを使用してデプロイを行なっていきます。 しまぶーさんが出してくれていた動画を参考にします。 デプロイするサイト ローカル環境で作成した、Next.jsのセットアップ画面をデプロイしていきます。 Vercelのアカウントを作成する 公式サイトの「Sign Up 画面」から、GitHu ...
Google Chartsの円グラフに投票できる例
こちらの参考書のchapter7の内容です。 以下のように、Google Chartsの円グラフが表示されていて、表のボタンを押すと数字が増えて、グラフも連動して変化するようになっています。 動作環境 vue.jsのバージョンは、2.5.17です。 全体の流れ 先ほどのサンプルを作成するときの全体の流れはこちらです。 Google Chartsを用意する まずは、google ...
Djangoの開発用サーバーを立ち上げてみた
Pythonのフレームワーク「Django(ジャンゴ)」について書いていきます。 今後、WEBエンジニアとして活躍していくのに、WEBアプリケーションを一人で作成できる知識が必要だと思ったので、こちらの本を購入しました。 この記事では、Djangoをインストールして、Djangoの雛形をローカル開発環境で確認するまでの過程を記録していきます。 Djangoをインストールする ま ...
Nuxt.jsをインストールしてみた
vue.jsのフレームワーク「Nuxt.js」をインストールしてみました。 最終的には、スタートページが表示されましたが、 なかなかスムーズにインストールが進まなかったので、その過程も書いていきます。 公式サイトのドキュメント 公式サイトのインストールページにインストールに必要な情報がまとまっていました。 インストールに必要なもの npmでインストールしようとしたら上手くいかな ...
TypeScript 学習 part6
こちらの本でTypeScriptの学習を進めています。 前回は、Hit&Blowにバリデーションを追加しました。今回は、その続きです。 コミット履歴はこちら 行ったこと never型 getAnswerLengthというプライベートメソッドに、never型を追加しました。 型エイリアスの使用 モードをModeに代入することで、繰り返し使用できるようにしました。後で変更す ...