èªå·±ç´¹ä» name: åç° å人 hatena : t-wada twitter : t_wada github : twada ã¬ã¬ã·ã¼ã³ã¼ãæ¹åã³ã³ãµã«ãã£ã³ã°ãå¤ãã§ã
èªå·±ç´¹ä» name: åç° å人 hatena : t-wada twitter : t_wada github : twada ã¬ã¬ã·ã¼ã³ã¼ãæ¹åã³ã³ãµã«ãã£ã³ã°ãå¤ãã§ã
ã¯ããã« ä»ã®äººãæ¸ããã³ã¼ããèªãã§ããã¨ãã«æã æ°ã«ãªãã®ããè±èªã®ééãã§ãã ç¹ã«åè©ãåè©ã形容è©ã®ä½¿ãåããééã£ã¦ãããããã¨ãããªãéåæãæãã¾ãã ããã§ä»åã¯ã¢ãã«ï¼ï¼ã¯ã©ã¹ï¼ãã¡ã½ããã«ååãä»ããã¨ãã®åºæ¬çãªååãã¾ã¨ãã¦ã¿ã¾ãã ã¾ããè±ææ³çã«æ£ããåè©ãé¸ã¹ãããã«ãªãããã®ç¿æ £ã«ã¤ãã¦ãæå¾ã«èª¬æãã¾ãã æ³å®ããè¨èª/ãã¬ã¼ã ã¯ã¼ã¯ ãã®è¨äºã®èª¬æã§ã¯Ruby/Ruby on Railsãæ³å®ãã¦ãã¾ãã ãã ããåºæ¬çãªèãæ¹ã¯ä»ã®è¨èªã§ãåãããã«ä½¿ããã¯ãã§ãã ã¢ãã«ã®ååã¯åè©ã«ãã ä¾: ãæ¯æãæ å ±ãã表ãã¢ãã«ãä½ãããå ´å à Pay â Payment ãæ¯æã = payããããããã§ã¢ãã«ãä½ã£ã¦ã¯ããã¾ããï¼ payã¯åè©ã§ãpayã®åè©å½¢ãpaymentã§ãã Payã¢ãã«ã§ã¯ãªããPaymentã¢ãã«ãä½ãã¾ãããã ä¾:
å¹´ã ãã¦ã§ãã¢ããªãéçºããã¨ãã«ãã¹ããæ¸ããã¨ããæ©éãå¼·ããªã£ã¦ããã¨æããã ããã¯ãéçºãã©ãã¤ã ã®æçãæå³ãããã¨ã§ãããåºæ¬çã«è¯ããã¨ã ã¨æã£ã¦ããã ãããåæã«ããã¹ãåç主義ãã¨ã§ããããããªæ¥µç«¯ãªèãæ¹ãã§ã¦ãã¦ãã¦ãéçºã¹ã¿ã¤ã«ãããã£ã¦æ©æ¦ãèµ·ãã£ã¦ããã ããã¦ããã®è°è«ã¯ããã¹ãã¯ããªããããã£ãã»ããè¯ããããã¨ãããå¾®è¦çã«ã¯èª°ãåè«ã§ããªããã¸ãã¯ã«æ¼ãéãããã¡ã§ããå°çã¸ã®éã¯åæã§èè£ ããã¦ãããã®å ¸åçãªç¾è±¡ã«è¦ãã¦ä»æ¹ããªãã ãã¹ããæ¸ããªããã¨ããã¨èæ¯ã«ã©ããªæ·±ãèãããã£ã¦ãç´ äººãããèãããéã«ãã¹ããæ¸ãã¨ããã ãã§è¯ãããã°ã©ãã¼ã«è¦ãããã¨ããé対称ãªå粧å¹æããããã½ããã¦ã§ã¢ã»ã³ã³ãµã«ãã£ã³ã°ä¼ç¤¾ããã¹ã好ããªã®ã¯æ±ºãã¦å¶ç¶ã§ã¯ãªãã ã½ããã¦ã§ã¢ã¨ããã®ã¯ãçµå±ã®ã¨ãããåãã¦ãã³ãã使ããã¦ãã³ãã§ããã æå¾ ããã
ããã¹ããééã£ã¦ããã©ããããã ã èªåãã¹ãã®è©±ãããã¨ããè¨ããã¾ãããã¹ããééã£ã¦ããããããªããããªãããæåãã¹ãã§ããã°ã注ææ·±ãç®ã§ç¢ºèªãã¦ããã°ééãã«æ°ã¥ããã¨è¨ã主張ã§ãã ãç®ã§ç¢ºèªãã¦ããã°æ°ã¥ãããã®ã¯ééãã§ã¯ããã¾ãããå¿ ãæ°ä»ããããã§ã¯ããã¾ããããååãªç¥èãæã£ã人ããååãªéä¸åã¨è²¬ä»»æããã£ã¦ã¨ããã³ã¹ã確èªããã°ã誤ãã«æ°ä»ããå¯è½æ§ã¯é«ãã¨æãã¾ãã å質(主ã«æ©è½æ§)ãç®çã¨ããèªåãã¹ãã§ãããããè¡ãå¿ è¦ãããã¾ããããããã¹ãã³ã¼ãã®ã¬ãã¥ã¼ã§ãã æåãã¹ãã®å ´åããã¹ãå®æ½åã«æé ã確èªé ç®ã®ã¬ãã¥ã¼ãå®æ½ä¸ã®ç¢ºèªãå®æ½å¾ã®ã¨ããã³ã¹ç¢ºèªã¨ã人ã確èªããã¿ã¤ãã³ã°*1ãä¸ã«æããã¾ãã ããã«å¯¾ãèªåãã¹ãã®å ´åããã¹ããæ¸ãããæã®ã¿ãå®è¡ä¸ã¯å¿è«ãå®è¡çµæã®ç¢ºèªã«æ³¨æã¯ããã¾ããããã æåã失æãã ããªã®ã§ããªãã°ããã¹ãã³
The spirit of TDD - Oct 22, 2010 at Cybozu Developers Conference
ããã·ã¥ã¿ã° #俺ãè¦ãã¯ã½ã³ã¼ãé¸æ権 ãè³ãã£ã¦ãã¦é¢ç½ãã£ãã®ã§ã¾ã¨ãã¦ã¿ã¾ããã ãã¡ãã«ç°¡åãªè£è¶³èª¬æãç¨æãã¾ããããããããã°ã©ãã http://elephnote.com/blog/archives/874 æ°æã¡ã®ããããã®ããå ¨ãæå³ä¸æãªãã®ã¾ã§ã ç¶ããèªã
Linuxã«ã¼ãã«ã®ã¡ã¼ãªã³ã°ãªã¹ãã¯ã常ã«ç½µè©éè¨ã«æºã¡æº¢ãã¦ããããããããã®ã¯è¾ãã¦å¤§äººã«ãªããã¨ãã主張ãSarah Sharp[1]ã«ãã£ã¦ãªãããããªããªãé¢ç½ãã ãã£ããã¯ãããã£ã¦æ¥å¸¸çãªç½µåæ··ããã®è°è«ã«ãSarah Sharpã横æ§ãå ¥ããã¨ããããå§ã¾ã£ãã LKML: Sarah Sharp: Re: [ 00/19] 3.10.1-stable review On Fri, 12 Jul 2013 18:17:08 +0200, Ingo Molnar <mingo@kernel.org> wrote: * Linus Torvalds <torvalds@linux-foundation.org> wrote: On Fri, Jul 12, 2013 at 8:47 AM, Steven Rostedt <rostedt@goodmis.org> wrote
åä¾ã®ããããã§ããã ãææããã¦ææãæãããã¨ã ãã¯é·ãã¦ããå±±æ¬ã§ãã ä»åã¯ãC/C++ ã§ä½ã£ãããã°ã©ã ãéç¨ä¸ã«ã¯ã©ãã·ã¥ããã¨ãã®ãããã°æ¹æ³ã®ã話ãã§ãã éçºä¸ã®ãããã°ã¯ gdb ãªã©ã§ã½ã¼ã¹è¿½ããªãããããã°ã§ãã¾ãããéç¨ä¸ã§ã㨠strip ãã¦ãããæé©åãã¦ããããã¦ãããã°ãé£ãããªãã¾ãã ããããããããªãã¯ã©ãã·ã¥ããã¨æ å ±ãæ®ããã«å°ã£ã¦ãã¾ãã¾ãããããªã¨ãã©ããããã Step1. ã¹ã¿ãã¯ãã¬ã¼ã¹ãåºåãã ãããªé¢æ°ãç¨æãã¾ããããLinux 以å¤ã®äººã¯ãããªãã«å®è£ ãã¦ãã ããã #include <execinfo.h> #include <unistd.h> void dump_stack() { void* bt[100]; int n = backtrace(bt, 100); backtrace_symbols_fd(bt,
ã¨ã³ã¸ãã¢æ¡ç¨ããã¼ãã«ãã¦3åãããã®ã·ãªã¼ãºã§è¨äºãæ¸ããã¨ã«ãªããä»åã¯ãã®ç¬¬1åã ã¨ã³ã¸ãã¢çµé¨ã®ãªã人äºã®äººããããã¡ãªãã¨ã³ã¸ãã¢ã«é¦¬é¹¿ã«ãããæ±äººãä½ã£ã¦ãã¾ããªãããã®ã¢ããã¤ã¹ãã¤ãã¤ãã¨æ¸ãã¦ããã¾ãã ãã¦ãã¿ã¤ãã«ã«ãããããªãå¿åè³æ ¼ï¼ï¼ªï¼¡ï¼¶ï¼¡æ¥åçµé¨ï¼å¹´ä»¥ä¸ãã¨ãã£ãæ±äººç¥¨ã¯ã¨ã³ã¸ãã¢ã®æ¹ãªãä¸åº¦ã¯ç®ã«ãããã¨ãããã¨æãã¾ãã ãã®æã®æ±äººãè¦ããã³ã«ããæ¬æ°ã§æ¡ç¨ããæ°ããããã ãããï¼ãã¨ä»äººäºãªããå¿é ãã¦ãã¾ãããã§ãããããããæ¸ããæ¡ç¨æ å½è ã¯çé¢ç®ã«èªåã®ä»äºãããªãã¦ããã¤ãããªã®ã§ãããã ãããã¾ã¨ããªã¨ã³ã¸ãã¢ãè¦ãã°ããã®çãæç« ãããã®ä¼ç¤¾ã®ã¤ã±ã¦ãªãå æ¸ãæãåãããã®ä¼ç¤¾ãäºåã«ç¥ã£ã¦ãã¦å¥½å°è±¡ãæã£ã¦ããã¨ãã§ãªããã°ãå³åº§ã«ãã¼ã¸ãéãã¦èªã¿é£ã°ããã¨è«ãåãã§ãã ããã¯ãªããï¼ ãã¡ãªç¹ã®ã¾ã第ä¸ã¯ãããã®ä¼ç¤¾ãæè¡
å æ¥llvm 3.3ããªãªã¼ã¹ããã¾ãããaarch64(arm 64bit)ã®ã³ã¼ããçæã§ããããã«ãªã£ãã¨ãããã¨ãªã®ã§ãã½ã¼ã¹ãããã«ããã¦éãã§ããã®ã§ãããããããªãåãæé©åãããã³ã¼ããçæããã¦ããã®ã«æ°ãã¤ãã¾ãããaarch64ã ã¨ä»ã¯å®è¡ãã¦ç¢ºèªã§ããç°å¢ãæå ã«ç¡ãã®ã§ãæ®éã®armv7-aã§åããã¨ã試ãã¾ããã ããã§ä½¿ã£ãã³ã¼ãã¨ãã®çµæã¯gistã«è²¼ãã¾ããã https://gist.github.com/tetsu-koba/5835724 ã½ã¼ã¹ã³ã¼ã int sum(int x) { int sum = 0; int i; for (i = 1; i <= x; i++) { sum += i; } return sum; } 1ããnã¾ã§ã®ç·åãæ±ããé¢æ°ã§ãã1ãã100ã¾ã§ã®ç·åã5050ãªã®ã¯ã¬ã¦ã¹å°å¹´ã®é¸è©±ã§æåã§ããã gcc 4.8.
æ¦è¦ QThread ã¯ã©ã¹ã使ãã¨ãå¦çããã«ãã¹ã¬ããåã§ããã é·æéãè¦ããå¦çãè¡ãå ´åã«ãGUIãæ¢ããªããã«ãã¹ã¬ããã¯å¹æçã ã ã ããã¯ã¾ãããããã¨ãããã®ã§ãè¦æ³¨æã åºæ¬äºé Qt ã¯ã¤ãã³ãããªãã³ãªãã¬ã¼ã ã¯ã¼ã¯ exec() ã«ããã¤ãã³ãã«ã¼ããéå§ãã ã¤ãã³ãã¯ã¤ãã³ãã«ã¼ãã«ããå¦çãããé©åãªãã³ãã©ãã³ã¼ã«ããã ã¤ãã³ããã£ã¹ãããã¯ãã³ãã©ã®å¦çãçµäºãã¦ããè¡ãããã®ã§ãå¦çãé·å¼ãã¨ãã£ã¹ãããã»ãã³ãã©ã®å¦çãé 延ãã ââââââââââââ â ã¤ãã³ããã¥ã¼ã» ââââââââââââââââââââââââââââââââââ â ãã£ã¹ããã㣠ââ QObject::event() ââ keyPressEvent() ââ paintEvent() â ââââââ¬ââââââââââââ¬âââââââââââ¬âââââââ
ããã¹ããã UML ãçæãã PlantUML ã«ã¤ãã¦ã®è§£èª¬è¨äºãæ¸ãã¦ã¿ã¾ããã PlantUML ã®ä½¿ãæ¹ (ä»å) ã·ã¼ã±ã³ã¹å³ ã¯ã©ã¹å³ ãªãã¸ã§ã¯ãå³ ããã±ã¼ã¸å³ ã¦ã¼ã¹ã±ã¼ã¹å³ ã¢ã¯ãã£ããã£å³ ç¶æ é·ç§»(ã¹ãã¼ããã·ã³)å³ ã³ã³ãã¼ãã³ãå³ é ç½®å³ skinparam PlantUML å®è¡ç¨ã®ããããã¡ã¤ã« ä»å㯠PlantUML ã®ä½¿ãæ¹ã®èª¬æã§ãã PlantUML ã¨ã¯ ã¤ã³ã¹ãã¼ã« æ¥æ¬èª ã³ãã³ãã©ã¤ã³ Doxygen ã¨ã®é£æº Doxygen é£æºç¨ã¹ã¯ãªãã ãã®ä»ã®ãã¼ã«ã¨ã®é£æº ãªã³ã©ã¤ã³ã㢠PlantUML ã¨ã¯ æè¿ãããã°ã©ã ã®è¨è¨æ¸ãªã©ã§ UML ã使ãã®ã浸éãã¦ãã¦ãã¾ããã ãã® UML ãæ¸ãã®ã¯ããã¨é¢åã§ãã CASE ãã¼ã«, Doxygen ãªã©ã§ã¯ãã¯ã©ã¹å³ãèªåçæãã¦ããã¾ããã ã¦ã¼ã¹ã±ã¼ã¹å³ãã·ã¼ã±ã³ã¹å³ã¯èªå
ç§ã¯ãã¬ã¬ã·ã¼ã³ã¼ãæ¹åã¬ã¤ãããèªãã ãã¨ããªãã®ã§ãããä¸éçã«ããã¹ãã³ã¼ãããªãã³ã¼ããæè¡çè² åµãã¨ããèªèãåºã¾ã£ã¦ããããã§ãã ã¬ã¬ã·ã¼ã³ã¼ãæ¹åã¬ã¤ããæ¹å¤ããã¤ããã¯å ¨ãããã¾ããããããã«ãã®æ¬ã®ä¸ã§ä½¿ããã¦ãããã¬ã¬ã·ã¼ã³ã¼ããã®å®ç¾©ã«ä¸è´ããç©ã ããæè¡çè² åµã ã¨ããèãã«ã¯å対ãã¾ãã æè¡çè² åµã¨ã¯ãå°æ¥å¿ è¦ã¨ãããã¡ã³ããã³ã¹ã³ã¹ãã®æå¾ å¤ã ã¨æãã¾ããå ¨ã¦ã®ã³ã¼ãã¯ãã¡ã³ããã³ã¹ãæ¾æ£ããã¾ã§ã¯æè¡çè² åµã§ããä¸æ¹ãã¡ã³ããã³ã¹ã³ã¹ããå·®ãå¼ããä¸ã§ãã®ã³ã¼ããå°æ¥çã¿åºãå©çã®æå¾ å¤ãããã®ã³ã¼ãã®è³ç£ä¾¡å¤ã ã¨æãã¾ãããã¹ãã³ã¼ãããªãã³ã¼ãã§ããå©çãåºããªãæ£ã®è³ç£ã«ãªãã¾ãã ãã¡ãããè³ç£ä¾¡å¤ããã大ããããããã«ãæè¡çè² åµãæ¸ãããã¨ã¯è¯ããã¨ã§ããæè¡çè² åµãä¸ããï¼ã¡ã³ããã³ã¹ã³ã¹ããä¸ãããã¨ã§ããã¹ãã¯ãã®æåãªæ段ã®ä¸ã¤ã§ããä»ã«
ããã°ã©ãã¼ã¯çã常ã«ç§å¯ãåãæ±ãã¦ããã ããã¯ééããªãã åºæ¬çã«ã¯èª°ã«ã話ããªããã ï¼å®¶æãå人ãªã©ããã°ã©ã ãç¥ã£ã¦ããªã人éã«è©±ãã¦ãåãããªããã¨ããäºãããï¼ ããã°ã©ãã¼å士ã®é£²ã¿ã®å¸ãªã©ã§ãéå»ã®ç¬ã話ã¨ãã¦é ã®è´ã«ãªãäºã¯ããã ç§å¯ãåã®å¾åã«ã¯å¹¾ã¤ãã®ãã¿ã¼ã³ãããã 1) ä»æ§ãããã¾ããªå ´åã®é©å½ãªã³ã¼ãã£ã³ã° ä»æ§ãããã¾ããªæ©è½ãå®è£ ããå ´åãæ³å®ãã¦ãããã®ãããããã°ã©ã éãè¨å¤§ã«ãªãäºã¯ããããã ã¾ããç´°ãããã¿ã¼ã³ãæ³å®å¤ã®ã±ã¼ã¹ã«å¯¾ããã©ã®ããã«ããã°ã©ã ç対å¦ãè¡ãã¹ããï¼ æ´ãåºãã¦ããã¨ããªããªãå ´åãããã ä»®ã«äºåã«æ´ãåºãã¦ããã¨ãã¦ãã ãã±ã¼ã¹èªä½ã¯æ´ãåºãã¦ããããå ·ä½çã«ã©ã®ãããªã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ãã¹ããï¼ã ãªã©ã¨ãã£ãããã®å ãã¾ãããã¾ãã«ãªã£ã¦ããå ´åãããã ãã®ãããªå ´åãæ¬æ¥ã§ããã°æ±ºè£æ¨©ã®ãã人éã«
OpenTagMemoãå¶ä½ããã«å½ãã£ã¦å©ç¨ããQTabWidgetã®æ©è½ã®ä½¿ãæ¹ãç°¡åã«ã¾ã¨ãã¦è¦ãã QTabWidgetãwidgetã®ã²ã¨ã¤ã ããé常ã®QLabeãªã©ã®ããã«Layoutã«ç»é²ã§ãããã¨ãããã¨ã§QTabWidgetã使ãå ´åã¯QWidgetãªã©ã®ãµãã¯ã©ã¹å ã«ã¡ã³ãã¨ãã¦å®£è¨ãã¦ãã£ã¦ã³ã³ã¹ãã©ã¯ã¿ã§åæåããã åæåã¯æ¬¡ã®ãããªæãtab = new QTabWidget();ãããªæãã§ç¹ã«å¼æ°ãªã©ã¯ãããªããQTabWidgetã®ãã¤ã³ã¿å¤æ°ã®tabãåæåã§ããã次ã«ããã«Widgetãç»é²ããããä¾ãã°ç°¡åãªä¾ã¨ãã¦ï¼ã¤ã®ç°ãªãQLabelãç»é²ããlabela = new QLabel(tr("tab 1")); labelb = new QLabel(tr("tab 2"));//ãããªå ·åã«ï¼ã¤ã¨ãã³ã³ã¹ãã©ã¯ã¿å ã§åæåããã¨ã㦠tab->
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}