Shadow

阿里内部员工,排查Java问题常用的工具单

青春壹個敷衍的年華 提交于 2020-07-28 01:51:32
这是一篇来源于阿里内部技术论坛的文章,原文在阿里内部获得一致好评。作者已经把这篇文章开放到云栖社区中供外网访问。Hollis对文章内容做了部分删减,主要删减掉了其中只有阿里内部才能使用的工具的介绍,并删减掉部分只有通过阿里内网才能访问到的链接。 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 闲话不多说,开搞。 Linux命令类 tail 最常用的tail -f tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式 grep grep forest f.txt #文件查找 grep forest f.txt cpf.txt #多文件查找 grep 'log' /home/admin -r -n #目录下查找所有符合关键字的文件 cat f.txt | grep -i shopbase grep 'shopbase' /home/admin -r -n --include *.{vm,java} #指定文件后缀 grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反匹配 seq 10 | grep 5

JavaFX初探(菜单)

故事扮演 提交于 2020-07-27 23:15:40
JavaFX初探(菜单) 本节我们介绍如何创建菜单、菜单栏、增加菜单项、为菜单分类,创建子菜单、设置菜单上下文。你可以使用下面的类来创建菜单。 MenuBar MenuItem Menu CheckMenuItem RadioMenuItem CustomMenuItem SeparatorMenuItem ContextMenu 下图是一个典型的菜单的使用: 在应用中构建菜单 一个菜单就是一系列可操作的项目,可以根据用户的需要来表现。当一个菜单可见的时候,用户可以在某一时刻选中其中一个,在用户选中某一项时,这个菜单变成隐藏模式。通过使用菜单,我们可以节省用户界面的空间,因为有一些功能某些时间并不是总要现实出来的。 菜单在菜单栏中被分组,你需要使用下面的菜单项类,当你构建一个菜单的时候。 MenuItem 创建可选项 Menu 创建子菜单 RadioButtonItem 创建一个单选项 CheckMenuItem 这个菜单项可以在选择被无选择之间转换。 为了给菜单分类,可以使用SeparatorMenuItem 类。 菜单通常在窗口的顶部,并且这些菜单是隐藏的,我们可以通过鼠标点击上下文来打开菜单。 创建菜单栏 尽管菜单栏可以放在用户界面的任何地方,但是一般情况我们放到窗口的顶部。并且菜单栏可已自动的改变自己的大小。默认情况下,每一个菜单栏中的菜单像一个按钮一样呈现出来。

Java中IO和NIO的本质和区别

大城市里の小女人 提交于 2020-07-27 23:01:40
简介 终于要写到java中最最让人激动的部分了IO和NIO。IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就存在的。NIO叫做new IO,是在java1.4中引入的新一代IO。 IO的本质是什么呢?它和NIO有什么区别呢?我们该怎么学习IO和NIO呢? 别急,看完这篇文章一切都有答案。 更多内容请访问 www.flydean.com IO的本质 IO的作用就是从外部系统读取数据到java程序中,或者把java程序中输出的数据写回到外部系统。这里的外部系统可能是磁盘,网络流等等。 因为对所有的外部数据的处理都是由操作系统内核来实现的,对于java应用程序来说,只是调用操作系统中相应的接口方法,从而和外部数据进行交互。 所有IO的本质就是对Buffer的处理,我们把数据放入Buffer供系统写入外部数据,或者从系统Buffer中读取从外部系统中读取的数据。如下图所示: 用户空间也就是我们自己的java程序有一个Buffer,系统空间也有一个buffer。所以会出现系统空间缓存数据的情况,这种情况下系统空间将会直接返回Buffer中的数据,提升读取速度。 DMA和虚拟地址空间 在继续讲解之前,我们先讲解两个操作系统中的基本概念,方便后面我们对IO的理解。 现代操作系统都有一个叫做DMA

java b2b2c商城

故事扮演 提交于 2020-07-27 16:25:26
一、需求分析 买家可以对商品提交购买问题咨询,买家提交的商品购买咨询不单单商家可以进行回复,也应该可以将问题推送给购买过此商品的买家来进行回复。 买家提出的咨询和对其他买家咨询的回复,都应该推送消息给相应的会员用户,做到及时提醒。 二、流程图 三、数据结构 会员问题咨询表 会员问题咨询回复表 会员咨询与回复站内消息表 四、类图展示 1、实体类展示 2、枚举类展示 五、领域模型 1、会员问题咨询 2、会员回复问题咨询 3、会员商品咨询审核通过发送消息 六、源码展示 这里以会员购买咨询为例: 会员问题咨询实体--Memb /** * 会员问题咨询实体 * * @author dmy * @version v2.0 * @since v7.1.5 * 2019-09-16 */ @Table(name = "es_member_ask") @ApiModel @JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class) public class MemberAsk implements Serializable { private static final long serialVersionUID = 1642694855238993L; /** * 主键 */ @Id(name = "ask_id")

5个需要掌握的sklearn技能

坚强是说给别人听的谎言 提交于 2020-07-27 15:08:33
虽然scikit-learn在机器学习领域很重要,但是很多人并不知道利用这个库中的一些强大的功能。本文将介绍scikit-learn中5个最有用的5个隐藏的瑰宝,充分利用这些秘密武器将有效提高你的机器学习处理的效率! 1、数据集生成器 Scikit-learn有很多数据集生成器,可以用来生成各种复杂度和维度的人工数据集。 例如, make_blobs 函数可以创建包含很多数据样本、聚类中心、维度的“blobs”或数据聚类。可视化以后可以清晰看出样本的分布: Scikit-learn其实提供了很多数据集创建函数: make_moons(n_samples=100, noise=0.1) make_circles(n_samples=100, noise=0.05) make_regression(n_samples=100, n_features=1, noise=15) make_classification(n_samples=100) 2、流水线/Pipeline 流水线可以将不同的方法组合为单一模型,在自然语言处理(NLP)应用中这一点非常重要。可以通过组合多个模型的方式来创建流水线,数据将依次流过聚合模型中的各环节。流水线有标准的拟合与预测能力,这使得训练过程得到很好的组织。 很多对象都可以整合进流水线: 缺失值处理器/Imputers:如果你的数据中包含缺失的数据

这些年积攒的系统起不来以及root登陆异常排查的点

家住魔仙堡 提交于 2020-07-27 14:41:35
背景介绍: 最近在整理文档,这些年陆陆续续写了好多个不同排查点的文档去记录系统起不来,以及root登陆异常的案例,今天整理一下放出来,希望大家可以喜欢 系统启动异常: 1,部分centos启动黑屏,无异常报错的场景,可以fsck一下系统盘 2,根分区空间满,以及inode耗尽 3,升级内核或者从老的共享实例迁移到独享规格导致的启动异常 3.1 手动注入驱动 (mkinitrd virtio相关驱动 ) 3.2 修改grub 的启动顺序,优先尝试使用老内核启动 3.3 boot目录下面内核的关联文件是否全(下面仅为demo,不同系统内核版本文件不一致,部分内核版本boot下的i386目录也是有用的) config-4.9.0-7-amd64 initrd.img-4.9.0-7-amd64 System.map-4.9.0-7-amd64 vmlinuz-4.9.0-7-amd64 3.4 /boot/grub/device.map里面的hda改成vda 4,fstab/grub中的 uuid不对,可以直接修改为/dev/vda1这种形式尝试 数据盘分区异常加载起不来的场景,可以去注释ftab所有的行,添加类似下面的启动项尝试,也适用用系统盘快照创建云盘挂载后,uuid一致导致的启动异常,改成非UUID的挂载即可 /dev/vda1 / ext4 defaults 1 1 5

看动画学算法之:排序-选择排序

空扰寡人 提交于 2020-07-27 13:58:35
简介 选择排序就是从数组中选择出来最大或者最小的元素,然后将其和队首或者队尾的元素进行交互。 因为首先做的是一个选择的过程,所以叫做选择排序。 选择排序的例子 假如我们有一个数组:29,10,14,37,20,25,44,15,怎么对它进行选择排序呢? 先看一个动画: 选择排序的原理如下: 8个数字,我们需要进行7轮排序。 以第一轮为例,我们对对所有的数据进行比较,找到其中最小的那个10,然后把10放在数组的第一个。 当第二轮时,因为数组的第一个元素10已经排好序了,我们只需要从第二个位置开始就行了,同样的,第二轮我们找到后面几个元素中最小的那个14,将其放在数组的第二个位置。 以此类推进行7轮排序就得到了最后的结果。 选择排序的java代码实现 我们把上面的逻辑用java代码实现如下: public class SelectionSort { public void doSelectionSort(int[] array){ log.info("排序前的数组为:{}",array); //外层循环,遍历所有轮数 for(int i=0; i< array.length-1; i++){ //内层循环,找出最小的那个数字 int minIndex=i; for(int j=i+1;j<array.length;j++) { if(array[j] < array[minIndex]

超能陆战队之大白的制作过程

孤街浪徒 提交于 2020-07-27 13:45:54
效果图如下:            友情提示:本篇文章只是用来熟练掌握css样式和布局能力,空闲时间不妨敲一遍,增加一些体验,我也不算白敲一遍。。 是不是有点心动呢?接下来请看具体步骤:   首先先把HTML部分先写完,做出整体的结构: < div class ="baymax" > <!-- 定义头部 眼睛、嘴巴 --> < div class ="head" > < div class ="eye" ></ div > < div class ="eye2" ></ div > < div class ="mouth" ></ div > </ div > <!-- 定义躯干 --> < div class ="torso" > < div class ="heart" ></ div > </ div > <!-- 定义肚子腹部 --> < div class ="belly" > < div class ="cover" ></ div > </ div > <!-- 定义左臂 包括一大一小两个手指 --> < div class ="left_arm" > < div class ="l_bigFinger" ></ div > < div class ="l_smallFinger" ></ div > </ div > <!-- 定义右臂 包括一大一小两个手指 -->

一分钟让你读懂优秀PM与普通PM的区别

倖福魔咒の 提交于 2020-07-27 13:13:04
近期跟同行业的几位大咖聊天,被问到: “你觉得该如何定义现在的产品经理?” 作为一名有着丰富产品工作的笔者而言,这个问题应该是很容易回答的,但是当时竟然无语,不知道该如何定义。 进而又涉及到了更深刻的三个问题: “每个企业都有市场部,都有产品经理,但是产品经理的职责明确吗?” “公司对产品经理的能力要求有哪些?” “产品经理生存现状如何?” 半个小时的交流之后,忽然有一种脊背发凉的感觉,不是为自己,而是为了行业里被认为是精英中的精英的产品经理! 想要判断一个产品经理够不够优秀 优秀的产品经理该具备什么样的能力 就看他做了什么,怎么做,这就可以避免踩到更多雷坑 现在,请欣赏优秀产品经理大战普通产品经理! 1、理解能力 项目中存在许多细节性的问题,解决问题第一步——理解团队的需求,优秀的PM学会把问题交给团队解决,而不是单兵作战替团队决策。 2、项目管理能力 一个好的产品经理能为团队成员做好示范,以身作则管理好项目与工作,无限追求完美和个人主义是不利于团队协作,更不利于产品的设计与管理。 3、沟通能力 产品经理的沟通力,可谓一种天生技能。优秀的产品经理不仅能够说服他人,推动项目进展,而且时刻保持谦逊善良的心,做啥都贼稳! 4、团队协调能力 每个产品经理老司机,对于如何与技术角色合作,如何做到在设计与实现之间游刃有余,如何带领整个产品和团队走向成功,都会有自己的一套方法。更好地凝聚团队

在以太坊合约中访问链下数据【ChainLink教程】

泄露秘密 提交于 2020-07-27 12:10:31
在这个教程中,我们将学习如何搜索Chainlink Market以找到满足需求的Chainlink预言机(Oracle),以及如何编写Solidity智能合约实现通过预言机访问区块链外部数据(例如货币价格)的功能。 用自己熟悉的语言学习 以太坊DApp开发 : Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart 由于区块链生态系统的本质,从链上的智能合约直接访问链下数据是不可能的。但是,Chainlink为区块链预言机提供了一个平台,这些预言机充当链上和链外数据之间的桥梁。预言机使智能合约能够从区块链外部获取数据。 可以将每个预言机节点配置为执行各种任务,具体取决于其支持的适配器。其中一些适配器包括HTTP GET,HTTP POST,JSON Parse,Multiply等的实现。 1、Chainlink预言机简介 假设我们要创建一个智能合约,该合约将根据CoinGecko上的以太坊美元价格做出不同的响应。我们知道智能合约没有办法调用外部HTTP API,但是oracle节点可以。 通过请求-响应周期处理,智能合约就可以从oracle节点请求数据,该节点被配置为执行HTTP GET请求,并为oracle实现一个回调函数以执行响应: 我们不能简单地使用任意预言机