首页 文章 精选 留言 我的

精选列表

搜索[关系代数],共10001篇文章
优秀的个人博客,低调大师

浅谈unicode编码和utf-8编码的关系

字符串编码在Python里边是经常会遇到的问题,特别是写文件以及网络传输的过程中,当调用某些函数的时候经常会遇到一些字符串编码提示错误,所以有必要弄清楚这些编码到底在搞什么鬼。 我们都知道计算机只能处理数字,文本转换为数字才能处理。计算机中8个bit作为一个字节,所以一个字节能表示最大的数字就是255。计算机是美国人发明的,而英文中涉及的编码并不多,一个字节可以表示所有字符了,所以ASCII(American national Standard Code for Information Interchange,美国国家标准信息交换码)编码就成为美国人的标准编码。但是我们都知道中文的字符肯定不止255个汉字,使用ASCII编码来处理中文显然是不够的,所以中国制定了GB2312编码,用两个字节表示一个汉字,碰到及其特殊的情况,还会用三个字节来表示一个汉字。GB2312还把ASCII包含进去了。同理,日文,韩文等上百个国家为了解决这个问题发展了一套自己的编码,于是乎标准越来越多,如果出现多种语言混合显示就一定会出现乱码。那么针对这种编码“乱象”,Unicode便应运而生了,其将所有语言统一到一套编码规则里。 Unicode有许多种编码,比如说可以通过16个bit或者32个bit来把所有语言统一到一套编码里。举个栗子,字母A用ASCII编码的十进制为65,二进制为0100 0001;汉字“中”已经超出了ASCII编码的范围,用unicode编码是20013,二进制是01001110 00101101;A用unicode编码只需要前面补0,二进制是00000000 0100 0001。可以看出,unicode不仅解决了ASCII码本身的编码问题,还解决了超出ASCII编码范围之外的其他国家字符编码的统一问题。 虽然unicode编码能做到将不同国家的字符进行统一,使得乱码问题得以解决,但是如果内容全是英文unicode编码比ASCII编码需要多一倍的存储空间,同时如果传输需要多一倍的传输。当传输文件比较小的时候,内存资源和网络带宽尚能承受,当文件传输达到上TB的时候,如果 “硬”传,则需要消耗的资源就不可小觑了。为了解决这个问题,一种可变长的编码“utf-8”就应运而生了,把英文变长1个字节,汉字3个字节,特别生僻的变成4-6个字节,如果传输大量的英文,utf8的作用就很明显了。 不过正是因为utf-8编码的可变长,一会儿一个字符串是占用一个字节,一会儿一个字符串占用两个字节,还有的占用三个及以上的字节,导致在内存中或者程序中变得不好琢磨。unicode编码虽然占用内存空间,但是在编程过程中或者在内存处理的时候会比utf-8编码更为简单,因为它始终保持一样的长度,一样的长度对于内存和代码来说,它的处理就会变得更加简单。所以utf-8编码在做网络传输和文件保存的时候,将unicode编码转换成utf-8编码,才能更好的发挥其作用;当从文件中读取数据到内存中的时候,将utf-8编码转换为unicode编码,亦为良策。 如上图所示,当需要在内存中读取文件的时候,此时将utf-8编码的内存转换为unicode编码,在内存中进行统一处理;当需要保存文件的时候,出于空间和传输效率的考虑,此时将unicode编码转换为utf-8编码。在Python中进行读取和保存文件的时候,必须要显示的指定文件编码,其余的事情就交给Python的相关库去处理就可以了。 小伙伴们,了解了这些基础知识之后,接下来对Python中的字符串编码问题的理解就轻松的多了。

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

5G和AI究竟是啥关系?

5G的大量应用,将彻底革新无人驾驶、数字医疗、VR/AR、智能城市,智能家居等众多物联网垂直行业,引爆全新的应用场景和商业模式。 随着5G标准和频谱生态环境统一发展,各个国家都加快了5G商用进程:美、日、韩在2017-2018年进行了5G试验网部署,将在2019年部署符合5G国际统一标准的设备;欧洲在2018年开展5G技术试验;中国在2016年开始5G技术研发试验,预计在2020年启动5G商用。中国5G发展已经进入到全球5G研发的第一阵营,5G的到来将不会遥远。 在英特尔专家看来,5G下的物联网应用主要会经过三个发展阶段: 第一个阶段是把终端跟网络连接起来,5G的高带宽、低时延和大连接能力,使得万物互联成为了现实。 第二个阶段是在终端设备互联之后,对整个产业和用户产生价值,并且随着时间推移,终端会得以进化,变得越来越聪明。 第三个阶段则是,当终端设备发展到海量之后,用人工智能实现控制和管理。AI赋予了这张连接一切的网络和被连接的万物新的智能,不仅掀起下一波智能的5G网络浪潮,更将使得智能化的生产和生活无处不在。 事实上,我们会发现人工智能已经悄然深入到5G各个方面。AI与5G技术深度结合,在十年、二十年甚至更长远的时间,作为一种基础设施能力,对人类的生活带来将更加长远的变化。AI与5G的互促式发展,也已经成为业界共识,而两者是如何产生相互影响的呢? 5G核心网将AI应用延伸到边缘 AI与人类处理信息的方式类似,为了加快处理速度,终端将“听”和“看”到的海量信息在边缘进行一次加工和提炼,然后到AI大脑进行统一处理。 但是受制于体积、功耗和成本,终端的处理能力有限,这些信息会在边缘数据中心利用云端更加强大的计算能力进行处理,再送往AI大脑。 为了带来更好的业务体验,5G网络将与应用和云端更加紧密结合。5G核心网分布式架构完美匹配应用延伸到边缘的需求,边缘网关将信息直接转发到边缘应用,帮助AI将应用延伸到边缘。 自动驾驶就是一个AI的典型应用,将车联网应用服务器和网关一起部署在边缘数据中心,随着车辆的移动,汽车将会从一个边缘数据中心的服务区域,移动到另外一个边缘数据中的控制区域。 为了保证服务的连续性,核心网能够快速自动地与终端和应用之间进行协同,保证在高速的移动过程中数据不丢失,因而自动驾驶车辆能够实现超低时延(1ms超低时延)的极致体验。 未来,随着AI应用被嵌入到设备、网络边缘和云,5G将承载和传输海量的人工智能数据,带动从端到端、全面的智能升级,让智能无处不在。 5G网络切片为AI打造“私人定制”网络 AI时代多种多样的应用对网络提出了不同的需求:智慧城市需要海量的连接、智慧交通需要超低的时延、智慧家庭需要超大带宽。每个AI的应用都需要一个专属的网络,根据应用需求实时动态地进行调整,满足快速变化的业务需求。 而5G核心网构建逻辑隔离的网络切片,能提供网络功能和资源按需部署的能力,来满足未来这些行业多样化的业务需求,为每个AI的应用打造一个私人定制的网络。 AI让5G核心网自治 5G为AI技术连接提供了低时延、大带宽和超大规模连接等极致体验的能力。AI技术也将应用在5G核心网中,帮助核心网实现运营、运维和运行自动化。 事实上,传统的建网方式需要半年甚至更长的时间,5G核心网将以切片的形式呈现,在运营商的网络会运行着数十个甚至上百个切片,传统依靠人工的运维模式完全不能满足5G网络切片的建设。 英特尔技术专家表示:”5G网络最大的特性之一就是高度灵活性,可以根据不同的应用场景和业务需求进行网络切片,这就要求5G网络在部署规划、运行维护等方面,具备高度的自动化和智能化,可以进行自动的网络能力编排;如果还是采用传统的网络规划、优化、部署与编排方式,是很难实现的。” 因此,5G网络切片的建设,是以AI为核心构建一个自动化的运维体系,实现对网络运行状态进行实时监控,对网络行为进行精准预测、对故障进行自动恢复,并且可以实现切片分钟级上线,满足快速变化的市场需求。 不仅如此,AI在为5G注入自知能力的同时,也为产业链打开了新的成长空间。在未来5G时代,基于数据训练的AI能够通过分析形成精准洞察,自主设计出最能满足商业目标的网络和服务,灵活适应智慧城市、智能制造、医疗、交通等多领域的需求。 虽然,目前产业链在这方面仍处于积极探索阶段,尚没有成熟的解决方案。不过,这个方向并没有错,从实际应用来看,电信运营商对自动化网络的需求非常强劲。随着技术能力的提升和应用规模的扩大,AI在5G网络运营运维领域的巨大潜力将进一步释放。 5G是基础设施,就像信息高速公路一样,它为海量的数据和信息的传递提供了可能性,同时,也带来了更高效的传输速率;而人工智能,不仅仅是云端的大脑,也是能够完成学习和进化到的神经网络,成为人类智慧的延伸。5G和AI的并肩前行,会带来下一次的工业革命吗?或许真的会。 原文发布时间为:2018-07-16本文作者:科技云报道本文来自云栖社区合作伙伴“ 科技云报道”,了解相关信息可以关注“ 科技云报道”

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

大数据和人工智能的关系是什么?

何为大数据?何为人工智能? 大数据,百度百科上是这么定义的,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 简单说,就是不是简单的将你的性别、淘宝记录啥的数据收集起来,通常做大数据的公司还会基于这些数据进行分门别类的整理,并且对整理后的数据进行分析,比如分析出你喜欢什么样的风格的衣服,你的喜好等信息。 关于大数据,IBM概括出大数据的5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。 那怎么实现上述的五大特点呢? 我们都知道,所谓大数据,就是大量的信息,利用普通的加减乘除啥的肯定会把电脑给跑废掉,不过这里的电脑不是我们用的普通的电脑,他们通常都有数据处理中心,就是高配的商业服务器。但即便高配,如果只是用简单的算法来处理,也很浪费时间。 所以这里就需要神经网络算法、机器学习等技术处理手段,软件和硬件结合起来对数据库中的数据进行处理,而使用的这些算法、机器学习等分析技术就属于人工智能。 其实人工智能是很多技术的总称,包括机器人、语言识别、图像识别、自然语言处理和专家系统等,因为人工智能尚在发展阶段,所以也没有非常精准的定义,在行业内,人工智能与大数据密不可分,可以将很多大数据的应用(云计算平台等)归结为人工智能。 原文发布时间: 2017-12-05 15:59 本文来自云栖社区合作伙伴镁客网,了解相关信息可以关注镁客网。

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

[每日bug]分辨率与系统缩放关系问题

holyshit 神圣的狗屎啊,就是这玩意,之前调成了125%:然后悲剧....为啥windows推荐125%倍放大???以为我们都是残障人士么..其实这个和浏览器放大一个道理: ctrl+滚轮等同于窗口缩放系统缩放等同于给整个屏幕"物理拉缩" 因为系统的权限一定是高于无论是浏览器还是java 所以应用程序得到的一切权限和数据都是系统给他的,也不知道真的假的. here come the question: 像素问题/????一个小窍门:eg:"" >如果是浏览器内容放大就相当于窗口缩小:像素(尺寸)减少, 在自适应页>面中就会检测到更少的width >如果是系统桌面,全部内容放大就相当于...系统分辨率的牺牲!!!! 然后导致java检测鼠标的坐标时得到windows的反馈值就是一个虚拟的屏幕坐标而不是真正的物理坐标 移动端浏览器 用chrome调试过前端的都知道,chrome可以模拟手机,比如下图模拟了iphone7plus:但是如果你把浏览器窗口强行缩小成手机的尺寸,会发现得到两个完全不一样的显示效果,很明显手机端看得更吃力一点.这就是手机端浏览器给你强行等比例缩小了,它和浏览器内核或者dom解析都无关,效果等同于眼睛原理电脑屏幕一米. 总结 缩放功能很坑爹,它是独立的一层渲染,凌驾于任何底层解析之上,也是前端人员头痛的地方之一.

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

Android系统版本SDK_INT与版本对应关系

int 1 (0x00000001) BASE October 2008: The original, first, version of Android. int 2 (0x00000001) BASE_1_1 February 2009: First Android update, officially called 1.1. int 3 (0x00000001) CUPCAKE May 2009: Android 1.5. int 10000 (0x00002710) CUR_DEVELOPMENT Magic version number for a current development build, which has not yet turned into an official release. int 5 (0x00000001) DONUT September 2009: Android 1.6. int ECLAIR November 2009: Android 2.0 Applications targeting this or a later release will get these new changes in behavior: 5 (0x00000008) TheService.onStartCommandfunction will return the newSTART_STICKYbehavior instead of the old compatibilitySTART_STICKY_COMPATIBILITY. int 6 (0x00000008) ECLAIR_0_1 December 2009: Android 2.0.1 int 7 (0x00000008) ECLAIR_MR1 January 2010: Android 2.1 int 8 (0x00000008) FROYO June 2010: Android 2.2 int GINGERBREAD November 2010: Android 2.3 Applications targeting this or a later release will get these new changes in behavior: 9 (0x00000009) The application's notification icons will be shown on the new dark status bar background, so must be visible in this situation. int 10 (0x0000000a) GINGERBREAD_MR1 February 2011: Android 2.3.3. int 11 (0x0000000b) HONEYCOMB February 2011: Android 3.0. int 12 (0x0000000c) HONEYCOMB_MR1 May 2011: Android 3.1. int 13 (0x0000000d) HONEYCOMB_MR2 June 2011: Android 3.2. int 14 (0x0000000e) ICE_CREAM_SANDWICH October 2011: Android 4.0. int 15 (0x0000000f) ICE_CREAM_SANDWICH_MR1 December 2011: Android 4.0.3. int 16 (0x00000010) JELLY_BEAN Android 4.1. 本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

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

怎么设计IOS登录页面的跳转关系

各种介绍简单的API调用的书很多,但是对于日常开发经常碰到的问题很少有介绍。我这里摘录翻译了一些大家推荐的模式,比如常见的登录窗口需求如下: -第一次启动应用程序时显示登录屏幕。登录后,转到标签栏控制器的第一个选项卡。 -任何时候他们启动应用程序,检查他们是否登录,并直接跳到根Tab键控制器的第一个选项卡。 -当他们手动点击注销按钮时,显示登录屏幕,并从视图控制器中清除所有数据。 在实现细节上: -在需要的地方检察登录状态,按需执行注销操作的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil]; -在注销时,清除钥匙串中的凭据,然后执行segue再次显示登录视图控制器。 那么通用的流程是: qpwis.jpg 在appDelegate.m里面的didFinishLaunchingWithOptions //用户认证: 检查 NSUserDefaults User credential 是否存在,引导页面跳转 if (authenticatedUser) { self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController]; } else { UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"LoginViewController"]; UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController]; self.window.rootViewController = navigation; } 在SignUpViewController.m文件中 - (IBAction)actionSignup:(id)sender { AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate]; appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController]; } 在文件MyTabThreeViewController.m - (IBAction)actionLogout:(id)sender { // 从 NSUserDefaults 和其他数据中删除用户 AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate]; UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"LoginViewController"]; UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController]; appDelegateTemp.window.rootViewController = navigation; }

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

半导体对物联网之水与鱼的关系

我们正处于现今最活跃、成长最快速的产业环境中。“人联网”(Internetofpeople)基本上已经改变了我们生活的各个层面。而网际网路的下一个世代——物联网(IoT)正快速扩展,并将于2020年连接将近500亿台装置。很快地,全球将会有比上网人口数量还多的装置与网际网路相连。 但是,若没有无线通讯连接技术,就不会有IoT生态系统的建立。IoT的基本概念是把内建感测器的各种“东西”连接在一起,这些装置涵盖了从工业和汽车设备、到消费性穿戴装置,它们可透过网际网路来交换彼此的重要讯息。功能强大的云端电脑将负责执行复杂的资料库与分析工具,以处理这些来自众多感测器节点的庞大资料量。然后,它们会为消费者、企业与机构提供宝贵的资讯与洞见。u-blox的产品组合包含所有必要的连接技术,可为各种应用提供无缝的无线解决方案,以满足连网城市、连网工业与连网汽车等各种产品日益成长的发展趋势。 以u-blox的观点来看,我们认为,在IoT连接技术开启无限可能性的同时,它也提升了使用者对连网经验的更高期望。特别是在汽车产业,智慧连网汽车的出现就是一个例子。IHS汽车产业研究团队的市场预测显示,智慧汽车市场拥有庞大的成长潜能。目前,已有2,200万台连网汽车,但是到了2022年,此数字将成长至7,700万辆,整体市占率将超过73%。这是IoT成长最快速的市场之一。 身为一家以卫星定位、短距离无线电与蜂巢式技术等无线通讯连接技术为核心业务的半导体业者,我们扮演了支持云端连网汽车发展的重要角色。u-blox的无线与定位晶片和模组已广泛运用在多种车用产品中,包括内建惯性导航(DeadReckoning;DR)解决方案的车载导航系统、整合Wi-Fi热点/路由器功能的后座娱乐等车载资讯娱乐系统、车用保险资通讯系统、欧洲近来导入的eCall紧急呼叫系统以及能与VehicletoEverything(V2X)技术互补的先进驾驶辅助系统(ADAS)等。预计到2020年,连网汽车将更上一层楼,朝无人驾驶发展。 于此同时,无线技术仍将持续演进。举例来说,我们必须让晶片变得更精巧、效能更高,同时还要降低成本与功耗。这是要求严苛的机器对机器(M2M)工业与汽车应用所必备的。像车载资通讯系统和智慧电表等装置,它们都需要能以低成本实现优异的效能。随着主要的电信业者加速在全球布署LTE网路,由于现有的2G和3G网路将逐渐淘汰,需要运作数年的装置就必须支援LTE技术,才能确保其使用寿命。为了因应这个需求,我们已开发出可支援LTECat.1的低资料传输率(10MbpsDL/5MbpsUL)蜂巢式模组,成本比标准的LTECat.4低了许多。 低功耗蓝牙,亦即BluetoothSmart(蓝牙智慧)则是另一项能为各种简易装置实现无线连接能力无所不在的突破性技术。它是专为需要网际网路连接性与超低功耗的IoT应用所设计,以便能在短距离内从固定和行动装置交换资料。例如,监控房间温度的量表或是心跳监控装置,这类装置仅需要利用跳频技术,在2.4GHzISM频段上以最小的频宽来传送资料就好。由于发射器在空中传输的时间较短,因此耗电量也较低。再加上蓝牙低功耗装置可确保快速的连接,这也是低功耗的重要关键。 创新的通讯技术正不断地推陈出新。适用于各类装置的蜂巢式技术也即将来临。新兴的窄频物联网(NB-IoT)已开始浮现,可利用授权业者的频谱来布署低功耗广域网路(LPWA),预期也将会在全球获得广泛采用。这项新技术现正进行3GPP标准化作业,可为难以触及的地区提供深度的覆盖率,并以低功耗与最佳化的网路架构支援数量庞大的低资料传输、超低成本装置。 随着市场对增强连接技术的需求日益增长,这也将推动IoT生态系统的持续演进。今年我们将看到IoT领域的多项创新进展,带来令人振奋的一年。 本文转自d1net(转载)

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

dbVisitor v6.6.0 发布,新一代数据库访问库,规则支持嵌套使用

dbVisitor 6.6.0 正式发布,本次版本更新对于框架本身是一次小小的进步,但是功能对用户的影响是深远的。核心看点有两个:1 规则允许嵌套使用了,2 新增了case/when/else 规则。这意味着你可以像写 SQL 一样在 SQL 中处理分支选择、参数判断。 从而彻底告别 XML 中杂乱无章的各种标签。 v6.6.0 (2026-01-25) <dependency> <groupId>net.hasor</groupId> <artifactId>dbvisitor</artifactId> <version>6.6.0</version> </dependency> 主要看点​ 新增 规则允许嵌套其它规则使用。 新增 规则文档,详细介绍了新增的 case/when/else 规则。 影响范围​ dbvisitor 动态 SQL 规则引擎 (@{and},@{or},@{in},@{case}等),稳定性、安全性、灵活动态 SQL 表达式的能力得到提升。 更新内容​ 新增 新增 case/when/else 规则用于实现更加灵活的分支选择。 新增 规则允许嵌套其它规则使用。 优化 优化 jdbc-elastic、jdbc-mongo、jdbc-redis 在链接获取时增加释放资源的防御性编程。 优化@{and},@{or}等规则全面解除多值限制。解除后可以适应如 in 规则的嵌套。 修复 修复MD5Rule,用于对参数进行 MD5 加密处理,不支持SqlArg类型参数的问题。 修复@{and},@{or}的空值判断逻辑,现在当条件片段中引用的所有参数均为null时,该片段会自动正确丢弃(此前行为不一致)。 修复 如果动态表达式内部包含的字符串中含有右大括号}(例如#{ '}' }),解析器可能会错误地将其识别为表达式结束符。 这会导致后续的内容被直接拼接为 SQL 片段,在特定场景下可能引发 SQL 注入风险。 修复 在引号字符串或函数参数中包含逗号,时,解析器错误地将其识别为规则分隔符的问题(如@{rule, 'a,b'}曾被错误截断) 修复 驱动适配器可能获取的属性列表不完全的问题。 文档 新增 规则文档,详细介绍了新增的 case/when/else 规则和 规则的使用方法。 重构了官网动态规则文档,增加了RulevsXML的直观对比,并补充了高级规则的详细用法。

资源下载

更多资源
Mario

Mario

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

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部分的功能。

用户登录
用户注册