けんすう

あと8日でサイトが作れるかどうか

2007/12/11 火曜日 - 01:03:37 by kensuu

けんすうです。
先週最後の最後でさぼってしまいました。
そもそも更新があと残り1回しかないので
引き締めまくっていきたいと思います。
先週はcakePHP勉強会にいってきました。
プログラムの先生をやってくれているあきやんが
スライドを公表しています。
CakePHP勉強会を開催しました! & 発表資料です : akiyan.com
こういうのがすごく勉強になる・・・。
他人のソースコードを見るのは超わかりやすいですね。
さて、100日プログラミング。
これが終わった暁には、成果物を出します。
サイトをオープンさせます。
ということで、コードを晒します。
profiles_controllerというファイルのものです。
<?php

class ProfilesController extends AppController
{
var $name = ‘Profiles’;
var $uses = array(’Post’,'Profile’,'User’,'Poke’);

//ページング用の数値
public $view_default_limit = 7;

//プロフィールのテンプレを上書き〜
public $layout = ‘profile_default’;
[…]

cakeがだいぶすすみましたよ

2007/11/28 水曜日 - 00:48:00 by kensuu

けんすうです。
月曜日更新なのに、忘れていました・・・。
しかし勉強のほうはすすんでおります。
さて、前回「何を書いたらいいのかわからない」
という声があったのですが
以下のブログでこんな言及をいただきました。

ソースが見たい - ANOTHER PIECES
「頑張った」、「苦労した」とかという話自体は結構どーでもよくて、むしろ大事なのは「頑張った結果こういうソースを書いた」、「苦労したけど、こういうソースが書けた」というのが欲しい。
ああ、おっしゃるとおりですね・・・。
ということで、ソースを貼り付けてみることにします。
しかし、1から説明するのも冗長になりすぎるし
説明が少なすぎても単にソース公開になってしまいます。
あまりに説明するのが下手すぎて
イヤになるのですが、お許しください。
僕が今、何をやりたいかというと
「個人の掲示板が持てるプロフィールサイトのようなもの」
をCakePHPで作るということです。
イメージ的には僕がやっているサイトである
自己紹介@milkcafe掲示板

を見てもらうと近いかもしれません。
個人の掲示板をたてて、そこで自由に交流するというものです。
というわけで、必要なDB。
これは
User
→ユーザー認証のために、メールアドレスとパスをいれる
Profile
→ユーザーの名前やプロフィールを入れる
Post
→掲示板への投稿データが入る。
というわけで、まずはユーザーページ周りです。
ユーザーページとは、mixiなどでいう、
他のユーザーから見た、ユーザーのトップページのことですね。
profiles_controller.phpは以下の通り。
<?php

class ProfilesController extends AppController
{

var $name = ‘Profiles’;
var $uses = array(’Post’,'Profile’,'User’);

//ページング用の数値
public $view_default_limit = 5;

//プロフィールのテンプレを上書き〜
public $layout = ‘profile_default’;
[…]

いやぁ、本当に寒いですね

2007/11/20 火曜日 - 01:47:54 by kensuu

最近本当に寒いですね。
こんな日はプログラミングですね。
というわけで、今週はそこそこがんばりました!
12、3時間はやった気がします。
やっぱり一気にやると違いますね。
残り30日を切ってしまいました。
ラストスパートがんばりますよ!
というわけでやったこと。
現在、会員ごとのページがある
掲示板サイトを作ってみています。
必要な機能は
・会員ごとに掲示板を作れる
・会員登録している人だけが投稿できる
・会員は他の会員をお気に入りとして登録できる
あたりですね。
他にもやりたいことはありますが、基本的にはこれかと。
今回やったところは
・会員系機能を追加
・その会員ごとに投稿ができるように
主にこの二つです。
CakePHPでやっているのですが、
難しかったのが
1:複数のコントローラーをまたいだ処理
2:セッションを使ったログイン処理のデータの持ち方
あたりです。
いやぁ、しかしこのブログでどこまで技術の各論を書けばいいのか迷っています。
photoshopみたいにわかりやすく画像で説明できないのがもどかしい・・・。
読んでいてつまらないですよね、本当にごめんなさい。
やはり日々の記録はしていかないとダメですね。
次やることのメモとして
・会員機能のセキュリティ強化
・ログイン情報をクッキーで覚えておく
・ユーザーページの作成
あたりです。
で。
12月11日に新サービスをリリースすることにしました!
今しました!
最後の更新までにはリリースしちゃいます。
成果物としてこれを出そうと思っています。
プログラム歴70日くらいになったわけですけど、
90日目くらいで、ここまでのサービスができるようになったよ、
というのを見せられればいいなぁ、と。
3ヶ月あればそこそこできるとつたえられるようにしたい!
がんばります!
※いや、しかし今回の更新本当につまらないですね。
どうやっていけばいいんだろう。むむう。

全然だめだったー!

2007/11/05 月曜日 - 23:54:18 by kensuu

いやぁ、今週は反省だ。反省しかない。
日曜日以外、ロクに勉強できなかった。中だるみとしかいいようがない。これはやばい。日曜日に焦って5時間くらいしたけど、それだけだった。
30分でもいいから毎日しないと!それだけは守らないと!と強く思った月曜日の深夜。
とりあえず今はcakePHPをやっているところ。PHPだとはわかっているんだけど、まだ自分の頭の中のPHPとcakePHPが結びついていない気がするんだ。これをなんとかつなぎあわせたい。
そして作りたいものが決まってきた。とりあえずはtwitterみたいなサイトを作れるようにしよう。コミュニティサイトがさくさくと作れるような自分になりたいのだ。
というわけで、全然勉強報告できずに申し訳ない、、がんばります、今週こそ!

cakePHPに挑戦してみました

2007/10/30 火曜日 - 15:40:06 by kensuu

昨日更新だったのに、ぐわーって飲み会で飲んだら
そんままバタンキューしてしまいました。
激しく反省。
ちょうど50日目ということで中だるみの時期ですかね。
ちょっと気を引き締めないと・・・。
というわけで、先週は、cakePHPというものに挑戦しました!
cakePHPはいわゆるフレームワークと呼ばれるもので、
これを使うと開発がさくさくすすめられるよ!
というものらしいです。
PHP歴50日くらいのおいらがやっていいんだろうか、
と迷いつつ、やりたいものはまずやってみて、
ダメそうだったら諦めるという形をとる!ということで挑戦。
しかし、これはすごい。
ログイン+ちょっとした掲示板
くらいだったらすごく楽に作れました。
今3時間くらいの勉強量ではありますが、
15時間くらいやればかなり使えそうな気がします。
まず参考にしたのが
CakePHP修行! アーカイブ | IDEA*IDEA
このサイト。
百式の田口さんという方が
cakePHPに挑戦する様を書いてあるのですが
これが、めちゃくちゃ役に立ちます。
つっかかるところの記述や
「わからないけど次にすすむ」
など、自分たちと同じ視点ですすむのがわかりやすい。
さらに、あきやんさんという
cakePHPに詳しい人が補足しているのが
すごく勉強になります。
とりあえず勉強するに当たって見ているのは以下のサイト。
CakePHP ドキュメント日本語訳の pdf - hetimaの日記
ここでドキュメントを印刷し
付録 A. Cake ブログチュートリアル
ここを見ながら勉強をしつつ
CakePHPで高速Webアプリ開発:第1回 CakePHPを使いたくなる5つの特徴|gihyo.jp
こういうのを見たりしています。
というわけで、本日cakePHPの本が届いたので
これを見ながら勉強します!

さてさて

2007/10/23 火曜日 - 01:44:56 by kensuu

さてさて、先週、実は、35日目を超えたということで
みなさんで集まって、報告会をしましたよ。
報告会の仕方は以下の通り。
1:この35日間でうまくいったことをすべて書いて発表
2:この35日間でうまくいかなかったことをすべて書いて
発表と同時に、どうやってそれを克服するか報告
3:次の35日間に何をやるか報告
という形でしました。
で、私ですが、
PHPを教えてくれる師匠が周りに多くいるおかげで、
かなりスムーズに勉強がすすんでいるという感じです。
開始40日目くらいですが、まあ、なんとなくわかってきたかなと。
で、今回何をやったかというと
ついにタグ機能完成です!やたー。
こんな感じ。
<?php
if($tag_get){

$sql = "select * from tags as a ,posts_tags as b ,idea_table as c where a.id = b.tag_id and a.tag_name = ‘$tag_get’ and c.id = b.idea_id";
$db_result = $init_obj -> db_object -> query($sql);

while($value = $db_result->fetchRow(DB_FETCHMODE_ASSOC)){
[…]

いやぁ、36日がたちました

2007/10/16 火曜日 - 00:28:13 by kensuu

ついに100日プログラミングも36日目、ということで
すでに3分の1が経過しました。
早いような長いような。
僕は個人的に、100日で100時間は最低勉強をする、
と決めています。
36日間の勉強の経過を毎日記録してたんですが、
今回それを公表します。
36日間の今での総合勉強時間
2885分 / 6000分
だいたい半分弱じゃないでしょうか。
まずまずの数字です。
土日は結構長くできるんですが、
やはり平日が短い。
それでも必ず毎日やるようにはしています。
たとえ5分でも10分でも。
やりはじめると意外と時間がたつもので、1時間などはすぐにいきます。
今日も実はヘトヘトなのですが、これからがんばってやろうかと・・・。
5分でもいいので。
というわけで、今ideamiで何をやっているかというと
タグ機能の実装に挑戦しています。
やりたいことは
1:アイデアのタイトルに[]をつけるとタグになる
2:あるタグにどのくらいアイデアがあるか調べられる
3:タグからアイデアを検索できる
くらいですね。
ここにコードを書くのはちょっと長いので
詳しくはひとり開発ブログをご覧ください。
結論からいうと結構時間はかかりましたが、2の途中くらいまでいっています。
タグ機能をつけられるイメージはわいています。
既存の技術を使った機能はほとんどなんとかなるようになりました。
一生懸命調べればわかる、というレベルかなぁ、と。
というわけで、次は会員登録とかそのあたりをやりたいです。
会員登録系、メール系、トラックバック、AJAX、フレームワーク
このあたりのどれかに挑戦するのが今週の目標。
さあ、今から勉強します!

そろそろ1ヶ月・・・

2007/10/09 火曜日 - 01:18:52 by kensuu

こんばんわ、けんすうです。
危なかった。完全に落とすところでした。
今日月曜日だったのですね。
もう歯まで磨いてしまいましたよ。マジで寝る5秒前でした。
さて、今週は、おいらのブログである
「ひとり開発ブログ」の更新が少なかったのです。
これは勉強量が少なかったのか?と思われるかもしれませんが、
いやいや、逆です。
むしろ没頭する時間が多かったため、
ブログを書くのを忘れた、というほうが近いでしょう。
昔はモチベーションを保つためにブログを書いていましたが
ここ2、3日は特にそんなことをせずにプログラムをできました。
というか、かなり楽しみながらできています。
ようやく、一段目の階段を昇れたかな?という感触です。
さて、ideamiの開発ですが
主に今週はスパム対策!これにつきます。
ideamiでは1ヶ月ほど前から
英語のロボットのスパムによる
大量投稿が目立っていました。
これをなんとかしなければいけない状態でした。
まず最初にやったことは
「URLの数が3つ以上のものは問答無用でエラーを出す」です。
<?
//URLが多すぎないかチェック
function num_url_check($p_string,$p_num_url,$p_name){
if(mb_substr_count($p_string, "http://") > $p_num_url){
$this -> disp_error_message($p_name . "個以上のURLはスパム対策のため制限しております。<br />
大変お手数ですが、複数回にわけて書き込みをしてください。");
[…]

勉強の仕方で一歩前進!

2007/10/02 火曜日 - 00:32:22 by kensuu

月曜日担当のけんすうです。0時を過ぎてしまいましたが、僕が寝るまでは月曜日なので気にしないでください!
今週は全部で7時間ほど勉強をしました。毎日少しでもいいから、やるぞ、と思うと結構できるものです。100日限定だと考えるとやる気もでます。
今週のトピックスとしては3つ
1:PEAR::Pagerがだいたいわかってきた
2:classもわかってきた
3:正規表現をだいぶ理解してきた
PEARというものを中心にいじっていたのですが
だいぶわかってきた感じがあります。
PEARを使うことで、同時にclassもだいぶわかってきたというか。
ideamiのソースもかなりきれいになりました。
またjavascriptは学ぼうとしたのですが
PHPをもうちょっとやってからのほうがいいのではないか、
という意見もあり、一度止めています。
理解したいところではあるんですけど、もうちょっとできるようになってから
必要なところを学ぼうかと。
<?
$init_obj = new Init_class();
$DATE_FORMAT = "Y/n/j H:i:s";

//DBの登録数を数えます
$sql= "select count(*) from idea_table";
$count_result = $init_obj ->db_object -> getOne($sql);
$lim = ($_GET[’page’] -1) +10;

//DB
$sql = "select […]

PEAR::Pagerが出来るようになったよの巻

2007/09/25 火曜日 - 00:23:54 by kensuu

月曜日担当のけんすうです。
とりあえず、今日は勉強場所の公開を行います。

こんな感じでMacBook+ディスプレイでやっています。下でコード書いて、上で調べ物+動作確認、という形が多いですね。
作業の際にはEclipseを使っています。まだ全然使いこなせていないですが、記述を間違ったらエラーを出してくれたり、入力の補佐をしてくれるので、ケアレスミスが減りました。
初心者が勉強する際に、ケアレスミスは大きな躓きになります。というか、そこで時間がかかりすぎてイヤになってしまうことすらあります。それを回避するのはモチベーションを保つのにいいのではないかと実感しました。
左側には常に本を置いてあります。本を見ながらやる形が多いですね。コピペではなく、必ず自分でコードを書くようにしています。読んでわかる気になるだけではなく、アウトプットをきちんと出さなくてはいけないですね。
そして床にはこのように本を置いています。

ぐわーって並べておいていつでも本にアクセスできるようにします。
本をどう使うか、というのは議論があると思いますが、僕の場合は
1:本は出ているものでよさげなものは全て買う
2:同じことをやるにも、すべての本の説明を読む
というやり方をしています。受験の時もそうでしたが、一つの本の説明を見るより、10冊の本の説明を読んだほうが、いろいろな視点からの説明になるので、わかりやすいのです。
お金はかさみますが、これが今のところ自分には一番あっていますね。
さて、今週勉強したところです。
あまり「ひとり開発ブログは更新していないのですが、やっていたことは、ずばり「PEAR」です。
PEARとは - はてなダイアリー
The PHP Extension and Application Repository
プログラミング言語PHP用のライブラリ集。色々な拡張モジュールやアプリケーションがPEARに登録されており、ネットワーク経由で取得・利用することができる。PerlでいうCPANにあたる。
「ぴあー」だと思われていたが最近「ぺあー」だと判明
これを使えるようになると開発が楽になると聞きました。自分で書かなくていいところは人の書いたものを使う、ということなのかな。
classというのを覚えたので、このあたりに挑戦できるのがうれしいです。
というわけで、書いてみた。使ったPEARは、PEAR::DBと、PEAR::Pagerです。
<?php
$init_obj = new Init_class();

[…]