精华内容
下载资源
问答
  • UX: Actions menus rework

    2020-12-09 14:26:13
    This is bad UX, but with the ideas above it will get worse (more clicks will be needed), so it will be important to remember the selected top option upon submit (if that option is not the EndTurn/Pass...
  • <div><p>This is a topic that has been mentioned before in various...<img alt="image" src="https://user-images.githubusercontent.com/2104052/66517429-260ce100-eab1-11e9-849d-5ef8f2938182.png" /> <p>Edge: ...
  • - 1200 x 260 will be wide enough for the space <p><img alt="Desktop: Shopfront - About" src="https://img-blog.csdnimg.cn/img_convert/5dad6cb3db01e43b5b943dac4cb809bb.png" /></p> <p>Design details are ...
  • <p><img alt="fixed-2019-06-03--14-06-27" src="https://img-blog.csdnimg.cn/img_convert/c1a17078e6d26bbe4ff260e48c76ec9a.png" /></p> <p>feel free to tweak copy if it can be worded in a better way. </p>...
  • <p>I tried tcam-capture on an amd64 architecture Debian Buster virtual machine using VirtualBox, and I can see the gray8/y800 format available (but not gray16/y16) for a DBK 33UX178.AS, but I'...
  • 0:02:38.260,0:02:39.632 再加入洗好的榛蘑 0:02:47.185,0:02:48.863 然后转小火炖20分钟 0:02:49.248,0:02:51.652 这一步的目的是炖出鸡肉和榛蘑的香味 0:02:54.493,0:02:56.486 20分钟之后加入泡好的粉条 0:02...
  • extjs4.1 login tip

    千次阅读 2013-12-05 15:45:30
    //欢迎提示框 var tip=Ext.create('widget.uxNotification', { title: '欢迎您:'+_userName, position: 'br', width: 260, iconCls: 'ux-notification-icon-information', a
    //欢迎提示框
    			    var tip=Ext.create('widget.uxNotification', {
                        title: '欢迎您:'+_userName,
    					position: 'br',
    					width: 260,
    					iconCls: 'ux-notification-icon-information',
    					autoCloseDelay: 10000,
    					spacing: 10,
    					html: '欢迎登录“资本圈*新财富”后台管理系统<br>'+
    					      '当前时间:'+Ext.util.Format.date(new Date(),'Y/m/d H:i:s')
    				});
    	            tip.show();



      requires : [ 
          'Sharera.util.Notification'
      ],

    //window提示工具类
    Ext.define('Sharera.util.Notification', {
    	extend: 'Ext.window.Window',
    	alias: 'widget.uxNotification',
    
    	cls: 'ux-notification-window',
    	autoClose: true,
    	autoHeight: true,
    	plain: false,
    	draggable: false,
    	shadow: false,
    	focus: Ext.emptyFn,
    
    	// For alignment and to store array of rendered notifications. Defaults to document if not set.
    	manager: null,
    
    	useXAxis: false,
    
    	// Options: br, bl, tr, tl, t, l, b, r
    	position: 'br',
    
    	// Pixels between each notification
    	spacing: 6,
    
    	// Pixels from the managers borders to start the first notification
    	paddingX: 30,
    	paddingY: 10,
    
    	slideInAnimation: 'easeIn',
    	slideBackAnimation: 'bounceOut',
    	slideInDuration: 1500,
    	slideBackDuration: 1000,
    	hideDuration: 500,
    	autoCloseDelay: 7000,
    	stickOnClick: true,
    	stickWhileHover: true,
    
    	// Private. Do not override!
    	isHiding: false,
    	isFading: false,
    	destroyAfterHide: false,
    	closeOnMouseOut: false,
    
    	// Caching coordinates to be able to align to final position of siblings being animated
    	xPos: 0,
    	yPos: 0,
    
    	statics: {
    		defaultManager: {
    			el: null
    		}
    	},
    
    	initComponent: function() {
    		var me = this;
    
    		// Backwards compatibility
    		if (Ext.isDefined(me.corner)) {
    			me.position = me.corner;
    		}
    		if (Ext.isDefined(me.slideDownAnimation)) {
    			me.slideBackAnimation = me.slideDownAnimation;
    		}
    		if (Ext.isDefined(me.autoDestroyDelay)) {
    			me.autoCloseDelay = me.autoDestroyDelay;
    		}
    		if (Ext.isDefined(me.autoHideDelay)) {
    			me.autoCloseDelay = me.autoHideDelay;
    		}
    		if (Ext.isDefined(me.autoHide)) {
    			me.autoClose = me.autoHide;
    		}
    		if (Ext.isDefined(me.slideInDelay)) {
    			me.slideInDuration = me.slideInDelay;
    		}
    		if (Ext.isDefined(me.slideDownDelay)) {
    			me.slideBackDuration = me.slideDownDelay;
    		}
    		if (Ext.isDefined(me.fadeDelay)) {
    			me.hideDuration = me.fadeDelay;
    		}
    
    		// 'bc', lc', 'rc', 'tc' compatibility
    		me.position = me.position.replace(/c/, '');
    
    		me.updateAlignment(me.position);
    
    		me.setManager(me.manager);
    
    		me.callParent(arguments);
    	},
    
    	onRender: function() {
    		var me = this;
    		me.callParent(arguments);
    
    		me.el.hover(
    			function () {
    				me.mouseIsOver = true;
    			},
    			function () {
    				me.mouseIsOver = false;
    				if (me.closeOnMouseOut) {
    					me.closeOnMouseOut = false;
    					me.close();
    				}
    			},
    			me
    		);
    
    	},
    	
    	updateAlignment: function (position) {
    		var me = this;
    
    		switch (position) {
    			case 'br':
    				me.paddingFactorX = -1;
    				me.paddingFactorY = -1;
    				me.siblingAlignment = "br-br";
    				if (me.useXAxis) {
    					me.managerAlignment = "bl-br";
    				} else {
    					me.managerAlignment = "tr-br";
    				}
    				break;
    			case 'bl':
    				me.paddingFactorX = 1;
    				me.paddingFactorY = -1;
    				me.siblingAlignment = "bl-bl";
    				if (me.useXAxis) {
    					me.managerAlignment = "br-bl";
    				} else {
    					me.managerAlignment = "tl-bl";
    				}
    				break;
    			case 'tr':
    				me.paddingFactorX = -1;
    				me.paddingFactorY = 1;
    				me.siblingAlignment = "tr-tr";
    				if (me.useXAxis) {
    					me.managerAlignment = "tl-tr";
    				} else {
    					me.managerAlignment = "br-tr";
    				}
    				break;
    			case 'tl':
    				me.paddingFactorX = 1;
    				me.paddingFactorY = 1;
    				me.siblingAlignment = "tl-tl";
    				if (me.useXAxis) {
    					me.managerAlignment = "tr-tl";
    				} else {
    					me.managerAlignment = "bl-tl";
    				}
    				break;
    			case 'b':
    				me.paddingFactorX = 0;
    				me.paddingFactorY = -1;
    				me.siblingAlignment = "b-b";
    				me.useXAxis = 0;
    				me.managerAlignment = "t-b";
    				break;
    			case 't':
    				me.paddingFactorX = 0;
    				me.paddingFactorY = 1;
    				me.siblingAlignment = "t-t";
    				me.useXAxis = 0;
    				me.managerAlignment = "b-t";
    				break;
    			case 'l':
    				me.paddingFactorX = 1;
    				me.paddingFactorY = 0;
    				me.siblingAlignment = "l-l";
    				me.useXAxis = 1;
    				me.managerAlignment = "r-l";
    				break;
    			case 'r':
    				me.paddingFactorX = -1;
    				me.paddingFactorY = 0;
    				me.siblingAlignment = "r-r";
    				me.useXAxis = 1;
    				me.managerAlignment = "l-r";
    				break;
    			}
    	},
    	
    	getXposAlignedToManager: function () {
    		var me = this;
    
    		var xPos = 0;
    
    		// Avoid error messages if the manager does not have a dom element
    		if (me.manager && me.manager.el && me.manager.el.dom) {
    			if (!me.useXAxis) {
    				// Element should already be aligned vertically
    				return me.el.getLeft();
    			} else {
    				// Using getAnchorXY instead of getTop/getBottom should give a correct placement when document is used
    				// as the manager but is still 0 px high. Before rendering the viewport.
    				if (me.position == 'br' || me.position == 'tr' || me.position == 'r') {
    					xPos += me.manager.el.getAnchorXY('r')[0];
    					xPos -= (me.el.getWidth() + me.paddingX);
    				} else {
    					xPos += me.manager.el.getAnchorXY('l')[0];
    					xPos += me.paddingX;
    				}
    			}
    		}
    
    		return xPos;
    	},
    
    	getYposAlignedToManager: function () {
    		var me = this;
    
    		var yPos = 0;
    
    		// Avoid error messages if the manager does not have a dom element
    		if (me.manager && me.manager.el && me.manager.el.dom) {
    			if (me.useXAxis) {
    				// Element should already be aligned horizontally
    				return me.el.getTop();
    			} else {
    				// Using getAnchorXY instead of getTop/getBottom should give a correct placement when document is used
    				// as the manager but is still 0 px high. Before rendering the viewport.
    				if (me.position == 'br' || me.position == 'bl' || me.position == 'b') {
    					yPos += me.manager.el.getAnchorXY('b')[1];
    					yPos -= (me.el.getHeight() + me.paddingY);
    				} else {
    					yPos += me.manager.el.getAnchorXY('t')[1];
    					yPos += me.paddingY;
    				}
    			}
    		}
    
    		return yPos;
    	},
    
    	getXposAlignedToSibling: function (sibling) {
    		var me = this;
    
    		if (me.useXAxis) {
    			if (me.position == 'tl' || me.position == 'bl' || me.position == 'l') {
    				// Using sibling's width when adding
    				return (sibling.xPos + sibling.el.getWidth() + sibling.spacing);
    			} else {
    				// Using own width when subtracting
    				return (sibling.xPos - me.el.getWidth() - me.spacing);
    			}
    		} else {
    			return me.el.getLeft();
    		}
    
    	},
    
    	getYposAlignedToSibling: function (sibling) {
    		var me = this;
    
    		if (me.useXAxis) {
    			return me.el.getTop();
    		} else {
    			if (me.position == 'tr' || me.position == 'tl' || me.position == 't') {
    				// Using sibling's width when adding
    				return (sibling.yPos + sibling.el.getHeight() + sibling.spacing);				
    			} else {
    				// Using own width when subtracting
    				return (sibling.yPos - me.el.getHeight() - sibling.spacing);
    			}
    		}
    	},
    
    	getNotifications: function (alignment) {
    		var me = this;
    
    		if (!me.manager.notifications[alignment]) {
    			me.manager.notifications[alignment] = [];
    		}
    
    		return me.manager.notifications[alignment];
    	},
    
    	setManager: function (manager) {
    		var me = this;
    
    		me.manager = manager;
    
    		if (typeof me.manager == 'string') {
    			me.manager = Ext.getCmp(me.manager);
    		}
    
    		// If no manager is provided or found, then the static object is used and the el property pointed to the body document.
    		if (!me.manager) {
    			me.manager = me.statics().defaultManager;
    
    			if (!me.manager.el) {
    				me.manager.el = Ext.getBody();
    			}
    		}
    		
    		if (typeof me.manager.notifications == 'undefined') {
    			me.manager.notifications = {};
    		}
    	},
    	
    	beforeShow: function () {
    		var me = this;
    
    		if (me.stickOnClick) {
    			if (me.body && me.body.dom) {
    				Ext.fly(me.body.dom).on('click', function () {
    					me.cancelAutoClose();
    					me.addCls('notification-fixed');
    				}, me);
    			}
    		}
    
    		if (me.autoClose) {
    			me.task = new Ext.util.DelayedTask(me.doAutoClose, me);
    			me.task.delay(me.autoCloseDelay);
    		}
    
    		// Shunting offscreen to avoid flicker
    		me.el.setX(-10000);
    		me.el.setOpacity(1);
    		
    	},
    
    	afterShow: function () {
    		var me = this;
    
    		me.callParent(arguments);
    
    		var notifications = me.getNotifications(me.managerAlignment);
    
    		if (notifications.length) {
    			me.el.alignTo(notifications[notifications.length - 1].el, me.siblingAlignment, [0, 0]);
    			me.xPos = me.getXposAlignedToSibling(notifications[notifications.length - 1]);
    			me.yPos = me.getYposAlignedToSibling(notifications[notifications.length - 1]);
    		} else {
    			me.el.alignTo(me.manager.el, me.managerAlignment, [(me.paddingX * me.paddingFactorX), (me.paddingY * me.paddingFactorY)], false);
    			me.xPos = me.getXposAlignedToManager();
    			me.yPos = me.getYposAlignedToManager();
    		}
    
    		Ext.Array.include(notifications, me);
    
    		// Repeating from coordinates makes sure the windows does not flicker into the center of the viewport during animation
    		me.el.animate({
    			from: {
    				x: me.el.getX(),
    				y: me.el.getY()
    			},
    			to: {
    				x: me.xPos,
    				y: me.yPos,
    				opacity: 1
    			},
    			easing: me.slideInAnimation,
    			duration: me.slideInDuration,
    			dynamic: true
    		});
    
    	},
    	
    	slideBack: function () {
    		var me = this;
    
    		var notifications = me.getNotifications(me.managerAlignment);
    		var index = Ext.Array.indexOf(notifications, me)
    
    		// Not animating the element if it already started to hide itself or if the manager is not present in the dom
    		if (!me.isHiding && me.el && me.manager && me.manager.el && me.manager.el.dom && me.manager.el.isVisible()) {
    
    			if (index) {
    				me.xPos = me.getXposAlignedToSibling(notifications[index - 1]);
    				me.yPos = me.getYposAlignedToSibling(notifications[index - 1]);
    			} else {
    				me.xPos = me.getXposAlignedToManager();
    				me.yPos = me.getYposAlignedToManager();
    			}
    
    			me.stopAnimation();
    
    			me.el.animate({
    				to: {
    					x: me.xPos,
    					y: me.yPos
    				},
    				easing: me.slideBackAnimation,
    				duration: me.slideBackDuration,
    				dynamic: true
    			});
    		}
    	},
    
    	cancelAutoClose: function() {
    		var me = this;
    
    		if (me.autoClose) {
    			me.task.cancel();
    		}
    	},
    
    	doAutoClose: function () {
    		var me = this;
    
    		if (!(me.stickWhileHover && me.mouseIsOver)) {
    			// Close immediately
    			me.close();
    		} else {
    			// Delayed closing when mouse leaves the component.
    			me.closeOnMouseOut = true;
    		}
    	},
    
    	removeFromManager: function () {
    		var me = this;
    
    		if (me.manager) {
    			var notifications = me.getNotifications(me.managerAlignment);
    			var index = Ext.Array.indexOf(notifications, me);
    			if (index != -1) {
    				// Requires Ext JS 4.0.2
    				Ext.Array.erase(notifications, index, 1);
    
    				// Slide "down" all notifications "above" the hidden one
    				for (;index < notifications.length; index++) {
    					notifications[index].slideBack();
    				}
    			}
    		}
    	},
    
    	hide: function () {
    		var me = this;
    
    		if (me.isHiding) {
    			if (!me.isFading) {
    				me.callParent(arguments);
    				// Must come after callParent() since it will pass through hide() again triggered by destroy()
    				me.isHiding = false;
    			}
    		} else {
    			// Must be set right away in case of double clicks on the close button
    			me.isHiding = true;
    			me.isFading = true;
    
    			me.cancelAutoClose();
    
    			if (me.el) {
    				me.el.fadeOut({
    					opacity: 0,
    					easing: 'easeIn',
    					duration: me.hideDuration,
    					remove: me.destroyAfterHide,
    					listeners: {
    						afteranimate: function () {
    							me.isFading = false;
    							me.removeCls('notification-fixed');
    							me.removeFromManager();
    							me.hide(me.animateTarget, me.doClose, me);
    						}
    					}
    				});
    			}
    		}
    
    		return me;
    	},
    
    	destroy: function () {
    		var me = this;
    		if (!me.hidden) {
    			me.destroyAfterHide = true;
    			me.hide(me.animateTarget, me.doClose, me);
    		} else {
    			me.callParent(arguments);
    		}
    	}
    
    });
    


    10s就会消失

    展开全文
  • plsql连接oracle特别慢

    千次阅读 2018-11-16 14:59:08
    先简单地介绍系统的环境:是运行在 HP-UX 11.31 下的10.2.0.4的一套rac 监听采用配置,比较简单。在配置中使用的是主机名。 客户端TNSPING 测试的结果为 260ms左右。 PLSQL 连接数据库的时间,在 10s 左右。 连接上...

    监听故障(plsql 连接数据库慢)

    问题诊断分析

    先简单地介绍系统的环境:是运行在 HP-UX 11.31 下的10.2.0.4的一套rac

    1. 监听采用配置,比较简单。在配置中使用的是主机名。
    2. 客户端TNSPING 测试的结果为 260ms左右。
    3. PLSQL 连接数据库的时间,在 10s 左右。
    4. 连接上数据库后,执行 SQL 正常,SELECT返回大批量数据的速度也正常,数据库中也没有异常的 NET 方面的等待。
    5. 使用操作系统工具 PING 数据库主机,返回的结果相当快,只有几毫秒。
    6. 在数据库主机上使用TNSPING以及通过监听连接数据库,其结果与在客户端机器上一致。但是不通过监听,直接使用 sqlplus “/ as sysdba”这样的方式连接数据库,速度非常快。
    7. 检查数据库主机/etc 目录下的 resolv.conf、hosts、nsswitch.conf 等配置文件,hosts 文件没有问题,而 resolv.conf 和 nsswitch.conf 文件不存在。
    8. 检查 listener.log 文件的内容,可以发现连接数据库比较频繁。
    9. 重新启动监听后,在较短的时间段内,数据库连接速度比较快,但是很快就会回到速度非常慢的状况。检查监听进程的内存使用情况,发现消耗的内存并不多。
    10. 检查 sqlnet.log 文件内容,没有发现异常。

    如果把通过监听连接数据库看作执行一条 SQL,那么连接数据库所花的时间,可用 响应时间=服务时间+等待时间
    来计算。这里响应时间为从客户端发起数据库连接到最终连接上数据库所经过的时间,服务时间为从连接过程中监听和 Server Process 真正处理连接请求所消耗的时间,而等待时间就是在连接过程中排队等待处理的时间。

    从 listener.log 来看,监听处理一个连接的时间并不是很长,在这个文件中记录的时间戳没有精确到毫秒,平均来看在100ms 左右,平均每秒只能处理 10个连接。如果每秒的连接数在 10 个,最理想的情况每个连接请求都没有排队,那么每连接的时间为100ms 左右,然而,如果在某一时刻,有一个突发的连接高峰,将导致产生连接排队,而导致后续的连接请求所花的时间加长。假如连接队列中有 10 个请求,那么将导致后面的每个请求将需要 1100ms 左右。

    监听的工作原理

    使用 tusc 时,ps -ef | grep tnslsnr 得到监听进程 tnslsnr 的进程号(pid)。要注意的是,可能有多个tnslsnr 进程,我们所要的是父进程(ppid)为 1 的监听进程号。
    sfc12rc1:/home/oracle$ ps -ef | grep tnslsnr
    oracle 5861 1 0 Oct 1 ? 45:20 /apps/oracle/product/10.2.0/bin/tnslsnr LISTENER_SFC12RC1 -inherit
    oracle 19622 5716 0 14:05:46 pts/ta 0:00 grep tnslsnr
    1.在数据库主机上执行 tusc 命令:
    tusc –T hires –fp 5861 > 1.log
    2.在客户端使用 sqlplus 连接数据库,并得到对应的 Server Process 的进程号:
    SQL> select spid from vprocesswhereaddr=(selectpaddrfromvprocess where addr=(select paddr from vsession where sid=(select sid
    from v$mystat where rownum=1));
    spid
    ------------
    19190
    3.在数据库主机上按 CTRL+C,中止 tusc 的运行。在得到的输出文件 1.log 中,内容格式如下:
    ( Attached to process 4595 ("/apps/oracle/product/10.2.0/bin/tnslsnr LISTENER_SFC12RC1 -inherit")[64-bit] )
    1244792894.476963 [4595] read(17, 0x9fffffffffff6950, 64) … [sleeping]
    1244792894.487425 [4595] read(17, “N T P 0 1 9 1 8 5 \n”, 64) … = 11
    1244792894.488420 [4595] getpid() … = 4595 (1)
    1244792894.488498 [4595] fcntl(17, F_SETFD, 1) … = 0
    1244792894.488735 [4595] write(16, "\0\0\0= ", 4) … = 4
    1244792894.489328 [4595] write(16, "( A D D R E S S = ( P R O T O C "…, 61) … = 61
    1244792894.489445 [4595] write(16, “\0\00401”, 4) … = 4
    判断时间是否正常,实际测试确实请求队列过长,导致了连接等待时间变得很长。

    监听的连接处理过程

    在这里插入图片描述

    问题的解决
    针对这个监听的问题,解决办法有以下 3 种:
    1.将使用短连接方式的应用,修改为使用连接池方式,这是最根本最彻底的解决方案,但是却须花费很
    长的时间来修改应用。
    2.增加更多的监听,以增加监听处理能力。
    3.由于每个连接的处理时间需要 100ms 左右,时间偏长,进行优化,这个难度太大,短期内不会有效果,同时不一定能成功。根据系统的实际情况,只能以增加更多的监听来解决问题。

    监测:可以建两个表
    首先建一个表,用于存储用户登录时的会话信息。
    代码如下:
    create table LOG_INFORMATION(
    LOGON_TIME TIMESTAMP,
    HOST_NAME VARCHAR2(100),
    USERNAME VARCHAR2(40),
    SCHEMANAME VARCHAR2(40),
    SESSIONUSER VARCHAR2(40),
    IP_ADDRESS VARCHAR2(100)
    );
    然后我们建一个登录触发器来记录登录时的会话信息:
    CREATE OR REPLACE TRIGGER TR_LOGIN_RECORD
    AFTER LOGON ON DATABASE
    BEGIN
    INSERT INTO LOG_INFORMATION
    select
    systimestamp,
    sys_context(‘USERENV’, ‘HOST’),
    sys_context(‘USERENV’, ‘CURRENT_USER’),
    sys_context(‘USERENV’, ‘CURRENT_SCHEMA’),
    sys_context(‘USERENV’, ‘SESSION_USER’),
    sys_context(‘USERENV’, ‘IP_ADDRESS’)
    from dual;
    COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
    NULL;
    END;
    /
    经过一段时间后,我们再来查看记录的数据:
    SQL> select host_name,sessionuser,ip_address,count()
    from log_information group by host_name,sessionuser,ip_address
    having count(
    )>=20
    order by 4;

    展开全文
  • 欢迎大家:)无论您是Swift开发人员还是UI / UX专家,您都可以做出贡献。 执照 版权所有(c)2015 Tomasz Szulc 麻省理工学院执照 特此免费授予获得此软件和相关文档文件(“软件”)副本的任何人无限制地处理软件的...
  • <img alt="screen shot 2014-02-17 at 21 59 24" src="https://img-blog.csdnimg.cn/img_convert/631edbb5bb9fa161c807754b7d5fb260.png" /></p><p>该提问来源于开源项目:oaeproject/3akai-ux</p></div>
  • path) %}</code> line in the forloop</li><li>worse UX: as mentioned above you need to go through one more step to access the data</li></ul> <p>Slightly unrelated but we could fix #260 now by adding the...
  • <div><p>The existing popup menu lists all the notebook tabs first then shows command items below....s split up the menu for better UX. <p>New notebook action widget menu, left or right click ☰ button: ...
  • <img width="260" alt="screen shot 2019-01-09 at 2 44 44 pm" src="https://img-blog.csdnimg.cn/img_convert/661b8b33d907c6e8c1951d0f62b63697.png" /></p> <h3>Justification <p>can provide more insight here...
  • s collectively review the <code>Orgs I</code> and <code>Identities I</code> spec and UX flows. - <a href="https://www.notion.so/monadic/Basic-User-Identity-0688a802e65040778a459892d6922919">Basic User...
  • \V:\SF\TCEH9K872798Z2SY3HAR5QXPN3UX3DX8EKNP4SSAXWE286FZ2R729A6U5ESSRME2RXBSFT2UMTZZIPM93M468KVZR6D5B8SMHWC5ZAAZNF8IMDDQUPFXWAJ6ESWFC2VEHWFHYT375FJNYX74DRPCVGGP382UR6NH\37STDPC6FHD7YG2F84MY77HDSM49...
  • <p><img alt="screen shot 2018-03-21 at 2 56 25 pm" src="https://img-blog.csdnimg.cn/img_convert/88eab52c95e4bd260ec5f0b8f00659c7.png" /></p> <p>A design for this stage can be seen in #3383: <p><img ...
  • <div><h2>Issue ...<p>/CC to consider as part of 2019 CAPI <a href="https://goo.gl/forms/A01pcE5Y7UFxsYNf2">UX survey</a></p>该提问来源于开源项目:cloudfoundry/cloud_controller_ng</p></div>
  • 支持型号: UX310 - UX330 - UX330UX410 - UX430 - UX430 Asus ZenBook Flip UX360UAK 链接 链接 Asus ZenBook UX32VD 链接 链接 Asus UX32VD Asus ZenBook UX305FA 链接 链接 Asus ZenBook UX305UA ...
  • <p>I think the UX could improve a lot if we include an indicator of which column is used for the order, and which direction is used (ASC or DESC). <p>I fixed in my personal project with a little ...
  • \000\000\000\000\000P\260\356\321\374\177\000\000\000\000\000\000\000\000\000" __func__ = "_spdk_reactor_run" </code></pre> <h1>14 0x00000000005f5036 in spdk_reactors_start () at ...
  • gyEvaReKh7FqlRUdithG8q260u5gZO/Djbx7WntrnqLTtkzpyBPGJMWnz/36gPqa 0KixDg95mmXPfdIT6iFPPyXRkiwsLvWQKo+PuwVXfKHkWuaGuMfv/JwL2zdfcZ6f uza0Bul95Ebaxl+qjUhtH/tk5lA+pWpqNZX9ABEBAAGJAR8...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
热门标签
关键字:

ux260