cookie启用安全传输

This article was created in partnership with BlackBerry. Thank you for supporting the partners who make SitePoint possible.

本文是与BlackBerry合作创建的。 感谢您支持使SitePoint成为可能的合作伙伴。

Imagine a healthcare platform that designs the perfect treatment plan for a patient based on their medical history. Picture a chatbot that automatically generates legal appeals or resolves customer disputes in minutes.

想象一下一个医疗平台,该平台可以根据患者的病史为患者设计完美的治疗计划 。 想象一个聊天机器人可以在几分钟内自动产生法律上诉或解决客户纠纷 。

This technology already exists today, and it is just the beginning. Alongside the Enterprise of Things, we are on the verge of a second revolution. Artificial intelligence will change everything, from how we protect ourselves from cyberattacks to how we go about our daily lives. And according to Tata Consultancy Services, 84% of businesses believe AI will be essential for businesses if they are not to fall behind.

这项技术今天已经存在,这仅仅是开始。 与物联网一起 ,我们正处于第二次革命的边缘。 人工智能将改变一切,从我们保护自己免受网络攻击的方式到我们日常生活的方式 。 根据塔塔咨询服务公司(Tata Consultancy Services)的数据, 84%的企业认为,如果不落后于AI,人工智能对企业至关重要 。

打造更智能的企业-人工智能和应用开发 (Building A Smarter Enterprise – Artificial Intelligence and App Development)

Application development will be the foundation of the move towards artificial intelligence. Businesses that integrate AI into their apps will be able to provide new services and a better, more personalized user experience. They will be able to gain deeper insights into how their customers think and act, and open new revenue streams through those insights.

应用程序开发将成为迈向人工智能的基础。 将AI集成到其应用程序中的企业将能够提供新服务和更好,更个性化的用户体验 。 他们将能够深入了解客户的想法和行为,并通过这些见解打开新的收入来源。

Moreover, artificial intelligence will power new, transformative interactions between people, machines, and the Internet of Things.

而且,人工智能将推动人,机器和物联网之间新的,变革性的交互。

Through AI-driven analysis, businesses will gain a deeper understanding of their market and their staff. Automation will allow workers to respond proactively to customer complaints or security incidents, boost productivity, reduce costs, and minimize employee error. And through machine learning, businesses will be able to make better, more informed decisions than ever before.

通过AI驱动的分析,企业将对他们的市场和员工有更深入的了解。 自动化将使员工能够主动响应客户的投诉或安全事件,提高生产率,降低成本,并最大程度地减少员工错误。 通过机器学习,企业将能够做出比以往任何时候都更好,更明智的决策。

In time, people will demand such capabilities. Next-generation apps and services will be expected to not only support human-to-human interactions, but also human-to-machine and machine-to-machine interactions. Just as mobile apps are critical to business success today, artificial intelligence will be critical to success very soon.

随着时间的流逝,人们将需要这种能力。 预计下一代应用和服务不仅将支持人与人之间的交互,而且还将支持人与机器之间以及机器与机器之间的交互。 就像今天的移动应用对于企业的成功至关重要一样,人工智能将很快对成功至关重要。

克服企业AI的障碍 (Getting Past The Roadblocks to Enterprise AI)

Though most businesses acknowledge artificial intelligence’s importance, AI remains elusive. The issue is primarily one of complexity and cost. In a 2017 study by Infosys, 72% of IT professionals found time constraints were a roadblock to AI adoption, while 71% referenced financial limitations. Resistance to change and a lack of clarity around AI’s value were also hindrances.

尽管大多数企业都承认人工智能的重要性,但人工智能仍然难以捉摸。 问题主要是复杂性和成本之一 。 在Infosys于2017年进行的一项研究中 ,有72%的IT专业人员发现时间限制是采用AI的障碍,而71%的人则提到了财务限制。 对变革的抵制和对AI价值缺乏清晰性也是障碍。

Even for businesses that manage to overcome those challenges, security remains a core issue. AI apps will routinely deal with sensitive data such as customer information, internal messages, login credentials, usage details, and even intellectual property. Left unencrypted, such services could leak that data into the wrong hands.

即使对于设法克服这些挑战的企业,安全性仍然是核心问题。 AI应用程序将常规处理敏感数据,例如客户信息,内部消息,登录凭证,使用详细信息,甚至是知识产权。 如果不进行加密,此类服务可能会将数据泄漏给错误的人。

Communications Platform as a Service (CPaaS) tools are central to overcoming these challenges. By integrating real-time communications into their apps – and tying that functionality to its AI services – developers allow for better, deeper interactions between AI and user. More importantly, with the right CPaaS solution, they ensure those interactions are kept secure, and that the AI does not leak critical data.

通信平台即服务(CPaaS)工具对于克服这些挑战至关重要。 通过将实时通信集成到他们的应用程序中,并将该功能与其AI服务相关联,开发人员可以在AI与用户之间进行更好,更深入的交互。 更重要的是,使用正确的CPaaS解决方案,它们可以确保这些交互保持安全,并且AI不会泄漏关键数据。

BBM Enterprise SDK如何使您的应用更智能 (How The BBM Enterprise SDK Makes Your Apps Smarter)

Here’s where the BBM Enterprise SDK comes in for Android, iOS, and Web. A secure CPaaS platform built on BlackBerry’s strength in secure mobile messaging, it gives your developers everything they need to incorporate secure, enterprise-grade messaging functionality in their apps. You can use commonly used identity and user management providers to make development even easier.

这是用于Android,iOS和Web的BBM Enterprise SDK的来源。 一个基于BlackBerry在安全移动消息传递方面的优势的安全CPaaS平台,它为开发人员提供了将安全的企业级消息传递功能集成到其应用程序中所需的一切。 您可以使用常用的身份和用户管理提供程序来简化开发。

More importantly, it offers several features that directly empower artificial intelligence:

更重要的是,它提供了直接支持人工智能的若干功能:

  • Embedded voice, video, chat. Enable your users to reach out to anyone around the world and be reached they want, whether for emergency communications, peer-to-peer collaboration, or by receiving personalize support services.

    嵌入式语音,视频,聊天。 通过紧急通信,对等协作或通过接收个性化支持服务,使您的用户可以与世界各地的任何人联系并得到他们想要的信息。

  • Publish/Subscribe Services. Create channels which broadcast to subscribing users. This keeps them updated on all new activity in a collaboration space, whether by another user or from the machine-readable information your application consumes.

    发布/订阅服务。 创建向订阅用户广播的频道。 这可以使他们在协作空间中的所有新活动上保持最新状态,无论是其他用户还是应用程序使用的机器可读信息。

  • Chatbots and Routing Services. Provide real-time support for your users via a chatbot which can process their data, activity, and messages. This information is then used to route them to the correct contact.

    聊天机器人和路由服务。 通过聊天机器人为用户提供实时支持,该聊天机器人可以处理他们的数据,活动和消息。 然后,此信息用于将其路由到正确的联系人。

  • AI-Driven Predictive Analytics. AI algorithms enable behind-the-scenes user empowerment, delivering relevant information to users when they need it. These include location-based alerts or suggested actions based on user behavior.

    AI驱动的预测分析。 AI算法可实现幕后用户授权,并在需要时向用户提供相关信息。 这些包括基于位置的警报或基于用户行为的建议操作。

  • Secure IoT Data Sharing. Eliminate the worry of cached copies or “fingerprints in the cloud” that could compromise privacy while also supporting real-time data sharing across all endpoints – human and machine.

    安全的物联网数据共享。 消除了担心缓存副本或“云中的指纹”可能会损害隐私的担忧,同时还支持跨所有端点(人机之间)进行实时数据共享。

We suggest that you first download the free SDK and familiarize yourself with the BBM Enterprise SDK with Blackberry’s Getting Started Guide.

我们建议您首先下载免费的SDK,并通过Blackberry的《 入门指南》熟悉BBM Enterprise SDK。

Now that you’re ready, let’s dive into some examples that can help you get started with your AI journey…

现在您已经准备好,让我们深入研究一些示例,这些示例可以帮助您开始进行AI之旅...

如何通过白板创建数据流 (How to Create Data Streams via Whiteboarding)

This example shows how you can send arbitrary data in a BBM Enterprise SDK chat to create a shared whiteboard that allows us to do the following:

本示例说明了如何在BBM Enterprise SDK聊天中发送任意数据以创建共享白板,使我们可以执行以下操作:

  • Create new whiteboards with one or more users
    与一个或多个用户创建新的白板
  • Share pictures and markup
    分享图片和标记
  • Clear the whiteboard
    清除白板

This example builds on the Basic Setup that uses Google OpenID Connect. Note: To use the Whiteboard example, you must complete the setup steps in the Prerequisites section.

本示例基于使用Google OpenID Connect的基本设置 。 注意:要使用“白板”示例,您必须完成“ 先决条件”部分中的设置步骤。

先决条件 (Prerequisites)

Visit the Getting Started with Android section to see the minimum requirements.

请访问Android入门部分,以了解最低要求。

To use this example, you must set up the following elements:

要使用此示例,您必须设置以下元素:

  • Local keystore file
    本地密钥库文件
  • Client_server_id
    Client_server_id
  • Your BBM Enterprise SDK user domain.
    您的BBM Enterprise SDK用户域。

You can copy these elements from the google-services.json file, and paste them into the app.properties file. The values for these elements are as follows:

您可以从google-services.json文件复制这些元素,然后将其粘贴到app.properties文件中。 这些元素的值如下:

  • client_server_id = “client_info” : “client_id”
    client_server_id =“ client_info”:“ client_id”
  • user_domain=”your user domain”
    user_domain =“您的用户域”

笔记 (Notes)

  1. The Google web documentation contains an error: when creating an OAuth 2.0 client, you also must create an OAuth 2.0 client with the Application Type set to Android. You will need to input the SHA of your own keystore to complete the client ID (see note 2). Once complete, remember to download the google-services.json file again.
    Google网络文档包含一个错误:创建OAuth 2.0客户端时,您还必须创建“应用程序类型”设置为Android的OAuth 2.0客户端。 您将需要输入自己的密钥库的SHA来完成客户机ID(请参阅注释2)。 完成后,请记住再次下载google-services.json文件。
  2. You must create your own signing key. The Whiteboard example is setup to use a single signing key for both debug & release. To create your own signing key, visit https://developer.android.com/studio/publish/app-signing.html. The SHA value is required to create an OAuth 2.0 client ID for a mobile device.

    您必须创建自己的签名密钥。 白板示例设置为使用单个签名密钥进行调试和发布。 要创建自己的签名密钥,请访问https://developer.android.com/studio/publish/app-signing.html 。 SHA值是创建移动设备的OAuth 2.0客户端ID所必需的。

This application has been built using gradle 2.14.1 (newer versions have not been validated)

已使用gradle 2.14.1构建此应用程序(尚未验证较新版本)

入门 (Getting Started)

The BBM Enterprise SDK can be used to send more than just text messages. The BBM Enterprise SDK supports sending opaque JSON content within a chat message. This example sends pictures and simple markup to create a shared whiteboard experience.

BBM Enterprise SDK不仅可以发送短信,还可以发送更多信息。 BBM Enterprise SDK支持在聊天消息中发送不透明的JSON内容。 本示例发送图片和简单标记以创建共享的白板体验。

发送涂鸦 (Sending a Doodle)

Doodles drawn by the user are sent in the data section of a ChatMessage. To send the doodle we convert the bitmap into a base 64 encoded string. The encoded image content, size and position are written into a JSON object. The JSON object is set in the ChatMessageSend.

用户绘制的涂鸦在ChatMessage的数据部分中发送 。 为了发送Doodle,我们将位图转换为以64为基数的字符串。 编码的图像内容,大小和位置将写入JSON对象。 JSON对象在ChatMessageSend中设置。

Tip: ChatMessages can be up to 70KB in size, See ChatMessageSend#data

提示:ChatMessage的最大大小为70KB,请参阅ChatMessageSend#data

First compress the bitmap we captured of the users input and encode it as a base64 string. The bitmap is always compressed as a PNG first, if the size is still outside our bounds its compressed as a JPEG.

首先压缩我们捕获的用户输入的位图,并将其编码为base64字符串。 如果位图大小仍然超出我们的范围,则始终将其首先压缩为PNG。

baos = new ByteArrayOutputStream();
Bitmap.CompressFormat format;
if (shrinkCount == 0) {
format = Bitmap.CompressFormat.PNG;
} else {
format = Bitmap.CompressFormat.JPEG;
}
bmp.compress(format, imgQuality, baos);
//before doing the base 64 first check the compressed bytes to avoid wasted effort creating larger base 64 copy
if (baos.size() < maxSize) {
dataBytes = baos.toByteArray();
dataEnc = Base64.encodeToString(dataBytes, Base64.DEFAULT);
tooBig = dataEnc.length() > (68 * 1024);
}

Create a JSON object that includes the encoded image data and the size and position in the canvas.

创建一个JSON对象,其中包括编码后的图像数据以及画布中的大小和位置。

jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_PNG_BYTES, dataEnc);
//send the width to allow UI to determine size quicker than loading image
jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_WIDTH, bmp.getWidth());
jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_HEIGHT, bmp.getHeight());
if (bmp.getWidth() != startWidth || bmp.getHeight() != startHeight) {
jsonObject.put(CHAT_MESSAGE_DATA_KEY_SCALE_TO_WIDTH, startWidth);
jsonObject.put(CHAT_MESSAGE_DATA_KEY_SCALE_TO_HEIGHT, startHeight);
}
//for whiteboard let it know where to position
jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_LEFT, (int) event.leftMostX);
jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_TOP, (int) event.highestY);
jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_AVAILABLE_WIDTH, viewWidth);
jsonObject.put(CHAT_MESSAGE_DATA_KEY_DOODLE_AVAILABLE_HEIGHT, viewHeight);

Attach the JSON data we created and send the chat message with a custom tag.

附加我们创建的JSON数据,并使用自定义标签发送聊天消息。

ChatMessageSend messageSend = new ChatMessageSend(chatId, WhiteboardUtils.CHAT_MESSAGE_TAG_WHITEBOARD);
//Attach our custom data to the chat message
messageSend.data(jsonObject);
BBMEnterprise.getInstance().getBbmdsProtocol().send(messageSend);

WhiteboardActivity.java

WhiteboardActivity.java

填充白板 (Populating the Whiteboard)

To populate the whiteboard with the doodle messages we iterate over the list of received chat messages in reverse creating a draw list. To avoid re-drawing chat messages we keep track of the last message drawn and only draw messages new messages. If we encounter a message with the tag CHAT_MESSAGE_TAG_CLEAR we can stop since earlier images would not be visible after the clear.

为了用涂鸦消息填充白板,我们在接收到的聊天消息列表上进行迭代,以反向方式创建绘制列表。 为了避免重画聊天消息,我们会跟踪最后绘制的消息,而只绘制新消息。 如果我们遇到带有标签CHAT_MESSAGE_TAG_CLEAR的消息,我们可以停止,因为清除后将看不到较早的图像。

//build list to display
ArrayList<ChatMessage> toDisplay = new ArrayList<>();
int size = chatMessageList.size();
boolean rememberLastDisplayed = true;
int pendingChatMessages = 0;
//start at last, go until find last displayed or control message
for (int i=size - 1; i >= 0; --i) {
ObservableValue<ChatMessage> observableChatMessage = chatMessageList.get(i);
ChatMessage chatMessage = observableChatMessage.get();
observableChatMessage.addObserver(this);
if (chatMessage.exists == Existence.MAYBE) {
rememberLastDisplayed = false;
++pendingChatMessages;
if (pendingChatMessages > 3) {
//when the chat is first loaded all messages except the last one will be loading
//if we continue we would process all previous messages, causing them to all load which
//would display starting to draw recent messages, so stop after a reasonable amount to
//give the most recent ones a chance to load so we can look for the last reset
break;
}
} else {
if (Equal.isEqual(chatMessage, mChatMessageListLastDisplayed)) {
//we already displayed this one, stop
break;
} else {
String tag = chatMessage.tag;
if (WhiteboardUtils.CHAT_MESSAGE_TAG_WHITEBOARD.equals(tag) || WhiteboardUtils.CHAT_MESSAGE_TAG_PICTURE.equals(tag)) {
toDisplay.add(chatMessage);
} else if (WhiteboardUtils.CHAT_MESSAGE_TAG_CLEAR.equals(tag)) {
toDisplay.add(chatMessage);
//last one
break;
}
//ignore others
}
}
}

WhiteboardView.java

WhiteboardView.java

Drawing the doodles or pictures requires us to recreate a bitmap from the base64 encoded data in the chat message. The size and position metadata included in the message are used to position the bitmap within the canvas.

绘制涂鸦或图片需要我们从聊天消息中的base64编码数据中重新创建位图。 消息中包含的大小和位置元数据用于将位图放置在画布中。

if (WhiteboardUtils.CHAT_MESSAGE_TAG_WHITEBOARD.equals(tag) || WhiteboardUtils.CHAT_MESSAGE_TAG_PICTURE.equals(tag)) {
if (chatMessage.data == null) {
Logger.w("missing data for ID="+chatMessage.messageId+" tag="+tag+" ");
continue;
}
Bitmap bmp = WhiteboardUtils.createBitmap(chatMessage);
if (bmp == null) {
Logger.e("Failed to create bitmap from "+chatMessage);
continue;
}
//figure out if need to scale it
int remoteWidth = chatMessage.data.optInt(WhiteboardUtils.CHAT_MESSAGE_DATA_KEY_DOODLE_AVAILABLE_WIDTH, -1);
int remoteHeight = chatMessage.data.optInt(WhiteboardUtils.CHAT_MESSAGE_DATA_KEY_DOODLE_AVAILABLE_HEIGHT, -1);
Rect toRect;
float scaleX = 1;
float scaleY = 1;
if (remoteWidth > 0 && remoteWidth != w) {
//remote is different size
scaleX = (float)w / (float)remoteWidth;
}
if (remoteHeight > 0 && remoteHeight != h) {
//remote is different size
scaleY = (float)h / (float)remoteHeight;
}
int left = chatMessage.data.optInt(WhiteboardUtils.CHAT_MESSAGE_DATA_KEY_DOODLE_LEFT, 0);
int top = chatMessage.data.optInt(WhiteboardUtils.CHAT_MESSAGE_DATA_KEY_DOODLE_TOP, 0);
int rectX = (int)(scaleX * left);
int rectY = (int)(scaleY * top);
toRect = new Rect(rectX, rectY, rectX + (int)(scaleX * bmp.getWidth()), rectY + (int)(scaleY * bmp.getHeight()));
canvas.drawBitmap(bmp, null, toRect, null);
}

WhiteboardView.java

WhiteboardView.java

清除白板 (Clearing the whiteboard)

To clear the whiteboard of any existing doodles we send another chat message with the tag “ClearScreen”. When we encounter a clear tag we’ll wipe the canvas.

要清除白板上所有现有的涂鸦,我们会发送另一条带有“ ClearScreen”标签的聊天消息 。 当遇到透明标签时,我们将擦拭画布。

} else if (WhiteboardUtils.CHAT_MESSAGE_TAG_CLEAR.equals(tag)) {
//clear canvas
int color = Color.WHITE;
if (chatMessage.data != null) {
color = chatMessage.data.optInt(WhiteboardUtils.CHAT_MESSAGE_DATA_KEY_BACKGROUND_COLOR, color);
}
canvas.drawColor(color);
}

WhiteboardView.java

WhiteboardView.java

获取更多示例应用程序 (Get More Sample Applications)

Click here to access the sample applications for a chat bot, rich chat, whiteboard, location sharing, and more – to help you build your next-generation Android, iOS, or JavaScript app.

单击此处可访问聊天机器人,丰富聊天,白板,位置共享等的示例应用程序,以帮助您构建下一代Android,iOS或JavaScript应用程序。

让我们仔细看看BBM Enterprise SDK (Let’s Take a Closer Look into BBM Enterprise SDK)

BBM Enterprise SDK presents enterprises and developers with a framework to develop real-time, end-to-end secure messaging capabilities in their products or services, including Android, iOS, Node.js, and Web.

BBM Enterprise SDK为企业和开发人员提供了一个框架,以在其产品或服务(包括Android,iOS,Node.js和Web)中开发实时,端到端的安全消息传递功能。

With our communications platform, the possibilities are endless. With rich next-generation technologies, it powers your apps today—and in the future.

借助我们的通信平台,无限的可能性。 借助丰富的下一代技术,它可以为您现在和将来的应用程序提供支持。

针对开发人员的BBM安全消息传递平台

如何确保安全性? (How Does it Ensure Security?)

BBM Enterprise SDK’s security model ensures that data is protected both at-rest and in-transit, and encrypting instant messages, voice calls, and video calls. Only the sender and intended recipients can see each message sent, and ensures that messages aren’t modified in transit between the sender and recipient.

BBM Enterprise SDK的安全模型可确保静态和传输中的数据受到保护,并对即时消息,语音呼叫和视频呼叫进行加密。 只有发件人和预期的收件人可以看到发送的每封邮件,并确保在发件人和收件人之间的传输过程中不会修改邮件。

The BBM Enterprise SDK was designed to comply with the following three security principles:

BBM Enterprise SDK旨在遵循以下三个安全原则:

  • Messages are* digitally signed*, so you’re assured of who sends each message in your application.

    消息是经过*数字签名的 *,因此您可以确定谁发送了应用程序中的每条消息。

  • Messages are* encrypted*, so you’re assured that only the intended recipient can read the message.

    邮件经过*加密 *,因此可以确保只有目标收件人才能阅读邮件。

  • Messages are* subjected to integrity signature checks*, so you’re assured the message isn’t modified in transit.

    邮件*经过完整性签名检查 *,因此可以确保邮件在传输过程中不会被修改。

BBM Enterprise SDK uses a lot of security keys:

BBM Enterprise SDK使用许多安全密钥:

  • User’s Identity Keys

    用户的身份密钥

    • Public and private encryption keys for each user of BBM Enterprise SdK used to generate encryption keys for messages exchanged between two users outside of a chat (identity messages).
      BBM Enterprise SdK的每个用户的公用和专用加密密钥用于为聊天之外的两个用户之间交换的消息(身份消息)生成加密密钥。
    • Public and private signing keys for each user of BBM Enterprise SDK used to digitally sign chat messages when sent, and verifying the signature when received.
      BBM Enterprise SDK每个用户的公用和专用签名密钥,用于在发送聊天消息时对聊天消息进行数字签名,并在接收时验证签名。
  • Chat Keys

    聊天键

    • Symmetric encryption key for each chat, used to generate a per-message encryption key.
      每次聊天的对称加密密钥,用于生成每个消息的加密密钥。

But your application has complete control over your security keys to keep your sensitive data private. BlackBerry does not have access to your keys and your application will share and distribute keys only between your users.

但是您的应用程序可以完全控制安全密钥,以使敏感数据保持私密性。 BlackBerry无法访问您的密钥,您的应用程序将仅在用户之间共享和分发密钥。

BBM密钥管理

用户管理 (User Management)

With the BBM Enterprise SDK, your application will have complete control over discovering and managing users and relationships, as user accounts in the BBM Enterprise SDK represent users in the SDK only.

使用BBM Enterprise SDK,您的应用程序将完全控制发现和管理用户及关系,因为BBM Enterprise SDK中的用户帐户仅代表SDK中的用户。

Applications can also reuse existing user accounts and social networks by associating application accounts with BBM Enterprise SDK accounts

通过将应用程序帐户与BBM Enterprise SDK帐户关联,应用程序还可以重用现有的用户帐户和社交网络。

BBM用户数据库

立即将AI集成到您的应用中-免费 (Build AI into Your App Today — For Free)

Artificial intelligence will soon have a critical role to play in enterprise. Businesses that leverage it now will enjoy a considerable competitive advantage once it becomes more widespread. BlackBerry knows this – and we’re prepared to help your organization branch out into artificial intelligence, the enterprise of things, and whatever lies beyond.

人工智能将很快在企业中发挥关键作用。 一旦利用它,现在利用它的企业将享有相当大的竞争优势。 黑莓知道这一点,我们已经准备好帮助您的组织扩展到人工智能,物联网以及其他领域。

For more information about the BBM Enterprise SDK, click here, or download the free SDK to start building apps right away.

有关BBM Enterprise SDK的更多信息, 请单击此处 ,或下载免费的SDK以立即开始构建应用程序。

翻译自: https://www.sitepoint.com/ai-the-future-of-apps/

cookie启用安全传输

cookie启用安全传输_如何通过安全通信启用AI相关推荐

  1. linux启用触摸板_如何禁用或启用点击即可在PC的触摸板上单击

    linux启用触摸板 Anna Volgina/Shutterstock.com Anna Volgina / Shutterstock.com Windows laptops often let y ...

  2. 计算机无线网络服务禁用了怎么办,无线网络禁用启用无效怎么办_无线禁用后启用不了的解决方法...

    最近有朋友向小编反映,无线网络禁用启用无效怎么办?其实这个问题有很多朋友都遇到过,可是还有很多人不懂如何解决.那么今天小编就针对此问题,为大家带来无线禁用后启用不了的解决方法,快来看看吧. 无线禁用后 ...

  3. mongodb启用身份验证_为您的Web应用程序启用两因素身份验证

    mongodb启用身份验证 支持两因素身份验证(2FA)几乎总是一个好主意,尤其是对于后台系统. 2FA有许多不同的形式,其中一些包括SMS,TOTP甚至是硬件令牌 . 启用它们需要类似的流程: 用户 ...

  4. u8反启用固定资产_用友软件各模块启用间的关系,反启用的过程及注意事项

    1.如果还没有录入数据,在系统管理-用帐套主管登录--点击帐套下面的启用,把模块前的√去掉即可, 2.如果已经有数据录入,反启用就比较麻烦.可使用下面2种方法: (1.使用用友的反启用工具,登录帐套, ...

  5. mac如何启用cpu虚拟化_如何在 Ubuntu 18.04 上安装 KVM

    本文最先发布在: 如何在 Ubuntu 18.04 上安装 KVM​www.itcoder.tech KVM(基于内核的虚拟机)是一个内置于Linux内核的开源虚拟化技术.它允许你基于 Linux 或 ...

  6. 护理方面关于人工智能的构想_如何提出惊人的AI,ML或数据科学项目构想。

    护理方面关于人工智能的构想 No Matter What People Tell You, Words And Ideas Can Change The World. - Robin Williams ...

  7. dell 服务器启用虚拟化,在 Dell PowerEdge 服务器上启用 SR-IOV 技术

    随着 Windows Server 2012 的引入,Microsoft 在 Hyper-V 中为网络设备启用了单根 I/O 虚拟化 (SR-IOV) 支持. 目录 简介本文介绍如何在 Dell™ P ...

  8. 减少cookie传输_如何使用Cookie减少WordPress垃圾评论

    减少cookie传输 A growing site comes with new challenges and one of them is comment spam. Thankfully, the ...

  9. vlc传输_如何使用VLC通过网络流式传输视频和音乐

    vlc传输 VLC includes a fairly easy-to-use streaming feature that can stream music and videos over a lo ...

最新文章

  1. WPF 3D中多个模型如何设置某一个在最前?
  2. 机器学习之异常点检测
  3. 慌!还不了解Java中的分支预测?!
  4. [C++11]弱引用智能指针weak_ptr初始化和相关的操作函数
  5. JavaFX技巧来节省内存! 属性和可观察物的阴影场
  6. Linux内核的Makefile和kconfig解读
  7. C语言实现DES加解密算法
  8. kernel启动过程总结的思维导图
  9. mysql sql使用序列_SQL 使用序列
  10. jdbc mysql url写法_MySQL第04篇:JDBC
  11. iOS开发--基于AFNetWorking3.0的图片缓存分析
  12. 用数组来存储显示对象
  13. Mobile端Catalog下面Category的配置步骤
  14. php 读xml的两种方式
  15. 经典的HTML5游戏及其源码分析
  16. 图片模糊处理批量生产模糊数据集
  17. 浏览器输入URL后,到网页显示,其间发生了什么?
  18. 软件工程需求分析模板(简单)
  19. 小米开源便签Notes-源码研究(0)-整体功能介绍(图文并茂)
  20. Windows下Mingw版本的FFMPEG源码编译

热门文章

  1. MySQL 批量操作,一次插入多少行数据效率最高?
  2. 内存条更换/添加需要知道的电脑信息
  3. carbon- 一个能生成漂亮的代码分享图的在线工具
  4. 爬取今日头条街拍图的一次教训
  5. apache drill mysql_Apache Drill嵌入式安装
  6. Tree_ 打包TreeView控件 C#
  7. 03-详述HyperLeger Fabric 记账流程
  8. 苹果发布会确认:好莱坞大咖助阵,AirPods 2 等新品或将亮相...
  9. 梦幻蔬菜棚 用蔬菜来演奏 一场酷炫的交响乐
  10. AutoLeaders算法组——二面考核题【萝卜埋地雷】