香橙派(Ubuntu Arm)
运行的效果准备香橙派一块!当前教程使用的是香橙派5 4G开发板
准备.NET环境
安装.NET Core依赖
sudo apt install -y libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4 libcurl4-openssl-dev libssl-dev uuid-dev unzip libgdiplus libc6-dev libkrb5-3
下载.NET 7 SDK
wget http://download.visualstudio.microsoft.com/download/pr/142603ad-0df5-4aef-bdc2-87b6140c90ed/2cce467e6c954d01024942b8370aaf70/dotnet-sdk-7.0.302-linux-arm64.tar.gz -O dotnet-sdk-linux-arm.tar.gz --no-check-certificate
创建dotnet文件夹并解压
sudo mkdir -p /usr/local/dotnet && sudo tar zxf dotnet-sdk-linux-arm.tar.gz -C /usr/local/dotnet
创建软连接
sudo ln -s /usr/local/dotnet/dotnet /usr/local/bin
查看版本
dotnet --version
如果需要使用http
请使用
sudo dotnet dev-certs http
香橙派
运行的程序一下是一个Masa Blazor
可以用于在Arm
设备运行的程序
项目开源地址:
239573049/MasaLinuxDesktop (github.com)
然后在香橙派
中拉取代码
git clone http://gitee.com/hejiale010426/MasaLinuxDesktop.git
进入到MasaLinuxDesktop\LinuxDesktop
目录下
cd MasaLinuxDesktop/LinuxDesktop/
运行项目
dotnet run
就这样非常简单的创建了ARM设备下的桌面应用!并且它也可以操作串口等上位机的操作,然后配合Blazor HyBrid简单的写好看的界面,后期token
对于Arm
是博客也会大量投入时间研究,还有winform
+Blazor HyBrid
也会花大量时间研究并且写博客分享经验!也非常欢迎大佬们一块对于Blazor
投入研究和时间使用,对于Blazor
它的能力是为了统一.NET生态的界面方式,并且从.NET8
看到的新功能微软对于Blazor
的投入也是巨大的;而且目前Blazor
的生态也是非常的好了!据我所知的Blazor组件库
不下10个。后面我会使用Blazor HyBrid
在Arm
设备进行业务尝试,目前打算考虑的是写一个简单的监控设备!
来自Token的分享
Blazor 技术交流:452761192
好用的组件库:Masa Blazor
有人需要用很多个号来关注贴吧,或者一个号关注多个贴吧,很明显手工是很累的.所以写了一个php关注类,开源出来给大家. 因为大量的关注需要消耗服务器的资源,所以你也可以在我的网站使用使用地址:http://tieba.eirds.cn/<?php /** *author:一千零一夜-龙辉QQ1790716272 *date:2020/03/28 *description:贴吧关注类 *parma:kw=需要关注的吧bduss=登录贴吧之后的bduss * * */ classtbkw{ protected$kw=''; protected$bduss=''; protected$head=array( 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Accept-Encoding:gzip
✍️作者简介:一个热爱把逻辑思维转变为代码的技术博主 ?作者主页:【主页——?获取更多优质源码】?web前端期末大作业:【?毕设项目精品实战案例(1000套)】?程序员有趣的告白方式:【?HTML七夕情人节表白网页制作(110套)】?超炫酷的Echarts大屏可视化源码:【?echarts大屏展示大数据平台可视化(150套)】?免费且实用的WEB前端学习指南:【?web前端零基础到高级学习视频教程120G干货分享】?关于作者:历任研发工程师,技术组长,教学总监;曾于2016年、2020年两度荣获CSDN年度十大博客之星。十载寒冰,难凉热血;多年过去,历经变迁,物是人非。然而,对于技术的探索和追求从未停歇。?坚持原创,热衷分享,初心未改,继往开来!一、??网站题目?美食网页介绍、?甜品蛋糕、?地方美食小吃文化、?餐饮文化、等网站的设计与制作。<hr>二、✍️网站描述?美食主题网站主要对各种美食进行展示,让浏览者清晰地了解到各种美食的详细信息,便于浏览者进行选择。该模块的左侧有个美食分类,用户可以选择自己喜欢的种类,当点击种类后,就会在右侧出现该分类下的各种美食,用户可以点击
在最传统的情况下,最优化理论主要关注的是对给定计算问题实例的最优解的搜索。最近人工智能研究的一个趋势,称为解决方案多样性,集中于发展最优性的概念,这种概念在主观性非常重要的情况下可能更合适。其思想是,我们的目标不是开发输出单一最优解的算法,而是研究输出大量有效解集的算法,这些有效解集彼此之间存在很大差异。这样,用户就有机会选择最适合上下文的解决方案。它还显示了解决方案空间的丰富性。当结合参数化复杂度理论的技术,解决方案的多样性范式提供了一个强大的算法框架来解决实践相关性的问题。在本文中,我们研究了这种组合在kemeny秩集合领域中的影响,kemeny秩集合是秩理论和社会选择理论交叉的一类研究得很好的问题,也是秩理论本身领域中的一类问题。特别地,我们证明了Kemeny秩聚合问题是一个固定参数可处理的问题,它分别用自然参数提供多样性概念的自然形式化,以及最佳解的概念。我们的主要结果在传统的线性排序投票的聚合设置和更一般的投票部分排序设置中都有效原文题目:DiversityinKemenyRankAggregation:AParameterizedApproach原文:Initsmosttr
问题描述用python解决问题的方法有很多:函数法、暴力法以及一些常见的算法等等,而且python的很多基础题用函数来解决是非常快捷的。熟练掌握函数的方法和技巧能够更好地解决问题,思路更加清晰。下面以leetcode”最长公共前缀”案例简单介绍zip函数的应用。编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""示例:输入:["flower","flow","flight"]输出:"fl"解决方案zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,最后需要转换成list()来输出列表。zip(*)可以将元组解压为列表。代码示例:a=[1,2,3] b=[4,5,6] print(list(zip(a,b))) a1,a2=zip(*zip(a,b)) print(list(a1)) print(list(a2)) [(1,4),(2,5),(3,6)] [1,2,3] [4,
1、知识准备1)Tuple格式头HeapTupleHeaderDatatypedefstructHeapTupleFields{TransactionIdt_xmin; /*insertingxactID*/TransactionIdt_xmax; /*deletingorlockingxactID*/union{CommandIdt_cid; /*insertingordeletingcommandID,orboth*/TransactionIdt_xvac;/*VACUUMFULLxactID*/}t_field3;}HeapTupleFields;其中:t_xmin:存储的是产生这个元组的事务ID,可能是insert或者update语句t_xmax:存储的是删除或者锁定这个元组的事务IDt_cid:包含cmin和cmax两个字段,分别存储创建这个元组的CommandID和删除这个元组的CommandIDt_xvac:存储的是VACUUMFULL命令的事务IDPostgreSQL主要就是通过t_xmin,t_xmax,cmin和cmax,ctid,t_infomask来唯一定
OncodriveCLUST是一款驱动基因识别软件,主要针对功能获得性突变,即gain-of-funcitonmutations进行分析,这些突变通常聚集在蛋白质的特定区域,可能是肿瘤细胞生长优势和肿瘤细胞克隆进化过程中正向选择的信号,通过对这些突变进行分析,来预测潜在的驱动基因。对应的文章发表在Bioinformatics上,链接如下http://bioinformatics.oxfordjournals.org/content/29/18/2238.full该软件以基因为单位进行分析,主要步骤分为5步,图示如下 第一步统计蛋白质上每个位置的功能获得性突变的频率分布,结果如图I所示,横坐标为蛋白质的位置,纵坐标表示每个位置上突变位点对应的频率;第二步筛选非随机的突变位置,利用二项分布累计函数筛选非随时的突变位置,在图II中,虚线表示阈值,虚线以上的位置为非随机的突变位置,非随机即代表有潜在的生物学意义。第三步对这些非随机位置进行聚类,每个cluster对应图III中的灰色区域,每个cluster下相邻的两个位置的距离小于5个氨基酸;第四步将原始的cluster位置进行扩展,相邻的区域
在软件和互联网行业做了20多年,结合自己的成长过程和看到的其他人的成长过程,谈谈我的感受,希望能够对在技术上发展不同阶段的人有所启发。如果有疑问,大家也可以消息我,或者加我微信讨论。对于入行的新人1.切记不要太追求安逸,把他人的果实当作自己的能力大家都是从新人进入到这个行业的,软件这个行业可以说很浅,很容易,也可以说很难,很深。很浅,很容易,因为现在的框架和工具太多了,让编程变得越来越容易,比如做GUI,之前有VB这种拖拉编程模式,现在的IOS和安卓也是控件拖拉方式。如果做WEB前端,之前的jquery和现在的VUE都有很多组件框架,都非常强大和漂亮,而且网上还有很多例子代码,让工作变成了拷贝粘贴流程。如果做后台,现在很多功能强大的中间件,都不需要自己去写SQL,就可以完成很多事情。现在的一线大厂也是分工细化,基础架构的东西也是由核心团队负责的,多数人都是在写业务代码,当然写业务代码不代表不会有技术含量,看你怎么去发现,有兴趣请参看”写好业务代码的难点在哪里”。长期做这种简单重复式的开发导致和基础的东西脱离太久,很多人连SQL都忘记了,更谈不上SQL性能的优化,也就导致很多人错误的认为
pipeline是什么从某种抽象层次上讲,部署流水线(Deploymentpipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。Jenkins2.x支持pipelineascode,可以通过”代码“来描述部署流水线。使用"代码”而不是UI的意义在于:更好地版本化:将pipeline提交到软件版本库中进行版本控制。更好地协作:pipeline的每次修改对所有人都是可见的。除此之外,还可以对pipeline进行代码审查。更好的重用性:手动操作没法重用,但是代码可以重用。总结:创建Jenkinsitem尽量使用pipeline风格。是趋势。Jenkinsfile是什么Jenkinsfile就是一个文本文件,也就是部署流水线概念在Jenkins中的表现形式。像Dockerfile之于Docker。所有部署流水线的逻辑都写在Jenkinsfile中。 建议把Jenkinsfile跟项目源码一块加入到版本控制中,这样方便项目成员了解构建构建和流程。当然出于安全,有些环境变量和参数等可以管理在Jenkins管理平台上。具体后续会有介绍。pipeline基本构成写pipe
image.png <!doctypehtml> <html> <head> <metacharset="utf-8"> <title>联想控股</title> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <linkhref="css/bootstrap.css"rel="stylesheet"type="text/css"> <linkhref="css/bootstrap-select.css"rel="stylesheet"type="text/css"> <scriptsrc="http://code.jquery.com/jquery.js"></script&g
原题题面P1399 [NOI2013]快餐店 题目描述 小T打算在城市C开设一家外送快餐店。送餐到某一个地点的时间与外卖店到该地点之间最短路径长度是成正比的,小T希望快餐店的地址选在离最远的顾客距离最近的地方。 快餐店的顾客分布在城市C的\(N\)个建筑中,这\(N\)个建筑通过恰好\(N\)条双向道路连接起来,不存在任何两条道路连接了相同的两个建筑。任意两个建筑之间至少存在一条由双向道路连接而成的路径。小T的快餐店可以开设在任一建筑中,也可以开设在任意一条道路的某个位置上(该位置与道路两端的建筑的距离不一定是整数)。 现给定城市C的地图(道路分布及其长度),请找出最佳的快餐店选址,输出其与最远的顾客之间的距离。 输入格式 第一行包含一个整数\(N\),表示城市C中的建筑和道路数目。 接下来\(N\)行,每行\(3\)个整数,\(A_i,B_i,L_i\)(\(1\leqi\leqN\),\(L_i>0\)),表示一条道路连接了建筑\(A_i\)与\(B_i\),其长度为\(L_i\)。 输出格式 输出仅包含一个实数,四舍五入保留恰好一位小数,表示最佳快餐店选址距离最远用户的距离
需求: 运营有若干批次的视频。有上千个,视频文件,有mp4格式的,有ts格式的 现在有需要去掉视频文件片头和片尾的批量操作需求。 比如 文件夹A下面的视频去掉片尾10秒 文件夹B下面的视频去掉片头6秒,去掉片尾60秒 文件夹C下面的视频去掉片头15秒 而每个文件夹下面视频存在时间长度不一样的情况 而且一个周末必须搞定(MMP,周五下班时找我求助) 嗯~~ 开始我的研究 首先想到的是网上搜索视频处理模块 网上搜到的大多都是ffmpeg工具。就准备从它切入 网上搜索了解了大概的用法之后,下下载下来测试 免费开源的软件 登录官网下载 http://ffmpeg.org/download.html下载win10版本软件 64位和32位的版本都下载了,好在不用安装。解压即用 可以看到32位和64位的 因为可以再命令行对视频操作。可以使用python调用它。前提是你先命令行执行没问题才可以 解压后把文件夹重命名了下。让cmd里面显示的路径短一点。好看 bin
使用Jmeter工具做性能测试 JMeter执行原理 JMerer通过线程组来驱动多个(也可以理解为LR⼯具⾥⾯的虚拟⽤户)运⾏测试脚本对⽬标服务器发起⼤量的⽹络请求,在每个客户端上可以运⾏多个线程组,也就是说⼀个测试计划⾥⾯可以包含N个线程组。 线程数 ⼀个线程可以理解为对应模拟⼀个⽤户,所以线程数越多,那么也就认为可以模拟的⽤户数越多。 Ramp-Up时间(秒) 该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒,也就是说所有线程在多⻓时间内开始执⾏,如线程数设置50,设置的时间为5秒,那么计算的公式为:每秒执⾏线程数=线程数/Ramp-Up 具体如:如设置的线程数为50,Ramp-up的时间为10,那么也就是说开启执⾏后,每秒会启动5个线程,如果Ramp-Up设置为0,那么开始执⾏后,50个线程会⽴刻启动。 首先在性能测试下添加一个HTTP请求(对百度发送请求),填写百度地址(有多少个线程数就发送多少个请求) 一、不同监听器组件的认识: 1.在线程组下添加一个监听器下的查看结果树 查看结果是在监听器中,它的组件具体
一、3表关联根据更新时间获取指定数据 1、简介 3个表进行关联查询查询增量数据(只要在时间范围内则查询出来)取数据: 从class表:nameuser表:sexsubject:score 2、设计方案 方案一: 在单独三个表中单独查询相关数据,再关联其它表数据。将查询到的数据存到中间表中,进行数据的去重。 方案二: 单独三个表中单独查询相关数据,将查询到的user_id进行去重。将去重以后的user_id,关联其它表进行数据查询。 二、上传文件识别问题(utf-8和utf-8-bom) UTF-8和UTF-8BOM格式区别 BOM即byteordermark,具体含义可百度百科或维基百科,UTF-8文件中放置BOM主要是微软的习惯,但是放在别的系统上会出现问题。不含BOM的UTF-8才是标准形式,UTF-8不需要BOM带BOM的UTF-8文件的开头会有U+FEFF,所以我新建的空文件会有3字节的大小。 问题: 上传文件进行CSV识别时,需要根据首列名称进行文件识别,bom格式。首列识别的话。 因为前面多加了几位,识别名称出现问题,则识别当前列数据为null。缺失一列的数据
一、存储 数据结构最终是落到存储,存储的方式无非就是两种,一种是链表,一种就是数组, 剩下的如树、堆、栈、队列、散列、图等数据结构都是这两种数据结构的分值 对应的优缺点也很明显 数组:存储空间小、需要一次性分配,地址是连续的,便于访问,插入和修改操作 较为耗时 链表:存储较大,需要额外的空间存储指针,地址无需连续,访问需要遍历全文, 知道前后节点的情况下,插入比较方便 二、操作 无论何种数据类型的访问都可分为线性和非线性的,即循环遍历和递归(递归考虑 栈深) 三、总结 数据结构核心是存储,存储可分数组和链表,依托于这两种存储衍生出各类数据结 构,只是名称换了一个说法而已,例如散列就是数组的衍生,只是增加的了把key映射 到数组的函数而已,其他的数据结构也是如此。搞清楚了这个根本问题,就不要被其它 数据结构的名字给唬住了。
以下代码看上去没有问题: <Project> ... <ItemGroup> ... <ItemGroup> <ItemGroupCondition="'$(IntegrationToNcf)'!='true'"> <!--一段注释--> <ProjectReferenceInclude="..\..\..\Basic\Senparc.Ncf.DatabasePlant\Senparc.Ncf.DatabasePlant.csproj"/> <ProjectReferenceInclude="..\..\..\Basic\Senparc.Ncf.XncfBase\Senparc.Ncf.XncfBase.csproj"/> <ProjectReferenceInclude="..\..\..\Basic\Senparc.Ncf.AreaBase\Senparc.Ncf.AreaBase.csproj"/> </ItemGroup> <ItemGroup>
本篇介绍一下RabbitMQ中的消费模式,在前边的所有栗子中我们采用的消费者都是EventingBasicConsumer,其实RabbitMQ中还有其他两种消费模式:BasicGet和QueueBaicConsumer,下边介绍RabiitMQ的消费模式,及使用它们时需要注意的一些问题。 1RabbitMQ的消费模式 0准备工作 使用Web管理工具添加exchange、queue并绑定,bindingKey为“mykey”,如下所示: 生产者代码如下: staticvoidMain(string[]args) { varfactory=newConnectionFactory() { //rabbitmq-server所在设备ip,这里就是本机 HostName="127.0.0.1", UserName="wyy",//用户名 Password="123321"//密码 }; //创建连接connection using(varconnection=factory.CreateConnection()) { //创建通道channel using(varchanne
1、TagSupport与BodyTagSupport的区别 TagSupport与BodyTagSupport的区别主要是标签处理类是否需要与标签体交互,如果需要交互的就用TagSupport,否则如果不需要交互就用BodyTagSupport。 交互(就是标签处理类是否要读取标签体的内容和改变标签体返回的内容。) 用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSupport。 2、doStartTag(),doEndTag() doStartTag()方法是遇到标签开始时执行,其合法的返回值是EVAL_BODY_INCLUDE与SKIP_BODY,前者表示将显示标签间的内容,后者表示不显示标签间的内容;doEndTag()方法是在遇到标签结束时执行,其合法的返回值是EVAL_PAGE与SKIP_PAGE,前者表示处理完标签后继续执行以下的JSP网页,后者是表示不处理接下来的JSP网页
概念 xtrabackup是一种物理备份工具,通过协议连接到mysql服务端,然后读取并复制innodb底层的"数据块",完成所谓的"物理备份"。 支持对innodb进行热备、增量备份、差量备份。 支持对myisam进行温备,因为在备份myisam表时,会对myisam表添加读锁,而且不能对myisam表进行增量备份,每次备份myisam数据都是全量,即使名义上是增量,但是实际上仍然是全量。 扩展理解: 数据存放于row中,row存在于page中,page存于extent中,所以我们备份extent中的page(page是innodb引擎的最小物理存储分配单位),即可备份出对应的数据。 innodb逻辑存储结构图 xtrabackup怎样实现增量备份 每个Page都有自己的LSN号码,LSN是一个全局递增的号码,每次对page中的记录进行修改时,都会产生新的LSN号码。 假设,我们第一次备份的数据如下,所有数据由如下6个page组成,下图中的黄色方块代表page,黄色方块右上角的号码代表当前page的LSN,从下图可以看出,目前最大的LSN号码为5。 假设
一、设置cookie的过期时间 //将过期时间设为一小时前 setcookie("TestCookie","",time()-3600); setcookie("TestCookie","",time()-3600,"/~rasmus/",".utoronto.ca",1);复制 二、设置cookie的值为空 setcookie($cookiename,'') setcookie($cookiename,NULL);复制 三、php中setcookie马上生效的问题 使用方法setcookie来设置cookie,但是setcookie之后不会马上生效,立即获取$_cookie是取不到值的。再次刷新页面才可以取到值。 在chrome开发者工具中查看network中的cookie项,会看到requestcookie中没有值,而responsecookie中有值(暂时不了解他们之间的区别) 如果想要立即生效可以setcookie(cookiename,value)之后再$_cookie[cookiename]=value 第一步是创建cookie,第二步是