ナガモト の blog

Full Cycle Developerを目指すエンジニアが有用そうな技術記事や、ポエムのようなよしなしごとを投稿するブログです。

技術

MacにPlantUML + Visual Studio Codeでモデリング環境構築(OpenJDK version)

以前PlantUML + Visual Studio Codeでモデリングする環境構築の記事を書きました。 ngmt83.hatenablog.com 先月新しいパソコンに同様の環境構築をしようとして詰まったので、異なる方法をメモとして残しておきます。 なお、これらの事項については先述の過去…

Python3系でスクレイピングするコンテナ構築

簡単なアプリを作るためにスクレイピングする必要があり、勉強がてらコンテナ上にPythonを使って構築しました。 Yahoo!ニューストップのaタグのリンク先URLを出力するサンプルをGitHubにアップロードしています。 docker-sample/scraping at master · nagamo…

Metabaseで個人情報を保護しながらデータ分析

データ分析ってとても重要ですよね、ツールを使ってデータ・ドリブンに質の高いPDCAを回していきたいものです。 とはいえ、個人情報へのアクセスを管理・制限できなければBIツールは導入できないといった話はよく聞きます。 私が直接聞いたのは、「プライバ…

Visual Studio CodeからDockerで作ったコンテナ内を操作する

少し前までは、Dockerで開発環境を作る場合 「ホストマシンとコンテナのディレクトリやファイルをsyncさせてコンテナに反映されるのを待ってから動作確認。」 みたいな煩わしさがありましたが、今ではほぼストレスなくコンテナに変更を加えることができます…

Dlibで顔認識できるDockerコンテナを作る

ngmt83.hatenablog.com Pythonに学ばされたこと、DockerでDlibの環境構築をしたこと、Falconの実装例なども近いうちに記事にしたいと思います。 こちらの記事に予告*1していた通り、Dockerコンテナ上でDlib(特にface_recognition)を使うための環境構築の記事…

Ruby on Rails でDB構造を扱うRidgepole gemにコントリビュートしました

業務でよくお世話になっているRidgepoleというgemにPRを出してマージされたので、その経緯を書き残しておきます。 コントリビュータの証 Distinguish same foreign key constraint on multiple columns by nagamoto · Pull Request #278 · winebarrel/ridgep…

Railsアプリのマスターデータ管理 Seed Fu ベタープラクティス

Railsアプリ開発におけるマスターデータの扱い方は大きく次の3つです。 標準機能のseedを利用する migrationを利用する その他 選択肢で言うとその他になりますが、私は複数の現場で導入してきたのSeed FuというGemをおすすめしています。この記事ではSeed F…

AngularアプリにJsBarcodeでバーコードを表示する

↓先日投稿した記事↓の続きです。 ngmt83.hatenablog.com AngularでJsBarcodeというモジュールを使う方法を紹介します。 github.com AngularからJsBarcodeを使用する方法(基本) GitHub - lindell/JsBarcode: Barcode generation library written in JavaScrip…

Railsアプリ開発におけるテスト戦略 〜オレオレベタープラクティス〜

いきなりですが、戦術・戦略という言葉を正しく理解していますか?大雑把でもいいのでどう違うのか、どちらがより抽象度が高く・具体性が低いのか理解しておきましょう。 ざっくり言うと、戦略は大局的な目的や方策のことであり、戦術は戦略を実現するための…

Angularアプリにバーコードを表示する ~package選定編~

先日次のような記事を書きました。 ngmt83.hatenablog.com 今度はQRではなく1次元バーコードの表示をすることになりました。やりたいことはシンプルですが「Angular + barcode」という情報があまり揃っていなかったため、技術選定に少しだけ苦労しました。 …

「MySQLがこわれた」ときに諦めてクリーンインストールする方法

先日開発端末にインストールしていたMySQLが起動しなくなりました。 (実際には壊れた原因に心当たりはあり、簡単に元に戻すのが難しいということがわかっていました) 対応として今回はMySQLをクリーンインストールする方針をとりました。何をどうやって入れ…

「何もしていないのにMySQLが壊れた」ときにとりあえずやること

なぜか分からないが、システムエンジニアに好評だ!ぱちょこん<イラスト:店長 里一磨> https://t.co/mGkqPfgvtdminne pic.twitter.com/dE8HHkVm7g— ekotロボ (@ekot_ROBOT) June 19, 2017 ※可愛いTシャツですが本題とはあまり関係ないです 先日開発端末に…

「QRコード完全に理解した」ので要点まとめ

QRコード非常に便利ですよね。しかし、便利かつ適度にブラックボックス化されているがために理解が乏しいまま使っていないでしょうか。 私は先日「QRコード完全に理解した」ので、エンジニアとしてQRコードを使う上で知っておきたいことをまとめました。 表…

GlideでRubyKaigi2019の非公式アプリ作ってみた

4/17 追記 Glideでアプリを作って得た知見をQiitaにも投稿しています。 https://qiita.com//ngmt83/items/5581a177d13540237623 つい先日話題になったGlide – amazing apps without codeでアプリを作ってみたので、作成の流れとGlideの使用感をお伝えします…

新機能に用いるAPI作成の技術選定の流れ ~Python製Framework Falconを選ぶまで~

API作成の技術選定の流れを要件を踏まえた上で、複数のPython製Framework(以下FW)の特徴にざっくり触れつつ、どういった観点でFalconを選択したかを書きます。 まずは要件やチーム状況の確認からです。 要件・チーム状況 画像解析を行うため機械学習ライブラ…

最も汎用的なパターン「完全コンストラクタ(Complete Constructor)パターン」の紹介

好きなパターンはなんですか?と聞かれたら私が真っ先に答えるのは「完全コンストラクタ(Complete Constructor)パターン」です。汎用的かつ効果的なパターンなので、多くの人に知ってもらいたくて記事を書きました。 「完全コンストラクタ(Complete Construc…

Node.js環境のクリーンアップとfnmの再導入

ngmt83.hatenablog.com に記載した対策「Node.js環境のクリーンアップとfnmの再導入」の手順を記事に残しておきます。 前提 グローバルにNode.jsがインストール済み Node.jsのバージョン管理ツールを導入したことがある(n, nvm, nodebrew, fnmなど) グローバ…

Node.jsを用いた開発環境におけるパッケージアップデート不全の調査

最近Node.jsを用いるローカルの開発環境を整えていました。そのときにパッケージがアップデートできない問題に遭遇し少々ハマりました。そのため、未来の自分のためにも備忘録的に対応の手順を書き残しておきます。 環境 シェルはfish シェルのプラグインマ…

簡単なChrome拡張機能(Extension)のmanifest.jsonの書き方

先日Chrome拡張機能をリリースしました。 chrome.google.com かなり単純で作成も簡単だったのですが、拡張機能作成において唯一独特なmanifest.jsonについて解説します。今回はわかりやすさのために最小限の構成で解説します。 ※実際に作って理解するのもお…

npm modulesに自身で変更したforkを設定する

背景 上記のとおり、自身のポートフォリオで使用しているCSS Frameworkの新versionがリリース*1されたので、喜び勇んでアップデートしていました。 すると本番ビルド時にWARNINGが発生しており、スタイルが思ったように適用されないようになったため、独自に…

FLEXBOX FROGGYが超COOLでflexboxの勉強が捗ったので推したい

HTML, CSSに疎く、特にレイアウト周りの勉強をしたいと思っていたところ、 yoshitaku-jp.hatenablog.com こちらでFLEXBOX FROGGYというサイトが紹介されていたのでやってみました。 flexboxfroggy.com FLEXBOX FROGGYの紹介は前述の記事で十分で、記事を書く…

Ruby on Railsで状態を扱うStatefulEnum gem

Railsでステータス管理したいなら https://t.co/uP5W7eFsU4 がシンプルで、コードも読める量でおすすめです #omotesandorb— 神速 (@sinsoku_listy) 2019年2月7日 StatefulEnumというgemを紹介されたので使ってみました。他のgemと比較して違いや使い心地も伝…

「Railsでモデルのステータスを扱うベタープラクティス」というLTしてきました

omotesandorb.connpass.com こちらでLTしてきました。資料は↓こちら↓ speakerdeck.com LTに至る経緯など書いていきたいと思います。 LTに至る経緯 非常に単純な理由です。ステータス管理で何度も困ってきたからです! また、ブログで取り上げていたものがLT…

Ruby on Railsで状態を扱うAASM gem

github.com 上記のAASMというgemを使用して状態遷移を扱う方法を紹介します。 gem導入 Gemfileに下記の通り記述し、 gem 'aasm' bundlerでインストールしましょう。 bundle install 使い方 例 下記のようなSNSのUserモデルを例に実装します。 リポジトリはこ…

PlantUML + Visual Studio Codeでモデリング環境構築

当記事ではPlantUMLを利用してモデリングを行うための環境構築をします。 PlantUMLとは PlantUMLはオープンソースのUMLダイアグラム作成用のテキストベースの言語である。*1 そもそもUMLとは 統一モデリング言語(とういつモデリングげんご、UML、英: Unifie…

claspでGoogle Apps Scriptを開発する際のappsscript.jsonのベターな設定方法

claspでブログKPI収集スクリプトを開発する際にappsscript.jsonの書き方でハマったので、記事にしました。 appsscript.jsonとは? 要約するとGASの実行環境に関する設定を記述したjsonファイルです。詳しくは公式docに書いてあります。 developers.google.co…

Angularでタブを実装

先日リリースしたngmt83に改善を加えました。まずはどう変わったのかをご確認ください。 before -> after skillがすべて一覧表示になって少々見にくかったので、タブで切り替えられるようにしました。まずまず見やすくなったと思います。 どう実現したか 「A…

AngularとFlex-LayoutとNES.cssで愉快にポートフォリオ作成

「年もあけたことだし、いい加減ポートフォリオ作ろう!」と思い立ち、ポートフォリオを作成しました。 ngmt83 当記事はポートフォリオ作成の際にどのように技術選定をし、デプロイ環境を整えたかを記します。 技術選定 まず、ポートフォリオをどういった技…

Angular 環境をDockerで作成

先日自分のポートフォリオとしてサイトを作成を始めたところ、nodeやangular/cliのversionが上がっており、version管理でつまづいてしまいました。 nodebrewやnvmを用いてversion管理してもいいのですが、全く汚染されない環境を使いたいと思い、DockerでAng…

ADVENTARのフィルタリングブックマークレット作りました

もうすぐ12月ですね、そうアドベントカレンダーの季節です ブログを1ヶ月サボった私が言うのもなんですが、ぜひ書きましょう アドベントカレンダーはこちらで探すことができます adventar.org ※Qiitaにもあるし、自分で作ってもいい ただ少し、カレンダーの…