一、反引号 反引号:`` Kotlin中可以用反引号解决关键字冲突问题。将一个不合法的字符变为合法字符,这种情况一般可以用在一个Kotlin方法不希望被Java调用时使用,因为Java语言层面上不支持反引号这种语法。 fun `1234`(){ println("1234") } fun ` `(){ println(" ") } fun ` `(){ println(" ") } fun main(args: Array<String>) { `1234`() ` `() ` `() } 二、比较操作 KotlinJava作用a == ba.equals(b)比较两个对象的内容是否相同a === ba == b比较两个对象是否是同一个对象 三、typealias 通过这个关键字可以关联一个已有的类,可以理解为给类起一个别名。
typealias A = Thread fun main(args: Array<String>) { val a = A() a.start() }
Google Cloud 免费层级 Google Cloud 免费层级提供了各种免费资源,可让您通过自行试用了解 Google Cloud 服务。无论是想学习该平台基础知识的全新客户,还是想体验新解决方案的老客户,Google Cloud 免费层级都能满足您的需求。
Google Cloud 免费层级包含两个部分:
12 个月免费试用,含 $300 赠金,可用于试用任意 Google Cloud 服务。“始终免费”计划,可让您限量免费使用很多常用 Google Cloud 资源。 本文介绍了 Google Cloud 免费层级的这两个部分。
注意:如果您对 Google Cloud 免费层级还有其他疑问,请联系支持团队。
获享 $300 赠金,免费试用 12 个月 免费试用提供了一定的赠金,在您学习 Google Cloud 知识期间可用于支付相关资源使用费。
参与计划的资格要求 只要符合以下条件,即有资格参与本计划:
您从不是 Google Cloud 付费客户。您以前没有注册过免费试用。您已经通过 Google Cloud Console 为自己的帐号启用了结算功能。您并未与销售代表合作设立附带条款清单的企业帐号。如果您需要设立企业帐号,请联系销售团队。
计划的启动 设置好第一个结算帐号后,包含 $300 赠金的 12 个月免费试用即自动开始。
您必须提供信用卡或银行详细信息才能设置结算帐号并验证您的身份,但在免费试用期间我们不会向您收取费用。
计划的覆盖范围 您的免费试用赠金适用于所有 Google Cloud 资源,但有以下例外情况:
您不能同时运行 8 个以上的内核(或虚拟 CPU)。您不能向虚拟机实例添加 GPU。您不能申请增加配额。如需大致了解 Compute Engine 配额,请参阅资源配额。您不能创建基于 Windows Server 映像的虚拟机实例。您必须升级帐号才能执行上述操作。
电脑端操作: 1、选择要共享的文件夹
右键-属性-共享标签下的共享
添加上Everyone
完成设置,点击右下角共享
2、设置不需用户名、密码直接访问
回到第一张图那里,进入 网络和共享中心
关闭 密码保护
3、win7或者更低版本Windows系统应该是昨晚上述步骤即可,win10要多加一步,开启smb1.0协议(该协议默认关闭,因为曾经出过安全漏洞)
控制面板-程序-启用或关闭Windows功能
电视端操作 共享设备 - smb共享 - 输入电脑ip(cmd ipconfig命令ipv4地址) - 连接
文章目录 计算机中数的表示二进制“1”和“0”的表示定点数的表示浮点数的表示 CMOS电路及工艺P管与N管反相器N沟道MOS晶体管的示意图MOS晶体管的工作状态MOS基本工艺---光刻P衬底 nWell CMOS工艺版图 CMOS逻辑电路基本逻辑电路逻辑表达式CMOS组合电路的组成真值表逻辑图时序逻辑电路:CMOS电路延迟原理 从Verilog到版图:Verilog语言:从Verilog 到GDSII(以3-8译码器为例) 其它“0”和“1”的表示方法 计算机中数的表示 二进制“1”和“0”的表示 用电压的高低表示,半导体工艺,CMOS用磁通量的有无表示,超导体工艺用能级的高低表示,量子计算机用基因序列表示,A, G, C, T, DNA计算机(本质也是二进制) 定点数的表示 原码:A=an-1 an-2…… a1 a0表示 最高位an-1为符号位,0表示正,1表示负;其它位an-2…… a1 a0表示数值。原码的问题:加减法效率低,两个“0” 补码 本质:取模运算,不包含符号位的n位数,[Y]补=2^(n+1)+y,如-2%12=10最高位an-1为符号位,0表示正,1表示负。
原码补码转换
最高位为0时,一样;
最高位为1时,最高位不变,其余位“按位取反加一”。补码运算
A-B=A+B的负数=A+(B求补)加法溢出判断
A和B的最高位一样,且结果的最高位与A和B的最高位不一样。 浮点数的表示 由来
定点数表示范围有限,太大或太小的数都不能表示,且除法不精确
表示:IEEE 754标准
组成:符号位,阶码(exponent),尾数(fraction)
符号位:最高位
阶码(exponent):
i. 阶码的移码表示:底为2,2(阶码-偏移值)(阶码=指数+偏移)
ii. 范围:0<e<255(指数范围:-127<m<128)
①. e=255:无穷大数或非数
②. e=0:非规格化数或正负0
IEEE 754允许特别小的非规格化数:阶码能表示的最小指数为-126,那更小的呢?
此时阶码为0,尾数前的1不再加,即浮点数:0.f * 2^(e-126)。
例如: 2 − 128 = ( 0.01 ) 2 ∗ 2 − 126 2^{-128}=(0.01)_2 * 2^{-126} 2−128=(0.01)2∗2−126。
Error:No such property: GradleVersion for class: JetGradlePlugin问题处理 idea插件版本Gradle版本 idea插件版本 build.gradle中版本号设置
Gradle版本 gradle-wrapper.properties中版本号
IDE 版本(GradlePlugin)和 Gradle 版本不匹配导致这个错误。
GradlePlugin 版本和 AndroidStudio 版本一致,与 Gradle 版本有一张对应表
对应匹配版本号一般可以解决上面错误
MATLAB R2017a的Coder工具使用实例-m语言转C++
https://blog.csdn.net/hustcxl/article/details/81137287Matlab Coder 使用方法
https://jingyan.baidu.com/article/8065f87fe146332331249898.html
背景 在写注解处理器时,首先就是要继承AbstractProcessor,并且按照如下步骤声明:
需要在 processors 库的 main 目录下新建 resources 资源文件夹;
在 resources文件夹下建立 META-INF/services 目录文件夹;
在 META-INF/services 目录文件夹下创建 javax.annotation.processing.Processor 文件;
在 javax.annotation.processing.Processor 文件写入注解处理器的全称,包括包路径;
这样声明下来也太麻烦了?这就是用引入auto-service的原因。
在类的顶部加入注解:@AutoService(Processor.class),这个注解处理器是Google开发的,可以用来生成 META-INF/services/javax.annotation.processing.Processor 文件信息。
使用遇到的问题 在module_processor中导入我们要用的auto-service库;
implementation 'com.google.auto.service:auto-service:1.0-rc6' 在类上面添加service的注解即可:
@AutoService(Processor.class) public class BindViewProcessor extends AbstractProcessor { ...} 编译项目后却始终不见META-INF目录的生成,正常是会在该注解处理器项目的目录module_processor/build/classes/java/main/META-INF下生成。
解决方案一: 网上有人说是gradle的版本问题
(1)将原来根目录的build.gradle 里依赖的gradle版本改为3.5.3
dependencies { classpath 'com.android.tools.build:gradle:3.5.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } (2)以及gradle-wrapper.properties文件的gradle版本修改为4.X版本的较低版本
方案一我没有试过,不知是否可行,而且要改gradle的版本可能对原本的项目会有影响。
方案二:继续使用gradle5.4.1版本: 由于Gradle 5.
https://www.cnblogs.com/yanghj/p/12148309.html
新装的ubuntu 很卡,
原因:因为我是英伟达的显卡,跟ubuntu的默认显卡驱动冲突
解决方案
首先 图形界面不能用了 只能切命令模式
在登录的时候 选择ubuntu adavance (ubuntu 高级模式)
按E
在下图中 handoff 后面加空格 加3
然后按F10保存退出
再次进入ubuntu启动就进入命令模式了
登录完之后输入命令
ll /etc/modprobe.d/blacklist.conf
这样可以看到backlist.conf文件的权限
然后 修改这个文件的权限
sudo chmod 666 /etc/modprobe.d/blacklist.conf
然后输入
echo "">>/etc/modprobe.d/blacklist.conf
echo "blacklist vga16fb">>/etc/modprobe.d/blacklist.conf
echo "blacklist nouveau">>/etc/modprobe.d/blacklist.conf
echo "blacklist rivafb">>/etc/modprobe.d/blacklist.conf
echo "blacklist rivatv">>/etc/modprobe.d/blacklist.conf
echo "blacklist nvidiafb">>/etc/modprobe.d/blacklist.conf
这样其实就是往 blacklist.conf文件里面输入这些配置
然后在恢复blacklist.conf文件的权限
sudo chmod 644 /etc/modprobe.d/blacklist.conf
然后输入命令 刷新策略
sudo update-initramfs -u
然后重启
sudo reboot -h now
重启之后 可以检查一下 ubuntu高级选项
这个时候 的3已经没有了,如果退不回 图形界面的话 就把3删了
在实际开发中,我们可能遇到如下问题:
如何保证多个开发者的开发环境一致
某些仅支持Linux 的扩展如何在Windows上使用(而Linux下开发又十分不便利)
在单个开发者需要安装扩展后,保证其他开发者无需安装即可使用
为了解决以上问题,今天将解释如何使用Nignx 的泛域名解析和PhpStorm 解决以上问题。
首先,我们利用PhpStorm 实现远程开发:
①.在Phpstorm 中新建项目,选择File→New Project form existing File,选择如下:
②点击 Next 进行下一步输入项目名称以及项目的本地路径:
③选择 Add new Romote Server 点击 Next
④填写正确的服务器配置, 并在 Root path 选择相应的服务器地址即可
⑤点击下一步,然后下一步选择服务器的醒目路径,选择完点击下一步再点击完成就好了
⑥创建项目后,选择Tool→Deployment→Options
点击保存即可完成配置,然后在远程服务器上配置 php环境, 使用 lnmp或者其他集成环境以及自定义安装均可, 再配置好Nginx 泛域名解析就可以了
代码:
1
2
3
4
5
6
7
8
9
/**
* 树结构数据条件过滤
* js 指定删除数组(树结构数据)
*/
function filter (data, id) {
var newData = data.filter(x => x.id !== id)
newData.forEach(x => x.children && (x.children = filter(x.children, id)))
return newData
}
转载: https://www.cnblogs.com/crazycode2/p/10353262.html
首先,可以将马分为8组,每组各跑一次,然后淘汰掉后四名,这里淘汰后四名是因为只需要跑的最快的四匹马。
然后取8次跑的第一名进行比赛,然后淘汰掉后四名所在的组的所有马,因为,后四名所在的组的第一名没有跑过前四名的马,所以可以直接淘汰。
这时候还剩下16匹马,此时黄色部分是剩余的马,在这里其实可以继续淘汰,因为D1是第九次的第四名,但D1又是它3所在组的第一名,那么对应的D2,D3,D4都可以继续淘汰掉。但是第四名也可能出现在C2中,C2是所在组的第二名,那么C3,C4也可以淘汰了,根据这样进行分析,可以得到B4也可以淘汰了。最后剩余的马如下图:
最后剩余的就是去掉上一步淘汰的马。总数为10匹,其实这时候最快的一批已经出来了,那么就将剩余的9匹马,选择一匹,剩余的8匹,重新跑一下选择最快的3匹。
然后将跑出来的3匹马和刚没有跑的1匹,默认最快的一匹,再跑一场,最后最快的4匹也就出来了。最少要使用11场比赛。
项目地址: https://github.com/zhangrj/EMC-VNX-Storage-Zabbix-Monitor
开发背景 EMC VNX5500存储是公司最核心的存储设备,一旦出问题,整个平台就会陷入瘫痪。在我到来之前,EMC存储的巡检完全依赖人工远程与现场代维,今年5月份的时候,我开始着手解决这个问题。
最先想到的监控方法肯定是SNMP/SNMPTRAP,但很不幸的是,我找了大半天也没有找到配置SNMP或SNMPTRAP的地方,也没有搜索到设备的MIB参考文档。在浏览相关资料的时候,找到了通过命令行配置存储设备的管理工具Navisphere,使用该工具可查看存储状态,简单编写一点程序结合Zabbix即可实现监控。
Navisphere命令行工具安装 安装包:https://github.com/zhangrj/EMC-VNX-Storage-Zabbix-Monitor/blob/master/安装软件/NaviCLI-Linux-64-x86-en_US-7.33.9.2.36-1.x86_64.rpm
正常使用rpm安装即可
[root@localhost ~]# rpm -ivh NaviCLI-Linux-64-x86-en_US-7.33.9.2.36-1.x86_64.rpm Preparing... ########################################### [100%] 1:NaviCLI-Linux-64-x86-en########################################### [100%] Run the script /opt/Navisphere/bin/setlevel_cli.sh to set the security level before you proceed. 根据提示设置安全等级,输入2选择medium等级即可。
[root@localhost ~]# /opt/Navisphere/bin/setlevel_cli.sh Please enter the verifying level(low|medium|l|m) to set? 2 Setting (default) medium verifying level..... Verification level medium has been set SUCCESSFULLY!!! 创建一个安全文件,这样使用时就不用再输入用户名和密码。安全文件是加密的,且与本机绑定,user参数为EMC管理用户名、password为密码,scope域的值对应<0 – global; 1 – local; 2 – LDAP>:
[root@localhost ~]# cd /opt/Navisphere/bin/ [root@localhost bin]# ls admsnap naviseccli setlevel_cli.
在项目build.gradle 中添加
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } 如下
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.5.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } jcenter() } } task clean(type: Delete) { delete rootProject.
Meteor1.8.3 vue 升级到meteor1.8.3之后,在浏览器打开时发现了报错Uncaught TypeError: _Vue.component is not a function
一、先给出我的解决办法
在根目录新建一个imports的文件夹,只要将所有的vue文件从client里面剪切到imports文件夹里面即可。估计是meteor官方又改变了文件的存放目录而引起的。如下图
二、官方论坛解决办法:(提示:有问题大家要善于去官方论坛搜索和提问才行喔)
详情请点击这里meteor论坛给出的解决办法,亲测有效。
https://forums.meteor.com/t/uncaught-typeerror-vue-component-is-not-a-function/50951
面试题(算法题) - 百钱买百鸡 题目思路代码答案 题目 条件:现有 100 钱,一共要买公鸡、母鸡、小鸡三种鸡,已知公鸡 5 钱一只,母鸡 3 钱一只,1 钱可以买三只小鸡。
要求:公鸡、母鸡、小鸡都要有,一共买 100 只鸡。有哪几种买法,公鸡、母鸡、小鸡分别是多少只?
思路 此题是一个三元一次方程。
假设公鸡、母鸡、小鸡分别有 x只,y只,z只。
条件1:5x + 3y + 1/3z = 100(钱);
条件2:x + y + z = 100(只);得出 z = 100-x-y;
条件1*3 - 条件 2 得出:
14x + 8y = 200;y = (100-7x)/4;7x < 100 得出 x < 15;
代码 function buy(){ for(var x=1;x < 15;x++){ var y,z; y = (100-7*x)/4; z = 100- y - x; if((100-7*x)%4 == 0){ console.
前言 先说下感受把,奇了怪了为什么每次接触到一个新项目时刚开始就拖好长时间,走不动。UML视频也看完了但是没有什么感觉就知道点概念上的东西,到实践时没法动手,因为不会。于是乎就找同学借书阅读并且也在网上页上找相关博客,站在巨人肩膀上学习。此次经验,既然两者已经都做了,最后一点就是自己亲自动手,管他会不会先干,先模仿别人的做,照小猫画大虎,画着画着忽然就有点味道了,能找到到一点点联系了,最后就有了总结这么回事。
用例图 用例图是描述系统功能的视图,用例图是外部用于所能观察到的系统功能的模型图。用例图提供了一些参与者与一些用例,以及它们之间的关系,用于对系统、子系统或类的功能进行建模。
用例图包含三方面内容:
1.用例(Use Case)
2.参与者(Actor)
3.参与者、用例之间的关系。包括:关联关系、泛化关系、包含关系、扩展关系等。
关联关系用带箭头的直线表示:
包含关系表示为:虚线箭头加(include)字样,箭头指向被包含的用例。如下图所示:
泛化关系:用带空心箭头的实线表示,箭头的方向由子用例指向父用例。如下图表示:
扩展关系:表示为虚线箭头加《extend》字样,箭头指向被扩展的用例。即:基础用例
针对系统是我们做过的机房收费管理系统,首先分析系统等级划分。
一般用户具有功能:学生查看余额、学生查看上机记录、学生充值记录查询、学生上机状态查看、修改密码
一般用户用例图:
操作员具有的功能:注册、充值、退卡、收取金额查询、金额返还信息查询、学生基本信息维护、操作员工作记录
操作员用例图:
管理员具有的功能:结账、添加或删除用户、基本数据设定、正在值班教师、日结账单、周结账单
管理员用例图:
初次画图,有问题欢迎评论区指出。。。
建立虚拟环境virtualenv env
进入虚拟环境在activate路径下执行activate(Linux:source activate)
安装pip install jupyter -i https://pypi.doubanio.com/simple
pip install ipykernel(也许不用执行)
添加kernel:
python -m ipykernel install --user --name 环境名字 --display-name 命名kernel
在jupyter notebook 换核就可以了。
Matlab 中 多项式拟合函数 —polyfit()和插值函数—polyval ()的基本用法 ##使用方法
在MATLAB中提供了polyfit函数用于对多项式进行拟合,其调用格式如下。
P = polyfit(x,y,n):对x进行n维多项式的最小二乘拟合,输出结果P为含有n+1个元素的行向量, 该向量以维数递减的形式给出拟合多项式的系数。
[P.S]= polyfit(x,y,n):返回的s中包括R、df和normr,分别表示对x进行QR分解的三角元素、自由度、残差。
[P.S,mu] = polyfit(x,y,n);在拟合过程中,首先对 x进行数据标准化处理,以在拟合中消除量纲等的影响,mu 包含两个元素,分别是标准化处理过程中使用的x的均值与标准差。
y = polyfit(P,T):P为上面polyfit()函数识别出来的多项式 向量,T为差值点,y为对应插值点的函数值。
##代码举例
以下代码运行结果见图2-4
##图片生成
【SQL Sever】批量删除表 之前放不同日期的数据放了不同的表里,大概有70多张表,现在不用了需要把这些表删除,表太多手动删除很麻烦,偷懒查了个小技巧,前提是表名要有共同点可找。
一、执行下面的sql语句,得到脚本语句。
select 'drop table [库名].[dbo].['+ name +'];' ##刚开始表名哪里没加括号[],发现不能成功,要加上 from sys.tables where name like '%xx%' or name like '%xx%' 二、复制结果,粘到sql上执行就OK了。
三、右键相应的数据库->任务->收缩->数据库,点击确定,释放磁盘空间