サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
www.tamurasouko.com
SSHで暗号化された通信経路でMySQLの準同期レプリケーションを行うための方法を紹介します。今回使用したMySQLのバージョンは5.5.30です。 1. マスタとスレーブと間でSSH経由で通信ができるようにする レプリケーションの設定に入る前に、マスタDBがあるサーバー(以降、マスタと表記)とそのレプリケーション先のDBがあるサーバー(以降、スレーブと表記)の間の通信がちゃんとできるか確認しましよう。 ------- スレーブでやること ---------- まず、以下のコマンドを実行してSSHポートフォワーディングによってスレーブの10000ポートからマスタの3306ポートにアクセスできるようにします。 ssh -f -N -C -L 10000:localhost:3306 user01@master.tamurasouko.com -p 22 上記のコマンドで下図のようなポートフォ
このメモにはRailsでよく(?)使うけど毎回忘れてしまい、Google検索するところから始めなければならないようなテクニックたちを載せておきます。 redirect_toするときにパラメータを渡す 実は簡単で、遷移先のパスの後ろに括弧書きでパラメータを記述すればできます。 redirect_to users_path(:name => '田村', :age => '7') Assets Pipelineを使っている環境でのCSSにおけるファイルパスの書き方 CSSのbackground-imageプロパティにurlキーワードでファイルパスを指定しますが、RailsではAssets Pipelineを使っていると本番環境ではファイルパスが事前にわかりません。そこでimage-urlというキーワードを使います background-image: image-url("tamurasouko.
開発環境が既に整っていることを前提に、App Storeへのアプリの登録手順を紹介します。 1.App IDの登録 App IDはアプリごとに作成する必要があります。iOS Provisioning Portalに行き、左側にあるメニューから「App IDs」を選択して、右上に表示される「New App ID」を選択します。 次に表示される「Create App ID」画面の項目には以下の内容を入力します。
ActionDispatch::Cookies::CookieOverflowエラー(例外)はセッションに大きすぎるデータ(4KB以上のデータ)を格納しようとしたときに発生します。flashもセッションにデータを格納する仕組みですので、大量のエラーメッセージをflashに格納する場合などは注意が必要です。 このエラーの解決方法は2つあります。1つは極力セッションを使わないこと、または使ったとしても最小限のデータを格納するのにとどめることです。この解決方法が最もスマートだと思います。セッションに大量のデータを格納するような設計には問題があります。 ただ、どうしてもセッションに大量のデータを格納しておきたい、でもCookieOverflowが発生してしまう。そんなときに2つ目の方法としてセッションデータをActiveRecord上に格納する方法があります。このメモではこの方法について解説します
UITextFieldやUITextViewで入力できる最大文字数を指定する方法を紹介します。 UITextFieldの場合 UITextFieldのshouldChangeCharactersInRangeデリゲートメソッドを利用します。このメソッドはファーストレスポンダになっているUITextFieldに1文字でも入力があれば呼び出されます。このメソッド内において入力された文字が最大文字数を超えていないかチェックします。 尚、お決まりですが、このデリゲートメソッドを使用するためにはUITextFieldDelegateプロトコルを当該ViewControllerで採用し、デリゲート先をそのViewControllerにする必要があります。 実装例は以下の通りです。 - (BOOL)textField:(UITextField *)textField shouldChangeCharac
バーコード、QRコード読取りでよく使われるライブラリに「ZBar」があります。 問題 このZBarライブラリですが、iPhone5で動かそうとすると問題が発生します。配布されているZBarのlibzbar.aがarmv7sアーキテクチャを前提にコンパイルされていないため、iPhone5用にアプリをコンパルする際にリンクエラーが発生してしまいます。 リンクエラーの場合、以下のようなエラーメッセージが出力されるはずです。 ld: file is universal (3 slices) but does not contain a(n) armv7s slice: .../libzbar.a for architecture armv7s 解決方法 さてどうしたものかと思い、ネットの海をさまよっていたところ、ZBarライブラリをソースコードからコンパイルしてarmv7sに対応したlibzbar
SSHポートフォワーディング(トンネリング)を利用して、外部サーバーで稼働しているMySQLデータベースに接続する方法を紹介します。 SSHポートフォワーディングとは SSHポートフォワーディングの仕組みがわかってしまえば、今回の話は簡単です。要は上図のように、SSHによって確立された通信経路を利用してクライアントの10000ポートをサーバーの3306ポートにマッピングするわけです。 つまり、このポートフォワーディングが行われているときにクライアントのローカルの10000ポートに接続すれば、サーバーの3306ポートに接続していると変わらないというわけです。 しかも、このとき通信経路はSSHによって暗号化されおり、また接続先のポートがファイアウォール等で閉じられていたとしてもSSHのポートさえ開いていれば利用可能という非常に使い勝手がよい仕組みになっています。 ポートフォワーディングを実行す
UIPickerViewの実装方法はすでにネット上の様々な記事で紹介されていると思いますが、このメモではStoryboardとARCを使用している環境でのUIPickerViewの実装方法をサンプルプログラムを通して紹介します。 サンプルプログラムの動作イメージは以下の動画をご覧ください。 このメモに登場するサンプルプログラムのソースは以下からダウンロードできます。 [サンプルプログラムのソース] 1.Picker View用のView Controllerを用意する Storyboard上でView Controllerを新たに追加し、左図のように、Picker View(参照名:picker)とボタン(参照名:closeButton)を追加します。 そしてPickerViewControllerというクラスファイルを新規作成し、このView Controllerに関連付けます。関連付け
データモデルで多対多の関係を扱うことはけっこう多かったりします。代表的なのが「ブログ記事」エンティティと「タグ」エンティティの関係がそれですね。ブログ記事は複数あり、またその記事には複数のタグが付けられ、かつタグは複数のブログ記事の間で重複して指定できるのでまさに多対多の関係にあるわけです。 今回はメモはそんな多対多のデータをCore Dataフレームワークで扱う方法についてのメモです。Core Dataを使うと多対多のデータ構造が非常に簡単に扱えます。やり方さえ一度覚えてしまえば後は楽ちんです。 データモデル 左図に示すように、ブログ記事を表す「Blog」エンティティと、そのタグを表す「Tag」エンティティがある場合を例にとって解説します。 上記の2つのエンティティはそれぞれリレーションを持っています。BlogエンティティはTagエンティティの要素を複数持つことを表すリレーション「tag
上記のような一画面に基本情報(宛先、住所)と複数の明細情報(物品名、数量)がある画面で入力された情報を親子関係にある基本テーブル(発送テーブル)と明細テーブル(物品テーブル)に同時に登録したい場合が業務アプリではけっこうあると思います。 Railsではこのようなケースに簡単に対応するための便利機能が用意されています。具体的にはモデルでaccepts_nested_attributes_forという設定を、ビューでfield_forメソッドを利用します。この機能を利用すると以下の2つメリットがあるので是非活用することをオススメします。 ソースコードが短くてすむ ⇒ 後述しますが、特にコントローラー側の記述量は激減します。 明細データへのバリデーション結果が画面にキレイに表示できる ⇒ 親子関係をRailsに認識させることで明細データのバリデーション結果を表示するロジックを個別に実装する必要が
RailsではモデルとDBのテーブルが1対1の関係になっていることが多いですが、対応するテーブルはないけどモデルを利用したい、というシーンがあると思います。 特に画面の入力内容が1つのテーブルに対応していない場合によく使われるとおもいます。例えば、CSVファイルの内容をインポートして各テーブルにデータを登録する場合のファイルアップロード画面用でテーブルなしモデルを使うと便利です。 このメモではこの「テーブルなしモデル」する方法を紹介します。 なぜ「テーブルなしモデル」を使うか テーブルなしモデルを利用することで以下の3つのメリットが得られると思います。 ActiveModelの強力なバリデーション機能を使える ⇒ 自分でバリデーションロジックを書かなくて済みます 他のソースコードとの統一性が保てる ⇒ 入力をモデル化することでform_forなどのメソッドが使えるため、テーブルありの場合の
Railsの認証エンジン「Devise」のコントローラをカスタマイズする方法を紹介します。 コントローラファイルの作成 Deviseをインストールしてもそのコントローラは生成されません。Deviseが内部的に持っているコントローラが使用されます。そのため、Deviseのコントローラの挙動を変えたい場合は、そのDeviseのコントローラクラスを継承した独自のコントローラを作成する必要があります。 認証用のモデルを「User」という名前にした場合、app/controllers/usersディレクトリ配下にsessions_controller.rbとregistrations_controller.rbという2つのコントローラファイルを作成します。前者はユーザのログイン/ログアウト機能のコントローラで、後者はユーザ登録機能のコントローラになります。それぞれソースコードは以下のようにします。
www.zaico.co.jp
株式会社サキコーポレーション様 実装基板自動外観検査装置及びX線自動検査装置の開発・製造・販売されている株式会社サキコーポレーションのカスタマーサービス課の城本様と中島様にお話を伺いました。 サキコーポレーションではスマート在庫管理を導入・活用することで「シンプルな在庫管理」「スムーズな情報共有」「素早い意思決定」を実現されました。 続きを読む(ここをクリック) しおさい歯科クリニック様 しおさい歯科クリニック 歯科医師の金井様にお話を伺いました。 しおさい歯科クリニック様は、クラウド在庫管理ソフト「ZAICO」(通称:スマート在庫管理)の導入・活用によりどこでも在庫を確認することができるようになり、医療品の欠品と不必要な注文を回避することができるようになりました。さらには、ZAICO上の購買履歴データからまとめ買いの判断が出来るようになりました。 続きを読む(ここをクリック) 株式会社ズ
このページを最初にブックマークしてみませんか?
『株式会社田村倉庫 - 保管・流通加工・発送からネット通販サポートまで』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く