h19e

facebookのコメントプラグインでまとめページ
 またちょっと実験的なWEBサービスを作ってみました。

Custom Page

facebookのコメントプラグインはよくできてるなぁと感心して、

これで、自分自身でデータを持たなくてもなんか作れそうだなーと思い作ってみました。

使いどころがいまいちないんですが、右側のテキストフォームになんか適当な文字列を入力すると、入力した文字のページが出来上がります。

そこに、facebookのコメントプラグインをはめ込んでいる感じです。

こんな感じ↓
便利なPHPライブラリ一覧


そして、ページにコメントを書き込むと、facebookにも同時にポストされて、ページがシェアされます。

そのリンクを踏んだ人がテーマにそってコメントを書き込んでいくと、そのテーマに沿ったコメントのまとめページが出来上がりますって感じです。

匿名じゃない2ch みたいな感じになるのかな。。

なんか色々使えそうで使えないので、なんかうまい使い方をしてくれると嬉しいです(笑)



| programing | 16:55 | comments(0) | trackbacks(0) | pookmark |
Twigで、nl2br 的なことをやりたい時の方法
 Twigを使ってて、改行コードを<br />に変換したいことってありますよね。

なんとなく、{{ value|nl2br }} でいけんじゃないかとも思うわけですよ。

しかし、残念ながら標準でそんなFilterはないと。。。

で、方法としては自作Filterっていうのがあるんですが、まあとりあえずここだけ何とかしたいって時にはちょっと大変ですよね。

で、Twigには標準で replaceっていうFilterがあるんで、これを使って

{{ value|replace({'¥n'}:'<br />'}) }}

とかやってみると、まあ <br />はエスケープされて出力されるので失敗みたいな。

というわけで、

エスケープをしてからreplaceのFilterをかければいっかというわけで、こんな感じでOKかな。

{% autoescape false %}{{ value|escape|replace({'¥n':'<br />'}) }}{% endautoescape %}

まあちょっと長いんだけどねw





| programing | 00:36 | comments(0) | trackbacks(0) | pookmark |
DELL Windows7 インターネットに突然接続できなかった時に対応したこと

なんかいきなり、ネットにつながらなくなって久々にもーいやってなりました。。
また、起りそうなんでメモ。

症状:
起動したら普通にネットにつながるはずなのに、なぜかつながらない。
ルーター経由で、iPadとか、macは無線LANで問題なくつながってる。

じたばた:
ケーブルがおかしいのかと思ったが、macに有線で接続しても問題なし。
で、トラブルシューティングとか色々調べてみると、ネットワークアダプタがないみたい。。
特に、変わったこともしてないんだけどな。。
コンピュータを復元しようとするが、失敗。
ただ、直前にWindowsUpdateが行われたことを確認。。これが原因なのかな?

解決:
コントロールパネル > デバイスマネージャー
を見てみると、なんかその他のデバイスでエラーっぽくなってる。
で、ネットワークアダプターの項目もなくなってる。
で、そっからデバイスの更新で、ネットワークアダプタを選んで更新。
ドライバがどこにあるのかわからず、苦戦。。
dell¥drivers 以下を参照して検索してみたら、なんかあってそうなのを発見してくれた。
それを指定したら無事ネットにつながりました。












| topic | 16:20 | comments(0) | trackbacks(0) | pookmark |
CodeIgniter+Twig+jQueryMobile+YOLP+GoogleMapsAPI3 サンプルコード
 以前、CodeIgniter+Twig+jQueryMobile+YOLP+GoogleMapsAPI3 の組み合わせで作ったサンプルWEBサービス

ちかくのコンビニ

のソースコードを bitbucketで公開してみました。

https://bitbucket.org/h19e/shopnavi/src


解説入れないと、あんまりわかりやすいコードじゃないんですが時間とれなかったんでとりあえず公開だけしてみました。

なにかの参考にでもなれば。

多分やらないとは思いますが、実際に動かしてみるときは、
Yahoo!のAppIdの部分は、 APPID_APPID_APPID に置き換えてますんでご注意を。
googleの広告は抜いてあります。





| programing | 00:07 | comments(0) | trackbacks(0) | pookmark |
Mercurial+bitbucket でソースコード管理

ソースコード管理するのに、githubを使おうかなと思ったのですが、privateでソースコード管理したいなぁと思い、別の探しました。

で、bitbucketっていうサービスがprivateでソースコード管理できそうなので使ってみました。

レンタルサーバ:coreserver

mercurialのインストール (まあgitみたいなもんです)
mkdir ~/local
mkdir ~/tmp
cd ~/tmp
wget http://www.selenic.com/mercurial/release/mercurial-1.9.2.tar.gz
tar xvzf mercurial-1.9.2.tar.gz
cd mercurial-1.9.2/
cd
vim .bashrc
-------------------------------------
export PATH=$PATH:$HOME/local/bin
export PYTHONPATH=$HOME/local/lib/python
-------------------------------------
source .bashrc
cd tmp/mercurial-1.9.2/
python setup.py install --home=$HOME/local

これで一応mercurialは使えるようになるはず。
hg version
で確認

次にbitbucket

https://bitbucket.org/

ここで、signup します。
とりあえずはアカウントと、メールアドレスを設定するぐらいですね。

登録すると、マイページのような感じになるので、

Repositories -> create new repository
で、リポジトリを適当に作ります。

次に、SSHのkeyを登録します。

AccountメニューのSSHKeysってなってるところで、公開鍵をアップロードします。

公開鍵に関しては、
gitHubにリポジトリを作成するまでのメモ
のエントリーを参照ください。

ここまでやったら、自分の環境に戻って、

hg clone ssh://hg@bitbucket.org/(アカウント)/(リポジトリ)
で、リポジトリのcloneを作成できます。

で、リモートのリポジトリにアクセスする際にユーザ名が必要みたいなので、

cd
vim .hgrc
-----------------------------------------------
username = (アカウント)
-----------------------------------------------


あとは、
hg status で確認したり、
hg add (ファイル名)でファイル追加したり、
hg commit でコミットしたりなど、gitとほぼ同じ。
hg push でbitbucketにソースを反映。

こういうのやるとき、だいたい変なとこではまるんだけど意外とすんなり。







| programing | 00:33 | comments(0) | trackbacks(0) | pookmark |
git のインストールメモ

mkdir local
cd ~/tmp
wget http://ftp.de.debian.org/debian/pool/main/g/git/git_1.7.2.5.orig.tar.gz
tar xvzf git_1.7.2.5.orig.tar.gz
cd git-1.7.2.5/
./configure --prefix=$HOME/local
gmake
gmake install

cd
vim .bashrc
-----------------------------------
export PATH=$PATH:$HOME/local/bin





| programing | 22:23 | comments(0) | trackbacks(0) | pookmark |
PHP サムネイル用正方形画像の生成
 
画像のサムネイル用正方形画像の生成方法の単なるメモです。

今更かもですが、このライブラリが抜群に使いやすかったです。

WideImage


100px × 100px の正方形のサムネイル画像を作るとき。
-------------------------------------------------------------

require_once "path-to/WideImage.php";

//対象画像のロード
$image = WideImage::load('path-to/original.jpg');

//一旦リサイズ
// outsideを指定することで、短い方が100pxになります。
$resized = $image->resize(100,100,'outside');

//画像の切り抜き
//中央から、100px × 100px
$cropped = $resized->crop('center','center',100,100);

//画像の保存
$cropped->saveToFile('path-to/thumb.jpg');

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

CodeIgniterにも画像のリサイズのライブラリはあるんですが、切り抜きの仕様が微妙なので探してたら、よいのがありました。
こういうのを求めてたよ。




| programing | 23:02 | comments(0) | trackbacks(0) | pookmark |
暗号化 + goo.gl で データ保存をしない時間制限つきのメッセージ作成サイト

最近、リリースまでに時間のかかるものを作っていると、途中で飽きちゃってペンディングのパターンが多かったので、とりあえず勉強がてら作ってみて、ぱっとリリースして興味がわいたらブラッシュアップしていく方法に切り替えました。

で、とりあえず

Temporary Message っていうサイトをまたリリースしました。

簡単に言うと、時間制限つきのメッセージを生成するサイトです。

まあ前回同様、たいしたサービスではないんですけどね。

今回は暗号化処理と、goo.gl のshortUrl 生成API を組み合わせて、データ保存を行わないで、メッセージの表示時間を制御する仕組みを作りました。

とりあえず今回は単純なメッセージ表示部分だけを作りましたが、こっからちょっとずつ進化させていければなぁと思ってます。

じゃあまた。




| programing | 00:39 | comments(0) | trackbacks(0) | pookmark |
CodeIgniter+Twig+jQueryMobile+YOLP+GoogleMapsAPI3
 
嫁に日曜日まるまる自由時間をあげるという条件を提示され、土曜日に日頃お世話になっているおばさん家のパソコンの初期設定とインターネットの接続をやってきました。

それで、久しぶりに家でじっくりプログラムをする時間がとれたので、簡単なサービスを作ってみました。

自由時間をもらってプログラミングとかちょっと暗いですねw
いや、いいんです。仕事が趣味なので。

実際に作成したのはこちら。

ちかくのコンビニ

現在いる場所周辺のコンビニを探すためのスマホ専用サイトです。
よかったら使ってみてください。

サービス自体はまあ今更な感じのものなので特に面白くもないんですが、今回はこのサービスを作るために、最近注目しているプロダクトを組み込んで作ってみました。

1. CodeIgniter
    - PHP フレームワーク
2. Twig
    - テンプレートエンジン
3. jQueryMobile
    - スマートフォンフレームワーク
4. YOLP
    - 地域・拠点情報のAPI
5. Google Maps API
    - 地図アプリケーションAPI

どれもドキュメントは充実しているのですが、実際にサービスに組み込んで解説しているものがあまりなくて、困ったときに情報が少ないと思うので機会があれば今後解説していこうかと思います。

まあ需要があればですが。。。













| programing | 09:00 | comments(1) | trackbacks(0) | pookmark |
DRY原則と直交性について
 
久しぶりにプログラミングについて書きます。

今回は、DRY原則と、直交性に関する内容です。

DRY原則は、プログラミングを仕事にしている人にとっては良く聞く言葉なんじゃないかと思います。
Don't repeat yourself の略ですね。

簡単に言うと、同じシステム内で同一の意味をもつコードを何回も書くなよって感じですかね。

で、直交性についてはDRY原則と同じぐらい大事なことなんですが、あまり聞かない感じではないでしょうか。

直交性とは、数学的に言うとある変数が別の変数に対して影響を及ぼさないこと。

簡単に言うと、コードを修正した時に、変更しようとした箇所以外に影響がないことって感じですかね。


プログラミングに慣れてきて、ある程度できるようになって、DRY原則やオブジェクト指向を学び始めた時に陥りやすいのが、コードを共通化しすぎることです。

これ、気持ちはわかります。

似たようなコードがあるとすぐにメソッドにまとめたり、継承をしたくなります。
そして、ソースコードをどんどん減らしたくなります。

もちろん、ソースコードが少ないのは良いことではあります。
メンテナンスもしやすくなります。

ただ、この時に気を付けなければいけないのが直交性を意識することです。

DRY原則に従って共通化するコードは、見た目が同じコードではなく必ず同一であることが必要な個所です。

同じコードが2か所あって、どちらかのコードだけを変えた場合に整合性がとれなくなる場合が、その対象となりえます。

逆に、どちらかのコードに変更を加えても問題がない、どちらか一方だけを変更する場合があり得る場合には、今現状コードが一緒でも共通化してはいけません。

共通化した部分にあとから、if 文での分岐が増えているときはこのパターンになっている場合が多いかと思います。


DRY原則と直交性を意識してプログラミングをするときに、その言葉通りに考えてしまうと、本来の目的(品質のよいコード)からかけ離れて、手段が目的となってしまう場合があるので、DRY原則は、変更箇所の最小化、直交性は、影響範囲の最小化、という意識をもって設計するとよいのではないかと思います。


また、すでになんらかのフレームワークを使用して、共通のライブラリなど使用している場合は、もうすでに共通化が必要なところはされている場合が多く、それほど共通化をする個所もない場合が多いので、そういったときには無理やり共通部分を探したり継承関係を無駄に作らなくてもよいのではないかと思います。










| programing | 22:25 | comments(0) | trackbacks(0) | pookmark |
PROFILE
SELECTED ENTRIES
SPONSORED LINKS
CATEGORIES
ARCHIVES
RECENT COMMENT
モバイル
qrcode
CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< January 2012 >>