Ruby需要生成大量对象时慎用OpenStruct

[ 2017-09-14 23:55 | 分类:程序开发 | 浏览次数: 159次 | 0条评论 ]

我本来需要采集数据, 总共有30万个数据, 每个数据都包含三个value和一个time.

本来使用的是OpenStruct, 后来发现程序采集完需要500M左右

后来改用Struct, 还是500M左右

最后自己写一个类, 发现只需要26.6M左右

HAL_UART_Receive_IT使用时的死锁问题

[ 2017-05-04 14:02 | 分类:程序开发 | 浏览次数: 2,257次 | 1条评论 ]

STM32的HAL库是非常好的一个库, 用了会加快开发速度, 然而也会有很多意想不到的问题,
比如我遇到的HAL_UART_Receive_IT函数死锁问题

C语言单元测试框架比较

[ 2017-02-19 19:00 | 分类:程序开发 | 浏览次数: 1,203次 | 0条评论 ]

最新想在嵌入式里做一些UT,所以找了一些UT框架评估,寻求理想中的框架

让Ruby调用PATH路径下的ruby脚本

[ 2015-09-23 19:30 | 分类:程序开发 | 浏览次数: 1,388次 | 0条评论 ]

经常会写一些ruby脚本放在PATH路径下,这样可以直接在终端窗口调用.

然而在ruby脚本里却不能通过system调用,比如PATH路径下有一个脚本为runtime.rb.

在终端直接输入runtime就可以运行, 然而在ruby脚本中调用system(“runtime”)却不行.

让sublime text3在终端中运行

[ 2014-09-01 23:01 | 分类:程序开发 | 浏览次数: 7,612次 | 3条评论 ]

一般情况直接在Sublime Text3中运行即可, 但如果需要读取用户的输入, 比如C/C++调用函数getchar,gets,cin, ruby中调用$stdin.gets,这时候在Sublime Text中运行就没有效果了,表现的问题就是无法输入数据, 这时就需要让其在外部终端中运行.

SVN分支管理最佳策略

[ 2014-08-29 20:41 | 分类:程序开发 | 浏览次数: 7,859次 | 1条评论 ]

现在网上git的分支管理最佳策略最好查找, 基本上都趋同于一个.

由nvie建议的git branching model.

IAR中固定变量位置

[ 2014-08-29 20:35 | 分类:程序开发 | 浏览次数: 5,036次 | 1条评论 ]

 

首先为什么要固定变量位置呢,

1. 有时需要将一个程序的一部分变成可替换的, 比如语言包或者定制的一些功能是否开启.

当然在PC端一般直接就是把所有的语言包放在一起, 写个xml文件来开启或关闭定制功能.

但是嵌入式就麻烦些,首先是空间不够, 其次更新固件时是刷入整个程序,不包含配置文件等.

这就决定了语言包和定制的功能开关必须在固件里,也就是在程序里.

程序在link时所有东西的位置和大小都会固定, 在给各个语言或客户出固件时必须重新编译,使用不同的语言和开关.

要维护这么多固件很麻烦, 如果将语言和开关固定在某个位置, 主程序就只需要一个, 语言和开关编译成单独的一个包, 然后将这个包替换掉主程序中的语言和开关. 这样就减轻了维护多固件的麻烦.

2. 有时需要把一些信息放在固件的某个地方,比如版本信息, 这样升级程序或者bootload可以从固件中读取到升级固件的版本信息, 然后可以判断是否要升级.

Ruby中实例变量,类变量,类实例变量,类常量的继承分析

[ 2014-08-29 20:22 | 分类:程序开发 | 浏览次数: 1,537次 | 0条评论 ]

首先需要说明类中定义变量有三个位置:类定义中, 类方法中, 类实例方法中.

这三个位置都是互斥的.

类定义是指在类中但不在类中的任何方法内,相当于C++的头文件中的类定义.

类方法是指在类自己的函数中,相当于C++的类静态函数

类实例方法相当于C++的类的方法

Ruby中的Main分析

[ 2014-08-29 20:09 | 分类:程序开发 | 浏览次数: 2,480次 | 0条评论 ]

一般程序都有入口,比如C语言入口是main函数,所以进入程序后我们会到main函数的第一行.那么在进入ruby程序后我们是在哪个位置呢?

可以通过打印self来知道当前上下文.

puts self,self.class

批量删除百度空间所有的文章

[ 2014-03-27 22:51 | 分类:程序开发 | 浏览次数: 1,211次 | 1条评论 ]

由于百度空间没有提供批量删除文章的功能,当文章很多又想全部删除时,一个一个手动删除是件恼人的事情.