首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

专访 Jordan 高徒 Percy Liang:如何开发连续学习的智能体

新智元:IJCAI-16大会让你感受最深的是什么?可以给我们举一两个例子吗? Liang:作为各种机器学习和自然语言处理大会的常客,我这还是第一次参加IJCAI大会。我感触最深的就是世界太大了。在IJCAI大会上,对同一个AI主题感兴趣的人有很多,而我是第一次遇到这种情况。像博弈论、逻辑编程这些主题,在IJCAI大会上得到的讨论要比在许多机器学习大会上更加全面。我一直相信,多接触其他主题有助于扩大自己的世界观,还能为自己的研究指出新方向。所以,IJCAI 大会在这方面让我很满意。 新智元:你的团队正在进行什么项目?其中最难的部分是什么,为什么? Liang:我的团队正在开展好几个关于学习和语言的不同项目,也遇到了一些困难。最难的当属深度自然语言理解。语言真的是非常强大:仅仅通过使用语言,我就能告诉你怎么去火车站、让你理解某个数学定理,写

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

说一说 SaaS 应用开发的难度在哪儿

最近做SaaS应用的很多,这种模式是未来的一种趋势,这种模式的最大好处就是云计算的好处--节约资源。网上有很多人觉得SaaS很简单,就是一个多用户租赁模式。这种认识也不能说不对,因为SaaS确实一般都采用多用户租赁模式。但这种说法非常的不全面,是一种盲人摸象。而且很多人认为SaaS 模式的架构非常简单,那就只能说他没有真正做过SaaS模式或者他们做的SaaS应用是一种非常低级的模式,根本谈不上是云计算的范畴,就是一个把局域网的东西放到了公网而已。 作为一种云计算模型,一个典型的SaaS模式需要以下三种计算模型支撑: 1)分布式计算模型 这是基本的模型,也是后两种模型的基础;现在非常火的Hadoop其实只是分布式计算模型中一种,而且并不是特别的复杂; 2)分布式数据存储和访问模型 这种模型很多,GFS,HFS,TFS都属于这类,当然一些分布式数据库包括阿里的Ocean数据库都属于这一类;分布式数据库访问和存取模型是SaaS 企业应用的基础,对于企业级的应用底层数据节点不采用数据库当然是可以的,但如果采用数据库,好处也是非常多的,至少要简单很多。现有的分布式数据库对于 SaaS应用,特别是SaaS企业应用来说采用GreenPlum这类数据库并不是不可以,但需要根据你的SaaS应用的业务本身进行权衡(主要是数据分离方式和效率的问题)。特别是牵扯到关联查询的时候,对于一个按用户分离和隔离的企业应用,如果数据节点采用关系数据库,那么80%的企业应用的关联查询都会落到一个节点中,查询的效率会比较高。如果采用分布式数据库,一般都很难做到这点,因为分布式数据库处理这类查询的时候,都需要把数据集中到一个节点进行处理,虽然可以采用一些策略来减少无效数据的传输,但往往效果不大。(分布式数据库中的A表和B表并不一定在一个数据节点的),这也是我一直以来的观点:对于分布式计算,通用往往代表着效率更低。我比较认同Google的GFS设计理念:面向应用设计接口。 3)分布式部署与运维模型 作为云计算下的SaaS应用,必须是可以支撑横向扩展(Scala out)的,而这些节点(包括应用节点和数据节点)的增加和管理完全靠人力去完成,基本是不可能的事情,因此只要是云计算模型下的SaaS应用,分布式部署与运维支撑模型就是必须的:应用程序节点的实时监控,管理和部署,数据节点的实时监控和部署,缓存节点的监控,管理和部署,文件服务器的监控,管理和部署等等。 以上三种模型就构成了SaaS应用的基础,但SaaS应用又有自己的特殊性,因为牵扯到商务逻辑、事务处理(高一致性和准确性)以及数据的整理和分离等,SaaS应用的分布式数据存储和访问往往不能简单的采用已有的一些开源分布式系统,或者一些开源的分布式数据库系统,因为在大型的 SaaS应用中,数据的分割(分布的基础)往往也不能做到单一,而数据的分割又会影响数据访问的路由策略。这就导致通用型的做法不太适合具体的需求。 SaaS 的这种基础实际上就已经非常具有技术含量了,而SaaS业务应用本身,在逻辑上就更难了,并不是访问数据库加上一个隔离字段那么简单。一般SaaS系统除了基本的多用户租赁(注意,设计SaaS的时候一定要以软隔离为基础,这样可以做到最大化的自由,而且不会影响数据库隔离和数据库实例隔离的需求 )还会牵扯到在线许可,多时区,多语言,以及功能、页面、流程的可配置。特别是更深层次的应用更会涉及到在线跨企业资源共享和流程协作的问题,处理这类问题会非常棘手。特别是SaaS在线企业级应用,你需要面对的问题会更加复杂(业务规则的分与合)。如果在做架构的时候,如果没有考虑到这些问题,后面的噩梦会很多。甚至你可能玩不转。 SaaS应用其实并不简单,哪怕就是一个CRM在线应用,也是非常具有业务和技术含量的。根据我的分析,纷享销客和销售易虽然融了不少的资,但他们的系统架构还算不上真正意义下的云计算模式下的SaaS。金蝶,用友,速达的在线应用虽然没有深入研究,但通过他们用户的一些反馈,我感觉60%的可能性是伪云计算SaaS应用。当然,如果知道内幕的,可以告诉我。 SaaS企业应用涉及的点非常多,而且很多点之间是有关联的,因此你必须在这些问题点的处理中不断地进行平衡,进行取舍。比如,采用面向服务(SOA)的架构,在一定程度上是可以减少一些复杂性,但这样一来也降低了应用系统的整体性,SOA的粒度和边界的划分就是非常重要的权衡点。 在进行企业SaaS应用架构的时候,最好先弄清以下几个点: 1) 数据隔离和数据分布的路由策略; 2) 需要做哪些业务,是否需要做用户间进行资源共享和流程协作; 3) 如果需要资源共享和协作,那么这个过程中的用户数据归属问题; 4) 企业数据的规范性和统一性问题(这会涉及到参照,统计等后续一系列问题点); ...... 很多企业喜欢利用面试的方式来偷师,用处其实并不是很大,SaaS应用的单个问题点都并不是很复杂,关键在于这些点放到一起的时候,你如何根据你自己的业务进行取舍才是关键,而这种东西,靠拉再多的人来面试都是解决不了问题的,原因非常简单:不懂的人跟你讲,你会被误导,而真正懂的人给你讲的也未必适合于你的应用,如果你结合你的问题去问别人,别人也未必是hellokitty。 本文作者:hawksoft 来源:51CTO

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

《Android应用开发攻略》——2.4 在用户旋转设备时保存数据

2.4 在用户旋转设备时保存数据 Ian Darwin2.4.1 问题当用户旋转设备时,Android通常销毁并重新创建当前活动。你希望在这一周期中保留某些数据,但是在此期间活动中的所有字段都将丢失。2.4.2 解决方案对此有多种解决方案。如果所有数据都由简单类型组成(包括String),或者是Serializable类型,就可以在传入的Bundle的onSaveInstanceState()中保存数据。另一种解决方案是在活动中返回一个任意的对象,实现onRetainNonConfigurationInstance()保存某些值;在onCreate()接近结束的地方调用getLastNonConfigurationInstance()查看是否有过去保存的值,如果有,相应地为字段赋值。2.4.3 讨论使用onSaveInstanceS

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

《Android应用开发攻略》——2.11 设置首次运行的首选项

2.11 设置首次运行的首选项 Ashwini Shahapurkar2.11.1 问题因为应用程序匿名收集应用程序使用情况,所以你有义务在用户第一次运行应用程序时告知他们。2.11.2 解决方案将共享的首选项作为持久性存储,保存一个只更新一次的值。每次应用程序启动时,它就会检查首选项中的该值,如果该值已经设置(可用),应用程序就不是第一次运行;否则,就是第一次运行。2.11.3 讨论可以使用Android框架的Application类管理应用程序生命周期。我们将使用共享的首选项,作为保存首次运行值的持久性存储。在第一次运行时在首选项中存储一个boolean标志。当应用程序第一次安装和使用时,没有任何可用的首选项,创建该标志。在这种情况下,该标志返回真值(true)。在获得真值之后,可以将其更新为假值(false),因为不再需要它为

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

《Android应用开发攻略》——2.14 备份Android应用程序数据

2.14 备份Android应用程序数据 Pratik Rupwal2.14.1 问题当用户恢复出厂设置或者改用新的Android设备时,应用程序丢失存储数据或者应用程序设置。2.14.2 解决方案Android的Backup Manager(备份管理器)能够在应用程序重新安装时自动恢复备份数据或者应用程序设置。2.14.3 讨论Android的备份管理器本质上以两种模式运行——备份和恢复。在备份操作期间,备份管理器(BackuManager类)询问应用程序所要备份的数据,并将其放入一个备份传输中,备份传输负责将数据发送到基于云的存储中。在恢复操作期间,备份管理器从备份传输中读取备份数据,并将其返回给应用程序,以便将数据恢复到设备上。应用程序可以请求恢复,但是在应用程序安装且与用户关联的备份数据存在时,Android并不一定执行恢复

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

《Android应用开发攻略》——1.10 引用程序库实现外部功能

1.10 引用程序库实现外部功能 Rachee Singh1.10.1 问题你需要在源代码中引用外部程序库。1.10.2 解决方案获取你所需要的程序库JAR文件,并将其添加到你的项目中。1.10.3 讨论举一个例子,你可能需要在应用程序中使用AndroidPlot(一个用于绘制图表和图形的程序库)或者OpenStreetMap(创建和提供免费地理数据和地图的wiki项目)。这样,应用程序就必须引用这些程序库。可以在Eclipse中以几个简单的步骤完成这一工作:1 . 下载你希望使用的程序库对应的JAR文件。2 . 在Eclipse中创建Android项目后,右击项目名称并选择菜单中的Properties(属性),如图1-18所示。3 . 从左侧的列表中选择Java Build Path(Java构建路径)并单

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Spring

Spring

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册