在Win7系统中自带了TFTP服务器,TFTP服务器主要用来在客户机与服务器之间进行简单文件传输。一般来说,系统是默认关闭TFTP服务器功能的,不过有些用户由于工作原因需要开启TFTP服务器,那么如何开启TFTP服务器呢?对于这个问题,下面就来详细介绍如何开启TFTP服务器。
方法一:(先尝试此方法,能近乎解决所有电脑问题)
你可以通过修改注册表来达到资源管理器打开FTP的目的:
展开到:[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Main/FeatureControl/FEATURE_INTERNET_SHELL_FOLDERS] “iexplore.exe”=dword:00000001
将键值修改为1以后,系统注销再登陆一下就OK了。
方法二:(备用方法:安装TFTP客户端)
1、进入控制面板:开始-控制面板;
2、点击程序进入,然后再点击程序和功能;
3、点击打开或关闭Windows功能;
4、勾选TFTP客户端;
5、重新启动计算机
6、打开我的电脑-在地址栏输入TFTP服务器地址,例如:222.18.168.147 7、可以正常使用TFTP功能了。
通过上面的方法,我们就开启了TFTP服务器,随后大家也就可以正常使用自己电脑中的TFTP功能了。同理,如果你想关掉TFTP功能的话,只需要取消勾选保存,然后重启电脑即可。
我们都清楚win7系统当中有自带的tftp服务器,不过这个服务器默认是不开启的,在我们需要用到的时候才会开启tftp服务器,不过最近有位有位win7系统用户想要开启tftp服务器,但是又不知道应该怎么开启,为此非常苦恼,那么win7电脑如何开启tftp服务器呢?今天为大家分享win7电脑开启tftp服务器的操作步骤。
开启tftp服务器操作方法:
1、先下一个TFTP 服务器,一般各种固件里面会自带。这个可以去我的CSDN下找到,免积分。如图所示:
2、这里面第一行 意思是当面TFTP 的主目录为这个。如图所示:
3、这里面的第二行是当前服务器的监听IP 地址。如图所示:
4、第一个标签TFTP SERVER 的内容是当前服务器的日志。如图所示:
5、点击下面的setting 之后弹出窗口,主要设置选项 只有tftp的端口,tftp 的默认目录,以及DHCP 服务是否开启。如图所示:
6、这里提到DHCP 。某些路由器 或者其他嵌入式设备,在烧写的过程中允许 使用“超级终端”连接,但是没有IP地址,也无法设置IP地址,这时候就需要开启DHCP 的服务器,进行对嵌入式设备的连接。
7、如果嵌入式设备支持自动升级,则将TFTP 服务器开启之后,设备会自动从TFTP服务器上下载BIN 的文件系统,如果不支持自动烧写,则需要输入一些命令。
本文给出例子:
tftp 192.168.1.2
tftp》get 《download file》
tftp》put 《upload file》
tftp》q
关于win7电脑开启tftp服务器的操作步骤就为小伙伴们详细分享到这里了,如果用户们使用电脑的时候不知道如何开启tftp服务器,可以参考上述方法步骤进行操作哦,希望本篇教程能够办到大家,更多精彩教程请关注老山桃官方网站。
责任编辑:老山桃:http://www.laomaotao.org
学习记录:Screen的安装与使用方法(Ubuntu) 1.检查是否已安装 screen2.安装 screen3.创建一个 screen 会话4.断开与当前 screen 连接5.恢复某 screen 会话6.删除不需要的 screen 1.检查是否已安装 screen 我要在容器里使用 screen,因此先输入 docker exec -it LMB2 /bin/bash 进入名为 LMB2 的容器。再输入命令查看所有 screen 列表,判断是否安装 screen。
screen -ls 输出显示 bash: screen: command not found 说明容器内没有安装 screen。
.
2.安装 screen 安装相当简单,只需要 2 条命令即可安装。
也可以参考这篇文章
输入命令,更新软件源中的所有软件列表,此时会弹出一大堆东西,等它完成更新即可。
apt-get update 输入命令安装 screen,输入 y 继续安装。
apt-get install screen 这时也会打印出来很多安装信息,等待安装完成即可。
.
3.创建一个 screen 会话 输入命令创建一个 screen 会话,如:screen -S rfdnet_2
screen -S your_screen_name 可以看到输出隔了一行,说明此时已经进入 rfdnet_2 这个 screen 会话。
如何简单的使用Aria2(破解网盘限速)保姆式教程
首先,下载Aria2。
当然可以去官网下载,但是资源路径很难找,这里我直接把我用的打包发在网盘里面了。
链接:https://pan.baidu.com/s/1OlAYF7n9S5CUQA-cbgDMrA
提取码:8rde
下载完成后,我们点击这里启动(箭头指的地方):
它会打开一个这样的网页,先不要关掉它,把他给留着。
然后我们找一个可以解析百度网盘地址的网页
可以直接去百度搜索:百度网盘在线解析网站
或者我推荐一个我一直在用的网址:https://baidu.kinh.cc/
然后输入下载的网盘链接和提取码:
找到需要下载的文件后,点击下载:
点击发送给Aria2NG
这里我们发现,文件已经发送到刚才点击开的网页了,然
后等待下载完成(图片中下载速度大小取决于你的网速)
其中,我们需要知道它文件下载的路径,点开右下角的这
个图标,会弹出一个命令框。
翻到最上面,可以看到整个FIFE(文件的意思)
后面的就是储存路径了,一般都是默认的在download文件
夹里
这样,整个下载过程就完成了。
提示:
1,Aria2下载过程中可能会出现丢包的情况,建议在网络通畅下运行,不然有时候下载完会出现文件损坏。
2,建议文件超过10G的选择IDM+油猴下载器,这个第一次配置的操作过程可能会麻烦一些,有时间的小伙伴可以去找其他博客了解。
3,网盘在线解析地址仅仅是我随便找的!并且网站不是那么稳定,小伙伴们可以自行去寻找。
1-1计算机网络基础概念
第一章网络基础知识 本章重点:网络概述网络功能、分类及作用,网络的接入 方式,网络的拓扑结构,网络通信原理及传输介质。 §1-1 计算机网络的基本概念 本节重点 一、计算机网络的形成与发展 二、计算机网络的定义和功能 三、计算机网络的分类 四、数据通信的基本概念 五、调制解调器 一、计算机网络的形成与发展 课堂提问 1.计算机是哪年发明? 2.计算机都在什么情况下使用? 一、计算机网络的形成与发展 1946年世界上第一台电子数字计算机ENIAC诞生时,由宾夕法尼亚大学研发,当时计算机技术与通信技术并没有直接的联系; 1969年由ARPANET发明的第一个分组交换网由四台计算机组成应用于军事。 计算机网络发展简述(了解) 1946年第一台计算机,只能支持单用户的使用。 1969年,美国国防高级研究计划局(ARPA,Advanced Research Project Agency)建成具有4个节点的试验网络ARPAnet,并于1971年2月建成了具有15个节点、23台主机的网络投入使用。 1980年,ARPA的鲍勃·凯恩和期坦福的温登·泽夫合作研制了TCP/IP协议,在网络互联以及网络中数据的可靠传输等方面。1990年ARPAnet已被因特网(Internet)取代,为Internet的诞生与发展奠定了基础。 20世纪70年代后期,以IBM PC为代表的个人计算机的出现与普及,用户希望共享资源的要求越来越近切。 20世纪90年代后,随着光纤通信技术的应用,多媒体技术的迅速发展,计算机网络朝着综合化和高速化的方向发展,从而进入了一个新的发展阶段。 第一代计算机网络的主要特点: (1)是每一台终端到计算机的连接,而不是计算机到计 算机的连接。 (2)主机负担过重。 第一代计算机网络是面向终端的计算机 通信网,严格地讲,不能算作现在意义上的计 算机网络。这些系统的建立没有资源共享的目 的,只是为了能进行远程通信。 二、计算机网络的定义和功能 计算机网络的定义 计算机网络是把处在不同地理位置的独立计算机,用通迅介质和网络设备进行互连,辅以网络软件进行控制,达到资源共享协同操作的目的的信息处理系统。 计算机网络的组成 由硬件和网络软件组成。 网络硬件包含有网络设备、通信线缆。 网络软件包含网络操作系统。 计算机网络功能如下 : 资源共享 数据通信 远程传输 集中管理 实现分布式处理 负载平衡 布置作业 什么是计算机网络? 计算机网络有几种功能? 复习提问 什么是计算机网络? 计算机网络由几部分组成? 三、计算机网络的分类 按功能分类分为资源子网和通信子网两种。 1.资源子网: 拥有资源的主机和请求资源的用户终端提供访问处理能力。 2.通信子网: 提供网络通信功能,完成主机之间的数据传输,交换控制和变换等通信任务。 三、计算机网络的分类 计算机网络按结构分两类 1.对等网:点对点 特点:平等、无主从 2.C/S模式:客户机/服务器 特点:主、从 三、计算机网络的分类 按地理范围分以下三类: 1、局域网(LAN) 特点:距离短、配置容易 延迟小、速度快( 10Mbps~10Gbps ) 数据速率高、传输可靠 2、城域网(MAN) 特点:以城市为单位距离远、光纤主干速度快 3、广域网(WAN) 特点:跨国界的网络 无线传输(常用) 速率慢 布置作业 计算机网络按地理范围划分几类?
起因 相信很多人都遇到这种情况,我们访问网站的时候,点击某个链接,访问的页面会在浏览器新标签或者新窗口中显示。我在使用chromedp进行爬虫时,如果进行点击事件,并且a标签的属性未target="_blank",chromdp不会获取新标签的Context,而是仍会停留在原来的Context,这个时候我们就需要监听新的标签。
例子 /** * 注册新tab标签的监听服务 */ package main import ( "context" "github.com/chromedp/cdproto/target" "github.com/chromedp/chromedp" "log" "net/http" "net/http/httptest" "time" ) /** * 注册新tab标签的监听服务 */ func addNewTabListener(ctx context.Context) <-chan target.ID { mux := http.NewServeMux() ts := httptest.NewServer(mux) defer ts.Close() return chromedp.WaitNewTarget(ctx, func(info *target.Info) bool { return info.URL != "" }) } func main() { // opts := append(chromedp.DefaultExecAllocatorOptions[:], chromedp.NoDefaultBrowserCheck, //不检查默认浏览器 chromedp.Flag("headless", false), //开启图像界面 chromedp.Flag("ignore-certificate-errors", true), //忽略错误 chromedp.Flag("disable-web-security", true), //禁用网络安全标志 chromedp.Flag("disable-extensions", false), .
目录 一、管理机密1、什么是Ansible Vault2、创建加密文件3、查看已经加密的文件4、编辑已经加密的文件5、加密和解密现有的未加密的文件6、更改已经加密文件的密码7、执行ansible-playbook与交互密码8、变量文件管理的推荐做法 二、管理事实1、Ansible事实描述2、Ansible事实作为变量注入3、关闭事实收集4、创建自定义事实5、使用魔法变量 一、管理机密 1、什么是Ansible Vault Ansible提供的Ansible Vault可以加密和解密任何由Ansible使用的结构化数据文件
若要使用Ansible Vault,可通过一个名为ansible-vault的命令行工具创建、编辑、加密、解密和查看文件
Ansible Vault可以加密任何由Ansible使用的结构化数据文件。
包括清单变量、playbook中含有的变量文件、以及在执行playbook时作为参数传递的变量文件,或者Ansible角色中定义的变量
2、创建加密文件 1)用ansible-vault filename命令创建加密的文件,该命令在执行时会提示输入新的vault密码,然后利用默认编辑器vi打开文件
[root@ansible ansible]# ansible-vault create wxy.yml New Vault password: //输入密码 Confirm New Vault password: //在此输入密码 [root@ansible ansible]# cat wxy.yml $ANSIBLE_VAULT;1.1;AES256 66366535343734366239343665613664613630613533306437353663653966373265626232343161 6230366139323732386561393462643439336335643934350a653563393234333363373236666565 35636232656264323937303833386562343736303834386638653562333963383564623333386237 3863383861616233620a623139343361386561643431363664373063323265326563353636363164 3664 //已经加密 2)使用vault密码文件来存储vault密码,而不是通过标准输入途径输入vault密码,这样做需要使用文件权限和其他方式来严密保护该文件
//首先创建密码文件 [root@ansible ansible]# cat password 123456 [root@ansible ansible]# chmod 600 password [root@ansible ansible]# ll -rw------- 1 root root 7 7月 25 01:27 password //创建加密的YAML文件 [root@ansible ansible]# ansible-vault create --vault-password-file=.
随着科技的不断发展,家家户户都有电脑这款电子产品,我们都知道电脑不能长时间使用,那如何设置定时关机呢?接下来我们就一起来看看电脑如何设置定时关机?
电脑如何设置定时关机,方法一
1.点击电脑屏幕左下角的开始按钮,在所有程序里依次选择选择附件---系统工具,然后单击打开任务计划程序。
2.点击打开任务计划程序后,在最右边的操作框里选择创建基本任务,然后在创建基本任务对话框的名称一栏里填写“定时关机”,然后点击下一步。
3.在写完名称点击下一步后,会出现任务触发器对话框,你可以根据自己的需要选择定时关机的开始时间。举例来说如果选择每天,即每天都要定时关机;选择每周,即每周某一天或几天会定时关机,以此类推。选择好了点击下一步。
4.接下来会出现每日的对话框,你可以输入你想定时关机的时间以及每隔几天定时关机。注意开始时间就是现在设置的时间,不用更改。
5.输完时间点击下一步,会出现启动程序对话框,需要浏览找出或直接输入 C:\Windows\System32\shutdown.exe 这个程序。在添加参数后面的框中输入 -s (即关机命令)
6.点击下一步后,出现完成提示的摘要对话框,在仔细核对一下名称、触发器、操作等信息。
7.可以勾选摘要对话框最下面的“当单击完成时”,点击完成后会出现定时关机属性。
在这里可以更改名称、位置、用户等。定时关机程序到这里基本设置完了。
电脑如何设置定时关机,方法二
1.首先按 WIN键(就是CTRL旁边那个键) + R,打开运行对话框。
2.在输入框里输入cmd,并按回车键。
3.然后输入at 【关机时间】 shutdown -s -t 0,例如:at 23:30 shutdown -s -t 0 这样输入就会表示在23点30分电脑就会关机。
4.输入完成后,按回车会显示增加一项作业,就表示添加成功了,到了你所设置的时间电脑就会关机了。
以上就是电脑如何设置定时关机的相关内容,希望对您有所帮助,更多装修资讯,尽在齐家网,敬请期待。
什么,装修还用自己的钱?!齐家装修分期,超低年利率3.55%起,最高可贷100万。立即申请享受优惠
tushare是很方便的数据获取平台,提供多种金融数据,近乎包含了普通金融数据库中的所有数据,供一般学习研究使用足以。通过python接口,可以直接访问数据,无需下载,十分便捷。本人也在学校课程中初次了解到了tushare,并注册了tushare账号ID:455337。
数据获取
使用策略进行时,需要加数据到backtrader中,backer支持csv数据,默认为来自yahoofinance的数据,但最常用的还是使用自己的csv数据。这时使用tushare进行数据获取就很方便了。
1.连接tushare接口:这里使用的是新版的tushare pro接口,注册账户后可在个人主页获取token
import tushare as ts TOKEN = '****' pro = ts.pro_api(token=TOKEN) 2.这里我已经进行了股票alpha的计算,令alpha最小的十只股票作为资产组合,将他们的股票代码记录到code中。
#读取选股的结果 df=pd.read_csv('stock_alpha.csv') df.columns=['ts_code','name','alpha'] min_a=df.sort_values(by='alpha') min_a=min_a.iloc[:10,:] code=[] code=min_a['ts_code']#记录alpha最小的10支股票代码 3.定义用tushare读取数据的函数:使用pro.daily()获取股票日数据
def ts_get_daily_stock(code,start_dt,end_dt): data = pro.daily(ts_code = code,start_date = start_dt,end_date=end_dt) data['trade_date'] = pd.to_datetime(data['trade_date']) data=data.sort_values(by = 'trade_date') data.index = data['trade_date'] data = data[ ['ts_code', 'open', 'high', 'low', 'close', 'pre_close', 'change', 'pct_chg', 'vol', 'amount']] return data 4.简单的循环获取并保存数据
for i in range(len(code)): data=ts_get_daily_stock(code.iloc[i],'20190101','')#字段分别为股票代码、开始日期、结束日期 data.to_csv(code.iloc[i]+'.csv') cerebro = bt.Cerebro() for i in range(len(code)):#循环获取10支股票历史数据 data = bt.
目录
写在文章前
题目及解答
个人对题目的思考
写在文章前 首先声明本人不是技术大佬、也不是培训老师,只是在工作中写过两年PL/SQL语句,有一定的数据处理经验,也是一个学习者。
在书上看到一份某企业招聘数据库工程师笔试题,其中有一个大题是SQL应用,就尝试做了一下。并且到DBMS中去验证了一番。这里将题目与作者写的答案分享出来,供学习数据库的朋友们参考、指正! 题目及解答 使用SCOTT/TIGER用户下的EMP和DEPT表完成下列练习,表结构说明如下:
EMP员工表(EMPNO员工编号、ENAME员工姓名、JOB工作、MGR上级编号、HIREDATE受雇日期、SAL薪金、COMM佣金、DEPTNO部门编号)
DEPT部门表(DEPRNO部门编号、DNAME部门名称、LOC地点)
工资=薪金 + 佣金
注: SCOTT/TIGER是Oracle数据库管理系统自带的数据库,所以下面的语句都是基于Oracle的。
1、列出所有至少有一个员工的部门。
答:第一种写法:select dname from dept where deptno in (select deptno from emp);
第二种写法:select distinct dp.dname from emp e left join dept dp on e.deptno=dp.deptno where dp.deptno is not null;
SQL> select dname from dept where deptno in (select deptno from emp); DNAME -------------- ACCOUNTING RESEARCH SALES SQL> select distinct dp.dname from emp e left join dept dp on e.
1. 管理事实 1.1描述ansible事实 ansible的事实是ansible在受管主机上自动检测到的变量。可以直接再playbook中直接引用的
事实中包括一下一些数据:
主机名称内核版本网络接口IP地址操作系统版本各种环境变量CPU数量提供的或可用的内存可用磁盘空间 借助事实,我们可以更加方便的检索受管主机的状态,并根据这些数据来确定要执行的操作,例如:
可以根据含有受管主机当前内核版本的事实运行条件任务,以此来重启服务器可以根据通过事实报告的可用内存来自定义MySQL配置文件可以根据事实的值设置配置文件中使用的IPv4地址 在我们运行playbook的第一个任务之前,ansible会自动运行setup模块来收集事实。
查看为受管主机收集的事实的一种方式是,运行一个收集事实并使用debug模块显示ansible_facts变量值的简短playbook。
[root@ansible ansible]# cat playbook/test.yml --- - name: test hosts: all tasks: - name: print all facts debug: var: ansible_facts 运行该playbook,则事实就会显示在输出内容中:
[root@ansible ansible]# ansible-playbook playbook/test.yml PLAY [test] *********************************************************************************************** TASK [Gathering Facts] ************************************************************************************ok: [192.168.10.201] TASK [print all facts] ************************************************************************************ok: [192.168.10.201] => { "ansible_facts": { "all_ipv4_addresses": [ "192.168.10.201" ], "all_ipv6_addresses": [ "fe80::20c:29ff:fe77:cc9a" ], "ansible_local": {}, "apparmor": { "status": "disabled" }, "architecture": "
Q:共享打印机,客户机访问主机计算机提示输入账户和密码如何解决?
A:造成是此问题的原因是主机电脑安全级别较高造成的,在主机电脑按照以下方法调整即可解决。
1. Windows XP:点击“开始”→“控制面板”→“WINDOWS防火墙”→“列外”,将“文件和打印机共享”选中,点击“确认”退出。
Windows 7:打开“控制面板”→“网络和共享中心” →“高级共享设置”:1.启用网络发现。2.启用文件和打印机共享。3.关闭密码保护共享。
2. 点击“开始”→“控制面板”→“用户账户”,单击“GUEST账户”选择“启用来宾账户”。
3. 点击“开始”→“控制面板”→“管理工具”→“本地安全策略→“本地策略”→“用户权利指派”。在右侧找到“拒绝本地登陆”双击进入,删除GUEST账户并关闭窗口,再找到“拒绝从网络访问这台计算机”选项,双击进入删除的GUEST账户,确认退出。
4. 在左侧选择“安全选项”,在右侧找到“网络访问:本地账户的共享和安全模式”双击进入更改为“仅来宾-本地用户以来宾方式认证”。
完成以上设置后,客户机再访问主机计算机就不需要输入账户和密码了。
原因:在vue中,如果有默认子路由,在路由配置项中,就不用给父级路由设置name了,否则会有一个警告
可能由于一些不同的原因,会导致电脑连接的显示器出错,显示“超过工作频率范围”,比如,修改了分辨率或刷新率,超出显示器允许的频率范围等。当我们遇到这样的问题时,不妨参考下面提供的方法看看能否解决。
1、修改分辨率,可能会导致显示器出错,这时不要动任何设置,系统一般会在用户没有确认操作的情况下,自动返回之前的分辨率;
2、如果还能进操作系统,那就打开运行,输入:desk.cpl,打开设置分辨率设置,手动改成适合当前显示器的分辨率(通常是调低);
3、另外还有一种情况,用户修改刷新率(调高),也会产生这种情况,在屏幕分辨率设置中点击“高级设置”,在监视器选项卡将屏幕刷新频率设置为60即可;
4、如果是在玩游戏的过程中突然出现,可以通过游戏设置项调整回来,打开游戏属性;
5、在一般中,点击设置启动选项;
6、如果启动选项中已经有参数,删除它,再添加启动选项,输入freq 60,确定;
7、如果是重启电脑之后显示,那么重新启动,按快捷键,选择启用VGA模式(通常在Windows XP 操作系统的启动管理菜单中才会有)即可;
8、如果没有启用VGA模式选项,可以进入安全模式,卸载已有的显卡驱动程序,重启电脑后系统会自动识别,重新安装显卡驱动程序,这时的分辨率和刷新率都是正确的默认值。
当电脑连接的显示器出错显示超出工作频率范围,可能有很多原因导致的,可以参考以上方法来解决这一问题。如果无法进入安全模式,解决不了问题,可以U盘启动通过PE系统来还原或重装系统,严重的时候可能需要更换显卡或其他硬件。
想知道Raptor怎么设计程序流程图吗?以下就是Raptor设计程序流程图并运行的具体操作步骤,赶紧来看看吧,希望能帮助到大家哦!
Raptor设计程序流程图并运行的具体操作步骤
1、Raptor程序比较小,把下载好的Raptor安装程序。安装在计算机中,鼠标左键双击,运行程序,如下图所示。
2、在运行的Raptor界面上,单击【保存】按钮,并准备流程图设计。接着,在运行的Raptor界面上,单击【保存】按钮,根据设计的求两数之和的要求,准备流程图设计,如下图所示。
3、左键单击【输入】图形,并拖动到流程图中间位置处,作为被加数。然后,在画流程图的工具窗口中,鼠标左键单击【输入】图形,并拖动到流程图开始和结束的中间位置处,双击【输入】图形,在提示窗口上输入被加数和变量名称,并单击【完成】按钮,如下图所示。
4、单击【输入】图形,并拖动到流程图中间位置处,作为加数。接着,在画流程图的工具窗口中,鼠标单击【输入】图形,并拖动到流程图开始和结束的中间位置处,双击【输入】图形,在提示窗口上输入加数和变量名称,并单击【完成】按钮,如下图所示。
5、左键单击【赋值】图形,并拖动到流程图加数的后面,作为加法运算。然后,在画流程图的工具窗口中,鼠标左键单击【赋值】图形,并拖动到流程图加数的后面,作为加法运算。双击【赋值】图形,输入加法运算式,并单击【完成】按钮,如下图所示。
6、单击【输出】图形,并拖动到流程图【赋值】图形后面,作为输出结果。接着,单击【输出】图形,并拖动到流程图【赋值】图形后面,作为输出运算结果。单击【完成】按钮,如下图所示。
7、流程图画好了,可以运行程序,检查输出运算结果。然后,流程图画好了,可以运行程序,检查输出运算结果。鼠标左键单击菜单下的【运行】按钮,如下图所示。
8、在弹出的被加数输入窗口中,输入数值。接着,在弹出的被加数输入中,输入数值,如下图所示。
9、在弹出的加数输入窗口中,输入数值。然后,在弹出的被加数输入中,输入数值,如下图所示。
10、在运行到赋值运算和输出后,可看到运算结果显示出来了。
最后,在运行到赋值运算和输出后,可看到运算结果显示出来了,在主控台上也可以看到运算结果,通过口算检查,运算结果正确。说明求两数之和的流程图画的是正确的,如下图所示。通过设计简单的算法流程图,就可以熟悉使用Raptor程序来画流程图了。
以上就是Raptor设计程序流程图并运行的具体操作步骤,希望大家喜欢。
前言 开始之前,先简单介绍下 "钉钉家族"
钉钉 是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。
浙政钉 为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单位根据自身业务特点分别建设自建应用,最终形成全省统一的政府系统掌上协同办公平台。
浙政钉 1.0 钉钉上的一个特殊组织架构。
浙政钉 2.0 根据2020年浙江省深化“最多跑一次”改革推进政府数字化转型工作要点,为实现基本建成“掌上办公之省”年度工作目标,省大数据局联合阿里巴巴启动了“浙政钉”的迭代升级,将浙政钉从钉钉组织迁移出来,成为独立的浙政钉客户端。
专有钉钉 原名政务钉钉,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。
阿里专有钉钉产品简介 (注意到是SaaS版本)
简单来说,就是专有钉钉是升级版钉钉,而浙政钉则是专有钉钉 saas 化部署的一个特殊租户。
正文 本文将从 开发前置要求,本地启动步骤,部署 三个方面进行展示
开发前置要求 1 JDK8.0
2 IDEA 环境
3 创建好了的钉钉应用
4 创建好了的浙政钉(开发阶段一般由专有钉钉替代)应用
5 一台安装了 docker 的机器(非必须)
本地启动步骤 1 git 地址
https://github.com/kid626/dingding-demo.git
2 修改 application.yml 的配置
demo: # 修改钉钉 h5 微应用的配置 ding: appKey: "ak" appSecret: "as" corpId: "企业id" agentId: zzd: appKey: "ak" appSecret: "as" corpId: 租户 id # 专有钉钉 默认这个,浙政钉需要使用线上环境地址 domainName: "
文章目录 前言哈夫曼编码设计总结 前言 大二,刚刚开始学数据结构与算法,写得不好。。。。
哈夫曼编码设计 现要求输入8个字符{a,b,c,d,e,f,g,h}对应的权值(大于0的整数),然后设计哈夫曼编码实现输入对应8个字符组成的一串字符(字符串长度不超过100),然后输出字符串对应的哈夫曼编码。(提示:哈夫曼树的每个分支左分支设为0,右分支设为1)。
例如:
输入:1 2 3 4 5 6 7 8
acdb
输出:11110111010011111
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 100 #define inf 0x3f3f3f3f typedef struct { int bit[MAXSIZE]; int start; } HC; typedef struct { int w; int p; int l; int r; char name; } HT; HT T[MAXSIZE]; HC C[MAXSIZE]; void HuffmanTree(HT T[MAXSIZE], int n) { int i, j, m1, m2, x1, x2; for (i = 0; i < 2 * n - 1; i++) { T[i].
前言 代码分析 NDTLocalizationComponent NDTLocalizationComponent::Init 该函数完成了NDT组件的初始化工作。该组件通过命令行参数gflag对相关参数进行初始化,各命令行参数的默认值可参考modules/common/adapters/adapter_gflags.cc和modules/localization/common/localization_gflags.cc,该组件读取命令行参数配置文件modules/localization/conf/localization.conf,因此可在该文件中对各命令行参数进行定义。
命令行参数 话题相关
FLAGS_localization_topic 融合定位发布话题FLAGS_lidar_topic 激光雷达点云订阅话题FLAGS_localization_ndt_topic NDT定位发布话题FLAGS_ins_stat_topic 组合导航定位状态订阅话题FLAGS_localization_msf_status 融合定位状态发布话题
变换相关FLAGS_broadcast_tf_frame_id 固定世界坐标系FLAGS_broadcast_tf_child_frame_id 子坐标系
融合相关FLAGS_local_utm_zone_id 定位地图UTM坐标系IDFLAGS_online_resolutionFLAGS_ndt_debug_log_flag 是否记录日志FLAGS_lidar_height_file 激光雷达高度YAML配置文件FLAGS_lidar_extrinsics_file 激光雷达外参YAML配置文件FLAGS_ndt_bad_score_count_thresholdFLAGS_ndt_warnning_ndt_scoreFLAGS_ndt_error_ndt_score
定位地图相关FLAGS_map_dir 定位地图文件夹路径FLAGS_ndt_map_dir ndt地图相对路径FLAGS_local_map_name 定位地图相对路径 NDTLocalization::Init 该函数会被调用,读取激光雷达外参和激光雷达高度参数以及定位地图
配置参数文件 velodyne128_novatel_extrinsics.yaml
header: stamp: secs: 1542235619 nsecs: 0 frame_id: novatel seq: 0 child_frame_id: velodyne128 transform: rotation: x: 0.007209096210038245 y: 0.01691200555753232 z: 0.7076293956185187 w: 0.7063445699206772 translation: x: 0.03614259942391 y: 1.033871037991605 z: 1.21285 velodyne128_height.yaml
vehicle: parameters: height: 1.89 height_var: 0.0045 回调函数 LidarCallback 点云消息的回调函数,获得点云消息,进行计算后得到根据NDT的定位消息,并进行发布。
OdometryStatusCallback 组合导航状态回调函数,获得导航状态,存储在相关容器中
1测试鼠标灵敏度有啥招
[中关村在线键鼠频道原创]鼠标采样率,常常是玩家购买鼠标是关注的重点,也是厂商在发布新产品时,进行宣传时的重点参数。玩家通常也习惯将其称之为鼠标的“灵敏度”,其标注单位为CPI(count per inch),含义为“每英寸采样点数,后来被更容易为广大消费者所理解,源于打印行业精度计量单位“DPI(每英寸像素点数)”所取代。
经典的IE3.0鼠标拥有400DPI的灵敏度(采样率/DPI)
通常来说,一般厂商都会在鼠标包装上对鼠标年拥有的采样率参数进行标示,但偶尔也有个别情况,厂商未在包装上对鼠标采样率进行标示,这时部分玩家可能会产生对所使用鼠标采样率进行测量的念头,如何测量鼠标灵敏度(采样率/DPI),就成为这部分玩家所关心的问题。
采样率高达8200DPI的罗技G600鼠标
由于目前鼠标采样率较高,加上不同厂商对标示DPI有轻微差距。玩家手动测试,通常只能测试出一款鼠标采样率的近似值,仅可做为在厂商没有对鼠标灵敏度(采样率/DPI)进行标示时,玩家更换不同鼠标后,对鼠标进行调节的参照。
2鼠标灵敏度(采样率/DPI)测试实战
由于仅可测试出鼠标灵敏度(采样率/DPI)的近似值,所以可以选择大名鼎鼎的Adobe Photoshop作为测试软件。具体测试方法如下:
使用photoshop作为辅助测试软件
1、首先建立一边长为略小于显示器画面宽度的空白文件,宽度不限,(比如显示器分辨率为1440×900,可建立一分辨率为1280×任意宽度的空白图片),然后按下CTRL+R键,显示出图像标尺,再按住键盘上的空格键不放,单击鼠标右键,选择“实际像素”以便使图片像素与显示器像素进行对齐。
准备两只鼠标 上图中测试鼠标为罗技MX400
2、准备两只鼠标,均与电脑相连接。将待测量鼠标一侧边缘与鼠标垫相对齐,鼠标尾部靠在一边缘较为平直,具有一定重量(可保证鼠标移动时不会随鼠标移动,不建议使用直尺,因为一般直尺容易随鼠标同时移动)的物体上,该物体边缘与鼠标垫边缘垂直,然后使用另一只鼠标,将鼠标光标移动一个相好标示的起点(比如50)后,将辅助鼠标拨下,以保证不会对测试造成影响。
移动1000像素点后对鼠标移动距离进行测量
3、使用被测量鼠标沿平直物体边缘进行水平移动,移动1000像素点后停止,测量鼠标边缘与鼠标垫边缘之间的距离,将得出的长度换算成英寸后(1英寸=25.4mm),再用1000除以该英寸数值,即可得出该鼠标灵敏度(采样率/DPI)的值,多次测试后将结果累加,除以测试次数则可以求出更为精确的近似值。
通过以上方法,即可以测算出鼠标的近似灵敏度(采样率/DPI)值,玩家可通过四值五入的方式,估算出鼠标的标定灵敏度(采样率/DPI)。由于玩家通常所使用的测量工具通常存在一定误差,故玩家在对灵敏度(采样率/DPI)的鼠标(2000DPI以上)进行测试时,可能存在较大误差。
仅仅代码记录,不做其他用途。 package main import ( "github.com/kbinani/screenshot" "image" "image/png" "os" "strconv" "time" ) func main() { for { //每30秒截屏一次 截取的是windows桌面上面显示的页面 time.Sleep( time.Second * 30) screen() } } func screen(){ //使用 GetDisplayBounds获取指定屏幕显示范围,全屏截图 bounds := screenshot.GetDisplayBounds(0) img, err := screenshot.CaptureRect(bounds) if err != nil { panic(err) } //拼接图片名 t:=time.Now().Unix() tt := strconv.Itoa(int(t)) + ".png" save(img, tt) } // save *image.RGBA to filePath with PNG format. func save(img *image.RGBA, filePath string) { file, err := os.