必威体育下载基督教Heilmann

您当前正在浏览的是必威体育下载基督教Heilmann二月的博客必威体育简介档案,2015.

2月存档,二千零一十五

简单的事情:将布尔值列表存储为单个数字

周三,2月25日,二千零一十五

这个博客是从我遇到的问题的简单解决方案开始的。那么,为什么不回归基本呢?

昨天有人问我是否有可能将复选框集合的状态存储在一个值中。我能想到的最简单的方法是使用二进制转换。

特隆二进制

你可以看到我的方法的结果在这个JSBin:

将布尔值列表存储为单个数字

这是怎么回事?复选框的状态是布尔值,意味着它被选中或未选中。这可能是对的,也可能是错的,或者,JavaScript是一种宽松的语言,1或0。这就是为什么我们可以循环遍历所有的复选框,并将它们的状态组合成一个由0和1组成的字符串:

var输入=文件。querySelectorAll“输入”);
var所有=输入。长度;
 var= 0;<所有;++){状态+ =输入(]选中的 吗? ' 1 ' : ' 0 ';
}

这将产生一个类似1001010101的字符串。这可能是我们的价值所在,但是看起来很傻,如果有50个或更多的复选框就会变得很长,例如,作为一个URL参数的字符串。

这就是为什么我们可以使用parseInt()将这个二进制数转换为十进制数。这就是parseInt()中的第二个参数的作用——不仅是为了取悦Douglas Crockford和JSLint(因为它被预先设置为decimal - 10,所以人们总是忽略它)。在本例中,与parseInt()对应的是toString(),它还接受一个可选参数,即您所转换的数字系统的基数。这样你可以来回转换这个状态:

x=方法用于“1001010101”,2);
/x->579x。toString2);
/ /“1001010101”

一旦转换,您可以将其转换回字符串并循环值,以相应地设置复选框的选中状态。

小麻烦:前导零不起作用

这里有一个小问题,如果状态导致一个带前导零的字符串,您会得到一个错误的结果,因为toString()不会创建它们(不知道字符串需要多长,它所做的只是转换数字)。

x=方法用于“00001010101”,2);x。toString2);
“1010101”

可以通过两种方式避免这种情况:一种是始终以1开始填充字符串,另一种是反转字符串并反向遍历复选框。在前面的例子中,我做了填充部分,在这个JSBin可以看到反转技巧:

将布尔值列表存储为单个数字(反向)r

就我个人而言,我更喜欢反转法,只是感觉更干净。虽然结果数组的大小不同,但是它在很大程度上依赖于falsy/truthy。

限制

在任何情况下,只有当复选框的数量在存储和重新存储之间没有变化时,这才有效。但这是另一个问题。

正如Matthias Reuter在Twitter上写道这也仅限于52个复选框,如果你需要更多,这不是解决办法。

使分布式团队会议有效

周二,2月24日,二千零一十五

加入一个分散的团队可能很困难。下面是我多年来学到的一些技巧,可以让分布式会议变必威体育下载得更容易。
这是在媒体上交叉发布的,你可以在这里评论

一个男人在打电话,身后的白板上写着“闭嘴”图片来源:蒂姆凯恩

对于许多公司来说,作为分布式团队工作是一个危险的信号。找一份能让你远程工作的工作正成为一个难得的机会。作为一个过去几年在远程办公的人,我可以说这是一种更好的工作方式。它的结果是更有效,最重要的是,更快乐,团队。

它所需要的是所有相关人员的努力,以取得成功,而往往几个简单的错误就能使这列快乐的列车脱轨。

大问题,当然,是时差。这也是一个巨大的机会。一个组织良好的团队可以在一半的时间内覆盖一个产品。为达到这一目的,你需要良好的组织和诚实的沟通。任何不能兑现的承诺都意味着你失去了一整天的时间,而不是能够更快地兑现承诺。

这有很多部分,但是今天,我想谈谈与分布式团队的会议。在最坏的情况下,这些是电话会议。在最好的情况下,你有一个很好的视频会议系统,团队中的所有人都可以使用。

快速旁白:许多人将利用这个机会告诉我他们对于这个问题的惊人的软件解决方案。我相信您能告诉我很多关于您的多媒体通信系统与增压服务器和负担得起的价格。请,不。我不买这些东西,我也看到了太多的失败。连通性和旅行不能很好地结合在一起。晶莹剔透,不间断,我们在广告中看到的无干扰会议是虚构的产物。你也可以加入独角兽,至少这能让他们看起来很棒。我见过太多不好的关系和糟糕的环境。他们教我的是,计划失败胜过任何你能买到的产品。因此这里有一些建议。

同步异步性?


世界网络信息
会议是同步的——你希望所有人在同一时间都在一个地方。分布式团队异步工作。一边做功,其他人要么在睡觉,要么在社交,直到该换工作的时候。
因此,如果你在加州时间早上10点有一个会议,你和欧洲的人交谈,你有两种人在虚拟的房间里:

  • 那些已经工作了一整天,带着一整天的快乐和烦恼的人
  • 那些刚刚起床的人,对他们自己来说太早了,在运输途中卡住了。或者在拥挤的高速公路上,或者在拥挤的火车上,不由自主地偎依在陌生人的腋下

在任何情况下,他们都有点疲倦和烦恼。没有适当的计划,这不是一个分享知识的机会。这是一个灾难的药方,因为两个团体对这次会议的议程都有很大的分歧。betway体育官方网

  • 一个小组想对他们今天所做的进行更新,把它交出来,过一天再说
  • 另一组人想知道今天什么是重要的,并着手解决通勤问题

作为一个远程办公的专家,你开始通过改变你的日常日程来分散这个问题。允许有几个小时的重叠,要么延长工作时间,在下午早些时候开始工作。或者更早起床,在去办公室之前和家里的同事交流。只要你没有一个正常工作时间的伴侣,或者你生活在一个商店提前关门的国家,这种方法就很有效。

在任何情况下,你需要找到一种方法让这两个小组在会议中更有效率,这是第一个技巧:

将会议分为远程更新和社交互动


三明治 图片由罗恩Dolette

这听起来很奇怪,但你不能两者兼得。在办公室的一个房间里开会对当地人来说很好:

  • 你可以在每个人都会说话的动画讨论中集思广益。
  • 你可以报道当地发生的事情(“你昨晚看到比赛了吗?”多么可笑的表演啊!
  • 你可以聊一聊困扰你的事情(“该死,今天办公室很冷
  • 谈论特定地点的问题并进行社交。

当讨论的主题是最新的,并且是关于您所在的位置时,这不起作用。提前8个小时、远离你的人说,你会在活动结束后马上享用公司提供的食物,这无助于他们的士气——相反。它使群体外的人更加疏远,甚至超过了他们已经感觉到的。不过这对房间里的团队来说是件好事。不要让自己的团队精神成为别人嫉妒的理由。

通过将会议分成四个部分,你可以更好地专注于给正确的人他们来的目的和得到他们的更新。做一个会议三明治:

  • 在房间里见面,有一个快速的社交聊天,
  • 拨入远程参与者,问他们关于一个快速的社会更新,
  • 有一个集中的信息会话与两组,
  • 让远程人员断开连接,与另一个本地人取消会议,社会更新。

这样每个人都能有效地利用时间,感觉被倾听,不被不适用于他们的更新或好处所困扰。我过去看到过这种方法很有效。这也导致了更短的会议,我们都喜欢这些。

有一个清晰的议程,并把它变成会议纪要


一个明确的计划,我们在哪里,将会发生什么
在会议前提出议程可以让事情变得非常清楚。人们知道是否值得加入,可以选择不加入。确保你在会议中涉及的所有资源都与议程相关。确保这些资源对会议中的所有人都是公开可用的,而不是在某人的内部IP或文件共享上,只有少数人可以访问这些资源。不得不问"玛格丽特在说什么,我在哪里可以找到这个?”是令人分心和沮丧的。

在会议期间,你可以在议程项目中添加注释和调查结果。这有很多好处:

  • 不能参加会议或中途不能下车的人可以查一下后来发生了什么。
  • 您有一个会议的存档,而无需发布额外的会议记录。
  • 错过会议的人可以扫描会议结果。这比听一个小时的录音或看一段人们在房间里对着麦克风讲话的视频要容易得多。当你们都在现场时,就像视频通话一样有益,当它是一个记录时,导航到您所关心的项会变得单调和困难。

注意声音干扰


现在是锤击的时候
从本质上说,您在这里处理的是多对一的对话。如果你有几个人在和你说话,你可以看到他们,这不是问题。如果你看不见它们甚至没有空间识别声音的来源,一切都在一起模糊。这就是为什么重要的是让一个人在任何时候说话,其他人要意识到他们制造的任何噪音都是分散注意力的。这意味着:

  • 作为一个远程的,你的麦克风保持沉默。没有什么比上面麦克风放大的键盘声更恼人的了
  • 作为一个和其他人在一起的人,离开麦克风。别咳嗽,不要把桌子上的东西挪来挪去麦克风就在上面。咖啡杯,勺子和笔在上面的声音非常大。
  • 作为演讲者,把手伸进麦克风,清晰地说话——总是假设有静电和声音损失。房间后面的一句含糊不清的话,后面跟着众人的笑声,可能会让远方的听众觉得这是一个内部笑话,甚至是一种侮辱。没有必要冒这种误解的危险。
  • 如果你换一下扬声器,告诉他们自我介绍。这在房间里可能会觉得很傻,但另一方面,它有助于避免混淆。

使用聊天系统作为会议的生命线


Skype质量差
视频和音频聊天总是以某种方式出错。问题是,当您呈现系统时,系统不会告诉您这一点。你不知道完美声音的清晰形象是一个机器人声音的像素化混乱,让愚蠢的朋克嫉妒另一端。

同时运行聊天包括以下几个场景:

  • 人们可以告诉你他们什么时候出了问题,或者你什么时候不再让人理解
  • 人们可以评论而不打断你的音频流。许多系统会在有人发言时立即切换演示者,这在本例中是不必要的。
  • 人们可以在不打扰你的情况下发布资源。“万一你错过了,杰西卡说的是http://frolickinghedgehogs.com"

为每个实时更新提供可使用的备份


上传和下载 图片由
约翰•特

如果你在会议上发言,发送你事先展示的视频或幻灯片。很多时候,当有人共享他们的屏幕时,您无法将其视为远程参与者。从一个演示者切换到另一个演示者总是会浪费大量时间,等待计算机完成我们想要它做的事情。

对于演讲者来说,这样可以更好地解释正在发生的事情。当你演示时按下按钮却什么都没发生,这会让人分心。远程参与者可能也会有一些延迟,并得到延迟的显示。这意味着你谈论的东西不同于他们目前在屏幕上看到的东西。

计划整个团队的旅行和会议


集团的拥抱 图片由尤里斯Louwes

最后,但并非最不重要的是,计划在你们整个团队见面的地方进行访问。一起做社交活动,给人们一个互相了解的机会。一旦你把真人和公寓联系起来,屏幕上模糊的脸,事情变得容易多了。建立一个节奏。每季度或每年两次会面。乍一看可能很贵,但却能提高团队效率。我的美国同事有一个“哈”时刻,他们在深夜坐在笔记本电脑上,等待其他人停止谈论他们不关心的当地事情。当我不得不早起的时候,我对我的同事们有了更多的同情心,而不是我想及时到办公室去见我的欧洲同事。让团队换位思考一段时间,未来的会议就会顺利得多。

渐进式增强与JavaScript可用性无关。

周三,2月18日,二千零一十五

多年来,我一直在告诉人们,为了创建出色的web体验并保持开发人员的头脑清醒,您应该采用渐进式增强。

自动扶梯是伟大的。当出现问题时,它们变成了楼梯,但仍在工作

很多人都这么做,另一些人则质疑这一原则,主张优雅的降级,而另一些人则不希望与没有最新浏览器的人打交道,快速连接和运行它们的强大硬件。

人们一直在质疑渐进式提升的价值。这很好。最近有一些很好的关于这个的想法,例如Doug Avery的渐进增强效益”。

对于渐进式增强的提议,有一件事一直出现在膝跳反应中,那就是将它归结为是否有可用的javascript。这不是渐进式的增强。它是其中的一部分,但它忘记了最基本的东西。

渐进增强是关于构建健壮的产品和对可用性的偏执。它是关于问“如果”很多。这甚至在你考虑你的界面之前就开始了。

将您的数据以一种非常可移植的格式保存API检索它的一部分而不是整个集合是一个好主意。这允许您为不同的用例和表单因素构建不同的接口。它还允许您提供这个API给其他人,这样他们就能想出你从未想到过的解决方案和想法。或者你可能不会,提供一个API意味着很多工作,你可能会让人们失望迈克尔·马赫莫夫(Michael Mahemoff)前几天进行了雄辩的辩论

在任何情况下,这是渐进增强的一个级别。数据就在那里,而且是在逻辑结构中。这是一个给定的,这工作。现在你可以去增强体验并在上面建立一些东西。

这是一个很好的例子:你可能读过我的这篇文章HTML,CSS和JavaScript接口。或者你可以在RSS读者。或者作为某个内容聚合器中的缓存版本。好吧-不客气。我不会假设你最喜欢的阅读方式是什么。随着我在提要中发布完整的文章,我的功能得到了逐步增强。我只能发布一个预告片,让你去我的博客看看我的广告。我选择让你变得容易我想让你读一下

渐进增强在其基本形式中意味着不做假设,而是从最基本的东西开始,检查每一步,如果我们仍然可以继续。这意味着你不会留下任何损坏的东西。路上的每一步都会产生一些有用的东西——不一定是令人愉快的,或者遵循当前的“必须有”格式,但可用。它是先检查湖面的深度,然后再跳入水中。

标记渐进增强

Web技术和标准的核心就是这个概念。以中的img元素为例HTML:


              
              src=
              “threelayers.png” 
             
     alt=三层分离
HTML(结构),
CSS ()
和JavaScript(行为)”>

通过添加带有合理描述的alt属性,您现在就知道这幅图像应该告诉您什么了。如果可以加载和显示,然后你会有一个美好的经历。如果不是,浏览器显示此文本。那些根本看不见图片的人也会得到这个文本解释。搜索引擎有索引。人人都赢。


             
              >
             我在夏令营的经历>

我在夏令营的经历

这是一个标题。它被解读为辅助技术,例如,屏幕阅读器允许用户从一个标题跳到另一个标题,而不必听中间的文本。通过应用CSS,我们可以把它变成一个图像,我们可以旋转它,我们可以给它上色。如果CSS无法加载,我们仍然会得到一个标题,浏览器会将文本显示得更大、更粗体,因为它有一个与之关联的默认样式表。

视觉渐进增强

CSS有相同的模型。如果CSS解析器遇到它不理解的东西,它跳到下一条指令。它不会卡住,它只是继续前进。这样逐步增强CSS它本身已经存在很长时间了,:

.fancybutton {
  颜色: # fff;
  背景: # 333;
  背景:线性渐变, # ccc 0%,# 333 47%,
    # 000 100%
  );
}

如果浏览器不理解线性渐变,然后按钮在深灰色文本上是白色的。可悲的是,你在野外更容易看到的是:

.fancybutton {
  颜色: # fff;
  背景:-webkit-gradient线性的, 
     ,  ,颜色0%,# ccc),颜色47%,# 333),颜色100%,# 000));
}

哪一个如果浏览器不理解webkit渐变,结果显示白色按钮和白色文本。只是因为开发者太懒了,不能先定义一种背景色,浏览器才可能重新启用。相反,此代码假定用户具有WebKit浏览器。这不是渐进增强。这是在破坏网络。正是因为如此,其他浏览器必须考虑支持特定于webkit的浏览器CSS,因此,膨胀的浏览器和使web作为浏览器前缀的标准化程度降低,实验特性成为必要。

重定向和交互性的渐进增强


              
              href=
              “http://here.com/catalog”
              >
             见目录>

这是指向数据端点的链接。可通过键盘访问,我可以点击,轻敲或触摸它,我可以右键选择save as,我可以收藏它,我可以把它拖进电子邮件,然后发给朋友。当我用鼠标触摸它时,光标的变化表明这是一个交互式元素。

这是我免费得到的很多好东西,我知道这很有用。如果端点有问题,浏览器告诉我。它显示了当资源加载时间过长时,当找不到它时,它会显示一个错误。我可以再试一次。

我甚至可以使用JavaScript,在该链接上应用一个处理程序,选择使用preventDefault()覆盖默认行为,并在不重新加载的情况下在当前页面中显示结果。

如果JavaScript由于各种原因无法执行(连接缓慢,在防火墙级别上阻塞资源,adblockers,片状连接),没什么大不了的:链接可以点击,浏览器会重定向到页面。在您的后端系统中,当您使用JS请求内容时,您可能希望检查您发送的特殊头文件,而不是作为来自浏览器的重定向,并相应地返回不同的视图。


              
              href=
              “javascript:无效()”
              >
             目录>
              
              href=
              “阿”
              >
             目录>
              
              点击=
              “目录”()
              >
             目录>

这并没有提供任何有效的模型。当JS不工作时,你什么都没有。你仍然有一个看起来很诱人的链接,光标改变,你答应了用户一些事情。而你却没能做到。这是你的错,你的错误。一个简单的要避免的。

XHTML必须死,HTML5把它的位置

什么时候?XHTML很酷的事,最大的抗议是它破坏了网络。XHTML意味着我们交付HTML作为XML。这意味着HTML语法错误-未关闭标签,一个未编码&,非闭引号意味着最终用户得到的是错误消息,而不是他们想要的东西。更糟糕的是,相反,他们得到了一些神秘的错误消息。

HTML5解析器是宽容的。错误会自动发生,浏览器会尝试为您修复错误。这被认为是防止网络崩溃的必要措施。因为我们的错误而惩罚我们的用户被认为是不礼貌的。

如果你不逐步提高你的解决方案,你也这么做。任何小的错误都会导致界面卡住。这是由你来包括错误处理,超时处理,用户交互,如右键单击->打开新选项卡和许多其他东西。

这就是渐进增强保护我们和我们的用户不受其害的原因。而不是创造一个解决方案,希望事情解决,我们创造出有安全带的解决方案。事情不会可怕地破裂,因为我们为他们做了计划。

我们为什么不这么做呢?因为这首先是更多的工作。然而,这就是智能设计。你测量两次,切一次。你计划要有一扇足够宽的门来容纳一个轮椅和一个人。电梯坏了,你有一组楼梯可以爬到下一层。或者更好的是,你有一部自动扶梯,那当破碎,只是变成了一组阶梯。

我当然想让我们建设美丽,互动和令人兴奋的体验。然而,许多对渐进增强的批评并没有考虑到没有什么可以阻止您这样做。你只需要更多地考虑实现最终产品的过程。这意味着开发人员需要做更多的工作。但这是非常重要的工作,每次我这么做的时候,最后得到一个更小的,更健壮,更美观的最终产品。

通过在我们的产品计划中应用渐进式增强,我们一路上交付了许多不同的产品。每个人为不同的环境工作,但它们都是相同的代码库。每个人都在特定的环境中工作,而不需要我们专门测试。所有这些都是通过把我们的假设变成if语句来实现的。从长远来看,你这样保存,因为您不必为不同的环境维护不同的产品。

为了开发人员的方便,我们不断牺牲产品的健壮性。我们不是使用我们产品的人。当最终产品由于一个错误而无法交付时,为我们节省时间和精力是没有意义的。

Flipboard和“移动网络”梦想…

星期天,2月15日,二千零一十五

根据网页设计界的杰出人物,“移动网络”并不存在。斯蒂芬海说的,Smashing杂志是这么说的杰里米·基斯许多其他

除了,是的。不是作为技术现实,但作为一个梦想的营销和过于兴奋的经理,相信他们的工程师的神奇力量。这并不是什么新鲜事。我们以前经历过,我们可能还会再来一次。每隔几年,就会出现一种新的形式因素或技术,它承诺web将完美地满足一个非常小众的需求,同时对所有人开放和可用。换句话说,水几乎,但不是完全湿的。

Flipboard在60帧每秒的神奇旅程

上周Flipboard engineering发布了他们的“Kraken”移动网络上的每秒60帧“后,解释了他们是如何通过放弃“网页版”Flipboard,在移动设备上实现了每秒60帧的平滑平滑DOM在画布中渲染整个东西。普遍的愤怒是,它被解读为一个呼吁放弃DOM使用react.js和canvas代替。

孩子需要发光的鞋子跑得更快-我们需要画布有一个表演的网络应用程序

毫不奇怪,这引发了很多讨论和对他们的烦恼。但是让我们退一步看,首先,当工程团队发布他们的发现并告诉我们他们为什么做出一些决定时,这是一件好事。它可以是一个伟大的学习资源,是一个勇必威体育下载敢的事情去做。在这个世界上,人们把大部分时间花在剖析黑客新闻上的技术帖子上,把自己暴露在公众面前,这意味着你还需要处理大量两极分化的反馈。你需要快速学习如何处理巨必威体育下载魔和使用这些系统来哗众取宠的人。所以,谢谢-谢谢你!Flipboard。文章很详细,它解释了他们试图做什么,以及他们是如何做到的。

这种资源的有效性开始受到质疑,当炒作开始,人们把它当作福音。Flipboard并没有宣称他们所做的是在手机上获得快乐的完美方式。相反,他们对自己的意图非常开放:

在追求60fps的过程中,我们有时会采取极端的措施。Flipboard是一个将浏览器推向极限的案例研究。虽然这种方法可能不适用于所有应用程序,对我们来说,它的交互和性能水平可以与本地应用媲美。

马上,手机仍然很热。HTML5仍然是热的。一个公司推动两者的界限是热的。这就是为什么科技公司写这样的文章是很有价值的。我百分之百地肯定Flipboard的工程师有一颗正确的心,他们对自己取得的成就感到自豪。

用错误的方法解决正确的问题

也就是说,这个题目很糟糕,因为它承诺了一个巨大问题的简单答案。或者,反思,不是问题,但这是一个巨大的误解。

这篇文章告诉我的最重要的是,它并没有解决网络的问题。它是关于使用网络技术以每秒60帧的速度模拟移动触摸设备的本机接口。它的目标是在目前最富裕的人群使用的热门设备上平稳运行,比如iPhone 6。他们一点也不拐弯抹角:betway体育官方网

现在我们又回到了原点,将Flipboard带到网络上。我们在Flipboard所做的很多事情都有其价值,而这些价值与我们所使用的设备无关:的来源,还有你最关心的人。将我们的服务带到web上始终是一种逻辑扩展。

这其中有一个巨大的缺陷:它试图带来价值,而不依赖于它所使用的设备,然后它应用的假设和概念只对移动有利,触摸启用设备。

这是一个移植练习。这是带东西来的网络。它不是在创建web产品。这将会影响到尽可能多的人,让你的内容独立于硬件,能力和环境。你不能“上网”。当您的起点是一个非常受限的环境时,web不是另一个表单因素。这就是我们如何获得纯文本版本的Flash电影和“可访问版本”DHTML怪物。使用web技术手段首先假设您无法控制内容的使用方式。这与Flipboard的说法相去甚远

Flipboard是在智能手机和平板电脑出现之初推出的,作为移动第一次体验,让我们重新思考网页的内容布局原则,在各种触摸屏的形式因素上获得更优雅的用户体验。

这就是为什么把这叫做网络体验从一开始就是不明智的。作为Faruk Ates说:

Flipboard发布到世界上的“网络”版本类似于调用一组轮胎,AA电池和汽车零件特斯拉。

这与技术实现无关。这个缺陷在于将一个专门为某个特定的形式因素设计的本地应用程序转变为一个“Web版本”。被解释的过程充满了假设。

第一个是大60。我们所有的网络技术都需要与60 fps的阈值相匹配,否则就没用了,对吧?好吧,看着我搭载安卓棒棒糖的Nexus 5手机,以及我为达到最新水平所能做的一切,我可以有把握地说,没有一款应用程序能在60帧/秒的速度下始终流畅地运行,也没有一款应用程序不会时不时出现磕磕绊绊的情况。所以,我猜,我没有应用程序。

当然,我们需要追求的目标和一些可以衡量的东西。但是考虑到硬件的碎片化和抽象层的数量,将60fps之类的东西定义为基线是非常幼稚的HTML5app必须通过。也许考虑不那么贪婪的交互模型可能是一个前进的方向?

这让我想到了第二个假设:无休止的滚动就是网络。从那里,这篇文章试图做到这一点。真的,许多解决方案都有无穷无尽的滚动。也没错,很多时候,这比分页更烦人。

Flipboard在这里所做的是在一个没有原生范例的环境中构建一个具有原生感觉的解决方案。网络上没有形状因子标准。他们不断改变。今天的视差滚动页面是多层次的DHTML明天的下拉列表。

拉伸画布

这是一个大胆和看似聪明的解决方案,让画布达到良好的性能在一个无休止的滚动界面。但这就是它的全部——这是目前一个非常聪明的解决方案,保质期很短。作为Rachel Nabors说的:

回复:重新创建 DOM在画布和可访问性:我们将回顾这作为一个黑客。浏览器会跟上,将呈现 DOM得更快。

在使用Firefox OS和低端设备时,几个月前的主要问题是画布太慢,人们使用DOM而是抱怨说这是错误的API为游戏。推动canvas的是硬件加速,或者更好的是支持WebGL的移动浏览器。现在我们有这个和许多aDOM解决方案使用各种三维变换的技巧CSS强制硬件加速层看起来很愚蠢。很像这样可能很快就会看起来很愚蠢。

要做到这一点,最诚实的方法是给这篇文章起个标题:“我们是如何在高端移动设备上以60帧的速度无休止地滚动屏幕的?DOM画布”。但这并不是那么容易被引用,也不能让你听起来像一个解决“真实而普遍”问题的开拓者。

拒绝访问

Flipboard已经承认在可访问性方面,这是一个糟糕的解决方案。除了Screenreader可用性,当我看到屏幕上的元素不仅位置固定,而且尺寸固定时,我的警铃就响了。当你使用一个支持文本但意味着你需要计算换行符的工具时,我的胃会有一种反胃的感觉。调整字体大小。有复制和粘贴。接下来是翻译文本。所有的事情,网络是伟大的。这并不是什么新鲜事。

每次我们用图形替换文本以获得更多的控制,我们都必须重新发明基于文本的Web的这些基本功能。还记得web字体出现之前的标题图像替换技术吗?还记得Flash是如何竭尽全力地在浏览器历史记录中添加种子并使文本高亮显示的吗?还记得在移动设备上复制和粘贴是怎么不可能的吗?

在阅读关于无障碍性的文章时,我会回想起恐怖时期:

这一领域需要进一步探索。使用回退内容(画布) DOM)应该允许屏幕阅读器(如VoiceOver)与内容进行交互。我们所测试的设备的结果喜忧参半。此外,还有一个标准 集中管理浏览器还不支持这个功能。

其中一个方法是贝斯平2009年是保持a平行DOM与画布中呈现的元素同步。我们正在继续调查正确的无障碍方法。

等一下。重读,请,告诉我,如果我疯了,当我觉得这听起来像一堆胶带围绕着一个漏水的水龙头。

我们有一种完全可行的方法来实现这一切:我们称之为HTML我们有DOM和可访问性API。这样我们就有了一个完美工作的网站,索引的,很多人都能接触到。然后我们可以在支持触控的移动设备上转换成一个快速执行的canvas解决方案。我们可以测试这一点——网络技术很擅长这一点。想想看:数据源具有很多可访问性优势,并且API读它的一部分?给我签个名。

相反,我们考虑增加很多HTML画布元素中的内容作为回退,希望浏览器和辅助技术能对此有所帮助。

当canvas不受支持时,canvas中的内容会变得有趣。今天,这几乎是不存在的用例。浏览器支持画布。它是一片空白,在我们绘制和擦除的页面中的无状态占位符。这是一页蚀刻草图。它甚至不是基于向量的——它是像素的愚蠢集合。这就是为什么canvas是快速的——Flipboard的文章很好地解释了这一点。

帆布是HTML5什么DIV跨度HTML4-它没有语义。它是生成的占位符,视觉内容。没有文本,不是交互元素。当画布出现时,第一个评论是它是新的applet。这仍然是从标记/语义意义的角度描述它的一种非常明智的方式。它在页面中是一个黑盒子,就像Flash对于其他标记一样。

取代DOM,但不是它的优点

Flipboard解决移动性能问题的方案的问题在于,它希望使用canvas,因为它具有无状态和高性能的特性,并能获得所有的好处HTMLDOM与此同时。这要求太高了。

我们可以,然而,通过创建我们的画布内容,取得了相当大的进展HTML那在文件里。这就是构建web产品的意义——构建一个合理的web产品HTML先解,然后使用CSS和JavaScript来增强它。这样,在对最终产品进行了优化之后,您就不必担心覆盖基础内容的问题。这种做法总是会导致令人失望的倒退,而这种倒退几乎从未得到维持。

“移动网络”之类的东西

这个练习的全部目标是通过使用web技术和应用本机环境的思想来匹配本机性能。这是我们应该注意的。移动网络。

问题是,根据这篇文章和许多其他类似的文章,移动网络是存在的。移动网络不是一个技术性的东西——它是一种误解,是一种很难匹配的东西。如今的公司都是从本土经验开始的。这就是短期收益所在。这就是短期内用户数量高的原因。这是一项美丽的技术——闪亮的设备,来自操作系统供应商的支持以及操作系统带来的令人兴奋的交互模型。感觉很好,感觉有事情要处理。

然后这些人听说了web技术的好处:跨平台支持,降低工程成本,因为你不需要支付红热新技术的专家,跨不同形式因素的重用,等等。很多时候,当本地解决方案的蜜月期结束,并且有新的增长需要挖掘时,就会发生这种情况。

然后,他们想要的。因此,“移动互联网”。

我们要解决两个问题:技术问题和图像问题。

让我们先从技术上讲:将本地应用程序的性能与web应用程序的性能匹配是web目前无法获胜的游戏。至少,如果你所认为的性能只是它的fps速度,以及它与操作系统的集成程度,那就不是了。原因是形势对我们不利。除非浏览器成为移动操作系统中最重要的东西,我们将永远有黑客体验。

对于操作系统供应商,浏览器是一个必须提供的东西-另一个应用程序很像计算器或手机应用程序。从营销和货币的角度来看,让人们使用您的工具和语言专门为您的平台进行构建是一种双赢的做法。你有一群忠实的听众,你可以在给利益相关者的关键提示中展示他们的数字。让浏览器变得神奇意味着你必须分享。

再加上荒谬的浏览器碎片和旧系统上的僵尸浏览器数量这将永远不会得到更新,你会发现匹配最新最酷的本地产品真的很难。

图像的问题是,网络似乎过时了。我们的市场靠炒作和短期收益而繁荣。我们所有关于网络的信息都在赞美它的长寿。你现在所做的一切意味着你将在未来的岁月中受益,即使这意味着一些额外的工作。你们的产品在今后几年里很容易保养。未来的技术将已经支持您现在所做的事情,如果您使用渐进式增强,那么它将很容易扩展。这是我们的信息,这是一个很好的信息。

除非你只关心下个月的用户和下载数字,以及有多少人上传了自拍照,互相发送了贴纸,然后你就把它们卖了。那么这个信息只是噪音,听起来像傲慢的“在我的时代”的演讲。

如果我们热爱网络并希望它成功,我们需要选择战斗。而真正的问题在于操作系统没有我们可以依赖的浏览器。由于缺乏对基本功能的支持,我们需要提供跨浏览器和平台的应用体验。由于缺乏真正能实现的标准,也没有被开源的库所取代,但从不离开贝塔。

移动网络是真实的——但它不是。这是一个梦想的人谁没有得到的性质,网络试图收获它的好处。现在,这些人得到了所有的风险投资资金,并让科技媒体兴奋起来,因为他们承诺了一些新的东西。现在这种炒作是不可持续的。它曾在互联网繁荣时期杀死过这些人,而且很快就会再次杀死他们。

我们可以跺着脚生气,我们可以重复令人厌烦的旧信息。或者我们可以等待时机,修复那些被破坏的东西,阻止我们按自己的意愿行事。让那些需要短期快速胜利的人假装他们找到了解决方案。我们的时间可以有不同的用途。设备数量,形状因素和用户需求不会很快下降。网络可以覆盖所有这些。让我们在一个真正的应用程序外形因素的狂热梦想结束后实现这一点。就像没有一种运输方式来满足所有的需求,不存在完美的应用程序或交互模型。

Jfokus2015 -我的主题,HTML5说话,演示,幻灯片和我提到的资源

周三,2月4日二千零一十五

我在斯德哥尔摩海滨会议中心度过的最后两天,瑞典参加Jfokus2015,瑞典最大的开发者大会,有1700名与会者。更可怕的是,我在加入一家新公司和一次关于HTML5在一个Java开发人员经常参加的会议上。

jfokus闭幕主题演讲和观众

肯尼迪是个大人物,七道事件。很多其他的会谈都涉及到框架,开箱即用的解决方案或像智能家居这样的大主题,有自我意识的无人机等物联网很重要。组织非常顺利,就像所有北欧赛事一样,服务好。

主旨是:你不需要另一个英雄应用,你需要一个能在雷雨穹顶幸存下来的

当我得知自己被选中来做开场演讲时,我感到非常惭愧。我把演讲集中在了应用程序空间的当前状态,以及在安装数量和操作系统功能被收购的情况下,开发者可以做些什么来保持相关性。

有一个主题演讲的文稿在YouTube上。

你也可以阅读幻灯片在Slideshare上

你不需要另一个英雄应用程序——你需要一个能在雷神穹顶幸存下来的应用程序——JFOkus2015 必威体育下载基督教Heilmann

我在主题演讲中使用和提到的资源:

HTML5除了炒作

我的第二个演讲是关于HTML5。我这次演讲的目的不是要用伟大的新技术和实验特性来让人眼花缭乱。相反,我想提醒人们,这些天我们有多少浏览器可供使用。很多非常基本的,但也非常有用的功能HTML5CSS3现在使用是安全的。炒作HTML5在他刚开始的时候,以及后来浏览器不支持它时的失望让我们立刻忘记了这些特性。在这个演讲,我想提醒人们可以使用什么以及它如何改进现有的web解决方案——即使是在企业领域。

有一个视频的HTML5会话YouTube

很多人想要滑梯,所以在Slideshare上

HTML5炒作过后——JFokus2015 必威体育下载基督教Heilmann

我在演讲中提到的资源列在这里,如果你想跟进他们:

总而言之,我非常享受在Jfokus的时光。组织效率很高,与人交谈很有趣,很高兴看到我加入一家大公司并没有改变人们接近我的方式。我希望我能够激励一些人去尝试他们以前没有尝试过的技术,并告诉他们的老板他们公司应该做的事情。