Ian Interviews #19, Raja Koduri- Intel SVP and GM of AXG

My notes

compute accelerator [the accelerated computing]
x which is one of Raja favorite alphabets
divide and conquer on the focus side
w/ FPGA (PSG), particularly software and interconnects and fabrics
Raja is not personally good at context switching and being very productive, and his focus keeps shifting
as soon as we feel like hey this is good we ship it
we got to figure out as a technology industry and that's the fun of being here like how do we get there
unleash the technology pipeline
the moonshot type of initiatives

(1) zetta scale initiative
- zest scale at thirty thousand feet is a thousand x increase in performance and intel claimed a 20 27 ish time frame
- zeta scale on one machine one zeta flop double precision 64-bit compute
- the need for 1000x more compute or 1000x performance per watt improvement
- need: train one of the interesting neural nets in real time not in minutes hours days right in real time, the need for that is there today the demand for it is there today
- start simulating them at earth scale at planet scale and that's what computing is about
- the delivered work for what of computing is super energy efficient
- architectural innovations based on the workload
- drive a set of mathematical initiatives
- math based initiatives on architecture memory interconnect and process technology
- you take the whole system and say what where is the energy going at the whole exaflop system level, you see a ton of opportunity beyond
- i won't go into all those details but you know suffice to say there is enough opportunity
- we're talking about paradigm shifts in order to get there
- if you just ask customers all they want is faster horses
- the beauty of the super computing community the hpc community are very eager first adopters of many things right
- our goal we said is that it's not just building a bragging rights you know is at a scale computer or something we want to get this level of computing accessible to everyone, that is intel's dna right you know the democratization of it
- in 24-25 integrating xeon and xe as a falcon product, and then silicon photonics light bringer
- architecture is 16x power and thermals 2x data movement 3x and processes 5x that's about 500x on top of the 2x
- integration at system scale there there are opportunities they are uh not just kind of inter-identified opportunities
- when you when i say unit of computer cpu is a unit of compute a single gpu is the unit of compute, there is no reason why they have to be that way
- no reason that aspect of moore's law needs to stop because there's still an opportunity just even beyond transistor stuff just the integration aspect integration driving um some order of magnitude efficiencies
(2) one api

future generations is it all just going to be about specific hardware optimizations smart compilers customer libraries
first leveraging the xeon rx86 library base for our upcoming gpus and other hardware
second is this data parallel sim t abstraction that's popularized by cuda opencl etc etc
unlock new forms of parallelism much more easier uh memory management and will make it much easier for people to write workloads that deal with you know petabytes of data

(3) metaverse

still a lot of search engine buzzwords
i was passionate about and what kind of got me to intel is this enabling of this fully emotional virtual world
it raises geographical boundaries and like you know literally put us both in the same room and uh you know me interacting with the best version of you and you interacting with the best version of me
there are three layers the way we are looking at it the compute infrastructure layer which is fundamentally what our hardware roadmap silicon road maps you know improving per watt etc etc; the second is infrastructure layer and we have been at work on uh creating an interesting uh system and uh infrastructure software there i'll be saying more about that in a in a couple of weeks; then the last layer is what i call intelligence layer which is how do you leverage all the new ai techniques and all how do you package them all up so that you know you effectively deliver more compute you know or more higher visual experience to a low power device more productively
a continuation of virtual reality with added just added layers and complexity

what's your minimum specification [Music]
你的最低要求是什么
so hi everyone and welcome to another of ian's interviews
大家好，欢迎来到Ian的另一个访谈。

i'm speaking to intel's raja kaduri
我采访的是英特尔的拉贾-卡杜里
he's the general manager of axg they're accelerated compute accelerator graphics
他是axg的总经理 他们是加速计算加速器的图形
i always forget what the uh what the acronym stands for but raja welcome
我总是忘了这个缩写是什么意思，但是欢迎Raja。
thank you ian it's accelerated computing systems and graphics and so we combined the c and s to be an x which as you know is one of my favorite alphabets
谢谢你，Ian，这是加速计算系统和图形，所以我们把C和S合并成X，你知道这是我最喜欢的字母之一。
so so going going on to your position as head of axg you got that position in mid 21 previously being the gm of architecture graphics and software
那么继续说说你作为axg的负责人，你是在21年中期得到这个职位的，之前是架构图形和软件的总经理。
so what exactly is in your wheelhouse these days
那么现在你的工作范围到底是什么？
desktop and enterprise graphics i get but i'll be talking other accelerators or what have you
桌面和企业图形，我知道，但我要谈的是其他加速器或其他什么。
uh yeah thanks in good question
嗯，是的，谢谢你的好问题
so the all of our in a zeon hpc line is um in accelerated computing graphics
所以我们所有的至强HPC产品线都是在加速计算图形方面。
right so the way uh uh you know we have uh kind of you know divide and conquer on the focus side right
是的，所以我们的方式是... ...你知道的，我们在重点方面进行了分工和征服，对吗？
you know we saw that uh this notion of accelerated computing which is both like cpu platforms gpu platforms and other accelerators
我们看到，加速计算的概念是指cpu平台、gpu平台和其他加速器。
uh like for example recently you heard some news around blockchain
比如说最近你听到一些关于区块链的消息
uh and you know there are other interesting things we we're working on too
呃，你知道还有其他有趣的事情，我们也在努力。
so all of those are in the accelerated computing
所有这些都属于加速计算领域
so i mean normally when i hear accelerators i think fpgas but that's under psg and networking that's under its own network group
所以我的意思是，当我听到加速器时，我会想到FPG，但那是在PSG之下，而网络则是在自己的网络组之下
how much synergy is there between you and them
你和他们之间有多少协同作用？
well you know quite a bit and particularly software and interconnects and fabrics and all
你知道很多，特别是软件、互连和结构等等。
that's a good question by the way the the simple way i define what's in accelerated computing if you're talking uh you know let's say 100 tops or more
这是一个很好的问题，顺便说一下，我定义加速计算的简单方法，如果你在谈论 呃，你知道，让我们说100顶或更多
right so it's high performance accelerated computing maybe you know we didn't want the acronym to be too large
对，所以它是高性能加速计算，也许你知道我们不希望这个缩写太大。
right so it it's uh it's shortened but but really all the high performance stuff is in hd
是的，所以它是... ...缩短了，但实际上所有高性能的东西都是高清的
so i initially reached out for this interview because intel started talking about zetta scale
所以我最初接受这个采访是因为英特尔开始谈论Zetta规模的问题
and then you started also talking about metaverse
然后你也开始谈论metaverse
um i kind of want to go into those topics but i would be lynched if i didn't ask you a question about gpus
嗯，我想谈谈这些话题，但如果我不问你一个关于GPU的问题，我会被处死的。
so what which of your children do you love more
那么你更喜欢你的哪个孩子呢？
alchemist or ponte vecchio
炼金术士还是庞特维基奥？
[Laughter]
oh uh you know both you can't ask me to choose at least on camera i get in trouble
哦，你知道这两个问题，你不能让我选择，至少在镜头前我会有麻烦。
i can imagine that's kind of why i asked it but so realistically internally you're working on the next generation the one after and probably the one after that
我可以想象这就是我问这个问题的原因 但是从现实的角度来看，你在为下一代工作，之后的一代，可能还有之后的一代
as general manager i can imagine that in any given day
作为总经理，我可以想象，在任何一天里
you're in meetings about gen 1 gen 2 and then a meeting about gen 4 and then a meeting about gen 3.
你在开会讨论第一代、第二代，然后开会讨论第四代，再开会讨论第三代
have you ever turned around and said this week i'm only focusing about say gen 3 or something similar
because how much headspace does that upcoming product versus future product have to occupy especially you know today you're talking to me the press i'm going to ask about gen 1 stuff kind of
你是否曾经转过身来，说这周我只关注比如说第三代或类似的东西？
因为即将推出的产品和未来的产品相比，要占据多少空间，尤其是你知道今天你和我谈的是媒体，我要问的是第一代的东西。
yeah yeah yeah no i there are weeks particularly when um you know i call it kind of you know in the in the creation mode
when we really kind of you know finalize the architecture and you know the the the core bets we are going to make on which technology and all
是的，是的，我有几个星期，特别是当你知道我称之为创造模式的时候
当我们真正确定了架构和我们要做的核心技术和所有的赌注时
i go into that's the only thing i do you know that entire week or entire day type of stuff
这是我唯一做的事情 整整一个星期或一整天的事情
i'm not you know personally that good at like kind of you know context switching and being very productive
我个人并不擅长转换环境和提高工作效率
so yeah um yeah so you know the next uh a couple of months as an example will be very much on you know trying to get the gen 1 stuff that uh out into the market
所以，是的，所以你知道接下来的几个月，比如说，你会很努力地把第一代产品推向市场
right so you know pretty much very much what's you know right in front of our nurses to get all of that stuff done
所以你要知道，我们的护士面前有很多东西要做。
but yeah good question yeah you know my focus keeps shifting
但是，好问题 是的，你知道我的重点一直在转移
i mean yeah a lot of people want to ask me about you know desktop graphics and stuff but it's uh still planned for q1 launch desktop and mobile just want to clarify
我是说很多人想问我关于桌面图形和其他东西的问题，但它仍然计划在第一季度推出桌面和移动设备，只是想澄清一下
yes we have you know series of launches uh coming up uh ian right you know we have partners we have oems and the 50 to 60 systems that we announced at uh ces
是的，我们有一系列的发布活动，即将推出 伊恩，你知道我们有合作伙伴，我们有OEMS，还有我们在CES上宣布的50到60个系统
and uh you know we're working away right you know with the different skews with the different focus on gaming game compatibility game performance and all as soon as we feel like hey this is good we ship it
我们正在努力，你知道，我们对游戏的关注度不同，对游戏兼容性的关注度也不同，只要我们觉得这很好，我们就发货。
right and so still a lot of hard work ahead of us and we do uh really understand
所以我们还有很多艰苦的工作要做，我们真的很了解
uh you know the the user uh anticipation and uh and the demand too right now with the uh with the situation
你知道用户的期望和需求，现在的情况是这样的
the market is in and we're we're doing our best to get the the product at the finish stage that we feel like hey this is good right to get it in your hands
市场的情况，我们我们正在尽最大的努力让产品处于完成阶段，我们觉得这很好，可以拿到你们手中。
so pivoting to zetta scale for some context for people who don't know intel made waves in october by announcing zetta scale initiative right on the eve of the industry breaching that extra scale barrier
为了给不了解情况的人提供一些背景，英特尔在10月宣布了Zetta规模计划，在行业突破额外规模障碍的前夕，掀起了波澜。
zest scale at thirty thousand feet is a thousand x increase in performance and intel claimed a 20 27 ish time frame
zest的规模在3万英尺是性能的千倍增长，而英特尔声称是20 27年左右的时间框架
so in this context when i say exascale i mean one super consume one supercomputing system implementing one extra flop of double precision compute all 64-bit math and intel has gone on the record you've gone on the record even saying that aurora the upcoming supercomputer for argonne will be in excess of two extra flops of 64-bit double precision compute
所以在这种情况下，当我说exascale的时候，我的意思是一个超级消费，一个超级计算系统，实现一个额外的双精度计算的flop，所有的64位数学，英特尔已经记录在案，你已经记录在案，甚至说Aurora即将为阿贡的超级计算机将是超过两个额外的64位双精度计算的flop。
what i want to ask you is is a really specific question about what intel means by zetta scale in this context
我想问你的是一个非常具体的问题，在这种情况下，英特尔的Zetta规模意味着什么？
when we say excess scale we're talking about one machine one extra flop double precision so by zeta scale
当我们说超额规模时，我们说的是一台机器一个额外的flop双精度，所以Zeta规模是指
do you mean one machine one zeta flop double precision 64-bit compute
你的意思是一台机器一个zeta flop的双精度64位计算吗？
short answer yes ian and
简要回答：是的，Ian。
that's good that's good yeah and
这很好，这很好。
i also want to frame it i mean if you recall i've been talking about the need for 1000x more compute or 1000x you know performance per watt improvement for a little while
我也想把它框起来，我的意思是，如果你记得，我一直在谈论需要1000倍的计算量或1000倍的性能，你知道每瓦特的改进有一小段时间了
in fact i think it i talked about it in my hot chips keynote uh and and a few other events as well
事实上，我想我在我的热芯片主题演讲中也谈到了这一点，还有其他一些活动
the reason is the the demand for that compute already exists today
原因是对这种计算的需求今天已经存在。
right you know just taking a concrete example of if i want to train one of the interesting neural nets in real time
对，你知道只是举个具体的例子，如果我想实时训练一个有趣的神经网络
not in you know minutes hours days right in real time
不是在你知道的几分钟几小时几天的时间里，而是实时的
the need for that is there today the demand for it is there today
今天就有这种需求，今天就有这种需求。
so in many ways we got to figure out as a technology industry and that's the fun of being here like how do we get there
所以在很多方面，我们必须弄清楚，作为一个技术行业，这就是我们在这里的乐趣，比如我们如何达到这个目的
right so the zeta scale is a you know kind of a nice numerical way to say it
对，所以Zeta规模是一种你知道的很好的数字方式来表达它
because we have been talking you know 10 10 power 18 with x scale
因为我们一直在讨论你知道的10的10次方18的X尺度
you know kind of the 10 power 21
你知道10的21次方的那种
but the essence of the zeta scale initiative is the thousand x to me then kind of the current performance per watt baseline
但Zeta规模的本质是千X对我来说是一种当前每瓦特的性能基线
right and we'll get more into that i'm sure you'll ask questions on on why and all that stuff but the current baseline if you just think about it
好的，我们会进一步讨论这个问题的 我相信你会问为什么，还有其他的问题 但是目前的基准线，如果你想一下的话
right you know the current what we are using to build x scale what others are using to build exascale
对，你知道目前我们用来建立X规模的东西，以及其他人用来建立Exascale的东西
the technology foundations for those were laid out more than 10 years ago
这些技术的基础在10多年前就已经奠定了
right what process technology what uh packaging technology those were in the works and in various forms of manufacturing over the last decade
对，什么工艺技术，什么包装技术，这些都是在过去十年中以各种形式制造的。
so exoskill is the culmination of a decade plus long work into a product
所以exoskill是一个产品的十年多的工作的高潮
so but by that token would that mean that when you say zetscale today a lot of or essentially all of the work that would go into it is already happening
因此，这是否意味着，当你今天说Zetscale时，很多或基本上所有的工作都已经在进行中了
is already happening and in fact by um you know i think pat said it uh you know quite well uh that the amount of time it took from you know each generation from
已经发生了，事实上，你知道，我认为帕特说过，呃，你知道的很好呃，从你知道的每一代人花了多少时间，从恐怖到彼得，你知道的。
you know the from terror to peter petter to exa right and the timeline we set from excerpt to zeta is actually shorter than the previous transitions
你知道从恐怖到彼得-佩特再到埃克萨的时间，而我们设定的从摘录到Zeta的时间线实际上比以前的过渡期要短。
and and you know that is bold that's ambitious but
你知道这很大胆，很有野心，但
to unleash the technology pipeline right you know on the foundational physics
为了释放技术管道，你知道在基础物理学方面
right you know we do need different physics
对，你知道我们确实需要不同的物理
more physics right to solve the problem
更多的物理学知识来解决这个问题
so when you have that the moonshot type of initiatives right the technology and the suburb are in-house manufacturing process technology teams and the scientists that work on it
因此，当你有了这些 "登月 "式的举措，技术和郊区都是内部制造工艺技术团队和在这方面工作的科学家。
and some of our partners in the equipment industry in ip industry and all it's a call for action for all of them that hey
和我们的一些合作伙伴在设备行业在ip行业和所有这是一个呼吁行动的所有的人，哎
because of the demand exists today and the ai workloads and the span and our desire to simulate things uh you know we can
因为今天存在的需求和AI的工作量和跨度，以及我们对模拟事物的渴望，你知道我们可以
right you know excellent work done by the way recently by uh uh you know our uh uh friends at the fugaku supercomputer using that facility uh that capability to simulate the spread of kovid right how is that um you know impacting and all now
对了，你知道最近做了很好的工作，呃，你知道我们的呃，呃，朋友们在Fugaku超级计算机上用那个设施呃，那个能力来模拟Kovid的传播，对了，呃，你知道现在有什么影响？
i wish we had those simulations done the beginning of 2020 that we had more better understanding earlier
我希望我们在2020年年初就能完成这些模拟，我们能更早地了解情况
but there is no reason for us to be waiting for the next you know big event
但我们没有理由等待下一次大事件的发生，你知道的
whether it's a natural uh you know a calamity ahead of us or things to be start simulating them um at earth scale at planet scale
不管是自然事件还是灾难，我们都应该开始在地球范围内模拟它们。
uh you know and that's what computing is about
呃，你知道，这就是计算的意义所在
in fact in many ways uh ian
事实上，在很多方面，呃，伊恩
it's one of the cheapest resources in the universe from an oh if you think about it right computing
它是宇宙中最廉价的资源之一 如果你想一想，计算是对的
right it's actually compared to many of the inventions many of the ways we spent electricity on and all
是的，它实际上是与许多发明相比的 许多方式，我们花了电力和所有
right you know the the delivered work for what of computing is super energy efficient
对，你知道计算的交付工作是超级节能的
but it's not enough
但这还不够
it's not enough yes thousand decks just three zeros yeah
但这还不够 是的，只有3个零的千分位数是的
just just three zeros
只是三个零而已
um it's interesting that you mentioned fugaku because the the chips that they use is built primarily for 64-bit double precision compute
你提到Fugaku很有意思 因为他们使用的芯片主要用于64位双精度计算
but you also mentioned ai in there which is a mix of you know quantization and reduced precision compute
但你也提到了AI，这是一个混合的量化和降低精度的计算。
again sorry to ask this question to bang on about it but when we talk zetta scale we are talking double precision even with everything else involved
we are still talking double precision
再次抱歉问这个问题，让我大费周章，但是当我们谈论Zetta规模时，我们谈论的是双精度，即使涉及到其他的东西
我们仍然在谈论双精度
yeah yeah absolutely
是的，是的，没错。
because i think there are other uh advance you know during the journey towards that scale you i think we we expect us and others will take advantage of this other kind of i call it architectural innovations based on the workload whether it is like you know lower precision bit formats or some other interesting forms of compression etc etc
因为我认为还有其他的......你知道在迈向那个规模的过程中，我认为我们希望我们和其他人能够利用这种其他的......我称之为基于工作量的架构创新，无论是像你知道的较低精度的比特格式还是其他一些有趣的压缩形式等等。
right you know they'll all be part of the journey but to drive a set of mathematical initiatives
对，你知道他们都将是旅程的一部分，但要推动一系列的数学倡议
uh or kind of math based initiatives on architecture memory interconnect and process technology we made it very simple
呃，或者是基于数学的架构内存互连和工艺技术的举措，我们把它变得非常简单
right it's zeta scale with 64-bit floating point okay
是的，它是64位浮点的Zeta比例，好的
where do the circuits need to get to to be able to do that
电路需要达到什么程度才能做到这一点？
you you mentioned earlier that this is um an acceleration of the industry progression going from um terret peta exo and on to zetta
你刚才说这是行业发展的一个加速，从Terret Peta Exo到Zetta。
um if i just bring up the top 500 supercomputer charts that they produce every six months
如果我把他们每六个月制作的超级计算机500强排行榜拿出来的话
we're about to achieve exa-flop computers today and in that 2027 time frame you know roughly that you've already talked about
我们今天就要实现exa-flop计算机了，在2027年的时间框架内，你知道大致上你已经说过了
their graphs extrapolate out to only a 10 extra flop system not a 1000 dexa flop system
他们的图表只推断出10个额外的flop系统，而不是1000个dexa flop系统
right that's a bit of a jump and naturally a top supercomputer like that requires large investment it requires specific entity to build contracts in place
对，这是一个跳跃，自然，像这样的顶级超级计算机需要大量的投资，需要特定的实体来建立合同。
aurora's first contract is pre-2018 so how much needs to be in place very soon to hit that thousand x
Aurora的第一个合同是在2018年之前签订的，所以要想达到1000x，需要在短时间内完成多少工作？
also how much of a step function should we think about that scaling this context
另外，我们应该考虑在这种情况下，有多少阶梯功能？
yeah either a step up or a smooth progression or
是的，要么是一个阶梯式的增长，要么是一个平稳的进展，或者是
one key thing to be able to do these kind of jumps is that the system architecture needs to change as well
要实现这种跳跃的关键是系统架构也需要改变。
right so if you're taking the current system architecture on how supercomputers are built and what's a node and
对，所以如果你把目前的系统架构放在超级计算机的建造方式上，什么是节点？

uh the most ambitious numbers i can throw yeah you land in that you know 10x range maybe you know 20x 30x right you know if you combine all the technologies
呃，我可以抛出最雄心勃勃的数字 是的，你可以在10倍的范围内，也许你知道20倍30倍，对吧，如果你结合所有的技术
but if you take the whole system and say what where is the energy going at the whole exaflop system level
但是，如果你把整个系统，说什么是能源去 在整个exaflop系统的水平
okay you see a ton of opportunity beyond you know the current cpu and the gpu that's inside one node
你会发现有大量的机会，超越了目前的CPU和GPU，这些都在一个节点内。
right so that's you know the system level thinking and
对，所以这就是你知道的系统层面的思考，而且
that's very much part of our zetas scale uh thinking
这也是我们ZETAS规模的一部分。
is uh what is the system level architecture um changes that we need to do to be able to get to that interesting uh compute density and performance for what increases
我们需要做的系统级架构变化是什么，以便能够达到有趣的计算密度和性能的增长。
right so this uh you know at an opportune time we'll be laying out all those details
所以这个......你知道，在一个合适的时候，我们会把所有这些细节都写出来
i won't go into all those details but you know suffice to say there is enough opportunity
我就不说这些细节了，但是你知道，只要说有足够的机会就够了
so it sounds to me we're talking about paradigm shifts in order to get there
所以在我看来，我们正在谈论范式的转变，以便达到这个目的
yes
是的
is you know just so just to concatenate everything that you said down into that simple phrase
是的，你知道的，所以只是把你说的所有东西合并成一个简单的短语
is that going to be intel or intel and its partners designing new presenting as potentials
这将是英特尔或英特尔及其合作伙伴设计的新的潜在的呈现方式
or is it going to be customer driven
还是要由客户来驱动
because is it henry ford said if you just ask customers all they want is faster horses
因为亨利-福特说过，如果你问客户，他们想要的就是更快的马。
so innovation has to happen at multiple levels how are you going to marry the two by providing something that both your customers want but is also innovative and both a paradigm shift but not too much that they won't adopt it
因此，创新必须发生在多个层面，你如何将两者结合起来，提供一些客户想要的东西，但也是创新的，既是范式的转变，但又不至于让他们不采用。
because that's always a barrier in these things as well yeah and uh there are two phases to that
因为这也是这些东西的一个障碍 是的，呃，这有两个阶段
ian
伊恩
is the the beauty of the super computing community the hpc community
超级计算社区和HPC社区的魅力在于
you know they are very eager first adopters of many things right
你知道他们在很多事情上都非常热衷于率先采用。

so that's a good thing uh right that there is that community and we are very passionate about that that's my focus
这是件好事 有这样的社区，我们非常热衷于此 这是我的工作重点
now our goal we said is that it's not just building a bragging rights you know is at a scale computer or something
现在我们的目标是，它不只是建立一个吹嘘的权利 你知道是在一个规模的计算机或东西
we want to get this level of computing accessible to everyone
我们想让每个人都能获得这种水平的计算能力
that is intel's dna right you know the democratization of it
这就是英特尔的DNA，对吗？ 你知道它的民主化
so that's the phase two of it which you're asking as well right how do you kind of you know scale it uh as well and that's very much kind of in our thinking that every one of the technologies we pack into uh that scale is something that actually is in our regular roadmap or mainstream roadmap
所以这是第二阶段，你也在问这个问题 你怎么能把它扩大化呢？ 这也是我们的想法，我们的每一项技术都是在我们的常规路线图或主流路线图中的。
right and uh in in some shape or form and all that stuff and uh and and that's that's how we're thinking about it
是的，在某种形式下，所有这些东西，呃，这就是我们的思考方式。
it's funny you bring that up because i was going to go through some of the time scales that you went through with patrick kennedy from serve the home
你提这个问题很有意思，因为我正准备和 "服务之家 "的帕特里克-肯尼迪讨论一下你所经历的一些时间尺度。
um he's annoying because i asked for this interview before you had that drink with him late at night
他很烦人，因为我要求在你深夜和他喝酒之前接受这个采访
[Laughter]
but in that kind of interview you said it was it said three phases
但在那种采访中，你说这是三个阶段
first optimizing extra scale with next-gen xeon and gpu this year and next
首先，在今年和明年用下一代至强和GPU进行额外的优化。
second phase in 24-25 integrating xeon and xe um i think you call it a falcon product
第二阶段是在2425年整合Xeon和Xe，我想你称之为猎鹰产品。
yeah and then silicon photonics light bringer
是的，然后是硅光子学的光带。
followed by a third phase which i think with patrick you simply labeled zetta scale because it's four or five years out and intel doesn't talk about things that far out
然后是第三阶段，我想你和帕特里克简单地称为Zetta规模，因为它是四或五年后的事情，英特尔不谈论这么远的事情。
um it sounds to me like you're aligning these phases with specific products introductions into the market
在我看来，你把这些阶段与特定的产品引入市场结合起来了
is that is that fair to say that what those are going to be the main drivers
这是否可以说，这些将是主要的驱动力呢？
yeah yeah definitely right so yes
是的，是的，绝对正确，所以是的
um and uh yeah you know obviously phase one and phase two we have more clarity on the products
嗯，嗯，你知道显然第一阶段和第二阶段我们对产品有了更多的了解
right and phase three is about um the technology or roadmap right
第三阶段是关于技术或路线图的。
so when i use the word technology by the way just for kind of you know your your audience readers it is like things like things that take a long time like you know a new process technology or new packaging technology or next generation of silicon photonics
所以当我用技术这个词的时候，顺便说一下，只是为了你知道你的听众读者，就是像那些需要很长时间的东西，比如你知道新的工艺技术或新的包装技术或下一代的硅光子学。
you know those take a long time products are you know things like you know sapphire rapids an alchemist or a battle mage where we pack these technologies into an a particular architect system architecture right if that makes sense
你知道那些需要很长时间的产品是你知道的，就像你知道的蓝宝石峡谷、炼金术士或战斗法师，我们将这些技术打包到一个特定的架构系统架构中，对吗，如果这有意义的话。
yeah yeah um again also with patrick who kind of went through this 1000x improvement um and i kind of want to go through it with you just so i understand where the delineations are
是的，是的，还有帕特里克，他也经历了这个1000倍的改进 我想和你一起经历一下，让我明白其中的分界线所在
just so everybody's aware if you haven't watched uh or seen patrick's content on this definitely should check it out
如果你还没有看过帕特里克关于这个问题的内容，就应该去看看。
um but you said architecture is 16x power and thermals 2x data movement 3x and processes 5x that's about 500x on top of the 2x 2x a flop aurora system gets you your your zeta flop
但你说架构是16倍的功率和热能 2倍的数据移动 3倍的进程 5倍的速度 这大约是2倍2倍的翻转的500倍 Aurora系统让你得到你的Zeta翻转的速度
just going through some of the specific numbers the 16x for architecture is the biggest contribution to that should we think of that in pure ipc improvements
只是通过一些具体的数字，16倍的架构是最大的贡献，我们应该把它看作是纯粹的IPC改进。
or are we talking about a full spectrum of raw compute improvements combined with the paradigm shifts such as processing and memory and that sort of stuff
还是说我们谈论的是全方位的原始计算改进与范式转变相结合，比如处理和内存之类的东西？
in a combination of both i'd say but but the foundational stuff is the you know your ipc for what improvement right
我想说的是两者的结合，但基础性的东西是你知道你的IPC有什么改进吧
i mean right you know we know how to do 16x performance improvement pretty easy right relatively
我的意思是，你知道我们知道如何做16倍的性能改进是很容易的，对不对？
right so you burn the power yeah but doing it uh within uh yeah you know without burning the power is the challenge there in terms of the both architecture and microarchitectural opportunities uh that are ahead of us
对，所以你要烧掉电源 对，但是在不烧掉电源的情况下做到这一点，就架构和微架构的机会而言，这是一个挑战。
so on the power and thermal side you mentioned 2x which is you know the lowest multiplier and the ability to use both lower voltage and better cooling although i immediately heard it and thought okay we're going to start getting 800 to 1 000 what gpus so bear with me on that one
在功耗和散热方面，你提到了2倍，这是最低的乘数，能够使用更低的电压和更好的散热，虽然我一听到这个就觉得好了，我们要开始有800到1000个GPU了，所以在这个问题上要忍一忍。
but this but this sounds like uh it's more around better power management how to architect the power and the ability to you know of the process for thermal packaging and voltages
但这听起来更像是围绕着更好的电源管理 如何设计电源以及热包装和电压的能力
um but yeah that kind of moves into how architecture is done and then um the other stuff you're talking about regarding packaging and integration
是的，这就涉及到如何架构的问题，然后是你说的关于封装和集成的其他东西。
do some of these numbers overlap so significantly it's hard to tell them apart in that in that way
这些数字是否有明显的重叠，以至于很难将它们区分开来？
yeah uh you know that the accounting for this right some of them for example
是的，你知道，这个的核算是正确的，比如说，其中一些人
uh have opportunities beyond 2x on you know when we say power and thermals
呃... ...有超过2倍的机会... ...你知道当我们说到功率和热能的时候
it's also power delivery right so if you just look at the way we built computers today
这也是电力输送的问题 所以如果你看一下我们今天制造计算机的方式
right you know just the regulator losses that you have uh on on how we deliver uh current to the chip
所以如果你看一下我们今天建造计算机的方式，你就知道你有的调节器损失，以及我们如何将电流输送到芯片上。
right and with integration at system scale there there are opportunities they are uh not just kind of inter-identified opportunities
是的，随着系统规模的整合，有一些机会，它们不仅仅是那种相互识别的机会
uh you know many folks outside have called uh you know things like
呃，你知道外面有很多人叫 呃，你知道的事情，比如说
hey what if i can get higher voltage in you know can i drive lower current in across all of this stuff
嘿，如果我可以得到更高的电压，你知道我可以驱动更低的电流，跨越所有这些东西。
right so there are opportunities there that and the data center folks have been taking advantage of some of this stuff
所以有一些机会，数据中心的人一直在利用这些东西
like you know the big hyper scalers but there is more uh with integration so if
就像你知道的那些大型的超标机，但是有更多的呃，有更多的集成，所以如果
but if we you said something uh very interesting right if we viewed zetascale as a collection of components right
如果我们把Zetascale看成是一个组件的集合，对吗？
like gpus cpus you know memories and all and
比如说GPU、CPU，你知道内存和所有的东西。
each of them are fed separate power right
他们每个人都有独立的电源，对吗？
oh i have a 300 watt gpu and a 250 watt cpu and all um you know that's one way of doing the math
哦，我有一个300瓦的GPU和一个250瓦的Cpu，所有 嗯，你知道这是一种数学计算的方式
right but uh i have uh x amount of compute and y amount of uh uh you know current that i need to deliver to that compute
对，但我有X量的计算和Y量的电流，我需要提供给那个计算。
right you have uh opportunities of you know there are many losses today uh
对，你有呃机会，你知道今天有很多损失呃
because each component has its own separate delivery mechanisms and all
因为每个组件都有自己独立的传输机制和所有的
right so we waste a lot of energy because um you know we're changing the
所以我们浪费了大量的能源，因为你知道我们正在改变
the key uh idea behind all of this stuff is that the unit of compute today
所有这些东西背后的关键呃想法是，今天的计算单位
uh when you when i say unit of computer cpu is a unit of compute a single gpu is the unit of compute
当你当我说计算机的单位cpu是计算的单位时，单个gpu就是计算的单位。
there is no reason why they have to be that way
没有理由它们必须是这样的。
right i mean that's what you define for market reasons product reasons and all that stuff
对，我是说这是你为市场原因、产品原因和所有这些东西所定义的。
what if your new unit of compute is something different
如果你的新计算单位是不同的东西呢？
right you know because each unit of compute has a particular overhead
对，你知道因为每个计算单元都有一个特定的开销
right you know beyond its core compute how i deliver power to it thermals this that in cost too
对，你知道在它的核心计算之外，我如何为它提供电力，热能，这也是成本。
right you know there are a bunch of materials on on the board and all that stuff that are repetitive and all that stuff
对，你知道有一堆材料在电路板上，所有这些东西都是重复的，所有这些东西
so historically and this is one of the foundations of moore's law was integration with the integration we draw this you know extraordinary kind of you know things where now you have a supercomputer in your pocket uh in a phone
所以从历史上看，这也是摩尔定律的一个基础，就是整合，通过整合我们可以得出这样的结论，你知道非同寻常的东西，现在你的口袋里有一台超级计算机，呃，在手机里。
right no no reason that aspect of moore's law needs to stop because there's still an opportunity just even beyond transistor stuff just the integration aspect integration driving um some order of magnitude efficiencies
是的，没有理由摩尔定律的这一方面需要停止，因为还有机会，甚至超越晶体管的东西，整合方面的整合，推动一些数量级的效率。
so i was going to ask a question about silicon photonics because i think it's a really cool technology and i really think you need to amp that up a bit more i'm spending more of my brain space looking into it and and um but i know we're going short on time and i do kind of want to still cover um metaverse stuff
所以我想问一个关于硅光子学的问题 因为我认为这是一个非常酷的技术 我真的认为你需要更多的支持 我正在花更多的时间来研究它 但是我知道我们的时间很短 我还想再讲讲元空间的问题
um and one topic that straddles the two i think is one api
嗯，有一个横跨这两个领域的话题，我认为是一个API。
we just had the launch of 1.0 gold
我们刚刚发布了1.0黄金版本
um and we're looking at 2.0 3.0 over the next few years
我们刚刚推出了1.0版本的黄金版，我们正在考虑在未来几年内推出2.0版本的3.0版本。
so far what has been what's the pickup been like on one api what's the response the feedback
到目前为止，在一个api上取得的成果是什么？
but also beyond that future generations is it all just going to be about specific hardware optimizations smart compilers customer libraries can you still go into a little bit of detail though
但除此之外，未来的几代人是否都是关于特定的硬件优化，智能编译器，客户库，你还能说得更详细一点吗？
yeah sure the the pickup so far has been really good
是的，到目前为止，我们的收获非常好。
ian actually i think soon uh in a couple of weeks we'll be sharing some numbers on uh installed user base and all that stuff
Ian，我想很快，几周后我们就会分享一些关于安装用户群和所有这些东西的数字了
but uh the the key thing i'm looking forward to and we are all looking forward to is that
但我最期待的是，我们都在期待的事情是
when our gpu hardware starts becoming available through this year
当我们的GPU硬件在今年开始可用时
we expect that uh like a kind of the knee and the curve to happen right
我们期待着... ...就像一种膝盖和曲线一样，发生在
you know that's when like you know more excitement developers have been using one api like you know porting over and all
你知道那是当你知道更多兴奋的开发者一直在使用一个api，比如你知道移植和所有的东西
but they they want to test it on our new hardware right
但他们想在我们的新硬件上进行测试
and uh and i think that uh that excitement and we see that momentum coming later this year
我认为，这种兴奋和我们看到的这种势头将在今年晚些时候出现。
so beyond uh the current features of an api if you call the phase one of one api is essentially uh you know there are two aspects of it is
所以，除了目前的api的功能之外，如果你称之为api的第一阶段，基本上是......你知道它有两个方面。
right first leveraging the xeon rx86 library base for our upcoming gpus and other hardware and
首先是利用xeon rx86库的基础，用于我们即将推出的GPU和其他硬件。
second is this data parallel sim t abstraction that's popularized by cuda opencl etc etc
第二是这个数据并行模拟的抽象，由cuda opencl等普及的。
right a clean interface a clean programming model that's available to all supporting everybody's hardware and all with kind of you know intel stools and you know a real uh big investment
对，一个干净的接口，一个干净的编程模型，支持所有人的硬件，所有的都是英特尔的凳子，你知道一个真正的大投资。
so that's phase one
所以这就是第一阶段
phase two would be particularly with the architectures that i already hinted at coming right they unlock new forms of parallelism much more easier uh memory management and will make it much easier for people to write workloads that deal with you know petabytes of data as an example
第二阶段，特别是我已经暗示过的架构，他们会释放新的并行形式，更容易的内存管理，使人们更容易编写处理PB级数据的工作负载。
right and all those features will come in in the next flavors up on api 2.2 3.0 and all as the hardware evolves to make it all easy
所有这些功能都会在接下来的api2.2和3.0版本中出现，随着硬件的发展，这些功能都会变得更容易。
so going going full-on metaverse um metaverse and zest scale kind of in my mind they occupy occupy a very similar space
所以，如果要全面开展metaverse，metaverse和zest scale，在我看来，它们占据了一个非常相似的空间。
i mean it's being co-opted to essentially mean second life virtual world um iteration you know eerily reminiscent of black mirror episodes i'm not sure if you've seen um they're quite weird
我的意思是，它被用来作为第二人生虚拟世界的一部分 你知道，这让人想起了《黑镜》的剧集 我不知道你是否看过 它们很奇怪
um but you know aside from a few mentions from intel and talk from you at the real time conference in december intel hasn't said too much about it personally because i think it's still a lot of search engine buzzwords and not a lot of substance
但除了英特尔提到的几句话和你在12月的实时会议上的发言之外 英特尔没有对它说过太多，因为我认为它仍然是很多搜索引擎的流行语，没有很多实质内容
um but at the high level as a hardware vendor when does intel move from the sidelines to getting you know dipping their toe in the water yeah
但是作为一个硬件供应商，英特尔什么时候能从旁观者的角度出发，把自己的脚趾伸进水里呢？
yeah i i ian actually even though i hesitated uh using the word metaphors and other buzzwords uh you know even way back in 2018
是的，我... ...实际上，尽管我犹豫不决... ...使用隐喻和其他流行语... ...你知道，即使是在2018年的时候
you know when i came here to intel i said the thing
你知道当我来到英特尔的时候，我说的事情
that i was passionate about and what kind of got me to intel is this enabling of this fully emotional virtual world
我热衷的事情，也是让我来到英特尔的原因，就是这个完全情感化的虚拟世界的实现。
that are accessible to everyone and the amount of compute needed uh is you know like i said literally petaflops of compute petabytes of storage less than you know i said 10 milliseconds away from uh you know every human in the planet
每个人都可以访问，所需的计算量... ...就像我说的，字面上的计算量... ...存储量... ...比你知道我说的10毫秒的距离... ...你知道地球上的每一个人
uh that is the uh that's the vision mission that we are on until is on we are still on and
呃，这就是我们的愿景任务，直到现在我们还在进行。
if you actually just kind of you know think about what is a zetta scale computer or what what's an exascale computer right it is like you know one cluster of machines that you can schedule a piece of one work right i got some work to be done and i got access to x amount of machine but i can submit one job like and spray it across all these machines and get it done right fast
如果你想一想什么是Zetta规模的计算机或者什么是Exascale计算机，就像你知道一个机器集群，你可以安排一项工作，我有一些工作要做，我可以使用X数量的机器，但我可以提交一项工作，并在所有这些机器上进行喷涂，并快速完成。
when as the network latencies improve and all you you are surrounded you will be surrounded by this like i said this petaflop machines like you know every uh 10 mile radius in my in my vision or hope or dream will have an exoskele uh computer okay
当网络延迟改善，你被包围的时候 你就会被这个包围，就像我说的，这个千万亿次的机器 你知道，在我的视野里，或者希望，或者梦想，每一个10英里的半径都会有一个外骨骼的计算机，好吧
whether it is the speed of light exactly
无论是光的速度还是
right so the uh and uh um oh you mean the 10 mile radius yes
是的，所以，呃，呃... ...哦，你是说10英里的半径是的
right in fact it's yeah yeah 10 mile radius is limited by speed of light for your latencies
是的，事实上，它是的 是的，10英里的半径是由光速限制的，因为你的延迟
and that is what the computational fabric required to enable what in my vision is metaphors
这就是计算结构所需要的，以实现我所设想的隐喻。
right so there are different forms of metaphors like you know the toy cartoony stuff and all there'll be lots of interesting versions of it
对，所以有不同形式的隐喻，比如你知道的玩具，卡通之类的，会有很多有趣的版本。
they'll all be useful i i'm looking forward to it but that that kind of you know photo real immersive stuff that i can get myself in and have this conversation that you and i are having why aren't we like you know feel like we're in the same room and having a three-dimensional interaction here
他们都很有用 我很期待 但那种你知道的照片，真正的沉浸式的东西，我可以让自己置身其中，进行这样的对话，你和我为什么不喜欢，你知道的，感觉我们在同一个房间里，有一个三维的互动。
right that is the meta words that i'm looking forward to where you know it raises like you know distances it raises geographical boundaries and like you know literally put us both in the same room and uh you know me interacting with the best version of you and you interacting with the best version of me
对，这就是我期待的元语言，你知道它提高了像你知道的距离，提高了地理界限，就像你知道的那样，把我们两个放在同一个房间里，呃，你知道我和最好的你互动，你和最好的我互动。
right that is uh that is the metaphors i look forward to
对，这就是我所期待的比喻。
so intel the second part of the question is we will be you know progressively saying more things about um our you know our take on it and uh like i said at the real-time conference
所以，英特尔，问题的第二部分是，我们将逐步说出更多关于我们的事情，你知道我们对它的看法，呃，就像我在实时会议上说的那样
there are three layers the way we are looking at it the compute infrastructure layer which is fundamentally what our hardware roadmap silicon road maps you know improving per watt etc etc
我们认为有三个层次：计算基础设施层，这是我们的硬件路线图，硅路线图，你知道每瓦特的改进等等。
the second is infrastructure layer and we have been at work on uh creating an interesting uh system and uh infrastructure software there i'll be saying more about that in a in a couple of weeks
第二层是基础设施层，我们一直在努力创建一个有趣的系统和基础设施软件，我将在几周内详细介绍这个问题
we showed some demonstrations of what we've been working on at the rtc and
我们在RTC上展示了一些我们所做的工作的演示。
then the last layer is what i call intelligence layer which is how do you leverage all the new ai techniques and all how do you package them all up so that you know you effectively deliver more compute you know or more higher visual experience to a low power device more productively
最后一层是我所说的智能层，就是你如何利用所有新的AI技术和所有你如何把它们打包，以便你知道你有效地提供更多的计算，你知道或更高的视觉体验到一个低功耗的设备上，更有成效。
so that's kind of the way we're thinking about metawatts and you'll see us say and talk more about it whether we'll lean into the term meta words or web 3 or some other you know buzzword that's that's you know i'll leave it to others for that
这就是我们思考元瓦的方式，你会看到我们说更多关于它的内容，不管我们是否会倾向于元字或网络3或其他你知道的流行语，你知道我将把它留给其他人。
but we are we're working away
但我们正在努力，我们正在努力
it's uh metaverse feels like like a continuation of virtual reality with added just added layers and complexity
这就是元空间 感觉就像虚拟现实的延续，增加了层次和复杂性
so i mean the adoption of virtual reality hasn't been universal and the metaverse feels like it might become a subset of vr is is
所以我的意思是，虚拟现实的采用并不普遍，元空间感觉可能会成为虚拟现实的一个子集，是吗？

even without wearing a headset right you know i think a more immersive uh collaboration environment would have served us all well
即使不戴头盔，也是如此 我认为一个更具沉浸感的协作环境对我们都有好处
right and uh you were just uh complaining about some zoom feature that you wanted and all that stuff and i'm talking about thousand decks the zoom features
你刚才还在抱怨你想要的变焦功能，以及所有这些东西 我说的是一千块钱的变焦功能
right and um so i i am i am of the mind that like you know they'll be you will be surrounded by you know like millions of pixels one shape or form
是的，所以我认为，他们会被数以百万计的像素所包围。
okay and uh we can leverage those pixels to provide much more productive experiences than we are doing today
好的，我们可以利用这些像素来提供比我们今天更有成效的体验。
okay that that is my uh foundational thing for metabolism whether those pixels you wear them on your headset or there'll be ar vr and all
好的，这是我对新陈代谢的基本看法 不管这些像素是戴在头盔上还是有AR VR之类的东西
i think there will be one of the tools that we have right and uh you know i remember a decade ago when i was at apple like and it's like you know debate on hey why are we still building this big 27-inch panels right who cares
我认为这将是我们所拥有的工具之一，嗯，你知道我记得十年前我在苹果公司的时候，就像你知道的辩论一样，为什么我们还在制造这种大的27英寸面板呢？
right you know everybody is on the phone right
对，你知道每个人都在玩手机，对吗？
so yeah well that's interesting it's i know we're going to time and i'm really sure that we could spend two three four more hours talking about all this stuff
是的，这很有趣，我知道我们会有时间，我相信我们可以再花两三个小时来讨论这些东西
thank you raja for your time um
谢谢你，拉贾，谢谢你的时间。
good luck i'll see what those one api numbers look like um and
祝你好运，我会看看那些Api数字是什么样子的。
yeah i'll hold you to thousand x compute a lot of people are really interested in it
是的，我会坚持你的千X计算，很多人都对它感兴趣。
thanks ian [Music]
谢谢Ian[音乐]


UserAttributeSimilarityValidator does not work with djoser

When creating a new user (and possible when changing and/or resetting an existing user's password) the password validation is called in a way that's not compatible with Django's UserAttributeSimilarityValidator.
The UserAttributeSimilarityValidator is supposed to be called with the password and the user instance. Djoser only supplies the password, causing the UserAttributeSimilarityValidator to short circuit and return early (without a warning).
Since UserAttributeSimilarityValidator is in the default list of password validators in recent Django projects I would've expected it to work with Djoser as well.

Hi @jaap3
AFAIK UserAttributeSimilarityValidator is only useful if there is an authenticated user, which in case of user create or password reset is usually not true.
You are right though, that we're missing the support for such validators on PasswordSerializer and it will be fixed in 1.1 release.

@piotr-szpetkowski I don't see why that particular validator would only be useful for logged in users? It works fine in all cases when using the normal django.contrib.auth forms as it only needs access to the user instance, which doesn't even have to be saved yet.

Alright. I've finally had some time to take a proper look into the issue.
You were completely right and I guess that I've tried to resolve it quickly without putting enough effort to accurately analyze what this issue is truly about and I'm sorry about the misunderstanding.
I've pushed the d29566af17f9734f42a5a4c7f76473f118745116 which should resolve all the cases that were missing out. It would be awesome if you could verify that it solved the issue for you. I'm going to close the issue, but in case of any problems do not hesitate to open a new one / add a comment in here.


Bolt Api's client methods are unresponsive

Description
Hello I am running into a problem that is preventing my slackbot from responding to slack commands.
To give a bit of background, I am using Javascript Bolt API combined with ExpressReceiver to deploy my app via Aws Lambda.
Although I set up the installation store properly for my ExpressReceiver as instructed, when I try to use app.command is seems that the client methods don't work. For example, upon calling the client.conversations.join, the app just hangs. I checked the logs and there are no error, it just hangs...
Here's my code for reference:
const { App, ExpressReceiver, LogLevel } = require("@slack/bolt");
const serverlessExpress = require("@vendia/serverless-express");

const expressReceiver = new ExpressReceiver({
    signingSecret: process.env.SLACK_SIGNING_SECRET,
    clientId: process.env.SLACK_CLIENT_ID,
    clientSecret: process.env.SLACK_CLIENT_SECRET,
    stateSecret: "my-secret",
    scopes: [
      "chat:write",
      "commands",
      "channels:join",
      "channels:history",
      "chat:write",
      "chat:write.public",
      "groups:history",
      "im:history",
      "mpim:history",
      "reactions:write",
    ],
    installationStore: {
        // I do all the proper setting, fetching, and deletion to my database here
    },
  });

const app = new App({
    receiver: expressReceiver,
    processBeforeResponse: true,
    logLevel: LogLevel.DEBUG,
    installerOptions: {
      directInstall: true,
    },
  });

app.command("/partypoll", async ({ ack, say, body, client }) => {
    console.log("got to /partypoll", ack, say, body, client);

    await ack();

    // Code execution hangs after the following line
    await client.conversations.join({ channel: body.channel_id });
    // Further logic here to create polls goes here, but code execution never reaches this point
  })

  module.exports.handler = serverlessExpress({
    app: expressReceiver.app,
  });

Do you happen to know the best way to get through this hanging behavior so I can properly make my slack app respond to commands successfully?
What type of issue is this? (place an x in one of the [ ])

[x] bug
[ ] enhancement (feature request)
[x] question
[ ] documentation related
[x] example code related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report
Reproducible in:
package version:
{
  "name": "party-poll-v2",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "@slack/bolt": "^3.12.1",
    "@slack/oauth": "^2.5.4",
    "@vendia/serverless-express": "^4.10.1",
    "axios": "^1.1.3",
    "querystring": "^0.2.1"
  },
  "devDependencies": {
    "serverless-dotenv-plugin": "^4.0.2",
    "serverless-offline": "^10.0.2"
  }
}

node version:
v14.20.1
OS version(s):
macOS Big Sur 11.6.8 (20G730)
Steps to reproduce:

To to slackbot website
Select "Add to Slack"
Authorize
Try running a party poll command, i.e. /partypoll "What is your favorite color?" red blue green

Expected result:
User sees slackbot respond and post a poll as a message to the channel
Actual result:
User's command disappears. The slackbot is unresponsive. To the user, it appears as if nothing happened.

Hi, @adrielklein!
Thanks so much for writing in with your question! I'd like to dig deeper to see if it's an issue with the way the receivers are implemented on top of Lambda, an issue with the API call itself, or something else!
I'll need a bit more info to be able to dig in - when running the app command, are you noticing any logs indicating that the client.conversations.join API call is being executed? Are you able to run other client API methods within other event listeners, or is it just the app.command() listener that seems unable to execute the client.conversations.join function?

Hi @hello-ashleyintech so I only ever tried this within ‘app.command’ but other ‘client’ methods have the same behavior and are unresponsive. For example the method to post a message to a channel is behaving the same way.
Unfortunately I’m noticing that the logs don’t provide anything else. I don’t see an error message or even a warning, it just hangs.

Thanks for the additional info, @adrielklein 🙌  are you able to execute any functionality at all after the ack()? For example, if you were to add a console.log() after your ack() call, will it execute? I'm curious if it's an issue with executing the full function body for the listener or is an error specifically with calling the client API calls.

Yep, the code is executing past the ack. I tried console logging after that call and I saw it successfully logged

On Nov 1, 2022, at 1:01 PM, Ashley @.***> wrote:

Thanks for the additional info, @adrielklein 🙌 are you able to execute any functionality at all after the ack()? For example, if you were to add a console.log() after your ack() call, will it execute? I'm curious if it's an issue with executing the full function body for the listener or is an error specifically with calling the client API calls.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.

Thanks for looking into that! 👍 Since no errors are being thrown, it's a bit difficult for me to troubleshoot further. However, I suspect that the way that the API call is hanging due to communication issues, likely caused due to app or Lambda configurations.
After looking over your code, nothing immediately apparent is jumping out to me as the main cause. However, here are some suggested pathways you could take to troubleshoot further:

Examine if your serverlessExpress instance is correctly configured with your app settings and is exporting all of the needed information to work correctly with AWS Lambda.
If possible, you could see if there are any logs on the AWS Lambda side of things to see about getting more information about what might be happening.
Review the instructions in the AWS Lambda Deployment Guide to make sure everything is configured as needed (feel free to skip info that doesn't apply to your approach, such as using the AWSLambdaReceiver since you are using the ExpressReceiver to be able to do OAuth). I would especially pay attention to any Lambda configurations for the serverless.yml, any Slack app settings that might need to be configured, and so on, as mentioned in the guide.

If the above doesn't work, I would suggest finding a way to retrieve a more informative error message and I can help you troubleshoot further if needed!

So the only additional logging I see in my AWS logs are...
2022-11-01T19:42:31.597Z	58fff1b7-8b8f-47cd-900c-0ec1f4afcc0a	DEBUG	[DEBUG]  web-api:WebClient:3 apiCall('conversations.join') start

2022-11-01T19:42:31.597Z	58fff1b7-8b8f-47cd-900c-0ec1f4afcc0a	DEBUG	[DEBUG]  web-api:WebClient:3 will perform http request

END RequestId: 58fff1b7-8b8f-47cd-900c-0ec1f4afcc0a

So I'm not sure that really tells me anything useful. The furthest I understand from this is that ack was successfully called and  await client.conversations.join({ channel: body.channel_id }); was trying to be invoked but just started hanging, never to be completed or giving any indication of an error.

Ah much later I'm actually getting this warning in my logs:
2022-11-01T19:50:51.662Z 7d05ef90-1314-40dc-a343-33639905661f WARN [WARN] web-api:WebClient:1 http request failed write ETIMEDOUT

so perhaps that means the request to join the channel timed out for some reason 🤔

Thanks for providing those extra logs, @adrielklein! As you identified, it does look like that request is executing but not completing. It also looks like the connection to Lambda is working and that your OAuth settings, access tokens, and basic app config seems to be working since it's not throwing any auth-related errors.
Unfortunately with the ETIMEDOUT error, the only thing that indicates is that the WebClient failed to connect to the Slack API endpoint for client.conversations.join for some reason. Because of this, I'm not certain if it's a Lambda issue, an app config issue, or something in between. However, if this is occurring for all client API methods being called within your listener, that at least indicates it may be an issue with the client itself, whether from being passed through the app.command() listener or something else. You can examine what the client object looks like through your logging and also compare it to an app.client object to see if those align! You can also try calling and API method in your app.js using app.client to see if that is working as well.
The only other similar issue I found for Bolt JS that references that timeout error are this one and this one. Sadly, a cause was never identified for either, but at least for the first one, it did look like some sort of firewall issue interfering with requests being processed. You could try to look into whether there is anything running that is potentially blocking these requests from being fulfilled, whether on your end, the Lambda side, or something else in between.
Aside from troubleshooting the above, at this point, I think another helpful route might be to walk through this guide and make sure that your app settings and configurations align with what is recommended. I hope this helps and don't hesitate to reach out for any additional questions or follow ups! 🙌

Thank you @hello-ashleyintech . I see that the last link you sent is broken: https://slack.dev/bolt-js/deployments`/aws-lambda
Did you mean to send this one?

Yes, apologies @adrielklein! 🙌 The one you sent is the correct link!

Thank you @hello-ashleyintech. An update on my end which is good news and bad news.
The good news is that the slackbot successfully responded to my slash command 🎉
The bad news is that the response took very long, roughly 5 or 10 minutes after issuing the command. I will look into reasons for this level of latency but I will try to figure out if this is a problem with AWS or a problem on Slack's end.

Getting slower to the bottom of this.
I tried reproducing locally and the slackbot successfully responded to my commands in a timely manner, however after letting the server "sleep" for a bit (i.e. not giving any slash commands to my slackbot) and then issuing the command again, I got this error on my local serverless logs:
Lambda timeout.

I saw that multiple times. So it seems to be a problem with AWS Lambda not operating smoothly and being properly responsive. I'll have to look into a way to see if AWS Lambda can be configured to be more responsive. Perhaps the free tier is not reliable? Looking into it some more... 🤔

I'm also seeing [ERROR]   An incoming event was not acknowledged within 3 seconds. Ensure that the ack() argument is called in a listener.

hi, @adrielklein! Thanks so much for the updates and glad to hear you're getting closer to finding the root cause of this issue! 🎉
Based on what you described, it does seem like there's an intermittent delay with Lambda being able to execute the handler. The [ERROR] An incoming event was not acknowledged within 3 seconds. Ensure that the ack() argument is called in a listener. error that you're getting is a good indicator of that - since you are calling ack() pretty much first thing in your handler, this error shouldn't be possible if that ack() was firing properly. Please do drop more updates if you uncover a way to improve this reliability with Lambda, as I feel like any troubleshooting or findings you uncover would help devs that run into similar issues in the future 🙌
Since it seems to be an issue on the Lambda side, would you like for me to close this issue? If it's closed, you will still be able to comment updates and troubleshooting.

@hello-ashleyintech thanks so much for your help. I will close now and keep you posted on my findings 🙂

@hello-ashleyintech I finally figured out the problem after finding a helpful resource.
I just need to add processBeforeResponse: true, to my ExpressReceiver initialization. That fixed the latency problem.
To be clear, I already had processBeforeResponse: true, in my App initialization as described in the docs, but not in my ExpressReceiver initialization.
I'm not sure if it matters that it's in both, but that flag is now set to true in both places and my slash commands are behind responded to very quickly!
I see in the docs it says...
    // When using the AwsLambdaReceiver, processBeforeResponse can be omitted.
    // If you use other Receivers, such as ExpressReceiver for OAuth flow support
    // then processBeforeResponse: true is required. This option will defer sending back
    // the acknowledgement until after your handler has run to ensure your handler
    // isn't terminated early by responding to the HTTP request that triggered it.

    // processBeforeResponse: true

Maybe it should be clarified that processBeforeResponse needs to be set to true in ExpressReceiver? Just hoping another person doesn't get stuck like me.

The above PR has now been merged in! Thank you so much for taking a look!


dataframe.redivide

Analogous to da.rechunk, dd.redivide splits a dataframe across a new set of partitions
In [1]: import pandas as pd

In [2]: df = pd.DataFrame({'x': [1, 2, 3, 4, 5, 6, 7, 8]})

In [3]: import dask.dataframe as dd

In [4]: a = dd.from_pandas(df, npartitions=4)

In [5]: b = a.redivide([0, 5, 6, 7])

In [6]: a.divisions
Out[6]: (0, 2, 4, 6, 7)

In [7]: b.divisions
Out[7]: (0, 5, 6, 7)

In [8]: b._visualize()

cc @cpcloud this may interest you

I recently renamed redivide to repartition.

This looks good to me, but I'm fairly new to pandas.


Missing cloudflare_teams_list data source

Current Terraform and Cloudflare provider version
$ terraform -v
Terraform v1.6.0
on linux_amd64
provider registry.terraform.io/cloudflare/cloudflare v4.27.0
Description
When creating CF teams lists and using on a separated tf state it would be better than to hard code the value to retrieve from a cloudflare_teams_list data source.
Cloudflare support ticket: https://support.cloudflare.com/hc/en-us/requests/3194412
Currently this data source is missing from the provider.
Use cases
Already described in description above.
Potential Terraform configuration
data "cloudflare_teams_list" "some_rule" {
  account_id  = XXX
  name        = "some_rule"
}

resource "cloudflare_teams_rule" "some_rule" {
  account_id  = XXX
  name        = "YYY"
  description = "HTTP traffic not isolated in remote browser"
  enabled     = true
  precedence  = 300
  action      = "noisolate"
  filters     = ["http"]
  traffic = format(
    "any(http.request.domains[*] in $%s)",
    replace(data.cloudflare_teams_list.some_rule.id, "-", "")
  )
}

References
No response

This issue has been closed as we are now tracking this internally with service teams directly. If you would like an update or to be notified when/if the product ships with this change, please reach out to Cloudflare Support or your account team who can watch the internal feature request for you.


feat(IAM Policy Management): Add support for policy templates

PR summary

Added feature support for Enterprise IAM work, policy templates and get template assigments.
Issue: https://github.ibm.com/IAM/AM-issues/issues/1346
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Current vs new behavior

SDK adopters will be able to call policy template and assignment APIs.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

API defintion:
Staging
Prod
Test Information
Integration Tests:
platform-services-python-sdk % pytest test/integration/test_iam_policy_management_v1.py
============================================================================================== test session starts ===============================================================================================
platform darwin -- Python 3.10.8, pytest-7.2.0, pluggy-1.0.0
rootdir: /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-python-sdk
plugins: cov-2.12.1
collected 26 items

test/integration/test_iam_policy_management_v1.py ..........................                                                                                [100%]

============================================================================================== 26 passed in 10.71s ===============================================================================================

examples tests:
platform-services-python-sdk % pytest examples/test_iam_policy_management_v1_examples.py
============================================================================================== test session starts ===============================================================================================
platform darwin -- Python 3.10.8, pytest-7.2.0, pluggy-1.0.0
rootdir: /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-python-sdk
plugins: cov-2.12.1
collected 27 items

examples/test_iam_policy_management_v1_examples.py ...........................                                                                                [100%]

=============================================================================================== 27 passed in 6.64s ===============================================================================================

Latest integration tests after change:
pytest test/integration/test_iam_policy_management_v1.py
============================================================================================== test session starts ===============================================================================================
platform darwin -- Python 3.10.8, pytest-7.2.0, pluggy-1.0.0
rootdir: /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-python-sdk
plugins: cov-2.12.1
collected 26 items

test/integration/test_iam_policy_management_v1.py ..........................                                                                                [100%]

============================================================================================== 26 passed in 13.26s ===============================================================================================

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 3 committers have signed the CLA.:white_check_mark: padamstx:white_check_mark: swcolley:x: vivekj3You have signed the CLA already but the status is still pending? Let us recheck it.

:tada: This PR is included in version 0.41.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


UnknownRemoteApplicationEvent if deserialization fails

Fixes #48.
If the Jackson deserializer cannot deserialize the event payload received,
it emits an UnknownRemoteApplicationEvent that wraps the type information
expected and the raw payload. Client applications can register on events
of type UnknownRemoteApplicationEvent and handle these cases
appropriately.

@dl1ely Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@dl1ely Thank you for signing the Contributor License Agreement!

Sorry, didn't notice. I was busy fighting Netbeans "auto-formatting on save" (and losing) before resorting to Atom editor ☺. Will fix it tomorrow.

@spencergibb Whats your policy on the @author javadoc field? Do i have to add myself in the files i changed, or is this supposed to be the initial author of the file?


Timeout (OSS-Fuzz 6034)

Detailed report: https://oss-fuzz.com/testcase?key=5146728694022144

Project: json
Fuzzer: libFuzzer_json_parse_ubjson_fuzzer
Fuzz target binary: parse_ubjson_fuzzer
Job Type: libfuzzer_ubsan_json
Platform Id: linux

Crash Type: Timeout (exceeds 10 secs)
Crash Address:
Crash State:
NULL
Sanitizer: undefined (UBSAN)

Reproducer Testcase: https://oss-fuzz.com/download?testcase_id=5146728694022144

Issue filed automatically.

See https://github.com/google/oss-fuzz/blob/master/docs/reproducing.md for more information.

Note: This crash might not be reproducible with the provided testcase. That said, for the past 14 days we've been seeing this crash frequently. If you are unable to reproduce this, please try a speculative fix based on the crash stacktrace in the report. The fix can be verified by looking at the crash statistics in the report, a day after the fix is deployed. We will auto-close the bug if the crash is not seen for 14 days.

This bug is subject to a 90 day disclosure deadline. If 90 days elapse
without an upstream patch, then the bug report will automatically
become visible to the public.

When you fix this bug, please
* mention the fix revision(s).
* state whether the bug was a short-lived regression or an old bug in any stable releases.
* add any other useful information.
This information can help downstream consumers.

clusterfuzz-testcase-minimized-5146728694022144.dms.zip

I analyzed the issue: the first bytes are:
5b 245a 23 4c<PHONE_NUMBER>696917

meaning an array ([) with null-typed ($Z)<PHONE_NUMBER>974374167 elements (Lx(.h = 0x7828006828696917) should be parsed.
As the type of the elements (null) is given, no bytes have to be read - instead, the library tries to create an array with<PHONE_NUMBER>974374167 entries...

Possible fix: adding a check that size <= result.max_size() and throw an exception.

That sounds reasonable to me.


used by other modules to calculate difficult terrain

Hi,
I love your mod but I'm a little tired to calculte de mouvement of my players. I'm very interessting to know wich other modules do you recommand for calculate difficult terrain.
Thanks

I'd recommend both Drag Ruler and Terrain Ruler.  They work well with Enhanced Terrain Layer.

Thanks for your reply.


vcpkg-tool : problem with cmake tar followed by folder rename

Describe the bug
Features in use : "-compilertracking,manifests,registries,versions"
This is a very rare bug that we observe from time to time on our CI build servers. It has proved incredibly hard to reproduce on-demand.
The symptom is the following:
during the "vcpkg install" phase with registries, sometimes the build would fail with the following output:
11:26:34  -- Running vcpkg install
11:26:36  warning: attempting to set builtin baseline in both vcpkg.json and vcpkg-configuration.json
11:26:36      (only one of these should be used; the baseline from vcpkg-configuration.json will be used)C:\jenkins\slaves\516853b941de4b369fcb2ca40e4bdbe9,C:/jenkins/slaves/516853b941de4b369fcb2ca40e4bdbe9/RelWithDebInfo/coveo-cache/ports
11:26:38  A suitable version of cmake was not found (required v3.19.0). Downloading portable cmake v3.19.0...
11:26:38  Downloading cmake...
11:26:38    https://github.com/Kitware/CMake/releases/download/v3.19.2/cmake-3.19.2-win32-x86.zip -> C:\BuildTools\vcpkg\downloads\cmake-3.19.2-win32-x86.zip
11:26:38  Extracting cmake...
11:26:38  A suitable version of 7zip was not found (required v18.1.0). Downloading portable 7zip v18.1.0...
11:26:38  Downloading 7zip...
11:26:38    https://www.nuget.org/api/v2/package/7-Zip.CommandLine/18.1.0 -> C:\BuildTools\vcpkg\downloads\7-zip.commandline.18.1.0.nupkg
11:26:38  Extracting 7zip...
11:26:38  A suitable version of nuget was not found (required v5.5.0). Downloading portable nuget v5.5.0...
11:26:38  Downloading nuget...
11:26:38    https://dist.nuget.org/win-x86-commandline/v5.5.1/nuget.exe -> C:\BuildTools\vcpkg\downloads\22ea847d-nuget.exe
11:27:11  Error: while checking out port vcpkg-cmake with git tree b627b47898864ee5a880cea03b4dea64b9d81953
11:27:11  Error: while renaming C:\BuildTools\vcpkg\buildtrees\versioning\versions\vcpkg-cmake\b627b47898864ee5a880cea03b4dea64b9d81953.tmp to C:\BuildTools\vcpkg\buildtrees\versioning\versions\vcpkg-cmake\b627b47898864ee5a880cea03b4dea64b9d81953: Access is denied.

(this is the console output of our Jenkins build server)
The actual problem (Access denied) can happen with pretty much any port, it is not specific to any one. And it seems random (bad) luck; re-running the CI with the exact same conditions and the build will pass just fine. Note that in our environment, a new VM is started for every build, so it's not a case of re-using a VM, and our CI is configured for a single build executor per node, so it is not a concurrency issue.
The error string happens when vcpkg is extracting versions: the pattern is

create a temp folder
git archive to produce a tar file
cmake -E tar xf to extract the tar file inside the temp folder
rename temp folder to final name

The error is with the last step. After days of various trial-and-errors, I became convinced that the problem is due to the call to cmake -E tar xf by vcpkg; so I opened up the code of CMake, hoping to shed some light into it. And I stumbled upon this:
#ifdef WIN32
        // OK, on windows 7 after we untar some files,
        // sometimes we can not rename the directory after
        // the untar is done. This breaks the external project
        // untar and rename code.  So, by default we will wait
        // 1/10th of a second after the untar.  If CMAKE_UNTAR_DELAY
        // is set in the env, its value will be used instead of 100.
        int delay = 100;
        std::string delayVar;
        if (cmSystemTools::GetEnv("CMAKE_UNTAR_DELAY", delayVar)) {
          delay = atoi(delayVar.c_str());
        }
        if (delay) {
          cmSystemTools::Delay(delay);
        }
#endif

Ref here.
How interesting! Same problem as we have. And -- big surprise! -- adding a random sleep delay does not completely fix the issue. I added CMAKE_UNTAR_DELAY=0 in the hope of reproducing the error more often, but somehow (I can't explain it) the error happens even less often.
I open this issue because I believe some other customers might be unlucky and face the same error.
Environment

OS: Windows Server 2019 (latest patched LTS release)
Compiler: MSVC Build Tools 16.8.5
Computer : AWS EC2 with EBS-optimized storage, type C5.2xlarge.

To Reproduce
I would really like to give you a nice and easy steps to reproduce it, but I can't.
Steps to reproduce the behavior:

Have a project with vcpkg.json, including dependencies such as much of the boost libraries (they end up like 80 different packages to install)
Enable manifests, registries and versions features
cmake configure your project (this in turn calls vcpkg install)
See error
The error happens at the very beginning, before any compilation happens.

Expected behavior
The folder rename should not fail.
Failure logs
Available on-demand (ping me directly), but you won't get much more info than what's described here.
Additional context
I made a fork of vcpkg-tool to which I added a retry step. I did see my debug-log a few times, so I can attest that it does indeed fix the issue for me, but that is really not satisfying. Just adding more random sleep.
If you have some contacts inside Microsoft that could explain why the directory can't be renamed after the CMake process has returned its exit code, that would be nice.

I dig a little bit in the CMake code and I found out that they seem to use libarchive as backend. I tried to see if some issues were known about libarchive on Windows. I found many google posts about having Access is denied errors, especially with 7z, but probably that most (all?) of them are related to actual permission errors, so I'm not sure that they are useful.

I added CMAKE_UNTAR_DELAY=0 in the hope of reproducing the error more often, but somehow (I can't explain it) the error happens even less often.

I dont't think this really maps to zero delay:
https://github.com/Kitware/CMake/blob/88f5d4b24ffce8698c45a61b59ab6cde1bc00a15/Source/kwsys/SystemTools.cxx#L4225-L4227

We'll have a discuss later.

cc @strega-nil, I think we should consider about this.

We have recently upgraded our CI servers to use the latest release of vcpkg-tool (as well as update to MSVC 16.10!).
And this error happened again today, giving me random build failures. That is really annoying, so I'm making a PR about this.

I believe ran into this as well as both folders were present after I saw the error:
-- Using source at E:/vcpkg/buildtrees/c4core/src/deps/279dcee24f-d3432006da.clean
CMake Error at ports/c4core/portfile.cmake:50 (file):
file RENAME failed to rename
E:/vcpkg/buildtrees/c4core/src/deps/279dcee24f-d3432006da.clean

to
E:/vcpkg/buildtrees/c4core/src/4e0d4c0337-8aab8071b0.clean/ext/debugbreak

because: No such file or directory
Call Stack (most recent call first):
scripts/ports.cmake:142 (include)

Note to the apove mentioned ticket i opened: For me it crashes a 100% times at the same package (angle).
I tried using vcpkg install and also manifest mdoe, it doesnt work

Okay, please reopen this issue if you meet it again.


LocalAI for embeddings

Provide option to use LocalAI as local embedding engine. LocalAI must be running with installed embedding model. The selected model for embedding needs to be set in the .env file.

👀👀👀👀👀👀👀


Fail to create a channel

After node test/integration/e2e/create-channel.js, I got the following message:
info: Returning a new winston logger with default configurations
TAP version 13
#

***** End-to-end flow: create channel *****

info: [Client.js]: Failed to load user "admin" from local key value store
info: [FabricCAClientImpl.js]: Successfully constructed Fabric CA client from options - {"protocol":"http","hostname":"localhost","port":7054}
info: [FabricCAClientImpl.js]: Successfully constructed Fabric CA service client: endpoint - {"protocol":"http","hostname":"localhost","port":7054}
info: [crypto_ecdsa_aes]: This class requires a CryptoKeyStore to save keys, using the store: {"opts":{"path":"/Users/velen/.hfc-key-store"}}
not ok 1 Error: Could not parse enrollment response [404 page not found ] as JSON due to error [SyntaxError: Unexpected token pin JSON at position 4] at IncomingMessage.<anonymous> (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/node_modules/_fabric-ca-client@1.0.0-alpha@fabric-ca-client/lib/FabricCAClientImpl.js:560:14) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:185:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9)
  ---
    operator: fail
    at: cop.enroll.then.then.then.catch (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/test/unit/util.js:119:8)
    stack: |-
      Error: Error: Could not parse enrollment response [404 page not found
      ] as JSON due to error [SyntaxError: Unexpected token p in JSON at position 4]
          at IncomingMessage.<anonymous> (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/node_modules/_fabric-ca-client@1.0.0-alpha@fabric-ca-client/lib/FabricCAClientImpl.js:560:14)
          at emitNone (events.js:91:20)
          at IncomingMessage.emit (events.js:185:7)
          at endReadableNT (_stream_readable.js:974:12)
          at _combinedTickCallback (internal/process/next_tick.js:74:11)
          at process._tickCallback (internal/process/next_tick.js:98:9)
          at Test.assert [as _assert] (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/node_modules/_tape@4.9.0@tape/lib/test.js:225:54)
          at Test.bound [as _assert] (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/node_modules/_tape@4.9.0@tape/lib/test.js:77:32)
          at Test.fail (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/node_modules/_tape@4.9.0@tape/lib/test.js:318:10)
          at Test.bound [as fail] (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/node_modules/_tape@4.9.0@tape/lib/test.js:77:32)
          at cop.enroll.then.then.then.catch (/Users/velen/Desktop/blockChain/todo-app/fabric-sdk-node/test/unit/util.js:119:8)
          at process._tickCallback (internal/process/next_tick.js:103:7)
  ...

1..1
# tests 1
# pass  0
# fail  1

How did you solve this issue ?


Rainbow Boot Sequence then nothing

I have recently purchased the Lightberry HDMI Premium Kit with Raspberry Pi B+.  I have installed the files OpenELEC-RPi 4.1.5_with_hyperion_no_grabber and OpenELEC-RPi.arm-Bplus_stk1160-2.  When I switch on the RPi I get the default rainbow light sequence with 44 leds and then it attempts to replicate the colours of the input.  When I create my own hyperion config file using hypercon and overwrite the default config (using WinSCP) I get the rainbow sequence with all 96 leds which I'm using then nothing, it doesn't work with xbmc either.  Is there something simple I am missing out?  I have tried to edit the default config and also installed hyperion through Putty.  I have been emailing lightberry but to no avail.  Any help is much appreciated.
Thanks

Also I can connect through hyperion app and the effects work just not displaying the input source.


Parse string numbers as NSDecimalNumber instead of double

Code should never use floating point numbers to represent money, or any other value where exact decimal rounding is important. (See here and here for the reasons why.)
Because of this, developers often use strings to represent currency in JSON. However, SwiftyJSON’s numberValue applied to a string element parses the string as a double, thus defeating this technique. Because numberValue returns NSNumber and not Double, it’s not at all obvious to someone using SwiftyJSON that this floating point conversion happens — a potential source of dangerous bugs!
Cocoa provides NSDecimalNumber for exactly this situation, and SwiftyJSON should return it when parsing a string as a number. This patch does that.
Two notes:

The number property (as opposed to numberValue) does not even attempt to parse strings. It might make more sense for it to attempt the parsing, and return nil if the parsing fails. While potentially surprising, I have left the existing behavior in place.
NSDecimalNumber returns NaN instead of 0 if a string does not parse. This behavior arguably makes more sense. However, I’ve preserved SwiftyJSON’s existing behavior for numberValue.

@pcantrell thanks.

Quite welcome!


Update with-office-365.md

https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/6503
Added note.

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@cichur PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Add tree-sitter support for beta and nightly versions

This PR fixes semanticolor's tree-sitter support in beta and nightly builds, which is currently broken because of how the Atom's version is being checked by semver.
The problematic code snippet is semver.satisfies(atom.getVersion(), '>=1.52.0'). This works fine for regular builds, where the version string is a bare semver string like 1.59.0, but beta and nightly builds return a version string ending in ...-beta0 and ...-nightly0, resp, and semver doesn't understand them.
This results in beta and nightly users of sematicolor not having access to the tree-sitter support and always being forced to use the TM grammars.
My solution is to just use semver.coerce(atom.getVersion()) to chop off the trailing build type. Docs for coerce are at https://github.com/npm/node-semver#coercion
I've poked around at this locally and it's working just fine: semanticolor is working w/ tree-sitter grammars as expected.
Thanks!

Thanks.


dropwizard-forms: No injection source found for a parameter of type public...

As i used dropwizard1.0.5 or 1.0.3, added dropwizard-forms for multipart data, and i have configured MultipartBundle , but i still caused  No injection source found for a parameter of type public... exception
@POST
@Path("uploadFile")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_HTML)
public String uploadFile(@FormDataParam("file") InputStream file,
@FormDataParam("file") FormDataContentDisposition fileDisposition,
but if i use
@POST
@Path("uploadFile")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_HTML)
public String uploadFile(FormDataMultiPart multiPart
it works , so i don't understand why, maybe jersey should support both, can anyone help me? i thinks dropwizard does not  have clear docs about multipart data, so i'm confusing.
thanks!

Please see #1847, which uses your example to show how to use dropwizard-forms.

Closing this as OP has not responded and #1847 should been a good enough example


contribution, explanation of the if ternary

@carlos-o thank you for PR, but it looks like the checks have been failed. Could you please instead of creating a new file rather extend the existing one?


[9.3.x backport] ISPN-8813 Avoid NPE during BaseJPAFilterIndexingServiceProvider.stop()

https://issues.jboss.org/browse/ISPN-8813

Integrated, thanks Adrian!

Thanks @danberindei
The jira issue should be resolved also.


Add Sharing using magic-wormhole #46

Overview

Resolves #46
Using https://github.com/magic-wormhole/magic-wormhole to send and receive recordings

Sending compressed zip file of a given recording's screenshots via magic-wormhole

Unit Tests Created

test_export_recording_to_folder: Tests the exporting of a recording to a folder. It creates a temporary recording database file and checks that the exported zip file path is not None and exists.
test_send_file: Verifies the sending of a file. It creates a temporary file and checks that the subprocess.run() function is called with the correct arguments.
test_send_recording: Ensures the sending of a recording. It mocks the necessary functions and verifies that both export_recording_to_folder() and send_file() are called.
test_receive_recording: Validates the receiving of a recording. It mocks the subprocess.run() function and checks that it is called with the correct arguments.

Steps to QA

move your .env to root directory
After creating a recording, run these following commands in your venv environment
For sending a recording: python -m puterbot.share send --recording_id=1
For receiving a recording:

create/navigate to data/zipped
run python -m puterbot.share receive --wormhole_code=<wormhole_code>

I'm unable to run send.
steps:

recorded "testing openadapt" where I clicked around my screen and stopped recording
ran python -m openadapt.share send --recording_id=1

  File "/Users/aaron/Documents/GitHub/OpenAdapt/openadapt/share.py", line 75, in send_recording
    zip_file_path = export_recording_to_folder(recording_id)
  File "/Users/aaron/Documents/GitHub/OpenAdapt/openadapt/share.py", line 31, in export_recording_to_folder
    recording_db_path = crud.export_recording(recording_id)
  File "/Users/aaron/Documents/GitHub/OpenAdapt/openadapt/crud.py", line 209, in export_recording
    t, db_file_path = create_db(recording_id, sql)
  File "/Users/aaron/Documents/GitHub/OpenAdapt/openadapt/crud.py", line 180, in create_db
    connection.execute(sql)
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1365, in execute
    return self._exec_driver_sql(
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1669, in _exec_driver_sql
    ret = self._execute_context(
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context
    self._handle_dbapi_exception(
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
    util.raise_(
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
    raise exception
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "/Users/aaron/Documents/GitHub/OpenAdapt/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: recording.id
[SQL: INSERT INTO recording VALUES (1,<PHONE_NUMBER>.272712, 4000, 1080, 0.5, 5, 'darwin', 'testing openadapt')]
(Background on this error at: https://sqlalche.me/e/14/gkpj)

Please resolve merge conflicts 🙏

Please resolve merge conflicts 🙏

Will do :)

Ready for review! I addressed the comments you've had :)

I address the comments/asked for clarification. Ready for review :)

I'm still getting this error when I run python3 -m openadapt.share send --recording_id=1
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: recording.id
[SQL:
INSERT INTO recording
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
]
[parameters: (1,<PHONE_NUMBER>.497702, 4000, 1080, 0.5, 5, 'darwin', 'test')]
(Background on this error at: https://sqlalche.me/e/14/gkpj)

Can you run the share command in the root directory? Also make sure your .env DB_FNAME is openadapt.db

Yes, I'm still getting the issue.

I did get it working at one point, but I'm unable to reproduce this behaviour - it was after I cleared my database, which doesn't make much sense...

@0dm Thats expected behaviour because when you exported the recording db file, you essentially added the recording to that new db. If you run it again you're adding the same recording to that db file, and SQLAlchemy doesn't support adding duplicate data which is why it fails the UNIQUE CONSTRAINT.

We need to wrap everything in an exception handler and tear down, or error handling at runtime.

Added exception handling in https://github.com/OpenAdaptAI/OpenAdapt/pull/223/commits/01eef24eea31efde7dc649799e95aa0136951497
Ready for review, and all test cases pass!

I'm still getting this message
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: recording.id
[SQL:
            INSERT INTO recording
            VALUES (?, ?, ?, ?, ?, ?, ?, ?)
        ]
[parameters: (1,<PHONE_NUMBER>.060668, 4000, 1080, 0.5, 5, 'darwin', 'test')]
(Background on this error at: https://sqlalche.me/e/14/gkpj)

I can't seem to fix this

What does your .env file look like? Can you remove the DB_FNAME line and then try it? Also delete you recording_1.db and then it should work.

oh.. it just works today now. I've done nothing different, this is weird.
one suggestion: check for keyboardinterrupt so we can delete these files

then, I think we're good for merging

@0dm Those .env files are intentionally generated so you have a backup .env. I'm not too sure what you mean by checking for keyboard interrupt. I already have keyboard interrupt exceptions that delete any db/zip files that were created and also revert the environment if Ctrl + C during the command.

when we run share send and interrupt with ctrl+c, we produce one of these backups when they aren't really needed then. we should clean up the backup since no export happened.

@0dm Addressed in https://github.com/OpenAdaptAI/OpenAdapt/pull/223/commits/e675227a2a7b69a1c13b2e3c2351306ba72b5934

Ready for Review :)

@Mustaballer upon further review I found this solution, which seems a lot simpler:
https://stackoverflow.com/a/76616012
What do you think about trying to recreate the functionality in this PR using a similar pattern?

@abrichr Yeah sure I will work on this approach :)

@abrichr I have implemented the solution from the stackoverflow post. It does make it a lot simpler :)

Ready for Review!

@Mustaballer please fix merge conflicts 🙏

@abrichr I was able to resolve this issue by changing the DB_FNAME in my .env file to match the db I wanted to visualize, and then running alembic upgrade head. I successfully visualized the recording @0dm sent when I ran python -m openadapt.visualize. I can modify 'visualize_recording' to do this programmtically in share.py, or if it seems unnecessary I can add documentation for how to visualize after receiving a recording db file. What do you think?

@Mustaballer you might find persist_env useful, it was recently merged -- see config.py

@abrichr Ready for Review!

@abrichr Ready for Review!

@abrichr, the review is now ready. I've transferred the visualize function to share.py, as seen in commit 1367cb92671d5f6331e74620beeec4646f674fcc at https://github.com/OpenAdaptAI/OpenAdapt/pull/223. This change was made because visualizing any database is already feasible by altering the DB_FNAME in the .env file, rendering the previous function redundant.
Edit: the github actions fail, I will address that.


please add .NET system directives in 'write to text file' example

using System.IO;
using System.Threading.Tasks;

class WriteAllLines
{
    public static async Task ExampleAsync()
    {
        string[] lines =
        {
            "First line", "Second line", "Third line"
        };
        await File.WriteAllLinesAsync("WriteLines.txt", lines);
    }
}

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 09fbd113-dbad-8aef-4e74-151b0b7189ff
Version Independent ID: 1e02473f-562b-aa40-756e-1c147cf41041
Content: How to write to a text file - C# Programming Guide
Content Source: docs/csharp/programming-guide/file-system/how-to-write-to-a-text-file.md
Product: dotnet-csharp
Technology: csharp-fundamentals
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

namespaces are defined in each function's pages...please close.


Find the right database which the model is based on

To retrieve the InChI key and/or to use crosslinks between metabolic modeling data bases, we can try to match the identifier of the models metabolites to the IDs in different databases.

[ ] Define a function which takes a list of (all) metabolites (from a model) and compares that to the IDs in the databases we download with this function. Return the database which have the most matches for the model (and the fraction of metabolites which match)

This has been implemented in origin_databaes


Knowledge graph appears to be created, search engine says 200 documents loaded, but nothing shows in the search query

Is this a known issue? I've got some fields added, glossaries, and everything seems fine--except when I go to the search UI, nothing shows. Any tips?

This is what I mean--everything from the MyDIG UI seems fine, but the search is blank. Landmark generated the right table and was "published".

https://github.com/usc-isi-i2/dig-etl-engine/issues/265#issuecomment-423293507
@saggu would be better to add this explanation to digui instruction

@GreatYYX yeah documentation needs update. @cslovell please see this comment : https://github.com/usc-isi-i2/dig-etl-engine/issues/265#issuecomment-423612466
Basically in myDIG, you have to set whichever fields you want to be in the search form

@cslovell Are you able to search text populated in the fields. #265 (comment)


[Bug]: Error installing xformers

What happened?
Launching Web UI with arguments: --listen --xformers --enable-insecure-extension-access --theme dark --gradio-queue --clip-models-path /content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/models/CLIP --ckpt-dir /content/fused --multiple
2023-03-21 02:39:25.320406: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-03-21 02:39:27.947888: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib/python3.9/dist-packages/cv2/../../lib64:/usr/lib64-nvidia
2023-03-21 02:39:27.948111: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib/python3.9/dist-packages/cv2/../../lib64:/usr/lib64-nvidia
2023-03-21 02:39:27.948141: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.
[AddNet] Updating model hashes...
100% 10/10 [00:00<00:00, 2031.93it/s]
[AddNet] Updating model hashes...
100% 10/10 [00:00<00:00, 2341.22it/s]
all detected, remote.moe trying to connect...
all detected, cloudflared trying to connect...
Error loading script: convert_original_stable_diffusion_to_diffusers.py
Traceback (most recent call last):
File "/content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/modules/scripts.py", line 229, in load_scripts
script_module = script_loading.load_module(scriptfile.path)
File "/content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/modules/script_loading.py", line 11, in load_module
module_spec.loader.exec_module(module)
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/extensions/stable-diffusion-vid2vid/scripts/convert_original_stable_diffusion_to_diffusers.py", line 19, in
from diffusers.pipelines.stable_diffusion.convert_from_ckpt import load_pipeline_from_original_stable_diffusion_ckpt
ModuleNotFoundError: No module named 'diffusers'

Console logs
No response
Is there an existing issue for this?

[X] I have searched the existing issues and checked the recent builds/commits

Are you using the latest version of the colab notebook?

[X] Yes, i am using the latest version from the repo

Which colab notebook did you use?
then type '7th layer
Which repo branch did the colab you use comes from ?
drive
Which tunnel did you use ?
--cloudflared
What browsers do you use to access the WebUI ?
Google Chrome

hello, do you use the latest colab from the repo? check it out, it's already updated. Tell me again if the solution doesn't works

Yes, I'm using the latest version, but I still get the same error
许多
@.***
Original Email
Sender:"Etherealxx"< @.*** >;
Sent Time:2023/3/21 3:58
To:"camenduru/stable-diffusion-webui-colab"< @.*** >;
Cc recipient:"L134139"< @.*** >;"Author"< @.*** >;
Subject:Re: [camenduru/stable-diffusion-webui-colab] [Bug]: Error installingxformers (Issue #308)
hello, do you use the latest colab from the repo? check it out, it's already updated. Tell me again if the solution doesn't works
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

same problem, maybe try using old code and wait till they fix this new branches

What happened?
Launching Web UI with arguments: --listen --xformers --enable-insecure-extension-access --theme dark --gradio-queue --clip-models-path /content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/models/CLIP --ckpt-dir /content/fused --multiple 2023-03-21 02:39:25.320406: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2023-03-21 02:39:27.947888: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib/python3.9/dist-packages/cv2/../../lib64:/usr/lib64-nvidia 2023-03-21 02:39:27.948111: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib/python3.9/dist-packages/cv2/../../lib64:/usr/lib64-nvidia 2023-03-21 02:39:27.948141: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly. [AddNet] Updating model hashes... 100% 10/10 [00:00<00:00, 2031.93it/s] [AddNet] Updating model hashes... 100% 10/10 [00:00<00:00, 2341.22it/s] all detected, remote.moe trying to connect... all detected, cloudflared trying to connect... Error loading script: convert_original_stable_diffusion_to_diffusers.py Traceback (most recent call last): File "/content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/modules/scripts.py", line 229, in load_scripts script_module = script_loading.load_module(scriptfile.path) File "/content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/modules/script_loading.py", line 11, in load_module module_spec.loader.exec_module(module) File "", line 850, in exec_module File "", line 228, in _call_with_frames_removed File "/content/drive/MyDrive/stable-diffusion-webui-colab/stable-diffusion-webui/extensions/stable-diffusion-vid2vid/scripts/convert_original_stable_diffusion_to_diffusers.py", line 19, in from diffusers.pipelines.stable_diffusion.convert_from_ckpt import load_pipeline_from_original_stable_diffusion_ckpt ModuleNotFoundError: No module named 'diffusers'
Console logs
No response
Is there an existing issue for this?

[x]  I have searched the existing issues and checked the recent builds/commits

Are you using the latest version of the colab notebook?

[x]  Yes, i am using the latest version from the repo

Which colab notebook did you use?
then type '7th layer
Which repo branch did the colab you use comes from ?
drive
Which tunnel did you use ?
--cloudflared
What browsers do you use to access the WebUI ?
Go

ogle Chrome

Hi @L134139 👋 please delete this extension stable-diffusion-vid2vid maybe works

Hi @basedholychad 👋 are you also using stable-diffusion-vid2vid extension


Enable github page

Hi @flrs,
please enable ithub page for this repo, you can find the guide here and select the master branch.
After this I can change the README file to allign all links to new github page.
Thanks

Done! Let's get this thing published!


What about using babel-preset-env instead of es2015?

https://github.com/babel/babel-preset-env
You can configure it to target node also!

We'd need to compile it to support both.  What I'll do is switch up the stages, replace the fast-async thing and see where we land.
Thank you for filing these issues.


Fix ListExchangeSteps to not require a filter.

Expose the party of an ExchangeStep.
Fix documentation of fields in ListExchangeStepsRequest.Filter.
Drop unsupported fields from ListExchangeStepsRequest.Filter.

This change is

CC @kungfucraig for API changes


Added Pcolormesh with/without bounds tests.

Coverage increased (+0.09%) to 99.325% when pulling b790db236ca46abdc29d49b574a4ab47b2befc1b on bjlittle:pcolormesh-test-case into 1fffe34f843801bd82203eba12df1604919ed56c on SciTools:master.

OK. Happy to merge.  All makes sense and does good things.


feat: update argo to 2.11.6

What this PR does:
Which issue(s) this PR fixes:

Fixes onepanelio/core#
Special notes for your reviewer:
Checklist
Please check if applies

[ ] I have added/updated relevant unit tests
[ ] I have added/updated relevant documentation

Required

[x] I accept to release these changes under the Apache 2.0 License

@rushtehrani Rebased.


Question: Using cookie session

Hello.
I have question about cookie session. Is it possible to attack website, which stores session into cookie. And consequently send back this cookie for manipulation in server?
Thank you.

I think your best bet might be to use this feature of vegeta: https://github.com/tsenart/vegeta#usage-library, if you can work with go.

You might want to look at #247 as well.

Not possible at the moment.