ホーム ブログ ページ 64

ruby-openglでお手軽3Dプログラミング

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは。

KBMJの佐藤です。

今回はruby-openglについて紹介します。

ruby-openglとは、rubyからOpenGLを扱えるようになるgemです。

このgemをインストールすれば、rubyでお手軽に3Dプログラミングを楽しむことができます。

OpenGLについての情報はネット上に豊富に存在しているので、

3Dプログラミングの入門としてはうってつけな気がします。

ruby-openglのインストール

gem install ruby-opengl

ソースコードを書く

require "opengl"
require "glut"

display = proc {
  GL.Clear(GL::COLOR_BUFFER_BIT)
  GL.Color3f(0.0, 0.0, 1.0)
  GLUT.WireTeapot(0.5)
  GLUT.SwapBuffers()
}

timer = proc {
  GL.Rotate(1.0, 0.0, 1.0, 0.0)
  GLUT.PostRedisplay()
  GLUT.TimerFunc(10, timer, 0)
}

GLUT.Init()
GLUT.CreateWindow("ruby-opengl test")
GLUT.DisplayFunc(display)
GL.ClearColor(0.5,0.5,0.5,0.0)
GLUT.TimerFunc(10, timer, 0)
GLUT.MainLoop()

実行する

ruby ruby_gl_test.rb

このようなウィンドウが表示され、ワイヤーフレームのティーポットが回転します。

http://farm4.static.flickr.com/3292/2925352673_f2b44e1eb8.jpg

さいごに

3Dプログラミングは見た目が派手なこともあり、作っていてとても楽しいので、

皆さんも試してみてはいかがでしょうか?

個人ブログ

拡張現実ライフ

MacOSX の sed に気をつけろ

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、たろちゃんです。

先日、MacOSX で sed コマンドを使って置換を行った時にはまってしまったので、それについて書きます。

例えば、以下のようなテキストがCR+LFで保存されていたとします。

egg
spam
ham

これをspamの置換してspamを三行追加しようとします。つまりこういう状態を目指します。

egg
spam
spam
spam
ham

では早速やってみましょう。CR+LFなので改行文字は\r\nとします。

$ sed -e 's/spam/spam\r\nspam\r\nspam/' spam.txt > spam2.txt

すると、こんなテキストファイルができあがってしまいます。

egg
spamrnspamrnspam
ham

改行文字が普通の文字列として認識されてしまいます。これは GNU の sed コマンドではなく FreeBSD 由来の sed コマンドであるからのようです。

ちょっと違う方法でやってみましょう。あまり一般的ではない改行を sed -e に入れる方法です。

sed -e 's/spam/spam\
> spam\
> spam/' spam.txt > spam3.txt

lvなどで確認すると期待通りの結果が得られたように見えますが文字コードを見るとCR+LFとLFが混在してしまっています。

$ od -c spam3.txt 
0000000    e   g   g  \r  \n   s   p   a   m  \n   s   p   a   m  \n   s
0000020    p   a   m  \r  \n   h   a   m  \n 

というわけで、素直に GNU 版 sed を導入する事にしましょう。

筆者はMac Portsを導入しているので、portコマンドから探しました。

$ port search sed
...
gsed                           textproc/gsed  4.1.5        GNU version of the stream editor, sed
ssed                           textproc/ssed  3.62         Super-sed - a heavily enhanced version of sed

gsed というのが GNU 版に該当するようなので、インストールしてみます。

$ sudo port install gsed

インストールが完了したらあとは gsed コマンドで最初の方法を試してみます。

$ gsed -e 's/spam/spam\r\nspam\r\nspam/' spam.txt > spam4.txt

さっそく文字コードを確認してみましょう。

$ od -c spam4.txt 
0000000    e   g   g  \r  \n   s   p   a   m  \r  \n   s   p   a   m  \r
0000020   \n   s   p   a   m  \r  \n   h   a   m 

これで納得した結果が得られました。

Web 上によく掲載されている例は GNU 版の sed コマンドを利用しています。MacOSX を使っている方で shell を良く使う人は GNU 版の sed も入れておくと良いでしょう。

mongrel起動エラー ~ no such file to load — openssl (RuntimeError)

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、oneafter999です。

先日、CentOS5.0にmongrelをインストールし、起動しようとした際に発生したエラーの対処法です。
gemでmongrelをインストール後、mongrelを起動しようとしました。 すると、

no such file to load — openssl (RuntimeError)のエラーが・・・orz

調べてみると、どうやらopenssl-devel をインストールする前にRuby を入れると起動しないらしいのです。
なので、opensslをインストールし、その後Rubyを再インストールしました。

opensslインストール

cd /home/example/src/ruby-1.8.6-p114/ext/openssl/ ruby extconf.rb make make install
Ruby再インストール

cd /home/example/src/ruby-1.8.6-p114/ make clean ./configure make make install
これでmongrelが起動するようになりました。
Ruby関連のインストール順番には要注意です。

rubyの例外処理の書き方

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちはカツオです。

本日2回目の投稿です。

最近よくmongelが落ちるので、coreファイルを見てたら、

画像の処理が怪しいそうだったので、

画像処理に例外処理を追加することがあったので、 簡単に紹介しますね。

例外処理を記述するには

begin、rescue、endを使います。
 

begin
#例外が発生するかもしれない処理

rescue
#例外発生時の処理

end

こんな感じで書きます。

def katsuo

  begin 

    ヒーターつける

  rescure

    ヒーターを消す

  end

end

「例外がおこらなかったときの処理」を書く場合は

elseを使います。 

def katsuo

  begin 

    ヒーターつける

  rescure

    ヒーターを消す

  else
    ヒーターの温度をあげる。

  end

end

また「例外がおこってもおこらなくても実行する処理」を記述する場合

ensureを使います。 

def katsuo

  begin 

    ヒーターつける

  rescure

    ヒーターを消す

  else
    温度をあげる。

  ensure
    布団に入って寝る

  end

end

以上です。

rails環境で動かすbatchを作ってみよう。

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、タジです。

今回はrails環境で動かすbatch処理についてです。

これもrailsの中に最初から組み込まれている

script/runnerというスクリプトで簡単に実現できます。

これは、コマンドラインからモデルの中に書かれた処理を呼び出すというもので、

渡された引数をRubyのスクリプトと判断します。

具体的には

ruby script/runnner ‘[モデル名].[メソッド名]’

といった感じで書きます。

最初にpを入れれば処理内容をコンソールに表示することもできます。

あとはこれをcrontabにフルパスで書いてやればbatchの出来上がりです。

今回はここまでです。

 では、また次回。

ページ内リンクの設定方法 ruby on rails

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちはカツオです。

今日はrailsでのページ内リンクの記述方法を紹介します。
ページ内リンクとはアンカーをおいて
それを目印として、ページ内の文字や、場所にリンクさせ、ジャンプすることができます。


■link_toでの記述方法

<%= link_to “文字”,:controller=>”hoge”,:action=>”foo”,:anchor => ‘mejirushi’ %>




これでページ内のリンクであらかじめ
<a name=”mejirushi”>文字</a>
などと設定しておけばその場所にジャンプすることができます。

link_to のオプションとしてstyleを指定する。

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

どうも、バッチです。

昨日に引き続きlink_toで使うオプションを紹介します。

本日はstyleです。

styleといえばスタイルシートのことですが、

link_toに指定することで、 直接読み込むことができます。

書き方は、

<%= link_to “リンク”, {:controller => ‘hoge’, :action => ‘hoge’}, :style=>”color:red;” %> 

などという感じです。

link_toの外で<span>などで色指定などを適用しようとしても、

出力されるHTML上適用されません。 

ですが、この方法でやれば直接リンク色やフォントサイズなどを変えることが可能です。

スタイルシートを外部指定できないモバイルサイトなどには役に立つと思います。

アンカーの使用方法

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

どうも、新人のバッチです。

本日は、Railsのlink_toでアンカーを使う方法を説明します。

アンカーとはおもにページ内リンクで使われる#のことですね。

普通にlink_to内に書いた場合は、#が変換されたりなどし

うまく使えませんが、 :anchor => ‘表示場所’  で画面

遷移後にページ内リンクなどが行えるようになります。

<%= link_to “ページ移動”,{ :controller => “hoge”, :action => “hoge”, :anchor => ‘目的地’} %>

というような書き方で使用することができます。…

Rubyの継承について

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

どうもメガネです。10回目です。

今回もRubyのオブジェクト指向について説明します。 前回はクラスの定義の仕方、メソッドの定義の仕方、インスタンスの作成などを説明しました。 今回は継承について説明します。継承とは元のクラスの変更を行わずに新しいメソッドや元のメソッドをカスタマイズできる便利な機能です。
説明では親のクラスをスーパークラス、子のクラスをサブクラスとします。
class Parent
  def initialize(myname)
   @name=myname
  end
  def helloworld
   print “Hello, World I am “,@name,”\n”
  end
end

Class Child < Parent
end

こうやって定義することによって

parent = Parent.new(“hoge”)
parent.helloworld   #Hello, World I am hogeが出力
child = Child.new(“hoge”)
child.helloworld      #Hello, World I am hogeが出力

サブクラスはスーパークラスのメソッドを定義しなくても使えます。
次にオーバーライドしてみます。オーバーライドとはメソッドを変更することです。
Class Child < Parent
  def helloworld
   print “I am”,@name,”\n”
  end    
end

parent = Parent.new(“hoge”)
parent.helloworld
child = Child.new(“hoge”)
child.helloworld

スーパクラスにあるメソッドをサブクラスで定義すると変更できます。こうすることによってスーパークラスのメソッドに手を加えずに変更できるので便利です。

parent = Parent.new(“hoge”)
parent.helloworld   #Hello, World I am hogeが出力
child = Child.new(“hoge”)
child.helloworld      #I am hogeが出力

今日はここまで

Ruby on RailsとFlash(ActionScript)のXML連携

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

二回目の記事投稿となります。新人エンジニアの はる です。

Ruby on RailsとFlashの連携方法はいくつかありますが、
今回は、Ruby on RailsとFlash(ActionScript)のXML連携について書いてみたいと思います。

Rails側とFlash側の作業は、

[Rails]REXMLを使用してxmlを生成する。
[Flash]XML.loadメソッドを使用して、xmlを読み込む。

となります。

[Rails]

XMLを生成するためにREXMLを使用します。

REXMLについては脆弱性が発表がされておりますので、本サイト内の記事

REXMLの脆弱性」を参照し、脆弱性対策を行ってから使用して下さい。

まず、Rails側でXMLを生成します。

#Rails XML生成メソッド

def get_xml
  xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><data />\n"
  doc = REXML::Document.new( xmlString )
  #items
  items = REXML::Element.new("items", doc.root)
  i = 0
  10.times do
    item = REXML::Element.new("item", items)
    title = REXML::Element.new("title", item)
    title.text = "タイトル#{i}"
    value = REXML::Element.new("value", item)
    value.text = "hoge#{i}"
    i += 1
  end
  send_data doc.to_s, :type => 'text/xml', :filename => 'doruby.xml'
end

#doruby.xml

<?xml version='1.0' encoding='UTF-8'?>
<data>
<items>
  <item>
    <title>タイトル0</title>
    <value>hoge0</value>
  </item>
  <item>
    <title>タイトル1</title>
    <value>hoge1</value>
  </item>
  <item>
    <title>タイトル2</title>
    <value>hoge2</value>
  </item>

  ・・・(中略)・・・

  <item>
    <title>タイトル9</title>
    <value>hoge9</value>
  </item>
</items>
</data>

Rails側でのXML生成の作業は以上です。

次にFlash側でXMLを読み込みます。

[Flash(ActionScript)]

loadData(http://localhost:3000/"controller名"/get_xml);
//loadData("doruby.xml");

function loadData(filename) {
  xmlData = new XML();
  xmlData.ignoreWhite = true;
  xmlData.onLoad = loadingDone;
  xmlData.load(filename);
}

function loadingDone() {
  getData(xmlData);
  _root.nextFrame();
}

function getData(node) {
  items = node.firstChild.childNodes[0];
  _root._items = new Array();

  for (var i = 0; i<items.childNodes.length; i++) {
    _root._items[i] = new Object();
    for (var j = 0; j<items.childNodes[i].childNodes.length; j++) {
      node = items.childNodes[i].childNodes[j];
      if (node.nodeName == "title") {
        _root._items[i].title = node.firstChild;
      } else if (node.nodeName == "value") {
        _root._items[i].value = node.firstChild;
      }
    }
  }
}

_root._items[i].titleにアイテムのタイトル、_root._items[i].valueにアイテムの値を格納しています。

きちんと読み込まれているかどうか確認するには

下記のtraceアクション等でFlashの出力ウィンドウ上から確認できます。

for (var i = 0; i<_root._items.length; i++) {
  trace("_root._items["+i+"].title = "+_root._items[i].title);
  trace("_root._items["+i+"].value = "+_root._items[i].value);
}

以上、Ruby on RailsとFlash(ActionAcript)のXML連携について、ご紹介させていただきました。

次回は、Flash(ActionAcript)の”LoadVars.sendAndLoadメソッド”を使用した

Ruby on RailsとFlashの連携について書きたいと思います。

Linux便利コマンド ~履歴検索~

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、oneafter999です。
今回は、Linuxのちょっと便利なコマンドをご紹介します。

踏み台サーバを介してローカルセグメントに入る時など、IPアドレス入りのSSHをいちいち入力するのは非常に面倒なものです。
また直近の履歴は[↑]で表示されますが、それでもなかなか目当てのコマンドはみつからない・・・。
そんな時便利なのが、Ctrl + Rコマンドです。
このコマンドは入力後、目当てのコマンドの一部を入力することで、過去コマンドの中から候補を表示してくれるコマンドです。

使用例

test@TEST1:~$ Ctrl + R
(reverse-i-search)`’:
※↑で「ss」と入力
(reverse-i-search)`ss’: ssh test@192.168.3.100
表示された候補が違う場合、Ctrl + Rで次の候補を表示することができます。
また、やっぱり履歴検索をやめたい場合は、Ctrl + Cでキャンセルが可能です。

便利なのはもちろんのこと、ちょっとかっこいい点も見逃せません!

文字列の一部を置換したい

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

初めましてこんばんわ、トマトです。

まだまだひよっこな私ですが、日々Ruby on Railsに悪戦苦闘しております。

さて、今回は何かとよく使われる、

文字列の一部を置換するメソッドをご紹介したいと思います。

○gsubメソッド

このメソッドは引数を2つとります。

第1引数では正規表現を使って置換したい部分のパターンを指定し、

第2引数では第1引数のパターンでマッチした部分と入れ替える文字列を指定します。

 文字列.gsub(/マッチさせたいパターン/,'置換したい文字列')

。。。とまぁ、言葉で表すとわかりづらいので

実際に使ってみましょう。

str = "red$blue$$green$$$yellow$$$$pink"
p str.gsub(/\$+/,' ')

# 出力結果
# "red blue green yellow pink"

このように置換することができるんですね。

実用的な使い方の例としては、場合によって”http”と”https”とで出し分ける際に

img = "http://tomato.com/product/img/tomato.jpg"
my_img = ""
if flg==1
   my_img = img.gsub(/\^http/,'https')
else
   my_img = img
end

上のように記述をすれば、簡単です。

○subメソッドとの違い

gsubメソッドとすごくよく似ているメソッドがsubメソッドです。

名前がそっくりならば、機能もやっぱりそっくりです。

ためしに使い比べてみましょう。

img = "http://tomato.com/product/img/tomato.jpg"

p img.gsub(/tomato/,'banana')
# gsub出力結果
# "http://banana.com/product/img/banana.jpg"

p img.sub(/tomato/,'banana')
# sub出力結果
# "http://banana.com/product/img/tomato.jpg"

よく見てみるとgsubメソッドでは、”tomato” にマッチした部分

すべてを置換しているのに対して、

subメソッドでは最初の”tomato”にマッチした部分のみ

置換しているのがわかります。

要するに

○gsubメソッド=すべて置換する

○subメソッド=先頭だけ置換する

ということなのです。

○gsub!、sub!メソッド

gsubとsubメソッドに”!”のついたこのメソッド。

これもちょっと使ってみましょう。

img = "http://tomato.com/product/img/tomato.jpg"
img.gsub(/tomato/,'banana')
p img
# gsub出力結果
# "http://tomato.com/product/img/tomato.jpg"

img.gsub!(/tomato/,'banana')
p img
# gsub!出力結果
# "http://banana.com/product/img/banana.jpg"

subメソッドやgsubメソッドでは置換後の文字列を

その都度生成して返しているのに対して、

sub!メソッドやgsub!メソッドを使うと文字列自体を変更してしまうので、

使用する際には注意が必要です。

やけに長くなりましたが、以上文字列置換メソッドの紹介でした。

また次回お会いしましょう。

file_fieldで画像をアップ

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

http://d.hatena.ne.jp/zenpou/:titileにて公開した記事を公開します。

railsで、Resourceというmodelに画像を保存する時、

new_fileというメソッドを使ってデータを保存する様につくったんですが、

そういうとき、file_field :record, :resourceのデータを受け取っても

そのまま代入できないので、その問題に対する対処です。

  alias :resource_old= :resource=
  define_method("resource=") do | value |
    if value.class == ActionController::UploadedTempfile
      resource = Resource.new_file(value, value.original_filename)
      self.send :resource_old= , resource
    elsif value.class == Resource
      self.send :resource_old= , value
    else
      nil
    end
  end

model側からbelongs_toでresourceに連携した後に定義される代入を

オーバーライドしてます。

こうするとパラメータの中身をそのまま出せるので非常に楽です。

背景透過に対応するシム技法

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

初めまして。新人エンジニアの はる です。

社内では主にRuby on Rails と Flash をいじっています。

今回は、「透過に対応するシム技法」についてご紹介します。

Q:シム技法とは?

例えば、FlashをWEBページの上に重ねて表示(WEBページの1つ上のレイヤーに
Flashを表示するイメージ)する場合、IE6ではセレクトボックスが最前面に表示
されてしまいます。


HTMLのレイヤー構造を指定する方法としては、通常、CSSのz-indexプロパティを
使用しますが、IE6のSELECT要素にはz-indexを指定することが出来ません。
これはIE6において、SELECT要素がウィンドウコントロールとして扱われている
ために起こる現象です。


対策としては、iframe要素をSELECT要素の上に重ね、さらにiframeの上にFlashを
重ねることで、SELECT要素が最前面に表示されなくなります。
これを「シム技法」といいます。

さて、ここからが本題です。

シム技法を用いて背景が透明のFlashを表示したい場合を考えます。

iframeにはallowtransparency属性があり、

allowtransparency="true" ・・・背景を透過にする
allowtransparency="false" ・・・背景を透過にしない(初期値)

と定義されています。

しかし、背景を透過させるためにtrueを指定した場合、iframeの背景が透過されても

シムとして使用することができません。また、flaseを指定した場合は、シムとして

使用することはできるものの透過されません。

つまり、このままでは背景が透明のFlashをシム技法で表示することができない

ということになります。

これを解決するためには、iframeに少し珍しいstyle指定を行います。

<iframe frameborder="0" scrolling="no" style="filter:alpha(opacity=1);">

CSSのfilterプロパティはIE(Win)の独自プロパティであり、主に文字や画像を装飾

するために用いられます。上記のstyle指定では、不透明度を1%に指定することで

“ほぼ”透明のシムとして使用することができます。

filterプロパティは、IE独自の機能ですが、そもそもシム技法を使用しなければならない

ブラウザもIE6以下のみですので、IE6以外では表示しないよう切り分けることをお勧め

します。

また、FlashとFlashが重なるページの場合、Flashを表示しているobjectタグに、

以下の指定を行う必要があります。

<param name="wmode" value="transparent" />
<embed ...wmode="transparent" ... />

上記の指定をしていない場合、FlashがHTMLのレイヤー構造を理解することが

できませんので、ご注意下さい。

以上、長文になりましたが「透過に対応するシム技法」についてご紹介させていただきました。

次回は「Ruby on Rails と Flash の連携方法」について触れてみたいと思います。

Rubyのクラス

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

どうもメガネです。9回目です。
今回はRubyのクラスについて説明します。
Rubyはオブジェクト指向言語なのでオブジェクトを使えるようになると便利です。
Class名は大文字で始めなければいけません。
Class Test
end
次はメソッドの定義の仕方です
Class Test
  def helloworld
   print “Hello, World\n”
  end
end
次にインスタンスの作成です。
test = Test.new
p test.helloworld
Hello, World #出力される
次にコンストラクタについて説明します。
コンストラクタは便利なのでぜひ使ってみてください。
class Test
  def initialize(myname)
   @name=myname
  end
  def helloworld
   print “Hello, World I am”,@name,”\n”
  end
end
インスタンスの作成
test = Test.new(“hoge”)
p test.helloworld
Hello, World I am hoge #出力される
コンストラクタを使わない場合
class Test
  def name(myname)
   @name=myname
  end
  def helloworld
   print “Hello, World I am”,@name,”\n”
  end
end
インスタンスの作成
test = Test.new
test.name(“hoge”)
p test.helloworld
Hello, World I am hoge #出力される
見て分かるようにコンストラクタを使うとインスタンスの作成と処理を一度に行えます。
今日はここまで

CSSハック〜モダンブラウザ(IE、Safari)編

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは。maiです。

web標準化の波のおかげで、時代はcssレイアウト。

でもcssってブラウザごとにズレたりするのが困りものですよね。

そんなときにブラウザを限定してcssを適用するハックをご紹介します。

ちなみに、Firefoxが一番仕様に近い動作をするので、

cssを書くときはまずFirefoxで確認しながら書きます。

そのためFirefox向けのハックは基本やりません。

 Safari向け

html*セレクタ { /* for safari */ プロパティ:値; }

Safari 2.x系

html:first-child セレクタ { /* for safari2.0 */ プロパティ:値; }

 IE向け

IE6

* html セレクタ { /* for ie6 */ プロパティ:値; }

IE7

*:first-child+html セレクタ { /* for ie7 */ プロパティ:値; }

記述する順番は以下の通り。

1.Firefoxに適用するデフォルトの指定

2.Safariに適用する指定→Safari2に適用する指定

3.IEに適用する指定(順番はどっちでも)

IE系はどっちも同じ指定をすることが多いですが、

* html セレクタ, *:first-child+html セレクタ { /* for ie */ プロパティ:値; }

という書き方はできないので注意です。

apacheの構文チェックをしよう。

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、タジです。

今回はapacheの構文チェックについてです。

 apacheを起動しようとしたらSyntax Errorが出て起動しない・・・なんて経験はないでしょうか。

自宅サーバやテストサーバならまだ良いですが、そうでなければ大変なことになります。

Syntax Errorは、Configファイルの文法や構文が間違っているため読み込めない、というエラーです。

つまりこれを事前に確認できれば良いわけですね!

apacheの構文チェックは起動スクリプトにオプションをつけるだけです。

/usr/localの下にapache2が入っている場合は

/usr/local/apache2/bin/apachectl -t

と打てば構文チェックができます。

 また、/etc/init.d/ の下にシンボリックリンクが貼られている場合は、

/etc/init.d/apache2 -t

という感じでもOKです。

apacheのConfigファイルはhttpd.confというファイルなので、これを書き換えたときは必ずチェックするようにしましょう。

 では、また次回。

railsの開発用サーバを使ってみよう。

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは、タジです。

今回はrailsに用意された開発中のアプリケーションを実際に動かすためのスクリプトである、script/serverについてです。

 このスクリプトを使うと非常に簡単にアプリの動作を確認できます。また、Webサーバも立ち上げてくれるので、ブラウザからも確認ができます。

起動も簡単で、起動したいプロジェクトのディレクトリで

ruby script/server

と打つだけです。

特に何も設定していない場合は、railsに付属しているWebサーバであるWEBrickを起動します。

起動後は、

http:localhost:3000

にアクセスすることで、ブラウザから動作確認ができます。

3000というのは使用するポート番号で、これを変更すれば複数立ち上げることもできます。

ruby script/server –port=3001

と打てばlocalhostの3001番で起動するという感じです。

今回はここまでです。

それではまた次回。

macユーザーのための便利なエクセル(excel 2004)ショートカット集

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちはカツオです。 今日は自分が会社に入ってから覚えた ショートカット (for mac)を書こうと思います。

役に立つと思う順に書きますね。   

コピー  
command + c

切り取り  
command + x

貼付け  
command + v

エクセルの書式設定ダイアログを開く
command + 1   

セル内で改行  
command + option +enter

選択しているセルを再編集  
control + u

セルの削除  
control + k

セルの追加  
control + i

選択しているセルの数値と値の削除

control + b

選択セル位置と同じ列で直前の値をコピーして入力  
control + d

選択セル位置と同じ行で直前の値をコピーして入力  
control + r

選択セル位置の列をすべて選択
control + スペース

選択セル位置の行をすべて選択  
shift + スペース

保存
command + s

名前を付けて保存   
command + shift + s    

現在の日付   
control+;(セミコロン)

現在の時刻
control + :(コロン)   

左揃え
command + L    

中央揃え
command + E    

右揃え
command + R    
   
macユーザーは エクセルでセル内改行とか絶対つまづきますよね。
あとセルで再編集はとても便利ですね。   
また覚えたら追加していきますね。 ではでは  

rakeをバージョン指定して実行してみる~undefined method `last’ for {}:Hash~

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

ローカル環境で rake db:migrate をしようとしたら
rake aborted! undefined method `last’ for {}:Hash残念でたまりません。

ググってみると
rake db:migrate すると undefined method `last’ for {}:Hash と出る
↑では新しいバージョンを削除することでエラーを解消しています。

とりあえず今回は、rakeのバージョンを指定して実行してみようと思います。

rake _0.7.3_ db:migrate
これでOKのようです。

partialについて

0

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

どうも。

昨日に続いて、バッチです。

本日はpartialについて簡単に説明します。

partialは部分的に別のファイルを挿入することができます。

前回のlayoutに続いて、メニューやヘッダーフッターに使用する ことが多いと思います。

使い方は、まずpartialファイルを作ります。 ファイル名は少し特殊で、

_hoge.rhtm

というようにファイル名の最初にアンダースコアがつきます。

作ったpartialファイルを挿入するには、

<% render :partial => “hoge” %>

と書きます。

この部分にpartialファイルの中身が挿入されるわけです。

編集する機会が多かったりする部分は、partialでまとめておくと

一気に変更できますね。 

最近人気な記事