kansiho's memo

ruby, python, javascript. Rails, wordpress, OpenCV, heroku...

Djangoでユーザーモデルに対してOneToOneで関連したProfileモデルに向けてフォームを作る

最近RailsプロジェクトをDjangoに書き換えました。 理由は、 Ruby熟練者のコードが読みにくいことがある Djangoの方が詰まった時、フレームワーク自体の元コードの確認がしやすく感じた Railsよりもファイル構成がわかりやすく感じた(各モデルごとに、DB構…

[つくれぽ]使用しているパーシャルテンプレートをビューに表示してくれるgemをつくりました

初めてgemを作りました。 公開1日で300人のダウンロードがあり、なかなか達成感がありました。 とても簡単なので、是非是非railsユーザでgemを作ったことのない方は試して見てください。 作ったgemは、current_template という、現在表示しているテンプレー…

【Rails5】Doorkeeper gemでOAuth2.0のためのAPIを作って、rubyクライアントで呼び出す

DooerkeeperはOAuth 2のプロバイダ(認証する側のサーバー)を簡単に実装できるgemです。 意外とハマったので書いておきます! Doorkeeper gemをインストール github.com #Gemfile gem 'doorkeeper' gem 'doorkeeper-i18n' # default localeを en 以外で使う…

cookieとsessionとセッションハイジャック

前提 cookieとは何か セッションとは何か セッションハイジャック セッションIDの推測 セッションIDの盗難 セッションID固定化攻撃 じぶんのcookieを確認する 前提 HTTPはステートレス(=ステートがない)プロトコル. 一気に与えられた情報に対して返却する…

D3.jsによるデータビジュアライゼーション-樹形図(d3-hierarchy・Treeview)まとめ

インストール d3.tree() tree(root) tree.size( [width, height] ) tree.nodeSize( [width, height] ) サンプルコード データ可視化ライブラリD3jsの中でも, 階層的なデータの表現を扱う, d3-hierarchyモジュールの中の樹形図を表現するTreeAPIについてまと…

Rails5でメールを送る前にlocalhost:3000でプレビューする方法

すっかり, txt形式ではなくhtml形式の綺麗なメールマガジンが主流になりましたね. html形式だと受け取り側の開封確認も受信側からできますから便利なんでしょう. というわけで私もメールテンプレートを購入し, 作って見たのですが, あれ, どうやってこれ確認…

Dribbbleとかpinterestを1日3hダラダラ見る私の思う最近のウェブデザインのトレンド

トレンドだなあと思うこと: でかいタイポグラフィー 写真のクオリティが高い ミニマル・cleanなデザインで, 面積あたりの情報がすくない 文字を減らしアイコンに. アプリっぽい操作感 拡散型シャドウによる奥行き感 強めのコントラスト Apple 風のグラデー…

LocalStorageがcookieより便利な件

LocalStorageは javascriptを用いてクライアント側にデータをKey-Value型で保存する仕組みです. cookieの弱いところを克服して使いやすくもなった, 技術的後継という位置づけらしいです(*1). cookie のようにすべてのリクエストに対してデータを自動で送信し…

Rails5でturbolinksをオフにする時に気をつけること

iframeで呼び出したRailsアプリケーションで、ドキュメント読み込み後に発火するjavascriptメソッドが動かないということがありましたので、turbolinks切っちゃおうと思い実行したメモ書きです。 Rails5.0.0以降では、 gem 'turbolinks'と //= require turbo…

よくつかう正規表現

正規表現は、ある文字の並び(文字列)を表現する一つの方式です。正規表現はそもそも、人の神経系がどのように機能しているかの研究において開発され、UNIX の中心的な考案者 Ken Thompson によってコンピュータでの検索アルゴリズムに組み込まれたことから…

fasttextを利用しPythonでTwitterやwikiから大量にデータをダウンロードしてニューラルネットで学習する

メモ書き程度。 ailaby.com で概要を把握して、 apps.twitter.com でアクセストークンを作成して、 初めて作る場合は携帯電話番号を登録しないといけないので、 support.twitter.com に沿って携帯電話番号を認証して、 github.com のOAuthライブラリを提供し…

文章類似度判定アルゴリズムとrubyでの実装例(1)n-gram, Jaccard Similarity

n-gram n-gramは、フランス語や日本語や大阪弁といった、人が自然に使う言語「自然言語」で記述された文章の特徴を定量的に分析するために開発された手法。「N文字インデックス法」ともいう。 ある文章の中に、ある文字の並びが何回出現したか、をカウントす…

ルータはどうやってルーティングテーブルを作っているのか - AS(Autonomous System)と経路制御プロトコル

AS とはなにか インターネットに繋がる、ルーティングポリシー配下にあるIPネットワークやルータの集合のことをインターネットにおける自律システム (autonomous system) といい、ASと略します。それぞれの縄張りには「AS番号」と呼ばれる識別番号が付与され…

ネットワークのプロトコルまとめ【TCP/UDP/ARP/ICMP/DHCP/DNS/HTTP】

院試の勉強でネットワークを勉強したまとめです。ネットワークの「通信規約」=プロトコルについてまとめています。 OSI (Open Systems Interconnection)参照モデル インターネットプロトコルにおける 5 層のスタックモデル TCP(Transmission Control Prot…

はじめてのグラフの描画 - D3.js を利用してDOM操作・棒グラフを作成してみる

D3.jsはとても便利なグラフ用ライブラリです。データに応じたDOM要素の扱いがとても簡単にできます。 導入 CDNが利用可能です。 <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script> チュートリアルは D3 入門 | スコット・マレイ | alignedleft が大変わかりやすいです。以下はこのチュートリアルに沿っていま…

Pythonで初めてのOpenCV【キャニーエッジ検出, 円形の検出, 顔の検出】

以下の文章は kansiho.hatenablog.com の記事の続きで、 Canny Edge Detection — OpenCV-Python Tutorials 1 documentation の和訳が中心です。 画像の勾配について エッジ検出のために、輝度の勾配を使います。これについては、 qiita.com の「edgeの検出」…

Pythonで初めてのOpenCV【導入〜画像の読み込み・保存・画像への文字書き込み】

OpenCVを入れる 私の場合はpython 2.7環境構築済みだったので以下のコマンドだけで brew tap homebrew/science brew install opencv このように、pythonインタプリタでimportしてもエラーが出ない状態になりました。 それでは触っていきます。以下の説明は、…

wordpressに独自のユーザープロフィール項目を追加<textarea形式/input形式>し、既定の項目を削除する

wordpress のユーザープロフィールに新しい項目を追加したいとき、 それをテキストフィールドとしてインラインのフォームで表示する方法はたくさん載っているけれど、 テキストエリア形式にするにはどうしたらいいんだろうか、ということを調べましたのでま…

OAuthの仕組みとchrome拡張機能への利用

OAuthとは? 「facebookの自分のアカウントを今使っているサービスと連携したいと考えている花子」を例に出すと, facebookに花子が登録した情報や投稿、花子がアクセス権限を持つ各種機能(facebookの友達の情報を見たり投稿を読む)に対し、 花子の許可を受…

Rails5 user_idじゃなくてusernameでusers#show

twitter.com/kansiho みたいな感じでuser nameでusers#showにつなげたいときありますよね。 config/routes.rb Rails.application.routes.draw do get '/:username' => 'users#show', :constrain => { :username => /[a-zA-Z-]+/ } end このとき、最終行に書…

Rails5でDeviseにプロフィール画像項目を追加するときのTips

gemを入れる deviseはインストールされている前提で進めます。 gem 'devise' # 以下、追加 gem 'carrierwave' gem 'mini_magick' uploaderを作る $ rails g uploader Avatar avatar_uploader.rb で, include Carrierwave::MiniMagick をコメントアウトして有…

WebSocketとはなにか

WebSocket(ウェブソケット)は、コンピュータ・ネットワーク用の通信規格の1つ。 XMLHttpRequest(いわゆるAjax)の欠点を解決する技術として開発された。Ajaxの弱点というのは、クライアントからサーバーに通信できても、サーバーからクライアントに通信を行…

【Rails5】ActionCableリアルタイムチャットを実装。

Action Cableは、 WebSocketとRailsのその他の部分をシームレスに統合するためのものです。Action Cable が導入されたことで、Rails アプリケーションの効率の良さとスケーラビリティを損なわずに、通常のRailsアプリケーションと同じスタイル・方法でリアル…

Ruby on Railsユーザ向け速習CoffeScript + vim のシンタックス設定

Ruby on Railsの生みの親であるDHHが、次期バージョンのRails3.1でjQueryやSCSSと合わせて、CoffeeScriptをデフォルトとして採用するとTwitter上で発言して注目を集めた. Rubyist, Pythonia にはとっても馴染みやすいので, 手っ取り早くこれを頭に入れておけ…

RailsではじめてのVue.js :サンプルコード

Vue.js とは Vue.jsはMVVMと呼ばれる設計パターンを採用しているフレームワークです。MVVMフレームワークではModel、View、 ViewModel の3つでアプリケーションを構築します。このシリーズでは、設計パターンに関するややこしい話については触れません。双方…

全然Windows開発したことのない人がVisual StudioでVisual C++でHello Worldやる時に読むといいまとめ(超基本)

Visual Studio とはmicrosoft の統合開発環境である。今回はMacに入れたwindows でVisual StudioからC++でコードを書くという初めての試みの3乗をやるので、念のためブログに調べたことを書いておく。ちなみに私は今までターミナルのvimでRailsアプリを作る…

Macしか使ったことのない人間がBootCampでWindowsを入れてMacライクにする

Windows OSでしか動かないソフトウェア, ハードウェアをどうしても使いたかった。macbook2016 8gbでは、Virtual Boxみたいな仮想環境だと動作が鈍くなりそうだと思い、Mac 標準機能であるBootCampを利用することにした。 なおparacellという選択肢もあったが…

WebSocketとはなにか

WebSocket(ウェブソケット)は、コンピュータ・ネットワーク用の通信規格の1つ。 XMLHttpRequest(いわゆるAjax)の欠点を解決する技術として開発された。Ajaxの弱点というのは、クライアントからサーバーに通信できても、サーバーからクライアントに通信を行…

3Dプリンタから4Dプリンタまで。デジタルファブリケーションについて調べてみた

暦本先生の授業を受けて、気になったので調べてみた。 まずは総務省サイトより引用。 デジタルファブリケーションとは、デジタルデータをもとに創造物を制作する技術のことである。3Dスキャナーや3D CADなどの測定機械により、自分のアイデアや個人の身体デ…

Wordpressで独自のユーザー項目を追加し表示する

ユーザー項目の追加 functions.phpにて、 $wb['フィールド名'] = '表示名'; の規則に従い、追加していく。 // ユーザープロフィールの項目のカスタマイズ function my_user_meta($wb) { //項目の追加 $wb['twitter'] = 'twitter'; $wb['facebook'] = 'facebo…