「ソースコード」を含む日記 RSS

はてなキーワード: ソースコードとは

2013-03-28

挫折しそうなプログラミング初心者への助言

挫折するな

・わけわからんことも絶対に「慣れ」て分かるようになるから諦めるな

・だからわけわからなくてもぶつかり続けろ

・小問をいっぱい解いてプログラム作成の手順「仕様決定→コードへの落とし込み→デバッグ」を体で覚えろ(例:「解きながら学ぶC言語」)

プログラムは文と式で構成されていることを意識しろ

・処理を共通化できそうなら関数しろ

・処理が複雑になったら関数にわけろ

自分のやりたいことを分解して、小さなことからしづつ進めていけ

ソースコードが複雑になってきたらクラスを使え

仕事クラスに分担しろ

・○○係みたいな感じでクラスを人だと思って作業分担させろ

・そしてクラス同士を連携させるんだ

・ただし、連携はなるべく少なくするんだぞ。「疎結合」を意識しろ

・複数のクラス管理するクラスを作るとすっきりする場合があるぞ

変数関数クラスファイルなどの名前付けは重要だぞ。知らないひとが見ても誤解しないような名前をつけるんだぞ

抽象化重要だぞ。うまく抽象化された関数クラスは「実装すべきことがシンプルになる」「汎用性があがる」「不具合を見つけやすい」といいことづくめだぞ

抽象化がわかりにくかったら、汎用的にすることを考えるといいぞ

本屋プログラミング書籍コーナーの書籍タイトルだけでもすべて目を通しておけ

・本のタイトルに聞いたことがない単語があったら中身を読んでみろ

プログラミング書籍いっぱい買うと本棚からプレッシャーでやる気が起きる(かもしれない)ぞ

プログラム難しすぎるって?大丈夫、慣れるから

プログラミング複雑すぎて人間にはできる気がしないって?大丈夫、慣れるから

プログラミング奥深すぎるって?あまり深淵のぞくなよ!ほどほどにしとけ

・「根性」があればなんとかなるぞ

・「好奇心」があれば技術に関する情報勝手に集まってくるぞ

・「楽したい気持ち(工夫を楽しむ心)」があればいつまでもプログラミングを好きでいられるぞ

2013-03-23

つの時代ソフトウェア工学の話だよ

http://d.hatena.ne.jp/nowokay/20130322#1363969460

以下の記述のまとめ:

お前の言っているソフトウェア工学は今のソフトウェア工学じゃねえよ.

端的に言うとそんだけ.

で,本題.

まず,書いてる内容が古すぎて救いがたい.iPS細胞研究ノーベル賞取った現状で,「実験材料に受精卵を使う万能細胞研究なんて許されませんよ!」と主張されても,その何だ,困る,とかそういうの.

1999年、なにがあったかというと、XPエクストリーム・プログラミング入門という本が発行されたのです。リンク先は2版ですが、日本語版でも初版2000年12月になっています

ここからソフトウェア工学ガラガラ崩れた気がしています

で,何?2000年以降ソフトウェア工学が何も進んでないと主張したいの?

特に学術的にソフトウェア工学に触れたことはない

って最初に書いてあんのに,そこから崩れて何も出てきてないって主張はどっから出てきたの?自分が知らないことが分かってるのにドヤ顔提言とか大丈夫か?

しかし、結局統一設計手法は完成せず、UMLけが残りました。実際に使われているのはその一部です。CORBAも普及せず、WebプロトコルにあわせてSOAPが出てきたものの、結局単純なRESTが定着しました。XMLはいまは毛嫌いされています大成功したはずのオブジェクト指向も、Webアプリではうまく適用できませんでした。

から何だ.提案されても使いにくかったり,状況自体が変化したら無用になるに決まってる.まさかソフトウェア工学分野で提案された手法はどれだけ開発環境が変わっても生き延びていなければならない」とかい寝言じみた主張でもしたいのか?言語流行廃りがあるように,手法にも流行廃りはあるに決まってるだろ.

あとSOAPXMLに関しては,その衰退過程自体がよくある話すぎて話にならん.一番最初に厳格な重量級の様式が定められて,それをベース運用レベル考慮した軽量級の様式が定義されて駆動するってのはよくある話.言い換えると,学術から出てきた理論的に正しい手法が,産業界必要なところだけつまみ食いされる形で運用されるとか,サンプルは死ぬほどそこらじゅうに転がってねえか?

ああ,CORBAはまあ,うん,そのなんだ.アレはフォローできない.

実際のところ,UMLが残っただけで十分じゃねえの?最初に提案された時の理念さえブレてなければ,つまみ食いしたモノがはやってても提案者的には本望だろ.

そしてCMMもいま特に話題になることもありません。

今はCMMIだ.CMM2000年CMMI統合されてる.今更XPの本出してくるところといい,真面目に2000年より前で知識止まってんだな.

また、動的型付言語の普及も、ソフトウェア工学離れのひとつであると言う事ができるかもしれません。

はぁ?動的型付言語が普及したらなんでソフトウェア工学と離れんのよ?静的型付言語で使えて,動的型付で使えなくなる研究分野なんぞ,完全にソースコードに寄り添った研究だけじゃねえか.

「この手法C言語を対象としている」って書いてある研究は他の全ての言語には一切適用できないと主張してんのと一緒だ.はじめてのCあたりからやり直せ.

ここで、やはりCMMの失敗がソフトウェア工学にとっての痛手だったように見えます

もちろん、プロセスを規定することが難しいということは当時からも言われていました。それであるからCMMプロセスのものを規定するのではなく、プロセスの規定方法を規定するというメタプロセスになっていたのです。

そして、すべての組織で同じプロセス採用することはできないということから、5段階のレベルを設けました。また、プロセスは変化し続けなければいけないということからCMM成熟レベル5では「最適化している」という成熟度になっていました。

これはなかなかいいかもしれないということで、期待は大きかったと思います

でも、とにかく運用が大変だとか、CMM成熟レベル5でも品質いいわけじゃないとか、そういう話がきこえてくるようになりました。

まず失敗を定義しろ.で,失敗したってんなら,CMMIで未だに新たな認定がなされてる(http://cmmiinstitute.com/assets/presentations/2012SepCMMI.pdf)理由を説明しろ

で,運用が大変?当たり前だ.品質確保すんのに運用が楽とかあり得んだろ.従業員に好きにやらせてもアウトプットが高品質ならそもそもCMMIなんぞ必要無い.順序が逆だ.「CMM成熟レベル5でも品質いいわけじゃない」ってのも当然だ.アレは組織成熟度を評価する指標であって,中で働く人間能力を評価してるわけじゃない.というか流動すんのに評価なんぞできねえけど.

そもそも,CMMIレベル5ってのはおおむね高品質ものが出てくるだけで,人間が関わっている以上ある程度のばらつきは存在する.つーかさー,CMMIレベル5なら必ず高品質のモノが出てくるとか思ってんの?まさかまだ銀の弾丸存在を信じてんの?「ISO9001に準拠してればリコールなんて発生しない!」と思い込むくらい残念すぎねえか,その思考回路

ああ,「CMMI」じゃなくて本気で「CMM」の話をしてるんなら申し訳ない.もう無いんだからCMMの話を最近全く聞かないのは当然で,勘違いしても仕方ない.悪いもしくは古いのはアンタの頭だ.

そこにXPですよ。アジャイルですよ。

もともとソフトウェア工学に対しては「がっこーで現場しらない人が研究してる手法なんて使えない」のような声があったのですが、XPアジャイルによって「現場から生まれた手法のほうが使えるよねー」というのが決定的になりました。

前半は正しい.ソフトウェア工学最初からずっとその手の意見はあって,未だに言われてる.が,後半は話にならん.

真面目に聞くんだけど,アジャイルソフトウェア開発宣言に名前が入ってる17人のうち,何人知ってる?何人が開発寄りで,何人が研究寄りか分かる?まさかKent Beck1人を見て「アジャイル現場から!」とか寝言垂れて無いよな?そもそもKent Beckコンピュータサイエンス博士号持ってるし,開発寄りと主張していいのかどうかすら微妙なんだけど.

あとアジャイルも突発的に出てきたわけじゃなくて,プロトタイピングとかあの辺(とそれ以前)からの流れがあると思うんだけどなあ.

ソフトウェア工学が何を失敗しているかというと、その学問自体の認知度が低すぎることです。

ソフトウェア工学がどのような問題を扱う学問かが知られていない。どのような問題を扱う学問か知られていないので、その問題に直面している人がソフトウェア工学の成果を積極的には利用できない。

ああ,まあ,うん,認知の低さは同意します.

問題に直面してる人がソフトウェア工学の成果を積極的に利用できないうんぬんについては,最近の国際会議でもその辺を扱った研究が出てきてたりする.ICSE2012のDistingished paperのうちの1本がそんなん.Eclipse検索ツール使わずに,テキストエディタコピペしてCtrl+F使ってる人の話とか出てきてた覚えが.

ただ,ソフトウェア工学認知度なんぞどうでもいいと思うんだけどなあ,別に.そっから出てきたモノが使われさえしてりゃあ.ソフトウェア工学研究の成果が,それと分からずに使われてるんならそれ以上に望むべきモノは無いだろうに.「これがソフトウェア工学様の研究成果でござーい」と大上段に振りかぶって,「ありがたや」の言葉と共に使われることを望んでる研究者なんぞいねえだろ.

就職活動で「半年プログラムは覚えれるし専門は必要ない」のようなことを言われるという話があります。たしかアルゴリズムなど実装技術研究をしていた人をSIの開発現場で生かすのは難しいと思います。でも、ソフトウェア工学の専門知識は、半年で覚えれるものではないし、SIでの開発現場必要になるはずです。

うん,そうですね.だがそれを学術側を知ろうともしてない人間が言うな.

ソフトウェア開発がある限り、ソフトウェア工学必要なので、XPアジャイルを織り込んで再構築して、認知度を高めていってほしいなーと思います。再構築とかは他力本願になってしまうけど。

ソフトウェア工学を再構築しよう,という動きとしては http://semat.org/ あたりがあるのでそっち参照.

あとさー,そもそも論として,ソフトウェア工学研究内容を「現場」と「学術」に2分することが不可能だって分かってる?工学ってそういうもんだろ?その2分は「工学」と「理学」というレベルでは可能なのであって,既に工学カテゴライズされてるソフトウェア工学を分けるのは不可能だ.それくらいは語の定義レベルの話なんで,分かっててくれ,頼む.

まあ暇ならトップ会議であるところのICSEプログラムhttps://files.ifi.uzh.ch/icseweb/fileadmin/downloads/ICSE2012_conference_program.pdf)でも眺めてみて,ソフトウェア工学定義について悩んでみるのもいいかと思います

実際のところトピックは割と流動的.最近OSS周りが流行gitのおかげで開発者の行動とか取りやすくなってる関係もあって.

まりさー,なんでか知らんけど,この人の頭ん中では「ソフトウェア工学は静的型付言語を利用したウォーターフォール型開発でしか使えない」てことになってんだよな.

あと,なんか無理矢理にでもソフトウェア工学disりたくてしょうがないってことは分かった.

釣りにしても書いた人間の知識が足りる足りない以前のレベル過ぎて話にならん.

2013-03-21

SIer向いてないので辞めることにする

日本SIerが求めている人材いかなるものか、よーくわかったよ。

めんどくさいことをめんどくさがらずにやってくれる人だろ。

スパゲッティ化してどうして動いてるのか意味不明コードを解読してくれる人。

コードを修正した場合の影響範囲を大量のExcelドキュメントから洗い出してくれる人。

自動化されていない単調で膨大なテストを手抜きせずにこなしてくれる人。

営業と話の辻褄合わせるためだけの、何の意味もない数字合わせの工数見積徹夜でやってくれる人。

そういう人材だろ。

疎結合で変更に強いソフトウェア設計できる人、

テスト自動化ができる人、

ソースコードを読めばすべてが理解できるようなプログラムが書ける人、

科学的な工数見積ができる人なんてのは必要ないんだな。

突貫工事で初期開発を終わらせて、

あとはできあがったものえっちらおっちら運用してくのがビジネスモデルなんだものな。

おれSIer向いてないわ。辞めよう。

SIer向いてないので辞めることにする

日本SIerが求めている人材いかなるものか、よーくわかったよ。

めんどくさいことをめんどくさがらずにやってくれる人だろ。

スパゲッティ化してどうして動いてるのか意味不明コードを解読してくれる人。

コードを修正した場合の影響範囲を大量のExcelドキュメントから洗い出してくれる人。

自動化されていない単調で膨大なテストを手抜きせずにこなしてくれる人。

営業と話の辻褄合わせるためだけの、何の意味もない数字合わせの工数見積徹夜でやってくれる人。

そういう人材だろ。

疎結合で変更に強いソフトウェア設計できる人、

テスト自動化ができる人、

ソースコードを読めばすべてが理解できるようなプログラムが書ける人、

科学的な工数見積ができる人なんてのは必要ないんだな。

突貫工事で初期開発を終わらせて、

あとはできあがったものえっちらおっちら運用してくのがビジネスモデルなんだものな。

おれSIer向いてないわ。辞めよう。

2013-03-18

SI業界中の人間は、凄惨世界を望んでいる件について

http://d.hatena.ne.jp/iad_otomamay/20130318/1363596244

この記事。本当に腹が立ちました。

まず質問自体が酷いのが多い。

省略したのは知らないと障害の危険があるので知っとくべきってことで同意なんですが、

HTTPクライアントブラウザの種類などの情報を知るためのヘッダは何ですか?(筆記解答)

HttpRequestオブジェクトからPostされたデータを取得するServletメソッドは何ですか?(筆記解答)

これは使うときにググれば良い話。暗記しておくメリットがわからない。

結合テスト中のシステムで、OutOfMemoryErrorが発生しました。UTソースコードの変更はしていません。ヒープメモリは足りているようです。原因として何が考えられますか?(筆記解答)

UTソースコードの変更はしていません」という一文が意図不明単体テスト終わった後にソースコード変更したら、再度単体テスト必要だと思うのですが?この一文は何のヒントにも制限にもなっていないです。

String オブジェクトを+で結合するのはなぜNGなのかメカニズムを説明してください。(筆記解答)

なぜNGなのかというのは「文字列連結演算子(+)では速度が遅いから」であり、StringBufferかStringBuilderのような結合用クラスのappend()を使うことでパフォーマンスは向上する、というところまでが質問の狙いなのかと思いました。もう一歩踏み込むならば、+をしたときコンパイラでどのようになるかを知っているかどうか、みたいな。しかし結合用クラスにはデメリットもありまして、append()は冗長過ぎて可読性が酷く低下するデメリットがあります文字列の連結時にクラスをnewするタイミングを調節したほうが速くなることもあります近年ではマシンスペックもあがってますので、そんなに気にする部分ではないと思います。そもそも、このStringBufferの仕組みは絶望的に救いがないJava言語の汚点と言ってもよい部分です。なんで文字列の連結方法に複数のやり方を速度だけの理由で取捨選択させるというバッドノウハウなので、早くコンパイラ最適化して一元化くれることを望む部分です。

StringBufferかStringBuilderと書いていて、そういやスレッドに関しての質問がないのはどういうことなのかと感じました。JavaWeb系ってスレッド重要だと思うのですが。

JavaScriptHTML要素をid属性の指定により取得するメソッドは何ですか?(筆記解答)

もうjQueryDojoも使われるようになってきたからこれも知らなくてもいいんじゃないかと。id指定で取れるということとを知っておけば答えにはたどり着けるはず。バッドノウハウです。どうしてJavascript最近になって流行ってきたかを思い出して欲しいです。

プログラマーバッドノウハウの塊でなくてはならない、というのが見えてくる質問内容ですが、最近は覚えなければならないことが多く、技術更新スピードも早いので、あの質問のような重箱の隅まで暗記するようなことをしていては、重要な部分が抜け落ちているし、暗記の苦手な人は辛いと思います書籍ネットのような情報の蓄積と抽出する部分は充実してきたので、概念は知っておいて、実装手段はその都度調べるほうが効率的であるかと思います質問は、応用の効く根本的な部分を問う方がよかったです。

現実は、もっと凄惨世界を経て時代が進んでいくようだ。」などと締めくくっていますが、この人は凄惨世界が嫌なのでしょうか?不安を煽るだけで対策も講じていません。まず、質問の回答を書くだけでも、読んだ人の知識の底上げに貢献できると思うのが普通です。「これは基礎教育をやってれば当たり前」とか言ってドヤ顔して、できない人間馬鹿にしているだけに見えます本心では凄惨世界を望んでいるのでは?としか思えてなりません。

この記事を読んだことで、またSI業界から優秀な人が遠のくことでしょう。こんな人間が居る業界には居たくないと。

どうして悲しみを減らす方向に動いてくれないのかと…

※追記

頭沸騰しててスルーしてしまったのですが「淘汰」って書いてあったので、業界底上げは望んでないんだなあと、見当はずれなこと書いてしまったなあ、と、後悔した。

2013-03-10

上司に一部売上持ってかれた

ソフトウェア海外販売.金額は数百万.

大学を通して販売したが,全く関わってもらった覚えはないし,どちらかというと邪魔をされた覚えしかない.

もちろんアイデアも出していないし,ソースコードも1行も書いてもらっていない.

それに関しては研究費も全く使っていない.

いい加減切れて話し合ったが,どうも話が通じない.

「僕なら貢献なくても名前書くよ」

そりゃそうなんだろう.お前ん中ではな.

そりゃあんたが言う話じゃないし,

あんたがたくさんもってるいつ金になるかわからない業績書類に書くためだけの特許とは違う.

大学契約をしたか大学に金が行くのは理解できる.

だがなんで俺のプログラムの金がてめーのポケットに入るんだ.

あんたの仕事はしてるだろう.

俺の小さなプライド領域までズケズケ入り込まないでくれ.

下流「エンジニア」もたいがいだけどねえ。

http://anond.hatelabo.jp/20130309233920

俺、それなりの規模のSIer側の人間なので、下請けに出す側の人間だけど、下請けもたいがいクソだよ。

会社は、対象のプログラミング言語を「やったこともない」人間を出してくるし、

そうやってやってきたPGは、コーディング規約(何も難しいことはない、空白の入れ方や大文字小文字のルール等)すら守れず、ひどいときはインデントすら合っていないコードを書く。IDEでどうやってそんなことができるのか不思議だが。

まともにロジックが組み立てられないから、プログラムフラグの嵐。長大なメソッドを書く。

ソースコードレビュー品質が担保できるのは、かなり早い段階からレビュー実施できた場合で、デスマってくるとなんだかんだで先送りになり、気づいた時には千行のメソッドができあがっているわけで、そんなもんレビューしたって直しようがない。もちろんそんな状況にしてしまったプロジェクト運営に問題があるのだけれど、それにしても、それにしてもさあ。

で、下流の人間は、(契約形態によるけど)残業代がかかるし期日がくると逃げる。で、バグだらけのクソコードを俺がサビ残でせっせと直しているわけさ。

2013-03-08

風俗嬢アダルト専用ブックマークサービス作ってみた

秘密ブックマーク、略して「秘ブ」というソーシャルブックマークサービスを作ってみました。

アダルト専用で、(以前の)はてブのようなものを目指して。

今は風俗嬢やってるんですが、(悲しいことに)時間があったっていうのと、

自分が欲しいと思ったもの作ってみたかった。

目次

①作ったサービス

②影響を受けた増田

③作った経緯

④使用したサービスとか

⑤作成のあらまし

⑥秘ブのブックマークボタンとかブックマークレットとか

⑦登録時の注意!

⑧今後の予定

作ったサービス

秘ブ.jp

http://hibu.jp/

アダルト専用のソーシャルブックマークサービス

影響を受けた増田

自分WEBサービスを作りたいと思っている人へ

http://anond.hatelabo.jp/20101203150748

・Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました

http://d.hatena.ne.jp/inouetakuya/20120331/1333192327

・週6フリーターWEBサービス作ってみました。

http://anond.hatelabo.jp/20120914214121



作った経緯(基本自分語りなのでそういうのウザい人は飛ばしてね)

私は、早く自立できるようにと高専を出て、田舎から東京に移り住み、事務として働いていた。

この時点ではエクセルとかワードとかは使える、マクロちょっと組める程度のレベル

自立したかったのは父親が生活費パチンコとか女に溶かすような輩だったため。

私が自立したあと、両親は無事離婚。激務で薄給母親と離れて暮らして寂しくても頑張っていた。

そんな中、母が更年期障害鬱病に。

鬱病はつらい。何が辛いって、本人も辛いんだろうけど、荒んだ部屋の中で横になって息を潜めている母親の姿を見るのがきつい。

母親ゆっくり休ませてあげたかった。

いつでも母親の側に駆けつけることができるように、お金時間に余裕が欲しかった。

で、吉原へ。私は風俗嬢になった。

でもねー、全く稼げないwww 笑っちゃうくらい。

大衆店にいるんだけど、女の子もお店も多くて、私より若くて可愛い子がわんさかいる。

お客さんがつかないと収入0なんだよね。

店長やお店のお姉さんがマットや椅子を覚えな、ってアドバイスはくれるんだけど、

その頃教えてくれる先生たまたまいなかった。(今は別の店に修行にいったかバッチリできるけど)

仕方ないかようつべとか動画サイトソープお仕事系の作品を見まくったわけ。

(余談ですがマ◯ティ夫人ってお店のマット技一覧のページはすごいよ!)

お客さんつかないか時間がすんごいあって、待機室でずーっと見てた。

で、マットの動画とか、ボディ洗いの動画探すんだけど、なかなか見つからない。

結構マニアックからね。

で、そんなことをしてるうちに思ったんだけど、エロサイトエロ動画

果てはマニアック趣味情報を共有できるサイトがあったら便利じゃないかな?と。

数少なく接客したお客さんで、わざわざブーツ持参で、顔面を踏みつけてくれ、って人がいたんだけど、

そういうの彼女とか友人とかにあんまり言えないでしょ。

でも日本中を探したら、同じ趣味や、近い嗜好の人がいるんじゃないかな?って。

時間私自身が病むほどあるし、そんなわけで制作に取り組みました、秘密ソーシャルブックマーク

略して「秘ブ」(「秘部」とかけてあったり)

吉原泡姫たちは、タクシー通勤する人が多いんだけど、私は三ノ輪の駅から歩いて通ってた。

元彼に借りたプログラムの本などどっさり持って。めっちゃ重いw

待機室でひたすら落ち込みながら金勘定するより、母親心配をするより、何か生産的なことを考えていたかったんだよね。

この一年でかなり勉強して、ようやく公開できるレベルに達したかなとおもいます

作成期間は、楽しかったし充実してた。

みんなが来てくれるかはわかんないけど、まあ来てほしいなと思う。

さて、湿っぽい話はここらへんにして、どうやって作っていったかを話しましょう。

使用したサービスとか

・Semantic Scuttle

http://semanticscuttle.sourceforge.net/

jQuery

http://jquery.com/

・HeartRails Capture

http://capture.heartrails.com/

はてな Favicon API

http://favicon.hatena.ne.jp/

Twitter Bootstrap

http://twitter.github.com/bootstrap/

・Bootswatch

http://bootswatch.com/

サイトの構成なんかも書こうと思ったけど、セキュリティ的に良くないって聞いたし、

はてな民のみなさんに突っつかれるのが怖いので少しだけ(^_^;)

まあ違う意味で突っつかれるのは慣れてるんだけどw

簡単に書いとくと、HTMLCSSPHPMySqljavascriptくらい…なのかな?

Semantic Scuttleが裏でやってることはあまり詳しく分からないです。

作成のあらまし

前述の通りアダルト系のブクマサービスを作ろうと決めてから

プログラミング勉強を始めることにした。

HTMLCSS

どうやらまずはHTMLCSSをやれということらしいので、そこから始めた。

使ったのはこれ。

ゼロからわかる HTML&CSS超入門

http://www.amazon.co.jp/dp/477414536X/


メモ帳で簡単なWebページを作りながらだと結構スッと頭に入ってくる。

逆に言うと、読んでるだけだと全然あとで思い出せない。

「Ctrl+U」でページのソースを一発で見れることを知り、参考のために色んなサイトソースを見まくった。

全部頭に入ったわけじゃないけど、ここまでで最低限、検索ワードが思いつくぐらいにはなる。

ここまでで大体一ヶ月くらい。

PHPMySQL

もちろんHTMLCSSだけではてブ的なものが作れるわけはない。

っていうかほぼ路頭に迷った感じで「はてブ的なものを作る方法」をググりまくった。

結果「Semantic Scuttle」なるものでそれに近いサービスを作れることが判明。

「Semantic Scuttle」を調べてみると、どうやらPHPMySQLで動いているらしい。

でもダウンロードしてみて中身を覗いてみても何が何やらさっぱり。

これなら漢文のほうがまだ読めるわ!

ということで、PHPMySql勉強することにした。

とりあえず2つ一緒に覚えられそうだと思って元彼にこの本を借りてきた。

実践マスターPHP+MySQLPHP4/PHP5対応

http://www.amazon.co.jp//dp/4881665839



XAMPPインストールをして、PHP書いて、MySQL接続して…

ふむふむ、書いてあるとおりに作ったのは作ったけど、あんまりわからん。というのが感想

特にクラスの理解で躓いた。

ちなみにPHPを書き始めるのにあたって、eclipseという統合開発環境意味いまいちわかってないけど)を紹介され、インストール

コード書きやすすぎ、色分け便利すぎワロタwwwと思ったのを覚えている。

設定はめんどくさかったけどね。

eclipseについて詳しくは→http://www.javadrive.jp/eclipse3/

しかたない、まずはPHPだけでも頑張るかと思い、次に借りたのがこの本。

PHPによるWebアプリケーションスーパーサンプル 第2版

http://www.amazon.co.jp/dp/479733245X/


ひと通りサーッと読んで大体どんなことが書いてあるのかを頭に入れてから

必要そうなところを詳しく読んで作ってみてっていうやり方をした。

MySQLのことにも触れてあるので、そっちの復習もできた。

クラスについても薄らぼんやりわかってきて、動くものを作れるレベルには上達。

この辺りは、サボったり迷ったり環境整えたりで2ヶ月くらいかかったかな。

いよいよSemantic Scuttleを読み解く!

さて、これでいけるだろうと意気込んで長らく保存しておいたSemantic Scuttleのソースコードを見る。

わからん

モニタを見つめながら、頭のなかで脳みそが湯だっていく。

そもそもファイル間の構造がどうなってるのかわからない。

挫折。。

どうすればいいのってことで、元彼にヘルプ

MVCってのがあって、モデルとビューとコントロールってのが多分…」

φ(..)メモメモ

「とりあえずindex.phpから見て行ったらいいんじゃないかな?」

「わかんないところはプロジェクト全体を検索してみなよ」

ふーん。今でもMVCとかってのはほとんど理解してないけど、最後のは役に立った。

ファイル名やら関数名でプロジェクト内を検索しまくって、大体の構造を把握。

からない内部関数は「php関数名)」でググる

と簡単に書いてみたものの、この作業には2ヶ月ほど費やした。

Semantic Scuttleをカスタマイズ

構造はなんとなくわかったものの、実際触ってみると動かなくなるケースが多数。

ひと通りの勉強は一応したけど、実地のカスタマイズは非常に難しい。

ファイル数300を超えるプロジェクトの恐ろしさを知る。

他に使ってる人おらんのかなと思い探してみるとこんなものが。

ソーシャルブックマークソフトScuttleの強化版Semantic Scuttleを導入してみる

http://tukaikta.blog135.fc2.com/blog-entry-70.html

・【閉鎖される前に】Deliciousからデータを移行できるオープンソースCMS・scuttle

http://kachibito.net/software/scuttle.html

ありがたくカスタマイズに利用させてもらう。ホント感謝しまくりです。

でも上のURLに書いてあること以外にもカスタマイズしたいところがあった。

1.ブクマ数を記録したい

2.Voteじゃなくてブクマ数順にソートしたい

3.どうせならブックマークボタンとか作りたい

4.ブックマーク数を表示するシステムを作りたい

5.デザインダサいので変えたい

1はだいぶ考えたんだけど、DBちょっといじくって、フィールドを追加してそこに記録することにした。

2はPHPDBをあれこれして、ド汚いコードながらも根性で実装。

3で再びの挫折。なぜならjavascriptを使わなければならないことが判明したから。

javascript

まだ勉強しなきゃいけないのか…とは思ったが、初心を思い出し、頑張ることを決意。

おらあああ!なんかjavascriptの本貸せやぁああああ!と丁寧に元彼に頼んでみたところこの本が手に入った。

JavaScript 第5版

http://www.amazon.co.jp/dp/4873113296

うん、馬鹿じゃないの。こんなん理解できないよ。こっちは時間がないんだよ!

もう一冊なんか初心者向けを貸せ!

マンガでわかるJavaScript

http://www.amazon.co.jp/dp/4798027839/

おい、馬鹿にしてんのか。とは言わなかったけど拳で表現した。

でもマンガなので超読みやすい。

読了したあと、ネットと前者の書籍必要なところだけ調べることにした。

で、調べていったところ、4については

scriptタグでtypeを"text/javascript"にしてもPHPを読み込めるということがわかり、PHPで強引に表示させることにした。

3はもともとSemantic Scuttleにあったブックマークレットをちょこっと編集して解決。

これで大体1ヶ月半くらい。

デザイン

最後の難所、デザイン

一応CSS勉強したけど、美術センスのない事どこかのはいだしょうこお姉さんレベル

でもデフォルトデザインダサいってことくらいは、かろうじてわかる。

あらん限りの人脈を使ってデザイナーさんを探したところ、やっとのことで0人見つかった。

しかたないので、自分でやることに。

どうも調べたところ、TwitterのBootStrapってのがいいらしい。

CSSを見てみるが、長い! 「Bootstrap 使い方」でググる

よくわからないながらも↓とか見ながら手探りでコードを書いていく。

Twitter Bootstrapの使い方

http://greenapple-room.com/conc/user/TwitterBootstrap/bootstrap.html

これでとりあえず基本的なことがひと通りわかり、ちょっとだけよくなった。

だいぶ前にやったCSSを思い出すのが大変だった。

でもタイトル周りとかが全然ダサイまま。普通に自分で見てて萎えるので、さらに調べる。

見つかったのが↓

Bootswatch

http://bootswatch.com/

あ、なんかこれいいなと思って「Slate」っていうテーマをいじくりいじくり、色々試しながらタイトル周りとかを整理。

デザインができあがるのに、1ヶ月くらいだったかな。

完成!(?)

まあこんな感じで大体できましたー!

全部で約8ヶ月…長かった…。憑かれたぜパトラッシュ

作ってみてわかったこと

ググる ググる ググる!とりあえずなんでもググってみることが一番大事だとわかった。

誰かが同じようなことをしてることも多々あるし、少なくともヒントくらいは見つけられる。

・助けてくれる人がいるとかなり楽

ググっても出てこない情報は厳然としてある。そういう時は、経験者にアドバイスをいただく。

Yahoo知恵袋でもいいし、知人でもなんでも。ネットの優しい人達感謝するようになった。

お店の掲示板では叩かれっぱなしだけどw

プログラマーすごい

今まで何気なく見てたホームページだけど、膨大な技術結晶なんだなと思った。

その端っこに触れただけの私のようなものでもそう感じるんだから、それはそれは深遠な世界なのでしょう。

これ仕事にしてる人とか尊敬します。

秘ブのブックマークボタンとかブックマークレットとか

せっかく作ったので、使ってやって下さい。

ブックマークボタン

ブックマークボタン大(126px × 20px)

http://hibu.jp/bookmarkbutton.php#bmbd

ブックマークボタン小(42px × 20px)

http://hibu.jp/bookmarkbutton.php#bmbs

ブックマークレット

http://hibu.jp/bookmarkbutton.php#bmlt

ブクマ数表示コード

http://hibu.jp/bookmarkbutton.php#bmn

詳しくは↓をご覧あれ。

http://hibu.jp/bookmarkbutton.php

登録時の注意!

このサービスは一応「秘密の」もんなので、普段使ってるSNSユーザー名とか使わないほうがいいんではないかと思います

ブラウザに直接入力でも簡単にいけるようにドメインはまんま「hibu.jp」にしておいたので、

ブラウザブクマするのもはばかられる方はダイレクトに飛んできて下さい。

今後の予定

スマホ版作りたいなぁ…

それから、ご要望があればチューニングしていきます

ちなみに、勉強したおかげか今現在はそこそこ本職のほうで稼げてはいます

もし万が一このサイト成功したりしたら風俗あがることも考えられるのかなぁ…

願わくば、皆さんのエロライフが充実することを。

でも吉原にも遊びに来てくれると嬉しいな。

怖いところじゃないから、気軽にね。

2013-02-27

型が無い事の利点とやらが全く的を射てない

変数に型がないということの利点について考える

http://d.hatena.ne.jp/perlcodesample/touch/20130227/1361928810

が大変お粗末な内容だったので、反論記事を書きます

型推論ソースコードコンパイル時間を遅くしてしまますソースコードが大きくなってきた場合に、すばやく書いて、すばやく実行結果をもらうことができなくなります

今時のパソコンならコンパイル時間なんて大したことない。

大規模開発環境コンパイル時間よりリンク時間の方が問題になりやすいが、それは別に型の話とは関係ない。

あと、インタープリタ最近は実行時にJITコンパイラが走る。

実行時間に影響がなく、開発者の待ち時間で済む方が実はよいのでは?

統合開発環境での、メソッド自動補完の機能の実装が少し難しくなります

みんなが統合開発環境をつくるとでも?

そもそも型が不定なら補完することすらできないので、

比較対象として相応しくない。

変数に型がないとソースコードの変更に強くなります。たとえば右辺の返す型に変更があったとしても、受け取る側のソースコードを変更する必要はありません。

これは逆に危ない。

実行するまで意図したインスタンスが返ってこなくなった事実に気づかないから。

コンパイル時に指摘してくれる方が安全

変数の型を持つ言語は、型が異なるのだが、処理としては同一の処理を行いたい場合には、オーバーロードという機能を使う必要があります変数の型がなければ、オーバーロード機能必要ではなく、ただ単にif文で分岐すればよいだけなのでとても楽です。

インターフェイスというもの勉強してください。

CならVTable。Javaならinstanceofなど同等の事はできます

というか、これ。型を意識しまくったコードじゃないですか???

C++テンプレートのような複雑でデバッグしにくい機能を使ったりしなければなりません。

とあるインスタンスしか入ってないつもりのリスト

実は全然ちがうものが混ざってた!なんて事故コンパイラによって止められる分、デバッグする必要すら無いんですけどね。

変数に型がないとどのような型の値が代入されているかからないという批判があるかと思います。可読性の問題で

変数に何が入ってるかわからないよりも、

インスタンスが何を持ってるのかわからない方が可読性に問題がある。

2013-02-20

天然だとしたら貴重な物件

http://d.hatena.ne.jp/RepsolFireBlade/20130220/1361332690

それだけ、PHPって流行っている言語で、この問題も注目されているってことなのね。まあ、言語としてPerlよりはマシだと思うね。ってか私Perlいかも?しかPHPにも型がないところが嫌いなんだけど。

 世が世ならこの破壊力は大きかった。

C系の構文を採用する言語の中でPHPけが左結合などという非常識仕様採用している。そもそもCを真似して作ったのに、ここだけ「間違えて」実装しちゃったとしか思えない。で、それを後から仕様だ!」って言い張っているんだろうなぁ。大人げないねぇ。素直にバグだって認めれば良いのに。実装のバグじゃなくて仕様バグね。言語仕様として「三項演算は左結合です。」って言ってしまえば、その実装は正しい。私が言っているのは、仕様バグ。つまり仕様です、そう決まってます、と言っていること自体が間違っている。どう考えたっておかしいでしょ?

 普通、色々書けば書くほど説得力は増すのだけど、書けば書くほど説得力が抜けていく。

あっちこっちで、ネタにされていた中に「今さら言語仕様変えるなんて、後方互換性はどうなる?」なんてのがあったけど、そんな非常識プログラミング存在しないだろうから問題ないと思う。その前に、後方互換性って今や死語じゃない?

 C++11先生まじぱねーっす

いずれにしても、昔のプログラムを救うことを考えるより、今後も続々と増えるであろう「C系の言語から入ってくる人」を救うことを考えるべきだね。

 それじゃ、とりあえず読みやすソースコードを残して頂けると大変助かります

 このおっさんがすべき事は、このおっさんがどんなネストを書いてしまったのか、そのPseudo Codeを晒すこと、ただそれだけ。

2013-02-11

ソースコードというウイルスプログラム

そんな叩かれるほどの表現とは思えない。

おじいちゃんにソースコードという概念を、新聞の紙面でどうやって伝えろと

http://anond.hatelabo.jp/20130211170357

どうせ「ソースコードってなんだ日本語で説明しろ」っていう人達のほうが多数派でしょ

http://anond.hatelabo.jp/20130211170039

てか、マジレスすると

デスク(ド文系)「おい、hogehoge!あの遠隔操作ウィルスの記事どうなった!」

hogehoge(ド文系)「今書いてます!なんかソースコード?っていうのが見つかったみたいで、ウィルスの証拠のようです。」

デスク(ド文系)「そうか!よくわからんが、そのソースコード?って奴が原因だって当局が言ってたんだな?じゃあそれで早く書け!時間ねーんだ!」

という感じのやり取りがあったことは明白なわけだが。

プログラマ連中は社会常識想像力が欠如しすぎなんだよ。

この程度のことでオタオタ騒ぐな。

http://anond.hatelabo.jp/20130211170039

遠隔操作ウイルスソースコードが記録されていた」ならこんなに紛糾しなかったのに、新聞記者日本語能力に疑問を持たざるを得ないな。

朝日新聞の「ソースコードと呼ばれる遠隔操作ウイルス」表記を巡る議論

問題になっているのは朝日新聞の次の文である

首輪に仕込まれたメモリーカードには、『ソースコード』と呼ばれる遠隔操作ウイルスプログラムが記録されていた」

http://t.co/ZuXlpwk0

この文は二通りに読むことができる。ひとつ

「『ソースコード』と呼ばれる、遠隔操作ウイルスプログラム

を「ソースコードウイルス」と読み取る方法と、

「『ソースコード』と呼ばれる、遠隔操作ウイルスプログラム

と読点を補って「ソースコードプログラム」と読む、二通りである

まずこの読み取り方の時点で議論を呼んだ。前者の読み方で受け取り、記事の執筆者がIT用語を理解できていないとして「ソースコード危険!!(笑)」と朝日新聞の揚げ足を取る人たちである。原文を改変して誤読を煽っているツイートスレタイもある。

次に、この書き方でも十分「ソースコードプログラム」と読めると主張する人も現れる(記事の執筆者はこの読み方を予想したのだろう)。この人達は記事をひと通りにしか読めない前者をバカにしている。

次の段階が、「ソースコード」という用語の使用法である

ソースコードも広義のプログラムなのでこの書き方で合っているとする派、ソースコードプログラムではないと厳密な定義を主張する派。

この人達の議論は「ソースコードウイルス」としか読めない人たちには通じないので流されてしまっている。

このように異なる読み方ができる文を書いた朝日新聞は擁護できないが、議論が錯綜しそうなので整理した。

2013-01-29

この前面接したところ

facebookをこえる!

創業数ヶ月で社員60名超え!

かいき巻いているCTOがいるけど、

実際は炎上案件ばっかりの派遣ばっかだったおち。

前職からソースコード流用あたりまえ

ぼったくりIDCとか

明晩つぶれそうだったのだお断りしてきた。

まだあるんだなぁこんな会社

2013-01-22

はてな記法をもう少し簡略化して欲しい

ブログで「続きを読む」のはてな記法「====」あるいは「=====」を用いても反映されない。

何のための記法なんだか皆目見当がつかない。

かと思えばはてなキーワードでは同様の記法を用いると普通に出来てしまう。

変なソースコードばかり載せないでもっと簡略化するか脚注いれるかしてよね。

これだからはてなソニーVAIOみたいに初心者から敬遠されんのよ

2013-01-18

素人が完全自作SNSを二週間運営してみてわかったこと(後始末編、技術編、モチベーション編)


素人が完全自作SNSを作ってみてわかったこと。

http://anond.hatelabo.jp/20130104184115

元増田です。

ひっそりと公開したはずのtag-chat.net(http://tag-chat.net)ですが、

まさか、こんなに反響を頂けるとは思っていなかったので、びっくりしました。

素人のフリをしているとか、出版社ステマだとか色々言われましたが、嘘は一切書いてないです。

ステマというか、ウェブサービス公開後の状況を知っている方からするとマイナスステマしかなっていないような気がします…。

公開してから、色々と発見というか気づきがあったので、それを共有できれば幸いです。あと、tag-chat.netの中身についてなど。



増田記事を公開してから今までの経過~

・意気揚々と自作SNSを公開したものの、アクセスが全くこなくて途方にくれる。

             ⇓

・以前、完全に一致を作った増田の方が、増田記事を書いてからアクセスが急に来たと書いてあったので真似して書いてみる。

             ⇓

・翌日ごろからアクセスが集中。ビビる。「うちの会社で働きませんか?」と言ったお誘いのメールをたくさん頂く。

いきなりの出来事にパニックになっている間にも増田記事が拡散していき、アクセスが急増する。

             

             ⇓

アクセスが爆発する。1時間あたり二万アクセスというアクセスを捌ききれずにサーバーが落ちる。サイトのウリであるが、メモリ使用量

が最も高いマッチングチャットを一時使用停止にする。

             

             ⇓

・その後、サーバーを増強。エラー情報や、寄せて頂いた情報をもとに各種エラー情報や、使い勝手などを改善

             

             ⇓

現在、安定稼働中。おかげさまで、ユーザー数もゆるやかに増加していて、基本的な機能も正常動作していますユーザー数はもうすぐ

1000人に届きそうでありがたいばかりです。


と、いうわけでなんとかようやく落ち着き、ウリのマッチングチャットも正常に作動しているようなので、後記事を書きます





~後始末編(Webサービスを実際に運用してみて)~

ウェブサービスの公開前に注意すべきだったこと。

①・セキュリティについては書かないほうが良い。色々といじられる。

前回の増田記事で、DoS攻撃の対策などについて語ったのですが、それを確かめるためなのかサイト公開してしばらくしてから、定期的に

Dos攻撃をくらいました。

おかげ様で、ちゃんと一時的にそのIPからアクセス遮断することはできたのですが、セキュリティについてあまり大々的しゃべると攻

撃対象となるので、あまり具体的なセキュリティ対策などについてはしゃべらないほうが良いのかな、と感じました。

また、DoS攻撃だけでなくCSRF試したり、色々といたずら(もしくは善意テスト?)をして下さる方がとても多かったのには驚きました。

はてな民技術レベルの高さを知りました……。いたずらされている間は本当に怖かったです。

とりあえず、今のところ攻撃は防げているようです。



②・作者のオナニーユーザー様をつきあわせてはいけない。

はじめ、私は調子に乗ってサイト内に英語を多用していたのですが、それがユーザー様にとって混乱のもとになっていたようです。

例えば、他のユーザーから自分の書いた日記などにコメントがついた時に、それを知らせるページがあります

普通に考えれば「友達からの反応一覧」とか「友人からの反応」とかにすれば良いのですが、何を血迷ったのか「Reaction」と中二病丸出

しで書いてしまったので、ユーザー様がものすごく混乱したようです。

結局、「使いにくい」、「サイト迷子になる」との声を受けて日本語メニューに変更しました。




③・使い方のページはくどいくらい書いても良かった。


フリーチャットや、マッチングチャットでは、基本的に相手が見つかるまでは「待ち」の状態になります

相手がすでにこちらを「待っている」状態だとすぐにチャットが始まるのですが、そのことに対する説明が足りなかったようで、チャット

ルームを出たり入ったりしている人が多かったようです。

また、チャットが終了した時にチャット相手にお礼をこめてメッセージを送る機能があるのですが、これも説明不足で上手く使われなかっ

たようです。


とにかく、くどいくらい説明しても良かったと思います









ウェブサービスリリースする前にやっておいて良かったこと。

①・Twitterアカウントを作りそこから最新情報を流せるようにする。

 これは本当に大きかったです。

 とつぜんの増田砲で一時間あたり二万アクセス近くのアクセスをさばけずに、サーバーがビジー状態になってしまった時も、Twitterを通

じて現在の状況などを流せたことは非常に大きかったです。





②・エラー情報を送ってもらえるようにメールアドレスを作っておく。

 本当にありがたいことに、実際に使ってみた使用感や、こんなエラーが出ていると言った情報を送って下さる方がいます

 一人でテストしていた時には気づかなかったエラーや、不便な点などをわざわざ時間をとってメールで教えてくれるのです。

どこの馬の骨ともわからん怪しい奴が作ったものに登録してくれ、使ってみてくれただけではなく、エラー情報や励ましの言葉を送って下

さるのです。

本当にありがたいことです。



③・それでもわからないエラー情報に対して対処できるようにしておく。

 優しいユーザーの方がエラー情報などを教えて下さるのは大変ありがたく、また開発の励みにもなるのですが、それに頼ってばかりいて

ダメです。

 サーバーの吐き出すエラー情報を調べて、おかし挙動にいち早く気づく必要があります

本当はhttpdエラーログとか見れば良いんですけど、はっきり言って物凄く見づらいので、ツールを使って毎日「こんなエラーがでました

」と教えてもらうようにしておきました。

色々なツールがあるみたいですが、私はlogwatchを使いました。

・参考URL

http://www.atmarkit.co.jp/flinux/rensai/root04/root04c.html

これでエラーの出ているところだけでも、修正するということをやっていました。


■ ウェブサービスを運営してみてわかったこと。

①・SNSの人の流れにはなんだかよくわからない規則性がある。

tag-chat.net グーグルアナリティクスでどれくらいの人が毎日来ているかをウォッチしているのですが、なぜか月曜日と週末にかけてア

クセスが増えます

謎です。週末はわかるけれど、どうして月曜日に……?



②・やっぱり非リアの気持ちは非リアじゃないとわからない。

前回の増田記事に対するコメントネットの反応などで、

「どうして普通にはてブに書かないのか。なんで増田なのか」とか「非リアを装って」

とかコメントしてる人たちがいたのですが、その人たちは非リアについてなんもわかってないアホだと思いました。


もともと自分名前なり、アカウントを明かした上ではてブ投稿できるくらいの度胸があれば非リアになんかなってないです。それは自

分でもわかってます

自己顕示欲人一倍強いくせに、人に名指しで批判されるのが怖いか増田投稿したのです。



フェイスブック実名ウェブサービス作ったことを投稿できるような度胸があればそうしてますし、はてブに書けるなら書いてます

そうするだけの度胸もなくて、でも誰かに認めては貰いたいか増田に書いたということをわかっていない。


③・ネットのみなさんが優しい。

 今までネットの人たちは2ちゃんねるとかで炎上したり、なんか面白そうなものを見つけてお祭り騒ぎする、ちょっと怖い人たちという

イメージだったのですが、それが今回のことでガラリと変わりました。

 本当に優しい人が多くて、どこの馬の骨ともわからない奴の作ったウェブサービスを使ってくれるだけでなく、感想や励ましのメール

どをたくさん頂きました。

 遥か雲の上の存在だと思っていた会社の方からメールなどを頂きました。本当に感謝してもしきれません。

 





技術編~

Tagchatの技術的なこと。

①・nodejsを使って外部にサービス公開するなら、認証必須。主に不正な負荷を減らすために。


さっき書いた、「セキュリティについてはあまり書くな」という話と矛盾するのですが。

nodejsでのセキュリティの話です。

nodejs、すごくアクセスさばけて、なおかつ軽いということで便利なんですが、サーバーなので、基本的にリクエストを受けたら非常に素

直に返事します。

例えば、nodejsとsocket.ioを使って、単純にメッセージサーバーに送るとして、クライアント側で

socket.emit('hoge','hoge');

のようにすると、サーバーはどこから来たアクセスなのか、とか悪意のあるアクセスなのか? とか一切気にすることなく、素直に'hoge'

というメッセージを受けます

これはつまり、第三者が悪意を持って大量にメッセージを送りつけるとそれを素直に受け取ってしまうということです。

なので、例えば大量に不正データを送りつけられたりするとレスポンスが悪くなります

なので、悪意のあるアクセスはsocketにそもそも接続させない、という対策がサーバー側で必要になると思います

socket.ioではコールバックを使って、簡単に認証させるかさせないか、という実装ができます。具体的には以下のURLなどを参考に実装す

ればいいかと思います

http://d.hatena.ne.jp/Jxck/20110809/1312847290



②・nodejsの最大接続数は、ファイルディスクリプタ依存する

ということにしばらく気づかずに、最大接続数が400ほどしか出ず悩んでいた時に以下のURLを参照して、なぞが解けました。

http://blog.livedoor.jp/mokepon/archives/182178.html

 またsocket.ioのテストの書き方ですが、

http://d.hatena.ne.jp/toritori0318/20120902/1346591831

という素晴らしいエントリーがあったので参考にさせて頂きました。


■楽できるところは楽するためのツールなど。

nodejsの開発で、面倒くさいところはできるだけ楽しました。以下、便利だったものまとめ。


・node-dev

コンソールにデバッグ情報を吐き出してくれ、サーバー側のコードをいじくった時に自動的に再起動してくれる。

いちいちコマンドプロンプトからnodejsを実行する必要がないため、作業の手間がはぶける。

nodejsを触り始めた時はエラーを吐いてばかりなので非常に役に立ちました。

参考URL

http://d.hatena.ne.jp/replication/20110224/1298474534


・forever

nodeのプロセスデーモン化してくれる便利ツール。

様々な使い方があるようですが、stop,list,startの3つぐらいしか使いませんでした。まだ、研究中です。

参考URL(基本的な使いかたが非常にわかやすく書かれています

http://nantekottai.com/2011/08/15/node-js-based-service-with-forever/


・mongoose

nodejsからmongoDBを扱うのに最適。

ドキュメントは色々ググったのですが、結局公式のドキュメントが1番わかりやすかったです。

http://mongoosejs.com/







モチベーション編~

■一人でウェブサービスを作る上で、心の支えになった記事。

はまちちゃんさんの、「セキュリティ過敏症の話」。

http://d.hatena.ne.jp/Hamachiya2/20080131/security

とにかく楽しんで、作ってみることが大事だよ、というお話です。すごい勇気づけられます


小飼弾さんの産声の話。

http://blog.livedoor.jp/dankogai/archives/51837985.html

弾さんは、お金持ちで、腕は一流で、PHPこき下ろすし、なんかすごく怖い職人イメージだったのですが、このエントリーを読んで、クソ

まみれでも産声を上げてみようと思えました。

実は優しい人なのかもしれません。私の高校時代担任先生にどことなく似ています

 





■お詫びと訂正

前回の増田記事で、OpenPNEについて間違った記載をしてしまいました。ソースコード公開に関する記述の部分です。

OpenPNEではそのソースコードを改変したら、そのソースコードを公開しなくてはならないと書いたのですが、これは間違いです。

OpenPNE方々には大変ご迷惑をお掛けしました。申し訳ありませんでした。




あと入家さんに謝りたいです。

勘違いサブカル野郎とか言ってすいませんでした。

フェイスブックにもとりあげて頂いたそうで、ありがとうございます

怖いのでどんな投稿なのかはまだ観ていませんが、本当にありがたいです。







最後に。

ウェブサービスをコツコツと作り続けて公開したところ、増田記事のおかげもありたくさんの反響を頂きました。


ただ、別にウェブサービスを公開したからと言って、実際のところ何かが劇的に変わったわけでもないです。


グーグルアドセンスは支払い規定の一万円を超えていないので、手元には一銭も入ってきませんし、実名出して行動できなかったので現実

ではほとんど反響はなかったです。

あいかわらず休日地元ゲームセンターレトロゲーをやって時間をつぶしていますし、学校から帰ってきたらももクロライブを観て

Chai Maxxを踊ってから寝るだけの毎日です。それでも結構楽しいのですが。

ただ、ネット上で様々な先輩エンジニアの方々や、同年代で同じようにフェイスブックが嫌いな方から励ましのメールをもらいましたし、

本当に、びっくりするような充実した二週間でした。

はてブで人気のエントリーにあがった時のスナップショットは未だに大事にとってあります

tag-chat.nethttp://tag-chat.net)を作って本当に良かったと思っています

2012-10-30

スパゲティ

プログラミングわけわかんない

先輩たちが作ってきたぐちゃぐちゃのソースコードみてバグ消すのもうやだ

作り直すのもやだ、無理、死ぬ

逃げ出したい

2012-10-24

「ねぇ?そのソースコードコピペしてない?理解せずにコピペばっかりしたら、ソースを改良するスキルが身につかなくなっちゃうよ。」

「してないっす」

「なんで、コメントまで、懇切丁寧に一字一句間違えずに写してるの?」

「いや、そのほうが、見やすいかなって・・・

「で、なんで、今悩んでいるのが、どのソースを削って、他のソースと合体させられるかなの?」

「参考にしてきたサイトのものをうまく使おうと思いまして。」

もしかして、理解してないってことなのかな。」

「あ、どこを削って、何を追加すればいいのかわかりました」

(チラ・・・・)

「あ、今はあくまで機能テストのためにコピペしますね」

・・・来年もがんばろうな!)

2012-10-10

コピペしてわかれた兄弟の仲を取り持つのは大変だという話

目の前にある、ほぼコピペのソースコードあなたならどう整理しますか? 一箇所治すとき微妙に違った他の二箇所も直さねばならなくて、だんだん、それぞれコピペ先に個性というか、性格が若干違ってきて、対応にこまるようになってくるよな。

太郎は表示の仕方を教えてやったから、一言「表示しろ」とガツンと言ってやるだけでなんでも面倒みてくれるけど、二郎太郎と違って、だるいやり方しかからないので、いちいちあれはやったか、これはやったか、と面倒見てやらなければならない。三郎にいたっては太郎二郎にはここまで教えたけど、三郎にはどこまで教えたっけ? 三郎これ知ってるか? 今どうやってるんだ?と、太郎二郎との違いを意識しないといけなくて、大変面倒くさい。 三郎なんかしらーんと言って放置すると、三郎がうまく働かなかった時、僕が怒られるし。

何を言ってるかよくわからない? 私もよくわかりません。 コピペしたときには同じに見えた兄弟が、家を出たとたんてんでばらばらな性格になって、同じことを頼むにも個性に合わせた頼み方を考える必要があって親は一苦労だ。 という話です。

どうすればいいか? 太郎二郎と三郎をアホにして、同じような作業は全部母にやらせればいいのだ!!!

そのためには三人に母が頑張ることを伝えたり、どこでおなじことしてるのか聴きだしたりしないといけなくて、大変面倒だという話。母には話しづらい作業もあるからな。

そうやって三人の話し合いを先延ばしにしてると兄弟げんかして収集つかなくなるので早めになんとかしないといけないのだが。

2012-09-11

下請け未払い#4

anond:20120904212644

昨日弁護士に連絡してね、って弁護士の連絡先おくったのに、返信で逆ギレメールが私に来た。

内容は

・こんな時間数認められない

ソースコードが読めない

って内容だった。

バージョン管理システムつかって納品してるからソースコード差分わかるだろうし、

動作も確認して実際にリリースしてるコードなのになんでソースコードが読めないとかいうんだろう。

2012-09-10

ソースコードについて

上司

っていうのに疲れた

2012-08-11

孤独な夜の鬱日記

2年とちょっと前、19歳のときに、俺はとあるWEBサービスを作った。

覚えたてのGoogleAppEngine上で、500行ほどのソースコードを動かしていたんだけれど、

宣伝方法がよかったのか、ニーズに合っていたのか、

サイトは瞬く間に月間2000万PVほどのサイトにまで成長した。

しかアクセス数の増加にともなって、自分の力では技術的に処置できない問題にぶつかり、

解決することができないまま俺はそのサイト放置した。

俺はtwitterブログFacebookもやっていなかったし、ネット系の企業バイトなんかもしてなかったし、

元来の引っ込み思案な性格もあって、誰かに相談するという発想自体がなかった。

2年経った今ではサイトも廃れ、アクセスも1/10以下に減少し、月の食費を賄えるかどうかくらいの広告収入が入ってくるだけ。

あのとき、どこかの技術者の人に押しかけてでも相談していれば、もっとモノにできたのだろうか?

おおっぴらにUVPVを喧伝すれば、誰かが興味を持ってくれたのだろうか?

……俺が本当に後悔しているのは、WEBサービスが廃れたことだけではない。

この件に限らず、ずっと一人で塞ぎこみ続けることで、

しかしたら築けていたかもしれない人とのつながりを、自ら絶ってきたのではないかということ。

そしてその後悔を匿名で書いている、救いようのない人間だということ。

2012-07-15

Twitterで知り合った自称Geekの子HTMLの話をしてみたら

なぜかLINEでのやりとり。このあとTwitterでblockされた。

Ahi
Byeah
B学校祭わろた
Aおつ。
A打ち上げ的なものはないの?
Bない
B学校祭中
Aああ、把握。わろたがおわたに見えた。
B学校祭ェ••••
Bパソコン部の展示なう 誰もけえへんやん
Aなるほど
Bパソコン部だけ学校雰囲気じゃねーww
Aそんなもんや…
Bあっちで音ゲー こっちでぽけも
B君もパソコンかい
B友達こねーくそわろ
Aんにゃ、高校のときは※※と〒〒やってたねえ。
B学校祭の新しい形ですね
B学校祭なんてお客さんが楽しむもので、生徒が楽しむものではない、生徒は楽しませる側です
A僕んところの高校のパソコン部とか何やってたんだろうねえ。
ATwitterとか見てると灘校のパソコン部展示とかは相当盛り上がってたみたいだけど。
B君は神学校出身かい
B灘高は秀才から
Aいや、ずっと公立だね。
Bつくこま のパソコン部もハイレベルやで
B偏差値は?
A僕の偏差値? 学校入試偏差値?
B私は地方進学校(笑)です
B学校と君の
A同じく地方進学校ってとこだね。もっと田舎から高校入試は大した競争はないんだけど。
B数学できんねやろ?
A入試偏差値はさすがに新聞か高校入試情報誌バックナンバーあたらんとわからんなあ。
Bというか君札幌じゃん
Aんにゃ、札幌じゃないけど。
B北海道??
A北海道
Bむろらんさかえ?
Bくしろちょうりょう
Aノー。
Bかいせい?
Bあさひがおか?
B東西南北
B
Bどれ?
B帯広はくよう?
Aちゃうねん。
Bどこ?
B西?
A柏葉とか〒〒強かったなあ。
BW
B 君×高?
ANo.
B俺×高www
Bわろたqwwww
B×高わろたwww
B×高わろわろわろたwwww
Aなにがおもしろいwwww
B君は?
A(そもそも高校生ではないんだけどね…)
B中学生大学生
A大学出てるよ
B出身高どこ?
B北海道ではないの?
A△△。
Bもれ札幌×高。知ってる?私服やで!
B△△?
A私服やで。
B△△高校??
Ayes.
B▲▲系?
Aとは
B画像
B偏差値67わろた ●●県かー
Aそれ●●の男子校な。
A●●の△△はたぶん私服じゃないぞ
B●●神やな
B何県?
A△△市知らんのか…
B画像
Bしってるで!
B理数科?
A普通
Bなんで私服
B
Aなんでって言われても、校則制服がないからだけど。
Bわろた
Bこの話やめよ
A( なんでいきなり学校の訊問から始まったんだ…? )
BHtmlの話にかえよう
Aうむ。
Aで、HTMLって何さ?
A何だと思う?
Bはいぱーてきすとまーくあっぷらんげーじ 絵や歌と一緒で自分表現するもの
Bメディア
Aほむほむ
A「まーくあっぷ」って何?
B表現メディアの一種
B記すこと
Aんー
Aじゃあ、ハイパーテキストは?
B特殊効果付属された文字列及び画像
B及び記号
A特殊効果とは?
B色つき、アニメ
Bこの問答に終点はあるんですか?ゴールがみえてますか?
Aん、取りあえずHTMLがわかってないと話にならんしね。
A満点はつけられないけど及第点じゃないかなー、と。
Bはいぱーてきすと はネットにつながるやつですか
Bてへぺろ
Aネットにつながるやつ」が正確な表現かどうかはともかくとして、それはハイパージャンプハイパーテキストの特徴。
Bハイパーテキストとは
B模範回答
B
Bなんや
Bなんやなんやなんややややややややややややや
Aハイパーテキスト
Bんーなるほど
A要するに、ただのテキストを超えてる。
B○○高校のクズがおるで
Aって概念
B後ろに
Bそれで
Aでだ、そこで
AHTML5って何?
Bなんや
Bテキストを超越したもの創造するための道具
ANo.
Bなんや
Bプログラミング言語
Aそういう名前の「マークアップ言語」ってだけの話なんだけど。
Aプログラミング言語ちゃうねん。
Bしっとるわ
Bでいいたいことは?
B要旨はなんや
Aマークアップ言語」ってことが重要
Bはい
Bそれで
A言語であるからには規格があって処理系がある。
Aってことはおk?
Bうん
B規格?
A規格。
B処理系? 説明せぇ言われても説明できない言葉やわ
Bおしえで
Bおしえてー
A要するに、"print A" って文字列を与えたら "A" って出力するような仕組。
Bそれが処理系
Bきかくは?
Aざっくり言うとそう。
A言語言語として成立するための決まり
Aさっきの例だと "print A" なら「Aを出力しろ」という命令であるべし、みたいな。
AHTML場合は基本的には要素と属性定義になってる。
Bあーわかります
Bいえーす
A要素と属性おk?
Aelement と attribute 。
B要素 属性width height
Aおk
B 要素が親 属性が子
Aそれはちゃうねん。
Bじゃあなんや
Aでもそれは脇道だから置いておく。
Bいいす
Bいえす
Bそして
Bから
Bからの?
Aてっとり早く言うなら、HTML5定義されてる要素の集合に font や center は入ってない。
Bふむ
A集合は?
Bじゃあそれらはなんや
Bドモルガンの法則
B要素の集まり
Aおkおk。問題ないね
Bなめてんのか、て感じですよ
Aで、つまるところ何を見て font とか center を使ってんのよ、ってことになる。
Bしらん
B理由なくても動くから
B
Aってことは、HTML5を知ってることにはならん、と。
Bた(^-^)/な
Bだね
A"理由なくても動くから" niceだね!
Bだろぅ?
Bワイルドだろぅ?
Bで使っちゃダメな理由があんの?
Aさっきの話に戻すと、HTML処理系って何?
Aいっぱいあるよ!<だめな理由
B命令の内容とそれに対応する文字
Aノー。
Bなんや
Bユーザーの命令に対してのコンピュータが処理する内容
A入力に対して応答する「仕組」が処理系
Bしすてむ
Anice
B入力に対して応答する仕組み=処理系
A日本語の「系」は "system" に対応する。
Bおつす
Aで、HTMLを与えて、それをよしなに処理してくれるシステムって何?
B処理系
A具体的には?
BHtml処理系
AHTMLの有名な処理系は何?
Bhtml5
Aそれは規格。
Bやー
Bこんぱいらー?
Aコンパイラ処理系
A(の一部
BHtml処理系なんや
Bコンピュータ
A大雑把すぎる
Bcpu
Aノー。
Bめもり
Bなんやねん
Aノー。
BOs
Bweb
Bブラウザ
AiPhoneにもWindowsにも処理系が入ってるからWebが見られる。
A正解。
Bプレインストールされてすか
Aされてるね。
Bなるほどね
AHTMLの有名な処理系は何?」の模範解答は InternetExplorerとかMozilla FirefoxとかOperaとかGoogle Chromeとか。
B
Aで、どうして規格を守る必要があるのか、の話。
Bブラウザ名前をあげればいいんですね
Aそれはもう終った。
Bexactly
B
B
AHTML5では文書の先頭に って書くことになってるけど、これはどういう意味か。
B宣言
ADOCTYPE宣言
A宣言してるのに規格守らなかったらだめじゃん
Aやーいうそつきうそつきー、ってことになる。
A(まじで
Bどういうこと
BDoctype宣言してんのにcenter、fontを要素として使うのはだめだということですか?
AHTML5の」宣言してんのにcenter、fontを使うのはだめー、ってこと。
Bへー
AHTML 4.01 Transitional とかならおk
B規格守らないとどういう弊害が?
Aおkだけど、なんでそんな古いの使ってんのや、ってことになる。
Aあらゆる意味でめんどくさい。
B
B規格守らないと誰か困るの?
Aユーザも困るし、処理系を作るひとも困る。
Bなんで?
A困ったちゃんは絶滅しないから有名な処理系は古い規格をサポートし続けることになるのは確定的に顕かなんだけど。
Aたとえばちょっと処理系自作しようとしたときに規格を守ってない文書に当たると、例外的な処理をしなければならなくなる。
B新しいhtmlの規格がでても 古いバージョンサポートをやめられないのですか
Aそんなことをしたら、君のページを表示できるブラウザがなくなるよね。
A(HTML5サポート外の要素を使ってるから
Bなるほど
Bcenter、fontに変わる要素はなんや
B何を使えばええんや
Aそもそもそれを要素で指定するのがナンセンスである、って話になってくる。
Aまり中央揃え」とか「フォント」とかって意味の要素がナンセンス
B最初Css使ってたけど他人のコードよんでfontていうやつ見つけたんで使ってみた
A「他人のコードよんで」←まちがい
Bcsscolor: ;
A「規格書を読む」←せいか
B辞めてfont color使うことにした
B他人のページのソースコード読んででええやろ
A赤の他人はだいたい間違ってる
A(僕の言ってることも間違ってる可能性があるから規格書を読むべき
Bなんや
B表現が間違ってるわけじゃねぇんだよな
Bそういえや
B規格書をよめってことか
A暇なときにね
Ahtml5.jp とかで良い。
Bweb
Bなるほどね
B偏差値nn
B
A?
B君の偏差値は??
Aさあ
B教えてや
Aそもそも偏差値の基準とは
B模試偏差値とか教えて
B偏差値の基準は???
B偏差値の基準?なにをいいたい?
A模試って言われても高校出て何年も経ってるから数値自体に何の意味もないんだが。
B君は賢いかどうか知りたいだけよ。それを知るために偏差値は聞きたい
Bはを
A僕が賢いかって言われたらそりゃ賢くはないねえ。
B俺より?
Bプログラミング大会とかでたことある??
A偏差値が良ければ賢いって価値判断がそもそも相当賢くない気がするんだけど。
Aプロコン趣味程度にもやってないね
Bぉーわかってないね
B賢い奴は、学校勉強くらいできるのよ
B学校勉強程度はってことね
Aさっきの偏差値nnって何の数字?
Bプログラミング技能偏差値関係ねぇはずだけど、優秀なプログラマーは有名大出身ばっかさ
Bん?
Bんとね 君の高校の偏差値
B今のね
A把握。
A「優秀なプログラマーは有名大出身ばっか」の統計的根拠はあったりする?
Bない。俺が感覚的に感じた
Bアメリカ
Bれいおじー
A「実際に会った優秀なプログラマ出身大学の関係」とかでも良いんだけど。
Bレイ オジーマークザッカーバーグビルゲイツポールアレン
B下村努
Bスティーブ ウォズニアック
Aおお、そりゃあ有名人だ。
Aで?
Bこいつら全員アメリカトップ高校ばっか
Bなんや、小さい頃から理系天才エリートか、。?
Aそもそもその世代は有名な大学しかまともな計算機がないんだけどね
B日本Googleグリーの幹部は東大東工大京大情報工学ばっか
Bなんだ、理系エリート
Bなんや
Bそういうことかー
B所詮 有名企業高学歴巣窟か、
Aってことで、勉強がんばれ
B君はこの事実をうけとめられるか
Aそういうもんだからねー
B学生のうちは勉強をすべきなんだ.......
Bから勉強を.........!!!!!!
Aするべき。
A僕はまともに学校勉強はしてこなかった人間からねー
Bしろわ
Bしろやいま
Aんー、いまさら大学入試受ける予定もないしねえ。
B君どんな仕事してんの?
A自宅を警備するお仕事をしてるよ☆ ってTwitterのbioにも書いてる
Bニート
B
Aこんな夢見がちな大人になっちゃいけないよ☆
B仕事する予定は?
Aないない
Bしろや
B家でなにしてんの?
A勉強
Bなんの?
ASICP
B親が生活費だしてんこ
Bだしてんの?
Aんにゃ、自分お金でだけど
Bふりーたーか?
Bアルバイトはしてる?
Aないない。アルバイトなんてしたら自宅を警備できないしね。
Aそんな大人になっちゃいけない
B自分の金てなに?お前が稼いだ金?
Aいえーす
Bどこで?
B働いてないのに
A不思議だ…
Bお前なんやねん
B何者やねん
A自宅警備員
Bばか?
ATwitterのbioに書いてる以上でも以下でもない感じ。
Bごみ
B社会ゴミ
A少なくともいまの君よりは計算機科学に詳しい、ってことでおk?
Bおーけー
Aってことで、こんな社会ゴミなんか秒速で追い抜いてみせろ、ってことでひとつ
Bまあ俺がお前の歳だったら、お前より知識あるがな。俺×高やし、北大いくし
Aおーすごいすごい。
Aさっきの学歴を持ち出すなら北大じゃいろいろ物足りない気がするけど。
A素直に京大とか東大とか行っとけ
A北大教授京大東大ではしてない研究をしてるのが居てその分野を專攻したいー、とかなら別だけど。
A知ってる範囲の北大学生ものすごいのって、□□□□出てて高校時代から一人でばりばりプログラム書いてる、とかそんな感じだから
Bまあお前よりは高等だから
Bこめん
Bごめん
A僕より偏差値高いだろうってことは知ってるから、いまさら確認することじゃないなw
Aただ、具体名は避けておくけど、GoogleとかMSだけに優秀なプログラマが集まってると思ってるなら、それは間違ってるねー
A高学歴=優秀なプログラマ」が真なら、国内メーカーはどうしてこんな惨状なのか…
A僕がこの2年くらいで会ってきた、そこそこ多めな数の高校生とか大学生たちから見るに、優秀な高校生が良い大学入ってるってのはおよそ間違ってないね東大とか京大とか筑波とか東工大とか。
As/優秀な高校生/優秀な高校生プログラマ/ ね
Bそう吠えんな
Bごみなんだからお前は
B情報オリのメダリストは全員高学歴だろ
Aそれはまったく否定しない
B高学歴=優秀なプログラマーはいってないよくず
B優秀なプログラマー高学歴であることが多いてことな
Aで、情報オリンピックとか挙げちゃうとお前はどうなのよ、って話になってくる。
Bそれ俺より馬鹿クズがいうセリフじゃないぞ
A情報オリンピックメダリストになりたいの? 高学歴になりたいの?
B最終目標金持ちやね
B金持ちになるにはい大学いったほうが確実だろ?
Bプログラミング興味本位かな
A確実って言うには出身大学は要件としていささか貧弱な気がするんだけど
B金持ちになるには、いい大学いくことが近道
A僕は読みたい本が買えるだけの儲けがありゃ良いか金持ちとかあんまり関係ない話やね
Bくずめ
A上位の大学の方が平均年収が高い、とかって水準の話ならまったくその通り。
B金持ちなれねぇやつが かっこつけんなくず
A君が儲ける金は君のものだし、僕が儲けた金は僕のものから、まったく関係がないよね
Bきも
Bくずだw
Bお前は負け犬
B可哀想に
A別に君のおこぼれに与ろうってことは期待してないから、君が勝っても負けてもどうでも良いんだけど。
Bくずめ死ね
Bお前らはくずなんだから今すぎ死ね
A今すぎ
Bお前みたいな奴が日本の足引っ張んだよくずwww
A内心蔑みながらも日本未来を案じるさまは立派です。
ログイン ユーザー登録
ようこそ ゲスト さん