「Perl」を含む日記 RSS

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

2012-09-12

プログラマ採用面接における足切り質問

Joel氏の採用面接ゲリラガイドにもあるように、デキる開発者と一緒に仕事をしたいというのは、開発者なら誰でも思うことだ。

そこで、自分面接する側だったら、初歩の初歩レベル、即ちプロとしてあり得ないレベルの人を足切りするような、くだらない質問を2つ考えてみた。

JavaVB.NETC/C++PHPPerlといったオープン系では広く普及している言語で、ごく普通PCサーバで動作するコードを想定し、実装方法を考えてもらうというもの


  1. 1からnまでの整数を加えるといくつか求める。
  2. ある年が閏年かどうか求める。


ここでポイントとなるのは「プログラムに正解はないが、明らかな間違いはある」という考え方。

まり2つの質問に対して、明らかに間違った回答をしてきた人が失格ということ。

では上の問いで想定している明らかな間違いは・・・


  1. n回ループする処理内でループカウントしている変数を足していく。
  2. 4で割り切れる年は閏年だけど100で割り切れる年は(中略)というロジックを書く。


どっちも教科書でよく見るやり方だけど、仕事でそれやるのは頭悪すぎて話にならないということで。

ちなみにそれぞれの質問で何を見ているか、デキる開発者には一目瞭然だと思うけど、説明すると


  1. シンプルでエレガント()で力強く、高速かつ可読性も高くて(中略)そのためのアルゴリズム・・・という工夫を実装において考えられるか
  2. 誰もが欲しいと思うものは既に用意されているだろうという想像力を発揮してサボれるか


結局、コードを書くときに一番大事なのはそういう能力であって、間違っても努力気合じゃないってこと。

最後に、各質問の正解例を書いてみるとこんな感じ。


  1. n(n+1)/2
  2. 求めたい年の2月29日0時0分0秒をtimelocal()的な関数に放り込んで、結果がエラーだったら閏年じゃない


願わくば、こんなのよりもっと驚くような回答をする人と仕事したいっす。

2012-09-06

ゲーム法律

東方同人サークルが無許可でボドゲをパクった挙げ句売り逃げる気満々

東方同人サークルあゆ屋が無許可でボドゲをパクった挙げ句売り逃げる気満々 まとめ - Togetter

知財関連なのでと経緯をいろいろと読んでたら法律関連が微妙に混乱してるように見えた。

気になったので、ちょっと突っ込んで調べてまとめてみた。

ゲームルール法律

まず第1に、ゲームの「ルール」それ自体には著作権は及びません。

ルール」はゲームの根幹を成すものではあるが、「著作権」は「表現」を守るものであって、「アイデア」を守るものではないからです。

ゲームの「ルール」と言うのは「アイデア」の部類に属すため、著作権法の対象外なんですね。

したがって、「遊び方を盗んだ」だけなら、少なくとも著作権では守れません。

 

では守る方法は無いのか?ですが。

アイデア」を守るには、「特許権」「実用新案」などがありますが、

特許
自然法則を利用した技術思想の高度な創作
実用新案
自然法則を利用した技術思想の創作。ただし「有体物の形状」である事。

と言う事で、ゲームにはどちらもなじみません。

まぁ、これら二つとも基本的に産業振興のためのものであって娯楽は想定外ですから、この時点で登録の対象外になりますが。

 

と言う事で、事実上ゲームルール(遊び方)」と言うものには権利が無いんですね。

 

ゲームルール著作権

ところが、ここからは話が変わります

ゲームルール、それ自体を守る法律はありません。

しかし、ゲームルール「ブック」。つまり「遊び方の説明書」と言うのは「ルールアイデア)の表現物」となり、これは著作権の対象となります

 

そこで今回の状況をチェックしてみたのですが

eo お金ないんでルール読んで妄想遊戯: 東方版シャドウハンターズに、池田氏が困惑

説明書について、なんだか怪しそうです。

他のところも情報収集してると、一応、カードについてはそれっぽい変更を加えていたそうですが、それも微妙なようです。(URL失念。あゆ屋のブログ記事の消去されたものだったかな?)

 

と言う事で、どーもこの辺りで著作権法の二十七条翻訳権翻案権等、を踏んづけているように見受けられます

 

はいえ、本格的にチェックするには実物で見てみないとなんともいえません。

そこまでやる気は無いのでルールについてはこれくらいで。

ゲームボード著作権

ところで、電源不用ゲームと言うのは、ルールだけで終りと言うものばかりではありません。

汝は人狼なりや?のように、ルールだけでも十分成り立つものもありますカードペルソナを決めるなどはフレーバーであって、ゲームルール本質では無い)。鬼ごっこかくれんぼなども、ルールだけで成り立つものでしょう。

これとは別にルールが道具を使うことを前提としたものも大量にありますトランプゲーム各種のように。お手玉あやとりなどもそうですね。他、福笑いカルタ人生ゲーム囲碁将棋 etc...ドイツボドゲを並べても面白そうだが、際限ないのでやらない。

 

今回のシャドウハンターズもそのように、いくつものカードコマを用います

シャドウハンターズ

そこで、問題となったものを見てみると

eo お金ないんでルール読んで妄想遊戯: 『シャドウハンターズ』 東方版

ボードデザインオリジナルとほぼ同じなんですね。手直しが若干入っている程度。

 

ボードデザインと言うのは、言うまでも無く「表現物」です。よって、著作権法の対象となります

そして、権利管理者が「アウト」をTwitterで明確に示した時点で、「完全にアウト」なんですね。

権利者が再販のために動いているたと言う話や、デザイナー権利関係についてまとめるのに2年かかってるなども含めると、今回の行為を怒るのももっともかと。

まとめ

以上のように、ゲームルール(遊び方)それ自体は法律による権利としての保護対象にはなりません。

したがって、シャドウハンターズを「参考に」オリジナルボードカードルールブックを再構築した場合は、オリジナルゲームとして販売可能だったわけです。

ゲーム製作者は腑に落ちないでしょうが、これが法律解釈になると考えられます

実際に、ついこの前の釣りゲーの法廷でも、「創作表現(著作権が発生する)」であるのか、或いは「ルール普遍表現著作権が発生しない)」であるかで争われています。「ルールについてのよくある表現である表現ではあるが創作ではない)」と言う考え方な分けで、「ルール」が似てることが問題じゃないんですね。

 

そして今回はルールの問題よりも、ボード表現コピー改変なので、こちらで完全にアウトです。

ゲームに使用する表現物のコピーと言う意味では、任天堂花札ベースキャラクターを入れ替えていたタイバニ花札騒動なんかが最近の参考になりますかね。

タイバニ同人花札騒動のまとめ - Togetter

 

てな所で。

おまけ(修正)

サーチ中に意匠「権」を想定して語ってる方が。しかゲームボードなどには「意匠権」を及ぼすことはおそらく無理です。

デザイン意味で「意匠」の単語を用いることは(知財関連を語る上では紛らわしいですが)間違いとはいえません。

しかし、特許権実用新案権と同じく、意匠「権」となると、産業利用であることと、登録主義であるため、このような娯楽の場合権利は無いと考えておくのが妥当かと。

今回はおそら意匠登録は行われていないと思われますので、意匠権は発生していないかと。(理由修正)

 

著作権は「無方式主義」であるため、表現された物があれば自動発生します。

商標権は「既知の商標」と言う概念があるため、未登録でも認められる「場合があります」。Perl を第三者が勝手に登録したが無効化した!なんかが、最近あった例ですかね。コナミ登録商標問題はすでに過去かな。逆に認められなかったのが「東方Project商標登録問題です。

 

と言う事で、特許権実用新案権意匠権性格は、著作権商標権とは若干違うので、法律として語る場合は注意しましょう。

 

追記

http://anond.hatelabo.jp/20120906191656

突っ込み受けました。

ボードや駒でも意匠登録すれば権利受けられるよー……という事で、打ち消し入れました。

 

意匠についてはいまいち勉強足りない部分なので、何かと記憶が混ざった?(苦笑)

突っ込みありがとうございました。まだまだ勉強が足りません(遠い目

2012-08-27

サーバ情報監視の仕組み

cf). Software Design 2010/01号

vmstat を実行するスクリプトを書く
!#/bin/sh
vmstat 5 2 | tail -1 | awk '{print $4,$5,$6}'
xinetd のサービスとして動くようにする
  1. /etc/services にポートプロトコルを登録する
    • agent_mem 11001/tcp # memory monitoring
  2. xinetd が実行するための設定ファイルを書く
    • /etc/xinetd.d/agent_mem
  3. xinetd の再起動
  4. telnet で動作確認する
service agent_mem
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = nobody
        server          = Monitor/agent_mem.sh
        only_from       = 127.0.0.1
        disable         = no
}
xinetd に登録したポートを叩くスクリプトを書く

php場合、fopen() でもいけると思うのだが、明示的に sockopen() を使う。うむ、perlよりも楽だわこりゃ。

<?php /* -*-java-*- */
/**
 * モニタリングクライアント
 * 
 */
$fp = fsockopen( 'localhost', 11001, $errno, $errmsg, 30 );
if ( !$fp ) {
    echo "Error: $errno - $errmsg \n";
}
else {
    echo date('Y-m-d H:i:s'). "\t";
    $stmt = fgets ( $fp, 128 );
    if ( preg_match( "/([0-9]+) ([0-9]+) ([0-9]+)/", $stmt, $regs ) ) {
        $total = (int)$regs[1] + (int)$regs[2] + (int)$regs[3];
        echo $regs[1]."\t".$regs[2]."\t".$regs[3]."\t".$total."\n";
    }
    fclose( $fp );
}
cron に登録してログを取る。もしくは、スクリプトを while(1)で実行させておく

こいつをモニターとして走らせっぱなしに出来るようにする。

<?php /* -*-java-*- */
/**
 * モニタリングクライアント
 * 
 */

function mem_monitor ( $host, $port ) {
    $fp = fsockopen( $host, $port, $errno, $errmsg, 30 );
    if ( !$fp ) {
        echo date('Y-m-d H:i:s'). "\t";        echo "Error: $errno - $errmsg \n";
    }
    else {
        echo date('Y-m-d H:i:s'). "\t";        $stmt = fgets ( $fp, 128 );
        if ( preg_match( "/([0-9]+) ([0-9]+) ([0-9]+)/", $stmt, $regs ) ) {
            $total = (int)$regs[1] + (int)$regs[2] + (int)$regs[3];
            echo $regs[1]."\t".$regs[2]."\t".$regs[3]."\t".$total."\n";
        }
        fclose( $fp );
    }
}

while( 1 ) {
    mem_monitor( 'localhost', 11001 );
    ob_flush();
    flush();
    sleep( 30 );
}

2012-06-15

http://anond.hatelabo.jp/20120615143411

さぁ?元ネタは『どう頑張ってもC++でも ポインタは使う』って話だったか

ライブラリを使いこなせば 頑張れば ポインタは 見かけ上使わない。(ライブラリの中は知らない。普通 自分が書かない部分は言及しないから)

という話であって

どう頑張っても という とこだけにもっと着目すれば 値コピーで十分な場合も多いから、頑張ればポインタは使わない。で いんじゃね?

ライブラリの中を見てしまえば、JavaだろうとPerlだろうと 実質的ポインタはどこかでは出てくることになるだろうからなぁ。

http://anond.hatelabo.jp/20120614121920

ポインタ、参照(リファレンス)、束縛(バインディング)、それぞれ似てるけど同様に語ると混乱の元ではないかと。

 

ポインタメモリアドレスに型情報をくっつけたもの。加減算できる点が特徴で、それはメモリアドレス概念由来だろう。

変数というメモリ上の記憶域を指すフィジカルに近い概念で、配列運用(*p++で回すとか)、引数の参照渡し(コピー抑止、複数戻り値の実現)、メモリのもの管理malloc)あたりで、基本手作業による最適化のための仕組みという側面が近いと思う。

 

perlだと、変数はやっぱり記憶域ではあるけれど概念として一段抽象化されていて、メモリという連続した領域じゃなく独立した領域の集合となっているから、リファレンスの加減算はなし。

また、配列も単なるメモリの並びからより抽象化してリストもできたから、配列運用や複数戻り値リストがあるのでリファレンスに頼ることはなくなる。

ただ、オブジェクト概念があって、オブジェクトオブジェクトとして入れる変数は用意せずリファレンスとすることで、文法上の変数の型を増やさない、コピー時のコンストラクタの問題を回避するなどのほか、オブジェクト概念を援用して無名関数無名変数ファイルハンドルなども変数引数として扱えるようにした。

 

で、pythonはもう一段推し進めて、今までの数値や文字、配列オブジェクトとみなし、変数はすべてオブジェクトを指し示すもので、記憶域は変数としてあるのではなくオブジェクトとしてあり、変数リファレンスという特別なものがあるのではなくなり、変数記憶域をもっていて値が代入されるものではなく、既にあるオブジェクト変数名という名前(ラベル)を付けて束縛する行為とされる。

見方を変えると変数はすべてにおいてリファレンスで、代入とは値そのものの代入でなく値へのリファレンスの代入で、引数も参照渡しであるが、引数に代入したところでリファレンスが変わるだけで元の値が変わるわけではなく、しかし他の演算などでは自動的にデリファレンスされており、単純な数値や文字列など、自身を変更する機構を持たない(できない)ものにとっては実質的に今までとの違いはないに等しい。隠ぺいといえば隠ぺいか

java, javascript, rubyもおおむねこの考え方でよかったと思う。

ただ、phpは若干両者が混じったところがあって微妙なところがある。

 

参考

2012-05-28

http://anond.hatelabo.jp/20120526143535

カネの力ねぇ。

デファクトになるにカネは必要だが、カネを得るには良い所がなきゃダメだろ。

つか、言語言語ってやる事出来る事は五十歩百歩だろ。要はやり易いか否か。

それ決めるのはライブラリライブラリ語らず何語れっての?

後は文法が単純単機能なことだな。言語としては単純で、標準ライブラリが多機能でそっちで何でもできる。それが一番。

無駄に文法多くて自由に書けるとかいったらカオスってクソになってくに決まってるだろ。

後付けライブラリが沢山、自由に選べる作れるってのもカオス。自由って何求めてるの?

C++はCの資産あるうちは良かったよ。でもそれだけ。あとに碌なライブラリ残さなかった。

javaライブラリに力入れてたし、文法もまあまあすっきりしてる。PHPも近い所はある。

javascriptダメだ。ただDOMがある、それだけだ。

pythonライブラリがそこそこいい。ただ、言語自体は下手に色々ありすぎ。

それでもperlよりマシ。あれはCとshしかなかった時代からこそのもの

rubyrailsがなければ何もなし。あれがすべて。

perlの後釜なんにするの?python以外あるの?つか、日本に選択権ないって言ってるじゃん。

デファクトなっちゃうんだから拒否権ないつーの。

つか、javascriptDOMなきゃ意味ないし、javaVMなきゃ意味ないし、PHPHTMLなきゃ意味ないし、

C#Microsoftなきゃ意味ないし、Objective-CAppleなきゃ意味ないし。

棲み分け出来てるのに、それ以外どうするの?

つか、SQLどうにかしろよ。

2012-05-20

アドバイス適当に書いておきます

http://d.hatena.ne.jp/yamasawa8911/20120519/1337407233

(今はまだ欲しいものがよくわかりません。むしろオススメもの、僕のためになるものを教えてください…)

 だそうなので、俺が思うところを書いておきます

そのWindowsを投げ捨てて、Linuxを入れろ

パソコンMacじゃなくてwindowsです。

基本的にMacのほうが羨ましいとは思うけれども(まあ、MacBookとかが欲しいんだよね、きっと)、でもきっとMacなんてフルスペックで使えるわけない。

周りの子に自慢したいとかいうのであるならば、あるいはどうしてもiOSアプリが作りたいというんだったら、それしか選択肢がないけれども、そうじゃないんだったら辞めましょう。

あとWindowsも、Windowsアプリとか、C#をいじりたいんです!っていう話であるならば、それに固辞するのも結構ですけど、そうじゃなくて、ITに行きたいなら、Windowsを捨ててLinuxしましょう。

自分Gentooが好きですけど、ハードコアすぎるので、Ubuntuのほうがいいかと思う。

Linuxとか難しいんじゃないの……とか思うかもしれないですけど、Ubuntuは素晴らしいです。

Ubuntuは、知り合いの絵師パソコンに入れたら、わりと好評でちゃんと使っていたので、それなりにパソコンが使えるならば、ちゃんと使えます

プログラミング言語関係は、そのOS依存するような環境を使いたいというわけではないのなら、Linuxにしておいたほうが、無難に使えます

なんかもう一つ言語を覚える

CとJavaでもいいとは思うんだけど、どちらもコンパイル必要だし、コードを書くのに、ある程度の量(書きたいときに気軽に書くという感じではない、という意味)が必要なので、もう一つ言語を覚えた方がいいです。

PHPRubyPythonPerlClojureHaskell、お好きな言語をどうぞ。

ただ、PHPはどちらかといえばWebアプリケーションよりかな?という気がするので、PerlRubyPythonがいいかとは思いますが、お好みで。

仕事でいうならPHPのほうが多いかなーというのはあります

自分Pythonのほうが好きですけど、Rubyのほうが割と見つけてもらえる確率は高いかもしれません。

あと、パブリックマンも「Railsでいこう!」というブログ名だったので、尊敬する人にあわせるならRubyのほうがいいんじゃないかと。

こわいおじさんににらまれたいならPerlのほうがいいでしょう。

ちなみに、Ruby on Railsは、割とWebサービスを作るのが楽になりますHerokuとかありますしね。Webアプリケーション周りということだったら、ついでにそのプログラミング言語で使われているメジャーフレームワークとか調べながら勉強するといいかもしれません。

エディタをちゃんとする

で、上記を踏まえて、エディタをちゃんと使いましょう。

パワーが有り余っているなら、総合開発環境であるところのEclipseでもいいんだろうとは思うんですけど、それはおっくう、というのならば、ちゃんとエディタの使い方を覚えましょう。

もう既にUbuntuを入れていると思うので、EmacsVimを使いましょう。Vimのほうが好きではあるんですけど、キーバインドや、その他の癖を考えるとEmacsのほうがいいかなあという気がします。

Ubuntuを入れたなら、Geditというエディタも、Windowsメモ帳の非じゃないくらい極まったエディタなので、それでもいいです。Windowsがそんなに好きなら、サクラエディタを使うといいでしょう。

とにかく、エディタ武器なので、そのあたりも考えましょう。

英語を読む練習をする

あなたはどうやら貧乏だけれども、インターネットは使えているようなので、英語を読む練習をするといいです。

英語なんて全くわからない?ノープロブレム。そんなの適当でいいです。「なんとなくこういう意味かなー」とか、あるいは英語を読むだけでクラクラしない程度でいいと思います

英語を読めると便利です。少しだけ多くの解説が読めるからです。

あと、英語が読めると「pdf Orailly」という魔法言葉が使えたりするんですけど、何に使うかは想像におまかせします。

コードを書きましょう

で、上記を踏まえてなんですが、コードを書きましょう。

コードなんて書いてなんぼです。「如何に優秀なハッカーになるべきか」という記事はゴロゴロありますが、そんなのは気休めに読むべきで、まずはコードを書きましょう。

なんだかんだいって、コードを書くのは経験がモノをいいます。量を書きましょう。そして躓きましょう。最初から質なんて無理です。

躓いたら、なんで躓くのか考えましょう。また、「こんなところが、コードを書く点で不満だなあ」と思うことがあれば、それも考えていきましょう。

偉い人がいろんなソリューションを考えてくれています最初からそのソリューションがなぜ素晴らしいかなんて理解できないとは思います。躓いて始めて「ああ、だからこういう開発手法がいるんだ」ということを理解できるでしょう。

コードを書きつつ、そのプログラミング言語を積極的に学んでいるTwitterアカウントをフォローしましょう

ついでに、コードで躓いたら、その躓いたところを、Twitterアカウントに積極的に発信していきましょう。

そのついでに、そのプログラミング言語を学んでいるTwitterアカウントをフォローしましょう。

あなたの呟いていることによっては、その人は興味を持ってくれるでしょうし、場合によっては手助けをしてくれるかもしれません。

あなたサービスを立ち上げたら、積極的にRTをしてくれるかもしれません。

Githubに載せましょう

で、最初のうちはたぶんコードの引き写しになると思います

だいたいなれてきたところで、自分が作りたいものを作ってみましょう。そして公開してみましょう。できるならGithubで。

Githubに載せる理由は、ソースコードを公開したほうが、突っ込まれる率が高くなり、それに応じて勉強になるというところと、あとはGitというバージョン管理システム勉強をしていたほうが、のちのちに便利だからです。SVNとかありますが。

あと、コードの引き写しに関しては、ブログに書くか、あるいはコードの断片を載せるという意味で、Gistに載せるという点もありますが、その辺りはご自由に。

VPSを借りるといいかもしれません

VPSを借りてみましょう。あなた貧乏だというのはわかっていますVPSとは、仮想専用サーバーのことです。

別に最初から何でも揃ってるようなホスティングサービスでもいいんですが、サーバーを一から立てるという作業は、勉強にもなります。下手な技術書より余程勉強になったりします。

最初から借りると宝の持ち腐れとなると思うので、一つのWebサービスでもいいので、それを自分マシン内でのみ見られるようなったら、借りるというのは一つの手だと思います

VPSがつらいというのならば、Herokuとかもありかもしれないです。

コードを読みましょう

コードを書くのが辛いなら、コードを読みましょう。人のコードアイデアの山です。

自分場合は、割と実例が無いと、挙動がピンとこなかったりするので、コードを読むことのほうが多いです。

特に、その言語で有名なライブラリかいいかもしれません。ガンガン読みましょう。

本が買えなければ、一番の参考書コードです。

あとは頑張ってください

あとは若さでなんとかなるでしょう。

ついでに、この文章を「テメーはなんにもわかってねえんじゃボケ」という言い方をして修正してくれる人もいると思うので、そういう人のアドバイス真摯に受けとりましょう。

あなた人生に幸おおからんことを。

2012-05-18

ハッカーVimを使う」 騙される若者たちなのか

Eclipseemacsvimより優れている点を挙げてみよう。

 

 

リファクタリング機能が強力 →本当か

CVSリポジトリの構成を直接覗ける →redmineとかを使ったほうがいいんじゃないのか

デバッガグラフィカル → それ、うれしいか

・設定できる警告メッセージの種類が豊富。→警告そんなにいるのか

復元機能が非常に充実している。 →バージョン管理ソフトがあれば普通だし

 CVSのように以前の状態に復元すること、以前の状態の →diffじゃダメか、というかなんでいまどきCVSなの

 ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能存在する。

プラグインの数が豊富、膨大。 → 数があってもつかえるのは少ない

プラグイン開発環境Eclipse自体に用意されている。 →開発環境を使って作る程のものでもなく、バッチファイルとかスクリプトでよくね

ライセンス形態CPLであり商用利用もしやすい。 →eclipse組み込んで出荷するの?

・上位版にWSADが存在する。 →WSDADってなに、WebSpereの残骸?

IBMバックアップがついている。→それは何か役に立つの

Smalltalkで有名なVisualworksの影響を受けているため、

JUnitプラグイン(Eclipse標準装備)によるテストファーストリファクタリングの他、eXtreme Programming環境が充実している。→Jenkinsのほうがよくね

SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!→コマンドラインから実行するsvnコマンドを覚えておくとはターゲットでも動いて便利だよ

・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!→スタック見るだけのことじゃないの

プラグインによってはURLを指定するだけでプラグイン自動ダウンロード自動インストール

自動アップデートができるためプラグインインストールが非常に容易。→勝手に変わったら怖くない

Eclipseから直接Tomcat, JBossなどを再起動できるSysdeoプラグインJBoss-IDEプラグイン

 という強力なプラグインが充実している。→えー、今頃Tomcat

EclipseUML Omondoプラグインによりクラス図などを書いたり、

 UMLによるModel Driven Architecture, リバースエンジニアリング

 などを即座に実現できる。→これは何だかからない

RSSリーダープラグインMP3プラグインAll The Newsプラグイン

など様々なプラグインが充実している。→それ開発ツールじゃなくて携帯でやったほうがよくね

PHP開発が可能なTruStudioプラグインPerl開発が可能なPerl E.P.I.C. プラグイン

C/C++開発が可能なCDTプラグインAspectJ開発が可能なAJDTプラグインなど

言語プラグインが充実している。→Java以外は所詮おまけだけどね

・そのほかにD言語プラグインC#プラグインPythonプラグインJavaScriptEditorプラグイン

CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン

Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン

ゲームができるプラグイン、メーラとしてつかえるプラグインWikiプラグインHibernateプラグイン

FindBugsプラグインCheckStyleプラグイン、JalopyプラグインSobalipseプラグインソロプログラマープラグイン

など様々なプラグインが充実している。→それぞれ単機能ソフトのほうが充実してるんじゃないの

 

 

どうしてもeclipseというなら止めないけど

2012-05-01

これからプログラムを始めようと思ってる人へ

はじめに僕はプログラムが苦手です。

ほんとに苦手です。

やりたいことにどうしても必要から仕方なく組んでるだけで

誰かがやってくれるんであれば絶対自分プログラムしようなんて思いません。

寝る時もあーやってこうやったらこうなるとか考えてしまって睡眠不足になるし

自分で向いてないなとよく思います

そもそもプログラムに一番最初に触れたのは

9年くらい前のことです。

はじめてのプログラムperlでした。

仕事プログラムを使う必要があったので仕方なくparlの本を買ってきてシコシコやってました。

おなじみの「 hello world 」とかをモニターに表示させたりしました。

ものすごく簡単に理解してもらうためにこういう感じ書いてるんでしょうけど

ぶっちゃけ、本やネットの通り学習していくと大半の人が前半で飽きるか挫折します。

だって、全く興味がないことをしてるんですものね。

最後掲示板の作り方とか解説してる本とかありますけど

掲示板作ってどうするの?

一人で投稿して一人でレスするの?

とか思ってしまます

自分に興味のないことをやるのって絶対続かないし覚えないんですよね!

僕もperl学習したあとJavaを覚えようかなと本を買ってきて一通りやってみたんですけど

書かれてあるとおりに電卓とか作っても全く興味ないし作りたくもなかったので

全然頭に入ってきませんでした。

しかし、これがエロい物だったらどうでしょう

多分、すごい勢いでいろんなことを覚えていくと思います!(男ならw)

最近、そんなことをエロいWEBサービスを作りながら考えていました。

エロサービスを作っていると楽しいんです!

もうほんとに楽しくて、夢中になって自家発電・・いえ、プログラムしていました。

本屋に行ってプログラム関係の棚に

楽しいエロサイトの作り方」

「はじめてのエロサイト

「3日でできるエロ

エロで覚えるphp

phpアダルトサイトを作ろう」

「できるエロサイト

エロデータベースチューニング

こんな感じのタイトルの本があったら僕だったら間違いなく買います

そして、ものすごごいスピード学習しますw

そんなわけでこれからプログラムを始めようと思っている人はエロい物をプログラムで作ってみてはいかがでしょうか?

そして、僕が今回作ったエロサービスエロ動画検索ランキングサイト

http://adultmovie-clip.com/ を作るのに必要だった知識について書いてみますので参考にしてみて下さい。


【今回作った物はどんなWEBサービスか?】

アダルト動画キーワード検索できるようにして一覧表示させ

お気に入り動画ログインなしでブックマークできるようにする。

人気ブログランキングのように外部サイトを登録できるようにし逆アクセスランキング機能をつける。

必要な知識】

html

html学習

http://www.tohoho-web.com/wwwbeg.htm

今回はhtml5でやってみた。

http://www.html5-memo.com/

http://webdesignrecipes.com/semantic-html5-with-outline/

jQuery

http://higashizm.sakura.ne.jp/jquery_first/

http://webdesignrecipes.com/jquery-beginners-guide-for-web-design/

クリップブックマーク機能に利用

jquery.cookie.jsを使う。

http://helog.jp/javascript-2/jquery-javascript-2/1406/

動画IDcookieに保存しておく。

php

phpの基礎からできるからおすすめでかつデータベース勉強もできる

これを覚えればエロ検索サイト作れる。

http://php5.seesaa.net/

エロデータ作成スクレイピングエロ動画データの収集)により行う。

htmlSQLでさくっとエロデータを収集

http://bowz.info/1916

エロデータは色んな動画サイトから収集する。

例えば

http://example.com/?name=女優

みたいに女優名前を変更していくプログラムなんかを書いて

該当ページをhtmlSQLで取得する。

そこから必要データを抜き出す。

必要な最低限のデータ項目は

動画タイトル

動画URL

動画サムネイルURL


登録ユーザーログイン機能

http://tenderfeel.xsrv.jp/php/628/

画像アップロード

http://plog.pya.jp/program/php/lesson11/sample01.html

MySQL

phpのところで紹介したサイトと同じ人が作ってるっぽい。

非常に分かりやすいのでここで学習するとさらにいい。

http://mysqlweb.net/

google アナリティクス

ランキング部に利用、APIがあるのでリファラーサイトアクセス数カウント

http://kota.oue.me/php%E3%81%A7google-analytics-api%E3%82%92%E3%81%84%E3%81%98%E3%82%8B%E3%80%82/

https://developers.google.com/analytics/resources/articles/gdataCommonQueries?hl=ja

■負荷対策

APCインストール

http://www.doyouphp.jp/tips/tips_apc.shtml

mod_evasive

DOS対策

http://www.makizou.com/archives/1341

mod_expires

これがないとアダルトサイト死ねる。

http://www.ahref.org/tech/server/apacche/389.html

mysql クエリキャッシュの設定

http://thinkit.co.jp/free/article/0707/2/6/

サーバー関係

centos

VPSを借りてこのサイトの通りやればWEBサーバーが構築できる。

できればメモリは1Gほしい。

無修正じゃなければKAGOYAのVPSでいいんではないでしょうか。

外部に公開しないのであればローカルでシコシコして下さい。

http://centossrv.com/

レンタルサーバーを借りるのであればあまり必要じゃないか

SSH・・・クライアント(Windows)からLinuxサーバーリモート操作する

apache・・・WEBサーバーチューニング関係はググりまくって下さい。

mysql・・・データベース 全文検索を利用する場合、一旦mysqlは削除してsennaインストールインストールする順序に気をつける http://anond.hatelabo.jp/20110804021353

Tripwire・・・ファイル改竄検知システム導入

chkrootkit・・・rootkit検知ツール導入

Clam AntiVirus・・・アンチウィルスソフト導入

iptables・・・ファイアウォール構築

SSL・・・通信の暗号

全文検索

senna

http://qwik.jp/tritonn/

アフィリエイト広告

経験上、サーバー代にもならないと思うので今のところ掲載しません。

以上です。

今回このサービスを作ることになったきっかけは

3月くらいから心身ともに疲れきっていたのでリフレッシュする意味で作ってみました。

エロサービスは以前にも何度か作っていてその時は非常に楽しくてわくわくしながらプログラムしていたので

それを思い出して、じゃあ作ってみようという感じです。

エロいの作ってるとストレス解消になります

いろんな意味でw

初めてのプログラムエログラムってなかなかないと思うし

学生就職活動で、WEB系の会社面接した時なんかにプログラムでどんなの作ったことある?と聞かれて

エロサイト

とか言っちゃうと「こいつできる」と思われるかもしれませんので(あくまで僕がそう思うだけですw)

これからプログラムをやろうと思ってる人はエロサービス作りで覚えてみて下さいw

きっとあっという間にできるようになります

さて最後になりますがこんなの作ってみたんでよかったら利用してみて下さい。

アダルト動画クリップ

http://adultmovie-clip.com/

ではでは!よりエロライフを!

動画検索は前にも日記を書いてるので興味のある方は参考にどうぞ。

http://anond.hatelabo.jp/20110804021353

2012-04-15

http://anond.hatelabo.jp/20120415065150

私の質問は簡単にまとめてみます

支えてくれる家族または友人がいない場合社会的制度が整っていない以上、今の環境を逃げようが結果的には死にたいであるから、さっさと今の辛い環境を受けいれろ

が理解できないからその帰結の理由を教えてほしいといっただけなのですが...論点がずれているようですね?

起業支援家としてはペテン師なんだと思ってる。

プログラマーとしてはどうなんだろう。

私は彼の熱烈な信奉者(はてな界隈にもいるよね?)ではないし、LispWebサービスを作る意義もよくわからない。

起業支援家としてというのはVCという意味でしょうか?

http://techcrunch.com/2011/06/01/paul-graham-total-value-of-y-combinator-funded-startups-is-4-7-billion/

ぜひ上を

プログラマーとしては彼の著書を二冊ANSI Common LispOn Lisp、後半は2回読み直すと考え方が変わると思います

またLispWebサービスを作る意義は当時はあったのだと思いますが、今ではメタ言語プログラムを生成することが一般的になって

きておりマクロ有用性、Slimeの素晴しさ、最適化ヒントのための機構言語に内包されている点以上に特別な認識はしておりません

ただリーダマクロを利用すると構文自体を拡張することが出来るためLispを書く人はすべからく言語設計者としての腕が試されるのだと思います

(といっても私は本物のLispプログラマーではなく初〜中級者の域程度のもの認識しているため上級者以上の方はまた違う見解なのだと思います)

正直なところ、一時期自分Luaに感動して、Luaで(mod_lua?)Webアプリを書こうとしたときもあったけど、RailsCake、Nodeのexpressみたいなのでさえ、多くのユーザーが書いている方法の方が同じ悩みにぶつかり、googleすれば誰かがstackoverflowで解決しているので、コピペで取り敢えず乗り切る可能性が高くなる。

# 取り敢えず乗り切って、それから精査するべきだ。形になる時間が経てば立つほど、熱は冷めてしまう。

最後の一文は同意しま

が、mod_luaに関してはガチレスしますと、Apache のpre post filter, mod_rewrite煩雑さ軽減、Access,Auth,UserCheckのpre post、CustomLog置き換えくらいに試作品として個人だったら利用すると思います(プロダクションレベルならば実際利用する前に検証すると思います) mod_luaでもいいですが文章は何が目的かをはっきりさせて書いてください

後半のRailsCake、Nodeでも同じで、「形にすることが目的」であれば、コピペ出来るものを御自分でえらべばいいのじゃないのでしょうか?なにが主張したいのかよくわかりません

世界ハッカー原理とはまったく別の方向に動いていると感じる。

あなたのいうハッカーってなんですか?

# ゲームなどのアプリケーション内で使う言語シンプルが一番だ。それはBASICやTclのように、美的には醜いものでも正解になることが多々ある。

# lispを選ぶのは正解だと思う。

TclをVHDLシミュレーションツールとして数年利用しましたが、美的に醜いものではありません そしてなによりもゲームと一括りにしております近年ゲームプロダクションを「舐めないでください」???Lispを触りもしないのに正解だと思うなども???

そんなことを最近Apple製品Google製品の苛立ちとともに感じ、自分人生終焉世界の終わりに思いを馳せながら今日コードを書くか、身辺整理をするか、絶望感を眠ることでかわす毎日を送るだろう。

現実ではなく煽り文章だと理解しているつもりなのですが、中身がよくわからず何を伝えたい文章で帰結はなんなのかが大変よくわかりませんでした

酷い会社就職するとブール演算さえまともに理解していない人たちが、銀行年金コードを書いている日本の恐ろしさに驚かされる。

金に困って、私もときどきバイトを探すのだが、バイト地方銀行プログラミングとか書いてあるのが普通日本ちょっとおかしい。

多分、証券会社とかの方がまともなコードを書いているのだと思うが、精神的にはキツい気がして門を叩いたことはない。

もう、年齢的にも限界なんでね。

テクノロジー数字に対して無知な文章と思えるようなことを主張しているようにしか理解できないことがひっかかります。他人は他人ですし変えることは出来ません。ですが自分の考え方はいくらでも受けとめかたは変えられるのではないでしょうか?

別にPerlでなくても、シェルスクリプト、Cでも構わないけど、所詮CGIだし、正規表現とか文字列に明るいから、打算的な面もあったんだろうと思う。

考えてみれば、あの頃は負荷についてあまり考えてなかったよな。

根本的なコンピュータの仕組みの理解が食い違っている認識なのですが、当時負荷を考えたときスケールアップをしていた理由は、「1台」のマシンと「2台以上」のマシン管理する方法がまったく別のスキル(コスト)を要求するからです 現在ではフェールオーバだけでなく、冗長化の考え方が広くオープンソース世界プロダクションレベル適用されたためであって、当時から負荷自体については考えている所では考えていました

また所詮CGIという意味では標準入出力さえあればどの言語でも出来るのは事実かと思いますが一方Lispから打算というのは異なるのではというのは上の文章を読んでいただければ

今、「こうすれば成功する!」みたいに偉そうに語っている人たちって、あの時期に成功した人ばかりなんだよね。

エッセイのどのことを示唆しているかは不明ですが「成功している理由」を考察していることはあっても(時系列でいう後ろから前への考察)、「こうすれば成功する」という考察(時系列でいう前から後ろへの考察)について伝えてる文章は知りません よろしければその文献情報はどこにあるのでしょうか?

あの頃に成功しなかった人(つまり、私)はもう浮かばれることはないだろうし、今、彼らが言うようにやったとしても、あまり夢がないというか、生きてくのもどうだろうという気がしてならない。

誰も失敗した人の発言には耳を傾けないからね。

人生というのは、確かに一定の年齢を過ぎると選択の幅が狭まるというのは事実ですが「なくなる」というのは嘘です そしてそもそもその歩いてきた道だけは変えることは出来なく、これからの道は落とし穴かもしれませんが90度直角に歩くことさえ出来るものだと思います

また失敗した人の発言に耳を傾けないわけではないと思いますよ?むしろ否定的な感情を表に出しすぎるために難しくなってるのではないでしょうか?

しかし、組織が、正確にはその組織利益を得ている人たちが、壊されては困る部分は書き換え不可能になっている。

それが、人間的に正しかろうが間違っていようが、組織の維持が優先される訳だ。

この考察はその通りだと思いますが合理的ではないでしょうか?前回もお伝えしたように株式会社なのであれば株辺りの利益を最大限にすることが目的です また会社というのは民主主義ではなく株主主義です それさえ理解すれば組織の維持=経営者が優先されるのは当然なのではないでしょうか?従いまして「人間的に正しい」の意味を理解していませんが、あなたのいうその「人間的に正しい」と「組織目的」との間で落とし所をつけ提案することが本来の従業員の仕事に含まれると理解しています

支えてくれる家族または友人がいない場合社会的制度が整っていない以上、今の環境を逃げようが結果的には死にたいであるから、さっさと今の辛い環境を受けいれろ

長々と書きましたが、上の内容を簡潔に聞きたいだけでして、ブール演算やらLuaなどの話は聞いていません ブール演算などは高校生に3時間でも教えれば理解する人はいるでしょう

期待はしませんがご教示をいつの日かお待ちしております

2012-03-25

プログラミング言語が一つのクラスだとすると

C : 才能無いガリ勉

C++ : 万年2位

C# : 勘違い

Lisp : 友達いない

JavaScript : リア充(笑)

Java : 高慢ちき

Ruby : うざい

Python : 根暗

PHP,HSP : こども

Perl : 知恵おくれ

FORTRAN : 博士

COBOL,BASIC: 老害

VB : 空気

Delphi : いじめられて転校

http://anond.hatelabo.jp/20120324181643

「本当に好きなのはPerl」を称してるのに、今時「標準に入ってないから」って理由で諦めるなんて。

2012-03-24

簡単なクローラ作るならPythonだよ!

http://d.hatena.ne.jp/nishiohirokazu/20120323/1332504404

最近Webクローラクライアントを作るお仕事が増えた。WebクローラクライアントというのはHTTP(S)を介して様々なファイルダウンロードして解析し、結果を溜め込むだけのプログラムであるボットともいう。

クローリングの規模が大きくなると、クロール処理部と結果貯蓄部を分離する必要がある。クローラには様々なものがあるが、ものによっては特定のサーバに集中的にクローリングを行うこともある。このとき、1つのIPを使って集中的にクローリングを行うと、攻撃とみなされ一瞬でbanされてしまう。そこで、一見するとまったく関係なさそうなIPを複数確保し、それぞれにクローラーを仕掛けて走らせるのである

結果貯蓄部は、要するにデータベースサーバであり、何を使用しても良い。クロール処理部とのやりとりに使用するプロトコルRDB依存プロトコル(MySQL Socketとか)でもHTTPでもなんでもいいが、とにかくクロール処理部が解析した結果を随時溜め込めるようにしなければいけない。逆に言うと、まぁ、口さえできるのであれば何を使用しても良い。

問題は、クロール処理部に何を使用するかである。おおまかな要件は次の通りである

これらの要件を満たそうとすると、ぶっちゃけJavaPythonくらいしか選択肢が無い。

JavaPython
HTTP(S)HttpURLConnectionかApache HTTP Clienturllibかurllib2
環境依存Write once, run anywhere (VM最初からインストールされてるのはSolarisくらいのものだが、どんなOSでも大体はすぐインストールできる)UNIXであればほぼ標準で入ってる、Windowsインストーラも用意されている
キャッシュ機能JDK6にDerby標準搭載Python 2.5からsqlite3標準搭載

JavaPythonの違いは山ほどあるが、簡単なことをやらせるだけならPythonJavaよりも使用メモリが少なくなりがちなので、そういう場面であればPythonは(現時点においては)最強の座に君臨すると考えられる。

余談であるが、私が本当に好きなのはPerlであり、

という条件下であれば何の迷いもなくPerlを使っていたであろう。畜生

2012-03-13

http://anond.hatelabo.jp/20120313115339

僕の記憶違いでなければ、はてなダイアリーPerl で書かれた。

Ruby で書かれた tDiary に似ているので時々誤解されるけど、単にモデルにしただけのはず。

伊藤直也さんの当時のブログを見ても Perl の話題が非常に多いし、Perl Mongers などのコミュニティにも参加してる。今もかかわってるみたいだけど。

伊藤直也はてなに入る前から、すごい人っぽいなーというオーラ出してて、個人的にすごく注目してたんだけど、まさかはてなCTO になるとは当時想像できなかった。(なんとなく、はてなじゃなくて海外企業に行くのかなって思ってた)あのころモダン Perl で書かれたプロジェクトとして知名度の高かったのが Movable Type で、そういうものに触れてると自然と耳に入ってきたのが伊藤直也宮川達彦って名前だった。

そのあと、はてな伊藤直也が入って、どんなに大きな影響力があったのかは想像に難くない。

そして彼がはてなをやめて GREE に行った影響力がどんなに大きいかも。

2012-03-02

大学中退からいかにして年収900万まで登ったか書く

田舎から上京して東京とある著名な私大に在籍。その1年目にして叔父がまさかの倒産。両親が保証人になってたせいで、家族全体として多額の借金を背負う。学費稼ぎのためにコンビバイトを始めるが、逆に単位を落としがちになり、その結果、育英会奨学金が止まった。生活で精一杯のため大学中退することにした。なぜか両親の逆鱗に触れ、勘当される。このとき2000年成人式を終えたばかりの春だった。

大学中退高卒扱いだ。学歴武器仕事しようと思っていたために、どうやって生きていけばいいのか目標を見失った。一人暮らしから無職にもなれない。まずコンビニバイトをやめようと思った。

最初は新社会人の就職活動と同じような感覚マイナビをひとしきり見てたのを覚えてる。ここで給料相場観を掴み、フロムエーとかanで求人を探した。技術が身につくなら何でも良いと思っていたが、求人からIT技術者人口が相当薄いんだろうという事を感じた。その結果「IT企業で雑用ができる」「初心者歓迎」のような説明のある企業に応募することが多くなった。

IT企業ではないが「システム部門での雑用」ができる中小企業があったので応募。「残業できますんで働かせて下さい、中退した理由は色々ありますが、とにかく仕事がしたいんです」と素直に申し出たところ、賞与がないという条件付きで採用された。月給17万前後新入社員歓迎の飲み会全裸になったのが大ウケしたのが良かった。バカ田大学のバカが来たと言うような感じでバカにされながら仕事したが、それでも真面目に雑用をこなしているうちに徐々にシスアド仕事ができるようになってきた。

この会社で覚えたことは結構ある。

DreamWeaverで【「更新情報」ページの更新】という作業を任され、HTML学習のキッカケになった。

「とほほ」を参考に、JavaScriptが少しずつ書けるようになった。

携帯向けサイトを作ることになり、無理してPHPPerlも覚えた。画像の圧縮処理も覚えた。

PHPを覚えるとデータベースへのSQL発行もそれほど抵抗なく身に付いた。

Windowsネットワークの調整を進めるうちにActiveDirectoryの知識がついた。

中小企業なので専門のネットワーク技術者がおらず、Ciscoコマンド勉強できた。

この結果、最終的には社内で使うサイトを構築から任されることになった。資格でもプログラム言語でもないが「仕事する人にとって使いやすいWebサイトGUI)を作る」というデザイン技術は確実に身についたと思っている。

働き始めて2年目で初級シスアド基本情報に挑戦して両方とも合格した。このとき情報シスアドも挑戦したが午前科目で不合格。これは翌年も挑戦して合格した。

コツコツ貯めたはした金で、株式にも挑戦する。ちょうど紙幣バラ撒きのパフォーマンスで有名な「あしぎん株」騒動に乗っかり、30万円の大損をする。ここで自分には儲けるセンスがないことを思い知る。しか仕事に対するモチベーションを大きく上げることになったと思う。

この会社では色々な知識が入ってきてレベルに応じた仕事ができるいい環境だが、入社条件があるだけに、どんなに頑張っても昇給はなさそうだと考えるうちに将来が不安になった。クレジットカードショッピング枠のリボ返済がきつくなり、返済に追われるように転職を決意する。2006年

ここで参考にしたサイトは Re就活マイコミ。物は試しと色々なIT企業面接に出向くも、ほぼ全滅。採用されたとしてもマルチまがい商法に参加するような会社だったりして、入社後すぐ辞めたりした。

面接に落とされた原因は恐らく4点。

技術専門用語で語れないこと。

例えば「ワン側の設定もできる?」「経験のあるフレームワークは?」と言われても曖昧な返事ばかりしてた。仕事場で身につけたノウハウと、その内容を指し示す用語が頭の中で全然リンクしておらず、チグハグな回答しかできないのである。それを説明するために専門用語があるのだ、と思いながらとにかく用語を勉強した。

活舌が悪いこと。

自分の声をマイクで録音し再生してみた。そしたら実際恥ずかしい活舌だった。こんな努力は誰にも見られたくないと思いながらも、とにかくマイクに録音して治す作業で、苦手なサ行を治した。まだ治りきっていないけれど、自分の声を聴いて「自分の声じゃないわぁ」と言っているうちは自分の声を理解してない、そう思うように頑張った。

人相が悪いこと。

まずマユゲを整えるようにした。知り合いに会うたび「印象変わったねー、マユゲ剃ってるーwwwおっかしーwww」と屈辱を受けるも、なんとか耐えた。そして、2ヶ月に1回は美容室に行き短髪にするよう心がけた。最初は入るの出るのも恥ずかしかったが、2回目、その美容室お姉さまに「久しぶりー!伸びるの速いねー!」と可愛く言われたのが妙に嬉しくて、それ以降美容室に抵抗なく行けるようになった。あと、自分の顔はヒゲがあったほうがカッコいいらしいと言うことも分かる。第三者の意見大事だと思った。

自分に自信がないこと。

高級デリヘルを頼んだ。即解決した。あの150分は今でも強烈に記憶に残っている。

今までやってきた仕事をどう面接表現するのか、何が目的で働きたいのか、今から働こうとするその会社に対してどのような手段で貢献するのかを正しく話すことができれば、それだけでいいんじゃないか、と思うようになりました。その結果、会社ニーズマッチしていないことが分かれば、素直に他あたるのも大事だなぁとも思うようになりました。

上場を目指す会社に運よく入ることができ、年収が1年目350万。しかし社内システム関連業務全体における役付きの地位がまわってきて、このご時勢で入社3年目にして900万まで伸びました。そして今に至ります

2012-02-20

http://anond.hatelabo.jp/20120220152810

片方にだけしか無い 言語依存した機能って多くないだろ。 ほとんどが、 ライブラリ依存した機能だ。

しかベースとしているECMA Scriptバージョンが違うとかに依存する場合バージョンが古いだけだし。

C言語で言えば、Win32組むのと、LinuxX11組むのと、Macで組むのと 書き方は違うが全部C言語みたいなもの

そこまで同じじゃないが PerlPHPに比べれば 同じようなものだ。

http://anond.hatelabo.jp/20120220152942

おう、オッサンだぜ。

Perl古いとかいうが、CPANモジュール使えばまだまだ使えると思うぜ?

自社サーバー持ってるクライアントだとPHP入ってないことあるしな。

PurePerlのSHAとかBlowfishとかお世話になってます

http://anond.hatelabo.jp/20120220132457

技術的に楽しくてスキルアップになれば

正直、SQL正規化どころか、サブクエリすらできねぇとかマジ使えないんですけどw

PHPしか組めねぇとか、Perljavascript、ActionScript3位は使えろ。

全然スキルアップできてねぇよw

2012-02-17

ハッカーVimを使う」 騙される若者たち

Eclipseemacsvimより優れている点を挙げてみよう。

 

 

リファクタリング機能が強力

CVSリポジトリの構成を直接覗ける

デバッガグラフィカル

・設定できる警告メッセージの種類が豊富

復元機能が非常に充実している。

 CVSのように以前の状態に復元すること、以前の状態の

 ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能存在する。

プラグインの数が豊富、膨大。

プラグイン開発環境Eclipse自体に用意されている。

ライセンス形態CPLであり商用利用もしやすい。

・上位版にWSADが存在する。

IBMバックアップがついている。

Smalltalkで有名なVisualworksの影響を受けているため、

JUnitプラグイン(Eclipse標準装備)によるテストファーストリファクタリングの他、eXtreme Programming環境が充実している。

SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!

・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!

プラグインによってはURLを指定するだけでプラグイン自動ダウンロード自動インストール

自動アップデートができるためプラグインインストールが非常に容易。

Eclipseから直接Tomcat, JBossなどを再起動できるSysdeoプラグインJBoss-IDEプラグイン

 という強力なプラグインが充実している。

EclipseUML Omondoプラグインによりクラス図などを書いたり、

 UMLによるModel Driven Architecture, リバースエンジニアリング

 などを即座に実現できる。

RSSリーダープラグインMP3プラグインAll The Newsプラグイン

など様々なプラグインが充実している。

PHP開発が可能なTruStudioプラグインPerl開発が可能なPerl E.P.I.C. プラグイン

C/C++開発が可能なCDTプラグインAspectJ開発が可能なAJDTプラグインなど

言語プラグインが充実している。

・そのほかにD言語プラグインC#プラグインPythonプラグイン、JavaScriptEditorプラグイン

CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン

Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン

ゲームができるプラグイン、メーラとしてつかえるプラグインWikiプラグインHibernateプラグイン

FindBugsプラグインCheckStyleプラグイン、JalopyプラグインSobalipseプラグインソロプログラマープラグイン

など様々なプラグインが充実している。

 

 

以上、老害に騙されずにEclipseを使いましょう。

2012-01-22

http://anond.hatelabo.jp/20120122222258

調べたら{}のないCみたいな感じじゃない?

perlやらrubyやらよりよほど書きやすそうだけど、なんでそんなに嫌われてるの?

オレはperlに挑んだけど掲示板チャット作ったくらいで挫折したわ

すげー書きにくい、もうやりたくない

凍ったニシキヘビと凍えた番人

言語disりが流行ってるようなので一つ

Pythonをかれこれ5年ほど使っているけれど、いい加減頭にきた。

大体頭に来るような内容というのは限られていて大体は

http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm

に書かれている事に近い。大事なところを引用すると

本当にPythonを殺し、メインのスクリプト言語となる望みを、あるいは何であれメインの言語となる望みを絶ったのは、永久凍土の問題なのだ。人々はいまだ埋め込みインタプリタにTclを使っている。どのような面から見てもTclよりPythonの方が遥かに優れているというのに——ただし永久凍土の問題を別にすれば。

これに尽きる。

よく言われるが、インデントに縛りがあるのもselfが付くのも慣れてしまえばさほど気にならないし、むしろ魅力的とも感じる。

しかし、Pythonを本当の意味で糞たらしめて居るのはその言語を使っているコミュニティがあまりにも思考停止しているからだ。

インデントやselfが気に入らないなんて些細な問題を他の言語使いから散々文句を言われたがために、本当の意味言語の弱点になっている部分が指摘された時にも「それは言語仕様が悪いんじゃない。言語仕様に沿って考えられないお前の頭が悪いだけだ」と言ってくる。

実際のところ、Python仕様には言い逃れのできない仕様の穴は幾つもある。もちろんよく引き合いに出されるRubyPerlにも仕様の落とし穴は山ほどある。仕様の穴そのものは実はそんなに深刻な問題ではない。

真に問題なのはPythonコミュニティはその仕様の穴を断じて穴と認めない事だ。

言語同士でdisり合いになったとき、何かその穴をつつかれた場合の各人の反応はおよそこんな感じだ。

仕様カオスになり続けるPerlだと

Perl使い「そうだよね、そこの仕様は頭悪いよね。でもPerl6のこの機能使えばこんなに短く綺麗に書けるんだぜ(と全く読めないコードを出す)」

比較的柔軟な仕様コミュニティのあるRuby

Ruby使い「うんうん、仕様の話題でもそこは殺人現場とか呼ばれてるね。コミュニティ的にはこっちの機能を使うことを推奨しててそっちはobsolatedだね」

酷い言語仕様調教されつくしたPHP

PHP使い「それ言い出したらこっちにこんなに大きな地雷あるし、この地雷なんてもっと大きいぜ。ほんとPHP地獄だぜ」

永久凍土Python

Python使い「お前の思考通りに言語が動くんじゃなくてお前の思考を言語に添わせるんだよ、言語挙動すら理解せずに使おうとするんじゃねえ」

こんな感じに、まず最初質問者人格攻撃を行う。インデント言語であることやselfの問題について未熟なプログラマからのどうでもいい指摘を散々受け流してきたPythonコミュニティは、言語仕様について文句を言われる事に慣れているためまず相手を攻撃する。初心者寒波洗礼するのだ。

言語仕様が汚くなっている事まではどの言語も一緒なのだけれど、Pythonコミュニティだけは欠点を認めず必死に(∩ ゚д゚)アーアーきこえないという態度を取る。

これこそがPythonを糞言語たらしめる最大の弱点である永久凍土の問題。コミュニティが凍れば言語進歩も凍る。

Pythonそのものは一人で使う分には手軽な言語なだけに、使用者思考停止しているが故の機会損失の多さが残念である

2012-01-04

プログラミング初心者たわごと

JavaScript って生き物っぽいって思ったのがきっかけだった。

なんか菌?に遺伝子いれてたんぱく質生産させるやつ? Function は菌の細胞膜prototype遺伝子で、だから prototype全然関係ない違う生物遺伝子を生きてる菌に入れちゃったり。そうすると全然ちがうたんぱく質生産されたり。prototype にべべーっとコピーして追加するのなんてまさしくそれっぽい。

インスタンスからじゃないと複製できないのも生き物っぽい。

インスタンスって言い方になにか違和感があるなあ。

だってプロトタイプベースって、生き物しかいない世界じゃない?基本的に。インスタンスってのは生き物じゃない設計図があってそれにしたがって出来た生き物がインスタンスってイメージあんだけど。プロトタイプベース世界にはそんな設計図も生き物じゃないものもないよね?なのにわざわざインスタンスっていうのに何か違和感ご都合主義的なもの感じる。クラスは型で、インスタンスを実体だとかなんとかって氾濫してるせいかな。多分この辺の用語が JavaScript をわかりにくくさせてる気がする。

僕の感覚では、オブジェクトってのは生き物で、クラスベースってのは神が設計図に基づいて生き物を生産してる世界で、インスタンスベースってのは生き物が生き物を複製してる世界イメージだ。多分、原始の生物インスタンスベースみたいな世界で、海の中にうようよしてたんだろうな、とか。

オブジェクトじゃないものは、生き物じゃない死んでるたんぱく質RNA の破片みたいな。それだけじゃなにもできないみたいな。それだけじゃ命がないから、生き物の殻に詰めるってのが JavaScriptコンストラクタイメージ

Perl の bless したらこれはもう命入ったよ生き物だからねっあとは勝手にしてねってのも、Python名前空間さえあればなんとかなるよねってのも、JavaScriptハッシュさえあれば世界作れるよねってのも、みんなどこか似ている。ちゃんと OOP を理解できてるかは別としてもこの三つはわりとすぐやりたいことができた。昔 Java の本を買ってきて挫折したのにくらべたら、なぜかずっとわかりやすかった。(bless という命名はすごく洒落てる)

全然関係ないけど、Django日本語リファレンスは何か萌えるラクダ本日本語訳はむかつくのに。

プログラミングを始めたばっかりの時は、なんだか難しい用語の意味を理解しないと OOP がわからないと思ってた。それは僕らの住んでる世界とは全然関係のないプログラミング技術ってやつだと思ってた。

でも多分違う。

世界が動く仕組みさえあれば、あとは作り手に世界の成り立ちを抽象化する表現力さえあれば、世界勝手表現されていくし、動き出してく。たまたま僕らの世界オブジェクトもので溢れていて、プログラミング言語進化すれば世界に似るのも当然だろう。いや逆か。プログラミング言語世界に似てきたから、オブジェクトなんていう世界に似た概念が出てきたってことか。なんだか難しい用語ってのは、その表現の一部分の技術名前をつけてるだけなんだな、と。例えば何とか歌唱法や何々画法とか何とかレトリックとかパースの取り方みたいなのと同じ。それは表現を理解する手助けにはなるけど、その意味を知る事がイコール表現力をあげることにはならないんだよね。これに気づくのに遠回りしすぎたなあ。

(知識を得るだけで、100% 還元される人もいるかもしれないけど、そんなのは一部の天才だけだと思う。殆どの凡人はそうはいかない。とはいえ、元の錬度が低ければ、コツをいくつか教わるだけでいきなりうまくいくこともある。ただ、それをまるまんま実力だと思うのは、どんな分野でも危険だ。恋愛テクニックやらを必死に読んでる連中が男女間の深い人間関係を上手くやれてるとはちょっと想像できない!)

プログラミング表現力を上げるにはどうすればいいんだろう。きっと他と同じだろうな。いい表現を沢山味わって、世界をよく観察して、どう成り立ってるかどう動いてるか、私達はそれをどう認知しているのか、考えることかもしれない。漫画家を志す人が美術解剖学を学んだり、優れた画家が絵筆で世界を生々しく描写するように、優れたプログラマ世界のなりたちをプログラムに写し取ったり、世界の仕組みを作る事が出来るのだと思う。

やっとプログラミング面白くなってきた初心者より。

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