はてなキーワード: リファレンスとは
はてな記法とか無視で読みにくいですがゴメンナサイ。
かいたひと→http://twitter.com/chobi_e
follow/unfollowはご自由にどうぞ。
うん、次なんか書くまでにはブログ用意しておこう。
===============
会社としてもOpenSocialに関わってるし、個人でもちょいちょい
勉強がてらに手を出しているので参加させていただきました。
会場を提供してくださったコンテンツワンさんありがとうございました。
http://www.contents-one.co.jp/
ほいではメモの公開。
聞き逃しや誤記もあるかと思うので参照はほどほどに。
=============================
mixi機能の紹介とOpenSocialAPIリファレンス的な説明。
あとは公開するのは微妙なので割愛。
PHPでWEB開発を行うようにしてオープンソーシャルアプリを作る(@KuniTsuji)
=======================================================================
CodeIgniterを使ってのmixiアプリ構築についてのお話。
OpenSocial開発しているので全て既知の情報だったので
メモがありません。ゴメンナサイ。
要約するとPCはつくるのめんどいけどモバイルだとぺらいちで済むし、
運用した気になるモバイルオープンソーシャル (@cocoitiban)
=========================================================
ウノウさんは社員募集中、@cocoitibanは彼女募集中!
@cocoitibanのお仕事
映画生活(ピアに売却)、フォト増、clipp、まちつく
・まちつくについて
位置ゲー、もともとふつうのモバイルアプリとして提供していた。(ユーザー数非公開)
・リリース前
・社長がやりたい→同僚がすごい勢いで作成。@cocoitibanは横で傍観
(モバイルOpenSocialって元のサービスがあれば結構勢いですぐ作れるんですよね。)
・ロードアベレージ1000でも登録できるんだー
そして、当然のように他社を含め登録ができなくなるw
・初日から1週間は1日10万のペースで増えた
・mixiに登録しているユーザーだからまちつくに登録という意識は低いっぽいですが
・ウノウには3時間で画像生成をキュー処理に書き換えたやつがいる
・ボトルネックになりそうなものを全部退治
・ハードウェア確実に足りないので購入進める
・二日目、三日目と同じように+10万人ってトラフィックをさばかなきゃいけない
・リリースから今まで
・初期(パフォーマンスアップ)
・回線が足りなくなりつつあることに気がつく100Mなのに・・・
・決めてから1週間くらいでリリース
・Memcached適用範囲を増やす
・一部機能を企画レベルで見直しふかがひくなるかつ、よりよい動作へ。
・初期パフォーマンスアップ
・L7ロードバランサふやす
・DBマスタ分割
クエリはチューニングされていてCPUやDisk ioのreadはすかすかだけどWriteが痛い事に
・ORMの機能をつかって分割
・トランザクション上影響ないものを分割
・サーバー台数的にはそんなにない。
・中期
・ちょっとだけいいサーバーに置き換え
→あっさり解決
・本格的な機能改善
ユーザーに不便かけてる機能とかを大幅見直し
・社員数増員
・8Fに追加して4Fに事務所を移すことに
・引っ越し大変でした
・可能な限り早くしたかったがユーザーに不便をかけている段階ではリリースできなかった。
・中期
・一部処理をQ4Mに置き換え
・EC2とはおわかれできた
・EC2は悪くないがサーバーがある現状ではコスト間と運用の体制のにゃー(メモ終わる前に次のページへ)
・まとめると
・数ヶ月、数人のエンジニアでおこなわれたので長短納期
・力業だが安定志向を目指す方がいい
・変わったことやると大体トラブって死ぬ
・しかし新しい事やらないと間に合わない
[そのほかメモ]
・Q4M
・Gearman
・ActiveMQ
・自前で実装
・そのほかいいのがあれば
・キュー処理っているの?
・実装クイズ
・Friends1000人いて全員取りに行く場合どうする?
・キャッシュとして定期的に削除しなきゃだめ
・いや1000人とってきちゃおうよ
・トラフィックの波が激しい
・流入云々でかなり違う
・分散のネックはやはりデータベース
・ORMは使うべき
・流行るか流行らないか分からないサービスをつくる場合には必要
・はやった場合にすぐ分割できるか
・トランザクションがネックになる
・XAトランザクション
・トランザクションを正しく処理できるか
・KVSとの透過性
・逆をいえば上記はコードを綺麗にかけるかどうかなので使わなくてもいいと思う
・エンジニアとして思ったこと
・EC2はありだけど運用がイントラで運用するのとは違う形になるので経験が必要だと感じた。
・AmazoRDSが別の地域で使えるようになるといいなぁ。
・どきどきするのが課金。コストをいやいやでもエンジニアが意識せざるを得なくなる
・かなりはやい
・半年1年後、国内レベルのトラフィックであれば大半のWEBサービスは1台でおk
・ip_conntrack/iptable
・ulimit
・Symfony使ったけどそんなボトルネックにならなかった的な話。
・バッチ処理とかforkで悩むことが多い
# 総評
最近はめっきり大きなトラフィックを扱うことがなかったからちょっと刺激もらえました。
前の会社ではサーバー200台くらい管理してたけど今の会社では数十台程度だし、
そこまでトラフィックもこないのでサーバーエンジニアとしては体たらく気味。
まぁ、業務的には様々な方面でやっているので仕方のない事ですが。
とりあえず現状で出しておいて流行したら確実に死ぬ&寝れなくなるので事前に
震える子鹿のようにただビールをひたすら飲むのでありました。
そんな私に声かけてくださった皆様、ありがとうございます。
お名前/ID出していいのか微妙なので割愛させていただきますが、感謝感動雨あられでございます。
そうそう、個人的には今の流行がTwigなので@cocoitibanともうちょっと
お話したかったですが懇親会LTもありーの、飲み過ぎて気持ちわりーので実現せず。
Twigすごく良いとは思うんだけどいまいちドキュメントが少ないので
本当にこれでいいんか?て思うことが結構あるのよねー。
Node周りの実装がぱっと見分かりづらいので難儀。
そいじゃ会社いってきまー
自分はフェアな判断・実感を持てたのか知りたいので増田で書いてみる。
こつこつ小銭を貯めて、1年でどれぐらい貯まったかってやるのを楽しみにしてます。
毎日帰宅して気づいた時に財布の100,500円以外の硬貨を箱に貯めていく感じです。
で、毎年年が明けた1月にそれを銀行に持っていきます。
やっと銀行に行くタイミングができたので、それで今日行ってきました。
わくわくしながら!
たぶんこつこつ貯金する人はみんなこの瞬間が好きなはずです。
メインバンクが三菱東京UFJ銀行、サブバンクを三井住友銀行にしているんですが、
これに根拠はないのですが、たぶん最初なんとなく持ってったのが住友だったんだと思います。
これを数年続けています。
ちなみになぜUFJがメインかと言うと、単純に最大手だからってだけです。
特に行員のサービスを評価した、とかそういうのではないです。
しかし銀行を選ぶ際の基準ってそうないのではないかって思います。
私は以前、国内大手の証券会社に勤めていましたが(Nではない)、
営業しててもやっぱりその会社の「規模」で根拠無く取引している人が多かったです。
まあでも正直自分の勤めていた会社にしても、他社とどう違うの?って聞かれると詰まりますが・・。
実際すごい細かい点であるんですけどね。
毎年、三井住友銀行では窓口で預け入れをお願いしたら、
箱いっぱいの硬貨をじゃらじゃらーっと機械にかけて計算してくれていました。
んで数分したら集計結果を教えてくれて、あとは普通に預け入れの手続きを完了。
なんのストレスも手間もなく、店が空いてる時は10分か15分ぐらいでOKでした。
今日もそういう流れを期待して行ったんですね。
あ、なんでUFJだったかというと、単純に住友のカードを忘れたからです。
私:「すいません、預け入れをお願いします」
窓:「あ、はいお預け入れですね、ありがとうございます」
私:「硬貨のみで、すごいいっぱいあるんですが・・」
かばんの箱を取り出す
窓:「硬貨ですね、かしこまりましたぁ」
私:「すいません多くて・・」
窓:「いえいえ、大丈夫ですよ。ご入金の金額はおいくらですか?」
私:「え?」
窓:「あ、お預け入れされる金額のことです」
私:「えとーー、全額入金してほしいんですけど」(一部とかかと思って)
窓:「いえ、ですから合計おいくらご持参されているのかと・・・」
私:「え、これ、僕が数えるんですか??(汗)」
窓:「はいぃ。。」
私:「これ全部一枚一枚ですか??!(・・んなわけ)」
窓:「ええ、そうですね。」
私:「あの、窓口での預け入れだったら、こう、機械でざーーっとってできないんですか?(汗)」
窓:「あぁ、以前はあちらのATM機のコーナーにあったんですけれど今はなくなりまして・・」
私:「でも窓口だったらできるんじゃないかと思って窓口にきたんですけれど・・・」
窓:「こちらではちょっと・・あの、お預け入れでしたらATM機で・・」
私:「(めちゃんこあるんだけど・・と思いながら)あぁーーっと、硬貨を・・ですよね?」
窓:「そうですねえ、一度に扱える数に制限がございますので何回かに分けて頂いてですね」
私:「(えーーめんどくせーなぁ)あ、はい、そうなんですね、わかりました、じゃあそうします」
窓:「申し訳ございません」
私:「いえ、ありがとうございましたぁ。」
というやりとりの後、ATMへと向かいました。
ド平日の真っ昼間なのですぐに順番が回ってきました。
いつものようにATMを操作。
【預け入れ】→【硬貨のみ】を選択で、硬貨を投入。
最初は右奥の硬貨ボックスみたいなとこが、がーっと開いてじゃらじゃら流し込めるのかと思っていた。
ATMで硬貨の預け入れとかをしたことなかったので。
そしたら自販機のように硬貨を細長い穴に入れていかなくてはならない・・。
「おいおい、これってめちゃくちゃめんどくさいんじゃ・・?」
比較的穴に幅があり、一気にじゃらじゃらじゃらーっと入れることはできるものの、
それこそ結構な量があったので、なかなか進まないんですね。
こちらもあんまり時間がないし(その後すぐに予定があった)、効率的にやろうと、
ある程度硬貨を溜めてから入金しようとしていました。
そしたら手続きを進めないと時限性で「最初からやりなおして」の声で初期画面に戻ってしまう。
しかたなく、こまめに入金していくことに。
しかし入金すること3回目で、いきなり取り扱い中止になってしまう。
おいおいまじかよ、と思っていたら行員が来て、
「ご迷惑をおかけいたします、少々お待ちください」
と言って裏へ回って機械をいじりだした。
で、いったいどれぐらいかかるんだろう・・?
そもそもATMに回された時点で少し腹がたっていた。
まず、銀行ATMの利用者として、あまりATMで長居したくないという心理が働く。
これも誰にでもあることだと思います。
今回の場合だと
・整理のおじさんの目が気になるし、
・数があると言えど、利用者が多いATMをずっと占有する罪悪感、
・あとじゃらじゃらーーっと音がするから結構恥ずかしい。
そしてATMが止まる。
これって銀行では普通の対応なのかな?なんて疑問もちらほら出てくる。
「いや、おれが間違ってんじゃないだろ」とか、
「あーでもきっとこれがマニュアル通りで、硬貨を大量に持ってくるおれが悪いのかな」とか。
でもよく考えたら缶詰の貯金箱とかあるし、そういう人ってどうやって入金すんだ?って思い、
やっぱ私は正当な預け入れ方法(窓口でケリをつける)を希望したはずだ!と確信したり。。
約10分ほど(体感では15分ぐらい)待ち、ようやく行員が出てきた。
行員:「おまたせしました、○○さま、ご入金した金額はおわかりですか?」(その時に入れた硬貨の量)
私:「(わかるわけないので)いえ、わかりません」
行員:「そうですよね・・、ではこちらお返しいたします」
と、出てきた硬貨とキャッシュカードを返してくれる。
硬貨預け入れ再開。
今度は慎重にと、さらに小分けにして入金。
ここからはATMも順調に動いてくれました。(たぶん硬貨入れがからっぽになったんでしょう)
だいたい15回ぐらい手続きをしたと思います。
この時点で30分以上経過したと思います。
っていうかATMの復旧作業中に10分ぐらい待ってたんですが、
とにかく人の目が気になるし。
まあ意識しなくてもいいですけどね。
それにしても、なぜ窓口で対応してくれなかったのか、という点が気になります。
ATMが無いと、当然手続きを全て人の手でやることになります。
誰でもわかることですが、人件費がかかります。
しかし、今回の件にしても、
・行員がATMの硬貨がいっぱいになるので抜き取る手間と、
・私がATMを長く使うことで他の利用者が待たなくてはならない
というコストがかかります。
これは企業として正しい対応なのでしょうか。
窓口で対応したらいいのじゃ?という考えに素人としてはなります。
実際、毎年行っている住友ではそうしてくれます。
すぐに終わります。
今回のように、「もうUFJは嫌だなあ」ということにもなりません。
結局、どうにも腑に落ちなかった一件でした。
ちなみにどれぐらいの硬貨を入金したのか計算してみました。
まず入金総額が7047円でした。
硬貨の枚数ですが、だいたいの感覚で、50円と10円、5円・1円がそれぞれ3分の1ずつぐらいです。
この条件で計算すると、硬貨の合計が336枚になります。
50円=112x50=5600円
10円=112x10=1120円
5円= 56x 5= 336円
1円= 56x 1= 56円
合計= 7056円
だいたい入金額とニアリーです。
実際336枚の硬貨をATMに入金するというのは、どうなんでしょうか?
もし銀行員の方がいたら教えていただきたいのですが・・。
例えば何枚以上なら窓口、以下ならATMへ誘導する、みたいなマニュアルはあるのでしょうか?
それとも、銀行の中でもUFJの中でもこの大阪の東北部のH支店だけなのでしょうか?
それにしても、あまり気持ちの良い対応ではなかったなぁと思います。
この増田にしても、最低限の文章的演出以外は、実際を極力再現しています。
果たして私はフェアな行動をとって、フェアな感覚でUFJのサービスに不満を持ったのでしょうか・・。
小銭をこつこつ貯金する。
こうした習慣を持つ人は全国に相当数いると思います。
それが貯まった子供はきっと親と一緒に口座を開設して預け入れるでしょう。
私もそうですが、小さい頃母親に開設してもらった口座がまずはメインバンクになりました。
長年使い続けています。
何が言いたいかというと、銀行にしては本当に少しの金額についてのことですが、
全国でこうした「小さな入金」が非常に多くあるということで、
それが将来的に銀行にとって無視できない影響力を持つということです。
私が住むH市にはメガバンクや地銀・信金など多くの銀行があります。
今思えば三井住友銀行での窓口対応は気持ちいいものでした。
最初こんな小口のしかも硬貨ばかりのめんどくさい客は嫌だろうなーと思っていました。
しかしいざ窓口へ行くと、そんな表情ひとつせず(まあ接客ですからね)、対応してくれました。
公正を期すために言いますが、今日のUFJの窓口の対応も、接客自体は良かったです。
係の女性はとてもにこやかでいて、きちんとした口調で対応してくれました。
私が不満に思ったのは、手続きの流れとしての対応です。
しかし、私の最寄りのUFJ銀行の支店が今後ATMでしか硬貨を入金できないのなら、
少なくとも住友を贔屓にしていくことになると思います。
金融機関は銀行だけでなく、各業界ともにそういった信用や評判が大切です。
もし今回の件のような対応がUFJの真意ではないのなら、
改善を検討して欲しいなあと思います。
PS2発売日とPS3発売日の間隔は約6年9ヶ月。PS3が2006年11月発売なので、順当にいけば2014年前後。
だけどHDゲームソフトは開発費用が(SDゲーム機や携帯機より)非常に高いので、PS2よりも市場が飽和するのに時間かかるはず。
それに、今のソニコンに次世代機を開発出来るほどの貯金は貯まってない(PS3のCellは1000億円くらい投資したらしい)。
そんなに短いスパンで新型出してたらソフトメーカーも追随できなくなっちゃう(他のハードに逃げられちゃう)。全く未知の言語のリファレンスだけポンと渡されて、2年で現行世代規模のソフト完成させろとか無理だもん。
なので、早くても2015年まではPS4は出ない(情報くらいは出るかも知れんけど)。出るとしたら2016年以降と予言してみる。外しても責任は取らん。もし当たったら日記で「これ俺が書いたんだけど」と自慢してやる。
10月に研究室配属された。ちょくちょく論文を読み、ちょくちょくリファレンスをひく。
ただ、リファレンスをひくためにいちいちジャーナルのサイトを開いて検索するのは面倒だ。Firefox のロケーションバーに Volume と Page を入力したら、その論文の Web ページが一発で表示されたらいいのに。
そういうわけで、ブックマークレットとスマートキーワードを組み合わせて実現してみた。参考にしたのは http://d.hatena.ne.jp/sleepwlk/20090513/smartkeyword とりあえず自分に関係するものだけ作ったが、単純なので分かる人なら他のジャーナル用に改変できるだろう。
以下のブックマークレットを登録し、キーワードを適当に設定する。アドレスバーに「kw volume page」と打てばOK。
javascript:void(function(){var s = '%s'; args = s.split(/, |; |;|,|\.| /i); open('http://www.sciencemag.org/cgi/search?volume=' + args[0] + '&firstpage=' + args[1], '_blank');})()
javascript:void(function(){var s = '%s'; args = s.split(/, |; |;|,|\.| /i); open('http://pubs.acs.org/action/quickLink?quickLinkJournal=jacsat&quickLinkVolume='+ args[0] +'&quickLinkPage=' + args[1], '_blank');})()
javascript:void(function(){var s = '%s'; args = s.split(/, |; |;|,|\.| /i); open('http://link.aip.org/link/?JCPSA6/' + args[0] + '/' + args[1], '_blank');})()
javascript:void(function(){var s = '%s'; args = s.split(/, |; |;|,|\.| /i); open('http://pubs.acs.org/action/quickLink?quickLinkJournal=jpcafh&quickLinkVolume='+ args[0] + '&quickLinkPage=' + args[1], '_blank');})()
なにが簡単にプログラミングが習得できるだよヴォケ
馬鹿って言われるかもしれないけど俺はずっとC言語の教科書を何冊も買ってた。
なぜかって?それだけで立派なプログラミングができると思ってたからだ馬鹿だろ?
でも実際はapiやPCの事に理解を深めないとプログラミングなんかできない
俺の買った本の中にはそんなことかいてなかったぞ詐欺だろ
俺がプログラミングを楽しみたいんじゃねえさっさと自分の目的の物を作りたいんだよ
わかってるy自分には才能ない事ぐらい。情熱だけじゃ何もできないよね
自慢じゃないけど俺は20になるまで教科書以外に一冊も本を読んだ事はないし教養と呼べるものは0だよ
それを言い訳にするなといわれても机に向かってプログラミングの勉強をしようとすると怖くて怖くてたまらないんだ
何が怖いのかって言うとわからないってことがいやなの
クロスワードパスルで後一問とけば完成ってときにそこで詰まっちゃうと
元増田の苦悩は、日本語では、断片的なTipやリファレンスはあっても、
市販されている書籍のような情報がインターネットでは手に入らないということに原因があると思う。
英語だと、市販されている本がまるまるネットで公開されていることがある。
例えば、
SICP http://mitpress.mit.edu/sicp/
Real World Haskell http://book.realworldhaskell.org/read/
Practical Common Lisp http://gigamonkeys.com/book/
How to design programs http://www.htdp.org/
Thinking in C++ 2nd Edition http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
Thinking in Java, 3rd Edition http://www.mindview.net/Books/TIJ/
GNU Autoconf, Automake, and Libtool http://sources.redhat.com/autobook/
Managing Projects with GNU Make, Third Edition http://oreilly.com/catalog/make3/book/index.csp
Dive Into Python http://www.diveintopython.org/
Programming Ruby The Pragmatic Programmer's Guide 1st edition http://ruby-doc.org/docs/ProgrammingRuby/
On Lisp http://www.paulgraham.com/onlisp.html
The Art of Unix Programming http://www.faqs.org/docs/artu/
BRUCE PERENS’OPEN SOURCE SERIES http://www.informit.com/promotions/promotion.aspx?promo=135563
O'Reilly Open Books Project http://oreilly.com/openbook/
Creating Applications with Mozilla http://books.mozdev.org/
http://anond.hatelabo.jp/20091028192444
俺にも経験がある。
優秀な若い人の記事を見るたびに、俺の頃にも今くらいのPC環境、ネット環境があれば
もっとプログラミングの技術が高いはずなのに…って思っていたことがあった。
でも、もし、自分の若い頃にそういう環境があったところで、こういう優秀な人ほど勉強はしないだろうなって思う。
ネットとかPCってそういう技術を磨くのにも使えるけど、同時に遊び道具にもなるわけだし、
下手したら今よりも悪い状態になっていた可能性だってある。
元増田の中学生だって、勉強やりたいって言ってる割に、本がどうだとか、お金がどうだとかって
やろうと思えばなんだって方法はあるはずなのに、結局は他の人を羨むだけで
自分の行動力がないだけなのに、それを環境のせいにしちゃうんだよな。
優秀な人っていうのは、物理的に足りない部分っていうのは放っておいて、
今出来る範囲のことでプログラム組んで、どんどん技術を高めていくだろうと思う。
プログラミングなんてブラウザとメモ帳があればできるもんなのに。
プログラミング自体が好きなら、どんどんプログラム組んでるはずだよね、なんでやらないの?
増田を書くくらいネットが使えるなら、もっと使える言語の幅も広がると思う。
RubyとRubyリファレンスでも落としてきて好きなプログラム組んだらいいじゃないか。
(大方、そういうこともせずニコニコとかVIPとかで時間をつぶしてるんじゃない?)
最近になって漸くgccとsakura editorでC言語のhello worldを書くことができた。
って書いてるが、この環境があれば十分じゃないか。
俺が入出力を覚えたころには、コンソールでゲームとも呼べないゲームを作って
めちゃくちゃ楽しかった覚えがあるのだけど、今の子達はそのレベルだと不満なもんなのかな。
でも、こういうところも楽しめる人間じゃないとプログラミングには向いてない気がするのだけど。
オブジェクト指向言語としてどうとか、実行速度がどうとか、実行環境に依存しないかどうかとか、
そういったことは置いておくとして、初心者がこれからプログラミングを始めて、単なるプログラミングのお勉強にとどまらず、
何か他人とは違うことをしたいという場合には、迷わずオススメしたい言語がある。それはなんだろうか?
ってもう答えは出ている。JavaScript。タイトル見れば分かるじゃんww
なぜJavaScriptが偉大かというと、他の誰もJavaScriptをまともに出来る人なんていないからwwwww
はてな社員のあの人とかあの人みたいなのは別にして、普通にIT業界とか見ていたら分かるんだけれども、
なかなかJavaScriptがまともに出来る人というのが見あたらない。というか、いないんじゃねとツッコミたくなる。
だから、JavaScriptをキッチリね、キッチリが大事ではあるけれども、キッチリお勉強したらば、それはもう他人と大きな差がつくこと間違いない。
これだけAjaxとか言われているわけだから、もう重要な言語であることには間違いないけれども、キッチリできる人がいないので、
キッチリ出来れば、一部の企業からは重宝される。もちろん、一通りの言語は出来ないといけないに決まっているだろう馬鹿、と
言いたくなるような人もいるかもしれないが、とりあえず、JavaScriptマスターしますたと言うだけでかなり魅力的な人材。
とにかく常識的に考えて、JavaScriptくらい、重要でありながら優れた人材がいない言語は無いし、これは勉強するしか無いわけJK。
よくJavaScripterが「JavaScript第5版」について話すのを聞いていると、全部把握していないような人が山のようにいるわけJK。
だからもう基本のところできっちり把握していなくて、こんなもの調べれば分かるんだから覚えなくて良いと開きなおっちゃってる有り様だから、
これはもうどうしようもないと言わざるをえない。みんなJavaScriptを真剣にやっていない。それだけでなく、真剣にやっているとおぼしき
人までもが、ぜんぜん理解が足りていなかったりするからもうどうしようもない。こういう状況だからこそ、まじめにJavaScriptを
やればきっと良い結果がでるのではないかなということを言っているのでおじゃる。繰り返すように、JavaScriptは重要な言語であるし、
いまはそんな人少なくなっていると思うが、言語としておもしろみのないものでは決してない。JavaScriptやるだけで、オブジェクト指向の
いろんなことのさわりだけでもつかめてしまう。というか、俺はデザインパターンまで勉強できてしまった。というと、自慢に聞こえてしまうが、
そうではなくて友人連中もみな勉強した。とにかく、簡単なのだから、できてしまうのである。JavaScriptは確かにブラウザごとの差など
ややこしい部分があったりするが、べつにそんなことは大したことはなくて、実際に、覚える量は大したものではないと思う。
情報がまとまっていないから覚えるのが大変であるかのように錯覚しているだけで、リファレンスをみんなで構築し、仲間うちで利用
するようにしたら、とても効率よく学習できることをここに助言しておく。とそんなことはどうでもよくて、とにかく量としては多くないと。
要するに、JavaScriptは多くなくて簡単だし重要だし強力だしお勉強になるしお仕事になるので勉強したらよい。
それなのにいまだにマトモに勉強していないような人が多いのはどういう了見なのだろうか?これは真剣に知りたい。
トップの人がマトモに勉強していないと、その中で本を書いたりした人がクソな本を出して、それの悪影響を受けるということになる。
これではなかなかマトモな勉強しようにも出来ないという感じになるのではないか。いや実際には、大半の本はクソだと分かるから、
最初から相手にしない感じで良いと思うし、それよりはネットからの情報をもとに先ほども触れたようにリファレンスを社内で構築する。
それで良いのであるから、本など大した問題ではないのだが、それをやっている人がいかに少ないかという現状を嘆いているということである。
つまり、トップの人がマトモに勉強していないと、本もろくな本がないということになるから、けっきょくなかなかスゴイJavaScripterが現れない
という事態がずっと続いているのではないかという気がする。それに拍車をかけているのは、古い作法をいまだに固持しているプログラマが
おおくて、新しいJavaScriptの知識や作法を学ぶための方法が個人の学習意欲と学習工夫にゆだねられているという点にあると思う。
おもうに、ネットなんか便利だけれども、受け身になってしまいやすいから、能動的に情報をどうこうしようという気力のある人が少ないような
感じがしている。だから、なかなかマトモに常に新しいことに取り組むような人が現れなくて、たまにそういう人が現れただけで注目される
という滑稽なことになっている。別にそんなの凄くないよというような人がもてはやされたり、すごくないJavaScript記事がもてはやされたり。
Webサイトにおいて、コンテンツ量が多いほど良いというのは一概に言えない。量が多すぎて、どこにどんな情報があるか分からないのでは困る。
特に大切なのが、情報の案内板や判断材料を提示すること。すなわち、良い情報はどこにあるか、この情報を判断するにあたって役立つ情報はどれか、
といったことだ。前者をナビゲーションと呼ぶとすると、後者はリファレンス(参考情報)と呼ぶことができる。レビューもリファレンスに含まれる。
他に、参考文献やコンテンツ内容に関する記事もリファレンスに含まれる。
大量のコンテンツのサイトの場合、ナビゲーションだけでなくリファレンスも十分に提供されて初めて、量の意味が出てくる。
そうでなきゃ、量が増えるごとに質は低下していってしまう。
なんかPerlのblessっぽい。
JavaScriptのnewって本当にいらない子?(http://d.hatena.ne.jp/jdg/20090706/1246840565)
というよりperlのnewっぽい。なぜか。
classでクラスを定義してnewでインスタンスを生成する言語を「一般的オブジェクト指向言語」とすると、
つまり、javascriptでnewを(直接)使わず、class(のようなもの)を作ればperlっぽくなる。
オブジェクトを作る。オブジェクトを作るには3つの動作が必要である。
通常は言語仕様でこれらを行う"new"という命令が用意されている。しかし、必ずしも必要な物ではない。perlでは言語仕様としてはnewが用意されていない。new関数が存在するのはコーディング規約に従っているからに過ぎない。代わりにblessが用意されている。なぜこのようになっているのか。理由はいたって簡単だ。perlのオブジェクトの実態はリファレンスだ。初期化を行うコンストラクタはどの道定義せねばならない。だから必要なのはリファレンスとパッケージを結びつけるおまじないblessだけだ。コンストラクタで好きなリファレンスを用意し、好きなように初期化してblessすればよい。コンストラクタの名前はコーディング規約でnewと決めた。一方javascriptはnewを用意した。{}でオブジェクトは作れるし、どの道コンストラクタは作る必要があるのに。
オブジェクトとクラスを結びつける。しかし、javascriptはクラスを持たないので必要はない。代わりに必要なのは、継承元との結びつき、プロトタイプチェーンの構築だ。
既存のクラスの性質や振る舞いを流用する。default状態を与える。一般的オブジェクト指向言語ではクラス定義時に継承元となるクラスを指定する。javascriptではクラスの代わりにオブジェクトを指定する。
クラスとはオブジェクトの性質・振る舞いの定義だ。しかし、ダック・タイピングではオブジェクトの性質や振る舞いはオブジェクトの持つメンバにより決まるため、そのような環境ではオブジェクトに初期値と継承関係を与えるのが主な仕事となる。
コンストラクタはオブジェクトの初期化を行う。javascriptではクラスがないため継承とコンストラクタによりオブジェクトが初期化される。
var object = function(o) { var F = function() {}; F.prototype = o.prototype; return new F; };JavaScriptのnewって本当にいらない子?(http://d.hatena.ne.jp/jdg/20090706/1246840565)
個人的には
var object = function(o) { var F = function() {}; F.prototype = o; return new F; };
で良いんじゃね?って思う。
更に、コレでは初期化しないから
var object = function(o, n) { var F = function() {}; F.prototype = o; f = new F; if (n) for (var i in n) f[i] = n[i]; return f; };
みたいな。
さらにせっかくだからメソッドにして
var object = function(o, n) { var F = function() {}; F.prototype = o; f = new F; if (not f.inherit) f.inherit = function(n) {object(this, n)}; if (n) for (var i in n) f[i] = n[i]; return f; };
とか。
ちょっと考えてみる。
日々の生活の中で異性愛者は:
http://anond.hatelabo.jp/20090328031105
「すいません。やっぱ戦闘ってRPGにとって単なるストーリー進行の調整弁でしかありませんでした。」 って認めたってことになると思うんだが。
それは「やっぱ戦闘ってラスレムにとって単なるストーリー進行の調整弁でしかありませんでした。」だろう。
何で心折れてんだよ。もっと貫き通せよ。自分の主張を曲げんじゃねーよ。
もう少し売れてれば強気になれたかも知れんけどな。
しかし売り上げで結果出ちゃってるじゃん。英語のリファレンスを翻訳する事から始めて、結果が全世界累計で60万本弱。完全に赤字だろう。
自分の主張が間違っていた事を認めただけでも褒めてやらんと、開発サイドには売れないソフトを死ぬまで出し続けろとしか届かないよ。
開発者会議でえらそうに言い訳してんじゃねーよ。ふざけやがって。
この点だけは同意。立場上ああ言わざるを得なかったんだろうけどね。GDCに出てる時点で殆ど晒し者だったし。
ほんとどうするべきだったんだろうな。
UnrealEngine3の選択からして間違いだったというのであれば、最初からXBOX360かPS3のどちらかに絞ってやるべきだった。そもそもUE3を選んだのも、360とPS3の両ハードでリリースする事を前提としているはず。なのに360版とPC版を出すだけで精一杯。
これだもんなあ…。
あげく無事発売された360版もあのクオリティでしか出せなかったというのはプロジェクトとして少なくとも半分は失敗しているようなもんだ。
ま、高い授業料と思って次に活かしてもらうしかないわな。
主です。返信ありがとうございます。
自分は情報リテラシーは低いと思ってます。「ホントは○○の話」というのがホントにホントなのか判断できないですから。
皆さんがどうやって情報の判断を行っていらっしゃるのかわからないですが、とりあえず何か疑問に思ったらリファレンス共同データベース(http://crd.ndl.go.jp/GENERAL/servlet/common.Controler)で同様の問題にぶつかった人がどのような調査方法を行ったかを調べたり、新書マップ(http://shinshomap.info/search.php)やWebcatPlus(http://webcatplus.nii.ac.jp/)で類似語などを検索するまではいいんです。そこから取捨選択をすることができずに、情報を検索することが目的となってしまっているのが問題なのでしょうね。
コンピュータリテラシーはそこそこでも、情報リテラシーは低い。。
それでもどこでいつカンファレンスが行われているか、どういう人が活動していてどの辺にコンタクト取っていけば良いのかというのはネットで知る事ができる。これだけで格差はかなり減ってる。
自分の場合カンファレンスが行われていることを知るのが遅いといのがあります。アントニオ・ネグリが来日すると知ったのは入国拒否された日だったという思い出が。
コンタクトを取ることができるくらい行動力があればいいのですがなかなかできないですね。
絵でも音楽でもプログラミングでも、早い時期から高いレベルに沢山触れられる。これが一番勉強になるし、本当に作りたい人にとっては、いい作品に触れること自体が刺激になり、向上心に繋がる。
Europeana(http://www.europeana.eu/portal/)を見ることができるのはネットのスゴイところだと思います。ベートーベンによる第九、ショパンによる手書き原稿を見ることができるなど刺激的ですよね。ほとんどのジャンルはhttp://www.doaj.org/を見れば刺激を得ることができますし。
そのために努力できるか、学べるかなんていうのはネット、非ネット関係ない。ネットだから教育しないといけないとか意味わかんない。やるきのある奴ならほっといてもやることだし、ネットがその敷居を低くしている。
前のでも書いているのですが自分から動いている人は問題ないのです。問題なのは受動的に動いている人ですね。自分が受動的な人間なのでやってくれるとありがたいですが。何が課題かがわからない状態が多いのです。R25的に言えば、問題を解けるよりも解ける問題を作れる人のほうが偉いと思っちゃいますね。
しかし現在では、自社開発のコンテンツ管理システムを導入。著作権違反コンテンツを速やかに削除できる体制を整えた。このシステムでは、著作権者が「リファレンスファイル」と呼ぶユーザー非公開の動画ファイルをアップロードして、ユーザーがYouTubeにアップロードする動画とのマッチングを実施。両者が同一と認められればYouTube上からファイルを削除している。
やっぱりそういう機能が提供されているんですね.
ただし、権利者にはファイルを削除する以外の選択肢も用意されている。それは権利者が広告を表示した上でのアップロードを容認し、広告による収益を得るというものだ。現在ではコンテンツ管理システムを利用する世界300社のうち90%が動画を削除するのではなく収益化するというモデルを選択しているという。
大概でいえば、それが有効である事は多いでしょう。
ですが、それだけでは足りないこともあるし、何を読むかが重要だし、「プログラミング初心者」の種類にもよる、という但し書きも必要だと思います。
そうすると、プログラミング初心者はサンプルコードがしっかり載ったリファレンスを片手に何か一つの言語で作られたオープンソースのソースコードを読んで学習するのがいいのかな?
というのも、単語(関数、ステートメント、ライブラリ、etc.)を文脈で覚えるには、文脈を理解しなければならないが、文脈を理解するためには知識が必要だから。そして、知識を得るには単語を知らないと難しい。
何も知らない状態ならば、まずは単文複文、変数、ステートメント、構造化プログラミングetc. と、言語で使用される概念を理解しなければならない。それが基礎から応用へ向かうにつれ、単語量が増え、記憶すべき事柄が増える。そしてついには、バッドノウハウ、歴史的理由、処理系依存などが出てくる。それらは必要とされるから存在する。その、必要とされる理由、必要とされる文脈を理解することが、それを応用するために必要なことだ。応用力、それは記憶と理解のバランスだ。
リファレンスとサンプルコードと実働コードを用いる手法の目的は、リファレンスで意味を、サンプルコードで小さな文脈での使用例を、実際の使用例でさらに大きな/多様な文脈での実例を、それぞれ得ていくことにある。それには、それぞれの文脈が理解できるという前提があり、今の知識・語彙で理解できるソースコードを選択しなければならない、ということである。しかし、どのようなソースコードを読めば一番効率が良いか、という問題は非常に難しい。また、実在するコードを読むもう一つの理由が、モチベーションの維持にある。しかし、これがまた難しい。難解な方が燃える人もいれば、簡易なほうが良い人もいる。また、コーディングルールや手法の違いを学ぶために、数をこなすことも有用だろう。しかし、そのためのモチベーションを維持するのは大変である。
なんにせよ、そういった、自分にあったお手本となるソースコードなど、初心者には選べるはずはなく、そういう意味で初心者にはお勧めできないかもしれない。いや、もしかすると、どこかの増田が「初心者が読むべき10のコード」とか書いてくれるかもしれないが、個人的には運命の出会いかとも思う。普段愛用しているツールに機能追加したくなって、ソースコードを読んで行くうちに覚えたとか。
http://anond.hatelabo.jp/20081101050330
http://blog.livedoor.jp/dankogai/archives/51133522.html
いや、自分はコーディングが全くといっていいほどできないSEという肩書きをもつスーツなのですが。
「コーディングができない=関数(ライブラリ、クラス、メソッド、etc...)を覚えてないから」
「関数等を覚えられない=文脈で覚えてないから」
となるのかな。
もちろん自然言語とプログラミング言語が違うのはわかっていますが、わりと共通点はあるのかな、と。
そうすると、プログラミング初心者はサンプルコードがしっかり載ったリファレンスを片手に何か一つの言語で作られたオープンソースのソースコードを読んで学習するのがいいのかな?