2011-11 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

2011-11-26 (土)

第2回 関西PHP勉強会 LightningTalk [PHP][勉強会]

第2回 関西PHP勉強会 目次に戻る

Memcached は NoSQL


memcached って、NoSQL に分類されるのね。知りませんでした。。データ
数は 100,000 件とかにすれば、違いがより分かりやすかったかも?

PHP でも顔認識してみようぜ!


OpenCV を PHP から使う!
画像をアップロードすると、顔を認識してくれる。iPhoto とかであるやつですね。
実演は無事成功。8888

Windows Azure で PHP 動くんです


Windows Azure ってのがあるのですね。
クラウドで動く Windows Server

初心者でもわかる CakePHP と PDFlib


PDFlib は何十万もするらしい。。。弊社ではちょい無理です。
FPDF は無償。これはメモメモ。
12 月中に第 2 回関西 PHP 初心者勉強会やるらしいです。

PHP で Twitter


OAuth には、twmode とかこのブログとかで使ったことがあるので、これは
馴染み深かった。PHP でも簡単にできるんですね〜

php でも jubatus


データを突っ込むと、そのデータが何かを類推してくれる。
例えば、はてブのタグの suggestion とか。でも試作は失敗とのことw

facebook アプリ


heroku 使うやつだったけかな。雛形が用意されているので、結構簡単に作
れるらしい。プロジェクタートラブルはご愁傷様でした。

第2回 関西PHP勉強会 セッション2 PHP5.4おいしさつまみぐい [PHP][勉強会]

第2回 関西PHP勉強会 目次に戻る



@tanakahisateru さんの発表。

5.4 はゆるやかな変更
5.4 から 2 進数リテラル(例: 0b1111)が使える。

Array Short Syntax


array() 使わなくても [] でいいやつね。
YAML 使わなくてもシンプルにできるかも、とのこと。

Builtin Server


"php -S localhost :8080" で簡単起動。PHP5.3 とかの既存の環境を変更
せずに試せる。.php だけでなく、static なファイル .html とかも表示で
きる。引数にビルトインサーバ用スクリプトを指定すると、CakePHP とか
の .htaccess を要求するフレームワークも動かせる。

TRAIT


親クラス以外からもメソッド実装を持って来れる。
class の代わりに、trait で定義する。
使いたい class でだけ use で使う。
これはいい!

クロージャ


5.3 まではクロージャの中で $this を使えなかった。

この記事に言及しているこのブログ内の記事

第2回 関西PHP勉強会 セッション1 あらためてPHP5.3 [PHP][勉強会]

第2回 関西PHP勉強会 目次に戻る



@shin1x1 さんの発表。

PHP5.2 から大きく機能追加されたとのこと。PHP6 のリリースがいつにな
るか分からないので、PHP6 から PHP5.3 にバックポートされたためだそう。

class の外でも const が使えるのはうれしいですね〜。と言いたいところ
ですが、define しか知りませんでした。。でも今試しました。OK! できた!

const AAA = 'huga';	/* クラスの中に書いても外に書いても OK */

pr(self::AAA);		/* クラスの中の時 */
pr(AAA);		/* クラスの外の時 */



namespace


PHP5.3 未満には存在しなかった。グローバルネームスペースのみ。
バックスラッシュで階層化。(なんでスラッシュじゃないの?と思った。)
影響は .php ファイルのみ。
use でインポート、エイリアス
クラス、インターフェイス名と、関数、変数とでは名前空間の検索方法が異なる。
名前空間の付け方 -> PSR-0 でルール化
結論。ハマりどころを抑えておけば問題なし。

クロージャ


似たような処理を関数化することは多いと思うが、クロージャを使えばメ
ソッドを関数の中に閉じ込められる。うまく使うと、保守性の高いコーディ
ングが出来そう。そういえば C 言語でもクロージャは書けるみたいですね。
[2010-03-30-1]

LSB


Late Static Bindings 遅延静的束縛
実行時に評価される。
self:: を static:: にするだけ。

まとめ


PHP マニュアル読みなさい。
ちょっと試したいときは、Silex というフレームワークがオススメ。

休憩


なんと!バームクーヘンが出て来ました。PHP 界隈ではスイーツ恒例だそ
うです。(フィルムをはがして撮れば良かったorz)
画像

初めて PHP 勉強会に参加してきた! #kphpug [PHP][勉強会]

ごあいさつ



PHP 界隈の皆様はじめまして。@masutaka です。PHP 歴は 8 ヶ月ほどです。
普段は Emacs に住んでいます。組み込み系の業務で C 言語を 11 年くら
い使っていた関係で、私のPHP コードはすごく C 言語っぽい気がしてま
す...。他、EmacsLisp と Ruby でたまに小粒なツールを作ります。

第2回 関西PHP勉強会



というわけで、第2回 関西PHP勉強会に参加してきました。PHP 勉強会に参
加するのは今回が初めてです。Emacs とも Ruby とも雰囲気が違って良い
ですね〜。初心者が一番参加しやすいんじゃないでしょうか。楽しかった。
@shin1x1 さんを初めとする運営の方々、ありがとうございました。

長くなってしまったので、各セッションは別記事にしました。ほとんど個
人的なメモです。

セッション1 あらためてPHP5.3
セッション2 PHP5.4おいしさつまみぐい
LT(Lightning Talk)

来年の 5 月に PHP カンファレンス関西が開かれる予定とのこと。これは
行かねば!

2011-11-22 (火)

英語文法メモ4 - 助動詞 [English]

難しいし、量が多いしで、part2 の 3 節までまとめて力尽きた。

能力・許可を表す助動詞



can と be able to は同じ意味。ただし、will can のように助動詞を2つ
続けることは出来ないので、その場合は will be able to を使う。

ただし、could と was able to には違いがある。

(1) She could play the violin at five.
(2) I was able to swim 200 meters yesterday.

過去において「〜する能力があった」という過去の能力を表す場合は、
(1) のように could を用いることも出来るし、was able to を用いること
も出来る。反対に「〜することが(実際に)できた」という過去に実行した
ことを表すときには、(2) のように was able to を用いる。could を用い
ることはできない。ややこしい。。。

許可を表したい時は、can または may を使う。May I ...? はやや堅苦し
い言い方なので、Can I ...? が使われることが多いとのこと。

Can I turn on the radio?
May I use your bathroom?

Yes, of course (you can)./Yes, please (do)./Sure. などと答える。

You may ... は上の立場の人が許可を与える言い方。

You may leave early today.

従って、Yes, you may. という返答は、子どもや下の立場の人に許可する
感じを与えるとのこと。

依頼を表したい時は Can you ...? を使う。Could you ...? を使うと、よ
り丁寧な言い方になる。Could you possibly ...? を使うとさらに丁寧な
言い方になる。

Can you open the window?
Could you lend me the book?
Could you possibly lend me another fifty dollars?


義務・必要を表す助動詞



「〜しなければならない」

You must attend the morning.
I had to write a report about my summer vacation.

must と have to を使う。ほぼ同じ意味だが、must の方が意志が強めの印
象。have to は規則や周囲の状況などから、そうしなければならないとい
うことを表すことが多いそう。

must は現在時制でしか使えないので、過去の義務や必要を表したい時は
had to、未来であれば will have to を使う。

否定文では意味が違ってくる。must not は「〜してはいけない」という禁
止、don't have to は「〜しなくてもよい、〜する必要はない」という不
必要を表す。

「〜すべきです」

You should exercise every day.
We ought to save energy.

should と ought to を使う。日本語の「〜すべきだ」ほど強くはなく、
「〜するほうがよい」くらいの意味と考えて良い。must のような強制力は
ない。

「〜しなさい」

You had better report the accident to the police.

特に you を主語にすると命令的な感じを与えるので、上の立場の人や年上
の人に対しては使わない。否定形は had better not を使う。had better
は「〜したほうがいい/〜しなければいけない」という意味を表すこともあ
るそう。

We'd better go back. It has started to snow.


可能性・推量を表す助動詞



can / could

(1) Anybody can make mistakes.
(2) The light in the sky could be a plane.
(3) Can his story be true?

(1) は「〜はありうる」、(2) は「〜かもしれない」。どちらも可能性を
表す。(3) の Can ...? は強い疑問を表す。

may / might

(1) We may have some rain tomorrow.
(2) He might come to the party with his wife.

どちらも「〜かもしれない」という推量を表す。might は may よりもやや
可能性が低いことを表すことが出来る。

will / would

(1) The phone is ringing. That will be my father.
(2) That would be the best solution.

「たぶん〜だろう」という話し手の推測をあらわす。would を使うと、
will よりも控えめで丁寧な言い方になり、will よりも自信のなさを表す
こともある。

※ 可能性や推量を表す could / might would は形は過去形だが、過去の
ことを表しているのではない。

must / can't

(1) She must be Bobby's sister.
(2) Karen can't be home now.

(1) は「〜に違いない」という確信を表す。
(2) は「〜のはずがない」。couldn't を使うことも出来る。

should / ought to

(1) My parents should be in Boston by now.
(2) Our guests ought to be here in a few minutes.

「〜のはずだ/きっと〜だ」を表す。

※ must は「絶対そうだ」、should は「きっとそうだ」、may は「そうか
もしれない」というニュアンス。


2011-11-21 (月)

Emacs での UNIX 時間操作まとめ [Emacs]

Emacs で UNIX 時間が必要になったので、いろいろ調べました。
そういうわけで個人的なメモになります。

;; 任意の日時の UNIX 時間を求める。
(let ((year  2011)
      (month   11)
      (day     21)
      (hour    18)
      (minutes 30)
      (seconds 00))
  (time-to-seconds
   (encode-time seconds minutes hour day month year)))
=> 1321867800.0

;; UNIX 時間を Emacs 時間(?) に変換する。
(seconds-to-time 1321867800.0)
=> (20170 6680 0)

;; Emacs 時間を UNIX 時間に変換する。
(time-to-seconds '(20170 6680 0))
=> 1321867800.0

;; Emacs 時間を日時に変換する。
(current-time-string '(20170 6680 0))
=> "Mon Nov 21 18:30:00 2011"

;; Emacs 時間を任意のフォーマットの日時に変換する。
(format-time-string "%Y/%m/%d %a %H:%M:%S" '(20170 6680 0))
=> "2011/11/21 月 18:30:00"

;; Emacs 時間を decode する。
(decode-time '(20170 6680 0))
=> (0 30 18 21 11 2011 1 nil 32400)
;; (SECONDS MINUTES HOUR DAY MONTH YEAR DOW DST ZONE)

;; 現在の Emacs 時間を取得する。
(current-time)
=> (20170 6680 0)



UNIX のコマンドラインと C 言語での取得方法はこちら。[2009-11-21-1]

追記(2011-11-22):
コメント欄で @kiwanami さんから、斜め上の図を教えて頂きました。
http://emacs.g.hatena.ne.jp/kiwanami/20110608/1307551439

2011-11-18 (金)

『自分のアタマで考えよう』を読んだ [Book]



前回とはうって変わり、表やグラフがよく出てくる分析的な本。考えるこ
とについて突き詰めて考えた本なので、一度目を通しておいた方が良いと
思う。

以下、ビビッと来たところ。

P168

  日本企業は、与えられたフィルターの中で一番に選ばれるための商品を
開発することにはとても優れているのに、「今までになかった新たなフィ
ルターを消費者に提示する」ことが必ずしも得意ではない、ということで
す。
  ビジネスの世界では、この「新たな選択基準=新たなフィルターを提示
する」ことを、「ゲームのルールを変える」といいます。


P238

①知識は思考の棚の中に整理すること
②空いている棚に入るべき、まだ手に入っていない知識を常に意識すること
③それらの知識が手に入れば言えるようになることを、事前に考えておくこと

これが、ちきりんが考える「知識と思考の、理想的なカンケイ」なのです。

2011-11-05 (土)

Emacs Lisp で buffer-local function を使う方法 [Emacs]

stackoverflow を見ていたら、面白いネタがあったのでメモしておきます。



このコードは buffer-local variable のように動作します。

通常のバッファでは "this is a default message." をミニバッファに出
力します。use-my-foo が定義されたバッファ((set ..) の行を評価する)
では "this is a special message." を出力します。

用途はちょっと思いつきませんが、こんなことも出来るのですね。

2011-11-02 (水)

Git タグ操作のまとめ [Git]

個人的なメモ その3
その1と2は [2010-04-29-1][2011-07-05-1] にあるよ。

(1) タグ一覧を表示する。

% git tag


(2) タグ 1.0.50 を作成する。タグの種類は「注釈付きのタグ」

% git tag -a 1.0.50


(3) 後からタグ 1.0.50 を 9fceb02 に付ける。

% git tag -a 1.0.50 9fceb02


(4) タグ 1.0.50 の情報を表示する。

% git show 1.0.50


(5) リモートブランチ origin にタグ情報 1.0.50 を送信する。

% git push origin 1.0.50


(6) リモートブランチ origin にタグ情報全てを送信する。

% git push origin --tags


参考情報:
Pro Git - Pro Git 2.11 Git の基本 タグ

2011-11-01 (火)

C で実装された Emacs のビルドイン関数にジャンプする [Emacs]

Emacs ではほとんどの関数は Emacs Lisp で書かれているため、
F1 f (describe-function) すると、定義されている *.el が一行目に
表示されます。

add-to-list is a compiled Lisp function in `subr.el'.

この例だと `subr.el' 上で Enter すると、定義元に飛べます。

中には高速化のために C で書かれた関数もあります。car や cdr、
write-region などです。このような関数を F1 f すると、以下のように
表示されます。

car is a built-in function in `C source code'.

同じように `C source code' 上で Enter すると、C のソースコードに飛
べます。

Enter 後に "Emacs C source dir:" というプロンプトが表示されてしまっ
たら、ソースコードの展開先を指定してあげましょう。

もう削除しちゃったよという人や、パッケージでインストールしてソース
コードがない人は適当な場所に展開すると良いでしょう。

% pwd
/Users/masutaka
% wget http://ftpmirror.gnu.org/emacs/emacs-23.3a.tar.bz2
% tar xjf emacs-23.3a.tar.bz2


上記の例だと、"~/emacs-23.3/src" を指定すれば OK です。毎回指定する
のが面倒なら、以下を設定すれば OK です。

(setq find-function-C-source-directory "~/emacs-23.3/src")


2011-11 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

最終更新時間: 2017-02-25 20:20

検索
最近の話題
- 2017-02-25
  18 年 4 カ月使った au を解約して IIJmio に乗り換えた
- 2017-02-21
  第18回Elasticsearch勉強会に参加してきた #elasticsearchjp
- 2017-01-27
  同じ Ajax 処理を Vue.js と jQuery で書いてみた
- 2017-01-10
  完全に闇に落ちていた StartSSL に ¥3,603 課金してしまったお話
- 2017-01-03
  Software Design を 13 ヶ月分まとめ読みした
- 2016-12-19
  任意の Ruby オブジェクトを YAML として書く
  Ruby の $ERROR_INFO などの特殊変数は require 'English' が必要だったのか
- 2016-12-14
  不惑の年に風呂の良さを知った
最近追記された記事
- 2017-02-21-1 (3日前)
- 2015-06-07-1 (9日前)
- 2016-10-19-1 (18日前)
- 2016-01-01-1 (30日前)
- 2015-01-04-1 (39日前)
- 2015-06-07-1 (59日前)
- 2016-12-10-1 (77日前)
- 2016-11-05-1 (85日前)
- 2015-01-04-1 (93日前)
- 2016-11-01-1 (114日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (15)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (3)
- Book (85)
- Boxen (2)
- Bugsnag (1)
- C (26)
- capistrano (3)
- chalow (56)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (7)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (1)
- E-mail (8)
- elasticsearch (4)
- Emacs (219)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (1)
- Game (19)
- Gem (5)
- Git (8)
- GitHub (15)
- Go (5)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (2)
- Heroku (9)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPhone (15)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Langrich (7)
- LDAP (6)
- Life (18)
- Linux (5)
- Mackerel (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (1)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (10)
- Rake (2)
- RaspberryPi (1)
- RedHat (29)
- Redmine (3)
- Rspec (1)
- Ruby (48)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (14)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (25)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (14)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+