- 1 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 17:31:07 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
★注意★ Ruby 1.9.1 は初心者には時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に未対応であるためです。) なお 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 で勉強すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 196 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 12:59:39 ]
- >>194
なければ自分で作るという選択肢ももとう
- 197 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 13:01:42 ]
- require を再定義すればいい。
- 198 名前:デフォルトの名無しさん [2009/09/20(日) 16:09:37 ]
- \
..  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /\(<●>)/\ /\(<●>)/\ /\(<●>)/\ /\(<●>)/\ /\(<●> )/\ \(<●>)/\ / \\(<●>)/\ / ,ゝ===く <●>)/\ ! γ `ヾ,_ \ │ :く( r,J三;ヾ )> \ l =; {三●;= } ,=ニ l ヽ ゝ≡三=イ / <>>1ワロタw ヽ .,,,. /.| ヽ 'ぐ'''''''' / / ト, ヽ. ヾ''" / / |ヽ ,./ヽ `´ / ./ \、 -‐ '''"  ̄ / :| \,,,__,,,, / / | `'''‐- 、.._\
- 199 名前:デフォルトの名無しさん [2009/09/20(日) 16:17:33 ]
- eRubyとMySQLをつかって、DBに写真のアップをしたいのだけど
<form action="syasinhenkou.rhtml" method="post" enctype="multipart/form-data"> <input type="file" name="syasin" size="30" maxlength="100"> <input type="hidden" name="id" value="<%= cgi["id"] %>"> <input type="submit" value="登録"> </form> ってかんじで、ファイルを登録用のページにおくりたい sql = "UPDATE rireki SET" sql += " syasin = '" + cgi["syasin"] + "'" sql += " WHERE id = '" + cgi["id"] + "'" sql += ";" my.query(sql) 受け側はこんな感じで書いてみた。 IDのところに変な文字列が入ってアップデートされないいのだけど enctype="multipart/form-data"のオプションのせいだよね。 ファイルを送るときは、このオプションがいるみたいだけど どうしたらいいかな? DB側のidがキーで文字列、syasinがBLOB型でやってる これでDBにファイルが送れるのかもよくわからんのだけど 教えてくれるとありがたいです。
- 200 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 17:25:56 ]
- >>199
idの所が変になるんじゃなくて、cgi['syashin']以降が変になってるはず blobとかのバイナリオブジェクトは文字列の連結でSQLを作れない プリペアードステートメントとかを使え
- 201 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 17:56:53 ]
- blobじゃなくても普通プリペアードステートメント使うとこだろ
- 202 名前:デフォルトの名無しさん [2009/09/20(日) 18:41:08 ]
- 何で空配列がかえってくんねん
空文字列ちゃうん? >> "a".split(/a/) => [] >> "aa".split(/a/) => [] >> "ab".split(/a/) => ["", "b"]
- 203 名前:デフォルトの名無しさん [2009/09/20(日) 18:43:58 ]
- 空配列に空文字列がつっこまれるべきちゃうん?
[""]
- 204 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 18:57:36 ]
- >>194
%w(lib0 lib1 lib2).each{|feat| require feat} でいいじゃん
- 205 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:12:10 ]
- >>202-203
新リファレンスマニュアルから抜粋 > instance method String#split > split(sep = $/, limit = 0) > 第 2 引数 limit は以下のいずれかです。 > limit == 0 > 分割個数制限はなしで、配列末尾の空文字列を取り除く > limit < 0 > 分割個数の制限はなし 「配列末尾の空文字列を」いくつあっても全部「取り除く」ってことなんだろうな多分 それがデフォルトの動作である理由は知らん
- 206 名前:デフォルトの名無しさん [2009/09/20(日) 19:23:06 ]
- > 「配列末尾の空文字列を」いくつあっても全部「取り除く」
こんなん知らへんかったがな。おーきに 理由は実装上の都合なんやろなぁ
- 207 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 19:33:54 ]
- Perlがそうだったから。
Perlがそうだった理由は知らん。
- 208 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 22:23:37 ]
- >>206
web上では関西弁禁止だよ?知らないな?他の方言ならいいけど
- 209 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 22:53:07 ]
- >>199
syasinじゃなくてphotoとかpictureつかえ
- 210 名前:デフォルトの名無しさん [2009/09/20(日) 23:01:59 ]
- 1.9からThreadにかわりFiberというのが入ったそうですが、どうやって使うものでしょうか。
ぐぐってみたけど、上級者向けの説明しかなくてさっぱりでした。 例:Fiberはいわゆるコルーチンです。←コルーチンが何かわからないからさっぱり理解できない説明 高校生でもわかるような説明をどなたかお願いできますか。
- 211 名前:デフォルトの名無しさん [2009/09/20(日) 23:13:30 ]
- >>200-201
Ruby/MySQLではプリペアードステートメントつかえない? MySQL/Rubyじゃないとだめ?
- 212 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 23:17:15 ]
- >>210
Threadなくなったわけじゃないし、上級者(地雷踏み?)向けの機能だから忘れていいよ 否定的なこと言われてるし ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/31601
- 213 名前:デフォルトの名無しさん mailto:sage [2009/09/20(日) 23:58:30 ]
- >>211
こんなのもある d.hatena.ne.jp/tmtms/20090729/1249183003
- 214 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 00:21:13 ]
- >>211
出来るみたいだけど使ってないんで確認はしてない ttp://planet.mysql.com/entry/?id=18088 stmt = my.prepare("select ?,?") stmt.execute 123, "abc" stmt.fetch # => [123, "abc"]
- 215 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 00:43:01 ]
- refe2簡単に入れたいけどパッケージとかある?
- 216 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 00:58:24 ]
- そんなに面倒なことはない気がするんだが
- 217 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 01:37:34 ]
- >>213-214
プリペアードステートメントは MySQL/Rubyをいれて解決した あとは、ファイルのアップだけど st = my.prepare("UPDATE rireki SET syasin = ? WHERE id = ?") st.execute(cgi["syasin"].read,cgi["id"].read) res = st.fetch って書いてみたところ、MySQLのほうから 2053 Attempt to read a row while there is no result set associated with the statement って怒られた・・・・BLOBだとだめなんか? こんなところで詰まってるようだと、表示にもてまどりそう っていうか、表示できるのか?
- 218 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 03:42:41 ]
- MySQLの本でも買えよ・・・またはRails使うか
- 219 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 04:02:16 ]
- >>217
エラーメッセージの意味はわかる? SQL文を実行したけどresult setが返されなかった、なのに行を読み込もうとしてエラーになっている、という意味。 SQLをみるとupdate文を実行しているよね。だからresult setは返ってこない。なのに st.fetch しようとしているからエラーになっているだけ。 これがselect文だったらfetchできるけど。
- 220 名前:デフォルトの名無しさん [2009/09/21(月) 11:47:02 ]
- >>219
SERECTしたらはいってた〜〜!! ありがと〜〜!!! 表示のほうも、相談にのってください 格納したデータを <img src="data:image/jpg;base64,/9j/4AAQ....中略....."> って感じには表示できるのですが これだとIE6では見れない。 エンドユーザにFF入れろとか言えないし IEでも表示させる方法ありますかね?
- 221 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 12:24:04 ]
- もはやRuby関係なし
- 222 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 12:41:30 ]
- どうみてもHTMLの質問です
動的か静的かは用途次第だけど、素直にURL割り当てろって
- 223 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 12:54:14 ]
- pc12.2ch.net/test/read.cgi/tech/1251609039/
スレ立てるまでもない質問はここで 100匹目 pc12.2ch.net/test/read.cgi/tech/1054813207/ 【漏れは】猫でもわかる質問スレ【猫以下です】
- 224 名前:デフォルトの名無しさん [2009/09/21(月) 13:26:50 ]
- >>220
アホだなぁ。 base64デコードして出力すればいいだろが。 Content-Typeヘッダも適切に吐いてね。 あ、スレチだね。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 13:51:04 ]
- >>220
さすがにスレ違いすぎるけど。 src="data:..." は IE6 ではサポートされてない。これはブラウザを変えてもらう以外に方法はない。 だから data: を使わずすなおに画像を別ファイルにしておこう。 あるいは example.com/cgi/jpg.cgi?base64=.....(base64文字列).... が画像ファイルを返すようなCGIを用意して、 src="data:..." をすべて src="example.com/cgi/jpg.cgi?base64=...." に変換するとか。
- 226 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 18:26:18 ]
- アホです。すんません。
>>224-225 URLの?以降の文字列はENV['QUERY_STRING']で受け取れるはず そいつをデコードして元に戻すって考えて #!/usr/local/bin/ruby require 'base64' file = ENV['QUERY_STRING'] out = decode64(file) print "Content-Disposition: filename=\"syasin.jpg\"\n" print "Content-type:image/jpge\n\n" print out って言う具合に組んでみた。 700バイトとかの小さいファイルだとうまく行くんだけど、 8kぐらいのファイルになると表示できなくなるな そもそも、CGI呼べてないっぽい これもRubyのはなじしゃないよね(涙
- 227 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 18:59:21 ]
- アホなりに解決しました。
どうもbase64のコードが長すぎでうまく行かなかったっぽいので idを指定してDBから画像を引っ張って垂れ流すだけのCGIを作成しました。 idなら長くても50桁とか行かんので、これで解決!! いろいろ、ご迷惑おかけしました。 ヒント本当に助かりました。ありがとうございます。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 19:05:28 ]
- >>226
>700バイトとかの小さいファイルだとうまく行くんだけど、 >8kぐらいのファイルになると表示できなくなるな ENV['QUERY_STRING'] をそのままつかってるのが問題なんじゃないかな。 (つまりENV['QUERY_STRING']に %2F や %2B が含まれているんだろう。) URLエンコードされているからデコードしないと。 require 'cgi'
qstr = ENV['QUERY_STRING'] out = decode64(CGI.unescape(qstr || "")) 詳しくは ttp://blog.s21g.com/articles/319 をみてくれ。
- 229 名前:デフォルトの名無しさん [2009/09/21(月) 20:00:17 ]
- いやいや、というか
そんな巨大なデータをクエリ文字列としてURIで渡すなよ、と。
- 230 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 20:02:48 ]
- URLの長さ上限は、普及しているブラウザでは、一番短かいIEが
2083バイトだったかね。
- 231 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 20:04:53 ]
- 一発でroot奪取されかねない素敵コードだな
- 232 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 21:06:05 ]
- なんかワロタw
- 233 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 14:17:19 ]
- ルヴィーっておもしろいですか?ルヴィー使ってる友達が、開発者が日本人だから誇らしいと言ってました
- 234 名前:デフォルトの名無しさん [2009/09/22(火) 14:23:06 ]
- >>233
またお前か。 もういいから自分の巣に帰れ!
- 235 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 15:31:24 ]
- URIのやり取りでトンネル掘り出すアフォとか出てきそうだな。
- 236 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:39:02 ]
- $0とか__FILE__とかARGFとか・・・
最初から備わってる変数が色々ありますけど、どうしてこんなに表記法に統一性が無いのですか?
- 237 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 20:31:24 ]
- 変数
- 238 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:03:37 ]
- >>236
Larry Wallに聞いてくれ
- 239 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:08:08 ]
- Larryにそんなことを聞いたら
Perlの文法が言語学的にどう優れているのかの講義が始まるぞ そしてハッシュの頭になぜ%が付くのかを聞いたらPerl信者になること確実だからやめておけ
- 240 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:28:45 ]
- $0はsh
__FILE__はC ARGFはARGVの発展系、ARGVはCのmain関数の引数argvが元になっている どれもこれもunix+Cを知ってれば、なじみの物ばかりだ
- 241 名前:236 mailto:sage [2009/09/22(火) 22:02:34 ]
- ありがとうございます。他言語からの習慣に習って付けてるんですね。
でもARGFはどうして定数なんでしょうか?Cだとargvなんかは変数ですよね。 __FILE__は擬似変数で$0はグローバル変数と全部違うけど、どれもグローバルにアクセスしたいものだから 統一してしまえばいいのに、と思ったのです。 ここら辺の、定数やグローバル変数、擬似変数といった使い分けは実装内部のことが分かるような人じゃないと理解できないのでしょうか。
- 242 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:06:29 ]
- ARGFは大文字で始まる
__FILE__は違う
- 243 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:08:10 ]
- 定数だったNILが変数nilになったりしてるから絶対的な境界は無いんだろう
ARGFをグローバル変数にするのはおかしな話だが、何でといわれても説明できん
- 244 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:23:44 ]
- ARGFはARGVの発展系、ARGVが大文字でグローバルなのは多分awkが元
他の言語もそれに習ってるからrubyもそれに習っているんだろう
- 245 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:27:10 ]
- >>241
どこかでMatzが 「特殊変数周りの仕様はPerlから引きずった。今では後悔している」 的なことを書いてたような いずれにせよ、一貫性がないという意見には同意
- 246 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:41:46 ]
- Perlからの脱却
ってのがRubyの精神じゃなかったっけ…
- 247 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:44:06 ]
- Ruby2.0では特殊変数は一新するんじゃない?
- 248 名前:デフォルトの名無しさん [2009/09/22(火) 23:22:18 ]
- 以下のような感じでセッションにアクセスしているのですが
リロードするたびにセッションIDが変わってしまいうまく数値を取り出せないです。 どなたか助言をよろしくおねがいします。 def GetSession() cgi = CGI.new session_option = {"tmpdir" => "./"} session = CGI::Session.new(cgi, session_option) return session end
- 249 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:43:38 ]
- 色々と突っ込みたい所はあるが、まずはtmpdirにセッション情報が書き込まれたファイルが存在しているかどうかを確認するんだ。
- 250 名前:デフォルトの名無しさん [2009/09/22(火) 23:48:07 ]
- ファイルが作成されているのが確認できました。
リロードするたびに増えていきます。 サーバー側の問題でしょうか?
- 251 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:58:52 ]
- ようし、じゃあ次はFirefoxにFirebugを入れてcookieの受信と送信ができているか確認するんだ。
CGIモジュールの仕様はよく知らんが、きっとセッションIDをクッキーに入れて送ってきてくれているはずだぞ!
- 252 名前:デフォルトの名無しさん [2009/09/23(水) 00:15:52 ]
- クッキーのリストが反応しないみたいです、他のサイトだとExpiresの項目にsessionというのが出てきています。
- 253 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 00:50:05 ]
- で、セッションを発行したときのレスポンスヘッダにSet-Cookieはあったのか?
- 254 名前:デフォルトの名無しさん [2009/09/23(水) 00:58:52 ]
- まじキチ…ユダヤが人工地震を起こすぞ
【緊急情報カクサンよろしく】 ついに来ました。 大きい動きです。250nT超えてきました。ほぼ間違いありません。もう一度言います。 友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。 四川地震より大きいのが来る可能性があります。 g★olde★ntam★atama.b★lo★g84.fc2.c★om/ ★★★★★危険度MAX★★★★★ ★★★★★★★★★★★★★★★★ ★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★ ★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★ ★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★ ★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★ ★★★★★★★★★★★★★★★★ ★★★★★危険度MAX★★★★★ 警告!連休中の21、22、23日が危ない!かも2 live24.2ch.net/test/read.cgi/eq/1★253494015/ 【大気イオン】e-PISCO Part11【また延長】 live24.2ch.net/test/read.cgi/eq/1★252991726/ 本当に地震が来たら、犯人は特権階級全員だということ2
- 255 名前:デフォルトの名無しさん [2009/09/23(水) 01:01:28 ]
- すいませんレスポンスヘッダを確認することができませんでした。
Firefoxのコンソールで確認できるような事を書いてあるサイトを見つけたのですが うまく確認できませんでした。
- 256 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:04:36 ]
- >>2555
Firebugでの見方がわからんならLive HTTP Headers入れろ。
- 257 名前:デフォルトの名無しさん [2009/09/23(水) 01:17:14 ]
- ありがとうございます、インストールしてみました。
レスポンスヘッダにCookieと名前のつく項目はなかったです。
- 258 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:20:23 ]
- じゃあそれが原因だろw
ってかCGIクラスのインスタンスって何度も生成したらバグるんじゃないの? 関数の中でインスタンス作成して、破棄しているあたりからして使い方が間違ってるんじゃないのかと。
- 259 名前:デフォルトの名無しさん [2009/09/23(水) 01:26:40 ]
- なるほど、少し簡単なプログラムを作って実験してみます。
rubyは明確なルールが分かりづらくて難しいですね。 ありがとうございました。
- 260 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:32:05 ]
- 問題はHTTPの理解のほうじゃないだろうか。
- 261 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:46:05 ]
- >>248
たんにHttpヘッダーを送信してないだけかも。 「ruby cgi session」でぐぐったら、こんなページがあった。 ttp://d.hatena.ne.jp/tilfin/20080229/1204360284 参考にしてみて。
- 262 名前:デフォルトの名無しさん [2009/09/23(水) 02:23:35 ]
- ありがとうございます、確認してみたらヘッダーはERBを処理した後に追加しているので問題なさそうでした。
erb = File.open(path) { |f| ERB.new(f.read) } print cgi.header + erb.result(binding) 以下のようなtest.rbというのを作成して実験してみたところうまくいきましたが 本番用のソースだとうまくいかないようです>< #!/usr/local/bin/ruby require 'cgi' require 'cgi/session' cgi = CGI.new session = CGI::Session.new(cgi) print cgi.header print "session test'#{session.session_id}'\n" まだ解決していませんがデバック方法やアドバイスなど、とても勉強になりました。 本当にありがとうございました。 もう少し自分なりにrubyやhtmlの勉強を行ってみます。
- 263 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 07:51:45 ]
- どうしても分からなければ
ソースをまるごと貼り付けて、アドバイスを求めるという手もある もちろん自力で解決できるならその方がいいけど
- 264 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 08:05:08 ]
- 2chに投稿するとインデントがなくなってすごく見にくいんだけど、JaneStyleのリンクポップアップで
見るとちゃんとインデントされてる! それをコピーしたらインデント付きでコピーもできる! 全角スペースや によるインデントを使う必要なし!
- 265 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:05:48 ]
- >>264
書き込み時に置換面倒なんだけど、ソースとリンクを毎回書き込むのが面倒なのだが
- 266 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:15:02 ]
- コードを貼付ける場合、どうせなら
ttp://pastie.org/ とか ttp://gist.github.com/ とか使うといいんじゃないかな。 詳しくは ttp://journal.mycom.co.jp/news/2009/02/09/014/index.html
- 267 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:20:00 ]
- 長い場合はそのほうが望ましいけど
短い場合はそのまま貼ってくれたほうがいいな あとインデント類の扱いは2chブラウザごとに全然違うらしいよ
- 268 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:32:03 ]
- rubyのせいにしてるが、http知らないと実装は無理なんじゃ。
- 269 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:35:06 ]
- CGIも知ってないと無理な悪寒
- 270 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:38:57 ]
- アホばっかだな・・・
ソース張ってるんだからrubyが原因って一発で原因わかるだろw
- 271 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:52:44 ]
- 正しくrubyをかくための
http,cgiの前提知識が足りないのかもしれん
- 272 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 19:47:00 ]
- Rubyって、GUIアプリを作れるの?
- 273 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 19:56:01 ]
- Ruby 自身は GUI 部品を持ってない
GUI 部品を司る他の言語や API を直接呼ぶ 一般論としては、GUI が目的なら Ruby を使う理由は何もない 素直に GUI 部品を提供する他の言語を使え Windows でウィンドウを表示したけりゃ、そりゃ C# を使えばいいのさ
- 274 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:03:27 ]
- うわ 糞言語じゃん
- 275 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:05:01 ]
- >>274
GUI部品がどういうふうに成り立ってるか理解してないだろ、おまえ。
- 276 名前:デフォルトの名無しさん [2009/09/23(水) 20:11:42 ]
- >>274
ま た お ま え か !
- 277 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:13:41 ]
- Ruby/Tkの不遇って本当なんだなあ・・・
- 278 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:24:45 ]
- >>277
Windows環境の俺に言わせると ActiveTclを別に導入しなければならないあたりが原因 Exerbでまとめて配布できるWxRubyと比べて、いろいろ不便だ
- 279 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:29:24 ]
- Win32API経由なら「ActiveTclを別途インストールしてください」という必要もない
Tclの文法をわざわざ勉強する必要もない アリモノ全部で賄える
- 280 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:33:10 ]
- One Click InstallerにはRuby/Tk最初から入ってなかったっけ
まあPythonでTkinter使ったら幸せになれそうなケース
- 281 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:35:56 ]
- ruby厨涙拭けよ
- 282 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:47:46 ]
- というかTkってけっこう大きいんだよね
必要な人だけ適当に別途入れて使って、というスタンスにしておいたら 実行環境持ってない人に配布するという場合のサポートがすっこんと抜けた そこまでRubyでやらなくてもいいじゃん却って不便だろ、と思うんだけれど
- 283 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:48:31 ]
- あれ? どこか涙流すような流れになってたっけ?
- 284 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 21:05:57 ]
- jruby でいいじゃんじゃん。
- 285 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 21:09:32 ]
- pythonに標準添付されてるtkをrubyから使う事って出来るん?
- 286 名前:デフォルトの名無しさん [2009/09/23(水) 21:18:26 ]
- Linux使ってるけど、Ruby/gtk2が便利。書きやすい。
シグナルまわりの書き方が好きだ。
- 287 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 21:36:19 ]
- >>279
? どういうこと? dllファイルを直接呼べばいいってこと?
- 288 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:15:39 ]
- Win32APIでやれることだけでなんとかしろって意味だと思う
- 289 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:18:29 ]
- Win32API向けにヘッダファイルの翻訳やってくれたりするライブラリでもあるの?
- 290 名前:デフォルトの名無しさん [2009/09/24(木) 07:36:30 ]
- gemのjsonライブラリって日本語まんま変換できないの?
UTF8で["ほげ"].to_jsonとかすると["\u307b\u3052"]とかなっちゃうんだけど
- 291 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:05:05 ]
- いやそれそのまんまだと思うのだが
irb> puts JSON.parse(["ほげ"].to_json) ほげ 何か問題ある?
- 292 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:42:47 ]
- javascript内では日本語は直接記述しないとか、そういう話?
- 293 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:45:26 ]
- >>290
JSONの仕様としては変換するのが正しい。 ただ、それが日本人にとって便利かどうかはまた別の話。 ユニコードに変換させないオプションがほしいよね。
- 294 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:47:18 ]
- >>293
ごめん、ウソ書いた。「変換するほうが仕様上正しい」というのは間違い。 JSONでは文字列中に日本語をかけるはずだね。
- 295 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 08:49:10 ]
- 機械が生成した JSON はたいてい Unicode エスケープで日本語が書かれてるぞ
仕様上はエスケープしても構わない(may)のでたいていのライブラリは自動エスケープする そのほうがめんどくさくないからというのが積極的理由 JSON を生で読むなバカという意図が働いてるという気はせんでもない
- 296 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 09:34:48 ]
- 便乗して質問
JSONやYAMLに変換したとき、日本語をそのまま出力してくれるライブラリって AnJSONやYa2YAMLぐらいしか知らないんだけれど 他に同じことができるライブラリってないかな
|

|