「配列」を含む日記 RSS

はてなキーワード: 配列とは

2012-02-08

[] CC攻略順予定

本来は和泉千晶→杉浦小春→風丘麻里→小木曾雪菜→冬馬かずさの方がいいんだろうけど私は

杉浦小春和泉千晶→小木曾雪菜→冬馬かずさ→風丘麻里 の予定。


にしても新キャラキャラけが、なんつーかエグい、っぽい。

・千晶=若いころの関係にとらわれない。春希よりも自分を優先する「まっとうな人間」。

小春=若いころの主人公→かずさの関係の反復。ただし子供

・麻里=若いころのかずさ→主人公の関係の反復。ただし大人。

という感じかしら。やってみないとわからんけど、千晶はヤバイ香りがプンプンする。



これだけみたら、かずささんが優遇されすぎな気がするね。

雪菜さんの不憫さがハンパないけど、逆転を期待するしかいね

ちょこっとやった限りでは、風丘麻里はクリアしなくてもいいんじゃないかな、と思ってきた。

このキャラは、かずさ的なポジションのまま、良い先輩のままのポジションの方がいいんじゃね?と。

このキャラはあえてやるなら最後のご褒美って感じにしたい。少なくとも冬馬のあとにしたい。

冬馬にしたって、主人公が雪菜ルートまでにヘタレというか過剰な自虐ナルシシズム改善、せめて自覚してくれないかぎり、やる気が出ない。

そんくらい冬馬はすきなんだよな。主人公、しっかりしてくれー。




とりあえず、キャラの好みは現時点では

 雪菜さん < 小春 < 千晶 < 依緒 < かずさ <麻理 となっております

ただ、往々にして、ストーリー的でみると、

ツンデレキャラストーリーの質はかなり下がることが多いので(ツンデレキャラは報われない時が一番輝くのにそうしない)

小春を一番手に置くのが安牌だと思われ。千晶はまぁ主人公の欺瞞をぶっ壊す立場として期待。

ここで主人公が壊れなければ、麻理投入したあと雪菜に。どっちがぶっ壊す役か微妙にわからないんだよなぁ。




しかし、この作品のシナリオライター変態だなぁ(良い意味で)

自分の文章に陶酔しているとしか思えない、すごいドライブ感を披露しつつ、

文の区切りから、語彙の配列まで、丁寧に丁寧に仕上げよる。職人芸としか言いようがない。

2011-11-07

2010/05/16 23:40

こんにちは。昨日会った者です(これで特定するには情報不足だけど、まあわかるよね)。

で「幅優先探索でやる」という方針自体はいいと思うし、データ構造の作り方も基本は押さえていると思います(斜め読みしかしてませんが)。

ただ、コーディングの発想が「C で作る」という大方針から見て、少しちぐはぐな印象も受けますデータ構造設計操作の部分、汎用のライブラリを作ろうというのならあれでもいいと思うのですが、わざわざ汎用のライブラリを使わず自分で専用の道具を一から作ろうというのなら、問題の性質を考慮して能率良くやることが大事です

ところが、ここに載っているコードを見ると、見かけが C らしくなく、C++Java の劣化版のような印象を受けます記法マクロ大文字化しない、ルーチン名を大文字で始めるなど)だけの問題ではなく、データ構造設計思想が「C で書く」という方針と矛盾しているように見えます

もう少し具体的に言うと、そもそも C というのは現在 Web 系の世界などで流行スクリプト言語類とは逆で、汎用言語でありながら低レベルハードウェアに近い)処理が簡単にできることに特色があります。つまり組み込みを想定してプラットフォーム依存コードを書いたり、ハードウェアの特性を考慮して低レベル最適化をやりたいというときに適しています

そこでこの問題ですが、これを C でやるということは、処理速度や使用メモリ量の最適化が要求される状況、つまり迷路の大きさが途方もなく大きいような状況を想定すべきですもっと言ってしまえばこの問題、たとえば画像処理などで似たような発想が要求されることがあります。このため、どうすれば時間のかかる処理を切りつめることができるかを考えてやらねばなりません。

このプログラム場合時間のかかる処理の代表格である malloc() が大量に使われています。これはいかにもまずいです。このような大量データを処理する場合の定石は、あらかじめ必要なだけメモリを確保しておいて、自分で割り当てることです。具体的には、必要と想定される量だけメモリ配列の形でどかっと確保しておいて、配列インデックスポインタ代わりに使います。そして、足りなくなったら倍々のような感じでメモリを realloc() してやればよいのです

なお、そのような観点で言って、木の各節点の子の数は高々 4 (スタート地点が内点でないとすれば 3)であることを使っていることはよいと思います。ここで「子のリスト」とかを作ってしまっていたらこれはもうアホもいいところですから(容量の節約にすらなりません)。

そんな感じでしょうか。

とにかく、この手の問題は、アルゴリズムさえわかっていれば可読性もヘッタクレもないので、「短く書く」というような表層的なことよりも、何が求められているのかをよく考えて、柔軟に設計思想を考えることが大事だと思います

2010/05/17 13:54

Oさんですね。専門的なコメントありがとうございます!cで書くと言いつつObjective-Cっぽい発想で書いていました。マクロの命名もその影響で、関数Image Magickなどに似た命名規則になっている気がします。mallocを使いすぎると時間がかかるということは全然意識していませんでした。今度作るときメモリ管理を自前で用意する発想を取り入れてみたいです。参考になるコメントありがとうございました!

2010/11/18 23:56

はいわゆる「正規表現」は形式言語理論でいう正規表現ではないんだけどね……(ぼそっ)

2011-08-29

ヤフー知恵袋API』 で 『ヤフーバカ袋』 を作った


背景

みんなも知っての通り、前々から2chなどでヤフー知恵袋が『Yahoo!バカ袋』『Yahoo!知恵遅れ』とネタにされています

たとえば

Q : 健康ランドのお風呂場で、オナニーした人いますか?

A : 申し訳ありません・・・ついつい気持よくなって・・・

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1252778297

Q : 食パンマンの顔は何枚切りなんですか?

A : 何枚切りだろうが、彼は二枚目です

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1315883

こんな質問するのは一体何者なんでしょうか。

おもしろいので、こういう質問を集めるサイトを作ってみました。


どんなサイト?

知恵袋URLコピペで登録するだけのシンプルサイトです

http://y-kichigai.info/

サイト名前は『ヤホーおバカ袋』となっていますが、最初は『Yahoo!キチガイ袋』でした。流石にヤフーさんに怒られるかなと思って控えめにしましたwww

ドメインキチガイのままですがw

当面は2chに挙がった質問をのっけていこうと思っています

ぜひみんなもおもしろい質問をのっけていってください^^

では技術面も書きます(キリッ


技術的なこと

Yahoo知恵袋APIOAuthを使って書き込みなども出来ますが、今回は記事の内容を取得するだけだったので楽でした。

ひとまずAPIを叩いてXMLを見て、あとは配列にして...と簡単にとれました。

環境Apache+PHP+MySQLを使っています。よくあるあれです

jqueryも使っていますjqueryプラグインはすごく豊富ajaxを使ったフォームもtwitter風のメッセージバーも超簡単に設置できました。

あと、cssyahoocssフレームワークを使っていますyahoo css gridsが便利で、http://developer.yahoo.com/yui/grids/builder/ これを使えば土台が簡単にできました。。

デザインアイコン載っけりゃいい感じに見えるので、http://photoshopvip.net/ からテキトウに見つけます


さいごに

読んでくれてありがとうございました^^!

せっかく作ったので、誰かに教えたくて。。。

ぜひ使って、おもしろい質問を共有しましょう^^

要望あればぜひぜひください。

2011-08-17

完全放置バイオロジー研究室在学中の皆様へ

自分が完全放置研究室所属していた時に知っておくと、もう少し楽だったろうなぁと思うツールを単に列挙

よって内容に偏りあり。



初心者向け便利なホームページ



プライマー設計がしたい

Prime設計について

タカラリアルタイムPCRでのプライマー設計指針を書いてくれている。

通常のPCRでも基本的にこれに従えばOK

http://catalog.takara-bio.co.jp/product/basic_info.asp?unitid=U100004425

Sigma DNA Calculator

http://www.sigma-genosys.com/calc/DNACalc.asp

シグマ社が提供しているPrimerの計算ソフト

Primerの長さ、分子量、TmGC含量、2次構造の作りやすさ、Primer Dimerの有無などを複数のサンプルに対して計算してくれる。

*異なるPrimer間でのDimer形成に関してのデータは無い

設計してみた配列を入れ使えそうか考える。




知らないタンパク質が出てきた

○UniProt

http://www.uniprot.org/

タンパク質についてのデータが簡単に手に入る。知らないタンパク質名があったら取り敢えずココで検索

アミノ酸配列

・糖鎖付加部位

・S-Sの部位

・報告されている変異の場所

・関連性の高い論文へのリンク などなど多数の基本情報が記されている

○Compute pI/Mw tool

http://web.expasy.org/compute_pi/

タンパク質配列からpI値と分子量を計算してくれる。

使用頻度は低いけれど、無いと困るソフト




DNA配列からアミノ酸配列を知りたい

○Translate tool

http://web.expasy.org/translate/

DNA配列からアミノ酸配列翻訳してくれるソフト

ドンフレームがズレていても、逆向きの配列でも全てのパターン翻訳してくれる。(フレームのズレ3種×向き2種=Total6パターン)

表示も3文字表記と1文字表記があり、翻訳後のコピ-&ペーストに便利





公開されているVectorDNA配列を知りたい。

Vector Database

https://www.lablife.org/g?a=vdb

報告されている様々なベクター情報が見られるページ

配列マップも表示され、新しいベクターを作製する場合何かと便利





系統樹を描いて配列比較したい

○ClustalW2 - Multiple Sequence Alignment

http://www.ebi.ac.uk/Tools/msa/clustalw2/

系統樹を描いてくれるソフトホモログなんかを比較する時にも便利。

使い方の簡単な説明がYouTubeに載っています

http://www.youtube.com/watch?v=r2cG1SzDdBA

YouTubeでもある通り、ホームページ内でも系統樹を見る事が出来ますが、オフラインデータを見たい場合

TreeView Xを使えばできます

http://darwin.zoology.gla.ac.uk/~rpage/treeviewx/download.html




論文を読むのが苦しい人へおオススメ

アドオン(firefox)

ライフサイエンス辞書ツール

マウスオーバー単語意味が表示される。ライフサイエンスに特化しているのためマニアック単語もいける。


英辞郎 on the web

ライフサイエンス辞書ツールのようにマウスオーバーではないが、検索ボックスコピー&ペーストしなくても検索が可能なので、とても楽。

ライフサイエンスに特化していないが、かなり広い範囲の単語が登録されているのほとんどの単語、述語の意味が分かる。


検索

ライフサイエンス辞書オンラインサービス

英語共起表現

http://lsd.pharm.kyoto-u.ac.jp/ja/service/weblsd/conc.html?c

上記したライフサイエンス辞書ツールを開発しているホームページ

単語にたいしての共起表現検索してくれる。分からない単語の訳の予想や、論文を描く時の助詞検討する時に便利



とりあえずの便利ツールでした。

2011-08-06

プログラムを理解させるには?

K&RのCで書かれたプログラムを渡された(もう少し正確に言えば、VisualStudioのWizardで作られたものにK&RのCでコーディングしてある(C++ですら無い)ので純粋なCでは無いが果てしなくK&RのCだ)。あと、これを作った人はどうにも「ポインタ」の概念が無いらしく、無駄に多次元配列だったり、配列アドレス渡しとかが多用されている。

作業指示は、これを流用して、C++/CLIかつ.netFramework3.5使用かつ新規案件対応せよ、との事。

個人的にはどう見積もっても3人で4ヶ月かかる量なんだが、予算が1人で1ヶ月、と言って来た。理由は「Cからの流用だから」。

参ったな。自分としては、C++/CLIはもはや別言語だと思っているんだが。

どうにも上司顧客に説明出来ない。説明出来ないのは、自分が理解していないせいだ、と言われればそれまでなのだが、自分感覚で言うと、高段者がうっている将棋囲碁の一手を初心者に教える、とでも言うか、小学生微分積分を教えるというか、そんな感覚がある。

いや、相手が、K&RやANSIC++C++/CLIを分かっている人間になら、説明は出来るのだが、相手のレベルに合わせて、説明が出来ない。

今回のこれに限らず、見積もりとかすると、「なんでこんなに時間かかるの?」とか「高い」とかよく言われるのだが、やっぱり説明が出来ない。デスマってるプロジェクトには、よくさらなる人員投入がされる事が多々あるのだが、デスマってる時点で負け戦だし、「混乱したプロジェクトに人を投入すれば、さらに混乱するだけ」と自分は思っているので、やめてもらいたいと思っている。

「あんたの小学生なる子供が、100人いたら、東大合格するくらいの学力が発揮されるんですか?」と問いたい。

あれは、VisualBasic4が出た頃か。それまでWindowsプログラムというものをCまたはC++で書いていた自分には、驚異的な言語に思えた。そしてみんな言う。「VBで作れば簡単ですよ」

自分にはVBという言語はとてつもなく難しい言語に思えた(MFCは論外)。なぜなら「かゆいところに手が届かない」言語だったから。だから、皆が言う「VBなら簡単」の理由がさっぱり分からなかった。ちょっとした使い捨てツールや、極々Windows標準的な事しかやらないのであれば、VBは簡単な言語であったのは分かる。実際自分もそういう使い方をしていたから。

そして、うちの職場ではそんな製品を作る所では無く、仕様を満たすためにはサブクラス化とかWin32APIを使うとかしないと実現出来なかった。もちろん「VBで作れば簡単ですよ」と言っていた連中にサブクラス化など理解出来ようも無く、ただただ右往左往してデスマーチ突入していった。

その時も、お偉方や顧客に説明が出来なかった。「VBなら簡単」と言っていただろう、と言われるだけ。

まぁ、VB.net時代になってから、だいぶマシになってきたと思うけどね。少なくとも、スレッドセーフになってくれただけでもありがたい。

まぁ、その辺はともかく、もしかしてデスマIT土方とかなるのは「説明が出来ないから」なのではなかろうか?と思えてきた。必要な時間予算を説明出来ないから、泥沼になるのではなかろうか、と。

説明が出来ない限り、プログラマー永遠にIT土方であり、地位向上は望めないと思う。人月神話じゃなく、ファンクションポイント法とか、なにか定量的に説明出来ればいいのだけど。ファンクションポイント法だって、それが分からない人には通じないわけで。「小学校入学した児童にも分かるような」説明が出来ないとダメなんだろうなぁ。どうすればいいんだろ?

2011-08-02

http://anond.hatelabo.jp/20110802185301

遺伝子DNA塩基配列にはまず影響しない。

でも環境継承されて、その要因が影響することは考えられる。

人間ハードウェアだけで決まってるわけではない。

2011-07-08

柴田大輔・映画監督まとめ(2)

続きです

僕は柴田大輔さんの映画はまっているわけですが、周りの人はなかなか理解してくれません。。。トホホ・・・

まあ、地味で個性的なので当然かもしれませんが、このブログでは、柴田大輔論を含め、気軽に日記でも書いていこうと思っています

最近は、暑い日が続いていますが、何とか耐えている今日この頃です

おそらく監督炎天下の中、撮影に走り回っているのでは?と思っていますが、早く新作が見てみたいものです

DVDの予約も入れないといけないし、なんだかバタバタしていますが、柴田監督の作品を見るのを楽しみにしているのです

もっともCMが先だったので、映画だけでなく、広告作品やCM結構見ていますよ。お気に入りだらけなんです^^

さて、いっちょ行きますか!

それでは、今日サイト紹介です

さらば愛しの大統領

http://cinema-j.com/houga/?taxonomy=post_tag&term=%E6%9F%B4%E7%94%B0%E5%A4%A7%E8%BC%94

主役の大統領暗殺犯を追う二人の刑事――すぐキレる血の気の多い早川刑事宮川大輔美人にめっぽう弱い番場刑事ケンドーコバヤシ・・・

バカバカしいことを大真面目に!『さらば愛しの大統領柴田大輔監督世界のナベアツインタビュー

http://cinetri.jp/interview/saraba_interview/

監督は「3でアホになる」という衝撃のギャグを世に送り出し、放送作家としても活躍する世界のナベアツと、NOVAウサギジョージアなどのCMを手掛けてきたクリエイター柴田大輔・・・

世界のナベアツ長編映画監督デビュー大阪府独立国家を宣言!? の疑問

http://aromacan.blog118.fc2.com/blog-entry-2108.html

ナベアツは「柴田大輔監督と共に、邦画史上『最もポップコーンコーラに合う映画』を完成させることが出来ました。更には、・・・

さらば愛しの大統領映画作品紹介

http://www.cinematopics.com/cinema/works/output2.php?oid=10597

CM界で常に新しいものを贈り出す柴田大輔が世界のナベアツとタッグを組み、「これは映画なのか!?」と、これまでの映画体験を覆すほどの、とことん「笑い」を追求したオリジナル作品を作り上げた。・・・

柴田大輔 研究してみた日記

http://blog.goo.ne.jp/tanmen_daisuki

フォトジャーナリスト柴田大輔さんは、2007年エクアドルに暮らすアワ民族を中心としたコロンビア難民グループ出会い、彼らと交流を深めながら、難民としての困難な状況だけでなく・・・

柴田大輔(かずさDNA研究所室長)の公演にて・・・21世紀バイオテクノロジー時代であると云われている。

医学の分野では、ヒトのゲノム塩基配列の解読が進められており、全体の概略が2000年6月に発表された。

この成果は、新たな医薬品の開発・・・

柴田大輔のページ

http://www.kazusa.or.jp/gene-f3/shibata/

かずさDNA研究所植物遺伝子第2研究室室長 柴田大輔、何を研究している?、何を研究してきた?、講演など・・・

2011-06-17

http://anond.hatelabo.jp/20110617114421

単にお前の好き嫌いの問題なんだから外部に責任求めるんじゃねーよ。

「私は人参が嫌いだ。何故なら人参の構成分子分子配列はしばしば…」とか言ってるようなもん。

馬鹿すぎ。

2011-05-20

[] やらおん階級意識について考えてみた

やらおんが人気である根本的な理由について考えてみた。

特にアニメ部分に関してはほとんど同じ水準にある萌えオタニュース速報とどうしてこんなに差が空いてるか、は興味深い。

結論を先に書くと、私が思ったのはやらおんって階級意識が明確だよねってこと。そして、一番人数が多い層の人間が一番優越感を感じられる仕組みになってること。

そして、その仕組みの結果としてやらおんでは祭りが発生する。萌えおたニュース速報では発生しない。この差は大きい。




発端は、批評家たちに対しての反発だろう。

こいつらアニメにとって何もプラスの貢献をしなかったよね、むしろ存在自体がマイナスだよねってくらいの嫌悪感を感じる。

同時に、技術とか能力ないけどアニメについて語りたいって層を大歓迎してるというのも感じる。


やらおんでは、アニメへの貢献度に対する序列が徹底されてる。

えらいのは、作ってる人と声優さんそれから買ってる人。ちょっと下の階層に楽しもうとしてる人。アンチ批評家は最下層に位置づけ直してる。

私は声優に全く興味がないし、ローソンフェアとか全く興味ない。売上情報もそこまで気にすることないと考える。

なので、なんでこの人こんなに声優とか消費活動取り上げるんだろう、って思っていたのだけれど、

こういう序列になってるんだと考えれば納得する。そりゃこっちのほうが重要度高いんだからあたりまえだよな、と。

批評家の毒にも薬にもならない批評よりかはよっぽど役に立つよねー、ということなんだろう。

他にもイロイロと特徴がある。たとえば理解しようとしてる人間への寛容さや親切さ。パロディによる個々人の楽しみ方の紹介など。

今では他も真似してるけど禁書の解説記事を毎回載せてたのは印象的。

本来禁書みたいに「解説が必要なアニメ」は、キャラ魅力が低かったらボッコボコに叩かれてたんだろう。実際錦織監督は叩かれまくってるわけで。

AB!に対するの態度も全体を叩きつつキャラ萌えを押し出そうとしてたし、

女にコンプレックス抱いてるキモオタ男読者が多いのを意識してか君に届けとか放浪少年を取り上げないところとか心遣いがわりと細かい

かなり明確な思想の持ち主であると思う。



一方やらおん空間においては今まで好き勝手に作品を叩いてそれなりにいい気分に浸っていられた批評家アンチの扱いは悲惨ものだ。

やらおん空間においては彼らは「バッシングを受ける対象」としてしか存在を許されていない。

お前らの存在いらねーんだよ、と。もう口閉じて眼と鼻と皮膚呼吸もやめて死ねくらいに思ってそうだ。

せめて口を開くなら、ヤマカンハルヒ中の人のようにアニメの話題の肥やしになれ、うんこ野郎。

あずまんみたいに言うだけじゃなく自分で作ってみろ。そして作った物に責任をとれ、敬意を払えと。

実際の事情はどうか知らないが、制作者の立場に立ちながら無責任アンチな言動とったと受け取られたあずまんはまさにワーストオブワースト

やらおん空間ではリサリサ先生まなざしを向けるのがふさわしいレベルなんだろう。



そういうやつらを見せしめにして、名状しがたい祭りを楽しむのがやらおん

割とたんたんとアニメの話題だけを載せ続ける萌えオタニュース速報

どっちが正しいとは言えないけど、人気があるのは圧倒的にやらおんだなぁ、と思う今日この頃

個人的には、やらおん価値観の再配列ははわりと一時大戦後のドイツ全体主義を彷彿とさせるものがあってあまり好きではないのだが人気には納得する。

よく「やらおん比肩するサイトがない」っていうのが話題になるけど、扇動力が全然違うのは確かだよ。ほんとうに良く出来てる。

最終的に、能力も知識もない人らが権力を握ったアニメ業界が、知識層を追いだしてどういうアニメファン層をつくるかと思うとげんなりするが、それが世界の選択というのならしょうがないわね。理想としては、既存評論家どもはきっちり潰れて、個人サイトとか若い人らが評価され直すといいんだけどなー。




で、そもそもなんでこんなに批評家知識人(笑)に対して風当たりが強くなってるんだろうか。

それは、多分みんな「このままだとアニメそのものがなくなっちゃう」ってぼんやりと危機感を覚えてるんじゃないだろうか。

あるいは、少なくとも批評家をトップに置く序列に対する現状に対する猛烈な反発があるんじゃないだか。

いつまでもアニメはなくならないだろうという前提にたって、

上から目線批評を加えたり製作者の状況無視して割りに合わない要求ばかりしたり、

アニメはいろんな要素があることを忘れてテーマとかストーリー語ってるやつらばっかりだと、

じゃあお前らは文学(笑)でも読んでろって製作者がブチギレて、

ほんまに純粋ビジネスとして萌え豚向けアニメしかつくられなくなるんじゃねーかと。

批評家多種多様ならいいんだ。

いろんな批評家がいろんな側面からアニメを評価して、

それぞれに人の集まりができて、市場ができてってなっていけば。

でも、どいつもこいつも批評家の口にするのって同じことなんだよね。内輪感半端ない。

あずまんとか宇野とかそういうもともとコミュニケーション苦手そうなやつらがメインとなって

自分たちの居心地の良い空間をつくろうとしてるから異物があまり育たなかったんだろう。

楽しみ方が恐ろしく窮屈で偏屈。喋ってる本人らはデブばっかのくせにどうしてこうなるんだろう。

あの界隈、多分2~3人いたらあと全部キャラかぶってるからいらない。

そういう批評家もの多様性の無さのため、批評家が褒める作品って限られてくる。

そうすると、こいつらを中心とした序列だと、本当に一部の作品しか残らない。

それは、ものすごくアニメというものをつまらなくさせてしまう、と、そんな展開。

これも本当のところはどうかしらない。ただ、明らかに彼らが戦犯扱いなのは間違いない。

まり気持よくないのだが、ドイツブルジョワ階級と違って批評家が役立たずだという点には同意してるのでまぁ別にいかな(爆




参考記事

http://togetter.com/li/137650

はちま機構のことはしらんけど、こういうのと比べるとやらおん比較的全うだと思う。

http://wiredvision.jp/news/201105/2011051821.html

批評界は個々人が独立してやるべきだと思う。みんなで仲良しになった時点で多分彼らもう枯れてた。

2011-05-19

http://anond.hatelabo.jp/20110519135629

コーディングに詰まっている人を見かけるたびに「どうしてそこで単純な配列に突っ込んで単純にループで回すだけ、という単純なアルゴリズムが思いつかないんだろう」と思う事がある。

これ、新人によく言われる、よく言われるわー。

後々を考えた設計に頭悩ましてるのに、「リストの分配列作っちゃえばいいじゃないっすか」とか。

http://anond.hatelabo.jp/20110519121318

ただ、たぶん「分かる人」と「分からない人」てのはあるんだと思う。

惣菜のパックの透明なフタを製造したりナニしたりっていうバイトをしてたんだけど、

あのプラ板って、ウラとオモテがあるのよ。

先輩に言われても、最初はさっぱり分からなかった。どう違うのかと。

しかしある日突然、ウラとオモテの違いがはっきりと分かるようになってしまった。

本当に突然の出来事。光沢が違うのが分かった。完全に分かった。

多分それまでずっと脳の中ではパターンマッチ学習が行われてきたんだと思う。「子猫が単純な図形を識別するのに必要な学習」と大体同じような理屈による学習。そしてある瞬間、ついにその学習の成果が、どっか「俺の意識」に関連する神経と繋がったんだと思う。

今では「分からなかったあの頃の自分」が分からない。ウラとオモテがどう同じように見えていたのか、さっぱり思い出せない。

そういう劇的な体験の他に、今、俺はプログラマやってるんだけど、コーディングに詰まっている人を見かけるたびに「どうしてそこで単純な配列に突っ込んで単純にループで回すだけ、という単純なアルゴリズムが思いつかないんだろう」と思う事がある。俺も偉そうな事は言えないけど、これも経験によって「分かる」「分からない」が如実に現れてるんだと思う。

そういうのが、あるんだと思うよ。

惣菜プラ板の話はフィクションがまぎれていますw 本当は別業種の別材質のウラモテ新人さんの全員が、まずこれのウラとオモテが見分けられない。

2011-05-18

ライフハックこそストーリーが必要だと思う

http://kosstyle.blog16.fc2.com/blog-entry-1440.html

を読んだときに頭の中で即変換された。

<【就活生必読】「目のつけどころが良い!」と言われるアピールを書くための6つの方法>


で早速やってみようと思ったんだが、これが難しいを通り越して無理っぽい。

出来ないことはないが、面白いものを作れそうにない。なぜか。

1. 凡庸さは恥と心得る

2. タイトルは意外なものを組み合わせる

3. タイトルに「具体的なもの」と「抽象的なもの」を組み合わせる

4. 同質のものの間の差異を見つける

5. 異質のものから共通点を見つける

6. 「引用」で「お得感」を出す



その理由を考えているうちに、巷のライフハックへの不満がふつふつと湧いていた。

おそらくこれ改変ネタとしてあんまり美味しくないのは、1~6がストーリーとしてつながってないからだ。

これがオムライス女子みたいにすぐに改変ネタにならないのは多分そういう事なんだと思う。

オムライス女子はは、とりあえず記事を読んだ人間が、自分にその図式を当てはめれば当てはめて

一貫した振る舞い(オムライス女子場合はバカ)を演じることができる素材だった。

このライフハックも同様だ。出来ない。場合によっては矛盾があって、こまる。




で、世の中のライフハックってこんなんばっかだよな、と。つながりのないやつが箇条書きでズラズラならんでるの。

いい加減、30個とか100個とか項目があって、その中からよりどりミドリみたいなのやめようよ。

その「選択する」という作業がすでに負担になる。特に、むじゅんがあったりや整合性の取れない項目を並列に並べられると、非常にストレスを感じる。結局ひとつもやらずに終わってしまう。それって一番面白くないよね。




それが1000ページの大著であれ、1ページにおさまる6個の項目であれ、それを読むことで自分が実践してどう変化するかというストーリーを作れないなら自分にとっての敷居の高さは全く同じだ。分量が問題なのではなく取捨選択しなければいけないというところが問題なのです

自分を当てはめてそのネタを消費できるようにするためには、巷のライフハックはまハードルが高すぎる。

効率厨のみなさんには無加工で味も素っ気もない情報としてライフハック毎日私らのもとに届けているLifehacker.jpなんかの方がいいのかもしれない。でも、私にはあれ食べられない。勝間本とか生食用のユッケのような味わいで腹壊しそう。「楽をしなけりゃ成果が出ない」みたいな2ページに1ライフハックが100個入ってるみたいな本ってのは全然味がわからない。もっとちゃんと料理されたものが食いたいのですよ。うんちく聞きながら、友達と一緒に会話しながらゆっくり味合わないと勿体無いですよ。 食べられなかったり腹下したりするものがいくらお買い得価格でも意味が無い。むしろお金時間無駄なっちゃう。




そういう意味で言うと、もしドラってよく出来てたなぁと思う。

取捨選択のストレスも、配列の手間もいらない、ストーリーを持ったライフハック

本来矛盾や衝突を管理するための論理であるマネジメントをそんなチープなものにできるとだれが思うだろうか。

しかし、そのチープさ故に、素材の良さを残しつつ誰でも消費できるものが出来上がった。

非効率ではあるが丁寧な仕事だと思う。割高で量も少ない、原価計算とかし出したらクソのように思える物。

でも、回転寿司じゃないんだから、メニューズラズラ並べられるよりレストランオススメのコース料理だしてくれる方がいいのですよ。自分料理が出来ない私が、わざわざ他人が作ったものを食うなら、ああ言うのが一番あってる。多分。



ライフハックブログの人やライフハックの著者がそれを書けとは言わない。ただあれ書いた人たちは、著作権とか全部放棄して、紹介したネタいかようにも改変・ストーリー化してよいということを明言して欲しいところ。

2011-03-22

東日本沖で起きた巨大地震について」について

この日記で論じているのは、下記のページの文章についてです

東日本沖で起きた巨大地震について http://sk01.ed.shizuoka.ac.jp/koyama/public_html/etc/EastJM9.html

地震学者の性質

地震が発生したとき地震学者は《大変なことが起きてしまいました。》と勿論思うけど、その一方で「地震キター!これで論文5〜6本書けるから、私の学会での地位も安泰だ」とも思ってしまう者です


東日本沖で起きた巨大地震について」書かれた小山先生も《大変なことが起きてしまいました。》と思う一方で、「チキショー!これが富士山大爆発だったら俺のテリトリーだったのにい」とほんの少し、本当にほんの少しだけど、思ってしまったでしょう。


小山先生の著作

Amazonで「小山真人」と入力して検索すると解りますが、小山先生は以下の本を書いたり監修されたりしてます

先生の次の本は「《東日本全体の地殻歪が再配列不安定化》している。それに伴って富士山の活動も活発化してるため、いつ噴火してもおかしくないのだ」という内容になります


その本の狙いの一つは「富士山噴火が近いので、観測・研究のために予算を投じるべきだ。ついては私、小山真人研究予算をつけなさい」というものです予算の確保も研究者重要仕事の一つであり、また、自己主張が強くなくては学者としてやっていけないので、このことは恥じることでも何でもありません。


火山」と「地震」の違い

さて今度は Google で「小山真人」を検索して、

を見てみましょう。


画面を下の方にスクロールしていって論文タイトルを眺めると、小山先生の専門は「火山であることが解ります先生の専門である火山」と、先生が「東日本沖で起きた巨大地震について」で論じられた「地震」の間には以下の大きな違いがあります

科学的な観測が可能になってからは噴火の記録がない富士山は「いくつかの火山」には含まれません。2000年に噴火した際に素早い避難で被害を抑えた有珠山などが噴火予知しやすい火山になります


地震予知が不可能なのは地震学者が怠慢なためではありません。日本全国をカバーする満足な観測網がなく、地震発生時のデータが取れないためです。それでも「ある地域での大地震は周期的に発生する」という仮説のもとに粗い精度で「200年〜300年周期で大地震が発生する」と言っているのです


このロングスパンの周期を突き止めるために、小山先生のもう一つの専門である歴史地震」が用いられています。古文書に記された地震に関する文書を調べ「吉原では灯籠が倒れたという記述があるから震度は6ぐらいだな」と見当をつける研究です。ひたすら古文書にあたり、いつの地震のものかはっきりしない記述年代の見当をつけ、震度の見当をつけ、震源地を探っていくという考古学に近いものが「歴史地震です


小山先生の予知で解らない点

地震予知現在レベルは「地震は、いつか、どこかで、必ず起こる」というものです。にもかかわらず《歪の再配列にともなう地震火山噴火が、今後数年かけて東日本全体で起きていくことになるでしょう。》と断言できる理由が解りません。


今回うごいた太平洋プレートに沿った部分に歪みが生じているというのなら解ります。《実際にインドネシアでは》と小山先生が挙げている事例は、同じプレート境界で地震が続くことを示しています。なのでこの文章の主旨が「太平洋プレートの境界で、今回うごいていない、十勝沖・根室沖、伊豆諸島沖で大規模地震が続く可能性がある」なら理解できます


もし歪みが異なるプレートもしくは内陸の活断層に生じると言いたいのであれば、同じプレート境界での地震を挙げるのではなく、内陸部で大地震が発生している事実、もしくは隣接する異なるプレートの境界で大地震が発生している事実を挙げなくてはなりません。


それでも地震火山噴火が東日本全体で起きるという理由は何なのでしょう。現在地震学で、そのような知見が得られるのでしょうか。


もし《歪みの再配列のために地震火山活動が起こる》と言いきれるだけの知見があるなら、どこに歪みが生じていて、それがいつ頃解放されるのか言えるのではないでしょうか。「どこで解消されるか解らないけど、とにかく東日本のどこか」というのは、一体なんの根拠があって断定できるのでしょう。


から安心して良いという話ではありません

小山先生が挙げられたプレート図を見れば解りますが、日本はいくつかのプレートがぶつかる地点に位置しており、大地震が起こりやすい国です


しかしこれは、昨日今日そうなった訳ではなく、ましてや東北地方太平洋沖地震が発生してそうなった訳ではなく、日本列島が形成された頃からずっとそうなのです東海大地震については、何十年も前から「いつ起きてもおかしくない」と言われ、東南海南海地震についても警戒が続いています。


なので東北地方太平洋沖地震によって《地学的に平和で安定した時代は終わりを告げた》わけではなく、日本に住む以上は「地震は、いつか、どこかで、必ず起こる」状態にあります


地震に対して備えるのであれば、地震のない日が何年も続いても、日々備えを怠らないことが重要となるでしょう。大地震が起きたからと言って慌ててパン・カップラーメントイレットペーパーを買い占めるのとは、異なる態度が重要です


小山先生テーマに「防災」もあります事実淡々と述べて行く中で防災意識が高まらず、歯がゆい思いをされたこともあるのではないでしょうか。そうした思いが、今回のようなある種「煽っている」文章を書かせているのではといます。


結論

要するに何が言いたかたかと言うと

ということです

2011-03-20

より良いPHPerにならないための20Tips

http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/

良いPHPerだって?そんなものは丸めゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。

つまり俺たちがしなくちゃならないことは「より良いPHPerにならないため」に何ができるかってことなのさ。

それじゃ、始めよう。

1. ?>を使うな

?>なんて使っちゃいけない。そう俺たちはBAD PHPer。

無駄ホワイトスペースの出力に悩まされるくらいなら対称性なんて丸めゴミ箱にでも捨てた方がまだマシだ。非対称性こそが賛美。

2. 設定ファイルPHPで書くな

require_once("config.php");

未だにこんなことやってるやつがいるのかいベイベー。絶対にダメだ。この一行を見たら俺は悶絶する。

ダメだ、早く何とかしないと。

大抵このconfig.phpの中身はこうなっている。見て絶望だ。

$hoge_path = '';
if (!LOCAL) {
    define('FOO_FLAG', 1);
    if (HONBAN) {
        define('HOGE_FLAG', 1);
    }
    else if (TEST) {
        define('HOGE_FLAG', 2);
    }
}
else {
    $hoge_path = '/local';
    define('FOO_FLAG', 2);
    define('HOGE_FLAG', 3);
}

define('HOGE_URL', $hoge_path.'/hoge/');

こういうのが延々と続くわけだ。もういやだ。もう見たくない。

本番環境テスト環境でどういう値の違いがあるのか、ローカル環境だとどうなるのか、まったく把握できる気がしない。

なまじPHPな設定ファイルのせいで処理をついつい書いてしまう。そしてどんどん複雑になってしまう。

やはり設定データは基本的にYAML等のデータしか定義できない形式のもので用意すべきだ。そして環境ごとに設定ファイルを分けるべきである

そうすることで何にどういう違いがあるのかすぐにわかるし、diffすれば一度にすべて把握することができる。

# 本番環境設定ファイル
foo_flag: 1
hoge_flag: 1
hoge_url: '/hoge/'
# テスト環境設定ファイル
foo_flag: 1
hoge_flag: 2
hoge_url: '/hoge/'
# ローカル環境設定ファイル
foo_flag: 2
hoge_flag: 3
hoge_url: '/local/hoge/'

3. コメントを信用するな

そう、あなたはこんな状況に遭遇したことがあるんじゃ?

// ここで後の処理のためにhogeメソッドを呼び出しておく
$q->foo();

// $a['foo']はここに来る時点で真のはず
// 2010-03-10 判定がおかしいので修正
// 2010-06-21 やっぱり値が入ってる方が正しい
if ( !isset($hoge[0]) ) {
}

コメント保守されない。そう、それは真実。こんなコメント発見したら即効削除しよう。コメントは基本信じるな。

俺たちにちょっとしたヒントと大きな損害を与えてくれる、それがコメントの役割なのだ。

4. タブとうまく付き合うしかない

わかる。いいたいはとてもわかる。俺たちはしばしばインデントにスペースを使うはずだ。一方でIDEのしっかりした言語ではタブも使うことがある。しかし悪いことに、両者を混同しているプログラマも一定数いるのだ。

タブを画面上で認識しにくいエディタが世の中には存在する(何とは言わないが)

そして画面上で認識しにくいことを理由にタブを気にしないプログラマがいる。

この二つの条件が重なると、タブとスペースの交じり合ったインデントが完成する。もうぐちゃぐちゃだ。これは永遠に続く戦いだ。

私たちが勝利を掴むためにできることなどせいぜい、常にスペースしか使わない。タブを見つけたらその都度スペースに変換する。そういった地道な活動が明日へとつながるのだ。

5. 変数名に時間をかけるな

われわれがプログラムをするとき、何に一番時間がかかってるか。実は変数の命名なのである。ここで拘り過ぎて時間をかけ過ぎては何も進まない。

御託はイイからさっさと書け、だ。しかしとはいっても変数名は重要。日頃からどういうときにどんな名前を使うかを決めておくといい。

そして変数名に型はまったく必要ない。型宣言のないPHPにおいて、型の変数名をつけること自体ナンセンスだ。

コンパイラ様に保証されてない状態での

$iNumber = 'aaa';

になんの意味もない。コメントを信じるなでも言ったが、これはプログラマを混乱させるだけの害悪なものだ。

6. 変数初期化場所

変数を使う前に初期化するのは、警告を出さないという意味でも良い癖だ。しかし具体的にどこでやるかが問題だ。

$foo = null;
$foo = $q->foo();

こんな初期化意味はない。よくあるのはやはり、if文で値を振り分けるケースだろう

$foo = null;
if ( $hoge ) {
    $foo = 1;
}
else if ( $bar ) {
    $foo = 2;
}

このとき初期化はとても有効だ。もしnullの初期化を忘れたまま$fooを使うと警告が出るが、ちゃんと初期化してるので出ない。基本中の基本だ。

7. 不正なら常に死ね

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    return $bReturn;
}

(中略)

もし、何かしらの理由で、あなたの書いたif文が間違っていたら?

この書き方をしていれば、間違った値に対して、常にfalseが返る。

私たちが、PHPでsensitiveなデータを取り扱うなら、正しいデータ入力されるまでは、動かないコードを書くべきだ。

trueとfalseの条件がいまいち明確ではないが、本当に動かないコードを書けというのであれば以下のようにすべきだ

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    else if ($i == 1) $bReturn = false;
    else throw new Exception("bad status! $i");
    return $bReturn;
}

中途半端にfalseを返して生存させる必要性はまったくない。今すぐ死ね

8. 連想配列キーアクセスする場合

単なる配列に対して数値をクオートで囲う必要はない。

連想配列キーを指定する場合だけ定数と間違わないようにクオートで囲まなければならない。そして逆に定数を使いたい場合はクオートで囲ってはいけない。

更に後世のプログラマ処理を見たときに、定数が使いたかったのか、文字列が使いたかったのかを明確にした場合はconstantを使うと良い。

// 定数のFOOを使うよということが明確になる
print $a[constant('FOO')];

9. echoよりもprintfを使え

もし、文字列変数の値と一緒に出力するときPHPではコンマの代わりにprintfを使うことが使える。

なぜ?コンマを使うよりも可読性がグッとあがるから

printf( “Hello, my name is %s“, $sName);

以下の代わりに上記のコードを使う。

echoHello, my name is “, $sName;

出力すべき変数が増えれば増えるほど、有効になっていく。とにかく迷ったならば、printfを使え、だ。

10. 三項演算子は一回まで

三項演算子はとても有効だ。しか優先順位に難があるせいで三項演算子ネストしようとすると以下のようなコードになってしま

$n = (($i == 1) ? 2 : (($i == 2) ? 3 :$i));

括弧だらけで読みにくいったらありゃしない。三項演算子を使うなら一回まで。約束守れないやつは丸めゴミ箱にでも捨てちまえ。

11. 真偽値のチェックは生でいけ

if ( $flag ) {
}

仕様をちゃんと把握しているなら真偽値のチェックなどこれで十分。

もし事前にbool型だというのが確定してるのなら「$flag === true」を使えばいい。

12. ++と--の演算子を見極めろ

インクリメント、デクリメント演算子は前に付くか後ろに付くかで意味が変わるので慣れるまでは非常にややこしい

けがからなくなるくらいなら初めから使わないほうが良い。見極められないなら使うな。それがPHPerなのだ。

13. 代入演算子を使え

文句なしだ。これは文句がない。

他にも色々あるので覚えておこう

$a %=  1;
$a &=  1;
$a |=  1;
$a ^=  1;
$a <<= 1;
$a >>= 1;

14. 変数dump関数はより便利に

てっとり早く画面に表示する際にpreはよく使うが、デザインの関係上画面の文字が見えないときがある。

なのでdivを使って以下のようにしとくと便利だろう。

function p($var) {
    echo "<div align='left' style='background-color:white;color:black;'><pre>";
    print_r($var);
    echo "</pre></div>";
}

15. 定数から手を洗え

君らが通常作るアプリケーションなんぞに、定数なんぞ必要ない。いいか、もう一度言う、お前ら程度のもんが、定数使おう何ぞ、おこがましいわ!

大丈夫。なんでもかんでも定数にする必要はない。結局設定ファイルに定数をずらずら作りまくってわけがからなくなってるパターンが多い。

貴様たいなもんに、定数は制御できん。いいか設定ファイルYAML等のデータで持つようにし、その連想配列データ構造を一つ持ってるだけで定数の変わりになる。

このメリットに比べれば、定数だと書き換えられなくて良いという利点などこの歯のカスほどのものだ。そんなものは丸めゴミ箱へ捨ててしまうといい。

認識を改めろ。俺たちはより良いPHPerにならないために努力している。

16. $_GETと$_POSTを生で使うな

できれば何かしら簡単なクラスでもいいのでラップしろ。

class Request {
    private $parameters;
    private $method;
    function __construct () {
        $this->method = $_SERVER['REQUEST_METHOD'];
        if ( strtoupper($this->method) === 'POST' ) {
            $this->parameters = $_POST;
        }
        else {
            $this->parameters = $_GET;
        }
    }
    function param ($key) {
        return isset($this->parameters[$key]) ? $this->parameters[$key] : null;
    }
}

これだけでもいい。たったこれだけでもとても便利だ。ここから拡張してGETやPOSTを明示的に取るメソッドとかも作ってみるといい。自分の手を動かすのだ!

17. 関数だのオブジェクトだのの問題ではな

例が良くない。こんなのは引数20個ある関数からset20回呼ぶオブジェクトに変わっただけではないか

そもそもこの20個の引数はなんなのか。何かのデータ構造なんであれば連想配列にして引数一つとして渡すべきだし、それぞれまったく異なる用途の変数なのであればWindowsプログラミングじゃあるまいし20個も引数取る時点設計が間違えている。

何がいいたいか。別に関数でもオブジェクトでもどっちでもいいということだ。

そんなことで悩んでる暇があったら設計を見直せ。

18. メソッドチェインを愛用せよ

スキあらば自分自身を返せ。スキあらばオブジェクトを返せ。配列はArrayObjectのARRAY_AS_PROPSで返せ。

ひたすらメソッドチェイン。来る日も来る日もメソッドチェイン。とにかくメソッドチェインを使い続けろ。そこに未来はある。

19. コードの汎用化は慎重に

どんなコードも繰り返すな。もし、少しでも同じコードを書いていたなら、それは関数に置き換えてしまえ。

・・・と、いうのはやめなさい。

一見同じように見えた処理でも前後の流れでまったく違うものということが往々にしてある。

まとめ方にも問題があるケースもある。何でもかんでも関数化すると、関数が膨大に増えていく。君は見たことがあるだろうか。common.phpやfunction.phpの恐ろしさを。

かに細かく関数化はされているが、適切に関数化していないのである。結合度が非常に高い。なんでもかんでも盲目的にまとめれば良いという話ではないのだ!

20. 結合度は適切に減らし、適切に結合せよ

あまりに極度に意識しすぎると、プログラムそのものができなくなる。そういう状態に陥る。

気を抜いて。そう気を抜いて。所詮あなたコードなんてすぐに消えてなくなるよ。きっともっと偉い人が作り直すよ。だからまずは思うが侭にやるといい。

結合度を減らすというのは非常に難しい何度何度も失敗し続けて、ようやくここは分けた方が良かったんだなと気付く。次に活かそうと心に決める。そしてまた同じ過ちを繰り返していくわけだ。

まずは実装することだ。これが一番の早道だ。まずはがっつり結合した関数をあえて作るといい。何も考えずに作ろう。

そしてその後に、一部分使いましたいとおもうことがあるはずだ。その時に関数に切り出そう。それを繰り返すといい。そのうち初めから分けた方が良いと気付く。

何事も経験が必要である経験を積まないプログラマ丸めゴミ箱に捨ててしまえ。

さて、先の例で言うならば、私ならadd_result_outputという関数を作ってしまうだろう。だってaddとresultを連続して呼ぶのはめんどくさいんだもん。一連の流れをいつも使うのなら、その流れをやってくれる関数を作ればいいじゃないか

function add_result_output ($iVar, $iVar2) {
    $r = add($iVar, $iVar2);
    echo result($r);
}

もっと言えばクラス化してしまってもいいかもしれない。どんな感じになるかは君の手を動かして確認しよう!


最後

このTipsはとてもわかりにくく、ニッチ過ぎる部分も多いかもしれない。

しかしもう一度タイトルを確認してほしい

あくまでも「より良いPHPerにならないための20Tips」なのだ。

君はこの記事を鵜呑みにしてはならない。PHPPHPと見抜けないPHPerはPHPを使うのは難しい


おまけ

もし、あなたPHPプログラマなら、公式のPHPドキュメントあなたのケツの穴を拭くための紙になるだろう。

私は、それぞれのセクションを眺めて、各関数でどんなことが出来るかなんぞ、歯クソのゴミ程に役に立たないとおもっている。動けばいい。はは。

あなたは、PHPで用意された既製関数で多くのことが実現できることに、(俺の仕事を減らすなと)驚くはずだ。

この記事があなたの役に立たない事を。

どんなコメントでも待ってます

ふざけんな!


個人的な感想

この記事に書かれている内容は、丸めゴミ箱に捨てた方が良いレベルです

もしここまで読んでしまったら、丸めゴミ箱に捨てましょう。



プログラ増田のあなぐら

2011-01-23

ご指摘ありがとうございますRubyで解いてみた者

プログラミング初心者Rubyで解いてみたの者です

親切なトラックバック、指摘に感謝します。プログラム改良を思いついたのですが書き方がわからないので忘れないように書いておきます

上のプログラムでは素数か判定する数を既知の素数を格納した配列にある全ての素数で割ることで素数か判定していました

初心者としてはなかなかいアイディアと思っていたのですが、大幅に比較回数を減らせる方法があることに気がつきました

割る数と商は入れ替え可能なので、素数の2乗でできていて割られる数より大きくて最も小さい数の平方根素数までを

割る数として使えば事足りると気がついたのです。つまり113は11まで割って割れなければ素数として確定するという事です

私のプログラムだと、13から109までの素数ので割るという比較をしなくて良くなります

プログラムに落とし込むには配列内の全てに実行するsosuu_hairetu.each do |waru|を指定回数実行するという形に直す必要があります

array = [1,2,3,4,5,6,7,8,9]
n = 0
5.times do
   puts array[n]
   n = n + 1
end

の変形で作れそうですが、もっといいメソッドがあるような気もしますのでもっと勉強してから書こう思います。

プログラミング初心者Rubyで解いてみた

初心者自分にはひねったコードは書けないので期待しないでね。

普通に解くと面白そうな問題だったので書いてみました

なれている人のコードショートハンドとかバリバリ使っててあまり読めないorz

#小さい順に数え上げて、既知の素数で割りきれないもを素数として表示。
#既知の素数配列に格納する。
puts '0からどこまでの範囲の素数を探しますか?終端の数を入力してください。'
last_num = gets.chomp.to_i

if last_num &lt; 1
  puts '素数はありません'
elsif last_num &lt; 2
  puts '素数は1だけです。'
else
  puts 1
  puts 2
  sosuu_hairetu = [2]#既知の素数を格納する配列
  ichi = 0#素数の入っている配列を参照する時に使う
  count = 3#これが素数である比較する対象
  while count &lt;= last_num
    sosuu_hairetu.each do |waru|#それまでに分かっている素数比較する
      if count%waru == 0#割りきれたら他のに移る
        count = count+1
        retry
      end
    end
    puts count
    sosuu_hairetu[(ichi = ichi + 1)] = count
    count = count+1
  end
  puts last_num.to_s + 'までに素数は' + ( sosuu_hairetu.length + 1 ).to_s + '個ありました。'

それからしごとホスイ。

2011-01-15

12時間ほどでTwitter連携webサービスを作った記録

2010年年末から年始にかけて10連休ほどあったので、新しいサイトを作ろうと思い立った。


自分スペック

何を作るか

小遣いを稼げるサイトしたい、とまず思った。

月に1万円だと、毎日コーヒーを飲んでるだけでなくなってしまうので、コーヒー代くらい稼げたらうれしいなあ。じゃあどうする。何を作る?

ということで、まずTwitterを使ったものを作ることにした


テーマ

ひとつジャンルにしぼってツイートをかき集めれば、面白い流れになるんじゃないか。人が来るんじゃないか。そう思った。togetterたいな。で、ジャンルは、個人的に興味がある子育て。ていうか毎日帰宅してから朝まで子どもの寝かしつけや夜泣き対応サイト更新する暇も、俺が寝る暇もあんまりない。ので、手がかからないことが大前提。なんだったら自動更新でもいい。

自動更新かー。と思って「ブログ 自動更新」でググったら、wordpressRSSから更新するプラグインがあるらしいことを知った。はい決定。その瞬間、「TwitterAPIからRSSを引っ張ってwordpress投稿するサイト」に決まった。


やってみた

12時間は実装を初めてから時間になります


1時間

さくらインターネットスタンダードを申し込んだ。14日お試しがあるらしいけど、仮申し込みの時点で住所も入れてコンビニ請求にしたら、数日後に請求書が送られてきてビビった。(同時にドメインも申請しちゃった)

まあ、webで申し込んで、すぐにサーバコントロールパネルという画面に入れるようになった。「クイックインストール」というリンクがあったので見てみたらMovableTypeWordPress自動インストールしてくれるらしかったので、ボタンを押したインストールできましたというので発行されたURLクリックしたけど404だった。1時間くらい404で、その日はもう寝た。


2時間

次の日の夜。これはもう、10連休を利用して毎晩1時間ずつ捻出するしかない、さくらのお試し14日あるから約14時間で作りきるしかねえ、と思った。

サイトアクセスしたwordpressが入ったページが出てきた。おお、サイトができてる!

まずTwitterを調べるか、と思って、「Twitter API」で検索したけどOauth?とかいう面倒なことをしないといけないらしかったのでやめた。じゃあ普通に検索は?と思って「Twitter 検索」で検索したら、search.twitter.comの結果はjsonatomで取得できるし、APIコール制限もないらしいのでこれに決定。検索だけで1時間たった。


3時間

夜も更けて、続けて作業した。「wordpress xml 投稿」で検索していくつか探したらFeedWordpressというプラグインがあったので入れた。あ、事前知識としてMovableTypeでのブログはやったことがあったので、プラグインを入れるみたいな話はスムーズに進められた。

で、twitter検索結果をatomで返した結果を入れてみた。ら、本当に投稿されてた。よっしゃできた、と思った。1ツイートが1エントリになってたし、投稿者もツイートした人になってた。よかった。でも、満足できなかった。


4時間

次の日。同じことを自力でやる方法を探した。「wordpress xml 投稿」で検索して、XMLパースできるようになればいいんじゃないかと思い、simplepieというPHPライブラリにたどり着いた。が、PHPなんてまったく知らないし、憶える気もなかった。actionscriptで書かせてよ、とずっと思ってた。


5時間め・6時間

次の日。「wordpress xml 投稿」でまた検索。どうやらwordpress投稿って、xmlrpcというやり方を使ってるらしかった。ので、「wordpress xmlrpc 自動投稿」で検索したら、なんかサンプルコードが載ってたのでそのまんまコピペ(結局PHPだった)。したらちゃんと投稿されていた。ふむ。ここで何を思いついたのか、「wordpress xml パース」と昨日みたいなことを検索した。simpleXML?というライブラリがあるらしかったので、それを試してみることにした。(たぶんPHPが動いたので気をよくしてたんだと思う)

こういう流れでいけると思った。考え方はactionscriptエディタに書いて、ノリであてにいった。変数に宣言するのはできた。$var1とかで宣言したことになるらしいURLRequestに相当するコードを探したら「file_get_contents」らしいことが分かった。(「PHP 外部ファイル」で検索

で、ゲットしたのはXMLなんだけど、上記検索したかにたまたま書いてあった「simplexml_load_string」というのを使うとXMLパースできそうな気がしたので、ノリで書いたactionscriptでは

var req:String = "http://search.twitter.com/?q.atom=mogemoge";

var r:URLRequest = new URLRequest(req);

var kekka:XML = r.send() as XML; ←いまここ

なので、XMLキャストしたんだろうなみたいな感じだった。E4Xを使えればいいのにPHPって馬鹿ねと思いながら寝た。


7時間

年があけて、3が日が終わりそうだった。年末にやってたこと(上記までのこと)を思い出しながら、XMLの必要な部分だけ抜き出す方法を模索したatomっていってもentryがたくさん入ってたか配列にするんだろうけど、ってんで「php foreach」を検索。なんとなくサンプルコードをまねしながら、記事タイトル、記事本文だけ取得した。あとはxmlrpcのサンプルにあわせて投稿するようにした。できた。寝た。


8時間

次の日の朝、ブログを見た。昨日更新したのしかあがってない。自動じゃねーじゃん。

で、「自動 投稿」で検索したら、クローン(cron)という仕組みを使わないといけないのだった。クローンサーバの仕組みらしく、そういえば俺はPHPをはじめDBサーバという単語を極力さけて仕事してきたので、もう気持ちが悪くなってきた。「さくらインターネット cron php」で検索して、なんとかやり方を見つけて、cronを登録した。(1時間に1回にした。設定は * * * 0)


9時間

仕事から帰ってきて、サイトを見ると、投稿が大量にたまっていた。やった!で、調子に乗ってツイッターアカウントを作った。なんだったらツイッター自動したかったので「twitter bot」で検索した。Easybotterというサンプルボットがあったので使わせてもらった。自動で一行ずつつぶやくようにした


時間外)

サイトテーマを考えてた。通勤電車で悶々とする時間

ツイートを集めることは成功したけど(毎時間100件のツイートを1エントリとして投稿してる)、それを眺めて面白いんだろうか? ボットを動かしてるけど人がくるんだろうか?

そんなとき「trivist」がはてブに載ってた。なんかにたものを感じた。やっぱツイートを引っ張ってきて投稿するサイトはアリなのか?アリなはずだ!


10時間

サイトの体裁を整えた


11時間

trivistをまねて、記事を評価(はてなスターかいいねボタンかにいもの)する仕組みが欲しくなった。「wordpress 評価 プラグイン」で「wp-postratings」というプラグイン発見して、入れてみた。どうやら1エントリーに1評価しかできないらしい。俺のサイトは1エントリーに100ツイートあるから、どのツイートを評価するのかが分からない。

いったん、wordpressの全投稿を削除した。で、cron に登録されてるPHPを、1記事に1エントリーした


12時間

エントリー投稿するついでに、Yahoo日本語解析APIをつかってツイートを分析して、名詞動詞だけを取り出そうと思った。それをタグにすれば、タグクラウドが作れると思った。はてブはずっとずっと昔からやってるからYahoo日本語解析っていうのが2006年くらいに流行ったことをなぜか憶えてたので、やってみた。できた。

なんか俺、PHP書くのが早くなってね?


そして微調整をしながら今に至る

アクセス解析を入れてみた。サイトに来てる人は、俺だけだった。

どうにかして人を増やしたい。サイト広告募集はする気がないしベタベタバナーを貼りたくなかった。みんなが気軽に見に来て、軽い気持ちで評価してくれて、更新を楽しみにしてくれるサイトしたかった。コミュニティサイトじゃないけど、やっぱりサイトコミュニケーション設計をしないと意味がないんじゃないか、見てくれるユーザはどうやったら楽しいんだろう、ということを考え続けて10日ほど経った。Twitter経由で来てくれた人が3人ほどいるようだけど、何がダメなのか分からないので増田にお願い。


ここまで書いて教えてくんじゃねーか、と思われるかもしれないが、ググレカス的な検索は上記で書いたみたいにいろいろやってきた。でも、サイトを作ってみてはじめて、ユーザに向けたサイトってどう作ればいいのかが分からないということに気づいた。

小遣い稼ぎもしたいんだけど、面白いサイトを作るヒントがほしいと思った。

kanzen21やtrivistみたいに、俺も過程を全部さらしたから辛辣意見を求む。そしてはてブされるのを待ってます

http://kosodate-now.com/

2010-11-25

レッテルを貼るということ

『差異の原理は距離である

 という命題があります


 つまり、あらゆる差異は、空間的な位置の差や、時間の流れによって生み出されるということです


 例えば、ある人間社会的に信頼されているとして

 何故、そうでない人間に比べて、彼は信頼されているのでしょうか?

 何故、そこにおいて彼のような人間と、彼とは異なる人間との間に差異が生じるのでしょうか?


 その原理は、すなわち距離です


 生まれた場所が、北朝鮮よりもほんの数百キロずれていたか

 生まれた時代が、ほんの数百年ずれていたか

 あるいは、彼の両親の遺伝子配列が、ある特定の形をしていたから、いわゆる劣等な遺伝子配列とは、位置的に差異のある形式であったか


 彼は、社会的に信頼されていると言えます


 すなわち、差異とは非常に瑣末なものなのです


 それが右にあるか、左にあるか

 それが十秒前にあるか、十秒後にあるか


 そういった些細な差異を把握し、言語化する行為

 それこそがレッテル貼りなのです

 そして、レッテル貼りが同じように瑣末な行為であるということもまた、自明なのです

2010-11-03

Xperia X10 mini pro に Android 2.1 を入れてみる

UKファームにはまだ通知がこないので、Nordic あたりに偽装して試してみる。

■準備

12:55 まずは準備。母艦に入ってたソニエリの Update Service をアンインストールした。

13:00 Titanium Backup http://tinyurl.com/22rxwqcアプリバックアップした。

13:01 純正バックアップツールで SMS/MMSバックアップ

13:05 APN Backup Restore http://tinyurl.com/26t6pq7 で APN 設定をバックアップ

13:08 (念のため) SMS Backup+ http://tinyurl.com/24kv56ySMS/MMSgmailバックアップしておこう

13:17 SMS しかバックアップ取れてないぞ。ま、いいか。準備完了。

■いよいよアップデート

13:17 build.prop を書き換えよう。Xda developers http://forum.xda-developers.com/情報探しに行く

13:21 日本語情報あるじゃねーか。。。http://tinyurl.com/2uzugyk http://tinyurl.com/2fu9xsy

13:23 build.prop の 1238-0199 を 1238-8536 に書き換え。要 root

ro.product.name=U20i_1238-8536

ro.build.fingerprint=SEMC/U20i_1238-8536/SonyEricssonU20i/delta:1.6/1.1.A.0.8/1:user/release-keys

ro.semc.version.cust=1238-8536

13:30 ここら辺 http://tinyurl.com/ydjr8jg から Update Service をインストール

13:36 ダメだ。最新のソフトウェアインストールされています、だそうだ。

娘が起きてしまったので一旦中断

15:50 再開。Update Service をアンインストールPC 再起動、再インストール

15:59 Back ボタンを押しながら USB 接続すると、アップデートがあります、だそうだ。

16:05 アップデート完了。

root

16:24 ここら辺 http://juggly.cn/archives/12187.html を読みながら SuperOneClick で root 化。5分くらい経ったけどまだダメ

16:33 APN Backup Restore http://tinyurl.com/26t6pq7 で APN 設定を復元

一旦中断

16:50 USB Debugging 有効、Unknown Sources 許可、Screen timeout 30分にして再度挑戦。10分くらい放っておいたら root 取れてた。

■ひたすらリストア

17:00 Titanium Backup http://tinyurl.com/22rxwqcアプリ復元。一つ一つやると時間かかる。有料版買おうかな

17:15 純正バックアップツールで SMS/MMSリストア

17:26 Auto-sync 有効にして放っておいたら電話帳もリストアされた。

夕食のため中断

21:34 DroidSansJapanese.ttf (中身はメイリオ) と DroidSansFallback.ttf を /system/fonts に入れて reboot

Nordic ファームなのでキーマップが違うなぁ。

UK ファームのときの qwerty.kcm.bin を取っておけば良かったのかな。

00:45 MMSUserAgent 変えるの忘れてた。custom_settings.xml対処 http://tinyurl.com/29qex3v

■キーマップ変更

11/4 11:13 ここ http://tinyurl.com/33lw734 に添付してある keys.tar を解答して、keyboard-config 以下のファイル全部と、mimmi_keypad.kcm.bin を置き換えたらキーマップも EN 配列になった。qwerty.kcm.bin は mimmi_keypad.kcm.bin へのシンボリックリンクだったので置き換えず。←今ココ

2010-08-16

http://anond.hatelabo.jp/20100816013003

ポイントは剰余と関数ポインタで分岐してるところか。

昔、関数ポインタ配列みたいな連続テーブルになって条件分岐を使うより実行動作が速くなることを期待してコードを書いて速度測ったけど

inlineで展開されるコードジャンプ前提なifやgotoよりも何百倍も遅くて悲しくなった記憶がある。

2010-06-13

anond:20100613225835

人によって色々なんだなーと痛感させられました。

私から見るとiPadは、USBフットペダル等と同じような、プラスアルファ製品にしか見えないんです。何故って、キーボードが無いから。

携帯でさえ、普通キーボード配列が使えるスマートフォン的な製品でないと駄目で、そんな理由でHTCの端末にしろXPeriaにしろ買う気が起きないくらい。タッチパネルでいいじゃないと思うかも知れないけれども、そんなことはない。キーとキーの境目の物理的感触、押下する感覚無しにはブラインドタッチ出来ないし、キーボード代わりにはならない。携帯ブラインドタッチしようっていうのがまず例外的なのかも知れないけれども。

それくらいキーボードって大事なものだと思っていましたので、キーボードあまり使わないっていうのはかなり衝撃的でした。

2010-02-22

http://anond.hatelabo.jp/20100222121925

テトリスを第1候補に選んだのは

1.アルゴリズムが十分に簡単だから。見た目とアルゴリズムが一緒なのでネットワークから隔離されてもアルゴリズム自己発明できる。

2.最低限必要な要素が盛り込まれているから

 イベント、2次元配列タイマー、絵を出す、音を出す。

3.ほぼ誰でも知っているから。

4.自己PRで付加機能をつける余地が多いから

 アルゴリズム、絵、音、などいろいろなところで創意工夫してPRする余地がある。

 動けばいいという課題で、動くだけという物を作るならそれこそ時間競争になる。

 しかし8時間有れば最低限可が保証されるというルールなら、他をPRすることは十分に可能。

 8時間なら可といわれたからといって、それは絶対ではないという大人の社会ルールを見破れるか?

という感じかな

学術的なアルゴリズムだと、創意工夫の余地PRの余地が少なすぎる。

それこそ、学術的なアルゴリズム記憶しているかどうか?を見たいわけじゃないし。

テトリスと言ってあったけど、レビューしたら実は隠し機能でPキーを押すと、ぷよぷよルールになるなども有りなわけだし。

その辺は与えられた時間をどう使うかだな。

そのためには、アルゴリズム・絵・音 できることは多い方がいいだろ?

http://d.hatena.ne.jp/faith_and_brave/20100220/1266673222

C++0x 読んだが ダメっぽいな。

まず第一にエンタープライズでの開発が考慮されていない。エンタープライズの開発だと100人200人 マスタークラスから ジュニアーまで様々なレベル開発者が携わる。

その中で重要になってくるのは可読性。

はっきり言って、歴史的な可読性を犠牲にして効率が上がるならともかく、気持ちの問題程度の効率では意味がない。

第2に

スレッドファイバーの違いぐらいわかれ、わざわざスレッド起こしたらコンテキストスイッチにどれだけコスト食うんだよ。

関数コールするとレジスタとかが、スタックPUSHされるんだよってわからん奴が、IF書くなと同じで、スレッドってコンテキストスイッチの塊なんだよってのがわかんないのに下手にスレッド書かせるな。

3にラムダ式・・・いらん・・・必要なのは曲芸じゃない、可読性。可読性を犠牲にして早くなるならともかく・・・

4にforeachではlastを変数に取るな。途中でReallocしたり、eraseしたりしたときに余計なバグを生んで面倒だ。レビューの時も邪魔。速度?速度が必要な背景でSTLVector使うな。配列使うかポインタ使え。

なんつーか、トータルで見て、次はC++と各種OpenCLとかGLとかのライブラリの集合だな。C++0xはまともに使う人もいなさそう。正規表現とかもライブラリ使えば良いし、そもそもC系列ならBisonとかLRとかだろうと。C系列の使い手ならBNFを使え。正規表現使いたければそれこそ、Perl使え。

2010-01-29

プログラミング言語 基礎文法最速マスターのまとめ

Perl

基礎文法最速マスター元ネタ

Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜

http://d.hatena.ne.jp/perlcodesample/20091226/1264257759]

Ruby

Route 477 - Ruby基礎文法最速マスター - , 1. 基礎 , 2. 数値 , 3. 文字列 , 4. 配列 , 5. ハッシュ , 6. 制御文 , 7. サブルーチン , 8. ファイル入出力 , 知っておいた方がよい文法 , 余談 , (おまけ)Ruby書籍紹介

http://route477.net/d/?date=20100125]

PHP

PHP基礎文法最速マスター | Shin x blog

http://www.1x1.jp/blog/2010/01/php-basic-syntax.html]

Python

Python基礎文法最速マスター - D++のはまり日誌

http://d.hatena.ne.jp/dplusplus/20100126/p1]



昔勤めてた会社の人が「年にひとつぐらいは(仕事以外で)新しい言語フレームワークに触れるといいよ」みたいなことを言っていたのでこれを機に(正直好きではなかった)Perlもはじめてみようかなと。



追記 Java

Java基礎文法最速マスター - 何かしらの言語による記述を解析する日記

http://d.hatena.ne.jp/nattou_curry_2/20100130/1264821094]


LLじゃないのも出てきたので改題。このへんいっぱつで Mece になるようにできないのがしょぼいなー。


ところで増田ではカギ括弧でくくってもリンクが正しく認識されないしhttp記法タイトルリンクにならないしイケてないのなんとかできないのかな。

2010-01-19

キーボード設定がバグりおった

なんで@押したら[に、[押したら]になるんじゃー。


!@#$%^&amp;*()_+ 1234567890-=

QWERTYUIOP{} qwertyuiop[]

ASDFGHJKL:"| asdfghjkl;'\

ZXCVBNM<&gt;? zxcvbnm,./


なんじゃこの配列


しかも意味不明さをさらに加速させているのが、DOSプロンプトはちゃんと押した通りのキー入力ができているということだ。

DOS窓にできてなぜ他の入力カオス英語キーボード風になってる?)になる。全く困った事だ。

ドライバ日本語106/109にしたのに戻らないし。


他にも半角全角がALTキー同時押しが必要になってたり。もうわけわからん

可能性1.chkdsk c:がまずかった

可能性2.クラッキング食らっている

可能性3.実は俺は夢をみている

OS Windos XP SP3

キーボードDOS窓がちゃんとなってる以上関係ない気がするが)ELECOM TK-FCM005BK

んがあ

さてどうするか

対処法1.だましだまし使う。どうにかして脳内英語キーボード配列にして対処

対処法2.OSインストール。これでいけるだろうか?めんどくさい。

対処法3.キーボード買ってくる。

対処法4.PS/2接続してるのでUSB接続を試してみる。ダメな予感がする。

- 転職ならen
- 派遣ならen
6ページ中1ページ目を表示(合計:131件)