首页 文章 精选 留言 我的

精选列表

搜索[AI技能],共10000篇文章
优秀的个人博客,低调大师

酷瓜云课堂(腾讯云)开源版 v1.5.1 发布,知识技能轻松变现

更新内容 推荐课程等列表补充属性 修正后台评价列表中的搜索链接 修正后台点播设置视频码率后500错误问题 修正多码率远程播放地址部分为空播放问题 修正更新套餐课程缓存传参数据类型问题 修正第三方登录解除绑定失败问题 使用ServiceTrait归纳获取服务代码 优化anonymous隐藏部分字符函数 调整积分兑换相关定义命名 去除js_vars中关于IM客服的配置 增加验证码开关 系统介绍 酷瓜云课堂,依托腾讯云基础服务架构,采用C扩展框架Phalcon开发,GPL-2.0开源协议,致力开源网课系统,开源网校系统,开源知识付费系统,开源在线教育系统。100%全功能开源,无加密无阉割,免费商用。 系统功能 实现了点播、直播、专栏、面授、会员、群组、积分、秒杀等,100% 真开源在线教育解决方案,可以免费商用。 托管仓库 gitee 仓库 github 仓库 意见反馈 在线反馈(推荐) 官方论坛(推荐)

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

【云端技能包】k8s 知识- 模块化方式认识Statefulset和Deployment

在学习干货前,客官请留步——【“云”住民生存训练营--玩转k8s】本周五,即将在线上开播,扫码一键预约直播! 当我们使用 k8s 的各种 resource 时,常常会感到 yaml 元素项目繁多、难以记忆,例如api, meta data, spec,template等等。我们在记忆某个选项或者是自己在编写这个选项的时候,可能会感觉比较困难。 事实上,k8s 的 resource 描述方式自有其规律在其中。如果能用模块化的方法拆解一下,可以更好地理解记忆它们的相同与不同之处。 云资源优化服务 SpotMax无缝集成了Kubernetes,可便捷实现容器的管理与自动化发布。==>戳链接了解SpotMax StatefulSet和Deployment作为我们在 k8s 中常用的控制器(工作负载),以不同方式管理着 Pod。通常情况下,StatefulSet用于部署有状态应用,Deployment 则用于部署无状态应用。 这一期“云端跟我学”,我们将以StatefulSet和Deployment为例,用模块化的方式进行对比记忆,并认知其中的规律。 对比一下 Statefulset和 deployment,可以看到有module这种概念。 例如Statefulset中有kind、有 spec,共2个module: 具体来看一下kind中包含的模块,kind支持Deployment、DaemonSet、StatefulSet、Job、CronJob等。 按照模块化的方式来抽象和拆解,认知记忆这些元素就会容易很多。 如下图,可以左右对比一下StatefulSet与Deployment:两边都有 kind、spec(spec部分有一些区别,如图),其他如selector还有 template的部分都是一样的。 二者重点的区别主要集中于更新策略(strategy)部分,如下图: 【StatefulSet】 【Deployment】 我们可以进一步对template部分做一下拆分和抽象: 以上就是我们对k8s resource的理解和记忆小窍门,可以采用模块化、抽象化的方式,认知共性,找出区别,方便大家的学习和使用。

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

NGINX官方考试中心成立发布 为中国NGINX用户提供技能升级的考试认证

2021年4月8日,NGINX官方授权认证考试中心正式宣布对外接待来自全国各地的考生。 NGINX官方授权认证考试中心正式成立,北京力尊信通科技股份有限公司凭借丰富的认证考试培训经验,面向中国广大NGNIX用户、NGINX技术从业者和技术爱好者、开源技术发烧友,提供全面、科学的专业化认证和等级考试。 此次NGINX官方授权认证考试中心落户中国,可以为NGINX相关技术从业者和爱好者提供有力的技术能力认证,目前已推出的认证考试分为三个等级:NGINX Accredited Administrator(NAA)、NGINX Accredited Professional(NAP)、NGINX Accredited Expert(NAE)。 NGINX认证考试属于进阶式考试:NAP的考生需要具备有效期内的NAA证书,NAE的考生需要具备有效期内的NAP证书。NGINX认证考试证书有效期为两年。考试合格者由NGINX全球总部统一签发NGINX认证考试证书。 NGINX官方授权认证考试中心负责人杨杰女士说:“NGINX认证考试为上千万NGINX开源软件的从业者提供了技术水平的认证,让其手中多了一把职业发展的利器, 同时也为企业在招聘NGINX人才时提供了考核依据,便于企业更精准的选人、用人。考试中心后期将为NGINX从业者提供培训,分为线上和线下的培训形式,方便考生自由选择。” 第一步应从获得NAA级别认证开始。首次NAA认证考试将于2021年4月正式向全国推出,通过NGINX考试中心公众号进行考试报名预约,详情可关注NGINX考试中心公众号(微信搜索“NGINX考试中心”公众号或直接扫描下方二维码)。 【责任编辑:鸢玮 TEL:(010)68476606】

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

Chrome开发者工具里的一个隐藏技能:chrome://net-internals

During my holiday I was writing a small tool for fun, which extracts my personal posts from http://www.baidu.com for further analysis.I am using AJAX in jQuery to perform a synchronous call to fetch html source code of given url specified by argument requestURL.、 function getPostByAJAX(requestURL){ var html = $.ajax({ url: requestURL, async: false}).responseText; return html; } The requestURL I am using is http://tieba.baidu.com/i/i/my_tie However when I try to access it via my JavaScript code above, it failed.And Chrome development tool didn’t give me enough information for trouble shooting. How to deal with this issue then? Then I found the useful tool from Google: chrome://net-internalsNow let’s continue to trouble shoot with this tool. (1) type chrome://net-internals in Chrome address bar, press enter key.Then click Event hyperlink. (2) Go to my own html page which will send AJAX request via jQuery, click F5 to send a new request, then go back to Chrome tool.Now I have found the trace entry for the sent request.Here below is the request detail which contains much more information compared with the one in Chrome development Tool-Network tab. And here below are response header fields: The return code 302 and location “http://static.tieba.baidu.com/tb/error.html?ErrType=1” give me a reminder that this issue might be related to logon state of BAIDU website, since I would like to return my personal information, it makes sense that the url can only return personal data if cookie is available or user credential is specified ( not supported by BAIDU in this case ).In order to verify my assumption, I request the url directly in Chrome and check its request header fields this time, and yes, the cookie field is there: So now the question is, how to send my cookie information together with the AJAX call in JavaScript code?I found this article from Google.According to the article, I add the following code in my function: And it works now: By the way, via this tool I can also figure out how the jQuery library file jquery1.7.1.js stored in local laptop is loaded by Chrome.Chrome reads this file by chunks with size 32768 ( the file consists of 8 chunks ). The total size 251661 matches exactly with the number I see in windows, perfect isn’t it? Further reading For more tips I gained during my daily work about Chrome development tools, please refer to this blog Chrome Development Tool tips used in my daily work. 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

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

这11招是你应该具备的技能

菜鸟独白 用Python来玩转数据分析实在是太爽了,因为有强大的Pandas来处理数据非常方便,我个人对数据分析情有独钟,探索数据的秘密非常好玩!前段时间写过一篇小白学数据分析入门招式,但是进阶的部分上次没有来得及整理,今天分享给大家。 我们依然用比较有名的泰坦尼克数据集来做示例,通过对这个数据集的处理,来快速上手数据分析的常见招式和基本手法,让初学者可以快速上手数据分析! 要点: 数据的字符处理 数据的过滤 数据的分组 数据的透视表 1.数据集的字符处理 第一招:对列的处理 我们看一下这个数据集里面的列都是英文的,不是很爽,我们把列的名字变成中文,这样看的舒服。 df.rename(columns={'Survived':'是否获救', 'Name':'姓名', 'Pclass':'船舱等级','Sex':'性别', 'Age':'年龄','SibSp':'兄弟姐妹数', 'Parch':'父母小孩数','Ticket':'船票', 'Fare':'船票费'}) 这样处理完之后看一下是不是舒服很多: 第二招:对数据集里面的特定字符串进行替换 我们把性别里面的male替换为男,female替换为女 df['性别'].map({'female':'女','male':'男'}) 第三招:对列的字符进行替换 我们看到船票比如A/5 21171 有两部分组成,一部分是英文字符,一部分是纯数字,如果我们只想保留数字部分,我们直接用str字符串进行处理 df['船票']=df['船票'].str.replace(r'[^d+]','') df.head(3) pandas里面的字符串功能非常强大,除了replace之外, 还有contains,split,match,findall,endswith等等,这招在清洗数据的非常有用。 2.数据集的过滤 我们在分析数据的时候经常要对数据内容进行过滤,或者是部分提取。 第四招:用逻辑表达式组合过滤 提取性别是女孩并且年龄在10岁以下的 df[(df['性别']=='女')&(df['年龄']<=10)] df.head(3) 第五招:巧用不等于 提取非3等舱,并且获救乘客信息 df[(df['是否获救']==1)&(df['船舱等级']!=3)] 第六招:也可以用query函数 df.query('船舱等级==[1,2]') 3.数据的分类 我们有的时候需要对数据进行多维度的细分和统计,有下面几招: 第七招:用where函数 第一种比较简单,用where 比如我们认为比如我们认为 年龄在18以下都是未成年,18岁以上成年的 df['是否成年']=np.where(df['年龄']>=18,'成年','未成年') df.sample(3) 第八招:用万能的apply函数 apply可以处理比较复杂的逻辑,比如我们把年龄划分为几个阶段,小孩,青年,成人,老人。 看一下新增的列"年龄分类"是不是层次分类更精准! 4.数据的切片和透视表 第九招:神奇的groupby函数 我们喜欢对数据按照某种类别分组统计: 1).从性别的维度来对是否获救的人数进行统计 df.groupby('性别')['是否获救'].count() 性别 女 314 男 577 Name: 是否获救, dtype: int64 2).从船舱的等级来看是非获救 df.groupby('船舱等级')['是否获救'].count() 船舱等级 1 216 2 184 3 491 Name: 是否获救, dtype: int64 第十招:对数据进行轴切片分析 比如我们希望对是非获救和船舱等级这个两个轴进行深入切片分析,这样的伎俩在R语言里面也经常用到,这里pandas给我们提供了非常方便的agg函数 df.groupby(['是否获救','船舱等级'])['年龄'].agg(['size','max','min','mean']) 这样就很容易发现,获救里面的头等舱的人比较多,平均年龄相对未获救的要年轻不少. 第十一招:数据透视表 透视表在很多数据分析里面都有,比如常见的excel里面,pandas也提供了类似的功能. 根据一个或者多个键对数据进行聚合,我们用透视表也能做出类似上面的功能,比groupby还要强大. df.pivot_table(columns=['性别'], index=['是否获救','船舱等级'], values='年龄', aggfunc={'年龄':[np.mean,min,max]}) 看完上面的11招,加上前面的(18招,小白必看的数据分析招式|精选上篇),学会这些招数基本上可以算是入门数据分析了。 当然如果需要对数据分析进行系统的学习,还需要掌握很多其他的知识,如有不同见解,我在评论去等着你。

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

开发工具总结(6)之Android Studio模板配置详解(提高开发效率必备技能)

版权声明:本文为博主原创文章(部分引用他人博文,已加上引用说明),未经博主允许不得转载。https://www.jianshu.com/p/1fe87050c1ff 转载请标明出处:https://www.jianshu.com/p/1fe87050c1ff 本文出自 AWeiLoveAndroid的博客 2017年最后一天了,首先祝贺大家元旦快乐,2018工作顺利,天天开心。 本文同步发表在github,欢迎观看,guithub地址:https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio 【前言】Android Studio模板相信大家应该多少都有接触过吧,如果用的少也没关系,花30分钟看看这篇博客就会用了,我会带领大家快速入门。使用了模板之后能大大的提高开发效率,建议大家收藏本文,忘记的时候再回来看看。 目录 一、工程目录模板二、Live Templates (活动模板)三、File and Code Templates(文件和代码模板),这里讲一下自定义注释模板四、自定义UI模板,新建project或者module的时候,右键可以快速生成模板,比如点击新建Activity,可以选择EmptyActivity等。。 一、工程目录模板 Android Studio 新建一个 project 时并没有将 Android 开发中常用的文件目录全部生成,比如默认只生成了一个 drawable文件夹,常用的 drawable-hdpi等文件夹需要我们自己去创建。再比如values目录下的dimens.xml,res目录下的anim文件夹都是没有的,需要我们手动去创建。这样一来,自己创建浪费时间,同时创建的目录名字错了,编译肯定会报错。所以为了效率和安全起见,我们需要把工程目录模板进行修改,达到创建 project 时就可以生成完整的目录结构,不再手动去创建的目的。 (一)新建module的时候自动生成dimens.xml. 操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule --> root --> res --> values,在values文件夹下创建 dimens.xml 文件夹,写入以下内容,保存: <?xml version="1.0" encoding="utf-8"?> <resources> </resources> (二)这里有3个需要变更的地方。 (1)新建module时,自动添加v4依赖,并且指定v4,v7包依赖版本。 (2)新建module时自动生成不同分辨率的drawable文件夹。 (3)指定dimens.xml的路径。 操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule,然后用编辑器打开 recipe.xml.ftl文件,并加入以下配置,如下图红色框框所示 说明: (1)dependency 这个意思是配置依赖库的url,默认的只有一个v7包,我这里新增了一个v4包的依赖。 (2)v7或者v4后面的25.3.1是对应的版本号,比如你想用24的版本,你可以替换成你的sdk里面对应的版本号(不知道sdk版本号的可以查看 Android studio常用设置和快捷键)。 (3)mkdir 意思是创建目录 (4)解释一下以下这段代码的意思: <instantiate from="root/res/values/dimens.xml" to="${escapeXmlAttribute(resOut)}/values/dimens.xml" /> //意思是把 模板的root/res/values/demins.xml 这个路径里面的dimens.xml拷贝到创建的项目资源目录下面的values/dimens.xml (三)新建module的时候想让module的build.gradle里面的编译指定某一个版本。比如我想要的结果是这样的: android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { minSdkVersion 25 targetSdkVersion 25 ... } ... } 重点要设置的有4个:compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion,下面讲一下操作方法: 操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule --> root,然后用编辑器打开build.gradle.ftl,修改配置如下图所示: 说明:先把这个文件备份,再去做修改。免费出问题了还可以还原回来。 4. 新建一个project看看效果如何: 二、Live Templates 活动模板(暂且翻译为 灵活的模板 比较好) (一)打开方法: 点击菜单File --> 点击Settings --> 选择Editor --> Code Style --> Live Templates,这里面配置了常用代码,比如log,System.out.println,for循环等 由于太多,下面只列举开发中经常用到的:(后面写注释“//修改了快捷键名称” 表示修改了快捷键名称,不再使用默认的快捷键,没修改的是默认的快捷键) (1)Android 安卓有关的 const 常量 fbc findViewById fore 创建foreach循环 //修改了快捷键名称 gone 设置View为gone //修改了快捷键名称 IntentView 用ACTION_VIEW创建一个Intent key 结果是 private static final String KEY_$value$ = "$value$"; newInstance 使用参数创建一个新的Fragment实例 co 生成构造方法 //修改了快捷键名称 cop 私有构造方法 //修改了快捷键名称 rgS 从资源文件getString(R.string.XXX) rouiT 生成runOnUIThread sbc 生成方格状注释代码块 Sfmt 格式化String String.format(XXX) starter 创建一个静态的start(...)方法来启动一个Activity toal 创建一个长时间的Toast //新增 toas 创建一个Toast //修改了快捷键名称 vi 设置View为visible //修改了快捷键名称 (2)AndroidComments 安卓组件 fix 添加 // FIXME //修改了快捷键名称 do 添加 // TODO //修改了快捷键名称 (3)AndroidLog 安卓打log有关的 logd Log.d(TAG, String) loge Log.e(TAG, String) logi Log.i(TAG, String) logm 打印方法名称及其参数,Log.d(TAG,XXX) logr 打印方法的结果 tag 根据当前的类名生成一个静态logtag //修改了快捷键名称,修改了内容,描述改为“根据当前类生成一个TAG” private static final String TAG = $className$.class.getSimpleName(); logw Log.w(TAG,String,Exception) logf Log.wtf(TAG, String, Exception) //修改了快捷键名称 (4)iterations 快速生成循环和迭代器代码块 for 示例:for (int i = 0; i < ; i++) {} //修改了快捷键名称 fora 示例:遍历数组 //修改了快捷键名称 for (int i = 0; i < Array.length; i++) { int i1 = Array[i]; } forc 示例:使用iterator遍历一个容器变量 //修改了快捷键名称 for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) { Object next = iterator.next(); }//这个是遍历一个容器变量的,直接让容器返回一个iterator进行遍历 whe 示例:while循环遍历枚举内容 //修改了快捷键名称 while (枚举类.hasMoreElements()) { Object nextElement = 枚举类.nextElement(); } iter 示例:遍历选中状态下的set //修改了快捷键名称 for (int i : FOCUSED_STATE_SET) {...} whi 示例:while循环使用iterator进行遍历 //修改了快捷键名称 while (iterator.hasNext()) { Object next = iterator.next(); }//获取到了迭代器对象后,对迭代器进行遍历操作 forl 示例:遍历list对象里面的内容 //修改了快捷键名称 for (int i = 0; i < list.size(); i++) { Object o = list.get(i); } foraa 示例:倒叙遍历数组 //修改了快捷键名称 for (int i = Array.length - 1; i >= 0; i--) { int i1 = FOCUSED_STATE_SET[i]; } //以下这两个用的少,只是把快捷键改了一下,方便使用 fors 对StringTokenizer遍历 //修改了快捷键名称 forv 对Vector遍历 //修改了快捷键名称 (5)Other 其他的 geti 获取到当前的实例 示例: public static MainActivity getInstance() { return ; } ifn 生成if null代码块 示例: if (某变量 == null) {....} inn 生成if not null代码块 示例:if (某变量 != null) {....} inst 判断某变量是不是某个类的实例对象 示例: if ($EXPR$ instanceof $TYPE$) { $TYPE$ $VAR1$ = ($TYPE$)$EXPR$; $END$ } lazy 执行延迟初始化,就是对象直到用的时候才进行初始化操作 示例: if (savedInstanceState == null) { savedInstanceState = new Bundle(); } st 获取数组最后一个元素 示例: arr[arr.length - 1] mn 比较两个变量较小值 Math.min(var2,var3); mx 比较两个变量较大值 Math.max(var2,var3); main 生成一个main()函数的代码块 public static void main(String[] args){ 。。。。 } //修改了快捷键名称 toar 把collection的对象存储到一个数组里面 示例:something.toArray(new collection[something.size()]) (6)plain 关于修饰符 psf public static final psfi public static final int psfs public static final String St String thr throw new (7)surround 代码块被什么包裹。。 I 被迭代器包裹 默认的是: for (Object o :) { } (8)output(我改成了SystemOut) //修改了组的名称 sysr 示例: System.err.println("example") //修改了快捷键名称 sysf 示例: System.out.printf("example") //修改了快捷键名称 syso 示例: System.out.println("example") //修改了快捷键名称 sysom 打印当前类的当前方法名, 示例:System.out.println("MainActivity.onCreate"); //修改了快捷键名称 sysop 打印当前方法的所有参数列表及其值, 示例: System.out.println("savedInstanceState = [" + savedInstanceState + "]"); //修改了快捷键名称 sysov 打印一个变量值, 示例:System.out.println("arr = "+ arr); //修改了快捷键名称 (二)自定义活动模板 我自定义了几个常用功能,放在lzw组下面,如图所示: han: 自动生成一个类继承Handler swi 自定义switch/case选择语句 toli 把数组转成集合(自定义的,后面会讲解怎么自定义的) zs:注释模板 具体操作方式如下: (1)点击右边的“+” 加号,选择 Template Group,创建一个组,输入一个组名,点OK (2)找到刚创建的组,点击右边的“+” 加号,选择 Live Template,创建一个模板 (3)Abbreviation后面的输入框输入一个快捷键名称,Description后面的输入框输入描述 (4)点击下方的Define,勾选java前面的复选框 (5)Template text 输入自定义模板的代码内容 (6)点击右边的Edit variables,编辑指定的变量名 具体如下图所示: 三、File and Code Templates 文件和代码模板,这里讲一下自定义注释模板 (一) 类注释 从编程规范来讲:编写完成每个类都要有一个头部注释,标注类的功能描述,作者,联系方式和修改日期等。对自己的代码负责。 头部注释的添加有以下两种方式: (1)第一种方式,可以在AS中,Settings → Editor → File and Code Templates → Includes → File Header,输入: /** * 描述:添加类的描述 * @author yourName * @e-mail XXX@XX.com * @time ${DATE} */ 这样便可在每次新建类的时候自动加上该头注释,如下图所示: (2)第二种方式,在Settings → Editor → Live Templates中配置,如下图所示: 关于这里的 ,点击右边的Edit variables,属性配置成date() 这种方式是配置模板和对应的快捷键,比如我的配置完成后在类的开头输入 lzw 回车就会自动生成对应的注释模板: (二) 方法注释 每一个成员方法(包括自定义成员方法、覆盖方法、属性方法)的方法头都必须做方法头注释。 操作方式:在方法前一行输入 /** + 回车 或者设置 Fix doc comment(Settings → Keymap → Fix doc comment) 快捷键,AS便会帮你生成模板,我们只需要补全参数即可。 四、自定义UI模板,新建project或者module的时候,右键可以快速生成模板,比如点击新建Activity,可以选择EmptyActivity等。。 【说明】这个我也没做太多研究,以后有时间我研究一下,把它写到这篇博客里面来。有兴趣的的可以参考这篇文章 AndroidStudioTemplate。该文章对应的github地址是: AndroidStudioTemplate 另外:我看简书里面也有前辈写了相关文章,也可以去看看。 《android studio的自定义工程模板详解》 https://www.jianshu.com/p/c76facb61d69 《网易 Android 工程模板化实践》https://www.jianshu.com/p/4076b71f18a4 本文同步发表在github,欢迎观看,guithub地址:https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio 到此为止,Android Studio的模板配置基本讲完了,有疑问的欢迎在下面留言。 【好消息】我的微信公众号正式开通了,关注一下吧! 关注一下我的公众号吧

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

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应用均可从中受益。

用户登录
用户注册