qcon_从QCon伦敦2011中学到的主要知识点和教训

qcon

In this article, we present take-aways as seen by the attendees who blogged and tweeted about the QCon London 2011. This QCon, the 5th in London and 14th world wide was sold out weeks ahead of the conference -  with over  850 attendees including over 100 speakers!  QCon London was produced  by InfoQ.com and Trifork, the company who produces the GOTO conference in Denmark.  QCon will continue to run in London around March of every year, QCon SF will be running again in Nov this year, and QCon Beijing and QCon Tokyo are around the corner, and QCon Sao Paolo will be in September.

在本文中,我们介绍了一些博客和推特上有关QCon London 2011的与会者所看到的要点。 这次QCon,在伦敦举行的 5 届,在世界 14 ,已在会议召开前几周售罄,共有850多位与会者包括100多位演讲者! QCon伦敦会议由InfoQ.com和Trifork共同制作,该公司在丹麦举办了GOTO会议。 QCon将继续在每年的3月在伦敦运行, QCon SF将在今年11月再次运行, QCon BeijingQCon Tokyo即将到来, QCon Sao Paolo将在9月。

Table of Contents

目录

Tutorials

讲解

Keynotes

主题演讲

Architectures You've Always Wondered About

您一直想知道的架构

Building Systems With REST

具有REST的建筑系统

Design and Objects 2011

设计与对象2011

Enterprise Agile Transformation

企业敏捷转型

Functional Web

功能网

Future of Java

Java的未来

HTML5, the Platform

HTML5,平台

iOS4 and Android

iOS4和Android

Lean and Kanban: Learning Through Systems Thinking

精益和看板:通过系统思考学习

Next-Generation Financial Technology

下一代金融技术

NoSQL: Where and How

NoSQL:在哪里和如何

Software Architecture Improvements

软件架构改进

Software Craftsmanship

软件Craft.io

When Things Break

当事情破裂

Solutions Track

解决方案跟踪

QCon User Group Events

QCon用户组事件

Social Events

社会事件

Opinions about QCon

关于QCon的观点

Takeaways

外卖

Conclusion

结论

讲解 (Tutorials)

Jez HumbleSam Newman的 连续交付 (Continuous Delivery by Jez Humble & Sam Newman)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

设计软件, Simon Brown 绘制图片 (Designing Software, Drawing Pictures by Simon Brown)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Dan North 的敏捷建筑秘密 (Secrets of Agile Architecture by Dan North)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

mariendegelder: Take-aways from Dan North at #qconlondon: Stop talking when you stop learning. Develop fast but be a grownup about it. Good stuff!

 

rkrol: New continuous delivery story with 20-30 deploys/days on trading system DWR by @tastapod at #QConLondon

mariendegelder#qconlondon上 Dan Dan的 外带 :停止学习时停止讲话。 快速发展,但要对此成长。 好东西!

rkrol@tastapod#QConLondon的 DWR交易系统上部署了20-30天/天的新连续交付案例

主题演讲 (Keynotes)

Patrick Copeland的 Google创新 (Innovation at Google by Patrick Copeland)

Greg Gigon outlined the most important ideas presented during this keynote:

Greg Gigon概述了本主题演讲中提出的最重要的想法:

Christoffer Noring attended this keynote:

Christoffer Noring出席了本主题演讲:

He made a point of that a company should aim at trying to “build the right it” and not “building it right“. Also ideas in themselves didn’t have value but the people who realize them. Building something new is ”1% inspiration and 99% perspiration”. Copeland then introduced the concept “Thoughtland” where everything is possible, good ideas, bad ideas, which is basically unrealized ideas. Then a number of cases where mentioned, first off IBMs attempt to invent the ”speech-to-text apparatus”. At this point the concept of ”Pretendotype” or ”Pretotyping” was introduced meaning that you should fake creating a product and thereby test the validity of the idea. …

 

Then he gave the general recipe for innovation which was try out some pretendotypes followed by a quick launch on a small user group, followed by abandon or repeat until achieving the previously mentioned high stable usage over time. First after that real prototyping can take place.

他指出,公司应该致力于“建立正确的权利”而不是“建立正确的权利”。 想法本身并没有价值,但实现它们的人却没有价值。 建立新事物是“ 1%的灵感和99%的汗水”。 谷轮然后提出了“思想世界”的概念,其中一切皆有可能,好主意,坏主意,这基本上是未实现的主意。 然后提到的许多情况,首先是IBM尝试发明“语音转文本设备”。 在这一点上,引入了“ Pretendotype”或“ Pretotyping”的概念,这意味着您应该伪造产品,从而测试该想法的有效性。 …

然后,他给出了创新的一般方法,那就是尝试一些偏爱的模型,然后在一个很小的用户群上快速启动,然后放弃或重复,直到随着时间的推移实现上述高度稳定的使用。 首先,可以进行真正的原型制作。

Craig Nicol blogged:

Craig Nicol发表了:

In a fascinating overview of creating an innovation culture, Patrick Copeland discussed how everyone at Google is free to develop ideas (the famous 20% time) but that ideas mean nothing without data to back them up. In one case, the usage data led Google to kill Google Wave, which was a good idea, and got a lot of early interest but had no staying power as it struggled to find a killer niche.

 

The most interesting part of the talk was the discussion of “Pretotypes”, which are a generalization of something I’ve always known as “Wizard of Oz” trials. The idea of a Pretotype (“pretend-o-type”) is to build a concept prior to the prototype to see if the idea itself stands up. Where a prototype answers “Can I build it?”, the pretotype answers “Should I build it?”

在创建创新文化的迷人概述中, 帕特里克·科普兰Patrick Copeland)讨论了Google的每个人如何自由地开发想法(著名的20%的时间),但是如果没有数据来支持它们,这些想法就没有任何意义。 在一个案例中,使用情况数据导致Google杀死了Google Wave,这是一个好主意,并且引起了很多早期兴趣,但由于它一直难以找到杀手n,因此没有持久力。

演讲中最有趣的部分是对“原型”的讨论,它是对我一直称为“绿野仙踪”试验的概括。 Pretotype(“ pretend-o-type”)的概念是在原型之前构建一个概念,以查看该概念本身是否成立。 原型回答“我可以建造吗?”,原型回答“我应该建造吗?”。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

timanderson: Google has over 100,000 innovation ideas from employees in a database #qconlondon

 

timanderson: Google Wave "you want to fast fail when things aren't working" #qconlondon

samverschooten: "We are not retreating, we are just advancing in a different direction" Patrick Copeland excellent keynote at #qconlondon

alblue: "Innovations beat ideas, data beats opinions" - Patrick Copeland at #qcon #qconlondon

timanderson: Androgen - ui prototyping tool for Android coming soon from Google #qconlondon

thomleggett: Prototype = "can we build it?", Pretotype = "Would we use it?" - @copelandpatrick #qconlondon #qcon

timanderson: Pretotyping - fake it before you build it says Google director of engineering #qconlondon

jorgenwahlberg: "If you have the right idea, you can screw up all you want and still be successful." @copelandpatrick #qconlondon #qcon

alblue: Innovations are 1% idea and 99% execution; ideas are worthless, innovators are everything - Patrick Copeland #qcon #qconlondon

timanderson: You don't need to seek out your innovators, they make a nuisance of themselves says Google man #qconlondon

alblue: Patrick Copeland on the pretotyping manifesto at http://www.pretotyping.com #qcon #qconlondon http://twitpic.com/482y1d

timanderson: Google Chrome: two main goals, streamlined ui and fast javascript. Others have copied says Google engineer #qconlondon

timanderson: Android strategy vs Apple is same as clone PCs vs IBM in 80s says Google man #qconlondon

alblue: Don't be afraid to kill products based on real data rather than opinions - Patrick Copeland #qcon #qconlondon

robertoaloi: Innovation is the intersection of vision and hallucination. @copelandpatrick at #qcon #qconLondon

timanderson :Google在 #qconlondon数据库中 拥有来自员工的100,000多个创新想法

timanderson :Google Wave“您想在事情不正常时快速失败” #qconlondon

samverschooten :“我们不会退缩,我们只是朝着不同的方向前进”,帕特里克·科普兰德(Patrick Copeland)在#qconlondon的精彩主题演讲

alblue :“创新胜过思想,数据胜过观点” -Patrick Copeland在#qcon #qconlondon

timanderson :Androgen-Android的ui原型制作工具即将从Google #qconlondon推出

thomleggett :原型=“我们可以建造它吗?”,Pretotype =“我们可以使用它吗?” - @ copelandpatrick #qconlondon #qcon

timanderson :原型设计-在制造之前假造它,说Google工程总监#qconlondon

jorgenwahlberg :“如果您有正确的想法,则可以搞定您想要的一切,但仍然可以成功。” @copelandpatrick #qconlondon #qcon

alblue :创新是1%的创意和99%的执行力; 想法一文不值,创新者无所不能 -Patrick Copeland #qcon #qconlondon

timanderson :您不需要寻找创新者,他们会讨厌自己,说Google人#qconlondon

alblue :帕特里克·科普兰(Patrick Copeland)的原型设计宣言, 网址http://www.pretotyping.com #qcon #qconlondon http://twitpic.com/482y1d

timanderson :Google Chrome:两个主要目标,简化ui和快速javascript。 有人抄袭说Google工程师#qconlondon

timanderson :谷歌人#qconlondon说,Android与苹果的策略与克隆PC与IBM在80年代的策略相同

alblue :不要害怕基于真实数据而不是根据观点杀死产品-Patrick Copeland #qcon #qconlondon

robertoaloi :创新是视觉和幻觉的交集。 @copelandpatrick#qcon #qcon伦敦

创新与整合:将流行技术应用到NASA任务运营计划中Mark Powell (Innovations and Integrations: Applying Trendy Technologies to NASA Mission Operations Planning by Mark Powell)

Alex Blewitt attended this keynote:

Alex Blewitt出席了本主题演讲:

With the final landing of the Discovery shuttle today, it was fitting that QCon rounded off with what's happening at NASA. Mark Powell gave a good set of highlights about the tools that NASA and JPL use, from Eclipse RCP to schedule work on the Mars rovers to using Kinect to interact with graphic displays and wraparound simulations.

 

The images on Mars are processed by a massively parallel cloud computing system, and tesselated into different resolutions to give a Google Earth style flyover of the ground, as well as a geospatial search for nearby objects. Being able to merge all of these into a single application takes a lot of processing power, but the cloud approach can be accessed from all over the world.

随着今天 发现号航天飞机的最后 降落 ,QCon与NASA所发生的事情完美地融为一体。 马克·鲍威尔(Mark Powell)很好地介绍了NASA和JPL使用的工具,从Eclipse RCP计划在火星漫游者上进行的工作,到使用Kinect与图形显示和环绕模拟进行交互。

火星上的图像由大规模并行云计算系统处理,并细分为不同的分辨率,以提供Google Earth风格的天桥,以及对附近物体的地理空间搜索。 能够将所有这些合并到单个应用程序中需要大量处理能力,但是可以从世界各地访问云方法。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

alblue: "If your organisation isn't looking at cloud computing it's time to clean out the tribbles" - Mark Powell #qcon

 

jgrodziski: #qcon how to beat a speaker when his domain is spacecraft ?-:) great talk from Mark Powell about software at NASA

alblue :“如果您的组织不打算使用云计算,那么现在该清理一下问题了” -Mark Powell #qcon

jgrodziski#qcon当他的领域是航天器时,如何击败演讲者?-:) Mark Powell关于NASA软件的精彩演讲

扩展精益和敏捷性: Craig Larman的 大型,多站点或离岸交付 (Scaling Lean & Agile: Large, Multisite or Offshore Delivery by Craig Larman)

Greg Gigon outlined the most important ideas presented during this keynote:

Greg Gigon概述了本主题演讲中提出的最重要的想法:

Craig Nicol blogged on this Keynote:

Craig Nicol在该主题演讲上发表了文章:

Craig Larman was speaking about his experiences of creating agile teams for development projects spanning different countries and large teams. Although his first point can be summed up as “Don’t do it – if you can use a 10 man team, do”, there was a lot of good information on how to split up tasks to distribute them effectively across teams and how to maintain a common vision and feedback path across many locations. …

 

A couple of interesting points he made were that teams should have functional rather than modular responsibilities – i.e. don’t have “database” and “UI” teams, have “HSDPA” or “credit card payment” teams whose responsibilities cut right across the codebase so that the eyes on the code in one module never get stale. He also recommended against proprietary software – mainly as licensing issues create major problems across borders, and generally do not provide enough value over free alternatives to justify the expense.

克雷格·拉曼Craig Larman )谈到了他为跨不同国家和大型团队的开发项目创建敏捷团队的经验。 尽管他的第一点可以概括为“不要做-如果您可以使用10人团队,那就去做”,但是有很多关于如何分散任务以在团队中有效分配任务以及如何进行任务分配的很好的信息。在许多地方保持共同的愿景和反馈路径。 …

他提出了几个有趣的观点,即团队应该承担职能而不是模块化的职责,即没有“数据库”和“ UI”团队,没有“ HSDPA”或“信用卡支付”团队,其职责在整个代码库中都应分开这样一来,一个模块中的代码就不会变得过时。 他还建议不要使用专有软件–主要是因为许可问题会带来跨境的重大问题,并且通常没有提供比免费替代品足够的价值来证明费用合理。

Christoffer Noring attended this keynote:

Christoffer Noring出席了本主题演讲:

The conference started with an introduction speech with Craig Larman, a real UML guru, talking about large scale scrum projects operating on several sites spread out across the world. He talks about the importance of not having component teams as they tend to tasks in a waterfall like approach. It’s also important to find good ways of cooperating and on equal terms. The last excludes using project manager software that teams in certain countries will not be able to afford the license on. So basically use tools that are as simple as possible, Google docs, invest in large whiteboards and so on. With his own words “using project management software is like applying lipstick to a pig”. Larman was responsible for a setup consisting of almost a thousand coders and asked what to change if doing it again- he said only use 10 really good coders to code everything.
会议的开头是与真正的UML专家Craig Larman的介绍性演讲,谈到在全球多个站点上运行的大规模Scrum项目。 他谈到了没有组成团队的重要性,因为他们倾向于以瀑布式方法进行任务。 找到平等合作的良好方法也很重要。 最后一种排除使用某些国家的团队无法负担许可的项目管理器软件。 因此,基本上使用尽可能简单的工具,Google文档,在大型白板上进行投资等。 用他自己的话说“使用项目管理软件就像给猪涂口红”。 Larman负责由近一千名编码员组成的设置,并询问再次进行更改时要进行的更改-他说仅使用10个非常好的编码员即可对所有内容进行编码。

Andrew Hepburn wrote about this keynote:

安德鲁·赫本Andrew Hepburn )关于这个主题演讲写道:

His advice was basically “Don’t do it!” He recommended that teams should be kept small – ten people or less – if possible. …

 

  • “We should encourage a culture of master programmers not PowerPoint architects”
  • “Architecture is a bad metaphor. We don’t construct our software like a building, we grow it like a garden”
他的建议基本上是“不要这样做!” 他建议,如果可能的话,团队规模应保持在10人以下。 …

  • “我们应该鼓励主程序员而不是PowerPoint建筑师的文化”
  • “建筑是一个不好的比喻。 我们不会像建造建筑物那样构建我们的软件,而是像花园一样种植它”

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

jurgenappelo: "Architecture is a bad metaphor. We don't construct our software like a building, we grow it like a garden." - Craig Larman #qconlondon

 

KevlinHenney: Architecture is a fine metaphor. What's bad is most people don't understand architecture, metaphor or the architecture metaphor.#qconlondon

SimonHoh: "There's a linear relationship between workshop success and whiteboard space." Craig Larman at #QConLondon

jurgenappelo: "Dispersed teams don't scale. Large-scale multi-site development doesn't need dispersed teams." - Craig Larman #qconlondon

jurgenappelo: "Stay away from commercial tools, use open source." - Craig Larman // Sure, and Craig offers his own products for free too 8-/ #qconlondon

benjaminm: "Avoid any so-called Agile Project Management tools. These are old command & control vendors putting lipstick on a pig" Larman#qconlondon

alblue: Craig Larman recommends "Magic Whiteboard" - official site is http://www.magicwhiteboard.co.uk/ #qcon #qconlondon

robertoaloi: Do you want to scale your design? Scale your whiteboards :) #qconLondon

alblue: Scaling scrum involves partitioning backlog based on customer priorities and grouping, not dev team groups. #qcon #qconlondon

alblue: How to organise multiple scrum teams #qcon #qconlondon - suitable for integrating 5-10 teams http://twitpic.com/47qqq2

alblue: "Avoid using document driven tools, like Word - use wikis instead" - Craig Larman #qcon #qconlondon http://twitpic.com/47qz1p

benjaminm: "Avoid any so-called Agile Project Management tools. These are old command & control vendors putting lipstick on a pig" Larman #qconlondon

benjaminm: "Make sure that all distributed teams feel equally important/valued".

alblue: Sprints are for products, not teams or locations. #qcon #qconlondon All teams need to move in lockstep

alblue: Scaling above 10 scrum teams is done by applying another level of indirection where multiple area planners are responsible #qcon #qconlondon

jurgenappelo :“架构是一个不好的比喻。我们不会像建造建筑物那样构建软件,而是像花园一样种植它。” -Craig Larman #qconlondon

KevlinHenney :建筑是一个很好的隐喻。 不好的是,大多数人不了解架构,隐喻或架构隐喻。 #qconlondon

SimonHoh :“车间的成功与白板空间之间存在线性关系。” 克雷格· 拉曼( Craig Larman)在#QConLondon

jurgenappelo :“分散的团队无法扩展。大规模的多站点开发不需要分散的团队。” -Craig Larman #qconlondon

jurgenappelo :“远离商业工具,使用开源。” -克雷格·拉曼//当然,克雷格也免费提供自己的产品8- / #qconlondon

benjaminm :“避免使用任何所谓的敏捷项目管理工具。这些都是旧的命令和控制供应商,他们将口红涂在猪身上 ” Larman #qconlondon

alblue :Craig Larman建议使用“ Magic Whiteboard”-官方网站为http://www.magicwhiteboard.co.uk/ #qcon #qconlondon

robertoaloi :您想扩展设计? 缩放您的白板:) #qconLondon

alblue :扩展Scrum涉及根据客户优先级和分组而不是开发团队组对积压进行分区。 #qcon #qconlondon

alblue :如何组织多个Scrum团队#qcon #qconlondon-适用于整合5-10个团队http://twitpic.com/47qqq2

alblue :“避免使用像Word这样的文档驱动工具-改为使用Wiki” -Craig Larman #qcon #qconlondon http://twitpic.com/47qz1p

benjaminm :“避免使用任何所谓的敏捷项目管理工具。这些都是旧的命令和控制供应商,他们将口红涂在猪身上 ” Larman #qconlondon

benjaminm :“确保所有分散的团队都感到同样重要/被重视”。

alblue :Sprint适用于产品,不适用于团队或位置。 #qcon #qconlondon所有团队都需要步调一致

alblue :通过应用由多个区域计划人员负责的另一种间接访问级别,可以将10个以上的Scrum团队规模扩大到#qcon #qconlondon

我希望 罗德·约翰逊 知道事情 (Things I Wish I'd Known by Rod Johnson)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

您一直想知道的架构 (Architectures You've Always Wondered About)

约翰·戴维斯John Davies) 在Visa幕后花絮 (Behind the Scenes at Visa by John Davies)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

尼克·卡伦Nick Kallen) 在Twitter规模上进行数据架构 (Data Architecture at Twitter Scale by Nick Kallen)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Until recently, Twitter received, on average, more updates to the social graph than tweets. That is, counter-intuitively, there were more ‘follow’, ‘unfollow’, ‘block’ etc.. events in total than tweets. As these social graph updates represent CRUD-like behaviour with strict consistency constraints, whereas tweets are mostly append-only with only eventual consistency required, handling these events makes a significant contribution to the complexity required to scale Twitter.
直到最近,Twitter平均收到的社交图更新要多于推文。 也就是说,与直觉相反,与“ tweet”相比,“ follow”,“ unfollow”,“ block”等事件总数更多。 由于这些社交图更新代表了具有严格一致性约束的类似于CRUD的行为,而推文大多仅是追加操作,只需要最终的一致性,因此处理这些事件对扩展Twitter所需的复杂性做出了重大贡献。

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Nick Kalen spoke about Twitter's infrastructure and the way that they scaled tweets, timelines and social graphs. Ultimately, the twitter API most of the time boils down to “find by userid” and “find tweet by primary key”. The initial implementation in 2006 was based on a simple Rails/LAMP implementation, but whilst the original tweetbase could be loaded into RAM on a single machine with 800Gb of space, by the time the 3 billionth tweet was sent, the disk was over 90% utilized and growing fast. …

The conclusions were:

  • All engineering solutions are transient
  • Nothing's perfect but some solutions are good enough
  • Scalability solutions aren't magic; they involve partitioning, indexing and replication
  • All data for real-time queries must be in memory; disk is mostly for writes
  • Some problems can be solved with pre-computation but a lot can't
  • Exploit locality where possible
  • Measure at point of network calls to derive latency and time metrics
尼克·卡伦Nick Kalen)谈到了Twitter的基础架构以及他们缩放推文,时间表和社交图的方式。 最终,twitter API大部分时间可以归结为“通过userid查找”和“通过主键查找tweet”。 2006年的最初实施是基于简单的Rails / LAMP实施,但是尽管原始tweetbase可以在具有800Gb空间的单台计算机上加载到RAM中,但是当发送第30亿条tweet时,磁盘已超过90%利用并Swift发展。 …

结论是:

  • 所有工程解决方案都是瞬态的
  • 没有什么是完美的,但是一些解决方案就足够了
  • 可伸缩性解决方案不是魔术。 它们涉及分区,索引和复制
  • 实时查询的所有数据必须在内存中; 磁盘主要用于写入
  • 预计算可以解决一些问题,但很多问题不能解决
  • 尽可能利用本地性
  • 在网络呼叫点进行测量以得出延迟和时间指标

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Netflix的云数据架构 ,作者: Siddharth Anand (Netflix’s Cloud Data Architecture by Siddharth Anand)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

汤姆·帕奎因( Tom Paquin)的 OnLive推出体验和实时游戏架构 (OnLive’s Launch Experiences and Real Time Gaming Architecture by Tom Paquin)

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

The idea with OnLive product is basically about playing video games without actually owning anything more than a computer screen or TV. All the processing is made in the cloud and the resulting image is sent to you. He made a point of this not being able just 24 to 18 months ago both due to the limitations in computer screens as well as the speed of the internet. The general response time to aim at is 16 to 80 milliseconds, he explained, for the user to perceive it as happening in real time. This is an example of software as a service, SaaS.
OnLive产品的想法基本上是关于玩视频游戏,而实际上并没有拥有比计算机屏幕或电视更多的东西。 所有处理都在云中进行,然后将生成的图像发送给您。 他指出,由于计算机屏幕的限制以及互联网的速度,这种能力无法在24至18个月前实现。 他解释说,瞄准的一般响应时间是16到80毫秒,以便用户感知它是实时发生的。 这是软件即服务SaaS的示例。

扩展社交图谱: Jason Sobel的 Facebook基础设施 (Scaling the Social Graph: Infrastructure at Facebook by Jason Sobel)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

New Zealand is Facebook’s Guinea Pig. Often when Facebook release a new product or service, they will release it to a restricted geographical area to verify it’s scalability, popularity, etc… using a system called GateKeeper. Presumably New Zealand serves as a good test bench as it is an affluent area with a relatively small population, and more accurate GeoIP because it’s an island. Interestingly, I once heard that chocolate bar manufacturers do the same thing (NZ only) to trial new bars on the international market.
新西兰是Facebook的豚鼠。 通常,当Facebook发布新产品或服务时,他们会使用名为GateKeeper的系统将其发布到受限制的地理区域,以验证其可伸缩性,受欢迎程度等。 新西兰是一个人口相对较少的富裕地区,而因为它是一个岛屿,所以它可以提供更准确的GeoIP,因此可以说是一个很好的试验台。 有趣的是,我曾经听说巧克力棒制造商也做同样的事情(仅限新西兰)在国际市场上试用新棒。

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Facebook has over 500m registered users, half of which use the site daily; putting that into perspective, that's about 4% of the human race. All of the data centres are based in the US in both East coast and West coast sites; however, at the moment, the West coast is a read-only replica of data in the East coast. Any writes to pages results in subsequent reads being redirected to the write master to ensure that pages are kept up to date, though a future topology change might result in multi-master sites.

The majority of Facebook is implemented in PHP on top of MySQL with InnoDB back-ends. In order to speed up the access, a memcache layer is used (without which, Facebook wouldn't exist). To speed up PHP, the Facebook team created HipHop, a PHP-to-C compiler.

Much of the data mining is done with Hadoop and Hive, but the core languages remain PHP and C++, with some Java thrown in for data mining purposes.

Facebook有超过5亿注册用户,其中一半每天使用该网站。 从这个角度来看,约占人类的4%。 所有数据中心都位于美国的东海岸和西海岸。 但是,目前,西海岸是东海岸的只读数据副本。 对页面的任何写入都会导致随后的读取重定向到写入主机,以确保页面保持最新状态,尽管将来的拓扑更改可能会导致多主机站点。

大部分Facebook是在具有InnoDB后端MySQL之上PHP中实现的。 为了加快访问速度,使用了Memcache层(没有该层,Facebook将不存在)。 为了加快PHP的速度,Facebook团队创建了HipHop ,这是一个PHP到C的编译器。

大多数数据挖掘是通过Hadoop和Hive完成的,但是核心语言仍然是PHP和C ++,并出于数据挖掘的目的而引入了一些Java。

Craig Nicol blogged:

Craig Nicol发表了:

The scary takeaway message from Jason Sobel’s talk was not the 150-200 engineers supporting 500m users. It wasn’t the pushing live several times a day, using flags to keep “in progress” features from being visible live, or the hoops they have to go through to have 2 (soon to be three) data centers in sync (hint – most user operations are read-only). The message that a lot of people went away with was that the front-end is PHP, compiled to a monolithic binary via C++ using HipHop, that weighs in at a single 1.6Gb executable running on every front-end server. Between that, the spaghetti code on the backend that had to be replaced and the use of multiple MySQL databases on a single physical server (to make migration easier), I suddenly find myself thinking our legacy code maybe isn’t that bad.
杰森·索贝尔(Jason Sobel)演讲中令人恐惧的外卖讯息不是150-200名工程师支持5亿用户。 这不是一天要进行多次直播,不是使用标志来保持实时显示“进行中”功能,也不是为了使2个(即将成为3个)数据中心同步(提示–大多数用户操作都是只读的)。 许多人不赞成的消息是,前端是PHP,使用HipHop通过C ++通过C ++编译为单片二进制文件,该文件在每个前端服务器上运行着一个1.6Gb可执行文件。 在那之间,必须替换后端的意大利面条代码,以及在单个物理服务器上使用多个MySQL数据库(以使迁移更容易),我突然发现自己认为我们的旧代码可能还不错。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

具有REST的建筑系统 (Building Systems With REST)

使用OpenRasta在.NET上构建RESTful架构作者Seb Lambla (Building a RESTful Architecture on .NET with OpenRasta by Seb Lambla)

Craig Nicol blogged:

Craig Nicol发表了:

Brian Sletten 构建百思买的BBY开放式RESTful商务引擎 (Building Best Buy's BBY Open RESTful Commerce Engine by Brian Sletten)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

掌握REST事情做好伊恩·罗宾逊 (Getting Things Done with REST by Ian Robinson)

Craig Nicol blogged:

Craig Nicol发表了:

The talk showed a well-structured set of code that implemented the state machine using XForms as the POST representation of data, and therefore embedding links into the content. The emphasis was on discovery of workflow (after all, when I create a new order, I don’t know in advance what its ID will be, and I won’t know what the options are if I have a loyalty card).

The talk was a great sales pitch for REST, but don’t take my word for it, read the InfoQ: GET a cup of coffee article yourself.

演讲显示了一组结构良好的代码,这些代码使用XForms作为数据的POST表示形式来实现状态机,并因此将链接嵌入到内容中。 重点是发现工作流程(毕竟,当我创建新订单时,我事先不知道其ID是什么,如果拥有会员卡,我将不知道选择什么)。

这次演讲对REST来说是一个很好的销售宣传,但是请不要相信我,请阅读InfoQ:自己弄一杯咖啡

.NET使自己舒适和REST作者Glenn Block (Make Yourself Comfortable and REST with .NET by Glenn Block)

Tim Anderson also attended this session:

蒂姆·安德森(Tim Anderson)也参加了本届会议:

Craig Nicol blogged:

Craig Nicol发表了:

If you want a good REST client however, .Net does offer some hope, as demonstrated by Glenn Block. The HTTP response and request that have always been part of the server side are now freed to be available for web clients, outside the IIS framework, so that you can now write happy C# web clients using REST, using the classes you know from the server, but inside a framework that makes them easy to mock.
但是,如果您想要一个好的REST客户端,.net确实会带来一些希望,正如Glenn Block所展示的。 现在已经释放了一直属于服务器端的HTTP响应和请求,可供IIS框架之外的Web客户端使用,因此您现在可以使用REST(使用从服务器知道的类)编写快乐的C#Web客户端。 ,但是在一个易于模拟的框架内。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Tim Ewald 使用超媒体服务进行系统集成 (Using Hypermedia Services for System Integration by Tim Ewald)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

设计与对象2011 (Design and Objects 2011)

理查德·鲍森Richard Pawson) 在爱尔兰政府的大型Pure OO (Large-scale Pure OO at the Irish Government by Richard Pawson)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

企业敏捷转型 (Enterprise Agile Transformation)

敏捷运营-一次优化Business One Shell脚本作者Dan NorthChris Read (Agile Operations - Optimizing The Business One Shell Script At A Time by Dan North & Chris Read)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

学习和不正当奖励: Liz Keogh的 “邪恶的帽子” (Learning and Perverse Incentives: "The Evil Hat" by Liz Keogh)

David Arno attended this session:

David Arno参加了本次会议:

Liz talked about how as most people are scared of failure or of being told they did something wrong, we tend to fixate on the negatives. Companies build metrics, incentives and reward schemes around identifying the negatives and trying to fix them. Because the rewards tend to come from fixing failure, whole cultures of encouraging, or watching for, failure spring up as that is the only path to reward. It is much better to focus on the positives. …

The key point from the talk for me is that metrics are useful, but only as a source of information. Never use a metric as a target, otherwise your team will game it and you’ll be the biggest loser.

利兹谈到大多数人害怕失败或被告知做错了事时,我们倾向于将负面情绪固定在上面。 公司围绕确定负面因素并试图解决这些负面因素制定指标,激励和奖励计划。 因为报酬往往来自修复失败,所以鼓励或关注失败的整个文化不断涌现,因为这是唯一的奖励途径。 最好集中在积极方面。 …

对我来说,谈话的重点是指标是有用的,但仅作为信息来源。 切勿将指标用作目标,否则您的团队会使用它,而您将成为最大的输家。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

为什么我们不学习! 通过Russ Miles (Why Don't We Learn!? by Russ Miles)

Craig Nicol blogged:

Craig Nicol发表了:

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

功能网 (Functional Web)

Clojure和Web ,作者Glenn Vanderburg (Clojure and the Web by Glenn Vanderburg)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Gregory Collins 在Haskell中的高性能Web应用程序 (High-Performance Web Applications In Haskell by Gregory Collins)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

drunkcod: "You need to understand the execution model of Haskell to write performant Haskell" - Gregory Collins #QConLondon #TrueForAllLanguages
drunkcod :“您需要了解Haskell的执行模型才能编写高性能的Haskell” -Gregory Collins #QConLondon #TrueForAllLanguages

Node.js:异步I / O,带来乐趣和收益 ,作者Stefan Tilkov (Node.js: Asynchronous I/O for Fun and Profit by Stefan Tilkov)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Webmachine:一种实用的Http可执行可执行模型Justin Sheehy (Webmachine: A Practical Executable Model Of Http by Justin Sheehy)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Java的未来 (Future of Java)

无渣GC暂停:跟上摩尔定律,并生活在一个虚拟的世界吉尔·拉登 (Java without GC Pauses: Keeping Up with Moore's Law and Living in a Virtualized World by Gil Tene)

David Arno attended this session:

David Arno参加了本次会议:

I expected to doze through a dull JVM talk. I was pleasantly surprised to find it was nothing of the sort.

Java, and all other managed-code systems such as .Net, ruby, python, flash etc, have a problem. The length of time taken to garbage-collect is directly proportional to the heap size. Once that heap size reaches the 2-4GB stage, garbage collection (GC) can take many seconds, during which the system locks up. Once the heap size increases to 100GB or more, the lock-up lasts for minutes. In situations where timely human interaction with the system is required, such delays are unacceptable. Therefore GC has become a true bottleneck to the growth of managed memory solutions. Unless we are all to abandon it and return to the hideously bad old days of C/ C++ and unmanaged code, a solution is required. …

Gil’s company – Azul Systems – has come up with an ingenuous and “obvious, once explained” solution: use virtualization. By using a virtualizer, their C4 garbage collector can use virtual pointers. This means that memory can be compacted without having to change the pointers within objects. Instead indirection vectors get changed in the middle. These are fast to find and change. This results in the GC need never stop the VM from running.

我希望通过枯燥的JVM讨论打do睡。 我惊喜地发现它不是那种东西。

Java和所有其他托管代码系统(如.Net,ruby,python,flash等)都存在问题。 进行垃圾收集的时间长度与堆大小成正比。 一旦该堆大小达到2-4GB的阶段,垃圾收集(GC)可能会花费很多秒,在此期间系统将被锁定。 一旦堆大小增加到100GB或更多,锁定将持续数分钟。 在需要人与系统进行及时交互的情况下,这种延迟是不可接受的。 因此,GC已成为托管内存解决方案增长的真正瓶颈。 除非我们所有人都放弃它,然后回到C / C ++和非托管代码的可怕糟糕年代,否则就需要一个解决方案。 …

吉尔(Gil)的公司– Azul Systems –提出了一个独创的,“显而易见的,曾经被解释过的”解决方案:使用虚拟化。 通过使用虚拟器,他们的C4垃圾收集器可以使用虚拟指针。 这意味着可以压缩内存,而不必更改对象内的指针。 取而代之的是,间接向量在中间被更改。 这些都是快速找到和更改的。 这导致GC无需停止VM的运行。

Java EE的未来,作者Jerome Dochez (The Future of Java EE by Jerome Dochez)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

HTML5,平台 (HTML5, the Platform)

HTML5 @ Facebook ,作者: David Recordon (HTML5 @ Facebook by David Recordon)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Facebook do a lot of work in HTML5; for some older browsers, certain features (like Chat) are not available. They have a Using HTML5 today post which explains where it is currently being used.

Some problems exist – like the lack of a video codec standard – but libraries such as VideoJS allow fallback to Flash if standard video support is not available.

For implementing games, you typically need to be able to display 5 sprites at 30fps for a board game, 25 sprites for classic arcade games, 50 for shoot-em-ups and 100 for higher performance 2d/2.5d games. … WebGL, if supported, provides an order-of-magnitude difference for game performance. Some cross-platform APIs – like PhoneGap are available, but there's a list of devices and what they support as well listed via Wurfl and other data.

Facebook用HTML5做了大量工作; 对于某些较旧的浏览器,某些功能(如“聊天”)不可用。 他们有一本“ 今天使用HTML5”帖子,其中解释了当前在何处使用它。

存在一些问题,例如缺少视频编解码器标准,但如果没有标准视频支持,则诸如VideoJS之类的允许回退到 Flash。

对于实施游戏,您通常需要能够以棋盘游戏30fps的速度显示5个精灵,用于经典街机游戏的25个精灵,用于射击游戏的50个精灵,以及性能更高的2d / 2.5d游戏的100个精灵。 …WebGL(如果支持)为游戏性能提供了数量级差异。 一些跨平台的API(例如PhoneGap)可用,但是有设备列表以及它们支持的功能,并通过Wurfl其他数据列出。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

HTML5和丰富的移动Web应用程序的黎明 James Pearce (HTML5 And The Dawn Of Rich Mobile Web Applications by James Pearce)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

James Pearce gave an excellent overview of the state of HTML5, reinforcing a lot of the earlier content. Although the iPhone kickstarted a new generation in 2007, other devices are now in play with an estimated 35% iPhone, 35% Android and 35% RIM in the United States (with Nokia having a greater showing in the UK). Although the initial strategy of building per-device specific applications seemed good at first, the reality is that building a new app for each new type of device is a difficult process….

Frameworks take the pain out of mobile devices, such as SproutCore and SproutCore Touch, Sencha and tools like PhoneGap can help make cross-platform mobile devices. Knowledge bases such as http://caniuse.com, http://modernizer.com and http://deviceatlas.com can give information about what a device's HTML implementation supports.

詹姆斯·皮尔斯James Pearce )对HTML5的状态进行了出色的概述,增强了许多早期内容。 尽管iPhone于2007年启动了新一代产品,但在美国,其他设备目前仍在使用35%的iPhone,35%的Android和35%的RIM(诺基亚在英国的表现更为强劲)。 尽管最初构建针对每个设备的特定应用程序的初始策略看起来不错,但现实情况是,为每种新型设备构建一个新应用程序是一个困难的过程……。

框架减轻了SproutCoreSproutCore Touch等移动设备的痛苦, SenchaPhoneGap等工具可以帮助制造跨平台的移动设备。 诸如http://caniuse.com,http : //modernizer.comhttp://deviceatlas.com之类的知识库可以提供有关设备HTML实施支持的信息。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Mark S. Miller 在EcmaScript 5 + HTML5平台上进行安全的分布式编程 (Secure Distributed Programming on EcmaScript 5 + HTML5 platforms by Mark S. Miller)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Michael Mahemoff attended this session:

Michael Mahemoff参加了本次会议:

There are a ton of attack vectors for browsers, as shown on the Caja wiki. There are spec vulnerabilities, implementation vulnerabilities, and an ongoing arms race emerges. Mark shows a table of numerous variables for each browser, where the variation is not just wild but more or less random. The attacker only need to find one vulnerability here.

Perhaps the ongoing cat-and-mouse game means there's something wrong with the whole identity-centric paradigm. Instead, maybe we can look at access control - don't worry about who's sending the request, worry about if the request has the correct level of access. …

How do you mix coded from multiple untrusted sources into the same frame?

To solve this problem, we bring other security models to the world of JavaScript. With EcmaScript 3, Caja had to perform complex, server-side, translation with a runtime overhead.

The lessons of this effort were taken to the Ecmascript committee, and accordingly, EcmaScript 5 is one of the easiest OO languages to secure, instead of one of the hardest, as was the case previously.

如Caja Wiki所示,浏览器有大量的攻击媒介。 存在规范漏洞,实现漏洞,并且正在进行军备竞赛。 马克为每个浏览器显示了一个包含大量变量的表,其中的变化不仅是疯狂的,而且还是随机的。 攻击者只需在这里找到一个漏洞。

也许正在进行的猫捉老鼠游戏意味着整个以身份为中心的范例存在问题。 相反,也许我们可以看一下访问控制-不用担心谁发送请求,不用担心请求是否具有正确的访问级别。 …

您如何将来自多个不受信任来源的编码混合到同一帧中?

为了解决这个问题,我们将其他安全模型引入了JavaScript。 使用EcmaScript 3,Caja必须执行复杂的服务器端转换,而运行时的开销却很大。

这项工作的经验教训被带到了Ecmascript委员会,因此,EcmaScript 5是最容易保护的OO语言之一,而不是以前那样最难的一种。

单页应用程序和历史的未来,作者: Michael Mahemoff (Single Page Apps and the Future of History by Michael Mahemoff)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

iOS4和Android (iOS4 and Android)

Graham Lee noted about this track:

Graham Lee指出了这首曲目:

做的和不要的在Android拉尔斯·克里斯滕森黑塞尔 (Do's and Dont's on Android by Lars Hesel Christensen)

Craig Nicol blogged:

Craig Nicol发表了:

There were a few nice general points in this talk, but at its heart was a fascinating discussion of how to improve performance and respond to customers and their devices. …

There were a few tricks, mainly from Google’s Android Dev site, that allowed them to improve animation speed for the main interface components from around 12 FPS to around 47 FPS (which was inline with the iPhone performance), partly by simplifying the graphical structure, but also working around limits in the Dalvik JIT compiler, in particular in regard to a slow dynamic lookup for polymorphic method execution.

On the customer side, there were a few tips on how to augment your apps to make crash reports available via the Android Market more useful, and a list of problems with cameras that led to custom patching for some devices and disabling of cameras on other devices, all managed through an extensible framework that was partly controlled by the server so that preferred resolutions could be tested and sent by the server without requiring a client software update just to support a new device.

这次演讲有一些不错的一般要点,但其核心是关于如何提高性能并响应客户及其设备的有趣讨论。 …

有一些技巧,主要来自Google的Android Dev网站,使他们可以将主要界面组件的动画速度从大约12 FPS提高到大约47 FPS(这与iPhone的性能一致),部分是通过简化图形结构,而且还可以解决Dalvik JIT编译器中的限制,特别是对于多态方法执行的慢动态查找。

在客户方面,有一些技巧说明如何扩充您的应用程序以使通过Android Market提供的崩溃报告更有用,并且列出了导致某些设备自定义补丁并禁用其他设备上的相机的摄像头问题列表。 ,全部通过可扩​​展的框架进行管理,该框架可部分由服务器控制,以便服务器可以测试和发送首选分辨率,而无需更新客户端软件即可支持新设备。

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Lars Hesel ( @larshesel) talked about experience of developing a mobile phone application for a bank. One problem cited was that although Android is the same across platforms, support for hardware varies across and different devices. In particular, the cameras were singled as having challenges; some devices reported arbitrary resolutions which weren't in fact supported, and other devices had differing Android operation systems installed. This resulted in needing to buy a small number of devices to verify the specific hardware compatibility if a general bug couldn't be found. …

He summarised by saying that iPhone developers have it easy since the variations in hardware is much easier supported than the variety of Android devices, particularly when the Android devices aren't updated as often.

Lars Hesel@larshesel )谈到了为银行开发手机应用程序的经验。 引述的一个问题是,尽管Android在各个平台上都是相同的,但对硬件的支持因设备而异。 特别是,这些相机被认为具有挑战性。 一些设备报告了实际上不支持的任意分辨率,而其他设备安装了不同的Android操作系统。 如果无法找到一般的错误,则需要购买少量设备来验证特定的硬件兼容性。 …

他总结说,iPhone开发人员很容易,因为与各种Android设备相比,支持硬件的变化要容易得多,尤其是在不经常更新Android设备的情况下。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Adrian Kosmaczewski的 iOS软件开发简介 (Introduction to iOS Software Development by Adrian Kosmaczewski)

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

This lecture was about giving a brief insight in what it means to develop for iOS. It meant to cover Objective-C , the framework Cocoa , Tools, Developing for the web or native and lastly app creation in general. …

 

The basic tools for development are Xcode and Interface Builder but it seems that Apple is looking to merge the two into a single program in a near future. …

One interesting tool is Static Analyzer which analyzes objective-c code and points out potential bugs and best practice which resembles the Resharper product for Visual Studio.

本讲座旨在简要介绍iOS开发的意义。 它旨在涵盖Objective-C,框架Cocoa,工具,用于Web的开发或一般而言本机以及最后的应用程序创建。 …

开发的基本工具是Xcode和Interface Builder,但苹果公司似乎希望在不久的将来将两者合并为一个程序。 …

静态分析器是一个有趣的工具,它可以分析Objective-C代码并指出潜在的错误和最佳实践,类似于Visual Studio的Resharper产品。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

制作不会Mike Lee 吸引应用 (Making Apps That Don't Suck by Mike Lee)

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

The lecturer Mike Lee came dressed as a pirate with a “expect the unexpected” premise. He started off showcasing an app for gaming that seemed to firstly consist of an endless number of popup screens that basically did all wrongs possible. The popups did everything from confusing to disappointing to outright annoying the user and the general lesson learnt was that you as a developer will never get a second chance to do a first impression. He also made a point of saying the user deserved nothing but the best so only do what you are good at, if you’re not a graphical artist then hire one or as he said ”design is the cheapest awesome money can buy”. Then came a general advice to app developers to try creating something that lasts rather than trying to make money off of a “crap application”. Next lesson to learn was that communication with a user is important when it comes to feedback and here he said “feedback is a chance to improve yourself not to prove yourself” meaning that developers should treat a bug report from a user as something important and ignore the fact it might be the 1500th time the same bug is reported, in other words be humble.
讲师麦克·李(Mike Lee)穿着海盗装扮成“期待意外”的前提。 他首先展示了一款游戏应用程序,该应用程序最初似乎包含无数弹出屏幕,基本上可以解决所有可能的错误。 弹出窗口做了很多事情,从令人困惑,令人失望到彻底使用户烦恼,总的教训是,作为开发人员,您将再也没有机会获得第一印象。 他还说了一点,就是用户不应该得到最好的东西,而只能做自己擅长的事情,如果您不是图形艺术家,那么就雇用一个人,或者他说“设计是可以买到的最便宜的真棒钱”。 然后,向应用程序开发人员提供了一般性建议,即尝试创建持久的东西,而不是尝试从“废话应用程序”中赚钱。 下一个要学习的教训是,在反馈方面,与用户进行交流非常重要,他在这里说:“反馈是一个改进自己而不证明自己的机会”,这意味着开发人员应将来自用户的错误报告视为重要事项,而忽略事实上,可能是第1500次报告相同的错误,换句话说就是谦虚。

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Craig Nicol blogged:

Craig Nicol发表了:

The most interesting thought of the talk, and the one that went against the “release early, release often” mantra in evidence across the rest of the conference, was the idea of releasing “version 3″ of your product. Version 1 proves the concept, you then get feedback for version 2 to fix all the bugs, you then get feedback for version 3 to make it shine, and seems like magic. This will make a simple, seamless experience that your competitors cannot match.
演讲中最有趣的想法是在整个会议的其余部分中反对“提早发布,经常发布”的口头禅,这是发布产品的“版本3”的想法。 版本1证明了这一概念,然后您获得了版本2的反馈以修复所有错误,然后获得了版本3的反馈以使它发光,这看起来很神奇。 这将提供您的竞争对手无法比拟的简单,无缝的体验。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

移动应用程序隐私:您做错了(我也是)格雷厄姆·李Graham Lee) (Mobile App Privacy: You're Doing It Wrong (And So Am I) by Graham Lee)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Craig Nicol blogged:

Craig Nicol发表了:

Graham Lee gave a very entertaining, if slightly misnamed, talk about good User Experience design, that was mostly about privacy but covered security aspects, comic books, and had some great examples of the good and bad out there.

There was a great explanation of why phishing and spamming work, and how developers and app store curators and designers could do more, mostly with an eye on affordability and design (for which there was another long reading list – I doubt I’ll get all this reading done before QCon London 2012). The biggest takeaway was that if you want your users to make a decision about privacy, you have to get them to do it at the right time with easy to understand language, and allow users to ignore your warnings if they know best.

格雷厄姆·李Graham Lee)讲了一个很好的娱乐性(如果稍稍改名了),谈论了良好的用户体验设计,主要是关于隐私的问题,但涵盖了安全方面,漫画书,并有很好的例子说明了好坏。

关于网络钓鱼和垃圾邮件的工作原理,以及开发人员和应用商店的策展人及设计师如何做更多的事情,有一个很好的解释,主要是着眼于可负担性和设计(为此,还有一长篇阅读清单–我怀疑我会得到全部支持)在2012年伦敦QCon之前完成的阅读)。 最大的收获是,如果您希望用户决定隐私权,则必须让他们在正确的时间使用易于理解的语言来做到这一点,并允许用户在最了解自己的情况下忽略您的警告。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Fraser Speirs 的Invisible Computer Lab (The Invisible Computer Lab by Fraser Speirs)

Tim Anderson also attended this session:

蒂姆·安德森(Tim Anderson)也参加了本届会议:

he made a persuasive case for how the iPad had transformed teaching (not only computing) at the school. According to Spiers, the children write longer essays because they have discovered word processing for the first time; they have new artistic creativity; they use the web far more and the school had to upgrade its internet connectivity; they are escaping from a word-based approach to learning and presenting their work to one which makes use of multiple media types.

He added that some of the expected snags did not materialize. They were concerned about the virtual touch keyboard on the iPad and offered keyboard accessories to everyone; but in practice few wanted it. The kids, he said, now dislike plastic keyboards with their tiresome buttons.

It is not a new model of computing, it is a new model of education. Handwriting may longer be an important skill, said Spiers.

对于iPad如何改变学校的教学方式(不仅是计算方式),他具有说服力。 斯皮尔斯说,孩子们写了更长的文章,因为他们是第一次发现文字处理。 他们具有新的艺术创造力; 他们更多地使用网络,学校不得不升级其互联网连接; 他们正在逃避基于单词的方法来学习并将他们的工作呈现给使用多种媒体类型的方法。

他补充说,某些预期的障碍并未实现。 他们担心iPad上的虚拟触摸键盘,并向所有人提供键盘配件。 但实际上很少有人想要。 他说,孩子们现在不喜欢带有烦人按钮的塑料键盘。

它不是计算的新模型,而是教育的新模型。 斯皮尔斯说,手写可能不再是一项重要技能。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

timanderson: "I think businesses that stick with the PC infrastructure will not be around in 2024" iPad love-in #qconlondon http://bit.ly/hqBStJ
蒂曼德森 :“我认为坚持PC基础设施的企业将在2024年 消失。 ” iPad热爱 #qconlondon http://bit.ly/hqBStJ

精益和看板:通过系统思考学习 (Lean and Kanban: Learning Through Systems Thinking)

看板方法能否避免成为 本杰明·米切尔的 另一种管理风尚 (Can the Kanban Method Avoid Becoming Another Management Fad by Benjamin Mitchell)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

lunivore: "If you bypass stuff, it strengthens it and makes it worse." @benjaminm on Kanban's gentle treatment of politics and resistance. #qconlondon

 

tastapod: @benjaminm: having retrospectives, planning, etc on scheduled cadence is an assumption. What if you were to do them on demand? #qconlondon

tastapod: @benjaminm: if he's a control freak, he'll lie and say he isn't. If he isn't he'll say so. So I can't prove it. But I know! #qconlondon

lunivore: "We think we know, so we start by looking for confirmation, instead of trying to disprove it." @benjaminm on confirmation bias #qconlondon

lunivore: Single-loop learning: actions-> consequence. "Revisit your assumptions. What context are we missing?" @benjaminm on double-loop #qconlondon

drunkcod: Excellent provocative talk by @benjaminm exposing the deficiencies with our internal wiring. And ways to improve. #QConLondon

lunivore :“如果绕过 某些东西,它将增强它并使它变得更糟。” @benjaminm关于看板对政治和抵抗的温和对待。 #qconlondon

tastapod@benjaminm :对计划的节奏进行回顾,计划等是一个假设。 如果您按需执行该怎么办? #qconlondon

tastapod@benjaminm :如果他是个控制狂,他会撒谎并说他不是。 如果不是,他会这么说。 所以我无法证明这一点。 但我知道! #qconlondon

lunivore :“我们认为我们知道,所以我们从寻找确认开始,而不是试图反驳。” @benjaminm确认偏见#qconlondon

lunivore单循环学习:动作->结果。 “重新考虑您的假设。我们缺少什么背景?” @benjaminm在双循环#qconlondon

drunkcod :由优秀挑衅的谈话@benjaminm暴露我们的内部布线的不足。 以及改进的方法。 #QConLondon

复杂性与精益: Jurgen Appelo 的大对决 (Complexity vs. Lean: The Big Showdown by Jurgen Appelo)

David Arno attended this session:

David Arno参加了本次会议:

QCon is a conference structured around topic tracks, and it appears that one of the objectives given to the person charged with setting up a track is to have one session that challenges the ideas of that topic. This talk by Jurgen was one such “Devil’s Advocate” talk that challenged Lean and Kanban. Jurgen did it very well indeed. …

Jurgen examined the principles of Lean and Agile and questioned each in turn. For example, one of the principles of Lean is “Eliminate waste”. Jurgen suggested that this was an over-simplification. If the waste isn’t costing you anything or taking up valuable space, eliminating that waste will actually cost you more than just allowing it to be. To take another example, “Delivery fast” is a principle that fits well with the agile, test-orientated, process. However sometimes, anticipating future needs and spending a small amount of time now to make it easier to incorporate new ideas in the future can save time and money in the future.

QCon是围绕主题轨道而组织的会议,似乎给负责设置轨道的人员的目标之一是举行一场挑战该主题思想的会议。 于尔根(Jurgen)的演讲就是这样一个“恶魔的拥护者”演讲,它对精益和看板提出了挑战。 于尔根确实做得很好。 …

于尔根(Jurgen)研究了精益和敏捷的原理,并依次提出质疑。 例如,精益原则之一就是“消除浪费”。 于尔根(Jurgen)认为这过于简单了。 如果浪费没有使您付出任何代价或占用宝贵的空间,那么消除浪费实际上将使您付出的代价不仅仅是允许的。 再举一个例子,“快速交付”是与敏捷,以测试为导向的过程非常吻合的原则。 但是,有时,预测未来的需求并花少量时间现在可以更轻松地在将来合并新思想可以节省将来的时间和金钱。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

看板系统设计卡尔·苏格兰 (Kanban System Design by Karl Scotland)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

使用设计思维停止构建毫无价值的软件作者: Jeff Patton (Using Design Thinking To Stop Building Worthless Software by Jeff Patton)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

当压力真的到来时: Katherine Kirk 在BBC上Lean和Kanban的“粗略准备”应用 (When The Pressure Is Really On: A “Rough And Ready” Application Of Lean And Kanban At The BBC by Katherine Kirk)

David Arno attended this session:

David Arno参加了本次会议:

Katherine works for a large British business that, like many large businesses, puts bureaucracy before common sense at every level of its business in every way it can. Managing software projects in such an environment can be thankless, soul-destroying task. Katherine’s talk explained how she used the ideas of Lean and Kanban to help her manage those projects.

Whilst Kanban techniques undoubtedly helped the situation, I was left wondering whether they were the true reason why the projects succeeded, or whether it was her management skills that truly saved the day. I suspect it was a combination of the two. Either way, it left me inspired to try out Kanban as a tool to help the company I work for manage those development tasks that are not well-suited to Scrum, our current agile tool of choice.

凯瑟琳(Katherine)为一家大型英国企业工作,该企业与许多大型企业一样,将官僚主义以各种可能的方式置于其业务的各个层面。 在这样的环境中管理软件项目可能是一件令人费解,令人头疼的任务。 凯瑟琳的演讲解释了她如何利用精益和看板的思想来帮助她管理那些项目。

尽管看板技术无疑为情况带来了帮助,但我想知道它们是否是项目成功的真正原因,还是她的管理技能真正挽救了这一天。 我怀疑这是两者的结合。 无论哪种方式,它都使我受到启发,尝试使用看板作为一种工具,以帮助我工作的公司管理那些不适合我们当前选择的敏捷工具Scrum的开发任务。

下一代金融技术 (Next-Generation Financial Technology)

复杂事件处理: Richard Tibbetts的 用于高频交易DSL (Complex Event Processing: DSL for High Frequency Trading by Richard Tibbetts)

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

Financial systems are characterized by ultra low latency and large data volumes which poses significant requirements on any application or system built to handle the data. StreamBase is a company that invented a graphical language, that has the ability to act as a connection point for more than 100+ adapters and also aims to decrease time to market and time to change considerably. As speed is key StreamBase uses Janino compiler to generate java bytecode and issues such as optimizing garbage collection, array definition, etc. are matters that needed addressing when creating the language. It is built using C++ but also Java. Tibbetts went really in detail at this stage but I think it suffices to say that optimization on all aspects of a language was the driving theme to creating the StreamBase language.
金融系统的特点是超低延迟和大数据量,这对构建用于处理数据的任何应用程序或系统都提出了很高的要求。 StreamBase是一家发明图形语言的公司,具有充当超过100个以上适配器的连接点的能力,并且旨在减少上市时间和显着更改的时间。 作为速度的关键,StreamBase使用Janino编译器生成Java字节码,而在创建语言时需要解决诸如优化垃圾收集,数组定义等问题。 它使用C ++以及Java构建。 Tibbetts在此阶段进行了非常详细的介绍,但我认为可以说,对语言的所有方面进行优化是创建StreamBase语言的主题。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

信息时代的金融; 肖恩·帕克Sean Park) 的《新现实新堆栈》 (Finance in the Information Era; A New Stack for a New Reality by Sean Park)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Sean Park gave a highly entertaining account of the development of finance from its inception through to its current day, with some interesting views as to where it will go in the future. ….

The basic gist was that the industrial revolution started with the age of steam (1750), the age of electricity (1830), the age of electronics (1970, with the Intel 4004) and now the age of cloud computing (2006 Amazon Web Services). However, the financial services (and the legislature that supports it) is largely still based in the years before electronics, where paper documentation trails are regular and physical co-location near physical exchanges (Wall St, London Stock Exchange) are still important even with the disappearance of physical stock brokers.

The key problem is reality; partially, the problem of reputation is based on assets in the real world, which can be modeled but may not exist in the electronic world. However, as changes like PayPal and eBay have started to change the way we do business, how long will it be before the standard businesses follow that model as well?

肖恩·帕克(Sean Park)对金融从成立到今天的发展进行了高度有趣的介绍,并对未来的发展趋势提出了一些有趣的看法。 …。

基本要点是,工业革命始于蒸汽时代(1750年),电力时代(1830年),电子产品时代(1970年,使用Intel 4004)以及现在的云计算时代(2006年Amazon Web Services) )。 但是,金融服务(以及支持该服务的立法机关)很大程度上仍建立在电子产品出现之前的几年中,那里的纸质文件记录是常规的,并且即使在有电子交易的情况下,在实体交易所(华尔街,伦敦证券交易所)附近的实体托管也仍然很重要。实物股票经纪人的消失。

关键问题是现实。 在某种程度上,声誉问题是基于现实世界中的资产的,可以建模但在电子世界中可能不存在。 但是,随着PayPal和eBay之类的变化已经开始改变我们开展业务的方式,标准业务也需要多长时间才能采用该模型?

John Davies的 金融服务大规模整合 (Large Scale Integration in Financial Services by John Davies)

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

There seemed to be several protocols involved for sending data at high speed as the lecture revolved around banking systems. For banking system speed is key as well as correctness. Davies narrowed it down to talk about front end and back end protocols and used the FIX protocol as an example for the front end. The important part on the front end is for a handshaking procedure to proceed really fast meaning that all things xml was out of the question and FIX in its very nature is very simple. …

He [John Davies] then continued on to mention SWIFT which are three things; a security network, a standards body and a connectivity provider. Moreover it’s been around for 30 years with an availability of 99.98 % and has “NEVER lost a message”. Sending a SWIFT message is also something you don’t do manually as it has a load of complicated rules that could easily be overlooked and the SWIFT network will fine you heftily if a message is poorly constructed.

随着讲座围绕银行系统的发展,似乎涉及一些协议来高速发送数据。 对于银行系统,速度和正确性是关键。 Davies将范围缩小到谈论前端和后端协议,并以FIX协议为前端的示例。 前端的重要部分是使握手过程真正快速进行,这意味着xml一切都不可能了,而FIX本质上非常简单。 …

然后,他[John Davies]继续提到SWIFT,这是三件事。 安全网络,标准机构和连接提供商。 此外,它已经存在30年了,可用性为99.98%,并且“从未丢失任何消息”。 发送SWIFT消息也是您不手动执行的操作,因为它包含许多复杂的规则,这些规则很容易被忽略,如果消息构造不当,SWIFT网络将为您带来极大的好处。

NoSQL:在哪里和如何 (NoSQL: Where and How)

使用图形数据库为物联网提供动力 Rick BullottaEmil Eifrem (Using a Graph Database to Power the Web Of Things by Rick Bullotta & Emil Eifrem)

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

为什么我选择 Matthew Wall 为Guardian.co.uk选择MongoDB (Why I Chose MongoDB for guardian.co.uk by Matthew Wall)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Tim Anderson also attended this session:

蒂姆·安德森(Tim Anderson)也参加了本届会议:

The Guardian’s Mat Wall has spoken here at Qcon London about why it is migrating its web site away from Oracle and towards MongoDB….

So what’s wrong with Oracle? The problem is the tight relationship between updates to the code that runs the site, and the Oracle database schema. Significant code updates tend to require schema updates too, which means pausing content updates while this takes place. Journalists on a major news site hate these pauses.

MongoDB by contrast is not a relational database. Rather, it stores documents in JSON (JavaScript Object Notation) format. This means that documents with new attributes can be added to the database at runtime.

《卫报》的Mat Wall在 伦敦Qcon上发表了讲话, 谈到了为何将其网站从Oracle迁移到 MongoDB ……。

那么Oracle有什么问题呢? 问题在于运行站点的代码更新与Oracle数据库架构之间的紧密关系。 重要的代码更新也往往也需要架构更新,这意味着在此期间暂停内容更新。 大型新闻网站上的记者讨厌这些停顿。

相比之下,MongoDB不是关系数据库。 相反,它以JSON(JavaScript对象表示法)格式存储文档。 这意味着可以在运行时将具有新属性的文档添加到数据库中。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

软件架构改进 (Software Architecture Improvements)

从几个月到几分钟- 丹·诺斯Dan North) 的赌注 (From Months To Minutes - Upping The Stakes by Dan North)

David Arno attended this session:

David Arno参加了本次会议:

He [Dan North] used a mind-map to trace his experiences over the last year of going from being an agile coach to a proper code-writing developer once more. What he learned was the classic theory versus practice lessons. Many of agile software practice’s ideas are great in theory, but one must often be pragmatic and adapt them to work in reality. A case in point was his company’s approach to a prioritised backlog. Agile says you must have a prioritised backlog. The company he now worked for used a white board. Ideas are added, they are marked with a dot if they are being worked on, and they are removed if no one starts work on them after a couple of days. The whole board is wiped clean each week. And that’s it. They are a small team of six developers, working on short incremental changes, so this works for them.

Something that struck me as odd from what he presented was the use of the term “release”. Basically if you have an automated continuous integration and release process, then every commit is a release. So one can be truly agile and release many times a day. The downside of this approach of course is that you either you thoroughly test each commit or you risk releasing rubbish at times. I’m still unsure whether this is just me “getting” agile, or whether it’s an odd definition of release.

他(Dan North)使用思维导图来追溯他过去从敏捷教练转变为合适的代码编写开发人员的经历。 他所学的是经典理论与实践课程。 敏捷软件实践的许多想法在理论上都是很棒的,但必须经常务实并使它们适应现实。 一个典型的例子是他的公司处理优先待办事项的方法。 敏捷说您必须优先处理积压的工作。 他现在工作的公司使用白板。 将添加想法,如果正在处理这些想法,则将其标记为点,如果在几天后没有人开始对其进行处理,则将其删除。 每周将整块板擦干净。 就是这样。 他们是一个由六个开发人员组成的小型团队,致力于短期的增量更改,因此这对他们有效。

我对他的介绍感到惊讶的是使用“释放”一词。 基本上,如果您具有自动化的连续集成和发布过程,则每个提交都是一个发布。 因此,一个人可以真正敏捷并每天释放许多次。 这种方法的缺点是,您要么彻底测试每个提交,要么冒着释放垃圾的风险。 我仍然不确定这仅仅是我“敏捷”敏捷,还是发布的奇怪定义。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

将“重新”放入建筑中作者:Kevlin Henney (Putting the "re" into Architecture by Kevlin Henney)

David Rogers noted:

大卫·罗杰斯David Rogers)指出:

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

He started off with a really striking quote ”Estimates are like fiction you are writing – it’s made up”. With that said it is sometimes really difficult to foresee all the factors and pitfalls when implementing software and estimates are really hard to make. …

He also made a point that not just the architects’ acts as architects for example managers’ act as architects when they make decisions that makes impact on the system. Software construction was also compared to that of a living garden rather than a house. Also there were talks on stability in a system and the impact of a planned change and the methods to analyze it. Employing a dot technique to point out the location of the bugs would give you an estimate of which modules were affected and to what degree but it would not give you an answer. More bugs in one module and less in another could indicate bad code but also that the module with the lesser amount of bugs consisted of codes not being used or that other metrics such as the number of lines of code should be taken into account as the most affected module could be a really large module. The main point to all of this was to learn to ask better questions rather than finding the answer.

他的开场白非常引人注目:“估算就像是您所写的小说-它是虚构的”。 话虽如此,有时在实现软件时很难预见所有因素和陷阱,而且很难进行估算。 …

他还指出,不仅仅是建筑师扮演建筑师,例如经理在做出对系统有影响的决策时扮演建筑师的角色。 还将软件结构与居住花园而非房屋进行了比较。 此外,还讨论了系统的稳定性,计划中的变更的影响以及分析方法。 使用点技术指出错误的位置将使您可以估计受影响的模块以及受影响的程度,但是无法给出答案。 一个模块中的错误较多,而另一个模块中的错误较少,则可能表明错误代码,但也意味着错误数量较少的模块由未使用的代码组成,或者应尽可能多地考虑其他指标(例如代码行数)受影响的模块可能是一个非常大的模块。 所有这些的主要目的是学会提出更好的问题,而不是找到答案。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

软件质量–当您看到它时便知道它,作者ErikDörnenburg (Software Quality – You Know It When You See It by Erik Dörnenburg)

David Arno attended this session:

David Arno参加了本次会议:

Eric’s talk was related to software metrics and the use of data visualisation to present those metrics in ways which people can easily understand. Most people find it hard, if not impossible, to look at rows of numbers and make sense of them. We are however very good at spotting patterns and oddities in those numbers if they are presented in graph form. He showed some great cityscape-like 3D tree maps that could show for example classes in packages, size of the classes, their cyclomatic complexity and number of methods per class all in one 3D map.

Eric made the good point that the use of such visualisations tended to provide a quick reliable way of sifting good code from bad. There is a strong correlation between bad code and ugly disordered visualisations as well as good code and ordered visualisations that are pleasing to the eye. I don’t know for sure whether such an assertion is true, but it sounds believable.

埃里克(Eric)的演讲与软件指标以及数据可视化的使用有关,人们可以轻松地理解这些指标。 大多数人发现,即使不是不可能,也很难看清数字行并理解它们。 但是,如果以图形形式显示这些数字中的模式和奇数,我们会非常擅长。 他展示了一些很棒的类似于城市景观的3D树图,例如可以在一个3D地图中显示包装中的类,类的大小,其圈复杂度以及每个类的方法数量。

埃里克(Eric)提出了一个很好的观点,即这种可视化的使用倾向于提供一种快速可靠的方法来从坏处筛选出良好的代码。 不好的代码和丑陋的视觉效果以及令人愉悦的良好代码和有序视觉效果之间有着很强的相关性。 我不确定这样的断言是否正确,但这听起来很可信。

我的建筑去了哪里? Eoin Woods的 实现中保留软件体系结构 (Where Did My Architecture Go? Preserving Software Architecture in its Implementation by Eoin Woods)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

One-way package dependencies can be enforced with Maven and SonarJ. Enforcing dependency rules on a Java project such as ‘package A’ can access ‘package B’ but not vice versa is possible with a number of tools such as JDepend, Macker and SonarJ. SonarJ allows integration with Maven to enforce rules and indicate allowed exceptions to rules.
可以使用Maven和SonarJ强制执行单向程序包依赖关系。 使用许多工具(例如JDepend,Macker和SonarJ)在Java项目(例如 “程序包A”)上执行依赖关系规则 可以访问“程序包B”,反之亦然 。 SonarJ允许与Maven集成以执行规则并指示规则的允许例外。

软件Craft.io (Software Craftsmanship)

史蒂夫·弗里曼的《 更好就是更好》 (Better is Better by Steve Freeman)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

alblue: "Build and deploy to production should be a lunchtime event, not a weekend event" - Steve Freeman #qcon #qconlondon

alblue: "One person was obsessive with naming; he wasn't popular, but he was right" - Steve Freeman #qcon #qconlondon

alblue: "When stuff just works - not enough devs have worked in a good dev environment" - Steve Freeman #qcon #qconlondon

alblue: "Your best admin staff are probably cheaper than your average engineer - so offload admin tasks" - Steve Freeman #qcon #qconlondon

alblue :“构建和部署到生产中应该是午餐时间,而不是周末事件” -Steve Freeman #qcon #qconlondon

alblue :“一个人沉迷于命名;他并不受欢迎,但他是对的” -Steve Freeman #qcon #qconlondon

alblue :“当一切正常时-没有足够的开发人员在良好的开发环境中工作” -Steve Freeman #qcon #qconlondon

alblue :“您最好的管理员人员可能比普通工程师便宜-因此,请分担管理员任务” -Steve Freeman #qcon #qconlondon

格伦·范德堡Glenn Vanderburg)的 手Craft.io和软件工程 (Craft and Software Engineering by Glenn Vanderburg)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Simon Brown noted on this session:

西蒙·布朗在本届会议上指出:

The first session, entitled Craft and Software Engineering by Glenn Vanderburg, explored the relationship and conflict between the craft and engineering of physical construction and software development. Really interesting session and I recommend downloading the slides or watching it if you get the opportunity. For me, one of the eureka moments was when he presented this picture from his Extreme Programming Annealed essay. Basically, it shows the scale at which the XP practices work. …

My big problem with the whole self-organising team idea is that I rarely see it in practice. This could be a side-effect of working in a consulting environment in that my team always changes from project to project and I don't tend to spend more than a few months with any particular customer team. Or, I suspect that true self-organising teams are very few and far between. Striving to be self-organising is admirable, but most teams have bigger problems and the sort of scenario played out in my recent Software Project SOS session is indicative of the problems that I see.

格伦·范德堡(Glenn Vanderburg)题为“ Craft.io与软件工程 ”的第一届会议探讨了物理构造与软件开发的Craft.io与工程之间的关系和冲突。 会议非常有趣,如果有机会,我建议 下载幻灯片或观看 幻灯片 。 对我来说,尤里卡的时刻之一就是他从《 极限编程退火》论文中展示了这张照片。 基本上,它显示了XP实践的规模。 …

我对整个自组织团队的想法的最大问题是,我很少在实践中看到它。 这可能是在咨询环境中工作的副作用,因为我的团队总是在项目之间变化,而我在任何特定的客户团队上花费的时间都不会超过几个月。 或者,我怀疑真正的自组织团队很少而且相去甚远。 努力做到自我组织是令人钦佩的,但是大多数团队都有更大的问题,在我最近的Software Project SOS会话中提出的那种情况表明了我所看到的问题。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

乔恩·贾格尔Jon Jagger)的 故意实践 (Deliberate Practice by Jon Jagger)

Christoffer Noring attended this session:

Christoffer Noring参加了本次会议:

He started off by talking about being adaptable and that there was a contradiction between being adapted and being adaptable, i.e too specialized means to rigid and unable to cope to change, like a frog. The total absence of meaningful practice keeps teams from becoming effective learning units he said. Talking about software removing bad practices can actually be compared to training a dog in the sense that inefficient behavior is removed by adding more effective behavior. Research has showed that there exist no effective way to enhance forgetting and suppressing memory directly hence the need to basically overwrite it with learning a good behavior. Focus on what you do good and ignore the bad.

Jagger then told of the importance of keeping your brain constantly challenged, for example try using your off hand and learn to write with it a par level with your main hand , doing what you are not good at isn’t necessarily fun. Also challenge yourself with a task that is just beyond your current ability. The essence of practice is constantly trying to do things one cannot do comfortably. Work hard but work smart. Act your way into a new way of thinking , Boyd’s law. The meaning here is you cant change how you think but you can act the part. …

At this point he was making several quick points, among them: ”You do deliberate practice to improve your ability to perform a specific task, not to complete it”. ”The speed of an iteration trumps the quality of and iteration”. ”Practicing without feedback is like bowling against a curtain”. Talking about feedback he said ”Just calling it feedback doesn’t mean it has actually fed back”.

他从谈论适应性开始说起,适应性和适应性之间存在矛盾,即过于僵化而无法适应变化的专业手段,就像青蛙一样。 他说,完全缺乏有意义的实践,使团队无法成为有效的学习单位。 实际上,谈论消除不良行为的软件可以与训练狗相提并论,即可以通过添加更有效的行为来消除无效行为。 研究表明,没有直接增强忘记和抑制记忆的有效方法,因此需要通过学习良好的行为来基本覆盖它。 专注于自己擅长的事而忽略坏事。

然后,贾格尔(Jagger)谈到了不断挑战大脑的重要性,例如,尝试用副手学习并用与主手同等的水准写字,做自己不擅长的事情不一定很有趣。 同时挑战一项超越您当前能力的任务。 实践的本质是不断地尝试做一个人们无法舒适完成的事情。 努力工作,但要聪明。 将自己的方式付诸实践,成为博伊德定律的一种新思维方式。 这里的意思是您不能改变想法,但可以发挥作用。 …

在这一点上,他提出了几点要点,其中包括:“您要进行有意识的练习,以提高执行特定任务而不是完成任务的能力”。 “迭代的速度胜过迭代的质量”。 “没有反馈的练习就像在窗帘上打保龄球一样。” 在谈到反馈时,他说:“仅仅称其为反馈并不意味着它实际上已经反馈了”。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Roy Osherove ,敏捷时代的团队领导力 (Team Leadership in the Age of Agile by Roy Osherove)

Simon Brown noted on this session:

西蒙·布朗在本届会议上指出:

The session was about what you need to do in order to lead a software team, highlighting the fact that not all teams are equal. Roy categorises teams using a simple maturity model, which you can see described in more detail at The 3 maturity stages of a software team and how scrum fails to identify them. The three stages are: chaotic, learning/maturing and self-organising/matured. In essence, each maturity level requires a different approach to leadership.

As I said above, a team where everybody was an experienced software developer/architect would be amazing but this isn't something I've seen happen. Most projects don't have *anybody* on the team with experience of this "big picture" stuff and this is evidenced by codebases that don't make sense (big balls of mud), designs that are unclear, systems that are slow and so on. This type of situation is the one I see the most and, from a technical perspective, I recommend that *one* person on the team takes responsibility for the software architecture role. Roy also suggests that most teams are in the chaotic stage and, similarly, need more of direct leadership approach early on.

Whether you're talking about team leadership or technical leadership, the principle is the same. The chaotic team is like damming a fast flowing river with a bunch of twigs. It'll slow the water down for a very short amount of time but it soon becomes ineffective and you'll struggle just to keep stationary. A more direct leadership approach in these early stages will show you what you can't see and allow for some solid advice on which holes should be filled immediately. …

Agile software projects still need architecture because all those tricky concerns around complex non-functionals and constraints don't go away. It's just the execution of the architecture role that differs. …

One software architect or many? Single point of responsibility or shared amongst the team? Agile or not, the software architecture role exists. Only the context will tell you the right answer.

这次会议是关于领导软件团队需要做的事情,强调了并非所有团队都是平等的事实。 罗伊(Roy)使用简单的成熟度模型对团队进行分类,您可以在软件团队的三个成熟度阶段以及scrum如何无法识别它们的过程中看到更详细的描述。 这三个阶段是:混乱,学习/成熟和自组织/成熟。 本质上,每个成熟度级别都需要采用不同的领导方法。

就像我在上面说的那样,一个每个人都是经验丰富的软件开发人员/架构师的团队都是很棒的,但这并不是我所看到的。 大多数项目的团队中没有*任何人*,并且没有“大图”方面的经验,这可以通过没有意义的代码库(泥泞不堪),不清楚的设计,缓慢的系统以及以此类推。 我最常看到这种情况,从技术角度来看,我建议团队中的一个人负责软件体系结构角色。 罗伊(Roy)还建议,大多数团队都处于混乱状态,类似地,早期需要更多直接领导方法。

无论您是在谈论团队领导还是技术领导,原理都是相同的。 混乱的团队就像用一堆树枝围住了一条快速流动的河。 它会在很短的时间内使水慢下来,但很快就会失效,您将很难保持静止。 在这些早期阶段,更直接的领导方法将向您显示您看不到的内容,并就应该立即填补哪些漏洞提供一些可靠的建议。 …

敏捷软件项目仍然需要架构,因为围绕复杂的非功能性和约束的所有棘手问题都不会消失。 只是架构角色的执行有所不同。 …

一个或多个软件架构师? 是单一责任点还是团队之间的共同点? 敏捷与否,存在软件架构角色。 只有上下文可以告诉您正确的答案。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Patrick Kua 的初学者思维 (The Beginner's Mind by Patrick Kua)

David Arno attended this session:

David Arno参加了本次会议:

The last talk of the day was a well-structured and presented examination of the “expert trap” that we we all have either fallen into in the past or will do so in the future. As we get more knowledgeable on a topic, we all tend to get less open-minded about it. We know the answers after all, so how can we be wrong, or so the thought goes. As Patrick superbly put it: “In the beginner’s mind, there are many possibilities; in the expert’s mind, there are few.”

Software development though is a fast-changing business. If one rests on ones laurels, one quickly becomes out of date. Similarly, if one closes one’s mind to new ideas and to the possibility that yesterday’s good truisms may not hold today, one risks becoming more asinine than expert. Patrick’s advice on avoiding this trap was all good common sense stuff: remain curious, always question your assumptions and embrace other people’s opinions.

当天的最后一场演讲是对“专家陷阱”的精心组织和呈现的考察,我们大家要么陷入过去,要么将来会陷入困境。 随着我们对某个话题的了解越来越多,我们对这个话题的想法也越来越少。 我们毕竟知道答案,所以我们怎么可能错了,或者想法就这样了。 正如帕特里克(Patrick)出色地指出的那样:“在初学者看来,有很多可能性; 在专家看来,很少。”

尽管软件开发是一项日新月异的业务。 如果一个人坐拥桂冠,一个人很快就会过时。 同样,如果一个人对新观念不屑一顾,并且对今天的好消息不予理hold,那么冒着变得比专家更愚蠢的风险。 帕特里克(Patrick)关于避免这种陷阱的建议都是很好的常识性内容:保持好奇心,总是质疑您的假设并接受他人的意见。

当事情破裂 (When Things Break)

让它崩溃...除非你不应该 读史蒂夫·维诺斯基 (Let It Crash ... Except When You Shouldn't by Steve Vinoski)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

测试 Ulf Wiger 的意外 情况 (Testing for the Unexpected by Ulf Wiger)

Craig Nicol blogged:

Craig Nicol发表了:

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

解决方案跟踪 (Solutions Track)

精益程序员无政府状态弗雷德·乔治Fred George) (Lean Programmer Anarchy by Fred George)

Craig Nicol blogged:

Craig Nicol发表了:

Probably the talk that generated the most discussion. If Agile is about throwing away the layers that separate developers from clients, Anarchy is about throwing away the hierarchy and process to so that development teams become self-organizing around targets and around projects. It’s a fascinating idea, and involves a high level of trust and self-determination amongst the development teams. For the projects I’m used to, there’s a lot of frameworks in place to protect financial and legal considerations, which seem to be incompatible with the basic premise of Anarchy, but it’s a proven model within the FOSS world, where developers choose where they want to spend their time, which targets are important, and where developers tend to self-organize.

There’s a few themes in this talk that I saw repeated in other discussions, the develop-ship-monitor loop rather than the develop-commit-test-ship loop. This works for his teams because the code is small and short-lived so can be thrown away easily, and the code tends to be for internal teams, rather than external clients. However, the basic idea of constantly monitoring live sites to show that they keep working rather than just demonstrating it before deployment is something that seems to be a trend across many of the speakers.

可能引起最多讨论的话题。 如果说敏捷是要抛弃将开发人员与客户区分开的层,那么无政府状态就是要抛弃层次结构和流程,以便开发团队围绕目标和项目进行自组织。 这是一个引人入胜的想法,并且在开发团队中涉及高度的信任和自决。 对于我惯用的项目,有很多框架可以保护财务和法律方面的考虑,这似乎与无政府状态的基本前提不符,但是在FOSS世界中,这是一种行之有效的模型,开发人员可以在其中选择想花时间,哪些目标很重要,以及开发人员倾向于自我组织。

在本次演讲中,我在其他讨论中重复看到了几个主题,即develop-ship-monitor循环而不是develop-commit-test-ship循环。 这对于他的团队来说是有效的,因为代码很小且寿命短,因此很容易被丢弃,并且代码倾向于内部团队使用,而不是外部客户使用。 但是,不断监视实时站点以表明其在正常工作而不是在部署之前进行演示的基本思想似乎已成为许多演讲者的趋势。

Twitter feedback on this session included:

Twitter在本次会议上的反馈包括:

Java应用程序性能调优作者: George Barnett (Performance Tuning for Java Applications by George Barnett)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

詹姆斯·斯特拉坎James Strachan) 骑骆驼 (Take a Ride on Camel by James Strachan)

David Rogers attended this session:

大卫·罗杰斯(David Rogers)参加了本次会议:

I was particularly impressed with the Scala DSL, where, for example, to read messages from a queue, and post them to three load-balanced RESTful services:
Scala DSL给我留下了特别深刻的印象,例如,从队列中读取消息并将其发布到三个负载均衡的RESTful服务中:
"apachemq:events" ==> {
    loadbalance roundrobin {
        to ("http://eventHandlerA")
        to ("http://eventHandlerB")
        to ("http://eventHandlerC")
    }
}

Jason Hunter通过通用索引统一搜索引擎和NoSQL DBMS (Unifying the Search Engine and NoSQL DBMS with a Universal Index by Jason Hunter)

Alex Blewitt attended this session:

Alex Blewitt出席了本次会议:

Jason Hunter, of Servlet API fame, talked about the MarkLogic Server, which runs the MarkMail search tool (amongst other things). The database is part content repository system (it stores the full content, rather than an index-only approach) and can be used to perform arbitrary queries on the data contained therein.

Most of the solutions appeared to be based on term lists (“the answer is always termlists”) which permits documents to be indexed and have a set of documents returned upon any query. For documents-that-contain, only a single term is needed for the termlist; but for most other operations, term-pairs are sufficient. When constructing a search for a full phrase (“the quick brown fox” was used a few times as an example) it gets deconstructed as word pairs e.g. {the, quick}, {quick brown}, {brown fox} and searches on multiple termlists find the intersection. For some kinds of terms, this answer won't be unique – but brute-force searching could be used to determine of the subset of documents returned which ones matched.

Servlet API著名的Jason Hunter谈到了MarkLogic Server,它运行MarkMail搜索工具(还有其他功能)。 该数据库是部分内容存储库系统(它存储全部内容,而不是仅索引的方法),可用于对其中包含的数据执行任意查询。

大多数解决方案似乎都是基于术语列表(“答案始终是术语列表”),该术语列表允许对文档建立索引并在任何查询后返回一组文档。 对于包含的文档,术语表只需要一个术语; 但对于大多数其他操作,术语对就足够了。 在构建完整短语的搜索时(几次使用“ the quick brown fox”作为例子),它会被分解为单词对,例如{the,quick},{quick brown},{brown fox}并搜索多个术语表找到交集。 对于某些类型的术语,答案不是唯一的-但是可以使用蛮力搜索来确定返回的文档子集与之匹配。

QCon用户组事件 (QCon User Group Events)

伦敦iPhone开发人员小组 (London iPhone Developer Group)

Graham Lee noted on this event:

Graham Lee在此事件中指出:

Alex Blewitt attended this event:

Alex Blewitt参加了此活动:

The London iOS Developer Group was well attended and had some good thoughts about how to pretotype an iPad app for photoshop editing. Some mention was given to the $5 developer tools charge, which some saw as a pithy price to pay for an excellent IDE whilst others were concerned about the general lack of an openly available compiler toolchain regardless of IDE.
伦敦iOS开发人员小组出席了很多会议,并对如何为iPad应用程序进行预模板化以进行photoshop编辑具有很好的想法。 有人提到$ 5的开发人员工具费,有人认为这是购买出色的IDE的不菲价格,而另一些人则担心,无论IDE如何,普遍缺乏公开可用的编译器工具链。

露天啤酒 (OpenSpaceBeers)

Craig Nicol remarked on this event:

克雷格·尼科尔Craig Nicol )在这次活动中表示:

A great session from the local .Net group where two on-the-spot discussions were voted on. One was about AppHarbour (Heroku for .Net) that allows you to easily test and deploy your code to a cloud hosting solution, as well as a hush-hush competitor that’s coming soon with VPN support so you can host the database in your own data center (handy for certain organizations that have a stricter limit on data via the Data Protection Act).

The second talk was basically an extension of the REST track, where Glenn Block did more to convince everyone that Hypermedia is the future and everyone should use REST (which is fantastic to hear from inside Microsoft, and Glenn did thank Scott Guthrie for helping to foster Microsoft’s new partnership with the development community).

The session worked well, and if we could guarantee enough people, definitely something I’d like to try in Scotland.

本地.Net小组的精彩会议,对两个现场讨论进行了投票。 其中之一是关于AppHarbour(适用于.Net的Heroku),它使您可以轻松地将代码测试并部署到云托管解决方案中,以及即将推出的具有VPN支持功能的安静竞争对手,因此您可以将数据库托管在自己的数据中中心(对于某些通过《数据保护法》对数据进行更严格限制的组织非常方便)。

第二个演讲基本上是REST领域的延伸,Glenn Block做出了更多努力,以说服所有人相信Hypermedia是未来,并且每个人都应该使用REST(听到微软内部的声音真是太好了,Glenn确实感谢Scott Guthrie帮助培养了Microsoft与开发社区的新伙伴关系)。

这次会议进展顺利,如果我们能保证有足够的人参加,那绝对是我想在苏格兰尝试的事情。

社会事件 (Social Events)

Twitter feedback on QCon London social events included:

Twitter对伦敦QCon社交活动的反馈包括:

Autowired: Just two days in and I'm already overloaded with all the interesting conversations I've had #qconlondon

debasishg: Great geeky dinner organized by @timperrett .. Thanks a lot .. #qconlondon

jteigen: Absolutely awesome dinner yesterday with @timperrett @debasishg @dustinwhitney @jstrachan @olecr #qconlondon

marcjohnson: Really good night at #OpenSpaceBeers with @Ben_Hall and @serialseb followed by good conversation with some of the #qconlondon speakers

peter_pilgrim: Great conversation on Sci-Fi/Tech at speaker's dinner Glenn Vanderberg, @KevlinHenney & Mark Powell. Last day of #qconlondon 2011 ;-)

glen_ford: Brain melt after first day at #Qcon as always break chats just as informative as any talk and good to see old friends

Autowired :仅两天时间,我已经被 #qconlondon的所有有趣的对话所 淹没

debasishg@timperrett组织的很棒的怪异晚餐..非常感谢.. #qconlondon

jteigen :昨天和@timperrett @debasishg @dustinwhitney @jstrachan @olecr #qconlondon的晚餐绝对很棒

marcjohnson :与#Ben_Hall@serialseb#OpenSpaceBeers度过了一个愉快的夜晚,随后与一些#qconlondon演讲者进行了很好的交谈

peter_pilgrim :在演讲嘉宾Glenn Vanderberg @KevlinHenney和Mark Powell上就科幻/科技进行了精彩的交谈#qconlondon 2011的最后一天;-)

glen_ford :在#Qcon参加第一天的大脑融化,总是中断聊天,就像任何谈话一样有益,很高兴见到老朋友

关于QCon的观点 (Opinions about QCon)

Andrew Hepburn wrote after attending QCon London 2011:

安德鲁·赫本Andrew Hepburn )在参加QCon London 2011后写道:

When I first heard about QCon, a few years ago, I thought it would be just another dull tech conference in an anonymous hotel or conference center, but I’m very pleased to say I was completely wrong! QCon was held in the Queen Elizabeth II conference center right in the heart of London, opposite Westminster Abbey, and provided a range of tracks on subjects as varied as large scale architecture, iOS and Android development, lean and Kanban, HTML5, NoSQL and state of the art .NET.

In addition, there were daily keynotes on subjects such as entrepreneurialism, innovation and scaling agile processes.

Together, these talks provided an opportunity not just to freshen up my .NET development skills, but to find out about technologies and ideas I’d never considered before and, perhaps more importantly, to think about non-technology issues too – innovation, how to learn, continuous improvement.

几年前,当我第一次听说QCon时,我以为这将是在匿名酒店或会议中心举行的又一次沉闷的技术会议,但是我很高兴地说我完全错了! QCon在伦敦市中心的威斯敏斯特大教堂对面的伊丽莎白女王二世会议中心举行,并提供了一系列主题,涉及大型架构,iOS和Android开发,精益和看板,HTML5,NoSQL和国家.NET。

此外,每天都有主题演讲,如企业家精神,创新和扩展敏捷过程。

在一起,这些演讲不仅提供了提高我的.NET开发技能的机会,而且还提供了我以前从未考虑过的技术和想法的机会,而且也许更重要的是,也可以考虑非技术问题-创新,如何学习,持续改进。

David Arno attended QCon London 2011:

David Arno参加了QCon London 2011:

Alex Blewitt said after attending QCon London:

Alex Blewitt参加伦敦QCon会议后说:

QCon is always a blast. As with any conference, it's not just the content of the presentations (which is great) but also the people that you meet, and the technologies that you're exposed to. The only problem is you feel you don't get to clone yourself three or four times to go and see everything; but even if you didn't manage to see everything you want, a fair number of the presentations are recorded and are released over the year at www.infoq.com for subsequent viewing.
QCon始终是爆炸。 与任何会议一样,这不仅是演示文稿的内容(很棒),而且还包括您遇到的人以及所使用的技术。 唯一的问题是,您觉得自己无法克隆自己三到四次去看一切。 但是,即使您没有看到想要的一切,也记录了相当数量的演示文稿,并在一年中在www.infoq.com上发布以供以后查看。

Neil Logan expressed his opinion abut QCon:

Neil Logan在QCon旁边表达了他的观点:

I was fortunate enough to attend QCon London last week. Despite being billed as a “Software Development Conference” it goes way beyond the normal technical “deep-dives” typically associated with such conferences to cover topics such as group learning, human psychology, critical thinking and even programmer anarchy!

This year the quality of speakers attending was truly exceptional with my particular highlights being the keynotes given by Rod Johnson (creator of Spring), Patrick Copeland (Google) and Craig Larman.

我很幸运上周参加了QCon London。 尽管被称为“软件开发会议”,但它远远超出了通常与此类会议相关的常规技术“深度学习”的范围,涵盖了诸如小组学习,人类心理,批判性思维甚至程序员无政府状态等主题!

今年,演讲者的出席质量确实异常出色,我特别强调的是Rod Johnson(Spring的创建者),Patrick Copeland(Google)和Craig Larman的主题演讲。

Twitter feedback on QCon London included:

Twitter对伦敦QCon的反馈包括:

外卖 (Takeaways)

Craig Nicol concluded after day one:

在第一天之后, 克雷格·尼科尔得出结论:

A wide range of talks, including a couple that I don’t think I would have seen otherwise. A few themes that I saw today were to get repeated elsewhere, in particular the reduced emphasis on testing and requirements as speakers are looking to move beyond Agile, but it’s not clear how much is ideological, how much is misunderstanding and how much is just lazy. A few speakers moved onto new ways to implement the Agile manifesto that allowed them to throw out the current best practice with something that provides a better fit for their needs, but I worry that people will start taking the messages and throwing away the tools of Agile without understanding why those tools are there, which would be a retrograde step.
广泛的对话,包括我认为不会看到的一对夫妇。 我今天看到的一些主题会在其他地方重复出现,尤其是随着演讲者希望超越敏捷而减少了对测试和要求的重视,但是尚不清楚意识形态有多少,误解有多少,懒惰有多少。 一些发言者介绍了实施敏捷宣言的新方法,这些方法使他们能够以一种更好地满足其需求的方式抛弃当前的最佳实践,但我担心人们会开始接受这些信息并抛弃敏捷的工具。不了解为什么会有这些工具,那将是一个倒退的步骤。

David Arno concluded when the conference was over:

会议结束时, David Arno得出结论:

And so QCon London 2011 drew to a close for me. The last day had proved disappointing, but the first two days were brilliant and more than made up for that disappointment. All in all, this was a great conference: I’d learned a lot of new things, had finally got the point of software craftsmanship and had gained a list of new blogs to follow from some of the more inspirational speakers. So thank you to the organisers and hopefully I’ll be back next year.
因此,QCon London 2011对我来说已经结束了。 最后一天令人失望,但前两天非常出色,足以弥补这一失望。 总而言之,这是一次很棒的会议:我学到了很多新东西,终于了解了软件的制作技巧,并从一些鼓舞人心的演讲者那里获得了一系列新博客的关注。 因此,感谢组织者,希望我明年能回来。

Peter Pilgrim outlined his favorite sessions:

彼得·皮格里姆(Peter Pilgrim)概述了他最喜欢的课程:

Other important events for Peter Pilgrim included:

彼得·皮尔格里姆Peter Pilgrim)的其他重要事件包括:

Alex Blewitt’s takeaways were:

亚历克斯·布莱维特的主要收获是:

Twitter feedback on QCon London included:

Twitter对伦敦QCon的反馈包括:

结论 (Conclusion)

QCon London was a great success and we are very proud to have been able to offer such a conference. We hope to see you next year! To get announcements for the next QCon London, feel free to sign up for updates on the QCon London homepage. Videos from QCon London will be posted throughout the year for free here on InfoQ.com.

伦敦QCon取得了巨大的成功,我们为能够举办这样的会议感到非常自豪。 希望明年见! 要获取下一届QCon London的公告,请随时在QCon London主页上注册更新。 来自QCon London的视频将全年在此免费发布在InfoQ.com上。

翻译自: https://www.infoq.com/articles/QCon-London-2011/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

qcon

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值