培训问答
2019-06-30 11:08
以前曾流行一句半开玩笑的话,就是有些类似产品经理角色的人会说:我们什么都不缺,就差一个程序员了。后面就到CEO们说:我们什么都不缺,就差一个CTO了。如果CTO不是很懂技术,而是类似于信息官的话,他可能会说:我们什么都不缺,就差一个架构师了。今天我们要聊的,就是架构师这个物种,不少人觉得很神秘的称谓。很多公司都有所谓的架构师职位,而实际上很多具有架构师头衔的人,都不能算严格意义上的架构师,他要不在做非架构师的工作,要不就是能力达不到称职架构师的水准。人们常常误以为,架构师就是等产品经理弄懂需求,画出原型图后,根据原型图去设计系统架构的人。而实际上,架构师应该深入理解需求,理解业务逻辑,预知需求变化,然后设计出整体可扩展的系统架构,并清楚知道从需求分析到功能实现、测试、集成、发布、运维等每一个环节的工作内容和方式,进而知道如何配备人力来完成这些事情,知道如何为系统运行时的可用性可靠性提供保障,真正做到掌控全局。...
2019-06-25 11:17
目录
将有约束问题转化为无约束问题
拉格朗日法
KKT条件
拉格朗日法更新方程
凸优化问题下的拉格朗日法
罚函数法
对梯度算法进行修改,使其运用在有约束条件下
投影法
梯度下降法 to 投影梯度法
正交投影算子
References
相关博客
梯度下降法、最速下降法、牛顿法等迭代求解方法,都是在无约束的条件下使用的,而在有约束的问题中,直接使用这些梯度方法会有问题,如更新后的值不满足约束条件。
那么问题来了,如何处理有约束的优化问题?大致可以分为以下两种方式:
将有约束的问题转化为无约束的问题,如拉格朗日乘子法和KKT条件;
...
2019-06-25 11:05
技术讨论QQ群:135202158...
2019-06-24 16:44
系列目录
使用docker创建只读文件系统
容器化部署对应用的运维带来了极大的方便,同时也带来一些新的安全问题需要考虑.比如黑客入侵到容器内,对容器内的系统级别或者应用级别文件进行修改,会造成难以估量的损失.(比如修改hosts文件导致dns解析异常,修改web资源导致网站被嵌入广告,后端逻辑被更改导致权限验证失效等,由于是分布式部署,哪些容器内的资源被修改也很难以发现).解决这个问题的办法就是创建创建一个具有只读文件系统的容器.下面介绍使用docker run命令和docker compose来创建具有只读文件系统的容器.
...
2019-06-20 13:21
很多人对Invoke和BeginInvoke理解不深刻,不知道该怎么应用,在这篇博文里将详细阐述Invoke和BeginInvoke的用法:
首先说下Invoke和BeginInvoke有两种用法:
1.Control中Invoke,BeginInvoke
2.Delegate中Invokke,BeginInvoke
这两种情况是不同的,我们首先讲一下第一种,也就是Control类中的Invoke,BeginInvoke的用法。我们先来看一下MSDN是如何解释的:
control.invoke(参数delegate)方法:在拥有此控件的基础窗口句柄的线程上执行指定的委托。
...
2019-06-19 11:47
项目demo展示
重要功能总结
权限功能的实现
权限路由思路:
根据用户登录的roles信息与路由中配置的roles信息进行比较过滤,生成可以访问的路由表,并通过router.addRoutes(store.getters.addRouters)动态添加可访问权限路由表,从而实现左侧和顶栏菜单的展示。
实现步骤:
1.在router/index.js中,给相应的菜单设置默认的roles信息;
如下:给"权限设置"菜单设置的权限为:meta:{roles: ['admin', 'editor']},及不同的角色都可以看到; 给其子菜单"页面权限",设置权限为:meta:{roles: ['admin']},及表示只有"admin"可以看到该菜单; 给其子菜单"按钮权限"设置权限为:meta:{roles: ['editor']},及表示只有"editor"可以看到该菜单。
...
2019-06-17 16:30
一、引言 经过两章的铺垫,我们现在对SmartSql已经有了一定的了解,那么今天我们的主题是事务处理。事务处理是常用的一种特性,而SmartSql至少提供了两种使用事务的方法。一种是通过Repository(动态仓储)或者ITransaction的常规调用,一种是基于AOP提醒的动态代理方式。接下来我们一个个说。...
2019-06-15 16:01
前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>...
2019-06-13 16:35
朋友们,很久不见,甚是想念~
前段时间因公司业务需求要开发小程序,大概做了有十天左右,在此将我使用小程序的一点心得拿出来给大家分享一下~
接触小程序的第一感觉:
第一次写小程序会有点小激动,第一次嘛,你懂的~
翻开小程序的文档你会发现,我透,这简直就是神物啊,各种组件应有尽有,轮播图swiper,滚动容器scroll-view,等等好用的组件(还有map地图组件,你敢信?),还有无穷无尽的小程序自带的API,连上拉加载下拉刷新都已经给你封装好了,它还有自带的模板template以及自定义组件component等等让你享不尽的荣华富贵,我只有一个字,爱了~
...
2019-06-13 16:18
一、概念
1、jvm生命周期
启动:当启动一个java程序时,一个jvm实例就诞生了,任何一个拥有main方法的class都可以作为jvm实例运行的起点。
运行:main()函数作为程序初始线程起点,其它线程由该线程启动,包括守护线程(daemon)和non-daemon(普通线程)。守护线程是JVM自己使用的线程比如GC线程就是个守护线程,只要这个jvm实例还有普通线程执行,就不会停止,但是可以用exit()强制终止程序。
消亡:所有非守护线程退出时,JVM实例结束生命,若安全管理器允许,程序也可以使用java.lang.Runtime类或者System.exit(0)来退出。实际上exit也是用到Runtime类来退出,Runtime是个神奇的类,它还可以用于启动和关闭非java进程。
...
2019-06-13 15:32
目录
公司C++规范学习
语法部分
风格/约定
公司C++规范学习
语法部分
class和struct关键字的选择:class表示被封装的用户自定义类型,不公开定义非静态数据成员,struct表示数据的简单集合,只定义用于初始化数据成员的方法。
必须使用构造函数初始化列表显示初始化直接基类与所有基类类型数据成员。
没有复制意义的类必须用DISALLOW_COPY_AND_ASSIGN宏禁止拷贝构造函数和赋值构造函数。
DISALLOW_COPY_AND_ASSIGN 宏就是将复制拷贝函数和赋值操作符声明为私有变量。
...
2019-06-12 16:55
言
在我们的程序开发过程中,如果涉及到多线程环境,那么对于集合框架的使用就必须更加谨慎了,因为大部分的集合类在不施加额外控制的情况下直接在并发环境中直接使用可能会出现数据不一致的问题,所以为了解决这个潜在的问题,我们要么在自己的业务逻辑中加上一些额外的控制,例如锁,或者我们直接使用Java提供的可在并发环境中使用的集合类,这是一个简便而且高效的方法。那么我们下面就来了解下Java提供了哪些“神器”可以让我们安全的使用集合。
正文
非阻塞式安全列表 - ConcurrentLinkedDeque
...
2019-06-11 16:05
前言
cobbler是一个可以实现批量安装系统的Linux应用程序。它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本。
系统环境准备及其下载cobbler
一.系统环境
开启两个网卡。一个仅主机模式,一个桥接模式,主机模式对内提供cobbler服务。
复制代码
[root@ken ~]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
...
2019-06-11 16:19
线程和进程和协程...
2019-06-06 15:38
简单介绍Puppeteer
Puppeteer是一个Node库,它通过DevTools协议提供高级API来控制Chrome或Chromium。Puppeteer默认以无头方式运行,但可以配置为有头方式运行。Puppeteer中文”木偶”,很贴切,它可以使用node程序来模拟人操作浏览器的行为,比如点击某个按钮等。
Puppeteer可以做什么
在浏览器中手动执行的大多数操作都可以使用Puppeteer完成!例如:
生成页面的屏幕截图和PDF。
抓取SPA(单页面应用程序)并生成预渲染内容(即“SSR”(服务器端渲染))。
...