自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Rust egui(4) 增加自己的tab页面

如下图,增加一个Sins也面,里面添加一个配置组为Sin Paraemters,里面包含一个nums的参数,范围是1-1024,根据nums的数量,在Panel中画sin函数的line。越来越懒~~~~~~~~~~ >_<

2024-04-04 20:09:18 610

原创 Rust egui(3) 增加多个tab

话说不知道咋写,要不直接上git patch吧。代码都是移植的官方demo,核心改动就是把原来的line_demo换成了plot_demo,里面实现多个ui,然后点击tab标题会切换不同的ui。ffmpeg工具转的mov到gif看起来也还可以呀。如下图,Lines和Markers两个不同的标签对应不同的ui。直接上git diff吧。

2024-03-24 15:26:19 387

原创 RUST egui(2) 部署到github

接上文,当用trunk serve编译部署后,工程目录下就会有一个dist目录,这个目录就是用来部署用的。:)

2024-03-17 21:41:00 597

原创 RUST egui(1) 体验

RUST egui

2024-03-17 16:03:12 909 1

原创 指针数组与数组指针

这里ptr是指针,注意这里的第一个*修饰的是后面的[5][10],第二个*修饰的是ptr,指针ptr指向了一个有5x10个元素的数组,这个数组里的每个元素都是一个 int *的指针。这里ptr是数组,注意这里的第一个*和第二个*修饰的都是后面的[5][10],数组ptr有5x10个元素的数组,这个数组里的每个元素都是一个指向 int *的指针的指针。这里ptr是指针(数组指针),注意这里的*修饰的是后面的[5][10],数组ptr有5x10个元素,每个元素都是一个 int *的指针。

2024-03-12 21:10:04 157

原创 十五年的技能总结

了解:用过,需要一点时间来恢复记忆才能开始开发。熟悉:深入了解过,可以与他人协作开发。是不是感觉写的有点保守?有些尚未回忆出来,后面慢慢更新。

2024-01-27 14:02:29 105

原创 SystemC学习笔记(三) - 查看模块的波形

波形在Simulation/Emulation中地位十分重要,尤其是在研发初期,只能通过波形来查看软件hang住的位置。对于TLM来说,查看波形一般是指查看pvbus上的transaction,而对于SystemC本身来说,查看波形就是使用Gtkwave或其他EDA工具,查看Module的input/output的时序输入/输出,其本质和硬件设计的Verilog/VHDL的波形基本一样。

2024-01-21 13:02:01 496

原创 在可执行文件中追加资源文件(C语言)

本来是想研究下怎么把已经定义好的数据库追加到可执行文件中的,但是转念又想总归是要重新编译,不如直接把预定义的数据参数直接写到代码里更简单一些,研究的过程中顺便总结了下这篇文章。将资源文件转换成二进制文件想要将资源文件追加到可执行文件中,首先需要用objcopy命令将资源文件转换成二进制文件。 -B后输入的是架构,如果不清楚当前编译系统是什么架构,可以随意编译一个test.o文件然后用

2024-01-21 11:53:09 446 1

原创 SystemC学习笔记(二) - Hello systemc world

Hello world其实还是挺简单的,下面应该就是需要理解SystemC的运行机制了。

2024-01-14 13:56:27 433

原创 SystemC学习笔记(一) - MacOs编译环境配置

SystemC是一个建模语言,其本质是一个C++的库,一般用于SoC建模,具体介绍不赘述,百度都可以搜到,这里只讲怎么使用配置。

2024-01-07 20:36:09 832

原创 要不要写点啥

cpu、systemc、verilog乱七八糟看了一大堆,一直没系统总结过,感觉都是看完两周就忘的节奏。

2023-04-20 07:52:31 93

原创 基于RUST的树莓派Raspberry 4的bare metal体验

最近看了几个讲Bare Metal的文章,看老外在Raspberry搞得风生水起,也手痒用RUST倒腾了下。先上参考链接,拿来主义最快,主要基于下面几个链接:基于RUST的树莓派3的Bare Metal基于C的树莓派4的Bare Metal基于RUST的RISC-V的OS树莓派4B的CPU BCM2711 Datasheet整体其实没什么难度,最主要的是环境配置。然后照着老外的代码改一改就能跑了,目前只试了试串口。环境配置基本上参考基于C的树莓派4的Bare Metal 一文来配置即可。因

2022-02-05 23:57:12 1454

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(9)

Chapter 22 API参考22. 函数22.1.1 pytest.approxapprox(expected, rel=None, abs=None, nan_ok=False)判断两个数字(或两组数字)是否在误差允许范围内相等。由于浮点数的精度问题,有的时候我们认为相等的数字其实并不相等:&gt;&gt;&gt; 0.1 + 0.2 == 0.3False这种情形在编写测...

2019-03-08 09:21:45 2400 4

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(8)

Chapter 15 对unittest.TestCase的支持pytest支持运行基于python unittest套件的测试。这意味着可以使用pytest来执行当前已经存在的unittest的测试用例,并能够逐步的调整测试套来使用更多的pytest的特性。想要执行unittest格式的测试用例,使用如下命令行:pytest testspytest会自动的再test_.py或者_.tes...

2019-03-08 09:20:51 1088

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(7)

Chapter 13 参数化pytest有如下几种参数化的方式:pytest.fixture()可以对测试函数进行参数化@pytest.mark.parametrize允许对测试函数或者测试类定义多个参数和fixtures的集合pytest_generate_tests允许自定义参数化的扩展功能13.1 @pytest.mark.parametrize: 参数化测试函数2.2引入,...

2019-02-23 21:17:16 847

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(6)

Chapter 10 捕获告警3.1更新从V3.1开始,pytest可以自动的捕获测试过程中的告警并在测试完成后显示出来。# test_show_warnings.pyimport warningsdef api_v1(): warnings.warn(UserWarning("api v1, should use functions from v2")) return...

2019-02-22 22:03:53 2482 2

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(5)

Chapter 7 猴子补丁/模拟模块或环境的行为有时我们需要修改函数的全局配置或者调用类似网络访问这些不容易测试的代码。monkeypatch可以用来安全的设置/删除一个属性,字典项或者环境变量,甚至可以改变import的路径sys.path. 参考monkeypatch blog post可以查看更多介绍信息及进展。7.1 MonkeyPatching函数如果需要阻止os.expandu...

2019-02-21 21:29:21 768

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(4)

Chapter 5 pytest fixture:直接,模块化,易扩展(总之就是Niublity)2.0/2,3/2.4有更新测试fixture的目的是提供一个测试的基线,在此基线基础上,可以更可靠的进行重复测试。Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:测试fixture有明确的名称,通过在函数/模块/类或者整个项目中激活来使用...

2019-02-19 22:08:16 1580

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(3)

Chapter 3 在现有测试套中使用pytestpytest可以与大多数现有的测试套一起使用,但他的测试行为与其他的测试工具(如nose或者python的默认的unittest)有差异.在使用此部分之前,您需要安装pytest。3.1 与现有的测试套一起运行pytest比如说你想要修改某处的已有的代码库,在将代码拉到你的开发环境后并且设置好python的环境后,你需要在你的工程的根目录下...

2019-02-18 21:24:27 998

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(2)

Chapter 2 用法2.1 通过python -m pytest调用pytest这是在2.0版本中新引入的功能。你可以通过python的解释器,利用命令行来调用测试:python -m pytest [...]这种调用方式几乎等同于直接调用pytest […],但需要注意的是这种通过python来调用的方式同时会将当前目录添加到sys.path2.2 退出码pytest有以下6种...

2019-02-17 21:21:43 1761 2

原创 pyTest官方手册(Release 4.2)之蹩脚翻译(1)

Chapter 1 安装和启动pytest作为一个测试框架,可以非常简单的建立易用性好,扩展性强的测试集。这些测试因为避免了大量的样板代码,所以可读性非常高。你可以花费一点时间通过一个unittest或者略复杂的函数测试来验证你的应用程序或者库。1.1 安装pytest在你的python环境下运行下面的命令即可安装pytestpip install -U pytest检查你安装...

2019-02-15 22:30:55 3228 1

原创 Scons使用一二

无意中看到了一个用python来写makefile的工具scons,使用了一下,感觉还不错,记录一下。安装pip install scons使用以之前构建的FreeRTOS的simulator做范例。首先需要在目录下创建一个名为SConstruct的文件,scons通过解析该文件来进行编译。我们在文件中首先先定义需要编译哪些objects,具体格式如下:obj = Object([...

2018-12-11 19:37:21 1275

原创 0day安全:软件漏洞分析技术 读书笔记(1)

最近听了老外的一个关于secure coding program的培训,感觉挺有意思。网上找了本相关的技术书仔细研究下,做点笔记。Crack 小实验书的1.4节介绍了一个在Windows下的代码的crack的实验,利用虚拟机+ubuntu16重现一下:code实验的code如下,代码逻辑很简单,验证用户的输入密码,如果密码与预定义的PASSWORD相同,验证通过:#include &lt...

2018-11-06 22:03:36 1285 1

原创 AliOS-Things 到底编了哪些文件

AliOS-Things最近对AliOS-Things感兴趣,根据官网的快速开始可以很方便的在Linux下编译出来helloworld的范例并运行。 编译的命令行如下:aos make helloworld@linuxhost利用该命令即可编译出在linux下运行的基于AliOS-Things的helloworld的例程。 敲一下which aos,找到aos的路径,直接vi打...

2018-06-28 22:14:30 4232 3

原创 在Linux下实现FreeRTOS的简单模拟器

FreeRTOS基础知识不赘述,请参考朱工的专栏, 本文主要描述怎么在Linux的环境下跑一个FreeRTOS的模拟器官方示例FreeRTOS的官方提供了一个在Linux下的Simulator的示例,但是用的Kernel的版本非常老,是V6的版本,FreeRTOS现在已经进化到V10了,作为一个标准码农,不用最新版本简直不舒服斯基 &gt;_&lt;。 先把官方示例下载下来,在官...

2018-02-28 21:31:18 10351 12

原创 在可执行文件中追加资源文件(C语言)

本来是想研究下怎么把已经定义好的数据库追加到可执行文件中的,但是转念又想总归是要重新编译,不如直接把预定义的数据参数直接写到代码里更简单一些,研究的过程中顺便总结了下这篇文章。将资源文件转换成二进制文件想要将资源文件追加到可执行文件中,首先需要用objcopy命令将资源文件转换成二进制文件。 -B后输入的是架构,如果不清楚当前编译系统是什么架构,可以随意编译一个test.o文件然后用

2018-01-26 13:42:15 3936

原创 从零搭建Hadoop集群 五

本篇介绍安装HBASE,具体怎么跟Hadoop一起玩不做介绍,因为我也不会>_<,怎么在Hadoop里写Java代码操作Hbase还需要继续研究,搞完HBASE就剩下安装Spark了。下载先去下载个当前的稳定版HBASE 1.2.6,注意不要和我一样犯傻下载了src,倒腾了半天发现总是说缺少库,除非您有兴趣重新编译一遍HBASE。 安装将压缩包拷贝到bigdata-master,解压:tar -z

2017-07-22 16:27:02 405

原创 从零搭建Hadoop集群 四

偷个懒 ^_^Combiner:Combiner号称是本地的Reducer,Map后的数据先到Combiner,处理后再最终输入Reducer。所以,上文的Combiner的Class就不能设置成和Reducer是一样的。

2017-07-19 21:56:59 341

原创 从零搭建Hadoop集群 三

接上文,看了几篇文章,自己尝试着写了两个hadoop处理文件的小代码,惭愧啊,人家四五年前玩的东西,现在才想起来要尝试着学习一下,还磕磕绊绊的。>_<求平均数我们有两个文件,里面保存了一些人的语文和数学成绩,格式如下: testAvg.txt张三 语文 88李四 语文 77王五 语文 66张三 数学 90李四 数学 79王五 数学 68testAvg2.txt赵六 语文 88赵六 数

2017-07-15 17:33:01 413

原创 从零搭建Hadoop集群 二

接上篇,本篇需要的是来将Eclipse连接到Hadoop服务器上。首先下载一个Eclipse,我下载的是最新的免安装版本OXYGEN,免安装版的下载链接按照如下方法进入: 1. 进入Eclipse官网,拉到最下面,点IDE and Tools: 2. 在新的页面点击Java EE: 3. 点右边的下载链接即可: 下载完后将压缩包拷贝到bigdata-master机器里,解压。然后去下

2017-07-06 22:21:50 344

原创 从零搭建Hadoop集群

上周上了一周东方瑞通的杜威老师的大数据培训课程,受益良多,杜老师将现在流行的大数据的架构完整的展现了出来,并带着我们一步一步的使用了各种大数据的工具。课程中使用的工具大多是杜老师已经配置好的,不自己再倒腾倒腾估计一周后就忘记了,干脆重新搞了个虚拟机从头搭建一遍玩一下,倒腾了两个晚上,才刚刚把Hadoop的环境跑通,还有HBase, Hive,Spark。。。还有大数据的算法。。。路漫漫其修远兮啊。。

2017-07-03 23:30:30 564

原创 游戏编程中的人工智能 五 (Python改编)

本文改编自Mat Buckland的游戏开发中的人工智能技术中的Chapter 9 手势的识别,C++代码重新用python来实现(本文所有遗传算法/神经网络相关代码均改编值Mat的C++代码,如有雷同,纯属巧合)。废话不多说,先上效果图: 从效果图可以看出来,我们的程序可以识别出来我们鼠标所画的手势是否是我们预定义的手势,如果不能确定的话,也会给出可能性最大的那个手势。在本章的实现里,没有再用到

2017-06-11 21:34:50 1601 4

原创 游戏编程中的人工智能 补

先抱怨下Windows 64Bit下的交叉编译简直折磨死人,倒腾了几天之后决定还是切到Linux下算了。虚拟机虽然不给力,但是好歹能看出来优化后的结果。本文没什么讲的,只是将上文说到的扫雷机的进化过程中耗时最长的函数用C重新写一遍后比较下运行速度,废话不多说,直接贴代码,看结果。Python代码原来判断两条直线AB和CD的python代码是长下面这样的,原理不再赘述。def LineIntersec

2017-06-03 09:49:44 525

原创 游戏编程中的人工智能 四 (Python改编)

本文改编自Mat Buckland的游戏开发中的人工智能技术中的Chapter 8 为扫雷机提供知觉的实现,C++代码重新用python来实现(本文所有遗传算法/神经网络相关代码均改编值Mat的C++代码,如有雷同,纯属巧合)。在本章中,我们为扫雷机提供了一系列感知器,让扫雷机能够有效的躲避障碍物,废话不多说,先看效果图: 扫雷机在进化训练之前,依旧是一群无头苍蝇: 训练之后,扫雷机就厉害多

2017-05-17 22:57:29 788

原创 如何判断二维的两个线段是否相交

本文算法见:http://www.faqs.org/faqs/graphics/algorithms-faq/ 中的Subject 1.03 线段的定义很明显,线段的端点由两个SPoint来定义,SPoint定义如下,坐标系中的x,y坐标可以决定一个点:class SPoint(object): def __init__(self, a=0.0, b=0.0): self._

2017-05-06 12:46:06 2186

原创 游戏编程中的人工智能 三 (Python改编)

本文改编自Mat Buckland的游戏开发中的人工智能技术中的Chapter 7 扫雷机的实现,C++代码重新用python来实现(本文所有遗传算法/神经网络相关代码均改编值Mat的C++代码,如有雷同,纯属巧合)。在本章节中Mat Buckland实现了一个利用神经网络和遗传算法进化的扫雷机,扫雷机从初始的几乎只会原地打转,最终可以进化到自行寻找地图上的地雷。废话不多说,先看示意图,进化开始的时

2017-04-21 10:25:33 2104 8

原创 游戏编程中的人工智能(Python改编)

本文改编自Mat Buckland的游戏开发中的人工智能技术中的Chapter 3帮助Bob回家,C++代码重新用python来实现(本文所有遗传算法相关代码均改编值Mat的C++代码,如有雷同,纯属巧合)。Mat在本章节中详细的描述了如何利用遗传算法来帮助Bob从迷宫的起始点走到终点。具体效果如下图,红色是起点,绿色是终点,蓝色是寻找的路径: 。遗传算法遗传算法是一种经典的进化算法,本文不再讲解

2017-04-10 09:26:47 1034

原创 游戏编程中的人工智能 二 (Python改编)

本文改编自Mat Buckland的游戏开发中的人工智能技术中的Chapter 4 解决TSP问题(旅行商问题),C++代码重新用python来实现(本文所有遗传算法相关代码均改编值Mat的C++代码,如有雷同,纯属巧合)。TSP问题(Travelling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走

2017-04-10 09:24:55 727 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除