ããã°ãå移転(?)ãã¾ããï¼
ãã®ããã°ã§ãæ ªå¼ä¼ç¤¾ï½ï½ï½ï½ã¨ããä¼ç¤¾ãä½ãã¨ã³ããªãæ¸ãã¾ãããä»ã®ã¨ãããã¼ãã¼ã«ã³ããã¼ã¾ã£ãããã§ããä½ãæ´»åããªãããããªããªã¼ãã¨èããã¨ããããããã°ãä½ã£ã¦ã¿ã¾ããã
ã¯ã¦ãªã®ã»ããé©ãã¦ãã話é¡ã«ã¤ãã¦ã¯ãå¼ãç¶ããã®ããã°ã§æ¸ãã¦ãããã¨æãã¾ããå®ãããé¡ããããã¾ãã
ftraceã¨trace-cmdã使ã£ã¦ãLinux Kernelã®ã¤ãã³ããã°ãç°¡åã«åå¾ãã
Linuxã«ã¯ãftraceã¨ãããã¬ã¼ãµãããã¾ãã
ã«ã¼ãã«å
ã®å
¨é¢æ°ã¿ã¤ã ã¹ã¿ã³ãã¤ãå¼ã³åºãå±¥æ´ãªã©ãããããªãã«é«éã«åå¾ã§ãã¾ãã
詳ããã¯ã@ITã«ãã以ä¸ã®è¨äºãã©ããã
http://www.atmarkit.co.jp/flinux/rensai/watch2008/watch10a.html
http://www.atmarkit.co.jp/flinux/rensai/watch2009/watch03a.html
ãããã«ftraceã使ã£ã¦ã¿ã¾ããã2010å¹´5ææç¹ã«ã¦ãDebianã§ã®ä½¿ç¨æ¹æ³ãã¡ã¢ãã¾ãã
Debianã®ç¾è¡testingã«ããã¦ãkernelã®ftraceæ©è½ã¯ç¡å¹ã¨ããã¦ãã¾ããftraceæ©è½ãæå¹ãã©ããã¯ã以ä¸ã®æä½ã§ç¢ºèªã§ãã¾ãã
# mount -t debugfs nodev /sys/kernel/debug # cat /sys/kernel/debug/tracing/available_tracers blk sched_switch initcall nop
ã¾ããdebugfsããã¦ã³ããã¾ããããã«ããtracing/available_tracersã¨ããã¨ã³ããªããç¾å¨å©ç¨ã§ãããã¬ã¼ãµã®ä¸è¦§ã§ããtracing/available_tracersã®å 容ã«ããfunction_graphããfunctionããªã©ããªããã°ãftraceãæå¹ã¨ããã¦ããªãkernelã§ãã
Debianã§ftraceãæå¹ã¨ããkernelããã«ããã
Debianã§ã®ã«ã¼ãã«ã³ã³ãã¤ã«æ¹æ³ã§ãããã¤ã³ã¿ã¼ãããã§æ å ±ãæ¢ãã¨ãã¾ãã¾ãªæ å ±ãããã¾ããæ¯å調ã¹ãã®ã§ãããæ¯åããæ¹ãå¿ãã¾ãããã©ã®æµåãããããã®ããç解ãã¦ãã¾ããã
ä»åã¯make-kpkgã使ãã¾ãããCONCURRENCY_LEVELç°å¢å¤æ°ãè¨å®ãã8並åã§makeãã¾ããè¨å®ã¯menuconfigã§è¡ãã¾ãã
> sudo aptitude install kernel-package linux-source-2.6.32 libncurses5-dev > mkdir kernel-2.6.32-ftrace > cd kernel-2.6.32-ftrace > tar xvfj /usr/src/linux-source-2.6.32.tar.bz2 > cd linux-source-2.6.32 > CONCURRENCY_LEVEL=8 fakeroot make-kpkg --append-to-version=-9-amd64 --revision ftrace1 \ --initrd --config menuconfig kernel_image kernel_headers
menuconfigã§ã¯ã以ä¸ã®ï¼ã¤ã®é ç®ãé¸æãã¾ãã
Kernel hacking -> Tracers -> Kernel Function Tracer -> Trace syscalls
ãKernel hacking -> Compile the kernel with debug infoããå¿ è¦ãããã°é¸æãã¾ãããã
以ä¸ã®æä½ã§ãã«ã¬ã³ãã®ãã£ãä¸ã®ãã£ã¬ã¯ããªã«ãã«ã¼ãã«ããã±ã¼ã¸ãçæããã¾ãããã¨ã¯ãããdpkg -iã§å°å ¥ããã ãâ¦ã§ããã¨æã£ãã®ã§ãããã¡ãã£ã¨è©°ã¾ãã¾ããã
ã«ã¼ãã«ããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã«ã®éãé常ã§ããã°initrdãèªåçã«ä½æããã¾ããã§ãããç¾å¨ã®testingã§ã¯ãinitrdãä½ã£ã¦ããã¾ãã*1ãä»åã¯ãæ示çã«update-initramfsãå¼ã³åºããã¨ã«ãã£ã¦åé¡ãåé¿ãã¾ãããGRUBã®è¨å®ããã¦ããã¾ãã
> cd .. > su # dpkg -i linux-image-2.6.32-ftrace_2.6.32_amd64.deb # update-initramfs -c -t -k 2.6.32-9-amd64 # dpkg-reconfigure linux-image-2.6.32-9-amd64
åèµ·åå¾ãuname -rãªã©ã§æ°ããã«ã¼ãã«ã使ããã¦ãããã¨ã確èªãã¾ãã
å度debugfsããã¦ã³ããã¦ãtracing/available_tracersããã§ãã¯ãã¾ããfunction_graphã¨functionãå ¥ã£ã¦ãããã¨ããããã¾ãã
# mount -t debugfs nodev /sys/kernel/debug # cat /sys/kernel/debug/tracing/available_tracers blk function_graph function sched_switch initcall nop
ftraceãããå ´åã«ã¯ãdebugfsã®ã¨ã³ããªãããåç
§ã»æ´æ°ãã¾ãã/etc/fstabã«ä»¥ä¸ã®ãããªã¨ã³ããªã追å ãã¦èªåçã«ãã¦ã³ãããã¾ãããã
debugfs /sys/kernel/debug debugfs defaults 0 0
ããã«ã/debugã«ã·ã³ããªãã¯ãªã³ã¯ãå¼µãã¨ããã§ãããã
ln -s /sys/kernel/debug /debug
trace-cmdã®å°å ¥
ftraceã«é¢ããæä½ã®ã»ã¨ãã©ã¯ãdebugfsçµç±ã§è¡ããã¨ãã§ãã¾ãããããããããã¾ãå°ã ããã©ãããã®ã§ããecho 1 > /debug/tracing/miscçãªãã¨ãé »ç¹ã«è¡ãå¿ è¦ãããããã§ãããã®æä½ãæ¯æ´ãããã¼ã«ãããã¾ããtrace-cmdã§ãããããã¯ã¼ã¯çµç±ã§ãå¥ã®ãã·ã³ã®ãã¬ã¼ã¹ãªã©ãåãã¡ããã¾ãã
trace-cmdã¯ãã¼ã¸ã§ã³1.0ãå æã«ãªãªã¼ã¹ãããã°ããã§ããusageãè¦ããã¾ã ãã¼ã¸ã§ã³ã0.7ã£ã¦ãªã£ã¦ããã®ã¯ãæå¬ãå°å ¥ã¯ç°¡åã§ãã
> git clone git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git trace-cmd-stable-v1 > cd trace-cmd-stable-v1 > make > sudo make install
ãããã«ãtrace-cmdã§ã©ã®ãããªãã¬ã¼ã¹ãã§ããã®ãä¸è¦§ã表示ãã¦ã¿ã¾ããããtrace-cmdã«listã¨ããã³ãã³ããä¸ããã¨ãevent/plugin/optionã®ä¸è¦§ã表示ã§ãã¾ãã
> trace-cmd list events: skb:kfree_skb skb:skb_copy_datagram_iovec syscalls:sys_enter_socket syscalls:sys_exit_socket ... plugins: blk function_graph function sched_switch initcall nop options: print-parent nosym-offset ...
eventã¯ãftraceã§åå¾ã§ããã¤ãã³ãã§ããå¡ä¾ã¯ãã¤ãã³ã種å¥:ã¤ãã³ãåãã§ããpluginã¯ãavailable_tracersã¨åãããã§ããoptionsã¯ããã¬ã¼ã¹ããéã«æå®ã§ããå種ãªãã·ã§ã³ä¸è¦§ã§ãããnoããé ã«ã¤ãããã¨ã§ããªãã·ã§ã³ããªãã«ãããã¨ãã§ãã¾ãã
ãããã¡ã¤ãªã³ã°ãã(èèèµ)
ãããã¡ã¤ãªã³ã°ãããåã«ã/proc/sys/kernel/ftrace_enabledã1ã§ãããã¨ã確èªãã¾ãããªã£ã¦ããªããã°ãsysctl kernel.ftrace_enabled=1ãªã©ããã¦ããã¦ãã ããããã®å¤ã®è¨å®ã«ã¤ãã¦ã¯ãtrace-cmdã§ã¯æ±ã£ã¦ãããªãããã§ãã
ã¾ãã¯ãlsãå®è¡ããå ´åã«ãã©ã®ãããªã«ã¼ãã«é¢æ°ãå¼ã°ãããªããã¤å®è¡æéã¯ã©ãããã¨ãããã¨ã調ã¹ããã¨ãã¾ãããã
# trace-cmd record -p function_graph ls
ä¸è¨ã®ã³ãã³ããå®è¡ããã¨ãã«ã¬ã³ããã£ã¬ã¯ããªã«ãtrace.datãã¨ãããã¡ã¤ã«ãä½æããã¾ããããã«ããã¬ã¼ã¹ããããã¼ã¿ãå ¥ã£ã¦ãã¾ãããã¡ã¤ã«åãæå®ãããå ´åã«ã¯ãã-oããªãã·ã§ã³ãæå®ãã¾ãããã
ãã¬ã¼ã¹ããããã¼ã¿ã¯ç¬èªã®ãã¤ããªå½¢å¼ã§ããããã解éãã¦è¡¨ç¤ºãã¦ã¿ã¾ãããã
> trace-cmd report | less
ããããã£ã¡ããã¨ãã¼ã¿ãåºã¦ãã¾ãããtrace-cmdèªèº«ãå®è¡ãããã®ãå«ããã«ã¼ãã«å ã®ãã¹ã¦ã®ã¤ãã³ãã表示ãããããã§ããé©å½ã«grepãã¾ãããã
> trace-cmd report | grep -E "^\s+ls-" | less
ããã§ãlsã«é¢ããã·ã¹ãã ã³ã¼ã«ã®æ§åããããã¾ããfunction_graphãç¨ããã¨ãã«ã¼ãã«é¢æ°ã®ãã¹ããã¤ã³ãã³ãããã¦ããããããã§ããããã«å®è¡æéã¾ã§è¨ç®ãã¦ããã¾ããå®è¡å®è¡ã¯ããã¹ãããªãé¢æ°ã§ããã°funcgraph_entryã®è¡ã«ããã¹ããã¦ããé¢æ°ã§ããã°funcgraph_exitã®è¡ã«æ¸ããã¾ãã
trace-cmdèªèº«ã«ããã£ã«ã¿æ©è½ãåå¨ãã¾ãããã¨ãã°ãfuncgraph_exitã«ã¦ã1,000,000ããç§(1,000ãã¤ã¯ãç§)以ä¸å®è¡ã«ããã£ããã®ã ããæ½åºãããå ´åã«ã¯ã以ä¸ã®ããã«ãã¾ãã
trace-cmd report -F "funcgraph_exit:(rettime - calltime) > 1000000" | less
â¦ã¨æ¸ãããã®ã®ãå®ã¯ãã®ãã£ã«ã¿ã®ææ³ãããããã£ã¦ãã¾ããã
æ¡ä»¶å¼ã§ã¯ãCè¨èªããã¯ãª+ - * / % >> << & | ^ ~ == != < > <= >=ã«å ããæ£è¦è¡¨ç¾ã®ãããã¨ãã®å¦å®ã§ãã=~ !~ãæ¼ç®åã¨ãã¦ä½¿ããããã§ããæ¡ä»¶ã«ä½¿ããå¤æ°ã«ã¤ãã¦ã¯ãtrace-cmdã®ã½ã¼ã¹ã³ã¼ãä¸ã«ããget_field_val()é¢æ°å¼ã³åºãã®ç¬¬4å¼æ°ãåç §ãã¦ã¿ã¦ãã ããã
ã-eãã§ã¤ãã³ãåãæ¸ããã¨ã«ãããé¢æ°å¼ã³åºã以å¤ã®ã¤ãã³ãã«ã¤ãã¦ãæ å ±ãåå¾ãããã¨ãã§ãã¾ããä»åã¯ãã³ã³ããã¹ãã¹ã¤ããã«ã¤ãã¦ã®ã¤ãã³ããåå¾ãã¦ã¿ã¾ããããã¤ãã³ãåã¯ãtrace-cmd listã®eventsé ã«è¡¨ç¤ºããããã®ãæå®ãããã¨ãã§ãã¾ããä»åã¯sched_switchã§ããã
# trace-cmd record -e sched_switch -p function_graph ls
funcgraph_entry/funcgraph_exitã¨åãé ã«ãsched_switchã¨æ¸ããã¦ããã®ããã³ã³ããã¹ãã¹ã¤ããã®ã¤ãã³ãã§ããã©ã®ããã»ã¹ããã©ã®ããã»ã¹ã«ã¹ã¤ããããã®ãããããã¾ãã
ã¾ã¨ã
ã¨ã³ããªã®æå¾ã®ã»ãã¯æ¯åãæªããããã¼ãããªã¤ï¼ã¨ããã³ããããªã£ãã§ããããåã使ãå§ããã°ããã§ãã¾ã ã¾ã åæãããããã£ã¦ãªãããã§ãã
ã¿ããªtrace-cmdã試ãã¦ã¿ã¦ããã®æ å ±ãblogãªã©ã«æ¸ãã¦ãããã¨ããããããã¨ããæ³ãã§ã¡ã¢ãå ¬éãã¦ã¿ã¾ãããftraceã®å ¬å¼ãªããã¥ã¡ã³ãã¯ãã½ã¼ã¹ããªã¼ä¸Documentation/trace/ftrace.txtã§ãã
*1:/etc/kernel/postinst.d/initramfs-toolsãè¦ãã¨ããkernel-package passes an extra arg; hack to not run under kernel-packageãã£ã¦ããé¨åã§æ¢ãããã¡ãã
ã¤ã³ã¿ã¼ããããæ´»ç¨ãããã²ããããã®ããã®æ ªå¼ä¼ç¤¾ã®åµãæ¹
ãã®åº¦ãæ ªå¼ä¼ç¤¾ï½ï½ï½ï½(ã¯ã¯ãã«)ã¨ããæ³äººãè¨ç«ãããã¾ããã
30æ³ã®èªçæ¥ã«ä½ãé¢ç½ãã³ãããããï¼ã¨æãç«ã£ã¦ãï¼é±éãããã§æ³äººè¨ç«ã«ããã¤ãã¾ãããããä¼ç¤¾å¤ãã¯è¾ãã¦ãªãããè¾ããã¤ããããªãã§ããã念ã®ãããåã®å¤ãå ã¯ãããããã¨ããã«èéãå©ãã¨ãããªã®ã§ããèµ·æ¥ãä¿é²ãã¦ã¾ããããããã
æ ªå¼ä¼ç¤¾ã®ä½ãæ¹ã¨ãåºæ¬çãªéæ¥æºåã«ã¤ãã¦ããã²ããããæ°è³ªã§ã¤ã³ã¿ã¼ããã大好ããªäººãåãã«æ å ±ãå ¬éãã¾ãã
ä¸ã®ä¸ã«ã¯ãä¼ç¤¾è¨ç«ã®ã¬ã¤ããããµãããã£ã¦ãã¾ããéè¤ãããã¨ãæ¸ãã¦ãä»æ¹ãªãã®ã§ãæ¬ãä»ã®ãµã¤ãã«è¼ã£ã¦ããªãæ å ±ã主ã«æ¸ãã¦ããã¾ããæ å ±ã¯2010å¹´4æç¾å¨ã®ãã®ã§ãã
åææ¡ä»¶
- ä¸äººçºèµ·ã§ã代表åç· å½¹ã®ã¿ã®æ ªå¼ä¼ç¤¾ãæ±äº¬é½ï½ï½åºã«è¨ç«ããã
- .co.jpãã¡ã¤ã³ãåå¾ããã
- å ¬åæ¹æ³ãå®å ±ã«ãã¤ã¤ã財å諸表ã®ã¿ãWebãã¼ã¸ã«è¼ãã¦å®å ±æ²è¼ä»£ãç¯ç´ããã
- å½¹å¡å ±é ¬ã¯ï¼åã¨ããã
- è¨ç«æ¥ã確å®ããããã
- 極åãå¤ã«åºãªããã¤ã³ã¿ã¼ãããï¼éµä¾¿ï¼å¯¾é¢ã®é çªã§æ段ãé¸æããã
äºåæºå
- Windows XP以éãåä½ãããã½ã³ã³ã
- ä½æ°åºæ¬å°å¸³ã«ã¼ãã
- ä½æ°åºæ¬å°å¸³ã«ã¼ããèªããã¨ãã§ããã«ã¼ããªã¼ãã
- ã¹ãã£ãã¼ã
- ã¯ã¬ã¸ããã«ã¼ãã
å®æ¬¾ä½æ
å®æ¬¾ã¨ã¯ãä¼ç¤¾ã®æ³å¾ã¿ãããªãã®ã§ããäºæ¥ç®çãªã©ãæ¸ãã¦ãããæ³äººè¨ç«ã®éã«å¿ è¦ã¨ãªãã¾ããå®æ¬¾ã¯ãå ¬è¨¼äººã¨å¼ã°ãã人ã«èªè¨¼ãã¦ãããå¿ è¦ãããã¾ããæ³å¾ãªã®ã§ãããã¾ãããããããªãã¨ã¯æ¸ããªãããã§ããã
å®æ¬¾ã¯é常ã¯ç´ã¨ãã¦èªè¨¼ãåããããã§ãããå®ã¯PDFãã¡ã¤ã«ãèªè¨¼ãã¦ããããã¨ãã§ãã¾ãããã®PDFãã¡ã¤ã«ã¨ãã¦èªè¨¼ãããå®æ¬¾ããé»åå®æ¬¾ã¨å¼ã³ã¾ããå®ã¯ãé»åå®æ¬¾ã使ãã¨ãè¨ç«è²»ç¨ã4ä¸åç¯ç´ã§ãã¾ãã
ç´ãã¼ã¹ã®å®æ¬¾ã®åæ¬ã¯ããå°ç´ç¨æ³ãã¨å¼ã°ããæ³å¾ã§ã課ç¨ç©ä»¶ãã¨ããã¦ãããåå ¥å°ç´ãè²¼ãå¿ è¦ãããã¾ããé»åå®æ¬¾ã®å ´åã«ã¯ãç´ãããªãã®ã§ä¸è¨ã®æ³å¾ã«ãã¦ã¯ã¾ããªããã¨ããããã§ãã
é»åå®æ¬¾ã®èªè¨¼ãåããå ´åã«ã¯ãè¡æ¿æ¸å£«ã«ãé¡ããã¾ããããèªåã§é»åå®æ¬¾ã®èªè¨¼ã¯ã§ããªãã®ï¼ãã¨ããã³ããåããããããã¾ãããé»åå®æ¬¾ã®èªè¨¼ãåããããã«ã¯ããã®ããã®ã½ããã¦ã§ã¢è³¼å ¥ãªã©ã®åæè²»ç¨ãããããã§ããåæè²»ç¨ã¯4ä¸åãããã«è¶ ãã¾ãã
åã¯ã以ä¸ã®ãæ¥æ¬é»åå®æ¬¾ä½æã»ã³ã¿ã¼ãã«ã¦é»åå®æ¬¾ã®èªè¨¼ããé¡ããã¾ãããè²»ç¨ã¯6,000åã
http://e-teikan.org/
æ±äº¬é½ã»ç¥å¥å·çã®å ´åã«ã¯ãè¡æ¿æ¸å£«ã®æ¹ãå
¬è¨¼å½¹å ´ã«ã¾ã§è¡ã£ã¦ããã¾ãã
ä¸è¨ãæ¥æ¬é»åå®æ¬¾ä½æã»ã³ã¿ã¼ããããªã³ã¯ããã¦ããããèªåã§ã§ããä¼ç¤¾è¨ç«ãã¨ãããµã¤ãã®ãæ ªå¼ä¼ç¤¾è¨ç«ããã²ã¼ã·ã§ã³ãã¨ããé
ç®ã«ãæ ªå¼ä¼ç¤¾ã®è¨ç«ã«ã¤ãã¦ã²ã¨ã¨ããã®æç¶ãæ¸ãã¦ããã¾ãã
http://kaisya-tsukuro.net/
æ¬ã¨ã³ããªã§ã¯éè¤ããè¨è¿°ãé¿ããä¸è¨ãµã¤ãã«æ¸ãã¦ããªãæ
å ±ãè¨ãã¾ãã
.co.jpãã¡ã¤ã³ã®åå¾
ä¼ç¤¾ãä½ããã ã£ããã.co.jpãã¡ã¤ã³ãåå¾ãããã§ããããvalue-domainã§å®ããã¤æ軽ã«.co.jpãã¡ã¤ã³ãåå¾ãããã¨ãã§ãã¾ãã
http://www.value-domain.com/
ãªãããã§ãã¡ã¤ã³ã®è©±ãåºãã®ãããã®çç±ã¯æ¬¡ã®é
ç®ã§æããã«ãªãã¾ãã
.co.jpãã¡ã¤ã³ã¯ãè¨ç«ç»è¨ã®åã«åå¾ãããã¨ãã§ãã¾ãã
http://internet.watch.impress.co.jp/cda/news/2003/09/16/461.html
ããããvalue-domainã§ã¯è¨ç«æ¥ãç¾å¨ã®æ¥ä»ä»¥éã§ãªãã¨ãç³ãè¾¼ã¿ãåãä»ãã¦ããã¾ããã
ãã£ã¦ãè¨ç«ã«å¿ è¦ãªæ¸é¡ããã¹ã¦æºåãçµãããå®éã«æ³åå±ã«æ¸é¡ãæåºããæ¥ã®æã«ç»é²ãè¡ãã¾ãããã
ãã¡ã¤ã³åå¾ä»£éã«ã¤ãã¦ãå³å¯ã«ã¯å®æ¬¾ã§å®ãã¦ãããªããã°æ³äººã®è² æ ã¨ãããã¨ãã§ãã¾ãããããvalue-domainã§ã®ãã¡ã¤ã³ä»£ç¨åº¦ã ã£ãããæ³äººãè² æ ãããã¨ã§åé¡ãªãã¨èãã¾ããé¢åãªã®ã§ãåã¯åäººè² æ ã¨ãã¾ããã
å ¬åæ¹æ³ãå®å ±ã«ãã¤ã¤ã財å諸表ã®ã¿ãWebãã¼ã¸ã«è¼ãã¦å®å ±æ²è¼ä»£ãç¯ç´ãã
å ã»ã©ã®ãèªåã§ã§ããä¼ç¤¾è¨ç«ãã®ãã³ãã¬ã¼ãã®ã¾ã¾æ³äººãè¨ç«ããã¨ãå ¬åãè¡ãéã«å®å ±ãéããªããã°ããã¾ãããæ ªå¼ä¼ç¤¾ã¯ããã®å ¬å ±æ§ããæ¯å¹´æ±ºç®ã®å 容ã«ã¤ãã¦å ¬åãè¡ããªããã°ããã¾ãããå®å ±ã§ã®æ±ºç®å ¬åã«ãããè²»ç¨ã¯ãï¼åãããï¼ä¸åã§ãã
å®æ¬¾ã§ãå ¬åæ¹æ³ããé»åå ¬åãã¨ãããã¨ãã§ãã¾ããé»åå ¬åã§ã¯ãèªç¤¾ã®Webãã¼ã¸ã«å ¬åããå 容ãæ²ç¤ºããã ãã§OKã§ããããããå ¬åæ¹æ³ãé»åå ¬åã«ããã»ãããããã¨æãã¾ãããã
å®ã¯ããé»åå ¬åãã¡ããã¨ãã¦ãããã©ãããã§ãã¯ããæ©é¢ãã¨ãããã®ãããã¾ãã¦ãããã«ãéãæã£ã¦ãã§ãã¯ãã¦ããããªãã¨ãé»åå ¬åããããã¨ã«ãªããªãã®ã§ããããã¯ããã§çµæ§ãããå¤æ®µããã¾ãã
ãã¨ãã°ãæ¥æ¬å
¬å調æ»ã¨ããä¼ç¤¾ã§ã¯ãï¼ä»¶75,000åã«ã¦ããã§ãã¯ãããã¦ããã¾ãã
http://www.n-koukoku.com/
å
¬åããå
容ã®é·ããé·ãå ´åã«ã¯é»åå
¬åã®ã»ããæå©ã§ãããçãå
容ã§ããã°å®å ±ã®ã»ããå®ããªãã¾ãããã¯ããå®å ±ã§æ±ºç®å
¬åããã»ããããã®ã§ããããã
å®ã¯ã決ç®å ¬åã ãã«éããä¸è¨ã®ãã§ãã¯ãå¿ è¦ãªãã®ã§ããã©ããã¼ããã£ã¦ãããã§ãã¯ãå¿ è¦ãªé常ã®å ¬åã¯å®å ±ã§ãããã©ã決ç®å ¬åã ãé»åå ¬åããããã¨ãããã¨ã«ãªãã¾ãã
決ç®å ¬åã ãé»åå ¬åãè¡ãããã«ã¯ã決ç®å ¬åãè¡ãããã®URLãç»è¨ããå¿ è¦ãããã¾ãããã®ç»è¨ãè¨ç«ç»è¨ã¨ã¯å¥ã«è¡ãã¨ããªãã¨30,000åãã®è²»ç¨ããããã¾ãã.co.jpãã¡ã¤ã³ãåå¾ã§ãããã¨ã§ãããè¨ç«æã«URLãç»è¨ãã¦ãã¾ãã¾ãããã
URLãç»è¨ããå ´åã«ã¯ããçºèµ·äººã®æ±ºå®æ¸ãã¨ãç»è¨ãã¹ãäºé ã®TXTãã¡ã¤ã«ãã®ä¸¡æ¹ã«URLãªã©ãè¨è¼ããå¿ è¦ãããã¾ãã以ä¸ã®ãããªè¨è¿°ããã¾ãããããç»è¨ãã¹ãäºé ã®TXTãã¡ã¤ã«ãã§ã®å¶ç´ãããURLã¯å ¨è§ã§ãªããã°ãªãã¾ããã
ï¼ï¼è²¸åå¯¾ç §è¡¨ã«ä¿ãæ å ±ã®æä¾ãåããããã«å¿ è¦ãªäºé ã次ã®ã¨ããã¨ããã
ï½ï½ï½ï½ï¼ï¼ï¼ï½ï½ï½ï½ï¼ï½ï½ï¼ï½ï½ï¼
å®ã¯ãå¤ãã®æ ªå¼ä¼ç¤¾ã決ç®å
¬åãã·ã«ããã¦ãã¾ãããNPO決ç®å
¬åæ¨é²åè°ä¼ãã£ã¦ã®ããããããã§ããã·ã«ãããã¨ãï¼ï¼ï¼ä¸å以ä¸ã®éæããåãããå¯è½æ§ãããã¾ããæ°ãã¤ãã¾ãããã
ã¾ããé»åå ¬åã®å ´åã«ã¯ã貸åå¯¾ç §è¡¨ã¨ãã®æ³¨è¨ãå ¨ææ²è¼ããªããã°ãªãã¾ãããå®å ±ã®å ´åã¯ã貸åå¯¾ç §è¡¨ã®è¦æ¨ã®ã¿ãæ²è¼ããã°OKã§ããç´é¢ã«éããããããã§ãã貸åå¯¾ç §è¡¨ã®å ¬éã«èããªãä¼ç¤¾ã¯ãå®å ±ã§æ±ºç®å ¬åãããã»ããããã§ãããã
æ³åå±ã«ãã
åã®å ´åã¯ãã30æ³ã®èªçæ¥ã«ä¼ç¤¾ãä½ãããï¼ãã¨ããéæããã£ããããæ³åå±ããããã訪ãã¾ãããããããè¨ç«æ¥ãªãã§ã©ãã§ããããã°ãéµéã§æ¸ã¾ããã¨ãã§ãã¾ããéµä¾¿ã£ã¦ä¾¿å©ï¼
- æåºæ¸é¡ã®ï¼æç®ã®ãçºèµ·äººã®ååæ¬ã®ãããã«ãé£çµ¡å ã®æºå¸¯é»è©±çªå·ãéçã§æ¸ãã¦ããã¦ãã ããã
- éè¡é帳ã®ã³ãã¼ã¯ãåºè³é¡ã®é å ¥ï¼ãããã¯æ¯è¾¼ï¼ã®ã¨ããã«èå ãã³ã§ãã¼ã¯ãã¦ããã¦ãã ããã
è¦ã¯ãèªãã§å¯©æ»ãã人ã®æ°æã¡ã«ç«ã£ã¦è¦ªåã«ããã»ããããããã£ã¦ãã¨ã§ããã
æ³åå±ã«ãç¸è«çªå£ã¿ãããªãã®ãããã¾ããåã¯å¿µã®ããè¡ãã¾ããããé»åå®æ¬¾ãã¨ãç»è¨ãã¹ãå 容ããå ¥ã£ãCD-Rã®ä¸èº«ãèªãè¨åããªãã®ã§ããã¾ãæå³ã®ããã¢ããã¤ã¹ãããã ãã¾ããã§ãããã¨ããããã§ãç´æ¥çªå£ã«æ¸é¡ä¸å¼ãæåºãã¡ããã®ãããã¨æãã¾ãã
ãªããé»åå®æ¬¾ã¨ã¯ãPDFãã¡ã¤ã«ãã ãã§ã¯ãªãããéå®ææ¸ãã¨å¼ã°ããXMLãã¡ã¤ã«ã¨ããé»å証ææ¸ãã§ããXSLãã¡ã¤ã«ã®ã»ããã§ãããã£ã¦ããã®ï¼ã¤ã®ãã¡ã¤ã«ã¨ããã¨ã¯ãç»è¨ãã¹ãå 容ããå ¥ã£ãããã¹ããã¡ã¤ã«ã®ãè¨ï¼ã¤ã®ãã¡ã¤ã«ãCD-Rã«å ¥ãã¦æã£ã¦ããå¿ è¦ãããã¾ãã
ãã決ãã¦PDFãã¡ã¤ã«ã¨ããã¹ããã¡ã¤ã«ã ããæåºãã¦ãé»è©±ã§å¼ã³åºããé£ããããè£æ£å ´æããªããã³ãã§æ°ããCD-Rãæåºãããã¯ãã¦ããªãããé°å²æ°çã«ãè·å¡å®¤ã«å¼ã³åºããããããªæãã§ããâ¦
ç»è¨æ å ±æä¾ãµã¼ãã¹ã§è¨ç«ã確èªãã
é常ã¯ãç»è¨ã®ç³è«ããã¦ããï¼é±éã»ã©ã§ç»è¨ãå®äºãã¾ããå®ã¯ããã¾ãç»è¨ãã¤ã³ã¿ã¼ãããã§ç¢ºèªã§ãããã§ãï¼ãããããç»è¨æ
å ±æä¾ãµã¼ãã¹ãã§ãã
http://www1.touki.or.jp/
å¹³æ¥ã®8:30-21:00ãã使ããªããã©ãªï¼
ãã®ãµã¼ãã¹ãæã¯ããã«ããã®Webãã¼ã¸ãçãªãã¶ã¤ã³ã ã£ãã®ã§ãããããããã¼ã¸ããã¬ã¤ã«ãªã£ã¦ãã¾ãã
ããããã¼ã¸å³ã«ã¯ãï¼ã¤ã®å¤§ããªãã¿ã³ç»åãããã¾ãããããããç»è¨æ å ±ãè«æ±ããããç»è¨æ å ±ã¨ç §ä¼çªå·ãè«æ±ãããã¨æ¸ãã¦ããã¾ããããã§ã¯ãç»è¨æ å ±ã¨ç §ä¼çªå·ãè«æ±ããããã¯ãªãã¯ãã¦ãã ããã
ããã¨æ¬¡ã®ç»é¢ã«â¦æã¨ãã¶ã¤ã³ãå¤ãã£ã¨ããããªããï¼
ãä¸æå©ç¨ï¼ã¯ã¬ã¸ããã«ã¼ãå³æ決æ¸ï¼ãã®ãªã³ã¯ããã©ããå種åä½ç¢ºèªå¾ããåä½ç¢ºèªçµäº ä¸æå©ç¨ããããæ¼ãã¦ãã ããã
ä¸æå©ç¨ã§ã¯ãä½ææ°åçå¹´ææ¥ãããã¦ã¯ã¬ã¸ããã«ã¼ãçªå·ãå ¥åããªãã¨ãæ¤ç´¢ãè¡ããã¨ããã§ãã¾ãããå人æ å ±ãå ¥åå¾ãåæ¥ã»æ³äººç»è¨æ å ±ã®ãªã³ã¯ãã¯ãªãã¯ãããæ³äººç»è¨ç°¿è«æ±ãã®æ¤ç´¢ãè¡ãã¾ããæ¤ç´¢æã«ãç §ä¼çªå·ã®çºè¡éæ°ããæå®ãã¾ãããã1ãã¨ã§ãå ¥ãã¦ããã¦ãã ããã
æ¤ç´¢çµæã«èªåã®ä¼ç¤¾ããªãå ´åã«ã¯ãã¾ã ç»è¨ããã¦ãã¾ããããã£ããå¾ ã£ã¦ãã ãããæ¤ç´¢çµæã®è¡¨ç¤ºã¾ã§ã¯ç¡æã§ãããæ¤ç´¢çµæãã¯ãªãã¯ããã¨ãã®æç¹ã§ææ°æãçºçãã¾ãã
æ¤ç´¢çµæã«ãèªåã®ä¼ç¤¾ãè¦ã¤ãã£ãããæ¤ç´¢çµæãã¯ãªãã¯ãã¦ç»è¨æ å ±ãè«æ±ãã¾ããããè«æ±ããç»è¨æ å ±ã«ã¤ãã¦ãã¾ãç §ä¼çªå·ãæ§ãã¦ãã ãããç¨åç½²ã¸ã®å±åºã®éã«å¿ è¦ã¨ãªãã¾ããã¾ããä¼ç¤¾æ³äººççªå·ãæ§ãã¦ããã¦ãã ãããå°éã«ã¼ããã¹ã ã¼ã¹ã«åãåããã¨ãã§ããã§ãããã
æ³åå±ã«è¡ã£ã¦å°éã«ã¼ããåãåãã
è¨ç«ç»è¨ãçµãã£ã¦ãããã¨ã確èªããããæ³åå±ã«è¡ãã¾ããããå°éã«ã¼ãã¨ãããã®ãåãåããã¨ãã§ãã¾ãã
ããã§ãç»è¨äºé 証ææ¸ã®ãã¡å±¥æ´äºé 証ææ¸ãæä½ï¼é¨ããã£ã¦ããå¿ è¦ãããã¾ããå¾ã§ãé½ç¨äºåæã¸ã®å±åºã®éã«ããããã¹ãã£ã³ãããã®ãå¿ è¦ã¨ãªãããã§ããéè¡å£åº§ãä½æãããããå°é証ææ¸ãããã£ã¦ããã¾ãã
e-Taxãéãããç¨åç½²ã¸ã®å±åº
æ±äº¬é½ã§ã®æ³äººè¨ç«ã®å ´åãç¨åç½²ã¨é½ç¨äºåæã«å±åºãå¿ è¦ã¨ãªãã¾ãããªãã¨ããããã®å±åºã¯ã¤ã³ã¿ã¼ãããã§ã§ãã¡ããã¾ããã²ãã£ã»ã¼ãï¼ï¼ï¼ï¼â¦ã¨åã³ããã¨ãããªã®ã§ããã
å®ã¯ãç¨åç½²ã§ãè¨ç«ã»ããããªãæ¸é¡ã»ãããããããããã«è¨å ¥ããã¦éµéããã»ãã楽ã§ããããã¤ã³ã¿ã¼ããã大好ããªä¿ºã¨ãã¦ã¯è¨ã®éã§ãã¤ã³ã¿ã¼ãããã§æç¶ãããããã£ãã®ã§ãã
ãã¦ãe-Taxã®å©ç¨ã«ã¯ICã«ã¼ããªã¼ãã¼ã¨ãä½æ°åºæ¬å°å¸³ã«ã¼ããå¿ è¦ã¨ãªãã¾ãããããã®ã»ããã¯ãå人ã®ç¢ºå®ç³åã®å ´åã«ã使ãã¾ãããã²è³¼å ¥ãã¦ããã¾ããããä½æ°åºæ¬å°å¸³ã«ã¼ãã®çºè¡æã«ãé»å証ææ¸ã®çºè¡ãä¸ç·ã«ãã¦ãããå¿ è¦ãããã¾ãã
ãã½ã³ã³ã«ã¯ãICã«ã¼ããªã¼ãã¼ã®ãã©ã¤ããå°å ¥ããããæ¿åºå ±ç¨èªè¨¼å±ã®ã«ã¼ã証ææ¸ãã¤ã³ã¹ãã¼ã«ããããããã«e-Taxã½ãããªãã½ãããå°å ¥ãããâ¦ãããããã£ã¦ããå¿ è¦ãããã¾ãããããã¸ãã®æç¶ãã¯è¤éãªã®ã§ã詳細ã¯e-Taxãµã¤ããè¦ã¦ãã ããã
æºåãçµãã£ããããéå§å±åºããªããã®ãWebçµç±ã§æåºãã¾ããããã§ãï¼ç¹æ°ãã¤ãã¦ããå ´æãããã¾ãããåèäºé çï¼æ¥ä¸ã®é£çµ¡å çï¼ãã¨ããå ¥åãã©ã¼ã ã«ãï½¢ãªã³ã©ã¤ã³ç»è¨æ å ±æä¾å¶åº¦ï½£ã§åå¾ããç»è¨æ å ±ã®ï½¢ç §ä¼çªå·ï½£åã³ï½¢çºè¡å¹´ææ¥ï½£ãæ¸ããªããã°ãªãã¾ããããã©ã¼ã ã«ã¯ãåèã¨ãªãäºé ï¼æ¥ä¸ã®é£çµ¡å ï¼æºå¸¯çªå·çï¼ãªã©ï¼ãå ¥åãã¦ãã ããããã¨ã ãæ¸ããã¦ããã®ã§ã注æãã¦ããªãã¨æ¸ãå¿ãã¾ãã
ãéå§å±åºããè¡ãã¨ããå©ç¨è èå¥çªå·ããªããã®ãçºè¡ããã¾ããããã§ãe-Taxã½ããã«ã¦æ³äººè¨ç«å±åºæ¸çãæåºããæºåãã¨ã¨ã®ãã¾ããï¼ãã¥ã£ã¡ï¼ã
e-Taxã½ããã§ã¯ãã追å ã¤ã³ã¹ãã¼ã«ãã¨ãã帳票çããã¦ã³ãã¼ãããæ©è½ãããã¾ããä»åã追å ã¤ã³ã¹ãã¼ã«ããå¿ è¦ãªã®ã¯ããå ±éãã®ãããã°ã©ã ãã¨ãå ±é帳票ãããç³åãã®ãæ³äººç¨ãã®ï¼ã¤ã§ãã
e-Taxã½ããã§ã¯ãï¼ã¤ã®æ¸é¡ãæåºãã¾ããæ³äººè¨ç«å±åºæ¸ã»éè²ç³åã®æ¿èªç³è«æ¸ã»çµ¦ä¸æ¯æäºåæçã®éè¨å±åºæ¸ã»æºæ³æå¾ç¨ã®ç´æã®æ¿èªã«é¢ããç³è«æ¸ã®ï¼ã¤ã§ãã
å¿ ãæåºããªããã°ãªããªãã®ã¯ãæ³äººè¨ç«å±åºæ¸ã§ããéè²ç³åã®ã¡ãªãããå¾ããã®ã§ããã°ãéè²ç³åã®æ¿èªç³è«æ¸ãåºãã¾ããããä»åã¯å¾æ¥å¡ãï¼ãå½¹å¡å ±é ¬ãï¼ãªã®ã§ã給ä¸æ¯æäºåæçã®éè¨å±åºæ¸ã»æºæ³æå¾ç¨ã®ç´æã®æ¿èªã«é¢ããç³è«æ¸ã¯æåºããå¿ è¦ããªãããã«æãã¾ãã
ããããããã®æ¸é¡ãæåºããªãã£ãå ´åãèãã¾ããå¤å½¢çã«è¦ãã°ã給ä¸æ¯æäºåæçã®éè¨å±åºæ¸ããµãã£ã¦ãããã«æºæ³æå¾ç¨ãæã£ã¦ããªãæ³äººã«è¦ãã¦ãã¾ãã¾ãããï¼åã®å½¹å¡å ±é ¬ã ãããæãæºæ³æå¾ç¨ã¯ãªããããããã¨ãããã¨ãæ確ã«ãã¦ããå¿ è¦ãããããã§ããããã£ã¦ã給ä¸æ¯æäºåæçã®éè¨å±åºæ¸ã»æºæ³æå¾ç¨ã®ç´æã®æ¿èªã«é¢ããç³è«æ¸ãæåºãã¾ãã
æ³äººè¨ç«å±åºæ¸ã«ã¤ãã¦ãæ·»ä»æ¸é¡ãå¿ è¦ã¨ãªãã¾ããããã¯ãå®æ¬¾ã®åãã§ããå³å¯ã«ã¯ãè¨ç«æã®è²¸åå¯¾ç §è¡¨ããæ ªä¸»åç°¿ã®åããªã©ãå¿ è¦ã§ãããï¼äººãå ¨é¡ééåºè³ããã¦ããæ³äººã«ã¤ãã¦ã¯ä¸è¦ãªããã§ããè¨ç«è¶£ææ¸ã¨ãã¯ç¢ºå®ã«ã¤ã©ãã
å®æ¬¾ãªãé»åå®æ¬¾ã®PDFãã¡ã¤ã«ãããããããæ·»ä»ãã¦éãã°æ¥½ã ãªã²ããâ¦ã¨æããã¨ãªãããå®ã¯ãe-Taxã§ã¯é»åå®æ¬¾ã®ãã¡ã¤ã«ãæ·»ä»æ¸é¡ã¨ãããã¨ãã§ãã¾ããããé»åå®æ¬¾ã®PDFãã¡ã¤ã«ãå°å·ãã¦å¥ééµéãããå¿ è¦ãããã¾ããããã«ããæ·»ä»æ¸é¡ãå¥ééµéãã¾ãããã¨ããå 容ã®é»åæ¸é¡ã§ãããé»åç³ååã³ç³è«ã»å±åºã«ããæ·»ä»æ¸é¡éä»æ¸ããé»å証æãã¦éãå¿ è¦ãããã¾ããããããPDFã¨ãã¢ãããã¼ãã§ããããã«ããããï¼ã¨ããããã¨ããã§ããããããããªãã®ã§éµéãã¾ãããã
eLTAXãéãããé½ç¨äºåæã¸ã®å±åº
e-Taxã®ããã¢ãã¿ãããªååã§ããããã¡ãã¯å°æ¹ç¨ã®ã·ã¹ãã ã§ããå©ç¨è ã®ç«å ´ããããã°ãã·ã¹ãã ããªãã§å¥ãªãã ãâ¦ã¨è¨ããããªãã¾ãããã¬ãã³ãã¦ãã ããã
ã¡ãªã¿ã«ãç´ãã¼ã¹ã®è¨ç«å±åºæ¸ã§ã¯ãç¨åç½²æåºç¨ã®æ¸é¡ãæ¸ãã¨ãèªåçã«é½ç¨äºåæã¸ã®æåºæ¸é¡ãå®æããã®ã§ãããªããªããã«ã¼ãã³ã³ãã¼ã«ãªã£ã¦ãããããããâ¦
eLTAXãå©ç¨ããããã«ã¯ããå©ç¨å±åºãã¨ãããã®ãWebãµã¤ãä¸ã®Javaã¢ãã¬ããããæåºããå¿ è¦ãããã¾ããå±åºãåºãã¦ããå©ç¨è IDãçºè¡ãããã¾ã§ããããæ°æ¥ãããã¾ãããã£ããå¾ ã£ã¦ãã ããã
ãå©ç¨å±åºãã®æåºå ã¯ãæ±äº¬é½ãã§ãããæ±äº¬é½ï½ï½åºãã§ã¯ããã¾ãããã注æãã ãããeLTAXã§ã®ãå©ç¨å±åºããã©ã¼ã ã§ã¯ããä¸è¨ã®æåºå ã«æ³äººã®è¨ç«ããã¦ããªãæ¹ã¯ããã§ãã¯ãã¦ãã ãããã¨ããæè¨ã¨ã¨ãã«ããã§ãã¯ããã¯ã¹ãè¨ãããã¦ãã¾ããe-Taxã¨ã¯éããï½¢ãªã³ã©ã¤ã³ç»è¨æ å ±æä¾å¶åº¦ï½£ã®ç §ä¼çªå·çã¯å¿ è¦ããã¾ããã
ãã¦ãeLTAXã®Webãµã¤ãã¯ãInternet Explorer 6ãããã¯7ã§ããåä½ãã¾ãããInternet Explorer 8ã«ã¯å¯¾å¿ããªããï¼ã¨ãµã¤ãã«ã¯ã£ããæ¸ãã¦ããã¾ããInternet Explorer 8ã使ã£ã¦ãã人ã¯ã©ãããã°ããã®ã§ããããã
IETesterã¨ããã½ããã使ãã°åé¡ã解決ã§ãã¾ãã
http://www.my-debugbar.com/wiki/IETester/HomePage
IETesterã¯ãããããªãã¼ã¸ã§ã³ã®Internet Explorerãï¼ã¤ã®ã¦ã£ã³ãã¦å
ã«è¡¨ç¤ºã§ããã¨ãããã°ãããã½ããã§ãããªããeLTAXã«ã¦ãIETesterã§ãIE7ãã®ã¿ããç¨ããå ´åã«ã¯ãæ·»ä»ãã¡ã¤ã«ã®ã¢ãããã¼ãã«ã¦ä¸å
·åãçãã¾ãããIETesterã§ã¯ãIE6ãã®ã¿ããéãã¦ãããã§eLTAXãå©ç¨ãã¾ãããã
eLTAXãe-Taxã«æ¯ã¹ã¦ãã°ãããã¨ããã¯ãããããæ¸é¡ãæ·»ä»ãã¦éãã¡ããã¨ããã§ãããå¥ééµä¾¿ã§æ¸é¡ãéãããã¨ããé»åææ¸ãé»åèªè¨¼ãã¦éä»ãããã¨ããããã¨ãããªãã¦ããããã§ãããã¾ãããã£ã¡ã®ã»ããæ®éã ã¨æãã¾ããâ¦
æ¸é¡æ·»ä»ããå ´åã注æãã¹ããã¨ãããã¾ãããã«ããã¡ã¤ã«ãã¢ãããã¼ãããã¨ãWebãµã¼ããç¡ææ³ãªè±èªã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ãè¿ãã¦ãããã¨ã§ããã¹ãã£ãã¼ãåãåºãPDFãªã©ã¯ãAdobe Acrobatã®PDFå§ç¸®æ©è½ãªã©ã使ã£ã¦å§ç¸®ãã¦ããã¾ãããã
ç»è¨äºé 証ææ¸(å±¥æ´äºé 証ææ¸)ã¯ãäºåã«ã¹ãã£ã³ãã¦PDFã«ãã¦ããã¦ãã ãããé»åå®æ¬¾ã¯ãPDFãã¡ã¤ã«ããã®ã¾ã¾éããã¨ãã§ãã¾ãã
eLTAXã®ãµã¤ããè¦ã¦ããã¨ãå°ç¨ã®ã¯ã©ã¤ã¢ã³ãã½ããã§ããPCdeskããã¦ã³ãã¼ãããªããã°ãªããªããããªæ°ããã¾ããå®ã¯ãæ³äººã®è¨ç«ç³è«ã®å ´åã«ã¯ãPCdeskã¯å¿ è¦ããã¾ããããªããããªãã¨ãããããæ¸ãã®ããããã¯ãPCdeskã®ãã¦ã³ãã¼ããããã©ãããããã§ããè«ãã証æ ãç»åããè¦ããã¾ãããã
社ä¼ä¿éºäºåæã»å´ååºæºç£ç£ç½²ã»å ¬å ±è·æ¥å®å®ç½²ï¼ããã¼ã¯ã¼ã¯ï¼ã«ã¯ç¨ãªãï¼
役人ã®ã¿ã§å¾æ¥å¡ãããããå½¹å¡è³ä¸ã®æ¯æããï¼ã®ããã社ä¼ä¿éºäºåæã§æç¶ããããå¿ è¦ã¯ããã¾ããã
ä¼ç¤¾å¤ãã®äººããã£ãã社ä¼ä¿éºäºåæã§æç¶ãããã¦ãã¾ãã¨ããæå±é¸æå±ãããï¼ä»¥ä¸äºæ¥æå¤åå±ããªã©ãæåºããªããã°ãªããªããªãã大å¤é¢åã§ãããã ããå½¹å¡è³ä¸ãæãå ´åã«ã¯é¢åã§ãã¡ããã¨æç¶ããå¿ è¦ãããã¾ããã
åæ§ã®çç±ã§ãå´ååºæºç£ç£ç½²ã»å ¬å ±è·æ¥å®å®ç½²ã¸ã®æç¶ããä¸è¦ã§ãããã¡ãã¯ãå½¹å¡ã®ã¿ã§å¾æ¥å¡ãããªãå ´åã§ããã°æç¶ããªãã¦ããããã§ãã
éè¡å£åº§ãä½æãã
ããã大好ããªãããããã³ã¯ï¼
å°é¡è³æ¬éã®æ³äººãé½å¸éè¡ã«ã¦å£åº§ãéè¨ããã®ã¯ãä¸ç¨®ã®ããããã®æªãããæãã¾ãããããé販ã§è²·ã£ãèªè»¢è»ãè¿æã®èªè»¢è»ã§é²ç¯ç»é²ãããããªæããã§ã¯ãã©ãã®éè¡ã§å£åº§ãéè¨ããã°ããã®ã§ããããã
ã¸ã£ãã³ãããéè¡ã¯ã©ãã§ããããã
ã¸ã£ãã³ãããéè¡ã§æ³äººå£åº§ãéè¨ããå ´åã«ã¯ãä¼ç¤¾ã®Webãã¼ã¸å 容ã審æ»ããã¾ããæ ªå¼ä¼ç¤¾ï½ï½ï½ï½ã¿ããã«ãµãããå 容ã®ãµã¤ãã ã¨ãã¾ã審æ»ã«è½ã¡ãã§ãããã
楽天éè¡ï¼æ§ã¤ã¼ãã³ã¯éè¡ï¼ã®å ´åã¯ã©ãã§ããããã
楽天éè¡ã§ã¯ãä»ã®éè¡ã§æ³äººå£åº§ãéãããã¨ã§ãªãã¨å£åº§ãéè¨ã§ãã¾ããã
ä½ä¿¡SBIãããéè¡ã§ã¯ãå£åº§éè¨ã®æç¶ãããããã¨éµä¾¿ã ãã§æ¸ã¿ã¾ããã²ãã£ã»ã¼ãï¼ä»åã¯ãä½ä¿¡SBIãããéè¡ã§å£åº§ãä½æãã¾ããã
ãã¦ãéè¡å£åº§éè¨ã®éã«ã¯ããå°é証ææ¸ããç»è¨äºé 証ææ¸ãã«å ãã¦ããå®æ¬¾ã®åãããå¿ è¦ã¨ãªãã¾ããé»åå®æ¬¾ã®PDFãå°å·ãããã®ã¯ãå³å¯ã«ã¯ãå®æ¬¾ã®åããã§ã¯ããã¾ãããããããå¤ãã®å ´åã¯PDFãå°å·ãããã®ã§ä»£ç¨ã§ããããã§ããããã³ã¢ãã®é»åå®æ¬¾ã®åãããæã«å ¥ããã®ã¯ã¡ãã£ã¨é¢åãªã®ã§ãããæ¬ç¨¿ã§ã¯è§¦ãã¾ããã
ãæ¥æ¬é»åå®æ¬¾ä½æã»ã³ã¿ã¼ãã§é»åå®æ¬¾ãä½æããå ´åã«ã¯ãããã³ã¢ãã®é»åå®æ¬¾ã®åãããï¼é¨ã¤ãã¦ãã¾ããã大äºã«ä½¿ãã¾ãããã
FAXçªå·ãåå¾ãã
家ã«FAXãããã¨éªéã§ãããæ³äººã§ã¯FAXçªå·ãå¿
è¦ã¨ãªãã±ã¼ã¹ãå¤ãããã¾ããD-FAXã¨ãã便å©ãªãµã¼ãã¹ãå©ç¨ãã¾ãããããã®ãµã¼ãã¹ãå©ç¨ããã¨ãFAXçªå·ãåå¾ãããã¨ãã§ãã¾ããFAXãéãããã¨ããã®å
容ãTIFFãã¡ã¤ã«ã¨ãã¦é»åã¡ã¼ã«ã§éä»ãã¦ããã¾ããPDFãå¸æããå ´åã«ã¯ããªãã·ã§ã³ãå¿
è¦ã§ãã
http://www.d-fax.ne.jp/
ãã ããFAXãå¿
é ã¨ãªãASKULã®ç»é²ã«ããã¦ãD-FAXã®çªå·ã¯ç»é²ãããã¨ãã§ãã¾ãããæ®å¿µã§ããâ¦
ä¼ç¤¾ã®ãã´ãä½ãã
Lancersã¨ãããµã¤ãã§ãã³ã³ãå½¢å¼ã«ã¦ãã´ã®ä½æãä¾é ¼ãããã¨ãã§ãã¾ãã
æ ªå¼ä¼ç¤¾ï½ï½ï½ï½ã®ãã´è£½ä½ã¯ä»¥ä¸ã®ããã«ä¾é ¼ãã¾ãããåæ¨ç»é²ãè¡ãäºå®ããªãã®ã§ãæ¢åã®ãã©ã³ãã®ä½¿ç¨ã許å¯ãã¦ãã¾ããåæ¨ç»é²ããäºå®ãããã°ããã®æ¨ãä¾é ¼å
容ã«æ¸ãã¦ããå¿
è¦ãããã¾ãã
http://www.lancers.jp/work/detail/5490
åä½ãã´ãå¤æ°ææ¡ããã¾ãããä¸è¨ã®ãªã³ã¯ããã覧ã«ãªãã¾ãã
http://www.lancers.jp/work/proposals/5490
ï¼ã¤ã®ææ¡ã§æ©ãã çµæãfreefrogããã®ææ¡ãæ¡ç¨ããã¦ããã ãã¾ããã
ãã´ã®ãã¶ã¤ã³ããé¡ãããå ´åãï¼ç¹æ°ãã¤ããã¨ãããããã¾ããèä½æ¨©ã®ãã¡ããèä½è äººæ ¼æ¨©ãã¯è²æ¸¡ã§ãã¾ããããèä½è äººæ ¼æ¨©ãã®ã²ã¨ã¤ã«ãåä¸æ§ä¿æ権ããããã¾ãããã´ã使ãå ´åã«ãç¨éã«å¿ãã¦å°ãæ¹å¤ãã¦å©ç¨ãããå ´åãããã§ãããããã®ãããªæ¹å¤ããåä¸æ§ä¿æ権ã«ãã£ã¦ç¦æ¢ãããå¯è½æ§ãããã¾ãããå°ãæ¹å¤ãã¦ä½¿ãããããã¾ããããããããã§ãããããã¨ãããããã´ãã¶ã¤ãã®æ¹ããäºè§£ãã¨ã£ã¦ããã¨ããã§ãããã
Lancersã§ã¯ãä»äºãé ¼ãã ãã§ã¯ãªããä»äºãè«ãè² ããã¨ãã§ãã¾ããiPhoneã¢ããªã®éçºã®ãä»äºãªã©ãããã°ã©ãåãã®æ¡ä»¶ãåºã¦ãã¾ãããããã°ã©ãããã¶ã¤ãã®æ¹ãç»é²ã©ãã§ããããï¼
ååºãä½ã
æ³äººã§ä½ãã®å¥ç´ãè¡ãå ´åãååºã®æ示ãæ±ããããã±ã¼ã¹ãããã¾ããæºå¸¯é»è©±ã®å¥ç´ããgreeã®éçºè ã¢ã«ã¦ã³ãã®ç»é²ãªã©ã§ãããä¼ç¤¾ã®ãã´ãä½æãã¦ããã£ããã¨ã§ããããããæ´»ãããååºãä½æãã¦ã¿ã¾ãããã
ååºã¯ãSuperPrintã«ã¦æ³¨æãã¾ãããä¼å¡ç»é²æã«ãç´¹ä»ã³ã¼ãã82944392ããå
¥åããã¨ããã£ã¨æ³¨æã5%å¼ãã«ãªãã®ã§ãå
¥åãå¿ããã«ã
http://www.superprint.jp/
ãã¦ãSuperPrintã§ã¯ãAdobe Illustratorã®aiãã¡ã¤ã«ã§ååºãã¼ã¿ãå ¥ç¨¿ããå¿ è¦ãããã¾ããããã§ãIllustratorãæã£ã¦ããªãæ¹ã«æå ±ãããã¾ãã
Adobe Adobe Creative Suite 4 Web Standardã®è³¼å ¥ããªã¹ã¹ã¡ãã¾ãããªãã¨CS5 Web ãPremiumãã«ç¡æã§ã¢ããã°ã¬ã¼ãã§ãã¾ããã¤ã¾ããPhotoshopã¨Illustratorãã¿ãã§æã«å ¥ã£ã¡ããããã§ããä¸è¨ã®ãªã³ã¯å ããããAmazon.co.jpã®è©³ç´°ãã¼ã¸ã¸ãã®ãã¿ã³ãã¯ãªãã¯ããã¨è³¼å ¥ã§ããããã§ãããä¸å¿è£è¶³ãAmazon.co.jpã®ãã¼ã¸ã«é·ç§»ãããã¨ãå³ä¸ã»ã©ã«ããããã¡ããããè²·ãã¾ãããã³ã¼ãã¼ã«ããããAmazon.co.jpãã®ãã·ã§ããã³ã°ã«ã¼ãã«å ¥ããããã¿ã³ãæ¼ãã¦è³¼å ¥ããã®ãã¨ã³ããªå·çæç¹ã§ã¯ä¸çªå®ä¾¡ã§ããã
Adobe Creative Suite 4 Web Standard æ¥æ¬èªç Windowsç (æ§è£½å)
- åºç社/ã¡ã¼ã«ã¼: ã¢ããã·ã¹ãã ãº
- çºå£²æ¥: 2008/12/19
- ã¡ãã£ã¢: DVD-ROM
- è³¼å ¥: 3人 ã¯ãªãã¯: 960å
- ãã®ååãå«ãããã° (9件) ãè¦ã
ååºä½æã®éã«æ°ãã¤ãããã¨ã¯ã以ä¸ã®ç¹ã§ãã
- æåã¯ã¢ã¦ãã©ã¤ã³åãã¦ããå¿ è¦ãããã¾ãã
- ã«ã©ã¼ã¢ã¼ãã¯ãRGBã§ã¯ãªãCYMKã«ããå¿ è¦ãããã¾ããTMNTãããªããï¼
- é»1è²ã®ã¢ãã¯ãã®å ´åã«ã¯ãè²ã®ãã¡C/Y/Mã念ã®ãã0%ã«ãã¦ããã¦ãã ããããã£ã¹ãã¬ã¤ã§ã®è¦ãç®ã¯å¤ããã¾ãããâ¦
- ã«ã©ã¼å°å·ã®å ´åã«ã¯ãé»ã¯C/Y/M 30%ãK100%ãããã«ãã¦ããã¦ãã ãããæ·±ã¿ãåºãããããï¼
Illustratorã®æä½ã«æ
£ãã¦ããªãã¦ãããããªãã®è¦ãç®ã®ååºãä½ããã¨ãã§ãããããæä½ããããã¾ããããã¯ããæåã¨æåã®éã®è©°ããã調æ´ããæä½ã§ããããã¹ãç·¨éä¸ã«Altãã¼ãæ¼ããªããã«ã¼ã½ã«ãã¼ã®å·¦å³ãæ¼ããã¨ã«ãããæåã®è©°ãã調æ´ã§ãã¾ããé©å½ãªãã©ã³ããé¸ãã§ãæåãå
¥åããè©°ãã調æ´ããã°ããããªãã®è¦ãç®ã®ååºãåºæ¥ä¸ããã®ã§ã¯ãªãã§ããããã
ä¼è¨ã½ããã§ä»è¨³ããã
ä¼è¨ã½ããã¨ãã¦ãå¼¥çä¼è¨ãå°å ¥ãã¾ããã
ã¾ããçºèµ·äººãç«ã¦æ¿ããè¨ç«è²»ç¨ãä»è¨³ãã¾ãããã
è¨ç«è²»ã¨ããåå®ç§ç®ãããã®ã§ãå®æ¬¾ã®èªè¨¼ã«ãããä»è¨³ãªã©ã¯ãã¹ã¦åæ¹ãã³ã¬ã«ãã¾ãã貸æ¹ã¯ãæªæéãã§ããã§ãããã
ï¼è¨ç«è²»ï¼ xxx,xxxã/ãï¼æªæéï¼ xxx,xxx
ãã¾ã£ããæªæéãã«ã¤ãã¦ãä¼ç¤¾ããçºèµ·äººã«éè¡æ¯è¾¼ããã¦å¦çãããããã
ï¼æªæéï¼ xxx,xxxã/ãï¼æ®éé éï¼ xxx,xxx
(æ¯æææ°æï¼ xxxã/ãï¼æ®éé éï¼ xxx
å½¹å¡ããã®åå ¥éã¨ãã¦æ¯ãæ¿ãã¦ãããã§ãããã
ï¼æªæéï¼ xxx,xxxã/ãï¼å½¹å¡åå ¥éï¼ xxx,xxx
å½¹å¡ããã®åå ¥éã«ã¤ãã¦ãåç¨æ¸ãæ¸ãå¿ è¦ã¯ããã¾ãããæ°ã«ãªã人ã¯æ¸ãã¦ããã¨ããã§ãããããã ããåç¨æ¸ãä½ãå ´åã«ã¯åå ¥å°ç´ãå¿ è¦ã¨ãªãã¾ãã
è¨ç«è²»ã¯ä¼è¨çã«ã¯ç¹°å»¶è³ç£ã¨ãã£ã¦ãï¼å¹´éããã¦ã¸ã¯ã¸ã¯ã¨è²»ç¨å¦çããå¿ è¦ãããã¾ãï¼ç¹°å»¶è³ç£ã¯ãåå®ç§ç®ãï¼æåã®ã¯ï¼å¹´åå´ãï¼æåã®ã¯ï¼å¹´ãã¨ããä¼è¨åé¨ç¥èãããã¾ããã¼â¦ï¼ãç¨æ³ä¸ã¯ï¼å¹´ç®ã§å ¨é¡è²»ç¨å¦çãã¦OKãªããã§ãã
ï¼å¶æ¥å¤è²»ç¨ï¼ xxx,xxxã/ãï¼è¨ç«è²»ï¼ xxx,xxx
ã¾ãããã£ã¨è¨ç«è²»ãè²»ç¨å¦çããã«ãæ³äººãé»åã¨ãªã£ãæç¹ã§è²»ç¨å¦çãããã¨ãã§ãã¾ãã
ä»åã¯ãè¨ç«è²»ã繰延è³ç£ã¨ãã¦æ±ããè²»ç¨å¦çãã¾ããã§ãããã©ãã売ä¸ãããªãããã
æ°è¨æ³äººã¯ãä½ã®å±åºããã¦ããªããã°ãæ¶è²»ç¨ã®å ç¨äºæ¥è ãã¨ãªãã¾ãããã®å ´åãå ¨ã¦ã®ä»è¨³ã¯ãç¨è¾¼ãã®é¡ã§è¡ãã¾ããå®ã¯ãå²ãããªãæ³äººãè¨ç«ããå ´åã«ã¯ãæ¶è²»ç¨ã®èª²ç¨äºæ¥è ã«ãªã£ãã»ãããå¾ã§ããæã£ãæ¶è²»ç¨ãéä»ãã¦ããããããã§ããä»åã¯ãå±åºãé¢åã ã£ãã®ã§å ç¨äºæ¥è ã®ã¾ã¾ã«ãã¾ããã
ä»è¨³ã«ã¤ãã¦ãç°¿è¨ã®ï¼ç´ç¨åº¦ã®ç¥èã¯ãã£ã¦ããã¨ä¾¿å©ã§ããã¤ãã§ã«è³æ ¼åå¾ã¯ãããã§ãããããç°¿è¨ã¯æ¥½ããã§ããããã®æ¬ï¼åãã£ããåå¼·ããã°ãç°¿è¨ï¼ç´ã¯åå¾ã§ããã§ãããã
10æ¥ã§åæ ¼ãã!æ¥åç°¿è¨3ç´ å éãã¹ã¿ã¼ããã¹ã
- ä½è : æ±äº¬ãªã¼ã¬ã«ãã¤ã³ã LECç·åç 究ææ¥åç°¿è¨è©¦é¨é¨
- åºç社/ã¡ã¼ã«ã¼: æ±äº¬ãªã¼ã¬ã«ãã¤ã³ã
- çºå£²æ¥: 2009/04/16
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 24人 ã¯ãªãã¯: 190å
- ãã®ååãå«ãããã° (26件) ãè¦ã
å¿ è¦ãªãéã®ç·é¡
å¿ è¦ãªãéã®ç·é¡ã«ã¤ãã¦æ°ã«ãªãæ¹ããããããªã®ã§ãã¾ã¨ãã¦ã¿ã¾ãããçè¨ç¨å ·ä»£ã»æ³åå±ã¸ã®äº¤éè²»ã»ããªã³ã¿ä»£ã»ã¤ã³ã¿ã¼ãããéä¿¡è²»ã»ãã½ã³ã³ä»£ã»ICã«ã¼ããªã¼ã代ãªã©ã¯é¤ãã¾ãã
æ³äººè¨ç«ç»è¨ã¾ã§ã¯ãæä½206,000å + è³æ¬é + 代表å°ä»£ ã®ãéãå¿ è¦ã¨ãªãã¾ããè³æ¬é1åã代表å°ã1,280åã ã¨ã207,281åãããããã§ããã
é ç® | éé¡ |
---|---|
é»åå®æ¬¾èªè¨¼ | 56,000å |
ç»é²å è¨±ç¨ | 150,000å |
ä»£è¡¨å° | 1,280å |
è³æ¬é | 1å |
æ³äººç»è¨ä»¥éã§ããããéã¯ã以ä¸ã®ã¨ããã§ãã
é ç® | éé¡ |
---|---|
ç»è¨æ å ±ã®ç §ä¼çªå·åå¾ | 465å |
å°é証ææ¸@500åx1 | 500å |
å±¥æ´äºé 証ææ¸@1,000åx1 | 1,000å |
å®æ¬¾ã®åããç¨åç½²ã«éãåæ代 | 80å |
.co.jpãã¡ã¤ã³ä»£(1å¹´) | 3,000å |
ãã´ãã¶ã¤ã³ä»£ | 50,000å |
ååº ã¢ãã¯ã 100æ | 900å |
D-FAX | 2,625å |
ã¨ããããã§ããã´ã®ãã¶ã¤ã³ã«50,000åãããã¦ããç·é¡265,851åã§æ ªå¼ä¼ç¤¾ãä½ããã¨ãã§ãã¾ãã*1ã
ã¾ã¨ã
以ä¸ã®ããã«ãæ³åå±ã«ï¼åè¡ãã ãã§æ ªå¼ä¼ç¤¾ãè¨ç«ã§ãã¾ããè¨ç«æ¥ã«ãã ããããªããã°ãæ³åå±ã«ï¼åè¡ãã ãã§æ¸ã¿ã¾ããäºæ¥ã®éå§ã«å¿ è¦ãªæºåããã¤ã³ã¿ã¼ãããä¸ã§è¡ãã¾ãã
ãã²çã ãã¾ã®ãå½¹ã«ç«ã¡ã¾ããã¨ãã
ã¡ãªã¿ã«ãæ³äººåã®æåã®åè£ã¯ãæ ªå¼ä¼ç¤¾è¹å·¥è¹ãã§ããããã£ã¨ååããªååãã¤ãããããã¨ä¸å¸ã«è«ãããã®ã§ãããããããã¼ã ããªï¼
ã¤ãã»ãã¹ã¸ã¼ï¼ï¼
*1:代表å°ä»£ãæãã¦ããã®ã§ã追è¨ãã¾ããã
ã©ã¼ãã¦ãFTPãµã¼ããç«ã¦ãªããã°ãããªãæã«ä½¿ãã使ãæ¨ã¦FTPãµã¼ã
ãæè¿ããã°æ¸ããªããã§ããï¼ãã¨å®¢å ã§èããããã¨ããã£ãã®ã§ãçå確èªã®æå³ã§ããã°ãæ¸ãã¦ã¿ããã¨æãã¾ãã
FTPã¨ããã°ãæè¿çç®ãæµ´ã³ããããã³ã«ã§ãããFTPã¯ãããããã»ãã¥ã¢ã§ã¯ãªããããã³ã«ã§ãã追ãæã¡ããããããã«ãFTPã¯ã©ã¤ã¢ã³ãããã¼ã«ã«ã«ä¿åãããã¹ã¯ã¼ããçãã³ã³ãã¥ã¼ã¿ã¦ã¤ã«ã¹ãçºçãã¾ããããã¼ã«ã«ä¿åããããã¹ã¯ã¼ããçã¾ãããã¨ã«ã¤ãã¦ã¯ãFTPã¨ãããããã³ã«èªä½ã®è²¬ä»»ã§ã¯ããã¾ãããããããä¸éã§ã®FTPã®å°è±¡ã¯æªããªã£ãããã§ããåããæ®æ®µã¯FTPã使ããã¨ã¯ããã¾ããã
ããããå¤é¨ã®æ¹ã¨ããã¨ãããå ´åã«ããã©ã©ã©ã¼ã¼ãã¦ãFTPãããªãã¨ã¤ãã¼ï¼ï¼ï¼ãã¨è¨ãããã±ã¼ã¹ãããã¾ãããã®ãããªå ´åãFTPãµã¼ããå¿ è¦ãªã¨ãã®ã¿ã ãèµ·åããã¨ããæ¹æ³ãåããã¨ãã§ãã¾ããå ·ä½çã«ã¯ã以ä¸ã®ãããªæ¹æ³ã§ããã
- ãã¡ã¤ã«ã®åã渡ãããããã¨ããé£çµ¡ãé»è©±ãªã©ã§åããã
- ftpãµã¼ããç«ã¡ä¸ããã
- ãã¡ã¤ã«ãftpçµç±ã§ã¢ãããã¼ããã¦ãããã
- å®äºæ¬¡ç¬¬ftpãµã¼ããè¬ãã
ããããåããã¾ã¾ã§çµé¨ãããã¨ã®ããFTPãµã¼ãã®è¨å®ã¯ã
æå¤ã¨é¢åãããããããæè»æ§ã«æ¬ ãããã®ããè¡ããªãå°è±¡ãããã¾ãã
ã¡ãã£ã¨ã ãã®ãã¡ã¤ã«ã®åã渡ãã®ããã ãã«ã
æ®æ®µä½¿ããªãä¸ã«ã¡ã³ãã¯ãµã¤FTPãµã¼ãè¨å®ãããæ°ãªãã¦èµ·ããã¼ï¼
ãã®ãããªãçåæéãçãFTPãµã¼ããã«ã³ã¿ã³ã«ä½ããã¨ãã§ãããpyftpdlibã¨ãããã®ãããã¾ãã
Windows/Linux/Mac OS Xå
¨ã¦ã§åä½ãããã©ã¯ã©ã¯FTPãµã¼ãä½æã©ã¤ãã©ãªã§ãã
ä»åã¯ããã®pyftpdlibã®ä½¿ãæ¹ã«ã¤ãã¦ç°¡åãªè§£èª¬ã試ã¿ã¾ãã
ãªããå®è¡ã®ããã«ã¯ããã°ã©ãã³ã°è¨èªPythonã®å®è¡ç°å¢ãå¿
è¦ã¨ãªãã¾ãã
æè¿ã®Linuxãã£ã¹ããªãã¥ã¼ã·ã§ã³ã ã£ããæ¨æºã§å®è¡ç°å¢ãå
¥ã£ã¦ããã¨æãã¾ãã
pyftpdlibã®ãã¦ã³ãã¼ã
pyftpdlibãä½ããããã£ã¦ããã¡ã¤ã«ï¼åã ãã®ã©ã¤ãã©ãªãã¨ãããã¨ã§ããæ±ãã楽ã§ããã(2013å¹´3æ26æ¥è¿½è¨ï¼pyftplibãã¼ã¸ã§ã³1.0.0以éã¯ããã¡ã¤ã«ãè¤æ°ã«å¥ãã¦ãã¾ãããã¼ã¸ã§ã³0.7.0ã使ãåæã§ä»¥ä¸è¨è¿°ããã¦ãã¾ãã)
ãã¦ã³ãã¼ãã¯ã
http://code.google.com/p/pyftpdlib/
ããè¡ããã¨ãã§ãã¾ãã
ãã¦ã³ãã¼ãããããã±ã¼ã¸ã¯ãã¤ã³ã¹ãã¼ã«ããå¿
è¦ãããã¾ããã
åä½ã«å¿
è¦ã¨ãªãã®ã¯ã解åãã¦å¾ããããpyftpdlib-x.x.x/pyftpdlib/ftpserver.pyãã¨ããï¼ãã¡ã¤ã«ã®ã¿ã§ãã
ãããã«ã¬ã³ããã£ã¬ã¯ããªã«ç½®ãã¦ãã ããã
anonymous ftpãç«ã¦ã
å
¨ã¦ã®IPã¢ãã¬ã¹ã®10021çªãã¼ãã«ã¦ã
/var/ftp/以ä¸ã®ãã£ã¬ã¯ããªãanonymous ftpã«ã¦å
¬éããã®ã¯ã
以ä¸ã®ããã«æ¸ãã¾ãã
#!/usr/bin/python import ftpserver FTP_ROOT = "/var/ftp/" ADDRESS = ("0.0.0.0", 10021) authorizer = ftpserver.DummyAuthorizer() authorizer.add_anonymous(FTP_ROOT) ftp_handler = ftpserver.FTPHandler ftp_handler.authorizer = authorizer ftpd = ftpserver.FTPServer(ADDRESS, ftp_handler) ftpd.serve_forever()
ADDRESSã¨ããã¿ãã«ã®ï¼ã¤ãã®è¦ç´ ã«"0.0.0.0"ãæå®ããã¨ã
å
¨ã¦ã®IPã¢ãã¬ã¹ã§æ¥ç¶ãå¾
ã¡åãã¾ãã
ãã¼ãçªå·ã1024æªæºã§FTPãµã¼ããç«ã¡ä¸ãããå ´åã«ã¯ã管çè
権éãå¿
è¦ã¨ãªãã¾ãã
èªè¨¼ãåå¨ããªããããanonymousã¦ã¼ã¶ã¯ãã¡ã¤ã«ã®èªã¿è¾¼ã¿ããã§ããªãããã«ãªã£ã¦ãã¾ãã
å®éã«ä½¿ããã¨ã¯ãã¾ããªãã§ãããã
ã¦ã¼ã¶ã追å ãã
pyftpdlibã¯ãã¦ã¼ã¶ãè¤æ°è¿½å ãããã¨ãã§ãã¾ããã¦ã¼ã¶ãã¨ã«homeãã£ã¬ã¯ããªã権éãæå®ãããã¨ãã§ãã¾ãã
FTP_ROOT以ä¸ãã¹ã¦ã«ã¢ã¯ã»ã¹ã§ããgunyaã¨ããã¦ã¼ã¶ãä½æãã¦ã¿ã¾ãããã
ãã¹ã¯ã¼ãã¯ãpassword_de_gozaimasuãã§ãã
å ã»ã©ã®ã
authorizer.add_anonymous(FTP_ROOT)
ã¨ããï¼è¡ãã以ä¸ã®ããã«add_useré¢æ°ã«ç½®æãã¾ãããã
authorizer.add_user("gunya", "password_de_gozaimasu", FTP_ROOT, perm="elradfmw")
add_useré¢æ°ã®å¼æ°ã¯ãããããã¦ã¼ã¶åã»ãã¹ã¯ã¼ãã»homeãã£ã¬ã¯ããªã»æ¨©éã§ãã
権éã«ã¤ãã¦ãããããã®æåã¯ä»¥ä¸ã®ãããªæå³ãæã¡ã¾ãã
- e: ãã£ã¬ã¯ããªå¤æ´
- l: ãã¡ã¤ã«ä¸è¦§ã®åå¾
- r: ãã¡ã¤ã«ã®ãã¦ã³ãã¼ã
- a: æ¢åã®ãã¡ã¤ã«ã¸ã®è¿½è¨
- d: ãã¡ã¤ã«ã®åé¤
- f: ãã¡ã¤ã«åå¤æ´
- m: ãã£ã¬ã¯ããªä½æ
- w: ãã¡ã¤ã«ã®ã¢ãããã¼ã
ä»åã¯ã権éãå ¨ã¦ä»ä¸ãããã¦ã¼ã¶ãä½æãããã¨ã«ãªãã¾ãã
ãã¡ãããadd_useré¢æ°ãè¤æ°å¼ã¹ã°ãè¤æ°ã®ã¦ã¼ã¶ãä½æãããã¨ãã§ãã¾ãã
ãã¹ã¯ã¼ããåçã«å¤æ´
pyftpdlibã®ããã¨ããã¯ãPythonã¨ããããã°ã©ãã³ã°è¨èªä¸ã§åä½ããã¨ãããã¨ã§ãã
ãã¨ãã°ãèµ·åã®ãã³ã«éã£ããã¹ã¯ã¼ããè¨å®ãããã¨ãã§ãã¾ãã
å ã»ã©ã®ã¦ã¼ã¶ãgunyaãã®ãã¹ã¯ã¼ããããpasswordãã¨ãå¹´ææ¥ããé£çµããæååã«ãã¦ã¿ã¾ãããã
ã¾ãã¯ãæ¥ä»ã»æå»ãæ±ãã©ã¤ãã©ãªãèªã¿è¾¼ã¿ã¾ãã
import ftpserver
ã®æ¬¡ã®è¡ã«ã
from datetime import datetime
ã追è¨ãã¾ãã
ããã¦ãadd_useré¢æ°ã®ç¬¬äºå¼æ°ãå¤ãããã¨ã«ããããpasswordãã¨ãå¹´ææ¥ããé£çµããæååããã¹ã¯ã¼ãã¨ãã¦è¨å®ãã¾ãã
authorizer.add_user("gunya", "password" + datetime.now().strftime('%Y%m%d'), FTP_ROOT, perm="elradfmw")
ããã§ãç«ã¡ä¸ãã£ãæ¥ä»ã«ãã£ã¦éã£ããã¹ã¯ã¼ããè¦æ±ããFTPãµã¼ããã§ãã¾ããã
ãã¡ãããã¦ã¼ã¶IDã ã£ã¦åçã«çæãããã¨ãã§ãã¾ãã
ä»ã«ã
- FTPS
- 帯åå¶é
- IPãã¨ã®æ¥ç¶å¶é
- IPv6対å¿
ãªã©ã¨æ©è½çãã ããããªpyftpdlibã
詳ããã¯ã以ä¸ã®ãã¥ã¼ããªã¢ã«ãã覧ãã ããã
http://code.google.com/p/pyftpdlib/wiki/Tutorial
ãã殺ãFTPãµã¼ãã«ä½¿ãã®ã«ã¯å¿ä½ãªãã¨ãããã¾ãããã²ä½¿ã£ã¦ã¿ã¦ãã ããï¼
åãæã£ã¦ããWebã«ã¡ã©ã«ã¯åçãå®æçã«ã¢ãããã¼ããã¦ãããæ©è½ãããã
çå®ä¸ã®ç«ç»åãã¢ãããã¼ãããããªï¼ã¨æã£ãã«ããããããã
ãã®æ©è½ã対å¿ãã¦ãããããã³ã«ãFTPã ãã ã£ãããã©FTPãµã¼ããªãã¦ç«ã¦ãã®ã¯ã¡ã³ãã¯ã»ã¼ã
ã¨ããçµç·¯ã®å¯ç£ç©ã®ã¨ã³ããªã§ããã
ã¯ã¦ãªã®ãããªãã¼ã¯ã¼ããªã³ã¯ãRubyã§ä»ä¸ããå®ä¾
hrjn: ã¯ã¦ãªã¨ããã³ãã³å¤§ç¾ç§ã®ãã¼ã¯ã¼ããªã³ã¯ã£ã¦ã©ããã£ã¦ãã®ããªããæ£è¦è¡¨ç¾ã ã¨æ»ãã§ãã¾ãã®ã§ãå°ç¨ã®ãã¼ãµä½ã£ãããã¦ãã®ããªã
ãã³ãã³å¤§ç¾ç§ã§ã¯ããã¼ã¯ã¼ããªã³ã¯å°ç¨ã®Rubyã¢ã¸ã¥ã¼ã«ãæ¸ãã¦ãã¾ãããSENNAãã¨ãããã¼ã¯ã¼ãããã£ããããsennaãã¨ããSENNAãã¨ãã«ãªã³ã¯ããããã¨ããã§ãã¾ãã
Senna 1.1.4 + Ruby 1.8.6ã§ãUTF-8å°ç¨ã§ããã使ããã人ã¯ã©ãã¼ããã¨ããã¤ãã©ããããå æ¸ãªæ¸ãæ¹ãªã®ã§æ°ãã¤ãã¦ãã¨ããããã以ä¸ã®test.rb, wordsym.rb, extconf.rb, sen_np_api.cãã©ããã«æ¾ãããã§
ruby extconf.rb make sudo make install ruby test.rb
çãªæä½ã§åãã¯ãï¼ã ã¨æå¾ ãããããªããªãå ¬éã®ããã«ã³ã¼ããããã£ãããã
ã©ã¤ã»ã³ã¹ã¯Ruby's Licenseã§ã
test.rb
$KCODE = 'u' require 'sen_np_api' require 'wordsym' sym = WordSym.new('test.sym') sym.add('ãªã³ã¯') sym.add('ãªã³ã¯ã®åéº') sym.add('åéº') sym.add('カï¾ï½¯') sym.add('ï¼ï¼µï¼´ï¼¥ï¼«ï¼©') puts sym.add_link_str('muTEki ãªã³ã¯ã®åéº ããªãã¼ã« ã¬ã', 'http://dic.nicovideo.jp/a/', '_blank') sym.close
wordsym.rb
$KCODE = 'u' require 'sen_np_api' require 'uri' require 'cgi' class WordSym def initialize(path) @sym = SennaNP::Sym.open(path) raise NicoDHException, '(å é¨ã¨ã©ã¼)è¨äºåãä¿æããSymãä½æã§ãã¾ããã' unless @sym end def add(word) nword = SennaNP::normalize(word, 0) @sym.add(nword) end def del(word) nword = SennaNP::normalize(word, 0) @sym.del(nword) end def count_array(word_array) word_array.map {|word| nword = SennaNP::normalize(word, 0) @sym.at(nword).nil? ? 0 : 1 } end def prefix_search(word) @sym.prefix_search(word) end def add_link_tag(ret, str, url_prefix, title, target = nil) ret << '<a href="' << url_prefix << # don't escape CGI.escape(title).gsub('+', '%20') << '">' << CGI.escapeHTML(str) << '</a>' end def add_link_str(str, url_prefix = '', target = nil) pos = 0 prestart = preend = -1 ret = [] @sym.scan(str) {|word, start, length| # puts "word: #{word}, start: #{start}, length: #{length}" next if start == prestart or start < preend ret << str[pos...start] pos = start + length prev = add_link_tag(ret, str[start...pos], url_prefix, word, target) prestart = start preend = start + length } return ret.join('') end def getall @sym.getall end def close @sym.close @sym = nil end end
extconf.rb
require 'mkmf' dir_config("senna", `senna-cfg --prefix`.chomp) $LOCAL_LIBS << ' ' + `senna-cfg --libs`.chomp $CFLAGS << ' ' + `senna-cfg --cflags`.chomp if have_header("senna.h") and have_library("senna", "sen_init") create_makefile("sen_np_api") end
sen_np_api.c
#include <ruby.h> #include <senna/senna.h> typedef struct _sen_np { sen_sym *sym; } sen_np; #define KEY_BUF_SIZE 2048 VALUE normalize(VALUE self, VALUE rb_str, VALUE rb_flags) { VALUE r; char *str; long str_len; int flags; int buf_size; char nstrbuf[KEY_BUF_SIZE]; str = rb_str2cstr(rb_str, &str_len); flags = NUM2INT(rb_flags); buf_size = sen_str_normalize(str, (unsigned int)str_len, sen_enc_utf8, flags, nstrbuf, KEY_BUF_SIZE); if (buf_size > KEY_BUF_SIZE) { return Qnil; } r = rb_str_new(nstrbuf, buf_size); return r; } VALUE sym_close(VALUE self) { sen_np *np; Data_Get_Struct(self, sen_np, np); sen_sym_close(np->sym); np->sym = NULL; return Qtrue; } void free_np(sen_np *np) { sen_sym_close(np->sym); np->sym = NULL; } VALUE sym_open(VALUE self, VALUE rb_path) { VALUE obj; sen_np *np; sen_sym *sym; char *path; path = StringValuePtr(rb_path); if (!(sym = sen_sym_open(path))) { if (!(sym = sen_sym_create(path, 0, SEN_INDEX_NORMALIZE, sen_enc_utf8))) { return Qnil; } } obj = Data_Make_Struct(self, sen_np, NULL, free_np, np); np->sym = sym; return obj; } VALUE sym_add(VALUE self, VALUE rb_key) { sen_id sym_id; const char *key; sen_np *np; Data_Get_Struct(self, sen_np, np); key = StringValuePtr(rb_key); if (!(sym_id = sen_sym_get(np->sym, key))) { return Qnil; } return INT2NUM(sym_id); } VALUE sym_at(VALUE self, VALUE rb_key) { sen_id sym_id; const char *key; sen_np *np; Data_Get_Struct(self, sen_np, np); key = StringValuePtr(rb_key); if (!(sym_id = sen_sym_at(np->sym, key))) { return Qnil; } return INT2NUM(sym_id); } VALUE sym_del(VALUE self, VALUE rb_key) { sen_rc rc; const char *key; sen_np *np; Data_Get_Struct(self, sen_np, np); key = StringValuePtr(rb_key); rc = sen_sym_del(np->sym, key); return INT2NUM(rc); } VALUE sym_prefix_search(VALUE self, VALUE rb_key) { sen_set *set; sen_np *np; const char *key; sen_set_cursor *cur; VALUE ret = Qnil; Data_Get_Struct(self, sen_np, np); key = StringValuePtr(rb_key); if ((set = sen_sym_prefix_search(np->sym, key))) { if ((cur = sen_set_cursor_open(set))) { unsigned int set_size; sen_set_info(set, NULL, NULL, &set_size); if ((ret = rb_ary_new2((long)set_size))) { long i; for (i = 0; i < set_size; i++) { VALUE rb_str; sen_id *key_id; char buf[SEN_SYM_MAX_KEY_SIZE]; sen_set_cursor_next(cur, (void **)&key_id, NULL); sen_sym_key(np->sym, *key_id, buf, SEN_SYM_MAX_KEY_SIZE); if ((rb_str = rb_str_new2(buf))) { rb_ary_store(ret, i, rb_str); } } } sen_set_cursor_close(cur); } sen_set_close(set); } return ret; } #define SH_SIZE 32 VALUE sym_scan(VALUE self, VALUE rb_str) { int found; int offset; const char *str; const char *rest; long str_len; sen_np *np; sen_sym_scan_hit sh[SH_SIZE]; char buf[KEY_BUF_SIZE]; Data_Get_Struct(self, sen_np, np); str_len = RSTRING(rb_str)->len; str = StringValuePtr(rb_str); offset = 0; do { int i; if (!(found = sen_sym_scan(np->sym, str, (unsigned int)str_len, sh, SH_SIZE, &rest))) { break; } for (i = 0; i < found; i++) { int key_len; key_len = sen_sym_key(np->sym, sh[i].id, buf, KEY_BUF_SIZE); if (key_len > 0) { VALUE args = rb_ary_new3(3, rb_str_new(buf, key_len - 1), INT2NUM(sh[i].offset + offset), INT2NUM(sh[i].length)); rb_yield(args); } } offset += (rest - str); str_len -= (rest - str); str = rest; } while (rest < (str + str_len)); return Qtrue; } VALUE sym_getall(VALUE self) { VALUE ret; sen_np *np; unsigned int nrec; sen_id id = SEN_SYM_NIL; Data_Get_Struct(self, sen_np, np); if (!sen_sym_info(np->sym, NULL, NULL, NULL, &nrec, NULL)) { if ((ret = rb_ary_new2(nrec))) { int i = 0; while ((id = sen_sym_next(np->sym, id)) != SEN_SYM_NIL) { VALUE rb_str; char buf[SEN_SYM_MAX_KEY_SIZE]; if (sen_sym_key(np->sym, id, buf, SEN_SYM_MAX_KEY_SIZE)) { if ((rb_str = rb_str_new2(buf))) { rb_ary_store(ret, i++, rb_str); } } } return ret; } } return Qnil; } void void_sen_fin(void) { sen_fin(); } void Init_sen_np_api(void) { VALUE rb_cSennaNP; VALUE rb_cSennaNP_Sym; sen_init(); rb_cSennaNP = rb_define_class("SennaNP", rb_cObject); rb_define_singleton_method(rb_cSennaNP, "normalize", normalize, 2); rb_cSennaNP_Sym = rb_define_class_under(rb_cSennaNP, "Sym", rb_cObject); rb_define_singleton_method(rb_cSennaNP_Sym, "open", sym_open, 1); rb_define_method(rb_cSennaNP_Sym, "close", sym_close, 0); rb_define_method(rb_cSennaNP_Sym, "add", sym_add, 1); rb_define_method(rb_cSennaNP_Sym, "at", sym_at, 1); rb_define_method(rb_cSennaNP_Sym, "del", sym_del, 1); rb_define_method(rb_cSennaNP_Sym, "scan", sym_scan, 1); rb_define_method(rb_cSennaNP_Sym, "prefix_search", sym_prefix_search, 1); rb_define_method(rb_cSennaNP_Sym, "getall", sym_getall, 0); atexit(void_sen_fin); }
Web+DB press Vol.50ã«key-valueã¹ãã¢ã®è¨äºãæ¸ãã¾ããï¼
ãã¾ãããªããåç¥ã§ãããWEB+DB press Vol.50ã«ã¦ãkey-valueã¹ãã¢å ¥éã¨ããè¨äºãå·çããã¦ããã ãã¾ããããã£ã»ã¼ãï¼çããããSoftware Design 2009å¹´5æå·ã売ãåãããããã®ã¤ããªã¤ã§ã100åãããè²·ãã¨ããã¨æãã¾ãã
- ä½è : æå±±è²´ç« ,ç¾½çç« æ´,å·å£èä»,éæ¨é,鶴岡ç´ä¹,é·éé åº,森ç°åµ,ä¼è¤ç´ä¹,æ¦è æ¶ç´,ããã¯,é«æå²,æ åå享,ç±³ææ£æ,å°é£¼å¼¾,è§ç°ç´è¡,æ©æ¬æ£å¾³,ã¯ã¾ã¡ã2,ä¹ æ«éè£,Junio C Hamano,ã°ãã£ã©ãã,ãã¾ã ããã,WEB+DB PRESSç·¨éé¨
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2009/04/24
- ã¡ãã£ã¢: 大åæ¬
- è³¼å ¥: 24人 ã¯ãªãã¯: 235å
- ãã®ååãå«ãããã° (95件) ãè¦ã
ã¾ãå·çä¸ã¯æ¯æ¥ãæ»ã«ããããã¼æ»ã«ãããã¨ã¤ã¶ããã¦ããã®ã§ãæ¥æ¬èªããã³ã¼ããããæªããé¨åãªã©ãå¤ãã¨æãã¾ãã第ï¼ç« ã§æ¸ããããã¨ãæ¸ããã®ã§æºè¶³ãã¦ãã¾ãã決ãã¦ããWEB+DB press Vol.50ã§ã¯Gitç¹éãããã£ãã§ãï¼ãã¨ããBlogãçºè¦ãã¦ã¯ä¼ç®ãã¡ã«ãªãæ¯æ¥ãæ®ããã¦ãã¾ãããâ¦
ãã¦ãä¸è¨è¨äºã§ãç´¹ä»ããgroongaã§ãããmemcachedã®ãã¤ããªãããã³ã«ãã»ã¨ãã©å®è£ ãã¦ã¿ã¾ãããcasãå®è£ ãã¦ã¿ãã®ã§ããããã¨ãã¨ã®memcachedã®casãããå æ¸ãªå®è£ ãªã®ã§ããã¾ãå®ç¨æ§ãªãæ°ããã¦ãã¾ãããããcasã¯åé¤ãããæ°ãæºã ã§ãã
memcachedã®ãã¤ããªãããã³ã«ãå®è£ ãã¦ã¿ã¦åãã£ãã®ã§ãããlibmemcachedã«ã¯åæå¤ä»ãã®incr/decrãè¡ãé¢æ°ãç¡ãã£ããã§ãâ¦ã¨ããããã§ãlibmemcachedã«åæå¤ä»ãincr/decrãå®ç¾ããmemcached_increment_with_initial/memcached_decrement_with_initialã¨ããé¢æ°ã追å ãã¦ã¿ã¾ããã
ç¾å¨ãªãªã¼ã¹ããã¦ããlibmemcached 0.29ã§ã¯ã
ä¸è¨é¢æ°ã«ã¦ãã¤ããªãããã³ã«ãç¨ããåæå¤ä»ã®incr/decrãåºæ¥ãããã«ãªã£ã¦ãã¾ãã
ãã²groongaã¨ä½µãã¦è©¦ãã¦ã¿ã¦ãã ããã
ãã³ãã³å¤§ç¾ç§ã¢ã©ã¼ãã§ã®ã¡ãã»ã¼ã¸ãã¥ã¼è¨è¨ã«ã¤ãã¦ã
ã風åã§ã¡ã¢ã
è¦ä»¶
ãã³ãã³å¤§ç¾ç§ã§èµ·ãã£ãã¤ãã³ãã®ãã¡ã
ã¦ã¼ã¶ãæå®ãããã®ã ããéç¥ããã¯ã©ã¤ã¢ã³ãã¢ããªã±ã¼ã·ã§ã³ãä½æãããã
ãªãããã¹ã¦ã®ã¤ãã³ãã¯æ¼ããªãã¦ã¼ã¶ã«ä¼ãããã¨ã¨ãã
ãã¹ã¦ã®ã¦ã¼ã¶ã«éãããæ
å ±ã¯åä¸ã¨ããã
ã¤ãã³ããèµ·ãã£ããç´å¾ãã«ã¤ãã³ããéç¥ããããã¨ãæã¾ããã
è¨ç®è² è·ã»ãããã¯ã¼ã¯è² è·ã軽ãæ¹æ³ãããã
ãµã¼ãå´ã¯Rubyãã¯ã©ã¤ã¢ã³ãå´ã¯Pythonãç¨ããã
ãã¦ãã©ã®ãããªéä¿¡æ¹å¼ã§ãã¼ã¿ãããã¨ããã¹ããã
RSS/ATOM
ã¾ãèããããã®ããRSSãATOMãªã©ã®æ¡ç¨ãã¯ã©ã¤ã¢ã³ãå´ã§ãã©ã¤ãã©ãªãªã©ããã£ã¦ãæ軽ã
- feedã®ã¨ã³ããªæ°ãåºå®ã ã¨ãpollingã®éã«ãã¹ã¦ã®ã¤ãã³ããæµãã¦ãã¾ãæããããã
- ãã£ã¦ãfeedã®ã¨ã³ããªæ°ã¯å¯å¤ã¨ããä¸å®ã®æéå ã«èµ·ãã£ãã¤ãã³ããå ¨ã¦è¨é²ãããã¨ã¨ããã
- ä¸å®ã®æéå ã«èµ·ãã£ãã¤ãã³ããå ¨ã¦è¨é²ããã¨ãfeedå ã®ã¨ã³ããªæ°ãå¢ããã
- ããããããã¡ã¤ã«ãµã¤ãºã大ãããªã£ã¦ãããã¯ã¼ã¯è² è·ããããã
- æ¼ãããªããæ¹æ³ã¨ãã¦ããã¨ãã°Twitterã®public timelineåå¾APIã®since_idãã©ã¡ã¼ã¿ã®ããã«ãåå¾ãããæ å ±ã®ä½ç½®ãã¯ã©ã¤ã¢ã³ãããä¸ãã¦ãããæ¹æ³ãããã
- ã§ããTwitterã¯ãã®ãã©ã¡ã¼ã¿ãç¡è¦ããããã«ãªã£ããã¹ã±ã¼ã«ããªããã ããããã£ãã·ã¥ããã«ããããã
- ãããããRSS/ATOMã¯blogã®ã¨ã³ããªãªã©ã®æ´æ°é »åº¦ãå°ãªããã®åããããï¼
- ã¡ãªããã¨ãã¦ã¯ãstaticãªãã¡ã¤ã«ã«ã§ããã£ã¦ã¨ããããªã
XMPP PubSub
- ããã¼ããã®è³æã«ä¸ã¨åããããªãã¨æ¸ãã¦ãã£ããåå¼·ä¸è¶³ãBeyond REST? Building Data Services with XMPP PubSub: O'Reilly Open Source Convention: OSCON, July 21 - 25, 2008 in Portland, Oregon
- ã¹ã©ã¤ãä¸ã®ãPolling sucks.ãæ°æã¡ã¯ãããããã
- XMPP PubSubã¯ãä¸è¨ã®ãããªç®çã®ããã«è¨è¨ãããããã ãå é¨ã¯xmlã§ãå®ä½ã¡ãã»ã¼ã¸ã®xmlã¯atomæ¨å¥¨ãã§ãã©ããªxmlã§ãå ¥ãã¦ããã
- ãã¶ããatomã ã¨ã©ã¤ãã©ãªã®æ¯æ´ãåãããã¨ãã§ãã¦æ¥½ããã ã
- senderã®ã³ã¼ããã¤ãã³ãã«ã¼ãããããã
while true event = queue.get_next_event() #loop Subscriptions.find_by_node(:all, event.pubsub_nodes ).each do |subscriber| #send new message subscriber.send_xmpp_message(event.to_xmpp) end end
- ã¹ã±ã¼ã«ãããã©ããè¦æ¤è¨¼ããã¨ã¯å®è£ ã®å å®åº¦ã
AMQP
- AMQPã§ãåæ§ã®ãã¨ã¯ã§ããã¯ãã
- ã ãã ã話ãã§ãããªã£ã¦ãããâ¦
- AS3ã©ã¤ãã©ãªãããï¼ããã¯ä¾¿å©ã ãªã¼ã
- ãã¯ã¯ãã©ãããããããPolling sucks!ãBay Area Functional Programmers の RabbitMQ について。 - Twisted Mind
- ä¸è¨ã¹ã©ã¤ãã§ã®XMPPã¨AMQPã®æ¯è¼è¡¨ãACKã¯ä»åã®ç¨éã§ã¯ãããªããbinaryã®ã»ããããããªã¼ãAddr/Authããããªãã
- ãã£ã±è¦æ¤è¨¼
- AMQP + XMPPã¨ããé¸æè¢ãããããããRabbitMQã«ejabberdãåãè¾¼ãã¨ããªãã¨ãã
çµè«
XMPPã¨AMQPã§å®éã«ãµã¼ãã»ã¯ã©ã¤ã¢ã³ãæ¸ãã¦ã¿ããã¼â¦
話ãµããã¿ããã ããªã
AMQPã¯ã¡ãã£ã¨ãªã¼ãã¼ã¹ããã¯æããã¦ããã