「HELLO WORLD」を含む日記 RSS

はてなキーワード: HELLO WORLDとは

2016-04-23

http://anond.hatelabo.jp/20160423145512

例えばHello Worldならたいていの言語で書けるけど、あんな回りくどいやり方で文字列コンソールに表示させる意味が分からない

こう感じてしまうなら、IQとか作りたいものがあるとかではなく、性格的に向いてない。

2016-04-11

Hello World!!

最近、この言葉が切なく感じる

See you again! はないんだよ

ドラクエ7エリーみたいな感じ


期待に夢膨らませた開発者の卵がC言語で「Hello World」して、

今では別の言語を使い、C言語には戻ることは無いだろうと思うと

C言語にもサヨナラを言って欲しいな、それはそれで切ないケド

2016-03-27

プログラムなんて誰が書いても同じ

お客さんとかディレクターってこんな認識な気がするんだけど

プログラマとしては技術力の差ってもちろんあるわけで

そこをうまく伝えられないもどかしさがある

LINEが元ライブドアの人たちが作ったみたいなことをホリエモンが言ったらしく

誰が作っても同じようなものが作れるって反応があったんだよ

すごいのはネイバー企画だって

実際のところLINEは出したタイミング絶妙で運の要素が強いと思うけど

あのクオリティアプリを作れるプログラマがどれだけいるんだろうね

同じようなものは確かに作れるよ、でも運用も含めてあのクオリティは凡百には出せない

どうしたらお客さんとかディレクターにそういうの伝わるんだろうね

絵とかだったらわかりやすいんだろうけどね

でもデフォルメを手抜きとか言っちゃう人もいるからそうでもないか

一回何かしらのプロジェクトやらせてみないとわからないのかな

まあHello Worldすらできないだろうけど

2016-02-09

から気分がいい

出社後、少し時間ができたので、ふと、過去に在籍していたベンチャー企業ホームページを見た。


入社時、そこの社長は声高らかに、打倒 google を謳っており

若く、身の程を知らない自分根拠のない高揚感に包まれ入社した。


自分joinした時は、立ち上げ間もなかった頃で資金も潤沢。R and D に勤しんでいた。

だが、半年経ったころ、ふと気付いた。


技術者の類が、自分を含め3人しかいない。

しかも全員、ちょっとプログラムをかける程度。ましてや、自分以外はPHPで"hello world"なレベル


もともと、社長は、某日本企業に在籍していた。

そこから引き抜く予定であった、優秀だと噂の技術者も来ない。


ある日社長に問いただす。

ゴールの確認と、それに向けた会社マイルストーン

「勝てると思ってるの?数も資金技術力もノウハウも、比較にすらならないのに」

その返答に戦慄した。


しばらくして、会社資金繰りに苦しくなる。


出資者から資本金引き上げも相次ぎ、入社当初4億近かった資本金は3000万まで下がった。


リストラも加速。給与も1割減。

ついには受託開発に手を出し始めた。

運用はどうする?インフラはどうする?そんなことも決めないまま、訳のわからない受託案件が飛び込む。

受託に慣れていない社長営業は、3人月で100万とか、どこの会社にも見向きもされれないブラック案件ばかりをとってくる。


1年と半年が経ったころ、自分退職をした。

今は200人くらいの中小企業の開発部でマネージャをしている。


朝、過去いた会社ホームページには事務所移転とあった。

昔は大きくはないが、ちゃんとしたビルに入っていたのに、なんとかマンションの302号室。


いや。ほんとに辞めてよかった。

転職時は、年齢的にもギリギリだったが、あの時、歯を食いしばって動いた自分を褒めてやりたい。

さて、仕事頑張ろう。


こんな自分性格の悪さも、ちょっぴり愛おしい。

2016-01-18

Vimクイズ - 2016年1月

【前提条件】

これらのお題はvim -u NONEでvimを起動した状態で行うこと。

-u NONE以外の引数を付けてはならない。

Vimバージョンは7.3以上とする。

【お題】難易度:初級

コマンドラインウィンドウHello Worldを出力する方法を3通り書きなさい。

ただし、:echo、:echomsg、:echoerrの使用禁止します。

:の次に大文字入力する行為禁止します。

Hello World前後無駄文字列が含まれていても構いません。

2016-01-12

30年くらい前はまだPCに夢があった

当時はマイコンって言われてたけどな。

店頭PC

10 PRINT "ウンコ"
20 GOTO 10
RUN

プログラム入力して、ウンコが止まらなくなるだけで、すごくワクワクしてた。

最近の若者は、Hello Worldじゃつまらんか。

2015-10-09

http://anond.hatelabo.jp/20151009231702

プログラム最初に「Hello world」と表示されるのを見て「なにこれ」みたいな反応か「おもしれー」みたいな反応かで、適性があるかわかるな。

そういうことだ。

2015-09-10

世界いちばん遠回りな世界一周

もう誰も覚えていないと思うけど、3年ほど前、ここに、"Hello world!"というタイトルエントリ投稿した。あの話の続きをしようと思う。

※このお話はたぶんフィクションです。実在の人物や団体とはあんまり関係ありません。

※前回のあらすじ:高校中退工場派遣プログラマホームレス自立支援施設プログラマ海外放浪職業訓練世界一周アプリを作る


あれから3年、いろんなことがあった。またプログラマとして働いたり、またホームレスになったり、福島除染作業員をしたり、本当にいろいろあったけど、 今回の主題にはあんまり関係ないのでざっくりはしょる。今回の主題世界一周についてである

はいつか世界を巡る旅をする。10年くらいかけて。わりと本気で。その計画を立てるためのアプリケーションも作った。でもそのアプリ正式リリース以降、開発が頓挫している。開発を進めるにあたって、致命的な問題があることがわかったからだ。それは、開発者である自身が、この世界について何も知らないに等しい、という問題だ。

開発者は、システム化する対象に関して、誰よりも精通していなければならない。業務用アプリケーションの開発なら、 その会社の業務フローについて、社内の誰よりも詳しくなくてはいけない。システム開発とはそういうものだ。そして今度の対象世界だ。すべての国だ。それを僕自身が知らなくてはならないのだ。

しかし世界は巨大で、そして複雑だ。

国連加盟国は現時点で193か国。それぞれの国の下に州や省や県があり、その下に市区町村があり、そういった階層的な行政単位以外にも、歴史的背景から自治区になっているところや特別行政区連邦直轄領もあり……。

そういや連邦ってなんだろう。なんとなく知っているようでいて、詳しくはわからない。王国共和国ってどう違うんだろう。国の形ってなんでこんなにいろいろあるんだろう。いやそもそも国ってなんなんだ。どうすれば「国」になるんだ。

国連に加盟していればいいのか。いや国連非加盟の国もあるじゃないか。国家の三要素(領域人民主権)を満たしていればいいのか。しかしそれを満たしていることを誰が認定するんだ。他国から承認があればいいのか。その他国は誰が国だと承認したんだ。政治的問題から国なのか国じゃないのかはっきりしない地域だってたくさんある。国とか国じゃないとか最初に言い出したのは誰なのかしら。

それは世界一周アプリの開発中に国データをちまちま作っていたときにも思ったことだ。もしかして「国」というのは、僕が思っていたほど絶対的で、はっきりしたものではなく、相対的で、曖昧ものなんだろうか。

からない。わからないことだらけだ。こんなもの本当にシステム化できるのか。複雑ってレベルじゃねーぞ。これが仕事だったら「うんこー☆」とかいいながら全力で投げ出しているところだ。しかしこれは仕事ではない。これは仕事ではないので、真剣に取り組まなければならないし、投げ出すわけにはいかないのである

だけど、 どうしたらいいんだろう。世界はあまりに巨大で、複雑で、茫洋としている。何かとっかかりが必要だと思った。基点が必要だと思った。人でも物でも事柄でもいい。それをとっかかりにして、基点にして、少しずつ裾野を広げていけばいいのではないか。そう思って、自分記憶を探ってみる。僕の基点、時間軸と空間軸の原点、それは子供のころ、ブラウン管の向こうに見た、落書きだらけの大きな壁だった。


1989年11月ベルリンの壁崩壊した。僕が9歳のときだった。ニュースは連日連夜、この話題で持ちきりだった。興奮気味に壁を壊す人たち、全身で喜びを表現する人たち、泣きながら抱き合う人たちもいた。世界中が大騒ぎになっているようだった。僕はその映像を、意味もわからずただぼんやりと見ていた。

それからしばらくして、社会科教科書世界地図が大きく書き換わった。ソ連という国がなくなり、新しい国がたくさんできたのだという。国がなくなる? 国が新しくできる? その意味もまたよくわからなかった。

時間軸は一気に飛び、ベルリンの壁崩壊から20年以上たったころ、僕は生まれて初めて日本を出た。半年かけて海外放浪した。特に目的もない旅だった。だからその場所に行ったのも、ほんの気まぐれだった。

ベトナムホーチミン市にある戦争証跡博物館ベトナム戦争記憶を後世に伝える博物館だ。旅の途中にふらりと立ち寄ったそこで見たものを、僕はいまでもフラッシュバックのようにありありと思い出せる。

銃器、対戦車地雷、その他さまざまな武器弾薬が「こうやって使われていたんだ」といわんばかりに、実際に使用している場面の写真と並べて展示されている。銃を突きつけられて悲壮な顔をしている男性、道ばたで血まみれになって死んでいる子供、虫の死骸のように雑多に並べられた人の死骸、そんな凄惨な写真がこれでもかと並ぶ。

何か、自分の中で価値観が急速に書き換わっていくのを感じた。頭の中がぐちゃぐちゃになって、いろんな言葉が浮かんでは消えていく。

資本主義

共産主義

イデオロギーとは何だ?」

そのとき同時に頭の中に浮かびあがってきたのが、子供のころに見たベルリンの壁崩壊ニュース映像だった。あれから20年以上たってようやく僕は、あの人たちがどうしてあんなに泣いたり喜んだりしていたのか、少しだけ理解できたのだ。


あの博物館で僕がもっとも強く感じたのは、「戦争悲惨だ」という事実ではなく、「どうしてここまでのことになったのか?」という疑問だった。人が人を虫けらのように殺す、その理由が知りたい。そこには絶対にそれなりの経緯があるはずである。東西冷戦とは何だったのか、僕はまずそれを知らなければならない。

しかしこうなるともう最初から世界史をやり直したほうが早いんじゃないかと思った。よし、時間軸を一気に人類歴史の始まりまで巻き戻そう。

まずは大河流域で文明がおこる。チグリス・ユーフラテス川ナイル川インダス川黄河。うわー、すげー懐かしい。そして農耕が発達する。食料を安定して収穫・保存できるようになると権力が生まれる。そこから世界各地で似たような権力闘争が延々と繰り返される。

特に印象深いのが「カノッサの屈辱」だ。十代のころ、学校でこれを習ったとき意味がわからなかった。この人たちは何をそんなに必死になっているんだろうと思っていた。いまならわかる。目的は、権力そのものなのだ。人の頭を踏みつけること、人を思い通りに動かすこと、それ自体が目的であって、権力によって得られる富や名声は二の次なのだ。それは自分の経験を振り返ってみてもわかる。ヤンキー世界でもエリート世界でも、どんな場所でもどんな階層でも、人間が集まれば、始まるのはいつも頭の踏みつけあいである。それが直接的か間接的か、下品上品かという違いはあれど、やっていることは同じだった。だから世界史に記されたこのくだらない争いの数々も、いまは実感を持って理解できる。

そして絶対的権力者である神によって凍結されていた歴史が、ルネサンス以降、急速に動き始める。宗教改革名誉革命フランス革命。それまで聖職者王侯貴族が持っていた権力が少しずつ引き剥がされていく。そしてフランス王国フランス共和国に。ああそうか、王国共和国の違いって「王様」がいるかいないかなのか。さらに現代の「国」という概念国民国家というのも、このころに生まれてきたもののようだ。人類歴史から俯瞰すれば、ここ200年くらいの「流行」にすぎないのだ。

しかしフランス革命って華々しいイメージだったけど、こうして改めて調べてみると、革命政権恐怖政治によって何万もの人間が処刑されていたり、何度も王政に戻っていたり、混沌としすぎていて、華々しいなんてとてもいえない血まみれの革命だったのだと気づかされる。

そんな混沌の中、産業革命を経て、歴史さらに加速する。権力のあり方も変わる。聖職者王侯貴族に変わって資本家が台頭してくる。資本主義が加速する。貧富の差が拡大していく。賃金労働者悲惨労働環境で搾取され続ける。暗澹とした空気の中、社会主義共産主義という思想が台頭し始める。ロシア革命が起こる。世界初社会主義国ソビエト連邦誕生する。

いままで社会主義ってあまりいいイメージはなかったけど、こうして順序立てて成立の経緯を追っていくと、歴史の中での必然性がわかる。みんな、もう誰も頭を踏みつけあわずにすむ世界が欲しかったのだ。だから既存の権力や富や労働のあり方を強制的に変える。そしてそれが国の形を変える。そうか、国の形ってこういうふうに決まるのか。

しかし計画経済ってなんだろう。どうしてそんなもの必要になったんだろう。と思って、初心者向けの経済学の本を何冊か読んでみた。めちゃくちゃおもしろかった。経済ってこういうものなのかと思った。市場経済では必ず景気は好況と不況を繰り返し、いつかどこかで恐慌を引き起こす。そんな繰り返しをさせないために、計画経済では政府の計画にしたがって商品を生産する。そうか、そんな経済の形もあるのかと思った。ずっと現代日本で生きてきた僕にとっては、市場経済があたりまえすぎて、市場自由がどうの規制がどうのといわれても、これまでピンとこなかった。「あたりまえ」のことは、対比されるものがないと、それを知覚することさえできないものなのだと知った。

その市場経済へのアンチテーゼとしての計画経済は、しかし破綻する。いつ、どこで、誰が、何を、どのくらい欲するか、なんてことを計算し尽くすには、リソースが足りなさすぎたのだ。結果が出ているいまだからいえることなのかもしれないけど、少数の頭のいい集団演算能力よりも、多数の平凡な人間無意識的な分散コンピューティング見えざる手)のほうが演算能力は遥かに高いのである

そして社会主義自体も破綻する。ソ連型の社会主義では一党独裁必要とする。しかし絶対的な権力は絶対的に腐敗する。それは歴史証明している。独裁政権必然的暴走していく。これも僕は経験として知っている。「いじり」がいつも「いじめ」に発展するのと同じだ。他人おもちゃにできる、自分の思い通りにできる、これは権力である。そして「いじり」は場の空気によって正当化されるので抑制がない。抑制のない絶対的な権力は暴走する。だから 「いじり」はいつも「いじめ」に発展する。企業内のハラスメント家庭内虐待も同様だ。人間は好き勝手にできる状況に立たされたとき、好き勝手振る舞うものなのだ。そうか、チェックアンドバランスってそのために必要なのか。絶対的な権力は絶対に生み出してはならない。権力は絶対的に抑制されなければならないのだ。三権分立を唱えたモンテスキューさんマジパネェすわ。

こうして自由主義資本主義矛盾への疑問から生まれた社会主義共産主義は、自身内包していた矛盾によって自壊していく。そして時間軸と空間軸はまた原点に戻る。冷戦象徴であり、永遠に世界を二分し続けるかのように思われていたベルリンの壁が、ささいな行き違いからあっけなく崩壊する。ほどなくしてソビエト連邦から次々に構成国が離脱し(国が新しくできる)、連邦は解体される(国がなくなる)。

天秤の片方から社会主義共産主義が脱落したことにより、その後、世界はまた自由主義資本主義へと大きく傾いていく。混合経済社会主義的な部分が次々と取り払われていく。その結果が、派遣法改正だったり、リーマンショックだったりするのだ。そしてそれらは僕の人生にも多大な影響を与えている。そうだ、これはひとごとではない。遠い昔にあった「歴史」でもない。僕がいま生きている「現代」の話なのだ

そうか、世界ってこういうふうに動いていたのか。少しずついろんなことがわかってきた。国とは何か。イデオロギーとは何か。なぜ法の支配必要なのか。なぜ憲法必要なのか。しかしそれよりも何よりも、ひとつ重大な事実を確信した。それは、世界のすべてを知ることは絶対にできない、ということだ。

ミクロ領域――個人の感情や行動、これはわかる。マクロ領域――世界市場や情勢、これもわかる。しかし両者がどのように関連しているのか、個人の感情や行動が、どのように影響しあい、どのような力学が働いて、世界市場や情勢を動かすのか、逆に、世界市場や情勢が、個人の感情や行動にどのような影響を与えるのか、それを計算し尽くすことは、誰にもできない。それは人間演算能力の限界を遥かに超えているからだ。

「俺は世の中の仕組みをわかってる」「裏の論理まで知ってる」と嘯く人にはたまに出会うけど、そういう人が本当に世界の仕組みを知っていたことは一度もない。本当にただの一度もなかった。陰謀論マクロミクロの間にある巨大で複雑な回路をショートさせただけの反知性主義にすぎない。僕はそんなチートに興味はない。僕は真正から正攻法で、その回路を解析したいのだ。そうでなければ意味がない。

ああ、そうか、経済学とは、それを解き明かそうとする学問なのだマクロミクロの間にある巨大で複雑な回路。それを解析するのが、経済学や、その他の社会科学なのだ。僕はそれを、もっと深く学ばなければならない。

進むベき方向性は見えてきた。しかしここからどうするか。独学ではもうこのへんが限界のような気がする。つぎはぎだらけの学習じゃなく、もっと体系的に学びたい。でもどうやって学べばいいのかがわからない。僕はまず、学び方を学ぶ必要があるのだ。それには、どうしたらいいのか。

頭の中に浮かんだのは、「大学に行く」という選択肢だった。


大学に行く。どうしてそんな選択肢が浮かんできたんだろう。これまで僕の中にそんな選択肢は存在していなかった。そのはずだった。これまでずっと金も時間もなく、ただ日々の生活に追われるばかりで、そんなことを考える余裕は一切なかった。そんなことを考えるくらいなら明日の飯の心配をしたほうがいい。ずっとそう思って生きてきた。

何より僕には自信がなかった。自分みたいな中卒の人間高等教育を受けたところで何の意味もないと思っていた。そんなの僕にはまったく関わりのない知識階級人間世界だと、大学なんて僕にはまったく何の関係もない、別の世界に存在するものだと思っていた。

でも思い返してみれば、その認識は少しずつ変化していた。いろんな仕事をしたり、あとさき考えず旅に出たり、プログラムを組んだり、文章を書いたり、そしてそれを不特定多数の人の目に晒したり、ずっと何かに追われるようにそんなことを繰り返してきたけど、その過程で、僕は何か大切なものを拾い集めてきた気がする。それはたぶん、自尊心と呼ばれるものだ。幼いころに失い、ずっと欠けたままだったそれを、僕はこの歳になって、ようやく取り戻すことができたのだ。

からいまは自分高等教育を受けることに意味がないだなんて思わない。大学が別の世界に存在するものだなんて思わない。ああそうか、だからいま、このタイミングで、「大学に行く」という選択肢が、僕の前にあらわれたのか。

あとはこの選択肢を選び取るかどうかだ。

いまの時代大学に行くなんてそんなにたいしたことじゃないのかもしれない。だけど少なくとも僕にとってそれは、とてつもなく勇気エネルギー必要なことだ。ホームレスになることよりも、右も左もわからないまま海外に飛び出すことよりも。

現実的問題もたくさんある。資金、学力人生の残り時間。いろいろと考え始めると、解決しなければならない問題が多すぎて、わけがからなくなってくる。もうどうでもいいじゃないかと投げ出したくなってくる。でも僕の中の何かが、そうさせてくれない。僕の中の何かが、そうじゃないだろうと責め立てる。

これには覚えがある。この熱には覚えがある。これは、あの旅の途中、自分の中に発見した、マグマのような熱量だ。感情になる前の感情。行動になる前の行動。名前なんてつけようもないほどプリミティブな衝動。僕はいままさに、それに直面している。そしてその熱量からは、どうあがいても逃げられない。それだけは確信できる。

だったらもう、覚悟を決めるしかない。本当にもう、そうするほかどうしようもない。

僕は大学へ行く。

そうやって覚悟を決めてみると、ものすごく気が楽になった。気分が軽くなった。

ああどうしていままでこんな簡単なことに気づかなかったんだろう。その想いはずっと自分の中にあったのに。

僕は、「大学へ行きたかった」のだ。

続き→http://anond.hatelabo.jp/20150910220232

2015-08-25

IT関係ないサラリーマンコミュニティサイト作っちゃいました。

私ごとですが、この度コミュニティサイト作成いたしました。

私の持てる知識を絞り出してなんとか完成しました。

**************************************************************************************

完成したサイトがこちらです。

LapyNetニュース

http://lapynetz.net/

**************************************************************************************

私は普段webとは関係ない仕事してます。なんとか休日を利用して、

webサービス作成しました。

メインのコードはこんな感じ

----------------------------------------------------------------------------------------------------------------------



App::uses('Sanitize', 'Utility');
class RssfeedsController extends AppController {

public $helpers = array('Html','Form','Session','Number','Cache');

public $uses = array(
'Rssfeed',
'Tweet',
'Wadai',
'Rank',
'Oracle'
);
 **************************************************************************************
public function index() {

$title_for_layout = "LapyNetニュース";
$content = "Hello World!!";

$this->set(compact('title_for_layout','content'));
if(date("G")>0 and date("G") < 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' = > array(
'and' = > array(
'Rssfeed.time' = > $today,
)),
'order' = > 'tweets desc',
'limit' = > '50'
);
$this- >set('posts',$this- >Rssfeed- >find('all',$params));

$paramz = array(
'order' = > 'Rssfeed.id desc',
'limit' = > '10'
);
$this->set('posts2',$this->Rssfeed->find('all',$paramz));

$paramz = $this- >Rssfeed- >query('SELECT id,title FROM rssfeeds order by id desc limit 10');

$this->set('posts2', $paramz);

$parapara = $this- >Oracle- >query('SELECT id,title FROM oracles order by id desc limit 10');

$this- >set('postx', $parapara);

$funking = $this- >Rank- >query('SELECT id,frank FROM ranks where creation=(select max(creation) from ranks)');

$this- >set('funking', $funking);


}

 **************************************************************************************
public function mizuno() {
$parapara = array(
'order' => 'Oracle.id desc',
'limit' => '30'
);
$recent_posts = $this->Oracle->find('all',$parapara);
return $recent_posts;

}


 **************************************************************************************
public function wadai() {
if(date("G")>0 and date("G") < 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' => array(
'and' => array(
'Rssfeed.time' => $today,
'Rssfeed.kubetu' => 4
)),
'order' => 'tweets desc',
'limit' => '100'
);
$this->set('posts',$this->Rssfeed->find('all',$params));





$this->set("title_for_layout","2CHニュース-LapyNetニュース");


$paramz = array(
'order' => 'Rssfeed.id desc',
'limit' => '10'
);
$this->set('postyy',$this->Rssfeed->find('all',$paramz));

$parapara = array(
'order' => 'Oracle.id desc',
'limit' => '10'
);


$this->set('postyx',$this->Oracle->find('all',$parapara));

$funking = $this->Rank->query('SELECT * FROM ranks where creation=(select max(creation) from ranks)');

$this->set('funking', $funking);



}
 **************************************************************************************
public function hot() {
if(date("G")>0 and date("G") < 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' => array(
'and' => array(
'Rssfeed.time' => $today,
'Rssfeed.kubetu' => 3
)),
'order' => 'tweets desc',
'limit' => '20'
);
$title_for_layout = "LapyNetニュース";
$this->set("title_for_layout","ニュース-LapyNetニュース");
$this->set('posts',$this->Rssfeed->find('all',$params));

$parapara = array(
'order' => 'Oracle.id desc',
'limit' => '10'
);
$this->set('postxx',$this->Oracle->find('all',$parapara));

$paramz = array(
'order' => 'Rssfeed.id desc',
'limit' => '10'
);
$this->set('postsxxx',$this->Rssfeed->find('all',$paramz));

$funking = $this->Rank->query('SELECT * FROM ranks where creation=(select max(creation) from ranks)');

$this->set('funking', $funking);


}

 **************************************************************************************
public function newnew() {
if(date("G")>0 and date("G") < 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}

$params = array(
'conditions' => array(
'and' => array(
'Rssfeed.time' => $today,
'Rssfeed.kubetu' => 2
)),
'order' => 'tweets desc',
'limit' => '20'
);
$this->set("title_for_layout","エンタメニュース-LapyNetニュース");
$this->set('posts',$this->Rssfeed->find('all',$params));

$paramz = array(
'order' => 'Rssfeed.id desc',
'limit' => '10'
);
$this->set('postszz',$this->Rssfeed->find('all',$paramz));

$paramz = $this->Oracle->query('SELECT id,title FROM rssfeeds order by id desc limit 10');

$this->set('postszz', $paramz);

$parapara = $this->Oracle->query('SELECT id,title FROM oracles order by id desc limit 10');

$this->set('postzy', $parapara);


$funking = $this->Rank->query('SELECT * FROM ranks where creation=(select max(creation) from ranks)');

$this->set('funking', $funking);



}
 **************************************************************************************
public function top() {
if(date("G")>0 and date("G") < 7){
$today = date("Y-m-d", strtotime('-1 day'));
}else{
$today = date("Y-m-d");
}
$params = array(
'conditions' => array(
'and' => array(
'Rssfeed.time' => $today,
'Rssfeed.kubetu' => 1
)),
'order' => 'tweets desc',
'limit' => '20'
);
$this->set('posts',$this->Rssfeed->find('all',$params));

$param = array(
'conditions' => array('times > current_timestamp + interval -600 minute and Kubetu = 4'),
'order' => 'tweets desc',
'limit' => '30'
);
$this->set('posts2',$this->Rssfeed->find('all',$param));
}


 **************************************************************************************
public function view($id = null ) {
$this->Rssfeed->id = $id; //驥崎ヲ√↑荳譁・i縺励>
$user = AuthComponent::user();

$TwimStatus = ClassRegistry::init('Twim.TwimStatus');


$TwimStatus->getDataSource()->setToken(AuthComponent::user());

$statuses = $TwimStatus->tweet();
$rairai = $this->Rssfeed->read(title,$id);
$alcol = $this->Rssfeed->read();
$this->set('post', $alcol);

$this->set('post2', $user);
$this->set('post3', $statuses);
$this->set("title_for_layout",$rairai[Rssfeed][title]."-LapyNetニュース");

$paramz = array(
'order' => 'Rssfeed.id desc',
'limit' => '20'
);
$this->set('postszz',$this->Rssfeed->find('all',$paramz));

$parapara = array(
'order' => 'Oracle.id desc',
'limit' => '30'
);
$this->set('postzy',$this->Oracle->find('all',$parapara));

}
 **************************************************************************************
public function add() {

if($this->request->isPost()){
if($this->Tweet->save($this->data)) {
$this->Session->setFlash('seikou');
$this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11));

}else{
$this->Session->setFlash('sipai');
$this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11));
}
}
}
 **************************************************************************************
public function delete($id = null) {
$this->Rssfeed->id = $id; 
$this->set('set', $this->Rssfeed->read());
$this->redirect(array('controller'=>'tweets','action'=>'delete',$this->data['tweet']['rssfeed_id']));


}
 **************************************************************************************
public function oracle() {
if($this->request->is('post')) {

$user = AuthComponent::user();

$TwimStatus = ClassRegistry::init('Twim.TwimStatus');


$TwimStatus->getDataSource()->setToken(AuthComponent::user());

$contents1 = $this->request->data['Rssfeed']['contents'];
$contents2 = $this->request->data;
$statuses = $TwimStatus->tweet($contents1);


if($this->Rssfeed->save($contents2)) {
$this->Session->setFlash('成功です。');
$this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11));
$this->redirect($this->referer());
}else{
$this->redirect(array('controller'=>'rssfeeds','action'=>'view',$contents11));
$this->Session->setFlash('失敗です。');
}
}


}
 **************************************************************************************
public function makelist() {
$rssfeeds = $this->paginate();
if ($this->request->is('requested')) {
return $rssfeeds;
} else {
$this->set('rssfeeds', $rssfeeds);
}
}

}

----------------------------------------------------------------------------------------------------------------------

rssフィードはこんな感じです。
----------------------------------------------------------------------------------------------------------------------

#!/usr/bin/php
<?php

header('Content-type: text/html; charset=UTF-8');


require_once ('/var/www/html/s/magpierss/rss_fetch.inc');


define('MAGPIE_CACHE_AGE', 60*5);

define('MAGPIE_CACHE_DIR', '/var/www/html/s/cache/');

define('MAGPIE_OUTPUT_ENCODING','UTF-8');


$urls = array(
'*********************************');

$items = getRssList($urls);

echo '<ul>';
foreach ($items as $item) {

$href = mb_convert_encoding($item['link'], "UTF-8", "auto");

$title = mb_convert_encoding($item['title'], "UTF-8", "auto");
$description = mb_convert_encoding($item['description'], "UTF-8", "auto");
$megami = mb_convert_encoding($description, "UTF-8", "auto");

 

 **************************************************************************************


$all = 'http://urls.api.twitter.com/1/urls/count.json?url='.$href;
$Rits = file_get_contents($all);
$Olfe = mb_convert_encoding($Rits, 'UTF-8', 'auto');
$data = json_decode($Olfe);
$tweets = $data->count;

 **************************************************************************************

$checkman = db_check_urls($href);
$checkman2 = db_check_pr($title);

$nowtimes = date('Ymd');

 


if($checkman == 0 && $checkman2 == 0){
#$hrefs = urlencode($href);
db_put_urls($nowtimes,$href,$title,$description,$tweets);
echo "<li><a href=$href>$title</a><br>$megami<p>$tweets</p><p>$checkman</p></li>";
}else{

}


}
echo '</ul>';

 

 

 **************************************************************************************
function getRssList($urls)
{
$rssitems = array();
foreach ($urls as $url) {
$obj = fetch_rss($url);
$rssitems = array_merge($rssitems, $obj->items);
}
return $rssitems;
}

 **************************************************************************************
function db_check_pr($japanese){

$moji = mb_substr($japanese,0,2);
if($moji == 'PR'){
return 1;
}else{
return 0;
}
}
 **************************************************************************************

function db_check_urls($href){

require '/var/www/html/s/database_conf.php';

try {

$db = new PDO($dsn, $dbUser, $dbPass);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$sql = 'SELECT count(*) AS count FROM rssfeeds WHERE urls = :language';
$prepare = $db->prepare($sql);


$languages = array($href);
foreach ($languages as $language) {

$prepare->bindValue(':language', $language, PDO::PARAM_STR);
$prepare->execute();

$result = $prepare->fetchColumn();
if ($result > 0) {
return true;
}else{
return false;
}
}

} catch (PDOException $e) {
echo 'エラーが発生しました。内容: ' . h($e->getMessage());
}

function h($var) 
{
return htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
}
}

 **************************************************************************************
function db_put_urls($nowtimes,$href,$title,$description,$tweets){
require '/var/www/html/s/database_conf.php';
try {

$db = new PDO($dsn, $dbUser, $dbPass);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sikibetu = 5;
$moto = "アニゲー速報VIP";

$sql = 'insert into rssfeeds (id, time,urls,title,contents,tweets,times,kubetu,teikyo) values (?, ?, ?, ?, ?, ?, ?, ?, ?)';

$prepare = $db->prepare($sql);

$prepare->bindValue(1, 0, PDO::PARAM_STR);
$prepare->bindValue(2, $nowtimes, PDO::PARAM_STR);
$prepare->bindValue(3, $href, PDO::PARAM_STR);
$prepare->bindValue(4, $title, PDO::PARAM_STR);
$prepare->bindValue(5, $description, PDO::PARAM_STR);
$prepare->bindValue(6, $tweets, PDO::PARAM_STR);
$prepare->bindValue(7, 'cast( now() as datetime)', PDO::PARAM_STR);
$prepare->bindValue(8, $sikibetu, PDO::PARAM_STR);
$prepare->bindValue(9, $moto, PDO::PARAM_STR);
$prepare->execute();

} catch (PDOException $e) {
echo 'エラーが発生しました。内容: ' . h($e->getMessage());
}
}
?>

---------------------------------------------------------------------------------------------------------------------

**************************************************************************************

参考にした書籍

CakePHP2 実践入門 (WEB+DB PRESS plus)

CakePHP2 実践入門 (WEB+DB PRESS plus)

作者: 安藤祐介,岸田健一郎,新原雅司,市川快,渡辺一宏,鈴木則夫

出版社/メーカー: 技術評論社

発売日: 2012/09/29

メディア: 単行本ソフトカバー

購入: 5人 クリック: 165回

この商品を含むブログ (9件) を見る

Webアプリ開発を加速する CakePHP2定番レシピ119

Webアプリ開発を加速する CakePHP2定番レシピ119

作者: 長谷川智希,デジタルサーカス

出版社/メーカー: 秀和システム

発売日: 2013/09/28

メディア: 単行本

この商品を含むブログ (1件) を見る

**************************************************************************************

一番難しいところはtwitterログインwebサイト連結でした。

cakephp直感できに操作できていいです。

素人のわたしでも操作できましたので。

cakephpを使用しています

webからニュース収集してきます

ツイート数でランキングしてますネット話題を見つけられます

twitterアカウントログインできます

ニュースに対するコメントもできるし、

自分記事投稿できます。(画像も可)

デザインはよくわからないので、

ホームページビルダーを使用しています

今のホームページビルダーは昔と違って高機能ですね。

テンプレートも何種類もあって今はすごいです。

アマゾンawsを使用してます

サーバーWebサーバーデータベースサーバmysql)

に分かれています

今更cakephpを使っている人は少ないかもしれませんが、

データベースとの接続などは楽でした。

twitterアカウントあるといつでも参加できますので、

ニュースを通してコミュニケーション目的としたサイトを目指します。

2015-04-04

「週刊 プログラミングアプリを作る」みたいな学習サイトが欲しい

この記事見て思ったんだけど、

はてなブックマーク - 週刊「しょうもないWebアプリをつくる」創刊号アクセスカウンター | CreativeStyle

http://b.hatena.ne.jp/entry/kadoppe.com/archives/2015/04/syomonai-1st-access-counter.html


タイトルキャッチーだよね。ディアゴスティーニとかあの辺の雑誌を思い起こさせる。でも記事の中身はどうも全然違ってるみたいなんだ。

ディアゴスティーニは、毎週1つ部品付録についてきて、それを全部組み合わせると一個の製品が出来上がるってものだけど、このブログはそんなのではなく、毎週1つアプリリリースするんだって

ここでちょっと話を置いといて、今プログラミング教育だなんだとネットアピールされていて、無料で学べるサイトまとめや有料レクチャー宣伝記事なんかが人気エントリになったりしてるよな。無料で学べるサイトなんかはいくつか覗いてみたりしたけど、ずぶの素人としては最初のページで挫折ちゃうわけだよ。「こうすれば"Hello World"と表示できます」ってその通りやってみても何の達成感も得られないんだよな。だから何なんだって。こういう基礎部分が重要だってことは分かるんだけど、意味が分からずこんなことやってもつまんないよな。結局Hello World表示させるだけでいつも飽きちゃうの。

で、最初の話に戻るんだけど、ディアゴスティーニみたいに「週刊 プログラミングWebアプリを作る」なんてレクチャーサイトがあったらいいのになぁって思うんだよ。「週刊 スマホパズルゲームを作る」でも「週刊 ブラウザゲームを作る」でもいいけど。

毎週ソースコード?が数行アップされて、それを全部コピペしていくだけで、1つのアプリが完成するの。記事ではコードの他に、使われている構文の基礎的な解説や、何のためにその構文が書かれているのかとか解説されるの。

最終的にできるアプリ実用的に遊べたり使えたりするもの。そうでないと単にコピペ作業するだけだとしても、モチベーションが上がらないからね。

コピペしただけで何も身につかないとか言う人もいるだろうけど、「プログラミングアプリを完成させた」という流れを全て体験することが重要だと思うんだ。最初にそういう流れを体験しとけば、その後のHello Worldみたいな基礎的な勉強への苦手意識がずいぶん減るのではないかと。少なくとも俺は減る。

そんなわけでプログラミング学習したいから本当に「週刊 スマホアプリを作る」みたいなの出ないかなぁ~。そういう無料サイトが出る前に、ディアゴスティーニ電子書籍で発売しそうだ。それでもいいけど。

2015-03-13

小学校プログラミングを教える無意味

不可思議である

知識の陳腐化が速い情報技術の分野で、プログラミングを教える意味が分からない。

プログラミング好きなやつは勝手に覚えるじゃないか。

SEPGはポンと分厚い専門書渡されて3ヶ月くらいで覚えさせられるじゃないか。

それでいいんじゃないの?

チューリングマシンノイマンコンピュータアナログデジタル概念といった、理論的なことを学ぶなら有意義だと思う。

だけどウン万もするタブレット買って"Hello World"的なコード書いてオシマイとか噴飯もの

血税無駄遣いやめてくれ。

2015-01-21

童貞処女で子作りセックス

童貞なのに童貞だけど相手は処女がいいとか無理に決まってんじゃん無理無理無理。どう考えてもエロエロ経験豊富なお姉さんに一方的に何もしなくてもエロエロアヘアヘにされる方がいいです。

童貞処女でとか無理だから

まり何が言いたいかって言うとHello Worldくらいしか書けないのに何故か開発プロジェクト一人チームで仕様書もないし要件も定まってない所に大変そうだから一人増やす!!!(未経験者)とかまじ無理なんで。。

まじ童貞処女で作るとかマジ無理なんでどうせ一人増やすならなんでもしてくれる経験豊富なお姉さんを呼んでアヘアヘにしてもらったほうが絶対捗るんで。

ホントマジでエロエロなお姉さんに全部お任せして気持ちよくなりたいです。マジで

2014-09-20

http://anond.hatelabo.jp/20140920220333

puts 'Hello world'

「お、ヘローワールド出たじゃん、これウンコに変えたらどうなるんだよ」

puts 'うんこ'

「お、うんこ出たじゃん、バッカじゃねーの。これいっぱいコピペしたらどうなるんだよ」

puts 'うんこ'
puts 'うんこ'
puts 'うんこ'
puts 'うんこ'
puts 'うんこ'

うんこいっぱい出たよwwww、バッカじゃねーのwwww」

--

これくらいの変態じゃないとプログラムは向いてないかもな

2014-09-18

http://anond.hatelabo.jp/20140918101246

あほくさー

そんなの例一つとっただけでサポートOSが決まるとかwwww

とりあえずRubyなんてマイナートロイクソ言語公式からWindows対象からはずせ

Hello worldしかできないのにWindowsで動くとかいってるようなもんだ

から商用で利用されずオタクオモチャとしてしか使われないんだよ

2014-09-02

http://anond.hatelabo.jp/20140902151456

「publicてなに?staticってなに?voidってなに? mainはメインなんだろうけど []ってなに?argsってなに?なんでint mainstr mainとかあかんの?たまに*印ついてるのなに?全部意味分からんし解説もなしにおまじないって言って飛ばしてるケースも多いしなんか詳しく言ってるっぽいのもあるけどその分かる人だけが分かるような言い方やめて私のライフはもう0よ!なんで一言「やぁ!」っていうのにどれだけのことを理解せなあかんのよ!」

スクリプト言語だろうとその辺の物でてくるだろ。

C++とかだってpubclicだとstaticだの最初に出てこないし。最初からは[]もargsも必要ないし。voidもまあ要らんし。

まりは色々細かいこと出来ないけどなんとなくインタラクティブに"「はろーわーるど」と出力"としたらはろーわーるど、って出したい、

ってだけだろ?

そしたらターミナル立ち上げてシェルecho Hello World!とかやるのが一番手っ取り早いだろ。

それ以上やりたいなら中途半端スクリプト言語やっても詰まった時にわからなくなるからC++とかやった方がよっぽどきちんと覚えやすい。

2014-08-19

増田はてブを200くらい稼ぐ10方法

1. 流行の話題でかつ、誰もがなんか言えるような話題を選ぶ

都会と田舎とか、あちら側とこちら側とか、セックスとか失恋とか。誰もがなんか言えるというのがミソでブクマコメント付きのものが多くなる。

あと機能不全家族、毒親、病気家族の死、障害、精神疾患社会人愚痴、家庭の不和うんこあたりも鉄板だが、量も多いので良いエントリを書かないと埋もれる。強烈でかつ人に言いにくい実体験があればそれを素直に平易に淡々と書くのが良い。ただ、あまりにも文章が下手だと変なの呼び込んで自分が傷つくだけなのでやめたほうが良い


2. 初動に自信がない(つかみが弱いと感じる)なら、投稿時間帯は7時頃、12時頃、15時頃が狙い目

増田夕方以降、どうでもいいものもふくめて流量が多くなるので、良いエントリは流されてしまう。昼間は以外にPVはあるみたいだが流量は少ないので1ページ目に滞留しやすいようだ。しかも1~2ブクマつけばはてブトップページにも滞留する。ライバルエントリが少なくかつ、PVが多いというのははてブを稼ぐ基本であるしかしけっこう昼間にも会社員がみてんだなー俺もだけど

3.一フレーズくらい引用したくなる文を入れる

できなかったら、どっかから借りてきたのとか、流行ってる文句を改編するのとかでもいい。

この人は1と3の合わせ技であるが、うまい

4. 3が思いつかなかったら突っ込みたくなる間違いやあげつらいたくなる文言を追加する

釣り師がよくやるやつ。

1と4の合わせ技+タイトルが3にあてはまる

5.4もできなかったら、誰かをdisる

もうみんなdisってるようなのをdisるならよっぽど一言でうまくdisらないと駄目。え?それ?みたいなのを狙うのがたぶんよい。

6.TBが来たら内容によって応答する時間かえる

何いってんのかわかんない煽りが来たら即座に「黙れやハゲ」くらいやるといいかもしれない。

穏やかでもっともな内容のTBが来たら、流量が多くなる夜に返事をすると、TBツリーが伸びて多くの人の目に元エントリが触れやすくなる

7.当事者や詳しい人が言語化できないことを言語化する

わかってないひとは「なるほど」となるし、当事者は「そうそう」となるので比較的穏やかに無言はてブが成長する

言語化するときは出来る限り、カテゴリに分ける、時系列を箇条書きにする、などのライフハックエントリメソッド活用するとよい。


8.みんながよく知らない世間をにぎわすニュースエビデンス付きで客観的に書く

韓国の話が混じっているとなおよいが、はてな場合嫌韓はあまり人気がないのであくまでも客観的事実を書くことが大事。一番大事なのはエビデンス


語学力があると強い。なお上の二つは相互作用ブクマ数が増えた模様。ココらへんは完全に運。

9. もうなんでもいい。とにかく熱い

増田文学といえば文学なのだが、とにかく熱量があるエントリは好まれる。

日本人アメリカンドリーム的なあれがすきですよねという。

またファンが書いた熱量のすごいエントリ結構割合はてブを稼ぐ。

もうすこしタイトルを工夫すれば200くらいいけたかもしれないが、この人の場合、これでいいんだろうな。

10.とにかく文章うまい

増田文学ブクマが付かないなどとも言われますが…

2014-05-21

スーパー素人SNSを作って世の中を変えようと張り切ってみた。

作ったサイト

無料商品サービス提供し、困ってる人を助けてスキルを高めるSNS

『Query』

http://www.query.ne.jp

みんな自分のやりたいことを仕事にできないか

ほんとは他にやりたいことあるんだけど、なかなか仕事を変えることが難しい人って多いと思います

今までの経験だったり年齢だったりで新しいことにチャレンジしようと思っても諦めてしまったり、

自分がその仕事でやっていけるのかとか、不安などもあって現状を変えられないことが僕には多々ありました。(今年31歳)

そこで

まずは誰かにモニターになってもらい自分がそれでいけそうかを試すサービスを作ればいいんじゃないか?

と思い色々と考えました。

ということで、

  1. 利用者完全無料
  2. 困ってる人の質問サービス提供者はその解決策として自分サービスを提案する。
  3. 提供された人はそのレビューを書くことでサービス提供者の知名度を高める。

ができるSNSを作ることにしました。

さあ作ろう

まず思いついたのがランサーズなどのクラウドソーシングサービスプロに作ってもらうのが手っ取り早い。

しか収益化して制作費を回収できるか分からないし、お金も無いしなので自分で作ることにしました。

まずはPHPHello Worldから勉強、そう僕は全くのプログラム素人・・・

HTMLはかろうじて分かるレベルです。作りたい気持ちはあっても全く作れない・・・

スキルの無さを嘆いても仕方ない、ここは最もハードルが低くても実現可能な方法を探そう。

ということでWordPressを使って作ることにしました。(クオリティは置いといてまずはコンセプトを形にしたかったので)

みんな親切で感動した

PHPはもとよりWordPressですら分からないことだらけです。WordPressについては多くの人がブログ等で情報発信しているので

からないことがあれば質問もできるし、何かと情報収集は助かりました。何回も質問攻撃をしても丁寧に教えてくれる人ばかりで、

リアル社会では人の冷たさに傷ついていた僕は人の優しさに触れた気がしました。・゚・(ノД`)・゚・。

また実装したいこともプラグインとして既に用意されているものが多いので、

まずは形にしたいという方にはWordPress製作することがいいんじゃないかと思います

自分メッセージアプリとして表現する

正直ど素人丸出しのサイトを公開することは恥ずかしかったです、笑いものにされるだろうし。(そもそもアクセスがありませんが・・・

でもこんな世の中にしたいっていうメッセージ表現することは僕自身大切なんじゃないかと思っています

人は一つのことだけやればいいんじゃない、多くのことをやるべきだ

個人による物販やスモールビジネスが何かと話題になっていますが、

今までの経験を使って個人が別のサービス創造できるプラットフォームにしていきたいです。

みんながやりたいことをやって、その結果困ってる人が助かる仕組みを作ればみんなハッピーになれると思っています

意見感想がございましたら幸いです。

読んでいただきありがとうございました。

2014-04-27

GWが普段より長い休日という意味しか持たないオタク社会から断絶されたぼっちリーマンにとって、

部屋整理をするうちに出てきたニトロプラスの0年代ゲームは、たぶん格好の時間つぶしなのだろう。

飯も食わず斬魔大聖デモンベインをぶっ通しでやり続け、

Dr.ウェストに腹を抱えて笑い、エルザの攻略ルートが本当になかったのか、かつてと同じように悩んでしまう。

今日は「鬼哭街CD-ROM版(もちろんリメイクする前)だ。

インストール時にドライブが立てる掃除機のようなあのけたたましいブオオオォォっという音は何度聞いてもいいものだ。

下のバナーが「Hello World」の宣伝で、やべー懐かしいと独り言のように繰り返してしまった。

Startしてから先、いきなり女性が襲われているが、抜けないので次へ。次へ。

行き過ぎて、ホイールロックを回したら更に先へ進んでしまった。

キーボードの↑機能を叩く。

先へ進んだ。

後戻り機能ないぞ、これ。

序盤なので、再インストールし直した。

デモンベインでも、ディスク壊れてたのか?という感じにセリフがシーンごとに飛び飛びだったが、

こっちはセリフ音声どころか後戻り機能無し。結構きつい。

まぁいいさ。時間は大量にあるから

今日徹夜だ。

2014-04-19

ハンバーグの偉大なところ

ハンバーグの偉大なところは、刻んだ玉ねぎが入っていること。

偉大なるイ・ダイン様に敬礼524回するぐらい偉大。

これが分からない奴はプログラミングHello World も書けないレベルだと自覚した上で、

Webエンジニアを諦めるべし。

2014-04-09

#include <stdio.h>をおまじないって説明すると馬鹿にされるけどさ

Cの入門書なんかで#include <stdio.h>を「今はとりあえず、おまじないと思っておいてください」みたいな説明してるとマニアックな人から糞本扱いされるけど、じゃどんな説明するのが正解なんだろうか。

hello worldを書いてる初心者に、プロトタイプとかマクロとかから説明するのだろうか。

なぜプロトタイプみたいのが必要かって言うと、printf()は分割コンパイルライブラリというものに入っていて……とか初心者が納得のいくまで説明をしなきゃならないのか。

「stdio.hというファイルprintf()を使うための情報が入っているのでそれを取り込む命令です。詳しいことはおいおいわかりす」って簡単に説明するなら「今はおまじないとおもっていてください」と大差ないし。

バシッと納得のいく説明の例を教えてほしい。

2014-03-31

PHPを書くと手が震えてくる

俺は請負で業務アプリ作成する残念なお仕事をするプログラマーだ。

最近JavaとかJavaScriptを書いてたりする。

先日PHPコードを久々に書いたのだがあまりのすごさに手が震えてきた

$hoge = new Hoge();
$hoge.execute();

これが動かない。なぜだ。

メソッドの呼び出しが「-&gt」と気づくのに数分の時間を要した。


"hello world".split(" ");

文字列を分割したかった。

勿論これは動かない。

文字列オブジェクトではないからだ。

PHPドキュメントを参照する。

まあ普通に考えて関数名はsplitだろう。

現れる警告文。

この関数PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。

ほう。なにを使えと。

。。見当たらない。。。

下のほうの注意に書いてあるなぜここなのか。

なるほど正規表現がいらないなら「explode」を使えとな。

毎回悩む、なぜ爆発なのかと。

英語にはそういう比喩でもあるのか?

あれ?そういえば「explode」ってマルチバイト対応してなかったな。

なら「mb_split」か?

「split」が非推奨なんだから非推奨だろうがヒントはあるだろうし、一応見ておくか。

非推奨じゃない!

非推奨じゃない!

mb_splitは非推奨じゃないんだ!

俺は考えるのをやめた

だんだん記憶が蘇ってくる

「preg_split」にオプションで「UTF8」をつけるのが正解だったような。

俺は考えるのをやめて爆発の呪文を唱えた。


さてこのプログラムには他のクラス必要なんだが

Symfony2DIサポートしているからInjectするようにしようか。

たぶんAutowiredくらいあるだろう。

class Service {
    /**
     * @var \PDO
     */
    protected $pdo;

    /**
     * @param \PDO $pdo
     * @Inject
     */
    public function setPDO(\PDO $pdo) {
        $this->pdo = $pdo;
    }
}

・・・・?

ドキュメントアノテーションを書く斬新さ!

俺は震える手を押さえながらそっとパソコンの電源を切った。

2014-02-25

http://anond.hatelabo.jp/20140225111921

gccコンパイルしちゃったらGPLだろそれは。

んなわけねーだろアホか。

gccコンパイルしたhello world実行ファイルには、gcc自体は1ミリも含まれねーだろ。

ログイン ユーザー登録
ようこそ ゲスト さん