「CakePHP」を含む日記 RSS

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

2019-02-26

anond:20190226162756

Laravel使い始めたら案件がズッコンバッコン舞い込んできて彼女ができて童貞を捨てれたよ

CakePHPはもう古い

2018-05-09

share-videosが落ちてるね。

cakephpファビコンが表示されてた。phpで作られてんのか。

xvideosって落ちたことあるのかな

2017-11-10

CakePHPで作られたプロジェクト

自動でLaravelに変換するコンバータとかないんだろうか

2017-05-02

http://anond.hatelabo.jp/20170501041533

レスポンスヘッダー抜粋

Cache-Control:no-store, no-cache, must-revalidate

Connection:keep-alive

Content-Encoding:gzip

Content-Type:text/html; charset=UTF-8

Pragma:no-cache

Server:cloudflare-nginx

Set-Cookie:CAKEPHP=xxxx

X-Powered-By:PHP/7.0.18

2016-11-06

http://anond.hatelabo.jp/20161106094548

LaravelのCRUD程度ができる、CakePHPはやったことないけど同じPHPフレームワークだし覚える気はある。

jqueryアコーディオンとかは何も見ないでも作れるが他はネットで調べつつ。

PostgreSQLをよく使ってたけどMySQLはしたことない。

でもフレームワーク使うならSQL文ほぼ使わないだろうから追々覚えたら行けるだろ

って考えの大阪プログラマーだけど雇ってもらえます

エンジニア雇いたい

CakePHPでの開発がちょろっとできて、

jQuery程度がちょろっと使えて、

MySqlがちょろっと使える。

そんなLv10程度のエンジニアを、月収25~30万、賞与入れて年収400万くらいで雇いたいんだけど。

ゴリゴリスーパープログラマーとかじゃなくて全然いいんで。

けど見つからないんだよね。

そんなにエンジニア給与って上がってるのかな?

どこの求人サイトに、このクラスエンジニアが集まってるんだろ。教えてくれ。てか君を雇いたい。連絡くれ。

2016-11-03

なんでruby on rails5の本は出版されないの?人気なくなったの?

普段プログラマーやってるんだけど

暇なときAmazon眺めてるわけです

買う目的以外にも、いま何が流行ってるのかを本の出版の流れから推測してるわけですよ

いやgoogle検索とかQiitaとかgitHubとかほかにもいろんなところから流行りを推測するなんてあるけど

本の出版ってはやりがわかりやすいなって思うんだよね

やっぱり本で勉強するのが一番だと思ってるおじさんからすると、本が出版される=流行ってるってことだと思ってるからねいまだにw

それでみると今は明らかにpythonがキテるわけですよ

あんなに本がなくて困ってたのに、いまや出版ラッシュ

こりゃ本当にデータサイエンスが盛り上がってるんだろうなって感じ

そんで相変わらずのSwiftね。これはもうiPhone開発の必須だもんね。とくに日本じゃiPhone

そんでJavaだ。アンドロイドサーバーもいけるもんね

同じくらいunityがもりあがってるなってのは感じる

地味に本が出版されつづけてるJavascriptPHP存在感あるなって思いながら見てたんだけど

あれ?Rubyは?railsは?って思ったんだよね

最近俺は追いかけてなかったんだけどさ

本が出版されないんだよね

4のときはすさまじい速さでキャッチアップして本が出版されたのにさ

不思議なことにドットインストールも4止まりだし

もうみんな分かり切ってるから出版されないの?ネットで十分じゃい!みたいな

本なんて情弱のもんだろ!PHPやってろ!みたいな?

Rails界隈の人だれか知りませんかね

それとlaravelとか出版されないね海外では人気です!っていうけど

PHPは地味に出版が続いてるけど

cakePHPは2年前までは出版されてたけど今は全然

それからjQuery流行り終わったなって思う

ネットでやたらうるさかったフロントエンド界隈は全く本が出版されないね

ReactとかAngularとか

でもそれでいうならRails4のときの盛り上がりは何だったんだろうってくらいみんな一生懸命だったよね

から5の無風感が怖いんだよね

そもそもWEBアプリオワコンとかそういう話なのかな

2016-05-04

http://anond.hatelabo.jp/20160504210233

若い娘に CakePHP 書かせてレビューで「ここでエッチしないとダメだよ」って言うのとてもいいよ

経験のある BBA は何も言わなくてもエッチちゃうので何もいうことがない

2016-04-03

某社エバンジェリストに対するネットの反応 その2

江添○

キャラクター名前プログラミング言語だなけのコマ割りされた絵にどれほどの価値があるというのか。

技能実習生受け入れ事務コンサルタン

このままエバンジェリストという肩書き価値が毀損され続けていって、最終的に「エバンジェリストという呼び方ダサいから皆さんやめましょう」みたいなところまで行ったらちょ○どエバンジェリスト評価できる

みす○

最悪なことにエバンジェリストという単語某氏を表すために使うことが可能になってしまった


みす○

そういえばエバンジェリストブロックされてるし、ブロックされてる人たくさんいるっぽいけど大丈夫なのか?

あづ○

まり美少女になってエバンジェリストになろう?

nakfi○ a.k.a. nori○ ‏

nakfiv a.k.a. noriPさんがはっち○@イカ勢をリツイートしました

M○のエバンジェリストについては全体的にそれほどステータスではないという印象。むしろイメージとしてはマイナス(火に油を注ぐ

そけ○

エバンジェリストゲシュタルト崩壊

yado○arielectric

宣伝しなくても売れるものエバンジェリストは要らんよなあ

y.sak○maki(ぺちぱー)@就活

エバンジェリストって、経験年数が短くてもなれるんだね:p

y.sak○maki(ぺちぱー)@就活

新卒でたった2年でエバンジェリストか、顔が可愛い女性人生で得するんだね。

顔が落第のブスがC#腐女子と名乗っていたら、果たしてM○は入社させたり、エバンジェリストを名乗らせたのかね?

やぷら○ ‏

エバンジェリストっていうか日本人にはよく分からないから"プリンセス"とかどうですか?

matt○

君がエバンジェリストになれないのは、君がオッサンからだ。

人権尊重され太○

エバンジェリストを名乗るには製品の利点と欠点を正しく説明できる必要があると思うんですけど、例の人があるポイントが利点である欠点である理由をちゃんと説明できる人材かと言われると絶対違うよね

み○ー@CakePHPマン

おっさんエバンジェリストは多すぎて、エバンジェリスト価値がない模様

みす○

これはぼくの妄想なんですけど、インターネットで姫活動して影響力もっただけでエバンジェリストになれるんですね…

にん○

件の人がエバンジェリストになっても、リーチ出来るのは若者じゃなくて囲いのおっさんなのではって気が

r.tamur○

ここ最近のM○の素晴らしさを説いて身にはエバンジェリストの件は残念、ただただ残念です。

ちゅー○

ちゅー○さんHaskell野良エバンジェリストって言われた事があるけど喜んで良いのか良くわからなかった。

ユリア・クソリプニツカ

エバンジェリストって客寄せパンダの事じゃなかったよなぁ

カミジ○@ファンタ 2ヶ月間都民

エバンジェリストってなんだっけ感は有る

My C○

M○KKに雇われた姫「(M○の宣伝)なんですよ~」Micr○softエバンジェリストより給与の低いエンジニア「なるほど~」

め○

うーん、あのM○のエバンジェリストの件、こけそうな気がするけどなぁ。

技能実習生受け入れ○務コンサルタント

これ普通にMicr○softエバンジェリスト各位の信用にかかわるのでは……

道仂○@Sシャープマーカー使い

ぶっちゃけ M○ のエバンジェリストってほとんど知らない。布教する以前に布教するマンの知名度がないの、全然仕事にならんだろうし、もっとコンテンツ力の高い芸人さんを増やして欲しい。

牛ま○

彼氏自殺に追い込んでもエバンジェリストになれるのすごい。

A○

絵が描けるTwitter芸人で、ある程度プログラミングをしていればエバンジェリストワンチャンということか

ウカヤ○

こりゃ来年あたりにはyoutuberからM○エバンジェリストが出てきてもおかしくないな

狂える中○女子ボレロ村上陶芸C++er

C#エバンジェリストにどんどんC#質問をぶつけていこうな

ウカヤ○

M○のエバンジェリストってTwitterで使ってますアピールしとけばなれる程度のやつだったのか

人生たの椎名林○(求職中)

少なくともこのルックス能力エバンジェリストでしょ、マスコットみたいなもんだし月300時間激詰めとかされることはないでしょ。給料はいいだろうし。

にゃはは○

でもエバンジェリスト宣伝して、じゃぁこういうのはできるんですかって言われた時に、いやわかんないですって返ってくると、それ大丈夫なん、、、って採用見送るとかあるのでは

Kohei YOSHID○

テック企業エバンジェリスト技術に明るくなくてよいのなら堀北真希採用してくれ

ぱんた○

わかるか、真摯技術と向き合わないエンジニアでも女で顔が良ければチンポ騎士団に囲まれてM○KKに入社できるのだ

ミァハちゃ○

こう、M○KKエバンジェリスト話題が出て炎上すれすれの呟きを行うプレイヤーの出現を、

ドロシーさんチ○チン無くないですか(笑

ぼくもM○KKに「あの人よりちんぽ舐めるの上手いですよ!!!!」ってアピールして雇ってもらうか

Taro ○atsuzawa(組長)

M○KKは世界に線を引いたのだ。姫のいる世界とそうでない世界を...

Taro ○atsuzawa(組長)

M○KKは身辺調査したって姫本人が書いてるんだけど、さすがに交友関係とかは特殊所以外は見つけてもスルーするだろう。それこそ差別とかの対象になる。ただ、それ以上に近づかないようにしようって思わせるチカラが強いことに気づかない、むしろチンポナイトを取り込むという姿勢評価できる。

文殊

M○KKもソーシャルブックマークサービス(ちょ○どの彼氏ブックマーク出来ない)を始めよう

なんちゃらようへ○

ちょ○ど氏M○KK入社おめでとうございます!!となりのブスもきっと喜んでると思います!!!

二次元美少女アイコ

ちょ██女史がM○KKの姫に成り上がった日に北条かやの没落。対比は文学の基本だよね!

たっくま○

chmod氏M○KKにエヴェンジェリスト入社ですかそうですか。M○エヴェンジェリスト肩書ストップ安しませんかねこれ、要はアイドル肩書だってことでしょ

♥○

♥ ‏

M○KK には姫を雇える余裕があるのか

どらい○

俺もM○KKの人事になって姫の枕営業受けてぇなぁ

弱い○

台湾にならってM○KKも姫を擁するようになった?

ふくさんのグッドフクサニティ

M○KKに入社すれば才能のある若者と認められる


た○ゆら ~食行写真

えっMSKKなんかやらかしたののと思って事情を見たらなるほどこれはw

A○

M○KK本当に最悪。

丁稚○帝(ライフスタイルエバンジェリスト

M○KKのイメージみんな良かったんですか??????信じられないです

cocoonう○

みんなちょ○ど某がM○KKに入ったことを基本的批判的に見ていて、意外とこの業界でもあのひと嫌われてたんだなあと思いました。ITギョーカイとやらの知能は幼稚園児並みではなかったのですね。

誠○

M○KK、エヴァンジェリスト中途採用するだけの会社というイメージができつつある。

ぷりんた○

M○KKの姫になったことで格が上がったと書きそうになったけど、M○KKの名が落ちた感があるのでそんなこともなくなった

文殊

M○KK何やってんの

蟹の赤ちゃ○

ちょ○どさんM○KK入社おめでとうございます.ところで痴話喧嘩の末に死に追いやり,その後しれっとFacebookのフレンドから削除していた元カレ南山まさかず君の遺品の『型システム入門』はちゃんと読みましたか? エバンジェリストのみならずエンジニアとしての成功も祈念しております

unagi○

M○ のやるべきことについて M○KK は梯子を外されてるからああなってるんだと思う。

マ○

起きたらM○KKが最悪の会社になっていた

めびなんと○

M○KKの童貞一本釣り

技能実習生受け入れ事務コンサルタン

M○KKの技術に対する姿勢可視化されて結果的に良かったのでは

almost 100 % correc○

M○KK が姫チーム作って姫を必要とするイベントガンガン M○ の宣伝しに行くの本当にディストピアって感じがする

ssig3○ ‏

リクルートみたいな会社がちょ○ど使ってゴミを集めるのはまあ理解できるけど、マイクソフトがそれやるのはマイクソフト不利益しかないし本当に M○KK はゴミだめだと分かる

502b○ ‏

M○KK、本当に仕事してるのか???

社会の歯○ ‏

M○KKには失望した

きみとぼ○@研究室決まった

@nanTosaka2 まぁ、M○KKとしてはMVPとかにして広報に使いたい所だけど、MVP審査はM○本社がやってるので、なかなか出来ない、それならもう雇えばいいじゃんって感じですかね

almost 100 % correc○ ‏

すごい話だなーとは思うけど、M○KKには関わらないようにしよう

豊○

ちょ○どみたいな姫気質のある人間は外ヅラばかり気にしているか本質的能力ツリーを疎かにしたまま業種をただのファッションとして利用することばかり考えるし絵を描いても顔以外はドヘタクソのまま成長しないし彼氏自殺に追い込んでも以後の立ち回りが上手いからのうのうと生きることが出来る。

みす○

まだ南山まさかず氏の元カノツイート反応あるので一応明言しておくと、世の中おかしいよなっていう風に思うだけであって個人を批判する意味やそれの是非については一切の評価はしてないです。しているように見えたとしたらそれはぼくの妄想の上での評価です

やぷら○

でもまあ南山まさかず氏のことについて触れただけでブロックされたのは事実だよね

伊東瑞○

そういえばちょ○ど姫様は南山まさかずを追い詰めた時の様な式神の使い方を覚えたようですね。式神を使い他人を追い込むことになんの抵抗も無いようで

それがし○

オタサーの姫的ポジションの人が出世した場合オタクの反応を見ている。>ちょ○ど

南山まさか

しかしまフォロワー数5000のアルファーTwitter痴話喧嘩したら絶対に勝てないというのが新しい知見として得られた

2015-10-07

PHPWEBフレームワークを使いたくない理由

LaravelやCodeIgniterFuelphpCakePHPなど、プロジェクトごとにフレームワークインストールしなければならないので、使い回しが出来ない。

Zend Frameworkはそんなことないが、雛形がないのでルールを決めないととんでもないコードを生む。

プロジェクト内にコアファイルを置くのが気持ち悪い。

限られた容量のレンタルサーバを使うときにLaravelを置くだけで15MB以上消費するのが気になる。

人気なフレームワークLaravelやsymfonyCeleron 1コア、メモリ1GBの環境では重かった。

数年毎にトレンドが変わるのでrailsdjangoのような鉄板がないこと。

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-07-14

童貞プログラマーエロサイト作ってみた

作ったサイト

AV女優検索

http://pornstar.jp/

かつて好きだった人の写真好きな芸能人写真から顔が最も似ているAV女優検索するサービス

既に好きなAV女優から新たなAV女優を発掘するという利用もできます

動機

僕はAV女優を顔重視で選ぶのですが、いろんなエロ動画サイトを見ていると、有名ではないが、自分の好みな顔のAV女優を見付けることがよくあります

既存エロ動画サイトテキスト検索することは可能ですが、もしかしたら、まだ自分の知らない自分好みなAV女優がたくさん存在するかもしれないと

もし顔で検索できれば自分AVライフもっと楽しくなるだろうと一念発起して開発しました(開発期間は半年くらい)。

システム構成

レンタルサーバーGMOクラウド Public
WEBApache
DBMySQL
プログラミング言語PHP
フレームワークCakephp
UIBootstrap
認識Face++

簡単に仕組みを説明すると、

①DMMのサイトスクレイピングしてAV女優基本情報名前スリーサイズなど)を登録

②DMMのAPIを利用して、それぞれの女優作品を取得して、パッケージ写真中の顔面積を測り、最も面積が大きいパッケージ写真登録

ユーザーアップロードした画像からFace++のAPIを利用することで顔検索して、最も似ているAV女優を8人表示

終わりに

今はまだ、顔認識を他のサービスに頼っているので、いずれ内製化して全て自分で開発したいと考えています

また、今は静止画でとどまっているので、動画範囲を拡げて、画像アップロードすると、

自動的画像に似た女優が出演する動画を表示する仕組みも開発したい思います

2014-11-03

急募WEBディレクターエンジニア【60万円】

仕事内容

Pinterestもどき画像ソーシャルサイトgazou.comのディレクション&開発。

(ベーシック認証がかかっています。)

現在の完成度70%くらい。年内のリリース目標です。

サイトは以前制作した↓のサイトベースになってます

WEBサイト発注してみた。

http://anond.hatelabo.jp/20120318122617

応募要件

WEBサイトディレクション経験のある方(改善の指摘、提案)

WEBサイトリリースまで面倒を見てくれる方

発注者要望エスパーできる方優遇

開発環境:cakePHP

募集期間

一週間くらい

参考にしたサイト

Pinterest

tumbler

はてブ

はてなフォトライフ

ついっぷるフォト

報酬

600,000円(税込)

(内訳はディレクション20万、開発30万、リリース後1週間のサポート10万で見積もっています)

どんなサーバー構成にしたら良いか分からないのでサーバー構築を10万くらいで

外注しようと思っていますのでサーバーの構築も可能でしたらプラス10万になります

サーバー代は月5万円を想定。現在さくらの安いVPSを使ってます

ここがスゴイ

なんとドメインが激レアgazou.comです!

海外ドメインオークションで運良く15万で落札しました。(他に入札者がいなかった)

ドメイン名負けしないサイトを作りたいと思いますので宜しくお願いします。

資料

初期の企画書&ワイヤフレーム

http://oi.jpn.org/files/gazou2.xls

TOPページ

http://oi.jpn.org/files/top-page.jpg

今までの仕様まとめ

https://docs.google.com/spreadsheets/d/1Rg8Fosxw_qYO5MW6QTNMvuBzsZ2qkTRyGvI2Mux01Og/edit?usp=sharing

連絡先

twitter @hhungry

obinat2@gmail.com

普通サラリーマンで深夜帰宅が多いためレスポンスが悪いです・・・

とりあえずサイトを見てみたい方はお気軽にご連絡ください。

1年近く前からWEBサイト制作してるのですが、自分ディレクション能力が低く

なかなか完成の目処が立ちません。修正したい部分を外注エンジニアデザイナー

どう伝えたらよいのか、自分でもどう修正したら良いのか分からないことが多く難航しています

基本的機能(タグ画像投稿)はベースサイト実装してあったので2,3ヶ月で制作できると

考えていたのですが甘かったです・・・

100%の完成度をを目指してるわけではありませんが、リリース後に大きなシステム変更は

できないので破綻しないよう基本機能実装してからリリースしたいです。

なんで増田募集

ランサーズデザイン発注をしたのですがWEBサービスにあまり詳しくない方だったので

WEBサービスに詳しい人が多そうなはてな募集してみることにしました。

例えば一般的な通知ボックス実装

1.ボックスボタンの下に隠れるので最前面にする。

2.プルダウンが左端だとメッセージが見切れるので右端にする。

3.ボタンクリックトグルにする。

仕様の説明が必要でした。

↓1月にランサーズデザイン発注したとき案件です。

新規ウェブサービスデザイン UI設計

http://www.lancers.jp/work/detail/255520

実装済みの機能

ソーシャルログイン画像アップロードTaberarelooから画像投稿

ブックマークレットから画像投稿

修正したいところ

画像ページにコメント欄の追加。(ベースサイトコメント欄機能転用)

ユーザーページがなんか変。

サイト下部のページャーが変。

荒らし対策

アダルト画像対策

(特定アダルトタグが付くと「R-18タグが付いて、画像を表示・非表示する設定はできています)

タグの登録・削除がスマートじゃないので修正。(Gmailのラベルみたいな感じがいい)

URLスマートじゃない★重要

e.g. ttp://gazou.com/members/uploadlist/4309

サイトの細部修正

金額内に収まらない修正妥協可能です。

サイトリリースまでの道筋を作ってください!

2014-09-02

PHPフレームワークバトル。世界はLaravelだ!

http://bigchinpo.blogspot.com/2014/08/php.html

PHPフレームワークCakePHPにするか、それともええ格好して穴場を狙うか悩んでいたけど、これで決まりだ。

世界の潮流に従うのが気がらくだw

2014-05-17

オタク婚活パーティーアエルラに行ってきた結果wwwwwwwwww

彼女は出来ませんでした。Googleにでも広告出したほうがよかったか

まぁ、せっかくなのでレポでも書いてみようと思う。なんかの役に立つ人がいるかもしれないし。

俺のスペック

  • 29♂
  • 渋谷IT企業勤務
  • 年収は600万円ありません
  • 見た目については察してください

パーティの流れ

公式サイトシステムから予約をとる

野郎は8000円で、女の子2000円だ。まぁまぁする。

男性10名、女性10名が参加することになっている。

当日、開始前15分に開場

連絡メールには「開場30分前ぐらいに来るといいですよ」とか書いてあったのだが誰も来ていない上に廊下で待たされるハメになった。なかなか素晴らしい運営だと思った。

手荷物を預けて、小道具一式を受け取る

指示された席について待つ

スタッフの人がドリンクを持ってきてくれる

ドリンクフリードリンクになっていて好きなだけいただける

司会から諸注意の説明がある

スタッフは司会+5名前後で全て女性なので女性安心かもしれない

以下の点について注意がある

自己紹介タイム10人を1人持ち時間5分で周る

5分と言うのは恐ろしく短くてあっという間に終わるのだが、それを10人、休憩なしでしゃべりっぱなしなのでかなり疲れる。コミュ症というか話すのが苦手な人は相当しんどいと思う。

・・・といっても、大体の場合は(自分も、相手もだが)一目見た印象と相手のプロフィールシートを見て一言二言会話してその瞬間にOKかNGかが判断されてしまうので、5分のうち3分ぐらいは殆ど無意味であると思う。

中間集計を取る。手元の紙に第一・第二・第三希望の相手の番号を書いてスタッフに渡す

20分休憩

ケーキいただきつつ、野郎同士で楽しく仕事の話でもした。異業種交流はやはり面白い

中間集計結果が出て、各人に紙で渡される

このシステムはなかなか良く出来ていた。書いてある内容は以下のとおり

こう書かれるとなかなかテンション上がって舞い上がるものなのだが、よくよく冷静に考えてみると、10人いるうちの1人が俺に投票する確率が全て均等だとすると

1 - (9/10 x 8/9 x 7/8) = 0.3

で、10人いるので

0.3 x 10 = 3.0

となり、まぁ何もしなくても普通に3票ぐらいは入るのである。つまり平均ピッタリ。そもそも最終的なマッチングではおそらく本命となる第一候補が優先されるはずなので一番目以外の票はあんま意味ない気がする。

次は指名しての会話タイム。1回につき10分、4回指名が可能で、

  • 1回目は女性から男性を指定
  • 2回目は男性から女性を指定するが、一度話した相手とは重複してはならない
  • 3回目はどちらがどのように指定してもよいが、一度話した相手とは重複してはならない
  • 4回目はどちらがどのように指定してもよい、一度話した相手との重複も良い
  • 指定方法は番号順に1列に並びその人のもとに歩いて行くというパブリック形式

さすがにもうだいぶヘロヘロである正直しんどい

人気のある人は一瞬で埋まるようだ。

最後余った人が出たようで、女性同士二人で話している姿が見られた。なんだそれ。

最終投票中間集計と同じように行う

結果を待つ

結果発表、以下のように結果発表が行われる

  • マッチングの結果を、その場で、全員の前で、司会の読み上げで発表する
  • マッチングした相手同士は起立
  • 発表順序は番号順だが、おそらく一番人気の人のマッチング発表のみ最後に回されている

結果発表後、マッチングしなかった女性陣だけが全員が見守る中、手荷物を渡されて撤収

その後マッチングしなかった男性陣も全員が見守る中、手荷物を渡されて撤収

女性側にはリピートフォロー施策が入っているようだ。最後に次回使える割引券を配っていた。俺ら野郎には何もなし。

問題点

少々乱暴だが、以下、マッチングしたものを勝者、しなかったものを敗者とする。

問題点その1。見ればわかるが最後結果発表まわりがあまりにもクソである。企画やってる人間を即座に更迭していいレベルでクソ。公衆の面前で敗者を晒すとか何考えてんじゃボケ

ちょっと考えてみよう、運営利益を最大化するのに必要なのは何か?新規顧客またはリピーターである。このうち新規顧客よりもリピーターのほうが圧倒的に得やすい。現行のシステムは勝者側に優越感を与えさせることは可能かもしれないが、それが勝者側の満足感につながり口コミの機会を与え新規顧客開拓になる確率と、敗者側がこのシステム屈辱を受け絶望して離脱する確率、どちらが高いか、こんなもん即答ではないか。ただでさえ弱いオタクマインドを踏みにじって楽しいか?それより中間集計と同様に書面でこっそり渡し、ペア同士をあとから別の建物に移動させてマッチングさせて、ふたりきりにしてあげればいいではないか。敗者は傷つかない、勝者はドキドキしながらマッチングを楽しめる。どうして技術屋の俺程度が思いつく程度の演出すら思いつかないのか。何年運営やってんだこいつら。アホか。

とにかく敗者側に対するフォローが圧倒的に重要なのである。今回はペアにならなかったけど、あなた投票してくれた人がこんなにいるのよというのを最終結果で見せてあげればいい。モラルとしてはクソだが、利益がほしいなら最悪嘘をついてこんなに沢山の人から投票されてましたが惜しくもマッチングなりませんでしたと偽っていい。そうすればもう一度リピーターとして来てくれるかもしれないではないか。それが出来ない理由が・・・まあ邪推だが、次の問題点になる。

問題点その2。最終結果のマッチングロジックが完全にブラックボックス。誰が誰に何票投じたか当事者にすら伝えられない。ただ結果だけが発表されるのである。つまり運営側恣意的チートがいくらでも可能になるのである。もちろん自分が書いてもいない相手にマッチングしたら一瞬でバレるが、2番目3番目の人であれば好き放題に組み合わせることが原理上可能だ。これも当然敗者側の不満になる。

その他感想

正直8000円の価値あったかというと微妙。まぁお金出して実質成果ゼロなんで微妙に決まってるのだが。これでは最近始めたモンストガチャを8000円ぶん回したほうが有意義である自分に成果がなかったのでもちろん意見マイナス方向の強烈なバイアスがかかっているのだが、それでも割高感はあるし、何よりすでに書いたが司会進行・運営が本気でクソだと思っている。比較対象として、以前SCRAP実施していたリアル婚活ゲームと言う名前出会い系リアル脱出ゲームに参加したことがあるのだが(これも成果はなかった)、値段も通常のリアル脱出ゲームと同じだったし普通に楽しく満足して帰ることができた。女の子とも話せたしね。

女の子と話せたといえば、人間観察の練習にはなるなと思った。女の子は実にウソをつくのがうまい、興味があるかのようにこちらの話を聞くのが本当に得意だ。自分馬鹿正直で思考が全部表に出るのでそういうスキルが大変羨ましい。まぁそれでもよく観察していると自分に興味があるかなかぐらいと、誰に興味があるかぐらいはすぐにわかるので、そういう練習に良いと思う。

あと、10人も来れば1人ぐらいは普通に自分好みの可愛い人が来るってのはわかった。といっても先方はこっちに興味が無いのがすぐにわかったのでつらたん

反省点としては、名乗る名前本名がやっぱりいいです。ハンドルネームはそれだけでなんか良くないですね。

余談

終了後、負け組4名のうち3人で意気投合して飲みに行った。レトロゲームの話などして実に楽しかった。一人は明らかに仕事できそうな一部上場企業の品管で、もう一人が工場技術屋だ。彼らは知り合いで、もう一人連れてきて三人で参加したらしいのだが、二人はダメでうまくいったのは一人だけということらしい。マッチング後がどのようなシステムになっているのか気になるので、彼らからの続報が非常に楽しみだ。それにしても俺はともかくとして彼らのスペックダメってのが正直わからん。見た目もぜんぜん悪く無いと思うし。・・・まぁどうでもいいことだ、きっと女の子と言うのは総じて技術屋が嫌いか、またはよく喋る男が嫌いなんだろう、知らんけど。もう二度と行く気もしないし、アカウントも消すなり凍結するなり勝手にして頂いて結構だ。

余談2

うそう、彼らのウェブサイト (http://aellura.com) だが、PHP、おそらくCakePHPで動作しているようで、決済系や申し込み系のURLがauto_incrementalなintになっていてなかなか香ばしいなと思った。例えばエントリー確定のURLhttps://aellura.com/secure/entries/fix/45000 で、決済確定のURLhttps://aellura.com/secure/payments/send/45000 と言った具合だ。ふーん、4万5000人ぐらいが使ってるんですか。ちっともセキュア感がない。同社の別サービスアエルネも同じシステムを使用しており、同じようなURL設計になっている。個人的にはこれだけでずいぶんとげんなりだ。

追記
追記2
  • 計算式を直したつもりで直ってなかったので再修正。3が正解です。

2014-05-06

http://anond.hatelabo.jp/20140506200711

零細経営者だが、こういう人見つかるかききたい。

PHPモックアップしたウェブサービスの追加開発(いっそRubyとかCakePHPで1から作りたかったらつくってくれてもいい)

希望

企画設計から入ってほしい。

<月収>

月100時間労働20万円。他でダブルワークしてもらって構わない。

あるいは月200時間で40万円で、ダブルワークはなし。

必要技術力>

ドットインストールレベルは最低限必要

その他、クローリングやその都度覚えて開発するマインドがあることが重要

なお、ドットインストールぐらいは社長自分自身ができる(私は営業畑)ので無茶なお願いはしないと思う。

なお機能的なデザインへの関心が強いことが望ましい(無印はてなCookpad,iPhoneを美しいと感じる人、なんで美しいのかなんで使いやすいのかを考えたことがある人がいい)

<なぜ採用したいか>

ユーザー数の伸び。収益の伸び。

サービス市場シェアを取りにいきたいが、ざっと作ったサービスのため荒い。

かい詰めをしていきたい。

<なぜlancers,Crowdworksではないか>

丸投げではなく、コミュニケーションをとりながら「良いサービスづくり」を頑張ってほしいから

こちらにはお客様の声やこういう機能があるとよいという案がたくさん溜まっているが継続的な開発が必要だと思うので大切にしたい。

2014-04-29

増田

増田って名前かとおもった

CakePHPやってみようと思ったらなんかエラーでてる

時間がなんとかとか

英語勉強しておけばよめたかなぁ

2014-04-08

本当にいたキモいエンジニア

ホントキモくて鳥肌たった(もう二度と飲み会に呼ばない)のでここで吐かせてもらう

1.灰色ハイジを欠かさずチェックしてて勝手兄貴気取りでブクマしてる

2.モモクロがすきで応援する用の棒みたいなのもってる

3.サイバー女子で抜いたことがある(恋するフォーチュンクッキーサイバー版は100回ぐらいみて、PVにでてるこの顔見たらどこの部署かわかる)

4.CakePHPをヤケに薦めてくる

5.JKを診察する系のAVDMMで買ってた

2014-03-28

下請け底辺泥臭Webアプリデバッグ手法

次々とやってくるさまざまな環境で色々がんばる人のためのノウハウを集めてみよう。

必ずしも綺麗な環境で開発できる人ばかりじゃない。スパゲッティを手渡されラーメンを作れといわれる。

所詮下請けなので、そもそもこうした方がいいよとか軌道修正すらできない環境で足掻くために何ができるのか。

今回はみんな大好きPHPを使った場合の話をしましょう。

1. なんだよこれどこの処理通ってんだよわけわかんねぇよ。

朝はCakePHP、昼はsymfony、右向きゃ独自FW、左向きゃ素php

こんなこと、よくありますよね!

いろんなFWを使ってるとFW固有の機能とかもう何がなんだかわけがからなくなります

FW機能を使ってデバッグなんてやってられません。一番信頼できるデバッグ方法とはなんでしょう。

・・・うprintデバッグです!!!printデバッグこそ神!PHPならprint_rを使おう。

ただし出力バッファ捕獲したりするFWもあったりするのでprintだけだとどこの処理通ってるかわけわからんときがあります

そんなときはこれ!

exit

exitだけは何者にも犯せない最強の関数言語構造)なので確実に処理がとまってくれます。なのでわけわからんことになったら真っ先にexitしましょう。

2. ローカル環境作りたい?むぐぐこの定数とか関数とかローカルじゃうごかねぇよ

世の中には開発者PC環境ローカル環境)を作るのが困難な場合があります。例えば設置できたはいいが、ローカルでこの関数が動かないor動いたらまずいだとか

この定数はローカルだと微妙、書き換えたいとか。

こんなこと、よくありますよね!

そんなとき僕達がよくやる対策としてはソースコードを直接書き換えることですね!呼ばれたくない関数は中身をコメントアウトしたり、定数はローカル用の値に書き換えたりするわけです。

しかしこのやり方は少し問題があるのです。

例えばSVN等を使っている場合、常にこれらのファイルが変更状態のままになってしまます。間違えてコミットしちゃった!なんてこともあります

そして更にそのファイルに何か変更があった場合とても面倒です。関数コメントアウトを外し、定数は本番環境用に戻してからコミットする、なんてことになります。まぁ確実にいつか人的ミスが入るでしょう。

そこで僕が推奨するのはファイルを直接書き換えずに書き換えろ。ということです。

まりrunkitを利用するのです。

通常PHP関数や定数などを動的に上書きすることはできませんが、runkitを使えばそれができてしまうのです。このようなローカル環境を無理やり構築したい場合にはとても使える機能です。

もちろん本番環境においてrunkitを使うのはご法度だと思います伝家の宝刀馬鹿と鋏は使いよう、です。

3. 今何が最新なの?ねぇねぇ?もう僕わかんない

こんな経験はありませんか?

「ここを改修して欲しい」

「わかりました、じゃあSVNをUPDATEしてから改修しますね。」

「いや、今はステージング環境にあるファイルが最新なのでそこからダウンロードしてから作業してほしい」

「あ、そうなんですか、じゃあステージングから持ってきて対応します」

「改修完了しました。コミットしてステージングにアップします」

「動作問題無いので次は本番環境にアップしますね」

「あれ、なんか本番の動作がおかしい!デグレードしてますデグレードしてます!」

「どうやら本番環境のみに誰かがファイル書き換えていた模様」

「誰だrsync使わずアップしたやつわッ」

コミットもされてねぇ!」

「競合!競合!」

「うわああああああ、今何が最新なの?ねぇねぇ?もう僕わかんない。」

増税前にdiffすれば良かった」

こんなこと、よくありますよね!

この後の担当者の作業はこうです。

ローカル環境ファイルSVNdiffステージング環境diff。本番環境diff

改修対象ファイルが複数ある場合diff作業の大変さと言ったらもう筆舌に尽くし難いものとなります

僕は思いました。ローカル環境ファイルと、SVNステージング環境と、本番環境diffワンコマンドでさっとできたらどれだけ楽か・・・

そして作りました。それができるdiffコマンドを。

もちろん探せばそういったツールを見つけることは可能だとはおもいますが、探すのが面倒だったので自作しました。

そのツールをここに晒す事もできなくはないですが、この余白はそれを書くには狭すぎるので今回はそういうアプローチがあるということだけを書いて終了します。

とりあえず僕が自作したのはローカル(windows)とhttp(SVN)とftpssh対応した相互diffツールです。全ての環境の組み合わせでdiffをして差分を表示したり、特定環境だけをdiffしたりできるので開発効率アップです。

何より気軽にdiffしようという気が起きます

4. 見なかったことにしよう

タイトルで言ってしまった感がありますが、下請けで改修作業をしていると既知バグ発見してしまうことがあります

これは非常に難しい問題です。もう完全にクライアント次第としかいいようがないんですが、クライアントに報告すべきかしないべきかは慎重に考える必要があります

バグを報告するとちょちょっと直してよ、とかいクライアントもいますし、何よりクリティカルバグ場合見積もりしてくれと言われたとしてもとてもじゃないけど責任を請け負いたくない場合もあります

なので見なかったことにする。

む、ちょっと眩暈が。最近寝てなかったし。とか言いながら缶コーヒーでも飲んで一服しましょう。

するとどうでしょう、さっきまでバグを見過ごさないのはプログラマ矜持だとかなんとか言ってたのにあら不思議、とりあえず今改修対象のところだけ直そう。となります

・・・こんなこと、よくあります、よね?とほほ。

5. うん。もうない。

20個くらい書くつもりで見切り発車してみたものの、もうない。泥臭い作業にノウハウなんてないのだ。

所詮泥は泥。ドロドロ。細かいコードの書き方まで言い出せばいくらでもあるけど「些末なコードレビュー」の話したところで泥で足掻いてる人にとってはなんら救済にならないし別に必要ないよね。

さてここからは他にも泥臭い作業をしている人たちでノウハウを構築しようではないか。6番目以降を書く同志達を僕は待ち望んでいるッ!

2014-03-26

4月から社畜になる文系東北大生が3ヶ月でエロwebサービスを作った


3月で東北大学卒業して、4月から企業社畜となる22歳です。

文系学部出身なので、ITやらプログラミングの知識は完全に独学です。

特にITに興味を持ってはいなかったのですが、就活が終わったあたりに

映画ソーシャルネットワークとかを観たりしてプログラミング勉強しようと思い立ちました。

そんで実際に勉強し始めるとなかなか興味が持てる分野だったので、去年の秋の試験基本情報技術者を取ったりもしてました。

でもここまでひと通り勉強し終えた時点で、このあとどうしよう?ってなったんですね。

HTMLやらPHPの本を写経して、『やったー、Hello,World!を100回分表示させたぞ!』なんてやっぱりすぐ飽きるわけですよ。

プログラマって毎日こんなことしてんの?と思ってネットを漁ってみると、色々と面白い情報をはっけん!

  http://anond.hatelabo.jp/20101203150748

  http://anond.hatelabo.jp/20130120190550

  http://anond.hatelabo.jp/20130122180847

やっぱ何かを創ってなんぼだよね!

ということで人生最後冬休みから構想を練り始め、今年に入ってから本格的にwebサービス作成に取り掛かりました。

ちなみに本記事タイトルは『京大画像処理を学んだ僕が本気でエロWEBサービス作ったった』をリスペクトさせて頂きました。

この人はIT関連が専門みたいで、創ったものレベルが違うんですけどね。まぁキャッチータイトルにしたかっただけです。

目標

卒業までに完成させる』ことを目標としていました。

やはり社会人になるとなにかと時間が限られてしまうと思うので、

多少未完成でもまずは公開してみて少しづつ付け足していこうと。

結果として、この記事を書いている時点でお問い合わせフォームとかを実装してませんし、

他にもいろいろとやりたい機能をとりあえず諦めざるを得ませんでした。

今後頑張ります

事前知識

今年の1月時点での自分の知識を大まかに説明すると、

HTML → 基本は分かる。でもdivとかをうまいこと調整するのは苦手

CSS  → ぶっちゃけあんま理解してない。今回の創作物もtwitterbootstrapに頼っちゃった

PHP  → 基本は分かる。forとかforeachとかwhileあたりが使えるくらいだけど、実際それで何とかなったしこれからもっと勉強するし

javascript → たしか一番初めに勉強したけど、もう忘れた。今回のサービスにも使ってない。

まぁこんなもんです。

創作物

マイナーAV女優もっと出会おう!

『未痴との遭遇』

http://michi-ai.com/minor/

やっぱりエロいのだとモチベーションも続くし、やっててたのしいかなぁと思いまして。

製作の流れ

1.全体像の把握

基本情報技術者を取得したんですが、サーバーとかFTPとかの単語をあまり理解してなかったんですよね。

具体的にどうすればホームページwebサービスを公開できるのかを理解するようにしました。

上に書いたようないわゆる『つくってみた』系の記事も沢山読みました。

ふむ、手っ取り早く作るにはフレームワークとやらがいいらしい。

2.CakePHP勉強

ということでCakePHP勉強を始めました。

具体的には公式サイトブログチュートリアルから入って、『CakePHP 入門』とかで検索して出てきたサイトをいろいろとまわりました。

覚えることは多いですが、確かに便利なので頑張って修得することをおすすめします。

まぁ私もあんまり分かってないとこがほとんどですけど。

とりあえずサイトの作り方はわかったので先に進む。

3.DMMAPI勉強

APIを利用したサービスがたくさんあったので僕のサイトでも使ってみようと思いました。

勉強ってほどのものではないですが、DMMAPIコードを公開しているサイトを参考にしました。

DMMサイトの説明だけでは初心者は絶対わからないよあれ。

4,スクレイピング勉強

僕の創ったサイト必要データAPIでは効率よく取得できないことがわかったので、

DMMサイトスクレイピングして必要データを集めることにしました。

Simple HTML DOM Parser ってやつを利用。

これは参考になるコードネットにいっぱい落ちてる。

5.メイン機能搭載

ここからメインとなる機能を作り始めました。

まずはAPIスクレイピングを利用してデータベース必要データを集めました。

スクレイピングうまいこといかなかったり、なぜかデータが重複しまくったりといろいろ苦労はしましたがデータベースはなんとか完成。

その後、メインページを作成して、ランダム表示ができるようなスクリプトを書く。これは簡単。

6.他のページの作成

メイン以外のページを作成

twitterbootstrapもここで導入。

でも間に合わなそうだったので、目標達成のためにとりあえず飛ばすことに。

7.ドメインサーバー

ドメインはお名前.comで取得。

特に希望のものはなかったのですが、まぁそれっぽいものを購入。

問題はサーバーですよ。

初めはGMOクラウドVPS無料お試しをしたのですが、これがまた難しい。

ネットでいろんな情報を探して、試して、動かなくなって、OSインストールって流れを5回ほど繰り返して断念。

結局FUTOKAのレンタルサーバー契約しました。こちらは非常に扱いやすくて、らくちんです。

8.公開

最後ファイルサーバーに乗っけて公開完了です。

こんなしょぼいサイトでも公開できただけでうれしいものですね。

約3ヶ月の苦労は無駄ではなかった。これで僕もクリエイターの仲間入りだ。


webサービスに興味を持ったひとへ

文系の僕でも3ヶ月でひとりでwebサービスの公開まで漕ぎ着けることができました。

この期間が長いと思うか短いと思うかは人それぞれでしょうが自分アイデア現実化させることは想像以上に楽しいことですよ。

壁にぶつかることはたくさんありましたが、不思議と辛くはありませんでした。だって楽しいから

用事がある日にも、早起きして作業することが苦になりませんでした。だって楽しいから

変に敷居の高さを感じている人がこの記事を見て、『俺もやってみよう』と感じてくれると嬉しいです。

2013-07-31

http://anond.hatelabo.jp/20130728233241

はじめまして過去「Web系の会社を解雇されて思った事」を書いた者です。ぜひお話だけでも聞かせてもらえないでしょうか?自分9月から仕事が決まっていて、その合間を縫ってできることならと思いまして。主に使える技術は、PHP/CakePHP/MySQL/UNIXコマンド使用可となります

2013-07-24

便利なものはどんどん使おう

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます

http://blog.sumyapp.com/2013/07/no-recommend-rails/

とか、

Ruby on Rails勉強しない方が良い100の理由

http://ledsun.hatenablog.com/entry/2013/07/24/112644

とか。

便利なものはどんどん使いましょう。

でも、それだけだと行き詰まることもあるから勉強しようぜ!

って何で言えないんだろう。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん