micro:bit V2 & Python
MakeCode for
micro:bit
http://makecode.microbit.org/
http://www.microsoft.com/zh-cn/makecode
Adafruit
Circuit Playground Express
http://makecode.adafruit.com/
http://learn.adafruit.com/makecode/
$24.95
http://www.adafruit.com/product/3333
def on_forever():
basic.show_icon(IconNames.HEART)
basic.clear_screen()
basic.pause(500)
basic.show_icon(IconNames.SMALL_HEART)
basic.clear_screen()
basic.pause(500)
basic.show_icon(IconNames.HEART)
basic.forever(on_forever)
basic.forever(function on_forever() {
basic.showIcon(IconNames.Heart)
basic.clearScreen()
basic.pause(500)
basic.showIcon(IconNames.SmallHeart)
basic.clearScreen()
basic.pause(500)
basic.showIcon(IconNames.Heart)
})
http://item.taobao.com/item.htm?id=680961800265
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 ?️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:http://www.cnblogs.com/xgqfrms/p/17410522.html
未经授权禁止转载,违者必究!
作者:selph目录:•011-wocy.11•012-ACG-crcme12•013--Acid_burn3•014-Splish4•015-BradSoblesky.15•016-fly_crkme36•017-Cabeca7•018-crackme_00068•019-Acid_Byte.39•020-cosh.310011-015请看上期1.016-fly_crkme3算法难度:⭐⭐⭐爆破难度:⭐信息收集运行情况:查壳与脱壳:UPX壳,直接ESP定律脱壳即可调试分析Delphi程序,截图不方便注释,之后用IDR直接复制代码到everEdit里写注释了:找到校验按钮,分析校验函数sub_00444B30:首先是判断用户是否有输入,无输入则弹窗,有输入则跳转到00444B78:接下来校验输入的数据,输入的内容必须是0x30~0x39之间,也就是纯数字:接下来校验字符串长度:这个cm允许的输入是9,10,11字符,对于每种输入都有单独的计算,这里以输入长度为9位为例:输入格式是xx-xxx-xx接下来进行了一个取数字的操作:进行了7段,总之就是把字符串中间的-去掉,把数字拼接在一起取
继6.8以后这一篇7大版本的搁着挺久没弄了,后面准备重新整理的Redis准备用linux来讲,所以正好重装一台虚拟机,顺便贴一下过程(一)必要准备虚拟机:VMwareWorkstationPro14(不局限于14)镜像文件:CentOS-7-x86_64-DVD-2009(不局限于7.9及小版本)阿里镜像下载会稍微快一些,直接点击链接下载就可以了,就不耽误大家去公众号回复了https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/如果下载出现了问题,也可以去我公众号:理想二旬不止,回复centos7.9获取,我下面演示的就是这个镜像(二)新建虚拟机(1)创建新的虚拟机可以在主页直接点击创建新的虚拟机也可以在上方,点击文件,新建虚拟机(2)选择自定义(高级)(3)硬盘兼容性默认即可。我这里是VM14,点击下一步(4)选择稍后安装操作系统这里,选择稍后安装操作系统,安装完成过后,大家可以选择删掉一些不要的硬件,例如打印机等等5)选择操作系统以及版本这里选择Linux系统,指定为CentOS64位(6)命名虚拟机指定虚拟机的名称,后期也可以
学习如何在CentOS7中的Apache上托管你自己的网站,这是一个可靠、流行且易于配置的Web服务器。我托管自己的网站已经有很多年了。自从20多年前从OS/2切换到Linux以来,我一直将Apache作为我的服务器软件。Apache是可靠、流行的,且基本的安装配置也很容易。对于更复杂的设置(比如多个网站)也并不是那么困难。ApacheWeb服务器的安装和配置必须以root身份执行。防火墙的配置也需要以root身份执行。使用浏览器查看安装配置的结果应该以非root用户的身份完成。(我在我的虚拟主机上使用student这个用户。)安装注意:我使用的实验环境是安装有Fedora27的虚拟机,Apache版本为2.4.29。如果您使用的是不同的发行版或不同版本的Fedora,您的命令以及配置文件的位置和内容可能会有所不同。但是,您需要修改的配置行是相同的。ApacheWeb服务器非常容易安装。在我的CentOS6.x服务器上,它只需要一个简单的yum命令。它会安装所有必要的依赖(如果需要的话)。我在我的Fedora虚拟机上使用了下面的dnf命令。除了命令本身的名称之外,dnf和yum的语法是
微PE是一款很好用的WinPE(Windows预先安装环境(英语:MicrosoftWindowsPreinstallationEnvironment),简称WindowsPE或WinPE)工具箱,可以用来制作一个随插随用的U盘启动盘,并且不影响U盘的日常使用,在Windows系统电脑的系统出问题时会是救命般的存在。下面就来介绍一下如何制作PE启动盘,并使用它来安装Win10操作系统。制作之前,您需要准备:16GB以上的U盘(至少要能够装下您准备安装的操作系统镜像)系统镜像(推荐官方渠道或是MSDN下载)U盘启动盘制作第一步,下载微PE工具箱官网下载即可:http://www.wepe.com.cn/download.html第二步,制作U盘启动盘插入U盘,启动微PE软件,选择安装进U盘。之后选择您插入的U盘,其他的默认即可。至此,您的U盘启动盘已制作完毕,有了它,您就可以脱离硬盘引导系统启动,并在这个环境中安装Windows系统啦。安装Win10第一步,进入微PE将您在上一步制作好的U盘启动盘插入待安装系统的电脑,之后选择U盘启动,使用U盘引导启动(至于如何选择U盘启动,不同型号的计
QTX本周五开展,倒计时开始!天生顽鹅降临深圳侨城坊 充满潮趣的平行时空之旅即将开启!点开视频,提前体验QTX平行世界。↑QQ潮玩展8月28日-8月30日深圳侨城坊开幕,鹅厂携手百家知名潮玩品牌与设计师,打造创意爆棚的潮玩市集。侨城坊QPlex坐落于深圳华侨城片区侨香路西段,集街区商业、酒店式公寓、商务办公、生态园林于一体的大型现代化生态综合体。本次,QQSTUDIOS将携手侨城坊QPlex共举潮玩盛事!QQ潮玩展有什么好看的、好玩的、好吃的、好拍的?看完这篇全攻略,QTX玩法全掌握!超丰富活动内容,你的眼睛准备好了吗? QTX展位地图迅速找到每一个你想逛的展位-*实际展位分布以展会现场情况为准。 QTX潮玩展商百家潮玩品牌齐聚,超酷展位即将亮相 -QQ潮玩 —QQSTUDIOS呈现的QQ潮玩展位(A09)将展出QQ与BE@RBRICK、SF、Grafflex、KAKAOFRIENDS、FARMERBOB等知名品牌限量联名的潮玩,并有QQfamily、PUPU等系列原创潮玩出售。QQ潮玩还推出超多惊喜活动。抽取QQxBE@RBRICK购买权、购满1000抽奖获大礼,现场开通QQ会员还可
importtkinterastk window=tk.Tk() window.title('mywindow') window.geometry('200x200') defhit_me(): #tk.messagebox.showinfo(title='Hi',message='hahahaha') #tk.messagebox.showwarning(title='Hi',message='nononono') #tk.messagebox.showerror(title='Hi',message='No!!never') #print(tk.messagebox.askquestion(title='Hi',message='hahahaha'))#return'yes','no' #print(tk.messagebox.askyesn
因为测试的需要每个IT屌丝都会需要一两测试服务器,但是不能够一台机就装一个系统啊,因此组装一台高性能的测试机再做虚拟化是必须的,下面我们就来说一下DIYESXI虚拟化服务器吧(当然这中间并未考虑服务器安全性问题)!一、硬件选择CPU:XeonE3-1200v3系列*1颗(散装)内存:KingstonDDR316008G*4条硬盘:Kingston120GB+250GSSD主板:MSIZH87-G43 选择它们的原因,CPU性能强劲价格比I7合理,内存必须的没有理由,SSD速度快测试必须攒了两年,主板支持RAID阵列且直接6个SATA3;二、ESXI系统制作1)首先需要下载以下文件ESXI操作系统、系统打包工具、网卡驱动,因为ESXI5.5本身不支持MSIZH87-G43板载RealtekRTL8111E千兆网卡,需要手动打包驱动程序到系统中;2)打包开始,先压打包工具右击以管理员运行“ESXi-Customizer.cmd”3)根据提供选择ISO文件、驱动程序、打包后ESXI系统存放位置;4)点击“Run”,根据提示点击“确定”5)这里可以看到驱动程序已经成功打包,系统打
ExcellentExport.js的方法,利用base64下载文件。支持chrome,opera,firefox.于是决定拿来为我所用!说明一下,这个js的好处是:一句js脚本,就能前台下载,完全无须后台。但外国人不了解中文的csv用excel打开直接乱码。但用记事本打开,再直接保存,或另存为ansi都可以让中文不乱码。js里默认应该是utf-8,昨天试了用utf-8转gb2312,失败了!于是找到这个:utf-8保存的csv格式要让Excel正常打开的话,必须加入在文件最前面加入BOM(Byte order mark),具体楼主你可以搜索一下关于BOM的介绍。 ANSI的话是可以做到正常显示和保存,但是这是有前提的,就是必须在你的电脑(区域和语言设置)把对非Unicode字符处理设置为Chinese,如果是English的话,显示照样是乱码。 Unicode的csv,Excel就根本不支持,打开虽然可以显示不乱码,但是已经不是按逗号显示在不同的单元格里面了,而是按行显示在第一个单元格里面。 再找到这个: 什么是BOM BOM(byte-ordermark),即字
上一篇文章我们介绍了索引背后的数据结构,这篇文章我们来介绍影响索引数据结构选型的因素——存储器存取。主存存取原理主存的构成主存储器(简称主存或内存)包括存取体、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。这样,一个存储单元可以存储一串二进制代码,这串二进制代码称为存储字,这串二进制代码的位数称为存储字长,可以是8位、16位或者32位等。主存与CPU的联系画外音:MAR(MemoryAddressRegister)是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数(若MAR为10位,则有210=1024个存储单元,记为1k)。MDR(MemoryDataRegister)是存储器数据寄存器,用于存放从存储体某单元取出的代码或准备往某存储单元存入的代码,其位数与存储字长相等。现代计算机一般将MAR和MDR集成在CPU芯片中。主存的存取过程 如果把存储体看做是一栋大楼,那么每个存储单元可以看成这栋大楼里的每个房间,每个存储元可以看做房间里的一张床位,床位有人相当于“1”,无人相
1.如何向单个view传递多个binding参数a.在BindingAdapter中定义@BindingAdapter({"position","info"}) publicstaticvoidrenderView(Viewview,intposition,Infoinfo){ view.renderView(position,info); }复制bxml配置position,info属性即可。 这里点进BindingAdapter可以看到两个参数:// //Sourcecoderecreatedfroma.classfilebyIntelliJIDEA //(poweredbyFernflowerdecompiler) // packageandroid.databinding; importjava.lang.annotation.ElementType; importjava.lang.annotation.Target; @Target({ElementType.METHOD}) public@interfaceBindingAda
API(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 1、什么是单点登陆 单点登录(SingleSignOn),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 2、单点登录带来的好处(表示第一遍看不懂) 使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险和管理的消耗。请看下面的统计数据: 提高 IT 效率:对于每 1000 个受管用户,每用户可节省$70K 帮助台呼叫减少至少1/3,对于 10K 员工的公司,每年可以节省每用户 $75,或者合计 $648K 生产力提高:每个新员工可节省 $1K,每个老员工可节省
官方的介绍讲得比较全,这里就省去复制粘贴的步骤了。此处模拟一种非表单元素的v-model组件: 类似复选框,在组件里点选不同的选项,然后能跟父组件双向绑定。 1.首先做好基础的排版及样式 <template> <divstyle="padding:10px"> <span>1</span> <span>2</span> <span>3</span> <span>4</span> </div> </template> <stylescoped> span{ display:inline-block; width:80px; height:30px; line-height:30px; border-radius:4px; border:1pxsolid#333; color:#333; text-align:center; } span.active{ border-color:#f45619; color:#f45619; }
目录 文章目录目录DNS源起域名结构域名服务器集群域名区域域名服务器类型域名解析DNS的协议Wireshark抓包分析为什么DNS使用UDP协议使用UDP使用TCP总结DNS缓存机制基于缓存的DNS域名解析流程DNS缓存使用面临的问题互联网环境缓存应用面临的问题企业内网缓存应用面临的问题DNS缓存在实际应用中的考虑主动操作之缓存考虑因素被动操作之互联网缓存考虑因素被动操作之内网缓存考虑因素如何设置TTL值HTTPDNS解析流程HTTPDNS优点HTTPDNS适用场景参考文档 DNS DNS(DomainNameSystem,域名系统)是互联网的一项服务。它作为将Domain和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网。 源起 要想访问网络上的一台计算机,我们必须要知道它的IP地址,但是这些地址(e.g.243.185.187.39)只是一串数字,没有规律,因此我们很难记住。并且如果一台计算机变更IP后,它必须通知所有的人使用新的IP来找到它。 显然,直接使用IP地址是一个愚蠢的方案。于是人们想出了一个替代的方法,即为每一台计算机起一个名字(Hostname)
loj6158 考虑在一个位置放上加号,\(S=A+B\)。 若末尾存在\(0\),一定是说\(A\)的最后一个数字与\(B\)的最后一个数字相加为\(10\)。(特别的,需要特判二者末尾均为\(0\)这个情况) 对于进位的问题,其实就是要求\(A\)前面的数字与\(B\)前面的数字相加为\(9\)。 可以把原串翻转一下,问题转化为每个后缀与构造出的新的前缀进行匹配。 这个问题可以用ex-kmp算法在线性时间/空间内解决。 另一个特殊情况是,若\(A,B\)串的长度有一些差距,可能导致短串匹配完了,长串可以继续进位(必然是连续的9). 预处理出后面有多少连续的\(9\)即可。 CF1131EStringMultiplication 其实只要维护出当前的乘积中,每个字符的最长连续段有多长。 根据当前乘的串是否全为同一个字符,最长字符前缀,最长字符后缀,串中最长连续段这四个信息,即可进行转移。 CF653FPapertask 大家都知道怎么用后缀自动机求本质不同的子串数,因为已经出现过的子串一定是一段后缀。 所以对于每个前缀节点,只需要统计\(len_p-len_{fail_p}\)。 用
几何之三角形及三角形的组合图案理论 三角形( triangle ['traɪæŋɡl])可以看成正方形对角线交叉形成的图形 若想得到编号①方向向下三角形,只需对编号②③④三角形让其透明transparent;border-top设置需要显示颜色即可 若想得到编号②方向向左三角形,只需对编号①③④三角形让其透明transparent;border-right设置需要显示颜色即可 若想得到编号④方向向右三角形,只需对编号①②③三角形让其透明transparent;border-left设置需要显示颜色即可 若想得到编号③方向向上三角形,只需对编号①②④三角形让其透明transparent;border-bottom设置需要显示颜色即可 若想得到编号①③三角形,只需对编号②④让其透明transparent即可 (如下图所示 ) HTML代码体现 利用伪类:after实现矩形与三角形组合优点代码简洁 利用伪类实现较复杂组合 资
现阶段线程之间的通讯主要有两种:内存共享和消息传递,而且在java中是采用的内存共享。简单说下内存共享: 假设现在有a线程和b线程,在a和b线程之间的通讯是依靠a线程将相关数据刷新到共享内存,然后b线程再通过从共享内存中读取数据来实现a线程和b线程的通讯,java中的共享内存就是堆,在堆中存储实例、静态参数和数组元素。 java内存模型如下(本地内存并不实际存在,涵盖了缓存和寄存器等优化性能的临时存储设计): 而到到这里又引发了一个新的问题,就是重排序的问题,我们知道在现在硬件和软件发展下,从cpu和java编译器上都采取了很多优化措施来保证程序的高效率执行,而重排序就是这一优化的一部分。不难想象,在重排序过程中两个线程a和b代码如下: publicclassDemo{ inta=0,b=0,x=0,y=0; publicvoidmethodA(){ a=10; x=b; } publicvoidmethodB(){ b=10; y=a; } }复制 假设a和b同时运行,而在methodA和methodB中两行代码并没有明确的相关性,这时候就可能发生重排序,在a运行me
1、在同一类方法间相互调用,如果调用方无事务控制,被调用方有事务控制,则被调用方也无事务 原因:外部经过spring容器调用service的方法事务才生效,service类内部方法间相互调用事务不生效,也就是传说中的自调用失效问题。主要原因是 Spring数据库事务的约定,其实现原理是AOP,而AOP的原理是动态代理,在自调用的过程中,是类自身的调用,而不是代理对象去调用,那么就不会产生AOP,这样Spring就不能把你的代码织入到约定的流程中,于是就产生了现在看到的失败场景。 2、默认事务传递性)事务控制A调用事务控制B,如果B抛异常,A处理异常,则整个事务会回滚,同时报错Transactionrolledbackbecauseithasbeenarkedasrollback-only 如图所示:箭头表示的2个方法都有事务,外面的事务捕获了里面的事务 原因:事务的传递性,因为A调用B,所以A和B都是同一个事务对象,B使用A的事务对象,成为一个整理,B抛异常已经将事务对象设值为需回滚状态(RollbackOnly)了,除非B中直接处理异常,当外层事务处理异常
相信每个人学习数据结构的时候都有这么一个令人头疼的问题,为什么在创建链表和插入节点的时候,形参是这样的void insert(node*&root,intx),而输出,查找修改的时候,形参又是这样的void search(node*root,intx)。传入的都是root,但是参数的类型为啥不一样呢?为什么root要取地址给指针呢?这到底是为什么呢?下面我就给出正确答案。 其实&在这里并不是取地址符,而是只引用,其实c++和java一样也是有引用的,只是因为c++有指针所以引用是几乎用不到的。引用的作用是,在函数中修改变量会直接修改原变量。这么做的原因是,如果不使用引用,对root的修改就无法作用到原变量了,因为root是node指针类型,也就是root现在是个地址,所以不用引用是改变不了root本身的。search函数中的root前不用加引用是因为search修改的是*root的值,修改的是root指向的内容而不是root本身。 一般来说,如果函数中需要新建结点,即对链表的结构作出修改,就需要加引用;如果只是修改当前链表中的内容,或者
在英文论文写作中,经常会遇到常见的缩写,很容易搞混或写错。 e.g.etc.etal.i.e. 都是拉丁文的缩写,但在现代科技文献中仍广为使用。 下面就来介绍一下这些缩写到底是什么意思,该怎么用: (1)etal. etal.是用得最多的,一般在文中引用学者成果或者是参考文献时,罗列作者时的省略。 它的完整写法应该是etalia,意为“等人,以及其他人”。 注:1、缩写时et后不要加“.”因为et不是缩写; 2、al后面要加“.”因为是缩写; 3、如果etal.在句子最后,不需要重复两个“.”; 4、如果后面跟“?!,”等标点,则还需要“.”; 5、etal.的前面不要逗号。 如:TheseresultsagreewiththeonespublishedbyPelonetal. (2)etc. 它的完整写法是etcetera,意为“等等”。 一般将它放在列举的最后,表示前面的例子还没列举完。如:Ineedtogotothestoreandbuysomepie,milk,cheese,etc. 注:1、etc.前面
一、内部类 ▪把一个类定义在另一个类的内部称为内部类 /* 内部类(当作类中的一个普通成员变量,只不过此成员变量是class的类型): 一个java文件中可以包含多个class,但是只能有一个publicclass 如果一个类定义在另一个类的内部,此时可以称之为内部类 使用: 创建内部类的时候,跟之前的方法不一样,需要在内部类的前面添加外部类来进行修饰 InnerClassDemo.InnerClassinner=newInnerClassDemo().newInnerClass(); **/复制 publicclassInnerClassDemo{ privateintid; privateStringname; publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicvoidshow(