今すぐ使えるフリーのPhoshopUIを集めました。
今すぐ使えそうなPhotoshopのUIを集めました。スマートフォンのデザインや、アプリ開発のデザインの参考になります。と、いうよりそのまま使えます。
Cakephp1.3 postgresqlの設定
Cakephp1.3での postgresqlのdatabase.phpの設定についてです。
class DATABASE_CONFIG {
var $default = array(
'driver' => 'postgres',
'persistent' => false,
'host' => 'localhost',
'login' => 'postgres',
'password' => 'mfree2010',
'database' => 'hello30_kanto',
'encoding' => 'utf8',//1.3はUTF-8のときは書いたほうがよい
'prefix' => '',
);
}
無料で人物モデルの写真が手に入るサイト
女性の写真、子供の写真など、人物モデルの写真素材が無料で手に入るサイトを探しました。いずれも商用利用可能で高品質な写真ばかりです。
高解像度の人物モデルの写真が手に入るサイト
写真素材 足成【フリーフォト、無料写真素材サイト】
モデルの質も高い、非常にクオリティの高い素材が多いです。人物写真意外にも充実しています。全て無料でダウンロード可能で、高解像度でダウンロードも可能です。
日本人、外国人など様々な女性モデルの無料写真が手に入るサイト
女性を中心とした無料写真素材のサイトです。会員登録不要ですぐに利用可能です。日本人だけでなく、外国人モデルが多いのも特徴です。
自分好みのモデルから写真を選べるサイト
ポーズやカテゴリから写真を選ぶものは昔からありましたが、モデルから選ぶ写真素材サイトというのはなかなか珍しい試みですね。会員登録が必要ですが、無料で利用出来ます。
ちなみにこちらのサイトはフォトモデルになると3万円もらえるそうですよ。
ルックスに自信のある方は試してみては??
PHPで文字コードを宣言、指定する
HTMLで文字コードを宣言せず、PHP側で文字コードを宣言する方法です。
ページがHTMLベースのWEBページではない、
例えばCSVファイルを表示させて、ブラウザの『ページを保存』させたいときに有効な手法です。
ob_start(‘mb_output_handler’);
header("Content-Type: text/plain;charset=".$charset);
なお、この方法はあくまでファイルの文字コードの宣言であって、特定の変数の文字コードを変換するものではありません。その場合はmb_convert_encodingを使ってください。
Cakephp1.3 conditions 比較演算子
Cakephp1.3にて、WHEREの条件(conditions) に悩んでしまったのでメモ。
Cakephp1.3 conditions 比較演算子
9より小さい
$conditions = array(
'conditions' => array('Model.id >' => '9')
);
$hoge = $this->Model->find('all',$conditions);
9以下
$conditions = array(
'conditions' => array('Model.id >=' => '9')
);
$hoge = $this->Model->find('all',$conditions);
WEBデザイナーからWEB系プログラマーに転職をして早1年。
プログラムを初めて作って1年
なぜ今この時期に1年を振り返るかというと、昨年夏に生まれて初めてプログラマー処女作を完成させて1年だからです。
会社では風俗関係も扱っているのですが、そこでコンパニオンの管理プログラムを作ったのが始まりでした。
自腹で趣味もかねてMysqlの講習会に参加し、全4回の講座終了後、即管理プログラムを作れ、かつ翌月にはオープンさせろという超スパルタンなスケジュールでした。
とにかく辛かったのは、分からないこちだらけなのに誰も教えてくれる人がいないこと。
講習会の先生にメールで2,3質問する意外、本当に自力でした。
分からない、でも締め切りは待ってくれない、バグが発見出来ない、どうしようどうしようでした。
どんなに汚くても表示させる
プログラマーとして、本当はダメなんだけど、優先させるべきは締め切り。
MVCもヘッタクレない、phpファイルにデータベースの接続から、プログラムから表示にいたる全てを同じファイルに書き、if文だらけのメッチャメチャなサイトになりましたが、ユーザーからそれは分かりません。
今でもしっかり動いています。
コンパニオンの出勤管理からニュースから、メルマガ配信だって動きます。
WEBデザイナーの時は、とにかく美しいコーディングに力を入れていましたが、(その方が返って仕事も早いですし)
美しいプログラムより、締め切りに間に合わせることこそが一番大事なのだと知りました。
1つのシステムを完成させた後に気になったのは、こんな書き方は誰がどう考えたって間違っている、でもその間違いをどう直したらよいか分かりません。
初心者としてのひとつの壁にあたった時でした。
翌々月にオープンソースのフレームに出会う
Smartyはかじる程度に次に自分が学んだのはオープンソースのフレーム CakePhpでした。
選んだ理由はただひとつ。PHPのフレームワークで最も簡単だと思ったから
オープンソースフレームワークを使うことのメリットは、
誰が作ってもだいたい同じ書き方になること、調べると何とか答えが見つかることです。
でも書籍を購入しても全くわからず、個人で講習を行っている人を探して1時間3千円で教えてもらい、Cakephpで会員制サイト構築の基礎まで教えてもらい、それがちょうど年末で、翌年6月に生まれて初めて会員制の大規模ポータルサイトをオープンさせました。
脱初心者を実感
大規模会員制ポータルサイトをオープンさせることに無事成功すると、大きな自信に繋がりました。
会員制サイトを作りたいというのはWEBデザイナーの頃からの夢でしたし、
目標でもありました。
でも会員制サイト構築したことよりも、自分が脱初心者を実感したのは
配列を自由自在に操れるようになったことでした。
フレームワークに限らず、データベースからデータの呼び出し結果は連想配列ですが、その連想配列が中で2つ3つ回ることはざらです。
複雑な連想配列を動的に単純配列にしたり、キーをPHP上で追加したり、
配列なら何でも来い、と言えるくらい配列操作が得意になった時から。
フレームワークを利用した時、自分の欲しい形に配列を変更することが多く、
気がつけば配列操作に恐いものが無くなりました。
現在はどういう状態かというと
現在はどういう状態かというと、そろそろPHPだけでは物足りなくなってきたこと。与えられた環境では満足いかなくなってくると今度はWEBサーバーの構築がしたくなりました。
そこで月額500円程度のVPSにCENTOS5だけインストールされた状態でWEBサーバーをゼロからネットで調べながら全て独学で構築しました。これはおもしろくて、自分の欲しい環境を重い通りに構築するんです。
クーロンも使うように
WEBサーバーがある程度構築出来ると、クーロンも触るようになりました。
PHPはその性質上、ユーザーの何か動作に合わせて動きますが、何もされなければ動きません。
そこでスケジュールを設定して、時間がくると勝手に処理をしてくれるようになるんです。
クーロンが使えるようになると、Twitterのbotも作れるようなった。
つまり、PHPだけでは出来なかったことも、サーバーのコマンドを通してなら、本当意味での自動のプログラムが作成出来るということが分かった。
理数系とかって関係ない
主に、と言うか、ほとんどがPHPでの作業なのですが、理数系かどうかはまるで関係がないということです。
好きか、嫌いか。なぜ動かないんだ?っていうことを楽しみながら出来る人が向いてるんだと思いました。
私はガチ文系で、高校2までしか数学は学んでいません。
どこまで熱中出来るか、これだけでした。
社外のコネクションって大事
社外のコネクションって大事で、私の場合社内で誰も教えてくれませんから、どうしても無理って時に力を貸してくれる人の存在はい偉大です。
あとは、Twitterでハッシュタグつけてツイートすると、1時間以内に誰かしら返答があります。
Twitterで同業ネットワークを広げるのもいいです。
日頃RSS活用
日頃RSS活用して、新しい情報を収集するくせをつけています。
特にこれはAjaxに有効で、プラグインなの情報網があると、応用が効きやすいです。
英語の必要性を痛感
日本のサイトだけでは不十分なことが多く、海外のサイトに頼ることもしばしば。英語が理解出来ないこともあり、その必要性を感じました。
書籍も日本語だけでなく、最近は英語版にも手を出すようになりました。英語の専門書籍の多さには脱帽です。
ipad2が便利
私スキルアップにも貢献してくれているのがipad2。
ほぼ電子書籍リーダーとしての利用が多く、何冊も専門書籍が入っています。通勤中も読んでます。
スキルアップするには
たった1年でまさか自分もここまでやるとはおもわなかった。
ちょっとかじるつもりがサーバーまで構築するよになりました。
結局、自分よりも仕事が出来る人がいたらその人に全部いい仕事が行ってしまうわけで、たった一人は辛いことも多かったけれど、その辛い状況に一人立ち向かった結果今のスキルに直結したように思います。
勉強したり、しなかったりを自宅でしていましたが、仕事で、しかも納期があり、『絶対にやらねばならない』環境を作ることがスキルアップには近道でした。
(いばらの道でしたが)
スキルアップの順序として、
PHP、SQLも全部1枚のHTMLファイルの中に書く形でのプログラムの作成、
オープンソースのフレームワークの習得。
会員制サイトの構築でした。
人によって様々ですが、オープンソースのフレームワークを1つ覚えることでMVCの基本が分かり、外注したプログラムも解析できるようになります。
会員制サイトを一つの通過点のように思っていましたが、実際会員制サイトはセッション管理と、ログインしている情報が他のユーザーの情報を見れないようにしたりするくらいで 大抵はプラグインを使って構築するので 会員のログインプログラムを作ってもスキルアップは実感できませんでした。
それ以上に、フレームワークを使う中で自分のほしい形に配列を変更するほうがスキルアップを実感できました。
今後の予定
PHPで一通りのことは何でもこなせるようになったのですが、やはりサーバーと連携させたプログラムをもう少しこなしたいところ。
現在趣味でスマートフォンサイトの作成中なのでAjaxを極めていきたいと思っています。
ちなみに月収
私の月収は31万円 交通費別 社保完備、6時定時の残業なし。ボーナス無し。
ここまでスキルアップして、社内唯一のプログラマーとして頑張ってるけど、WEBデザイナーで入社して 28万の初任給から3万しか上がってない。
今このご時世では仕方無いのかな~と思いつつ、これからも精進します。
劇的なスキルアップのきっかけはこの会社でもあるので、もうあと2~3年は在籍して もう少し力をつけて、ひっそり独立の準備を進めます。
なんかイマイチまとまりが無くってすみません。ま、とりあえずこれからもがんばりますということで。
Jqueryでローディング画像の表示
ここの記事でページングのAjax処理について触れたんですが、そこでローディング画像の表示についてメモします。
$(function(){
$('#pagination .next').click(function() {
$("#loading").toggle();
var url = $(this).attr("href");
$('.hoge:last').load(url,function(){
$("#loading").toggle();
});
return false;
});
});
HTML
<p id="loading" class="hidden"> <img src="/img/loading.gif"alt="読み込み中"/> </p>
CSS
.hidden{ display:none; }
あらかじめローディング画像の方はCSSにてhiddenにしておくこと。
toggle();を使ってあげることで、非表示なら表示、表示なら非表示へと変更できます。
クリックをしたら、表示をし、ロードが完了したら、再びtoggle();を実行して、今度は非表示にしてあげます。
あと、良い子のみんなは、画像にちゃんとwidthとheight属性を書いてあげてね。じゃないと速度が低下するよ。
Cakephp1.3 pagenateのAjax通信
Cakephpに限らず、最近ページ送りはTwitterの『もっと見るボタン』のようにするのが最近の流行りです。
これはページングをAjax通信することで実現可能なのですが、あちこち確認しながら何とか実現することが出来ました。
今回はCakephp pagenateのAjax通信にて 表示する方法について触れたいと思います。
基本的な考え方
ページ送りをAjax通信する基本的な考え方は以下の通り。
クリックしたら、本来ページを送るはずだった内容をload
$(function(){
$('#pagination .next').click(function() {
var url = 送りたい先のURL;
$('表示したい場所').load(url);
});
});
Twitter風なもっと見るボタンの実装
elements/list.ctp
<?php foreach($lists as $list): ?>
<?php echo $list['List']['title'];?>
<?php endforeach; ?>
elements/paginator.ctp
Twitter風なので、次へボタンだけです。(と、いうか Ajaxでページ送りした場合、戻るボタンって..)
<?php echo
$paginator->next(__(‘次’, true).’ >>’, array(), null, array(‘tag’ => ‘span’, ‘class’ => ‘disabled’));
?>
</div>
lists_controller.php
<?php
class ListsController extends AppController {
var $uses = array('List');
var $helpers = array('Javascript');
var $components = array('RequestHandler');//必ずこれを呼んでね
function index($id = NULL){
$this->paginate = array(
'sort'=>'List.id',//ソート
'limit'=>10,//1ページあたりの表示件数
'direction'=>'desc',//昇順か降順か,
)
$this->set('new',$this->paginate);
if($this->RequestHandler->isAjax()) {
$this->render('/elements/list');
return;
}
}
}
view/list/index.ctp
<div class="hoge"></div>には、
次へボタンを押したときに読み込まれた内容が表示される場所です。
<?php echo $this->element(‘new’);?>
<div class="hoge"></div>
Javascript(と、いうかJquery)
ちょっと考え方にコツがいるのですが、
.nextをクリックすると、.hogeにurlの内容が表示される。
一度次へボタンを押されたあとにもう一度押されることが無いよう、
一度次へボタンをクリックされたらその要素をは削除して、
そのさらに次にクリックされた時の内容を表示するための
<div class="hoge"></div>
を用意してあげるのが、一連の流れ。
$(function(){
$('#pagination .next').click(function() {
var url = $(this).attr("href");
$(this).remove();
$('.hoge:last').load(url);
$(".hoge").after('<div class="hoge"></div>');
return false;
});
});
SOHOで仕事が取れる人、取れない人
このカテゴリーがしばらくご無沙汰になってしまったので、今回はSOHOについて書きたいと思います。
現在会社員ですが、以前はSOHOのWEBデザイナーでした。
駆け出しSOHOの時、仕事が取れなく悩み苦しんだ時期がありましたが、ある時期から自分一人では抱えきれないほど仕事がじゃんじゃん面白いように取れるようになった時がありました。
SOHOで仕事が取れる、取れないの違い
そもそも、この仕事が取れる時と取れない時の差は何だったのだろう。
答えは簡単で
実績の多さ
これにつきました。WEBデザイナーにしろ、プログラマーにしろ、ライターにしろ、どんなSOHOにしてもある一定の実績は必要でした。
どれくらいの実績が必要かといえば、
WEBデザイナーなら最低5件以上、出来れば10件ほど欲しいところです。
ポートフォリオでまとめた時、ポートフォリオ2~3枚くらいの量になるくらいが理想です。
これより少ない、つまりポートフォリオに見応えのない分量では仕事が取れません。
あるいは、これより多くても 仕事の取れる取れないはあまり関係がないです。
つまり、実績の多い人は自分の過去の実績の中で特に自信のある10件ほどをポートフォリオにまとめておけばいいんです。
(あくまで私しの経験ですが)
ポートフォリオは必ず持っておけ
SOHOに限らず、モノ作りの技術者(この場合ライターやカメラマンも)はポートフォリオを何かのタイミングでサッと出せるよういつも準備びしておくのが理想。
例えば、求職中で、面接の時など、ただURLを羅列している人、きちんとまとめられたポートフォリオになっている人
どちらが優れて見えるかは明らかです。
私は22歳、WEBデザイナー歴わずか数ヶ月でSOHOになった時、これが無かったのです。そして当日の私にポートフォリオを作るよう勧めてくれる人が周りにいませんでした。
実績が無いなら
ここで問題になるのが、実績らしい実績がまるでない人。
誰しも最初は初心者なのだから 最初は実績が無くて当然と思っていませんか?
実績がないことで仕事が取れない、転職活動もうまくいなかないなら、いつまでたっても仕事が取れない、転職活動も成功しません。
駆け出しのころは誰しも実績がありません。
でも、無いなら作ればいいんです。
例えばWEBデザイナーを例に挙げると、
思い浮かぶのが、サンプルサイトを作ってしまう人。
完全にアウトです。
『これはサンプルです あああああ』
そんなサイト誰が見たいと思いますか?
サンプルサイトしかない人は、結局サンプルしか作れない程度の実力、という印象になります。
最後まで完成させる実力があるか
これを明確に示すにはどんなSOHOの仕事でもサンプルではダメなんです。
例えば、知り合いのサイトを作ってあげてはどうですか??
サークル活動をしている人、お店をやっている人、どんなジャンルでもかまいません。
特にそのような心当たりのない人は、サンプルサイトではない自分のサイトを作りましょう。
例えばこのブログも立派なサイトの一つですし、一応このほかにも私は数点サイトを持っています。それらも立派な実績ですし、私のポートフォリオにはこのブログのことも紹介してあるんです。
しかも、きちんと運用していること、SEOなど運用面でのアピールポイントが増えます。
サンプルとしてではなく、きちんと形に残るものをたくさん持っているかどうかなので、正式に仕事の受注で作ったかどうかは実績の差ではありません。
ポートフォリオを持って、実績をきちんとまとめただけで、おもしろいように仕事が取れ、また会社員に復帰した時も、自慢じゃないですが転職に苦労したことはありません。
自社サイトって必要か
あれば、それはそれに越したことはないですが、すっかすかのサイトを作っても仕方ないので、SOHOの方であれば ポートフォリオサイトで十分だと思います。
自社サイトのようなものをお持ちですか?と聞かれたのは今まで仕事をしてきて1度しかありませんでした。
結局のところ
ポートフォリオは自分を売り出すツールであって、自己のアピールポイントの一環で、結局のところ いかに自分という人間をアピールできるかがSOHOで仕事をとれるか、転職がうまくいくかの違いなのです。
もし、これを読んでいる人が 転職を検討している、SOHOでなかなか仕事が取れないと悩んでいるなら、ポートフォリオを今一度作ってみるといいでしょう。
PHP 配列の要素削除
こういう連想配列があったとして 1つ目の恵太(夫)を削除したいとする。
$hogeのprint_rの実行結果。
Array ( [User] => Array ( [0] => 恵太 [1] => 良夫 [2] => 太郎 ) )
unsetで配列要素削除
unset($hoge[‘user’][0]);
Array ( [User] => Array ( [1] => 良夫 [2] => 太郎 ) )
削除は出来たものの、0というキーも一緒に削除された。
array_spliceで配列要素削除
$hogehoge = array_splice($hoge[‘user’], 1);
print_r($hogehoge);
Array ( [User] => Array ( [0] => 良夫 [1] => 太郎 ) )
先ほどの0番目が削除され、新たに良夫が0番から始まった。
配列の順番を崩すことなくキーを削除したい場合はarray_splice()の第2引数まで指定すればよさげ。
夫を削除しましたが、夫婦仲は良好です。