You are currently browsing the必威体育下载克里斯蒂安·海尔曼blog 必威体育简介archives for December,2011。


[Open tabs] things of note I read and saw lately



我认为当我发现它们堆积成一个阅读列表时,发布它们可能是一个很酷的想法。你同意吗?好,这里,this was open:

  • It is silly but theTea Rexmakes me want to drink more tea.I am also a big fan of the茶子.
  • Jeffrey way has a genius command to为当前目录启动服务器终端上有一行代码。
  • 斯凯普希克有一篇由丽贝卡·沃森写的非常烦人的文章atheists on reddit being nothing but misogynist ass-hats.严肃地说,banter is all fine and good,但是开玩笑绑架和强奸一个15岁的女孩并不是开放论坛应该容忍的行为。Or,如果我们不关心这一点,我们不应该感到惊讶,如果那些想要审查互联网的权力机构能够做到这一点。
  • 尿嘧啶尿路感染JS是用于处理URL的脚本。它提供了“jquery样式”美国石油学会to read and write all regular components and a number of convenience methods like .directory() and .authority().我们在粉碎会议上讨论betway体育官方网过这个问题,and now it is out.
  • Everything for free,总是:Facebook广告如何向我们展示互联网的悲惨状态is a stark reminder that the "we want everything for free" attitude towards the internet as a media is not helpful in the long run.每年支付2美元!!)可以确保Facebook不会把你作为产品卖给广告商。还有一个Pinboard博客上关于这个主题的好文章“不要成为自由用户”.My favourite quote was this:
    Most people aren't willing to pay for services or content on the Internet.There is an expectation that everything should be free,and that at the same time,公司应尊重我们的隐私,并使Brands™远离我们的个人信息。It's not a realistic expectation – something's gotta give if no one is willing to pay for anything.But most people don't think about it long enough to realize that.
  • 塞德里克·杜加斯发表了一篇关于占用闪存站点(I can't call it a movement) inIt's never been about the open web.塞德里克有一些很好的观点,especially the washing out of the termHTML5as anything that was added to the web stack for the last two years.他称赞Adobe比W3Cand that Flash's APIs are much richer.Cedric has some good points but it is a rant.争论是非常片面的,当提到开放网络时根本没有提到Mozilla只是草率的。本质上,咆哮与本地应用程序开发人员在谈论Web应用程序时提出的论点是相同的。Things can coexist and – as Cedric rightfully says – using the right technology for the job is part of our task as developers.他没有提到的主要事情是开放式网络技术是我们改变和参与的。如果它不能像应该的那样快速移动,那么这类的咆哮和fanboisim-like-occupy flash就是罪魁祸首。
  • 我不写“javascript”已经有点老了。这是一个关于Twitter开发者在引导程序.在本文中,我们了解必威体育下载到,当涉及到语法时,javascript是可以原谅的,并且可以像JS解析器为我们做的那样省略大括号和分号。And if you don't agree then you are probably one of those guys who love Crockford and are too strict to be taken serious as web developers anyway.是否符合对税务敏感的要求。YoUcANProbaBLYreadTHIS.如果有问题,请询问。Personally,依赖于代码中的分号插入是懒惰的,和我们在中对表布局的傲慢一样。HTML- hey they worked,why bother doing things in a more maintainable way?
  • Which brings me to a great post that repeats things I have said for quite a while and lived by throughout my career: "我的职业建议:裁员“。The idea of being the one person who knows something as a means to stay in charge and in a job is outdated and – if you think about it – in a market where the average retention rate of talent is three years borderline ludicrous
  • In "Let's start recognising the hidden gems within our community“我的同事Robin Hawkes思考着奖励网站和网络开发活动的变化,他们应该关注新的,不认识的人,而不是年复一年地与同一个人进行人气竞赛。一些好主意,but I for one would be happy not to have any awards at all.We are not Hollywood and we don't need Oscars.Our work should talk for us and not a fake celebrity cult.I remember in the beginning we had "cool internet sightings" web sites and "site of the day" as the topic of #html onIrCNET.More of those accompanied by a making of would be interesting.不知名的人可以通过采取不同的方法来展示他们是如何取得成功的。
  • In "建设性反馈,not destruction and damnation" my good friend and even better egg Chris Mills talks about the hoo-hah of the "bad speakers list" on Twitter a few weeks ago.他解释了为什么需要新的演讲者,why bad presentations happen and how it is our job to encourage and nurture rather than damn new talent who takes the plunge to go on stage and talk about what they did.

What I did in 2011 – talk archive with slides,录音和录像

Thursday,December 29th,二千零一十一

The year is over (well,几乎)而且我认为列出我参加过和参加过的会议是很有趣的。You can see the2011 archive hereor below:

总而言之:29次会谈,15 videos,23个录音,37次会议
Date 会议 位置 书名 幻灯片 音频 视频
01/28 心与鞋底 Portsmouth,英格兰 是时候建立一个更好的网络了 幻灯片 Vid.ly
02/04 FOSSDEM 布鲁塞尔Belgium 移动到客户机-HTML5is here 幻灯片 MP3 奥格
02/08 伦敦Ajax聚会 伦敦,英格兰 UsingHTML5sensibly and multimedia on the web 幻灯片 MP3 奥格 技能问题
02/10 MFBoat event 伦敦,英格兰
02/17 London Web 伦敦,英格兰 Finding harmony in web development 幻灯片 MP3 奥格 维米欧
03/09 ConFoo 蒙特利尔,加拿大 从黑客转向解决方案 幻灯片 MP3 奥格 YouTubeYouTube第2
03/18 登录 维尔纽斯Lithuania Building a better web with open,新技术 幻灯片 YouTube
04/14 funkas tillg_nglighetsdagar 斯德哥尔摩瑞典 可访问性和网络创新(幻灯片,audio and notes) 幻灯片 MP3 奥格
04/16 W3café accessibilité 巴黎法国
04/20 JAX Mainz,Germany HTML5Das Web und der Browser als Platform 幻灯片 MP3 奥格 维米欧
04/20 JAX Mainz,Germany wie javascript die welt eroberte 幻灯片 MP3 奥格
05/10 谷歌开发者大会 San Francisco,CAUSA
05/30 韦宾莱 柏林Germany HTML5,css3和javascript fuer alle 幻灯片 MP3 奥格 YouTube
06/07 激励会议 伦敦,英格兰 Mentoring
06/17 Web2Day Nantes,法国 HTML5and the web of tomorrow 幻灯片 视频interview
06/25 收敛SE 哥伦比亚市SC,USA With the power ofHTML5 幻灯片 MP3 奥格
07/08 高地飞奔 Edinburgh,苏格兰 Moderator
07/16 Open Web Camp Palo Alto,CAUSA HTML5battles still to be won (slides,音频) 幻灯片 MP3 奥格
08/19 代码之王 阿姆斯特丹。Netherlands HTML5- time for some slicker apps 幻灯片 MP3 奥格
08/20 营地 伦敦,英格兰
09/30 Evento Linux Lisbon,Portugal HTML5开放的新挑战 幻灯片 MP3 奥格
10/01 JSCONFEU 柏林Germany Community JS reloaded – how to rock as a movement 幻灯片 MP3 奥格
10/03 网络应用的未来 伦敦,英格兰 兴奋起来,构建东西和浏览器面板 幻灯片 MP3 奥格
10/05 Fronteers Amsterdam,荷兰 The prestige of being a web developer 幻灯片 MP3 奥格 维米欧
10/12 PayPal X创新 San Francisco,CAUSA The web and browsers as the platform – exciting opportunities in new web technology 幻灯片 MP3 奥格 YouTube
10/19 HTML5live 伦敦,英格兰 摇晃着船,引起了涟漪 幻灯片 MP3 奥格
10/20 Frontrow 克拉科夫波兰 失败,是赢还是赢?How do you want the web to be? 幻灯片
10/25 Company brownbag at Sabre 克拉科夫波兰 HTML5 101是什么,它不是什么,可能去哪里 幻灯片 MP3 奥格
10/25 Company brownbag at活力 Munich,Germany (skype) HTML5 101是什么,它不是什么,可能去哪里 幻灯片 MP3 奥格
10/27 Velocity Europe 柏林Germany 加速整体网络体验 幻灯片 MP3 奥格
11/01 HTML5live纽约市 纽约,NYUSA 重复 幻灯片
11/03 Mozilla Ignite 在线 为人们提供的快速网络 幻灯片
11/04 Mozilla节 伦敦,英格兰 BrowserID mentoring
11/11 全锋 Brighton,英格兰 我的笔记
11/12 MozCamp Europe 柏林Germany How to be a kick-ass speaker 幻灯片 MP3 奥格
11/20 在电视之外 Cologne,Germany 将浏览器和Web向前移动 幻灯片 MP3 奥格 维米欧
12/12 伦敦阿贾克斯 伦敦,英格兰 Rethinking user registration with BrowserID 幻灯片 MP3 奥格 技能问题
12/21 粉碎杂志会议3 斯图加特Germany 风格和距离——作为一个社区在网络开发方面取得进展 幻灯片 MP3 奥格 维米欧
12/21 粉碎杂志会议3 斯图加特Germany 工作草案修订53:在粉碎杂志会议! YouTube

这是一个有趣的一年,and I hope you can use some of the information here to get inspired to go out and bring good messages to people out there.

On single page apps



At the Smashing Mag meetup in Stuttgart Paul Irish got a question about single page apps and what he thinks of systems like背骨以及客户端模板。He quoted somebody of Sencha who famously said that if he sees a web site with an empty body tag he is very happy (citation needed,帮帮我。保罗解释说,他对这件事的第一反应是不相信,但后来他开始更多地思考这件事。He then proceeded to show theGoogle mail blog这是一个单页应用程序,没有真正的HTMLsource but instead is a smallJSONobject with client-side rendering toHTML使用javascript。

All of this made me go "why" and "meh" mostly,但又一次,I am old,很多事情都失败了,为了合理地使用Ajax,我不得不在不违反约定的情况下(不给它起类似hijinks之类的名字),从一个可以在多个窗口和选项卡中打开的Web视图源和链接中了解到关于Web的所有信息。必威体育下载




  • The first load sends you the shell of the app and it stays in the browser – this means it can be a very quick experience
  • Subsequent data loading can be done by sending very smallJSON包含对流量受限或连接速度较慢(即mobile environments)
  • 在JS中维护所有内容意味着您不需要有多个,项目的专业开发商
  • You replicate best practices of the backend and "higher languages" – especiallyMVC-在客户机上,从而使那些习惯于构建Web应用程序的开发人员更容易
  • 这种体验很有吸引力——你只需停留在一个界面上,然后将内容加载到其中,这就是“真正的”应用程序所做的。

本质上,所有这些都是关于一个快速的界面。You don't send much data,在浏览器中没有重新加载和界面刷新。

It is nothing that new

保罗回忆起Outlook的Web界面,突然告诉他有新的电子邮件需要阅读而不需要重新加载(诞生于XHR这导致了Ajax)。我以前见过这个XHRin forums and boards by having a frameset and an超文本传输协议meta refresh.一般来说,框架做了很多我们渴望的单页应用程序:我们只加载数据块,并保持主界面在屏幕上是静态的。


The drawbacks of single page apps are the same we had every time we intercepted the reload of the page starting with frames,then with Flash and later with Ajax.目前,它们中的大多数都可以通过本地API来完成(历史美国石油学会在这种情况下是一个救生员),但问题是我们正在打破惯例。People in the past have been conditioned to expect things on the web to work in a certain way:

  • 我们需要模拟许多有用的浏览器功能:
    • History navigation
    • Preventing wrong loading by hitting the stop button orESC
    • 装载指示器——是否发生了什么?
    • Bookmarkability
    • Ability to open a link in another tab
    • 状态保持。当我重新加载页面时,我应该回到原来的位置,而不是应用程序的初始状态。
    • 超时检测(浏览器会告诉我时间过长)
    • 页面的可打印性(我刚为我母亲打印了一个维基百科条目)
  • 如果我们不改变URLand keep the state of the page we break the web:
    • Sending a link to a friend should get them where we were (unless it is our data behind a login of course)
    • 搜索引擎蜘蛛应该能够索引内容
    • Conversion tools should be able to get the content and create more accessible versions
    • 缓慢的连接至少可以提供部分体验。当连接不好时(就像我现在这样),我应该能够重新加载,一旦被卡住就可以获得更多的内容。I can use gmail even on the flakiest of connections as I can switch to anHTMLview and hitESC当它卡住时

None of these are insurmountable issues,但很容易忘记它们。这就是为什么我们有无头播放器和重定向脚本的情况下,闪存应用程序。We should be aware of these already solved problems and implement them as a base of our UX considerations.

A shift in the way we use the web

上面的很多交互都是长期在网上工作的人使用的。无休止滚动他们觉得很奇怪,they want to see a scrollbar and know how far the page goes.另一方面,在触摸屏或移动设备上启动网络的人在必须单击按钮或看到分页时会感到困惑。The old folk of the web have an email client,浏览器,maybe a picture viewer and a very sorted download folder.这些新手在Facebook的浏览器中完成了所有这些任务,他们很高兴从未看到页面重新加载或硬盘上有任何内容。


The new problems of single page apps

这并不意味着单页应用程序和没有重新加载的Web没有问题。There are quite a few things we have to consider even if we say we build for the new generation of web users exclusively or within a fixed environment.


第二个问题是,我们现在拥有的网络充满了坏代码。This is especially the case when you rely on third party code without having access to what it does.除非你运行付费应用程序,你将播放广告。这就是我们的工作方式破碎的,过时模式.广告统计页面浏览量和点击量,因此您需要找到一个可以自动刷新IFRAMEor something similar.But I deviate from the main point: if the ad code throws an error your whole app could die with it.

它甚至不必是第三方代码。I can see sloppy code without error detection and fallback being advertised as "teething pains" these days.这不是真的。We went through the process on non-reloading interfaces a few times already.A lot of omission of simple condition checking and error messaging is either arrogance or inexperience.As扎克·莱瑟曼昨天说的“我所有的javascript代码和第三方代码都不会有错误,所以我可以忽略渐进式增强“会困扰你,正如Klout的截图所示:

Klout showing an empty page as there was a reference error in a JavaScript file

Gawker also had that issueand Mike Davies has quite some information as towhy relying on JS for your links is an architectural nightmare.


Case in point is the blog mentioned by Paul.I am sure it was used as a testing platform for the single app container of Google.Personally I think there is nothing dynamic in a blog that would really warrant it being an app.不是所有的网络都需要一个新的Facebook,谷歌阅读器或谷歌邮件。



星期二,December 27th,二千零一十一

今日粉碎杂志 released an article我昨天在同一本杂志上写了一篇“初学者教程”,向开发者展示了如何在打开服务器的同时构建一个圣诞愿望列表,以应对许多攻击。

It annoyed me that these things still happen,这就是为什么我和维塔利谈过这个问题(我是SM专家顾问小组的成员),他让我写一篇文章来讨论这个教程。


总的来说,我的观点是,我们的网站上充斥着很多初学者的教程,and a lot of them are nothing of the kind.Instead,他们的目标是让初学者对某个主题感觉良好,但却不能提供知识。Instead,they oversimplify and try to pad with a lot of content in one tutorial.The reactions to these kind of articles are predictable:

  • 经验丰富的开发人员会发现代码存在问题,并声称不应该这样做。
  • Other people will disagree and tell the old men to stop telling young kids to get off their lawn
  • 真正的初学者会插话说,他们对这篇文章很满意,并且感觉事情并不像看上去那么复杂。
  • 很多粉丝会提到技术XYZthat makes this much easier
  • The author will add more disclaimers about the nature of the code of the article in some edits and add warning messages about its viability in the wild – saying that this is just demo code

In short – a lot of back and forth and in the end the author will comply that the tutorial might be misleading and own up that the code should not be used in a live environment and explain.That doesn't mean though that people will not do so,which is why I consider it very dangerous to cut corners when
writing beginner tutorials.

A call for real beginner tutorials

In the article I added a call for real beginner tutorials,就像现在一样,我们也陷入了同样的陷阱:

  • We assume that only quick successes will make people want to 必威体育下载learn things
  • That's why instead of explaining one thing we build a full solution with a beautiful interface,管理界面和后端系统——由于我们不想让人超负荷工作,因此忽略了其中的重要功能和警告。
  • We release code that is not safe for release or real production quality – as it is easier to explain – and warn people not to use it in the real world – assuming that people do read and follow these warnings


jQuery is not that easy to repeat





我们不应该教那些为了快速取胜而难以取消学习的坏习惯。必威体育下载The web is already full of great resources we can keep up-to-date (yes,这个Mozilla Developer Network是最大的),并链接到,而不是重复相同的错误,从头开始,一次又一次。

Faking a mesh ball with lots of rotated colourfull circles


祝大家节日快乐,I just used the 3D tester and played around a bit as I was inspired by a christmas tree ornament:

The effect needs Firefox Aurora or Webkit as it usesCSSAnimation and 3D transformation.