「Perl」を含む日記 RSS

はてなキーワード: Perlとは

2007-11-26

私のお薦めPHPなんだけど

anond:20071126210706

何故って敷居が低いからなんだけど、

どっちがいいかなんてぶっちゃけ作るものによるだろうから、両方で作ってみればいいんじゃないかな。

とりあえずあなたの作りたいものの一部(簡単そうな部分)について、デザイン設計して、perlPHPの両方で書いてみるの。

どっちが自分に向いてるか、自分のやりたいことに向いてるか、書いてみるのが早道だと思うな。

もっとも、絵とか文字とかちょっと動かす程度ならJavascriptが手軽だと思うよ。

Perl VS PHP

なんかこう、ブラウザ上で動く何か(漠然としててすまん)を作りたいんだが、

PerlPHPどっちがいいと思う?

作るものによるとは思うんだが。

ちなみに、俺がやったことある言語は、CとC++Javaをちょっと。

ネットワーク関係する感じのものはやったことなくて、

鯖立てたりもやったことない。でもやってみたいしやってみるべきなんだよな。

2007-11-13

UTF-8携帯サイトでの絵文字変換はまだどこも対応してないでOK?

Shift-JIS表示⇔内部処理UTF-8だと、Unicode::JapaneseもEncode::JP::Mobile(パッチのみ?正式には未対応?)も対応してそうな感じなんだけど...。

あ、Perlの話で。

2007-11-10

関数プログラミングにおけるFizzBuzz問題

いくつか考えてみた

(問1)高階関数再帰関数を必ず使って数値を要素とするリストの要素の総和を求める関数を書け。ただし高階関数を使うという要件と再帰関数を使うという要件は同じ関数で満たしてもよい。

(問2)二つの引数をとり二つのうち大きいほうを返す関数高階関数再帰関数をつかって数値のリストの最大値を求める関数を書け。ただし高階関数を使うという要件と再帰関数を使うという要件は同じ関数で満たしてもよい。

というのは簡単すぎるか?簡単すぎるなら

(問3)高階関数再帰関数を必ず使ってある数値に5を足し、10かけて2で割った数を求める関数を書け。ただし高階関数を使うという要件と再帰関数を使うという要件は同じ関数で満たしてもよい。

こっちの方がいいかな。でもトリッキーすぎる気もする。

一応問題を出したので、SchemePythonで自分で想定している答えを書いておいた。はてなではSchemeが人気のようなので、あまり知らなかったけど関数言語ではSchemeで書いておいた。Pythonで書くのはSchemeだけだとわかりにくいので、なにかスクリプト言語で書いておこうと思ったから。Rubyの方が人気なので、はじめはRubyで書こうと思ったけど挫折した。だれかRubyで書いてくれないかな・・・。コードオブジェクトってなによ。というか関数オブジェクトなのに引数にできないの?なんで?(以下疑問と愚痴の嵐なので略)Perlは古株が多くてユーザー数も多そうだけど、・・・その・・・無理です・・・。あの言語仕様はやる気がしない。ぶっちゃけ理解できない。Pythonを知らないひとは多そうだけど、知らなくてもSchemeよりは感じは掴めると思うのでPythonでも書いておくことにした。

Scheme

http://anond.hatelabo.jp/20071110215936

Python

http://anond.hatelabo.jp/20071110220132

これで大部分のひとがこの問題に興味をもたなくて解答するひとがいなくても、興味を持ったひとは安心だね!

追記:

問3で次のは無しとしておきたい。

Scheme

(define continuous-apply
    (lambda (lst obj)
        (cond
            ((null? lst)
                obj)
            (else
                (continuous-apply (cdr lst) ((car lst) obj))))))

(define plus5
    (lambda (num)
        (+ num 5)))

(define times10
    (lambda (num)
        (* num 10)))

(define divide2
    (lambda (num)
        (/ num 2)))

(define plus5-times10-divide2
    (lambda (num)
        (continuous-apply (list plus5 times10 divide2) num)))

(plus5-times10-divide2 2)

Python

def continuousApply(lst, obj):
    if lst:
        return continuousApply(lst[1:], lst[0](obj))
    else:
        return obj

def plus5(num):
    return num + 5

def times10(num):
    return num * 10

def divide2(num):
    return num / 2

def plus5_times10_divide2(num):
    return continuousApply([plus5, times10, divide2], 2)

plus5_times10_divide2(2)

2007-11-08

perltelnet

Net-Telnetを使えばいいのはわかったが、踏み台を経由したいときはどうしたらいい?

client -- telnet --> 踏み台Server -- telnet --> target Server

2007-11-01

PerlClass::Data::Inheritableの解析

唐突にClass::Data::Inheritableのソースコードについて説明してやんよ。

使い方とかの説明はこの辺でも読んでから出直して来い、ごるぁ!

まぁとりあえずソース見てみろ、下記にはっつけてやっからよぉ!


 1: package Class::Data::Inheritable;
 2:
 3: use strict qw(vars subs);
 4: use vars qw($VERSION);
 6: $VERSION = '0.06';
 7: 
 8: sub mk_classdata {
 9:     my ($declaredclass, $attribute, $data) = @_;
10: 
11:     if( ref $declaredclass ) {
12:         require Carp;
13:         Carp::croak("mk_classdata() is a class method, not an object method");
14:     }
15: 
16:     my $accessor = sub {
17:         my $wantclass = ref($_[0]) || $_[0];
18: 
19:         return $wantclass->mk_classdata($attribute)->(@_)
20:           if @_>1 && $wantclass ne $declaredclass;
21: 
22:         $data = $_[1] if @_>1;
23:         return $data;
24:     };
25: 
26:     my $alias = "_${attribute}_accessor";
27:     *{$declaredclass.'::'.$attribute} = $accessor;
28:     *{$declaredclass.'::'.$alias}     = $accessor;
29: }
30: 
31: 1;

短いソースだなーこれ。でもな、なめんじゃねーぞ。短いけど色々な技術が盛り込まれてんだよコレはよぉ。

ハイ、まず3行目。

かるくstrictについて説明してやんよ。心して聞けよオマエラ。

strictっつーのはだな、つまりPerlにおける曖昧な部分をすこーしだけチェックしてくれるスグレモノなんだなコレが。

とりあえずざっくり言うと三つの機能があってだな、下記のよーに書くわけだ。


 use strict 'vars';
 use strict 'subs';
 use strict 'refs';

varsってーのは簡単に言うとmyとかourとか宣言しろボケってやつですわ。

subsは裸体は許さんってやつですの、$とか%とかついていない裸の文字列をエラーにしてくれんだよ。

refsってのが一番やっかいな代物でな、これはムツカシイ言葉で言うとシンボリックリファレンスってんだが、要は変数名に変数を使うとエラーにしてくれるってこったよ。

で、これら全部ひっくるめてuse strict;なんだな。わかったか?オラ!

ちゅーことはだ、3行目を見ると意図的にrefsだけ外してるのがわかるよな。

つまりコレはこのコードのどこかで変数名に変数を使うってことを明示していることにもなるわけだ。けけけ。

あーもういいもういい、次だ、次。

4,5行目を見てみろよ。今時our使わずにuse vars使うなんてどんだけー

ははは、まぁまてよ。

ourってのは明示的にグローバル変数を定義するもんなんだが、このourってやつが導入されたのがPerl5.6からなんだよ。

Perl5.5のころはourなんてなかったからグローバル変数定義すんのにこのuse varsを使っていたわけだ。

つまりこのモジュールはPerl5.5環境でも動くように配慮しているわけなんだな、ちゃんちゃん。ほほほ。

あーもう全然すすまねーよ。チクショウ、が、ま・・・・。

で、11-14行目。これはref関数使って$declaredclassがオブジェクトだったら死ぬって処理だ。

require CarpっつーのはCarpモジュールを動的にロードしてるっていうことだよぅ。

で、Carp::croak関数使ってエラー文はいて死ぬ、と。ちなみにこのCarp::croakってはまぁdie関数みたいなもんなんだ。

違いとしてはエラーの発生した原因を呼び出し元の奴のせいにして自分は悪くないんだよってアピールすることかな。まぁ実際使ってみりゃわかるよ。

さぁ、16行目。本編突入だ。長かった。長い道のりだったなお前ら。

sub {}ってのは無名サブルーチン(関数リファレンス)ってやつだ。で、ここで注目すべき点はただひとつ!!!!!

19-23行目あたりをぼーっとみてると$declaredclass, $attribute, $dataっていう変数を使用していることがわかる。

これらの変数は9行目で受け取ったmk_classdataへの引数だ。

ここで問題が発生する。

ダダダダン!ダダダダン!ここで問題が発生する!

myで宣言された変数賞味期限スコープの終端だ。それはわかるな?

つまり9行目で宣言された$declaredclass, $attribute, $dataといった変数どもは29行目のスコープの終端で消滅してしまうわけだ。

しかし!その消えてしまうはずの変数どもをsub {}という無名サブルーチンの中で使用してしまっている!!!

これが世間一般に語られているクロージャという仕組みなのだ!!!!!!うはははははははh!!!

本来生涯をまっとうするはずだった変数たちが別のサブルーチンの中にまぎれてしまうとその別のサブルーチンが消えてなくなるまでは死ぬことを許されなくなるのである!!!ざ・不☆老☆不☆死!

なんたる奇妙奇天烈なことであるが、この現実を受け入れることによってお前らの道が開けるんだ!!!すげーだろぉがよぉ!!

ボクはッ、キミがッ、クロージャを受け入れるまでッ、殴るのをやめないッ!

さて、肝心の16-24行目のアクセサ部分の処理の解説だけども、

引数が渡されてなければ特になんの処理もせずに$dataを返している。$dataってのは死ぬことを許されなくなったカワイソウな変数君だ。

つまり、Class::Data::Inheritableってやつはアクセサに渡された値をどこで保存してるのかというと、紛れも無いこの$data君に他ならない。

$data君がニート君になっちゃうとたちまちデータの読み書きができなくなるのであまり働かせ過ぎないように注意しよーね!

ハイ、次はアクセサに引数が渡された時の処理だけどな、20行目を見てみろ。$declaredclassに格納されてる値はmk_classdataメソッドを使用したときに格納された値になる。


 package Hoge;
 use base qw/Class::Data::Inheritable/;
 Hoge->mk_classdata('hoge_accessor');

つまり上記の処理で例えると、$declaredclassには'Hoge'という文字列が入ってることになんだな。

で、この'Hoge'と$wantclassに入ってる値を比較しているわけだが、


 package Hoge;
 use base qw/Class::Data::Inheritable/;
 Hoge->mk_classdata('hoge_accessor');
 
 Hoge->hoge_accessor('aaa');

上記の処理で例えると$wantclassには$declaredclassと同じく'Hoge'が入ってくることになんだな。うっひょー。

んで、20行目のif文は$wantclassと$declaredclasが違う場合にだけ19行目の処理を実行しているわけだからこの場合はスルーするわけだぁ。ひょひょひょ。

じゃあだな、$wantclassと$declaredclasが違う場合ってどんな場合?ってことだが、下記に例を示すから目ん玉引ん剥いて網膜から直接見てみろよこのボケ野郎どもが。


 package Hoge;
 use base qw/Class::Data::Inheritable/;
 Hoge->mk_classdata('hoge_accessor');
 
 package Foo;
 use base qw/Hoge/;
 
 Foo->hoge_accessor('bbb');

HA!HA!HA!こういう場合だよ米ベー。$wantclass=Fooで$declaredclas=Hogeになるんで19行を実行し、Fooをベースにしてmk_classdataを呼ぶことでFooに同じ名前の新たなアクセサを提供し、元クラスHogeの値を壊さないようにするわけですなぁ。

考えた人すごいですなぁ。これがClass::Data::Inheritableが継承可能なクラス変数といわれる由縁でするまする。

で、最後の26-28行目はコレらの便利な処理をしてくれる$accessorさんをクラスに登録するというわけですよぉ。

27,28行目の*ってのは型グロブ変数ってという奴で、型グロブに対して無名サブルーチンを突っ込むと動的に関数を定義できるんだなぁコレが。

でここで、初めに俺が語った話を覚えてるか?へっ、オマエラなら覚えてないだろうなけっけ。use strictの話だよ。refsだよrefs。

ここでrefsを省いていたのが利いて来るんだ。refsって何だった?ホラ言ってミソ?

うんうん。変数名に変数を使えないようにするだったね。

で良く見てみると型グロブ変数に対して「$declaredclass.'::'.$attribute」っていう変数を使おうとしているよね?これをしたかったからrefsだけ仲間外れにしてたわけですね。

はは。

あー、あー、あー。

これで終わりだよぅ。みんなわかったかな!?

コレ読んでもわからんやつはもう死ぬか、もしくはわからん用語について死ぬほど調べてもっかい読みなおしてみろこのド低のぅッ・・・ごふんごふん、このクサレ脳みそがぁ!!!!!!!!!!!!11

プログラ増田のあなぐら

2007-10-30

http://anond.hatelabo.jp/20071030213453

smatyもそうだけどphpテンプレート機能があると、

rubyのrhtmlファイルみたいにできていいじゃない?

PHP自体がもともとPerlで作られたHTML用のテンプレートエンジンのようなもんなんだから

そんなこといいだしたらきりがないぞ?

http://anond.hatelabo.jp/20071030034313

PHP自体がもともとPerlで作られたHTML用のテンプレートエンジンのようなもんなんだから

独自タグだけじゃなくてそれ以外の機能がないとPHPテンプレートエンジンを使う意味があまりないと考えているのは僕だけかな?

Perlでものすごく効率的にプログラミング仕事を終わらせる方法

Perlでものすごく効率的にプログラミング仕事を終わらせる方法

[1] Perlで頑張る

[2] 諦める

[3] Ruby勉強する

[4] rubyインストールする

[5] Rubyで書く

[6] 完了

40行で作るPerlテンプレートエンジン

60行で作るPHP用テンプレートエンジン

やってしまった・・・。

方針:

  • PHPのように<?php・・・?>が無いのでそのまま表示と(foreach|if|unless)に対応。
  • [% $c{title} %]で普通に表示(TTっぽい?)
  • [# $c{title} #]でHTMLエスケープ表示

package SixtyLinesTemplate;

use strict;
use warnings;
our $VERSION = '0.01';

sub convert {
    return unless defined(my $str = shift);
    $str =~ s{&}{&}gso;
    $str =~ s{<}{&lt;}gso;
    $str =~ s{>}{&gt;}gso;
    $str =~ s{\"}{&quot;}gso;
    $str;
}

sub include_template {
    my $tmpl = shift;
    my %c = %{+shift};
    eval convert_template($tmpl);
    die $@ if $@;
}

sub convert_template {
    my $tmpl = shift;
    my $cache = $tmpl.'.cache';
    return scalar do { open my ($FH) , $cache; local $/; <$FH> }
        if ( -f $cache &amp;&amp; (stat($tmpl))[9] <= (stat($cache))[9] );
    my $out = do { open my ($FH) , $tmpl; local $/; <$FH> };
    $out =~ tr/()/\x28\x29/;
    $out =~ s/\[%\s*(foreach|if|unless|end)\s*(.+?)\s*{?\s*%\]/");".(lc($1) eq 'end' ? '} print q(' : "$1 $2 { print q(")/ige;
    $out =~ s/\[%(.+?)%\]/);print $1; print q(/g;
    $out =~ s/\[#(.+?)#\]/);print SixtyLinesTemplate::convert($1); print q(/g;
    $out = 'print q('.$out.');';
    open my ($FH) , '>' , $cache;
    print $FH $out;
    $out;
}

1;

サンプルコード


use SixtyLinesTemplate;

my $context = {
    'title' => 'Example',
    'list'  => [10,'<A&amp;B>']
};

SixtyLinesTemplate::include_template('template.tmpl',$context);

サンプルテンプレート


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head&gt;
    <title>[# $c{title} #]</title>
  </head&gt;
  <body>
    <h1>[# $c{title} #]</h1>
    <table>
[% foreach my $i (0..@{$c{list}}-1) %]
      <tr bgcolor="[% $i % 2 ? '#FFCCCC' : '#CCCCFF' %]">
        <td&gt;[% $i %]</td&gt;
        <td&gt;[# $c{list}[$i] #]</td&gt;
      </tr>
[% end %]
    </table>
  </body>
</html>

出力例:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Example</title>
  </head>
  <body>
    <h1>Example</h1>
    <table>

      <tr bgcolor="#CCCCFF">
        <td>0</td>
        <td>10</td>
      </tr>

      <tr bgcolor="#FFCCCC">
        <td>1</td>
        <td>&lt;A&amp;amp;B&gt;</td>
      </tr>

    </table>
  </body>
</html>

foreachんところが汚く見えるかもしれませんが、あれは添え字を取ろうとするとああなるんでご勘弁を。

普通ループするだけならforeach my $item (@$c{title}) でいけますゆえ。

あと存在しない変数とか使うと死んだり警告でたりするのでevalの前にno strictとno warningsをやった方がいいかもねぇ。

って何まじめに検証してんだ俺・・・orz

追記:

SixtyじゃなくてFortyだね。恥ずかし!

追追記:

danさんに添削頂いたYO!

でも&amp;の奴はちゃんと書いてるんだけども投稿すると勝手エスケープされてしまってるんだよね。何でだろ?

ちなみにこのconvertの処理はCGI::Utilから拝借しました。

2007-10-25

http://anond.hatelabo.jp/20071025165955

女子高生プログラマ

プログラムと名乗っておいてLLというのもありえない。

高校生ぐらいならまずjavaあたりのコンパイルものにいくんじゃないの?

あってもFlashアクティブスクリプトあたりから入るんじゃないか。

いきなりwebアプリケーションはないよ。

いや、いなくもないだろうけど、そんなひとつの言語に特化するなんてことがまずありえないよ。

rubyPythonの話題すらないのは自分のフィールドを取捨選択したあとのおっさんだからじゃにゃーのかな。

ここ5年ではじめた子がperlからという選択肢がありえない。

ありえないものだらけだ。

で、だれのこと?

2007-10-20

[][][][][][]

twitter

TWTR: Summary for Twitter, Inc. Common Stock- Yahoo! Finance

Twitterの株式公開初日。株価は74%上昇して45.10ドル。時価総額は318億ドル | TechCrunch Japan

Twitter、今年6月にユーザー5億人超か―ブラジル急成長、ツイート数では日本語が依然英語に次いで2位 | TechCrunch Japan

GOOG: Summary for Alphabet Inc.- Yahoo! Finance

rails

Railsにある20%のソリューションで問題の80%を解決できるようにしています。

Twitter創始者が語るWeb 2.0要諦@IT

http://www.atmarkit.co.jp/news/200711/16/twitter.html

ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。

Ruby on Railsを使って2週間で最初の動くバージョンを 作り上げた



はてなブックマーク - Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介

Ruby on Railsで10分で作るTwitterもどき

Ruby on Railsをすぐ使う - Ruby on Rails 2.0アプリを1分で作る:ITpro

Ruby on Rails 2.0アプリを10秒で作る2.0

katoy: cocolog: Rails 2.0.2 は 5 行でアプリ雛形作成/起動ができる!

Railsの教科書

Ruby on Rails チュートリアル:実例を使ってRailsを学ぼう - Michael Hartl (マイケル・ハートル)

Ruby on Rails ガイド

Ruby on Rails

Rails基礎文法最速マスター - cod.note

クックパッド

クックパッド株式会社 に行ってきた! - 941::blog

Ruby on Railsで1億PVのサイトの開発が出来て、エンジニアは5人しかいない

クックパッド(株)【2193】:株式/株価 - Yahoo!ファイナンス

Wantedly

ウォンテッドリー株式会社 に行ってきた! - 941::blog

ココロオドル仕事を見つける方法 | 仲 暁子 | 本 | Amazon.co.jp

Wantedly 航海日誌 — 私のようなの素人のためのHacker Way

Wantedlyを2年間Herokuで運用した話

はてなブックマーク - アイディアに価値はない by 仲 暁子

python

http://anond.hatelabo.jp/20130101082333

rails

[ruby][camping][4kb]

[ruby][sinatra][シナトラ]

Focus on Technology:Ruby on Railsとエンタープライズを結び付ける「Merb」 (1/2) - ITmedia エンタープライズ

Rubyに恋をし、Rubyが長きにわたって存在すると感じた人はたくさんいる。そして彼らはもっと強力なものを求めたのだ」

Merb 1.0 リリース記念に、Merb がどんだけすごいのかを紹介した海外の記事を翻訳してみた

速報: Merb と Rails が統合 - kwatchの日記

http://www.google.com/webhp?hl=en

http://www.google.com/search?hl=en&q=ruby&btnG=Google+Search

ブラウザで Ruby on Rails 開発! Heroku を使ってみよう - WebOS Goodies

ブラウザでRails開発が完了する衝撃の簡単さ - builder by ZDNet Japan

CやPerl、Python、Rubyをブラウザ上で実行できる「codepad」:phpspot開発日誌

C言語をブラウザで実行、Ruby/Python/Perlも然り | マイナビニュース

Rails Ruby Rubyなら"Hello World"が公式サイトをたずねて2分 Rubyなら”Hello World”が InstantRails を解凍してから2分 - opportunity_costの日記 Ruby on Rails 2.0アプリを1分で作る:ITpro UK STUDIO - Ruby on Rails 2.0アプリを10秒で作る2.0 Rails 2.0.2 は 5 行でアプリ雛形作成/起動ができる! JRuby on Railsに15分でアプリをデプロイする方法 | マイナビニュース プログラミングを独習するには10年かかる はてなブックマーク - スラッシュドット ジャパン | Ruby on Railsは万能薬ではない [Ruby][Rails]Sites Powered by Ruby or Ruby on Rails  こんなフレームワークを作るにはC++やJavaやPerlやPHPでは無理で、Railsを作るにはRubyかSmalltalkを使うしかなかったのである。 hp12c - Railsでブログを作ろう!(Creating a Weblog in 15 minutes)  Ruby on Rails学習の高速道路 - バリケンのRuby日記 - Rubyist diaspar.jp - 



Odeo内で始めた小さなプロジェクトが「Twitter」だ。Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。

Ruby on Railsで1億PVのサイトの開発が出来て、エンジニアは5人しかいない

http://blog.kushii.net/archives/1350951.html

http://d.hatena.ne.jp/gamella/20081027/1225119262

3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。

Gregg PollackとScaling Railsハウツー

1つには、Railsアプリケーションをうまくスケーリングするために必要なすべての情報Rails開発者に与えること。

開発者は、これらの技術使用する必要はないかもしれません。

しかし、できれば、開発者ビデオを見て、何百万人の同時ユーザーを扱うRailsアプリケーション

作成できます、とクライアントに言える自信を持ってもらいたいのです。

2番目に、Railsアプリケーションをスケーリングすることがどれほど簡単かを、他の言語開発者に示すこと。

http://www.infoq.com/jp/articles/gregg-pollack-scaling-rails



Ruby on Railsで10分で作るTwitterもどき - ZDNet Japan

http://japan.zdnet.com/video/screencast/story/0,3800079413,20354695,00.htm

Rails 2.0.2 は 5 行でアプリ雛形作成/起動ができる!: katoy: cocolog

http://youichi-kato.cocolog-nifty.com/blog/2008/01/rails_202_5_9198.html

Ruby on Rails 2.0アプリを1分で作る - Ruby on Railsをすぐ使う:ITpro

http://itpro.nikkeibp.co.jp/article/COLUMN/20080606/306873/

ブログとショッピングサイト作成のケーススタディを解説します。音楽系サイトを選んだのは、画像、音声、動画など、今のWebで考えられるほとんどのコンテンツを扱っており、Railsの良さを一番実感していただけると思ったからです。

30分で Rails youtubeアプリ - 脱・下流エンジニア (仮)

hp12c - Railsでブログを作ろう!(Creating a Weblog in 15 minutes)

Ruby on Railsで10分で作るTwitterもどき - ZDNet Japan

RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series): Michael Hartl, Aurelius Prochazka: 0785342480795: Amazon.com: Books

Practical Rails Social Networking Sites (Expert's Voice): Alan Bradburne: 9781590598412: Amazon.com: Books

Beginning Ruby on Rails E-Commerce: From Novice to Professional: Jarkko Laine, Christian Hellsten: 9781590597361: Amazon.com: Books

Rails Pocket Reference (Pocket Reference (O'Reilly)): Eric Berry: 0636920520702: Amazon.com: Books

http://127.0.0.1/phpmyadmin/ http://127.0.0.1/mysql/

http://127.0.0.1:3000 http://localhost:3000/entries/

http://127.0.0.1:3001

http://127.0.0.1/

http://127.0.0.1/cgi-bin/c.cgi 

C:\InstantRails\cgi-bin\c.cgi

http://127.0.0.1:7000

キーワード「ruby」を含む新着エントリー Ruby Inside: The Ruby Blog

Rubyとは - はてなキーワード

 Ruby関連MLの自動翻訳サイトが公開 - JRubyのNutter氏に触発 | マイナビニュース

ruby-list

rails:ML

Rails Forum - the ultimate Ruby on Rails community

ruby-talk

Route 477(2007-02-05)

gem install hpricot

gem install mechanize

# インフォシークから株価取得して整形:特定属性持っているtableを取得

yahoo の最新トピックスをゲットしてみる

watirを試す

コードを実行すると、IEが立ち上がって、

勝手ログインし、メールの画面まで行く。

Perlめ!

なんだよ! CPANの読み方って「くぱぁ」じゃないのかよ!

だまされた! めっちゃだまされた! ものすごく恥かいた!><

2007-10-16

ペリーの「PHPにしてくださいよ」

ねぇ〜、PHPにしてくださ〜い。え、PHPにしてくださいよぅ。

ねぇ〜。もぅ。OHねえ〜、いいじゃないよぅ〜

減るもんじゃなしぃ〜。

へ、ペリーとても悲しい。悲しいでーす。ねぇ〜ぃ。PHPにしてくださいよぉ〜。

もう〜。開発者の血を入れ替えてくださいよぅ〜。ねえー。も。もーう!

な、ねえっ!もう!なっ!なに!もう!

こ、このっ、じょ、じょ、上場

なに、それ?

武器

なに?それ?なんの意味があるの?

何をそれで実行しようとしてるの?

あなたがーた。

怒り?哀しみ?喜び?喜怒哀楽

なんっ!

いいじゃなーい、PHP〜。

PHPにすれば、済むのです。

・・・・

おぅ。なしのつぶて、でーすか?

ねえ。

ちょっ、そっちのはじっこに座てる人、そう、そう、あなた。

あなた、どう思う?

あなた、HTML派?XHTML派?

ねえ。

ちょっ、喋ってよ〜。ねえ〜もう。

ちょ、さっきから、黙って、し、もう〜、喋ってよぉ〜。

しかとしかとですか?

ふんっ!

じゃあ、私はあなた方がそうやって私をしかとする様を、

し・か・と・見守ることにします・・・

・・この、プログラムヲタ!!

あ、あっ、うそ、うそ。気、悪くした?

あっ、あっ、あ、でも、そんなにオタクっぽくないよね、Perlerって。

オタクじゃないのね。おーん・・

お〜ん、ペリーねえ、この間、サイトつくったの、美容室の。

企業サイトなら、カウンターつけようと思たんだけどもねぇ。

お店だったからね、トップページFlashにしたの。ネ。

ううん、初めてじゃないのね、二回目。うん。

あの、<BGSOUND&gt;でMIDI流すのもいいかなぁと思たんだけどねぇ、ちょっと大袈裟になるでしょ?

だから、うん。

最初はねぇ、Swish。で、今度のはAdobeFlashなんだけどねぇ。

うん、二回ともトップページFlashね。うん。


PHPにしーてくーださーい。ふー。PHP〜。

へぇPHP、してくださいよぅー。NO〜。

わう、もう!なっ!何やねん!なっ!

もぅ、トップページいったら、招待されろ。招待されたら、コミュニティいけ。

コミュニティいったら、「わぁー。荒らしだあー!」

なにそれ!

で、「たった4日で退会しる!」。

英語デ言ッタラ、We can not allow you.

なに?口説いてるのそれ?それで口説いてるつもり?

Yahoo!、落としたつもり?

もう!なっ!

PerlとPearlの発音の区別もできないくせに!ねぇ。

DOCTYPEも出さないのぅ?ここん家は?

DOCTYPEも?ああ、いい、いい。あっ、もう、まぁ、ま、ん。

コード読めないしね。うん、社長だから。んー。

もうねえ、私の好きなね、日本のことわざに、

「果報は寝てまつ」っていいます。

寝ましょか?ここで。寝させてもらいましょ〜か?

おっ、ほほほほほほっ。

It's a joke ! joke! ジャ、ココハじょーくあべにゅーデス。

ハハハ・・・OH!OH!OH!OH!

ふ〜。

PHPしてよ〜。ぴいえっち、・・ねぇ。

Perl、それ、そんなPerlしてないで。

PHPにするといいよ〜。

もてるよ〜。もてちゃうよ〜。もてもて。ダヨ〜。

もう、ねぇ、スゴイ。それに。

快適なDreamweaver的生活もねぇ、エンジョイできちゃう。

できちゃう!

register_global、どこでもパラメータねぇ〜。PEAR::HTML_Form、便利ね〜。

<?php ?>。さわやか〜。Zendの作ったFramework。OH!最高〜ッ!!

それに引き換え、Perlのままと、jcode.plはぬるぬるする。cgi、動かない。

で、サブルーチンハッシュラクダ本。OH!みんな古い!

あっ〜、もうPerlッ、最低ッ!!

もう。あなた達だけよ、今時、Perlしてるの。

おー。だから、ね。いい?だから今こそ、PHPにすれば、い、いーの。

ねえ、ねぇ、でないとね〜。mixiバッシングするよ。

孤高の天災バカ社長なめると、後が怖いよ〜っ。

ねぇ、どう怖いかは、詳しくいわないけれどもねぇ。

2007-10-13

http://anond.hatelabo.jp/20071013022151

おう。ありがとう

まず、 use FindBin および use lib は使えない。なぜならば、FindBin,lib ともにモジュールが参照できないから。

フルパス指定してやれば,できるのかもしれない.

ちなみに解決しました./usr/bin/から/Perl/bin/にジャンクションを張り,/usr/bin/perlを参照していたのを,/usr/から/Perl/へとジャンクションを変更したら,@LIB内はC:/Perl/site/lib,C:/Perl/lib,.となりました.

相対パス関係っぽい.

http://anond.hatelabo.jp/20071012164250

呼び出してるモジュールが、C:/Perl/site/libでもC:/Perl/libでもないところに入ってるのではないか。

use lib './lib';

とか

use FindBin '$Bin';
use lib "$Bin/lib";

などのようにして、モジュールへのパスを追加してはどうか。

2007-10-12

@INCってなんやねん

XAMPP1.6.4ちゃんとactiveperlちゃんで動かしています。

Perlスクリプトちゃんがが動かないのです

apacheエラーログはこんな感じちゃん

Can't locate ochinchin.pm in @INC (@INC contains: .) at omannmann.pl line 10.

あれー

omannmann.pl の 10 行目にある ochinchin.pm が見つからないよ。 @INC には.があるよ。

ってことだよね?

perl -le "print foreach @INC"

では

C:/Perl/site/lib

C:/Perl/lib

.

って出てるのになんでかなあ

2007-10-08

いまどきphpでなくてperl云々の人

  • [mixi あつしさん | これは笑える]

言ってることは間違っていないのかもしれない(私はよくわからない)が、

コメント欄におけるこの人とこの人のマイミクの会話が激しくキモい

完全に素人ですよね。

何にしてもプロの感性(技術も)が感じられないですね。

なんというか、驕りなのかよくわからんがとにかくキモい

2007-10-07

寺田さんの発言がラヴリーすぎる件

はてブの人気エントリに「今回のmixiのリニューアルについて - 専門家に聞く」ってのがあるんだけど、そのページのにある寺田さんの発言がステキすぎて目が離せません。

今回のmixiリニューアルですが、デザインのみならずCSSや文書構造の設計も話にならないほど悲惨な状況です。

そのような目に見えない内部的な問題にくらべるとデザインはまだ一般的なレベルと言えると思います。

文章構造、悪くないと思うけどね…。

とりたてて良くもないけど、そこそこいい感じじゃないすか?具体的にどう悲惨なんだろね。

今までの化石みたいなTableレイアウトソースに比べれば、死ぬほどマトモでしょ。

個人的にはHTML要素のidclass指定にLowerCamelCaseを使うのは好きじゃないとか、onmouseover・onmouseoutみたいなDOMイベントHTMLソース上に書かなくてもいいじゃんとかはあるけど。

但し、せっかくCSSにしたんだからHTMLソースを短くする努力をした方が良かった気がする。

PVが半端ないから、HTMLソースの量でも結構大きく響いてくるはず。

そもそもせっかくリニューアルといっているのに、いまだにphpではなくperlで動いているあたり。。。

本当にそうですね…!やっぱり時代はPHPですよね(笑

今回のリニューアルは「テンプレートリニューアル」であり、「システムも含めた全面的なリニューアル」ないんでそりゃ変わらないでしょ。

数千台のサーバで運営されており、実績のある現在Perlベースシステムを、PHPベースに変更することで何のメリットがあるんですかね?

PHPだと、Perlと違い実行時にプロセスが立ち上がらないので高速です」とか言いそうな予感がプンプンしますが…。

Javaベースにして、Oracleにしましょう」といった話であれば、はいはいSIer乙って気分になるんだけど、PHPが出てくるところがなんとも微笑ましいです。

どう考えても創業以来からの身内で開発をしているとしか思えません。技術や知識が古く、独自の思考をもった温室エンジニアたちが、権限ばかり与えられて新しく入ったデザイナーやコーダーと上手に連携できていない様子が目に浮かぶようです。

んー、1000万IDあるサイトを、運用する技術とかだけでも結構なもんだと思うけどね。

サイトのスケールアウトの難しさとか… 知ってるのかな?

どこまでいっても「なぜ上場したのか・・・」という問題に尽きます。

上場なんかせずに気の知れた仲間たちと、古き良き馴れ合いマイミク世界を堅持すれば良かったものを。。。

この辺は同意。mixiって上場して何したかったんだろね。

リニューアルについての個人的な雑感

なんかあんまり触れられてないけど、今回のmixiデザインリニューアルで一番強く思ったのは「mixiが持っていたキャッチーさが薄くなってしまった」ということ。

同時期に開始したGreeと、mixiの二つのSNSの内、mixiだけが圧倒的な勢いでユーザ数をのばしていった理由。

それが「mixiの持っていたキャッチーさ」だと思う。

他のウェブサービスでは見ない原色系の色遣い。パッと見て親しみやすい感じ。オタクっぽくない感じ。

そこがmixiアイデンティティだと思っていたので、普通なっちゃったことにビックリした。

初期のデザインコンセプトが「人と人をつなげる楽しいウェブサイト」だったとすると、

今回のリニューアルデザインコンセプトは「ソーシャルプラットフォーム」みたいな感じで独自色を薄くした感じなのかねぇ…。

あと、非常に分かりづらいメニュー構成(操作メニューが2つあって、その意味づけがはっきりしていない)は、変わらないのが相変わらず駄目だと思った。

2007-09-29

http://anond.hatelabo.jp/20070929021424

よく知らない俺が適当に答える。

WEBアプリの本質は寄せ集め。

HTMLCSSの知識は必須。

これなしには話が始まらない。

あとは機能によってはJavaScriptとか。

だがアプリ作る側の人間としてはだいたいわかってればおk

機能が重要である多くの革新的なWEBサービス、においては外見にこだわりすぎる必然性はない。

Perl,PHPなどのエンジン側のメカニズムについては徹底的に研究して損はない。

あ、つうかスクリプト関係はあとで足をとられる可能性があるのでちゃんと研究したほうがいいのかもな。

OSとかDBとか環境関係は複数個を覚えようとすると面倒なので、どれか一個を決めうちで覚えとく。普通に使う分には深い知識は不要。

クロスサイトスクリプティングとかは、最初は考える必要はない。

ちゃんとしたデバッグをする前提でオレは考えているからだが、

どうせ後からデバッグで拾われるに決まっている。

そういう変更を見込んで後からでも変更可能なコーディングにしておく。

重要度というか学習時間でいうと、

Perl,PHP>JavaScript>CSS>HTML>DB 環境まわり>XSS

フレームワークは使ったことないので知らん。

mixiから書類選考不合格通知がきた・・・

確かにオレはPerlとかPHPとかそんなの使ったことない。

C++とかJavaとかしか使ったことないさ。

年もそこそこいってる。

学歴資格もないさ。

落とすのはいいよ。

でもさ、なんだその落選通知。

ただのコピペじゃん。

オレがあんたの企業に応募するために使った時間はどうなるんだよ?

こっちだって調べたり考えたりする労力がゼロなわけじゃない。

それをコピペではじくのかよ。

いいよいいよ。偉いんだろうさ。

いつまでも自分が偉いと思っておけよ。

死ぬまで「資本があるやつが偉い」と思っていろ。

mixiなんざSNSとしては初歩の初歩しかカバーできてないんだよ!

おまえらには未来の本来あるべきSNSの姿がみえちゃいねえ。

更新頻度と更新内容は現状にあぐらかいてるとしか思えん。

センスを感じねえぜ。

いつかオレがもっとマトモなサービスを作ってつぶしてやるからな。

首を洗って待っていろ!

Web アプリケーションの本質っぽいもの

Web アプリケーションの作り方を教えてくれないか。

いま、自分でちょっとした Web アプリケーションなるものを作り始めたところ。プログラミングは前から趣味でいろいろやってたけれど、大学に入ってからはほとんど数値計算でしか使ってなかったから、とても新鮮な感じがしている。楽しい

ところがちょっとでも規模が大きくなると、とりあえず MySQL が必要になって、 Perl とか Ruby とか PHP とか Python とか ... なスクリプト言語をもっと詳しくしる必要が出てきて、そしてそれ上で動くフレームワークを選んで理解して、さらに HTML とか CSS とかで表示させて、JavaScript リッチユーザインタフェースを... なんて具合に、やらなきゃいけないことが急に増えてしまいます。どうしたらいいんですか?

HTML とか CSS仕事っていうのは、刺身タンポポを乗せる仕事なんですか?勉強するだけ無駄ですか?でもこの知識がなかったらみっともないデザインなっちゃいますよね。

フレームワークに頼って MySQL を学ばないなんて邪道ですか? Rails を信用しちゃだめですか? Django はどうですか?さすがにマシン語で書け、なんて言いませんよね。

それにセキュリティの知識も必要ですよね。SQL インジェクションとか、XSS とか CSRF とか、聞いたことあるけど意味なんて知りません。こういうのをちゃんとしてないと、悪用されたりしちゃいます?

C10K とか I17N とか L10n とか、もう許してください。

ここで書いたようなことが全部できないと、Web アプリケーションを作ることができないのでしょうか。

もしそうでないのなら、どの知識が必須で、どの知識は必須ではないのですか?

Web アプリケーションの本質ってなんですか?

っていうのを疑問に思ったけれど、そういう技術の寄せ集めでできているってところが Web アプリケーションの本質なんだろうなぁ。たぶん。

2007-09-28

[][]私はこれで perl から乗り換えました

OO, Perl, Ruby

Perl から Ruby への移行メモ

INTRODUCTION OF RUBY

class

404 Blog Not Found:coders.each{|you| you.get(this) if you.langs[0] != 'ruby' } # - 書評 - 初めてのRuby

1章 ようこそ、Rubyのある生活へ

1.1 Rubyの特徴

1.1.1 オブジェクト指向言語

1.1.2 より良いPerl

日本 Ruby 会議 2007 - Log0610-S5

ある研究によれば、生産性はそれぞれのプログラマでそれぞれ違う。

でも、あるプログラマに着目すれば、

そのプログラマ時間あたりに書けるコードの行数は、プログラミング言語によらず決まっている、

たとえば一年に50,000行なのだそうだ。

行数が決まっていたら、

どの言語で一番多くのことを達成できる?

そう、Rubyだよね。

どうしてそんなに Love Ruby ?

例えば C のプログラムより 50 倍遅くなったとして、実行時間はどのくらい変わるだろうか?

もし C のプログラムが 0.01 秒で終わる としたら、

Ruby 版は 0.5 秒。あなたのプログラムは 0.49 秒速くす るために C で書く価値があるのか?

プログラムは開発の時間よりも保守時間のほうがかかるというのはもはや常識だけども、

Ruby で書いてあれば例えば、

C で書いたプロ グラムよりも楽に保守できるはずだ。

そういう点でも Ruby は非常にいい。

だいたい、スピードに対してごちゃごちゃ言うなら C じゃなくアセンブラで書けばいい。

それをなんで C で書いてるのかって言えば、

それはもちろん「コードがわかりやすい」とか、「早く書ける」って のが理由だろう。

そして、Ruby は C よりわかりやすいし速く書ける。

ということは、「C よりも Ruby」というのは非常に自然な選択では ないだろうか?

Perl, Python, Ruby の比較

404 Blog Not Found:「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い

実行速度より実装速度(前編) - Object Station

ポール・グレアム「プログラミング言語が解決するもの」 - らいおんの隠れ家

Rubyが解決: Perlはその場しのぎだし、Lispの文法はおっかない。

ログイン ユーザー登録
ようこそ ゲスト さん