プログラミング

Capistranoによるデプロイで発生したgithub接続エラーを解決する

リモートサーバにrailsアプリケーションをCapistranoでデプロイしようとしていました。 Capistranoによるデプロイの流れはザックリとこんな感じです。 自分の端末からcap production deploy を実行する。 デプロイ先のサーバにて、github上のプロジェクトのc…

Javaのメモリ管理(ヒープ・GC)を理解する

Javaにおけるメモリ管理はGC(ガベージコレクション)がよろしくやってくれているため、普段はあまり気になりません。 だ・け・ど メモリ管理の概要くらいは知っておかないと、OutOfMemoryなんかが出た日にはアワアワしてしまいます。 実際に少し前に仕事の…

twitterの「ゴミ捨てリマインダーbot」を作ってみたけど上手くいかなかった。

みなさま、お盆いかがお過ごしでしょうか。 私は暦通りの休みで、社畜ぶりを発揮しております。 それはさておき、以前に当ブログで取り上げた『meya.ai』。 quotto.hatenablog.com quotto.hatenablog.com これを使ってtwitterのDMでゴミの日を教えてくれる「…

Pythonでの文字列「文字型」と「ユニコード型」についてザックリとまとめた。

最近『meya.ai』をいじっていて、Pythonになんちゃって入門しました。 quotto.hatenablog.com 初心者として戸惑ったのが文字列の扱い。 print 'Hello,World' print u'Hello,World' 「u」ってなんですかね。 ということで、ザックリとまとめてみます。 ※独学…

仙台市営バスの時刻情報を教えてくれるbotを『meya.ai』で作成しました。

先日「botプラットフォーム」である『meya.ai』を体験しました。 quotto.hatenablog.com 今回はもうちょっと「それっぽい」botを作ってみようと思い、こんなbotを作りました。 twitter.com 仕様 DMで「経路」と送信すると、対話形式で「発着の停留所」を聞い…

ありえないほど簡単にbotが作れる!『meya.ai』で人工無能に入門。

人工知能の発展が目覚ましい現代。 少しでもかじってみようと、ブログ記事で紹介されているのを見かけた『meya.ai』を利用してみました。 Meya Bot Platformタイトルのとおり、ありえないほど簡単にbotが作れたので基本的な使い方をご紹介します。 meya.aiと…

bundlerのgemをrubyスクリプト実行時にロードする方法

bundler、言わずと知れたrubyのgem管理用パッケージ。railsプロジェクトを作るにも、bundlerでローカルインストールしてプロジェクトごとにバージョン管理する、という使い方が多いと思います。 そのような場合は"bundle exec rails"の形でアプリケーション…

WindowsのDOS(bat)プログラムではループ内での変数インクリメントに注意が必要です

DOSでbatプログラムをちゃちゃっと作るはずだったのですが、見事にハマったのでメモ。 (未だにDOSを使わざるをえないのです。) やりたかったこと For文の中で変数をインクリメントしたい。 最初のコード こんな感じで動くでしょ? @echo off set /A num=0 …

住所を渡せば位置情報を教えてもらえる『Google Maps Geocoding API』の使い方

住所から緯度経度を求めたい時どうしましょう。 真っ先に思い浮かぶのはGoogleさんに教えてもらうこと!ということで、Googleが提供する位置情報APIである「Google Maps Geocoding API」の使い方をまとめます。 なお、本家を見ればほぼ分かります。 Google M…

SSL証明書が見つからず発生した「OpenSSL::SSL::SSLError」を手っ取り早く解決する

rubyでは標準ライブラリである「net/http」を利用することで、簡単にwebサーバへのリクエストの実行・レスポンスの取得が行えます。 url = "http://hogehoge.com?p1=aaaaa&p2=テスト" #URI.escapeはマルチバイト文字等をエスケープする escape_url = URI.esc…

capistrano経由のデプロイでpassengerがリスタートしない

RailsアプリのデプロイにCapistranoを使っているのですが、前に使っていたデプロイスクリプトをコピーしてきたらpassengerの再起動ができませんでした。 どうやらpassengerの再起動方法がバージョンアップで変わったようです。 環境 CentOS6.5、Apache2.2、P…

Rails4.2 + PushionPassengerで「SECRET_KEY_BASE」に関するエラーが出た

Rails4.2+passenger+apacheの環境でプロジェクトを作り本番(production)にデプロイ、アクセスしたらエラーになってしまった備忘録。 環境 CentOS 6.2、Apache2.2、PushionPassenger5.0、Rails4.2 apache起動時にエラーが発生 apacheのエラーログにこんなメ…

Rails4におけるDB検索方法あれこれ

Rails4で検索条件を付けてデータを取得しようとすると「ん?」となることが多いので、備忘録として改めてまとめておきたいと思います。 サンプルデータ 今回の記事では以下のフルーツテーブルを使います。 mysql> select * from fruits; +----+-----------+-…

アセットパイプラインにフォントも加える

いつの間にか、DMM Sampler(18歳未満は見ちゃダメ!)のアクセスが、ここ1ヶ月で右肩上がりになっておりました。(9月頃まではほぼ0だった) とは言っても累計3,000アクセスぐらいなんだけど。で、Google Analyticsで見てみると半分ぐらいはスマートフォン…

strong_parametersへの対応

自作Webサービスhttp://sampler.wackwack.netをRails3からRails4へ移行しました。 その中でstrong_parametersの対応を行ったので、Web上に山ほど情報は転がっていますが内容についてまとめておきます。 簡単に言うと DBへの登録処理を行うにあたっての設定方…

アセットパイプラインにハマる

前回の記事で書いたとおりRailsの環境を更新しました。 が、本番環境おけるアセットパイプラインでハマってしまいました。 ここで復習しておきます。 そもそもアセットパイプラインとは? 「app/assets」「lib/assets」「vendor/assets」など異なるパス上のj…

rbenvの環境にRailsアプリをCapistranoでデプロイする

レンタルサーバの引っ越しついでにrubyとRailsのバージョンを上げて、再度Capistranoによるデプロイ環境を構築しました。 構成 サーバ CentOS 6.3 ruby 2.1.2(rbenvで導入) Rails 4.0 Apache2 + Passenger4.0 クライアント(デプロイ環境) Mac OS X git C…

DMM Samplerをバージョンアップしました

前回の記事で少し触れたとおり、DMM Samplerの動画プレーヤーをFlowPlayerへ変更しました!これにより機能が追加されました。 動画の自動制御 1.動画の自動再生 ページを表示した時や動画を切り替えた時に動画を自動的に再生します。 2.動画の自動切り替え …

Webページ上で動画制御できるプレーヤー『FlowPlayer』の使い方

DMM Samplerのアップデートで、動作の再生をDMM標準プレーヤーからFlowPlayerに変えました。今回はその導入経緯とFlowPlayerの簡単な使い方についてまとめておきます。 プレーヤーを変えるきっかけ 前々から、JavaScriptからフラッシュ動画プレーヤー(~.swf)…

Capistrano3を使ってデプロイを自動化した

DMM Samplerを作成してから、バージョンアップに向けてちょこちょこ作業していました。 そして3つの事を達成。 DMMアフィリエイトプログラムの審査に合格 Webページにタグリンクを設置 Capistrano3を用いてデプロイを自動化 一つ目はどうでもいいですね。よ…

またまたRails製エロ動画サイトを作りました

昔なつかしのLove Mouth・・・ 遂にRailsアプリリリース!...エロ動画サイトだけどな!! - 小さな星がほらひとつ (もはや更新していませんが一応ページは存在してます。) そして今回、性懲りもなく再び作ってしまいました! DMM Sampler 概要 「短いサン…

ArelによるOR条件のメソッドチェイン(Rails3.2.3)

Rails3以降、ActiveRecordによるDB検索は「Arel」という中間ライブラリを利用して行われています。・・・最近知りました。 以前と同じインタフェースで利用していました。ということで現在はArelによるメソッドチェインを利用した形でコーディングしているの…

SeleniumWebDriverの拡張ライブラリ『markableWebDriver』がいい感じ

たまたま発見しました。 GitHub - jgoza25/markableDriver: Extends of Selenium Selenium Web Driverの拡張ライブラリです。 これはSeleniumで画面キャプチャを行った際に、以下のことが実施できます。 選択した部品に赤枠を付ける。 選択した部品に赤枠と…

TestCaseでSelenium Web Driverを使う

最近仕事でJavaのSelenium Web Driverを使う機会があったので、Rubyでも使ってみました。 さらに、せっかくテストに使うならやっぱりテストフレームワーク使いたいよねってことで、TestCaseクラスを使うことに。 TestCaseを使う JavaのJUnitは使ったことがあ…

Amazon Product Advertising APIを使う

先日リリースしたかんけんで利用している、AmazonのProduct Advertising APIについて簡単にまとめておこうと思います。 利用準備 APIを利用するにはユーザ登録が必要です。が、このユーザ登録結構面倒です。APIを使えるように登録すると、自動的にアフィリエ…

Amazon Product Advertising APIを利用したRailsアプリケーションを作成しました。

またRailsで何か作ろうかな―と思い題材を考えていました。 んで思いついたのです。Amazonに「この商品を買った人はこんな商品も買っています」ってあるじゃないですか。でも、関連商品に必ずしも「欲しい!」と思うものは無いかも・・・ むしろ関連商品の関…

ApacheとRailsの連携

目新しいものではありませんが、Railsアプリケーションを構築した際にやっぱりApache経由でインターネット上に公開したいですよね。・・・ね?てことで、方法をまとめておこうと思います。 passengerの導入 今回利用したものはgemライブラリのPhusion Passen…

Rails製エロ動画サイトをスマートフォン対応

昨年構築した動画サイトLovemouthをスマートフォン対応しました!lovemouth.net ついでにいいねボタン、ツイートボタンも設置してみました。ということで、今回はRailsによるスマートフォンページの対応方法についてまとめておきます。 jpmobileの導入 今回…

Mac風Dockを実現するjqDock

今回小さなサムネイルを敷き詰めて、マウスオーバーしたら大きく見せるためにjQueryプラグインを導入しました。 このMac風Dockを実現するプラグインはいくつかありますが、今回はjqDockを利用しました。 1.jqDockソースの記載 <script type="text/javascript" src="jquery.jqDock" /> 2.jqDockの発動 ※スクリプ…

Railsのモデルで注意すること

遂にRailsアプリリリース!...エロ動画サイトだけどな!! 前回はRailsのMVCを作成について書きました。 ここで作ったモデル(Movie)について気をつけることがあります。 何かというとrubyプログラム(主にコントローラー内)でモデルに対するアップデート…