lex 发自 凹非寺
量子位 | 公众号 QbitAI
现在,光纤信息传输能快到什么程度??
最新研究显示,科学家们又在光纤通信的速度上取得了重大突破:
他们在约8公里长的光纤上,成功实现了1.84Pbit/s的传输速率。
每秒1.84Pbit,是个什么概念?
这相当于每秒可以传输约236个1TB硬盘的数据;同时也相当于NASA等重量级科研机构专用网络速度的20多倍。
Phys.org指出,这还相当于目前全球互联网总流量的2倍!
要知道,先前在今年5月份,光纤通信的速度才刚刚被刷新过一次,从每秒Tbit的量级上升到了Pbit量级——达到1.02 Pbit/s。
(1Pbit=1024Tbit)
而现在,这项纪录再度被刷新,背后的团队来自丹麦哥本哈根大学和瑞典查尔姆斯理工大学。
值得注意的是,他们是世界上第一个仅用“单个激光器+单个光学芯片”,就实现每秒传输速度超过1Pbit的团队。
截至目前,相关成果论文已经登上了Nature旗下的光学类顶刊:Nature Photonics。
这项成果在Hacker Newer社区上也引起了众网友的关注。
有人激动地表示:
这可能会引导出一种全新的缓存形式,数据将不断围绕着一圈光纤飞速传播。
随着相关光学传感器越来普及、越来越越便宜,当前未被使用的暗光纤将派上用场。
本研究涉及的主要领域就是光纤通信。
在这里先来说说光纤通信系统基本组成,它包括:光发信机、光收信机、光纤、光缆,还有中继器等。
而在此研究中,最值得拿来说道说道的,就是光发信机部分的光源。(光发信机由光源、驱动器和调制器组成)
研究人员专门设计定制出了一种光学芯片,它能把来自红外激光器的光转换成由许多颜色组成的彩虹光谱。
不同颜色光的频率不同。
因此,经此芯片处理后,单一激光的一个频率(颜色)甚至可以变出上百种频率(颜色)。
而且通过人为操控,这些新生成颜色的频率差距都是固定的,很像梳子上的齿。
于是对这样的光谱,人送称号:光学频率梳 (Frequency comb,简称频率梳)。
这个频率梳有两大明显优势:
一是作为光波传输的源头,这些梳状结构很适合波分复用(WDM),数据会被调制到每个梳状线上,然后被同时传输。
由于每个单色光之间的频率和频率差都是固定的,所以也不用担心一下子传这么多数据,会引起混乱。
而如果直接用单一激光二极管的阵列作为光源,不仅需要更多硬件,而且每个激光器的频率容易随机漂移,造成数据间的串扰。
其二,所有这些生成的光都是相干的,这使得不同通道之间还可以联合进行数字信号处理。
所以总而言之,用频率梳充当光源,不仅可以同时传送多组互相不干扰的数据,而且还能联合处理数字信号,最终大大加快了数据传输速率。
为了测试种方案的实际效果,研究者们在一条光纤上进行了实验。
这条光纤长7.9公里,有37芯、223个频率通道。
研究人员对所得数据分析计算后得出,在这条光纤上的信息传输速率达到了1.84Pbit/s。
本文的共同一作,Oxenl?we教授指出:
这个解决方案是可扩展的。
可以通过技术手段,创建更多频率,而且可以在较小的副空间上先梳理不同的同频,再将其进行光学放大,有效解决存储空间和传输效率的问题。
本研究由丹麦哥本哈根大学尼尔斯·玻尔研究所和丹麦技术大学(DTU)的团队主导,瑞典查尔姆斯理工大学的学者们也参与了研究。
尼尔斯·玻尔(量子理论创始人之一)研究所成立于1921年,目前的研究领域涉及天体物理学、生物物理学、电子科学,和量子物理学等。
论文的共同一作有3位,分别为:A. A. J?rgensen,和D. Kong和L. K. Oxenl?we。
L. K. Oxenl?we,现任丹麦技术大学光子通信技术教授,并兼任丹麦光通信用硅光子学(SPOC)研究中心的负责人。
1996年至2002年间,Oxenl?we先后在哥本哈根大学获得了物理学以及天文学学士和理学硕士学位,后在丹麦技术大学获得博士学位。
他的主要研究领域包括光纤通信、量子纠缠、量子计算等。
A. A. J?rgensen和D. Kong目前都是尼尔斯·玻尔研究所的研究员。
论文地址:
https://www.nature.com/articles/s41566-022-01082-z
参考链接:
[1]https://newatlas.com/telecommunications/optical-chip-fastest-data-transmission-record-entire-internet-traffic/
[2]https://phys.org/news/2022-10-transmission-laser-optical-chip.html
[3]https://news.ycombinator.com/item?id=33315392
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
经有产品经理使用Axure做个人博客,并发布上线。Axure到底有多少潜力?能否可以挑战更多的开发项目成为直接上线可用的产品?
笔者正好利用2020年超长的春节假期进行一次探索。为什么会想到要用一款原型工具去做成品?
主要原因是所见即所得的编辑过程,让那些需要一定时间学习编程才能完成的工作,由普通人来做学习成本几乎可以不计,而且质量的稳定性更加可靠。如轮播只要简单设置就好,也无需考虑不同浏览器之间的代码兼容性。其次Axure提供了强大的函数库,给于了无限可能。
本次的挑战的工具使用Axure8.0版,项目选择了作者公司中交互较为复杂的移动端商城装修功能。此功能让用户在PC端通过所见即所得的编辑方式,将移动端常见的展示效果,像搭积木一样,组合设置成为用户需要的移动端商城的样式。(如下图:左边,装修组件选择区。中间,实际效果预览区。右边,组件参数设置区。)
本次挑战的原型已发布到作者的线上空间,网址如下:
探索过程完成的主要功能:
因时间有限,其它装修组件的功能暂未提供,但依据笔者的经验,是可以实现的。如果需要与后台通讯则要外挂JS文件处理其中的数据。
经过这段时间的探索与试验,总结下来,Axure可做一些对文件体积不敏感,交互不复杂的项目。如:CMS,个人博客等展示类的产品。如果需要一些复杂的交互,也可以实现,实现的过程中则需要额外注意些事项,有兴趣的朋友可以了解后面分享给大家的一些探索中的经验。
所见即所得的编辑效果:虽然只有一个优点,但这是很多人的痛点,编程学习的东西很多,从HTML,CSS,JS到放弃,而Axure的工作方式让前端的工作就像画画。
成品文件冗余:
以本次项目为例,HTML文件:482KB。JS脚本:855KB(其中jquery库162KB),CSS文件62KB,页面数据文件:1270KB。共计2669KB(不含图片资源)。如果把项目中所有功能做完,HTML文件和页面数据文件可能会更大,这也许是Axure为了存储原型描述相关的内容,生产的冗余。
执行效率低:
主要发生在数据集频繁大量变更时,会导至页面明显卡顿,而Axure的数据集机制也导致容易出现大量的数据操作。所以笔者只能控制一些界面元件的数量,降低实时同步频率,选择操作间隙更新数据等方法,让卡顿感尽量减少。
调试过程繁琐:
Axure并没有现成的较好的调试方法,需要规划一个调试空间,有兴趣的朋友可以看后面的单元测试与集成测试介绍。
代码碎片化:
Axure中所有的代码都写在元件上,这个开始没太在意,但随着项目的进展,影响越来越大最后导致后面几乎进行不下去,最后不得不提出Axure伪代码规范的解决方案。
经过本次探索,笔者认为如果Axure向可视化编程方向努努力,可能会极大的降低前端的开发门槛或改变开发方式。
如何使用Axure完成一些复杂的交互,下面将本次探索的一些经验分享给大家。
实现变量效果的三种方式:
Axure中每一个元件都可以添加条件判定。但用在模拟功能函数上,多选按钮(checkbox)较为适用,因为选择状态可视有利于调试过程。
通过定时切换多选按钮(checkbox)完成。缺点逻辑严谨差一些,需要注意逻辑并行可能的影响。可以使用禁用或锁定等方式避免影响。
通过定时切换多选按钮(checkbox)完成。由于一个元件上承载的功能有限,所以有时需要多个checkbox组合完成,这种方式我们把他称为功能函数组。
对于复杂的项目,元件多时间命名规范极为重要。否则再次优化,修改无从着手。规范可以帮助我们看名知其意,也有利于在众多元件中轻松找到需要的元件。
功能设计图:折分功能,帮助理解流程及流程中各动作的影响范围。
功能列表:记录拆分后的功能列表,帮助你实施时更加有条理,应随着伪代码的编写逐步完善。
功能影响列表:记录功能可能影响到的范围或用户可能的非正常操作列表,并给出对应的解决方案(如有必要可编写解决方案的伪代码),应随着伪代码的编写逐步完善。
伪代码是将各元件的协作,用简练的文字描述出来的方法。因为Axrue中的功能,都是写在各各独立的元件上的,非常碎片化,对于复杂一些的功能,编辑不直观,思维容易被干扰,后期也不利于梳理和阅读。本次的项目随着元件的增加,几乎到了不可维护的情况。
所以需要避免在元件中盲目操作导致越发混乱,同时对于之后的维护,只需要有对应的伪代码,便可快速了解整个全貌,轻松上手,伪代码需要与命名规范结合使用。(本次使用的Axure伪代码规范文档:http://www.yssycm.com/personal/index.php/2020/03/15/axure-pseudocode-specification/)
调试即是伪代码的实施的过程,按伪代码的内容要求,逐一操作创建对应的元件并赋于对应的功能。将需要监视的变量,数据集,功能函数组,分类陈列,方便运行中查看错误产生在那。必要时可增加额外功能元件,帮助触发特定的情况。Axure中的等待命令可以模拟编程调试中的断点功能,完成调试后可以只隐藏不删除,便于之后再次修改维护(发布上线的可以删除减少一些冗余)。
将项目中的功能,依据范围,目的,拆分为相对独立的功能模块,每一个功能模块在独立的页面进行编辑和调试。最后再组装到一个页面中。可以快速定位错误的位置,同时预览调试速度也快。
本文由 @镜缘 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
文作者将与大家分享产品原型需求管理系统的内容,enjoy~
为什么要做这个东西?几个原因:
因为用Axure导出来的原型文件,该原型设计工具只考虑到页面展示,并没有考虑到数据存储这一块,Axure的数据存储全部存到js文件中。但Axure中有一个可以把数据传递到外部的地方:打开链接、在框架中打开链接。而技术原理中,有一个URL传参方法,下面是原型介绍:
在Axure原型中设置个全局变量,在另外一个页面使用该变量并进行赋值时,会发现,该原型工具本身也是通过URL来传递参数,如上图的:#text10=666。其中text10就是我定义的一个全局变量
所以整个产品需求目录管理系统设计的核心原理就是:URL传参+php脚本读参数+php写入本地文件。读数据核心:php读取本地文件+赋值给参数+打开指定文件并附带参数,如:index.html#canshu=666
下面是php脚本介绍:
这个文件(canshu.php)已经写得很明白了,打开本地的db.txt(类型于数据库,只不过是简单的数据库),然后读取链接参数,原型Axure将几个控件的内容按一定规则拼接好,赋值给一个全局变量,然后再到一个内部框架打开canshu.php,并带上参数,如下图的【打开./canshu.php?[[canshu]],canshu.php文件,通过$_SERVER函数就会读取到链接的参数,然后把该参数内容读取下来,并赋值给$urlcan,然后就拿该参数写入db.txt
然后有同学问了,怎么读?读用逆向思维即可:利用一个php脚本读取txt的内容,并赋值给canshu,然后打开index.html#canshu=xxx,如此下来,你的原型文件就能获取到txt的内容并赋值给了原型中的全局变量了。
以下是系统介绍:
特别注意的是:【URL】。URL是你本地原型的相对路径地址,比如你用本地局域网搭建,假如你的ip是:http://192.168.1.1/,并且你创建了1.5.1的文件夹,里面放了需求1的原型地址,所以它的相对路径就是1.5.1/index.html,当到产品原型目录点击时,就会直接跳转至http://192.168.1.1/1.5.1/index.html
【分类】分类会在产品原型目录地址首页显示标识,如下图:
【排期设置】排期设置就是首页的1.5.1、1.5.2、1.5.2这些排期,当然可以命名其它,但是注意的是,修改排期命名时,需求管理列表中的排期也需要跟这些命名一致,否则会筛选不出这些需求
使用这个需求管理系统,需要准备以下内容:
可以在本地管理需求目录,并提交至服务器(有中文语言包)
使用了SVN演示
没有不可能,活学活用。
源码的逻辑就不码出来了,但是你如果要研究,可以自行研究。
本文由 @jeasionlee 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Pixabay,基于 CC0 协议
*请认真填写需求信息,我们会在24小时内与您取得联系。