
\u6211\u653e\u5728 pages \u4e0a\u9762\u7684 blog \u4e0d\u77e5\u8f6c\u79fb\u5230 coding \u8fd8\u4f1a\u4e0d\u4f1a\u6b63\u5e38\u3002
\n" }, { "author": { "url": "member/chztv", "name": "chztv", "avatar": "https://cdn.v2ex.com/avatar/4759/9716/11135_large.png?m=1725932896" }, "url": "t/260572", "title": "\u7ec8\u4e8e\u6765\u4e86\uff1a GitCafe \u9879\u76ee\u8fc1\u79fb\u81f3 Coding.net \u516c\u544a", "id": "t/260572", "date_published": "2016-03-02T09:45:34+00:00", "content_html": "https://gitcafe.com/migration\r\u90e8\u7f72\u7684\u65f6\u5019\u662f\u4e0d\u662f\u4e24\u4e2a git \u7528\u7684\u90ae\u7bb1\u5fc5\u987b\u662f\u540c\u4e00\u4e2a\uff1f
\n\u56e0\u4e3a\u8fd9\u6837\u624d\u4f1a ssh \u4e00\u6837
\n\u8fd8\u662f\u8bf4\u4e0d\u4e00\u6837\u4e5f\u53ef\u4ee5\uff1f
\n\u7136\u540e\u591a\u751f\u6210\u4e00\u4e2a ssh?
\u8fd9\u4e2a\u62a5\u9519\u662f\u56e0\u4e3a\u6ca1\u6709\u540c\u6b65 ssh \u5417\uff1f
\nWarning: Permanently added 'gitcafe.com,124.42.117.218' (RSA) to the list of known hosts.
\nPermission denied (publickey).
\nfatal: Could not read from remote repository.
Please make sure you have the correct access rights
\nand the repository exists.
\nFATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
\nError: Warning: Permanently added 'gitcafe.com,124.42.117.218' (RSA) to the list of known hosts.
\nPermission denied (publickey).
\nfatal: Could not read from remote repository.
Please make sure you have the correct access rights
\nand the repository exists.
at ChildProcess.<anonymous> (D:\\hexo\\node_modules\\hexo-deployer-git\\node_modules\\hexo-util\\lib\\spawn.js:42:17)\nat emitTwo (events.js:87:13)\nat ChildProcess.emit (events.js:172:7)\nat maybeClose (internal/child_process.js:818:16)\nat Socket.<anonymous> (internal/child_process.js:319:11)\nat emitOne (events.js:77:13)\nat Socket.emit (events.js:169:7)\nat Pipe._onclose (net.js:469:12)\n\u542c\u8bf4 GitCafe \u6700\u8fd1\u878d\u8d44\u5931\u8d25\u5927\u88c1\u5458\uff1f
\n" }, { "author": { "url": "member/gdkttt", "name": "gdkttt", "avatar": "https://cdn.v2ex.com/avatar/7de3/548a/133610_large.png?m=1592529391" }, "url": "t/243182", "title": "\u8ff7\u832b\uff0c GitCafe \u662f\u53c8\u600e\u4e48\u4e86\uff08 This website is under heavy load\uff09", "id": "t/243182", "date_published": "2015-12-13T04:33:32+00:00", "content_html": "\u6253\u5f00 gitcafe \u9875\u9762\u51fa\u73b0\u4e0b\u9762\u8fd9\u4e00\u6bb5\u5b57\uff0c github \u867d\u7136\u80fd\u6253\u5f00\uff0c\u4f46\u662f\u9875\u9762\u4e5f\u4e0d\u5b8c\u6574\u4e86\uff0c\u662f\u6211\u7684\u95ee\u9898\u8fd8\u662f\u7f51\u7ad9\u7684\u95ee\u9898\uff0c\u6211\u5df2\u7ecf\u8ff7\u832b\u4e86\u3002
\nThis website is under heavy load
We're sorry, too many people are accessing this website at the same time. We're working on this problem. Please try again later
\n" }, { "author": { "url": "member/azzwacb9001", "name": "azzwacb9001", "avatar": "https://cdn.v2ex.com/avatar/77ec/14ef/129279_large.png?m=1505108081" }, "url": "t/238021", "title": "gitcafe pages \u73b0\u5728\u4e0d\u597d\u7528\u4e86\u5417\uff1f\uff08\u7f13\u5b58\u66f4\u65b0\u6162\uff09", "id": "t/238021", "date_published": "2015-11-22T05:25:23+00:00", "content_html": "\u4e0a\u4f20\u5185\u5bb9\u540e\uff0c\u4ece Gitcafe \u7f51\u7ad9\u7684\u5177\u4f53\u4ee3\u7801\uff0c\u80fd\u770b\u5230\u5185\u5bb9\u5df2\u7ecf\u66f4\u65b0\u3002\u4f46\u662f\u76f4\u63a5\u8bbf\u95ee\u9875\u9762\uff0c\u5185\u5bb9\u8fd8\u662f\u51e0\u5929\u524d\u7684\u3002
\n\n\u5927\u5bb6\u6709\u8fd9\u79cd\u60c5\u51b5\u5417\uff1f\u540c\u65f6\u4e0a\u4f20\u5230 Github pages \u5c31\u6ca1\u6709\u95ee\u9898\u3002
\n\n\u6211\u8fd9\u91cc ping gitcafe pages \u7684\u9875\u9762\u662f 119.81.161.66 \uff0c\u4e00\u4e2a\u9999\u6e2f\u7684 IP \u3002
\n" }, { "author": { "url": "member/linar", "name": "linar", "avatar": "https://cdn.v2ex.com/avatar/6bcd/4897/85768_large.png?m=1715589493" }, "url": "t/230800", "title": "\u73b0\u5728 gitcafe.com \u4e5f\u6302\u4e86\u3002\u3002\u3002", "id": "t/230800", "date_published": "2015-10-24T14:16:40+00:00", "content_html": "" }, { "author": { "url": "member/thinkloki", "name": "thinkloki", "avatar": "https://cdn.v2ex.com/avatar/3d89/ba6a/72488_large.png?m=1446530026" }, "url": "t/230651", "title": "GitCafe \u7684 pages \u670d\u52a1\u53c8\u6302\u4e86\uff1f", "id": "t/230651", "date_published": "2015-10-24T01:02:43+00:00", "content_html": "RT \uff0c\u4e3a\u4ec0\u4e48\u540c\u6837\u7684\u535a\u5ba2\u5185\u5bb9\u90e8\u7f72\u5728 Github \u53ef\u4ee5\u8bbf\u95ee\uff0c Cafe \u5c31\u4e0d\u884c\u4e86\u3002\u800c\u4e14\u8bbe\u7f6e\u7684\u6ca1\u6709\u95ee\u9898\u3002
\n" }, { "author": { "url": "member/gitcafe", "name": "gitcafe", "avatar": "https://cdn.v2ex.com/avatar/d0a2/7f33/126402_large.png?m=1436445065" }, "url": "t/206064", "title": "GitCafe \u7528\u6237\u8c03\u67e5\u95ee\u5377", "id": "t/206064", "date_published": "2015-07-16T03:54:17+00:00", "content_html": "\u5404\u4f4d\u4eb2\u7231\u7684\u5c0f\u4f19\u4f34\uff0cGitCafe \u9080\u8bf7\u4f60\u6765\u586b\u5199\u8fd9\u4efd\u8c03\u67e5\u95ee\u5377\u3002
\n\n\u6211\u4eec\u5e0c\u671b\u5f97\u5230\u6700\u771f\u5b9e\u7684\u53cd\u9988\uff0c\u5e2e\u52a9\u6211\u4eec\u63d0\u4f9b\u66f4\u597d\u7684\u670d\u52a1\uff0c\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u5730\u6210\u957f\u3002\u586b\u5b8c\u8fd8\u4f1a\u6709\u5c0f\u60ca\u559c\u54df\u3002
\n\n\u73b0\u5728\u5c31\u6233\uff1ahttps://mengmengme.typeform.com/to/zA94mi \u5427!
\n" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/204828", "date_modified": "2015-07-10T10:35:11+00:00", "content_html": "2014 \u5e74 9 \u6708\uff0c\u4e4c\u4e91\u9996\u5c4a\u5b89\u5168\u5cf0\u4f1a\u5728\u5317\u4eac\u987a\u5229\u4e3e\u884c\uff0c\u9080\u8bf7\u5230\u793e\u4f1a\u4e2d\u9876\u5c16\u7684\u767d\u5e3d\u5b50\u548c\u4f01\u4e1a\u9632\u5fa1\u4f53\u7cfb\u7684\u6700\u4f73\u5b9e\u8df5\u8005\uff0c\u5171\u540c\u63a2\u8ba8\u4fe1\u606f\u5b89\u5168\u7684\u89e3\u51b3\u4e4b\u9053\u3002\u5982\u679c\u4f60\u89c9\u5f97\u9519\u8fc7\u4e86\u90a3\u6b21\u5927\u4f1a\u800c\u9057\u61be\uff0c\u522b\u62c5\u5fc3\uff0c\u8fd9\u4e2a 7 \u6708\uff0c\u53f0\u6e7e\u9ed1\u5ba2\u5927\u4f1a HITCON \u4e0e\u6f0f\u6d1e\u62a5\u544a\u5e73\u53f0\u4e4c\u4e91\u7f51\u8054\u5408\u4e3e\u529e\u7684\u4e4c\u4e91\u7b2c\u4e8c\u5c4a\u300c\u767d\u5e3d\u5b50\u5927\u4f1a\u300d\u5c06\u4e3a\u4f60\u5e26\u6765\u66f4\u591a\u7684\u60ca\u559c\uff01GitCafe \u4e5f\u4e3a\u60f3\u53bb\u53c2\u4e0e\u7684\u4f60\u4eec\u5e26\u6765\u4e86\u798f\u5229\uff0c\u95e8\u7968\u514d\u8d39\u653e\u9001\u4e2d\u3002
\n\n\u4e0d\u5206\u79cd\u65cf\uff0c\u4e0d\u5206\u56fd\u754c
\n\u4e0d\u5728\u4e4e\u5e74\u9f84\uff0c\u4e0d\u5728\u4e4e\u804c\u4f4d
\u5728\u4e4c\u4e91 2015 \u5e74\u767d\u5e3d\u5b50\u5927\u4f1a
\n\u4f60\u5c06\u7a7f\u68ad\u4e8e\u6570\u767e\u540d\u767d\u5e3d\u9ed1\u5ba2\u4e4b\u95f4
\u542c\u4e00\u6d41\u767d\u5e3d\u7684\u6700\u65b0\u60f3\u6cd5
\n\u5b66\u4f01\u4e1a\u5927\u5496\u7684\u5b9d\u8d35\u7ecf\u9a8c
\u4f60\u53ef\u80fd\u5728\u523a\u6fc0\u7684\u73b0\u573a\u6f14\u793a\u4e2d\u4f53\u9a8c\u5230\u771f\u5b9e\u4e16\u754c\u7684\u75db
\n\u6216\u8005\u5728\u9ed1\u5ba2\u524d\u8f88\u7684\u5a13\u5a13\u9053\u6765\u4e2d\u770b\u89c1\u81ea\u5df1\u672a\u6765\u7684\u8def
\u8fd9\u91cc\u662f\u4e4c\u4e91\u767d\u5e3d\u5b50\u5927\u4f1a
\n\u4f60\u542c\u8bf4\u8fc7\u7684\u548c\u5373\u5c06\u542c\u8bf4\u7684\u767d\u5e3d\u5b50\u4eec\uff0c\u90fd\u5c06\u5728\u8fd9\u91cc\u51fa\u73b0
\u65f6\u95f4\uff1a2015 \u5e74 7 \u6708 17 \u65e5~7 \u6708 18 \u65e5
\n\u5730\u70b9\uff1a\u5317\u4eac\u5bcc\u529b\u4e07\u4e3d\u9152\u5e97
\n\u7f51\u7ad9\uff1a http://summit.wooyun.org
7 \u6708 17 \u65e5 Day1\u300c\u4e13\u4e1a\u573a\u300d: Pro-Con
\n\n\u9762\u5411\u4eba\u7fa4\uff1a\u4f01\u4e1a\uff0c\u767d\u5e3d\u5b50
\n\u6f14\u8bb2\u5609\u5bbe\uff08\u90e8\u5206\uff09\uff1a\u53bb\u54ea\u513f\u7f51\u5b89\u5168\u8d1f\u8d23\u4eba\u90ed\u6dfb\u68ee\u3001\u817e\u8baf\u5b89\u5168\u67b6\u6784\u5e08\u5f20\u6d77\u6e05\u3001\u4e07\u8fbe\u7535\u5546\u5b89\u5168\u4e3b\u4efb\u5de5\u7a0b\u5e08\u6797\u9e4f\u3001\u552f\u54c1\u4f1a\u9ad8\u7ea7\u5b89\u5168\u5de5\u7a0b\u5e08\u738b\u6da6\u8f89\u3001\u524d\u767e\u5ea6\u9ad8\u7ea7\u5b89\u5168\u5de5\u7a0b\u5e08\u7ae0\u534e\u9e4f\u3002
\u7b80\u4ecb\uff1a\u7531\u4f18\u79c0\u767d\u5e3d\u5b50\u548c\u4f01\u4e1a\u5b89\u5168\u8d1f\u8d23\u4eba\u5206\u4eab\u653b\u9632\u6700\u65b0\u8d8b\u52bf\u548c\u4e1a\u52a1\u5b89\u5168\u7ecf\u9a8c\uff0c\u65e8\u5728\u8ba9\u4f01\u4e1a\u66f4\u597d\u7684\u4e86\u89e3\u5b89\u5168\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6848\uff0c\u5e76\u8ba9\u767d\u5e3d\u5b50\u66f4\u597d\u7684\u5e2e\u52a9\u4f01\u4e1a\u63d0\u5347\u5b89\u5168\u3002\u5e73\u5747\u6bcf\u4e2a\u8bae\u9898\u65f6\u95f4 40 \u5206\u949f\uff0c\u7686\u4e3a\u6df1\u5ea6\u6f14\u8bb2\u3002
\n\n\u884c\u4e1a\u70ed\u95e8\u5b89\u5168\u95ee\u9898
\n\n\u4e92\u8054\u7f51\u91d1\u878d\u3001\u7535\u5546\u3001\u79fb\u52a8 APP \u7684\u5b89\u5168\u95ee\u9898\u4e0e\u65e5\u5267\u589e\uff0c\u4e00\u4e9b\u4f01\u4e1a\u53ef\u80fd\u7f3a\u4e4f\u5b89\u5168\u610f\u8bc6\uff0c\u66f4\u591a\u4f01\u4e1a\u5219\u4e0d\u77e5\u9053\u5982\u4f55\u5165\u624b\u3002\u672c\u6b21\u4e4c\u4e91\u5cf0\u4f1a\u4e13\u4e1a\u573a\uff0c\u6211\u4eec\u9080\u8bf7\u4e86\u6765\u81ea\u552f\u54c1\u4f1a\u548c\u7f51\u4fe1\u91d1\u878d\u7b49\u516c\u53f8\u7684\u6280\u672f\u4e13\u5bb6\uff0c\u4ed6\u4eec\u5c06\u5206\u4eab\u5728\u4e92\u8054\u7f51\u91d1\u878d\u548c\u79fb\u52a8\u7aef\u9886\u57df\u7684\u4e00\u624b\u7ecf\u9a8c\uff0c\u5176\u4e2d\u5f88\u591a\u7ec6\u8282\u90fd\u662f\u9996\u6b21\u5bf9\u5916\u516c\u5f00\u3002
\n\n\u9ed1\u5ba2\u6700\u65b0\u653b\u51fb\u624b\u6bb5
\n\nDDoS \u653b\u51fb\u8ba9\u5927\u91cf\u4f01\u4e1a\u82e6\u4e0d\u582a\u8a00\uff0c\u8fd8\u6709\u4e0d\u5c11\u4f01\u4e1a\u5bf9\u5c42\u5c42\u90e8\u7f72\u7684\u9632\u706b\u5899\u548c WAF \u5c61\u88ab\u653b\u7834\u800c\u611f\u5230\u56f0\u60d1\u3002\u300c\u672a\u77e5\u653b\uff0c\u7109\u77e5\u9632\u300d\uff0c\u4e13\u4e1a\u573a\u4e0a\uff0c\u4e09\u4f4d\u6df1\u8c19 DDoS \u653b\u51fb\u3001WAF \u7ed5\u8fc7\u548c\u5916\u56f4\u653b\u51fb\u624b\u6bb5\u7684\u9ad8\u6c34\u5e73\u767d\u5e3d\u5b50\u5c06\u4e3a\u6211\u4eec\u5c55\u793a\u6700\u65b0\u7684\u6280\u672f\u548c\u65b9\u6cd5\u3002
\n\n\u5b89\u5168\u6807\u6746\u5b9e\u8df5\u7ecf\u9a8c
\n\n\u6211\u4eec\u9080\u8bf7\u4e86\u300c\u53bb\u54ea\u513f\u300d\u548c\u300c\u817e\u8baf\u300d\u4e24\u5bb6\u4e92\u8054\u7f51\u7684\u5b89\u5168\u6807\u6746\u4f01\u4e1a\u6765\u5cf0\u4f1a\u5206\u4eab\u3002\u4f5c\u4e3a\u7b2c\u4e00\u4e2a\u52a0\u5165\u300c\u53bb\u54ea\u513f\u300d\u7684\u5b89\u5168\u4eba\u5458\uff0c\u90ed\u6dfb\u68ee\u5c06\u9996\u6b21\u5206\u4eab\u4ed6\u4eec\u662f\u5982\u4f55\u4ece\u96f6\u5f00\u59cb\u642d\u5efa\u516c\u53f8\u5b89\u5168\u4f53\u7cfb\u7684\uff1b\u800c\u817e\u8baf\u5b89\u5168\u67b6\u6784\u5e08\u5f20\u6d77\u6e05\u5219\u5c06\u5728\u73b0\u573a\u63ed\u79d8\u817e\u8baf\u7684\u770b\u5bb6\u6cd5\u5b9d\u2014\u2014Web \u9632\u62a4\u5e73\u53f0\uff0c\u5e0c\u671b\u8ba9\u66f4\u591a\u4f01\u4e1a\u80fd\u4ece\u4e2d\u83b7\u5f97\u542f\u53d1\u3002
\n\n7 \u6708 18 \u65e5 Day2\u300c\u767d\u5e3d\u573a\u300d: WhiteHat Day
\n\n\u9762\u5411\u4eba\u7fa4\uff1a\u4fe1\u606f\u5b89\u5168\u7231\u597d\u8005\u3001\u4ece\u4e1a\u8005
\n\u6f14\u8bb2\u5609\u5bbe\uff08\u90e8\u5206\uff09\uff1a\u77e5\u540d\u81ea\u5a92\u4f53\u6c60\u5efa\u5f3a\u3001\u77e5\u540d\u81ea\u5a92\u4f53 Roy Li\u3001UCloud \u521b\u59cb\u4eba\u5b63\u6615\u534e\u3001\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u5b89\u5168\u526f\u603b\u88c1\u675c\u8dc3\u8fdb\u3001IBM \u5b89\u5168\u7cfb\u7edf\u67b6\u6784\u5e08\u674e\u627f\u8fbe\uff08\u53f0\u6e7e\uff09\u3001PKAV \u56e2\u961f\u521b\u59cb\u4eba OnlyGuest\u3001\u4e4c\u4e91\u521b\u59cb\u4eba\u65b9\u5c0f\u987f\u3001\u4e4c\u4e91\u6f0f\u6d1e\u5e73\u53f0\u8d1f\u8d23\u4eba\u5b5f\u5353\u3002
\u7b80\u4ecb\uff1a\u5c06\u6709\u8fd1 20 \u4f4d\u5b89\u5168\u524d\u8f88\u3001\u6280\u672f\u5927\u725b\u548c\u65b0\u664b\u5f3a\u4eba\u5e26\u6765\u7cbe\u5f69\u5206\u4eab\u3002\u73b0\u573a\u8fd8\u5c06\u300c\u9996\u53d1\u300d\u591a\u4e2a\u4ee4\u4eba\u610f\u60f3\u4e0d\u5230\u7684\u5b89\u5168\u95ee\u9898\u2014\u2014\u4f60\u4e0d\u4ec5\u80fd\u4e86\u89e3\u5230\u6700\u65b0\u6700\u9177\u7684\u5b89\u5168\u6280\u672f\uff0c\u8fd8\u80fd\u4e0e\u65b9\u5411\u8be1\u5f02\u7684\u5b89\u5168\u7814\u7a76\u8005\u7fa4\u4f53\u6df1\u5165\u4ea4\u6d41\u3001\u751a\u81f3\u8ba4\u8bc6\u4f60\u672a\u6765\u7684\u8001\u5e08\u548c\u4f19\u4f34\u3002
\n\nHackReal
\n\n\u4e3a\u8ba9\u66f4\u591a\u4eba\u4e86\u89e3\u5b89\u5168\u95ee\u9898\u5e76\u4f7f\u95ee\u9898\u5f97\u4ee5\u89e3\u51b3\uff0c\u4e4c\u4e91\u53ca\u767d\u5e3d\u5b50\u4eec\u5728\u4eca\u5e74 3 \u6708\u53d1\u8d77\u4e86\u300c\u4f60\u8eab\u8fb9\u7684\u5b89\u5168\u300d\u4e3a\u4e3b\u9898\u7684\u4f17\u6d4b\u9879\u76ee\u3002\u6570\u767e\u540d\u767d\u5e3d\u5b50\u63d0\u4ea4\u4e86\u6781\u5177\u6280\u672f\u542b\u91cf\u7684\u6f0f\u6d1e\uff0c\u6d89\u53ca\u65e0\u4eba\u98de\u884c\u5668\u3001\u624b\u673a\u3001\u4e91\u670d\u52a1\u548c\u5ba2\u6237\u7aef\u7b49\u7b49\uff0c\u5176\u4e2d\u6709\u4e9b\u6f0f\u6d1e\u5df2\u88ab\u9ed1\u4ea7\u5229\u7528\uff0c\u5bfc\u81f4\u5bf9\u4e2a\u4eba\u9690\u79c1\u6216\u4f01\u4e1a\u8d22\u4ea7\u9020\u6210\u4e25\u91cd\u5f71\u54cd\u3002\u672c\u6b21\u5cf0\u4f1a\u6211\u4eec\u5c06\u4ece\u4e2d\u6311\u9009\u51fa\u90e8\u5206\u5185\u5bb9\u8fdb\u884c\u6f14\u793a\uff0c\u76f8\u4fe1\u4f1a\u8ba9\u4f60\u5927\u5f00\u773c\u754c\u3002
\n\n\u7b97\u5366\u644a
\n\n\u300c\u7b97\u5366\u644a\u300d\u662f\u53f0\u6e7e HITCON \u7684\u4fdd\u7559\u73af\u8282\uff0c\u901a\u8fc7\u9ed1\u5ba2\u524d\u8f88\u8bb2\u8ff0\u4e2a\u4eba\u7ecf\u5386\u4ee5\u7ed9\u5b89\u5168\u4ece\u4e1a\u8005\u5e26\u6765\u542f\u53d1\u3002\u4eca\u5e74\u7684\u4e4c\u4e91\u5cf0\u4f1a\u4e5f\u5f15\u5165\u4e86\u8be5\u73af\u8282\u3002\u5c06\u6709\u53f0\u6e7e HITCON \u521b\u59cb\u4eba TT\u3001\u4e4c\u4e91\u521b\u59cb\u4eba\u5251\u5fc3\u3001UCloud \u521b\u59cb\u4eba\u5b63\u6615\u534e\u3001\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u5b89\u5168\u526f\u603b\u88c1\u675c\u8dc3\u8fdb\u3001IBM \u5b89\u5168\u7cfb\u7edf\u67b6\u6784\u5e08\u674e\u627f\u8fbe\uff08\u53f0\u6e7e\uff09\u7b49\u5927\u9646\u53f0\u6e7e\u6781\u5177\u4ee3\u8868\u7684\u5b89\u5168\u5927\u5496\u6c47\u805a\u4e00\u5802\uff0c\u7545\u8c08\u4e24\u5730\u9ed1\u5ba2\u6587\u5316\u3001\u5b89\u5168\u4ea7\u4e1a\u4e0e\u6280\u672f\u53d8\u8fc1\u3002\u8be5\u73af\u8282\u7531\u77e5\u540d\u81ea\u5a92\u4f53\u4eba\u6c60\u5efa\u5f3a\u4e3b\u6301\uff0c\u5e76\u5c06\u6709\u4e00\u4f4d\u5168\u7403\u8457\u540d\u5b89\u5168\u4eba\u58eb\u51fa\u5e2d\u3002
\n\nWooKnows
\n\n\u53f0\u6e7e\u8457\u540d CTF \u56e2\u961f\u961f\u957f Orange \u5c06\u8bb2\u8ff0 HITCON \u56e2\u961f\u7684\u7ec4\u5efa\u5386\u7a0b\u53ca\u56fd\u9645\u6bd4\u8d5b\u4e2d\u597d\u73a9\u7684\u6545\u4e8b\uff1b\u81ea\u5a92\u4f53\u5389\u54e5 (Roy Li) \u4e5f\u5c06\u8385\u4e34\u73b0\u573a\u2014\u2014\u4ed6\u8ba4\u4e3a\u5f88\u591a\u89c4\u5219\u90fd\u975e\u5e38\u8352\u8c2c\u3001\u5e94\u8be5\u88ab\u6253\u7834\uff0c\u6240\u4ee5\u4ed6\u5c06\u5c55\u793a\u8fd9\u4e9b\u89c4\u5219\u4e0b\u6ecb\u751f\u7684\u5b89\u5168\u6bd2\u7624\uff1b\u4e4c\u4e91\u4e3b\u7ad9\u8d1f\u8d23\u4eba\u75af\u72d7\uff08\u5b5f\u5353\uff09\u5219\u5c06\u63ed\u793a\u4eca\u5e74\u5cf0\u4f1a\u65f6\u95f4\u7684\u7279\u6b8a\u542b\u4e49\u53ca\u56fd\u5185\u5b89\u5168\u73af\u5883\u7684\u771f\u6b63\u73b0\u72b6\u3002
\n\n\u5b89\u5168\u5965\u65af\u5361
\n\n\u6211\u4eec\u8fd8\u5b89\u6392\u4e86\u4e00\u4e2a\u6709\u8da3\u7684\u73af\u8282\u300c\u5b89\u5168\u5965\u65af\u5361\u300d\u2014\u2014\u4e3a\u4f01\u4e1a\u548c\u767d\u5e3d\u5b50\u9881\u5956\u3002\u4f01\u4e1a\u9881\u5956\u7684\u4f9d\u636e\u6765\u81ea\u793e\u533a\u63a8\u9009\uff0c\u5f88\u591a\u4f18\u79c0\u4f01\u4e1a\u7684\u5b89\u5168\u884c\u52a8\u503c\u5f97\u5206\u4eab\u548c\u9f13\u52b1\uff0c\u4e5f\u6709\u4e9b\u4f01\u4e1a\u5bf9\u5b89\u5168\u7684\u505a\u6cd5\u503c\u5f97\u63a2\u8ba8\uff0c\u6211\u4eec\u5c06\u6839\u636e\u767d\u5e3d\u5b50\u7684\u6295\u7968\u7ed3\u679c\u6765\u8fdb\u884c\u8bc4\u9009\u548c\u516c\u5e03\uff1b\u540c\u65f6\uff0c\u4f5c\u4e3a\u6bcf\u5e74\u4e00\u5ea6\u7684\u767d\u5e3d\u5b50\u5927\u805a\u4f1a\uff0c\u6211\u4eec\u4e5f\u5c06\u4e3a\u8fc7\u53bb\u4e00\u5e74\u8868\u73b0\u7a81\u51fa\u7684\u767d\u5e3d\u5b50\u8fdb\u884c\u300c\u52a0\u5195\u300d\uff0c\u671f\u5f85\u4ed6\u4eec\u672a\u6765\u505a\u5f97\u66f4\u597d\u3002
\n\n\u4f60\u8fd8\u8bb0\u5f97 17 \u5e74\u524d\u7684\u90a3\u4e2a\u56db\u6708\u5417\uff1f\u5728\u53f0\u6e7e\uff0c\u6ca1\u6709\u5927\u660e\u6e56\u7554\u7684\u590f\u96e8\u8377\uff0c\u53ea\u6709\u4e00\u4e2a\u8ba9\u6280\u672f\u5b85\u4eec\u4e3a\u4e4b\u9707\u60ca\u3001\u8ba9\u5404\u4e2a\u56fd\u5bb6\u60f6\u6050\u7684\u7535\u8111\u9b3c\u624d\u2014\u2014CIH \u75c5\u6bd2\u5236\u9020\u8005\u9648\u76c8\u8c6a\u3002
\n\n1998 \u5e74 4 \u6708 26 \u65e5\uff0c\u5f53\u65f6\u8fd8\u662f\u5927\u5b66\u6bd5\u4e1a\u751f\u7684\u9648\u76c8\u8c6a\u5236\u9020\u51fa\u7684 CIH \u7535\u8111\u75c5\u6bd2\u5171\u9020\u6210\u5168\u7403 6000 \u4e07\u53f0\u7535\u8111\u762b\u75ea\uff0c\u97e9\u56fd\u3001\u571f\u8033\u5176\u3001\u5b5f\u52a0\u62c9\u3001\u65b0\u52a0\u5761\u3001\u9a6c\u6765\u897f\u4e9a\u3001\u4fc4\u7f57\u65af\u3001\u4e2d\u56fd\u5185\u5730\u7684\u7535\u8111\u5747\u60e8\u906d CIH \u75c5\u6bd2\u7684\u88ad\u51fb\u3002
\n\n\u8fd9\u4e2a\u590f\u5929\uff0c\u8fd9\u4f4d\u4f60\u66fe\u7ecf\u53ea\u80fd\u5728\u767e\u5ea6\u767e\u79d1\u770b\u5230\u7684\u7535\u8111\u5929\u624d\u5c06\u9996\u6b21\u4eae\u76f8\u5185\u5730\uff0c\u53c2\u4e0e\u4e4c\u4e91\u767d\u5e3d\u5b50\u5927\u4f1a\uff0c\u5750\u4e0a\u5706\u684c\u7b49\u4f60\u63d0\u95ee\uff01
\n\n\u6b64\u6b21\u5927\u4f1a\u5c06\u4e0a\u6f14\u53f0\u6e7e\u9ed1\u5ba2\u5927\u4f1a HITCON \u7684\u4fdd\u7559\u8282\u76ee\u300c\u7b97\u5366\u644a\u300d\uff0c\u7531\u77e5\u540d\u81ea\u5a92\u4f53\u6c60\u5efa\u5f3a\u8001\u5e08\u4e3b\u6301\uff0c\u4e4c\u4e91\u521b\u59cb\u4eba\u5251\u5fc3\u3001UCloud \u521b\u59cb\u4eba\u5b63\u6615\u534e\u3001\u963f\u91cc\u5b89\u5168 VP \u675c\u8dc3\u8fdb\u7b49\u6280\u672f\u5927\u5496\uff0c\u5c06\u643a\u624b\u6765\u81ea\u53f0\u6e7e\u7684 HITCON \u521b\u59cb\u4eba TT\u3001IBM \u5b89\u5168\u67b6\u6784\u5e08\u674e\u627f\u8fbe\u3001CIH \u75c5\u6bd2\u4f5c\u8005\u9648\u76c8\u8c6a\uff0c\u4e3a\u4f60\u8bb2\u8ff0\u4ed6\u4eec\u7684\u4e2a\u4eba\u7ecf\u5386\uff0c\u89e3\u7b54\u4f60\u5bf9\u884c\u4e1a\u548c\u6280\u672f\u7684\u76f8\u5173\u63d0\u95ee\uff01
\n\nDDos \u4f5c\u4e3a\u6d41\u6c13\u5f0f\u6ce2\u6d9b\u6c79\u6d8c\u7684\u653b\u51fb\u624b\u6bb5\uff0c\u5230\u5e95\u53c8\u6f14\u53d8\u51fa\u4e86\u54ea\u4e9b\u65b0\u7684\u65b9\u5f0f\uff1f\uff01\u542c\u8bf4\u505a\u7740\u5730\u4e0b\u9ed1\u4ea7\u7684\u9ed1\u5e3d\u4eec\u7684\u6280\u672f\u66f4\u65b0\u6bd4\u767d\u5e3d\u66f4\u5feb\u662f\u4e0d\u662f\u771f\u7684\uff1f\uff01\u8b66\u5bdf\u8700\u9ecd\u6765\u5206\u4eab\u4ece\u6848\u4ef6\u4e2d\u83b7\u53d6\u5230\u7684\u56fd\u5185 DDos \u6700\u65b0\u65b9\u5f0f\uff0c\u4f46\u4f60\u4e86\u89e3 DDos \u90a3\u4e0d\u4e3a\u4eba\u77e5\u7684\u8fdb\u5316\uff01
\n\n\u9664\u4e86\u8b66\u5bdf\u8700\u9ecd\u5e26\u6765\u7684\u5206\u4eab\u4ee5\u5916\uff0c\u8fd8\u6709\u591a\u6b21\u5728\u5404\u5927 CTF \u6bd4\u8d5b\u4e2d\u540d\u5217\u524d\u8305\u7684\u4e0a\u4ea4\u7684\u540c\u5b66\u901a\u8fc7\u771f\u5b9e\u7684\u73b0\u573a\u6f14\u793a\u4e3a\u4f60\u5206\u6790\u6bcf\u5929\u5728\u7528\u7684\u624b\u673a\u5361\u5230\u5e95\u5b89\u5168\u4e0d\u5b89\u5168\u3002
\n\n\u65e0\u4eba\u673a\u542c\u8d77\u6765\u5f88\u9177\u70ab\uff0c\u4f5c\u4e3a\u6781\u5ba2\u70ed\u8877\u7684\u73a9\u5177\uff0c\u98de\u884c\u8fd9\u4ef6\u5c0f\u4e8b\u5230\u5e95\u9664\u4e86\u80fd\u5e2e\u4eba\u7c7b\u5b9e\u73b0\u98de\u884c\u68a6\u60f3\u4ee5\u5916\uff0c\u6709\u6ca1\u6709\u9690\u85cf\u7740\u88ab\u5ffd\u89c6\u7684\u5b89\u5168\u95ee\u9898\uff1f\u5927\u4f1a\u4e0a\uff0c\u767d\u5e3d\u5b50\u5c06\u73b0\u573a\u6f14\u793a\u65e0\u4eba\u673a\u7684\u5b89\u5168\u95ee\u9898\uff0c\u5e26\u4f60\u5168\u65b9\u4f4d\u4e86\u89e3\u98de\u884c\u5668\u3002
\n\n\u8fd8\u6709\u66f4\u591a\u52b2\u7206\u7684\u73b0\u573a\u6f14\u793a\u53ca\u6280\u672f\u89e3\u5bc6\uff0c\u5e26\u4f60\u63ed\u5f00\u8fd9\u4e9b\u5b89\u5168\u6280\u672f\u795e\u79d8\u7684\u9762\u7eb1\uff01
\n\n\u5c06\u4f60\u7684\u300cGitCafe \u7528\u6237\u540d\u300d\u7559\u8a00\u5728\u4e0b\u9762\uff0c\u5c31\u6709\u673a\u4f1a\u83b7\u5f97\u4e4c\u4e91 2015 \u767d\u5e3d\u5b50\u5927\u4f1a WhiteHat Day \u95e8\u7968\uff01\u6211\u4eec\u5c06\u4ece\u53c2\u4e0e\u6d3b\u52a8\u7684\u4eba\u4e2d\u62bd\u53d6 5 \u4f4d\u5e78\u8fd0\u7528\u6237\uff0c\u540d\u989d\u6709\u9650\uff01
\n\n\u622a\u6b62\u65e5\u671f\uff1a7 \u6708 14 \u65e5
\n", "date_published": "2015-07-10T10:34:24+00:00", "title": "\u798f\u5229 | \u4e4c\u4e91 2015 \u767d\u5e3d\u5b50\u5927\u4f1a\uff0c\u95e8\u7968\u5927\u653e\u9001", "id": "t/204828" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/204808", "date_modified": "2015-07-10T09:15:01+00:00", "content_html": "GitCafe \u7684\u5e2e\u52a9\u6587\u6863\u4e4b\u524d\u4e00\u76f4\u4ee5\u9879\u76ee Wiki \u7684\u5f62\u5f0f\u6765\u4e3a\u5927\u5bb6\u63d0\u4f9b\u670d\u52a1\uff0c\u4f46\u968f\u7740 GitCafe \u529f\u80fd\u7684\u4e0d\u65ad\u589e\u52a0\uff0c\u4e3a\u4e86\u66f4\u597d\u5730\u5448\u73b0\u6587\u6863\uff0c\u7ed9\u5927\u5bb6\u63d0\u4f9b\u66f4\u52a0\u6e05\u6670\u3001\u4fbf\u6377\u7684\u5e2e\u52a9\u670d\u52a1\uff0c\u6211\u4eec\u5bf9 GitCafe \u7684\u5e2e\u52a9\u6587\u6863\u8fdb\u884c\u4e86\u5168\u65b0\u6539\u7248\uff0c\u5e76\u5927\u5e45\u66f4\u65b0\u4e86\u6587\u6863\u5185\u5bb9\u3002
\n\n\u73b0\u5728\uff0c\u4f60\u5c31\u53ef\u4ee5\u901a\u8fc7\u8bbf\u95ee https://help.gitcafe.com \u5148\u7779\u4e3a\u5feb\u3002
\n\n
\u9664\u4e86\u72ec\u7acb\u7684\u57df\u540d\u548c\u5168\u65b0\u7684\u8bbe\u8ba1\u4e4b\u5916\uff0c\u6211\u4eec\u8fd8\u9488\u5bf9\u6587\u6863\u5185\u5bb9\u505a\u4e86\u4ee5\u4e0b\u66f4\u65b0\uff1a
\n\n\u9664\u4e86\u5bf9\u5e38\u89c1\u7684\u95ee\u9898\u64b0\u5199\u5e2e\u52a9\u6587\u6863\u4e4b\u5916\uff0c\u6211\u4eec\u8fd8\u5728\u65b0\u7248\u5e2e\u52a9\u6587\u6863\u4f53\u7cfb\u4e2d\u65b0\u589e\u4e86\u4e00\u4e2a\u540d\u4e3a \u300c\u6700\u4f73\u5b9e\u8df5\u300d \u7684\u680f\u76ee\u3002
\n\n
\u6700\u4f73\u5b9e\u8df5\u5185\u5bb9\u5b9a\u4f4d\u4e8e\u300c\u5bf9 Git \u548c GitCafe \u5728\u4e0d\u540c\u6280\u672f\u65b9\u5411\u548c\u9886\u57df\u7684\u4f7f\u7528\u7ecf\u9a8c\u5206\u4eab\u300d\uff1b\u8fd9\u4e2a\u680f\u76ee\u957f\u671f\u5f81\u7a3f\uff0c\u5982\u679c\u4f60\u6709\u57fa\u4e8e Git\u3001GitCafe \u7684\u6df1\u5165\u4f7f\u7528\u7ecf\u9a8c\u3001\u6280\u5de7\u6216\u57fa\u4e8e Git\u3001GitCafe \u5728\u5176\u4ed6\u9886\u57df\u505a\u4e86\u4e9b\u6709\u8da3\u7684\u5b9e\u8df5\uff0c\u6b22\u8fce\u7ed9\u6211\u4eec\u6295\u7a3f\u3002
\n\n\u53ef\u4ee5\u5c06\u7a3f\u4ef6\u6216\u6587\u7ae0\u94fe\u63a5\u53d1\u9001\u5230 [support@gitcafe.com](support@gitcafe.com)\uff0c\u90ae\u4ef6\u6807\u9898\u8bf7\u6ce8\u660e\u300c\u6700\u4f73\u5b9e\u8df5\u6295\u7a3f\u300d\u3002\u6211\u4eec\u4f1a\u6839\u636e\u7a3f\u4ef6\u9009\u9898\u65b9\u5411\u548c\u8d28\u91cf\u6709\u9009\u62e9\u7684\u53d1\u5e03\uff0c\u5728\u6587\u7ae0\u4e2d\u6807\u660e\u4f5c\u8005\u548c\u51fa\u5904\uff0c\u5e76\u4e3a\u5165\u9009\u7684\u7a3f\u4ef6\u4f5c\u8005\u63d0\u4f9b\u4e30\u539a\u7684 GitCoin \u4f5c\u4e3a\u5956\u52b1\u3002
\n\n\u5982\u679c\u9605\u8bfb\u5e2e\u52a9\u6587\u6863\u4e2d\u7684\u5185\u5bb9\u4f9d\u7136\u65e0\u6cd5\u89e3\u51b3\u4f60\u7684\u95ee\u9898\uff0c\u4f60\u8fd8\u53ef\u4ee5\u901a\u8fc7 \u63d0\u4ea4\u5de5\u5355 \u6216\u53d1\u9001\u95ee\u9898\u90ae\u4ef6\u81f3 [support@gitcafe.com](support@gitcafe.com) \u7684\u65b9\u5f0f\u5bfb\u6c42\u8fdb\u4e00\u6b65\u7684\u5e2e\u52a9\u3002\u5bf9\u4e8e Help \u6b64\u6b21\u6539\u7248\u7684\u610f\u89c1\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u8fd9\u79cd\u65b9\u5f0f\u8fdb\u884c\u53cd\u9988\uff0c\u6211\u4eec\u671f\u5f85\u4f60\u7684\u5b9d\u8d35\u610f\u89c1\uff1a\uff09
\n\n\u6b64\u5916\uff0c\u6211\u4eec\u4e5f\u5c06\u4fdd\u7559\u65e7\u7248\u7684\u5e2e\u52a9\u6587\u6863\uff0c\u53ef\u4ee5\u8bbf\u95ee https://gitcafe.com/GitCafe/Help\u3002
\n\n\u5373\u523b\u542f\u7a0b\uff0c\u6211\u4eec\u4e3a\u4f60\u4fdd\u9a7e\u62a4\u822a\u3002
\n", "date_published": "2015-07-10T09:14:28+00:00", "title": "GitCafe Help \u5168\u65b0\u6539\u7248\uff0c\u5e2e\u52a9\u66f4\u597d\u7684\u4f60", "id": "t/204808" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/203910", "date_modified": "2015-07-07T03:54:24+00:00", "content_html": "\u7ee7\u4e0a\u5468\u7684\u300c\u5c0f\u7ec4\u300d\u4e0e\u300c\u4ee3\u7801\u5bf9\u6bd4\u300d\u529f\u80fd\u51fa\u7089\u4ee5\u540e\uff0cGitCafe \u65b0\u589e\u4e86\u4ee3\u7801\u8d21\u732e\u7edf\u8ba1\u529f\u80fd\uff0c\u6709\u4e86\u5b83\u4f1a\u7ed9\u5927\u5bb6\u5e26\u6765\u600e\u6837\u7684\u60ca\u559c\u5462\uff0c\u5148\u6765\u4e00\u7779\u4e3a\u5feb\u5427\u3002
\n\n\u5bf9\u4e8e\u5177\u6709\u4e00\u5b9a\u89c4\u6a21\u7684\u534f\u4f5c\u9879\u76ee\uff0c\u5f53\u60f3\u8981\u67e5\u770b\u5b83\u7684\u63d0\u4ea4 (commit) \u72b6\u51b5\u65f6\uff0c\u91c7\u7528\u53ef\u89c6\u5316\u7684\u65b9\u5f0f\u662f\u6700\u76f4\u63a5\u3001\u65b9\u4fbf\u4e14\u6709\u610f\u4e49\u7684\u3002
\n\n\u9664\u6b64\u4e4b\u5916\uff0c\u53c2\u4e0e\u8005\u4e5f\u80fd\u968f\u65f6\u56de\u987e\u81ea\u5df1\u5bf9\u9879\u76ee\u7684\u8d21\u732e\u5ea6\uff0c\u63d0\u9ad8\u53c2\u4e0e\u70ed\u60c5\u3002
\n\n\u800c\u5bf9\u4e8e\u666e\u901a\u7528\u6237\uff0c\u8d21\u732e\u7edf\u8ba1\u4e5f\u53ef\u4ee5\u4e3a\u4ed6\u4eec\u4e86\u89e3\u9879\u76ee\u7684\u6d3b\u8dc3\u5ea6\u63d0\u4f9b\u4e00\u5b9a\u53c2\u8003\u3002
\n\n\u70b9\u51fb\u300c\u9879\u76ee\u5bfc\u822a\u680f\u300d\u4e2d\u7684\u300c\u7edf\u8ba1\u56fe\u300d(Graph) \u94fe\u63a5\uff0c\u5373\u53ef\u663e\u793a\u5f53\u524d\u5206\u652f\u7684\u7edf\u8ba1\u7ed3\u679c\u3002
\n
\u7528\u6237\u672c\u8eab\u65e0\u9700\u505a\u4efb\u4f55\u8bbe\u7f6e\u3002\u8be5\u529f\u80fd\u4e5f\u4e0d\u4f1a\u6536\u53d6\u989d\u5916\u7684 GitCoin\u3002
\u7528\u6237\u7684\u300c\u8d21\u732e\u300d\u6309\u7167\u300c\u63d0\u4ea4\u300d(commit) \u7684\u6570\u91cf\u8ba1\u7b97\uff0c\u5e76\u8fdb\u884c\u6392\u5e8f\u663e\u793a\u3002
\u53ef\u4ee5\u9009\u5b9a\u4e0d\u540c\u7684\u65f6\u95f4\u6bb5\u663e\u793a\u7edf\u8ba1\u7ed3\u679c\u3002
\n
\u4e00\u6b21\u53ea\u8ba1\u7b97\u67d0\u4e00\u4e2a\u5206\u652f\u4e0a\u7684\u6240\u6709\u63d0\u4ea4\u3002\u4e0d\u5305\u62ec\u5408\u5e76 (merge) \u672c\u8eab\u7684\u90a3\u4e2a\u63d0\u4ea4\u3002
\u9ed8\u8ba4\u663e\u793a\u9ed8\u8ba4\u5206\u652f\u7684\u7edf\u8ba1\u7ed3\u679c\u3002\u53ef\u4ee5\u901a\u8fc7\u6309\u94ae\u5207\u6362\u5206\u652f\u3002
\n
\u7531\u4e8e\u662f\u5b9e\u65f6\u7edf\u8ba1\uff0c\u5bf9\u4e8e\u8f83\u5927\u7684\u9879\u76ee\uff0c\u53ef\u80fd\u9700\u8981\u4e00\u5b9a\u7b49\u5f85\u7684\u65f6\u95f4\u624d\u4f1a\u663e\u793a\u9875\u9762\u3002
\u6307\u5b9a\u65f6\u95f4\u5185\u67d0\u4e2a\u7528\u6237\u63d0\u4ea4\u7684\u6570\u91cf\u3002\u5982\u679c\u6ca1\u6709\u6307\u5b9a\u5219\u8ba1\u7b97\u6574\u4e2a\u5206\u652f\u4e0a\u7684\u6240\u6709\u63d0\u4ea4\u3002
\u7528\u6237\u6240\u6709\u63d0\u4ea4\u7684\u4fee\u6539\u884c\u6570\uff0c\u5305\u62ec\u589e\u52a0\u7684\u884c\u548c\u5220\u9664\u7684\u884c\u3002
\n
\u5982\u679c\u53c2\u4e0e\u7684\u7528\u6237\u662f GitCafe \u7684\u6ce8\u518c\u7528\u6237\uff0c\u5219\u7528\u6237\u540d\u4f1a\u4ee5\u94fe\u63a5\u65b9\u5f0f\u663e\u793a\u3002
\n
\u73b0\u5728\u5c31\u53bb GitCafe \u4f53\u9a8c\u6570\u636e\u53ef\u89c6\u5316\u7684\u9b45\u529b\u5427\u3002
\n", "date_published": "2015-07-07T03:54:13+00:00", "title": "GitCafe \u65b0\u589e\u4ee3\u7801\u8d21\u732e\u7edf\u8ba1\u529f\u80fd", "id": "t/203910" }, { "author": { "url": "member/kawaiiushio", "name": "kawaiiushio", "avatar": "https://cdn.v2ex.com/avatar/4979/feab/41874_large.png?m=1471706495" }, "url": "t/202702", "date_modified": "2015-07-02T03:13:36+00:00", "content_html": "
\n\n\n\u4f17\u6240\u5468\u77e5\uff0c\u4e92\u8054\u7f51\u884c\u4e1a\u7684\u5174\u8d77\uff0c\u4ee5\u53ca\u4e91\u8ba1\u7b97\uff0c\u4e91\u5b58\u50a8\u7b49\u89e3\u51b3\u65b9\u6848\u7684\u5e7f\u6cdb\u5e94\u7528\u8ba9\u8d8a\u6765\u8d8a\u591a\u7684\u4f01\u4e1a\u4ee5\u53ca\u7528\u6237\u5bf9\u4e92\u8054\u7f51\u5b89\u5168\u8d8a\u6765\u8d8a\u91cd\u89c6\uff0c\u540c\u65f6\u4e92\u8054\u7f51\u5e94\u7528\u6240\u5e26\u6765\u7684\u8d8a\u6765\u8d8a\u591a\u7684\u5927\u6570\u636e\uff0c\u4e5f\u6210\u4e3a\u5173\u6ce8\u7684\u7126\u70b9\u3002
\n\n\u4e3a\u6b64\uff0c\u60e0\u666e\u7279\u522b\u9488\u5bf9\u4e91\u89e3\u51b3\u65b9\u6848\u3001\u6570\u636e\u5b89\u5168\u53ca\u5206\u6790\u7b49\u5185\u5bb9\uff0c\u4e8e2015\u5e747\u6708\u5728\u5317\u4eac\u548c\u4e0a\u6d77\u4e3e\u529e\u201c\u60e0\u666e\u4e92\u8054\u7f51\u884c\u4e1a\u5ba2\u6237\u7814\u8ba8\u4f1a-\u66a8\u60e0\u666e\u9996\u5c4a\u9ed1\u5ba2\u9a6c\u62c9\u677e\u7ade\u8d5b\u201d\u3001\u901a\u8fc7\u6536\u96c6\u5ba2\u6237\u5728\u4e91\u3001\u5927\u6570\u636e\u7b49\u65b9\u9762\u7684\u95ee\u9898\u4f5c\u4e3a\u672c\u6b21\u5927\u8d5b\u7684\u547d\u9898\uff0c\u8ba9\u53c2\u8d5b\u201c\u9ed1\u5ba2\u4eec\u201d\u5404\u51fa\u5947\u62db\u3002
\n\n\u6211\u4eec\u671f\u5f85\u5168\u56fd\u5f00\u53d1\u8005\u7684\u53c2\u52a0\uff0c\u4e0e\u6211\u4eec\u4e00\u8d77\u8fdb\u5165\u201c\u9ed1\u5ba2\u201d\u6a21\u5f0f\u3002
\n

\u300c\u795e\u79d8\u5956\u54c1\u300d/Apple Watch Sport/\u5c0f\u7c73\u7a7a\u6c14\u51c0\u5316\u5668
\n
\u53c2\u8d5b\u5956
\n300 GitCoin
\u51e1\u662f\u53c2\u52a0\u672c\u6b21\u300c\u60e0\u666e\u4e92\u8054\u7f51\u884c\u4e1a\u5ba2\u6237\u7814\u8ba8\u4f1a \u2014\u2014 \u66a8\u60e0\u666e\u9996\u5c4a\u9ed1\u5ba2\u9a6c\u62c9\u677e\u7ade\u8d5b\uff08\u5317\u4eac\u7ad9\uff09\u300d\u7684\u9009\u624b\u90fd\u53ef\u4ee5\u83b7\u5f97 GitCafe \u63d0\u4f9b\u7684 300 GitCoin \u7528\u4e8e\u521b\u5efa\u79c1\u6709\u9879\u76ee\u3002
\n\n
\u5434\u4e1a\u7fd4
\n\n\u4e2d\u56fd\u60e0\u666e\u526f\u603b\u88c1
\n\n\u4f01\u4e1a\u96c6\u56e2 \u4e92\u8054\u7f51\u521b\u65b0\u4e8b\u4e1a\u90e8\u603b\u7ecf\u7406
\n\n\u5434\u4e1a\u7fd4\u5bf9\u4f01\u4e1a\u8425\u9500\u4e0eP&L\u7ba1\u7406\uff0c\u6709\u4f18\u79c0\u7684\u4e1a\u7ee9\u8bb0\u5f55\uff0c\u5148\u540e\u670d\u52a1\u4e8e\u60e0\u666e\u4e0e\u6234\u5c14\u4e24\u5bb6\u8de8\u56fdIT\u4f01\u4e1a\uff0c\u51fa\u4efb\u591a\u4e2a\u90e8\u95e8\u4e4b\u9ad8\u7ba1\u3002\u62e5\u6709\u8d44\u6df1\u4e92\u8054\u7f51\u4e0e\u91d1\u878d\u884c\u4e1a\u8425\u9500\u7ecf\u9a8c\uff0c\u5176\u9886\u5bfc\u7684\u4e92\u8054\u7f51\u521b\u65b0\u4e8b\u4e1a\u56e2\u961f\u534f\u52a9\u591a\u5bb6\u4e92\u8054\u7f51\u4f01\u4e1a\u5728\u521b\u4e1a\u521d\u671f\u7684\u57fa\u7840\u67b6\u6784\u5efa\u8bbe\u4e0e\u8fd0\u7ef4\uff0c\u5e76\u6210\u4e3a\u591a\u5bb6\u4f01\u4e1a\u4e91\u6218\u7565\u5408\u4f5c\u4f19\u4f34\u3002
\n\n
\u7b26\u5e86\u660e
\n\nCTO \u5317\u4eac\u91d1\u5c71\u4e91\u7f51\u7edc\u6280\u672f\u6709\u9650\u516c\u53f8
\n\n\u7b26\u5e86\u660e\u662f\u4e2d\u56fd\u4e91\u8ba1\u7b97\u884c\u4e1a\u7684\u9886\u519b\u7ea7\u4eba\u7269\uff0c\u5176\u4e00\u624b\u6784\u5efa\u4e86\u65b0\u6d6a\u79c1\u6709\u4e91\u548c\u516c\u6709\u4e91\uff0c\u7814\u53d1\u4e86\u56fd\u5185\u6700\u65e9\u7684PaaS\u5e73\u53f0\u30022015\u5e741\u6708\u52a0\u76df\u91d1\u5c71\u4e91\uff0c\u4e3a\u91d1\u5c71\u4e91\u6280\u672f\u56e2\u961f\u52a0\u4e86\u4e00\u5757\u91cd\u91cf\u7ea7\u7684\u781d\u7801\u3002
\n\n
\u738b\u5dcd
\n\n\u65b0\u6d6a\u5fae\u535a
\n\n
\u77f3\u5efa\u5f3a
\n\n\u60e0\u666e\u8f6f\u4ef6\u96c6\u56e2\u4e2d\u56fd\u533a \u5927\u6570\u636e\u5e73\u53f0\u603b\u7ecf\u7406
\n\n\u77f3\u5efa\u5f3a\u5148\u751f\u5728\u5927\u6570\u636e\u5904\u7406\u65b9\u9762\u6709\u7740\u4e30\u5bcc\u7684\u7ecf\u9a8c\uff0c\u5305\u62ec\u7ed3\u6784\u5316\u548c\u975e\u7ed3\u6784\u5316\u4fe1\u606f\u5904\u7406\u9886\u57df\u3002\u4ed6\u672c\u4eba\u53c2\u4e0e\u8fc7\u591a\u4e2a\u5927\u578b\u5ba2\u6237\u7684\u76f8\u5173\u9879\u76ee\uff0c\u5305\u62ec\u56fd\u5bb6\u7535\u7f51\u3001\u4e2d\u56fd\u77f3\u6cb9\u3001CCTV\u3001\u4e2d\u56fd\u79fb\u52a8\u3001\u534e\u4e3a\u3001\u6df1\u5733\u8bc1\u5238\u4fe1\u606f\u516c\u53f8\u7b49\u7b49\u3002
\n\n
Thomas Yao
\n\nGitCafe CEO & Co-Founder
\n\n\u9700\u8981\u5c06\u4ee3\u7801\u63d0\u4ea4\u5728 GitCafe \u5e73\u53f0\u3002
\n\u521b\u5efa\u9879\u76ee\u65f6\uff0c\u5728\u300c\u6b64\u9879\u76ee\u5c5e\u4e8e\u7ebf\u4e0a\u6d3b\u52a8\u300d\u4e00\u680f\u4e2d\uff0c\u8bf7\u9009\u62e9\u300c\u60e0\u666e\u4e92\u8054\u7f51\u884c\u4e1a\u5ba2\u6237\u7814\u8ba8\u4f1a \u2014\u2014 \u66a8\u60e0\u666e\u9996\u5c4a\u9ed1\u5ba2\u9a6c\u62c9\u677e\u7ade\u8d5b\uff08\u5317\u4eac\u7ad9\uff09\u300d\u9009\u9879\u3002
\u8be6\u60c5\u8bf7\u89c1 https://campaign.gitcafe.com/hp-hackathon-bj
\n", "date_published": "2015-07-02T03:09:22+00:00", "title": "\u60e0\u666e\u4e92\u8054\u7f51\u884c\u4e1a\u5ba2\u6237\u7814\u8ba8\u4f1a \u2014\u2014 \u66a8\u60e0\u666e\u9996\u5c4a\u9ed1\u5ba2\u9a6c\u62c9\u677e\u7ade\u8d5b\uff08\u5317\u4eac\u7ad9\uff09", "id": "t/202702" }, { "author": { "url": "member/kawaiiushio", "name": "kawaiiushio", "avatar": "https://cdn.v2ex.com/avatar/4979/feab/41874_large.png?m=1471706495" }, "url": "t/202586", "date_modified": "2015-07-01T12:48:54+00:00", "content_html": "
\n\n\n\u300cNAO \u673a\u5668\u4eba\u521b\u5ba2\u7f16\u7a0b\u9a6c\u62c9\u677e\u300d\u662f Big Cyber \u5fc5\u9177\u8d5b\u535a , \u521b\u5ba2\u661f\u7403 , RoboMing \u4e0e GitCafe \u5408\u4f5c\u4e3e\u529e\u7684\u7ebf\u4e0a\u5f00\u53d1\u8005\u5927\u8d5b\u3002
\n\nNAO\u673a\u5668\u4eba\u662f\u4e00\u6b3e\u4eba\u5de5\u667a\u80fd\u673a\u5668\u4eba\u3002\u5b83\u62e5\u6709\u8ba9\u4eba\u559c\u6b22\u7684\u5916\u5f62\uff0c\u5177\u5907\u4e00\u5b9a\u6c34\u5e73\u7684\u4eba\u5de5\u667a\u80fd\uff0c\u80fd\u591f\u4e0d\u4eba\u4eb2\u5207\u7684\u4e92\u52a8\uff0c\u662f\u76ee\u524d\u4e16\u754c
\n\n
\n\u5b66\u672f\u9886\u57df\u5185\u8fd0\u7528\u6700\u5e7f\u6cdb\u7684\u7c7b\u4eba\u673a\u5668\u4eba\u3002NAO\u652f\u6301\u591a\u79cd\u7f16\u7a0b\u65b1\u5f0f\uff0c\u5141\u8bb8\u7528\u6237\u63a2\u7d22\u5404\u79cd\u5b9e\u9645\u5e94\u7528\u9886\u57df\uff0c\u5df2\u5728\u5168\u7403\u8303\u56f4\u5185\u5438\u5f15\u4e86\u4e00
\n\u5927\u6279\u7a0b\u5e8f\u5f00\u53d1\u4eba\u5458\u3002\u901a\u8fc7\u672c\u6b21NAO\u673a\u5668\u4eba\u521b\u5ba2\u7f16\u7a0b\u9a6c\u62c9\u677e\uff0c\u6211\u4eec\u5e0c\u671b\u63d0\u4f9b\u5168\u56fd\u521b\u5ba2\u4e00\u4e2a\u76f4\u63a5\u63a5\u89e6\u5168\u7403\u9876\u7ea7\u673a\u5668\u4eba\u786c\u4ef6\u548c\u8f6f\u4ef6\u5f00\u53d1\u73af\u5883\u7684\u4e00\u4e2a
\n\n
\n\u5b66\u4e60\u4e0e\u4ea4\u6d41\u5e73\u53f0\uff0c\u5145\u5206\u53d1\u6325\u521b\u5ba2\u7684\u521b\u9020\u529b\u548c\u6280\u672f\u5b9e\u73b0\u80fd\u529b\uff0c\u4e3aNAO\u673a\u5668\u4eba\u4e43\u81f3\u6574\u4e2a\u670d\u52a1\u673a\u5668\u4eba\u884c\u4e1a\u66f4\u5feb\u8fdb\u5165\u5b9e\u7528\u3001\u878d\u5165\u6211\u4eec
\n\u65e5\u5e38\u7684\u5bb6\u5ead\u4e0e\u751f\u6d3b\u8d21\u732e\u4e00\u4efd\u529b\u3002\u96c6\u4f17\u521b\u60f3\uff0c\u821e\u52a8\u521b\u610f\u2014\u2014\u73b0\u9762\u5411\u5168\u56fd\u521b\u5ba2\u53d1\u51fa\u82f1\u96c4\u5e16\uff0c\u7b49\u4f60\u6765\u6218\uff01
\n

\u9879\u76ee\u8bf4\u660e\uff0825\u5206\uff09 \u6bcf\u7ec4\u961f\u4f0d\u6d3e\u4e00\u540d\u961f\u5458\u8fdb\u884c\u8bb2\u89e3\u53ca\u6f14\u793a\uff0c
\n\n\u671f\u95f4\u505a\u51fa\u7684\u9879\u76ee\u8bb2\u89e3\u987b\u81f3\u5c11\u5305\u542b\uff1a
\n\n

\u51e1\u662f\u53c2\u52a0\u672c\u6b21\u300cNAO \u673a\u5668\u4eba\u521b\u5ba2\u7f16\u7a0b\u9a6c\u62c9\u677e\u300d\u7684\u9009\u624b\u90fd\u53ef\u4ee5\u83b7\u5f97 GitCafe \u63d0\u4f9b\u7684 300 GitCoin \u7528\u4e8e\u521b\u5efa\u79c1\u6709\u9879\u76ee\u3002
\n\n\u53c2\u8d5b GitCafe \u7528\u6237\u5728\u5145\u503c\u9875\u9762\u7684\u300c\u4f7f\u7528\u5151\u6362\u7801\u5145\u503c:\u300d\u4e00\u680f\u586b\u5199\u5151\u6362\u7801\uff0c\u9886\u53d6300 GitCoin\u3002\uff08\u53ef\u7528\u4e8e\u521b\u5efa\u79c1\u6709\u9879\u76ee\uff09
\n\u6ce8\uff1a\u5151\u6362\u7801\u8bf7\u5728\u6d3b\u52a8\u73b0\u573a\u5411\u5de5\u4f5c\u4eba\u5458\u7d22\u8981\uff0c\u8be5\u5151\u6362\u7801\u5151\u6362\u6709\u6548\u671f\u4e3a 2015-07-15 ~ 2015-07-20




\u9700\u8981\u5c06\u4ee3\u7801\u63d0\u4ea4\u5728 GitCafe \u5e73\u53f0\u3002\u60a8\u5728 GitCafe \u521b\u5efa\u9879\u76ee\u65f6\uff0c\u8bf7\u9009\u62e9\u300cNAO \u673a\u5668\u4eba\u521b\u5ba2\u7f16\u7a0b\u9a6c\u62c9\u677e\u300d\u9009\u9879\u3002
\n\n\u8be6\u60c5\u70b9\u51fb https://campaign.gitcafe.com/nao-robot-hackathon
\n", "date_published": "2015-07-01T12:44:57+00:00", "title": "NAO \u673a\u5668\u4eba\u521b\u5ba2\u7f16\u7a0b\u9a6c\u62c9\u677e", "id": "t/202586" }, { "author": { "url": "member/kawaiiushio", "name": "kawaiiushio", "avatar": "https://cdn.v2ex.com/avatar/4979/feab/41874_large.png?m=1471706495" }, "url": "t/202336", "date_modified": "2015-06-30T15:56:03+00:00", "content_html": "\u7ec4\u7ec7 (Organization) \u662f GitCafe \u7528\u6237\u8fdb\u884c\u56e2\u961f\u534f\u4f5c\u7684\u57fa\u7840\uff0c\u793e\u533a\u6216\u4f01\u4e1a\u7684\u5f00\u53d1\u56e2\u961f\u53ef\u4ee5\u5728 GitCafe \u4e0a\u5efa\u7acb\u7ec4\u7ec7\uff0c\u5e76\u5728\u5176\u4e2d\u521b\u5efa\u5c5e\u4e8e\u8be5\u7ec4\u7ec7\u7684\u9879\u76ee\u3002\u4e3a\u4e86\u8ba9\u56e2\u961f\u534f\u4f5c\u6709\u66f4\u4fbf\u6377\u7684\u6743\u9650\u5206\u914d\u548c\u9879\u76ee\u534f\u4f5c\u7ba1\u7406\u65b9\u5f0f\uff0cGitCafe \u4e3a\u7ec4\u7ec7\u65b0\u589e\u4e86\u300c\u5c0f\u7ec4\u300d\u529f\u80fd\uff0c\u5728\u6b64\u5411\u5927\u5bb6\u4ecb\u7ecd\u65b0\u529f\u80fd\u7684\u5185\u5bb9\u3002
\n\n\u300c\u5c0f\u7ec4\u300d\u529f\u80fd\u7684\u76ee\u7684\u662f\u8ba9\u7ba1\u7406\u8005\u80fd\u66f4\u65b9\u4fbf\u7684\u8bbe\u7f6e\u7ec4\u7ec7\u6210\u5458\u7684\u534f\u4f5c\u6743\u9650\u3001\u8fdb\u884c\u7ec4\u7ec7\u53ca\u9879\u76ee\u5230\u7684\u7ba1\u7406\u3002\u64cd\u4f5c\u65b9\u5f0f\u662f\u7531\u7ec4\u7ec7\u7ba1\u7406\u8005\u5728\u7ec4\u7ec7\u5185\u521b\u5efa\u82e5\u5e72\u4e2a\u5c0f\u7ec4\uff0c\u5e76\u5728\u521b\u5efa\u5c0f\u7ec4\u65f6\u8bbe\u7f6e\u8be5\u5c0f\u7ec4\u6210\u5458\u7684\u6743\u9650\u7ea7\u522b\uff0c\u5176\u540e\u518d\u4e8e\u5404\u8be5\u5c0f\u7ec4\u5185\u6dfb\u52a0\u6210\u5458\uff0c\u5e76\u7531\u9879\u76ee\u7ba1\u7406\u8005\u5c06\u5c0f\u7ec4\u6dfb\u52a0\u5230\u5404\u4e2a\u9879\u76ee\u4e2d\uff0c\u8ba9\u6210\u5458\u53ef\u4ee5\u5728\u5176\u6743\u9650\u8303\u56f4\u5185\u8fdb\u884c\u534f\u4f5c\u3002
\n\n\u4e8b\u4f8b\u8bf4\u660e
\n\n\u4ee5\u4e0b\u4e3e\u4e2a\u4f8b\u5b50\u8bf4\u660e\u300c\u5c0f\u7ec4\u300d\u7684\u5b9e\u9645\u64cd\u4f5c\uff0c\u5e2e\u52a9\u4f60\u66f4\u5feb\u901f\u7406\u89e3\uff1a
\n\n
\u5173\u7fbd\u662f\u300c\u8d64\u5154\u7801\u6e38\u620f\u516c\u53f8\u300d\u7684\u521b\u59cb\u4eba\uff0c\u516c\u53f8\u51c6\u5907\u5f00\u53d1\u4e00\u6b3e\u300c\u9ed1\u5ba2\u4e09\u56fd\u300d\u6e38\u620f\uff0c\u9700\u8981\u534f\u540c\u5f00\u53d1\u548c\u4ee3\u7801\u6258\u7ba1\u7684\u670d\u52a1\uff0c\u56e0\u6b64\u4ed6\u9009\u7528 GitCafe \u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a\u300cChiTuMa\u300d\u7684\u7ec4\u7ec7\u3002
\n\n
\u8eab\u4e3a\u300c\u7ec4\u7ec7\u62e5\u6709\u8005 (Owner)\u300d\u7684\u5173\u7fbd\uff0c\u624b\u4e0b\u6709\u5f20\u98de\u548c\u8bf8\u845b\u4eae\u4e24\u4e2a\u6280\u672f\u603b\u76d1\uff0c\u4e3a\u4e86\u7ba1\u7406\u65b9\u4fbf\uff0c\u5173\u7fbd\u5c06\u5f20\u98de\u548c\u8bf8\u845b\u4eae\u52a0\u5165\u300cChiTuMa\u300d\u7684\u300c\u7ec4\u7ec7\u7ba1\u7406\u5c0f\u7ec4 (Admin)\u300d\u3002
\n\n
Admin \u6210\u5458\u7686\u53ef\u8fdb\u884c\u7ec4\u7ec7\u7ba1\u7406\u4e8b\u52a1\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u521b\u5efa\u9879\u76ee\u4ee5\u53ca\u7ba1\u7406\u5404\u4e2a\u5c0f\u7ec4\u7684\u6743\u9650\u548c\u6210\u5458\u3002
\n\n
\u300c\u9ed1\u5ba2\u4e09\u56fd\u300d\u6e38\u620f\u9700\u8981 Web\u3001iOS \u548c Android \u4e09\u4e2a\u5ba2\u6237\u7aef\uff0c\u5f20\u98de (Admin) \u5fc3\u60f3\u5fc5\u987b\u8981\u5148\u5c06\u516c\u53f8\u4e2d\u7684\u5f00\u53d1\u4e3b\u7ba1\u3001\u5f00\u53d1\u4eba\u5458\u3001\u6e38\u620f\u7b56\u5212\u3001\u7f8e\u672f\u8bbe\u8ba1\u548c\u6280\u672f\u987e\u95ee\u5206\u7ec4\uff0c\u56e0\u6b64\u4ed6\u5728 ChiTuMa \u7ec4\u7ec7\u4e2d\u521b\u5efa\u4e86\u51e0\u4e2a\u4e0d\u540c\u6743\u9650\u7ea7\u522b\u7684\u300c\u534f\u4f5c\u5c0f\u7ec4 (Team)\u300d\uff0c\u518d\u5c06\u7528\u6237\u6dfb\u52a0\u5230 Team \u91cc\u9762\uff0c\u6210\u4e3a\u7ec4\u7ec7\u6210\u5458\u3002
\n\n

\u7531\u4e0a\u8868\u53ef\u4ee5\u77e5\u9053\uff1a
\n\n\u53ea\u6709 Admin\uff08\u62e5\u6709\u300c\u7ec4\u7ec7\u7ba1\u7406\u300d\u6743\u9650\uff09\u53ef\u4ee5\u65b0\u5efa Team\u3001\u8bbe\u7f6e\u6743\u9650\u7ea7\u522b\uff0c\u5e76\u5c06\u7528\u6237\u6dfb\u52a0\u5230 Team \u4e2d
\n\u62e5\u6709\u300c\u9879\u76ee\u7ba1\u7406\u300d\u6743\u9650\u7684 Team \u6210\u5458 (Project Manager, PM) \u53ef\u4ee5\u5c06\u82e5\u5e72\u4e2a Team \u6dfb\u52a0\u5230\u5176\u6240\u5c5e\u9879\u76ee\u5f53\u4e2d\u8fdb\u884c\u534f\u4f5c\uff0c\u4f46\u65e0\u6743\u9650\u65b0\u589e\uff0f\u7f16\u8f91\uff0f\u5220\u9664 Team \u4e2d\u7684\u6210\u5458\uff0c\u4e5f\u65e0\u6743\u53d8\u66f4 Team \u7684\u6743\u9650\u7ea7\u522b
\n
\u5f20\u98de (Admin) \u628a\u7ec4\u7ec7\u4e2d\u7684\u65b0\u5efa\u5c0f\u7ec4\u3001\u8bbe\u7f6e\u6743\u9650\u548c\u6dfb\u52a0\u7528\u6237\u7b49\u5de5\u4f5c\u5b8c\u6210\u540e\uff0c\u63a5\u4e0b\u6765\u7684\u5de5\u4f5c\u5c31\u662f\u65b0\u5efa\u9879\u76ee\uff0c\u7531 admin \u81ea\u5df1\u6216\u662f\u5c5e\u4e8e PM \u5c0f\u7ec4\u7684\u5173\u5174\u3001\u9a6c\u8d85\u3001\u5e9e\u7edf\u3001\u8d75\u4e91\u3001\u9ec4\u5fe0\u3001\u9b4f\u5ef6\u7b49\u4eba\u6765\u65b0\u5efa\u5404\u4e2a\u9879\u76ee\uff0c\u5e76\u4e14\u9009\u62e9\u5408\u9002\u7684 Team \u6dfb\u52a0\u5230\u9879\u76ee\u5f53\u4e2d\u6210\u4e3a\u534f\u4f5c\u8005\uff0c\u5373\u53ef\u542f\u52a8\u9879\u76ee\u7684\u56e2\u961f\u534f\u4f5c\u5de5\u4f5c\u3002
\n\n\u5c0f\u7ec4\u529f\u80fd\u7684\u597d\u5904
\n\u4f9d\u7167\u4e0a\u9762\u7684\u63cf\u8ff0\uff0c\u521b\u5efa\u7ec4\u7ec7\u3001\u65b0\u5efa\u5c0f\u7ec4\u5e76\u8bbe\u7f6e\u6743\u9650\u7b49\u5de5\u4f5c\uff0c\u786e\u5b9e\u9700\u8981\u8d39\u70b9\u5fc3\u601d\uff1b\u5f53\u7136\uff0c\u6211\u4eec\u4e0d\u4f1a\u5f92\u589e\u7528\u6237\u7684\u56f0\u6270\uff0c\u5982\u6b64\u8bbe\u8ba1\u6700\u5927\u7684\u597d\u5904\u5c31\u662f\u5728\u7ec4\u7ec7\u6210\u5458\u7684\u52a0\u5165\u548c\u9000\u51fa\u65f6\uff0c\u53ef\u4ee5\u66f4\u4e3a\u4fbf\u6377\u3002\u4f8b\u5982\uff1a
\u6210\u5458\u52a0\u5165
\n\n\u8d64\u5154\u7801\u6e38\u620f\u516c\u53f8\u62db\u8058\u4e86\u65b0\u4eba\u590f\u4faf\u9738\uff0c\u8d1f\u8d23 Android \u5f00\u53d1\u3002\u8fd9\u65f6\uff0cAdmin \u5c06\u4ed6\u52a0\u5165 Android-Dev \u5c0f\u7ec4\u540e\uff0c\u590f\u4faf\u9738\u5373\u53ef\u4e00\u6b21\u6027\u7684\u5728\u6240\u6709\u5df2\u6dfb\u52a0 Android-Dev \u5c0f\u7ec4\u7684\u9879\u76ee\u4e2d\u5f00\u59cb\u534f\u4f5c\u5f00\u53d1\uff0c\u4e0d\u5fc5\u4e00\u4e2a\u4e00\u4e2a\u9879\u76ee\u6dfb\u52a0\uff0c\u8fd8\u53ef\u80fd\u9057\u6f0f\u3002
\n\n\u6210\u5458\u9000\u51fa
\n\n\u8d75\u4e91\u8981\u79bb\u804c\u4e86\uff0c\u8fd9\u65f6\u53ea\u8981\u5230 ChiTuMa \u7ec4\u7ec7\u5f53\u4e2d\u7684\u6210\u5458\u5217\u8868\uff0c\u4e00\u6b21\u6027\u7684\u5c06\u4ed6\u9000\u51fa\u6240\u6709\u5c0f\u7ec4\uff0c\u5c31\u5b8c\u6210\u5de5\u4f5c\u4e86\uff0c\u4e0d\u5fc5\u62c5\u5fc3\u9879\u76ee\u4f17\u591a\u800c\u758f\u672a\u9000\u51fa\u3002\u56e0\u6b64\uff0cAdmin \u5728\u4eba\u5458\u7ba1\u7406\u65b9\u9762\u5c06\u66f4\u52a0\u65b9\u4fbf\u3002
\n\n\u5c0f\u7ec4\u7684\u6743\u9650\u8bf4\u660e
\n\u82e5\u4f60\u9488\u5bf9\u672c\u6b21\u65b0\u63a8\u51fa\u7684\u300c\u5c0f\u7ec4\u300d\u529f\u80fd\u60f3\u8981\u6709\u66f4\u6df1\u5165\u7684\u7406\u89e3\uff0c\u8bf7\u9605\u8bfb\u6211\u4eec\u7684\u5e2e\u52a9\u6587\u6863\uff0c\u5176\u4e2d\u6709\u66f4\u8be6\u5c3d\u7684\u8bf4\u660e\u3002
GitCafe \u6301\u7eed\u52aa\u529b\u4e3a\u60a8\u4f18\u5316\u534f\u540c\u5f00\u53d1\u5de5\u4f5c\uff0c\u82e5\u6709\u4efb\u4f55\u610f\u89c1\u53ca\u7591\u95ee\uff0c\u6211\u4eec\u5f88\u6b22\u8fce\u60a8\u7684\u53cd\u9988\uff01
\n", "date_published": "2015-06-30T15:55:54+00:00", "title": "GitCafe \u4e3a\u7ec4\u7ec7\u65b0\u589e\u300c\u5c0f\u7ec4\u300d\u529f\u80fd", "id": "t/202336" }, { "author": { "url": "member/GuBonjour", "name": "GuBonjour", "avatar": "https://cdn.v2ex.com/avatar/f457/edf5/75353_large.png?m=1420346433" }, "url": "t/199273", "date_modified": "2015-06-17T07:45:10+00:00", "content_html": "
\nWorktile \u4ece\u8bde\u751f\u81f3\u4eca\uff0c\u59cb\u7ec8\u81f4\u529b\u4e8e\u4e3a\u4e2d\u5c0f\u56e2\u961f\u63d0\u4f9b\u6700\u57fa\u7840\u7684\u534f\u4f5c\u670d\u52a1\uff0c\u800c\u5728\u8fc7\u53bb\u7684\u65f6\u95f4\u91cc\uff0c\u6211\u4eec\u4ece\u5f88\u591a\u7684\u7528\u6237\u548c\u670b\u53cb\u4e2d\u770b\u5230\u4e86 Worktile \u65e0\u53ef\u9650\u7684\u62d3\u5c55\u6027\u3002\u8fd9\u4e5f\u662f Worktile Open API \u7684\u521d\u8877\u2014\u2014\u5c06 Worktile \u7684\u534f\u4f5c\u5c5e\u6027\u5e94\u7528\u5230\u66f4\u5e7f\u9614\uff0c\u66f4\u4e13\u4e1a\u7684\u573a\u666f\u4e2d\u3002
\u6211\u4eec\u671f\u5f85\u9047\u89c1\u5bf9\u8fd9\u4e2a\u4e16\u754c\u5145\u6ee1\u70ed\u60c5\u4e0e\u667a\u6167\u7684\u4f60\uff0c\u8fce\u63a5\u6311\u6218\uff0c\u4e00\u8d77\u521b\u9020\u51fa\u66f4\u591a\u6709\u8da3\uff0c\u9177\u70ab\u7684\u4ea7\u54c1\uff01
\n\n6\u670815\u65e5\uff0c\u5f00\u6218
\n\nWorktile Hackathon
\n\n\u300cWorktile Hackathon\u300d\u662f Worktile\u300136\u6c2a \u4e0e GitCafe \u5408\u4f5c\u4e3e\u529e\u7684\u7ebf\u4e0a\u5f00\u53d1\u8005\u5927\u8d5b\u3002\u5728\u4e3a\u671f\u4e24\u4e2a\u6708\u7684\u65f6\u95f4\u91cc\uff0c\u8bf7\u5f00\u53d1\u8005\u4eec\u57fa\u4e8e Worktile API \u5f00\u53d1\u51fa\u6709\u8da3\u7684\u6548\u7387\u7c7b\u4ea7\u54c1\uff0c\u4f60\u7684\u60f3\u6cd5\u6709\u53ef\u80fd\u6210\u4e3a\u5f53\u4e0b 10W+ \u56e2\u961f\u7684\u65e5\u5e38\u6240\u7528\uff0c\u5c06\u6765\u66f4\u6709\u53ef\u80fd\u4e3a\u767e\u4e07\u7ea7\u3001\u5343\u4e07\u7ea7\u7684\u56e2\u961f\u670d\u52a1\uff0c\u800c\u4f60\u4e5f\u6709\u53ef\u80fd\u4ece\u4e2d\u6536\u83b7\u5230\u4e30\u539a\u7684\u56de\u62a5\u3002
\n\n\u9009\u9898\u65b9\u5411
\n\n\u9996\u8981\u51c6\u5219\u4e3a\u57fa\u4e8e Worktile Open API \u5f00\u53d1\uff0c\u63a8\u8350\u5982\u4e0b\u9009\u9898\u65b9\u5411\uff08\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff09
\n\n\u5956\u54c1\u62a2\u5148\u770b
\n\n
\u8bc4\u5ba1\u5609\u5bbe
\n\n
\u4f5c\u54c1\u63d0\u4ea4
\n\n\u9700\u8981\u5c06\u4ee3\u7801\u63d0\u4ea4\u5728 GitCafe \u5e73\u53f0\u3002\u60a8\u5728 GitCafe \u521b\u5efa\u9879\u76ee\u65f6\uff0c\u8bf7\u9009\u62e9\u300cWorktile API \u5f00\u53d1\u5927\u8d5b\u300d\u9009\u9879\u3002
\n\nGitCafe \u7528\u6237\u798f\u5229:\u51e1\u662f\u53c2\u8d5b\u9009\u624b\uff0c\u90fd\u5c06\u83b7\u5f97 300-500 \u4e0d\u7b49\u7684 GitCoin \u7528\u6765\u521b\u5efa\u79c1\u6709\u5e93\u3002
\n\n\u8be6\u60c5\u8bf7\u89c1\uff1a https://worktile.com/event/hackathon/
\n", "date_published": "2015-06-17T07:44:14+00:00", "title": "\u300cWorktile x GitCafe \u5f00\u53d1\u5927\u8d5b\u300d\u5927\u7586\u65e0\u4eba\u673a\u3001\u82f9\u679c\u624b\u8868\u3001 iPhone 6\u3001\u9b54\u58f0 Diesel Vektr \u8033\u673a\u7b49\u5927\u5956\u7b49\u4f60\u62ff\uff01", "id": "t/199273" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/182572", "date_modified": "2015-04-09T06:17:58+00:00", "content_html": "\u4e0a\u5468 GitCafe \u63a8\u51fa\u4e86 Webhooks \u529f\u80fd\u4e4b\u540e\uff0c\u5f88\u591a\u7528\u6237\u8868\u793a\u4ed6\u4eec\u7ec8\u4e8e\u53ef\u4ee5\u505a\u7b2c\u4e09\u65b9\u96c6\u6210\u4e86\uff0c\u90a3\u4e48\u672c\u5468\u6211\u4eec\u8fd8\u8981\u5e26\u6765\u4e00\u4e2a\u597d\u6d88\u606f\uff0c\u8fd9\u4e00\u6b21\u65b0\u51fa\u7684\u65b0\u529f\u80fd\u662f\u4ec0\u4e48\u5462\uff1f
\n\nCode Insight\uff08\u6e90\u7801\u8ffd\u8e2a\uff09\u529f\u80fd\u5e2e\u52a9 GitCafe \u7684\u7528\u6237\u66f4\u597d\u5730\u9605\u8bfb\u7406\u89e3\u6e90\u4ee3\u7801\uff1a
\n\n\u5728\u5f00\u542f\u6e90\u7801\u8ffd\u8e2a\u7684\u9879\u76ee\u4e2d\u9605\u8bfb\u4ee3\u7801\u754c\u9762\uff0c\u6e90\u4ee3\u7801\u4e2d\u4efb\u4f55\u5df2\u77e5\u5b9a\u4e49\u4f4d\u7f6e\u7684\u53d8\u91cf\u3001\u51fd\u6570\u3001\u7c7b\u7b49\u7b26\u53f7\u4f1a\u5e26\u6709\u4e0b\u5212\u7ebf\u3002\u9f20\u6807\u5728\u5e26\u6709\u4e0b\u5212\u7ebf\u7684\u5df2\u77e5\u7b26\u53f7\u4e0a\u77ed\u6682\u505c\u7559\uff0c\u5c06\u4f1a\u770b\u5230\u8be5\u7b26\u53f7\u7684\u7c7b\u578b\u4fe1\u606f\u6216\u662f\u51fd\u6570\u539f\u578b\uff0c\u751a\u81f3\u8be6\u7ec6\u6587\u6863\u4fe1\u606f\u3002
\u70b9\u51fb\u7b26\u53f7\u5c06\u4f1a\u76f4\u63a5\u8df3\u8f6c\u5230\u5b9a\u4e49\u8be5\u7b26\u53f7\u7684\u6e90\u4ee3\u7801\u6587\u4ef6\uff0c\u5e76\u5b9a\u4f4d\u5230\u6b64\u6587\u4ef6\u4e2d\u5b9a\u4e49\u8be5\u7b26\u53f7\u7684\u4ee3\u7801\u884c\u3002\u7b26\u53f7\u7684\u5b9a\u4e49\u4f4d\u7f6e\u5e76\u4e0d\u5c40\u9650\u4e8e\u5f53\u524d\u9879\u76ee\uff0c\u53ef\u4ee5\u662f GitCafe \u4e0a\u7684\u4efb\u4f55\u516c\u5f00\u9879\u76ee\u3002\u5982\u4e0b\u56fe\u6240\u793a\u4f1a\u8df3\u8f6c\u5230\u5bf9\u5e94\u7684 OpenJDK \u76f8\u5e94\u6e90\u4ee3\u7801\uff1a

\u76ee\u524d Code Insight \u5904\u4e8e GA \u72b6\u6001\uff0c\u5bf9\u6240\u6709\u516c\u5f00\u9879\u76ee\u9ed8\u8ba4\u5206\u652f\u7684\u6700\u65b0\u7248\u672c\u6e90\u4ee3\u7801\u5f00\u653e\u3002\u5df2\u7ecf\u5b9e\u73b0\u5bf9 Ruby\u3001Python\u3001Java \u7b49\u8bed\u8a00\u7684\u652f\u6301\uff0c\u5e76\u5c06\u6301\u7eed\u52a0\u5165\u66f4\u591a\u8bed\u8a00\u7684\u652f\u6301\u3002
\n\n\u53d7\u9650\u4e8e\u624b\u673a\u5c4f\u5e55\u5927\u5c0f\u548c\u5fae\u4fe1\u670d\u52a1\u5668\u7aef\u7684\u8fc7\u5ea6\u538b\u7f29\uff0c\u6f14\u793a\u56fe\u53ef\u80fd\u4e0d\u591f\u6e05\u6670\uff0c\u60a8\u53ef\u4ee5\u5728\u7535\u8111\u7aef\u5f00\u542f\u672c\u6587\u5e76\u70b9\u51fb\u300c\u9605\u8bfb\u539f\u6587\u300d\u8bbf\u95ee\u6211\u4eec\u7684\u535a\u5ba2\u67e5\u770b\u6e05\u6670\u7684\u6f14\u793a\u3002
\n\nGitCafe \u81f4\u529b\u4e8e\u6253\u9020\u4e13\u4e1a\u7684\u4ee3\u7801\u6258\u7ba1\u670d\u52a1\u53ca\u9879\u76ee\u534f\u4f5c\u5e73\u53f0\uff0c\u5e2e\u52a9\u7814\u53d1\u56e2\u961f\u4f18\u5316\u9879\u76ee\u4ee3\u7801\u7684\u7ba1\u7406\u53ca\u534f\u4f5c\u6d41\u7a0b\uff0c\u4e3a\u4f01\u4e1a\u63d0\u4f9b\u66f4\u4e3a\u5b89\u5168\u4e25\u8c28\u7684\u4ee3\u7801\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u3002\u5728\u6b64\u57fa\u7840\u4e0a GitCafe \u672a\u6765\u5c06\u79ef\u6781\u4e0e\u7b2c\u4e09\u65b9\u56e2\u961f\u8fdb\u884c\u5408\u4f5c\uff0c\u6539\u5584\u5f00\u53d1\u4f53\u9a8c\uff0c\u63d0\u9ad8\u534f\u4f5c\u6548\u7387\u3002\u8fd9\u6b21\u7684 Code Insight\uff08\u6e90\u7801\u8ffd\u8e2a\uff09\u529f\u80fd\u5373\u662f\u7531 Lambda Lab \u548c GitCafe \u5f00\u53d1\u56e2\u961f\u5171\u540c\u5408\u4f5c\u5b8c\u6210\u3002
\n\nLambda Lab \u662f\u4e00\u652f\u6765\u81ea\u7845\u8c37\u7684\u5de5\u7a0b\u5e08\u56e2\u961f\uff0c\u6210\u5458\u5747\u6bd5\u4e1a\u4e8e\u5317\u7f8e\u9876\u7ea7\u8ba1\u7b97\u673a\u9662\u7cfb\uff0c\u81f4\u529b\u4e8e\u4e3a\u5f00\u53d1\u8005\u548c\u5f00\u6e90\u793e\u533a\u63d0\u4f9b\u6700\u597d\u7684\u5f00\u53d1\u4f53\u9a8c\u3002Lambda Lab \u56e2\u961f\u6709\u7f16\u8bd1\u7cfb\u7edf\uff0c\u673a\u5668\u5b66\u4e60\u548c\u6570\u636e\u5e93\u4e13\u5bb6\uff0c\u4ee5\u53ca\u4e30\u5bcc\u7684\u5927\u578b\u5f00\u6e90\u9879\u76ee\u5f00\u53d1\u7ecf\u9a8c\u3002\u4e3a\u4e86\u89e3\u51b3\u5f00\u53d1\u8005\u5728\u7f51\u9875\u7aef\u641c\u7d22\u548c\u9605\u8bfb\u4ee3\u7801\u56f0\u96be\u7684\u95ee\u9898\uff0c\u4ed6\u4eec\u5f00\u53d1\u4e86 Codatlas (www.codatlas.com)\uff0c\u5728\u7f51\u9875\u7aef\u63d0\u4f9b\u7c7b IDE \u7684\u4ee3\u7801\u9605\u8bfb\u548c\u4ee3\u7801\u641c\u7d22\u4f53\u9a8c\uff0c\u5230\u76ee\u524d\u4e3a\u6b62\u5df2\u7ecf\u6536\u5f55\u4e86\u6570\u767e\u4e2a\u8457\u540d\u5f00\u6e90\u9879\u76ee\u5982 Apache Hadoop\u3001Apache Spark \u548c Android \u7b49\uff0c\u5e76\u652f\u6301 Scala\u3001Java\u3001Ruby\u3001Python \u548c Javascript \u7b49\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e3a\u4e16\u754c\u5404\u5730\u7684\u5f00\u6e90\u9879\u76ee\u7684\u8d21\u732e\u8005\u548c\u4f7f\u7528\u8005\u63d0\u4f9b\u5feb\u901f\u4ee3\u7801\u67e5\u8be2\u548c\u534f\u4f5c\u529f\u80fd\u3002
\n\n\u73b0\u5728\uff0c\u5c31\u5728 GitCafe Web \u7aef \u4f53\u9a8c Code Insight \u5427\uff0c\u8ba9\u4f60\u81ea\u7531\u9068\u6e38\u5728\u6e90\u7801\u7684\u6d77\u6d0b\uff0c\u66f4\u597d\u5730\u9605\u8bfb\u548c\u7406\u89e3\u6e90\u4ee3\u7801\u3002
\n", "date_published": "2015-04-09T06:17:50+00:00", "title": "Code Insight \u8ba9\u4f60\u81ea\u7531\u8ffd\u8e2a\u5728 GitCafe \u4e0a\u7684\u6e90\u7801", "id": "t/182572" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/177955", "date_modified": "2015-03-19T03:21:47+00:00", "content_html": "
\u4f60\u662f\u5426\u60f3\u8fc7\uff1a
\n\n\u53ea\u9700\u6325\u52a8\u4e00\u53ea\u624b\u6307\u5373\u53ef\u6d4f\u89c8\u7f51\u9875\u3001\u9605\u8bfb\u6587\u7ae0\u3001\u7ffb\u770b\u7167\u7247\uff0c\u8fd8\u6709\u64ad\u653e\u97f3\u4e50\u3002\u5373\u4f7f\u4e0d\u4f7f\u7528\u4efb\u4f55\u753b\u7b14\u6216\u7b14\u5237\uff0c\u7528\u60a8\u7684\u6307\u5c16\u5373\u53ef\u4ee5\u7ed8\u753b\uff0c\u6d82\u9e26\u548c\u8bbe\u8ba1\u3002
\u7528\u60a8\u7684\u624b\u6307\u5373\u53ef\u5207\u6c34\u679c\u3001\u6253\u574f\u86cb\uff1b\u7528\u60a8\u7684\u53cc\u624b\u5373\u53ef\u98d9\u8d5b\u8f66\uff0c\u70b8\u98de\u673a\u3002
\u60a8\u53ef\u4ee5\u57283D\u7a7a\u95f4\u8fdb\u884c\u96d5\u523b\u3001\u6d47\u94f8\u3001\u62c9\u4f38\u3001\u5f2f\u66f2\u4ee5\u53ca\u6784\u5efa3D\u56fe\u50cf\uff0c\u8fd8\u53ef\u4ee5\u628a\u4ed6\u4eec\u62c6\u5f00\u4ee5\u53ca\u518d\u6b21\u62fc\u63a5\u3002
\u4f53\u9a8c\u4e00\u79cd\u5168\u65b0\u7684\u5b66\u4e60\u65b9\u5f0f\uff0c\u7528\u60a8\u7684\u53cc\u624b\u63a2\u7d22\u5b87\u5b99\uff0c\u89e6\u6478\u661f\u661f\uff0c\u8fd8\u53ef\u4ee5\u56f4\u7ed5\u592a\u9633\u7ff1\u7fd4\u3002
\u4e00\u79cd\u5168\u65b0\u7684\u4e50\u5668\u4f53\u9a8c\uff0c\u5f39\u594f\u7a7a\u6c14\u5409\u4ed6\u3001\u7a7a\u6c14\u7ad6\u7434\u548c\u7a7a\u4e2d\u7684\u4e00\u5207\u4e50\u5668\uff0c\u8fd8\u53ef\u4ee5\u4f53\u9a8c\u5168\u65b0\u7684\u91c7\u6458\u548c\u62fe\u8d77\u65b9\u5f0f\u3002
\u73b0\u5728 Leap Motion \u8ba9\u4e00\u5207\u90fd\u6210\u4e3a\u4e86\u73b0\u5b9e\uff0c\u4e0d\u4ec5\u5982\u6b64\uff0c\u4f60\u751a\u81f3\u53ef\u4ee5\u6253\u5f00\u7535\u8111\uff0c\u6572\u51fb\u952e\u76d8\uff0c\u73a9\u8f6c\u7075\u611f\uff0c\u4eb2\u81ea\u4e3a\u5b83\u5f00\u53d1 APP \u5b9e\u73b0\u4f60\u60f3\u8981\u7684\u4e00\u5207\u529f\u80fd\uff01\u5e76\u4e14\uff0cGitCafe \u4e5f\u4f1a\u5168\u7a0b\u4e3a\u4f60\u4fdd\u9a7e\u62a4\u822a\uff0c\u8ba9\u6211\u4eec\u4e00\u8d77\u6fc0\u53d1\u7075\u611f\u3001\u5c3d\u60c5\u521b\u610f\u3001\u4e0e\u6307\u5c16\u5171\u821e\uff01
\n\n\u7ed9\u51fa\u4f60\u7684\u6bd4\u8d5b\u63d0\u6848\uff0c\u5c31\u6709\u673a\u4f1a\uff08\u9700\u5ba1\u6838\uff09\u514d\u8d39\u5f97\u5230 Leap Motion \u5f00\u53d1\u673a\uff01
\n\nLeap Motion \u5389\u52a8\u5728\u7ebf\u5f00\u53d1\u5927\u8d5b\u662f Leap Motion\u3001\u795e\u5dde\u6570\u7801\u4e0e GitCafe \u5408\u4f5c\u4e3e\u529e\u7684\u7ebf\u4e0a\u5f00\u53d1\u8005\u5927\u8d5b\u3002\u5728\u4e3a\u671f\u4e00\u4e2a\u534a\u6708\u7684\u65f6\u95f4\u91cc\uff0c\u5f00\u53d1\u8005\u4eec\u53ef\u4ee5\u4f7f\u7528 Leap Motion\uff08\u6216\u5176\u53d1\u5e03\u7684\u865a\u62df\u73b0\u5b9e\u5f00\u53d1\u7ec4\u4ef6\uff09\u8fdb\u884c App \u5f00\u53d1\uff0c\u6784\u5efa\u6e38\u620f\u3001\u97f3\u4e50\u3001\u827a\u672f\u3001\u6559\u80b2\u7b49\u9886\u57df\u7684\u70ab\u9177\u5e94\u7528\u3002
\n\n\u6b64\u6b21\u6d3b\u52a8\u7684\u8303\u56f4\u9762\u5411\u5168\u56fd\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u4ee5\u4e2a\u4eba\u8eab\u4efd\u53c2\u8d5b\uff0c\u4e5f\u53ef\u4ee5\u7ec4\u961f\u6216\u8005\u4ee5\u516c\u53f8\u8eab\u4efd\u53c2\u8d5b\uff0c\u6bcf\u4e2a\u56e2\u961f\u53ef\u4ee5\u63d0\u4ea4\u4e00\u4e2a\u6216\u591a\u4e2a\u4ea7\u54c1\u53c2\u4e0e\u89d2\u9010\u3002
\n\n\u5927\u8d5b\u7ed3\u675f\u540e\uff0c\u6211\u4eec\u4f1a\u9009\u51fa\u4f18\u79c0\u7684\u5e94\u7528\u63a8\u8350\u81f3 Leap Motion \u5b98\u65b9\u5e94\u7528\u5546\u5e97\uff0c\u53ef\u4ee5\u5411\u5168\u4e16\u754c\u5c55\u793a\u4f60\u7684\u4f5c\u54c1\u3002
\n\n\u4f7f\u7528 Leap Motion \u5f00\u53d1\u7684\u4e00\u5207 App\uff0c\u6e38\u620f\u3001\u97f3\u4e50\u3001\u6d4f\u89c8\u5668\u3001\u8f93\u5165\u6cd5\u3001\u5730\u56fe\u3001\u4e92\u52a8\u5c55\u793a\u3001\u865a\u62df\u73b0\u5b9e\u7b49\u4e3b\u9898\u5747\u53ef\uff0c\u6709\u4e00\u5b9a\u7684\u521b\u65b0\u6027\u3001\u8da3\u5473\u6027\u548c\u60f3\u8c61\u529b\u3002
\u53ef\u4ee5\u4f7f\u7528\u4efb\u4f55\u4e00\u79cd Leap Motion \u5f00\u53d1\u5305\u652f\u6301\u7684\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\uff0c\u5982 C++\u3001C#\u3001Javascript \u7b49\u3002
\u5f00\u53d1\u7684\u4f5c\u54c1\u53ef\u4ee5\u652f\u6301 Mac\u3001Windows\u3001Linux \u5e73\u53f0\uff0c\u4e5f\u53ef\u4ee5\u662f\u57fa\u4e8e Web \u7684\u7f51\u9875\u7248\u5e94\u7528\u3002
\u5f00\u53d1\u4f5c\u54c1\u652f\u6301\u4e2d\u82f1\u6587\u53cc\u8bed\uff08\u4fbf\u4e8e\u63a8\u8350\u81f3\u5b98\u65b9\u5e94\u7528\u5546\u5e97\uff09\u3002
\u5f00\u53d1\u4f5c\u54c1\u63d0\u4ea4\u540e\u53ef\u4ee5\u5b8c\u6574\u6f14\u793a\uff0c\u6700\u597d\u9644\u5e26\u6f14\u793a\u5c0f\u89c6\u9891\u3002
\u53c2\u8d5b\u56e2\u961f\u63d0\u4ea4\u7684\u53c2\u8d5b\u4f5c\u54c1\u4ece\u672a\u5728\u5176\u4ed6\u5728\u7ebf\u5f00\u53d1\u5927\u8d5b\u4e2d\u53c2\u4e0e\u53ca\u83b7\u5956\u3002
\u4e3a\u7edf\u4e00\u8bc4\u5ba1\uff0c\u8bf7\u6240\u6709\u53c2\u8d5b\u8005\u5c06\u4f5c\u54c1\u4ee3\u7801\u6258\u7ba1\u81f3 GitCafe\u3002
\n\n3 \u6708 18 \u65e5 \u63d0\u4ea4\u63d0\u6848\uff0c\u514d\u8d39\u7533\u8bf7\u5f00\u53d1\u673a
4 \u6708 18 \u65e5 UNITE 2015 BEIJING \u5927\u4f1a\u73b0\u573a\u63d0\u4f9b\u672c\u6d3b\u52a8\u62a5\u540d
4 \u6708 20 \u65e5 \u5f00\u53d1\u5927\u8d5b\u6b63\u5f0f\u5f00\u59cb\uff0c\u65e0\u9700\u62a5\u540d\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728 GitCafe \u5e73\u53f0\u8fdb\u884c\u9879\u76ee\u521b\u5efa
6 \u6708 1 \u65e5 \u9879\u76ee\u63d0\u4ea4\u622a\u6b62\uff0c\u540c\u65f6\u542f\u52a8\u8bc4\u5ba1
6 \u6708 14 \u65e5 \u8bc4\u5ba1\u7ed3\u675f
6 \u6708 15 \u65e5 \u516c\u5e03\u83b7\u5956\u540d\u5355
\u51c6\u5907\u53c2\u8d5b\uff1a\u63d0\u4ea4\u7533\u8bf7\uff0c\u5199\u660e\u63d0\u6848\u4f9b\u4e3b\u529e\u65b9\u5ba1\u6838\u662f\u5426\u53d1\u653e\u514d\u8d39\u5f00\u53d1\u673a
\u5f00\u53d1\u673a\u53d1\u653e\uff1a\u4e3b\u529e\u65b9\u9009\u53d6 50 \u4e2a\u56e2\u961f\uff0c\u514d\u8d39\u53d1\u653e\u5f00\u53d1\u7528 Leap Motion\uff08\u6bcf\u4e2a\u56e2\u961f\u4e00\u4e2a\uff09\uff0c\u5176\u4ed6\u56e2\u961f\u5219\u53ef\u4ee5\u4ee5\u4e13\u5c5e\u6298\u6263\u4ef7\u8d2d\u4e70 Leap Motion \u7528\u4e8e\u5f00\u53d1
\u9879\u76ee\u63d0\u4ea4\uff1a\u5c06\u5f00\u53d1\u7528\u4ee3\u7801\u7edf\u4e00\u6258\u7ba1\u81f3 GitCafe \u5e73\u53f0\uff0c\u540c\u65f6\u53ef\u4e00\u5e76\u63d0\u4ea4\u9879\u76ee\u89c6\u9891
\u9879\u76ee\u5ba1\u6838\uff1a\u5927\u8d5b\u8bc4\u59d4\u6839\u636e\u63d0\u4ea4\u9879\u76ee\u8fdb\u884c\u5ba1\u6838\uff0c\u9009\u51fa 20 \u4e2a\u5165\u56f4\u9879\u76ee\u3002
\u516c\u5e03\u5927\u5956\u540d\u5355
4 \u6708 18 \u65e5 UNITE 2015 BEIJING \u5f00\u53d1\u8005\u5927\u4f1a\u5f00\u653e\u73b0\u573a\u62a5\u540d\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u76f4\u63a5\u5728 Leap Motion \u5c55\u4f4d\u62a5\u540d\u53c2\u8d5b\u3002
\n\n\u4e00\u7b49\u5956 1 \u540d\uff0c\u5956\u54c1\u4e3a Oculus Rift DK2 \u4e00\u53f0+iPad Mini 3
\n\n

\u4e8c\u7b49\u5956 2 \u540d\uff0c\u5956\u54c1\u4e3a Apple Watch \u4e00\u5757
\n\n
\u4e09\u7b49\u5956 3 \u540d\uff0c\u5956\u54c1\u4e3a\u4ef7\u503c 1000 \u5143\u7684\u673a\u68b0\u952e\u76d8
\n\n
\u521b\u65b0\u5956 4 \u540d\uff0cbeats \u8033\u673a
\n\n
\u5165\u56f4\u5956\u82e5\u5e72\uff0c\u5956\u54c1\u4e3a Leap Motion \u5b9a\u5236\u7b14\u8bb0\u672c
\n\n
\u53c2\u8d5b\u5956\uff1a300 GitCoin
\n\n\u51e1\u662f\u53c2\u52a0\u672c\u6b21\u300c\u6307\u5c16\u4e0a\u7684\u534e\u5c14\u5179--Leap Motion 2015\u5728\u7ebf\u5f00\u53d1\u5927\u8d5b\u300d\u7684\u9009\u624b\u90fd\u53ef\u4ee5\u83b7\u5f97 GitCafe \u63d0\u4f9b\u7684 300 GitCoin \u7528\u4e8e\u521b\u5efa\u79c1\u6709\u9879\u76ee\u3002
\u53c2\u8d5b GitCafe \u7528\u6237\u5728\u5145\u503c\u9875\u9762\u7684\u300c\u4f7f\u7528\u5151\u6362\u7801\u5145\u503c:\u300d\u4e00\u680f\u586b\u5199\u300cLEAPMOTION2015\u300d\uff0c\u9886\u53d6300 GitCoin\u3002\uff08\u53ef\u7528\u4e8e\u521b\u5efa\u79c1\u6709\u9879\u76ee\uff09
\u8bc4\u59d4\u5c06\u57fa\u4e8e\u9879\u76ee\u7684\u5f00\u53d1\u96be\u5ea6\u3001\u4f7f\u7528\u524d\u666f\u3001\u72ec\u521b\u6027\u548c\u60f3\u8c61\u529b\u8fdb\u884c\u8bc4\u5206\uff0c\u5176\u4e2d
\n\n\u5f00\u53d1\u96be\u5ea6 30%
\u4f7f\u7528\u524d\u666f 30%
\u72ec\u521b\u6027 20%
\u60f3\u8c61\u529b 20%
\u6ce8\uff1a\u300c\u79c1\u6709\u9879\u76ee\u300d\u8bf7\u5c06\u88c1\u5224\u8d26\u53f7\uff1aLeapMotionUSA \u4e0e LeapMotionChina \u6dfb\u52a0\u4e3a\u9879\u76ee\u7684\u534f\u4f5c\u8005\uff0c\u65b9\u4fbf\u8bc4\u59d4\u67e5\u770b\u9879\u76ee\u7684\u4ee3\u7801\u8d28\u91cf\u3002
\n\n
Michael Buckwald
\n\nLeap Motion President & CEO, Co-founder
\n\n
\u5218\u5b81
\n\n\u795e\u5dde\u6570\u7801 \u6d88\u8d39\u7535\u5b50\u4e1a\u52a1\u53d1\u5c55\u90e8 \u603b\u7ecf\u7406
\n\n
Thomas Yao
\n\nGitCafe CEO & Co-founder
\n\n\u8fd8\u6709\u4e00\u4f4d\u795e\u79d8\u5609\u5bbe\u5c06\u4f5c\u4e3a\u8bc4\u59d4\u51fa\u5e2d\uff0c\u8bf7\u5bc6\u5207\u5173\u6ce8\u6d3b\u52a8\u9875\u9762\u8fdb\u884c\u67e5\u770b\u3002
\n\n\u9700\u8981\u5c06\u4ee3\u7801\u63d0\u4ea4\u5728 GitCafe \u5e73\u53f0\u3002\u60a8\u5728 GitCafe \u521b\u5efa\u9879\u76ee\u65f6\uff0c\u8bf7\u9009\u62e9 \u201c\u300c\u6307\u5c16\u4e0a\u7684\u534e\u5c14\u5179\u300d--Leap Motion 2015 \u5728\u7ebf\u5f00\u53d1\u5927\u8d5b\u201d \u9009\u9879\u3002
\n\n\u4f5c\u54c1\u4f7f\u7528\u8bf4\u660e\u53ca\u622a\u56fe\u3002\u9700\u8981\u4f7f\u7528 README \u7f16\u5199\u9879\u76ee\u8bf4\u660e\uff0c\u82e5\u64cd\u4f5c\u6027\u8981\u6c42\u9ad8\u7684\uff0c\u9700\u7f16\u5199\u64cd\u4f5c\u6b65\u9aa4\u624b\u518c\u3002
\n\n\u70b9\u51fb\u8fd9\u91cc\u8fdb\u884c\u5f00\u53d1\u673a\u7684\u7533\u8bf7
\n\nGitCafe \u662f\u4e00\u4e2a\u57fa\u4e8e\u4ee3\u7801\u6258\u7ba1\u670d\u52a1\u6253\u9020\u7684\u6280\u672f\u534f\u4f5c\u4e0e\u5206\u4eab\u5e73\u53f0\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 Git \u4ee3\u7801\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u5c06\u5176\u5f00\u6e90\u6216\u5546\u4e1a\u9879\u76ee\u4ee3\u7801\u6258\u7ba1\u5728 GitCafe \u4e0a\uff0c\u4e0e\u5176\u4ed6\u7a0b\u5e8f\u5458\u534f\u4f5c\u5f00\u53d1\u3002
\n\nGitCafe \u5e2e\u52a9\u6587\u6863
\n\nLeap Motion SD \u4e0b\u8f7d\u5730\u5740
\n\nLeap Motion \u5e2e\u52a9\u6587\u6863
\n\n\u6280\u672f\u652f\u6301
\n\n\u672c\u6b21\u300cLeap Motion 2015 \u5728\u7ebf\u5f00\u53d1\u5927\u8d5b\u300dSupport \u91c7\u7528 Tickets\uff08\u5373\uff1a\u5de5\u5355\uff09\u7cfb\u7edf\u8fdb\u884c\uff0c\u5177\u4f53\u4f7f\u7528\u65b9\u5f0f\u53ef\u4ee5\u53c2\u8003\u8be5 Readme\u3002
\u5f53\u7136\uff0c\u6211\u4eec\u4ecd\u7136\u63d0\u4f9b\u4e86E-mail\u7684\u65b9\u5f0f\u63d0\u4f9bsupport\uff1aleapmotion-hackathon@googlegroups.com
\u5927\u8d5b\u62a5\u540d\u6b63\u5f0f\u542f\u52a8\uff0c\u8bf7\u53bb\u5f80\u6d3b\u52a8\u9875\u9762\u4e86\u89e3\u66f4\u591a\u8be6\u60c5\uff0c\u8ba9\u6211\u4eec\u4e00\u8d77\u6fc0\u53d1\u7075\u611f\u3001\u5c3d\u60c5\u521b\u610f\u3001\u4e0e\u6307\u5c16\u5171\u821e\uff01
\n\n\u6211\u4eec\u7b49\u7740\u4f60~
\n", "date_published": "2015-03-19T03:20:27+00:00", "title": "\u300c\u6307\u5c16\u4e0a\u7684\u534e\u5c14\u5179\u300d--Leap Motion 2015 \u5728\u7ebf\u5f00\u53d1\u5927\u8d5b\u5373\u5c06\u6765\u88ad\uff01", "id": "t/177955" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/171496", "date_modified": "2015-02-17T06:43:40+00:00", "content_html": "\u4e34\u8fd1\u6625\u8282\uff0cGitCafe \u7ed9\u5404\u4f4d\u7a0b\u5e8f\u5458\u5e26\u6765\u4e86\u4e00\u4efd\u793c\u7269\uff0c\u4ece\u6b64\u5927\u5bb6\u53ef\u4ee5\u65b9\u4fbf\u5730\u5728\u79fb\u52a8\u7aef\u6d4f\u89c8 GitCafe \u7684\u7f51\u7ad9\u4e86\uff0c\u5988\u5988\u518d\u4e5f\u4e0d\u7528\u62c5\u5fc3\u6211\u4e0d\u80fd\u53ca\u65f6\u5730\u770b\u89c1\u5c0f\u4f19\u4f34\u7684\u9879\u76ee\u4e0e\u6700\u65b0\u52a8\u6001\u4e86\uff5e
\n\n\u4e0b\u9762\u8ba9\u6211\u4eec\u6765\u770b\u770b GitCafe \u76ee\u524d\u5df2\u7ecf\u9002\u914d\u4e86\u624b\u673a\u7aef\u7684\u9875\u9762\u5427
\n\n1 \u9996\u9875
\n
\n
2 \u6ce8\u518c\u767b\u5f55\u9875\u9762
\n
3 \u4e2a\u4eba\u4e3b\u9875
\n
4 \u63a2\u7d22\uff0c\u53ef\u4ee5\u6d4f\u89c8\u63a8\u8350\u548c\u6700\u8fd1\u7684\u9879\u76ee
\n
5 \u9879\u76ee\u4e3b\u9875\uff0c\u53ef\u4ee5\u6d4f\u89c8\u9879\u76ee\u7684\u57fa\u672c\u4fe1\u606f\u548cReadme\u7684\u5185\u5bb9\u3002
\n
\u6211\u4eec\u4f1a\u9646\u7eed\u5b8c\u5584\u624b\u673a\u9002\u914d\u9875\u9762\uff0c\u4ee5\u6ee1\u8db3\u6211\u4eec\u53ef\u7231\u7684\u7528\u6237\u65e5\u76ca\u589e\u957f\u7684\u79fb\u52a8\u9700\u6c42\u3002
\n\n\u4e3a\u4e86\u65b9\u4fbf\u7528\u6237\uff0c\u5927\u5bb6\u53ef\u4ee5\u4ece\u6211\u4eec\u7684\u5fae\u4fe1\u516c\u4f17\u53f7\uff08\u641c\u7d22 \u201cGitCafe\u201d\uff09\u7684\u81ea\u5b9a\u4e49\u83dc\u5355\u91cc\u7684 \u201c\u5de5\u5177 Cafe\u201d \u8fdb\u5165\u767b\u5f55 GitCafe \u7684\u9875\u9762\uff0c\u5f00\u59cb\u6109\u5feb\u7684\u65c5\u7a0b\u3002
\n\n\u6211\u4eec\u6b22\u8fce\u5404\u4f4d\u901a\u8fc7\u70b9\u51fb\u8fd9\u91cc \u586b\u5199\u8868\u5355\uff0c\u6307\u51fa\u4f60\u4eec\u627e\u5230\u7684 bug\uff0c\u6216\u662f\u5bf9\u6211\u4eec\u7684\u9875\u9762\u6709\u4ec0\u4e48\u597d\u7684\u5efa\u8bae\uff0c\u4e4b\u540e\u6211\u4eec\u4f1a\u6709\u7cbe\u7f8e\u5c0f\u793c\u7269\u9001\u51fa\u54e6\uff1a\uff09
\n\n\u6700\u540e\uff0c\u795d\u5927\u5bb6\u7f8a\u5e74\u5feb\u4e50\uff01
\n", "date_published": "2015-02-17T06:43:31+00:00", "title": "[\u65b0\u529f\u80fd] GitCafe \u73b0\u5df2\u652f\u6301\u79fb\u52a8\u7aef\u9002\u914d\uff01", "id": "t/171496" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/169916", "date_modified": "2015-02-10T10:46:50+00:00", "content_html": "
\n2015 \u5e74 2 \u6708 10 \u65e5-3 \u6708 20 \u65e5\uff0c\u5f00\u6e90\u793e\u6210\u5458\u5fae\u8f6f\u5f00\u653e\u6280\u672f\uff0cGitCafe\uff0c\u6781\u5ba2\u5b66\u9662\u8054\u5408\u4e3e\u529e \u201dOpen XML SDK\u5728\u7ebf\u7f16\u7a0b\u9ed1\u5ba2\u677e\u201c\uff0c\u4e3a\u4e13\u6ce8\u4e8e\u5f00\u53d1\u63d0\u9ad8\u751f\u4ea7\u529b\u7684\u5e94\u7528\u53ca\u670d\u52a1\u7684\u7a0b\u5e8f\u733f\u4eec\u63d0\u4f9b\u4e00\u4e2a\u5728\u7ebf\u52a8\u624b\u5f00\u53d1\uff0c\u5b66\u4e60\u4ea4\u6d41\uff0c\u6280\u672f\u5206\u4eab\uff0c\u53d1\u6325\u521b\u610f\u4e0e\u7ade\u6280\u7684\u76db\u5bb4\u3002
\u6211\u4eec\u4e3a\u53c2\u8d5b\u961f\u4f0d\u51c6\u5907\u4e86\u4e30\u5bcc\u7684\u6280\u672f\u5e72\u8d27\uff0c\u56fd\u5185\u5916\u9ad8\u624b\u65e0\u79c1\u5206\u4eab\u4ee5\u53ca\u6280\u672f\u652f\u6301\uff0c\u9010\u6b65\u5f15\u5bfc\u7684\u5728\u7ebf\u5b66\u4e60\u89c6\u9891\u6559\u7a0b\u4e0e\u6280\u672f\u6587\u6863\uff0c\u573a\u666f\u8303\u4f8b\uff0c\u5728\u7ebf\u7f16\u7a0b\u53ca\u6f14\u793a\u73af\u5883\uff0c\u793e\u533a\u4e92\u52a8\uff0c\u4e30\u5bcc\u793c\u54c1\uff08\u5982\u6781\u5ba2\u5b66\u9662\u7279\u522b\u4e3a\u6bcf\u4f4d\u53c2\u8d5b\u4eba\u5458\u63d0\u4f9b\u6708 VIP \u7801\uff0c\u7528\u6237\u53ef\u4ee5\u514d\u8d39\u5b66\u4e60\u6781\u5ba2\u5b66\u9662\u5168\u7f51\u8bfe\u7a0b\uff09\u53ca\u4f18\u80dc\u5956\u54c1\uff08\u5982\u5fae\u8f6f\u6700\u8c6a\u534e\u7684 MSDN \u8ba2\u9605\u670d\u52a1\u65d7\u8230\u7248 (Visual Studio Ultimate with MSDN Subscriptions) \u4e00\u5e74\u514d\u8d39\u8ba2\u9605\uff09\u7b49\u5927\u5956\u3002\u5fc3\u52a8\u4e0d\u5982\u884c\u52a8\uff0c\u5e26\u7740\u60a8\u7684\u521b\u610f\u6216\u662f\u5f97\u610f\u4f5c\u54c1\u7684\u6e90\u4ee3\u7801\uff0c\u5373\u523b\u62a5\u540d\u53c2\u52a0\u5427\uff01
\n\n\u4e30\u5bcc\u5956\u54c1\uff1a
\n
\n\u5f00\u6e90\u793e\u5927\u793c\u5305
\n\u5fae\u8f6f\u5f00\u653e\u6280\u672f\u5e3d\u886b
\nGitCafe \u5927\u793c\u5305
\u53c2\u52a0\u5956\uff1a
\n
\nGitCoin\uff1a\u4e3b\u8981\u7528\u4e8e\u79c1\u6709\u9879\u76ee\u6258\u7ba1\u4ee3\u7801\u7684\u4f7f\u7528\u3002GitGoin \u53ef\u4ee5\u8d2d\u4e70 GitCafe\uff08\u4e0d\u9650\u4e8e\uff09\u989d\u5916\u6258\u7ba1\u7a7a\u95f4\u5347\u7ea7\u548c\u79c1\u6709\u9879\u76ee\u6258\u7ba1\u5728\u5185\u7684\u670d\u52a1\u3002
\n\u5b66\u9738 VIP\uff1a\u6781\u5ba2\u5b66\u9662\u7279\u522b\u4e3a\u6bcf\u4f4d\u53c2\u8d5b\u4eba\u5458\u63d0\u4f9b\u6708 VIP \u7801\uff0c\u7528\u6237\u53ef\u4ee5\u514d\u8d39\u5b66\u4e60\u6781\u5ba2\u5b66\u9662\u5168\u7f51\u8bfe\u7a0b\u3002
\u4f18\u80dc\u5956\uff1a
\n
\nMSDN \u65d7\u8230\u7248\uff1a\u5fae\u8f6f\u6700\u8c6a\u534e\u7684 MSDN \u8ba2\u9605\u670d\u52a1\u65d7\u8230\u7248 (Visual Studio Ultimate with MSDN Subscriptions) \u4e00\u5e74\u514d\u8d39\u8ba2\u9605
\u6211\u4eec\u51c6\u5907\u4e86\u4e00\u7cfb\u5217\u7684\u6559\u7a0b\u3001\u5c0f\u6311\u6218\u3001\u6280\u672f\u6587\u6863\u3001\u573a\u666f\u8303\u4f8b\u3001\u76f8\u5173\u793e\u533a\uff1a
\n\n\u9996\u5148\uff0c\u767b\u9646\u6781\u5ba2\u5b66\u9662\u5728\u7ebf\u5b66\u4e60\u89c6\u9891\u6559\u7a0b (www.jikexueyuan.com/partner#msopentech)
\n1. Open XML SDK \u7b80\u4ecb
\u4e0b\u8f7d\u548c\u7f16\u8bd1Open XML SDK\uff08Windows\u7cfb\u7edf\uff09
\u4e0b\u8f7d\u548c\u7f16\u8bd1Open XML SDK\uff08Linux\u7cfb\u7edf\uff09
\u4f7f\u7528PowerTools for Open XML\uff08Windows\u7cfb\u7edf\uff09
\u6211\u4eec\u4e5f\u4e3a\u5927\u5bb6\u642d\u5efa\u4e86\u5728\u516c\u6709\u4e91 (Azure) \u8fd0\u884c\u7684\u5728\u7ebf\u7f16\u7a0b\u670d\u52a1\uff08\u5305\u542b\u5f00\u53d1/\u5b66\u4e60/\u6f14\u793a/\u90e8\u7f72\uff09 \u201c\u5f00\u653e\u9ed1\u5ba2\u677e\u201d\uff0c\u8ba9\u60a8\u65e0\u8bba\u4f55\u65f6\u4f55\u5730\uff0c\u53ea\u8981\u6709\u6d4f\u89c8\u5668\uff0c\u5c31\u53ef\u4ee5\u5f00\u59cb\u4efb\u6027\u7f16\u7a0b\uff0c\u800c\u4e0d\u9700\u8981\u8f9b\u8f9b\u82e6\u82e6\u642d\u5efa\u73af\u5883\uff0c\u5b89\u88c5\u8f6f\u4ef6\u3002\u8981\u8bb0\u5f97\u5148\u62a5\u540d\u53c2\u52a0\uff0c\u5ba1\u6838\u901a\u8fc7\u540e\uff0c\u518d\u53d6\u5f97 GitCafe \u8d26\u53f7\uff0c\u624d\u80fd\u767b\u9646 \u201c\u5f00\u653e\u9ed1\u5ba2\u677e\u201d \u5e73\u53f0\u54df\uff01
\n\n\u9488\u5bf9\u672c\u6b21 Open XML SDK \u9ed1\u5ba2\u677e\uff0c\u201c\u5f00\u653e\u9ed1\u5ba2\u677e\u201d \u5e73\u53f0\u9664\u4e86\u8ba9\u60a8\u4efb\u6027\u5730\u5728\u7ebf\u7f16\u7a0b/\u6f14\u793a/\u90e8\u7f72\u4e4b\u5916\uff0c\u4e5f\u63d0\u4f9b\u4e86\u5404\u79cd\u5b66\u4e60\u5e2e\u52a9\uff0c\u5982\u96be\u5ea6\u4e0d\u4e00\u7684\u5c0f\u6311\u6218\uff0c\u4e30\u5bcc\u7684\u6280\u672f\u6587\u6863\uff0c\u573a\u666f\u8303\u4f8b\u53ca\u63d0\u793a\uff0c\u5f00\u53d1\u8005\u793e\u533a\u94fe\u63a5\uff0cOpen XML SDK \u6e90\u4ee3\u7801\u7b49\u3002
\n\n\u5efa\u8bae\u5148\u4e0a\u5b8c\u6781\u5ba2\u5b66\u9662\u5728\u7ebf\u5b66\u4e60\u89c6\u9891\u6559\u7a0b\u540e\uff0c\u518d\u6765 PK\u3002
\n\n1.\u4ece Word \u6587\u6863\u4e2d\u63d0\u53d6\u5185\u5bb9 (Extract Text from Open XML WordprocessingML Document)
\n\n2.\u589e\u52a0\u96be\u5ea6\uff01\u4ece\u542b\u6709\u4fee\u8ba2\u6807\u8bb0\u7684 Word \u6587\u6863\u4e2d\u63d0\u53d6\u5185\u5bb9 (Extract Text from a DOCX that Contains Tracked Revisions)
\n\n3.\u5feb\u901f\u6784\u5efa\u4e00\u4e2a ASP.NET \u7f51\u7ad9\uff0c\u5728\u7f51\u9875\u4e0a\u5c55\u793a Open XML \u6587\u6863\u5185\u5bb9 (Build a Simple ASP.NET Web Site that Displays an Open XML Document in a Page)
\n\n1.\u901a\u8fc7\u4e00\u4e2a CRM \u7cfb\u7edf\u7684\u7f51\u9875\u6765\u9884\u89c8 Open XML \u6587\u6863\u5185\u5bb9 (Previewing Open XML Documents in a Web-Based Content Management System)
\n\n2.\u57fa\u4e8e\u8868\u5355\u5f62\u5f0f\u7684\u95ee\u5377\u7cfb\u7edf (Form-Based Survey System)
\n\n3.\u7cfb\u7edf\u5316\u751f\u6210\u5b9a\u5236\u5316\u65b9\u6848 (Custom Proposal Custom Proposal Generation System)
\n\n4.\u4f01\u4e1a\u6587\u6863\u6807\u51c6\u5316\u7684\u6267\u884c (Enforcement of Standards for Corporate Documents)
\n\n5.\u6587\u6863\u4e2d\u7684\u6d4b\u8bd5\u4ee3\u7801 (Test Code in Documents)
\n\n6.\u751f\u6210\u5b9a\u5236 PPTX \u5e7b\u706f\u7247 (Generation of Custom PPTX Presentations)
\n\n7.\u5927\u91cf\u751f\u6210\u5ba2\u6237\u8d26\u5355 (Mass Generation of Customer Statements)
\n\n8.\u751f\u6210\u5b9a\u5236\u62a5\u544a (Custom Report Generation)
\n\n9.\u751f\u6210\u6cd5\u5f8b\u5408\u540c (Legal Contract Generation)
\n\n10.\u4ece Excel \u91cc\u5bfc\u51fa\u5927\u91cf\u6570\u636e\u4f5c\u5206\u6790 (Exporting Huge Data Sets for Analysis in Excel)
\n11.\u4f7f\u7528 Excel \u6765\u7ef4\u62a4\u4f01\u4e1a\u4fe1\u606f\u7ba1\u7406\u7cfb\u7edf\u7684\u6570\u636e (Using Excel to Maintain Data Sets from Enterprise Management Information Systems)
12.\u4f7f\u7528 Word \u6765\u7ef4\u62a4\u542b\u4e30\u5bcc\u8bed\u4e49\u7684\u5185\u5bb9 (Using Word to Maintain Rich Semantic Content)
\n\n13.\u5904\u7406\u63d0\u4ea4\u7684\u5185\u5bb9 (Processing Content Submissions)
\n\n14.\u5904\u7406\u4eba\u4e8b\u7ee9\u6548 (Human Resources Review Processing)
\n\n15.\u5b9a\u5236 Word \u6587\u6863\u5230 XML \u7684\u8f6c\u6362 (Custom Transformations of Word Documents to XML)
\n\n16.\u4ece\u6587\u6863\u4e2d\u62bd\u53d6\u5143\u6570\u636e (Extraction of Metadata from Documents)
\n\n\u5b98\u65b9\u9009\u624b\u6280\u672f\u4ea4\u6d41\u7fa4\uff1aQQ\u7fa4\u53f7 - 371539827
\n\n\u9ed1\u5ba2\u677e\u6280\u672f\u652f\u6301\u90ae\u7bb1\uff1a hackathon@kaiyuanshe.cn
\n\nhttp://www.csdn.net/tag/openxml/
\n\nEric White
\n
\n.NET developer, technical writer, blogger. Experience with Open XML using LINQ to XML and the Open XML SDK, Office 2010 client development, and SharePoint 2010 development. Experience with .NET technologies, including ASP.NET, HTML, CSS, XML, XSLT, XSD, and document transformations.
\u8521\u660e\u5cf0
\n
\n\u5c31\u804c\u4e8e\u5fae\u8f6f\u5f00\u653e\u6280\u672f\uff0c\u4efb\u8d44\u6df1\u9879\u76ee\u7ecf\u7406\uff0c\u6709\u516b\u5e74\u7684\u5fae\u8f6f\u7ecf\u5386\uff0c\u66fe\u53c2\u4e0e\u8fc7\u4f01\u4e1aIT\u89e3\u51b3\u65b9\u6848\u3001\u533b\u7597\u8f6f\u4ef6\u3001\u5168\u7403\u5e7f\u544a\u5e73\u53f0\u7684\u7814\u53d1\u8fd0\u7ef4\uff0c\u73b0\u5168\u5fc3\u6295\u5165\u5728\u4e0e\u5fae\u8f6f\u6280\u672f\u76f8\u5173\u7684\u5f00\u6e90\u8f6f\u4ef6\u9879\u76ee\u4e2d\u3002
Raniux
\n
\nGitCafe CTO\uff0c\u5199\u4e0b\u4e86 GitCafe \u7684\u7b2c\u4e00\u884c\u4ee3\u7801\u3002A life-long learner, a problem solver, and a developer. Also a pianist and a StarCraft player.
\u80e1\u5fb7\u6c11
\n
\n\u73b0\u4efb\u5fae\u8f6f\u516c\u53f8\u5927\u4e2d\u534e\u533a\u5f00\u53d1\u5de5\u5177\u9ad8\u7ea7\u4ea7\u54c1\u7ecf\u7406\uff0c\u5177\u590715 \u5e74 IT \u4e13\u4e1a\u6280\u672f\u670d\u52a1\u7684\u7ecf\u9a8c\uff0c\u5386\u4efb\u7a0b\u5e8f\u5458\u3001\u8bb2\u5e08\u3001\u9879\u76ee\u7ecf\u7406\u3001\u6280\u672f\u987e\u95ee\uff0c\u4e8e2004 \u5e74\u52a0\u5165\u5fae\u8f6f\u516c\u53f8\uff0c\u8d1f\u8d23.NET \u5e73\u53f0\u4ee5\u53ca\u5f00\u53d1\u5de5\u5177 Visual Studio \u5e02\u573a\u63a8\u5e7f\uff0c\u63a8\u52a8\u4f01\u4e1a\u7814\u53d1\u56e2\u961f\u5728\u79fb\u52a8\u4e0e\u4e92\u8054\u7f51\u8d8b\u52bf\u4e0b\u7684\u8f6c\u578b\uff0c\u5e76\u81f4\u529b\u4e8e\u8f6f\u4ef6\u5de5\u7a0b\u4e0e ALM \u5de5\u5177\u7684\u843d\u5730\u4e0e\u5b9e\u8df5\u3002
\u90dd\u51a0\u519b
\n
\n\u591a\u5e74\u6765\u5de5\u4f5c\u5728\u5f00\u53d1\u4e00\u7ebf\uff0c\u70ed\u7231\u8f6f\u4ef6\u5f00\u53d1\u5de5\u4f5c\uff0c\u5bf9\u6280\u672f\u6709\u6bd4\u8f83\u6df1\u5165\u7406\u89e3\uff0c 2011\u202f\u5e74\u51fa\u7248\u4e86\u300aASP.NET\u202f\u672c\u8d28\u8bba\u300b\uff0c\u8fde\u7eed\u56db\u5c4a\u5fae\u8f6f\u6700\u6709\u4ef7\u503c\u4e13\u5bb6\uff08MVP\uff09\uff0c\u79ef\u6781\u53c2\u4e0e\u6280\u672f\u793e\u533a\u6d3b\u52a8\u3002
\u53c2\u8d5b\u4f5c\u54c1\u5c55\u793a\u5730\u5740
\n\n\u4e3b\u529e\u65b9\uff1a
\n
\n
\n
\n
\u652f\u6301\u5355\u4f4d\uff1a
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n\u6625\u5929\uff0c\u662f\u5e0c\u671b\uff0c\u662f\u68a6\u60f3\u3002\u4e00\u5e74\u4e4b\u8ba1\u5728\u4e8e\u6625\uff0c\u662f\u65f6\u5019\u91ca\u653e\u70ed\u60c5\u4e0e\u521b\u9020\u529b\u4e86\u30022015 \u5f00\u6625\u4e4b\u9645 GitCafe \u7279\u6b64\u732e\u4e0a\u56db\u573a\u7ebf\u4e0a\u9ed1\u5ba2\u9a6c\u62c9\u677e\u6bd4\u8d5b\uff0c\u6b22\u8fce\u4e00\u8d77\u6765 hack \u51fa\u6e29\u6696\u8fd9\u4e2a\u6625\u5929\u7684\u4ee3\u7801\u3002
\u5982\u679c\u4f60\u8fd8\u62c5\u5fc3\u6625\u8282\u671f\u95f4\u65e0\u4e8b\u53ef\u505a\uff0c\u4e0d\u59a8\u6253\u5f00\u7535\u8111\uff0c\u6572\u4e0b\u4e00\u884c\u627f\u8f7d\u7075\u611f\u7684\u4ee3\u7801\uff1b\u5982\u679c\u4f60\u8fd8\u62c5\u5fc3\u521b\u610f\u65e0\u5904\u5b89\u653e\uff0c\u4e0d\u59a8\u70b9\u51fb\u62a5\u540d\uff0c\u5f00\u59cb\u521b\u5efa\u4e00\u4e2a\u9177\u70ab\u7684\u9879\u76ee\uff1b\u5982\u679c\u4f60\u8fd8\u62c5\u5fc3\u9ed1\u5ba2\u68a6\u60f3\u65e0\u6cd5\u5b9e\u73b0\uff0c\u4e0d\u59a8\u52a0\u5165\u6211\u4eec\uff0c\u4e00\u8d77\u8e0f\u4e0a\u8fd9\u6bb5\u6700\u68d2\u7684\u300c\u9ed1\u5ba2\u677e\u4e4b\u6625\u300d\u65c5\u7a0b\u3002
\n\n\u6211\u4eec\u671f\u5f85\u9047\u89c1\u5bf9\u8fd9\u4e2a\u4e16\u754c\u5145\u6ee1\u70ed\u60c5\u4e0e\u6597\u5fd7\u7684\u4f60\uff0c\u8fce\u63a5\u6311\u6218\uff0c\u4e00\u8d77\u5ea6\u8fc7\u8fd9\u4e2a\u975e\u6bd4\u5bfb\u5e38\u7684\u6625\u5929\u3002
\n\n2 \u6708 10 \u65e5\uff0c\u6b63\u5f0f\u542f\u822a\u3002
\n\n\u300c\u9ed1\u5ba2\u677e\u4e4b\u6625\u300d\u662f\u7531 GitCafe \u8054\u5408\u56db\u5bb6\u516c\u53f8\u4e00\u8d77\u5728\u6625\u8282\u957f\u5047\u671f\u95f4\u540c\u65f6\u5f00\u5c55\u7684\u5728\u7ebf\u9ed1\u5ba2\u9a6c\u62c9\u677e\u5927\u8d5b\uff0c\u53c2\u8d5b\u8005\u4eec\u4f7f\u7528\u4e91\u9002\u914d\u3001\u9b54\u8c46\u3001Depth-VR \u6216 BearyChat \u7684\u4ea7\u54c1\u6216\u8005\u63a5\u53e3\uff0c\u5e76\u5c06\u9879\u76ee\u4e0e\u4ee3\u7801\u6258\u7ba1\u5728 GitCafe \u4e0a\uff0c\u8fdb\u884c\u4e3a\u671f\u4e00\u4e2a\u6708\u7684\u5f00\u53d1\u3002
\n\n\u4e3a\u4f60\u5949\u4e0a\u6bcf\u4e00\u573a hackathon \u8bda\u631a\u7684\u5bc4\u8bed\uff0c\u5e0c\u671b\u4f60\u80fd\u591f\u5728\u8fd9\u573a\u65c5\u7a0b\u4e2d\u4eab\u53d7\u5230\u5feb\u4e50\u3002
\n\n
\nAmaze UI \u4ece 2014 \u5e74 8 \u6708\u5f00\u6e90\u81f3\u4eca\u5df2\u7ecf 6 \u4e2a\u6708\uff0c\u8fd9\u534a\u5e74\u95f4 Amaze UI \u56e2\u961f\u81f4\u529b\u4e8e\u4e00\u4ef6\u4e8b\uff1a\u4e3a\u5f00\u53d1\u8005\u6253\u9020\u6700\u597d\u7528\u7684\u524d\u7aef\u6846\u67b6\u3002\u76ee\u524d\u770b\u6ca1\u6709\u504f\u79bb\u8fd9\u4e2a\u65b9\u5411\u3002
Amaze UI \u56e2\u961f\u5f88\u9ad8\u5174\u80fd\u4e0e GitCafe \u56e2\u961f\u5408\u4f5c\u4e3e\u529e\u7ebf\u4e0a\u9ed1\u5ba2\u9a6c\u62c9\u677e\uff0c\u4e5f\u5e0c\u671b\u672c\u6b21\u6d3b\u52a8\u80fd\u5f97\u5230\u5f00\u53d1\u8005\u7684\u8ba4\u53ef\uff0c\u5e2e\u52a9 Amaze UI \u66f4\u597d\u7684\u6210\u957f\u3002
\n\n
\n\u9b54\u8c46\u8def\u7531\u5668\u662f\u4e00\u6b3e\u975e\u5e38\u72ec\u7279\u7684\u667a\u80fd\u8def\u7531\u5668\uff0c\u72ec\u7279\u4e4b\u5904\u5728\u4e8e\u5b83\u6709\u4e00\u5757\u53ef\u89e6\u63a7\u7684\u5c4f\u5e55\uff0c\u8fd9\u4e00\u70b9\u5f7b\u5e95\u6539\u53d8\u4e86\u4f20\u7edf\u8def\u7531\u5668\u4e0e\u7528\u6237\u4ea4\u4e92\u7684\u65b9\u5f0f\u3002\u4f60\u53ef\u4ee5\u4e0d\u7528\u501f\u52a9\u7535\u8111\u3001\u624b\u673a\u5c31\u80fd\u76f4\u63a5\u8bbe\u7f6e\u8def\u7531\u5668\uff0c\u67e5\u770b\u7f51\u7edc\u72b6\u6001\u3001\u8054\u7f51\u8bbe\u5907\u7b49\u3002\u800c\u66f4\u91cd\u8981\u7684\u662f\uff0c\u6211\u4eec\u73b0\u5728\u5df2\u7ecf\u53ef\u4ee5\u8ba9\u7528\u6237\u76f4\u63a5\u5728\u8fd9\u5757\u89e6\u63a7\u5c4f\u4e0a\u5b89\u88c5\u548c\u4f7f\u7528\u5e94\u7528\u4e86\uff1b\u6bd4\u5982\u5929\u6c14\u9884\u62a5\uff0c\u8fd9\u662f\u7531\u4e00\u4f4d\u9b54\u8c46\u70ed\u5fc3\u7528\u6237\u5f00\u53d1\u7684\u5e94\u7528\uff0c\u6253\u5f00\u5b83\uff0c\u7528\u6237\u5c31\u53ef\u4ee5\u76f4\u63a5\u5728\u8def\u7531\u5668\u4e0a\u67e5\u770b\u5929\u6c14\uff0c\u751a\u81f3\u96fe\u973e\u6307\u6570\u3002\u4e0d\u4ec5\u5982\u6b64\uff0c\u5f00\u53d1\u8005\u5f00\u53d1\u4e00\u6b3e\u5e94\u7528\u8fd8\u53ef\u4ee5\u76f4\u63a5\u81ea\u52a8\u9002\u914d\u5230 Android/iOS \u7248\u672c\u7684\u9b54\u8c46\u8def\u7531\u5b9d\u548c\u8def\u7531\u5668\u7684 Web \u7ba1\u7406\u540e\u53f0\uff1b\u4e00\u6b21\u5f00\u53d1\uff0c\u5c31\u652f\u6301\u4e09\u79cd\u9014\u5f84\u7684\u524d\u7aef\u5c55\u73b0\u3002
\u6211\u4eec\u8fd8\u9700\u8981\u66f4\u591a\u529f\u80fd\u66f4\u4e30\u5bcc\u66f4\u6709\u8da3\u7684\u5e94\u7528\uff0c\u6765\u6ee1\u8db3\u7528\u6237\u7684\u4f7f\u7528\u9700\u6c42\uff0c\u56e0\u6b64\u6211\u4eec\u5c31\u9700\u8981\u66f4\u591a\u6709\u80fd\u529b\u7684\u5f00\u53d1\u8005\u52a0\u5165\u5230\u9b54\u8c46\u8def\u7531\u5668\u5e94\u7528\u5f00\u53d1\u7684\u5de5\u4f5c\u4e2d\u6765\u3002\u6211\u4eec\u5e0c\u671b\u672a\u6765\u6240\u6709\u666e\u901a\u7684\u7528\u6237\u90fd\u80fd\u8f7b\u677e\u81ea\u5982\u5730\u64cd\u63a7\u8def\u7531\u5668\uff0c\u4e3a\u751f\u6d3b\u5e26\u6765\u66f4\u5927\u7684\u4fbf\u5229\u548c\u4e50\u8da3\u3002
\n\n
\n\u4e5f\u8bb8\uff0c\u4f60\u65f6\u5e38\u6d3b\u5728 \u201c\u4ee3\u7801\u201d \u7684\u4e16\u754c\u91cc\uff0c\u5728\u90a3\u91cc\u4f60\u53ef\u80fd\u4f1a\u89c9\u5f97\u5f88\u8212\u670d\u3002
\u90a3\u4e48\uff0c\u4f60\u5e0c\u671b\u627e\u5230\uff0c\u751a\u81f3\u521b\u9020\u4e00\u4e2a\u7531\u4ee3\u7801\u6784\u6210\u7684 \u201c\u4e16\u754c\u201d \u5417\uff1f
\n\n\u4e00\u4e2a \u201c\u865a\u62df\u201d \u7684 \u201c\u73b0\u5b9e\u201d\u3002
\n\n\u770b\u5230\u8fd9\u91cc\uff0c\u5982\u679c\u4f60\u60f3\u9009\u62e9\u7684\u662f\u90a3\u4e00\u9897\u84dd\u8272\u7684\u836f\u4e38\uff0c\u90a3\u4e48\u6211\u4eec\u6709\u5fc5\u8981\u544a\u8bc9\u4f60\uff0c\u8fd9\u6b63\u662f Depth-VR \u4e00\u76f4\u5728\u505a\u7684\u4e8b\u60c5\uff0c\u800c\u4e14\u6211\u4eec\u5e0c\u671b\u548c\u4f60\u4e00\u5757\u513f\u505a\u3002
\n\n\u4e5f\u8bb8\u4f60\u5bf9 Depth-VR \u5e76\u65e0\u51e0\u5206\u4e86\u89e3\uff0c\u6ca1\u5173\u7cfb\uff0c\u73b0\u5728\u4f60\u53ea\u9700\u8981\u77e5\u9053\u4e00\u4ef6\u4e8b\uff1a\u201c\u865a\u62df\u73b0\u5b9e\u201d \u88ab\u6211\u4eec\u627f\u5305\u4e86\uff01
\n\n\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u5404\u4f4d\u80fd\u4eba\u5f02\u58eb\u5e2e\u6211\u4eec\u5f00\u53d1\u6216\u8005\u6539\u8fdb\u4ec0\u4e48 \u201c\u4ea7\u54c1\u201d\uff0c\u800c\u662f\u5404\u4f4d\u5f3a\u58ee\u7684\u53f3\uff08\u5de6\uff09\u624b\uff0c\u548c\u6211\u4eec\u4e00\u8d77\u521b\u5efa\u8fd9\u6837\u4e00\u4e2a\u771f\u5b9e\u7684\u4e4c\u6258\u90a6\uff0c\u4e00\u4e2a\u5b9e\u5b9e\u5728\u5728\u7684 Cybercity\uff0c\u8ba9 Depth-VR \u80fd\u8d21\u732e\u51fa\u4e00\u4e2a\u66f4\u597d\u7684\u865a\u62df\u73b0\u5b9e\u5e73\u53f0\uff0c\u4ece\u800c\u8ba9\u66f4\u591a\u7684\u5f00\u53d1\u8005\u6765\u8fd9\u91cc \u201c\u5b89\u5bb6\u201d\u3002
\n\n\u5c31\u7b97\u662f\u6765\u642c\u7816\u4e5f\u597d\u554a\uff01
\n\n
\n\u8fd9\u53ef\u80fd\u662f\u4e00\u6b21\u6700\u5bcc\u6709\u7406\u60f3\u3001\u575a\u6301\uff0c\u6fc0\u60c5\u7684\u9ed1\u5ba2\u9a6c\u62c9\u677e\u3002
\u5728\u8fd9\u4e2a\u65b0\u6625\u4f0a\u59cb\uff0c\u6210\u767e\u4e0a\u5343\u7684\u4f19\u4f34\u4f1a\u8ddf\u4f60\u540c\u5728\u4e00\u8d77\uff0c\u4e3a\u4e86\u4e00\u4e2a\u76ee\u6807\u7ed3\u4f34\u524d\u8fdb\u3002\u5728\u8fd9\u91cc\uff0c\u300cBearyChat\u300d \u4f1a\u4f34\u968f\u5728\u4f60\u7684\u5de6\u53f3\uff0c\u7528\u5f3a\u5927\u7684\u4fe1\u606f\u96c6\u6210\uff0c\u5feb\u901f\u7a33\u5b9a\u7684\u6c9f\u901a\u4f53\u9a8c\uff0c\u8ba9\u4f60\u62e5\u6709\u4e00\u4e2a\u975e\u540c\u51e1\u54cd\u7684\u6625\u5929\u3002
\n\n\u65e0\u8bba\u4f60\u51b3\u5b9a\u5728\u54ea\u4e2a\u9879\u76ee\u4e2d\u7528\u4ee3\u7801\u7ec4\u6210\u7f8e\u5999\u7684\u4e50\u7ae0\uff0c\u6211\u4eec\u90fd\u771f\u8bda\u7684\u5e0c\u671b\u4f60\u80fd\u591f\u4f7f\u7528\u300cBearyChat\u300d\u6765\u8fdb\u884c\u7ebf\u4e0a\u7684\u6c9f\u901a\u548c\u534f\u4f5c\uff1a\u5f53\u4f60\u4f7f\u7528\u300cTrello\u300d \u638c\u63a7\u9879\u76ee\u8fdb\u5ea6\u3001\u7528\u300cJIRA\u300d \u8ddf\u8e2a\u9879\u76ee\u4e8b\u52a1\u3001\u7528\u300cSentry\u300d \u5b9e\u65f6\u6536\u96c6\u5f02\u5e38\u548c\u65e5\u5fd7\u8bb0\u5f55\uff0c\u300cBearyChat\u300d\u90fd\u4f1a\u5c06\u8fd9\u4e9b\u4fe1\u606f\u5b9e\u65f6\u63a8\u9001\u7ed9\u4f60\uff1b\u540c\u65f6\uff0c\u4f60\u8fd8\u53ef\u4ee5\u6839\u636e\u8bdd\u9898\u8fdb\u884c\u5206\u7ec4\u6216\u8005\u79c1\u5bc6\u5373\u65f6\u6c9f\u901a\u3002\u603b\u4e4b\uff0c\u4f60\u5c06\u4f1a\u5728\u300cBearyChat\u300d\u4e0a\u5373\u65f6\u6c9f\u901a\u3001\u8ba8\u8bba\u4e00\u4e9b\u4f60\u5173\u5fc3\u7684\u4fe1\u606f\uff0c\u8ba9\u5de5\u4f5c\u66f4\u52a0\u4e13\u6ce8\u3002
\n\n\u73b0\u5728\uff0c\u300cBearyChat\u300d\u4e2d\u8fd8\u6709\u66f4\u591a\u7684\u667a\u80fd\u673a\u5668\u4eba\u9700\u8981\u4f60\u6765\u4e3a\u6211\u4eec\u5f00\u53d1\uff0c\u5b83\u53ef\u4ee5\u662f\uff1a\u667a\u80fd\u7684\u4fe1\u606f\u6536\u96c6\u5668\u3001\u53ef\u4ee5\u662f\u5b9a\u65f6\u63d0\u9192\u4f60\u559d\u6c34\u7684\u8d34\u5fc3\u5c0f\u52a9\u624b\uff0c\u8fd8\u53ef\u4ee5\u662f\u8bb0\u5f97\u4f60\u91cd\u8981\u7eaa\u5ff5\u65e5\u5e76\u9001\u4e0a\u795d\u798f\u7684\u631a\u53cb\u2026\u2026.\u5f53\u7136\uff0c\u522b\u5177\u5320\u5fc3\u7684\u4f60\u8fd8\u53ef\u4ee5\u5929\u9a6c\u884c\u7a7a\u7684\u6253\u9020\u51fa\u66f4\u591a\u673a\u5668\u4eba\uff0c\u8fd9\u4e00\u5207\u90fd\u7531\u4f60\u6765\u51b3\u5b9a\uff0c\u4f60\u5c31\u662f\u8fd9\u4e2a\u6625\u5929\u7684\u9020\u7269\u4e3b\u3002
\n\nGitCafe \u662f\u4e00\u4e2a\u57fa\u4e8e\u4ee3\u7801\u6258\u7ba1\u670d\u52a1\u6253\u9020\u7684\u6280\u672f\u534f\u4f5c\u4e0e\u5206\u4eab\u5e73\u53f0\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 Git \u4ee3\u7801\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u5c06\u5176\u5f00\u6e90\u6216\u5546\u4e1a\u9879\u76ee\u4ee3\u7801\u6258\u7ba1\u5728 GitCafe \u4e0a\uff0c\u4e0e\u5176\u4ed6\u7a0b\u5e8f\u5458\u534f\u4f5c\u5f00\u53d1\u3002
\n\n\u8fd9\u4e00\u6b21\uff0cGitCafe \u4e3a\u4f60\u63d0\u4f9b\u5168\u90e8\u9879\u76ee\u4e0e\u4ee3\u7801\u7684\u6258\u7ba1\u548c\u5728\u7ebf\u534f\u4f5c\u7684\u670d\u52a1\uff0c\u5e76\u6709\u5de5\u4f5c\u4eba\u5458\u4e3a\u5927\u5bb6\u8fdb\u884c\u73b0\u573a\u7684\u6307\u5bfc\u3002
\n\nGitCafe \u5e2e\u52a9\u6587\u6863
\n\n2 \u6708 10 \u65e5\uff0c\u300c\u9ed1\u5ba2\u677e\u4e4b\u6625\u300d\u6b63\u5f0f\u542f\u822a\u3002
\n\n\u8bf7\u8fdb\u5165\u6211\u4eec\u7684\u62a5\u540d\u9875\u9762\uff0c\u9009\u62e9\u4f60\u60f3\u8981\u53c2\u52a0\u7684\u9ed1\u5ba2\u9a6c\u62c9\u677e\uff0c\u8fdb\u884c\u62a5\u540d\uff0c\u5c31\u53ef\u4ee5\u81ea\u7531\u7684\u5f00\u59cb hack \u4e86\uff01
\n\n\u5f53\u4f60\u63a5\u4e0b\u4e86\u6218\u4e66\uff0c\u6b66\u88c5\u4e86\u81ea\u5df1\uff0c\u6253\u8d77\u7cbe\u795e\u6765\u8e0f\u4e0a\u9ed1\u5ba2\u4e4b\u65c5\uff0c\u4e5f\u522b\u5fd8\u4e86\uff0c\u65e0\u8bba\u7ed3\u679c\u5982\u4f55\uff0c\u6211\u4eec\u90fd\u5e0c\u671b\u4f60\u5728\u8fd9\u573a\u76db\u5bb4\u4e2d\u83b7\u5f97\u771f\u6b63\u7684\u5feb\u4e50\u3002
\n\n\u8fd8\u5728\u72b9\u8c6b\u4ec0\u4e48\uff0c\u8d76\u5feb\u62a5\u540d\u5427\uff5e
\n\n
\n
\n
\n
\u8bda\u631a\u9080\u8bf7\uff5e
\n", "date_published": "2015-02-10T10:13:51+00:00", "title": "\u300c\u9ed1\u5ba2\u677e\u4e4b\u6625\u300d\u65c5\u7a0b\u6b63\u5f0f\u542f\u52a8\uff0c\u4e00\u8d77\u6765 hack\uff01", "id": "t/169909" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/167017", "date_modified": "2015-01-31T05:47:20+00:00", "content_html": "GitCafe \u65b0\u7684\u9879\u76ee\u8f6c\u8ba9\u529f\u80fd\uff0c\u8ba9\u4f60\u53ef\u4ee5\u4e0d\u7528\u518d\u70e6\u607c\u5982\u4f55\u5728\u4e2a\u4eba\u6216\u7ec4\u7ec7\u95f4\u8fc1\u79fb\u9879\u76ee\u3002
\n\n\u65e0\u8bba\u662f\u4e2a\u4eba\u8f6c\u7ec4\u7ec7\uff0c\u8fd8\u662f\u7ec4\u7ec7\u8f6c\u4e2a\u4eba\uff0c\u8fd8\u662f\u7ec4\u7ec7\u95f4\u8f6c\u8ba9\u2026\u2026\u73b0\u5728\u53ea\u9700\u8981\u7b80\u5355\u7684\u4e24\u6b65\u64cd\u4f5c\u5373\u53ef\u5b8c\u6210\u3002
\n\n\u7b2c\u4e00\u6b65\uff1a\u7533\u8bf7\u9879\u76ee\u8f6c\u8ba9
\n\u8fdb\u5165\u9879\u76ee\u7ba1\u7406
\n
\u70b9\u51fb\u8f6c\u8ba9
\n
\u8f93\u5165\u63a5\u53d7\u8005\u7684\u7528\u6237\u540d\u53ca\u4f60\u7684\u767b\u5f55\u5bc6\u7801\uff0c\u70b9\u51fb\u786e\u8ba4\u540e\u7cfb\u7edf\u4f1a\u81ea\u52a8\u53d1\u9001\u4e00\u5c01\u90ae\u4ef6\u7ed9\u9879\u76ee\u63a5\u53d7\u8005\u3002
\n
Tips\uff1a\u4e0b\u5217\u4e09\u79cd\u60c5\u51b5\u8f6c\u8ba9\u4f1a\u81ea\u52a8\u5b8c\u6210\u800c\u65e0\u9700\u90ae\u4ef6\u786e\u8ba4\uff1a\n1.\u9879\u76ee\u8f6c\u5165\u81ea\u5df1\u62e5\u6709/\u7ba1\u7406\u7684\u7ec4\u7ec7\u4e0b\n2.\u9879\u76ee\u4ece\u81ea\u5df1\u62e5\u6709\u7684\u7ec4\u7ec7\u4e0b\u9762\u8f6c\u5165\u5230\u81ea\u5df1\u540d\u4e0b\n3.\u9879\u76ee\u5728\u81ea\u5df1\u62e5\u6709\u7684\u591a\u4e2a\u7ec4\u7ec7\u91cc\u9762\u4e92\u8f6c\n
\u7b2c\u4e8c\u6b65\uff1a\u786e\u8ba4\u63a5\u53d7\u9879\u76ee
\n\u9879\u76ee\u63a5\u53d7\u8005\u4f1a\u6536\u5230\u4e00\u5c01\u6765\u81ea GitCafe \u7684\u786e\u8ba4\u90ae\u4ef6\uff0c\u5982\u679c\u786e\u5b9a\u63a5\u53d7\u9879\u76ee\u8f6c\u8ba9\uff0c\u76f4\u63a5\u70b9\u51fb "\u786e\u8ba4" \u3002
\u5982\u679c\u4e0d\u60f3\u63a5\u53d7\u9879\u76ee\u8f6c\u8ba9\uff0c\u65e0\u9700\u8fdb\u884c\u4efb\u4f55\u64cd\u4f5c\uff0c\u4e09\u5929\u540e\u8f6c\u8ba9\u7533\u8bf7\u4f1a\u81ea\u52a8\u5931\u6548\u3002
\nTips\uff1a\u5728\u63a5\u53d7\u8005\u8fd8\u6ca1\u786e\u8ba4\u4e4b\u524d\u9879\u76ee\u4f9d\u7136\u5c5e\u4e8e\u539f\u6240\u6709\u8005\uff0c\u800c\u4e14\u6240\u6709\u4ee3\u7801\u90fd\u53ef\u4ee5\u6b63\u5e38\u63d0\u4ea4\u64cd\u4f5c\u3002\n\u73b0\u5728\u5c31\u5f00\u59cb\u4f53\u9a8c\u65b0\u529f\u80fd\u5427\uff01\u5982\u6709\u4efb\u4f55\u95ee\u9898\uff0c\u8bf7\u53d1\u9001\u90ae\u4ef6\u81f3 support@gitcafe.com \u4e0e\u6211\u4eec\u8054\u7cfb\uff0c\u8c22\u8c22\uff01
\n", "date_published": "2015-01-31T05:47:07+00:00", "title": "[\u65b0\u529f\u80fd] \u8ba9\u4f60\u5728 GitCafe \u4e0a\u7684\u9879\u76ee\u8f6c\u8d77\u6765\uff01", "id": "t/167017" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/166849", "date_modified": "2015-01-30T10:21:12+00:00", "content_html": "1 \u6708 28 \u65e5\uff0c\u7814\u7a76\u4eba\u5458\u5728 Linux glibc \u5e93\u4e2d\u53d1\u73b0\u4e86\u4e00\u4e2a\u4e25\u91cd\u7684\u5b89\u5168\u95ee\u9898\u2014\u2014\u5e7d\u7075\u6f0f\u6d1e\uff0c\u5b83\u53ef\u4ee5\u8ba9\u653b\u51fb\u8005\u5728\u4e0d\u4e86\u89e3\u7cfb\u7edf\u7684\u4efb\u4f55\u60c5\u51b5\u4e0b\u8fdc\u7a0b\u83b7\u53d6\u64cd\u4f5c\u7cfb\u7edf\u7684\u63a7\u5236\u6743\u9650\u3002\u76ee\u524d\u5b83\u7684 CVE \u7f16\u53f7\u4e3a CVE-2015-0235\u3002
\n\nGitCafe \u5728\u63a5\u5230\u6d88\u606f\u540e\u7b2c\u4e00\u65f6\u95f4\u91c7\u53d6\u884c\u52a8\u89e3\u51b3\u4e86\u8fd9\u4e2a\u95ee\u9898\uff0c\u8bf7\u5e7f\u5927\u7528\u6237\u653e\u5fc3\u3002
\n\nglibc \u662f GNU \u53d1\u5e03\u7684 libc \u5e93\uff0c\u5373 C \u8fd0\u884c\u5e93\u3002glibc \u662f Linux \u7cfb\u7edf\u4e2d\u6700\u5e95\u5c42\u7684 API\uff0c\u51e0\u4e4e\u5176\u5b83\u4efb\u4f55\u8fd0\u884c\u5e93\u90fd\u4f1a\u4f9d\u8d56\u4e8e glibc\u3002glibc \u9664\u4e86\u5c01\u88c5 Linux \u64cd\u4f5c\u7cfb\u7edf\u6240\u63d0\u4f9b\u7684\u7cfb\u7edf\u670d\u52a1\u5916\uff0c\u5b83\u672c\u8eab\u4e5f\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u5b83\u4e00\u4e9b\u5fc5\u8981\u529f\u80fd\u670d\u52a1\u7684\u5b9e\u73b0\u3002glibc \u56ca\u62ec\u4e86\u51e0\u4e4e\u6240\u6709\u7684 UNIX \u901a\u884c\u7684\u6807\u51c6\u3002
\n\n\u4ee3\u7801\u5ba1\u8ba1\u516c\u53f8 Qualys \u7684\u7814\u7a76\u4eba\u5458\u5728 glibc \u5e93\u4e2d\u7684 __nss_hostname_digits_dots() \u51fd\u6570\u4e2d\u53d1\u73b0\u4e86\u4e00\u4e2a\u7f13\u51b2\u533a\u6ea2\u51fa\u7684\u6f0f\u6d1e\uff0c\u8fd9\u4e2a bug \u53ef\u4ee5\u7ecf\u8fc7 gethostbyname() \u51fd\u6570\u88ab\u672c\u5730\u6216\u8005\u8fdc\u7a0b\u7684\u89e6\u53d1\u3002\u5e94\u7528\u7a0b\u5e8f\u4e3b\u8981\u4f7f\u7528 gethostbyname() \u51fd\u6570\u53d1\u8d77 DNS \u8bf7\u6c42\uff0c\u8fd9\u4e2a\u51fd\u6570\u4f1a\u5c06\u4e3b\u673a\u540d\u79f0\u8f6c\u6362\u4e3a ip \u5730\u5740\u3002
\n\n\u8fd9\u4e2a\u6f0f\u6d1e\u9020\u6210\u4e86\u8fdc\u7a0b\u4ee3\u7801\u6267\u884c\uff0c\u653b\u51fb\u8005\u53ef\u4ee5\u5229\u7528\u6b64\u6f0f\u6d1e\u83b7\u53d6\u7cfb\u7edf\u7684\u5b8c\u5168\u63a7\u5236\u6743\u3002
\n\n\u7b2c\u4e00\u4e2a\u53d7\u5f71\u54cd\u7684\u7248\u672c\u662f GNU C \u5e93\u7684 glibc-2.2\uff0c2000 \u5e74 11 \u6708 10 \u53f7\u53d1\u5e03\u3002\u6211\u4eec\u5df2\u627e\u51fa\u591a\u79cd\u53ef\u4ee5\u51cf\u8f7b\u6f0f\u6d1e\u7684\u65b9\u5f0f\u3002\u6211\u4eec\u53d1\u73b0\u5b83\u5728 2013 \u5e74 5 \u6708 21 \u53f7\uff08\u5728 glibc-2.17 \u548c glibc-2.18 \u53d1\u5e03\u4e4b\u95f4\uff09\u5df2\u7ecf\u4fee\u590d\u3002\u4e0d\u5e78\u7684\u662f\u4ed6\u4eec\u4e0d\u8ba4\u4e3a\u8fd9\u662f\u4e2a\u5b89\u5168\u6f0f\u6d1e\u3002\u4ece\u800c\u5bfc\u81f4\u8bb8\u591a\u7a33\u5b9a\u7248\u672c\u548c\u957f\u671f\u7248\u672c\u66b4\u9732\u5728\u5916\uff0c\u5176\u4e2d\u5305\u62ec Debian 7 (wheezy)\uff0cRed Hat Enterprise 6 & 7\uff0cCentOS 6 & 7\uff0cUbuntu 12.04 \u7b49\u3002
\n\n\u4ee5\u4e0a\u4fe1\u606f\u53c2\u8003\u81ea 360 \u5b89\u5168\u64ad\u62a5\uff0c\u67e5\u770b GHOST \u6f0f\u6d1e\u62a5\u544a\uff01
\n", "date_published": "2015-01-30T10:20:24+00:00", "title": "[\u901a\u77e5] Linux glibc \u4e2d\u53d1\u73b0\u5e7d\u7075\u6f0f\u6d1e\uff0c\u8bf7\u53ca\u65f6\u4fee\u590d", "id": "t/166849" }, { "author": { "url": "member/GuBonjour", "name": "GuBonjour", "avatar": "https://cdn.v2ex.com/avatar/f457/edf5/75353_large.png?m=1420346433" }, "url": "t/164844", "date_modified": "2015-01-23T08:39:00+00:00", "content_html": "\u672c\u6587\u4f5c\u8005\uff1aWang Hyde
\n\u4ee3\u7801\u4ed3\u5e93\uff1a
\nhttps://gitcafe.com/callmewhy
\n\u535a\u5ba2\u5730\u5740\uff1a
\nhttp://callmewhy.gitcafe.io
\u6700\u8fd1\u5728\u7ed9\u4ee5\u524d\u7684\u8001\u9879\u76ee\u7ef4\u62a4\uff0c\u8bf4\u8d77\u6765\u5de5\u4f5c\u5f88\u7b80\u5355\uff0c\u4e00\u4e2a\u5b57\uff1a\u6539 Bug\u3002\u8fd9\u770b\u8d77\u6765\u5e73\u6de1\u65e0\u5e38\u7684\u5de5\u4f5c\uff0c\u5b9e\u9645\u4e0a\u51f6\u9669\u65e0\u6bd4\uff0c\u85cf\u5751\u65e0\u6570\u3002\u65f6\u81f3\u4eca\u65e5\uff0c\u611f\u89c9\u6574\u4e2a\u4eba\u90fd\u5f97\u5230\u4e86\u5347\u534e\u3002\u5728\u7761\u89c9\u524d\u62bd\u7a7a\u5199\u7bc7\u535a\u5ba2\uff0c\u548c\u5404\u4f4d\u5206\u4eab\u4e00\u4e0b\u8e29\u5751\u7ecf\u5386\uff0c\u4e00\u8d77\u54c1\u5473\u5176\u4e2d\u7684\u79cd\u79cd\u9178\u82e6\u8fa3\uff08\u6ca1\u751c\uff09\u3002
\n\n\u4e3a\u4fdd\u8bc1\u4e2a\u7801\u9690\u79c1\uff0c\u6587\u4e2d\u4ee3\u7801\u5747\u4e3a\u5316\u540d\uff0c\u8fd8\u671b\u8c05\u89e3\u3002\u5982\u6709\u96f7\u540c\uff0c\u7eaf\u5c5e\u5de7\u5408\uff08\u53ef\u4ee5\u901a\u8fc7 git blame \u67e5\u770b\u662f\u8c01\u5199\u7684\uff09\u3002
\u5982\u679c\u8981\u6298\u78e8\u4e00\u4e2a\u5f3a\u8feb\u75c7\uff0c\u6700\u597d\u7684\u65b9\u6cd5\u5c31\u662f\u7528\u5404\u79cd\u6076\u5fc3\u7684\u53d8\u91cf\u540d\u6076\u5fc3\u6b7b\u4ed6\u3002
\n\n\u4ec0\u4e48\uff1f\u4f60\u8bf4\u9996\u5b57\u6bcd\u8981\u5927\u5199\uff1f
\n@property (nonatomic, assign) PERSONTYPE personType;\n\u4ec0\u4e48\uff1f\u4f60\u8bf4\u5355\u8bcd\u91cc\u9762\u8981\u5c0f\u5199\uff1f
\ntypedef enum tagPersonType{\n person_type = 1,\n group_type,\n} PERSONTYPE;\n\u4ec0\u4e48\uff1f\u4f60\u8bf4\u8981\u7528\u82f1\u6587\u5355\u8bcd\u547d\u540d\uff1f
\n- (void)uploadSeccess:(MessageEntity *)message;\n\u4ec0\u4e48\uff1f\u4f60\u8bf4\u7c7b\u524d\u9762\u8981\u52a0\u524d\u7f00\u907f\u514d\u51b2\u7a81\uff1f
\n@interface PMWLogger : NSObject\n...\n@interface PMTool : NSObject\n...\n@interface MainControler : NSObject\n\u4ec0\u4e48\uff1f\u4f60\u8bf4\u6587\u4ef6\u8981\u6309\u7167\u76ee\u5f55\u5b58\u653e\uff1f
\n- Classes\n - MainControllers\n - MyController\n - Controllers\n - SettingControllers\n - ChatModel.h\n - ChatModel.m\n - SettingControllers (\u4e0d\u662f\u624b\u8bef)\n - Chatting\n - SearchView.h\n - SearchView.m\n - Voice\n - AgentModels\n - Public \n - Common\n - PublicDef.h\n - PublicDef.m\n\u4ec0\u4e48\uff1f\u542c\u8bf4 OC \u53ef\u4ee5\u7528\u5b8f\u5b9a\u4e49\uff1f
\n#define STRHASSBUSTR(str,subStr) ...\n\u5404\u4f4d\u770b\u5b98\uff0c\u8fd9\uff0c\u80fd\u5fcd\uff1f
\n\n\u6b63\u6240\u8c13\uff1a
\n\n\n\n\n\u547d\u540d\u62fc\u5199\u770b\u5fc3\u60c5\uff0c\u6587\u4ef6\u76ee\u5f55\u4e0d\u5206\u660e\u3002
\n
\n\u968f\u673a\u63ba\u6742\u5b8f\u5b9a\u4e49\uff0c\u9e21\u4e0d\u5b89\u4e5f\u72ac\u4e0d\u5b81\u3002
\u524d\u9635\u5b50\u5728\u505a iPhone4 \u548c iPhone6 \u4ee5\u53ca iPhone6 Plus \u7684\u9002\u914d\u5de5\u4f5c\u3002
\n\n\u7531\u4e8e\u5386\u53f2\u539f\u56e0\u6ca1\u6709\u7528 AutoLayout \uff0c\u4e5f\u7531\u4e8e\u5386\u53f2\u539f\u56e0\u8001\u4ee3\u7801\u7684\u5e03\u5c40\u5168\u662f\u7528\u6570\u5b57\u4e00\u4e2a\u4e00\u4e2a\u5199\u6b7b\u7684\u3002\u8fd9\u5c31\u7ed9\u9002\u914d\u5e26\u6765\u4e86\u83ab\u5927\u7684\u56f0\u96be\u3002
\n\n\u968f\u4fbf\u62e3\u70b9\u4ee3\u7801\u7ed9\u5927\u5bb6\u6b23\u8d4f\u6b23\u8d4f\uff1a
\nUILabel *infoLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 241, 320, 28)];\n0 \u8fd9\u79cd\u6570\u5b57\u8fd8\u597d\u8bf4\uff0c241 \u5c31\u5b8c\u5168\u8ba9\u4eba\u6478\u4e0d\u7740\u5934\u8111\uff0c\u81f3\u4e8e 320 \u8fd9\u4e2a\u6539\u6210\u5c4f\u5e55\u5bbd\u5ea6\u5012\u4e5f\u5c31\u8fd8\u597d\uff0c\u4f46\u662f 28 \u8fd9\u79cd\u795e\u5947\u6570\u5b57\u53c8\u662f\u4ec0\u4e48\u5462\uff1f
\n\n\u8fd9\u79cd\u4ee3\u7801\u5c31\u662f\u51b2\u7740\u5e72\u6b7b\u961f\u53cb\u7684\u4e0d\u507f\u547d\u7684\u6001\u5ea6\u53bb\u7684\u3002\u867d\u7136\u5199\u8d77\u6765\u5bb9\u6613\uff0c\u4f46\u662f\u7ef4\u62a4\u56f0\u96be\uff0c\u53ef\u8bfb\u6027\u6781\u5dee\uff0c\u5c24\u5176\u662f\u6709\u591a\u4e2a\u63a7\u4ef6\u5e03\u5c40\u7684\u65f6\u5019\uff0c\u4f9d\u8d56\u5173\u7cfb\u4e0d\u660e\u663e\uff0c\u5982\u679c\u8c03\u6574\u5e03\u5c40\u9700\u8981\u6328\u4e2a\u91cd\u65b0\u8ba1\u7b97\u5e76\u8bbe\u7f6e\u503c\uff0c\u7ef4\u62a4\u8d77\u6765\u7684\u9178\u723d\uff0c\u8c01\u7528\u8c01\u77e5\u9053\u3002
\n\n\u8981\u8bf4\u795e\u5947\u6570\u5b57\uff0c\u96c6\u5927\u6210\u8005\u83ab\u8fc7\u4e8e\u6b64\uff1a
\nCGRect rect = CGRectMake(12.2+(page-1)*320+42.5*(i%7),((totalRows-1)%3)*55+2,42.5,42.5);\n\u90a3\u5929\u65e9\u4e0a\u770b\u5230\u8fd9\u4ee3\u7801\u5dee\u70b9\u5c31\u62b1\u7740\u952e\u76d8\u59d4\u5c48\u7684\u54ed\u4e86\u51fa\u6765\u3002
\n\n\u6b63\u6240\u8c13\uff1a
\n\u754c\u9762\u5199\u6cd5\u5404\u4e0d\u540c\uff0c\u6b6a\u95e8\u90aa\u9053\u5343\u4e07\u79cd\u3002
\n\u6709\u671d\u4e00\u65e5\u88ab\u8f9e\u4e86\uff0c\u4f60\u7684\u4ee3\u7801\u6211\u4e0d\u61c2\u3002
\u5728\u804a\u5929\u7684\u65f6\u5019\u6709\u8fd9\u6837\u4e00\u4e2a\u6570\u636e\u7c7b\uff1a
\n@interface HBTalkData : NSObject\n {\n UIImage *_firstImage;\n NSArray *_imageArry;\n id _contents;\n }\n @property (nonatomic, assign) NSInteger messageId;\n @property (nonatomic, strong) id contents;\n @property (nonatomic, assign) NSTimeInterval timeInterval;\n @property (nonatomic) BOOL fromSelf;\n @property (nonatomic) BOOL isGroup;\n @property (nonatomic, assign) HBTalkDataStatus talkDataStatus;\n @property (nonatomic) HBTalkDataContentType contentType;\n @property (nonatomic, strong) PersonInfo *personInfo;\n @property (nonatomic, strong) UserInfo *cardUser;\n @property (nonatomic, assign) CallType callType;\n @property (nonatomic, strong) NSString *duartion;\n @property (nonatomic, strong) NSString *mPhoneNumber;\n @property (nonatomic, strong) NSString *imageList;\n @property (nonatomic, strong) NSString *msgDesc;\n @property (nonatomic, readonly) UIImage *firstImage;\n @property (nonatomic, readonly) NSArray *imageArry;\n @property (nonatomic, assign) float cellHeight;\n @property (nonatomic, assign) CGSize textSize;\n @property (nonatomic) NSTimeInterval voiceDuration;\n @property (nonatomic) CGFloat dataSize;\n @property (nonatomic) NSUInteger bubbleCount;\n @property (nonatomic, copy) NSString *chatUserName;\n @property (nonatomic, strong) MessageEntity *originalMessage;\n @property (nonatomic, strong) HBTalkDataRegisterInfo *registerInfo; \n -(void)reset;\n -(NSString *)bubbleDescription;\n ...\n @end\n\u7ea4\u5f31\u7684\u5934\u6587\u4ef6\u91cc\u585e\u6ee1\u4e86\u5404\u79cd\u5c5e\u6027\u5b9a\u4e49\u548c\u65b9\u6cd5\u5b9a\u4e49\uff0c\u4eff\u4f5b\u53ef\u4ee5\u542c\u5230\u5934\u6587\u4ef6\u7684\u4e0d\u6ee1\u548c\u5a07\u5598\u3002
\n\n\u7ed9\u5927\u5bb6\u51fa\u4e2a\u9898\uff1a\u770b\u4e0b\u4e0b\u9762\u7684\u5185\u5bb9\uff0c\u731c\u4e00\u4e0b\u8fd9\u4e2a\u7c7b\u7684\u6587\u4ef6\u540d\u662f\u4ec0\u4e48\uff1a
\n... // \u6b64\u5904\u7701\u756520\u884c\n\n@interface PersonInfo : NSObject\n... // \u6b64\u5904\u7701\u756520\u884c\n@property (nonatomic, assign)BOOL isGrey;\n@property (nonatomic, assign)BOOL isBlack;\n@property (nonatomic, assign)BOOL isTop;\n@property (nonatomic, assign)BOOL isStar;\n\n- (BOOL)isStranger;\n- (BOOL)isIndividual;\n- (BOOL)isDuDuSecretary;\n\n@end\n\n@interface UserInfo : PersonInfo\n... // \u6b64\u5904\u518d\u770120\u884c\n@property (nonatomic, assign)BOOL mobileVerified;\n@property (nonatomic, strong)NSString *countryCode;\n@property (nonatomic, readonly)NSString *dialogName;\n@end\n\n@interface GroupInfo : PersonInfo\n... // \u6b64\u5904\u53c8\u770120\u884c\n@property (nonatomic, strong)NSString *creater;\n@property (nonatomic, assign)int memberCount;\n@property (nonatomic, strong)NSString *members;\n@end\n\u55ef\u7136\u540e\u8fd9\u4e2a\u6587\u4ef6\u53eb\u505a UserInfo.h \uff0c\u5934\u6587\u4ef6\u5c06\u8fd1 100 \u884c\u3002\u5927\u5144\u5f1f\uff0c\u6211\u8bfb\u4e66\u5c11\uff0c\u4f60\u4e0d\u8981\u9a97\u6211\u3002\u628a\u4e09\u4e2a\u7c7b\u585e\u5728\u4e00\u4e2a\u6587\u4ef6\u91cc\u8fd9\u79cd\u884c\u4e3a\uff0c\u9664\u4e86\u96be\u4e3a\u961f\u53cb\uff0c\u5b9e\u5728\u662f\u6ca1\u770b\u51fa\u6765\u6709\u4ec0\u4e48\u5176\u4ed6\u52a8\u673a\u53ef\u8a00\u3002
\u6b63\u6240\u8c13\uff1a
\n\n\n\n\n\u5934\u6587\u4ef6\u91cc\u5730\u65b9\u5c0f\uff0c\u585e\u5230\u4e00\u5904\u5e76\u4e0d\u597d\u3002
\n
\n\u5916\u90e8\u5bf9\u8c61\u90fd\u77e5\u9053\uff0c\u5b89\u5168\u95ee\u9898\u53ef\u4e0d\u5c0f\u3002
\u6211\u4e00\u76f4\u5728\u60f3\uff0c\u5230\u5e95\u662f\u4ec0\u4e48\uff0c\u8ba9\u8fd9\u4e2a\u9879\u76ee\u7684\u5f00\u53d1\u4eba\u5458\u5bf9 NSNotificationCenter \u5982\u6b64\u75f4\u8ff7\uff0c\u75f4\u8ff7\u7684\u4ee4\u4eba\u9676\u9189\u3002
\u5728\u901a\u8fc7 Model \u8c03\u7528\u4e1a\u52a1\u903b\u8f91\u7684\u65f6\u5019\uff0c\u5b83\u8fd9\u6837\u53d1\u4e86\u4e00\u6761\u547d\u4ee4\uff1a
\n// \u5582\uff0cLOGIN_MODEL\uff0c\u5e2e\u6211\u67e5\u4e0b\u6709\u6ca1\u6709\u66f4\u65b0\n[LOGIN_MODEL versionCheckFromAbout:YES];\n\u8fd9\u4e2a\u4e1a\u52a1\u662f\u7528 GCD \u5f00\u4e86\u65b0\u7ebf\u7a0b\u6765\u505a\u7684\uff0c\u5728\u540e\u53f0\u68c0\u67e5\u6709\u6ca1\u6709\u66f4\u65b0\uff0c\u5982\u679c\u6709\u66f4\u65b0\u90a3\u4e48\u7248\u672c\u53f7\u540e\u9762\u4f1a\u52a0\u4e2a\u611f\u53f9\u53f7\u3002\u90a3\u4e48\u95ee\u9898\u6765\u4e86\uff1a\u4f60\u548b\u544a\u8bc9\u6211\u4f60\u68c0\u67e5\u7684\u7ed3\u679c\u662f\u6709\u66f4\u65b0\u8fd8\u662f\u6ca1\u66f4\u65b0\u5450\uff1f\u96be\u9053\u8981\u5199 \u4e2a\u59d4\u6258\uff1f\u7136\u540e\u5b9a\u4e49\u4e2a\u65b9\u6cd5\uff1f\u7136\u540e\u66f4\u65b0\u7684\u65f6\u5019\u6307\u8ba4\u59d4\u6258\uff1f\u7136\u540e\u6709\u4e86\u7ed3\u679c\u518d\u544a\u8bc9\u59d4\u6258\uff1f\u542c\u8d77\u6765\u5c31\u5f88\u70e6\u8e81\u561b\u90a3\u5e72\u8106\u5c31\u7528\u901a\u77e5\u597d\u4e86\uff1a
\nif (self.versionStatus != VersionStatusNormal) {\n [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFY_HAS_NEW_VERSION object:nil];\n}\n\u7136\u540e\u5728\u9700\u8981\u505a\u5904\u7406\u7684\u7c7b\u91cc\u9762\u6dfb\u52a0 Observer \u5c31\u53ef\u4ee5\u4e86\uff1a
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myIconShouldChange) name:NOTIFY_HAS_NEW_VERSION object:nil];\n\u54c8\u54c8\u54c8\u54c8\u641e\u5b9a\u4e86\u3002
\n\n\u54c8\u54c8\u54c8\u54c8\u4f60\u4e2a\u5934\u554a\uff01\u6574\u4e2a\u9879\u76ee\u91cc\u7c7b\u4f3c\u4e8e\u8fd9\u79cd\u7684\u901a\u77e5\u5c31\u6709\u5341\u6765\u4e2a\uff0c\u8fd9\u8fd8\u662f\u6709\u5b8f\u5b9a\u4e49\u7684\uff0c\u597d\u8ffd\u6740\u4e00\u70b9\u3002\u5bf9\u4e8e\u90a3\u4e9b\u6ca1\u6709\u5b8f\u5b9a\u4e49\u7684\uff0c\u968f\u624b\u4e00\u5199\u590d\u5236\u7c98\u8d34\u7684\uff0c\u4e0d\u77e5\u9053\u8fd8\u8981\u586b\u5751\u591a\u5c11\u3002
\n\n\u901a\u77e5\u867d\u597d\uff0c\u4f46\u4e5f\u4e0d\u8981\u8d2a\u676f\u554a\u3002
\n\n\u770b\u8d77\u6765\u8f7b\u677e\uff0c\u53ea\u662f post \u4e86\u4e00\u4e0b\u5c31\u641e\u5b9a\u4e86\uff0c\u4f46\u662f\u5728 Debug \u7684\u65f6\u5019\u6709\u70b9\u9ebb\u70e6\u3002\u5c24\u5176\u662f\u5982\u679c\u6709\u591a\u4e2a Observer \uff0c\u6539\u52a8\u7684\u65f6\u5019\u7275\u4e00\u53d1\u800c\u52a8\u5168\u8eab\u3002\u5982\u679c\u771f\u7684\u662f\u6709\u8fd9\u6837\u4f7f\u7528\u7684\u5fc5\u8981\u5012\u4e5f\u7f62\u4e86\uff0c\u4f46\u662f\u672c\u6765\u4e00\u4e2a block \u6216\u8005 delegate \u5c31\u80fd\u7b80\u5355\u6e05\u6670\u7684\u89e3\u51b3\uff0c\u73b0\u5728\u5374\u88ab\u641e\u5f97\u8fd9\u4e48\u7e41\u91cd\uff0c\u5b9e\u5728\u662f\u6ca1\u6709\u5fc5\u8981\u3002
\u800c\u4e14 NSNotificationCenter \u7684\u4ee3\u7801\u57fa\u672c\u662f\u4e00\u79cd\u53d8\u76f8\u7684\u590d\u5236\u7c98\u8d34\uff0c\u5341\u5206\u7684\u4e0d\u5de5\u6574\u3002\u8fd9\u662f\u4e2a\u4eba\u6069\u6028\u4e86\uff0c\u6487\u5f00\u4e0d\u63d0\u3002
NSNotificationCenter \u8fd9\u79cd\u53ea\u662f\u4e0d\u75db\u4e0d\u75d2\u7684\u5c0f\u95ee\u9898\uff0c\u4ec5\u4ec5\u662f\u903b\u8f91\u4e0d\u591f\u4f18\u96c5\uff0c\u5173\u7cfb\u4e0d\u591f\u6e05\u6670\u7f62\u4e86\u3002\u4f46\u662f\u5982\u679c\u59d4\u6258\u4f7f\u7528\u4e0d\u5f53\u90a3\u662f\u6076\u5fc3\u7684\u4e0d\u884c\u3002\u770b\u4e0b\u8fd9\u4e2a\u804a\u5929\u9875\u9762\uff1a
@interface ChattingViewController () <UITableViewDataSource, UITableViewDelegate, UITextViewDelegate, ChattingActionsPanelDelegate, ChatModelDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, HBTalkTableViewCellDelegate, EGORefreshTableHeaderDelegate, XTImagePickerControllerDelegate, ChattingInputPanelDelegate, VoiceRecordingButtonTrashBinViewContainer, ChattingUserDetailPanelDelegate, VoiceRecordingButtonDelegate>\n\u8fd9\u662f\u4e00\u4e2a\u771f\u5b9e\u7684\u6545\u4e8b \u3002\u6574\u4e2a\u7c7b\u5c06\u8fd1 3000 \u884c\uff0c\u6709 2000 \u591a\u884c\u662f\u59d4\u6258\u91cc\u5b9a\u4e49\u7684\u65b9\u6cd5\uff0c\u4f60\u80fd\u4fe1\uff1f
\n\n\u5728\u8fd9\u4e09\u5343\u884c\u4ee3\u7801\u91cc\u6f2b\u6b65\uff0c\u4e07\u4e8b\u90fd\u8981\u5c0f\u5fc3\u3002\u56e0\u4e3a\u4f60\u4e0d\u77e5\u9053 callIn \u8fd9\u79cd\u65b9\u6cd5\u5230\u5e95\u662f\u5b9a\u4e49\u7684\u79c1\u6709\u65b9\u6cd5\uff0c\u8fd8\u662f\u5728\u59d4\u6258\u91cc\u5b9a\u4e49\u7684\u65b9\u6cd5\u3002#pragma mark \u81ea\u7136\u4e5f\u662f\u770b\u5fc3\u60c5\u52a0\u7684\uff0c\u8bf4\u4e0d\u5b9a\u52a0\u9519\u4e86\u4f60\u4e5f\u4e0d\u8981\u5f53\u771f\u3002
\u6709\u65f6\u5019\u59d4\u6258\u90fd\u5220\u4e86\u4e0d\u89c1\u5f71\u5b50\u4e86\uff0c\u4f46\u662f\u59d4\u6258\u91cc\u7684\u5404\u79cd\u65b9\u6cd5\u8fd8\u7559\u5728\u4ee5\u524d\u7684\u7c7b\u91cc\u3002
\n\n\u6ca1\u4eba\u6562\u52a8\u3002
\n\nHow to play.
\n\n\u6b63\u6240\u8c13\uff1a
\n\n\n\n\n\u5f02\u6b65\u56de\u8c03\u7528\u901a\u77e5\uff0c\u59d4\u6258\u591a\u7684\u4ee4\u4eba\u75f4\u3002
\n
\n\u53cd\u6b63\u8001\u5b50\u770b\u4e0d\u61c2\uff0c\u4e0d\u5199\u4ee3\u7801\u5149\u5199\u8bd7\u3002
\u76f8\u4fe1\u505a iOS \u7684\u90fd\u77e5\u9053 AFNetworking \u8fd9\u4e2a\u7f51\u7edc\u5e93\uff0c\u5728\u6211\u4eec\u7684\u9879\u76ee\u91cc AFNetworking \u5206\u4e24\u79cd\uff0c\u4e00\u4e2a\u662f\u522b\u4eba\u5bb6\u7684 AFNetworking \uff0c\u4e00\u4e2a\u662f\u54b1\u4eec\u7684 AFNetworking\u3002\u5bf9\u594f\u662f\u8fd9\u4e48\u4efb\u6027\u3002\u5728\u4e00\u4e2a 300 \u884c\u7684\u5934\u6587\u4ef6\u91cc\uff0c\u5728 99 \u884c\u8fd9\u6837\u4f4e\u8c03\u7684\u4f4d\u7f6e\u91cc\uff0c\u9759\u9759\u7684\u63d2\u4e0a\u4e86\u81ea\u5df1\u7684\u65b9\u6cd5\uff0c\u8fd8\u5728\u4e0a\u9762\u8ba4\u8ba4\u771f\u771f\u7684\u5199\u4e0a\u4e86\u51c6\u786e\u7684\u6ce8\u91ca\uff1a
/*\u6269\u5c55*/\n-(void)setDDCImageWithURL:(NSURL *)url\n placeholderImage:(UIImage *)placeholderImage\n success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success\n failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure;\n\u6269\u5c55\u4e2a\u5934\u554a\uff01\u4f60\u52a0\u5728\u4eba\u5bb6\u7684\u5934\u6587\u4ef6\u91cc\u4f60\u8bf4\u4f60\u662f\u6269\u5c55\uff0c\u8c01\u4fe1\uff1f
\n\n\u8fd9\u79cd\u6539\u52a8\u904d\u5730\u90fd\u662f\uff0c\u7279\u70b9\u662f\u6781\u5176\u4f4e\u8c03\uff0c\u96be\u4ee5\u5bdf\u89c9\uff0c\u751a\u81f3 TTTAttributedLabel \u8fd9\u79cd UI \u5e93\u4e5f\u4e0d\u80fd\u907f\u514d\uff1a\u6539\u4e86 init \u4e3a\u4e86\u7edf\u4e00\u5b57\u4f53\u548c\u989c\u8272\u3002\u3002\u3002
\u4f60\u8bf4\u8fd9\u4ee3\u7801\uff0c\u8c01\u6562\u6539\uff1f
\n\n\u6211\u8fd8\u66fe\u7ecf\u5355\u7eaf\u7684\u60f3\u7ed9\u9879\u76ee\u52a0\u4e0a Cocoapods \u66f4\u65b0\u4e00\u4e0b\u7b2c\u4e09\u65b9\u5e93\uff0c\u73b0\u5728\u60f3\u60f3\uff0cNaive\u3002\u7b49\u4ee5\u540e\u5199\u5230\u65b0\u7684\u72ec\u7acb\u6a21\u5757\u7684\u65f6\u5019\u518d\u8bf4\u5427\u3002
\u6b63\u6240\u8c13\uff1a
\n\n\n\n\n\u9879\u76ee\u52e4\u7528\u4e09\u65b9\u5e93\uff0c\u968f\u610f\u7a7f\u63d2\u6539\u65e0\u6570\u3002
\n
\n\u5373\u4f7f\u7c7b\u5e93\u6709\u66f4\u65b0\uff0c\u8bd5\u95ee\u4ee3\u7801\u8c01\u7ef4\u62a4\u3002
\u5728\u804a\u5929\u6a21\u5757\u6709\u8fd9\u6837\u4e00\u4e2a\u7c7b\uff1aChatModel\uff0c\u7b80\u76f4\u5c31\u662f\u4e2a\u591a\u9762\u624b\u3002
\u4e0a\u80fd\u548c\u670d\u52a1\u5668\u804a\u5929\uff0c\u4e0a\u4f20\u804a\u5929\u6d88\u606f\u540c\u6b65\u804a\u5929\u8bb0\u5f55\uff1a
\n- (void)reSendMessages;\n- (void)receiveSecretaryMessage:(MessageEntity *)msgEntity;\n- (void)deleteMessagesByUserInfo:(UserInfo *)user;\n- (void)setAudioMessageBePlayed:(AudioMessageEntity *)audioMessage;\n- (void)sendBubbleReplyWithCallMessage:(CallMessageEntity *)callMessage;\n- (int)saveMessage:(MessageEntity *)message;\n\u4e0b\u80fd\u505a\u672c\u5730\u7f13\u5b58\u7ba1\u7406\uff0c\u589e\u5220\u6539\u67e5\u6837\u6837\u7cbe\u901a\uff1a
\n- (void)saveCacheMsg:(NSString *)msg UserMd5:(NSString *)md5;\n- (NSString *)loadCacheMsgWithMd5:(NSString *)md5;\n- (void)clearCacheMsgWithMd5:(NSString *)md5;\n\u81f3\u4e8e\u4ec0\u4e48\u5f39\u7a97\u63d0\u9192\uff0c\u4e0a\u4f20\u8fdb\u5ea6\uff0c\u5b8c\u6210\u63d0\u793a\uff0c\u4ea6\u662f\u8f7b\u677e\u62ff\u4e0b\u3002
\n\n\u4ee5\u81f3\u4e8e\u4f60\u6539\u7740\u6539\u7740\u4e0d\u77e5\u4e0d\u89c9\u90fd\u4f1a\u8d70\u5230\u8fd9\u91cc\uff0c\u56e0\u4e3a\u5b83\u5904\u7406\u4e86\u592a\u591a\u592a\u591a\u7684\u4e1a\u52a1\u903b\u8f91\uff0c\u6bcf\u6b21 DEBUG \u8ffd\u6740\u65ad\u70b9\u56de\u5230\u8fd9\u91cc\uff0c\u90fd\u50cf\u662f\u4e00\u573a\u4e45\u522b\u91cd\u9022\u65f6\u7684\u76f8\u9047\uff0c\u4f3c\u66fe\u76f8\u8bc6\u3002
\n\n\u6b63\u6240\u8c13\uff1a
\n\n\n\n\n\u4e00\u4eba\u505a\u4e8b\u4e00\u4eba\u5f53\uff0c\u5207\u5fcc\u90fd\u5f80\u7c7b\u91cc\u88c5\u3002
\n
\n\u5f00\u53d1\u4eba\u5458\u5e72\u7684\u723d\uff0c\u7ef4\u62a4\u4eba\u5458\u5f88\u53d7\u4f24\u3002
\u6709\u65f6\u5019\u9700\u6c42\u6765\u4e5f\u5306\u5306\u53bb\u4e5f\u5306\u5306\uff0c\u8ba9\u4eba\u731d\u4e0d\u53ca\u9632\u3002\u6bd4\u5982\u4e00\u4e2a\u7b80\u5355\u7684\u767b\u5f55\u903b\u8f91\uff1a
\n@interface LoginModel ()\n@property (nonatomic, strong)NSString *tcpURL;\n@property (nonatomic, strong)UserInfo *offlineCallUser;\n@property (nonatomic, assign)VersionStatus versionStatus;\n@end\n\u7a81\u7136\u53d1\u73b0\u9700\u8981\u5728\u7248\u672c\u66f4\u65b0\u7684\u65f6\u5019\u591a\u4e2a API \u68c0\u67e5\uff0c\u7b80\u5355\uff0c\u52a0\u4e2a BOOL \uff0c\u9700\u8981\u7684\u65f6\u5019\u8bbe\u7f6e\u6210 YES \u5c31\u884c\uff1a
@property (nonatomic, assign)BOOL isShowVersionUpdate;\n\u4f46\u662f\u8fd9\u4e2a\u529f\u80fd\u5728 About \u9875\u9762\u53c8\u6709\u70b9\u6539\u52a8\uff0c\u7b80\u5355\uff0c\u518d\u52a0\u4e2a BOOL \u5c31\u884c\uff1a
@property (nonatomic, assign)BOOL checkVersionFromAbout;\n\u7136\u540e\u5982\u679c\u5df2\u7ecf\u663e\u793a\u4e86\u6ce8\u518c\u9875\u9762\u53c8\u8981\u5c11\u4e00\u4e9b\u8bf7\u6c42\uff0c\u884c\uff0c\u90a3\u518d\u52a0\u4e2a BOOL \u503c\uff1a
@property (nonatomic, assign)BOOL isRegisterShow;\n\u5f97\u4e86\uff0c\u8fd9\u4ee3\u7801\u53ea\u6709\u4f60\u80fd\u61c2\u4e86\uff1a
\n@interface LoginModel ()\n@property (nonatomic, strong)NSString *tcpURL;\n@property (nonatomic, strong)UserInfo *offlineCallUser;\n@property (nonatomic, assign)VersionStatus versionStatus;\n@property (nonatomic, assign)BOOL isShowVersionUpdate;\n@property (nonatomic, assign)BOOL checkVersionFromAbout;\n@property (nonatomic, assign)BOOL isRegisterShow;\n@end\n\u60f3\u8c61\u4e00\u4e0b\u5b9e\u73b0\u65b9\u6cd5\u91cc\u5404\u79cd\u5bf9 BOOL \u6807\u8bb0\u7684\u7279\u6b8a\u5904\u7406\uff0c\u60f3\u8c61\u4e00\u4e0b N \u4e2a if \u5d4c\u5957\u7684\u58ee\u89c2\u573a\u666f\u3002
\u5fc3\u585e\u3002
\n\n\u6b63\u6240\u8c13\uff1a
\n\n\n\n\n\u51e1\u662f\u90fd\u8981\u542c\u4ea7\u54c1\uff0c\u5404\u79cd\u4e1a\u52a1\u50ac\u7684\u7d27\u3002
\n
\n\u5929\u584c\u4e0b\u6765\u4e5f\u522b\u6015\uff0c\u903b\u8f91\u6e05\u6670\u81ea\u7136\u633a\u3002
\u6240\u8c13\u60b2\u54c0\u5c31\u662f\uff0c\u5f53\u7a0b\u5e8f\u5458\u53d1\u73b0\u4e00\u4e2a delegate \u5c31\u80fd\u8bbf\u95ee\u4e0a\u7ea7\u7684\u5bf9\u8c61\uff0c\u4e8e\u662f\u4fbf\u628a\u5404\u79cd\u9700\u8981\u901a\u77e5\u4e0a\u7ea7\u7684\u4e8b\u60c5\u90fd\u653e\u5728\u4e86\u59d4\u6258\u65b9\u6cd5\u91cc\uff0c\u5c3d\u7ba1\u8fd9\u4e9b\u4e8b\u60c5\u4e0e\u59d4\u6258\u672c\u8eab\u65e0\u5173\uff0c\u4f46\u662f\u4e3a\u4e86\u5b9e\u73b0\u529f\u80fd\u5df2\u7ecf\u4e0d\u5728\u610f\u8fd9\u4e9b\u6240\u8c13\u7684\u8bbe\u8ba1\u4e0e\u7f8e\u89c2\u3002
\u4e00\u4e2a\u7b80\u5355\u7684 @optional\uff0c\u751a\u81f3\u53ef\u4ee5\u7528\u540c\u4e00\u4e2a @protocol \u83b7\u53d6\u5230\u5404\u79cd\u4e0d\u540c\u7684\u4e0a\u7ea7\u5bf9\u8c61\uff0c\u53ea\u9700\u8981\u6bcf\u6b21\u8c03\u7528\u7684\u65f6\u5019\u52a0\u4e2a respondsToSelector \u5c31\u884c\u4e86\u3002\u5199\u4e0a\u5341\u51e0\u4e2a\u53ef\u9009\u65b9\u6cd5\uff0c\u53d6\u4e00\u4e2a\u901a\u4fd7\u7684\u59d4\u6258\u540d\uff0c\u6bd4\u5982 MyDelegate \uff0c\u7136\u540e\u5982\u679c\u4f60\u6301\u6709\u4e86\u6211\u4f46\u662f\u6211\u8fd8\u60f3\u8c03\u7528\u4f60\u7684\u65b9\u6cd5\uff0c so easy\uff0c\u628a\u4f60\u7684\u65b9\u6cd5\u6254\u5230 MyDelegate \u5373\u53ef\u3002
\u6b64\u65f6\u7684\u4ee3\u7801\u4fbf\u5df2\u7ecf\u4e0d\u518d\u662f\u4e00\u4ef6\u827a\u672f\u54c1\uff0c\u800c\u53ea\u662f\u4e00\u4e2a\u5e73\u51e1\u666e\u901a\u3001\u6beb\u65e0\u751f\u673a\u7684\u82b1\u74f6\u4e86\u3002
\n\n\u539f\u672c\u8fd8\u662f\u633a\u6b22\u5feb\u7684\u5410\u69fd\uff0c\u7a81\u7136\u5c31\u4e0d\u60f3\u5199\u4e86\u3002
\n\n\u770b\u7740\u4ee5\u524d\u7684\u4eba\u5199\u7684\u4ee3\u7801\uff0c\u4e0d\u7981\u6709\u4e9b\u51c4\u51c9\u3002
\n\n\u5728\u9879\u76ee\u91cc\u7528\u5c3d\u4e86\u5404\u79cd\u4f4e\u7ea7\u4e0b\u6d41\u7684\u624b\u6bb5\uff0c\u53ea\u4e3a\u4e86\u5b9e\u73b0\u81ea\u5df1\u7684\u4e1a\u52a1\u3002
\n\n\u8fd9\u662f\u5bf9\u827a\u672f\u7684\u4fae\u8fb1\u3002
\n\n\u672c\u6587\u4f5c\u8005\uff1aWang Hyde
\n\u4ee3\u7801\u4ed3\u5e93\uff1a
\nhttps://gitcafe.com/callmewhy
\n\u535a\u5ba2\u5730\u5740\uff1a
\nhttp://callmewhy.gitcafe.io
\u539f\u6587\u5730\u5740\uff1a http://callmewhy.gitcafe.io/2015/01/20/wtf-in-old-code/
\n", "date_published": "2015-01-23T08:38:49+00:00", "title": "\u8981\u4f60\u547d\u4e09\u5343\u2014\u2014\u8001\u4ee3\u7801\u4e2d\u7684\u90a3\u4e9b\u5751", "id": "t/164844" }, { "author": { "url": "member/irisgyq", "name": "irisgyq", "avatar": "https://cdn.v2ex.com/avatar/e664/f5ae/92071_large.png?m=1428561132" }, "url": "t/163148", "date_modified": "2015-01-18T02:25:53+00:00", "content_html": "\u4e3a\u4e86\u4fdd\u8bc1\u7528\u6237\u5728 GitCafe \u7684\u6570\u636e\u5b89\u5168,\u6211\u4eec\u5c06\u4e0d\u518d\u652f\u6301 SSL \u4e2d\u7684 RC4 \u534f\u8bae\u3002RC4 \u7684\u79fb\u9664\u5f71\u54cd\u4f7f\u7528 HTTPS \u534f\u8bae\u5bf9 GitCafe.com \u7684 Web \u8bbf\u95ee\u548c Git repo \u8bbf\u95ee\uff0c\u4e0d\u5f71\u54cd SSH \u534f\u8bae\u8fdb\u884c\u7684 Git repo \u8bbf\u95ee\u3002\u51c6\u786e\u5730\u8bf4\uff0c\u53ea\u6709 Windows XP \u4e0a\u7684 IE 6 \u4f1a\u53d7\u5230\u8d1f\u9762\u5f71\u54cd\uff0c\u73b0\u4ee3\u6d4f\u89c8\u5668\u90fd\u4e0d\u4f1a\u53d7\u5230\u8d1f\u9762\u5f71\u54cd\u3002Firefox \u7684\u7279\u5b9a\u65b0\u7248\u672c\u4e0d\u4f1a\u518d\u770b\u5230\u5173\u4e8e RC4 \u7684\u8b66\u544a\u3002 \u6211\u4eec\u5f3a\u70c8\u63a8\u8350 Windows XP \u7528\u6237\u5347\u7ea7\u5230\u66f4\u9ad8\u7248\u672c\u7684\u7cfb\u7edf\u6216\u8005\u4f7f\u7528 Chrome \u6216 Firefox \u6765\u8bbf\u95ee GitCafe \u3002
\n\n\u57282011\u5e74\u7684\u65f6\u5019\uff0c\u5404\u5927\u4e3b\u6d41\u6d4f\u89c8\u5668\u90fd\u652f\u6301 TLS 1.0 \u534f\u8bae\u5e76\u4e14\u5e7f\u6cdb\u7684\u91c7\u7528\u4e86AES-CBC\u7684\u52a0\u5bc6\u65b9\u5f0f\u30029\u6708\u4efd Thai Duong \u548c Juliano Rizzo \u53d1\u73b0\u4e86\u4e00\u4e2a\u79f0\u4e4b\u4e3a
\nBEAST attack \u7684\u6f0f\u6d1e\uff0c\u8fd9\u4e2a\u6f0f\u6d1e\u4e13\u95e8\u9488\u5bf9 TLS ,\u5f53\u4e00\u4e2a\u7528\u6237\u91c7\u7528\u4e86 CBC-based \u52a0\u5bc6\u65b9\u5f0f\u540e\uff0c\u653b\u51fb\u8005\u53ef\u4ee5\u8ba9\u7528\u6237\u8df3\u8f6c\u5230\u4e00\u4e2a\u6076\u610f\u7684\u7f51\u7ad9\u3002\u5f53\u65f6\u91c7\u7528\u7684\u4e00\u4e2a\u89e3\u51b3\u529e\u6cd5\u662f\u7528\u4e86\u552f\u4e00\u4e00\u4e2a\u652f\u6301 non-CBC \u5e76\u4e14\u597d\u7528\u7684 RC4 \u534f\u8bae\u3002
\u4eca\u5929\u5305\u62ec Firefox \u548c Chrome \u5728\u5185\u7684\u4e3b\u6d41\u6d4f\u89c8\u5668\u90fd\u5df2\u7ecf\u4e0d\u518d\u50cf\u5f53\u5e74\u90a3\u6837\u4f9d\u9760\u7cfb\u7edf\u5c42\u7684 TLS \u52a0\u5bc6\u65b9\u5f0f\u4e86\uff0c\u5927\u591a\u4e3b\u6d41\u6d4f\u89c8\u5668\u90fd\u5df2\u7ecf\u652f\u6301 TLS 1.2 \u534f\u8bae\uff0c\u5bf9 BEAST \u653b\u51fb\u514d\u75ab\u4e14\u8fd8\u6ca1\u6709\u53d1\u73b0\u4efb\u4f55\u5df2\u77e5\u7684\u53ef\u80fd\u7684\u5a01\u80c1\u3002
\n\nRC4 \u5f53\u521d\u63d0\u51fa\u7684\u76ee\u7684\u662f\u89e3\u51b3 BEAST \u653b\u51fb\uff0c\u4f46\u73b0\u5728\u5df2\u7ecf\u8d8a\u6765\u8d8a\u663e\u5f97\u6709\u4e9b\u9e21\u808b\u4e86\u3002\u800c\u4e14 RC4 \u7b97\u6cd5\u91c7\u7528\u7684\u7528xor\u7684\u4e00\u79cd\u5bf9\u79f0\u6d41\u52a0\u5bc6\u3002\u8fd9\u79cd\u52a0\u5bc6\u65b9\u5f0f\u5728\u5f31\u5bc6\u94a5\u7684\u60c5\u51b5\u4e0b\u6709\u53ef\u80fd\u88ab\u7834\u89e3\uff08 \u4e00\u4e2a\u5931\u8d25\u7684\u4f8b\u5b50\u5c31\u662fWEP \u7f51\u7edc\u4f20\u8f93\u534f\u8bae \uff09\u3002\u6240\u4ee5\u91c7\u7528 RC4 \u52a0\u5bc6\u65b9\u5f0f\u53ef\u80fd\u4f1a\u5371\u5bb3\u4f60\u7684\u6570\u636e\u5b89\u5168\u3002
\n\n\u5f02\u6216\u52a0\u5bc6\u65f6\u57fa\u4e8e\u903b\u8f91\u8fd0\u7b97\u4e2d\u7684\u5f02\u6216\u64cd\u4f5c:
\n\nA^0 = A
\n\nA^A = 0
\n\n(A^B)^C = A^(B^C)
\n\n(B^A)^A = B^0 = B
\n\n** Talk is cheap , show me the code **
\ndata,key=1,2\n\ndata=data^key # data \u7684\u503c\u7b49\u4e8e 3 \ndata=data^key # data \u7684\u503c\u7b49\u4e8e 1\n\u91c7\u7528\u5f02\u6216\u7684\u6d41\u52a0\u5bc6\u662f\u4e00\u79cd\u5bf9\u79f0\u52a0\u5bc6\uff0c \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u4e4b\u95f4\u4f7f\u7528\u540c\u4e00\u4e2a\u5bc6\u94a5\u6765\u52a0\u5bc6\u89e3\u5bc6\u3002
\u6d41\u52a0\u5bc6\u65f6\u5bf9\u79f0\u52a0\u5bc6\u65b9\u5f0f\uff0c\u52a0\u5bc6\u548c\u89e3\u5bc6\u53cc\u65b9\u4f7f\u7528\u76f8\u540c\u7684\u4f2a\u968f\u673a\u52a0\u5bc6\u6570\u636e\u6d41\u4f5c\u4e3a\u5bc6\u94a5\uff0c\u660e\u6587\u6570\u636e\u987a\u6b21\u52a0\u5bc6\u5e76\u5f97\u5230\u79d8\u6587\u3002\u5b9e\u8df5\u4e2d\u901a\u5e38\u662f\u5bf9\u4e00\u4e2a\u4f4d\u505a\u5f02\u6216\u64cd\u4f5c\u3002\u8fd9\u79cd\u505a\u6cd5\u5728\u5bc6\u94a5\u592a\u5f31\u6216\u8005\u5176\u5b83\u4e00\u4e9b\u9519\u8bef\u64cd\u4f5c\u7684\u60c5\u51b5\u4e0b\u4f1a\u88ab\u7834\u89e3\u3002
\n\u6d41\u52a0\u5bc6\u4e00\u4e2a\u5178\u578b\u7684\u4f8b\u5b50\u5c31\u662f WEP \u52a0\u5bc6\u65e0\u7ebf\u7f51\u7edc\uff0c\u6211\u4eec\u7ecf\u5e38\u901a\u8fc7\u6293\u53d6\u63e1\u624b\u5305\u6765\u7834\u89e3\u5bc6\u7801\u3002
RC4 \u52a0\u5bc6\u7b97\u6cd5\u662f\u4e00\u79cd\u5bc6\u94a5\u957f\u5ea6\u53ef\u53d8\u7684\u6d41\u52a0\u5bc6\u7b97\u6cd5\uff0c\u7531\u4f2a\u968f\u673a\u6570\u751f\u6210\u5668\u548c\u5f02\u6216\u8fd0\u7b97\u7ec4\u6210\u3002
\n\n\n\u4e0a\u4e2a\u5468\u672b\uff0c\u5728\u5317\u822a\u65b0\u4e3b\u697c\u4f1a\u8bae\u5385\u91cc\u4e3e\u884c\u4e86\u9996\u5c4a CSS \u5f00\u53d1\u8005\u5927\u4f1a\uff0cGitCafe \u7684\u524d\u7aef\u5de5\u7a0b\u5e08 Jaych Su \u5728\u4f1a\u4e0a\u505a\u4e86\u6f14\u8bb2\uff0c\u4e0e\u5927\u5bb6\u5206\u4eab\u4e86\u4e00\u6b3e\u66f4\u4f18\u96c5\u7684\u524d\u7aef\u5e03\u5c40\u2014\u2014Flexbox\u3002\u73b0\u5728\uff0c\u6211\u4eec\u5c31\u9080\u8bf7\u4ed6\u6765\u4e3a\u5927\u5bb6\u8bb2\u4e00\u4e0b Flexbox \u7684\u76f8\u5173\u77e5\u8bc6\u5427\uff5e
\n

\u5728\u8bbe\u8ba1\u7684\u773c\u4e2d\uff0c\u6392\u7248\u7684\u64cd\u4f5c\u662f\u4e00\u4ef6\u5f88\u7b80\u5355\u7684\u4e8b\u60c5\uff0c\u9760\u5de6\u3001\u7f6e\u4e2d\u3001\u9760\u53f3\uff0c\u6211\u53ea\u8981\u70b9\u4e00\u4e0b\uff0c\u6240\u6709\u5143\u7d20\uff0c\u5c31\u4f1a\u4e56\u4e56\u7684\u5230\u6307\u5b9a\u7684\u4f4d\u7f6e\u3002
\n\n\u4f46\u5230\u4e86\u524d\u7aef\u5728\u6392\u7248\u7684\u5b9e\u73b0\u4e0a\uff0c\u5c31\u4e0d\u662f\u8fd9\u6837\u4e86\u3002
\n\n\u6211\u4eec\u5e38\u5e38\u5f97\u7528\u4e00\u5806\u5176\u5b9e\u672c\u6765\u4e0d\u662f\u8fd9\u6837\u7528\u7684\u5c5e\u6027\u6765\u505a hack\uff0c\u6bd4\u5982\u8bf4\u7528 line-height \u6765\u505a\u5782\u76f4\u7f6e\u4e2d\uff0c\u8fd9\u6837\u505a\u7684\u786e\u80fd\u8fbe\u5230\u6548\u679c\uff0c\u4f46\u662f\u5728\u8bed\u610f\u4e0a\u5c31\u6709\u70b9\u4e0d\u987a\uff0c\u62ff\u521a\u521a\u63d0\u5230\u7684 line-height \u6765\u8bf4\uff0c\u8fd9\u672c\u6765\u662f\u7528\u6765\u5f53\u4f5c\u6bb5\u843d\u4e2d\u7684\u884c\u8ddd\uff0c\u4f46\u5374\u56e0\u4e3a\u8fd9\u4e2a\u5c5e\u6027\u80fd\u6269\u5c55\u6587\u5b57\u7684\u4e0a\u4e0b\u7a7a\u95f4\uff0c\u7ed3\u679c\u4e5f\u88ab\u62ff\u6765\u505a\u5782\u76f4\u7f6e\u4e2d\u3002\u90a3\u6709\u6ca1\u6709\u4e00\u4e2a\u65b9\u6cd5\u80fd\u7528\u6765\u66f4\u597d\u5730\u5b9e\u73b0 Web \u5e03\u5c40\u5462\uff1f
\n\n
\u8fd9\u662f Google \u7684 Angular\u3002\u4ed6\u4eec\u51e0\u4e2a\u6708\u524d\u505a\u4e86\u4e00\u5957 UI \u6765\u5b9e\u73b0\u5728 Angular \u4e0a\u7684 Material Design\u3002\u8fd9\u5957\u6846\u67b6\u7528\u6765\u5b9e\u73b0\u5e03\u5c40\u7684\u65b9\u5f0f\uff0c\u4e0d\u662f\u4ee5\u5f80\u7684 float\uff0c\u800c\u662f\u7528\u4e86 Flexbox\u3002
\n\nFlexbox \u662f\u4ec0\u4e48\u5462\uff1f\u5c31 W3C \u5b98\u65b9\u7ed9\u5230\u7684\u89e3\u91ca\u662f\uff0c\u8fd9\u662f\u8bbe\u8ba1\u6765\u5b9e\u73b0\u66f4\u590d\u6742\u7684\u7248\u9762\u5e03\u5c40\u3002\u90a3\u6211\u81ea\u5df1\u5bf9\u4ed6\u7684\u5b9a\u4e49\u662f\uff0cFlexbox \u4ece\u672c\u8d28\u4e0a\u5c31\u662f\u4e00\u4e2a Box-model \u7684\u5ef6\u4f38\uff0c\u6211\u4eec\u90fd\u77e5\u9053 Box-model \u5b9a\u4e49\u4e86\u4e00\u4e2a\u5143\u7d20\u7684\u76d2\u6a21\u578b\uff0c\u7136\u800c Flexbox \u66f4\u8fdb\u4e00\u6b65\u7684\u53bb\u89c4\u8303\u4e86\u8fd9\u4e9b\u76d2\u6a21\u578b\u4e4b\u95f4\u5f7c\u6b64\u7684\u76f8\u5bf9\u5173\u7cfb\u3002\u800c\u4e0d\u9700\u8981\u53bb\u7528\u4e00\u4e9b\u5f88 cheat \u7684\u505a\u6cd5\uff0c\u53bb hack \u4e00\u4e9b\u672c\u6765\u5176\u5b9e\u4e0d\u5e94\u8be5\u7528\u6765\u505a\u7248\u9762\u5e03\u5c40\u7684\u5c5e\u6027\u3002
\n\n
\u8eab\u4e3a\u4e00\u4e2a\u559c\u6b22\u53bb\u73a9\u4e00\u4e9b\u65b0\u4e1c\u897f\u7684\u524d\u7aef\uff0c\u5e94\u8be5\u8bf4\u6bcf\u4e2a\u8ddf\u4e92\u8054\u7f51\u6709\u6240\u63a5\u89e6\u7684\u4eba\uff0c\u90fd\u9700\u8981\u53bb\u5b66\u65b0\u4e1c\u897f\u3002
\n\n\u8fd9\u662f\u6211\u78b0\u5230\u65b0\u4e1c\u897f\u7684\u65f6\u5019\uff0c\u4e00\u5b9a\u4f1a\u95ee\u81ea\u5df1\u7684\u4e09\u4e2a\u95ee\u9898\uff1a
\n1. \u8fd9\u80fd\u505a\u4ec0\u4e48\uff1f\u4e5f\u5c31\u662f\u4ed6\u80fd\u89e3\u51b3\u4ec0\u4e48\u95ee\u9898\uff1f
\n2. \u80fd\u7528\u5728\u54ea\u88e1\uff1f\u5728\u54ea\u4e9b\u5730\u65b9\u80fd\u7528\u8fd9\u4e2a\u65b9\u6cd5\uff1f
\n3. \u4e3a\u4ec0\u4e48\u80fd\u7528\uff1f\u4ed6\u5b9e\u73b0\u6240\u7528\u5230\u7684\u903b\u8f91\u662f\u4ec0\u4e48\uff1f
\u63a5\u4e0b\u6765\u5c31\u8ddf\u5927\u5bb6\u5206\u4eab\u4e00\u4e0b\uff0c\u5f53\u521d\u770b\u5230 Flexbox \u7684\u6211\u95ee\u4e86\u81ea\u5df1\u8fd9\u4e2a\u4e09\u4e2a\u95ee\u9898\u4e4b\u540e\uff0c\u5230\u76ee\u524d\u4e3a\u6b62\u6211\u627e\u5230\u7684\u7b54\u6848\u3002
\n\n\u4e3e\u4e00\u4e2a\u4f8b\u5b50\uff0c\u6240\u6709\u524d\u7aef\u90fd\u4f1a\u6709\u7684\u75db\u70b9\uff0c\u7f6e\u4e2d\uff0c\u6211\u4eec\u4ee5\u524d\u662f\u600e\u4e48\u5b9e\u73b0\u7684\uff1f
\n
\u6700\u5e38\u770b\u5230\u5c31\u662f\u7528\u7edd\u5bf9\u5b9a\u4f4d\uff0c\u7136\u540e\u628a top \u548c left \u504f\u79fb \u4e94\u96f6%\uff0c\u5728\u7528 margin \u504f\u79fb\u56de\u53bb\u3002\u4f46\u662f\u8fd9\u53ea\u9002\u7528\u5728\u5df2\u7ecf\u56fa\u5b9a\u5927\u5c0f\u7684\u5143\u7d20\u3002
\n
\u6700\u8fd1\u51e0\u5e74\u5e38\u770b\u5230\u7684\u505a\u6cd5\u662f\u8fd9\u6837\uff0c\u5728\u60f3\u7f6e\u4e2d\u7684\u5143\u7d20\u4e4b\u524d\uff0c\u52a0\u4e0a\u4e00\u4e2a\u5143\u7d20\uff0c\u4e0d\u60f3\u7ba1\u592a\u65e7\u7684 IE \u7684\u8bdd\uff0c\u751a\u81f3\u4f2a\u5143\u7d20\u4e5f\u53ef\u4ee5\u3002\u5728\u5bb9\u5668\u7528 text-align\uff0c\u7136\u540e\u628a\u5e95\u4e0b\u7684\u4e24\u4e2a\u5143\u7d20\u5f04\u6210 inline \u7684\u5f62\u5f0f\uff0c\u5728\u7528 vertical-align\u3002\u4ed6\u7684\u597d\u5904\u5c31\u662f\uff0c\u5373\u4f7f\u5e95\u4e0b\u7684\u5143\u7d20\u4f1a\u968f\u5185\u5bb9\u6539\u53d8\u5927\u5c0f\uff0c\u4f46\u4e0d\u7ba1\u600e\u4e48\u6539\u53d8\uff0c\u5c31\u662f\u53ef\u4ee5\u59cb\u7ec8\u7ef4\u6301\u5782\u76f4\u548c\u6c34\u5e73\u7f6e\u4e2d\u3002
\n\n\u5f53\u7136\u5566\uff0c\u8fd8\u6709\u5f88\u591a\u7f6e\u4e2d\u7684\u65b9\u6cd5\uff0c\u5c31\u4e0d\u4e00\u4e00\u4ecb\u7ecd\u4e86\uff0c\u6211\u4eec\u6765\u770b\u4e00\u4e0b\u7528 flex \u7684\u8bdd\u600e\u4e48\u7f6e\u4e2d\u3002
\n\n
\u7528 Flex \u6765\u505a\u7f6e\u4e2d\u7684\u8bdd\uff0c\u4f60\u53ef\u4ee5\u5f88\u4ece\u5bb9\u5730\u505a\u5230\u7f6e\u4e2d\uff0c\u4e0d\u7528\u4e00\u5806\u5373\u4f7f\u672c\u6765\u4e0d\u662f\u8fd9\u6837\u7528\u7684\u5c5e\u6027\u3002\u6211\u53ea\u8981\u5148\u6307\u5b9a\u5bb9\u5668\u4e3a\u4e00\u4e2a Flex \u5bb9\u5668\uff0c\u7136\u540e justify-content \u8ba9\u4ed6\u6c34\u5e73\u65b9\u5411\u7f6e\u4e2d\uff0c\u518d align-items \u8ba9\u4ed6\u5782\u76f4\u65b9\u5411\u7f6e\u4e2d\u3002\u6211\u53ef\u4ee5\u5f88\u7b80\u5355\u5f88\u4f18\u96c5\u7684\u5c31\u505a\u5230\u7f6e\u4e2d\u3002
\n\n\u90a3\u4e5f\u8bb8\u4f60\u4f1a\u8bf4\uff0c\u6b38\uff1f\u65e2\u7136\u4e00\u4e2a\u53ef\u4ee5\u7684\u8bdd\uff0c\u90a3\u6211\u518d\u591a\u653e\u51e0\u4e2a\u53ef\u4e0d\u53ef\u4ee5\uff1f\u5176\u5b9e\u53ef\u4ee5\u7684\u3002
\n\n
\u5047\u8bbe\u6211\u4eec\u73b0\u5728\u5bb9\u5668\u5e95\u4e0b\u6709\u4e09\u4e2a\u5143\u7d20\uff0c\u5594\uff0c\u8fd9\u88e1\u5c31\u8981\u63d0\u5230 Flexbox \u53e6\u5916\u4e00\u4e2a\u5c4c\u70b8\u5929\u7684\u529f\u80fd\u3002
\n\n\u5047\u8bbe\u4e00\u4e2a\u5143\u7d20\u662f\u56db\u96f6%\uff0c\u53e6\u4e00\u4e2a\u662f\u4e00\u4e8c%\uff0c\u90a3\u5728\u4e00\u4e2a Flex \u5bb9\u5668\u4e2d\uff0c\u53ea\u8981\u4f60\u6709\u8bbe\u5b9a flex-grow \u8fd9\u9879\u5c5e\u6027\u7684\u8bdd\uff0c\u4ed6\u7684\u7b2c\u4e09\u4e2a\u5143\u7d20\u5c31\u4f1a\u81ea\u9002\u5e94\u5bbd\u5ea6\uff0c\u586b\u6ee1\u5269\u4e0b\u5bb9\u5668\u7684\u7a7a\u767d\u3002\u800c\u5728\u591a\u4e2a\u5143\u7d20\u7684\u72b6\u6001\u4e4b\u4e0b\uff0c\u6211\u4eec\u4ecd\u7136\u80fd\u5f88\u8f7b\u6613\u7684\u5c31\u7f6e\u4e2d\u3002
\n\n
\u521a\u521a\u6211\u4eec\u63d0\u5230\u8fc7\uff0cflexbox \u662f\u7528\u6765\u89c4\u8303\u76d2\u6a21\u578b\u4e4b\u95f4\u7684\u76f8\u5bf9\u5173\u7cfb\uff0c\u4ece\u8fd9\u88e1\u4f60\u5c31\u53ef\u4ee5\u770b\u5230\u3002\u73b0\u5728\u6211\u5c06 justify-content \u8bbe\u6210 space-around\uff0c\u5143\u7d20\u5c31\u4f1a\u53d8\u6210\u5df2\u5206\u6563\u5bf9\u9f50\u7684\u65b9\u5f0f\u53bb\u5206\u4f48\u5728 flex \u5bb9\u5668\u4e2d\u3002
\n\n\u5173\u4e8e\u5143\u7d20\u7684\u5206\u6b65\uff0c\u6211\u4eec\u518d\u6765\u770b\u51e0\u4e2a\u4f8b\u5b50\u3002
\n\n
\u8fd9\u662f\u4e00\u4e2a\u6211\u6700\u8fd1\u770b\u5230\u7684\u7f51\u7ad9\u3002\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u4ed6\u5e95\u4e0b\u6709\u4e00\u4e2a Slider\uff0c\u8fd9\u6709\u4e2a\u95ee\u9898\uff0c\u800c\u4e14\u4e5f\u5e38\u5e38\u662f\u524d\u7aef\u5728\u7248\u9762\u4e0a\u7684\u4e00\u4e2a\u75db\u70b9\uff0c\u6211\u4eec\u60f3\u8ba9\u6240\u6709\u7684\u5b50\u5143\u7d20\u80fd\u591f\u7b49\u9ad8\u3002\u5728\u4ee5\u524d\u6211\u4eec\u5f88\u96be\u53ea\u7528 CSS \u53bb\u505a\u5230\u8fd9\u6837\u3002
\n\n
\u800c flexbox \u53ef\u4ee5\u5f88\u8f7b\u6613\u5730\u53ea\u7528 CSS \u505a\u5230\u8fd9\u70b9\u3002\u53ea\u9700\u8981\u5728 flex \u5bb9\u5668\u52a0\u4e0a align-items \u5c31\u597d\u3002\u5c31\u80fd\u5b9e\u73b0\u5bb9\u5668\u5e95\u4e0b\u7684\u6240\u6709\u5143\u7d20\uff0c\u4e0e\u6700\u9ad8\u7684\u90a3\u4e2a\u5143\u7d20\u7b49\u9ad8\u3002
\n\n
\u5373\u4f7f\u6211\u5728\u672c\u6765\u6700\u9ad8\u7684\u90a3\u4e2a\u5143\u7d20\u591a\u52a0\u4e00\u4e9b\u5185\u5bb9\uff0c\u5176\u4ed6\u7684\u5143\u7d20\u4e5f\u4e00\u5b9a\u4f1a\u7ef4\u6301\u7b49\u9ad8\u3002
\n\n
Flex \u6700\u521d\u88ab W3C \u4e8e 09 \u5e74\u5236\u5b9a\u51fa\u6765\uff0c\u968f\u540e\u5c31\u88ab\u5927\u91cf\u7684\u8ba8\u8bba\u3002\u62ff\u6307\u5b9a\u5143\u7d20\u4e3a\u4e00\u4e2a flex \u5bb9\u5668\u6765\u8bb2\uff0c\u7b2c\u4e00\u4e2a\u7248\u672c\u88e1\u662f display:box\uff0c\u7b2c\u4e8c\u4e2a\u7248\u672c\u662f display: flexbox\uff0c\u7b2c\u4e09\u4e2a\u7248\u672c\u662f display: flex\u3002\u5b9e\u5728\u592a\u590d\u6742\uff0c\u8fd8\u597d\u73b0\u5728\u5728\u5f00\u6e90\u7684\u4e16\u754c\u91cc\u5df2\u7ecf\u6709\u5927\u5927\u628a\u8fd9\u4e09\u4e2a\u7248\u672c\u7684 flex \u505a\u6210\u4e00\u4e9b mixin\uff0c\u4f7f\u7528\u7684\u65f6\u5019\uff0c\u4f60\u53ea\u8981 include \u8fdb\u6765\u5c31\u53ef\u4ee5\u3002
\n\n
\n
\u5c31\u8ddf IE \u7684\u4f7f\u7528\u4f53\u9a8c\u4e00\u6837\uff0c\u6240\u6709\u7684\u597d\u4e1c\u897f\u8ddf IE \u57fa\u672c\u90fd\u6cbe\u4e0d\u4e0a\u8fb9\uff0c\u6240\u4ee5\u5982\u679c\u4f60\u9700\u8981\u8003\u8651 IE \u7528\u6237\uff0c\u90a3\u8bf7\u614e\u5165\u3002\u6240\u4ee5\u6709\u4eba\u8bf4 IE \u7684\u529f\u80fd\u53ea\u5269\u4e0b\u7528\u6765\u4e0b\u8f7d Chrome \u548c Firefox\u3002
\n\n\u5982\u679c\u4f60\u5230\u7f51\u4e0a\u641c flex\uff0c\u5927\u591a\u90fd\u4f1a\u8457\u58a8\u5728 \u4ed6\u7684\u5bf9\u9f50\u3001\u4ed6\u7684\u63a7\u5236 DOM \u987a\u5e8f\u662f\u5982\u4f55\u5982\u4f55\u597d\u7528\u3002\u4f46\u4eca\u5929\u6211\u4eec\u60f3\u804a\u4e00\u804a\u66f4\u6df1\u4e00\u70b9\u7684\u4e1c\u897f\uff0cflex item \u5bbd\u5ea6\u7684\u8ba1\u7b97\uff0c\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u53ea\u5728\u610f\u663e\u793a\u7684\u6bd4\u4f8b\uff0c\u8fd9\u4e5f\u662f\u5bbd\u5ea6\u7684\u8ba1\u7b97\u6bd4\u8f83\u5c11\u88ab\u8ba8\u8bba\u7684\u539f\u56e0\uff0c\u4f46\u5982\u679c\u4f60\u60f3\u8981\u66f4\u7cbe\u786e\u7684\u63a7\u5236 item \u7684\u663e\u793a\u5bbd\u5ea6\uff0c\u5176\u5b9e\u4f60\u662f\u9700\u8981\u53bb\u4e86\u89e3\uff0c\u5728\u4e00\u4e2a flex \u5bb9\u5668\u5f53\u4e2d\uff0citem \u7684\u5bbd\u5ea6\u662f\u5982\u4f55\u88ab\u8ba1\u7b97\u51fa\u6765\u7684\u3002
\n\n
\n
\u5f53\u6211\u4eec\u628a\u4e00\u4e2a\u5bb9\u5668\u6307\u5b9a\u4e3a flex \u5bb9\u5668\u65f6\uff0c\u5b83\u88e1\u9762\u7684 item \u5176\u5b9e\u662f\u6709\u8457\u8fd9\u6837\u7684\u8bbe\u5b9a\uff1aflex: 0 1 auto
\n\n\u8fd9\u4e09\u4e2a\u6570\u5b57\u5176\u5b9e\u5206\u522b\u4ee3\u8868\uff1aflex-grow\u3001flex-shrink\u3001flex-basis\uff0c\u8fd9\u4e09\u4e2a\u5c5e\u6027\u53ef\u4ee5\u8bf4\u662f flex \u4e4b\u6240\u4ee5\u667a\u80fd\u7684\u539f\u56e0\u3002
\n\n
\u6211\u4eec\u5148\u6765\u804a\u804a flex-basis \u597d\u4e86\uff0c\u8fd9\u4e2a\u5c5e\u6027\u5728 flex \u5bb9\u5668\u4e3a\u6a2a\u5411\u7684\u65f6\u5019\uff0c\u5176\u5b9e\u5c31\u662f\u5bbd\u5ea6\uff0c\u5f53\u6211\u4eec\u628a item \u6307\u5b9a\u6210 flex: 0 0 480px \u65f6\uff0c\u5176\u5b9e\u5c31\u662f\u628a\u5b83\u7684\u5bbd\u5ea6\u8bbe\u5b9a\u6210 480px\u3002\u4f46\u662f\u8fd9\u6837\u5e76\u4e0d\u80fd\u8868\u73b0\u51fa flex \u6709\u4ec0\u4e48\u7279\u522b\u7684\u5730\u65b9\u554a\uff1f\u4e3a\u4ec0\u9ebd\u8981\u91cd\u8907\u8bbe\u5b9a\u5bbd\u5ea6\uff1f
\n\n\u8fd9\u65f6\u5019\u5c31\u8981\u8bb2\u5230\u53e6\u5916\u4e24\u4e2a\u5c5e\u6027\uff1aflex-grow\u3001flex-shrink
\n\n
\u8fd9\u4e24\u4e2a\u5c5e\u6027\u5176\u5b9e\u662f\u53cc\u80de\u80ce\uff0cgrow \u8868\u793a\u5728 item \u603b\u5bbd\u5ea6\u6bd4\u5bb9\u5668\u5c0f\u7684\u65f6\u5019\uff0c\u4e3a\u4e86\u8ba9 item \u586b\u6ee1\u5bb9\u5668\uff0c\u6bcf\u4e2a item \u589e\u52a0\u7684\u5bbd\u5ea6\u3002\u5047\u8bbe\u6709\u4e09\u4e2a basis \u4e3a 100px \u7684 item\u3002\u6211\u4eec\u4ece\u5de6\u5230\u53f3\u7ed9\u4e88 grow \u503c\u5206\u522b\u4e3a 3\u30012\u30011\uff0c\u90a3\u4e48\u5f53 flex \u4f5c\u7528\u4e4b\u540e\uff0c\u6700\u5de6\u8fb9\u7684 item \u5b9e\u9645\u589e\u52a0\u7684\u5bbd\u5ea6\u662f\u591a\u5c11\uff1f\u4ece\u56fe\u4e2d\u53ef\u4ee5\u7b97\u5230\u589e\u52a0\u7684\u5bbd\u5ea6\u662f 90px\uff0c\u4e8e\u662f\u6700\u540e\u6700\u5de6\u8fb9 item \u7684\u5bbd\u5ea6\u662f 190px\u3002
\n\n
\u6211\u4eec\u521a\u624d\u63d0\u5230 grow \u8ddf shrink \u5176\u5b9e\u662f\u53cc\u80de\u80ce\uff0c\u5176\u5b9e\u4ed6\u4eec\u771f\u7684\u5f88\u50cf\uff0cshrink \u8868\u793a\u5728 item \u603b\u5bbd\u5ea6\u6bd4\u5bb9\u5668\u5927\u7684\u65f6\u5019\uff0c\u4e3a\u4e86\u8ba9 item \u586b\u6ee1\u5bb9\u5668\uff0c\u6bcf\u4e2a item \u51cf\u5c11\u7684\u5bbd\u5ea6\u3002\u4f46\u662f\u8ba1\u7b97\u7684\u516c\u5f0f\u5374\u662f\u4e0d\u4e00\u6837\u7684\u3002\u4e3a\u4ec0\u4e48\uff1f\u56e0\u4e3a\u5f53\u4f60\u5728\u52a0\u7684\u65f6\u5019\u65e0\u6240\u8c13\uff0c\u4f46\u662f\u5728\u51cf\u7684\u65f6\u5019\uff0c\u5982\u679c\u53ea\u8ba1\u7b97\u8d4b\u4e88\u7684 shrink \u503c\uff0c\u90a3\u4e48\u5f88\u6709\u53ef\u80fd\u6700\u540e\u51cf\u5c11\u7684\u5bbd\u5ea6\u6bd4 basis \u5927\uff0c\u4e8e\u662f item \u7684\u5bbd\u5ea6\u5c31\u53d8\u6210\u8d1f\u503c\u3002\u90a3\u6211\u4eec\u8be5\u600e\u4e48\u4fee\u6b63\uff1f\u628a basis \u5f53\u6210\u53c2\u6570\u8ba1\u7b97\u8fdb\u53bb\uff0c\u8fd9\u6837\u5c31\u80fd\u4fdd\u8bc1\u51cf\u5c11\u7684\u5bbd\u5ea6\u6c38\u8fdc\u5c0f\u4e8e basis\u3002\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u5f97\u5230\u4fee\u6b63\u540e\u7684\u516c\u5f0f\uff0c\u4e00\u6837\u4ee5\u6700\u5de6\u8fb9\u4e3a\u4f8b\u5b50\uff0c\u6700\u540e\u8ba1\u7b97\u51fa\u6765\u51cf\u5c11 60px\uff0c\u4e8e\u662f item \u5c31\u53d8\u6210 140px\u3002\u4ee5\u4e0a\u8111\u5b50\u4e0d\u597d\u4f7f\uff0c\u6ca1\u5173\u7cfb\uff0c\u5b9e\u9645\u4e0a\u6700\u5e38\u7528\u7684\u53ea\u662f flex: 1\u3002
\n\n
\u8bb2\u5230\u8fd9\u91cc\uff0c\u4f60\u521a\u521a\u8bb2\u7684\u597d\u50cf\u8fd9\u4e1c\u897f\u5f88\u5389\u5bb3\u7684\u6837\u5b50\uff0c\u90a3\u4f60\u6709\u6ca1\u6709\u4e00\u4e2a\u6700\u5feb\u6700\u7b80\u5355\u7c97\u66b4\u7684\u65b9\u5f0f\u53bb\u8bf4 Flexbox \u771f\u7684\u662f\u4e2a\u597d\u4e1c\u897f\uff1f
\n\n\u55ef\u22ef\u22ef\u6709\u70b9\u96be\uff0c\u4e0d\u8fc7\u6211\u60f3\u5e94\u8be5\u53ef\u4ee5\u3002
\n\n
\u9996\u5148\uff0c\u611f\u8c22@Livid \u5bf9 GitCafe \u7684\u8ba4\u53ef\u548c\u652f\u6301\uff0c\u6211\u4eec\u5728 V2EX \u4e0a\u6709\u8282\u70b9\u5566\uff0c\u5c0f\u4f19\u4f34\u4eec\u5feb\u6765\u627e\u4f60\u4eec\u7684\u7ec4\u7ec7\uff01
\n\nGitCafe \u662f\u4e00\u4e2a\u57fa\u4e8e\u4ee3\u7801\u6258\u7ba1\u670d\u52a1\u6253\u9020\u7684\u6280\u672f\u534f\u4f5c\u4e0e\u5206\u4eab\u5e73\u53f0\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 Git \u4ee3\u7801\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u5c06\u5176\u5f00\u6e90\u6216\u5546\u4e1a\u9879\u76ee\u4ee3\u7801\u6258\u7ba1\u5728 GitCafe \u4e0a\uff0c\u4e0e\u5176\u4ed6\u7a0b\u5e8f\u5458\u5728\u7ebf\u534f\u4f5c\u5f00\u53d1\u3002 GitCafe \u7684\u4f7f\u547d\u662f\u4fc3\u8fdb\u56fd\u5185 IT \u884c\u4e1a\u79ef\u6781\u826f\u6027\u7684\u53d1\u5c55\u3002 \u6211\u4eec\u5e2e\u52a9\u7814\u53d1\u56e2\u961f\u66f4\u597d\u7684\u8fdb\u884c\u4ee3\u7801\u7684\u7ba1\u7406\u4e0e\u534f\u4f5c\uff0c\u4e3a\u4f01\u4e1a\u63d0\u4f9b\u4f18\u5316\u7684\u5de5\u4f5c\u6d41\u7a0b\u4e0e\u89e3\u51b3\u65b9\u6848\uff1b\u540c\u65f6\u52a9\u529b\u56fd\u5185\u5916 IT \u4f01\u4e1a\u6253\u9020\u66f4\u597d\u7684\u5f00\u53d1\u8005\u751f\u6001\u7cfb\u7edf\uff0c\u83b7\u5f97\u5f3a\u6709\u529b\u7684\u4f01\u4e1a\u7ea7\u6280\u672f\u63a8\u5e7f\u5e73\u53f0\u3002
\n\n\u53ef\u4ee5\u5148\u53bb https://gitcafe.com \u611f\u53d7\u4e00\u4e0b\u3002
\n\nGitCafe \u643a\u624b\u53c8\u62cd\u4e91\u3001bong\u3001LeanCloud\u3001\u4e03\u725b\u4e91\u5b58\u50a8\u3001ping++\u3001\u4e0a\u6d77\u7ebd\u7ea6\u5927\u5b66\u548c\u6e05\u534e Thacks\u7b49\u4e3e\u529e\u4e86\u7ebf\u4e0a\u7ebf\u4e0b\u7684\u9ed1\u5ba2\u9a6c\u62c9\u677e\u6bd4\u8d5b\uff1bGitCafe \u8d70\u8fdb\u53f0\u6e7e COSCUP \u5e74\u4f1a\u3001\u4e0a\u6d77 QCon\u3001\u5317\u4eac GDG Devfest\u3001\u590d\u65e6\u5927\u5b66\u535a\u58eb\u751f\u5b66\u672f\u8bba\u575b\u3001\u9999\u6e2f BIP Asia \u7b49\u5927\u4f1a\u5206\u4eab\u4e86\u7cbe\u5f69\u7684\u6f14\u8bb2\uff1bGitCafe \u643a\u624b\u5f00\u6e90\u793e\u9ad8\u6821\u5de1\u56de\u5ba3\u8bb2\u8d70\u8bbf\u4e86\u6e05\u534e\u3001\u5317\u822a\u3001\u590d\u65e6\u7b49\u5168\u56fd 13 \u6240\u9ad8\u6821\uff0c\u4e3a\u540c\u5b66\u4eec\u5e26\u53bb\u4e86\u4e30\u5bcc\u7684\u5f00\u6e90\u6587\u5316\u4e0e\u77e5\u8bc6\uff1b\u5fae\u8f6f Open XML SDK\u3001\u5de8\u6749\u6570\u636e\u5e93\u3001UCloud \u8054\u624b 9 \u79d2\u793e\u56e2\u5c06\u53d8\u8272\u9f99 SDK \u4ee5\u53ca CrossApp \u7b49\u5f00\u6e90\u9879\u76ee\u6258\u7ba1\u5728\u4e86 GitCafe \u7684\u5e73\u53f0\u4e0a\uff1bGitCafe \u63a8\u51fa\u4e86\u5168\u65b0\u7684 UI 2.0 \u4e0e\u4f01\u4e1a\u7ea7\u89e3\u51b3\u65b9\u6848\uff0cPages \u670d\u52a1\u542f\u7528\u9876\u7ea7\u57df\u540d gitcafe.io\uff1bGitCafe \u7684 HTML5 \u5c0f\u6e38\u620f\u2014\u2014GitBubble \u4e0a\u7ebf\u4e86\uff01
\n\n\u6211\u4eec\u52aa\u529b\u4e3a\u5f00\u53d1\u8005\u6253\u9020\u4e00\u4e2a\u826f\u597d\u7684\u751f\u6001\u73af\u5883\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4fbf\u5229\u7684\u670d\u52a1\uff0c\u6211\u4eec\u56e2\u961f\u4f1a\u7ee7\u7eed\u8ba4\u771f\u52aa\u529b\uff0c\u52a9\u529b\u4e8e\u5927\u5bb6\u7684\u68a6\u60f3\u3002\u4e00\u8def\u8d70\u6765\uff0c\u4e5f\u79bb\u4e0d\u5f00\u5927\u5bb6\u5bf9\u6211\u4eec\u7684\u652f\u6301\u3001\u9f13\u52b1\u4e0e\u5efa\u8bae\uff0c\u624d\u80fd\u8ba9\u6211\u4eec\u53d8\u5f97\u66f4\u597d\u3002
\n\n\u63a5\u4e0b\u6765\u7684\u8def\uff0c\u6211\u4eec\u8bda\u631a\u9080\u8bf7\u5404\u4f4d V2EXer \u4e0e\u6211\u4eec\u4e00\u8d77\u8d70\u8fc7\uff0c\u89c1\u8bc1\u6211\u4eec\u7684\u53d1\u5c55\uff0c\u4e5f\u80fd\u591a\u63d0\u5efa\u8bae\uff0c\u8ba9\u6211\u4eec\u66f4\u52a0\u5b8c\u5584\u3002
\n\n\u8fd9\u4e2a\u8282\u70b9\uff0c\u7559\u7ed9\u6bcf\u4e00\u4e2a\u4eba\uff0c\u53d1\u8868\u4f60\u4eec\u7684\u610f\u89c1\uff0c\u6211\u4eec\u4e5f\u4f1a\u5206\u4eab\u4e00\u4e9b\u6709\u8da3\u7684\u65b0\u9c9c\u4e8b\u3001\u6280\u672f\u5e72\u8d27\u7684\u5206\u4eab\u548c\u5f00\u6e90\u6587\u5316\u3002
\n\n\u518d\u6b21\u611f\u8c22\u5927\u5bb6\uff01
\n\nGitCafe \u56e2\u961f\u81f4\u4e0a
\n\n\u6b22\u8fce\u5173\u6ce8\u6211\u4eec\u7684\u5fae\u4fe1\u516c\u4f17\u8d26\u53f7\uff1a
\n
\u4e5f\u53ef\u4ee5\u901a\u8fc7 \u201c\u641c\u7d22 GitCafe\u201d \u5173\u6ce8\u6211\u4eec\u7684\u5fae\u535a\u8d26\u53f7
\n", "date_published": "2015-01-16T04:42:13+00:00", "title": "GitCafe \u5165\u4f4f V2EX \u5566\uff0c\u5c0f\u4f19\u4f34\u4eec\u5feb\u6765\u627e\u7ec4\u7ec7\uff01", "id": "t/162666" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86