前回の続きです。 時代の流れにようやく乗ってEclipseからAndroid Studioに乗り換えました。 いろいろまごついて1日かかりました。。。 このStackOverflowを参考にしました。 stackoverflow.com 流れ Android Studioで新しいプロジェクトを作成(TessPractice…
ここを参考にtesseractをAndroid Studioにインクルードして使おうとしました。 qiita.com tess-twoをビルドするのにまずandroid ndkが必要になります。 以下のサイトからandroid ndkの最新版(11b)をダウンロード http://developer.android.com/intl/ja/ndk/d…
この前のtesseractの続きです。 hyottokoaloha.hatenablog.com tesseractにはapiが用意されています。これをc++で使ってみます。 失敗 このサイトを見て始めました。 Tesseract-OCRの導入(その2)Visual Studio2013でのAPIの利用 | 株式会社インデペンデンス…
Thread 文字通りマルチスレッドを実現します。 RubyのThreadの使い方は、以下のブロックに実行したいコードを入れるだけです。 Thread.new do end 速度計測 まずはシングルスレッド #bench1.rb 1000000.times do |i| 2 ** 10000 end $ time ruby bench1.rb r…
ここを見ていてopenstructが出てきて分からなかったので調べました。 kenn.hatenablog.com OpenStruct OpenStructはRubyの標準ライブラリで、ハッシュのような機能を持つデータ構造を提供しています。 OpenStructクラスから作成したオブジェクトをレシーバに…
総評:面白かった
データベース操作の時に使う便利なメソッドが実装されています。 find_each 1000件ずつレコードを取得してfindします。 findはそのテーブルの全レコードをメモリに広げるので、例えば10万レコードのDBにfindするとマシンがフリーズする可能性がかなり大きく…
github.com ActiveJob::Executionのperformメソッド見たらfailというメソッドがありました。 failメソッド fail (Kernel) - APIdock module function Kernel.#fail (Ruby 2.1.0) failメソッドはKernelメソッドで、例外を発生させるメソッドのようです。 確認…
railsでガリガリjsでajaxの実装してるとPOSTした時CSRFのエラーが出ます。 Can't verify CSRF token authenticity 解決方法ググると「CSRF対策をオフにすれば動くようになる」と書いてある記事が多かったですが、それでは根本的な解決ではありません。 CSRF…
tesseractはOCRツールです。 つまり、画像から文字を読み取ります。 tesseractのインストール github.com brewで提供されているのでbrewからインストール $ brew install tesseract 簡単。 tesseractを使う 書式は以下のとおり tesseract imagename outputba…
カスケード分類器というものを使って入力した画像から顔を検出します。 カスケード分類器 カスケードとは、連続したもの、数珠繋ぎになったものを意味します。 カスケード分類器は、いくつかの特徴量をまとめた学習データです。 ここでの顔検出の流れは、 入…
omniauthはoauth認証をrubyで使えるようにするgemです。 github.com OAuth あらかじめ信頼関係を構築したサービス間で ユーザの同意のもとに セキュアにユーザの権限を受け渡しする つまり、自作のwebアプリケーションのアカウントをTwitterやFacebookなどの…
アルカトラズ島
3章論理設計と正規化 テーブル名は英語ならば複数形/複数名詞で書ける。そうでなければそのテーブルにはどこか間違いがあります。 テーブルの構成要素 キー 以下の2つが特に重要です 1. 主キー 2. 外部キー 主キー 主キー、またはプライマルキーと呼びます。…
カニ
phpでページ書いてる時IEだけ文字化けすることがままありました。 この時自分がした解決方法です。 解決法 <meta charset="UTF-8">を<title>の上に持っていく IEさんはページを読み込む時始めに見つけた文字コードをそのページの文字コードと認識します。(IEのデフォルトはshift-jis) なの</title></meta>…
MySQLのアーキテクチャと歴史 最適化 MySQLはクエリを解析して内部構造(解析ツリー)を作成する。 クエリの実行に必要な情報をオプティマイザに渡してなるべく効率化する。 トランザクション トランザクションは、1つの作業単位としてアトミックに扱われるSQL…
Redisとは、KVS(Key-Value-Store)型のデータベースの事で、保存のデータ構造がキーバリュー式になっています。 また、全てのデータセットをメモリに読み込むので非常に高速です。 まず適当なrailsアプリケーションを作ります。 ※redisがPCに入っていることが…
先日のこの記事にDBのカラムにインデックス設計について書きました。 hyottokoaloha.hatenablog.com 今回は具体的にRailsでインデックスを張ります。 $ rails g migration AddIndexToUser これで以下のファイルが作成されます。 #db/migrate/20160229095843_…
respond_to? respond_to?メソッドはレシーバが使用可能なメソッドを調べるメソッドです。 これはRubyのビルトインメソッドです。 obj.respond_to?(name, private = false) class Respond def hello puts "hello" end end > Respond.new.respond_to?(:hello) …
バックアップについて バックアップの基本分類 バックアップの分類には以下の3種類があります フルバックアップ 差分バックアップ 増分バックアップ フルバックアップ ある時点でそのシステムで保存されている全てのデータをバックアップする方式です。 欠点…
geminaboxはgemホスト手軽に作れるようになるgemです。 geminaboxを使う geminaboxをインストールした後適当なディレクトリを作成してconfig.ruを作成します。 $ gem install geminabox $ mkdir -p geminabox_repo/data #config.ru require "rubygems" requi…
attr_internal_*はActiveSupportの機能で、名前衝突のリスクを回避してくれる機能です。 実際の機能はRubyのアクセサメソッドと同じです。 アクセサメソッドについては以下に書いています。 hyottokoaloha.hatenablog.com あるクラスを継承したサブクラスを…
FactoryGirlはRailsのgemで、テストデータの作成をしてくれます。 テストアプリケーションはdeviseを使ってユーザー登録できるようにしてます。 Gemfileに以下を記述してください #Gemfile group :development, :test do gem 'factory_girl_rails' end 以下…
bundlerの読み込みと設定を担当しているファイルであり、Railsの起動時(コンソールやサーバー)に実行されます。 中身はこうなっています。 ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) require 'bundler/setup' # Set up gems l…
hirbと同じ、コンソールを見やすくするgemです。 hyottokoaloha.hatenablog.com 導入 Gemfileに以下を追加します #Gemfile group :development, :test do gem 'awesome_print' end これでbundle installします。 次に、~/.irbrcを作成します。 #~/.irbrc req…
railsで使えるhirbというgemの紹介です。 ざっくり言うと、ActiveRecordの結果が見やすくなります。 before after 見やすいです。 手順 Gemfileに以下を記述します #Gemfile group :development, :test do gem 'hirb' gem 'hirb-unicode' end これでbundle i…
インデックスは、データベースにおける索引で、目的の情報を見つけやすくしてくれます。 インデックスの性質 アプリケーション透過性 データ透過性 アプリケーション透過性 非正規化→正規化は大きな変更が必要だが、インデックスはインデックスを追加するだ…
とんこつラーメン
タイトルの2つのrakeコマンドについてです。 どちらもdbを一旦dropします。 rake db:resetはまずdropしてそのあとschema.rbに従ってdbを再構築します。 それに対し、rake db:migrate:resetはdropしたあとマイグレーションファイルを読み込んでschema.rbを更…