DesignAssembler

備忘録に近い

Androidでtesseractを使う(準備)

前回の続きです。 時代の流れにようやく乗ってEclipseからAndroid Studioに乗り換えました。 いろいろまごついて1日かかりました。。。 このStackOverflowを参考にしました。 stackoverflow.com 流れ Android Studioで新しいプロジェクトを作成(TessPractice…

Androidでtesseractを使う(ビルド)

ここを参考にtesseractをAndroid Studioにインクルードして使おうとしました。 qiita.com tess-twoをビルドするのにまずandroid ndkが必要になります。 以下のサイトからandroid ndkの最新版(11b)をダウンロード http://developer.android.com/intl/ja/ndk/d…

c++でtesseract

この前のtesseractの続きです。 hyottokoaloha.hatenablog.com tesseractにはapiが用意されています。これをc++で使ってみます。 失敗 このサイトを見て始めました。 Tesseract-OCRの導入(その2)Visual Studio2013でのAPIの利用 | 株式会社インデペンデンス…

RubyのThread

Thread 文字通りマルチスレッドを実現します。 RubyのThreadの使い方は、以下のブロックに実行したいコードを入れるだけです。 Thread.new do end 速度計測 まずはシングルスレッド #bench1.rb 1000000.times do |i| 2 ** 10000 end $ time ruby bench1.rb r…

openstruct

ここを見ていてopenstructが出てきて分からなかったので調べました。 kenn.hatenablog.com OpenStruct OpenStructはRubyの標準ライブラリで、ハッシュのような機能を持つデータ構造を提供しています。 OpenStructクラスから作成したオブジェクトをレシーバに…

2月読んだ本

総評:面白かった

ActiveRecord::Relation

データベース操作の時に使う便利なメソッドが実装されています。 find_each 1000件ずつレコードを取得してfindします。 findはそのテーブルの全レコードをメモリに広げるので、例えば10万レコードのDBにfindするとマシンがフリーズする可能性がかなり大きく…

Rubyのfailメソッド

github.com ActiveJob::Executionのperformメソッド見たらfailというメソッドがありました。 failメソッド fail (Kernel) - APIdock module function Kernel.#fail (Ruby 2.1.0) failメソッドはKernelメソッドで、例外を発生させるメソッドのようです。 確認…

RailsでのCSRF対策避け

railsでガリガリjsでajaxの実装してるとPOSTした時CSRFのエラーが出ます。 Can't verify CSRF token authenticity 解決方法ググると「CSRF対策をオフにすれば動くようになる」と書いてある記事が多かったですが、それでは根本的な解決ではありません。 CSRF…

tesseractを使う

tesseractはOCRツールです。 つまり、画像から文字を読み取ります。 tesseractのインストール github.com brewで提供されているのでbrewからインストール $ brew install tesseract 簡単。 tesseractを使う 書式は以下のとおり tesseract imagename outputba…

OpenCVで顔検出

カスケード分類器というものを使って入力した画像から顔を検出します。 カスケード分類器 カスケードとは、連続したもの、数珠繋ぎになったものを意味します。 カスケード分類器は、いくつかの特徴量をまとめた学習データです。 ここでの顔検出の流れは、 入…

omniauthについて

omniauthはoauth認証をrubyで使えるようにするgemです。 github.com OAuth あらかじめ信頼関係を構築したサービス間で ユーザの同意のもとに セキュアにユーザの権限を受け渡しする つまり、自作のwebアプリケーションのアカウントをTwitterやFacebookなどの…

今日見た島

アルカトラズ島

DB設計指南3、4、5章

3章論理設計と正規化 テーブル名は英語ならば複数形/複数名詞で書ける。そうでなければそのテーブルにはどこか間違いがあります。 テーブルの構成要素 キー 以下の2つが特に重要です 1. 主キー 2. 外部キー 主キー 主キー、またはプライマルキーと呼びます。…

今日食べたもの

カニ

文字コード設定してるのにIEだけ文字化けする

phpでページ書いてる時IEだけ文字化けすることがままありました。 この時自分がした解決方法です。 解決法 <meta charset="UTF-8">を<title>の上に持っていく IEさんはページを読み込む時始めに見つけた文字コードをそのページの文字コードと認識します。(IEのデフォルトはshift-jis) なの</title></meta>…

実践ハイパフォーマンスMySQL1章

MySQLのアーキテクチャと歴史 最適化 MySQLはクエリを解析して内部構造(解析ツリー)を作成する。 クエリの実行に必要な情報をオプティマイザに渡してなるべく効率化する。 トランザクション トランザクションは、1つの作業単位としてアトミックに扱われるSQL…

RailsでRedis使う

Redisとは、KVS(Key-Value-Store)型のデータベースの事で、保存のデータ構造がキーバリュー式になっています。 また、全てのデータセットをメモリに読み込むので非常に高速です。 まず適当なrailsアプリケーションを作ります。 ※redisがPCに入っていることが…

Railsでインデックスを張る

先日のこの記事にDBのカラムにインデックス設計について書きました。 hyottokoaloha.hatenablog.com 今回は具体的にRailsでインデックスを張ります。 $ rails g migration AddIndexToUser これで以下のファイルが作成されます。 #db/migrate/20160229095843_…

respond_to?とself_respond_to?の違い

respond_to? respond_to?メソッドはレシーバが使用可能なメソッドを調べるメソッドです。 これはRubyのビルトインメソッドです。 obj.respond_to?(name, private = false) class Respond def hello puts "hello" end end > Respond.new.respond_to?(:hello) …

MySQLのバックアップ

バックアップについて バックアップの基本分類 バックアップの分類には以下の3種類があります フルバックアップ 差分バックアップ 増分バックアップ フルバックアップ ある時点でそのシステムで保存されている全てのデータをバックアップする方式です。 欠点…

【gem】gem in a box

gem

geminaboxはgemホスト手軽に作れるようになるgemです。 geminaboxを使う geminaboxをインストールした後適当なディレクトリを作成してconfig.ruを作成します。 $ gem install geminabox $ mkdir -p geminabox_repo/data #config.ru require "rubygems" requi…

attr_internalについて

attr_internal_*はActiveSupportの機能で、名前衝突のリスクを回避してくれる機能です。 実際の機能はRubyのアクセサメソッドと同じです。 アクセサメソッドについては以下に書いています。 hyottokoaloha.hatenablog.com あるクラスを継承したサブクラスを…

【gem】FactoryGirl

gem

FactoryGirlはRailsのgemで、テストデータの作成をしてくれます。 テストアプリケーションはdeviseを使ってユーザー登録できるようにしてます。 Gemfileに以下を記述してください #Gemfile group :development, :test do gem 'factory_girl_rails' end 以下…

boot.rb

bundlerの読み込みと設定を担当しているファイルであり、Railsの起動時(コンソールやサーバー)に実行されます。 中身はこうなっています。 ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) require 'bundler/setup' # Set up gems l…

【gem】awesome_print

gem

hirbと同じ、コンソールを見やすくするgemです。 hyottokoaloha.hatenablog.com 導入 Gemfileに以下を追加します #Gemfile group :development, :test do gem 'awesome_print' end これでbundle installします。 次に、~/.irbrcを作成します。 #~/.irbrc req…

【gem】hirb

gem

railsで使えるhirbというgemの紹介です。 ざっくり言うと、ActiveRecordの結果が見やすくなります。 before after 見やすいです。 手順 Gemfileに以下を記述します #Gemfile group :development, :test do gem 'hirb' gem 'hirb-unicode' end これでbundle i…

インデックス設計

インデックスは、データベースにおける索引で、目的の情報を見つけやすくしてくれます。 インデックスの性質 アプリケーション透過性 データ透過性 アプリケーション透過性 非正規化→正規化は大きな変更が必要だが、インデックスはインデックスを追加するだ…

今日食べたもの

とんこつラーメン

rake db:resetとrake db:migrate:reset

タイトルの2つのrakeコマンドについてです。 どちらもdbを一旦dropします。 rake db:resetはまずdropしてそのあとschema.rbに従ってdbを再構築します。 それに対し、rake db:migrate:resetはdropしたあとマイグレーションファイルを読み込んでschema.rbを更…