LLT LIVE in Shibuya ã«åå ãã¦ãã
åè·ã®å¾è¼©ã®ããã¯ãåã«èªã£ã¦ããã£ã¦ã第1åç®ã® LLT LIVE ã«åå ãã¦ããã
LLTã¨ã¯ãreluxãéå¶ãã¦ãã Loco Partnersããã主å¬ãã¦ããLTã
Loco partners Lightning Talk ç¥ã㦠LLTããããå¤é¨ã®äººãå¼ãã§ãªã¢ã«ã§è¡ãã¨ãããã¨ã§ãLLT LIVEã¨ã®ãã¨ã§ããã
åéå¬ã¨ãããã¨ã§ã人æ°å°ãªããããã¼ãæãã§ã¾ã£ããã§ããã
ä»å¾ãç¶ãã¦ãã£ã¦æ¬²ããã§ãã
ãã¶ãé£ã¹ã¤ã¤ããã¼ã«ã§ä¹¾æ¯ãã¦ããã¹ã¿ã¼ãã
ã¨ã£ãã¼ãã CakePHPã§æ©æ¢°ç¿»è¨³
Microsoft Translator API ã使ã£ãã話ã200ä¸æåã¾ã§ç¡æã¨ã®ãã¨ã§ããã
äºåã«ããããªããéç¨æã«ç®¡çç»é¢çããç»é²ãããæç« ãä¾ãã°åå説æã®æç« ãªã©ãç»é²ã»å¤æ´æã«APIã§å¤æããããã使ãã¨ãããããªç¨éããã®ãããªAPIã使ããã¨ã§ã§ããã¨ã®ãã¨ã§ããã
ããã¡ãã
ã¿ã¤ãã«ãã¡ã¢ãå¿ãããã©ããVagrant ã®ç´¹ä»ã«ã¤ãã¦ã®çºè¡¨ã§ããã
XAMPPãMAMP ã§åºæ¬ç°å¢ãä½ãããã©ããã以ä¸ã®OSããå
¥ãã¦åãç°å¢ãè¤æ°äººã®æå
ã§å®è¡ããã®ã«ã¤ã±ãã¨ã®ãã¨ã
ãã£ãã¼ãã CakePHP + MySQL Replication
ãã«ãã©ã½ã³ï¼ãä¸æ¨å¹´ããèµ°ã£ã¦ãã¨ã®ãã¨ã§ãããèªå·±ç´¹ä»ã«é£ãã¤ãã¦ãã¾ã£ãã
ãã²ãLemonade 使ã£ã¦ã¿ã¦ãã ããï½
å®éã®ãµã¼ãã¹ã§ãè² è·å¯¾ç㧠MySQLã®ã¬ããªã±ã¼ã·ã§ã³ãå ¥ãã¦ããã®ããã«CakePHPã§è¡ã£ãæ¹æ³ã«ã¤ãã¦ã§ããã
class AppModel ã® beforeFindãafterFind ã¨ãããåå¾ç³»å¦çã®åå¾ã§è¨å®ãåãæ¿ãã¦æ»ãã¨ããæ¹æ³ã
CakePHPã詳ããç¥ããªãã®ã§ãå
é¨çã«ã©ãããå®è£
ããã¹ããã¯ããããªãã£ããã©ãæ¢åã³ã¼ãã¸ã®å½±é¿ãæå°éã«ãã¤ã¤ãã¨ããã¢ããã¼ãã¯ãããªã¨æã£ãã
ããã¯ããã
ã¾ããã¿ã¤ãã«ã¡ã¢ããã®å¿ãããããªããã®ãã¿ã®é·ãã¿ã¤ãã«ã ã£ãï½
å®éã«ã¬ã¹ãã³ã·ããã¶ã¤ã³ã®ãã¼ã¸ãä½ã£ã¦ã¿ã¦ãã¨ããã話ã
- ãã¾ã¾ã§ã¯PCçãã¹ãã¼ããã©ã³çã®ã«ã³ããä½ãããä»åã¯PCçã®ã¿ã§ã¹ãã¼ããã©ã³çã¯é ã®ãªãã ãã§ãã£ã
- ä¸è¬çã«ã¯ã¹ãã¼ããã©ã³çããèµ·ãããæ¹ããããããããPCçããã§ãå ã«èæ ®ãã¦ããã°åé¡ãªãã¿ãã
- ã·ã³ãã«ãªãã¶ã¤ã³ã§ããã°åé¡ãªããã
- éã«è¾¼ã¿å ¥ã£ããã®ã¯å¥éä½ã£ãã»ãããã
- relux ã®æ¬ä½ãµã¤ãã¯å¥ãã¼ã¸ã¨ã®ãã¨
- common.css, pc.css, phone.css ãä½ããlinkã¿ã°ã§èªã¿è¾¼ã¿ãåããæ¹å¼
<link rel="stylesheet" type="text/css" href="/css/campaign/1/common.css" media="all" /> <link rel="stylesheet" type="text/css" href="/css/campaign/1/pc.css" media="screen and (min-width: 481px)" /> <link rel="stylesheet" type="text/css" href="/css/campaign/1/phone.css" media="screen and (max-width: 480px)" />
@maru_cc ã§ç§ã
ä½ãçºè¡¨ããããè¿·ã£ãã®ã§ãããLemonade ã®è©±ã¨ãéçºä¸ã®ã¹ãã¼ããã©ã³ã¢ããªã®è©±ããã¦ãã¾ããã
ã¡ãã£ã¨æ°åãå
¥ãããã¦æéãªã¼ãã¼ã ã£ãã¨æãã¾ããããã¾ãããã
- Lemonadeã¨ã¯
- http://lemona.de
- ãã¾åãã¦ããä¼ç¤¾ã§ä½æãã¦ãããµã¼ãã¹ã§ããã£ããç°¡åã«èª¬æããã¨ãã¹ãã¼ããã人åãã®SNSã§ã
- åã«å人ã®è¨é²ãå ¬éããã ãã§ãªãããªã¢ã«ã«ä¸ç·ã«èµ°ãã«è¡ããã¨ããµãã¼ãããããã¨ãããµã¼ãã¹ã§ã
Lemonadeã®iPhone, Androidã¢ããªã¯ãNativeã¨WebViewã®ãã¤ããªããã¢ããªã§ããã®è¾ºããçºè¡¨ãã¾ããã
å®éã®Redmineè³æãã³ã¼ãã交ãã¤ã¤ãªã®ã§ãè³æã®ã¿ã ã¨è¶³ããªãã¨ãããããã¾ãããslideshareã«ä¸ãã¾ããã
http://www.slideshare.net/maru_cc/lltlive-in-shibuya
çæãã
ããªã´ã³é¢¨ãã¶ã¤ã³ã®ã話ã¨ãç°¡åã«ç»åããããªã´ã³é¢¨ãã¶ã¤ã³ã®ç»åãä½æã§ãã triangulator ã¨ããã¢ããªã®ç´¹ä»ã
ã¾ããããªã´ã³é¢¨ãã¶ã¤ã³ã¨ããã®ãåãã¦èãã¾ããã
http://www.webcreatorbox.com/inspiration/low-poly-2/
ã°ã©ãã£ãã¯ä¸»ä½ã®ãã¶ã¤ã³ããã¾ã観測ç¯å²ã§ã¯ãªãã£ãã®ã§ç¥ãã¾ããã§ããã
ã¤ã³ãã¯ãã®æããã¶ã¤ã³ã¡ã¤ã³ãªãµã¤ãã¨ãã§ä½¿ããã®ããªï¼
米山ãã è±ã»ã³ããããã°ã©ãã¼
ã³ã¼ãã®å
容ç¥ããã«ã³ãããã¦ã¾ãããï¼ã¨ããã話ã
Google Analitics(以ä¸GA) ã®ã³ã¼ããåèã«ãããããã³ãããã¦ä½¿ããããã¨åæã®ã³ã¼ãã«ãç´°ãããã¦ãã¦ãè©°ã¾ã£ã¦ãã®ã§ãã³ã¼ããªã¼ãã£ã³ã°ããããã¨ããã話ã
GAã®ã³ã¼ãã§ã¯ãã¹ã¯ãªããèªä½ã®ãã¦ã³ãã¼ããå®äºãã¦ããªãã¦ããã¼ã¸ã表示ãããããªå·¥å¤«ããã¦ããã¾ãã
Webãã¼ã¸ã®è¡¨ç¤ºã®é«éåã§ããµã¼ããµã¤ãã ãã§ã¯ãªããã¯ã©ã¤ã¢ã³ããµã¤ãã§ãã§ãããã¨ã¯ãããããããã
ã»ãã¤ããã©ã¼ãã³ã¹Webãµã¤ã
ã»ç¶ã»ãã¤ããã©ã¼ãã³ã¹Webãµã¤ã
ãã®è¾ºããã¯ã©ã¤ã¢ã³ããµã¤ãå´ãååãããå
¥ã£ã¦ããããã¨ã
Lemonadeã§ãçµæ§æ°ã«ãã¦ãã¥ã¼ãã³ã°ãã¦ããã¨ããã ã£ãããã¾ãã
ãããã«
ä»åã®å ´æã® 21cafe ã¯é°å²æ°ããããããå ´æã§ããã
Facebookã§ã¤ãã³ãåæè¨äºãè¼ã£ã¦ã¾ããã
【イベント取材 vol.23】高級旅館予約サイト『relux』開発LTイベント/12月13日(金)
svn,git,hgã³ãã³ãã®aliasãããã
ãã¼ã¸ã§ã³ç®¡çã·ã¹ãã 使ã£ã¦ã¾ããï¼
æè¿ãä¼ç¤¾ã®ãªãã¸ããªãSubversionããGitã«ãã¤ãã¤ç§»è¡ãã¦ã¾ããGitã®ãã©ã³ãã使ã£ã Git Flowã®èãæ¹ã浸éãããã¹ããåæ ãã¼ã«ã®Git対å¿ãªã©ãã¦ããã¾ãã
ããã¨åæã«ãMyBikeJPããã¸ã§ã¯ãã¯ãMercurialã§ç®¡çãè¡ã£ã¦ãã¾ãã
å¾®å¦ã«ä¼¼ã¦ãããã©éã gitã³ãã³ã㨠hgã³ãã³ãã«æ··ä¹±ãã¾ããã§ãå
æ¥ããã¼ã¸ã«ãã¹ã£ã¦ @key3 ããã«è¿·æããã¡ããã¾ããã
ã¨ãããã¨ã§ãç°å¢å·®ç°ãå¸åããããã«ãã¹ãæ¸ã£ã¦æ¥½ã«ãªããã㪠aliasãã·ã§ã«é¢æ°ãè¨å®ãã¾ããã
ã¡ãªã¿ã« zshã§ãã
Subversion
svnã§ã¯ãå ã ã.zshrc ã id:sotarok ããã®ããã¼ã¹ã«ãã¦ããé¢ä¿ã§ã·ã§ã¼ãã«ãããç¥ãã¾ããã
http://trac.nequal.jp/browser/public/dotfiles/sotarok/zsh/.zshrc?PATH=$HOME/bin:/usr/gnu/bin:/opt/local/bin:/usr/local/bin:$PATH:/sbin#L128
ä¹
ã
ã«è¦ããã¾ããã¼ã¸ã§ã³ããã£ãã£ã½ã
ãã¶ãåèã«ããå½æã¯ãããªæãã ã£ãã¨æãã¾ãã
alias st='svn st' alias stu='svn st -u' alias sdi='svn di' alias sad='svn add' alias sp='svn up' alias sup='svn up' alias sci='svn ci'
ããã«ããã¤ã追å ã»å¤æ´ãã¦ä»ã¯ãããªæãã
alias st='svn info; svn st' alias stu='svn st -u' alias stg='repos=`svn info|grep "URL: .*trunk"|sed "s/URL: \(.*\)trunk/\1/"`;list=`svn ls ${repos}tags`;echo -ne $list|grep "^release_"|sed "s/release_\(.*\)\//\1/"|sort -t . -k 1,1 -k 2,2n -k 3,3n|sed "s/\(.*\)/release_\1/";echo -ne $list|grep -v "^release_"|sort' alias stl='stg' alias sdi='svn di' alias sad='svn add' alias smv='svn mv' alias srm='svn rm' alias sp='svn up' alias sup='svn up' alias sci='svn ci'
Git
åºæ¬çã«ã¯ Subsersionã®èãæ¹ãè¸è¥²ãã¦çç¥ã³ãã³ããä½æ
alias gst='git status' alias gtg='git tag' alias gtl='list=`git tag`;echo -ne $list|grep "^release_"|sed "s/release_\(.*\)/\1/"|sort -t . -k 1,1 -k 2,2n -k 3,3n|sed "s/\(.*\)/release_\1/";echo -ne $list|grep -v "^release_"|sort' alias gbl='git branch' alias gbls='git remote prune origin;git branch -a' alias gdi='git diff' alias gad='git add' alias gmv='git mv' alias grm='git rm' alias gci='git commit' alias gcia='git commit -a' alias gps='git push;git push --tags' alias gpl='git pull;git pull --tag' alias gmg='git pull origin' alias gco='git checkout'
- gtlï¼Gitã§ã¯ãã¿ã°ã®æ¦å¿µãã¡ãã£ã¨éãã®ã§ãgit tag 㨠git tag -a ç¸å½ã®ã³ãã³ãã2ã¤ç¨æ
- gblãgblsï¼ãã©ã³ãç¨ã®ã³ãã³ãç¨æãgblsã¯ãªã¢ã¼ããå«ãããã©ã³ãã表示
- gpsãgplï¼pull pushã¯svnã«ã¯ç¡ãæ¦å¿µã§ãã
- gmgï¼ãã©ã³ãã§ä½æ¥ä¸ã«masterã«å ¥ã£ãæ°ããä¿®æ£ãåå¾ãããããªæã«ä½¿ç¨
- gcoï¼ä½æ¥ãã©ã³ãã®åãæ¿ãç¨
Mercurial
ãã©ã³ãä½æ¥ä¸ã« defaultã«å
¥ã£ãä¿®æ£ãåãè¾¼ãæ¹æ³ã¨ããã©ã³ãã®åãæ¿ãã Gitã¨å¤§ããéãã¨ãããªã®ã§ãããã¸ããèæ
®ãã¾ããï¼å
æ¥ã®ãã¹ããã®è¾ºï¼
ãã¨ã¯ãå·®å確èªã diffã³ãã³ããªã©ã¯ãGitã®æ¹ã使ããããã£ãã®ã§ãè²ãä»ãããã¨ã less風ã«ç¢ºèªã¨ãã¯ããã¡ããçä¼¼ãã¦ã¿ã¾ããã
alias hst='echo -n "# On branch ";hg branch; hg --config "extensions.color=" status' alias hbl='hg --config "extensions.color=" branch' alias hbls='hg --config "extensions.color=" branches' hdi() { hg --config "extensions.color=" diff --color=always $1 | less -R } alias had='hg add' alias hrm='hg rm' alias hci='hg commit' alias hps='hg push' alias hpl='hg pull;hg update' alias hup='hg update' alias hmg='hg merge -r' hco() { hst FROM=`hg branch` TO=$1 hg pull RET=`hg update -c -r $TO` if [ -n "$RET" ]; then hg --config "extensions.color=" update -r $TO hg --config "extensions.color=" diff -r $FROM --stat fi }
- hdiï¼diffãè²ãä»ãã¦è¡¨ç¤ºã¨åæã«ããã¡ã¤ã«ãåå¥æå®ã§ãåãããã«ãããã£ãã®ã§ãã·ã§ã«é¢æ°ã¨ãã¦è¨å®
- hcoï¼ãã©ã³ãåãæ¿ãã®ä»æ¹ã Gitã¨éã£ã¦æ··ä¹±ããã®ã§æ°ããã³ãã³ãä½æãåãæ¿ããæã«ã©ã®ãã¡ã¤ã«ãå¤æ´ãããã®ãããããªãã®ã§ããããããªæ©è½ã追å
ä½æ¥ãã¦ããé åã®ç¢ºèª
ãã¾ãã©ã®ãã©ã³ãã«ããã®ãã¨ããã®ãããããªããªã£ã¦ãã¾ãã®ã§ã常ã«è¦ããããã«è¨å®
autoload -Uz vcs_info zstyle ':vcs_info:*' formats '(%s)-%b ' zstyle ':vcs_info:*' actionformats '(%s)-%b|%a ' precmd () { psvar=() LANG=en_US.UTF-8 vcs_info [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" } RPROMPT="%1(v|%F{green}%1v%f|)[%~]"
å ¥åãã¦ããã³ãã³ãè¡ã®å³å´ã«ããªãã¸ããªã®ç¨®å¥ããã©ã³ãåãä»ãããã¹ ã表示ãããããã«ãªãã¾ããã
dotfiles
ããããè¨å®ç³»ã¯ãæ°ãããµã¼ãã«ç°å¢ä½ãå ´åã«åããã®ãåæ ã§ããããã« githubã«æ¾ãè¾¼ãã§ããã¾ãã
https://github.com/marucc/dotfiles
ã»ãã«ãããã®ãããªè¨å®ãå ¬éãã¦ãã人ã¯ããããããã®ã§ï¼ãã®ãããã¨ãï¼ http://coderepos.org/share/browser/dotfiles/ ï¼ããããã試ãã¦ã¿ãã¨ããã¨æãã¾ããããã£ã¨ããè¨å®ããã£ãããã²æãã¦ãã ããã
MyBike.JP Studyãªããã®ããã£ã
ã¾ããMyBike.JPã¨ã¯ã
- http://mybike.jp/
- @key3 ãããå æ¥ãªãªã¼ã¹ãããµã¼ãã¹
ä»ã®ã¨ããã¯ãèªè»¢è»ã®åçæ稿èªæ
¢ãµã¤ãã£ã½ããªã£ã¦ããããä»å¾ã«æå¾
ãã¦ãã ããã
ããã¶ãåãããä¸ç·ã«é£²ã¿ã«è¡ãã¨ãèªè»¢è»é¢é£ã®ãµã¼ãã¹ãä½ãã¨ãããã¨ã§ããããããã話ãã¦ããã®ãå®ç¾ãããæãã ã¨æãã¾ãã
ç§ã¯ãå é¨ã®ã½ã¼ã¹ãè¦ãããªã¼ã¨ããã®ããããéçºã®æä¼ããã§ããã°ã¨æããbitbucketã®ããã¸ã§ã¯ãã«æå¾ ãã¦ããã£ã¦ç°å¢æ§ç¯ã¨ããã¦ãã¾ããã
ä»åãéçºããµã¼ãã¹ã®ä»å¾ãèãããã¨ãããã¨ã§ããã¼ãã©ã¦ãããã®ä¼ç¤¾ãåãã¦ããã«ã½ã³çãªåå¼·ä¼ããã¦ãã¾ããã
æ¥ææ¥ã®11æããã«ã¾ã£ããéåã
keyãããä½ã£ã¦ããã¹ã©ã¤ããè¦ã¦ï¼ããã¯ããã§ã«ãããã話ãèãã¦ããã®ã§æ¹ãã¦ã£ã¦æãï¼ãç°å¢æ§ç¯ã
Djangoã¯ã軽ããã触ã£ããã¨ããªãã®ã§ãç°å¢æ§ç¯ããã¯ã¾ãã¾ããã§ãã
ãã§ã«ããç¨åº¦åãããã«ãªã£ã¦ããã®ã§ãããç»åæ稿å¨ããåããåè¦å
«è¦ã
ãããªæ§æ
- python 2.6
- Django
- celery
- rabbitmq
- postgresql (ãã¼ã«ã«éçºæã¯sqliteï¼
- memcached
- mongodb
ã¨ãããããåå¼·å
¼ãã¦ããããã¬ã©ã±ã¼å¯¾å¿ãbpmobileã¨ã使ã£ã¦ãã¦ã¿ã¦ããã¨ããã§ãã
é¢é£
æºå¸¯ã®ç©ºã¡ã¼ã«ã§ãæ¡å¼µã¢ãã¬ã¹ã®ããªãã¿ããã©ã¹ã«ãã¦ããã¨auã§ã¯ã¾ã
ä¹ ã ã«ã¯ã¾ã£ãã®ã§ãã¡ã¢å ¼ãã¦èª¿ã¹ã¦ã¿ã¾ããã
æºå¸¯ãµã¤ãã§ç©ºã¡ã¼ã«ãåãåãã¨ããã®ã¯ãã¢ããªãä½ãä¸ã§ããããæ段ã ã¨æãã¾ãã
ã¦ã¼ã¶ã«ã¡ã¼ã«ã¢ãã¬ã¹ãæå
¥åãã¦ãããæéãé²ãã¨ããçç±ä»¥å¤ã«ã確å®ã«æå¹ãªã¢ãã¬ã¹ãç»é²ãã¦ããããã¨ããå©ç¹ãããããã§ãã
ã¾ããç»åæ稿ã«ã¤ãã¦ããä¸é¨ã®docomoã®æ°ãã端æ«ãªã©ãé¤ãããã©ã¦ã¶ããã¯æ稿ãåºæ¥ãªãã®ã§ãã¡ã¼ã«ã«æ·»ä»ããã¦ãããã¨ããã®ã¯ããããæã§ãã
ãããã®å ´åã«ãéä¿¡å
ãã¡ã¼ã«ã¢ãã¬ã¹ãè¤æ°ç¨æããªããã°ãªããªãå ´åã«åºãããã¾ãã
ãããªå ´åã«ä½¿ãã®ãæ¡å¼µã¢ãã¬ã¹ã§ãã
user-ext@example.com
user+ext@example.com
user-ãuser+ 以éã¯èªç±ã«ãªã«ãæå®ããã¦ãåãåãã¨ããä»çµã¿ã§ãã
gmailã§ã¯+(ãã©ã¹è¨å·)ãå®éã«ä½¿ããã¨ãã§ãã¾ãã
ãã¡ã§ã¯ããã¨ãã¨qmailã使ç¨ãã¦ããã¨ããçç±ãããæ¡å¼µã¢ãã¬ã¹ã®åºåãè¨å·ã¯ãã¤ãã³ã使ç¨ãã¦ãã¾ããã
ãã®å¾ãMTAãpostfixã«åãæ¿ããæãããã®è¨å®ãå¼ãç¶ããæ¡å¼µã¢ãã¬ã¹ã®åºåãè¨å·ã¯ãã¤ãã³ã§éãã¦ãã¾ããã
ä»åãã¨ããæ¡ä»¶ãæ§ç¯ããã®ã§ããããµã¼ãç°å¢å´ã®é½åã§ãMTAã«sendmailã使ç¨ãããã¨ã«ãªããåºæ¥ãã ãåæè¨å®ã®ã¾ã¾ã¨ãããã¨ã§ãæ¡å¼µã¢ãã¬ã¹ã®åºåãè¨å·ããã©ã¹è¨å·ã«ãªããã¨ã«ãªãã¾ããã
ã¾ããgmailã§ããã£ã¦ãã大ä¸å¤«ã ãããæãã°ãã®å¤æã大ããªèª¤ãã§ããã
ã¯ã¾ã£ãã¯ã¾ã£ããã¯ã¾ãã¾ããã¾ããã
ãã©ã¹è¨å·ã使ããªãau
çµè«ããè¨ãã¨ããã©ã¹è¨å·ã ã¨au端æ«ã§ç©ºã¡ã¼ã«ãhtmlã®mailtoã使ãã¨ãæ®éã®æ¹æ³ã§ã¯ã§ãã¾ããã
ç°¡åãªhtmlãä½ã£ã¦ã¿ã¾ãã
<html> <head> </head> <body> <a href="mailto:[email protected]">[email protected]</a><br /> <br /> <a href="mailto:user%[email protected]">user%[email protected]</a><br /> </body> </html>
ãã¿ã¼ã³1ã¯ããã©ã¹è¨å·ããã®ã¾ã¾æ¸ãããã¿ã¼ã³ã
ãã¿ã¼ã³2ã¯ããã©ã¹è¨å·ãurlencodeããã%2Bããæ¸ãããã¿ã¼ã³ã
ã©ããªãã¨æãã¾ããï¼ã¡ãªã¿ã«ãæ¤è¨¼ããéãã§ã¯ãdocomoãsoftbankãwillcom(WX330K)ã§ã¯ãã©ã¡ãã§ãæ£å¸¸ã«åãã¾ããã
çµæ
ãã¿ã¼ã³1ãéãã¨ããã©ã¹è¨å·ã空ç½ã«ãªã£ã¦ãã¾ã端æ«ãããã¾ããã¤ã¾ããã¡ã¼ã©ã¼ã¯éãã®ã§ãããå®å
ã®ä¸èº«ã
ãuser ext@example.comãã«ãªã£ã¦ãã¾ã£ã¦ãã¾ãã
ãã®ã¾ã¾éä¿¡ãããã¨ãã¦ãã端æ«ã®ã¡ã¼ã©ã¼å´ã®ã¨ã©ã¼ãçºçãã¦ãã¾ãã¾ãã
ãã¿ã¼ã³2ãéãã¨ãurlencodeãã¦ããæåãã¡ããã¨ãã©ã¹è¨å·ã¨ãã¦èªèããã¦éã端æ«ãããã¾ãããéã«urlencodeãã¦ããæåã®ã¾ã¾ã¡ã¼ã«ä½æç»é¢ãéãã¦ãã¾ã端æ«ãããã¾ããå½ç¶ããã®ã¾ã¾éä¿¡ãã¦ãå®å
ä¸æã§ãµã¼ãå´ã§åãåããã¨ãã§ãã¾ããã
- ãã¿ã¼ã³1ï¼[email protected]ï¼
- ãã¿ã¼ã³2ï¼user%2Bext@example.comï¼
ãã®è¨äºãæ¸ã段éã§ãã¹ãã«ä½¿ç¨ã§ããææ°ã®ç«¯æ«ãå°ãªãã£ãã®ã§ãããå®æ¡ä»¶ã§æ¤è¨¼ããç¯å²ã§ã¯ãææ°ã®ä¸ä»£ã§ã¯ãã©ã¹è¨å·ãã®ã¾ã¾ã§åãããæ§ä¸ä»£ã¯urlencodeããªãã¨ãã¡ã¿ããã§ããã
ã©ããã§ä»æ§ãå¤æ´ããã®ã¯æç½ã§ãããæ¢ããç¯å²ã§ã¯ãã©ãã«ãæ
å ±ãããã¾ããã
解決æ¹æ³
sendmailã§æ¡å¼µã¢ãã¬ã¹ã®ããªãã¿ãå¤æ´ããæ¹æ³ãããããã調æ»ãç¶è¡ãããã¨ããMTAãpostfixçã«ãã¾ããåãæ¿ããããã«ããããããã
Win系以åã¯æ§å¼ãæ°å½¢å¼ã¯æ°ä¸ä»£ã ã¨ããããããã®ã§ãããK002ã¨ããå¾®å¦ãªæãã§ãã
ãããããããã¹ããç¹°ãè¿ãã¦ããã¨ãããããæ³åãçºè¦ãã¾ããã
UserAgent
ãã¼ãã¿ãã¨UserAgentã®è¦åãå¤ãã£ã¦ãã¾ãï¼
http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
KDDIã®ä»æ§ã«ããã¨ããã©ã¦ã¶ãã¼ã¸ã§ã³ããããé¨åãå¤ãã£ã¦ãã¾ãã
- 6.2.0.3.111
- 6.2.0.7.3.129
- 6.2.0.9
- 6.2.0.10.4
- 6.2.0.15.1.1
- 6.2_7.2.7.1.K.1.5.1.120ããï¼åºåããã¢ã³ãã¼ãã¼ã«ãªã£ã¦ã
- 6.2_7.2.7.1.K.3.341ããï¼åºåããã¢ã³ãã¼ãã¼ã«ãªã£ã¦ã
対ç
ãã©ã¦ã¶ãã¼ã¸ã§ã³ã \d.\d. (æ°åï¼ãããï¼æ°åï¼ãããï¼ã®å ´åã ãurlencodeãã¦ãããããã«ãã¾ããã
ãã¡ã§ã¯ãEthna+Smartyãªã®ã§ããã¼ããããã©ããããã£ãªã¢ãã°ã㯠smartyã®ãã©ã°ã¤ã³ã§åé¿ãã¾ããã
<?php /** * Smartyä¿®æ£åã©ã°ã¤ã³ */ /** * mailto㧠auæ§ç«¯æ«ã§ä½¿ããªããã©ã¹è¨å·ãã¨ã¹ã±ã¼ããã * * <pre> * ex.) * * </pre> */ function smarty_modifier_mailtoescape($string) { if (strlen($string)) { // + ãã¨ã¹ã±ã¼ãããUA // KDDI-KC33 UP.Browser/6.2.0.9 // KDDI-KC3O UP.Browser/6.2.0.15.1.1 // ãã®ã¾ã¾ã§OKãªUA // KDDI-SH3K UP.Browser/6.2_7.2.7.1.K.5.205 // KDDI-TS3I UP.Browser/6.2_7.2.7.1.K.1.5.1.120 // 6.2ã®å¾ãããããã®ã¿ç½®æ if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('!^KDDI-[^ ]+ UP\.Browser/6\.2\.!', $_SERVER['HTTP_USER_AGENT'])) { $string = str_replace('+', '%2B', $string); } } return $string; }
使ãæ¹
<html> <head> </head> <body> <a href="mailto:{'[email protected]'|mailtoescape}">[email protected]</a><br /> </body> </html>
ã¾ã¨ã
auãããä»æ§å¤ãããªãè¨ã£ã¦ãã ãããå¤ããã¨ãã¦ãå¾æ¹äºææ§ãå¤å°ã¯æ°ã«ãã¦ãã ããã
ä»åã®ä»¶ã§è¨ãã°ãdocomoãsoftbankã¨åãããã«ããã©ã¹è¨å·ç´æ¸ãã§ããurlencodeããã%2Bãã§ãåãããã«ãã¦ããããã°ããã 話ã ã¨æãã®ã¯ãèããæµ
ãã ãã§ããããï¼
ã¨ããããã§ãauã®æ°ããä¸ä»£ãåºãåã«ä½ã£ããµã¤ãã§ã空ã¡ã¼ã«ã¢ãã¬ã¹ã«æ¡å¼µã¢ãã¬ã¹ã使ããurlencodeãã¦ãããµã¤ãã¯ãæ°ç«¯æ«ã§åãã¦ããªãããããã¾ããã
éã«ãauã®æ°ä¸ä»£ã§ã ãåä½ç¢ºèªããã¦ããã¨ãæ§ç«¯æ«ã§åãã¦ããªãããããã¾ããã
æåã®æã¯ãpostfixã«ãã¦ãããªãã¿ã¯ãã¤ãã³ã«ãããã¨ã ã¨æãã¾ãã
sendmailã¯ãä»ã«ãéä¿¡å
æ
å ±çãphpã§åããæã«ç°å¢å¤æ°ã§åå¾ãã§ããªãã£ããããã®ã§ã次åããã¯postfixã«çµ¶å¯¾ãã¦ããããã¨æãã¾ãã
å ¨ææ¤ç´¢ã¨ã³ã¸ã³groongaã«ã¤ãã¦ä¸ã®äººã«æ¥ã¦ããã ã社å åå¼·ä¼ããã£ã
ã¨ããæ¡ä»¶ã§æ¥æ¬èªã®å ¨ææ¤ç´¢ãããå¿ è¦ããããMySQLã使ã£ã¦ãããã¨ããTritonnãåè£ã«ãã¦ããã®ã ããæ°è¦éçºã¯è¡ãããgroonga(ã°ã«ã³ã¬)ã¨ããæ°ãããããã¯ãã«å¼ãç¶ããã¦ããã¨ããç¶æ³ã§ããã
ããã§ãTritonnï¼ãgroongaã¹ãã¬ã¼ã¸ã¨ã³ã¸ã³(MySQL 5.1対å¿ã®å
¨ææ¤ç´¢ã¨ã³ã¸ã³)ãã®ä¸ã®äººã§ãã id:mirããã«æ¥ã¦ããã ã社å
åå¼·ä¼ãéãã¾ããã
å
è¦ããæãã§ã¯ãªãããã£ããç¾ç¶ãããããèãæãã
ãgroongaãã¨ãgroongaã¹ãã¬ã¼ã¸ã¨ã³ã¸ã³ããæ··åãã¦ããã®ã§ãããgroongaæ¬ä½ã¯æè¿1.0ããªãªã¼ã¹ããã¦ããã®ã§ãããMySQLã®å
¨ææ¤ç´¢ã¨ã³ã¸ã³ã§ãããgroongaã¹ãã¬ã¼ã¸ã¨ã³ã¸ã³ãã¯ãã¾ã 0.1ã§ããããã¨ããæãã ããã§ãã
ãªã®ã§ãæ¡ä»¶ã«ä½¿ãã®ã¯ã2010/09/08ç¾å¨ã§ã¯ç¡çã¨ã®ãã¨ã
Tritonnã®è©±ã¯ä»¥åèãããã¨ããã£ãã®ã§ãgroongaã®è©±ãã¡ã¤ã³ã«ãã¦ããã ãã¾ããã
詳ããã¯ãµã¤ãåç
§ãã¦ãã ããã
ã¡ãªã¿ã«ãç«ã¯éçºè
ã®ãã«ããããã®ç«ã ããã§ãï½
- groongaæ¬ä½ã¯ãTritonnã§ã使ç¨ãã¦ãã Sennaã¨ããçµã¿è¾¼ã¿åã®å ¨ææ¤ç´¢ã¨ã³ã¸ã³ã®å¾ç¶ãããã¯ãã§ãæ¤ç´¢æ©è½ã ãã§ã¯ãªããã¹ãã¬ã¼ã¸ã®æ©è½ãåãããã£ããã®ã§ãã
- httpã®ãµã¼ãã¨ãã¦ç«ã¦ããã¨ã¨ãã§ãããjsonã§ããåããã§ãã
- ãªãªã¸ãã«ãããã³ã«ããã
- memcachedã®ãã¤ããªãããã³ã«ããã
- ä½ã£ã¦ã¿ããããã¹ããããã³ã«ã®æ¹ãã¯ãã£ã¦ãã¦ããã¤ããªãããã³ã«ã¯æµè¡ã£ã¦ããªãï½ã¨ããæãããã
ã¡ã¤ã³ãªå£²ãã¯ããªã¢ã«ã¿ã¤ã ãã¤ã³ããã¯ã¹æ´æ°ã
ã¡ãã¼å¤§è¦æ¨¡ã ã£ããgoogleããã¨ãè²·ãã¨ãä»ã®æ段ãããããããã
ã§ããçæéã§ããã»ã©å¤§è¦æ¨¡ãããªãã·ã¹ãã ã§ç°¡åã«ç®¡çã³ã¹ããä¸ãã¦ãã¨ããã¨ããã«æ軽ã«ä½¿ããã¨ããã®ãã¿ã¼ã²ããã ããã§ãã
以åã®Tritonnã§ã¯ãMyISAMããã¼ã¹ã«ãã¦ãããã¨ããããæ´æ°æã«ã¯æ¤ç´¢ãããã¯ããã¦ãã¾ã£ã¦ããããgroongaã§ã¯ãæ´æ°æã¯ãã¼ãã«ããã¯ããããã®ã¯åãã ããæ¤ç´¢ã¯æ´æ°ä¸ãOKã¨ã®ãã¨ã
è¨èªãã¤ã³ãã£ã³ã°ã¨ãã¦ã¯ãrubyæ¡å¼µã¨MySQL(groongaã¹ãã¬ã¼ã¸ã¨ã³ã¸ã³)ãããã
ç¹å¾´ããã¤ã
- ãã¿ã³ãã æ§æãã¨ããååãä»ãã¦ããããå¥ã ã®æ¹å¼ã§åããã¼ã¿ãæ±ããã¨ãã§ããã
- ããªã«ãã¦ã³
- æ¤ç´¢ã§çµãè¾¼ãã å ã®ä»¶æ°ãç°¡åã«åãã
- ãªãã¬ã³ãäºä¾ããã
- ãã¼ã¿éã«ããæ´æ°ã¹ãã¼ãã®å£åãå°ãªã
- Sennaã®å ´åããã¼ã¿ãæ°Gã§ãã¤ããªããæ´æ°æã«å
é¨ã§ã³ãã¼ãçºçãã
- Senna äºæ¬¡é¢æ°ç
- groonga ä¸æé¢æ°ç
- Sennaã®å ´åããã¼ã¿ãæ°Gã§ãã¤ããªããæ´æ°æã«å
é¨ã§ã³ãã¼ãçºçãã
- NASã§ã®å
±æã¯ãã
- nmap使ã£ã¦ããã®ã§åä¸ãµã¼ãå ã§
- ã©ã¤ã»ã³ã¹ã¯LGPL
- ããã¨ã¨ãLGPLã«ãªãã¾ããã(2010/9/8æç¹ã§)
- yum aptã§å ¥ãããã
groongaã¹ãã¬ã¼ã¸ã¨ã³ã¸ã³ã®2010/9/8æç¹ã§ã®ç¾ç¶
- ãããããã®ãé ä¸åã§è¿ã£ã¦ãã
- ã¹ã³ã¢ç¡ã
- å¹´å
ã«
- ãã«ãã«ã©ã ãªã©ãã§ããã°ã»ã»
- Tritonnç¸å½ã®æ©è½ãéçºããã®ãã¾ãã¯åªå 課é¡
ãã¨ãåèã«ãªã£ããã£ããæè¦
- MySQL㧠like ã¨ãã§æ¤ç´¢ããããå
¨ææ¤ç´¢ãå°å
¥ããå¿
è¦ããããã®ç®å®
- 10MBåã£ã¦ãããå ¨ææ¤ç´¢å¿ è¦ãªã
- 100MBã ã¨é å¼µãã°ãªãã¨ãã§ããªãã¯ãªã
- 1Gã ã¨10ç§ã¨ãããã
ãã£ããã
Tritonnã¯å
æ¹ã®è¦ä»¶ãããNGã«ãªã£ãã®ã§ãgroongaã使ã£ã¦æ§ç¯ä¸ã§ãã
ããã¤ãã¡ã¢ãããã®ã§éæã¨ã³ããªããããã¨æãã¾ãã
phpã«ã³ãã¡ã¬ã³ã¹2010ã«åå
phpã«ã³ãã¡ã¬ã³ã¹2010ã«ã¹ã¿ããã¨ãã¦æä¼ãããã¦ãã¾ãã
ä»å¹´ã¯ã¾ã£ããåãã¦ããªãã£ãã®ã§ãããç´åã«MLãè¦ã¦ããã24æ¥ã®ãã¸ãã¹Dayã®ã¹ã¿ããã足ããªãã¨ã®ãã¨ã§ãæ¥é½æä¼ãåã£ã¦åå ãããã¨ã«ã
ä»äºçã«ãå¿ããã®ã ããããã¯å¤å°ç¡çãè¨ã£ã¦ãã¾ã£ããããããªãã
ãã¸ãã¹Dayã¯2é¨å±ã«åããã¦ããã®ã§ãçæ¹ã®é¨å±ã®Ust&æ®å½±ã®ã¹ã¿ããã足ããªãã¨ã®ãã¨ãªã®ã§ãããã辺ã¨ãã®ä»éç¨ããããããã¦ãã¾ããã
è¬æ¼ãå§ã¾ãã¨ä½æ¥ã¯æã空ãã®ã§ã話ãèããããã¤ã¤ã
詳ããã¯Ustã®æ®å½±åç»ãgihyo.jpã®å½æ¥ã¬ãã¼ããªã©ãåç
§ãã¦ã¿ã¦ãã ããã
PHPカンファレンス2010
PHPカンファレンス2010スペシャルレポート:レポート|gihyo.jp … 技術評論社
Becky!2ããThunderbird3ã¸ã®ç§»è¡ãããã
ç§ãPCã使ãå§ããæãã10å¹´è¿ãæç¨ãã¦ãã Becky! Internet Mail Ver.2 ãã¤ãã«ææ¾ãæãæ¥ã¦ãã¾ãã¾ããã
家ã®ç°å¢ã¯Macã«ãªããã¡ã¼ã«ã¯ Gmail onlyãAndroid端æ«ã¨ã®è¦ªåæ§ãé«ãå人ã¡ã¼ã«ã¯ãã¹ã¦Gmailã§å®çµãã¦ãã¾ãã
ä¼ç¤¾ã§ã®æ¥åã§ã¯ãBecky!ã使ç¨ãã¦ãã¾ããã
移è¡ããçç±ã¯ãBecky!ãè¦éã£ãã¨ãããã¨ã§ã¯å ¨ããªãã使ãç¶ãããã®ã§ããã以ä¸ã®ãããªçç±ã§æ³£ãæ³£ãåãæ¿ãããã¾ããã
- åºæ¬ãå人ã§è²·ã£ãã·ã§ã¢ã¦ã§ã¢ã¯NGãå
¨ç¤¾çã« Thunderbirdæ¨å¥¨ã
- å¤æ ªã®ç¹æ¨©(?)ã§ãå人ã§è²·ã£ãã¢ã«ã¦ã³ãã使ã£ã¦å°æ°æ´¾ã¨ãã¦ä½¿ãç¶ãã¦ãã¾ãã
- æè¿ãPCãä¸èª¿ã§ããã¯ã¢ãããã¦ãªã«ããªãããã¨ããããã¹ã§ããã¯ã¢ããã«å¤±æãã¦éå»ã¡ã¼ã«ãæ¶å¤±ãã
- æ°è¦ã«è¨å®ããã®ã§ããã°ãThunderbirdã¸ãã¨ãããã¨ã«ã
å½ç¶ãåãæ¿ãããããããããªã¨ãããæ°ã«ãªãã¾ãã
æ
£ããã°è§£æ±ºããåé¡ããæ¡å¼µæ©è½ã§è§£æ±ºãããã¨ãããã¨æãã®ã§ãåå¿é²çã«æ®ãã¦ãããã¨æãã¾ãã
â»éæ追è¨ãã¦ããã¾ãã