首页 文章 精选 留言 我的

精选列表

搜索[官方],共10000篇文章
优秀的个人博客,低调大师

Google地图官方API-在地图上绘图(自定义符号)

符号介绍当您想在标记上使用基于矢量的图标或将图像添加到折线时,符号非常有用 。 标记支持栅格图像和矢量图像的使用。请参阅有关自定义标记图标的文档 。A 是可以显示在或对象上的基于矢量的图像 。符号的形状由使用SVG路径符号的路径定义 。虽然是唯一必需的属性,但该 对象支持多种属性,使您可以自定义视觉外观,例如笔触和填充的颜色和粗细。请参阅下面的属性列表。 SymbolMarkerPolylinepathSymbol 通过SymbolPath 该类可以使用几个预定义的符号。请参阅下面的列表。 符号的属性请注意,a的默认行为Symbol取决于它出现在标记还是折线上而略有不同。这些差异在下面的属性列表中描述。 A Symbol支持以下属性: path(必填)是定义符号形状的路径。您可以在其中使用预定义的路径之一,也可以使用 SVG路径符号定义自定义路径 。注意:折线上的矢量路径必须适合22x22px的正方形。如果路径中包括该正方形以外的点,则必须将符号的属性调整为分数值(例如0.2),以使生成的缩放点适合正方形。 google.maps.SymbolPathscaleanchor设置符号相对于标记或折线的位置。符号路径的坐标分别通过锚点的x和y坐标向左和向上转换。默认情况下,符号锚定在(0, 0)。位置用与符号路径相同的坐标系表示。fillColor是符号填充的颜色(即笔触边界的区域)。支持所有CSS3颜色,但扩展的命名颜色除外。对于标记上的符号,默认值为“黑色”。对于折线上的符号,默认值为相应折线的笔触颜色。fillOpacity定义符号填充的相对不透明度(即缺乏透明度)。值的范围是0.0(完全透明)到1.0(完全不透明)。默认值为0.0。rotation是旋转符号的角度,顺时针以度表示。默认情况下,符号标记的旋转度为0,折线上的符号旋转了其所处边缘的角度。在多段线上设置符号的旋转将固定符号的旋转,使其不再跟随直线的曲线。scale设置符号缩放的数量。对于符号标记,默认比例为1。缩放后,符号可以为任意大小。对于折线上的符号,默认比例为折线的笔划粗细。缩放后,符号必须位于以符号锚点为中心的22x22px正方形内。strokeColor是符号轮廓的颜色。支持所有CSS3颜色,但扩展的命名颜色除外。对于标记上的符号,默认值为“黑色”。对于折线上的符号,默认颜色是折线的笔触颜色。strokeOpacity确定符号笔划的相对不透明度(即缺乏透明度)。值的范围是0.0(完全透明)到1.0(完全不透明)。对于符号标记,默认值为1.0。对于折线上的符号,默认值为折线的笔触不透明度。strokeWeight定义符号轮廓的粗细。默认值为scale符号的。预定义符号Maps JavaScript API提供了一些内置符号,您可以通过该类将其添加到标记或折线中 。 SymbolPath 默认符号包括一个圆圈和两种类型的箭头。向前和向后箭头均可用。这对于折线特别有用,因为折线上的符号方向是固定的。正向被认为是在多义线的终点方向。 您可以使用任何默认符号选项来修改预定义符号的笔触或填充。 包括以下预定义符号: 名称 描述 例google.maps.SymbolPath.CIRCLE 一个圆圈。 google.maps.SymbolPath.BACKWARD_CLOSED_ARROW 向后所有方向都闭合的箭头。 google.maps.SymbolPath.FORWARD_CLOSED_ARROW 在所有侧面均闭合的向前箭头。 google.maps.SymbolPath.BACKWARD_OPEN_ARROW 在一侧打开的向后箭头。 google.maps.SymbolPath.FORWARD_OPEN_ARROW 一侧打开的向前箭头。 向标记添加符号要在标记上显示基于矢量的图标 Symbol,请将具有所需路径的对象文字传递 到标记的 icon属性。 下面的示例使用预定义的矢量路径之一创建一个图标。 // This example uses a symbol to add a vector-based icon to a marker.// The symbol uses one of the predefined vector paths ('CIRCLE') supplied by the// Google Maps JavaScript API. function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: {lat: -25.363882, lng: 131.044922} }); var marker = new google.maps.Marker({ position: map.getCenter(), icon: { path: google.maps.SymbolPath.CIRCLE, scale: 10 }, draggable: true, map: map }); } 查看示例。 以下示例使用 SVG路径符号 为标记创建自定义图标。 // This example uses SVG path notation to add a vector-based symbol// as the icon for a marker. The resulting icon is a star-shaped symbol// with a pale yellow fill and a thick yellow border. function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: {lat: -25.363882, lng: 131.044922} }); var goldStar = { path: 'M 125,5 155,90 245,90 175,145 200,230 125,180 50,230 75,145 5,90 95,90 z', fillColor: 'yellow', fillOpacity: 0.8, scale: 1, strokeColor: 'gold', strokeWeight: 14 }; var marker = new google.maps.Marker({ position: map.getCenter(), icon: goldStar, map: map });} 查看示例。 向折线添加符号要在折线上显示符号,请设置对象的icons[]属性PolylineOptions。该icons[]数组采用一个或多个对象文字,具有以下属性: IconSequence icon(required)是要在线上渲染的符号。offset确定距要渲染图标的行的起点的距离。该距离可以表示为线条长度的百分比(例如,“ 50%”),也可以表示为像素(例如,“ 50px”)。默认值为“ 100%”。repeat确定行中连续图标之间的距离。该距离可以表示为线条长度的百分比(例如,“ 50%”),也可以表示为像素(例如,“ 50px”)。要禁用重复图标,请指定“ 0”。默认值为“ 0”。注意:如果折线是测地线(也就是说,如果其geodesic属性设置为true)offset,repeat 则默认指定为米和米的距离。将像素值offset或 设置为repeat像素值将导致在屏幕上以像素为单位计算距离。结合使用符号和PolylineOptions类,您可以对地图上折线的外观和感觉进行大量控制。以下是您可以应用的一些自定义示例。 箭使用该IconSequence.offset属性可将箭头添加到折线的起点或终点。 // Define a symbol using a predefined path (an arrow)// supplied by the Google Maps JavaScript API.var lineSymbol = { path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW}; // Create the polyline and add the symbol via the 'icons' property.var line = new google.maps.Polyline({ path: [{lat: 22.291, lng: 153.027}, {lat: 18.291, lng: 153.027}], icons: [{ icon: lineSymbol, offset: '100%' }], map: map}); 查看示例。 虚线通过将折线的不透明度设置为0,并以规则的时间间隔在该线上覆盖不透明的符号,可以实现虚线效果。 // Define a symbol using SVG path notation, with an opacity of 1.var lineSymbol = { path: 'M 0,-1 0,1', strokeOpacity: 1, scale: 4}; // Create the polyline, passing the symbol in the 'icons' property.// Give the line an opacity of 0.// Repeat the symbol at intervals of 20 pixels to create the dashed effect.var line = new google.maps.Polyline({ path: [{lat: 22.291, lng: 153.027}, {lat: 18.291, lng: 153.027}], strokeOpacity: 0, icons: [{ icon: lineSymbol, offset: '0', repeat: '20px' }], map: map}); 查看示例。 自定义路径自定义符号允许您向折线添加许多不同的形状。 // Define the custom symbols. All symbols are defined via SVG path notation.// They have varying stroke color, fill color, stroke weight,// opacity and rotation properties. var symbolOne = { path: 'M -2,0 0,-2 2,0 0,2 z', strokeColor: '#F00', fillColor: '#F00', fillOpacity: 1 }; var symbolTwo = { path: 'M -1,0 A 1,1 0 0 0 -3,0 1,1 0 0 0 -1,0M 1,0 A 1,1 0 0 0 3,0 1,1 0 0 0 1,0M -3,3 Q 0,5 3,3', strokeColor: '#00F', rotation: 45 }; var symbolThree = { path: 'M -2,-2 2,2 M 2,-2 -2,2', strokeColor: '#292', strokeWeight: 4 }; // Create the polyline and add the symbols via the 'icons' property. var line = new google.maps.Polyline({ path: [{lat: 22.291, lng: 153.027}, {lat: 18.291, lng: 153.027}], icons: [ { icon: symbolOne, offset: '0%' }, { icon: symbolTwo, offset: '50%' }, { icon: symbolThree, offset: '100%' } ], map: map }); 查看示例。 动画符号您可以通过使用DOM的window.setInterval()功能以固定间隔更改符号的偏移量来沿路径设置符号动画 。 // This example adds an animated symbol to a polyline. function initMap() { var map = new google.maps.Map(document.getElementById('map'), { center: {lat: 20.291, lng: 153.027}, zoom: 6, mapTypeId: 'terrain' }); // Define the symbol, using one of the predefined paths ('CIRCLE') // supplied by the Google Maps JavaScript API. var lineSymbol = { path: google.maps.SymbolPath.CIRCLE, scale: 8, strokeColor: '#393' }; // Create the polyline and add the symbol to it via the 'icons' property. var line = new google.maps.Polyline({ path: [{lat: 22.291, lng: 153.027}, {lat: 18.291, lng: 153.027}], icons: [{ icon: lineSymbol, offset: '100%' }], map: map }); animateCircle(line);} // Use the DOM setInterval() function to change the offset of the symbol// at fixed intervals.function animateCircle(line) { var count = 0; window.setInterval(function() { count = (count + 1) % 200; var icons = line.get('icons'); icons[0].offset = (count / 2) + '%'; line.set('icons', icons); }, 20);} 查看示例。

优秀的个人博客,低调大师

鸿蒙系统引出一个巨大骗局,华为官方进行辟谣

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 鸿蒙系统作为我国一套自主研发的手机操作系统,不仅承载着全体中国人民和国内企业的希望和自豪,也承载着国内手机操作系统的使命。如果鸿蒙系统能够成功地满足我们的期望,那么鸿蒙系统未来会因此成名。相反,一旦鸿蒙体系不令人满意,我认为就会很少有人为此买单。即使是一个爱国的公民,也可能没有多少人愿意为这种爱国主义付出代价。 万事开头难,华为鸿蒙系统不可能一开始就达到如今安卓和iOS已达到的高度,所以未来的生态建设仍然困难,不过好在有消息称鸿蒙系统会很快发布,因为网站也都建立了,那么这个全新的为鸿蒙系统建立的网站如何呢。 进入以后,网站十分的简陋,网站页面的优化也不是很好,主要提供了一些有关鸿蒙系统的信息,包括系统的白皮书,并且还有鸿蒙系统文件下载的入口,另外,方舟编译器作为华为系统层面的自主研发底层代码,也有相关的下载信息出现在了网站上。 但是网站整体看上去很别扭,有些图片出现了拉伸的现象,果不其然,这个华为鸿蒙系统的官网是个假的,冒充的,已经被华为内部人员否定。 说实话,很多人都以为网站是真的,因为对于一个新的操作系统,而且是国产的,很多人都非常期待,所以就会出现很多人容易相信的现象。大家都知道,现如今的手机操作系统市场是被安卓和iOS统治的,鸿蒙系统要想进入这么一个生态,虽寄予厚望,但出现夭折的可能性非常大。 华为的副董事长胡厚��在此次的MWC 2019大会旗舰表示,华为手机目前都在使用安卓系统,华为也一直是安卓生态的支持者,现在能使用的华为手机系统都不会受到影响,鸿蒙系统发布时间暂时还未定;这就表明鸿蒙系统仍然处于孕育期,至于孕育的时间,也就是发布的时间还没有定下来。

优秀的个人博客,低调大师

2018-05-14 代码考古-Python3官方教程字典例程

知乎原链 Data Structures中的第一个例程: >>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'sape': 4139, 'guido': 4127, 'jack': 4098} >>> tel['jack'] 4098 >>> del tel['sape'] >>> tel['irv'] = 4127 >>> tel {'guido': 4127, 'irv': 4127, 'jack': 4098} >>> list(tel.keys()) ['irv', 'guido', 'jack'] >>> sorted(tel.keys()) ['guido', 'irv', 'jack'] >>> 'guido' in tel True >>> 'jack' not in tel False 大多数读者也许都认为这些字符串和数字并没有特别意义. 如果真是这样, 这个例程还不如用 dict = {'aa': 100, 'bb': 200} 之类来的一目了然, 省去多余的猜度. 不巧发现"guido"是Python创作者的名字(Guido van Rossum), 就觉得不该这么简单. 根据python源码27年前的commit6fc178f46d40aa068a713b509904d343ee55cfa6, 这个教程中的示例代码是Guido本人编写的. 因此与他1991年8月附近的经历应该有关. 接着找到他的简历中的: From 1986 till 1991 I was with the Amoeba project, headed by Sape Mullender 发现Sape也是人名, 基本可以确定是他的同事的名字. 接下去搜到这里"Open Software Foundation"文末, Sape Mullender的电话是+20-592 4139, 可以印证例程中的变量tel应该指的是当时他们的电话号码后四位. 接着找到Jack的号码: +31 20 592 4098 另外还找到Guido用过4127这一号码, 也许这是CWI那时的一个多人号码, 如此文, 就能解释这个代码示例中还有"irv"也映射到了这个号码. 原来, 这是一个电话簿. 考虑到Python创造之初, 主要用户都是Guido的同事, 也是当时他写教程的读者, 这个示例代码对于他们来说是很容易理解的. 但随着几十年Python的推广, 它的含义也就被掩埋了. 英文代码风格中不提倡缩写名词挺合理的. 如果原例程中的变量名是phone或者telephone, 也会比tel好理解一些. 字符串的首字母大写也会更易于理解它们是人名. 汉化示例代码时, 打算就用"电话簿"作变量名.

优秀的个人博客,低调大师

京东一天离职 400 员工,官方表示系有人造谣

此前有消息称京东员工一天之间离职 400 人,京东 28 日对此做出回应,表示该消息纯属谣言,并指出有个别人员和机构有组织地将企业正常人员流动进行夸大,严重侵害了京东的名誉权,给京东造成了极其严重的负面影响,直接违反多项法律规定。 京东还表示目前仅 2019 届大学应届毕业生签约人数就超过 1300 人,并将于未来三个月内陆续入职,同时京东今年还将扩招 1.5 万个岗位。 “谣言的散布者罔顾事实、抹黑民营企业,严重影响了行业健康发展,我们呼吁国家相关主管机构对此一查到底,给企业一个健康、透明与公平的发展环境。” 附声明全文:

优秀的个人博客,低调大师

Redisson官方文档 - 8. 分布式锁和同步器

8.1. 可重入锁(Reentrant Lock) 基于Redis的Redisson分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口。 RLock lock = redisson.getLock("anyLock"); // 最常见的使用方法 lock.lock(); 大家都知道,如果负责储存这个分布式锁的Redis节点宕机以后,而且这个锁正好处于锁住的状态时,这个锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogTimeout来另行指定。 另外Redisson还通过加锁的方法提供了leaseTime的参数来指定加锁的时间。超过这个时间后锁便自动解开了。 // 加锁以后10秒钟自动解锁 // 无需调用unlock方法手动解锁 lock.lock(10, TimeUnit.SECONDS); // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS); ... lock.unlock(); Redisson同时还为分布式锁提供了异步执行的相关方法: RLock lock = redisson.getLock("anyLock"); lock.lockAsync(); lock.lockAsync(10, TimeUnit.SECONDS); Future<Boolean> res = lock.tryLockAsync(100, 10, TimeUnit.SECONDS); RLock对象完全符合Java的Lock规范。也就是说只有拥有锁的进程才能解锁,其他进程解锁则会抛出IllegalMonitorStateException错误。但是如果遇到需要其他进程也能解锁的情况,请使用分布式信号量Semaphore 对象. 8.2. 公平锁(Fair Lock) 基于Redis的Redisson分布式可重入公平锁也是实现了java.util.concurrent.locks.Lock接口的一种RLock对象。它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程。 RLock fairLock = redisson.getFairLock("anyLock"); // 最常见的使用方法 fairLock.lock(); 大家都知道,如果负责储存这个分布式锁的Redis节点宕机以后,而且这个锁正好处于锁住的状态时,这个锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogTimeout来另行指定。 另外Redisson还通过加锁的方法提供了leaseTime的参数来指定加锁的时间。超过这个时间后锁便自动解开了。 // 10秒钟以后自动解锁 // 无需调用unlock方法手动解锁 fairLock.lock(10, TimeUnit.SECONDS); // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res = fairLock.tryLock(100, 10, TimeUnit.SECONDS); ... fairLock.unlock(); Redisson同时还为分布式可重入公平锁提供了异步执行的相关方法: RLock fairLock = redisson.getFairLock("anyLock"); fairLock.lockAsync(); fairLock.lockAsync(10, TimeUnit.SECONDS); Future<Boolean> res = fairLock.tryLockAsync(100, 10, TimeUnit.SECONDS); 8.3. 联锁(MultiLock) 基于Redis的Redisson分布式联锁RedissonMultiLock对象可以将多个RLock对象关联为一个联锁,每个RLock对象实例可以来自于不同的Redisson实例。 RLock lock1 = redissonInstance1.getLock("lock1"); RLock lock2 = redissonInstance2.getLock("lock2"); RLock lock3 = redissonInstance3.getLock("lock3"); RedissonMultiLock lock = new RedissonMultiLock(lock1, lock2, lock3); // 同时加锁:lock1 lock2 lock3 // 所有的锁都上锁成功才算成功。 lock.lock(); ... lock.unlock(); 大家都知道,如果负责储存某些分布式锁的某些Redis节点宕机以后,而且这些锁正好处于锁住的状态时,这些锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogTimeout来另行指定。 另外Redisson还通过加锁的方法提供了leaseTime的参数来指定加锁的时间。超过这个时间后锁便自动解开了。 RedissonMultiLock lock = new RedissonMultiLock(lock1, lock2, lock3); // 给lock1,lock2,lock3加锁,如果没有手动解开的话,10秒钟后将会自动解开 lock.lock(10, TimeUnit.SECONDS); // 为加锁等待100秒时间,并在加锁成功10秒钟后自动解开 boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS); ... lock.unlock(); 8.4. 红锁(RedLock) 基于Redis的Redisson红锁RedissonRedLock对象实现了Redlock介绍的加锁算法。该对象也可以用来将多个RLock对象关联为一个红锁,每个RLock对象实例可以来自于不同的Redisson实例。 RLock lock1 = redissonInstance1.getLock("lock1"); RLock lock2 = redissonInstance2.getLock("lock2"); RLock lock3 = redissonInstance3.getLock("lock3"); RedissonRedLock lock = new RedissonRedLock(lock1, lock2, lock3); // 同时加锁:lock1 lock2 lock3 // 红锁在大部分节点上加锁成功就算成功。 lock.lock(); ... lock.unlock(); 大家都知道,如果负责储存某些分布式锁的某些Redis节点宕机以后,而且这些锁正好处于锁住的状态时,这些锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogTimeout来另行指定。 另外Redisson还通过加锁的方法提供了leaseTime的参数来指定加锁的时间。超过这个时间后锁便自动解开了。 RedissonRedLock lock = new RedissonRedLock(lock1, lock2, lock3); // 给lock1,lock2,lock3加锁,如果没有手动解开的话,10秒钟后将会自动解开 lock.lock(10, TimeUnit.SECONDS); // 为加锁等待100秒时间,并在加锁成功10秒钟后自动解开 boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS); ... lock.unlock(); 8.5. 读写锁(ReadWriteLock) 基于Redis的Redisson分布式可重入读写锁RReadWriteLock Java对象实现了java.util.concurrent.locks.ReadWriteLock接口。同时还支持自动过期解锁。该对象允许同时有多个读取锁,但是最多只能有一个写入锁。 RReadWriteLock rwlock = redisson.getLock("anyRWLock"); // 最常见的使用方法 rwlock.readLock().lock(); // 或 rwlock.writeLock().lock(); 大家都知道,如果负责储存这个分布式锁的Redis节点宕机以后,而且这个锁正好处于锁住的状态时,这个锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogTimeout来另行指定。 另外Redisson还通过加锁的方法提供了leaseTime的参数来指定加锁的时间。超过这个时间后锁便自动解开了。 // 10秒钟以后自动解锁 // 无需调用unlock方法手动解锁 rwlock.readLock().lock(10, TimeUnit.SECONDS); // 或 rwlock.writeLock().lock(10, TimeUnit.SECONDS); // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res = rwlock.readLock().tryLock(100, 10, TimeUnit.SECONDS); // 或 boolean res = rwlock.writeLock().tryLock(100, 10, TimeUnit.SECONDS); ... lock.unlock(); 8.6. 信号量(Semaphore) 基于Redis的Redisson的分布式信号量(Semaphore)Java对象RSemaphore采用了与java.util.concurrent.Semaphore相似的接口和用法。 RSemaphore semaphore = redisson.getSemaphore("semaphore"); semaphore.acquire(); //或 semaphore.acquireAsync(); semaphore.acquire(23); semaphore.tryAcquire(); //或 semaphore.tryAcquireAsync(); semaphore.tryAcquire(23, TimeUnit.SECONDS); //或 semaphore.tryAcquireAsync(23, TimeUnit.SECONDS); semaphore.release(10); semaphore.release(); //或 semaphore.releaseAsync(); 8.7. 可过期性信号量(PermitExpirableSemaphore) 基于Redis的Redisson可过期性信号量(PermitExpirableSemaphore)是在RSemaphore对象的基础上,为每个信号增加了一个过期时间。每个信号可以通过独立的ID来辨识,释放时只能通过提交这个ID才能释放。 RPermitExpirableSemaphore semaphore = redisson.getPermitExpirableSemaphore("mySemaphore"); String permitId = semaphore.acquire(); // 获取一个信号,有效期只有2秒钟。 String permitId = semaphore.acquire(2, TimeUnit.SECONDS); // ... semaphore.release(permitId); 8.8. 闭锁(CountDownLatch) 基于Redisson的Redisson分布式闭锁(CountDownLatch)Java对象RCountDownLatch采用了与java.util.concurrent.CountDownLatch相似的接口和用法。 RCountDownLatch latch = redisson.getCountDownLatch("anyCountDownLatch"); latch.trySetCount(1); latch.await(); // 在其他线程或其他JVM里 RCountDownLatch latch = redisson.getCountDownLatch("anyCountDownLatch"); latch.countDown();

优秀的个人博客,低调大师

WiseCloud成为全球首批Kubernetes官方认证平台产品-睿云智合

11月13日美国时间,CNCF在旧金山正式对外发布Kubernetes软件一致性项目,并对外公布了包括睿云智合WiseCloud在内的全球32家率先通过认证测试的平台产品及Kubernetest分发版。这意味着,睿云智合的容器云平台产品在云原生领域受到国际权威机构认可。 CNCF基金会由谷歌联合其他20家公司在2015年成立,现在是隶属于Linux基金会的非营利性组织。CNCF致力于开源云原生云项目的管理,旨在发展合作伙伴和开源社区,共同推动Kubernetes以及容器计算的发展,其成员包括Docker、Google、Intel、RedHat、IBM等国际知名科技公司。 KubernetesConformanceProgram是CNCF刚刚推出的Kubernetes分发版或云平台的一致性测试项目。通过测试的Kubernetes的认证平台产品可以为企业组织带来信心。意味着他们所使用的平台产品紧跟Kubernetes快速发展的步伐,同时也表明他们可以使用原生Kubernetes最新的通用功能。该计划还包括提供强有力的保证,保证通过Kubernetes认证商业供应商将继续发布新版本,以确保客户能够享受快速发展的Kubernetes功能。 WiseCloud支持Docker、Kubernetes等主流容器调度引擎,也引入Rancher等企业级容器管理平台,提供开发、测试、发布、持续运营等容器化应用的全生命周期管理。面对多容器集群管理平台,WiseCloud能提供完善的容器管理平台基础性服务,包括容器网络,存储服务等,对各种容器集群平台的资源进行统一抽象。此外,WiseCloud未来将逐步支持行业应用架构和接口标准/规范,比如常用行业应用中间件、基于微服务的行业应用商店、已开发好的行业应用SaaS服务等。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册