技术文章

ssh 无密码登录

假如想象 提交于 2021-02-18 04:04:29
1、在主服务器master下生成密钥 $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 2、将密钥放在 ~/.ssh/authorized_keys $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 3、对生成的文件authorized_keys授权 chmod 600 ~/.ssh/authorized_keys 4、编辑sshd_config文件,将下面三列#去掉 vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 5、重启sshd 服务(可省略) service sshd restart 6、验证无验证登陆 ssh localhost 7 配置master无密钥登陆slave(以此可以配置 master无密钥登陆slaveX ) 注释:root为root用户,master为主机名 [root@slaver ~]# scp -r root @master :/root/.ssh/id_dsa.pub /root/.ssh/slaver.pub [root@slaver ~]# cat ~/.ssh/slaver.pub >>

python图像处理-个性化头像

寵の児 提交于 2021-02-18 04:04:08
前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要 具备基本的电脑操作能力, 准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。 前言 很多时候我们都想要一个专属的头像表现,除了图像内容外不同,形状不一样,下面我就来说说如何使用python来实现个性化头像。 下面的圆形头像和牛角头像都是我使用python实现的,接下来我将通过讲解这个实现的过程,给大家带来一些想法。 实现原理 我们可以看到原来图片是方正的,通过处理后,图像形状外的地方都变成白色,这里实际上是透明,上面第三幅图可以帮助我们理解。 我们的处理过程其实就是将原来的图片变成RGBA格式,RGB是红绿蓝三种颜色,这里的A就是透明通道的意思,A的取值范围是从0-255之间变化,当A设置为0时,完全透明,255时完全不透明。 下面蓝色圆形,可以看到透明度越高,自身的颜色就变淡了,底部的文字就看的更清楚了,如果100%透明,圆形就会消失不存在了。 回到我们上面原来的猫图片,只要我们能够将猫图像的圆形区外的所有地方变成完全透明(看不见了),那么整个图片就变成圆形的了。 这里如果自己去计算圆形的边界,圆形外侧全部设置为完全透明,圆形内容不变,一个个像素点去处理,那将会非常麻烦,牛角的就更不用想了。 在PIL库里面,提供了两种方法帮助我们去解决这个问题

高并发解决方案

假装没事ソ 提交于 2021-02-18 04:03:31
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。   大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。这几个解决思路在一定程度上意味着更大的投入。 1、HTML静态化   其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。  

解决通过url传递中文参数乱码的问题

ぃ、小莉子 提交于 2021-02-18 04:03:11
url : '../../admin/PCarType_getCarTypeInfo2.action?departId='+id+'&departName='+escape(escape(depart_name)) 上面是js中使用ajax请求来传递一个参数的示例,其中departName是中文。escape是js的一个转义编码函数。该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。 那么我们怎么在java的action中来翻译这些编码呢:如下 public class Escape { private final static String[] hex = { "00","01","02","03","04","05","06","07","08","09","0A","0B","0C","0D","0E","0F", "10","11","12","13","14","15","16","17","18","19","1A","1B","1C","1D","1E","1F", "20","21","22","23","24","25","26","27","28","29","2A","2B","2C","2D","2E","2F", "30","31","32",

VS2015+ Opengles 2.0 和opengles 3.0、VS2015 + opengl 环境配置

无人久伴 提交于 2021-02-18 04:03:01
VS2015 + opengl 详见网址: https://blog.csdn.net/so_geili/article/details/51685005 https://blog.csdn.net/niukaoying6674/article/details/79915808 使用时需要添加依赖项如图: VS2015 + opengles 3.0 详见网址: https://blog.csdn.net/dardgen2015/article/details/51563914 VS2015 + opengles 2.0 详见网址: https://blog.csdn.net/linshuhe1/article/details/51064322、https://blog.csdn.net/u013015629/article/details/66475507 简单拷贝备用: 下载AMD的OpenGL ES2.0的模拟器,下载地址: http://www.opengles-book.com/ESEmulator.2009-04-28-v1.4.APRIL_2009_RELEASE.msi 下载《OpenGL ES2.0 Programming guide》里的例子代码,下载地址: http://www.opengles-book.com/OpenGL_ES_Programming

Egret白鹭开发微信小游戏排行榜功能

旧城冷巷雨未停 提交于 2021-02-18 04:02:36
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 我的个人博客 最近事情特别多,今天终于实现了排行榜功能,记录下来大家一起学习学习。 一。调用默认排行榜 首先我们需要了解: 1。白鹭开发文档(开放数据域): http://developer.egret.com/cn/github/egret-docs/Engine2D/minigame/openDataContext/index.html 2.微信小游戏开发文档(关系链数据): https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html 实现的核心功能是在main.ts中添加代码 (1)添加全局变量 (2)定义排行榜按钮,加载排行榜资源 (3)给按钮添加监听事件 main.ts中全部代码如下: class Main extends eui.UILayer { private bitmap: egret.Bitmap; private isdisplay = false ; private rankBtn: eui.Button; private rankingListMask: egret.Shape; protected createChildren(): void { super

select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

假装没事ソ 提交于 2021-02-18 04:02:03
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include <sys/time.h> #include <unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 参数maxfd是需要监视的最大的文件描述符值+1;rdset,wrset,exset分别对应于需要检测的可读文件描述符的集合,可写文件描述符的集 合及异常文件描述符的集合。struct timeval结构用于描述一段时间长度,如果在这个时间内,需要监视的描述符没有事件发生则函数返回,返回值为0。 fd_set(它比较重要所以先介绍一下)是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作: FD_ZERO(fd_set *fdset);将指定的文件描述符集清空,在对文件描述符集合进行设置前,必须对其进行初始化,如果不清空,由于在系统分配内存空间后,通常并不作清空处理,所以结果是不可知的。 FD_SET(int fd, fd_set *fdset);用于在文件描述符集合中增加一个新的文件描述符。 FD_CLR(int fd, fd

【笔记】MySQL的基础学习(二)

蓝咒 提交于 2021-02-18 04:00:40
【笔记】MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1、创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4 2、删除视图 格式:DROP VIEW 视图名称 DROP VIEW V1 3、修改视图 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME FROM A LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid WHERE A.id > 2 AND C.nid < 5 4、视图的使用 视图就是虚拟表,只能用作查询 SELECT * FROM v1 二 触发器 当对某张表做:增删改操作时,可以使用触发器自定义关联行为 1、创建基本语法 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END 插入后 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN ... END

ST的电机控制平台

荒凉一梦 提交于 2021-02-18 04:00:17
电机控制历来是芯片半导体厂家的必争之地,在公众号里多次介绍过NXP的电机控制平台,从直流无刷,到永磁同步到交流异步,包括项目中的使用探讨情况,最近在用ST的片子,ST同样提供很好的电机控制和参考设计平台, 通过装载电机控制SDK的设计文件可以生成工程,根据需要进行裁剪和参考 很形象化的从拓扑到结构和芯片的选择,管脚定义都有很好的参考。降低了许多刚入门电机控制的工程师的门槛。但是如果想控制好电机,还是要对基础理论很清楚,但这些工具确实能够很好的帮到你快速完成搭建和验证,在配合MATLAB/simulink那更是如虎添翼。 生成的工程也很清晰,划分也很符合模块化设计的规则,是很好的电机控制参考工程。 有兴趣的可以对比下我们之前介绍的NXP的平台和ST的平台,根据你的需要合理选择和使用,同时参考一些设计中的考虑和分析。这些图像化的设计工具确实会帮助我们节省很多时间。设计中可以多借鉴一些成熟的工具和软件件。提升设计的速度和交付的周期。现在的许多电机控制的项目都可以采用官方提供的工具和MATLAB的工具很好的完成,而且减少了很多工程师设计的时间。尤其随着这几年基于模型的设计,越来越多的设计项目可以采用一系列的工具来完成。其实编写代码只是我们设计中很小的一个环节,而相反我们设计中的工作,思维的体现,模型的搭建和验证才是重点。 本文分享自微信公众号 - 嵌入式程序猿(InterruptISR)。

HDP 大数据平台搭建

不打扰是莪最后的温柔 提交于 2021-02-18 03:56:17
一、概述 Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应、管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。 二、安装部署 2.1 主机规划 | 序号 | IP地址 | 主机名 |系统版本| | -------- | -------- | -------- | | 1 | 172.20.2.222 | ambari-server |centos7.3 | 2 | 172.20.2.203 | hadoop-1 |centos7.3 | 3 | 172.20.2.204 | hadoop-2 |centos7.3 | 4 | 172.20.2.205 | hadoop-3 |centos7.3 2.2 部署 2.2.1 基础环境部署 a.修改主机名配置hosts systemctl stop firewalld hostnamectl set-hostname ambari-server #更改个主机名 sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config