IT・インターネット

Symfony2をさわり始めたものの、初心者視点のドキュメントの充実度がいまいち。なので、他のプログラマのソースコードを読んで学習しながら、以下にまとめてみた。
PHPからRubyへ行くことはあっても、RubyからPHPはいるか。ついでに、Railsとのコーディング箇所を比較。ディレクトリは、長くなるので省略させていただきました。

項目 Symfony2 Ruby on Rails
バンドル composer.json Gemfile
DB接続設定 app/config/parameters.yml config/database.yml
ルーティング app/config/routing.yml及びController/*.php内の@route config/routes.rb
コントローラ Controller/*.php

CentOSに、vim7.4インストール、さらにvim-rubyを設定した時のメモです。

CentOS 6.6、rbenv、gem環境では、gem install vim-rubyができなかったので、gitからインストールしてみた。

  1. [vagrant@localhost vim-ruby]$ cat /etc/centos-release
  2. CentOS release 6.6 (Final)
  3. [vagrant@localhost vim-ruby]$ rbenv -v
  4. rbenv 0.4.0-148-g5b9e4f0
  5. [vagrant@localhost vim-ruby]$ gem --version
  6. 2.4.7
  7. [vagrant@localhost vim-ruby]$ gem install vim-ruby
  8. ERROR:  Could not find a valid gem 'vim-ruby' (>= 0) in any repository
  9. ERROR:  Possible alternatives: vipruby, zim-ruby, ai4ruby, evil-ruby, gimuby

お久しぶりです。ウォーミングアップも兼ねて、久々のDrupalネタです。

AWSのLoad Balancer(ロードバランサー、ELBとも略す)に、Drupal 7のWebサーバをひもづける上でのTIPS集になります。

普通にDrupalのWebサーバをAWSのLoad Balancerにつなげると、Drupalのログに出てくるIPアドレスがプライベートIPになってしまいます。ちなみに、そういう構成が前提です。しかも、Load BalancerからくるIPアドレスは固定ではなくいつも可変です。AWSの仕様のようです。

これでは、グローバルIPアドレスから攻撃や不正なアクセスを受けている場合、Drupalのログを見ても無意味です。このプライベートIPアドレスになっている箇所を、グローバルIPアドレスにする対処法です。

意外や意外、海外で探しても中々対処法が見つけにくかったのですが、settings.phpを以下にします。

  1. <?php
  2. $conf['reverse_proxy']=TRUE;
  3.  
  4. /**
  5.  * Specify every reverse proxy IP address in your environment.

OS X MavericksでRubyGemsのThin Serverをインストール

投稿者:chikunai 投稿日時:2014-08-04(月) 22:29

Mac OS XでRubyだと、通常rubyenvやanyenv、またはbrewなどパッケージツールを使って、RubyやRubyGemsをインストールするのが一般的なようです。

Google APIへアクセスするアプリケーションをRubyで開発した際、Mac OS X標準の環境で、どこまでインストールが出来るか試してみました。ちょうどRubyGemsでThin Serverをインストールしたくて失敗したための備忘録です。中々ネットに情報が転がっていませんでした。

  1. $ sudo gem install thin
  2.     Fetching: eventmachine-1.0.3.gem (100%)
  3.     Building native extensions.  This could take a while...
  4.     ERROR:  Error installing thin:
  5.             ERROR: Failed to build gem native extension.

500エラー、ErrorDocument takes two argumentsの対応

投稿者:chikunai 投稿日時:2014-04-18(金) 03:11

昨年の発表により、さくらインターネットさんのレンタルサーバで、OSのバージョンアップやディスク容量の追加が進んでいます。これにより、月額515円のスタンダードのディスク容量が、30GBから100GBに増えました。写真を溜め込んでいる私としては、1TBくらいほしいところですが、1TBのレンタルサーバは高いので手が届きません。それでも通常ホームページに使う分には十分すぎる容量です。そのレンタルサーバに、いよいよバージョンアップいうタイミングで、私のDrupalがトラブルにあったので、メモを残しておきます。

バージョンアップ中に、たまたま起きていて私のサイトを開いてみたら「500 Internal Server Error」、何かやらかしたかと、かなりヒヤッとしました。すかさずエラーログを確認します。さくらインターネットをご利用の方ならわかると思いますが、コントロールパネルのアクセスログを見れば、エラーログ(error_log)の内容が確認できます。そこで記載された内容を確認したら、何やら仕事でも普段見かけない「ErrorDocument takes two arguments, Change responses for HTTP errors, referer: 」でした。

今話題の仮想通貨を採掘してみた。Bitcoin、Litecoin

投稿者:chikunai 投稿日時:2014-03-02(日) 01:10
litecoin-logo-192.png

ブログネタ作りで、仮想通貨を採掘をしてます。そのレポートです。

採掘は、人気1位でかつ採掘が難しいBitcoin(ビットコイン)ではなく、人気2位で採掘が比較的簡単と言われているLitecoin(ライトコイン)にしてみました。それでも、簡単には採掘させてくれる物ではありません。恐らく電気代の方がかかっていると思われます。

背景として、原理/技術はよく読んでいないけど、コンピュータに計算させるのが難しく、かつ発掘出来たら正しさも証明出来る暗号技術を使っている。という理解です。何を理解しているのかというとw、素因数分解をコンピュータに計算させても中々返答が帰ってこない。というやつが私の知識のベースです。だから計算させるのが難しいから偽造しにくい。適当な通貨を作っても正しさ証明できない。のが暗号技術を使った仮想通貨のキーテクノロジーなんでしょう。

html2jsを使った古典的テクニックと活用の仕方の紹介です。自分のリハビリと他コンピュータ言語の学習も兼ねてます。

そもそもhtml2jsとはなんぞや、という方の為にご説明すると、htmlをJavaScriptへ変換するプログラムの事を指します。html2jsの2は、英語読みのトゥーと発音します。toを2と置き換える記法です。ダジャレではなく、よく使われています。
これだけだと、ふーん。という感じだと思いますが、プラスαで組み合わせると、面白い使い方ができます。マッシュアップが流行した頃に使われ、いまでも使っているところもあるかも。

想定する要件のイメージ

  • 自社サイトにRSSから取って来たブログやランキング等のタイトル一覧をのせたい。
  • 他社サイト(ポイントサイト)に、自社のランキング情報を掲載してもらいたい。
  • 社内のグループウェアに、すぐに取りかからなければならないタスクや、ホットトピック。さらには売上情報などを出したい。

通常、自社サイトに色々な情報をブロック単位で追加するには、そのための開発が必要です。
また、他社サイトへの情報提供ともなると、APIの公開や、FTP等を使ったファイル連携などで、情報を提供して公開してもらう必要があります。そのための環境構築や開発がひつようになります。

画像用サーバを立てる時はext3に要注意

投稿者:chikunai 投稿日時:2014-01-19(日) 00:09

Linuxのファイルシステムは、一般的にext3が使われています。

でも、WEBサービスを作る場合は、一つファイルシステムに気をつけて欲しい事があります

要件定義で、保存するファイルのファイル数が多いとわかっている時です。だからタイトルの通り、たくさんの画像を保存するサーバは要注意。

原因はext3のinodeが枯渇する事です。inodeはファイル、ディレクトリ、権限等の情報を管理する領域です。パーティションを作成する際にファイル数の上限が決められてしまいます。この領域は、パーティション作成時に作って以降、変更することが出来ません。

inodeの状況は、df -iコマンドで確認する事が出来ます。

ext3にしてしまった後に気づいた場合は、

パーティションをいくつも作成し、スケールアウト出来るような作りに変えるか。xfsなどinodeに左右されない別のファイルシステムを作って移行してください。

そして、ZabbixやNagiosなどの監視システムで、inodeの監視も忘れずに。

以上、過去に経験した小ネタでした。

ブラウザで大画面監視専用ディスプレイを作る。

投稿者:chikunai 投稿日時:2014-01-15(水) 01:33

システム運用業務に従事していると、気になる監視項目を大きなディスプレイに表示させ、チームや部内に共有したい。という思い、ありませんか?

  • Zabbix、Nagiosやmuninの画面を大画面液晶ディスプレイに表示。
  • 複数の監視項目が、指定間隔で切り替わる。
  • 複数の監視項目のページも、指定時間に更新される。

専用アプリを作らずとも、ブラウザと2つのアドオンのみで簡単に実現する方法があります。

使うブラウザはFireFox 。

アドインは以下のみです。

●Tab Mix Plus

行って来ました。Drupal Meetup Tokyo 2012年1月25日

投稿者:chikunai 投稿日時:2012-01-26(木) 00:07

Drupal meetup in Tokyo に行って来ました。
主催、協賛された方々、ありがとうございました。

Drupal meetup in Tokyo | 第二回 東京Drupal(ドルーパル)交流イベント
http://groups.drupal.org/node/201953

まわり制作会社さんばかり。Drupalをプライベートブログにしか使っていない私には肩身が狭いw
Drupalで大人数、盛り上がるイベントに参加でき、うれしいです。

プレゼンのメモを残しておきます。

▼デジタルサーカス 団長さん

・WordPress、Drupal、Joomlaを比較
・WordPress、小規模、コーポレートサイト向き
・Drupalのメリット、大規模、高機能サイト向き
・Drupalのデメリット、遅い。CMSだからしょうがない。

・事例1 大手旅行会社
・Web 2台、DB 2台(うち1台は待機系)

・事例2 大手ニュースサイト
・ステージングはWeb 3台、DB 2台(PostgreSQL+pgpool)
・本番はWeb 3台、DB 2台(PostgreSQL+pgpool)
・本番から静的HTMLを作って公開側の本番にアップ

・感想

コンテンツ配信
Drupal theme by Kiwi Themes.