7839

雑草魂エンジニアブログ

技術

【Nuxt】Excelファイルを読み込む(vue-js-xlsx)

Excelファイルのデータをアップロードして、DBに登録する処理をしたいと思い、Nuxt.jsでExcelファイルを読み込むことができるようにしたので、備忘録として残しておく。 Nuxt.js:v2.15.8 Nuxt Buefy:v0.4.7 vue-js-xlsx:v0.0.2 vue-js-xlsx インストール …

【Ruby】cairoで画像作成を実装する(画像にスタンプと文字を追加する)

Railsアプリケーションにおいて、バックエンド側で以下のような画像作成をしたいと思い、サンプルアプリケーションを作ってみたので備忘録として残しておく。 ラジオ体操のスタンプみたいw Ruby : v3.1.2 Ruby on Rails : v7.0.3.1 Ruby/Railsでどのライブラ…

「アジャイルサムライー達人開発者への道」を読んで

新しい開発チームに変わり、会社の大先輩のシステム開発手法のバイブルになっているとオススメされた本書。アジャイル開発の言葉や定義は理解していたものの、本質をあまり理解できていなかったので、お盆休みに手に取って読んでみたので感想も含めて備忘録…

Macのターミナル設定「Starship」導入

Macのセットアップの際に、ターミナルが初期設定のままでは味気ないので、設定を変更したので備忘録として残しておく。 ターミナルではなく、iTerm2を使う選択肢もあったが、コーディングの際にはVSCodeを使って、VSCode内のTerminalを開いて使うことが多く…

【Docker】node_module の volume 設定に関して(Rails / ruby,node環境)

RailsのDocker開発環境を構築している際に、node_module の volume 設定が上手くいかず、改めて Docker について調べた内容を備忘録として残しておく。 結論:Dockerfile, docker-compose.ymlの設定 コンテナ内のnode_modulesが消える ホスト側のnode_module…

【AWS】API Gatewayをリバースプロキシサーバーとして使用する

とあるAPIを別ドメインのURLで使用したいという話があり、試験的にAPI Gatewayをただ単にリバースプロキシサーバーとして使用してみたので、備忘録として残しておく。 概要 Amazon API Gatewayとは システム構成 APIの作成 カスタムドメイン名の設定 カスタ…

【AWS】Route 53をDNSサービスとして使用するサブドメインの作成

Amazon Route 53にてドメインを管理している状態で、ドメインを管理しているアカウントとは別のアカウントでサブドメインを作成し、ACMにてSSL証明書を発行したい場合、あれ?どうやるんだったけ?と忘れることがあるので、備忘録として残しておく。 概要 サ…

【Rails】Faraday2.0を使う

Railsアプリケーションで外部APIを使う場合に、導入していた Faraday。v1からv2にアップデートしており、保守性を考慮して少し仕様が変わっていた。Faradayの使い方を備忘録として残しておく。 Ruby:v3.0.1 Ruby on Rails : v6.1.3.2 Faraday : v2.3.0 Fara…

Windows10のWSL2上のUbuntu20.04でCH340 USBシリアルモジュールを操作する

Windows10のWSL2上のUbuntu20.04で、USBシリアルモジュールを操作しようとした際に、少し手間取ったので備忘録として残しておく。 CH340とは WSL2 + Ubuntu-20.04インストール usbipd-win インストールおよび設定 動作試験 まとめ CH340とは CH340は中国の南…

【Rails】ControllerからRakeタスクを実行する

バックエンド側で定期実行しているRakeタスクをフロントエンド側から任意のタイミングで実行したくなった。そのために、RailsアプリケーションのControllerからRakeタスクを実行する方法を検討したので備忘録として残しておく。 Ruby:v3.0.1 Ruby on Rails …

【Rails】camelCase⇆snake_caseの変換

今回は久しぶりのRailsアプリケーション開発。 社内の一部業務の自動化のために簡単なアプリケーションを前任者から引継ぎ、一部改良を行った。構成はバックエンドがRuby on Railsで、フロントエンドがNuxt.jsの構成だ。 インターフェースとしてAPIを実装す…

入出力と周辺装置

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 ようやく最後の章になった。 CPUは様々な周辺装置と情報やりとりをしながら処理を進めている。CPUと周辺装置の情報交換のやり方についてまとめていく。…

アウトオブオーダ処理

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 アウトオブオーダ処理とは インオーダ実行 / インオーダ完了 インオーダ実行 / アウトオブオーダ完了 アウトオブオーダ実行 / インオーダ完了 アウトオ…

並列処理(2)静的最適化

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 コンピューターの性能向上には、並列処理が必要不可欠である。前回に引き続き、静的最適化に関してまとめていく。静的最適化(static optimization)と…

並列処理(1)

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 コンピューターの性能向上には、並列処理が必要不可欠である。今回は並列処理に関してまとめていく。 命令レベル並列処理 並列処理パイプライン VLIW(…

「UNIXという考え方」から学ぶUNIX

UNIXに興味を持ち、「UNIXという考え方ーその設計思想と哲学(オーム社)」を読んだので備忘録として残しておく。 UNIXの思想と哲学 まとめ 関連書籍 UNIXの思想と哲学 小さいものは美しい。Small is beautiful. 一つのプログラムには一つのことをうまくやら…

オペレーティングシステム(OS)UNIX / Linux

MacOS XはFreeBSDベースという話を聞いて、FreeBSDとは?と疑問に思ったので、調べたことを備忘録として残しておく。 オペレーティングシステム(OS)とは UNIXとは UNIXの種類 System V 系 BSD 系 Linuxとは Linuxのディストリビューション まとめ オペレー…

【Linux】ファイルシステム(Ext4)・Macでfuse-ext2によるアクセス

とあるLinuxの組み込みシステムを扱う際に、SDカードが通常と異なり「ext4」であった。ファイルシステムに関して、調べた内容を備忘録として残しておく。 ファイルシステムとは フォーマット(初期化)とは ファイルシステムの種類 FAT NTFS HFS+ APFS XFS e…

【Rails】devise_token_authでToken認証を実装する

結構前にやったことであるが、Rails6でAPIを作成した際に、認証機能を簡単に実装できるdevise_token_authを使ってToken認証機能を実装したので備忘録として残しておく。 実行環境 Ruby : 3.0.1 Ruby on Rails : 6.1.5 devise_token_auth : 1.2.0 rack-cors :…

【Arduino】ウォッチドッグタイマー(WDT)

Arduino Unoで死活監視のために、ウォッチドッグタイマー(WDT)を実装したので備忘録として残しておく。 ウォッチドッグタイマー(WDT)とは ATmega328P avr/wdt.h ライブラリ 実装例 まとめ ウォッチドッグタイマー(WDT)とは ウォッチドッグタイマー(Wa…

仮想記憶(仮想メモリ)

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 前回は、キャッシュメモリに焦点を当てた。今回は、仮想記憶についてまとめていく。 仮想記憶(仮想メモリ)とは 仮想記憶の構成 ページテーブルによる…

【Arduino】DMX512制御

DMX512制御をArduinoで実装してみたので、備忘録を残しておく。 DMX512とは DMX Shield for Arduino オンボードジャンパの設定 ライブラリ DMX Shield for Arduino の実装 DMX Master Sample Code DMX Slave Sample Code まとめ DMX512とは DMX512、通称「DM…

記憶階層・キャッシュ

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 これまでパイプラインなどを通して制御の流れに着目してきた。今回は記憶装置であるメモリに焦点を当てる。 命令パイプラインとメモリ 記憶階層 局所性…

ビット演算

マイコンのレジスタ操作などをC/C++で行おうと思った場合には、ビット演算が必須となる。ビット演算は論理演算であることを理解していたものの、実際にどのように使うのか理解できていなかったので、今回備忘録として残しておく。 ビットとは ビット演算 AND…

パイプライン処理2

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 前回に引き続き、パイプラン処理についてまとめていく。今回は、データハザードと制御ハザードに対して、どのように対応すべきか確認する。 フォワーデ…

パイプライン処理1

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 これまで上記のような制御ブロック図で一つの命令がどのように実行されるかを考えてきた。今回は、複数の命令を少しずつずらして同時並行的に実行する…

アドレシング・エンディアン

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 アドレシング(addressing)とは、データや命令が格納されている場所(アドレス)を特定することである。典型的には、命令からメモリの番地(アドレス…

サブルーチン(関数、手続き)2

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 前回に引き続き、サブルーチン(関数、手続き)についてまとめていく。 サブルーチンが入れ子になっている場合 例題)再帰型手続のコンパイル 手続きフ…

サブルーチン(関数、手続き)1

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 今回は、サブルーチン(関数、手続き)の定義と呼出しの機能によって、プログラムに構造性とモジュール性を持たせる、サブルーチンを実現するための機…

命令セットアーキテクチャ

現在、CSの勉強のために、コンピュータアーキテクチャ (電子情報通信レクチャーシリーズ)を読んでいる。 今回は、コンピュータの命令はどのように作られるのか、命令の作り方を確認していく。また、アセンブリ言語との対応関係も確認していく。 命令セット(…