首页 文章 精选 留言 我的

精选列表

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

TensorFlow Hub介绍:TensorFlow中可重用的机器学习模块库

在软件开发中,最常见的失误就是容易忽视共享代码库,而库则能够使软件开发具有更高的效率。从某种意义上来说,它改变了编程的过程。我们常常使用库构建块或模块,并将其连接在一起进行编程。 开发人员是如果使用库的呢?除了共享代码之外,我们还可以共享预训练模型。共享预训练模型能够使开发人员有针对性的开发该模型,而不需要访问计算资源或手头上用于训练模型的原始数据。例如,NASNet架构在GPU上花费数千个小时进行训练。通过共享学习到的权重,其他开发人员就能够更容易重用库和构建模型或架构。 机器学习模型内部的“组成部分”,可以使用TensorFlow Hub进行打包和共享。从某种意义上来讲,除了架构本身,共享预先训练好的模型的同时,也共享了开发模型的计算时间和数据集。 为机器学习开发者提供库产生了TensorFlow Hub库。TensorFlow

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

02.自定义View(RippleTextView可颜色渐变的TextView)

感谢红橙Darren博主 package com.rzm.commonlibrary.views; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.AttributeSet; import android.widget.TextView; /** * Created by renzhenming on 2018/3/22. * 颜色渐变效果的TextView,可用于音乐播放的字幕 */ public class RippleTextView extends TextView{ //最初的画笔 private Paint mOriginPaint; //颜色改变后的画笔 private Paint mChangedPaint; //当前滑动进度 private float mCurrentPercent = 0.6f; //当前设置的文本 private String mText; // 当前朝向 private Direction mDirection = Direction.DIRECTION_LEFT; // 绘制的朝向枚举 public enum Direction { DIRECTION_LEFT, DIRECTION_RIGHT } public RippleTextView(Context context) { this(context,null); } public RippleTextView(Context context, @Nullable AttributeSet attrs) { this(context, attrs,-1); } public RippleTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initPaint(); } private void initPaint() { mOriginPaint = getPaintByColor(Color.BLACK); mChangedPaint = getPaintByColor(Color.RED); } private Paint getPaintByColor(int color) { Paint paint = new Paint(); //抗锯齿 paint.setAntiAlias(true); //防抖动 paint.setDither(true); paint.setColor(color); // 字体的大小设置为TextView的文字大小 paint.setTextSize(getTextSize()); return paint; } /** * 自己绘制,不继承super * @param canvas */ @Override protected void onDraw(Canvas canvas) { //获取textView的文本 mText = getText().toString().trim(); //获取textView宽度 int width = getWidth(); if (!TextUtils.isEmpty(mText)){ //mCurrentPercent进度下,滑动到控件的位置 int position = (int) (width* mCurrentPercent); // 根据不同的朝向去画字体 if (mDirection == Direction.DIRECTION_LEFT) { drawOriginDirectionLeft(canvas, position); drawChangeDirectionLeft(canvas, position); } if (mDirection == Direction.DIRECTION_RIGHT) { drawOriginDirectionRight(canvas, position); drawChangeDirectionRight(canvas, position); } } } /** * 画朝向右边变色字体 */ private void drawChangeDirectionRight(Canvas canvas, int position) { drawText(canvas, mChangedPaint, getWidth() - position, getWidth()); } /** * 画朝向左边默认色字体 */ private void drawOriginDirectionRight(Canvas canvas, int position) { drawText(canvas, mOriginPaint, 0, getWidth() - position); } /** * 画朝向左边变色字体 */ private void drawChangeDirectionLeft(Canvas canvas, int position) { drawText(canvas, mChangedPaint, 0, position); } /** * 画朝向左边默认色字体 */ private void drawOriginDirectionLeft(Canvas canvas, int position) { drawText(canvas, mOriginPaint, position, getWidth()); } /** * 设置当前的进度 * @param currentProgress 当前进度 */ public void setCurrentProgress(float currentProgress) { this.mCurrentPercent = currentProgress; // 重新绘制 invalidate(); } /** * 设置绘制方向,从右到左或者从左到右 * @param direction 绘制方向 */ public void setDirection(Direction direction) { this.mDirection = direction; } /** * 根据滑动位置绘制文本 * @param canvas * @param paint * @param start * @param end * * 基准点是baseline * Ascent是baseline之上至字符最高处的距离 * Descent是baseline之下至字符最低处的距离 * Top指的是指的是最高字符到baseline的值,即ascent的最大值, * bottom指的是最下字符到baseline的值,即descent的最大值,字能达到的最小值 */ private void drawText(Canvas canvas, Paint paint, int start, int end) { //保存画笔状态 canvas.save(); //截取绘制的内容,该方法用于裁剪画布,也就是设置画布的显示区域 //主要用于部分显示以及对画布中的部分对象进行操作的场合。 canvas.clipRect(start,0,end,getHeight()); //获取文字的范围 Rect bounds = new Rect(); mOriginPaint.getTextBounds(mText,0,mText.length(),bounds); // 获取文字的Metrics 用来计算基线 Paint.FontMetricsInt fontMetrics = mOriginPaint.getFontMetricsInt(); //获取文字的高度 int fontHeight = fontMetrics.bottom - fontMetrics.top; // 计算基线到中心点的位置,fontHeight/2是文字中心点, fontMetrics.bottom是基线到文字最低点的高度, int offY = fontHeight/2 - fontMetrics.bottom; // 计算基线位置,为什么基线的位置这样计算,如果想不通,可以这样,假设,文字在控件正中间,控件高度的一半 //也就是控件顶部到文字中心点的垂直距离,文字高度的一半也就是文字中心点到文字最顶部或者最底部的距离,二者相加 //可以看作是从控件顶部到文字最底部的距离,这个距离是等于控件顶部到基线的距离加上 int baseline = (getMeasuredHeight() + fontHeight) / 2 - offY; //绘制文字 canvas.drawText(mText,getMeasuredWidth()/2-bounds.width()/2,baseline,paint); //恢复画笔状态 canvas.restore(); } }

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

VirtualBox中CentOS7网络配置(可连外网)

本文所述的方法在RHEL6.5、RHEL7和CentOS6.5中同样适用。 1.工具:VirtualBox,虚拟机:CentOS7 2.VirtualBox工具中的网络配置 (1)VirtualBox全局设置:管理——>全局设定——>网络——>仅主机(host-only) 注:因为我本次配置是要搭建OpenStack的网络环境,所以我这里又新建了一块网卡Virtualbox Host-Only Ethernet Adapter#2来作为openstack的管理网络,若是只想配一个网卡,则直接使用VirtualBox中原本就存在的Host-Only网络Virtualbox Host-Only Ethernet Adapter即可。 第一块网卡Virtualbox Host-Only Ethernet Adapter设置如下: 新增的第二块网卡Virtualbox Host-Only Ethernet Adapter#2设置如下: 且两块网卡的DHCP服务器选项都不启用 (2)为了连接外网,将本机的无线网络共享给VirtualBox Host-Only Network,即第一块网卡 (3)在VirtualBox中给虚拟机配置网卡: 网卡一: 网卡二(若不需要两块网卡则无需做这步): 注意两块网卡的MAC地址是不一样的,记住它们,有助于在下一步中确定哪块网卡对应的是哪个配置文件(ifconfig命令中的ether后面就是MAC地址)。 3.虚拟机中的网络配置 在配置之前,先了解一下网卡配置文件各个参数的意义: DEVICE=eth0 #指出设备名称 NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启 ONBOOT=yes #设置为yes,开机自动启用网络连接 IPADDR=192.168.21.129 #IP地址 BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务 NETMASK=255.255.255.0 #子网掩码 DNS1=8.8.8.8 #第一个dns服务器 TYPE=Ethernet #网络类型为:Ethernet GATEWAY=192.168.21.2 #设置网关 DNS2=8.8.4.4 #第二个dns服务器 IPV6INIT=no #禁止IPV6 USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改 HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址 PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME="System eth0" #定义设备名称 接下来进行配置 (1)ifcfg-xxx文件的配置 由于virtualbox中给虚拟机分配了两块网卡,因此进入虚拟机中能看到两个网络配置文件ifcfg-xxx 两个文件具体配置如下 ifcfg-enp0s3(由MAC地址可知其对应的是VirtualBox中的Virtualbox Host-Only Ethernet Adapter): 注:BOOTPROTO也可以设置为static,这样配置的IP就是静态的了。 ifcfg-enp0s8: (2)/etc/resolv.conf文件的配置 修改DNS,在 /etc/resolv.conf文件中增加一个域名服务器,使得虚拟机可以连通外网 nameserver 192.168.137.1 (3)重启网络:service network restart,然后使用ifconfig命令查看 注:有时候即使ifcfg-xxx文件都配置对了,并且使用service network restart命令重启了网络,用ifconfig命令看到IP依然没有配置成自己想要的,这个时候可以使用ifdown 命令(如ifdown enp0s3)先关闭网卡,再用ifup命令开启,就可以了。若是还不行,那么就需再返回去查看文件是否真的配置对了。 4.网络测试: (1)ping自己 ping -c 4 10.0.0.11 ping -c 4 192.168.137.110 ping -c 4 controller(/etc/hosts文件中需添加ip到主机名的映射) (2)ping外网 至此,网络配置完成。

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

“爱思助手”曝为iOS木马:可绕过苹果DRM机制

一款新的iOS木马已在国内曝光,它可以通过PC感染未越狱的iOS设备,而无需利用企业证书。Palo Alto Networks指出,其名叫“爱思助手”(AceDeceiver),目前正在影响我国的iOS用户。“爱思助手”利用了苹果数字版权管理(DRM)上的FairPlay漏洞来感染iOS设备。 据Palo Alto Networks所述,其采用了所谓的“FairPlay中间人”技术,此前曾被用于传播盗版iOS应用。 该技术借助假冒iTunes软件和欺骗性质的授权代码来将应用安装到iOS设备上,但现在也被用于传播“爱思助手”(AceDeceiver)恶意软件。 苹果允许用户通过计算机上的iTunes客户端里的App Store购买和下载iOS应用,然后将之安装到自己的iOS设备上。 每款安装到iOS设备上的应用都需要提供一个切实购买的授权码,而在FairPlay中间人攻击中,攻击者在App Store上购买了一款应用,然后拦截并保存了该授权码。 之后,他们用开发出来的PC软件来模拟iTunes客户端的行为,欺骗iOS设备相信应用是由受害人购买的。 用户因而可以安装他们实际未支付过的应用,但软件开发者也能够借此向无知用户的设备偷偷安装恶意软件。 从2015年7月到2016年2月,已经有三款“AceDeceiver”应用被上传到了官方iOS App Store。其冒充为一款壁纸应用,从而让攻击者拿到了一个用于攻击的虚假授权代码。 它还有一款配套的“爱思助手”Windows iPhone管理应用,虽自称可提供系统备份和清理服务,但却会给连接的设备安装恶意的iOS应用。 其设计伪装成一个可提供免费内容的第三方应用市场,然后引诱用户递交他们的Apple ID和密码,并将相关信息上传到AceDeceiver服务器。 尽管苹果已经在2月份移除了它,但由于仍然可以用授权码来在iOS设备上安装虚假应用,其攻击仍然持续着。Palo Alto Networks警告称,尽管当前仅限于国内,但类似恶意软件或很快传播到其它地区。 作者:蓝雨泪 来源:51CTO

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

希捷推Duet移动硬盘 文件可同步至Amazon Drive

希捷(Seagate)近日推出了名为“Duet”的全新便携式移动硬盘,提供传统的1TB本地存储同时在硬盘盒上还印有亚马逊的LOGO,支持将存储在硬盘上的文件上传备份至亚马逊的云存储服务Amazon Drive,用户可以通过配套的移动应用进行访问。而购买该移动硬盘的非亚马逊用户,将会免费获得云存储服务。 购买地址:亚马逊 这款移动硬盘的初衷是本地硬盘用来存储文件,能够让用户离线访问并更容易控制存储的所有内容。但是在没有PC的场景中如果想要访问这些存储的文件就变得比较困难了,例如使用平板,通过和云存储的有效结合能够高效的解决这个问题。 现在购买希捷Duet的用户将获得免费1年的无限量Amazon Drive云存储空间,价值59.99美元,用户能够肆意的将文件存储至云端。该移动硬盘于今天开始通过亚马逊商城进行预订,售价为99.99美元。 本文转自d1net(转载)

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

苏锦梁:物联网可助电商开拓市场

香港特区政府商务及经济发展局局长苏锦梁25日表示,物联网是大势所趋,风口所在,电商如果懂得借用物联网的势头,一定能进一步开拓市场、领导市场。香港拥有高效稳定的数码和流动网络,有利促进本地电商的发展,香港也具备优秀条件让初创企业发展成长。 苏锦梁在出席阿里巴巴的一个活动时表示,有研究顾问机构预计,到2020年,物联网(internet of things、IoT)产品与服务供应商,将带来1.9万亿美元的全球经济附加值。 他表示,IoT在不同产业领域的应用十分广阔。譬如在物流方面,IoT可以应用在仓储、货物和运输,为消费者提供一个便利、快捷的取货方案;又譬如在零售和网购方面,IoT能够加强与消费者的互动,例子包括“智能购物袋”、“ Dash Button”和“智能试身镜”等。 电商在世界各地越来越普及,相关业者如果懂得借用IoT的势头,透过跨界合作和资源配合,相信定能进一步开拓市场、领导市场。苏锦梁表示乐见阿里巴巴致力推动IoT生态发展,利用电商、云计算和操作系统,提供基础服务给IoT初创企业,为香港的IoT创业者提供一个将智能产品通向国际市场的平台。他表示,这是个四赢方案:电商生态赢、IoT初创企业赢、消费者赢、香港赢。 ====================================分割线================================ 本文转自d1net(转载)

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

可与公共云无缝对接 平滑升级或部署混合云

随着计算日益成为水电煤一样的公共服务,越来越多的政府、大型企业以更加开放的姿态拥抱云计算。同时出于自身数据中心利旧和数据本地化的考虑,大量政企客户需要专属的云计算解决方案。 4月20日,在云栖大会·深圳峰会上,阿里云发布专有云Apsara Stack,可为政企客户实现在自有的数据中心内构建完整的专属式云计算服务,为客户打造安全、可靠、弹性的云计算工作环境。 阿里云认为,无论专有云还是混合云都是公共云计算的延伸。专有云(Apsara Stack)基于经过大规模市场服务验证的阿里云公共云平台,针对企业市场进行了二次优化,使之易交付、易管理,同时满足了政企市场的安全合规和可靠性要求。 专有云(Apsara Stack)提供了包括云计算、大数据、企业级互联网架构、安全等全栈云产品的API和SDK,极大地满足了客户定制化要求和生态建设。 目前,海关总署、浙江政务服务网、网商银行、贵州交警等大型政企客户都使用专有云(Apsara Stack)构建了新一代IT系统。 据阿里云研发总监介绍,客户可通过调用API,对产品、资源、应用和数据进行统一入口管理,实现灵活部署、快速操作、精确使用和及时监控。此外,客户还可以自己封装个性化的管理系统,与企业现有流程无缝对接;生态合作伙伴也可以利用开放接口进行二次封装,实现行业化定制管理方案。 专有云(Apsara Stack)的发布,意味着企业用户可以享受一致性体验的“专有云+公共云”的混合云服务,既能为本地数据中心赋予阿里云同款云架构能力,又能无缝获取公共云的弹性扩展能力,无需考虑软件架构的差异。 阿里云自2009年开始研发、部署代号为“飞天”(Apsara)的云计算服务,目前单一集群规模可达万台以上,为上百万客户提供云计算服务,是国内最大、全球领先的公共云计算服务。 至此,阿里云自身提供的云计算服务覆盖了公共云、混合云、专有云三大领域。与此同时,阿里云也与其他云计算服务商一起实现多种架构的混合云形态,充分满足不同客户群体对计算的需求。 本文转自d1net(转载)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册