Hatena::ブログ(Diary)

Railsなど技術系覚え書き このページをアンテナに追加 RSSフィード

2009-10-19

[]gemリポジトリGitHubを追加

gem sources -add http://gems.github.com

最近gemGitHubのものを使うことが多くなったけれど、レポジトリに追加しておかないとうまく探してこれない。


これで

rsl-stringex, chriseppstein-compass, javan-whenever, mislav-will_paginate などをインストール

どれも聞いたことがなかったけれど、メジャーなのかな。

2009-07-23

[]RedHat Enterpriseでパッケージのインストール

up2date でした。

up2date --install sysstat

のような感じで、yumapt-getのように使える。メモメモ

2008-10-09

[][]初心者用覚書

ActiveXとC++を、いまになって勉強するようになってしまった。

ActiveXを作るためには、C++か.NET(C#など)で作る必要がある。

ローカルファイルにアクセスすることが前提だと、.NETの場合はインターネットではローカルアクセス権限がないのでできない(イントラは権限を下げて可能らしい)。

C++で作る場合は、

ATL(Active Template Library)かMFCのどちらかを使う。

ATLの方が軽量でよくできているので、今はMFCよりもよくつかわれるそうだ。

ただATLにはGUIが含まれていないATLにはボタンなどのツールキットが含まれていないしそれだけでは面倒、マイクロソフトが提供したオープンソースのWTLを使うと扱いが楽になるようだ。

日本語版WTLは、http://www.usefullcode.net/2006/12/04/WTL80_6304_jp01.zip ここから頂ける。

英語版でよければ、http://sourceforge.net/projects/wtl こちらから。

インストールはsetup**.jsというのを実行するのだが、コマンドラインから以下のように実行する。

WSHはよく知らんかったから、これを見つけるのに5分もかかってしまった。ダブルクリックじゃ動かなかった。

cscript setup**.js

というわけで以下のチュートリアルをやりながら、ATL/WTLを勉強中

http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/

2008-08-11

[]Ruby on Rails: ファイルアップロード機能を作る Rails 2.1.0版

Railsでファイルをアップロードするところを参考にさせていただいた。

"Ruby on Rails: ファイルアップロード機能を作る" http://www.negisio.net/?p=30

Railsなどの環境が変わってそのままでは動かなかったので、修正して動かせることができました。

Rails 2.1.0

SQLite 3使用

will_paginate使用

$ rails uploader

paginateは、rails 2.0より標準で使われなくなった。そのためwill_paginateを使う。

今日現在(2008/8/11)は、will_paginateはgemインストールする。

$ gem install will_paginate

そしてRailsのenvironment.rbの最後に以下を追加する。

require 'will_paginate'

Rails pluginはサポートしなくなったようだ。

そのほか

$ cat db/migrate/2008011xxxxx_create_attachments.rb
class CreateAttachments < ActiveRecord::Migration
  def self.up
    create_table :attachments do |t|
      t.column(:content_type, :string)
      t.column(:filename, :string)
      t.column(:size, :integer)
      t.column(:data, :binary)
    end
  end

  def self.down
    drop_table :attachments
  end
end

コントローラー

$ cat app/controllers/attachment_controller.rb
class AttachmentController < ApplicationController
    # 新規アップロード画面を作る用。
  def new
  end

  # アップロード処理
  def create
    @uploaded = params[:upload]
    Attachment.create(
      :content_type => @uploaded['file'].content_type,
      :filename => @uploaded['file'].original_filename,
      :size => @uploaded['file'].size,
      :data => @uploaded['file'].read)
    redirect_to(:action => :list)
  end

  # ファイル一覧表示
  def list
    @attachments = Attachment.paginate(:page => params[:page], :per_page => 10, :order => "id desc")
  end

  # ファイルダウンロード用。
  # 注)日本語ファイル名は文字化けする。
  #   右クリックで「対象をファイルに保存」するとファイル名がちゃんと出ない。
  def view_file
    attachment = Attachment.find(params[:id])
    send_data(attachment.data, {:filename => attachment.filename,
                             :type => attachment.content_type})
  end

  # ファイル削除
  def destroy
    @attachment = Attachment.find(params[:id])
    @attachment.destroy
    redirect_to(:action => :list)
  end

end

ビュー

$ cat app/views/attachment/list.rhtml
<h1>attachments list</h1>
<table>
  <tr>
    <th>id</th>
    <th>filename</th>
    <th>content_type</th>
    <th>action</th>
  </tr>
<% @attachments.each do |attachment| %>
  <tr>
    <td><%= h(attachment.id) %></td>
    <td><%= h(attachment.filename) %></td>
    <td><%= h(attachment.content_type) %></td>
    <td><%= link_to('(download)',
                {:action => 'view_file',
                 :id => attachment.id})
     %>
    <%= link_to('(destroy)',
                {:action => 'destroy',
                 :id => attachment.id})
     %></td>
  </tr>
<% end %>
</table>

<%= will_paginate @attachments, :prev_label => 'prev', :next_label => 'next' %>
<br /><br />
<%= link_to('new', {:action => 'new'}) %>
$ cat app/views/attachment/new.rhtml
<h1>add attachment</h1>
<% form_tag({:action => 'create'}, :multipart => true) do %>
<%= file_field( :upload, 'file') %>
<%= submit_tag('upload') %>
<% end %>

ちょっと考えればわかることなんだけれど、will_paginateの使い方と、rails 2.1の使い方をよく間違えるので記録しておく。

2008-07-18

[][][]CentOS5←SQLite2+ruby

わけあって、CentOS5にSQLite2をrubyから使うことになった。

このページのとおり、ソースを入れて、makeして導入。

http://d.hatena.ne.jp/maru_cc/20080420

qlite3とsqlite2を同居させる - sqlite2のソースインストールCommentsAdd Star


sqlite-rubyはここからソースを入れて、"ruby install.rb"

http://rubyforge.org/projects/sqlite-ruby

UbuntuとCentOS5を両方いじっているんだけれど、Ubuntuの方がライブラリは整っているような気がする。CentOSは結局、ソースをダウンロードしてmakeしてインストールが多いなぁ。


Windowsならばここが参考になります。

http://www.gesource.jp/programming/ruby/database/sqlite.html