タグ

ブックマーク / www.yoheim.net (26)

  • [Git] 自分の環境だけgitignoreする方法(2つ) - YoheiM .NET

    こんにちは、@yoheiMuneです。 Gitを使って開発をしていると、時々自分だけgitignoreにしたいファイルができます(例えばエディタのメタファイルとか)。そのようなファイルを、自分の環境からバージョン管理から外す方法をブログに書きたいと思います。 特定のプロジェクトにある指定したファイルを、自分だけgitignoreしたい 掲題のような場合には、.git/info/excludeのファイルにバージョン管理外にしたいファイルを指定します。 # .git/info/exclude my-gitignore-target.txt すると、ファイルをGitレポジトリ上に追加しても、バージョン管理対象外になります。 # ファイルを追加する $ touch my-gitignore-target.txt # しかし、バージョン管理対象に入らない $ git status # On bran

    [Git] 自分の環境だけgitignoreする方法(2つ) - YoheiM .NET
  • [Python] 例外処理のやり方と、スタックトレース取得の実装方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 久しぶりのブログ、書きたいことがいっぱいです。プログラムでエラーが発生した時に重宝されるスタックトレース。Python言語におけるエラーハンドリングの方法と、そこでのスタックトレースの取得方法を、今日はブログに書きたいと思います。 目次 スタックトレースとは スタックトレースは、プログラムで例外が発生した際に、どのように関数が呼び出されたのか、どこでエラーが発生したのか、を特定できる情報です。不具合発生時の原因究明に、重宝されます。例えば以下のプログラムがあるとします。 def a(): """b関数を呼び出す""" b() def b(): """c関数を呼び出す""" c() def c(): """例外が発生する""" char = None char.format('hello') # ここで例外発生 # a関数から呼び出してみる a() こ

    [Python] 例外処理のやり方と、スタックトレース取得の実装方法 - YoheiM .NET
  • [講義] データベース設計の講義資料を公開します - YoheiM .NET

    こんにちは、@yoheiMuneです。 G's ACADEMY TOKYOさんでいくつか講義を担当させていただいているのですが、新しくデータベース設計の講義を行ったので、そのスライドを公開したいと思います。 講義内容 この講義は、初めてプログラミングを学んだ方向けで、卒業制作で作るアプリケーションのデータベース設計ができるようになることを目標にしています。特に論理設計を扱い、アプリケーションで扱うデータ構造を読み解いて理解できるようになります。 論理設計では以下の項目を扱います。 データの理解 エンティティの定義 リレーションシップの定義 データ項目の定義 列の定義 少しでも参考になればと思い、もし気になった方はチラッと見てみて頂けたら嬉しいです。 編集後記 データベース設計についていざ講義を作ろうとするとなかなかアイデアがまとまりませんでした。いつもやっていることをいざ明文化しようとする

    [講義] データベース設計の講義資料を公開します - YoheiM .NET
  • [Python] venvを用いてプロジェクトごとに独立した環境を構築する - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、Python標準のvenvという仮想環境ツールを用いて、プロジェクトごとに独立した環境を作る方法をブログに書きたいと思います。 目次 venvとは venvは、プロジェクトごとにsite-pakcagesを独立して管理できる仮想環境ツールで、Python3.3から公式に組み込まれています。このブログで以前には「pyenvの使い方」や「pyenv-virtualenvの使い方」を紹介しましたが、今回はそれとは別の仮想環境の作り方となります。 僕は、Pythonに幾つかある仮想環境ツールを以下の基準で使い分けています。 pyenv ローカル開発で利用。頻繁にPythonのバージョンとsite-packageを同時に切り替えたいので使ってます。これでanacondaも利用。 venv Python3系の番での環境構築に利用。 virtualenv

    [Python] venvを用いてプロジェクトごとに独立した環境を構築する - YoheiM .NET
  • [Node.js] PM2を用いて本番環境でNodeJSアプリを動かす - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日は、PM2というNode.jsを番環境で起動するための便利なツールを、紹介したいと思います。 目次 PM2とは PM2とは、Node.js製のWebアプリケーションを動かすための仕組みの一つです。例えば、Express4などで作成したアプリ(app.js)を動かしたい場合に普通だと、 $ node app.js として起動しますが、PM2を用いると、 $ pm2 start app.js のような形式でWebサービスを起動することができます。 node app.jsでの起動は非常にシンプルですが、以下のような問題点があります。 基的にはCPU1コアしか使えず、マルチコアに対応するのに手間がかかる ログ出力や状態チェックなど自前で作る必要がある その他、番運用のための細かな手間がある などなど。PM2を用いると、例えばCPUコア数を自動的に考

    [Node.js] PM2を用いて本番環境でNodeJSアプリを動かす - YoheiM .NET
  • [Docker] 公式MySQLイメージを使って、使い捨てのDB環境を構築する - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はDocker Hubで公開されている公式MySQLイメージを使って、ローカル環境にDB環境を構築する方法をブログに書きたいと思います。 目次 イメージの入手 Docker Hubで公開されている公式MySQLイメージからDockerのイメージを入手できます。ここではバージョンにこだわりはないので、latest(執筆時はv5.7)を使いたいと思います。 # MySQL のイメージを Docker Hub から入手します $ docker pull mysql:latest # ダウンロードされたことを確認します $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql latest 7666f75adb6b 3 weeks ago 406 MB これでイメージ入手ができました。 コンテナ

    [Docker] 公式MySQLイメージを使って、使い捨てのDB環境を構築する - YoheiM .NET
  • [NodeJS] npm install を爆速で行うyarnに入門 - YoheiM .NET

    こんにちは、@yoheiMuneです。 Reactなどの案件をしているとnpm install重たいなーと思っていたら、yarnという高速なツールがあることを知りました。今日はそのyarnについてブログを書きたいと思います。 目次 yarnとは yarnとはnpmに代わる依存パッケージ管理ツールの1つで、npmに比べて非常に高速に動作します。yarnの特徴は以下の3つで表されています。 Ultra Fast ローカルPCへのキャッシュや並行ロードなどで速い Mega Secure ダウンロードしたモジュールについて、checksumを確認してからコードを実行する(改ざんされていないことを確認する) Super Reilable yarn.lockファイルなどを用いてどこでも同じ環境を構築できる 僕の React + Babel + Webpack の環境で試してみたところ、npmだと35秒

    [NodeJS] npm install を爆速で行うyarnに入門 - YoheiM .NET
  • [NodeJS] 3点ヒープダンプ法を用いたメモリリークの調査を行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 最近仕事でNodeJSのメモリリーク調査を行うことがあったので、その手順をブログに残しておきたいと思います。 目次 メモリリークとは メモリリークとは、プログラム稼働(サーバー稼働)していて、どんどんとメモリを使ってしまう不具合です。原因としては、ルート(NodeJSの場合はglobal変数、クライアントJSだとwindow変数)から参照できる変数が増えて残り続けることで、GC(ガベージコレクション)でメモリを解放できないことが原因です。詳しくはこちらのブログを参照ください。 メモリリークの調査では「増え続ける変数(=メモリ)は何かを特定する」ことが目的です。 事前準備 メモリリーク調査のために、いくつかの事前準備を行います。 NodeJSのv6.3以上を準備する この記事では、NodeJSの--inspectオプションを利用するために、v.6.3.

    [NodeJS] 3点ヒープダンプ法を用いたメモリリークの調査を行う - YoheiM .NET
    atm_09_td
    atm_09_td 2017/02/10
  • [フロントエンド] Yamlというデータ構造に入門する - YoheiM .NET

    こんにちは、@yoheiMuneです。 JS界隈だとJSONフォーマットが主流ですが、最近はyamlというフォーマットも使うようになりました。今日はYamlについてブログを書きたいと思います。 目次 Yamlとは Yamlとはデータ構造の一つで、JSONやXMLと同じくデータを構造で表現します。例えば以下のような感じです。 # ユーザー定義だよー user: name: Yohei favorites: - Ramen - Tennis 上記のようにYamlではデータ構造をインデントで表現し、また-などの記号を用いて表現します。JSONやXMLに比べて記号が少なく人間にも読みやすいというのがポイントです。またJSONとの違いとして「コメントが書ける」というのも大きなポイントかなと思います。 また、Yamlは古くからある定義のようで、最近だとDockerCircleCIpm2など色々と使

    [フロントエンド] Yamlというデータ構造に入門する - YoheiM .NET
  • [フロントエンド] 表示中のWebサイトで、使われている技術要素をサクッと確認するChromeプラグインが面白い - YoheiM .NET

    [フロントエンド] 表示中のWebサイトで、使われている技術要素をサクッと確認するChromeプラグインが面白い こんにちは、@yoheiMuneです。 最近仕事を一緒にしている方から教えてもらったのですが、Chromeのプラグインで表示しているサイトで使われている技術要素をピックアップしてくれる便利ツールがあったので、それを紹介したいと思います。意外と面白かった。 https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg 目次 Wappalyzerで技術要素を調べる Chromeウェブストアで公開されているWappalyzerをインストールすると、以下のように表示しているサイトの技術要素をみることができます。簡単で便利です。 クライアント側はなんやかんやでわかるかもしれません

    [フロントエンド] 表示中のWebサイトで、使われている技術要素をサクッと確認するChromeプラグインが面白い - YoheiM .NET
  • [Javascript] イベント駆動型の設計ができるEventEmitterに入門 - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はNodeJSやフロントJSで利用可能な、EventEmitterを使った、イベント駆動な実装方法をブログに書きたいと思います。 目次 記事を試すための環境 この記事の内容は、nodejsで動作します。新し目のバージョンでお試しください(僕の環境ではv6.2.2で動作確認しています)。 また、BabelでフロントエンドビルドやWebpackフロントエンドビルドを使えば、フロントエンドでもEventEmitterを利用可能です(いくつかのプロジェクトで利用されているのを見かけたことがあります)。 EventEmitterとは EventEmitterは直訳の通り、イベントを発火することができる機能で、主に「イベントを発火する人」と「イベントを受け取る人」の大きく2つに使い方が分かれます。具体的には、 イベントを発火する人 関数名 説明 という感

    [Javascript] イベント駆動型の設計ができるEventEmitterに入門 - YoheiM .NET
  • [フロントエンド] Webページで編集した内容をJavascriptから動的にダウンロードする - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はWebページで色々と編集した内容について、Javascriptを用いてその内容を動的にダウンロードする方法をブログに書きたいと思います。 目次 デモ こんな感じです。以下のテキストエリア内に書いた内容について、ボタンを押すとテキストファイルとしてダウンロードすることができます。 テキストファイルとしてダウンロードする Javascriptから動的にダウンロードする実装方法 上記の実装は以下のように行うことができます。 HTML <textarea id="content"></textarea><br> <button id="download">テキストファイルとしてダウンロードする</button> Javascript // クリック時の動作を指定する var btn = document.getElementById('download

    [フロントエンド] Webページで編集した内容をJavascriptから動的にダウンロードする - YoheiM .NET
  • [Node] nvmをインストールして、ログイン時に有効になる設定も行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はLinuxにnvmを導入する方法と、Linuxログイン時にnvmがデフォルトで有効になる設定をブログに書きたいと思います。 目次 nvmのインストールとNodeJSの導入 nvmのインストール手順は以下のように行います。 gitのインストール 大体はgitコマンドが入っていると思いますが、ない場合にはインストールしておきます。 $ yum install -y git そして以下で使えることを確認できればOKです。 $ git --version git version 1.7.1 nvmのインストール 続いてnvmのインストールを行います。nvmはGitのレポジトリをクローンすることで導入できます。ここでは/opt/nvmにインストールします。 $ git clone git://github.com/creationix/nvm.git /

    [Node] nvmをインストールして、ログイン時に有効になる設定も行う - YoheiM .NET
  • [HTML5] autocomplete属性を用いた入力補完を実装する - YoheiM .NET

    こんにちは、@yoheiMuneです。 久しぶりのフロントエンドネタ。input要素についてautocomplete属性を使うと簡単に入力候補を表示することができます(最近初めて知りました)。それについてブログを書きたいと思います。 目次 Inputタグに対する入力補完 inputタグには色々と要素がありますが、以下のように実装することで入力候補を表示することができます。 実行例 ソースコード <input type="text" autocomplete="on" list="mylist"> <datalist id="mylist"> <option value="渋谷"></option> <option value="新宿"></option> <option value="新橋"></option> <option value="新大阪"></option> <option v

    [HTML5] autocomplete属性を用いた入力補完を実装する - YoheiM .NET
  • [Python] YQL(Yahooファイナンス)を用いて現在の為替レートをAPI経由で取得する - YoheiM .NET

    こんにちは、@yoheiMuneです。 ちょっとしたサービスを作る際に為替レートの取得が必要だったので、調べてみたらYQLという仕組みでとれることがわかったので、ブログに書きたいと思います。 目次 YQLとは YQLとはYahoo Query Languageの略で、SQLライクな言語でWebやYahoo上のデータを取得することができる仕組みです。 The YQL (Yahoo! Query Language) platform enables you to query, filter, and combine data across the web through a single interface. It exposes a SQL-like syntax that is both familiar to developers and expressive enough for ge

    [Python] YQL(Yahooファイナンス)を用いて現在の為替レートをAPI経由で取得する - YoheiM .NET
  • [Git] Stashコマンドを使って、ローカルの変更を一次的に退避する - YoheiM .NET

    こんにちは、Gitと毎日格闘中の@yoheiMuneです。 今日はgit stashコマンドを使って、コミット前の変更内容を一旦退避する方法をブログに書きたいと思います。Gitって色々な機能があって便利だなぁと思う今日この頃です。 目次 git stashの使いどころ git stashコマンドではコミット前の変更内容を一旦退避することができる便利な機能です(前々から知っていたんですが、なかなか使うまでに踏み出せなかった)。そんなコマンドの使用例としては、 新機能をとあるブランチで誠意開発中のところ、既存機能のバグが報告され緊急で治さねばならぬ。そんな時に一旦変更をスタッシュで退避して、別ブランチに移動してバグフィックスをする。 ノリノリで開発していてコミットしようとしたら実は別ブランチで開発していたことに気づく。ブランチ移動しようと思っても変更内容がぶつかるようで移動できない。そんな時は

    [Git] Stashコマンドを使って、ローカルの変更を一次的に退避する - YoheiM .NET
  • [フロントエンド] ローカルプロキシを用いて、本番サイトで開発/デバッグを行う - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はCharlesというローカルプロキシツールを用いて、番サイトで一部ファイルを書き換えて開発やデバッグを行う方法を紹介したいと思います。 目次 ローカルプロキシとは プロキシとはサーバーとの通信内容を見たり変更したりすることができる機能で、ローカルプロキシはそのプロキシを自分のパソコンにインストールしたものを言います。ローカルプロキシを使用することで、(サーバーから取得して)ブラウザに表示する内容を確認したり、改ざんしたりすることができるようになります。 ローカルプロキシを提供するツールは幾つかありますが、今回は僕が業務で使っているCharlesを使いたいと思います(無料版でもかなり使えますが、ヘビーに使う場合には有料版がオススメです)。 Charlesのインストール Charlesのインストールは、以下のCharlesのサイトを参照しながら進

    [フロントエンド] ローカルプロキシを用いて、本番サイトで開発/デバッグを行う - YoheiM .NET
  • [Python] FlaskアプリケーションでCookieを扱う方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 先日、[Python] 軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど)で入門記事を扱いましたが、今回はFlaskでのCookieの扱い方をブログに書きたいと思います。 目次 FlaskでCookieを扱う Flaskではrequestオブジェクトやresponseを通してクッキーを扱うことができます。 Cookieをセットする responseオブジェクトを通してCookieを設定することができます。 # make_responseをインポート from flask import Flask, make_response app = Flask(__name__) @app.route('/') def index(): content = "**レスポンス内容**" # make_respon

    [Python] FlaskアプリケーションでCookieを扱う方法 - YoheiM .NET
  • [Python] 軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど) - YoheiM .NET

    こんにちは、@yoheiMuneです。 今日はPythonのWebフレームワークの1つ、Flaskをブログで書きたいと思います。個人的にも業務でも使っていて、軽量フレームワークでとても簡単に使えます。 目次 Flaskとは Flaskとは、PythonのWebフレームワークの1つです。Webフレームワークでは他にもdjangoがありますが、それに比べて超軽量なところが特長です。数行でWebアプリケーションが作れて、何かを手軽に作るには便利なフレームワークです。ただ、超軽量で自由が効くので、大きなアプリケーションを作ろうとすると、フォルダ構成やクラス設計などなど、決めることが多いです(自分で決めたいという人は嬉しい話ですが)。 Flaskのインストール インストールはpip経由で行うことができます。 $ pip install --upgrade Flask Flaskでハローワールド それ

    [Python] 軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど) - YoheiM .NET
  • [Python] GoogleカレンダーAPIを使って、日本の祝日を取得する - YoheiM .NET

    こんにちは、@yoheiMuneです。 仕事で営業日(=土日祝を除く日)につぶやくボットを作っていまして、そこで祝日取得の方法を色々と検討しました。その中で、Googleカレンダーから祝日を取得する方法が良かったので、ブログに残したいと思います。 目次 GoogleカレンダーのAPI有効化と認証キーの取得 Googleの各種サービスはAPI経由で利用可能です。その有効化とキー取得は[API] Google APIを使う際に、APIを有効化して認証キーを取得する方法でブログを書いたので、そちらをご参照ください。 上記作業の結果、サービスアカウントキーで利用するjsonファイルを入手していればOKです。 祝日を取得するためのカレンダー Googleカレンダーにはいくつか公開されたカレンダーが存在します。その中で、各国の祝日を示すカレンダーが存在します(詳細はカレンダーに祝日の表示を追加 | G

    [Python] GoogleカレンダーAPIを使って、日本の祝日を取得する - YoheiM .NET