首页 文章 精选 留言 我的

精选列表

搜索[天玑9500],共10000篇文章
优秀的个人博客,低调大师

一天我们能做什么? ——中小金融企业持续交付之路

导读:平时工作中,研发、测试、运维同学在持续交付和DevOps上会碰到一些难题:比如持续交付搭一个系统很简单,但是想要管理代码之外的一些资源有点难;公司里的系统多、模块多,开发人员只是做了一小部分,但最终需要集成测试通过才能交付;开发和测试人员之间界限不明确,常常会出现一些互相扯皮的事情。面对这些难题该如何解决?国泰产险首席架构师许磊明首次披露国泰产险持续交付之路,分享解决思路。 前言 对于一家公司或者企业来说,最重要的还是要看结果。持续交付,DevOps只是手段,那怎么衡量这个结果呢?我们需要知道发布的吞吐量是什么,修复时间是多少,质量怎么样?接下来我会跟大家分享国泰产险在持续交付上的一些实践。 保险行业面临的困境 保险业是一个强监管的行业。当时我们主要业务是做车险,车险是一个红海市场,中小保险公司操作十分困难,外部面临的是市场竞争惨烈

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

第145天:jQuery.touchSlider触屏满屏左右滚动幻灯片

1、HTML 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>jQuery.touchSlider触屏满屏左右滚动幻灯片</title> 6 <link href="css/lanrenzhijia.css" type="text/css" rel="stylesheet"/> 7 <script src="js/jquery.min.js"></script> 8 <script src="js/jquery.event.drag-1.5.min.js"></script> 9 <script src="js/jquery.touchSlider.js"></script> 10 <script> 11 $(document).ready(function () { 12 $(".main_visual").hover(function(){ 13 $("#btn_prev,#btn_next").fadeIn() 14 },function(){ 15 $("#btn_prev,#btn_next").fadeOut() 16 }) 17 $dragBln = false; 18 $(".main_image").touchSlider({ 19 flexible : true, 20 speed : 200, 21 btn_prev : $("#btn_prev"), 22 btn_next : $("#btn_next"), 23 paging : $(".flicking_con a"), 24 counter : function (e) { 25 $(".flicking_con a").removeClass("on").eq(e.current-1).addClass("on"); 26 } 27 }); 28 $(".main_image").bind("mousedown", function() { 29 $dragBln = false; 30 }) 31 $(".main_image").bind("dragstart", function() { 32 $dragBln = true; 33 }) 34 $(".main_image a").click(function() { 35 if($dragBln) { 36 return false; 37 } 38 }) 39 timer = setInterval(function() { $("#btn_next").click();}, 5000); 40 $(".main_visual").hover(function() { 41 clearInterval(timer); 42 }, function() { 43 timer = setInterval(function() { $("#btn_next").click();}, 5000); 44 }) 45 $(".main_image").bind("touchstart", function() { 46 clearInterval(timer); 47 }).bind("touchend", function() { 48 timer = setInterval(function() { $("#btn_next").click();}, 5000); 49 }) 50 }); 51 </script> 52 </head> 53 <body> 54 <div class="main_visual"> 55 <div class="flicking_con"> 56 <div class="flicking_inner"> 57 <a href="javascript:">1</a> 58 <a href="javascript:">2</a> 59 <a href="javascript:">3</a> 60 <a href="javascript:">4</a> 61 <a href="javascript:">5</a> 62 </div> 63 </div> 64 <div class="main_image"> 65 <ul> 66 <li><span class="img_3"></span></li> 67 <li><span class="img_4"></span></li> 68 <li><span class="img_1"></span></li> 69 <li><span class="img_2"></span></li> 70 <li><span class="img_5"></span></li> 71 </ul> 72 <a href="javascript:;" id="btn_prev"></a> 73 <a href="javascript:;" id="btn_next"></a> 74 </div> 75 </div> 76 </body> 77 </html> 2、CSS 1 2 @charset "utf-8"; 3 *{margin:0;padding:0;list-style:none;border:0;} 4 img{ border:none;} 5 6 .main_image { 7 width:100%; 8 height:422px; 9 border-top:1px solid #d7d7d7; 10 overflow:hidden; 11 margin:0 auto; 12 position:relative 13 } 14 .main_image ul { 15 width:9999px; 16 height:422px; 17 overflow:hidden; 18 position:absolute; 19 top:0; 20 left:0 21 } 22 .main_image li { 23 float:left; 24 width:100%; 25 height:422px; 26 } 27 .main_image li span { 28 display:block; 29 width:100%; 30 height:422px 31 } 32 .main_image li a { 33 display:block; 34 width:100%; 35 height:422px 36 } 37 .main_image li .img_1 { 38 background: url('../images/img_main_1.jpg') center top no-repeat 39 } 40 .main_image li .img_2 { 41 background: url('../images/img_main_2.jpg') center top no-repeat 42 } 43 .main_image li .img_3 { 44 background: url('../images/img_main_3.jpg') center top no-repeat 45 } 46 .main_image li .img_4 { 47 background: url('../images/img_main_4.jpg') center top no-repeat 48 } 49 .main_image li .img_5 { 50 background: url('../images/img_main_5.jpg') center top no-repeat 51 } 52 div.flicking_con { 53 width:990px; 54 margin:0 auto; 55 position:relative 56 } 57 div.flicking_con .flicking_inner { 58 position:absolute; 59 top:360px; 60 left:90px; 61 z-index:999; 62 width:300px; 63 height:21px 64 } /* 121126 */ 65 div.flicking_con a { 66 float:left; 67 width:21px; 68 height:21px; 69 margin:0; 70 padding:0; 71 background:url('../images/btn_main_img.png') 0 0 no-repeat; 72 display:block; 73 text-indent:-1000px 74 } 75 div.flicking_con a.on { 76 background-position:0 -21px 77 } 78 #btn_prev, #btn_next { 79 z-index:11111; 80 position:absolute; 81 display:block; 82 width:73px!important; 83 height:74px!important; 84 top:50%; 85 margin-top:-37px; 86 display:none; 87 } 88 #btn_prev { 89 background:url(../images/hover_left.png) no-repeat left top; 90 left:100px; 91 } 92 #btn_next { 93 background:url(../images/hover_right.png) no-repeat right top; 94 right:100px; 95 } 3、js插件下载引入: <script src="js/jquery.min.js"></script> <script src="js/jquery.event.drag-1.5.min.js"></script> <script src="js/jquery.touchSlider.js"></script>运行结果:

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

手机商城第六天,利用GridView实现推荐区域以及火爆区域

代码已提交码云,有兴趣的可以下载看看 https://git.oschina.net/joy_yuan/ShoppingMall 本次代码效果截图: 效果如上图所示,2个区域,一个是分三列显示,一个是分2列显示,代码类似,就拿一个区域做例子好了 一、推荐区域 布局文件: 整体是个线性布局,里面有2个子布局,一个线性布局,一个gridview. 重点是gridview里,设置numCloumns=3,表示分三列显示数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <?xmlversion= "1.0" encoding= "utf-8" ?> <LinearLayoutxmlns:android= "http://schemas.android.com/apk/res/android" android:background= "#fff" android:orientation= "vertical" android:layout_width= "match_parent" android:layout_height= "match_parent" > <LinearLayout android:padding= "10dp" android:gravity= "center_vertical" android:layout_width= "match_parent" android:layout_height= "wrap_content" > <ImageView android:src= "@drawable/home_arrow_left_new" android:layout_width= "wrap_content" android:layout_height= "wrap_content" /> <TextView android:text= "新品推荐" android:textColor= "#000" android:layout_marginLeft= "10dp" android:layout_width= "wrap_content" android:layout_height= "wrap_content" /> <TextView android:id= "@+id/tv_more_remommend" android:text= "查看更多" android:gravity= "end" android:drawableRight= "@drawable/home_arrow_right" android:drawablePadding= "5dp" android:layout_weight= "1" android:layout_width= "wrap_content" android:layout_height= "wrap_content" /> </LinearLayout> <GridView android:id= "@+id/gv_commend" android:numColumns= "3" android:layout_width= "match_parent" android:layout_height= "380dp" ></GridView> </LinearLayout> gridview的每个item的布局如下: 外围是线性布局,然后里面包含图片、文本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <?xmlversion= "1.0" encoding= "utf-8" ?> <LinearLayoutxmlns:android= "http://schemas.android.com/apk/res/android" android:orientation= "vertical" android:gravity= "center_horizontal" android:padding= "10dp" android:layout_width= "match_parent" android:layout_height= "match_parent" > <ImageView android:id= "@+id/iv_recommend" android:background= "@drawable/new_img_loading_2" android:layout_width= "100dp" android:layout_height= "100dp" /> <TextView android:id= "@+id/tv_name" android:textColor= "#000" android:text= "全款预售【喵鹿酱】樱桃蜜语毛呢绣花小高腰半裙" android:lines= "2" android:ellipsize= "end" android:layout_marginTop= "10dp" android:layout_width= "100dp" android:layout_height= "wrap_content" /> <TextView android:id= "@+id/tv_price" android:textColor= "#ff4242" android:text= "¥88.00" android:layout_width= "wrap_content" android:layout_height= "wrap_content" /> </LinearLayout> 二、在HomeFragmentAdapter中 1、创建推荐区域的viewholder 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 /** *创建viewholder相当于baseadapter里的getview,相当于viewholder部分代码 *@paramparent *@paramviewType当前的类型 *@return返回一个用来展示的控件的布局,如下方的R。layout.banner_viewpager这个布局的页面等 */ @Override public RecyclerView.ViewHolderonCreateViewHolder(ViewGroupparent, int viewType){ if (viewType==BANNER){ return new BannerViewHolder(context,layoutInflater.inflate(R.layout.banner_viewpager, null )); } else if (viewType==CHANNEL){ return new ChannelViewHolder(context,layoutInflater.inflate(R.layout.channel_item, null )); } else if (viewType==ACT){ return new ActViewHolder(context,layoutInflater.inflate(R.layout.act_item, null )); } else if (viewType==SECKILL){ //秒杀 return new SeckillViewHolder(context,layoutInflater.inflate(R.layout.seckill_item, null )); } else if (viewType==RECOMMEND){ return new RecommendViewHolder(context,layoutInflater.inflate(R.layout.recomment_item, null )); } else if (viewType==HOT){ return new HotViewHolder(context,layoutInflater.inflate(R.layout.hot_item, null )); } return null ; } 2 、绑定数据到这个区域 /** *相当于getview里的绑定数据 *@paramholder *@paramposition */ @Override public void onBindViewHolder(RecyclerView.ViewHolderholder, int position){ //通过position,来获取当前是哪个类型 if (getItemViewType(position)==BANNER){ //是banner类型,将holder强转为bannerviewholder BannerViewHolderbannerViewHolder=(BannerViewHolder)holder; bannerViewHolder.setData(resultBean.getBanner_info()); } else if (getItemViewType(position)==CHANNEL){ ChannelViewHolderchannelViewHolder=(ChannelViewHolder)holder; channelViewHolder.setData(resultBean.getChannel_info()); } else if (getItemViewType(position)==ACT){ ActViewHolderactviewholder=(ActViewHolder)holder; actviewholder.setData(resultBean.getAct_info()); } else if (getItemViewType(position)==SECKILL){ //秒杀 SeckillViewHolderseckillViewHolder=(SeckillViewHolder)holder; seckillViewHolder.setData(resultBean.getSeckill_info()); } else if (getItemViewType(position)==RECOMMEND){ RecommendViewHolderrecommendViewHolder=(RecommendViewHolder)holder; recommendViewHolder.setData(resultBean.getRecommend_info()); } else if (getItemViewType(position)==HOT){ HotViewHolderhotViewHolder=(HotViewHolder)holder; hotViewHolder.setData(resultBean.getHot_info()); } } /** *推荐的viewholder */ class RecommendViewHolder extends RecyclerView.ViewHolder{ TextViewtv_more_remommend; GridViewgv_commend; public RecommendViewHolder( final Contextcontext,Viewinflate){ super (inflate); tv_more_remommend=(TextView)inflate.findViewById(R.id.tv_more_remommend); gv_commend=(GridView)inflate.findViewById(R.id.gv_commend); gv_commend.setOnItemClickListener( new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?>parent,Viewview, int position, long id){ Toast.makeText(context, "position==" +position,Toast.LENGTH_SHORT).show(); //点击后跳转到详情页面 startGoodsInfoActivity(); } }); } 3 、设置适配器,来显示数据 public void setData(List<ResultBeanData.ResultBean.RecommendInfoBean>recommend_info){ RecommendAdapteradapter= new RecommendAdapter(context,recommend_info); gv_commend.setAdapter(adapter); } } 三、gridview的适配器,与listview的适配器类似,都是extends BaseAdapter,实现里面的方法 注意在里面创建内部类viewholder,用来临时存放每个gridview的item内部控件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 package com.yuanlp.shoppingmall.home.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.yuanlp.shoppingmall.R; import com.yuanlp.shoppingmall.home.model.ResultBeanData; import com.yuanlp.shoppingmall.utils.Constants; import java.util.List; /** *Createdby原立鹏on2017/8/29. */ public class RecommendAdapter extends BaseAdapter{ private final Contextcontext; private final List<ResultBeanData.ResultBean.RecommendInfoBean>recommend_info; public RecommendAdapter(Contextcontext,List<ResultBeanData.ResultBean.RecommendInfoBean>recommend_info){ this .context=context; this .recommend_info=recommend_info; } @Override public int getCount(){ return recommend_info.size(); } @Override public ViewgetView( int position,ViewconvertView,ViewGroupparent){ ViewHolderviewholder= new ViewHolder(); if (convertView== null ){ convertView=View.inflate(context,R.layout.item_recommend, null ); viewholder.iv_recommend=(ImageView)convertView.findViewById(R.id.iv_recommend); viewholder.tv_name=(TextView)convertView.findViewById(R.id.tv_name); viewholder.tv_price=(TextView)convertView.findViewById(R.id.tv_price); convertView.setTag(viewholder); } else { viewholder=(ViewHolder)convertView.getTag(); } ResultBeanData.ResultBean.RecommendInfoBeanrecommendInfoBean=recommend_info.get(position); Glide.with(context).load(Constants.IMG_URL+recommendInfoBean.getFigure()).into(viewholder.iv_recommend); viewholder.tv_name.setText(recommendInfoBean.getName()); viewholder.tv_price.setText(recommendInfoBean.getCover_price()); return convertView; } @Override public ObjectgetItem( int position){ return recommend_info.get(position); } @Override public long getItemId( int position){ return position; } class ViewHolder{ TextViewtv_name; TextViewtv_price; ImageViewiv_recommend; } } 明天讲解利用scrollviewcontainer这个第三方插件,来实现点击商品后跳转商品详情页面。 本文转自老婆的宝宝51CTO博客,原文链接:http://blog.51cto.com/cm0425/1960968,如需转载请自行联系原作者

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

21天让你成为Horizon View高手—Day1:Horizon View概述

VMware View是全球首款针对桌面虚拟化的企业级解决方案,据Gartner 2010年4月针对全球使用桌面虚拟化数据分析VMware View市场占用率高达56%。VMware View已经在中国掀起了一股桌面虚拟化的热浪,VMware View虚拟桌面技术已经成为IT界的讨论的焦点。 VMware View架构: VMware View 5.2全新登场 VMware桌面虚拟化解决方案View于2013年3月份推出最新的View 5.2版本,经过之前具有革命性一代的View 4.5以及2012年9月份发布的View 5.1产品,VMware View 已经成为市场上知名度最高的桌面虚拟化产品,无论从其后台稳定性,管理简洁性还是用户体验都是企业桌面虚拟化领域最成熟的方案之一。 VMware View 建立在业界最广泛部署的虚拟平台VMware vSphere上,简化了IT管理与控制,同时为最终用户提供最高保真度的体验,无论采用的是WAN还是LAN连接。 在View 5.0版本和View 5.1中改进了PCoIP协议,可将LAN和WAN的连接带宽降低达75%;对3D图形的高级支持;可扩展的统一通信集成,用于Avaya与Mitel等业界领先的语音与视频媒体服务;以及集成了角色管理,用户配置文件漫游等虚拟桌面个性化功能。 2013年3月发布的View 5.2版本依然围绕着基础架构的稳定优化,便捷的管理,良好的用户体验来进行构建,并与 Horizon View 5.2的新增功能 VMware Horizon View 5.2 在最终用户体验和简化管理方面有了长足改进,并可以进一步降低 VDI 的总体拥有成本。 最终用户体验方面的新增功能特性 支持基于 Windows 8 的桌面 硬件加速 3D 图形 支持 Microsoft Lync 2013,改进了视频和 VOIP 通信 通过更简化的方式从 Horizon 访问 View 桌面 借助 HTML Access,轻松从任意设备连接桌面 新增面向移动设备的“统一触摸”功能,工作效率得到提高 简化管理方面的新增功能特性 消除了 8 台主机的限制,同时支持多个 vLAN,因此支持创建大型池 View Administrator 在管理大量桌面时的性能改进 加速的部署和重构操作 vSphere Web Client 中新增集成的服务控制台(技术预览版) 支持基于 vCenter Server Virtual Appliance 的部署 总体拥有成本方面的新增功能特性 通过能节省空间(SE 稀疏)的磁盘技术进一步降低永久桌面所需的存储容量 在2013年3月7号VMware又发布了Horizon View 5.2 Feature Pack 1,提供了以下功能和组件: (1)Remote Experience Agent 安装程序 - 使用 Remote Experience Agent 可以在 Horizon View 桌面上安装 Feature Pack 组件,有助于优化 View Agent 5.2 提供的远程桌面体验。在 Feature Pack 1 中,安装程序会在 Horizon View 桌面上安装 Unity Touch 和 HTML Access Agent。默认情况下,运行安装程序后,两个组件都会进行安装。 (2)HTML Access Agent - 用户使用 HTML Access 可以从 Web 浏览器连接至虚拟桌面,而无需在客户端系统上安装 Horizon View Client 软件。HTML Access Agent 在 Horizon View 桌面上运行,通过该组件,用户可以使用 HTML Access 连接至自己的桌面。您必须在希望通过 HTML Access 访问的桌面上同时安装 Remote Experience Agent 和 HTML Access Agent。 (3)Unity Touch - Unity Touch 可以改善移动客户端用户访问桌面的体验。用户无需在较小的设备屏幕上操作完整桌面映像,可以在无需查看桌面的情况下直接从本机移动用户界面中浏览应用和文档。 (4)HTML Access 安装程序 - 该安装程序可以对 View 连接服务器实例进行配置,以允许用户选择通过 HTML Access 连接至桌面。运行 HTML Access 安装程序后,View Portal 除了显示 View Client 图标外还会显示 HTML Access 图标。 如果您希望在 Horizon View 部署中使用 HTML Access 连接至桌面,则必须运行此安装程序。如果您的用户要使用 Horizon Workspace 并且选择通过 HTML Access 连接至桌面,也必须运行此安装程序。 VMware View基础架构: n 域控制器:为View的必需组件,为View提供统一帐户和验证支持。 n vSphere(ESX/ESXi):后台虚拟机支撑架构 n vCenter Server:虚拟机管理平台 VMware View组件: n View Manager n View Security Server n View Transfer Server n View Composer n Thinapp n View Agent n View Client 本文转自robbindai 51CTO博客,原文链接:http://blog.51cto.com/virtualyourdesk/1194361

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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等操作系统。

用户登录
用户注册