![](https://habrastorage.org/files/f02/1d8/a57/f021d8a57e6149efb7cce1229cde73c9.jpg)
ä»æ¥ã¯ãªãã£ãŒãã»ã¹ããŒã«ãã³ã®ã¢ã€ãã¢ã®ãã¹ãŠã®ãã¡ã³ã«ãšã£ãŠç¹å¥ãªæ¥ã§ãã 1983幎以æ¥ããã®ç·ã¯ããªãŒãœãããŠã§ã¢éåã®äž»èŠãªã€ããªãã®ãŒå®¶ã§ãã ãããŠä»æ¥ã¯ããã®åãèªç±ã®10åšå¹Žèšå¿µæ¥ã§ããèšå¿µæ¥ãšãªããŸãã
ããªãŒãœãããŠã§ã¢ã®åºæºã¯ãåºç¯ãªè³æ¬äž»çŸ©ã®æ¡ä»¶äžã§ã¯ããªãã¯ã€ã«ãã«èŠãããšããäºå®ã«ãããããããããã¯GNU / LinuxãApache WebãµãŒããŒãWikipediaãå®è¡ããMediaWikiãšã³ãžã³ãªã©ã®æåãªãããžã§ã¯ãã®åºçŸãšæåããéçºã劚ããŸããã§ããã ããã¯ã»ãã®äžéšã§ãããäžè¬çã«ãç¡æã§é åžãããããã°ã©ã ã¯ç¡æ°ã«ãããŸããã ç§èªèº«ã¯éå»ã«ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®ç±çãªãµããŒã¿ãŒã§ãããç¹ã«ãããã¯ãã¹ãŠMandrake Linuxã§å§ãŸããArch LinuxãšAwesomeã¿ã€ã«ãŠã£ã³ããŠãããŒãžã£ãŒã®æ§æã®ç¡å¶éã®ä»äžãã§çµãããŸããã åœæã圌ã¯å人ã®äœäººãããã®å®æã«æ¹å®ãããLinuxã䞡芪ã®ã©ãããããã«çœ®ããŸããã æãã¯åãŸããUbuntuã®æ°ããããŒãžã§ã³ã®åŸãã«åº§ã£ãŠãå®å¿ããŸããã :)
ããªãŒãœãããŠã§ã¢ã®åãã¯ãŠããŒã¯ãªçŸè±¡ã«ãªããŸããã ã³ãã¥ããã£ãäœæããã¢ããªã±ãŒã·ã§ã³ãæ¯æ¥äœæããã³æ¹åããäžçäžã®å€æ°ã®ããã°ã©ããŒãéããŸãã å®ç§ã«ç£šãããããæ°ããæ©äŒãäžããŸãããã ãããŠã圌ãã®ä»äºãã€ãã·ã¢ãããããã³ç¡é¢å¿ãªã¢ãããŒãã®ãããã§ãä»æ¥ãç§ãã¡ã¯å€ãã®ã¢ããªã±ãŒã·ã§ã³ãããããã®åæ¥çãªã¯ããŒãºãã®å¯Ÿå¿ç©ãããæªããªããå€ãã®å Žåããè¯ãæ©èœãããŠããŸãã ãããŠããããã®èœåã¯ãã°ãã°ããããäžåããŸãã
Mail.Ru Groupã«ã¯ãããªãŒãœãããŠã§ã¢ã®äœæãšæ¹åã«é¢äžããå€ãã®ããã°ã©ããããŸãã ç§ãã¡ã®ããã°ã®æåŸã®æçš¿ã§ãAlexander Emelin ã¯åœŒã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãCentrifugeã«ã€ããŠè©±ãããŸãã ã äŒæ¥ã«ç¹å¥ã«ãç§ãã¡ã¯ä»ã®åŸæ¥å¡ã«ãSTRã圌ãã®ä»äºã§ã©ã®ããã«åœ¹ç«ã£ãŠãããããããŠåœŒãã®ä»äºã®äžéšã«ã€ããŠè©±ãããããã«é Œã¿ãŸããã
![](https://habrastorage.org/files/c38/212/e27/c38212e27bd54340997101610ae1ed4a.png)
ç§ã¯ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ããã£ãšäœ¿ã£ãŠããã®ã§ããä»äºã§å©ãããããã¯ç¶æ³ã«åãããç§ã¯ããã«äœãã§ãããšèšããŸãã ç§èªèº«ã¯ãã¯ãã¹ãã©ãããã©ãŒã ãããã·ãµãŒããŒ3proxyã®ãããžã§ã¯ããéçºããŠããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ãã©ãã£ãã¯ã®ç®¡çãã€ãŸããããŸããŸãªåºæºãšã¢ããªã±ãŒã·ã§ã³ãããã³ã«ã«åŸã£ãŠãã©ãã£ãã¯ãèæ ®ãå¶éããã£ã«ã¿ãªã³ã°ããªãã€ã¬ã¯ãã§ãããããã·ãµãŒããŒã§ãã FreeBSDãNetBSDãFedoraãGentooãAltLinuxã®ããŒãã«å«ãŸããŠããŸãã FreeRADIUSãããžã§ã¯ãã«é·ãéåãçµãã§ããŸããããPostfixãSendmailãCourier-IMAPãããã³ãã®ä»ã®æåãªãããžã§ã¯ãã®ãœãŒã¹ã³ãŒãç£æ»ãšåå¥ã®ããããè¡ããŸããã
![](https://habrastorage.org/files/d46/364/489/d46364489b334c35aa58062dab14bb4c.jpg)
æ¯æ¥ç§ã¯ä»äºã§ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã䜿çšããŠããŸãã ã¯ããäžè¬çã«ããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã¹ãŠå転ããŠããŸããããããªãã§ã¯ã©ãã§ããããïŒ ãããŠãç§ãasmCryptoãæã£ãŠãããããžã§ã¯ã-ãã©ãŠã¶çšã®æå·åãããã¯åæ§ã®ã©ã€ãã©ãªãããæ°åéãåäœãããã§ã«å€§èŠæš¡ãªå®è£ ããããŸãããå°ãæ¹è¯ãããšãW3C Web Crypto APIæšæºãå®è£ ããããšãããããŸãã
![](https://habrastorage.org/files/72a/53a/c2d/72a53ac2ddf54061bdf1036194a412bb.png)
ãªãŒãã³ãœãŒã¹ãç§ãã¡ã®ãã¹ãŠã§ãã ã·ã¹ãã ã®å€ãã®å Žæã§ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã䜿çšããŠããŸãã ããŒã¿åŠçããã³èŠèŠåã·ã¹ãã ããå§ãŸããç¹å®ã®ã©ã€ãã©ãªã§çµãããŸãã ç§èªèº«ã¯ãã°ããŒãã«ãªååãšããçºæ³ã®æ¯æè ã§ããæåããã¢ã€ãã¢ãšå®è£ ã¯ã匷迫çãªããŒã±ãã£ã³ã°ã§ã¯ãªãã瀟äŒãžã®æçšæ§ã®ããã«åºãæ®åããããšãã§ããŸãã äžæ¹ããªãŒãã³ãœãŒã¹ã®æ¯æŽã®äžã§éçºããããœãããŠã§ã¢ãããžã§ã¯ãã¯éåžžã«ç²ã匷ããã³ãã¥ããã£ãšããžãã¹ã®äž¡æ¹ã«ãšã£ãŠå€§ããªãã©ã¹ã«ãªãããšã¯ééããããŸããã ãããžã§ã¯ããæ¬åœã«èå³æ·±ãå Žåã¯ãã³ãã¥ããã£ãçºçããŸããã³ãã¥ããã£ã§ã¯ãå¿ èŠã«å¿ããŠãæ°ãããªãŒããŒãç»å Žãããããããžã§ã¯ãããäºç®ããç«ãŠãŠãæ°ããã¢ã€ãã¢ããã¹ããŸãã¯éçºã§ããŸãã
ãªãŒãã³ãœãŒã¹ãã³ãŒãã䜿çšããèœåã«å°ããªå¶éã課ãããšã¯éåžžã«éèŠã§ãã ãªãŒãã³ãœãŒã¹ã®ææã䜿ãå§ããŠãããªãã¯ãã§ã«ã³ãã¥ããã£ã®äžå¡ãšãªããæœåšçãªè²¢ç®ãããŸãã ããããå¥ã®ããšã¯ãããªããã¢ã¯ãã£ããªåå è ã«ãªããšãã§ãã ãããŠããããžã§ã¯ãã®éçºã«å€ãã®æéãšå人çãªæéãè²»ããå¿ èŠã¯ãããŸãããééãããããžã§ã¯ãã®çæã®ãã±ãããéå§ããã ãã§éå§ã§ããŸãã
äœæ¥ã«å¿ èŠãªå Žåã¯ãèªåã§ãœãŒã¹ã³ãŒããææ¡ããŠããããã®äœæ¥ããããžã§ã¯ãã«éä¿¡ããŠãã ããã 人ã ã¯ããªãã«æè¬ããããã°ã©ãã³ã°ã®ã¹ãã«ãåäžããŸããã ããã«ãéçšäž»ã人æ°ã®ãããœãŒã¹ã³ãŒããã¹ãã£ã³ã°ãµãŒãã¹ã®ãããã¡ã€ã«ãèŠæ±ãå§ããŠããããšã¯æ³šç®ã«å€ããŸãããŸããå å®ãªãããã¡ã€ã«ãéžæããããšã§ã奜ã¿ã«åãããŠéžæã§ããŸãã ãããã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ããäžå¿ã«ããžãã¹ãçµç¹ããŠãããããããŸããã ãšããã§ãã¢ã¯ã·ã§ã³ã®å·šå€§ãªãã£ãŒã«ãããããŸãã ååãªãªã¯ãšã¹ããçšæããŠãã ããã
ç§ã¯JavaScriptããã°ã©ããªã®ã§ãã»ãŒæ¯æ¥ãå€ãã®ãªãŒãã³ãœãŒã¹ã¢ãžã¥ãŒã«ãå«ãnpmããã±ãŒãžãããŒãžã£ãŒã䜿çšããŠããŸãã ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã¯ãæ¯æ¥ã®ä»äºã«åœ¹ç«ã€ãšèšããŸãã Gruntã䜿çšããŠãããžã§ã¯ããåéãã UglifyJSã䜿çšããŠjsãã¡ã€ã«ãçž®å°ãã ã¹ã¿ã€ã©ã¹ã§nibãšçµã¿åãããŠã¹ã¿ã€ã«ãèšè¿°ããŸãã äžèšã«å ããŠãMail.Ru Groupã§åãçµãã§ããçŸåšã®ãããžã§ã¯ãã¯ã Backbone ã jQuery ã Lo-Dash ã LMD ã Fest ã FileAPIãªã©ã®ãªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ã«åºã¥ããŠããŸãã
ç§ã®npm-piggyãã³ã¯ã«ã¯ããªãŒãã³ãœãŒã¹ã¢ãžã¥ãŒã«es6-promisesããããŸã-ECMAScript 6æšæºã®Promiseã³ã³ã¹ãã©ã¯ã¿ãŒã®èŠªåã§ããä»ã®åæ§ã®èŠªåãšã¯ç°ãªããç§ã®å®è£ ããã®ã¯æšæºã¡ãœããã®ã¿ã§ãããããã£ãŠãPromise.castãŸãã¯Promise.anyã¯ãããŸããããã¹ãŠã®ãã©ãŠã¶ã§Promiseã®ãµããŒããå°å ¥ãããŸããããªãã£ã«ã¯å®å šã«åé€ã§ããã³ãŒãã䜿çšããŠæžãæããå¿ èŠã¯ãããŸããã Polyfilã¯ããã©ãŠã¶ãŒãšNode.jsã¢ãžã¥ãŒã«ã®äž¡æ¹ã§æ©èœããŸãã éåæã¯setImmediateã䜿çšããŠå®çŸãããŸãã
![](https://habrastorage.org/files/ad5/035/116/ad503511632b461bb628563cbb086099.png)
é·ãéããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®äœ¿çšã«ã€ããŠè©±ãããšãã§ããŸããæãç°¡åãªããšã¯ãããšãã°ãå€ãã®ãããžã§ã¯ãã§Perlã䜿çšããŠããããšã§ãããªãŒãã³ãœãŒã¹ã§ãç°ãªããã©ãããã©ãŒã ã«ç§»æ€ãããŸããã nginxã䜿çšãããšãhttpd Apacheã¯èª°ãé©ããªãã§ããããå®éãå€ãã®ãµã€ãããããã«åãçµãã§ããŸãã ãŸããããã³ããšã³ããšããã¯ãšã³ãã®äž¡æ¹ã§ç°ãªããªãŒãã³ãœãŒã¹ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠããŸãã äžè¬çã«ãããªãŒãœãããŠã§ã¢ãªãã§ç掻ããããšãã©ãã»ã©é£ãããã¯æ³åã§ããŸããïŒ ãã¡ãããç§ã¯èªåã§ããã€ãã®ãããžã§ã¯ããå©ããããšããŸããããããã/æ©èœããããããããã«ã³ããã¿ãŒã«ãªãã»ã©ã§ââã¯ãããŸããã§ããïŒudpxyãIcecastãAsuswrt RT-N56Uãªã©ãã©ãã§ãå°ããã€ã ç§ã¯èªåã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããæã£ãŠããªãã®ã§ãperlachkaã®ãã®ãã¢ã®ã¢ãžã¥ãŒã«ãããŸãéèŠããŸããã§ãããããããã©ãã»ã©éèŠã§ãããããŸããŸãç解ããŠããããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®ååã«åŸãããã«åªããŸãã
æåŸã«æ··ä¹±ããã®ã¯ã ããã€ã¹:: Gembirdããã®EnerGenie EG-PMS-LANã®ç®¡çã§ãã ã 誰ãã圌ãèå³ãæã£ãŠããããšã«å°ãè²¢ç®ããããšãããªãããããã®ãããžã§ã¯ãã¯ããéãçºå±ããã§ãããã
![](https://habrastorage.org/files/0f6/7dc/928/0f67dc928c0640e1b5a70a9120e455c3.png)
iOSçšã«éçºããŠããŸãã æ°å¹Žåããã®ã³ãã¥ããã£ã®ãªãŒãã³ãœãŒã¹æåèªäœã¯ååšããŠããªãã£ããšèšããŸãã ãã¡ãããããã€ãã®éèŠãªãããžã§ã¯ãããããŸãããããµãŒãããŒãã£ã®ã³ãŒãããããžã§ã¯ãã«å«ããããã®è³¢æãªã¡ã«ããºã ãããããŸããã§ãã-å€ãã®éçºè ã¯ãœãŒã¹ã³ãŒããæãã«ã³ããŒããããã«æºè¶³ããŠããŸããã ãããããã®åŸãRubyGems / npmã®ãããªäŸåé¢ä¿ãããŒãžã£ãŒãç»å Žããéåžžã®ç¶æ ã«æ £ããŠããä»ã®ãã©ãããã©ãŒã ã®éçºè ãåŸã ã«ã¯ããŒã«ããåããå€ããŸããã
ç§ã®ãããžã§ã¯ãã§ã¯ãããªãã®éã®ãªãŒãã³ãœãŒã¹ã³ãŒãã䜿çšããŠããŸããã次ã«æ¥ç¶ãããåã©ã€ãã©ãªã¯ãããžã§ã¯ãã®éšåçãªå¶åŸ¡ã®åªå€±ã§ããããšãç解ããããšãéèŠã§ãã ããç¥ãããŠããffmpegãããŒã«ã«GPUImageïŒé«æ§èœç»ååŠççšã®ã©ã€ãã©ãªïŒãªã©ãç¹å®ã®æ©èœã«é¢é£ãããã®ã¯æ¬åœã«äžå¯æ¬ ã§ãã ãŸããããŒã«ã«Rxã®çãŸãå€ããã§ããReactiveCocoaã䜿çšãããšãããŸããŸãªãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«å¯Ÿããç¶æ ãåå¿ã«é¢é£ããéåžžã«äžå¿«ãªUIã³ãŒãããšã¬ã¬ã³ãã«è§£ãããšãã§ããŸãã
ããããªã¥ãŒã ã§ãç§ã¯ååã«å€æ°ã®ãããžã§ã¯ãã«è²¢ç®ããŸããããç§ãåå ãã人æ°ã®ãããããžã§ã¯ãã2ã€ãããŸãã ããã¯Masonryã§ãããAutoLayoutïŒç»é¢äžã«ãã¥ãŒãé 眮ããããã®ã¡ã«ããºã ïŒã®äŸ¿å©ãªã©ãããŒã§ããMantleã¯ãç掻ã楜ã«ããå®åã³ãŒãã®æ°ãæžããããšãç®çãšãã軜éã¢ãã«ãã¬ãŒã ã¯ãŒã¯ã§ãã æè¿ãç§ã¯èªåã®ãããžã§ã¯ããããã€ããªãªãŒã¹ããŸããããè¿ããã¡ã«æ¬çªç°å¢ã«ç§»è¡ããŠ
![](https://habrastorage.org/files/226/414/a1f/226414a1fcbe46cebd529c7a600c6782.png)
è·å Žã§ã¯ã次ã®ãããªç¶æ³ãçºçããŸãããããã°ã©ããŒã¯Gitãæã¿ããã¶ã€ããŒãšã¢ãŒãã£ã¹ãã¯ãã ã³ããããããã ãã§ãã æ°ãæéGitã§ç掻ããããšããŸããããããŸããããŸããã ããŒãžã«é¢ããäžæã®åé¡ãå¥åŠãªç¶æ ã®äœæ¥ã³ããŒã®äœæãå€ãã®åŠå®æ§ããSVNãè¿ãããšããåé¡ã ã°ãŒã°ã«ã¯ãæ¥éã«åã SubGitãããžã§ã¯ããããããšã瀺ããŸãããããŸã æŸæ£ãããïŒãããŠPythonã§æ¿ããæžéããŠããïŒ git_svn_serverãšgithubã®svnãããã³ã«ã®ãµããŒãããããGitHub Enterpriseã®äžéšãšããŠå€ãã®ãéã®ããã«ã®ã¿æäŸããŸãã
圌ãã¯ã«ããã²ã£ãããåŸãããŸããç§ãã¡ã¯ããã°ã©ããŒã ããšèšã£ãã ãããŠãsvnã®ãµããããŠãgitãªããžããªã®ããã³ããšã³ãã§ããgit-as-svnãçãŸããŸããã æ©èœïŒãã§ãã¯ã¢ãŠã/æŽæ°ããã°ãéé£ãã³ãããïŒïŒïŒãååå€æŽæ€åºãsvnïŒeolã¹ã¿ã€ã«ãgitããã¯ãLDAPçµç±ã®èªèšŒãéšåãã§ãã¯ã¢ãŠããã¹ããŒã¹äœæ¥ã³ããŒïŒsvn --depth /-set-depthïŒ ãgitãµãã¢ãžã¥ãŒã«ã ãã³ãããŒã¯ã§ã¯ããã€ãã£ãsvnãæ¯èŒããŸãïŒå Žåã«ãã£ãŠã¯è¿œãè¶ãããããŸãïŒã ãã®éçšã§ã圌ãã¯svnã«æ³åã絶ããèŽ æ²¢ãçºèŠããŸãããããã¯å¥ã®æçš¿ã«å€ããŸãã
PSã¯ããããã¯Javaã§æžãããŠããŸããããã¯äºæž¬äžå¯èœãªGCãæã¡ãRAMãé£ã¹ãã®ã倧奜ããªãã®ã§ãã ãã¡ããããã£ã±ãã®ã»ããè¯ãã£ããããããŸãããã2ã€ã§å°çã«ãªã£ããã1ãæéããããã¹ãŠçœ®ãããšã«ãªããŸãã
![](https://habrastorage.org/files/976/15a/222/97615a222d8742a4a0a2c95f05923322.png)
å¯èœãªéããç§ã¯åžžã«ããªãŒãœãããŠã§ã¢ã䜿çšããããšããŸãã ããã¯ã第äžã«ãç§ã®æèŠã§ã¯ãå«ççã«æ£ããããšã§ããã第äºã«ããããã©ã€ãšã¿ãªããã䟿å©ã§ãé«éã§ãæè»æ§ãé«ãããšã§ãã
ç§ãã¡ã®å¿çšæ€çŽ¢èšèªã®ã°ã«ãŒãMail.Ruã¯ãã»ãŒãã¹ãŠã®ã¿ã¹ã¯ã§ããªãŒãœãããŠã§ã¢ã䜿çšããŠããŸãã ããšãã°ãã»ãã³ãã£ãã¯ããŒã¯ã¢ããïŒRDFãmicrodataãªã©ïŒãåããWebããŒãžãåæããã³è§£æããããã®å質ãŠãŒãã£ãªãã£ãæ¬åœã«å¿ èŠã§ããã ããã¯ããã®ããŒã¿ã䜿çšããŠæ€çŽ¢ã¹ããããããã®ä»ã®éèŠãªãã®ãäœæããããã«å¿ èŠã§ãã ç§ãã¡ã®éžæã¯ãApache Software FoundationããããŠãã¡ããã³ãã¥ããã£ã«ãã£ãŠéçºãããã any23ã®ç¡æã©ã€ãã©ãªã«ãããŸããã ãŸã£ããåŸæããŠããŸããã§ãããany23ã¯ã¯ãŒã¯ãããŒã«å®å šã«çµ±åãããŠããŸããã ç§ãã¡ã¯åœŒå¥³ã®ä»äºã®è«çãç解ãã圌女ãäœãééã£ãããšãããå Žåã§ãã圌女ã®ã³ãŒãããããã«ä¿®æ£ããããšã¯åé¡ã§ã¯ãããŸããã§ããã çŸåšã圌女ã®å©ããåããŠãäœçŸäžãã®ããã¥ã¡ã³ããå®æçã«åŠçãããæ€çŽ¢ãŠãŒã¶ãŒã¯çŸããæçãªã¹ãããããåãåããŸãã
ç§èªèº«ã¯ããã®ããã°ã©ããŒã§ã¯ãªããšèããŠããŸãããä»ã®äººã«åœ¹ç«ã€ãã®ãæžãããšãããå Žåã¯ãåžžã«ç¡æã©ã€ã»ã³ã¹ã§æçš¿ããŠããŸãã æåŸã«å®äºãããããžã§ã¯ãããããã·ã¢èªã®ããã¹ãã®ç §å¿ã®èªå解決ã·ã¹ãã ãæãåºãããšãã§ããŸãã ç §å¿ã¯ãåèªïŒéåžžã¯ä»£åè©ïŒèªäœã¯éèŠã§ã¯ãªããå¥ã®åèªãžã®ãã€ã³ã¿ã«ãããªãå Žåã®èšèªçŸè±¡ã§ãã ããšãã°ããæç«ã¯éããæ©ããŠããŸããã ããã£ã¢ã¯åœŒãèŠãŠéãããã圌ããšããèšèã¯æç«ã瀺ããŠããŸãã ãã®ãããªé¢ä¿ãå®çŸ©ããããšã¯ãå€ãã®èšèªã¿ã¹ã¯ã«ãšã£ãŠéèŠã§ãã ããã¯ã¹ã»ã€ãªãããšç§ã¯ããã·ã¢èªã®ä»»æã®ããã¹ãã®ç §å¿é¢ä¿ãæ£ç¢ºã«åºå¥ããã·ã¹ãã ãæ§ç¯ããŸããã ã³ã³ãã¥ãŒã¿èšèªã«é¢ããäŒè°ãDialogueãã§ãããžã§ã¯ããçºè¡šããããã€ãã®æ¹åãè¡ããgithubã«æçš¿ããŸããã çŸåšãç§ãã¡ãç¥ãéããããã¯ãã·ã¢èªã®ç §å¿æ¥ç¶ã®å¯äžã®èªç±ã«å©çšå¯èœãªæ€åºåšã§ãã ãã¡ãã§è©ŠããŠã¿ãããšãã§ããŸã ã ç§ãã¡ã¯ã³ã¡ã³ããšã³ãããã«éåžžã«åãã§ããŸãã :)
![](https://habrastorage.org/files/339/104/e43/339104e4317b43ad9f0a2612044e2b06.png)
ãã±ãŒã¹ããšåŒã¶ããšã¯éåžžã«å°é£ã§ãã ç§ãã¡ã¯ããããžã§ã¯ãã§æãéèŠãªå Žæããã¹ãŠãªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã«çµã³ä»ããŠããŸãã ãããŠãäžè¬çã«ãAndroidã¯ããã§ãã 圌ã¯å®å šã«ããå¯å€§ã§ãããããã¯ãã°ãã°æå ã«ãããŸãã 以äžã¯ããã®äœæ¥ã§äœ¿çšããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®éšåçãªãªã¹ãã§ãã
LibPhoneNumberã¯ããŠãŒã¶ãŒãå ¥åããé»è©±ã解æããã«ããŽãªãããåœ/éœåžã³ãŒããªã©ãæœåºããããã«ãé»è©±çªå·ãæäœããæ©äŒãæäŸããGoogleã©ã€ãã©ãªã§ãã
GreenDao-ã³ãŒãçæã«åºã¥ããAndroidçšORMã å°ãäžåšçšã§ãããããã«ãããã¹ãŠã®ORMLiteãããã¯ããã«é«éã«åäœããŸãã éçºè ã¯ããå¥åŠã§ãã ãã©ãŒã¯ãäœæããããšãã圌ãã¯åºæ¬çã«ããŒã«èŠæ±ãåãå ¥ããŸããã§ããã ä»ã圌ãã¯åæããŸãããã¹ãã£ã³ããã眲åæžã¿ã®å¥çŽæžãéä¿¡ããããšã«ãªããŸãã ãã®ããŒãžã§ã³ã§ã¯ãã³ãŒãçæã¯æäœæ¥ã§éå§ãããŸãããããããŸãã1äžçŽã«æž¡ãçµç«ã·ã¹ãã ãã€ãŒãã«ããå Žåã¯å°ãå¥åŠã§ãã gradle-pluginã¬ãã«ã§ã®ã¢ã»ã³ããªããµããŒããããã©ãŒã¯ããåå²ããŸãããããã«ãããã¢ã»ã³ããªäžã«é©åãªã³ãŒããèªåçã«çæã§ããŸãã ããŒã¿ããŒã¹ã¹ããŒããå€æŽããã»ãšãã©ã®å Žåã«èªåã¢ããã°ã¬ãŒããèŠãããã«ã¹ã¿ã ã·ãªã¢ã©ã€ã¶ãŒã§ããŒã¿ãä¿å/ããŒãããæ©èœãè¿œå ãããŸããïŒããã«ãããKryoã䜿çšããŠãã·ãªã¢ã«åãããããŒã¿ãã§ããã ãæ©ãä¿å/ããŒãã§ããããã«ãªããŸãïŒãè€åã€ã³ããã¯ã¹ãæäœããgradleãã©ã°ã€ã³ã®æ©èœãæ¡åŒµãããŸããã
GSON-åºæ¬çã«ããã§èª¬æããããšã¯ãããŸãããJSONãæäœããããã«æã䜿çšãããã©ã€ãã©ãªã®1ã€ã§ãã ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«é¢ããŠæé©åãããŠããããããããåžžã«åé¡ãšãªãæºåž¯é»è©±ã§ã®äœ¿çšãæšå¥šã§ããŸãã
Kryoã¯ãä»»æã®ãªããžã§ã¯ããã·ãªã¢ã©ã€ãº/ãã·ãªã¢ã©ã€ãºããããã®æéã®ã©ã€ãã©ãªã§ãã ãšãŠãå¿«é©ã§ãã
ã°ã¢ã-ãŸããäžè¬ã«ã説æãããã®ã¯ãããŸãããå€ãã®ãŠãŒãã£ãªãã£ããããæšæºJavaã§ã¯åã«ååã§ã¯ãããŸããã
Gson-XMLã¯å°ãè°è«ã®äœå°ã®ããã©ã€ãã©ãªã§ãããXMLã®éã·ãªã¢ã«åã®ããã«GSONãïŒéçºæéã®èŠ³ç¹ããïŒè¿ éã«æå ¥ã§ããŸãã
AndroidAnnotationsã¯åãªããã®ã§ãã Javaãç¹ã«Androidã«éåžžã«ç¹åŸŽçãªã³ãŒããå®è¡ããŠããå€æ°ã®çµ¶å¯Ÿã«äœãåãé€ãããšãã§ããå®éã«äœæ¥ã«éäžã§ããããã«ããã³ãŒãçæã«åºã¥ãã©ã€ãã©ãªã 以äžãå«ã倧èŠæš¡ãªAndroidã¢ããªã±ãŒã·ã§ã³ã®é©åãªã¢ãŒããã¯ãã£ã®äœæãšãµããŒããç°¡çŽ åããŸãã äŸåæ§æ³šå ¥ãæäŸããŸãã UIã®æäœãç¹ã«ç¬èªã®ã³ã³ããŒãã³ãã®äœæãç°¡åã«ãªããŸãã äžè¬ã«ãAndroidAnnotationsã䜿çšããªãAndroidã§ã®ç掻ã¯éåžžã«å°é£ã§ãã
ãããããéåžžã«åœ¹ç«ã¡ãŸãã ç¹ã«AndroidAnnotationsãªã®ã§ããã®ãããžã§ã¯ãã«å¯ŸããŠæ¯èŒçé »ç¹ã«ãã«ãªã¯ãšã¹ããè¡ããŸãã
![](https://habrastorage.org/files/90a/0c1/450/90a0c1450f9148ecbbce084829e32c9d.jpg)
å®äŸïŒ2001幎ãRed Hat 7.3ã¯ç§ãå©ããŠãããŸããã å±æ©ããããç§ã¯å€±æ¥ããŸããã ç§ã¯å€ããäœé»åã®ã³ã³ãã¥ãŒã¿ãŒãæã£ãŠããŠãæ°ããã³ã³ãã¥ãŒã¿ãŒã®ããã®ãéããŸã£ãããããŸããã§ããã Red Hatãã€ã³ã¹ããŒã«ããã€ã³ã¿ãŒãããäžã§ä»äºãèŠã€ããå±¥æŽæžãäœæããPOSIXäºæã·ã¹ãã ã§ã¡ãŒã«ãšããã°ã©ãã³ã°ãè¡ãããã®éåžžã«æèœãªç°å¢ãæã«å ¥ããŸããã
GPLv3ã®ãã¬ãŒã ã¯ãŒã¯å ã«ã¯ãïŒéåžžã«åºãïŒIPTVæ奜家ã®éã§ç¥ãããŠããå°ããªãªãŒãã³ãœãŒã¹ãããžã§ã¯ãããããŸããudpxyã¯ããã«ããã£ã¹ãã¹ããªãŒã ã®ãããã·ãµãŒããŒã§ãã ãã®ãããžã§ã¯ãã¯ã2008幎ã«Asus Wl-500gã«ãŒã¿ãŒã®ãŠãŒãã£ãªãã£ãšããŠéå§ãããã¢ããªã±ãŒã·ã§ã³ã¯ãOlegããã®ããªãŒãã³ãã¡ãŒã ãŠã§ã¢ã«å«ãŸããŠããŸããã çŸåšãudpxyã¯ãããŒã ãwifiã«ãŒã¿ãŒã®ããŸããŸãªãã¡ãŒã ãŠã§ã¢ã«æšæºã§å«ãŸããŠãããIPTVãŠãŒã¶ãŒããã³ãããã€ããŒã«ãã£ãŠäœ¿çšãããå€ãã®IPTV OTTãœãªã¥ãŒã·ã§ã³ã®ãµãŒããŒéšåã¯ããã«åºã¥ããŠããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ã¯ããããã¯ãŒã¯ãæäœããããã®POSIX APIããµããŒãããã»ãšãã©ãã¹ãŠã®ææ°ã®OSïŒããã³ããŒããŠã§ã¢ãã©ãããã©ãŒã ïŒã§åäœããããã«ïŒã³ãã¥ããã£ãã©ãŒã¹ã«ãã£ãŠãå¥ã ã®ãã©ã³ãã§ïŒé©åãããŸããã
![](https://habrastorage.org/files/c90/276/778/c9027677822644499ea26b5beb5365d2.png)
ãœãããŠã§ã¢ã®èªç±ãšã¯ã©ãããæå³ã§ããïŒ
ããŸããŸãªåéã®ããä»æ§ã®ãœãããŠã§ã¢ãç¡å¶éã«ç¡æã§äœ¿çšã§ããŸãã ç§ã®äž»ãªæŽ»åã®ããã«ãœãããŠã§ã¢ïŒOSãäŒèšãœãããŠã§ã¢ãã¢ã³ããŠã€ã«ã¹ïŒãè³Œå ¥ããæºåãã§ããŠãããšããäºå®ã«ãããããããæã«ã¯é¢é£åéããã¿ã¹ã¯ãçºçããŸãã ãããŠãããã解決ããããã«ãç§ã¯æ¬æ Œçãªããã®ãœãããŠã§ã¢ã䜿çšããããšæããŸãããããŠãè³Œå ¥ã¯äžæ¡ç®ã§ãã
ä»»æã®åæ§æã䜿çšããæš©å©ã ã·ã¹ãã 管çã®ç®çã®ããã«ãç°ãªãããã°ã©ã ã®ã»ããã§ããã€ãã®éé¢ãããã³ã³ãããèšå®ããå¿ èŠããããŸãã ããªãŒãœãããŠã§ã¢ïŒUbuntuïŒã®å Žåããã®æ©èœã¯å©çšå¯èœã§ãã ãããŠããããã©ã€ãšã¿ãªãªãœãããŠã§ã¢ãã©ããããïŒ æä»çæš©å©ã®ææè ã¯ãã®äœ¿çšãèš±å¯ããŸãããïŒ åœŒã¯ããããŸã£ããäºèŠããŸãããïŒ
æ確ã§æšæºåãããã©ã€ã»ã³ã¹å¥çŽã ã©ã€ã»ã³ã¹å¥çŽã§æªéã«éã売ã矩åã®æ¬ åŠã éåžžãææ°ã®ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã«ã¯ãæšæºã©ã€ã»ã³ã¹ã®1ã€ãä»å±ããŠããŸãã ãããã®ã©ã€ã»ã³ã¹ãäžåºŠèª¿ã¹ãŠãéããç解ãããã®åé¡ã«æ»ãããšã¯ã»ãšãã©ãããŸããã æææš©ã®ãããœãããŠã§ã¢ã®å Žåãææè ã¯æ¯åãèœãšãç©Žãå«ãæ°ããã©ã€ã»ã³ã¹ãçºæããŸãã æ¡é ãã©ã€ã»ã³ã¹å¥çŽã«æå³çã«å°å ¥ãããå¥å šãªäººã決ããŠåæããªãå ŽåããããŸãã
ãšã³ããªãŒã¬ãã«ã®ãŠãŒã¶ãŒåãã«èšèšããã人çºçãªå¶éã®æ¬ åŠã æè¡çã«æ©èœãéçºãã補åã®ããŒãžã§ã³ããªãªãŒã¹ãããã©ã€ã»ã³ã¹ã§ã¯ç¹å®ã®äœ¿çšãçŠæ¢ãããŠããŸãã . , , . , .
. , Jabber, Skype', .
. Skype , . ?
. Ubuntu , . , . .
:
. , , . , . , SynapseGrid , . Functional reactive programming, . , . , API.
, - â , (), «» .
, . patch' , , .
, , .. - . , , , .
![](https://habrastorage.org/files/0d4/140/d49/0d4140d4923c4183a6e426e5dd43f7a9.png)
iOS, . , 20 . - , .
? , libPhoneNumber-iOS . JSON Mantle . , CoreData, mogenerator . Masonry AutoLayout . WebSocket, SocketRocket . , , , cocoapods , . , .
, :
QTree-objc â - Quadtree. : (, ..), . , , , . . .
AKNumericFormatter â , .. .
AKTransliteration â , ru <-> en .
, , ! , IT , . ãããããé¡ãããŸãïŒ
?