「PHP」を含む日記 RSS

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

2012-01-22

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

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

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

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

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

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

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

これに尽きる。

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


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

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

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

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

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



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

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

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

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

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

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

永久凍土Python

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



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

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

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


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

2012-01-19

Python vs Ruby vs PHP vs HaskellRubyistネクラオタクキモメン」 part2

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

http://anond.hatelabo.jp/20120118220204

441 : デフォルト名無しさん : 2011/12/14(水) 00:34:54.13

Rubyistってなんであんな小学校の図書室で毎日読書してそうな

いじめられっこネクラチビメガネみたいな色黒とかキモオタ

顔面オジサン、オバサンばっかなの?


445 : デフォルト名無しさん : 2011/12/14(水) 00:47:59.11

Javaer: 傲慢プライド高い、土方

Scalaer: 鼻持ちならない、モヒカン

Lisper: マジキチ

Rubyist: ネクラオタクキモメンいじめられっこネクラチビメガネ、色黒、キモオタ、顔面オジサン、オバサン

PHPer: 土方、DQN

Pythonista: イケメンリア充

473 : デフォルト名無しさん : 2011/12/16(金) 22:06:14.45

Python厨のRubyネガキャンは異常だなwww

608 : デフォルト名無しさん : 2011/12/28(水) 09:29:20.74

Rubyブロックが便利すぎて、Pythonをやめたくなった。

いちいちtemporaryな関数作成してから目的関数に渡していたのがばからしくなった。


609 : デフォルト名無しさん : 2011/12/28(水) 09:43:17.83

リストやジェネレータ式の内包表記が便利過ぎて

PythonからRubyには移行できないな

610 : デフォルト名無しさん : 2011/12/28(水) 11:03:14.91

日本人が開発の中枢にいるような言語はやめとけ。

どうせ廃れる。

611 : デフォルト名無しさん : 2011/12/28(水) 11:58:14.38

Pythonさんは、どうしてこう排他的かなぁ

626 : デフォルト名無しさん : 2011/12/28(水) 15:08:51.86

609

リストやジェネレータ式の内包表記が便利過ぎて

おれもそう信じてたけど、Rubyの、メソッド呼び出しを続けて書けるほうが便利だわ。

まるでjQueryみたい。といってもjQueryのほうが後発だけど。

たとえば「xsから0以上のものを選んで、その二乗の和を求める」場合

sum([ x*x for x in xs if x > 0 ])

これだと、後ろから読まないといけないんだよね。でも

xs.select{|x| x > 0}.map{|x| x*x }.sum

これなら頭からひとつずつ読めばいいから、わかりやすいし、考えたとおりに書きやすい。

まさにスクリプトって感じがする。

629 : デフォルト名無しさん : 2011/12/28(水) 15:55:19.77

Rubyメソッドチェーンって内包表記より弱いと思う

ネストするmapとかflattenとかわかりくいよ

Python: [[x,y] for x in xs for y in xs]

Ruby: xs.map{|x| xs.map{|y| [x,y] } }.flatten(1)


632 : デフォルト名無しさん : 2011/12/28(水) 17:25:29.75

いっぽうメソッドチェーンは

orz.sage().hage().hoge().hige() タイプの問題には向いている

まり向いている方向がちがう

(まあHaskellなら hige . hoge . hage . sage と書くだけだというのは置いといて)

強い弱いということで言うと、問題を解くのに必要な一番能力が弱い

(限定された)道具を使うという考え方があるようだよ

ベタ再帰は強い(汎用的)、がそれゆえ読むのに注意を必要とする

foldrは再帰よりは弱いが、foldrで表現可能な問題のクラス(原始再帰)はかなり

広いので、mapやfilterで済むならもちろんそのほうが望ましい

ではこの問題は弱いmapやfilterを結合させるほうがいいかというと、

俺はlist comprehensionのほうが集合表記そのもの=whatを表現していて好きだな

Pythonのlist comprehensionのsyntaxはあまり好きではないが

それは大きな問題じゃない

640 : デフォルト名無しさん : 2011/12/28(水) 19:56:09.23

メソッドチェーンってバグをわかりにくくするだけだと思うなあ。もちろん性能面もあるし。linqとかは良いと思うけど。

642 : デフォルト名無しさん : 2011/12/28(水) 20:28:45.92

同じメソッドチェーンでも、linqなら良いけどrubyなら悪い .....

一言で言うと「俺はRubyが大嫌いなんだぁーー」ということですな

663 : デフォルト名無しさん : 2011/12/28(水) 22:45:30.53

メソッドチェインなんてライブラリ設計次第でどうにでもなる

PythonどころかJavaでもできる

内包表記は構文でサポートしないと難しい(マクロがあれば別だが)


680 : デフォルト名無しさん : 2011/12/29(木) 00:07:41.77

メソッドチェーンが関数型の方法に比べて特に優れている点があるようには思えないが

パイプ順に書きたければ書けるし


682 : デフォルト名無しさん : 2011/12/29(木) 00:30:35.72

680,663

Pythonには関数型として致命的な弱点があるからメソッドチェーンでは簡潔なコードが書けない

たとえば「(1) Rubyは 条件判定が(文ではなく)式」だから以下のようなコードが書ける

 ys = xs.select { |x|

   if test

     if test_1 then test_1_1 else test_1_2 end

   else

     if test_2 then test_2_1 else test_2_2 end

   end

 }

あるいは「(2) Rubyブロック内で局所宣言が可能」だから上のコードを以下のように書き換えてもいい

 ys = xs.select { |x|

   cond_1 = if test_1 then test_1_1 else test_1_2 end

   cond_2 = if test_2 then test_2_1 else test_2_2 end

   if test then cond_1 else cond_2 end

 }

関数型言語であれば「(1) 条件判定(if/case)が式」で「(2) 局所宣言(let .. in .. end)が可能」なの当たり前

ところが残念な事に、どちらもPythonには欠落しているから、上の例はストレートコード化できない

からPythonではメソッドチェーンは使われないし、「酸っぱい葡萄」に見える

684 : デフォルト名無しさん : 2011/12/29(木) 00:37:06.68

Rubyでもリスト内包表記が言語として組み込まれてくれると嬉しい

リスト内包表記はトップダウン思考

メソッドチェーンはボトムアップ思考

だと思う

頭に浮かんだロジックをすばやくコード化するのはメソッドチェーンが適しているし、

じっくり腰を据えてコード設計するならリスト内包表記のほうが美しい

自分は、たぶんこのスレRubyコアの中の人も見ているだろうから

そのうちRubyにもリスト内包表記が実装されるんじゃないかと期待しているw

766 : デフォルト名無しさん : 2011/12/30(金) 10:04:41.40

メソッドチェーンは書き易い

内包表記は見た目が整ってて綺麗、最終的な型がわかり易い

いじょ。

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-17

今週ブログ巡回中にチェックした本。とりあえずクルーグマン系は読もうかな

知識人とは何か (平凡社ライブラリー) - エドワード・W. サイード

ルポ 餓死現場で生きる (ちくま新書) - 石井 光太

僕が「チャングムから教わったこと―人を喜ばせる「仕事・もてなし・サービス」の原点 - 田崎 真也

まんが学特講 目からウロコの戦後まんが史

荒木飛呂彦の奇妙なホラー映画論 (集英社新書) - 荒木 飛呂彦

風雲戦国伝 (PHPコミックス)

格差はつくられた―保守派アメリカを支配し続けるための呆れた戦略 - ポール クルーグマン

図解経済学者バトルロワイヤル - 小泉 祐一

とりったー (リュウコミックス)

良い経済学 悪い経済学 (日経ビジネス人文庫) - ポール クルーグマン

スティグリッツ教授経済教室グローバル経済トピックスを読み解く - ジョセフ・E・スティグリッツ

人生 (ガガガ文庫) - 川岸 殴魚

文章の書き方 (岩波新書) - 辰濃 和男

2012-01-07

[] 人事系

このあたりを流し読みして使えそうなところを選ぶ予定



できる人、採れてますか?―いまの面接で、「できる人」は見抜けない 川上 真史

コンピテンシー面接マニュアル - 川上 真史

人事のプロ学生のどこを見ているか (PHPビジネス新書) 横瀬

人材を逃さない 見抜く面接質問50

伝説の人事部長が教える!「できる人」「できない人」を見抜く面接

面接―質問するから騙される

「小さな会社」でもすぐ使える!「会社を伸ばす人材」を見つける採用面接マニュアル

科学手法で絶対に成功する採用面接



日本人事 NIPPON JINJI

破壊創造の人事

人材の複雑方程式



地域を変えるデザイン――コミュニティが元気になる30のアイデア

お金をちゃんと考えることから逃げまわっていたぼくらへ (PHP文庫) - 糸井 重里

リクルートという奇跡 - 藤原 和博

かむろば村へ 1 (ビッグコミックススペシャル) - いがらし みきお

2011-12-28

ふと

Webサービスになるんじゃないかなーってことを思いついたので、自力で作ってみよう思う。

プログラマとして社会人約三年経験後、無職半年目。別業界に行こうと思ってた。

でも思いついたからやってみるって言うのは有りだと思うんだ。



しかし、一から作るってどうしたらいいんだろうなあ。

機能拡張かばっかりだったから、どうしていいのかいまいちわかってない。



サービス提供するために

レンタルサーバを借りる

・余裕があればドメイン取得

・開発言語PHP(とはいえ独自フレームワークばっかりだったのでCakeとか使えないぞ……)

MySQL実は使ったことがないんだよな。関数をチェックしておく必要性あり。

UIHTML5意識したXHTMLで書いておけば将来的な移行がしやすいのかな。最初からHTML5で書くというのも手か?

CSS3使ってもいいのかなあ

調べること

・関連商品の表示のために何をすればいいのか(DBに閲覧履歴を保持するのか?)

・他にも思いつき次第追記

ユーザを集めるために

・ここがわからないのであった

twitterとかなのかな


まあ、作れないかもしれないけど、その時はその時。

いつか似たサービスを誰かが作るだろうし、あるいはもう存在しているのかもしれない。

2011-12-17

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-15

cent osでのphp5.3環境のセットアップ with "yum"

FuelPHP Advent Calendar 2011 の 15日目。

FuelPHP の URL とコントローラの関係から続いて寄稿します。

@eifukuです

早速ですが本題。

といって、そもそもの経緯を先に。

fuelphpを試そう!ってなもんで既存サーバPHP5.3にしよう〜という所が発端。

既にyumPHP5.2ベース環境が構築してあったせいで、色々とconflictしてインストールに手間取る。。。

案外、環境構築ってはまると手間よねーといった意味合いも込めて、

今後の参考迄に割とストレートにいける様にセットアップ手順をログます

今回はせっかくなので、色々と最新パッケを用意します。

LES RPM DE REMIのリポジトリ登録

そもそも、yum提供しているのはPHP5.2。

なので、fuelphpを動作させるために、今回は最新のRPMパッケからPHP5.3をインスコ

最新のrpmを確認してインストール

$ sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

apache2をインストール

$ sudo yum install apache2

mysql(v5.5)をインストール

既存mysqlを使う人は飛ばして次項へ。

(PHPを先にインストールすると色々こけるので先にmysqlをセットアップ)

$ sudo yum --enablerepo=remi install mysql mysql-server

で起動テスト

$ sudo /etc/init.d/mysqld start

いや、こけた。

起動せず。。

ふむ。repositoryをremi-testにしなければダメな模様。

再度インストール場合には依存関係のパッケージconflictするのでとにかく消す。

ごっそり消す!!

$ sudo yum remove -y mysql*

インストール

$ sudo yum --enablerepo=remi-test install mysql mysql-server

$ sudo /etc/init.d/mysqld start

Starting MySQL: [ OK ]

いった!

自動起動設定だけ済ませて次へ。

$ sudo /sbin/chkconfig mysqld on

php諸々をインストール

既存php5.2以前がある場合は、やはりとにかく、ごっそりremove!!

で以下に続く。

$ sudo yum --enablerepo=remi install -y php php-mysql php-xml php-mbstring php-common

以上でfulephp動作前の環境構築準備は完了!

ほんとはハマった辺りのログとかも入れた方がいいんでしょうが、今回はこれでご勘弁。

ソースから入れた方が楽だよなぁ・・・と何度か方向転換しかかりましたが・・・なんとか。

明日16日目は@madmamorさんの「FuelPHPのcoreクラスを拡張してみる。ですね!

おたのしみに!

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/


ではでは。。。

2011-11-25

大学生のうちに読んでおくべき新書50冊

ルポ 貧困大国アメリカ (岩波新書) 堤 未果

ルポ 貧困大国アメリカ II (岩波新書) 堤 未果

貧困(岩波新書) 湯浅

生物と無生物のあいだ (講談社現代新書) 福岡 伸一

科学する麻雀 (講談社現代新書) とつげき東北

不機嫌な職場 (講談社現代新書) 河合 太介、高橋 克徳、永田 稔、渡部

「分かりやすい説明」の技術 (ブルーバックス) 藤沢 晃治

学問のすすめ (ちくま新書) 福澤 諭吉斎藤

ウェブ進化論 (ちくま新書) 梅田 望夫

日本人の誇り (文春新書) 藤原 正彦

決断できない日本 (文春新書) ケビン・メア

臆病者のための株入門 (文春新書) 橘 玲

拒否できない日本 (文春新書) 関岡 英之

官僚責任 (PHP新書) 古賀 茂明

日本はなぜ世界でいちばん人気があるのか (PHP新書) 竹田 恒泰

お金の流れが変わった! (PHP新書) 大前 研一

わかったつもり (光文社新書) 西林 克彦

若者はなぜ3年で辞めるのか? (光文社新書) 城 繁幸

街場のメディア論 (光文社新書) 内田

行動経済学 (光文社新書) 友野 典男

日本世界5位の農業大国 (講談社+α新書) 浅川 芳裕

キリスト教は邪教です! (講談社+α新書) ニーチェ

いつまでもデブと思うなよ (新潮新書) 岡田 斗司夫

とてつもない日本 (新潮新書) 麻生 太郎

武士の家計簿 (新潮新書) 磯田 道史

死の壁 (新潮新書) 養老 孟司

バカの壁 (新潮新書) 養老 孟司

不動心 (新潮新書) 松井 秀喜

世界日本人ジョーク集 (中公新書ラクレ) 早坂 隆

決断力 (角川oneテーマ21) 羽生 善治

ツイてる! (角川oneテーマ21) 斎藤 一人

リクルートDNA (角川oneテーマ21) 江副 浩正

脳に悪い7つの習慣 (幻冬舎新書) 林 成之

宇宙は何でできているのか (幻冬舎新書) 村山

レバレッジ時間術 (幻冬舎新書) 本田 直之

ジャーナリズム崩壊 (幻冬舎新書) 上杉

日本10新宗教 (幻冬舎新書) 島田 裕巳

日本を貶めた10人の売国政治家 (幻冬舎新書) 小林 よしの

伝える力 (PHPビジネス新書) 池上

即戦力の磨き方 (PHPビジネス新書) 大前 研一

脳が冴える15の習慣 (生活人新書) 築山 節

フリーズする脳 (生活人新書) 築山 節

世界征服」は可能か? (ちくまプリマー新書) 岡田 斗司夫

世にも美しい数学入門 (ちくまプリマー新書) 藤原 正彦、 小川 洋子

多読術 (ちくまプリマー新書) 松岡 正剛

包帯クラブ (ちくまプリマー新書) 天童 荒太

原発ウソ (扶桑社新書) 小出 裕章

TPP日本を壊す (扶桑社新書) 廣宮 孝信、 青木 文鷹

「未納が増えると年金破綻する」って誰が言った? (扶桑社新書) 細野 真宏

怒らないこと (サンガ新書) アルボムッレ スマナサーラ

2011-11-13

基金訓練講師

http://anond.hatelabo.jp/20111113010022

こちらに触発されて書いてみる。辞めてからかなり時間も経ったのでそろそろ書いてもいいかなと。

元増田の人は前向きな感じですごくうらやましい。


WEBクリエイターコース

こちらはWEBクリエイター講師をやってました。

訓練内容はAdobeCS4操作方法→自主制作というのがだいたいの流れとなっていて、それぞれのアプリケーションテキストフォトショイラレDWFlash)とHTML+CSSの本という感じ。

このテキストを選定しているのは教室を運営している会社のようで、(伝聞で聞いたので定かではない)もし運営してる会社WEB制作を知らないとか知っててもテーブルレイアウトだった場合にはあまりいい本は選ばれないようです。また運営会社同士でヨコの繋がりで話し合って本を決めてる部分もある(複数の教室で同じ本だった)のかな?と予想しました。


前準備

実際の訓練内容はハローワークで決めているのか運営会社で決めているのかは解りませんが、講師は訓練スケジュールテキストに関してなにも言えない、わからないまま講義が始まります

HTML5時代だというのにFLASHにえらく時間を割いたりするスケジュールで、受講生から「せんせーFLASHってどうなんすか?」と物凄く困る質問をされたりします。

また受講生はAdobe製品アカデミックで買えるというナイスな特典があったりしますが、授業で使ってるのはCS4だけど買ったのはCS5.5みたいな微妙だけど重要アクシデントが発生します。

HTMLの本もXHTMLならまだしもHTML4.01(しかもStrict)で書いてる本だったりすることもあります



受講生はテキストを実費で購入しているため、ないがしろにするわけにはいかないので「これいらんだろ」とか思ってもとりあえず本の通りに進めなければなりません。(例えばHTMLの本を早めに終わらせてXHTMLの話をして余計混乱させたりとかあった)



ここで問題なのは受講生は基本的にお金に余裕がある人は少ないです

AdobeWebプレミアムアカデミックで買えるとはい10万以上の余裕があるなら基金訓練なんかコネーよ!という人が半数以上いるんじゃないかと。

体験版はあるけど1ヶ月で終わるし、訓練自体は半年あるわけです

家に帰って復習しようと思ってもうまくいかないのです

なのでGIMPとかInkscapeとかもサラっと存在を教えておいたりします。



あとはフォームのHTMLだけ教えて肝心のPHPやらPerlやらには基本触れないのでそこも工夫が必要です



教科書3冊くらいクリアするころには生徒からこれで本当にWEB屋さんになれるの?とか疑問を持たれますので、フリーでやっていく方法とか自分経験談の話をすると人気の講師になれますが、会社からはいい顔されないかもしれません。職業訓練なのでどこかに就職するのが大前提なんです



一応WEB屋に就職する以外での道筋も示してみました





指導要綱みたいなものはキホンないので講師の思うとおりに教えられますが、上記のテキストの縛りとスケジュールの縛りがあるので本が変わる前にグループを作ってもらって共同作業させることを取り入れました。実際にWEB屋さんにいったら分業しますしね。

労働時間とか

さて、各アプリケーションテキストがいいものだったらよいのですが、そうでない場合自分課題とかを作る必要があります

フォトショやらイラレはいいんですが問題はHTML+CSSFLASHFlashなんかはASがゴッソリ抜けてたりすると生徒から「やりたいことができない!」と嘆かれますCSSなんかも「やりたいことができない!」と言われがちです



実際は一人の講師が2コマやることがザラなんじゃないかと思います

AM9時からお昼を挟んでPM3時まで+PM3時からPM9時まで。若干ズレはするでしょうがこんな感じなんじゃないかと。

これで課題自作していたら睡眠時間は3~4時間くらいになっちまいます。ああ祝日ってステキ・・・。とか思い始めますフリーランサーは普段の仕事は全部お断りしないとイカンかもしれません。

もちろん自宅で課題作ったってノーギャラです

テキストの内容とスケジュール(x月x日からx月x日までFLASHとか書いてある)なんか完全に合わないので苦悩します。

事前に用意できればいいのですが先に書いたようにスケジュールテキストは開講数日前にコレでヨロ!的に渡されますので初めてやるひとは対応難しいでしょう。




とりあえず今日はここまで。

2011-11-03

臨時告知

津波浸水したサクラ狂い咲き 青森県八戸市三島公園 2011/8/29

tp://www.47news.jp/photo/265458.php

岩手県宮古市で季節外れのサクラ開花. (読売新聞2011年10月05

tp://www.yomiuri.co.jp/national/news/20111005-OYT1T00105.htm

津波かぶった桜に季節外れの花(岩手県大船渡市岩手日報) (2011.9.1)

tp://www.iwate-np.co.jp/hisaichi/h201109/h1109014.html

いわきで桜咲く 秋なのに春到来?(福島民報) 2011年9月17日

tp://www.minpo.jp/pub/topics/jishin2011/2011/09/post_1948.html

季節外れの桜の花 宇都宮市郊外 2011/10/06

tp://www.digibook.net/d/d004857b909caed4a246c524056e7445/

埼玉県秩父 しだれ桜 2011.10.05

tp://suzakiokami.jugem.jp/?eid=4

桜返り咲き(狂い咲き) 千葉県ドイツ村で (2011/10)

tp://sakura.way-nifty.com/sakura/2011/10/post-3e98.html

静岡県河津町 河津桜狂い咲きで開花(2011/10)

tp://yakata.i-ra.jp/e400704.html

秋空の下、人知れず桜咲く 長野県伊那市・美和ダム管理支所 1110月 8日

tp://www8.shinmai.co.jp/flower/2011/10/08_014118.php

愛知県半田市 八重桜 2011/10/06

tp://blog.blochiita.jp/mimi/kiji/55187.html

岐阜県土岐川沿いで桜開花 (2011/9/9)

tp://hanako0119.cocolog-nifty.com/blog/2011/09/post-a1ec.html

三重 被災地で季節外れの桜 10月1日

tp://www3.nhk.or.jp/news/html/20111001/k10015971701000.html

奈良十津川村で季節はずれのサクラ咲く 2011.10.4

tp://sankei.jp.msn.com/life/news/111004/trd11100419200010-n1.htm

和歌山高野山近くで季節外れの桜 2011年10月9日

tp://news.tbs.co.jp/20111009/newseye/tbs_newseye4847106.html

和歌山県 那智勝浦温泉 2011/10/01

tp://www.jalan.net/yad324016/blog/entry0001487983.html

大阪府大東市 (2011/9)

tp://sakujo.webspace.ne.jp/bbs/

神戸市生田神社染井吉野咲く、移植の影響か (2011/9)

tp://mytown.asahi.com/hyogo/news.php?k_id=29000001109150005

兵庫県養父市季節外れのサクラ開花 2011/10/09

tp://www.kobe-np.co.jp/news/shakai/0004535027.shtml

季節外れのサクラ開花/香川県三木町 2011/10/07

tp://www.shikoku-np.co.jp/kagawa_news/locality/20111007000129

秋に桜が狂い咲きするわけは?徳島県鳴門市 (2011/10)

tp://www.bes.or.jp/naruto/blog/detail.html?id=2716&category%5B4%5D=4

高知愛媛県境 2011.09.11

tp://plaza.rakuten.co.jp/miemom/diary/201109110000/

大分県日田市季節外れの桜 =2011/10/07

tp://www.nishinippon.co.jp/nnp/item/267169

サクラが返り咲き 鹿児島県南さつま市笠沙 (2011 09/20)

tp://www.373news.com/modules/pickup/index.php?storyid=35139

沖縄県大宜味村 (2011/9)

tp://futao2.blog135.fc2.com/blog-entry-309.html

津波原因?季節外れの桜咲く 岩手県山田中央公民館近く (2011/10/20)

tp://www.iwate-np.co.jp/cgi-bin/topnews.cgi?20111020_7

秋晴れの下、季節外れの桜が開花 新潟市東区 2011/10/15

tp://www.niigata-nippo.co.jp/news/pref/28124.html

新潟県燕市吉田ふれあい広場で一本のソメイヨシノが季節外れの開花  (2011.10.18)

tp://www.kenoh.com/2011/10/18kuruizaki.html

「季節外れの桜」埼玉県深谷市豊里中学 2011/10/26

tp://www.fukaya-toyosato-j.ed.jp/index.php?key=jowwje6w1-45

季節外れのサクラ開花 千葉県成田ゆめ牧場 2011.10.12

tp://sankei.jp.msn.com/region/news/111012/chb11101222140006-n1.htm

日本橋サクラ 勘違い? 東京都中央区 2011年10月17日

tp://www.tokyo-np.co.jp/article/national/news/CK2011101702000169.html

Future SEVENに桜が咲きました。 東京都港区南青山 2011年10月19日

tp://future7.jp/index.html

調布市味スタ通りは、もう春?-季節外れの桜開花 東京都 2011年10月19日

tp://chofu.keizai.biz/headline/815/

神奈川県秦野市 季節はずれの桜が開花 2011年10月27日

tp://www.townnews.co.jp/0610/2011/10/13/121243.html

山梨県甲府市昭和浄水場 2011年10月12日

tp://www.sannichi.co.jp/local/news/2011/10/12/7.html

桜、季節外れの開花・山梨県 2011年10月22日

tp://www.parupi.biz/blog/2011/10/post-712.html

季節外れのサクラ咲く 静岡市葵区駿府公園 2011.10.13

tp://sankei.jp.msn.com/region/news/111013/szk11101317540011-n1.htm

春と勘違い長野県松本市で季節外れの桜咲く 1110月20日

tp://www.shinmai.co.jp/news/20111020/KT111019GUI090005000.html

伊勢二見興玉神社 台風の荒波 海水浴びた桜に花 2011/10/13

tp://www.isenp.co.jp/news/20111013/news06.htm

冬眠」忘れた ソメイヨシノ 滋賀県大津市県立図書館 2011年10月13日

tp://www.acs.yomiuri.co.jp/e-japan/shiga/news/20111012-OYT8T01204.htm

桜:季節外れの桜咲く--草津市役所前/滋賀 10月14日

tp://headlines.yahoo.co.jp/hl?a=20111014-00000184-mailo-l25

あらっソメイヨシノ賀茂川沿い 京都府京都市 2011年10月14日

tp://www.yomiuri.co.jp/otona/naturallife/08/kyoto/20111014-OYT8T00558.htm

奈良市山陵町山上八幡神社 季節外れのサクラ咲く 2011年10月14日

tp://mytown.asahi.com/nara/news.php?k_id=30000001110140002

香川県仲多度郡 満濃池森林公園 2011年10月12日

tp://yakuri.blog.ocn.ne.jp/blog/2011/10/post_75b8.html

サクラ狂い咲き 徳島市眉山パークウェイ 台風ダメージ原因? 2011/10/13

tp://www.topics.or.jp/localNews/news/2011/10/2011_131846965467.html

十月の桜 鳥取県大山町 2011年10月19日

tp://mytown.asahi.com/tottori/news.php?k_id=32000001110190003

桜7輪咲く 広島市八木公園 '11/10/15

tp://www.chugoku-np.co.jp/News/Tn201110150130.html

サクラさん、まだ秋だよ 宮崎市船塚 県総合文化公園 2011年10月18日

tp://mytown.asahi.com/miyazaki/news.php?k_id=46000001110180002

--------

「八のつく日に気つけて呉れよ、だんだん近づいたから、辛酉(かのととり)はよき日、よき年ぞ。

冬に桜咲いたら気つけて呉れよ。

八月二日、ひつくのかみ。」

  下つ巻 第三十帖

旧暦日本四季は大まかに分けて、1・2・3月=春、4・5・6月=夏、7・8・9月=秋、10・11・12月=冬となる

今年は10月27日が旧十月一日であり、今は冬に入っている

まり神示で言う「冬に桜咲いたら」の言葉は既に日本全国で実現している

次に来る「八のつく日」の「辛酉」は旧十二月八日、新暦の1月1日、元旦になる

「よき日、よき年」とはそういう意味

この日、311の警告にも未だ改心無く、金の世を維持し続けている日本にとどめの大地震が起こる

2011-10-18

http://anond.hatelabo.jp/20111017162317

データベースアクセスだって、VBならアクセスライクのDBでSQLを疑似体験できる。

ここのステップを超えられないと、プログラムで「何が出来るか」に気付けずに、「つまんない」で終わっちゃうんだよ。

正味な話、PHPとかpythonって、初心者に「次」を用意するのがしんどいんだよ。

Pythonはさておき、PHPは動的なWebサイトかんたんに作れるじゃん。

むしろ次を用意しやすいと思うよ。

2011-10-17

http://anond.hatelabo.jp/20111017134900

プログラミング勉強したいと思って始めると、イメージかめなくて苦戦すると思う。

技術者になるような人たちは、先に「これが作りたい」って作りながらエラー吐きまくりながらおぼえるので早いんではないか

とりあえずjavascriptとかPHPあたりの、そこそこ適当でも動く奴使って、考えるよりもソースみて覚えた方がいいかも?

どの言語ベースの処理は似てるから、一種類解るようになると比較対象ができていいとおもう。

最初苦労する分、思うように作れたときの達成感はひとしおだよ。

がんばー。

http://anond.hatelabo.jp/20111017162624

違うけど。

無駄機能豊富IDEの使い方覚えること自体が苦痛なんだよ。(俺を含む)こういうタイプの人は。

初心者がちょろっと書くプログラムならprintで十分。

VBなんてマジキチ言語プログラミングがさらに嫌いになるだけだからやめとけって思う。

プログラミングハードルは、そこにあるんじゃないんだよ。

printf("Hello World!!\n");

の先にあるんだ。

データ処理をしたい、ユーザーに選択させたい、次のステップに進むときマイクロソフト系は環境を用意しやすいんだよ。

データベースアクセスだって、VBならアクセスライクのDBでSQLを疑似体験できる。

ここのステップを超えられないと、プログラムで「何が出来るか」に気付けずに、「つまんない」で終わっちゃうんだよ。

正味な話、PHPとかpythonって、初心者に「次」を用意するのがしんどいんだよ。


EMACS教みたいに、高級な環境なんていらない、何でもできるよって洗脳しても良いけれどさ^^;

http://anond.hatelabo.jp/20111017141227

プログラミングは静的言語(C/C++,Java,C#など)と動的言語(rubyとかpythonとかperlかいわゆるスクリプト言語)と関数型(lispとかF#とかhaskellとか)を一つずつくらい眺めた方がいいと思う。

どれか一個くらい自分に合ってるのが見つかるかも。

プログラムはそういう視点で見ない方が良い。

やりたいことにどの実装系が一番適しているかを考えるべきで、実装系を目的に合わせるべきじゃない。

そういう考えでいると、PHPで何でもやる奴とか出てきて迷惑なんだ。

そもそものロジック構築などは、ターゲットには依存しても、言語にはほとんど依存しない。


馴染むための登竜門って意味で言えば、VisualStudioなどのGUIデバッグが出来る環境をもった言語が良いし、VB,C#などのサンプルが豊富で結果を確認しやすい言語が良いと思う。

2011-10-14

すべてのPHP使いが避けるべきたったつのこと

PHPの使用

2011-10-06

Java参考書

MSX-BASICからまり、今までに

Access VBA

C++

JavaScript

Python

C

をこの順番で覚えた。

これらの言語でなら自由にプログラムを書くことができる。



変り種は2006年勉強を始めたC++で、軽量言語花盛りのその時期に、CGIを書きたいがためにC++を学んだ。

C++は習得が難しい言語と言われているが、必要性を感じなかったので参考書の類は買わなかった。

他の言語もそうだ。

参考書は必要なかった。



実はC++を始める前に「独習PHP」を購入した。

これ自体は悪い本ではない。

でも結局、最初WEBアプリサービス)はPHPではなくC++で作った。



PHP哲学のなさというか、無節操さが僕には合わなかった。

この読書は、購入前に漠然と感じていたPHPへの不快感を再認識させただけだった。

そして学んだ。



「使う必然性のある言語なら参考書で学ぶ前に書き始めている」



歴史は繰り返す。

今まさに「明解Java 入門編」を購入しようか思案中なのだ。

今までJavaを避けてきたのは「ジェームズゴスリンが嫌い」あるいは「金の匂いがする」からだ。

PHP経験から言って、Java実用できないかもしれない。



Javaを覚えれば幅が広がるのは分かるんだけど…

なぜだろう、ワクワクしない。

2011-09-24

xreaPHPセッション漏れ漏れだったのって今どうなってるの?

xreaPHPデフォルトで/tmpにセッションを保存してたから、前は"設定を変更してない人"のセッションが/tmpに漏れ漏れだったんだけど、今はどうなってるのかなって。

誰か教えてー。

2011-09-21

FizzBuzz問題php

元ネタ

http://anond.hatelabo.jp/20070508170219

php初めて半年程度でこれ。

もっと上手いやり方があるんだろうなぁ。

$i3=1;
$i5=1;
$flag=0;

for($n=1;$n<101;$n++){
	
  if($i3==3 && $i5==5){
    echo "FizzBuzz¥n";
    $i3=1;
    $i5=1;
  }else{
    if($i3==3){
      echo "Fizz¥n";
      $i3=1;
      $flag=1;
    }else{
      $i3++;
    }
    if($i5==5){
      echo "Buzz¥n";
      $i5=1;
      $flag = 1;
    }else{
      $i5++;
    }
    if($flag==0){
      echo $n."¥n";
    }
      $flag = 0;
    }
}

※一部全角化(&¥<)

2011-09-15

世界中「ありがとう」を集めるサービス作ってみた

THANKFUL WORLD - 世界を「ありがとう」でつなげよう -

似たようなサービスは既にあると思いますが、PHPプログラムの練習課題として作成してみました。

投稿から「ありがとう」にまつわる話を投稿してもらい、感謝の気持ちを伝えるサービスです


サービスを作った目的

この中で一番の目的だったのは3番目の最後までやり遂げるだったりします。

本当にどんなものでもよかったので、最後まで作り上げて公開するのを目標にやってきました。

システム環境

Apache+PHP+MySQLオーソドックスもの

Webサーバの構築課題も含めてなので、さくらVPSを一台契約しました。

インストールから設定まで行って初めて分かることも多くありました。

開発期間

1週間

思いついてから公開までの時間です

やって良かったこと

  • Webサーバについての知識が深まった
  • システムを構築するに当たっての手順や手法などを改めて考えさせられた
  • 次に向けての課題点が見つかったこと

次に自分が覚えることが見えたのは大きいです

今できることを高めることも重要ですが、自分に足りないものを吸収してより良い形で昇華することも必要。

反省すべき点

  • 思いつきで行動したため、行き当たりばったりで思っていたものとは異なる形となった
  • 最初設計時間をかけるべき

設計が全てだと思います

個人でサービスを作る以上、自分自身がクライアントなので途中で行う仕様変更改善や思いつきによる変更など)に対する文句のぶつけ場所もありません。

念入りに設計を行い、それに基づいて開発を行う。

当たり前のことですが当たり前に行うのが難しいです

何事も初めが肝心です

最後

ひと通り開発を行ってみて、自分の知識や能力についてもある程度把握できたように思えます

今できることもわかったので、次は今できないことをできるように知識を深め、

今できることと合わせて新たな段階に進めればと思います

長々とお読み頂きありがとうございました。

2011-09-10

本当のソーシャルゲームイノベーション人間ボットの区別がつかない環境

ソーシャルゲームイノベーション。だがイノベーションは、すべてのユーザー接続された単一のサーバーを使う、マルチプラットフォームマイクロトランザクション、コレクション中心のゲーム性ゲームマネーリアルマネーの最小限の垣根、スマート課金システム、ゆるやかなコミュニケーションではない。ソーシャルゲームのコア技術。だがゲーム伝統的なオンラインゲームウェブサービスなどが実現済み。だが人類史ソーシャルゲームけが実現した特徴。人間ボットが混在してもボット存在が気がつかれない革新的な環境ボット人間擬態して人間ゲームプレイしてゲームを盛り上げるSF近似の環境が実現。ソーシャルゲームではユーザー同士の人間的なコミュニケーションを極限まで減少することでこれを可能に。革新的なことにもかかわらず不思議に語られない。すごく残念に思う。私が語ろう。

#

ボットは、パソコン MMO では周知の事実違法がはびこっている。これから話すことは少し違う。ソーシャルゲームボットは、ゲームメーカー自身によって開発された。ボットは、普通ユーザーには区別がつかない。仲間やあなた競争相手のいくつかはボットと考えるのは簡単。多くの人が疑問に思う。人間ボットの区別がつかないはずがない。セカンドライフパソコンMMOのような環境ボット人間のフリをするのは大変困難。MMOはすべてのプレーヤーの動きをリアルタイムに見ることができる。すべてのプレイヤーがどのように動作するかを誰もが見ることができる環境では、特異な行動パターンは際立って目立つ。ほぼ同じアクションが繰り返されるならすぐにボットとわかる。ありえない動作もすぐにわかる(超高速移動、不可能なタイミングの攻撃を続ける、など)。MMOボットのためのチートツールは不自然ではない動きの再現に苦労。NPCキャラの移動は不自然。同じ場所しか歩かない。不自然に遠回り。隙間に入って抜け出れなくなるなど。人間操作する自然な移動は非常に困難な技術ボット人間パーティを組んで行動するのは不可能。ボットは会話できない。MMOキーボードと共にある。ゲームチャット機能も充実。チャットをするのは当たり前。完全な無言のユーザーは不自然存在協調行動は全く取れない。すぐにボットが露見するであろう。

#

対照的にソーシャルゲームでは人間ボットを区別する機能が軽視。あるいは未実装。他のプレイヤーの行動は目立たない。気がつかない。他のプレイヤーにあまり興味を持たないことでボットことに気がつかない環境。他のユーザーが何をしているのか分からない。ユーザーの仲間は行動記録を閲覧できる。ユーザーと対戦したユーザーとの試合結果は見ることができる。それは非常に断片的。ボスを倒した、ダンジョンクリアした、などの結果しかからない。他のユーザープレイの状態を把握することはできない。ソーシャルゲームでは装備の着替えを繰り返しているユーザーがいても誰も気がつかない。MMOで装備の着替えを繰り返しているユーザーがいたらすごく目立つ。ソーシャルゲームでは異常な行動パターンをとっていても問題にならない。目立たない。ボットにとても都合が良い。ソーシャルゲームでは移動に必要もない。移動はリンククリックだけ。人間らしい移動アルゴリズム不要ソーシャルゲームでは会話がとても軽視。他ユーザーへのコメント掲示板がある。しかしあまり活用されない。ゲームに協力する戦略性が必要が薄いため。またキーボードが使えない。ずっと無言のユーザーも珍しくない。会話がとても少ない。ボット理想環境ソーシャルゲームは最低限のコミュニケーションで成り立つことに最適化。それは同時にボット人間擬態することにも最適化。結果的にボット人間擬態できる環境が生まれている。結論。リンクランダムクリックするだけでもボットが完成。それは不自然ゲームプレイが予想される。だが他ユーザーは気がつかないであろう。

#

ボットを活用しているのは違法ユーザーではない。ゲームの開発会社が用意している。運営している。言い換えればハック不要。無制限にデータベースへのアクセスが可能。実際にゲーム操作する必要ない。データベースに記録を行えば良い。SQLだけでボットを作ることが出来る。例えば、"ナンバーワンのユーザーの敗北を増やす"SQLの次の2行で実現することができます。余談。MySQLのサブクエリ限界は非常に気に入らない。「SELECT userid FROM usertable ORDER BY gold DESC LIMIT 1;UPDATE usertable SET lose=lose+1 WHERE userid=xxxxxx;」これは不十分。たかだか敗北数を増やすだけ。正しくは対戦相手と対戦ログゲームルールに合わせた形で記録。データベース勝敗結果を記録するプログラムが必要。これはゲームプログラムに元々存在している。流用するだけで良い。PerlPHPで実装されているだろう。対戦結果の偽装は簡単。

#

ソーシャルゲームSNSプロフィールページと連動。ユーザーの顔画像クリックプロフィールページに遷移。プロフィールページの偽装が必要。プラットフォーマーは己のSNSデータベースへのアクセスが可能。ランダム名前自動大量生成することは容易。ボットプロフィールページを用意することは容易。ボットユーザーは、日記を書くことなく、まったくの無言で、熱心にゲームプレイ。そのような特徴は正規ユーザーにも珍しくなく違和感はない。参入メーカーSNSプロフィールページを大量に作成できない。正規プロフィールページを使い回す。その場合には、ゲーム上のH氏とG氏ののSNSプロフィールが互いにV氏で同じ人に。これは異常。しかユーザーは他ユーザープロフィール対応を全てチェックしたりしない。発見される確率はとても低い。

#

閲覧者はボット開発の容易さには納得したと信じる。まだボットの必要性と活用には納得していない。これからの話しで納得できる。

伝統ゲーム開発者感覚を基準にゲームバランスを決定(マーケティングの無視を意味しない)。ソーシャルゲームユーザーアクティビティに基づいて、科学的な分析ゲームバランスへのアプローチを決定。これはユーザーアクティビティのサーバーログが蓄積されるために可能。ユーザーアクティビティの分析結果がゲームバランスに反映。例。チュートリアルの進行状況50%で停止しているユーザーが多数いるという分析結果。その箇所のチュートリアルは高い障害ことが想定される。対策。その箇所を平易に修正。その箇所を短縮。その箇所を除去、など。結果、チュートリアルの進行状況50%で停止するユーザーは激減。課金でも分析重要課金アイテムバナー画像を表示する例。ランダム分割したグループAユーザグループBユーザに別々のバナー画像を見せる。しばらく続け、結果的により課金が多いグループバナー画像がより最適。繰り返すことでより効率的なバナー画像が完成。

#

ゲームパラメータは簡単にデータを調整できる。しかしこれは不十分。人間同士のプレイ分析適応できない。例。「開始直後に他のユーザーと対戦し3連敗したユーザーの70%はそれ以上プレイを続けない」という分析結果があると仮定。これはゲームパラメータでは解決できない問題。開始直後のユーザーは誰もが同じ強さ。ゲーム内で最弱。パラメータの調整とは別問題。解決策はボットの利用。開始直後のユーザーより弱いボットを用意。開始直後のユーザーボットに優先的にマッチングボットの内部パラメータは開始直後ユーザー以下だかユーザーにはユーザーと同程度のパラメータに見せる。ユーザーは確実に勝利できるので3連敗してゲームを辞めてしまう可能性は激減。またユーザー自分と同程度のパラメータの相手に勝利したと信じている。プレイ継続するモチベーションに繋がる。ソーシャルゲームプレイ中の人は確認推奨。理論ユーザー全体の対戦での勝利数と敗北数は一致。上位のユーザーは勝利数のほうが多く下位のユーザーは敗北数が多い。コアユーザーでないのなら敗北数が多いのが正しい。もしもあなたが下位ユーザーにもかかわらず勝利数のほうが多いのであればあなたボット感謝する必要がある。逆の例:ロンチ直後のランキング上位にはボットを置く。それがないと初期ユーザーはすぐ上位到達。同ボットゲーム人口が大幅に増加したら不要になることがおおい。

#

課金でも分析結果にボット適用するのは重要。例。「課金経験でしばらく連勝を続け宝物のコンプリートまであとわずかのユーザーに突然強力な一人のユーザーが連日攻撃し続け宝物を奪いにきたときユーザー課金アイテムを購入して防衛する可能性が高い」という分析結果があると仮定。ユーザー心理は、今をしのげば他ユーザーには連勝を続けられると考える。今だけでもと課金を行う。これを再現するボットの開発は容易。データベース検索して課金経験でしばらく連勝を続け宝物のコンプリートまであとわずかのユーザー発見。そのユーザーと対戦可能で勝利できるパラメータボット検索ボットは前もって様々なパラメータで大量に用意しておくのは当たり前。発見したボットユーザーと対戦し対戦結果をボットの勝利でデータベースに書きこむ。これでユーザー課金する確率が飛躍的に高まる。課金経験ユーザー課金経験させることは実に重要。一度同様のボットプログラムを開発したら後は全自動継続的に動作するのは当たり前。分析ボットの組み合わせアプローチ日本ソーシャルゲームの驚異的課金率の施策の1つ。

#

このようなパターンユーザーアクティビティを分析することで無限発見することが可能。ゲームの盛り上げと収益の最大化に大きく貢献。あと1つ例を。課金経験ゆったりプレイユーザーボットが仲間申請。ボットゲーム情熱的にプレイ課金も積極活用。仲間ゆったりユーザーボットプレイ結果がどんどん伝わる。多くのソーシャルゲームでは仲間のプレイ状況は断片的にユーザーに知らされる。中のプレイ状況は大きな刺激。仲間に影響されてよりプレイが活発に。「ユーザープレイ頻度は一番プレイが頻繁な仲間のプレイに近づいていく」分析結果への対応。地味であり効果は直接でないが確実にある。ボット数の効率化の観点から、1つのボット100人以上のユーザーと仲間になるのが望ましい。ゲーム内の仲間人数制限をボットに限り解除。ユーザーボットプロフィールを見たときボットことが露見すると冷めてしまう。表向きは仲間人数制限を解除していることが露見しないように。

#

伝統的なRPGゲームではユーザーの進捗状況に応じて十分な強度の仲間と敵を提供します。これとソーシャルゲームボットは近似している。ユーザーモチベーションを上げるのが目的のは同じ。RPGモンスターと敵はユーザーコンピュータAI操作ことを知っている。それでも十分楽しいが。しかしそれが人間ならもっと楽しい。そこでMMOしか人間は己もプレイヤーユーザーに合わせて適度なパラメーターで楽しさを演出などしない。そこで人間擬態したボットユーザーに合わせてゲームを盛り上げる。ユーザー人間だと信じているのでモチベーションも最高に。あらゆるゲーム問題点完璧に解決されている。ボットの役目はユーザーの退屈に刺激を与えること。ゲームボットだらけ必要はない。賢いボット利用を。このようなボット効果ソーシャルゲームユーザー間のバランスを調整しモチベーションを維持するために非常に大きいですボットほとんど話題にされない。技術情報に積極的な企業ボット不思議と話題にしない。結果。ソーシャルゲーム開発会社も知らないところが多い。ボットを利用するソーシャルゲームはむしろ少数派。ゲームパラメータ調整だけでは限界がある。ユーザーアクティビティのログ解析はハイレベルだが本当に重要ですログ分析に基づいてボットが適切なアクションを残すことでユーザーを興奮させるのでゲームに活用してください。また歴史人間コンピュータ黎明期以来、初めてボット人間の見分けがつかない世界技術革新を達成したことに多くの技術ユーザーは興味を抱くであろう。ソーシャルゲーム会社技術者を積極採用中。その一端はより優れたボット開発。興味があるなら是非応募を。ソーシャルゲームの一層の発展を願う。

#

最後。謝罪。文章下手であり遺憾の意を表明。修正大歓迎。

2011-09-09

投げ売り堂の App Engine 対応状況 その2。

投げ売り堂で行っているGoogle App Engine の新料金体系対応についてのその2です



Cron 処理を Backends の無料枠で対応できそうだったので、無料分で収まるように Cron で行っている処理を Backends でやるようにしました。

その結果、日額0.1~0.2ドルで月間で3~6ドル程度になりました。



対応前は、日額1.5~2ドルで月間で45~60ドル

対応1で、日額1~1.2ドルで月間で30~36ドル

対応2で、日額0.1~0.2ドルで月間で3~6ドル


なんとか、1000円以内に抑える事が出来、このままだとなんとか大きな課金になる事無く対応は出来そうです



これに加え、新課金体系への移行についてに書いてあるとおり

新料金体系の適応11/1 になったので、落ち着いて作業を行えるようになったのです

現時点においてギリギリでやってる為、 Google App Engine のままだとなかなか拡張もやりにくい事もあります



ですので、やはり通常のサーバーでも動かせるように移植のほうも進めます

Java 以外で使い慣れている PHP を使って同じシステム作成しようと思います

全ての商品を1時間に1回商品情報更新や、フィギュアDVDBDゲーム以外の商品情報も集めるようにし

Cookie で表示商品の種類のカスタマイズ等などを組み込もうかなと思います



自由度が高いので迷っているのですが、どういう形であれ投げ売り堂はこれからもなんとか継続が出来そうです

2011-09-05

http://anond.hatelabo.jp/20110905032607

プログラマーで、家庭を持ち子供も居て、それでだいたい定時退社してる人ってどれくらい居るのだろう?

私感的な答えとしては、普段1〜2時間そこそこの残業という意味ならば2〜3割(SIerや、その下請けを除く)

残業のほぼ無い環境もあるけど、大抵PGとしてエキサイティングではないかな(PHPとかで、まったりとした開発)

(いわゆるエキサイティング職場残業が多い職場 は間違いない)



以下話しがちょっと変わるけれど、知っての通りソフトウェア業界は必ず修羅場が発生する、それですぐ家庭に不和が生じるようならちょっと面倒。

修羅場は「いつまでに終わる」なんて見通しが付かない事が多いので、「いつまで続くの?」なんて相手から責められたら即負け戦。

約束が破られれば火に油となるし、約束できないなんて言ったら冷たい目で見られる。さらには約束が守れても、理解の無い人の多くは(実に理不尽だが)最初から譲歩している気分でいるので、機嫌がよくなるわけでもない。

自分も凄い大変なのに、愛する人に理解されずに責められるのは味方に背中から打たれるようなものだし、つらいよ。


…という事で、仕事を理解してもらえなさそうなら(理解する気が無いと宣言されているなら)、両立は難しいのでは。

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