「プログラミング」を含む日記 RSS

はてなキーワード: プログラミングとは

2012-02-06

http://anond.hatelabo.jp/20120206214325

さすがにそれは会社を爆破したくなるw

日本プログラミングスクールってところでプログラミング学んだけど、メモリーが512MBしかなくて非常にストレスがたまった

学費は非常に安かったけど、宣伝文句と違ってアルゴリズムのあの字すらやってなかった

やったことと言えばバブルソートぐらいで詐欺にも等しいカリキュラムだった

(その代り期間は短くて1週間程度で済んだ)

http://anond.hatelabo.jp/20120205173934

某社内でのソフトウェア技術者について書きたくなったので書いてみる。

まず、そもそもプログラミング下請け or 子会社がやるものという認識。それを、最近本社でもソフトウェア技術者採用し始めたけど、やっぱり低く見られがち。プロジェクトの開発リーダーは必ず電気回路の人だし、外部との折衝もやらせてくれない。工場の製造用ソフトだってハードウェア技術者が無理して書いてる。

周りのプログラマーレベルも低いよ。自分の周りがそうなだけかもしれないけど、C言語以外できない人多いし、ポインタはおろか struct と union の違いも認識していない。環境がローレベルなのか、仮想メモリかいう考え方もない。 Windows しか使ったことない人ばかりだし、簡単なコンパイルエラー直すだけで数時間がかり。バグ管理はもちろん Excel。ヘッダファイルの define 一覧が Excel に表としてまとめられていて、手動で同期取ってたりする。

あとパソコンに対する考え方が古いよね。未だにCADを17インチディスプレイで書いてるし。今年会社で導入標準モデルになってるパソコンメモリ2GB, HDD 320GB しか積んでない。マシン投資するのは無駄という考え方が伝わってくる。スペックアップを主張しても「昔はもっと遅かった」で終了。

デスマーチを避ける考えもないかな。デスマーチを乗り越えたのが武勇伝として語り継がれる。俺何日も徹夜したえらい、みたいな。

そんなくせして、「Apple は大した技術力がないけど、アイデアがよかったかiPhoneiTunes がヒットしてる」と言ってる。まずいね

2012-01-28

http://anond.hatelabo.jp/20120128054047

プログラミング勉強していても日常生活や他の学問に応用できない感じがいやだ。

逆に聞きたいんだけど、元増田の言う「日常生活や他の学問に応用できること」って何?

プログラミング勉強している文型30代だが

プログラミング勉強していても日常生活や他の学問に応用できない感じがいやだ。

いろんな関数存在を知ったところで、言語の特性を知ったところで

その言語自体所詮誰かその辺の超巨大ギークプログラマーが考えたことでしょーが。

関数存在言語の特性の各論の前に

設計の思想とか、そういうキモギークプログラマーがどうやって生きて何を考えたのか

知るほうが楽しいよねー。

明日にでも早速その辺がわかる書物さがすにょろん☆

2012-01-27

特許庁の55億かけて頓挫したプロジェクトの報告書が面白い

http://www.asahi.com/business/update/0124/TKY201201240616.html 24日のニュース

http://www.meti.go.jp/press/20100820003/20100820003-2.pdf その発端ともいえる二年前の報告書

まりは、ありがちな汚職だと思えた・・・その巨大プロジェクトの実体は!

1部~2部で内容が重複してるからストーリーだけ知りたい人は3部から読むのをお勧めする。図表もあるのでわかりやすい。

これについてのブコメTwitterを見ていると不祥事を叩いたり、やめた事を批判して55億賠償しろって人も結構いるのだけど、なんかもうそういう問題よりも気になる点が山ほどある。自分感想をまとめておく。不祥事そのものより、その裏にあるプロジェクト全体や日本の開発にありがちな問題にもっと注目されて欲しいのでそういう視点で書く。

情報共有

入札前の情報漏れにしても、その後のNTTDとのやりとりにしても、情報漏洩やそれにまつわる金銭の動きは犯罪だ。けどもそれが行われた動機が私利私欲のためだけとは思えない。

共有されるべき情報が共有できるようにされていない。やりとりできるべき情報ができるようにされていない。必要な情報がちゃんと流れていないから、イレギュラー方法で流れている。特許庁, NTTD, TSOL この三社間のコミュニケーションがどこも投げやり丸投げ気味で、慢性的情報不足だった感が伺える。ここを改善する必要があるよね。

極秘情報は必要最小限にして、より情報の共有を図るべき、入札前に必要な情報は公開できるようにすべきって報告書でも書かれている。


入札システム

入札での評価が金額偏重で、マネージメント力を評価してなかったって問題。マネージメント力を評価してないのマジやばい。あ、でもマネージメント力を評価するには、全体を理解できる人材が必要だよね。で、次の問題に繋がるんだけど。

上流偏重

報告書だと、上流の話しか出てこない。だから、「設計もろくにできないで55億無駄にしたのか!」って話になるけど、ちょっと待って。設計しかできない人間が山ほどいても捗るけがないってことなんだよ。特に、このプロジェクト既存システムを0から作り直すのだから既存システムをよく理解して、また既存システムにかかわる技術者とよくコミュニケーションが取れて、それを設計に正しく咀嚼できるスキルの持ち主が必要で、設計しかできない人材ではなく全体を理解できる人材が必要だったはず。

既存システムをちゃんと理解できてない人間だらけになったということが報告書でも繰り返し指摘されてるけど、その根底には設計しかできない人間が山ほどいても捗るけがないという問題があると思うんだ。

時間かけすぎ

6年?そもそも設計に数年ってのが、もうそういうの無理が来てるって感じ?6年経つ間に色々変わっちゃう。

どうしても、がちがちのウォーターフォールでやるなら、もっと受注も小分けにして、まずは既存システム仕様まとめプロジェクトから開始するのが良かったんじゃないかな。

6年まとめてどん!だと中断の決断もなかなかできないよね。

問題が浮き彫りになったきっかけが汚職ってどうなの

これだけプロジェクト炎上していたのに、汚職きっかけで調査が入るまで炎上がちゃんと認知されていなかったというのがやばくね?もし汚職が見つからなかったら、炎上のまま・・・

これは国のプロジェクトから汚職で厳しい調査が入って、プロジェクト炎上まで色々赤裸になったという見方もあるかも。民間だったらもっとなし崩し的に炎上プロジェクトを続行するケースが多いように思う。

人数増やせば解決できるというやり方

もうね、

SOLによる設計作業は ,平成18年当初60人体制でプロジェクトスタートさせたが,翌年初めには遅延が 始まったため,順次増員を行い,同19年3月には200人,同年5月には450人体制とした。

(((( ;゚Д゚)))ガクガクブルブル

SOLは ,工程の遅れの解消に向けて,大幅な人員の増強でこれに対処しようとし,平成20年11月以降に は 1300人もの体制を整えたが

(((( ;゚Д゚)))ガクガクブルブル

破滅の足音しか聞こえない・・・

人数を増やすと教育コストが増える

あたりまえのこと。TSOLでも仕様をしっかり理解してる人は少数だったのに、増員の9割は下請けだったのだから、さらに破滅の様相が想像できるってものだよ。

下請け構造

大量の下請け同士の連携情報共有がされていなかった。経験ノウハウの共有がなされていなかった。と報告書にある。なんでこうなっちゃうんだろうな。何のためのプロジェクト管理なんだろ。ノウハウ管理もっと意識されるべきだよ。

そもそも、開発の遅れは人を増やす事で対処できるものなのだろうか?

人数増やしてプロジェクト炎上するというのは、お約束すぎる。規模の大小や分野にかかわらず、開発をやった事のある人ならわかると思う。

開発や設計って?という人にもわかりやすいように説明する。

例えば、優れた売れっ子マンガ家がいて、老練な担当者がついていて、名アシスタントがいて、才能ある若手アシスタントがいて、10人のチームでマンガを描いていたとしよう。一方、大して技術もない凡人を100人集めて、前出のチームと同じマンガができるとかと聞かれたらどう思うだろう?殆どの人はそれは無理じゃない?と思うだろう。1000人でも無理かもしれない。

開発も同じなんだよ、本質的にはね。

でもそう思われにくいのはなんでだろう?それは多分、開発に従事する人にはマンガ家のような才能や際立った技術は必要ないと思われてるからだ。言われた所を言われたようにベタを塗るだけがプログラマ仕事だと思われているからだ。実際それをプログラマなのだ定義している会社もある。技術お金にならない低俗ものだという偏ったイメージもこの世界には蔓延している。それが上流偏重の問題なんだ。

売れっ子マンガ家のような設計(マンガで言えばネーム原作)からプログラミングまでこなせる技術者、老練な担当者のようなプロジェクトマネージャ、名アシスタントのような匠のプログラマ勉強熱心な技術者は実際に存在してる。並以下の人材を倍集めたって100人集めたって彼らと同じものができるわけじゃない。

でも、どんなプロジェクトにもそんなスター的な人材が確保できるとはいえないし、単純な増員で対応できるようにする必要が、日本の大きな会社や大きなプロジェクトではあった。それを可能にするのが分業化だ。工程を徹底的に分業化することで、末端のセクションの習得コストを出来る限り低くし、品質の維持も図る。言い方を変えれば、創作を出来る限り製造にするということ。

それによるデメリットは明確だよね。新しいアイデアが実現されにくくなる。時代の流れの速さに追いついていけない。個々の持っているスキルが生かされない、技術が評価されない。技術者モチベーションが下がる。なにより、正しい分業化とマネージメントが行われずに盲目的に人数を増やすと、ただただ炎上しかならないってこと。お金けが莫大にかかっていくということ。

55億かけてもやめたのは英断だった

これは間違いない。

このまま続けていたら、沢山の技術者の尊い人生デスマに捧げられただろう。数年間のどろどろの煮詰まった成果物は、黒歴史を語るまいとひた隠しに、更なる問題を生み出しながら使われ続けただろう。考えただけで悪夢だ。

このプロジェクトのやりなおしに、どれだけ前回の経験が生かされるのか、そこにこそ注目していきたいと思う。

追記

時間ができたら後で読む

特許庁業務・システム最適化計画」(改訂版)について

http://www.jpo.go.jp/torikumi/system/system_optimize_re.htm

実際の業務の内容がある

http://myatsumoto.hatenablog.com/entry/2012/01/26/082554 良いまとめ

1/28 NTTNTTD に修正。

2012-01-18

Python vs Ruby vs PHP vs Haskell プログラミング言語バトル part1

 

42 : デフォルト名無しさん : 2011/11/12(土) 23:53:51.20

Pythonの方が弄れる対象が多いのに、なんでウェブ系だとPHPの方が流行ってんだろ

端末からテキスト処理も楽だし、数値計算周りのライブラリも充実しているのに

PHPが優遇されているのって歴史的な経緯以外に何か他の理由でもあるのか?

けどまぁ、情弱文系SEが大半を占めているバカだらけの日本じゃ別にPHPで困ることもないか


45 : デフォルト名無しさん : 2011/11/13(日) 01:41:24.25

数値計算や端末からテキスト処理なんてWeb系じゃ大して使わないからなあ…


43 : デフォルト名無しさん : 2011/11/13(日) 00:04:23.30

PHPが未だに現役なのは、単に歴史的な経緯でしかないだろ

Pythonに関しては、ZopeさえコケていなければWebサーバLLとして大成功していたはずなのに、

Railsなんかが登場したおかげで、すっかり影が薄くなってしまますた....


44 : デフォルト名無しさん : 2011/11/13(日) 00:49:55.28

zopeってコケてたんだ

ってか、railsインスパイアされたフレームワークって今じゃ幾らでもあるよね

djangoとかCakePHPとか。rubyってRoRを使いたいユーザを除くと、

pythonPHPの方がユーザー数は圧倒的に多いと思うんだけど

本家railsって、他を遥かに越えるほど良いものなんだっけ?


48 : デフォルト名無しさん : 2011/11/13(日) 08:30:25.68

44

Zopeが登場した当時、RDB+PHPはもう古い、これからOODB+ZopeWebの中軸になる!」

さかんに宣伝され、雑誌でもZope特集が組まれていた

 

少なくとも自分ZopeからPythonという言語を知ったし、その時点でRubyは知らなかった

そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう

今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい

 

djangoCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう

しかしRailsはRailsコミュニティの活動が活発だし、その進化は異常に早い

 

Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoCakePHPから

何かのイノベーションが提示されでもされない限り、後発のdjangoCakePHPRailsに追いつくのは無理

Railsは決して技術的に完璧Webフレームワークではないんだけどね....(たとえばSeaSideのような.... )

 

からこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている


51 : デフォルト名無しさん : 2011/11/13(日) 12:55:40.83

 C a k e P H P は う ん こ   

遅い、設計が古い、動作がおかしいの3重苦

日本では流行ってないけど海外だとYiiが流行ってきてる


55 : デフォルト名無しさん : 2011/11/13(日) 17:31:12.14

CakePHP使ってんの?

可哀そうにw


53 : デフォルト名無しさん : 2011/11/13(日) 14:44:48.55

求人PHPばかりだからPHPやるしかないだろ。


57 : デフォルト名無しさん : 2011/11/13(日) 19:34:04.95

でもやっぱりいつもの使い慣れたLL(Python/Ruby)で

Webサービスを書きたいってのがある


73 : デフォルト名無しさん : 2011/11/15(火) 17:32:46.07

アメリカ言語ユーザー数は

Python>>>>>>>>Ruby

求人数は

Ruby on Rails>>>>>>>>Django

http://www.indeed.com/jobtrends?q=django%2Cruby+on+rails&l=

どういうことなの?


74 : デフォルト名無しさん : 2011/11/15(火) 17:48:15.59

RubyRails以外に使い道がないか


75 : デフォルト名無しさん : 2011/11/15(火) 17:54:35.50

海外ではRubyは昨今のRailsバブルのお陰で

もはやWebスタートアップ共通語になってるらしいからね

求人数が多いのはそのためだと思うよ


76 : デフォルト名無しさん : 2011/11/15(火) 18:03:23.05

なんかのミスかと思ったがアメリカでもRuby on Railsは人気があるのかなあ・・・

Pythonのほうが使いやすいと思うのだがフレームワークRailsが優位なんだろうか


77 : デフォルト名無しさん : 2011/11/15(火) 18:23:14.33

Djangoは周辺ライブラリ微妙だし本体も鈍くさい感じがする。

でも、FlaskはSinatraより好きだからPythonが嫌いってわけではない。むしろ好き。

 

ただ、いざ作り始めるとやっぱりRailsが楽だなあってなって、Railsを使い続けている。


78 : デフォルト名無しさん : 2011/11/15(火) 18:38:46.28

同感だ

同じように思っている人が他にもいて安心した


79 : デフォルト名無しさん : 2011/11/15(火) 18:54:37.13

PHPJavaScalaには

Railsみたいなフレームワークあるのに

Pythonはいいのないんだよな


80 : デフォルト名無しさん : 2011/11/15(火) 21:19:09.89

PHPフレームワークが乱立しすぎているから、RailsPHPで実装してみようというやつが出てきた。

Scalaも注目されだしたのはつい最近のことだしな。

それに比べてPythonは、Zopeというデファクトスタンダードが既に存在していたけど、

つの間にかフェードアウト


ただ、どうやってもRailsもどきRailsを超えることはできないのは間違いない。


83 : デフォルト名無しさん : 2011/11/15(火) 21:25:38.55

パクリオリジナルを超えられない(キリッ って定型句だけど、

これってキリッって言いたいだけだと思う。

後発品が先に出たものを超えたものなんていくらでもあるから


84 : デフォルト名無しさん : 2011/11/15(火) 21:30:04.39

D言語って超えたって?


85 : デフォルト名無しさん : 2011/11/15(火) 21:31:12.00

B言語って超えたって?


86 : デフォルト名無しさん : 2011/11/15(火) 21:53:33.76

でもRailsRubyの黒魔術を使いまくりから

PHPで同じ事をできないわけではないだろうけど、Ruby on Railsほど簡潔にはできない


90 : デフォルト名無しさん : 2011/11/15(火) 22:50:07.81

スタートアップなんて根無し草の集まりにとって、

googleが囲った言語coolさを見出せないんだろ


123 : デフォルト名無しさん : 2011/11/20(日) 11:32:16.79

まあくだらねえWEBサービス作って喜んでる情弱は早く死ねって事だよ


91 : デフォルト名無しさん : 2011/11/15(火) 22:52:42.98

そういう理由じゃなくてRailsのほうが単純に情報プラグインも多いからでしょ


3 : デフォルト名無しさん : 2011/11/15(火) 23:07:07.67

linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん

わざわざ不合理で不完全な言語を使うなんて

社会からハミ出た奴らの精神的な作用によるものじゃないの?


95 : デフォルト名無しさん : 2011/11/15(火) 23:20:20.21

django情報プラグインが増えないという、

現実に対する鬱憤を吐いてるようにしか聞こえないな

もしも

linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん

真実であるのなら、今頃はdjango情報プラグインが溢れかえっているはず


104 : デフォルト名無しさん : 2011/11/16(水) 01:20:49.05

Python信者乙。

yumや、gdbgnome拡張pythonであるからといって、それをwebアプリでも使いたいと思う人は少ないというだけのこと。

ソースからインストールする必要があったとしても、web開発ではrubyを使いたいという人が多いというだけのこと。


94 : デフォルト名無しさん : 2011/11/15(火) 23:15:11.93

というか、世界中Pythonプログラマが Remeber Zope!! を合い言葉

打倒RailsたるWebフレームワークを開発しているはずだけど、

いまだにRailsを超えるプロダクトが登場しないのはナゼ?


Railsも登場してから、かなりの年月が経過しているんだけどなぁ....

その間にもRailsRails 3が登場して、REST/AJAXの強化等の進化継続しているよ

347 : デフォルト名無しさん : 2011/12/09(金) 10:16:35.22

Ruby では

ary.map {|x| x**2}

となるものが、Python では

map(lambda x: x**2, ary)

となり、lambda の本体が1つの式では表現しきれなくなると

def mapper(x):

.....

map(mapper, ary)

書き換える必要があります


348 : デフォルト名無しさん : 2011/12/09(金) 10:24:20.94

Pythonのlambdaを用いた階乗計算

f = lambda x:(x and f(x-1)*x)or 1

RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから

andやorを使った不自然記述をしなくても

f = lambda{|x|if x == 0 then 1 else x*f.call(x-1) end}

または

f = lambda{|x|x == 0 ? 1 : x*f.call(x-1)}

と書けます。lambda内でreturnが使えますから、書きたければ

f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}

でもOKです。


390 : デフォルト名無しさん : 2011/12/10(土) 15:35:41.62

348

これはPythondisっているように見せかけてRubydisっているのか? と一瞬思ってしまったw

だってRubyのほうが長くない?CLのfuncallみたいなcall()がちょっとうざいし…

そしてどっちもlambda式の中で束縛変数名前再帰可能、と

350 : デフォルト名無しさん : 2011/12/09(金) 11:12:13.28

要素に対する関数適用と、抽出を組み合わせる場合

Python

print [x*2+100 for x in [1,2,3,4,5] if x > 2 and x < 5]

暗号のように見える。

Ruby

puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}

思考の流れと、コードの流れが一致しているので書きやすい。


351 : デフォルト名無しさん : 2011/12/09(金) 11:22:55.04

だれだPythonなら書き方はひとつとか言ってるのは

map(lambda x: x*2+100, filter(lambda x: x > 2 and x < 5, [1,2,3,4,5]))

354 : デフォルト名無しさん : 2011/12/09(金) 12:22:07.37

pythonて可読性が高いのをうたってる割にはそこいまいちだよね


353 : デフォルト名無しさん : 2011/12/09(金) 12:10:08.46

Ruby場合には、左から右へと無名関数データフローあるいは

パイプラインのように並ぶからコードが読みやすい

 

関数型プログラミングに不慣れな初心者でも、参照透明性のあるコード自然に書ける

プログラマにとって優しい or プログラミングの楽しさを教えてくれるのがRuby

 

それと比較すると、Pythonコードは、関数型プログラミングというもの

いかに高度で難解なものであるかという事をもったいぶってプログラマ押し付け

 

もしもPythonしか知らないプログラマであれば、関数型 = 難解 という印象を持つだろう


356 : デフォルト名無しさん : 2011/12/09(金) 12:53:45.66

階乗計算くらいだと単純すぎて、ナゼ重要なのかが分かりづらいと思うのでコードで示す

result_list = source_list.map { |elem|

  x = foo(elem.x)  # ここが局所宣言を書く部分

  y = bar(elem.y)  # ここも局所宣言の続き

  x + y       # 最後に評価された式の値が、無名関数のリターン値になる

}

Rubyでは、map等に与える無名関数の中で局所的な環境(クロージャ)が作られるから

x = foo(...) のような代入文がいくつでも(= 複雑な処理でも)書ける

このポイントは、実用的なプログラム関数型風で書こうとした時に、威力を発揮する

357 : デフォルト名無しさん : 2011/12/09(金) 12:59:21.07

余計分かりづらくなった

358 : デフォルト名無しさん : 2011/12/09(金) 13:17:26.54

リスト内包表記が暗号みたいと言ってる奴は

高卒ドカタなんだろうなぁと可哀想になる

大学数学に触れる機会があれば

集合の表記に似せてることが分かるから

386 : デフォルト名無しさん : 2011/12/10(土) 01:41:34.46

数学とかで慣れてるし区切りが関数のがわかりやすい


359 : デフォルト名無しさん : 2011/12/09(金) 13:46:31.97

355

map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。

関数型プログラミングに慣れた、あるいは得意な人であれば、そういった印象なんだろね

Rubyの魅力はこれから関数型プログラミングを学ぼうとする初心者、 あるいはそんな初心者へ教える立場から見た、優しさ or 分かりやすさなんだ



360 : デフォルト名無しさん : 2011/12/09(金) 13:53:28.85

Rubyだと直感的に書けるコード

[1,4,3,2].sort.reverse.map{|x| x.to_s}.join('-')

Pythonだと読みにくい。

'-'.join(map(str, reversed(sorted([1,4,3,2]))))


361 : デフォルト名無しさん : 2011/12/09(金) 14:07:17.88

360

Pythonでは思考の流れと一致しないばかりか、「カッコだらけ」のコードになると.....


364 : デフォルト名無しさん : 2011/12/09(金) 14:28:55.99

カッコだらけのコードを分かりやすくする基本的な方法静的単一代入じゃないか

Rubyのやり方は基本ではなく玄人のやり方だろ


372 : 369 : 2011/12/09(金) 16:21:03.82

Pythonでは組み込みの型でメソッドチェインはやって欲しくないな

listにmap,filterメソッドができたとしても、

似たようなコレクションtuple,deque,array,queue等にも同じメソッドが必要になってくるし。

シーケンスプロトコルの利点が活かせない。

383 : デフォルト名無しさん : 2011/12/10(土) 01:17:28.39

372

外部のライブラリでも列挙可能なものは、たいていEnumerableモジュールをimportしてます

Rubyユーザーは列挙可能なものmapselectできて当然だろって思ってる気がしま


377 : デフォルト名無しさん : 2011/12/09(金) 18:41:51.79

Pythonは「何かを便利に書くためのしわ寄せ」をはっきり寄せてくる

得意と不得意を言語レベルではっきり主張するのでメリケン好みと言えなくもない

Rubyは全方位になんとなく八方美人なので、全体的になんとなく書きやすくてなんとなくキモくて遅い

379 : デフォルト名無しさん : 2011/12/09(金) 18:48:52.27

Pythonユーザー調教っぷりは異常

「書きにくいってことはその処理に向いてないってことだから諦めろ」を地で行く


387 : デフォルト名無しさん : 2011/12/10(土) 13:40:40.74

リストの内包表記はシンプルに書けるときは使うけど

基本その場でdefするのがPython風なんだと思う。

389 : デフォルト名無しさん : 2011/12/10(土) 14:40:31.04

無名関数が文を使うほど複雑なら名前を付けるのが Python 流と想像

384 : デフォルト名無しさん : 2011/12/10(土) 01:23:49.48

outer(center(inter( arg )))

これを読みづらいと感じるのは、左から右に流れる

日本語文に慣れているからだと思うが、

もしかしてアラビア語ネイティブな人からすると逆に読みやすいのか?


385 : デフォルト名無しさん : 2011/12/10(土) 01:34:57.89

なるほど、ということは右から左、左から右どっちでも行ける言語が最高ですね

F#パイプライン演算子最高ということで

2012-01-07

事務職リーマンwebサービス作ってみた

Webシステムとは縁遠い事務職のリーマンが、ある日思い立って、ニッチな用途の検索エンジンサービス作ってみたので、ちょっと書いてみようと思います

ちなみに、検索エンジンといっても、googleカスタム検索とかのお茶濁し系じゃなくて、apache Solrというオープンソース検索エンジンを、VPS上で動かしているという、それなりに本

気度の高いものです。

なんで素人がそんな物騒なものを動かす羽目になったかは、後述。



アイデアときっかけ

やりたい構想みたいなことを思いついたのは、もう6、7年前ほど前のこと。初めて独り暮らしを始めたときに、ひどく不便を感じたことがあり、こんなサービスがあったら便利だなあ、

と、ぼんやり妄想していました。

ちなみにその妄想をふと高校の同期に話したとき、そのサービスはどこにあるのか?!と、えらくがっつかれたのを、覚えてます。まあ、俺と同じく偏執狂の奴だったからだと思います

が。

ただ、しがない事務職リーマンということもあり、当然、技術も無く、そのときは、やるならこんな名前サービス名だろうなあ、とか、そんな妄想レベルで、話は終わっていました。

そんな感じで、5年ほど月日は経ち、なんとなくリーマン人生の流れも見えてきたところで、以前、妄想していたことを、ふと思い出しました。

5年も経ったら、さすがに自分が考えたようなこと、誰かがやっているだろうと調べてみたところ、意外なことに、競合になるようなサービス存在せず。ちょうど異動があって、少し時

間が出来たこともあり、じゃあ、着手してみようかと思い立ちました。



やりたいことは非常に面倒だった

やりたいことは、大手サイト情報検索。ただ、商品ページ内の特定情報、それも、商品ごとに正規化されていない表記を、正規化して抽出する必要があったので、大手サイトの既設API

だけではとても実現不可能でした。

まあ、だからこそ、5年間、誰もやろうとしなかったんでしょうが

ということで、とても一発では解決できなさそうな内容だったので、自分でなんとか実現できそうな機能に細分化して、各個撃破していくことにしました。



面倒なサービスをどう実現するか

随分と考えた結果、

以上に区分できると考えて、これらを各個撃破していくこととしました。

また、技術もなく、プログラミングも出来ず、ましてやlinuxサーバのお守りをしたことなんて当然ないので、インターネット上に置くサーバですべての処理を完結させるのではなく、イ

ンターネット上に置くリソースは最小限に留め、できる限り、勝手がわかる自宅のwindowsパソコンで処理を行うことにしました。

ちなみにさらっと結論だけ書いてますが、ここまで至るまでに、いろいろと調べ続たり、考え込んだりしていたので、思い立ってから3ヵ月は掛かってます。。。



検索エンジン周りの開発

さて、やる方針を決めたあと、はじめに着手したのは、要の検索エンジンサーバです。

いろいろとググって調べて、mySQLというやつか、apache Solrというやつかに絞りましたが、結局、Solrを使うことにしました。

MySQLのほうが実績は多そうだったのですが、Solrのほうが検索専門で、滅茶苦茶動作が速いらしいということ、MySQLでも出来るが特に速度が遅いらしい全文検索機能も使いたかったこ

と、あとファセット機能ジャンル絞りこみに便利に使えそうだったので、というのが理由です。

ちょうどSolr本が発売されていたこともあり、それを参考に、自分が使うように設定ファイルを変更していきました。

しかし、初めは設定ファイルの内容も意味不明な上に、私の書き方も雑なのか、少しいじっただけでまったく動かなくなる。結局、設定ファイルを一文字ずつ変更しては動作検証、とい

った始末で、進捗は地を這うよう。ある程度思い通りにSolrを扱えるようになるまで、3ヵ月以上掛かったでしょうか。。。

さらに、検索エンジンフロントエンドSolr検索結果を、htmlに変換するプログラム)も書かなければならない。プログラミングが出来ない人間には、これが本当に辛かった。

Solr本に、いろんなプログラミング言語でサンプルがあったのですが、迷った末に、わずか数行なら書いた(≒コピペした)経験があるという理由で、javascriptを苦渋の選択。

しかし、選択はしてみたが、基礎が本当に無いから内容がサッパリ頭に入ってこない。こちらも、わかるところから本当に1文字ずつ変えていくといった手探り状態。

プログラミングについては、今回のためだけだから、といった理由で、一切基礎をやらずに着手したのが裏目に出たのか、サンプルのソースをモノにして、書き上げるのに、ゆうに半年

以上。本当に時間が掛かりました。



kanzen21.comに衝撃を受ける

さらに、Solr周りで計9ヶ月間ハマっていた頃、忘れもしない、kanzen21のおっさん彗星のように現れて、衝撃を受けることになります

大手サイトのページをクロールして検索エンジンを作る手法は、私と考えていた構想の枠組みとまさに「完全に一致」な訳で。。。

図書館事件に注目していたのも同じで、あまりの一致具合に衝撃を受けっぱなしでした。

その後の成り行き等も含めて、興味深く観察させて頂き、本当に参考になりました。



クローラ周りとかの開発

そんな感じで紆余曲折もありましたが、ようやく難題だった、プログラミング関連に目処が立ってきたので、あとはクローラと肝心のデータ処理です。ここからは、勝手知ったるwindows

の領域なので、多少の安心感があります

まず、クローラですが、専用のクローラwindows用に探してきたり、それを設定するのも大変なので、今回はテレホーダイ時代に使っていたような、フリーweb巡回ソフトを利用する

こととしました。指定のhtmlダウンロードしてくるだけなので、別に変に新しいものに手を出す必要もないので。

また、ダウンロードしてきたhtmlファイルについては、これまたフリー日本語処理ツールでcsv方式に加工することにして、処理ルール部分を相当に作り込みました。

このあたりは、全体を通して見てもキモの部分なんですが、ある意味ちょっとしたパズル感覚だったので、プログラミング言語の部分と違って、かなり楽しかったです。

あとは、msdosバッチファイル(これは前から知っていた)で、これらの処理を繋ぎcygwincurlかいうツールで、連続して検索エンジンサーバcsvファイルアップロードする

仕組みを作りました

検索エンジンサーバには、容量は少ないが、安くて高性能という、今回の用途にピッタリだった、さくらVPSを借りて設定。CentOSサーバ構築ホームページを見ながら、サーバとか

Solr管理URLとかにセキュリティを掛けて、こちらも素人ながら、意外とすんなり設定。

ホームページは、vpsサーバ相乗りさせるのではなく、別にさくらレンタルサーバを借りました。apacheの設定方法等を習得する必要がありませんし、vpsリソースapacheと分け

合う必要が無くなるので。ホームページhtmlファイルcssファイル等も調べながら設定し、画像も準備しました。

あと、構想を思いついたとき妄想していたサービス名の.comドメインは、すでに他者に取得されていたのですが、どうも使っている風にも見えなかったので、whoisで出てきたメール

ドレスに連絡して交渉し、幾ばくか払って買い取りました。



ようやく完成

結局、足かけ18か月。ようやく完成。



楽天市場家具を、幅x奥行x高さ(家具サイズ)で検索できる、楽天市場家具カテゴリ専門の検索エンジン

カグサイズ検索

http://kagusize.com



この商品数規模(データ収録約30万アイテム)で、1センチ単位家具サイズ指定検索が可能な手段は、商用サービスも含めて、ほかには存在しないと思います

kanzen21と違って、エロじゃないから華はないけどね。。。




カグサイズ検索提供する価値について

ちなみに冒頭で少し書いたきっかけですが、就職して独り暮らしを開始したときに、新しい家にピッタリサイズ家具が欲しかったのですが、これが楽天で探すのは至難の技でして。

楽天家具を探してみようと思った人には判っていただけると思うのですが、楽天では、価格では範囲指定やソートができても、サイズでは検索出来ないんです。

これは、楽天では、商品のサイズ情報は商品の自由記述欄に記載することになっているためで、商品ごとにサイズの記載方法がバラバラのため、検索事実上、不能となっています

家電製品とかに関しては、種類が少ないこともあり、メーカーホームページとかでサイズを確認した上で、商品型番で検索すればいいので、それほど問題にはならないのですが、家具

って、種類が非常に多く、型番もあったり無かったりで、家電のようにサイズを調べることができません。

しかも、サイズが非常に重要な商品です。なんて不便な!


・・・ということで、カグサイズでは、楽天の商品ページにいろいろな書式で書かれているサイズ情報を拾って解析して正規化し、範囲指定やソートして検索ができるようにしています

また、単に寸法サイズを拾うだけでは、梱包サイズとか引き出し内寸とかも引っ掛かってしまうので、それらは出来るだけ排除して、商品の外寸が優先して引っ掛かるよう、アルゴリズ

ムを調整しています

単位センチミリ)に関しても、商品ごとにバラバラ(単に単位だけでなく、商品説明のどこに"センチ"とか"ミリ"と記載しているかについてもバラバラです。)なので、サイズ表記

前後の状況をみて、正しいと思われる単位で拾うようにしています




その他

あと、変わった使い方としては、欲しい家具価格比較みたいなこともできます

家具は、同じ商品でも、店ごとに型番が違ったりすることがよくあり、簡単には価格比較が行いづらいジャンルの商品です。

しかし、型番は違っても、同じ商品なら原則、サイズは同じですから、欲しい商品とまったく同じサイズ検索をかけると、同等商品があるのかどうか比較しやすい・・・といった使い

方もできます


おわりに

と、そんな感じで、しがない事務職リーマン作ってみたニッチな用途の検索webサービスを、サービスインさせて頂きました。

一般に公開されていて、誰でもアクセスできる情報でも、ニーズが有りそうな切り口の条件で検索性を高めれば、新しい価値創造できるんじゃないかという実験です。

もしよろしければ、ぜひ、使ってみてくださいー。それでは!

----------

カグサイズ検索

http://kagusize.com


追記

アップ直前の変更により、最大サイズの指定がうまく働かなくなっていたため、修正をしました。ご指摘有難うございました。

2012-01-04

私の全て ④逃避

それからの私は仕事に没頭した。

から晩まで病院サーバ室でサーバ構築作業。

サーバ室は携帯電波が届きにくく、最低限の仕事上の連絡以外は誰とも連絡を取らなかった。


ただただ、作業に集中した。何も考えず。

病院と家との往復。帰宅したら、疲れて眠るだけだった。食べることすら忘れていた。


彼の事を忘れたいわけではもちろんなかった。

でも彼の事を思い出すと、どうしても後悔の底に落ちて這い上がってこれなかった。


不思議と、泣く事はあまりなかった。


そんな生活を2ヶ月続けて、私の心は壊れそうになっていた。

仲の良い友達ともほとんど連絡を取らなくなっていた。

「例の彼とはどうなったの?」」と聞かれるのが怖かったから。


壊れていたのは心だけではなく、体もだった。


1年前に普通に着ていたはずの服が、ぶかぶかで着られなくなっていた。

5年間使っていた金属バンド腕時計も、コマを詰めなければいけない程になっていた。

会う人会う人に「痩せたね」と言われ、そのうち「大丈夫?」と心配されるようになっていた。


自分では気付いていなかったけれど私の体重は急激に落ち、

1年前の健康診断から比較すると、10キロ近く痩せていた。

着られる服は全くなく、買いに行ってもサイズが合わないような状態だった。


もう、限界だった。

仕事に没頭する事で彼の事を考えないようにしていたはずなのに、

仕事に集中できず、彼の事ばかり考えるようになっていた。


それまで私は、夏休みを1週間取る以外で長期休暇を取ったことは一度もなかった。

そんなに仕事が好きだったわけではないけれど、

盆・暮れ・GWが書き入れ時の医療SEは、簡単に長期休暇は取れなかった。

それに自分仕事には責任を持ちたかったので、あえて休暇を願い出ることもしなかった。

そんな私が、初めての長期休暇を上司に申し出た。


激務が数ヶ月続いていたこともあり、休暇はあっさり認められた。

期間は2週間。SEになってから3年弱で初めての長期休暇。

少し心と体を休めようと思った。


私のスケジュールが突然「休暇」になった事を心配した別の部の同期から電話がかかってきた。

大丈夫だよー。ちょっと忙しくて疲れたから休んでる。すぐ戻るよ」

そう言ってごまかした。本当の事が言えるわけもなかった。


SEになってから3年弱で初めての長期休暇。


当時私がいた部は、元々希望していた配属先とは違っていたし

仕事内容自体も、どうしても好きにはなれなかった。

プログラミングができない、サーバの知識もない、そもそも大学文系の私に

SEなんて務まるわけもなかった。

配属されて初めてのプロジェクトでは、仕事がきつすぎて毎日泣いていた。

何かうまくいかないことがある度に、辞めたい辞めたいばかり言っていた。

実際、その年の頭には、転職活動を始めようとしていた。


そんな私に、彼がこんな事を言ったことがあった。


舞ちゃんがいつも頑張ってるの知ってるよ。

どんなに夜遅くなっても、自分仕事責任持って最後まできっちりやってること知ってるから

研修終わってから事務所戻ってきて仕事してたりとかさ。

そういうのちゃんと見てるから、辛いのは分かるけど、でも簡単に辞めればいいなんて言えないよ。


彼にそう言われてから、私は辞めたいと言わなくなっていた。

彼は仕事ができる人だった。だから彼に少しでも追いつきたくて必死勉強して、プログラミングアレルギーも克服した。


今の私を彼が見たらどう思うかな…。


そして私は、当初の予定を1週間延ばしたものの、3週間で職場に復帰した。


復帰後は、少しでも負担の少ない仕事を、という上司のはからいで、

同じ部内で別のグループに移って、全く違う仕事をすることになった。


残業は減ったけれど、上司や先輩がよく食事に誘ってくれた。

(というか無理矢理食べさせようとしたんだろうが)

結局帰宅するのは夜遅い時間だった。


そんな時、福岡に行かなければならない仕事が入った。

でも、彼とよく会っていた福岡にはどうしても行きたくなかった。

福岡だけでなく、彼と一緒に行った場所を私は避けるようになっていた。


ただ、九州支社はその年の5月に別の場所にできた新しいビル移転していて、

彼とよく会った古いビル九州支社はすでになくなっていた。


仕方なくそ仕事を受け、日帰りで福岡に行った。


仕事を終え、福岡空港羽田行きの飛行機を待つ時間

いつもなら、空港内にある有名なクロワッサン屋でクロワッサンを買う。

彼に「美味しいから一度買ってみなよ」と言われて買ってからお気に入りだった。

そして搭乗口で搭乗開始までメール電話をする。


もう、クロワッサンを買う気ににもならない。

メール電話をする相手もいない。

仕方なく、売店でお土産を買って時間を潰して搭乗時間を待った。


彼と初めて会ったのも、福岡での定例会だった。

距離が縮まるきっかけになったのも、福岡出張だった。

羽田福岡行きの飛行機を待っていたら、偶然同じ便で福岡に向かおうとしていた彼に会ったこともある。


博多駅から九州支社に向かう途中の道、彼と電話しながら歩いたこと。

九州支社の裏にある公園で話したこと。


色んな事を思い出しすぎて潰れそうだった。


結局その日は、ほとんど眠ることもできず朝になった。

翌日は土曜日で、午後から横浜に行く用があったものの、他にする事がなかった。


ふと、ある男友達の事を思い出した。

その人は会社の同期ではあるものの、職種が違うため仕事での関わりが全くなく、勤務地も違っていた。

それでも入社してすぐの研修で同じクラスになって仲良くなってから

定期的に二人で飲みに行っていた。彼と付き合っていた時も月1程度で会っていた。

私にとっては完全に「友達」で、恋愛対象として見たことは一度もなかったし、

それは相手も同じで、私を女として見ることはなかった。

から、二人で会っても大丈夫だと思っていたし、彼に対して、悪いことをしている気持ちには当然ならなかった。


その友達に彼のことは話した事は一度もなかったし、

私の色恋沙汰について何か聞いてくることもほとんどなかった。


ちょうどいいや…。


さすがに当日に連絡しても空いてないだろうなー、と思いつつ、メールをした。


福岡出張行ってお土産あるんだけど、いる?

いるー!

いつあいてる?お菓子から賞味期限があるんだけど。

今日あいてるよー。


その日は横浜で待ち合わせをし、東急ハンズで買い物をして、飲みに行った。


それからの週末はしょっちゅう旅行に行き、家にいることはほとんどなかった。

北海道名古屋沖縄京都。。。


そして、旅行お土産だとか色々理由をつけて、その男友達と頻繁に飲みに行った。

ただ、時間を埋めてくれる人が欲しかった。

色々深く聞いてこないその友達が、一番都合がよかった。

そしてその人と一緒にいると、不思議と気持ちが落ちついた。


その年の年末は、女友達イタリアに行った。

前年の年末は、彼がリーダーをしていた病院正月システム本稼動があり、彼は当然仕事をしていて、一緒にいられなかった。

来年は一緒にいられたらいいね、と言っていた。だから日本にいる事すら嫌だった。


そうやって、現実から目を逸らすことで、どうにか自分を保っていた。

現実を受け入れた瞬間、私自身が壊れてしまいそうだった。


F1が好きだった彼と私は、いつも月曜日F1の話をしていた。

F1放送を見ると彼の事を思い出し、また後悔の螺旋に落ちて

這い上がれなくなるので、私は見るのをやめた。

二人とも読書が好きだったので、会うとよく読んでいる本の話をした。

仕事が早く終わった時はいつも本屋に行って本を買っていたのに、本屋に近づくことすらできなくなっていた。


今はどうにか読書をすることはできるようになったものの、F1はどうしても見ることができない。

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

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

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

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

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

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

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

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

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

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

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

でも多分違う。

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

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

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

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

2011-12-30

大学機械工学科について急に語りたくなったので語る。

なんか、誰の役に立つの分からんけど、私が高校生の頃にこういう説明があったら良かったなぁ……とふと思ったので書いてみた。

さて、大学工学部機械工学科に入学するとしよう。基本的に機械工学科に含まれる研究分野は多い。もちろんそれには理由があるのだが、それでもほぼすべての学生が学ぶ共通の内容があり、機械工学科を卒業した学生企業が期待するのはそれらの基礎知識である。そういう意味機械工学は非常に実学に近いと言っても良い。

四力とは何か

機械工学科の教員は本当に口を酸っぱくして「四力を身につけろ」と何度も何度も授業の度に言ってくる。古いタイプ教員ほどその傾向は強い。いわく、「専門分野の基礎がわかっている人間社会では強い」、「四力が身についていなければ学科長が許しても俺が卒業させない」、云々。で、その四力というのは以下の4つの力学」のことを指す。

機械力学というのはいわゆるニュートン力学でいう「剛体の力学」で、弾性・塑性変形しない対象がどのように運動するかを扱う。振動工学とか解析力学とかはだいたいこの延長線上で学ぶ。高校の力学微分積分を足した感じだと思えばいい。

熱力学マクロで見た気体や液体の持つエネルギーを対象にする。これも微分積分エンタルピーエントロピー概念を除けば高校で学べる物理とそう大差はない。次の流体力学と合わせて熱流体力学というジャンルを構成していることもある。統計力学熱力学の延長線上で学ぶことが多いが、量子力学とともに挫折する学生が非常に多い。

流体力学はその名の通り気体と液体を合わせた流体の運動について学ぶ。航空関係の仕事がやりたいなら必須。多くの近似法を学ぶが現実にはコンピュータシミュレーションが用いられるのであまり細かく勉強しても役に立つ場面は少ないかもしれない。下の材料力学とは連続力学という共通の基礎理論を持つ遠い親戚。

最後材料力学は、弾性をもつ(=フックの法則に従う)固体の変形が対象。建築学科とか土木工学科だと構造力学という名前で開講されているが、内容はだいたい一緒。これも多くの近似が含まれる体系で、実際にはコンピュータを使った有限要素法でシミュレーションする場面が多い。とはいえ基本を大学学部時代に学んでおくことは非常に重要

で、これら4つの科目がどう生きてくるかというと、たとえば20世紀における機械工学結晶であるところのエンジン設計なんかにはこれら全部が関わってくる。機械にかかる荷重や振動を解析し(機械力学)、エネルギー効率の高いサイクルを実現し(熱力学)、吸気と排気がスムーズに行える仕組みを作り(流体力学)、これらの条件に耐えうる材料を選ぶ(材料力学)。もちろん就職したあとにこれらすべてに関わることはないし、実際に使える高度な知識を教員が授けるわけではないが、機械設計に際しては必須の基礎知識ばかり。とはいえ後のように四力から直接発展した研究をしているところはまれで、院試のために勉強したのに後はもう使わなくなった、なんてこともままあるわけだが……。

なお高専からの編入生が入ってくるのは2~3回生なのだが、彼らはすでに四力を身につけていることが多く、運が良ければ通常の学部からは羨望と尊敬まなざしを勝ち得ることができる(しか英語ができないので研究室に入ってから苦労することが多いようだ)。

四力以外は?

高度な数学電磁気学であったり、機械加工や金属材料設計に関する専門的な知識もカリキュラムに含まれることが多い。みんな大好きロボット制御工学範疇で、これは四力とは別に学ぶことになる。ロボットメカトロのもう一つの必須分野である電気電子系の講義ほとんどないので独学で学ぶ羽目になるが、微分方程式が解ければ理解にはさして問題はない。プログラミング数値計算などの授業は開講されていることもあるしされていないこともある。とはい機械工学科を出てガチガチプログラマになることはほとんどないし、教えてくれてもFORTRANか、せいぜいCが限界である。さすがにBasicを教えているところはない。……ないと信じたい。

実習や実験がドカドカと入ってくるのは理系宿命なのだが、特徴的なのはCADの実習。おそらく就職したら即使う(可能性がある)ので、研究室に入る前に一度経験しておくといい。もちろん実際にCADで製図するのは専門や工業高校卒だったりするのだが、そいつらをチェックしてダメ出しするのは大卒なり院卒なりの仕事になる。

研究室が多すぎる

四力を身につけたらいよいよ研究室に配属されることになるのだが、基本的に四力を応用した分野ならなんでも含まれるので本当に各研究室でやっていることがバラバラ。隣の研究室が何をやっているのかは全くわからない(もちろんこれは機械工学科だけではないとは思うが……)。そのため学科イメージを統一することが難しく、どうしてもわかりやすいロボットなんかをアピールすることが多くなってしまう。とはいえそういう「わかりやすい」ことをやっている研究室は少数派で、実際は地味なシミュレーション材料のサンプルをいじくりまわしているところが多数派である最近医療工学系の研究をしているところが増えたらしいが、光計測だったり材料物性だったり航空工学だったり、あるいは全然関係ないシステム工学だとか原子力工学教員が居座っていることもあるようだ。こういう教員を食わすために機械工学第二学科(夜間向けの第二部ではない)が設立されたり、環境とかエネルギーとかが名前につく専攻が設立されたりすることがままある(昔は学科内に新しく講座を作るにはいろいろと制限があったらしい)。そういうところは(上位大学なら)ロンダ先として利用されるのが常で、そうした研究室を選んでしまった学部生はマスターの外部生の多さに面食らうことになる。

はいえいろいろ選べるならまだマシな方で、大学によっては計測か材料しか選べなかったり、工業高校ばりの金属加工実験を延々とやらされたりすることもある(ようだ)。やりたいことがあるならそれをやっている大学に行け、とは機械工学科志望の高校生のためにある言葉かもしれない。

で、ぶっちゃけ就職はいいんでしょ?

そう、就職は非常にいいのだ。「学内推薦が余る」という噂を聞いたことがある人がいるかもしれないが、まぎれもない事実である(とはい最近は上位校の推薦でもガンガン落としまくる企業が増えたようで就職担当も頭を抱えているようだが)。機電系なる言葉が広まったのはネットが登場して以降らしいが、機電系機械工学系と電気電子工学系、というぜんぜん関係ない2つの学科をまとめてこう呼ぶのは、それだけこの国の製造業でこの2学科出身者が必要とされているということだろう。我らが機械工学科の後輩たちのために、これから経済産業省には「モノづくり立国」なるわかったようでよくわからないスローガンを推進していただきたい。

inspierd by http://anond.hatelabo.jp/20110929232831

追記:あえて上位と下位の大学事情をごっちゃにして書いているので、受験生諸君はあまり鵜呑みにせず自分リサーチするようにお勧めする

2011-12-28

http://anond.hatelabo.jp/20111228203920

まあ、異性の好みというのが遺伝的に優秀な個体を残すためにプログラミングされているという説もあるぐらいだし、後天的要素より先天的要素が重視される面は否めないのでは。

実際には、異性の好み自体多様だからみんながみんなボーイッシュきじゃないし、むしろ、ゆるふわヘア+女の子らしい服装=ブス隠しのほうが、まだ、モテ王道なんじゃない?

「おしゃれぶってボーイッシュ好きとか言ってる男は実は本能的に異性を選んでるんだよ説」は女子会トークとしては面白そうだけど。

http://anond.hatelabo.jp/20111228153304

いやだから、「社会人になる前から」って言ってるじゃん。

プログラミングが異常に得意な非プログラマなんてたくさんいるよ。

ていうか理系学問とか専門分野って、独学が基本なんだよね(プログラミングが「理系」かどうかはさておき)。

大学で「教えてもらう」というのはちょっと違う。

大学の授業は基本的に独学してることが前提で行われるし。

学部の頃と全然違う分野を専門にしてる人とか腐るほどいるし。

勉強のゴールが資格取得だってなら教えてもらうのもいいけど。

(それにしたって、過去問ちょろっとやっとけば余裕で受かるような資格のためにわざわざ学校行って授業受けるなんてむしろ効率悪いと思うけど)

2011-12-24

http://anond.hatelabo.jp/20111224183926

実際自分みたいにプログラミングだけして生きていたい、子供なんか育てる暇ないし、そんなの面白いとも思わない、って女も普通にいる。

君は自分経験を過度に一般化している。この点に関しては君が悪い訳ではないよ。ただ「全体がそうか?」というとそうではない。

女性を雇わない、出世させない、子育てコスト女性にだけ払わせる→女性仕事を諦めるしかない→女性仕事をやめるのでますます企業女性を雇わない

女性管理職志向は下がってるよ。まぁ景気が良くなったら女性管理職志向もあがるとは思う。でも景気拡大は簡単な話じゃないでしょう。



管理職 なりたくない…働く女性の4割

http://www.yomiuri.co.jp/komachi/news/mixnews/20080911ok08.htm]]

NPO法人GEWEL(ジュエル)が2006年、働く女性約2500人を対象に実施した調査では、

すでに管理職だった人や管理職になりたいという人が計22%だったの対し、

管理職になりたくないという人は41%、どちらとも言えないという人が34%だった。

なりたくない理由は

「今まで以上に長時間働きたくない」(51%)、

責任を負いたくない」(30%)、

「部下を持ちたくない」(20%)、

「見合った収入が得られないと思う」(18%)など。

こういう意識の問題って補助なりで改善するのかな? 

実際自分みたいにプログラミングだけして生きていたい、子供なんか育てる暇ないし、そんなの面白いとも思わない、って女も普通にいる。

君が悪い訳じゃない、でも全体で見ると、今の女性は君みたいな人ばかりではないんだよ。

http://anond.hatelabo.jp/20111224183014

もちろん就業率が高くなることを前提にしているよ。

で、日本でも就業意欲が低くなる原因を取り除けば良いよな?

それこそ企業が門前払いにしたり、女性は雇ってもどうせやめるから出世させないっていうんじゃ結局勤労意識はあがらないだろ。

女性を雇わない、出世させない、子育てコスト女性にだけ払わせる→女性仕事を諦めるしかない→女性仕事をやめるのでますます企業女性を雇わない

無限ループをどこかで絶とうって話だ。

実際自分みたいにプログラミングだけして生きていたい、子供なんか育てる暇ないし、そんなの面白いとも思わない、って女も普通にいる。

勤労意識なんてDNAで決まるものでなし、差があるとすれば差を作っている何かが確実にあるだろう。

それを取り除くのは、全体の効率を上げるのに決して悪いことではないと思うよ。

認知の微視的構造 リマインダー

リマインドしようにも、これを書いた人(=自分)の学力だと読めない本だったから無理。無理ゲーだった。



第一章

1

認知主義、古典認知主義

意味論的に透明なシステムと結びついた心の概念および計算機モデル意味する。

 この主義の限界を

2

 ・チューリング

 チューリングの形式化が持っている特徴

(1)物理的組織によってではなく、記号操作の形式的特性によるメカニズムの集合全体を包括

(2)そのメカニズムいかにすれば十分に明確化された問題すべてに取り組むことができるか示している

(3)万能チューリングマシンを定義する方法を示している

⇒ 素材は重要ではなく、形式的特性が能力を原理的に保証している

フォン・ノイマンコンピュータを設計し、1960s、ジョン・マッカーシーLISPプログラム言語)を開発。

 ⇒ 研究開発が可能に

A・ニューウェルとH・サイモンが物理記号システムという概念を提出

 ⇒理論的に自覚化・明確化される

3

・物理記号システム

①適切に操作可能なトークンに対して任意に意味を割り当てることができるシステムであり、

②正確にプログラミングすればこの割り当てられた意味論的内容と細かい点においても一致した仕方で行動すると信じられるようなシステム

by 1976 ニューウェル & サイモン

・強い物理記号システムの仮説

SPSS strong-physical-symbol-system

「標準的な記号アトムフォン・ノイマン型の操作を行っている仮想機械は、一般的な知的行為を実現するための直接的かつ十分な手段を持っている」

①仮想機械

現実の物理機械上で実行されるプログラムのみによって存在し、

そのプログラムに我々が命令を与える機械を模倣させるような「機械」

 高級プログラムによって定義されるエミュレータ

フォン・ノイマン型の操作

コネクショニズムとは異なった操作

・記号を割り当てる

・変数を束縛する

・記号列の複写、読みとり、修正

・基本的な統語論パターンマッチング操作

等々

③標準的な記号アトム

「テーブル」「ボール」「愛する」「軌道」「電子」のような語

④一般的な知的行為を実現するための直接的で必要かつ十分な手段

そうした機械は、それを支えている特定のアーキテクチュア(その基盤になっている他の現実的もしくは仮想的機械から)まったく独立に真に知的でありうるのであり、逆に言えば他のアーキテクチュアや機械をシュミレートすることなく真に知的でありうる

 このような主張(標準的なLISPアトムのごちゃごちゃした操作が、知能や思考の本質を構成しうるという見解)が、ニューウェルとサイモンのものだとできる動かぬ証拠は、彼ら自身の実践

彼らの仕事の特徴(例:BACON

 ・規則あるいはヒューリスティックス(発見的手法)の直列的(経験則を用いたも多少は運が左右する⇔体系的)適用に依存している

 ・そうしたヒューリステイックスの大部分が、かなり高いレベルで意識的に内省可能

 ・選ばれた課題領域を扱う

BACON:一連のデータから科学的法則を帰納する(ケプラーの第三法則、オームの法則

BACONに対するいくつかのコメント

BACONが取り組んだデータフォーマット化下のは、人間の労苦

BACONは十分に構造化された課題にしか取り組めない。

 ケプラーの第三法則は見つけられても、ペトリシャーレのカビとバクテリアの関係からペニシリンを発見する事はできない

BACONが展開する知識とヒューリスティックスは、人間のプロトコルや実験記録に大いに頼り、われわれが自分自身の思考について内省する思考のレベルからかなり直接的にコード化されたもの

 ⇒この種の思考は原初的で瞬間的なプロセスの上に後から被せられたもの。理解するということを具体的な例で説明する事には役に立たないであろう

 サイモン等は、人間の思考のすべてがただ一つの種類の計算アーキテクチュアに依存すると信じている。

 しかし、筆者は違う考えを持つ。サイモンラングレイの仕事では、洞察のひらめきといったタイプの認識を表現できない。

 心は、多くの仮想的アーキテクチュアからなる複雑なシステムであると考える

 BACONは、人類の一部のモデル

 知的課題や、感覚運動的な課題のような、なめらかに無意識的に行われるものは無視されている

 古典システムは記号アトムの使用に頼り、コネクショニズムはこれを避ける。

 古典主義者:意味論的に透明なシステムの構築に対して、方法論的にコミットしている人々

意味論的に透明、意味論的な透明性

STS semanttically transparent system

システムの振る舞いについての記号的な(概念レベルでの)意味論記述と、システムの形式的な計算活動の内的に表現された対象についての投影可能な意味論的解釈との間にきちんとした写像関係の記述が可能な場合にのみ、そのシステム意味論的に透明であるといえる」

 きわめて大ざっぱにいえば、あるシステムかSTSと見なされるのは、そのアルゴリズム記述レベル2)における計算の対象が、概念レベルの用語で表現されたその課題の分析の記述レベル1)と同型である場合である

レベル1:計算理論:(高い抽象レベルにおいて)どのような関数が計算されるかについての考え

レベル2:表現とアルゴリズム:それを計算する(具体的な)方法

レベル3:インプリメンテーション:現実の機械において計算がいかにして肉体あるいはシリコンなどで実現されるか)

古典アプローチコネクショニズムの重要な違い

(1)古典理論は――コネクショニズムはそうではないが――統語論意味論を組み合わせた記号システムを仮定している

(2)もし何らかの種類の構造化された表現が利用可能であれば、それらの表現についての計算操作を、その構造に鋭敏に反応するかのような形で規定できる。

 もしそのような構造が存在していなければ、(すなわち、どんな記号表現も存在していなければ、)計算操作を規定することはできない

◎要するに、古典システムは、統語論的に構造化された記号的表現を仮定し、そうした表現の構造によって、それに適用される計算操作を規定するものである


第二章

 古典認知主義に対する懸念

 ドレイファス:古典認知主義の問題は、人間の常識的な知識を表象として再現し表現しようとする形式主義の妥当

 サール:形式的なものと志向的なものとの間に、あるいは統語論意味論との間にギャップが認められる

 この二つの種類の懸念について検討する。

あなたの持っているのはそんなにいいボールじゃないわ。それを私にちょうだい。そしたら私、このキャンディーをあなたにあげるわ」

 この言葉を理解するために、ミンスキーちとパペートは膨大な概念リストをあげる。

 ウィノブラードのSHRDLUでは不十分。

 ウィンストンの、フレームを使ったアプローチも不十分

 ・フレームは、常識がうまく対処している偶発的出来事のすべてをカバーしているとは思えない(バースデーケーキに立つ黒いローソクに、フレームは対処できるか?)

 ・フレームからフレームへの移行を促す規則(メタフレーム?)をいつ適用すべきか、システムはどうやって知るのだろう?

 ドレイファス:互いに関連しあった特徴や可能性のすべてを、文脈に依存しない事実や規則によって形式的に把握するという課題には際限がないのではないか

ドレイファスの二つの主張

(1)身体問題

「このシャンプーが目に入らないようにご注意ください。もし入った場合は、ぬるま湯でよく洗ってください」

 コンピュータは、身体、欲求、感情、共通言語や社会習慣も持たない。だからコンピュータは、この文章が何を洗うように言っているのか理解できない

(2)コード

 人間は自分たちを取り巻く状況がどんなものかを絶えず感じ取ることができる。

 このノウハウは、何らかの知識表現言語によって、一種の知識として表現できるものなのだろうか?

 

 AIプログラム(=言語)が知識を表現する仕方が、現実の課題に対して根本的に不適合だと懸念する。

「強いAI仮説」を、サールは批判する

強いAI仮説:適切にプログラムされたコンピュータは、文字通り認知的な状態をとり、その際プログラムは人間の認知を説明するものとなる

Schank and Abelson 1977の、「ストーリーを理解するという志向的活動をシミュレートしているかに見える特別なプログラム」に対して、「中国語の部屋」を使うことで批判する。

サール:形式的に区別される要素に対する計算操作を行っているだけでは、どんなコンピュータも〈理解する〉ことはできない。したがって、そのような計算操作を規定するプログラムが、心の固有の性質について何かを示すこともあり得ない。

具体例:英語話者が英語を理解することと、中国語の部屋操作者が中国語を「理解すること」の比較

「人間は何も理解していなくても形式的な原理に従うことができる」

 以下、サールの誤りについて論じる

 

 サールに対する仮想反論「脳シュミレーター説」

 脳シュミレータ説:あるりプログラム中国語を理解する実際の中国人の形式的な構造をモデル化したと仮定すると、そのときそのプログラムは間違いなく真の中国語の理解を構成したことになる

↑(サールの再反論)

(1)脳の形式的な性質は志向性を構成しない(三章にて説明)

(2)脳の形式的な性質が志向性を構成しないのは、ある種の素材だけが思考を支えることができるからである

 ↑(アナロジー

 光合成光合成の形式的な記述を手に入れても、素材が違えば光合成は再現できない

 では、思考をもたらすような脳の物理的性質とは?

  :外因的および内因的な刺戟に対して脳に大規模な変動が引き起こされること


↑(コメント

中国語の部屋』が大規模な構造的変動を必要としないシステムなら、中国語の部屋による反論は無効

 微視的機能主義

 機能主義は、心的状態の本質を、

 入力、内的状態の変換、出力からなるプロフィールと同一視した。

 (適切なプロフィールを持つシステムはどんなものであれ、その規模や性質や構成要素にかかわれなく、当の心的状態を実現するであろう)

↑(批判)

中国国家脳のような)心的状態を実現する見込みがないようなシステムも、「入力、内的状態の変換、出力」のプロフィールを持つシステムへと組織することは可能であるよように思われる。

 こうした極端な寛大さは、機能主義の立場を掘り崩してしまいそう

・問題は、「入力、内的状態の変換、出力」の系列をどこに位置づけるか

×大まかなレベルに位置づけ

  ⇒感覚質の欠如、極端な寛大さ

ライカンの「小人機能主義」

○微視的機能主義

・機能主義の批判はゲシュタルト盲に陥っているのでは Lycan 1981

ゲシュタルト

 :機能的な構成要素があまりにも大きい、極度に小さい、それらしくない等であるために、そうしたものからなるシステムに志向性を帰属させるという考えに抵抗するということ

ライカン「小人機能主義」

 :機能的な下位システムは、それがエージェントのために何をしているかということによって同定される)

 微視的機能主義

  :システムの内的な機能的プロフィール(内的状態の変換)を、

   内容や目的に関連づけからはかけ離れた用語で

   記述しようとするもの

   ・処理ユニット間の形式的な諸関係を記述する

   ・諸関係が得られたとき、システムには大規模で柔軟な構造的変動が引き起こされ、またそれによってさまざまな創発敵的性質が得られるようになる


第三章

 認知科学における民間心理学の役割はあるのかないのか

「民間心理学

 :自分や他人が、信じたり、希望したり、恐れたり、欲求したりしているということについての日常の理解

 民間心理学は、行為・運動を説明するときに、信念や欲求という表現を用いる

チャーチランド & スティック

「民間心理学は、人間の行動に先立つ内的原因についての素朴で原初的な科学

 民間心理学問題点

(1)民間心理学は、偏狭な、特定の人々に限定されたような理解しか与えない。

 民間心理学は、子供狂人外国人を前にすると、まごついてしま

(2)民間心理学は停滞したまま、なにも生み出さず、長い間ほとんど変化も進化も発展もしていないところが他の諸科学と異なる

(3)民間心理学は、これまでのところ科学の主要部分にうまく統合されていくような徴候をまったく示していない。残念なことに民間心理学は自然を神経生理学的ないみで妥当な要素にまで分割することには関心がないようである

 最近の分析哲学

  :頭の状態に関する科学理論というゲームと、民間心理学というゲームを比較することが、そもそも不適当なのではないか

Daredevil believes that Electra is dead.

Mary hopes that Fermat's last theorem is true.

 のthat以下を、心的状態の内容と言う。

 心的状態が考えられる傾向

  :われわれの心理学的状態が、本質的に、周囲の世界がどのような状態にあるのかということによって決まるのではなく、

  われわれにとってどのように見えているかによって決まる

 ↓(言い換え)

 我々の意識や無意識に何らかの形で影響を与えられないものはどんなものであれ、

 本質的に我々の心的状態の正確な限定に関わることはあり得ない

⇒我々の心的状態が現に持っているような内容を持つものは、われわれ自身のあり方ゆえであって、

 知られていないかもしれないような周囲世界の事実とは関わりがない……☆

・双生地球……☆に対して疑いを投げかける

双生地球で、「海に水がある」と発話される。

地球A:海にH2Oがある

地球B:海にXYZがある

 この違い以外は同質だとする。

 すると、

 地球上の発話と双生地球の発話は、それぞれH2OがあるかXYZがあるかによってその真偽が決まる

(たとえば、地球Aの海にH2Oがなくて代わりにXYZがあるとしたら、地球Aでの発話は偽になる)

 もし意味が真理条件を確定するのだとすれば、

 自然種に関する表現(水、金、空気など)を含む陳述の意味は、

 単に主体の限定的に規定可能な状態に言及するだけでは十分に説明できない……☆に反して

二つの選択肢

(1)心理学的な内的要素(地球の話し手と双生地球の話し手に共通)と、

 世界関与的な外的要因(仮定上、二つの地球を越えて不変ではない(H2OとXYZ))の両方によって内容が決まるとする、意味と信念に関する合成説

(2)そういったケース(地球と双生地球のケース)は

  〈心的状態の純粋に内的でまったく心理学的な要素(☆のこと)〉という観念にさえも疑いを抱かせるものであると考えることもできるだろう

プティ と マクダウェル

「頭の中にあるものが、心の状態と因果関係を持っていることは疑いがない。

 しかし、

〈頭の中〉にあるものが心の状態に対して構成的関係にあると考え必要があるのだろうか?」

 筆者

 :あらゆる内容が根本的に世界に関与している(選択肢(2))ということが判明したとしても、

 そのこと自体は必ずしも〈認知科学は心の理解に深く(ことによると構成的にではないかもしれないが)関わる研究である〉という主張を覆すものではない


 その主張に対する仮想反論と、それに対する再反論をHornsbyは行った。

 仮想反論

 :「「行動傾向(心性はこれに随伴して生じるとされる)が二者の間で異なるためには、

 内的構成に違いがなければならない。」

 という考えを保持すべきである」とするならば、

 心的内容は限定的に規定されねばならない(自然種を指示しない)

(「「行動傾向(心性はこれに随伴して生じるとされる)が二者の間で異なるためには、

 内的構成に違いがなければならない。」

 という考えを保持すべきである」までが、プティとマグダウェルの、「頭の中にあるものが、心の状態と因果関係を持っていることは疑いがない」に対応する。)

 仮想反論の詳細

:仮定①:

 二人の動作主の心的状態は、彼らの行動傾向に何らかの違いがある場合にのみ異なる

 (そこに赤いボールがある、と信じなければ、ボールを投げようとは思わない)

 仮定②:

 行動が異なる(すなわち、行動が異なる)ためには、内的な物理的状態に何らかの違いかなければならない

 結論:それゆえ、心的状態に対応する内的な物理的状態に何らかの違いがなければ、心的状態が異なるということはありえない

「(民間心理学的な心的状態を帰属させることは、限定的内容のみに関わることであるという)結論は、深刻な疑義にさらされることになる。

 限定的内容といっても、それを妥当概念として了解できるかは明らかではない」

 なぜなら、

「民間心理学的な内容を(物理的状態に?)帰属させることは、身体的な動きを規定するような頭の状態についての独我論的な研究から引き出すことができるような切り口とは

 まったく違った切り口で現実を切り取ることであるように思われる。

 その具体的理由として、

 ボールをひろうことは、「そこにボールがあると私は知っている」という心的状態と関連するが、そのときの細かな指の動きはそのような心的状態と関連するものではない。

筆者

 :広域的内容を伴うによ伴わないにせよ、

 民間心理学カテゴリーや分類が

 頭の中で起こっていることに関することに関する科学カテゴリーや分類に

 きちんと還元されるなどということは

 とてもあり得ないように思われる。

・民間心理学は、科学心理学と同じゲームを行ってはいないかもしれない

 世界を記述しない信念であり、なおかつ

 ある人が同じ考えを抱いているといえるような別のケースに投影可能な述語が(科学記述の上には)存在しないことも可能

 民間心理学の道具立て(信念と欲求という概念によって、命題的態度を帰属せさるという道具立て)を用いて、心的状態を二者が互いに帰属させあうという日常の慣習(傍点)の目的は?

 :

 他人の頭の内的状態を追跡しようと試みることによって、

 その人の身体の動きを予測し説明するための手段

民間心理学の主要な目的

 :

 世界の中で活動している仲間たちの行動を、(傍点開始)我々が(傍点終わり)理解できるようにすること

(予測したい対象であり主体である)われわれの仲間たちの四つの特徴

①世界に対する感受性、すなわち感覚生得的な原書的概念の道具立てをわれわれと共有している

②世界をわれわれと共有している

③彼らは我々自身のもっと根本的な関心と必要の大部分を共有している

④彼らの思考の有用性は、

(我々自身の思考と同様に、)

 彼らが世界の実際の有様をたどっていることと関わっており、

 彼らの思考作用が、世界の実際の有様に十分適応していると我々が(進化論的な理由から)考えるような目的と関わっている

 この特徴があるので、

「~したい」という欲求さえ同じであれば、

 神経生理学的な詳細は関係なく、地球人にも火星人にも有効。

・民間心理学は、脳の状態の違い(that かなり目の粗い、行動上の違いとしては現れてこないような)に対しては、敏感に対応しないように設計されている

・民間心理学は、個人の間の差異を覆い隠し、

 さらには種の間の差異さえも覆い隠してしまう(長所であっても短所ではない)

 筆者の見解

 :私の見解では、われわれが信念を帰属させるのは、

 行動の全体に一種の解釈の網をかぶせることによってである

 ……関連する行動を可能にするものとしての、

 根底にある物理的あるいは計算論的な構造がどのようなものであれ、

 そうした構造における自然な区分に、網の結び目(すなわち信念と、欲求の特定の帰属)が

 対応している必要はない。

――

 筆者の意見は全体論である。(行動全体に網をかけるから。)

 ということは、Davidson(全体論者)に対するFordorの批判は、筆者の意見にも当てはまるのではないか

<Fordor>

意識の全体論というのは、

命題的態度の同一性――特に志向的内容――が、その認知的連関の全体によって決定される」

 という考え方。

 これに、Fordorは懐疑的

命題pの認知的連関というのは、主体がpの意味論的評価、すなわちその真偽の決定に関係するすべての命題のこと)

われわれは、信念や志向的状態を共有している。が、そのとき、すべての命題認知的連関)を共有しているとは思えない。

 なので、意味全体論はありえない。

 →信念の内容が、その認知的連関に依存するということを否定。

 信念は、その内容をそれぞれ別に持つ。

 外延的意味論の一形態に賭ける

:信念がその状態を獲得するのは、脳の状態が逐一、世界と因果関係を結ぶことによってである

「ある生物が『牛』という概念を持とうと持つまいと、その生物は『馬』という概念を持ちうる」

</Fordor>

筆者

 :Fordorの間違い

 全体論は、もしそうであれば、人間の心の理解が芋蔓式に進んでくれるのにという、いわば願望。

 Fordorが軽蔑したものの通りに進んでくれるかは別問題。

Fordor:バラバラになったブロックを一つの全体に組み合わせるやり方が、全員同じになるはずがない。

筆者:一つのブロックの組み合わせ全体を理解するために、各人が別々のやり方でバラバラにしている

 全体論という言葉の使い方が違うから、Fordorの批判は筆者には当てはまらない(という、批判をかわすための節)


 一章3節での、チャーチランドによる民間心理学批判に、今では応答できる。


(1)民間心理学は、狂人や言葉の通じない相手には使えない

(2)民間心理学は、長い間停滞している不毛な学問である

(3)民間心理学は、神経科学ときちんとつながっていない

(3)に対して、

 民間心理学の関心事は、他の主体の顕著の行動パターンだけを可能な限り効率的に分離することである神経科学とつながることを目的とはしていない

(1)に対して、

 民間心理学の道具としての適用範囲は、仲間。狂人の理解は、そもそも目標としていない

(2)に対して、

 民間心理学の目的は限られたものである

 なので、その中核部分が時間的および地理的な次元を越えて相対的に恒常的であり続けてきたことは驚くべきことではない。

整理。

 心的状態に関するわれわれの常識的理解と民間心理学は、違う。

 民間心理学には、きちんとした定義がある。

 これまで「民間心理学」として使われてきた言葉の、新たな用語法:「素朴心理学」、「メンタリズム的な理解」

 因果関係と、構成的関係の区別

構成的関係

 :

 研究の主題と何らかの形で密接に結びついているということ

因果的に関係

 :

 因果的に関係している様々な要素は、それほど密接に思考と結びついているわけではないので、

 それらの要素を差し引いてもそれによって思考という観念そのものが存続しえなくなる

ということはない。

チェス盤がなくなっても、チェスの続きは打てる。石を駒に見立てたり、口頭で)


・広域的内容の理論認知科学は心を解明しえない

・消去主義的唯物論:民間心理学が、心に関する科学に対して歪んだ影響を及ぼすのではないか民間人は自分自身の心を知らないと、消去主義的唯物論は思っている


科学(物質、プログラム

(構成的関係)

科学と心とを結びつける構成的関係。その得難さが二つのスタンスの対立を生んでいる。が、どちらの立場も同じく、認知という地形に同じ隆起とくぼみを見ている。

では、構成的関係とは何か。


構成的関係←→因果関係

構成的関係:研究の主題(この場合は心)と、何らかの形で概念上密接に結びついていること

因果的関係:因果的に関係している様々な要素は、それほど密接に思考と結びついているわけではないので、それらの要素を差し引いても、それによって思考という観念そのものが存続しえなくなるというひとはない

(駒はなくてもチェスは打てる)

Permalink | トラックバック(0) | 15:30

2011-12-21

プログラマープログラム記述するのが仕事じゃないよ

http://anond.hatelabo.jp/20111218054639

それはプログラミング好きな人のすること。

プログラマーであれなんであれ、めんどくさいことはやらない。

いいじゃんよHTML直接書いちまえよ。

どうせコードの再利用なんてできやしないから。

2011-12-19

http://anond.hatelabo.jp/20111217154148

言語仕様について語りたいの?

NO(もう少し言葉を付け足すのならばYes。きちんと読めば分かる。)

Flashが生き残る事について語りたいの?

NO。きちんと文章を読みましょう。

ごちゃまぜ過ぎて何が言いたいのかわからん

からないのならわからないなりの態度を取りましょう。

確定してる事といえば今後メインになるモバイルで既に駆逐されたのにFlashはまだ生き残るとか頭湧いてるという事だけ。

フィーチャーフォンFlashは今後縮小が確実

からあえて使用者が増えることはないのに将来性があるとは口が裂けても言えない

Flash が生き残るかどうかという話は一言もしていない。

将来性があるなんて話は一言も言っていない。きちんと読みましょう。

読んだ上での感想ではなく

普段自分が考えている考えだというのなら、元文章を引用する意味ゼロ

現代的なブラウザじゃないとHTML5が動かないのに重いとかどういう事だろうか。

元文章の「重い」は

「◯◯が表示されるまで時間がかかる」の重いですね。

糞フルFlashサイトと呼ばれるものです

ギークはフルFlashサイトのようなHTML5サイトであふれることを危惧しています

プログラミングがクソだったり処理を多くすればそりゃ重くなるよ

それはFlashとかHTML5とかって意味じゃないよね

そうですね。

2011-12-17

元増田の言いたいことがまとまってなさすぎる

言語仕様について語りたいの?

Flashが生き残る事について語りたいの?

ごちゃまぜ過ぎて何が言いたいのかわからん

HTML5 が成長するとは必ずしも言えない。

確定してる事といえば今後メインになるモバイルで既に駆逐されたのにFlashはまだ生き残るとか頭湧いてるという事だけ。

フィーチャーフォンFlashは今後縮小が確実

からあえて使用者が増えることはないのに将来性があるとは口が裂けても言えない

Flash で作られた重たい WebHTML5 でまた再現するつもりなの?」

現代的なブラウザじゃないとHTML5が動かないのに重いとかどういう事だろうか。

プログラミングがクソだったり処理を多くすればそりゃ重くなるよ

それはFlashとかHTML5とかって意味じゃないよね

http://anond.hatelabo.jp/20111217152357

Flash vs HTML5」関連話への反論は まだまだ技術者側の説明不足か

先日「Flashエンジニアが今後10年食べていくには?」というテーマを元に

Flash精通した Web 技術者達のディスカッションが行われる催し物があった。



 http://www.publickey1.jp/blog/11/flash10.html



この記事だけでは内容が省略しすぎているため

時間があれば是非録画の模様もみていただきたい。前半初頭は音量が小さいので注意。

こういった催し物は面白いなと、私はとても楽しく見させていただいた。



 http://www.ustream.tv/recorded/19073524

 http://www.ustream.tv/recorded/19074357



ディスカッションでは Flash だけではなく HTML5 についても触れている。

ディスカッション感想をディレクションや営業を行なっている知人に聞いたり、

ネット上の反応を見てみたところ以下のような意見がいくつかあった。



「『Flash好きな人』だけではなく HTML5 派の人との対談もあればよかった」

Flash 派の人の話だから HTML5 が使えないという話はいまいち参考にならない」



Flash 派』『HTML5 派』という くくりで考えてしまう人は

まだまだ多いと実感する。



パネリスト達は

過去から現在までに様々なプログラミング言語を利用し、あらゆる技術精通している。

Flash という表示媒体/環境開発がベター(時にはベスト)だと考え、

Flash をよく扱っている、という旨を話している。

Flash 以外にも色々やってます、と言っている。

最後の締めとして

Flash よりも優れたものが登場するのであればそちらに移行するでしょう、

とも言っている。



これだけの説明があったのに

ディスカッション内で触れた HTML5 に対する否定的な話は、

Flash 派』とやらのポジショントークだと目に写ってしまったのだ。



Java やら C やら objective-c やら perl やら php やら

サーバサイドからスマホネイティブ言語を用いてのアプリ制作まで

色んな事やってます、と言っても

技術者ではない人達には馴染みのない単語は耳には入らない。

技術的な事はよくわからない。



現在世の中には HTML5 を推し、合わせて Flash を否定する記事が結構出回っている。

技術者が話す専門的な用語の飛び交う話よりも

どこの誰が書いたかもわからない

HTML5 vs Flash 的な読みやすい記事に耳を傾けてしまう人はいる。

Apple 製品を好む人は「ジョブズがそう選択したのだから」と

なおさらこういった記事に目を向けてしまう。



Flash vs HTML5 の話にのせられてしまうのは、よくわかっていない人だ。」

そうあっさり切り捨ててしまうのもいいかもしれないが、

そうもいかない状況にもなってきてしまっているのが最近だ。



ディスカッション内では、

Flash大丈夫なのか?」という

ネット上の煽り記事を読み不安に思ったクライアントから連絡を受け

きちんと状況をゼロから説明するハメになってしまった、という内容があった。

似たような状況になっている人もいるのではないだろうか。



当方周辺では、

Flash は駄目だ」「Flash でなくても HTML5 ならできるはずだ」

HTML5Flash の代わりになるものだと言われている」と

クライアント、あるいは仕事先の関係会社から耳にする機会が増えてきた。



技術者の及ばないところで

ベターではない技術が選択、あるいは勧められてしまう やっかい性。

危惧した技術者達による反論記事は結構出始めているのだが

その記事は世間の目には届かない。

TV CMバンバン流れている iPhoneiPad では Flash を見ることができない

という状況に乗じた

いかげんな煽り記事の効果は絶大だ。



よくわからない人が圧倒的多数なのだ

勘違いを正すためには、今までよりもより一層

からない人達に わかるように説明、

あるいはメッセージを発信するよう心がけていかねばならないと感じる。



技術へ移行は容易い

パネリスト達のような

Flash を扱う事が可能な技術力を持ち合わせている人にとって

Flash が終わろうが、代わりの技術HTML5 やらその他何になろうが

大した影響はない。



「この文章書いている人間Flash 派なのでは?

 Flash 派の人間がそんな事言っても説得力ないな」という

ポジショントークと見られないための判断材料として、

プログラミング』についての話をしてみる事にする。



プログラミングに詳しいすべてのエンジニアはこういうだろう。



「世にあらゆるプログラミング言語があるが

 それらプログラミング言語の違いは記述の仕方が違うだけ」



「何か一つ言語を習得し

 その言語で自由に物を作れるだけのスキルを持ち合わせたならば

 別言語、別環境になろうとも移行は容易い」



Flash の事は全く知らないがプログラミングプロフェッショナルの人』

が近くにいるならば是非上記について伺ってみてほしい。

その通りだと答えてくれるはずだ。

Flash で用いられている言語は何も特別なものはない。

世にある あらゆるプログラミング言語のうちの一つである



プログラミング概念を理解している人ならば

Flash で作ったものを他の言語移植することも、

他の言語で作ったものFlashプログラミング言語移植することも容易いのだ。



ここで上記三行の「他の言語」を「JavaScript」に置き換えてみてほしい。

HTMLDOM 操作に必要な言語JavaScript である



言語は、Flash ならば ActionScriptHTML5 ならば JavaScript を用いる。

画面描画は

Flash ならばグラフィックスシンボル等を作成・配置、

あるいは用意されている描画用 APIActionScript で呼び出し、

HTML5 ならば CSS, HTMLタグ記述

あるいは用意されている描画用 APIJavaScript で呼び出す。



Flash と似たような技術として Java AppletShockwave があるが、

これらも一緒で

言語を変え、その技術に合わせた描画を行う処理を記述するだけだ。



Flash派」「HTML5派」といった具合に

Web 技術者が何かに属していて、何かには属していないかのような区別の仕方は

的がはずれている事を なんとなく感じていただけただろうか。



技術者にとっては要はなんだっていいのだ。

仕事に対し、あるいは表現したい事に対し、ベターな選択を行うだけの事なのである

PC向けゲームなら Flash

スマホ向けサイトなら HTML5

環境や表示内容に合わせ両方を採る選択もあるだろう。



パネリストの中に ActionScript好きだ、という人がいた。

これは別に

Flash が好き(製品のファン)だから ActionScript が好き、と言っているのではない。

現存するあらゆる技術比較した上で

ActionScript が優れたプログラミング言語だと判断しての発言なのだ



将来的に HTML5 が格段に進化する日がくるならば

HTML5 を選択するだけの事であり、

HTML5 が廃れて別の技術が登場するならば

その別の技術を選択し、

Flash より優れた技術が登場しなければ Flash を使い続ける、

ただそれだけの事なのである


対立どころか むしろ近い存在

もう少し突っ込んだ話をすると

Flashプログラミング言語である ActionScript(ActionScript 1.0)と

HTML 表示制御を行う言語 JavaScript は 実は同じ言語仕様である

ECMAScript』という単語で調べてみてほしい。



FlashHTML5 は対立するもの」と考えていた人、

あるいは ActionScriptJavaScript を触れたことがない人にとって

「え?そうなの?」と思う人もいる事だろう。



JavaScript は大規模開発に向いていない、という話は聞いたことがないだろうか。

同様の言語仕様である ActionScript 1.0 はこの問題を解決するため

ActionScript 2.0 から ActionScript 3.0 へと進化していった。



FlashHTML5 とで同等のもの制作する場合

Flash は開発がし易い、という話がよく挙げられるが

その理由の一つがこれである



現行の JavaScriptActionScript 1.0 は ECMAScript 3 準拠に対し、

ActionScript 3.0 は ECMAScript 4 準拠である

言語として進化しているものFlash採用しているので

開発は抜群にし易い。



ECMAScript 4 準拠の JavaScript も登場する日もあったかもしれなかったのだが、

Adobe はここで大失敗してしまった。

ECMAScript 4 標準化白紙

ECMAScript 4 は無かったことになってしまったのだ。

ActionScript 3.0 で作成したプログラム

そのまま HTML ブラウザで動作する事はなくなった。



技術者にとってコストを削減できるための手段の一つを

政治的な思惑によって潰されてしまった悲しい過去の話である



ちなみに JavaScript は大規模開発に向いていない、という事に対し、

最近では Google が新言語 Dart というものを開発している。

位置づけとしては ActionScript 2.0 に近いと比喩した人もいる。

ActionScript 2.0コンパイルActionScript 1.0 に変換されて出力される。

Dart も同じく JavaScript 変換機能を持つ。


今後

先の事は誰にもわからない。

HTML5 が成長するとは必ずしも言えない。

技術者は身を持って知っている。

ブラウザの足並みが揃ったことは過去一度たりともない。

表示と動作の差異、技術者はずっと苦しめられてきている。

めんどくさい。コストがかかる。

日本では IE6呪いはまだまだ続く事だろう。

現状の HTML がひどい状況なのだから

HTML5 も同じ道を辿るのでは、と言われてしまうのも仕方がない。

実際に HTML5 の各ブラウザの実装具合はバラバラである



Flash はといえば、

今でも 10年以上前スクリプト言語 (ActionScript 1.0 よりも前の言語)で

携帯向け Flash を作るはめになっている開発者が多い。

携帯向け Flash Player 開発中止、とある

Flash が動作するブラウザがいつまで携帯に搭載され続けるのか、

まだ誰にもわからない。

今後も当面携帯向け Flash を作り続ける事になるのかもしれない。

この古い言語での開発はとても苦痛であるが、

携帯向け Flash は一つの容量が小さいというのが救いである。



IE6 対応 HTML サイト制作にせよ、携帯向け Flash 制作にせよ

10年以上前ものが現役とは妙な話である

しか技術者対応するのだ。



状況に応じて何を選択するかを判断できるほどの技術力を身につける事

それが一番重要である

これから Web技術者を目指す、という人は

HTML5 なり Flash なり何を学んだっていい。



選択する技術に何ができて何ができないのか、

どの技術を組み合わせるとよいのか、

自ら判断できるようになった時、一人前の Web 技術者になったと言えるだろう。



一つ何かをモノにしてしまえば前述の通り移行は容易い。

今何かを勉強中の人は周りの声に流されず、

それを極めるくらいまでとことん勉強してほしい。

続けていくと見えてくるはずだ。自信という名の悟りの道が。


ディスカッション感想

気になった点をいくつか。



現状の HTML5 の実装具合のバラバラさに対し、

「(HTML5の)表示の差分を埋めてくれる何かが登場するかもしれない」

と言う発言があった。

言った当人も会場にいる人達も、きっとこう思っただろう。

「それってなんて Flash Player?」と。



HTML5Flash の真似事をしてますよね」

「あれはやめたほうがいい」という発言があった。

おそらく HTML5 canvas の事であろう。

この意見に対し「ムッ」と来てしまった人がいるかもしれない。



勝手に注釈するのであればこの発言は

Flash で作られた重たい WebHTML5 でまた再現するつもりなの?」

という皮肉であろう。

2011-12-13

http://anond.hatelabo.jp/20111212232309

面白そうだが、プログラミングマニアでない限り読む時間を捻出するのが大変そうな分量だな…。

2011-12-12

コンピュータプログラミング概念技法モデル」の目次

第1章 プログラミング概念入門
	1.1 計算器
	1.2 変数
	1.3 関数
	1.4 リスト
	1.5 リストについての関数
	1.6 プログラムの正しさ
	1.7 計算量
	1.8 遅延計算
	1.9 高階プログラミング
	1.10 並列性
	1.11 データフロー
	1.12 明示的状態
	1.13 オブジェクト
	1.14 クラス
	1.15 非決定性と時間
	1.16 原子性
	1.17 ここからどこへ行くのか?
	1.18 練習問題

第1部 一般的計算モデル

第2章 宣言的計算モデル
	2.1 実用プログラミング言語定義
		2.1.1 言語の構文
		2.1.2 言語意味
	2.2 単一代入格納域
		2.2.1 宣言的変数
		2.2.2 値格納域
		2.2.3 値生成
		2.2.4 変数識別子
		2.2.5 識別子を使う値生成
		2.2.6 部分値
		2.2.7 変数の,変数への束縛
		2.2.8 データフロー変数
	2.3 核言語
		2.3.1 構文
		2.3.2 値と型
		2.3.3 基本型
		2.3.4 レコード手続き
		2.3.5 基本操作
	2.4 核言語意味
		2.4.1 基本概念
		2.4.2 抽象マシン
		2.4.3 待機不能な文
		2.4.4 待機可能な文
		2.4.5 基本概念再訪
	2.5 メモリ管理
		2.5.1 末尾呼び出し最適化
		2.5.2 メモリライフサイクル
		2.5.3 ガーベッジコレクション
		2.5.4 ガーベッジコレクションは魔術ではない
		2.5.5 Mozartのガーベッジコレクタ
	2.6 核言語から実用言語へ
		2.6.1 構文上の便宜
		2.6.2 関数(fun文)
		2.6.3 対話的インターフェース(declare文)
	2.7 例外
		2.7.1 動機と基本概念
		2.7.2 例外を持つ宣言的モデル
		2.7.3 親言語の構文
		2.7.4 システム例外
	2.8 進んだ話題
		2.8.1 関数型プログラミング言語
		2.8.2 単一化と内含(entailment)
		2.8.3 動的型付けと静的型付け
	2.9 練習問題

第3章 宣言的プログラミング技法
	3.1 宣言的とはどういうことか?
		3.1.1 宣言的プログラムの分類
		3.1.2 仕様記述言語
		3.1.3 宣言的モデルにおいてコンポーネントを実装すること
	3.2 反復計算
		3.2.1 一般的図式
		3.2.2 数についての反復
		3.2.3 局所的手続きを使うこと
		3.2.4 一般的図式から制御抽象へ
	3.3 再帰計算
		3.3.1 スタックの大きさの増加
		3.3.2 代入ベース抽象マシン
		3.3.3 再帰計算を反復計算に変換すること
	3.4 再帰を用いるプログラミング
		3.4.1 型の記法
		3.4.2 リストについてのプログラミング
		3.4.3 アキュムレータ
		3.4.4 差分リスト
		3.4.5 キュー
		3.4.6 木
		3.4.7 木を描画すること
		3.4.8 構文解析
	3.5 時間効率空間効率
		3.5.1 実行時間
		3.5.2 メモリ使用量
		3.5.3 償却的計算量
		3.5.4 性能についての考察
	3.6 高階プログラミング
		3.6.1 基本操作
		3.6.2 ループ抽象
		3.6.3 ループ言語的支援
		3.6.4 データ駆動技法
		3.6.5 明示的遅延計算
		3.6.6 カリー化
	3.7 抽象データ型
		3.7.1 宣言的スタック
		3.7.2 宣言的辞書
		3.7.3 単語出現頻度アプリケーション
		3.7.4 安全抽象データ型
		3.7.5 安全な型を備えた宣言的モデル
		3.7.6 安全な宣言的辞書
		3.7.7 資格セキュリティ
	3.8 宣言的でない必要物
		3.8.1 ファイルを伴うテキスト入出力
		3.8.2 グラフィカルユーザインタフェースを伴うテキスト入出力
		3.8.3 ファイルとの状態なしデータI/O
	3.9 小規模プログラム設計
		3.9.1 設計方法
		3.9.2 プログラム設計の例
		3.9.3 ソフトウェアコンポーネント
		3.9.4 スタンドアロンプログラムの例
	3.10 練習問題

第4章 宣言的並列性
	4.1 データ駆動並列モデル
		4.1.1 基本概念
		4.1.2 スレッド意味
		4.1.3 実行列
		4.1.4 宣言的並列性とは何か?
	4.2 スレッドプログラミングの基本的技法
		4.2.1 スレッドを生成すること
		4.2.2 スレッドブラウザ
		4.2.3 スレッドを使うデータフロー計算
		4.2.4 スレッドスケジューリング
		4.2.5 協調的並列性と競合的並列性
		4.2.6 スレッド操作
	4.3 ストリーム
		4.3.1 基本的生産者消費者
		4.3.2 変換器とパイプライン
		4.3.3 資源管理し,処理能力改善すること
		4.3.4 ストリームオブジェクト
		4.3.5 ディジタル論理シミュレーション
	4.4 宣言的並列モデルを直接使うこと
		4.4.1 順序決定並列性
		4.4.2 コルーチン
		4.4.3 並列的合成
	4.5 遅延実行
		4.5.1 要求駆動並列モデル
		4.5.2 宣言的計算モデル
		4.5.3 遅延ストリーム
		4.5.4 有界バッファ
		4.5.5 ファイルを遅延的に読み込むこと
		4.5.6 ハミング問題
		4.5.7 遅延リスト操作
		4.5.8 永続的キューアルゴリズム設計
		4.5.9 リスト内包表記
	4.6 甘いリアルタイムプログラミング
		4.6.1 基本操作
		4.6.2 ティッキング(ticking)
	4.7 Haskell言語
		4.7.1 計算モデル
		4.7.2 遅延計算
		4.7.3 カリー化
		4.7.4 多態型
		4.7.5 型クラス
	4.8 宣言的プログラム限界拡張
		4.8.1 効率性
		4.8.2 モジュラ性
		4.8.3 非決定性
		4.8.4 現実世界
		4.8.5 正しいモデルを選ぶこと
		4.8.6 拡張されたモデル
		4.8.7 異なるモデルを一緒に使うこと
	4.9 進んだ話題
		4.9.1 例外を持つ宣言的並列モデル
		4.9.2 さらに遅延実行について
		4.9.3 通信チャンネルとしてのデータフロー変数
		4.9.4 さらに同期について
		4.9.5 データフロー変数有用性
	4.10 歴史に関する注記
	4.11 練習問題

第5章 メッセージ伝達並列性
	5.1 メッセージ伝達並列モデル
		5.1.1 ポート
		5.1.2 ポート意味
	5.2 ポートオブジェクト
		5.2.1 NewPortObject抽象
		5.2.2 例
		5.2.3 ポートオブジェクトに関する議論
	5.3 簡単なメッセージプロトコル
		5.3.1 RMI(遠隔メソッド起動)
		5.3.2 非同期RMI
		5.3.3 コールバックのあるRMI(スレッド使用)
		5.3.4 コールバックのあるRMI(継続のためのレコード使用)
		5.3.5 コールバックのあるRMI(継続のための手続き使用)
		5.3.6 エラー報告
		5.3.7 コールバックのある非同期RMI
		5.3.8 二重コールバック
	5.4 並列性のためのプログラム設計
		5.4.1 並列コンポーネントを使うプログラミング
		5.4.2 設計方法
		5.4.3 並列性パターンとしての機能的構成要素
	5.5 リフト制御システム
		5.5.1 状態遷移図
		5.5.2 実装
		5.5.3 リフト制御システムの改良
	5.6 メソッド伝達モデルを直接使用すること
		5.6.1 1つのスレッドを共有する複数のポートオブジェクト
		5.6.2 ポートを使う並列キュー
		5.6.3 終点検出を行うスレッド抽象
		5.6.4 直列依存関係の除去
	5.7 Erlang言語
		5.7.1 計算モデル
		5.7.2 Erlangプログラミング入門
		5.7.3 receive操作
	5.8 進んだ話題
		5.8.1 非決定性並列モデル
	5.9 練習問題

第6章 明示的状態
	6.1 状態とは何か?
		6.1.1 暗黙的(宣言的)状態
		6.1.2 明示的状態
	6.2 状態とシステム構築
		6.2.1 システムの性質
		6.2.2 コンポーネントベースプログラミング
		6.2.3 オブジェクト指向プログラミング
	6.3 明示的状態を持つ宣言的モデル
		6.3.1 セル
		6.3.2 セル意味
		6.3.3 宣言的プログラミングとの関係
		6.3.4 共有と同等
	6.4 データ抽象
		6.4.1 データ抽象組織する8つの方法
		6.4.2 スタックの変種
		6.4.3 多態性
		6.4.4 引数受け渡し
		6.4.5 取り消し可能資格
	6.5 状態ありコレクション
		6.5.1 インデックス付きコレクション
		6.5.2 インデックス付きコレクションを選ぶこと
		6.5.3 その他のコレクション
	6.6 状態に関する推論
		6.6.1 不変表明
		6.6.2 例
		6.6.3 表明
		6.6.4 証明規則
		6.6.5 正常終了
	6.7 大規模プログラム設計
		6.7.1 設計方法
		6.7.2 階層システム構造
		6.7.3 保守性
		6.7.4 将来の発展
		6.7.5 さらに深く知るために
	6.8 ケーススタディ
		6.8.1 遷移的閉包
		6.8.2 単語出現頻度(状態あり辞書を使用する)
		6.8.3 乱数を生成すること
		6.8.4 口コミシミュレーション
	6.9 進んだ話題
		6.9.1 状態ありプログラミング限界
		6.9.2 メモリ管理と外部参照
	6.10 練習問題

第7章 オブジェクト指向プログラミング
	7.1 継承
	7.2 完全なデータ抽象としてのクラス
		7.2.1 例
		7.2.2 この例の意味
		7.2.3 クラスオブジェクト定義すること
		7.2.4 クラスメンバ
		7.2.5 属性初期化すること
		7.2.6 第1級メッセージ
		7.2.7 第1級の属性
		7.2.8 プログラミング技法
	7.3 漸増的データ抽象としてのクラス
		7.3.1 継承グラフ
		7.3.2 メソッドアクセス制御(静的束縛と動的束縛)
		7.3.3 カプセル化制御
		7.3.4 転嫁委任
		7.3.5 内省
	7.4 継承を使うプログラミング
		7.4.1 継承の正しい使い方
		7.4.2 型に従って階層を構成すること
		7.4.3 汎用クラス
		7.4.4 多重継承
		7.4.5 多重継承に関するおおざっぱな指針
		7.4.6 クラス図の目的
		7.4.7 デザインパターン
	7.5 他の計算モデルとの関係
		7.5.1 オブジェクトベースプログラミングコンポーネントベースプログラミング
		7.5.2 高階プログラミング
		7.5.3 関数分解と型分解
		7.5.4 すべてをオブジェクトにすべきか?
	7.6 オブジェクトシステムを実装すること
		7.6.1 抽象図
		7.6.2 クラスを実装すること
		7.6.3 オブジェクトの実装
		7.6.4 継承の実装
	7.7 Java言語(直列部分)
		7.7.1 計算モデル
		7.7.2 Javaプログラミング入門
	7.8 能動オブジェクト
		7.8.1 例
		7.8.2 NewActive抽象
		7.8.3 フラウィウス・ヨセフスの問題
		7.8.4 その他の能動オブジェクト抽象
		7.8.5 能動オブジェクトを使うイベントマネージャ
	7.9 練習問題

第8章 状態共有並列性
	8.1 状態共有並列モデル
	8.2 並列性を持つプログラミング
		8.2.1 さまざまな手法概観
		8.2.2 状態共有並列モデルを直接使うこと
		8.2.3 原子アクションを使うプログラミング
		8.2.4 さらに読むべき本
	8.3 ロック
		8.3.1 状態あり並列データ抽象を構築すること
		8.3.2 タプル空間(Linda)
		8.3.3 ロックを実装すること
	8.4 モニタ
		8.4.1 定義
		8.4.2 有界バッファ
		8.4.3 モニタを使うプログラミング
		8.4.4 モニタを実装すること
		8.4.5 モニタの別の意味
	8.5 トランザクション
		8.5.1 並列性制御
		8.5.2 簡易トランザクションマネージャ
		8.5.3 セルについてのトランザクション
		8.5.4 セルについてのトランザクションを実装すること
		8.5.5 トランザクションについてさらに
	8.6 Java言語(並列部分)
		8.6.1 ロック
		8.6.2 モニタ
	8.7 練習問題

第9章 関係プログラミング
	9.1 関係計算モデル
		9.1.1 choice文とfail文
		9.1.2 探索木
		9.1.3 カプセル化された
		9.1.4 Solve関数
	9.2 別の例
		9.2.1 数値例
		9.2.2 パズルとnクイーン問題
	9.3 論理プログラミングとの関係
		9.3.1 論理論理プログラミング
		9.3.2 操作意味論理意味
		9.3.3 非決定性論理プログラミング
		9.3.4 純粋Prologとの関係
		9.3.5 他のモデルにおける論理プログラミング
	9.4 自然言語構文解析
		9.4.1 簡単な文法
		9.4.2 この文法に従う構文解析
		9.4.3 構文木を生成すること
		9.4.4 限定記号を生成すること
		9.4.5 パーサを走らせること
		9.4.6 パーサを「逆向きに(backward)」走らせること
		9.4.7 単一化文法
	9.5 文法インタプリタ
		9.5.1 簡単な文法
		9.5.2 文法のコード化
		9.5.3 文法インタプリタを走らせること
		9.5.4 文法インタプリタを実装すること
	9.6 データベース
		9.6.1 関係を定義すること
		9.6.2 関係を使って計算すること
		9.6.3 関係を実装すること
	9.7 Prolog言語
		9.7.1 計算モデル
		9.7.2 Prologプログラミング入門
		9.7.3 Prologプログラムを関係プログラム翻訳すること
	9.8 練習問題

第2部 特殊化された計算モデル10グラフィカルユーザインタフェースプログラミング
	10.1 宣言的/手続き的方法
	10.2 宣言的/手続き的方法を使うこと
		10.2.1 基本的ユーザインタフェースの要素
		10.2.2 GUIを構築すること
		10.2.3 宣言的座標
		10.2.4 リサイズ時の宣言的振る舞い
		10.2.5 ウィジェットの動的振る舞い
	10.3 対話的学習ツールPrototyper
	10.4 ケーススタディ
		10.4.1 簡単なプログレモニタ
		10.4.2 簡単なカレンダウィジェット
		10.4.3 ユーザインタフェースの動的生成
		10.4.4 状況順応時計
	10.5 GUIツールを実装すること
	10.6 練習問題

第11章 分散プログラミング
	11.1 分散システムの分類
	11.2 分散モデル
	11.3 宣言的データの分散
		11.3.1 オープン分散と大域的ネーミング
		11.3.2 宣言的データを共有すること
		11.3.3 チケット配布
		11.3.4 ストリーム通信
	11.4 状態の分散
		11.4.1 単純状態共有
		11.4.2 分散字句的スコープ
	11.5 ネットワークアウェアネス
	11.6 共通分散プログラミングパターン
		11.6.1 静的オブジェクトモバイルオブジェクト
		11.6.2 非同期的オブジェクトデータフロー
		11.6.3 サーバ
		11.6.4 クローズド分散
	11.7 分散プロトコル
		11.7.1 言語実体
		11.7.2 モバイル状態プロトコル
		11.7.3 分散束縛プロトコル
		11.7.4 メモリ管理
	11.8 部分的失敗
		11.8.1 失敗モデル
		11.8.2 失敗処理の簡単な場合
		11.8.3 回復可能サーバ
		11.8.4 アクティブフォールトトレランス
	11.9 セキュリティ
	11.10 アプリケーションを構築すること
		11.10.1 まずは集中,後に分散
		11.10.2 部分的失敗に対処すること
		11.10.3 分散コンポーネント
	11.11 練習問題

第12章 制約プログラミング
	12.1 伝播・探索法
		12.1.1 基本的考え方
		12.1.2 部分情報を使って計算すること
		12.1.3 例
		12.1.4 この例を実行すること
		12.1.5 まとめ
	12.2 プログラミング技法
		12.2.1 覆面算
		12.2.2 回文積再訪
	12.3 制約ベース計算モデル
		12.3.1 基本的制約と伝播子
		12.3.2 計算空間の探索をプログラムすること
	12.4 計算空間定義し,使うこと
		12.4.1 深さ優先探索エンジン
		12.4.2 検索エンジンの実行例
		12.4.3 計算空間の生成
		12.4.4 空間の実行
		12.4.5 制約の登録
		12.4.6 並列的伝播
		12.4.7 分配(探索準備)
		12.4.8 空間の状態
		12.4.9 空間クローン
		12.4.10 選択肢を先に任せること
		12.4.11 空間マージすること
		12.4.12 空間失敗
		12.4.13 空間計算を注入すること
	12.5 関係計算モデルを実装すること
		12.5.1 choice文
		12.5.2 Solve関数
	12.6 練習問題

第3部 意味

第13章 言語意味
	13.1 一般的計算モデル
		13.1.1 格納域
		13.1.2 単一代入(制約)格納域
		13.1.3 抽象構文
		13.1.4 構造的規則
		13.1.5 直列実行と並列実行
		13.1.6 抽象マシン意味との比較
		13.1.7 変数導入
		13.1.8 同等性の強制(tell)
		13.1.9 条件文(ask)
		13.1.10 名前
		13.1.11 手続抽象
		13.1.12 明示的状態
		13.1.13 by-need同期
		13.1.14 読み出し専用変数
		13.1.15 例外処理
		13.1.16 失敗値
		13.1.17 変数置き換え
	13.2 宣言的並列性
		13.2.1 部分停止と全体停止
		13.2.2 論理同値
		13.2.3 宣言的並列性の形式的定義
		13.2.4 合流性
	13.3 8つの計算モデル
	13.4 よくある抽象意味
	13.5 歴史に関する注記
	13.6 練習問題

2011-12-10

ウェブサービスはコンセプトが伝わらないとダメです



はい。そのウェブサービスのコンセプトが伝えられなくて困ってる自分です

先日「ひそり-秘密共有ネットワーク(http://hisori.com)」という友達秘密共有ができるというサービス公開しました

システムとしては「6人までという人数制限がある招待制レンタル掲示板です



その中でサービス内容が勘違いされていたので、それについての記事を投稿してみたら

そもそも「コンセプトの欠如」とご指摘を頂いたので、今回どうすればコンセプトが伝わるか考えてみました。

※この記事で指摘されたです。→ http://anond.hatelabo.jp/20111209144823

(というかコンセプトを意識してなかったので今回コンセプトを作ったっていうのが正確な表現だと思いますが。)



ただ改めて言われて考えてみるとよく見る言葉なのに、コンセプトって何かよくわからないんですよね。

なので色々調べた結果、以下のブログがわかりやすかったのでこれを参考にして考えてみました。

http://blog.livedoor.jp/ld_directors/archives/50944461.html



このブログによるとコンセプトとは「売りたいもの」を「売れる商品」に変えるためのツールとのことです

さらにコンセプトは以下の3つの要素でできあがるとのことで、これに当てはめて考えるといいようです



ターゲット:誰を対象(ターゲット)とするか?

・便益:ターゲット約束する便益とは?

・理由:この便益を約束できる理由とは?



これをそのままひそりに当てはめて整理して考えてみました。



ターゲット:普段仲のいいグループもっと密接にコミュニケーションを取って仲良くなりたい人たち。

・便益:秘密でも何でも気兼ねなく言えて、さらにグループへの帰属欲求も満たされるので、もっと仲良くなれる。

・理由:6人までの人数制限でかつ招待制なので本当に仲のいい人しか掲示板を使うことができないから。



ひそりはシステムとしてはただの「人数制限のある招待制レンタル掲示板」なわけです

一応これを使ってみたいなあという思わせるために「秘密共有ネットワーク」と銘打ってきたんですがこれはどうもダメみたいです

ただそれは秘密を共有するのって楽しいやんなあ?っていう安易な理由なんで当然かもしれませんね。。



さてさて、こうやってコンセプトをまとめてみると

ひそりは「仲のいい友達もっと密接にコミュニケーションを取って仲良くなるツール」というのがわかります

秘密も確かに共有できますが、それはあくまでこれの副次的なところで本質じゃなかったです

自分でつくったウェブサービスなのに何もわかっていなかったっていう寒いことになってました。。。



そして、これを踏まえていろいろキャッチコピーなどの文言を考えて変えてみました。

以下のように以前のものから現在ものに変更しています。。



【以前】

タイトル:「ひそり-秘密共有ネットワーク

説明文:「ひそりは6人まで登録できる招待制秘密共有ネットワークです

犯罪自慢から今晩のおかずまで書くことができます。」

キャッチコピー:「mixitwitterで書けない本音だって、ひそりなら書けます!!」



現在

タイトル:「ひそり-気の合う友達だけの秘密掲示板

説明文:「ひそりは6人までのグループごとに作る招待制秘密掲示板です

招待制なのであなた投稿は本当に仲のいい最大5人しか見ることができません。」

キャッチコピー:「いつも一緒にいるグループだけにいつでも何でも気軽に話せるからもっと仲良くなれる!そう、ひそりならね!」



どうですか?どんなサービスか伝わりますか?そもそもコンセプトになってますか?

以前のよりは少なくともマシだと思うんですが、他のいい表現があれば教えてくれるとうれしいです

あと根本的に何かおかしいことがあればそれもできれば教えて頂きたいです。。。



それにしてもプログラミングも難しくて大変だったけど、こういうマーケティング?も大事で難しいんだなと感じています

こういうウェブサービスを作るときにはあらかじめこのあたりも考えてから作るべきだったんだなと反省です

これから作る方もプログラミングに目が行きがちになると思いますがボクを反面教師にしてこのあたりも考えてみるといいですよ。



●ひそり-気の合う友達だけの秘密掲示板http://hisori.com/

2011-12-07

http://anond.hatelabo.jp/20111207192323

横だけど。

今はプログラム凄さダウンロード数とかそういうのでいんじゃね?

プログラムの何らかの「凄さ」を】って問いに「人気だ!」って答えるのもどうかと思うよ。

それって別段スキルなくても、サービスプロバイダのAPIを切り貼りしただけでも、稼げるからね。


今だと、モジュール化され過ぎてて、指標を出しにくいよね。

それらを切り貼りして「すごい物を作る」のは、プログラミング凄さとは違う凄さからさ。

IT業界でやっていく自信をなくした話。

IT企業内定もらった学生だが、就職先について悩んでいる。専門は電気電子。在学中にIT仕事に興味持って、授業で習ったC言語が楽しかったというのもあって、IT系を中心に就職活動をしていた。だから、滑り止めってつもりは全くなかった。せめて学校IT勉強をしてきた人に負けないようにと、プログラミング勉強を独学でしていた。

それでおれはアンドロイドアプリを作りたくてjava勉強をした。アンドロイドアプリを作るための本も買ってきた。javaをやってるうちは問題なかった。授業で習ったC言語に似ていたし。問題はアンドロイドアプリ勉強をしようとした時に生じた。

おれはじっくり書店アンドロイドアプリ開発の本の調査を開始した。どれも3000円近く、貧乏学生にはやたら手を出せる代物ではなかった。そんな時、java勉強した本の同じ著者がアンドロイドアプリの本を出したんだ。ぼくは衝動買いした。買って大喜びで帰って家で勉強を始めたよ。だが、javaではあれほどわかりやすく書いてた同じ著者なのに、なんだかわかりにくい。基本的にjavaの知識があれば問題ないはずだった。なのに、解説を読んでも、コードを見ても何をしてるのかさっぱりわからない。

アンドロイドじゃ使う命令がまるでちがう。これホントjavaかって思うくらいに。おまけにインターネットリファレンス初心者に不親切で、こちらも何かいてあるか理解できなかった。僕は勉強する手段を失った。アンドロイドアプリ開発に挫折したんだ。見あげれば雲にも手が届きそうに感じた、自信満々だったあの頃の自分はどこへ行ったんだ?

別の本を買ってみても、やる気になれなくて放置してる。頭に浮かぶのは内定を貰った企業。俺のこの程度の理解力でこの先やっていけるだろうか。IT業界には35歳定年説ってのもあるし、やはり難しいんじゃないだろうか。IT企業で働いてみた所で、落ちぶれて途中で挫折するんじゃないだろうか。僕は自信を失って、一週間位鬱憤とした気持ちでいた。ひょっとしたらその時の傷を未だに引きずってるのかもしれない。学校勉強が身に入らない。1年生の頃は、あれほど勉強熱心だったのに。俺の心は腐ってしまったのか。

プログラマーという職業にワクワクする反面、不安の方も大きい。学校での勉強を活かせる回路設計にも興味ある。今から他の企業を探そうか迷ってる。僕はこの先どうしたらいいだろうか。

2011-12-05

初心者がたった5ヶ月でウェブサービスを作る方法

完全な初心者の状態から勉強を始めてから大体5ヶ月でウェブサービスが完成したので何を用意したり何をどうやって勉強したらいいのか色々書いてみました。

アイデアはあるんだけど、プログラムとか難しそうで自分にはウェブサービスなんて作れないと思ってる人がいたらその敷居を少しでも低くできたらいいなあなんてと思ってます


ちなみにボクはぼんやり1年くらいはてなブックマークにのってる記事を見ていてプログラムとかできたらいいよなあなんて思っていてようやく重い腰をあげた人です

さらに自分文系数学英語もロクにできない人なので、基本的に誰でもサイトは作れると思います

そもそも中学生でもプログラミングができるんだから大人に出来ないわけないですよね。


これからウェブサービスを作りたいっていう方の参考になればと思います

自分初心者なのでまちがってることがあったら教えてください。



●何を用意すればいいのか

自分Windowsなので何個かWindows向けのソフトを紹介しています

Macの方は申し訳ないですが、Mac向けのソフトをご自分で探してください。



(1)メモ帳

基本的にウェブサービスの開発はメモ帳でできます

アドビdreamweaverっていう便利なソフトがあるらしいですお金もかかるし別に必要もないと思います

ただのメモ帳だと使いづらいのでボクは「TeraPad」っていうフリーソフトを使っています

例えばプログラム言語ごとに表示を切り替えると、関数とかコメント部分の色が変わって見やすくなって便利です

TeraPadhttp://www5f.biglobe.ne.jp/t-susumu/library/tpad.html



(2)PCブラウザ各種

サイトを作っても各ブラウザごとに見え方が違うのでそれぞれ確認するために何種類かブラウザインストールしましょう。

ボクはIEFireFoxChromeの3つをそれぞれ表示して確認していました。

OperaとかSafariも本当は確認しないといけないと思うんですがこの3つで十分だと思います



(3)XAMPP

ザンプって読みます。ざっくり言うとローカル環境(自分パソコン)でプログラムを動かす環境を作るソフトです

いちいちサーバーアップロードしなくても、プログラムが動くかを確認できるので便利です

またレンタルサーバープログラム暴走してしまうと迷惑がかかるらしいのであらかじめ自分パソコンで確認するのがいいようです

XAMPPhttp://www.apachefriends.org/jp/xampp-windows.html



(4)ドメイン

何とかドットコムっていうやつですネット上の住所的なやつですexample.comとかexample.netとか。

ボクはお名前.comでドメインとりました。ドメイン個人情報を隠せる?サービスがあるのが理由です

まあどこで取っても大して変わらないと思うので目についたところで取るといいと思います

「.com」だったら年間1000円くらいです。長すぎるドメインはとらない方がいいかです



(5)サーバー

ネット上にファイルアップロードするところですドメインが住所だとすると土地みたいなイメージです

ボクはさくらインターネットさんのレンタルサーバー(スタンダードプラン)を借りています

理由はグリー社長さんがほめてたから。お金も月額500円なので安いです

同じ500円だとニコニコ動画プレミアム会員になれますね。ちなみにボクは一般会員です



(6)FTPソフト

さっきファイルアップロードとかさりげなく書きましたが、そのファイルアップロードするソフトFTPソフトです

ボクはFFFTPを使っています最初使い方がわからなくて戸惑いましたが慣れれば簡単です

FFFTPhttp://www2.biglobe.ne.jp/~sota/



(7)FireMobileSimulator(FireFoxアドオン)

携帯電話サイトを確認するには基本的に実機で確認するのが一番ですが、個人で全部そろえるのは難しいです

そこでFireFoxアドオンのFireMobileSimulatorという拡張機能を使って簡易的に確認するのがおすすめです

XAMPPのようなローカルサーバでも確認することができます

・FireMobileSimulator : http://firemobilesimulator.org/



(8)スマホまたはスマホを持ってる友達

FireMobileSimulatorで確認できるといってもやはり見え方は違います。念のため実機で確認しましょう。

ボクはiphone使っていてそれの確認はしてるんですが、android友達がおらんのでまだ確認してなくて実はまだ不安だったりしてます



(9)3キャリアガラケーまたはガラケーを持ってる友達

上と同じようにやはり実機で確認した方がいいです特にガラケーは見え方もそうですが、プログラムがうまく動かなかったりします。

例えば、AUだけフォームに「enctype="multipart/form-data"」を入れてると文字化けするという謎の現象が起きたり。

他にも色々あって制作時間がかかったのは正直このガラケーのせいです。色々3キャリアで統一とかしてくれないんですかねえこれ。。。

友達のY君とMさんとNさん本当にありがとうございました匿名ブログだけど感謝してます




●何を勉強すればいいのか。


さて具体的に何を勉強すればいいのかわからない人がいると思いますが、以下を勉強すればウェブサービスが作れます

ということでひとつずつ説明。



(1) html/css

マークアップ言語っていうらしいですプログラムじゃなくてhtmlファイルを作る言語です

とりあえずhtmlサイトの文書の論理構造を書いて、cssサイトの見た目をキレイにするものだと思ってください。


適当検索すれば勉強できるサイトがたくさん出てくるのでそこで勉強してください。

本も売ってますけど基本的なところは難しくないので買う必要はないと思います

かいところはその都度検索すれば大丈夫です



調べると、html5とかxhtmlとかあって戸惑うかもしれませんが、とりあえずPCスマホなら何でもいいと思います

(ガラケーについては各キャリアごとに対応させる必要があります。書くとすごい長くなるのでガラケー用にサイトが作りたいなら調べてみてください。)

ただhtml5が一番新しいので今後勉強される人はそれの方がいいかもしれないです

ちなみにボクはたまたま見たサイトxhtmlの説明だったので今回はxhtml作りました



実際やってみるとわかりますが、思ってるよりずっと簡単です

まだボクは90年代初頭のホームページみたいなデザインしかできないので偉そうなことは言えないんですが(笑)



(2) PHP/MySQL

プログラミング言語データベースです

最初htmlだけでサイトが作れると思っていたんですが、はてなのような動的なサイトを作るときは何かしらプログラミングする必要があります

んで、いろいろ調べるとperlやらRubyやらJAVAやら色々でてきて一体どのプログラム言語がいいのか悩むと思いますウェブサービスが作りたいならPHPがいいと思います

理由はウェブに特化した言語っていうのと他に比べると簡単で勉強時間が少なくて済むらしいので。



PHPなんかで本なんか買う必要はないらしいんですが、ネットサイトだとよく理解ができなかったので本を買いました。

以下の書籍がとてもわかりやすくていいですおすすめです。やっぱり本は体系的にまとまってるので勉強がしやすいです

「よくわかるPHP教科書(たにぐちまこと)」

http://www.amazon.co.jp/%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%8BPHP%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E3%81%9F%E3%81%AB%E3%81%90%E3%81%A1-%E3%81%BE%E3%81%93%E3%81%A8/dp/4839933146



この本の通りやっていけばとりあえずプログラムが動く感覚が得られます

あとすごい賢そうなことをやってる感覚になるので頭がよくなったような気がしますよ(笑)



MySQLもこの本で勉強ができますMySQLというのはデータベースで、そういうソフトです

他にもOracleとかPostgreSQLとかあるらしいですが、

とりあえずMySQLSQL文っていうのを勉強するとデータ検索だったり、データアップデートだったりが数行でできたりするのですごい楽になります



決して簡単ではないですけど、思ったより難しくはなかったっていう印象です

自分は大抵その時理解できなくてもだいたい一晩寝てから、もう一度頭からやり直すと理解できました。



(3)Apache

アパッチって読みますウェブサーバーです

ボクはさくらさんのレンタルサーバーを借りていて今回はあまりいじってないんですが例えば「.htaccess」という名前ファイルを作るとapacheの設定をいじることができます

例えばアクセスされたくないファイルがあったらそういう指定を「.htaccess」というファイルに書いておけばアクセスされないようになります



(4)スマートフォン向けサイトの作り方

基本的にパソコンと同じように作ればいいです。ボクは以下の本を見て勉強しました。

iPhone+Androidスマートフォンサイト制作入門(たにぐちまこと)」

http://www.amazon.co.jp/iPhone-Android-%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E5%85%A5%E9%96%80-WEB-PROFESSIONAL/dp/4048702181



正直ネット情報でも十分だと思いますが一度体系的に勉強するのもいいと思います



(5)ガラケー向けサイトの作り方

ガラケー向けのサイト制作は特殊で一度頭真っ白の状態で勉強した方がいいです。それだけPCスマホとは全然違います

ネットにも情報はたくさんありますが、断片的なものなので以下の書籍で体系的に勉強してから補助的にネットで調べた方がいいです

PHP×携帯 実践アプリケーション集(平島浩一郎他)」

http://www.amazon.co.jp/PHP%C3%97%E6%90%BA%E5%B8%AF%E3%82%B5%E3%82%A4%E3%83%88-%E5%AE%9F%E8%B7%B5%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%9B%86-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%9E%E3%82%A4%E3%83%8D%E3%83%83%E3%83%88%E3%83%BB%E3%82%B8%E3%83%A3%E3%83%91%E3%83%B3/dp/4797354356



この本は実践アプリケーション集というだけあってそのまま使えるコードが収録されているのがとてもいいです

正直PHPプログラミング自体はそこまで難しいという印象はなかったんですが、この本に出会わなかったら多分ガラケー向けのサイトは作れなかったと思います

もしガラケー向けのサイトが作りたいならこの本を買うのが近道だと思いますよ。




自分はまだやってないけど勉強したほうがいいもの



(1)PHPフレームワーク

CakePHPとかSymfontとかいうのがあるらしいです

このフレームワークを使うとあらかじめある程度のところまでできてるんで、ボクみたいに全部TeraPadで手書きしなくてもいいみたいです。。。



(2)javascript

PHPサーバーで動作するプログラム言語ですjavascriptブラウザ上で動作するプログラム言語です

非同期通信なんていうよくわかんないけど何かすごいこともできたりするらしいですよ。



●もし調べまくってもわからなかったら


もし一日中検索してもよくわからなかったらそういう時はネットの頭のいい人たちに質問しましょう。

ボクは以下のサイトで質問していました。



(1)ヤフー知恵袋

巷ではヤフー知恵遅れなんて言われてますが、コンピュータ系の質問に関してはしっかり教えてくれる人がほとんどです

ポイントを100枚くらい使うとカテゴリマスターなんていう天才が回答してくれます



(2)2ちゃんねる

2ちゃんねるの該当する質問スレに書いてください。

どういうスレッドなのかよく読んで質問しないとボロクソに言われますが、2ちゃんねるなのに皆さんすごい優しく教えてくれます

たまにケンカしてたりすることもありますがそのときケンカが終わるまで待ちましょう。ケンカの流れで質問がスルーされたりします。



ヤフー知恵袋2ちゃんねるもそうですけど、質問するとき自分環境をしっかり書いて何がしたいのか、どんなエラーがでるのか明確に書きましょう。

回答する人もわからないですし、自分がほしい回答がまず来ないと思います

あと当たり前ですが回答してくれたらお礼をしっかりいいましょうね。



●こうして出来上がったウェブサービス


こうやって今回できあがったのが6人まで登録ができる招待制レンタル掲示板です

「ひそり-秘密共有ネットワーク」(http://hisori.com/)です



なんだ掲示板かよー!!とか言わないでください(笑)これでもけっこうがんばったんで。。。

そういえばサイトを作ろうと思った経緯を書いてなかったんでちょろっと書いておきます


ボクはミクシィツイッターをやってるんですが、一瞬その時だけ仲のよかった人の更新とか見たくなかったりするんですよね。

でもマイミクを外したりフォローを外したり小心者のボクにはできなかったりするわけです



そもそもあーいうソーシャルって自分キャラ一貫性をもたせないといけないから窮屈なんですよね。

例えば、会社の同僚には真面目を絵を書いたようなキャラだけど学生時代友達には下ネタ好きのどうしようもないキャラだったりすると

マイミクフォロワーにその会社の同僚がいたら、下ネタなんか書きたくても書けないという窮屈さがソーシャルにはあるわけです



だったらあらかじめ人数制限しておいて、例えば同じ学生時代の人しか見ることができないサイトがあれば

下ネタだって気にしないで何でも書けるよねっていう考えに至ったわけです



今回6人までという人数制限と招待制っていう形にしているのはそういう理由と本当に仲のいい何でも話せるグループに使ってもらいたかたかです

んで、ネットにそういうのがなさそうだったので勉強がてら自分で作っちゃえ!ってことで今回作りました



ちなみに何で秘密共有ネットワークなのかというと「招待制無料レンタル掲示板」だとどんなサイトイメージがつかないと思ったかです

じゃあ何て名前にしようかと考えた結果、秘密でも何を書いても大丈夫ですという意味を込めて「秘密共有ネットワーク」って名前しました。

(秘密って普通はどこに書いてもいけないものじゃないですか)



とまあ、そういうことで初心者でボクみたいな完全文系の人でもこれくらいのサイトなら作れるんで

もしプログラムとか難しそうとかそういう理由でウェブサービス制作を躊躇してる人はぜひチャレンジしてみてださい!!



※もしサイトが変な挙動がしてるとかあったら更新報告用にツイッターアカウントを作ったんでよかったら教えてください。

http://twitter.com/#!/hisori_com/


ではでは。。。

- 転職ならen
- 派遣ならen
48ページ中1ページ目を表示(合計:1180件)