首页 文章 精选 留言 我的

精选列表

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

【Azure Services Platform Step by Step-第7篇】别把Windows Azure当虚拟主机使——理解Win...

最近有朋友问我:Windows Azure是不是一个微软官方提供的ASP.NET应用程序虚拟主机? 他的具体理解是这样的:Windows Azure提供了对ASP.NET应用程序的托管,并且,“云计算”离我们那么近,只要把ASP.NET应用程序部署到Window Azure 上,以前的ASP.NET应用程序就变成“云应用”了! 怎么说好呢?这种理解完全是受当今社会混乱的.NET虚拟主机市场逼出来的。Windows Azure作为Azure Services Platform的一号服务,如果你仅仅只用他来存放你已经过时的ASP.NET应用程序,那简直是杀鸡用牛刀、暴殄天物。 那么,Windows Azure应该怎么用?它到底比一般的虚拟主机牛在哪儿?那还的从Windows Azure的服务架构说起。 Roles(角色): 先说说角色问题吧,非常重要。不理解Windows Azure关于Role的概念,是没办法懂得微软煞费苦心的”云”的。 部署到Windows Azure上的程序扮演着以下两种角色:Web Role和Worker Role。 Web Role:顾名思义,就是提供Web服务的角色。简单地说,Web Role就是ASP.NET Applicantion,是你本地ASP.NET Application的云端版本!支持HTTP/HTTPS协议,还能提供WCF服务。 Worker Role:在后台运行的应用程序。它可以在后台访问任何网络资源、数据源并进行操作。它从来不在大庭广众前露面(不开放外部访问接口),它接到命令后会毫无怨言地依次执行(Queue service里的消息队列能引导它的工作),它就像一个默默无闻的无私奉献者。可以拿Windows系统服务跟它类比,一旦启动,一直在后台运行。很爽吧? 这个功能值得重视,大伙们看清楚了,这可是一般的虚拟主机无法提供的哦~ 就连Google引以为豪的云平台Google App Engine,至今已经更新了许多许多次,也从来没有考虑过让一段程序在后台长期运行! 这个Workder Role颇具有“云”的概念:一直在云端悄悄运行,地面上的人看不到它,但却不能没有它。 所以,“云计算”并不是说只要你把“计算”放在“云”上就可以,而且彻底地让“计算”在“云”上运行。它包括以下几层含义:在云上——不需要本地服务器;云很大——计算量可以很大;无论在哪里,一抬头就是云——云平台上的应用无论在哪里、使用何种设备都能使用;躲在云里——它的计算过程无论有多复杂,地面上的使用者不需要看到它。 Role的附件 Web Role和Worker Role这两个小朋友也是带了家属一起加入到Windows Azure这个大家庭的,它们暂时包括: 把Local Storage作为缓存使用 标准的Event Streams记录日志、发出警告 健康报告 呵呵,这些也是普通的虚拟主机无法有的吧? “云主机”的功能是非常强大的,配套是非常完善的! 服务定义(Service Definition) 程序生活在Windows Azure这个新环境里往往会感到纳闷,会怀疑人生:我到底是Web Role还是Worker Role呢? 这就需要我们来帮助它们了。 Windows Azure使用了一类后缀.csdef的文件来定义服务。包括:这个服务到底似乎Web Role还是Worker Role?使用HTTp还是HTTPS ? 哪里去找Local Storage这个亲家来帮忙?诸如此类的信息。 服务配置(Service Configuration) Web Role和Worder Role这两个小朋友在得到关于职业规划的答复后,又产生了对职业生涯方面的疑问:具体应该怎么做呢? 这就需要用到服务配置了。顾名思义,就是对具体服务的具体配置了。我们采用.cscfg为后缀的文件来保存它们。它担当着与ASP.NET中的Web.Config文件类似的任务,且任务更重。 本文转自 流牛木马 博客园博客,原文链接:http://www.cnblogs.com/azure/archive/2009/03/06/1404978.html,如需转载请自行联系原作者

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

001 - 使用鸿蒙WebView创建简单浏览器 step 1

打开官网,找到WebView的文档(模拟器不支持) 鸿蒙webview的开发指南(原始链接,方便大家识别并点击):https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-webview-0000001092715158 2. 创建一个Page Ability,把基本布局弄好 下面是代码 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:orientation="vertical"> <DirectionalLayout ohos:height="30vp" ohos:width="match_parent" ohos:orientation="horizontal"> <TextField ohos:id="$+id:text_webView_Url" ohos:height="match_content" ohos:width="match_parent" ohos:background_element="$graphic:background_ability_simple_web_view" ohos:focus_border_enable="true" ohos:hint="请输入网址" ohos:max_text_lines="1" ohos:multiple_lines="false" ohos:scrollable="true" ohos:text="www.harmonyos.com" ohos:text_size="50" ohos:weight="1" /> <Button ohos:id="$+id:button_webview_surf" ohos:height="match_content" ohos:width="60vp" ohos:background_element="$graphic:button_element" ohos:text="跳转" ohos:text_size="50"/> </DirectionalLayout> <ProgressBar ohos:id="$+id:other_webView_progressBar" ohos:height="10vp" ohos:width="match_parent" ohos:visibility="hide"> </ProgressBar> <ohos.agp.components.webengine.WebView ohos:id="$+id:webview_webview_webview" ohos:height="match_parent" ohos:width="match_parent" ohos:weight="1"> </ohos.agp.components.webengine.WebView> <DirectionalLayout ohos:height="30vp" ohos:width="match_parent" ohos:orientation="horizontal"> <DirectionalLayout ohos:height="match_content" ohos:width="match_parent" ohos:orientation="horizontal" ohos:weight="1"> <Button ohos:id="$+id:button_webview_back" ohos:height="match_content" ohos:width="match_parent" ohos:background_element="$graphic:button_element" ohos:layout_alignment="horizontal_center" ohos:text="向后" ohos:text_size="50" > </Button> </DirectionalLayout> <DirectionalLayout ohos:height="match_content" ohos:width="match_parent" ohos:orientation="horizontal" ohos:weight="1"> <Button ohos:id="$+id:button_webview_refresh" ohos:height="match_content" ohos:width="match_parent" ohos:background_element="$graphic:button_element" ohos:layout_alignment="horizontal_center" ohos:text="刷新" ohos:text_size="50"> </Button> </DirectionalLayout> <DirectionalLayout ohos:height="match_content" ohos:width="match_parent" ohos:orientation="horizontal" ohos:weight="1"> <Button ohos:id="$+id:button_webview_forward" ohos:height="match_content" ohos:width="match_parent" ohos:background_element="$graphic:button_element" ohos:layout_alignment="horizontal_center" ohos:text="向前" ohos:text_size="50"> </Button> </DirectionalLayout> </DirectionalLayout> </DirectionalLayout> 把基本的按钮事件弄好 序号 按钮 功能 1 跳转 把文本框中的网址打开 2 后退 在webview中点了新链接后,想回去看一看 3 刷新 以前的人在网络不好,美女图片出不来的时候用,现在一般是发了一篇帖子后,作者会没事点一下,看看有没有人点赞 4 前进 跟后退是关联用的,就是点了新链接,回去看了看后,还是觉得新链接更好看,就又要前进. 代码 Component.ClickedListener clickedListener = new Component.ClickedListener() { @Override public void onClick(Component component) { int componentId = component.getId(); switch (componentId) { case ResourceTable.Id_button_webview_surf: { urlAddress = textWebViewUrl.getText(); if (urlAddress.isEmpty()) { return; } if (!urlAddress.startsWith(FinalValue.URL_HTTPS)) { urlAddress = FinalValue.URL_HTTPS + urlAddress; } webView.load(urlAddress); } break; case ResourceTable.Id_button_webview_back: { if (webView.getNavigator().canGoBack()) { webView.getNavigator().goBack(); } } break; case ResourceTable.Id_button_webview_refresh: { webView.reload(); } break; case ResourceTable.Id_button_webview_forward: { if (webView.getNavigator().canGoForward()) { webView.getNavigator().goForward(); } } break; default: { System.out.println("没有选择任何的页面"); } break; } } }; 把WebView照文档上面的要求弄好 没啥好说的,就是规定.我加在了调用load方法打开网址那行代码后面,我还弄了一个跟进度条关联的功能 //允许javascript交互 WebConfig webConfig = webView.getWebConfig(); webConfig.setDataAbilityPermit(true); webConfig.setJavaScriptPermit(true); webConfig.setLoadsImagesPermit(true); webConfig.setMediaAutoReplay(true); webConfig.setLocationPermit(true); webConfig.setSecurityMode(WebConfig.SECURITY_SELF_ADAPTIVE); webView.setWebAgent(new WebAgent() { @Override public void onLoadingPage(WebView webView, String url, PixelMap favicon) { super.onLoadingPage(webView, url, favicon); // 这儿我加了一个更新网址文本框中新页面url的功能 if (url != urlAddress) { textWebViewUrl.setText(url); } } @Override public void onPageLoaded(WebView webView, String url) { super.onPageLoaded(webView, url); // 页面加载结束后自定义处理 } @Override public void onLoadingContent(WebView webView, String url) { super.onLoadingContent(webView, url); // 加载资源时自定义处理 } @Override public void onError(WebView webView, ResourceRequest request, ResourceError error) { super.onError(webView, request, error); // 发生错误时自定义处理 } }); webView.setBrowserAgent(new BrowserAgent(SimpleWebViewAbilitySlice.this) { @Override public void onTitleUpdated(WebView webView, String title) { super.onTitleUpdated(webView, title); // 标题变更时自定义处理 } @Override public void onProgressUpdated(WebView webView, int newProgress) { super.onProgressUpdated(webView, newProgress); if (newProgress < FinalValue.PROGRESS_BAR_FINISHED) { otherWebViewProgressBar.setVisibility(Component.VISIBLE); otherWebViewProgressBar.setProgressValue(newProgress); } else if (newProgress == FinalValue.PROGRESS_BAR_FINISHED) { otherWebViewProgressBar.setVisibility(Component.HIDE); } // 加载进度变更时自定义处理 } }); 完事?or完了还有事? 从上面拷代码的话,估计完事了.但是,我是用的回忆,但是代码却没有回退,所以我还是有必要在这儿把步骤中的问题说一说,方便不拷代码的同学也能跑出一个界面.主要体现如下: 权限配置,不多说 "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] xml中的WebView要带包名 <ohos.agp.components.webengine.WebView ohos:id="$+id:webview_webview_webview" ohos:height="match_parent" ohos:width="match_parent" ohos:weight="1"> </ohos.agp.components.webengine.WebView> 不按上面包名写的话: 真机运行后没有WebView的界面.哪怕weight=1,也不行 点击跳转按钮后,PageAbility会闪退,回到首屏(调用它的页面) 完事效果:https://www.bilibili.com/video/BV1tK4y1o7Hz/ 完整代码 布局 序号为2的步骤中贴全了 按钮背景 <?xml version="1.0" encoding="UTF-8" ?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <corners ohos:radius="20"/> <solid ohos:color="#70dbdb"/> </shape> java代码 package com.javaaier.family.huawei.slice; import com.javaaier.family.huawei.ResourceTable; import com.javaaier.family.huawei.common.FinalValue; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.*; import ohos.agp.components.webengine.*; import ohos.media.image.PixelMap; /** * @Author JavaAIer * @Description : webview控件例子1:用于简单的测试webview的用法 <br/> * 001 简单webview示例 * @Date: 2021/4/16 */ public class SimpleWebViewAbilitySlice extends AbilitySlice { String urlAddress; ProgressBar otherWebViewProgressBar; TextField textWebViewUrl; Button buttonWebViewSurf, buttonWebViewBack, buttonWebViewRefresh, buttonWebViewForward; WebView webView; Component.ClickedListener clickedListener = new Component.ClickedListener() { @Override public void onClick(Component component) { int componentId = component.getId(); switch (componentId) { case ResourceTable.Id_button_webview_surf: { urlAddress = textWebViewUrl.getText(); if (urlAddress.isEmpty()) { return; } if (!urlAddress.startsWith(FinalValue.URL_HTTPS)) { urlAddress = FinalValue.URL_HTTPS + urlAddress; } webView.load(urlAddress); //允许javascript交互 WebConfig webConfig = webView.getWebConfig(); webConfig.setDataAbilityPermit(true); webConfig.setJavaScriptPermit(true); webConfig.setLoadsImagesPermit(true); webConfig.setMediaAutoReplay(true); webConfig.setLocationPermit(true); webConfig.setSecurityMode(WebConfig.SECURITY_SELF_ADAPTIVE); webView.setWebAgent(new WebAgent() { @Override public void onLoadingPage(WebView webView, String url, PixelMap favicon) { super.onLoadingPage(webView, url, favicon); // 页面开始加载时自定义处理 if (url != urlAddress) { textWebViewUrl.setText(url); } } @Override public void onPageLoaded(WebView webView, String url) { super.onPageLoaded(webView, url); // 页面加载结束后自定义处理 } @Override public void onLoadingContent(WebView webView, String url) { super.onLoadingContent(webView, url); // 加载资源时自定义处理 } @Override public void onError(WebView webView, ResourceRequest request, ResourceError error) { super.onError(webView, request, error); // 发生错误时自定义处理 } }); webView.setBrowserAgent(new BrowserAgent(SimpleWebViewAbilitySlice.this) { @Override public void onTitleUpdated(WebView webView, String title) { super.onTitleUpdated(webView, title); // 标题变更时自定义处理 } @Override public void onProgressUpdated(WebView webView, int newProgress) { super.onProgressUpdated(webView, newProgress); if (newProgress < FinalValue.PROGRESS_BAR_FINISHED) { otherWebViewProgressBar.setVisibility(Component.VISIBLE); otherWebViewProgressBar.setProgressValue(newProgress); } else if (newProgress == FinalValue.PROGRESS_BAR_FINISHED) { otherWebViewProgressBar.setVisibility(Component.HIDE); } // 加载进度变更时自定义处理 } }); } break; case ResourceTable.Id_button_webview_back: { if (webView.getNavigator().canGoBack()) { webView.getNavigator().goBack(); } } break; case ResourceTable.Id_button_webview_refresh: { webView.reload(); } break; case ResourceTable.Id_button_webview_forward: { if (webView.getNavigator().canGoForward()) { webView.getNavigator().goForward(); } } break; default: { System.out.println("没有选择任何的页面"); } break; } } }; /** * @Author JavaAIer * @Description : * @Date: 2021/4/16 14:46 * * @param intent */ @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_simple_web_view); otherWebViewProgressBar = (ProgressBar) findComponentById(ResourceTable.Id_other_webView_progressBar); textWebViewUrl = (TextField) findComponentById(ResourceTable.Id_text_webView_Url); buttonWebViewSurf = (Button) findComponentById(ResourceTable.Id_button_webview_surf); buttonWebViewSurf.setClickedListener(clickedListener); buttonWebViewBack = (Button) findComponentById(ResourceTable.Id_button_webview_back); buttonWebViewBack.setClickedListener(clickedListener); buttonWebViewRefresh = (Button) findComponentById(ResourceTable.Id_button_webview_refresh); buttonWebViewRefresh.setClickedListener(clickedListener); buttonWebViewForward = (Button) findComponentById(ResourceTable.Id_button_webview_forward); buttonWebViewForward.setClickedListener(clickedListener); webView = (WebView) findComponentById(ResourceTable.Id_webview_webview_webview); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } } /* * 这一截卡哇伊大喵在config.json用了,我发现用不用没啥区别啊 * https://blog.csdn.net/qq_33259323/article/details/115596296 * "default": { "network": { "cleartextTraffic": true, "securityConfig": { "domainSettings": { "cleartextPermitted": true, "domains": [ { "subdomains": true, "name": "www.harmonyos.com" } ] } } } } * * */ - config.json ``` json { "app": { "bundleName": "com.javaaier.family.huawei", "vendor": "javaaier", "version": { "code": 1, "name": "1.0" }, "apiVersion": { "compatible": 5, "target": 5, "releaseType": "Beta1" } }, "deviceConfig": { }, "module": { "package": "com.javaaier.family.huawei", "name": ".MyApplication", "deviceType": [ "phone" ], "distro": { "deliveryWithInstall": true, "moduleName": "entry", "moduleType": "entry" }, "abilities": [ { "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "action.system.home" ] } ], "orientation": "unspecified", "name": "com.javaaier.family.huawei.MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:app_name", "type": "page", "launchType": "standard" }, { "orientation": "unspecified", "name": "com.javaaier.family.huawei.SimpleWebViewAbility", "icon": "$media:icon", "description": "$string:simplewebviewability_description", "label": "$string:app_name", "type": "page", "launchType": "standard" } ], "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] } } 作者:人工智能姬 想了解更多内容,请访问51CTO和华为合作共建的鸿蒙社区:https://harmonyos.51cto.com#kyzg

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

Python自然语言处理Step0:Natural Language Toolkit工具配置

Natural Language Processing with Python Python 自然语言处理 针对自然语言设计,以python作为处理工具,其中涉及到很多语言学的东西 当然也包括一些相关的python的工具 首先是nltk工具的安装, 前置条件:你已经安装并配置好了python:你可以到官方网站下载https://www.python.org/ 我并没有在意到底安装哪个版本,反正最后都能配好,记得把pip工具配好,非常好用 如果要使用nltk的包,还有些要准备的,就是你要把NumPy装好 这里有一个比较方便的地方供你找适合你自己系统环境的NumPy包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 找到你要的版本后下载相应的包,然后进入命令行进行安装,考虑到这些的格式都是 .whl,所以要先安装能执行这些文件的程序,使用pip 命令行输入 pip install wheel 安装成功后命令行进入你放置刚才下载的安装包的位置 输入 pip install 你的安装的名字.whl 然后就安装成功了。 接着再下载nltk工具,然后解压,在相应目录下 输入 python setup.py install 进行相应的nltk的安装 然后在python编译状态下 import nltk nltk.download() 然后可以选择all把全部的package都拿下,然后就基本上配置完成了。

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

阶跃星辰发布 Step Audio 3 系列语音模型,多款上榜全球第一

语音大模型的竞争,正在从"能不能把文字念出来"换成"能不能真正理解声音、组织声音"。阶跃星辰今天放出的 StepAudio 3 系列,就是冲着这个方向去的——五个模型一次全发:Realtime、ASR、TTS、Gen、Music。 最出挑的是 StepAudio 3 Realtime。在 Artificial Analysis 的 Conversational Dynamics 榜单上,它以 98.9% 的综合得分排全球第一,语音推理准确率 99.7% 也在 Speech Reasoning 榜单登顶。相比"能听能说能打断"的全双工,这次更强调模型在一场持续对话里判断节奏——什么时候接话、什么时候等待,以及处理打断和连续反馈。推理和语音生成可以并行,工具调用和长任务异步执行,不阻塞当前会话。 ASR 走的是"从听清到听懂"。它在高精度识别之外接了 LLM 的上下文理解,能处理方言、中英混说、专业术语,甚至在医疗、法律这类领域提升专业表达识别。非流式准确性榜单上 WER(词错误率)1.7%,并列全球第一。 TTS 追求的是"像真人表达"。模型除了生成对应语音,还能还原笑声、迟疑、结巴、重复、改口这些副语言表现——官方给的示例里有一段"要不要换工作"的独白,纠结、犹豫、改口全都在。 Gen 有意思的地方在于把原来分散的声音链路整个吞进去。角色配音、环境音、音效、背景音乐,不需要分头制作,靠自然语言描述和参考音频一次生成,还能控制多个角色的音色、语气、情绪和时间顺序。对影视、游戏、有声书创作者来说,原来需要素材搜集、多工具协作的流程,可能被压缩成一次生成加持续迭代。 Music 则明确打"不止生成,更参与创作"。支持 ABC 记谱法控制的多轮交互创作,用户给一段歌词、清唱或 Demo,模型接着完成编曲、改编和制作;基于清唱配乐时能理解旋律、节奏和情绪,再补上和声与完整编曲。 五款模型都已上线阶跃星辰开放平台,官方也放了各模型的 API 接入文档。 来源: 阶跃发布语音大模型 StepAudio 3,拿下多个全球第一!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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

用户登录
用户注册