应用开发
chamomoe
这个作者很懒,什么都没留下…
展开
-
浏览器CORS跨域笔记
CORS的意义:在不同domain之间共享数据 通过在请求中附带登陆token实现登陆过一次后,就可以免登陆的功能 如果有恶意网站使用一些特殊手段骗取浏览器把本来只会发给其他网站的token也发给恶意网站了。这下恶意网站就可以使用token以用户的身份登陆了。(Cross-site request forgery) 为了防止这种行为,浏览器一般只允许相同demain内的web相互请求数据 但实际情况这是不现实的,一个页面的所有数据不可能都存在一个domain下。比如第三方的api 所有有了原创 2020-08-15 18:56:38 · 2442 阅读 · 0 评论 -
web存储技术笔记
系统缓存下载 从内存加载 从硬盘加载 应用缓存原创 2020-08-15 17:06:01 · 215 阅读 · 0 评论 -
基于强化学习的放置类游戏
描述原创 2020-08-13 13:47:34 · 787 阅读 · 0 评论 -
b站云游戏开发
内容描述:原创 2020-09-16 12:54:44 · 1627 阅读 · 0 评论 -
录制和播放RTI DDS(6.0)数据
录制和播放程序:/home/chamo/rti_connext_dds-6.0.0/bin/rtirecordingservice -verbosity 3 /home/chamo/rti_connext_dds-6.0.0/bin/rtirepalyservice执行文件可以不带任何参数,所有配置都在配置文件里面完成。默认的配置文件在:/home/chamo/rti_connext_...原创 2019-12-11 16:23:10 · 1408 阅读 · 0 评论 -
地图显示技术
为什么地图显示是一个问题 当地图大了后,需要分块存储,并按照层级去索引。 地图显示技术分为哪些部分? 地图数据:Open Street Map 地图数据提供商一般会以Api的形式把自己的数据共其他人使用。 也可以用文件形式来存储,比如GeoJson,或者ssql数据库 地图渲染:Leaftlet, Mapbox GL 把地图数据变成真的图。这里面可以决定地图的风格...原创 2019-12-09 17:15:19 · 503 阅读 · 0 评论 -
sshpass使用心得
简介:使用ssh或者scp的时候需要手动输入密码。在写脚本的时候,这点是不允许的。但因为ssh也不支持pipe或者<<等方式输入密码。说以有了sshpass这样一个模拟输入密码的程序。安装:sudo apt-get install sshpass用法:sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机I...原创 2019-11-05 13:37:51 · 959 阅读 · 0 评论 -
libjpeg在交叉编译后读取jpg图片失败
libjpeg是一个非常古老的代码,但居然是c/c++世界里面唯一读写jpg格式的代码。古老的jpeg竟然用到一个叫setjmp的非结构动态跳转语句。问题描述:在ubuntu中交叉编译QNX上运行的opencv的imgcodecs库。imgcodecs会调用libjpeg这个库,所以同时交叉编译了libjpeg。在本地编译libjpeg都能正常工作,但交叉编译放到target平台后,相...原创 2019-10-18 22:00:21 · 687 阅读 · 0 评论 -
交叉编译原理分析
什么是交叉编译:交叉编译是指在一种环境(操作系统+芯片指令)中编译另外一种环境的程序。名词定义:host:执行编译操作的环境 target:最终运行编译结果的环境有些什么特殊的地方:编译器一定是host中的程序,但是编译器输出的程序却是是target中运行的。 host上面不存在target中编译或者运行需要的头文件和库。要做的事情:需要一种能够在host上执行,然后把...原创 2019-10-17 11:33:21 · 1754 阅读 · 0 评论 -
ROS和DDS的区别总结
背景:ROS是在机器人领域大家常用的通信中间件。DDS是一个很古老的用在很多safe-critical领域的通信中间件(航天,汽车,战舰,金融等)。两者要解决的问题都是一样的:灵活,可靠的通信网络。并且两者都是在实际使用诞生的协议,所以都有很强的实用性。但两者有一些不同的价值观:ROS所在的机器人领域更加开放(基本都是开源软件),用户的参与度更高(大部分问题都是被社区人员回答)。但是在工业...原创 2019-10-16 13:19:01 · 6199 阅读 · 1 评论 -
EGLStream理解
视频流的数据量巨大,如果要在不同的进程间传输视频流就必须考虑一些数据传输的底层问题,比如尽量不要做拷贝。以及互斥问题,不能一个程序还没把一张图片读完,共享的内存就被改变了。EGLStream就提供了这样一种功能,支持多个进程间进行无拷贝的视频流传输。EGLStream主要原理是设置了producer和consumer。producer负责把图片放入到EGLStream流中,consumer...原创 2019-10-13 12:03:16 · 2291 阅读 · 0 评论 -
不显示gcc的警告消息的方法
有的时候遇到模板编程,warning一大堆,结果error消息完全看不到了。可以在编译选项中加入-w来禁止warnings显示。注意-W和-w是不同的。-w后面不用加任何东西,代表不显示所有的warning。-W需要加入各种选项,比如-Wall,-Werror等。...原创 2019-10-09 11:44:51 · 2816 阅读 · 0 评论 -
不同链接库使用不同gcc编译选项-match的问题,传入的std::vector的size变为巨大
不同的动态链接库中,gcc编译选项-match必须设置一致,不然会出现各种奇怪问题。我这里遇到的问题就是std::vector传入链接库的函数中后,内存就全乱了(vector的size巨大)。有可能和std::vector里面使用的是内存对其了的Eigen对象有关。...原创 2019-03-10 15:12:01 · 884 阅读 · 0 评论 -
flask wtf上传文件时,data变量为字符串而不是FileStorage类型
使用wtf上传文件有几点需要注意的:一个是html里面form要设置属性:<form action="add_article_ui" method="post" enctype="multipart/form-data">不然data就是内容为文件名的string第二个form = XXXXForm(CombinedMultiDict((request.files, ...原创 2018-08-21 17:34:39 · 1424 阅读 · 0 评论 -
最简单的makefile
makefile现在已经很少直接去编写了,主要是考虑到代码的可移植性,不过偶尔还是需要阅读和修改一下makefile。这里把makefile最基本的用法总结下:chamo: cp sss sss1chamo1: chamo gcc hello.cmakefile其实不用来做编译,而是作为加强版的bash脚本也是可以。主要特点是加入了变化检测和依赖控制。如上面代码。cha...原创 2019-10-03 21:45:21 · 402 阅读 · 0 评论 -
CAN BUS原理理解
CAN BUS的各种特点这里就不多说了,随便搜搜就有很多介绍,这里着重从底层逻辑上讲清楚CAN BUS是怎么传输数据的。另外本文中电学相关的知识不一定严谨,大家能懂意思就行了。电线传输数据的原理:如上图,B房间的人要知道A房间的信息,只需要A房间的人在电线a和b之间加上一个电压脉冲。B房间的人就能在示波器测出这个电压变化,从而知道A的信息。如果假设电线b是接地的。那么其实只用一更导线就...原创 2019-10-02 14:36:36 · 5893 阅读 · 1 评论 -
元编程的一些用法的理解
template<bool b = (D_>0), typename std::enable_if<!b>::type* = nullptr>func(){}在b为false的时候,才会定义下面的这个函数,用于在某些情况下屏蔽某些模板函数的定义。主要用于模板循环定义中的终止函数vecIn.template block<3,3>(0,0)...原创 2018-11-06 12:48:03 · 252 阅读 · 0 评论 -
ios图标和启动图制作工具
ios需要不同尺寸的图标和启动图,手动用ps生成非常麻烦,这里介绍两个自动生成的工具:ios图标:https://appicon.co/#app-iconios启动图:https://www.appicon.build/ 其他苹果商店发布注意事项:icon不能有alpha通道,ps输出的时候可以设置不输出alpha通道。 提示bitcode的错误,需要删除/Users/mac...原创 2018-10-27 19:52:59 · 4850 阅读 · 0 评论 -
英语表达的收集类游戏
背景:大脑图像到具体的英语表达的对应是英语学习的砖瓦。但是训练建立这类反射并不容易,因为我们不能轻易的制造某个大脑图像。代替的办法是用母语文字,图片等的表达来激发对某个大脑图像的产生。这也是不容易的,不同的人不同的时刻对相同的文字和图像都有不同的理解,产生的大脑图像也不同。所以找到那些好的文字图像到英语表达的对应便成了有价值的数据。这里想通过引入游戏里的收藏机制来激发大家一起寻找这种好的文字图...原创 2018-10-28 10:31:10 · 374 阅读 · 0 评论 -
有用链接
Ubuntu 16.04安装sogou 拼音输入法 https://www.webdigi.co.uk/blog/2015/how-to-setup-your-own-private-secure-free-vpn-on-the-amazon-aws-cloud-in-10-minutes/ https://www.cnblogs.com/JingeTU/default.html?page=1...原创 2018-09-26 14:41:06 · 142 阅读 · 0 评论 -
结构体的排序
对于排序的方法,我们知道很多种。但实际应用中,最麻烦的不是排序本身,因为几乎所有语言都提供了排序的函数。而麻烦的是不经需要排序,还需要把一些附带的数据的位置也跟着重新排列。比如我们有很多学生的资料。每个学生是一个对象,然后这些对象按一定顺序放在一个数组里面。我们一会儿想按照学生成绩来排列这些对象,一会儿想按照学生身高来排列。那么有些什么思路来实现这类操作呢:把要比较的量单独组成一个数组。对...原创 2018-08-21 17:01:51 · 328 阅读 · 0 评论 -
flask的filter的使用
flask嵌入到html中的代码是不能调用python的函数的,不管是{{}}中的还是{%%}中的。也就是如果你想制定循环次数为某个数组的长度的话,你是不能使用len()这样的函数的。一个workround是在python中把长度计算好了后再传给flask的渲染器。但还有个直接的方法就是使用flask的filter。filter就是对一些数组做一些操作,得到一些数据,相当于函数的功能。flas...原创 2018-08-21 16:41:49 · 2942 阅读 · 0 评论 -
flask架设微信小程序服务器,苹果手机能正常访问,安卓不行(ssl的中间证书问题)
最近做了一个微信小程序。上线后发现苹果能正常访问服务器,但安卓手机访问时,服务器都没有反应。查阅了国外网站的资料后,发现时ssl证书的中间证书缺失问题。如果发现有类似问题可以先从检查ssl证书开始:https://www.myssl.cn/tools/check-server-cert.html开启你的服务器,在上面网站上输入域名和端口号。如果检查的结果中有任何证书缺失,那么说明是我说...原创 2018-08-21 16:25:00 · 6519 阅读 · 1 评论 -
微信小程序用户管理
用户唯一码获取用户管理的两个必要条件是:能够获得使用用户的唯一id,小程序里面这个id是openid。 用户的每次数据上传都把这个唯一id附带上传,这样服务器就知道是谁的操作通过wx.login函数,可以在网络结果回调函数中获得一个临时的用户的码。这个码再传到服务端,用这个码使用http的api请求真正的用户唯一码openid。每个用户的openid不会发生变化,可以长期存储。但是...原创 2018-08-14 10:19:05 · 10168 阅读 · 3 评论 -
如何使用objective c上传文件,用flask接收文件
flask是python中类似于php的服务器组件。ios提供了NSMutableArray和 dataTaskWithRequest用来使用http上传数据。但是flask只支持基于表单格式的数据。表单格式是在原始http数据上,提供了额为的信息。如果直接使用ios的api把数据发送给flask,是收不到信息的,也就是request对象里的files为空。五花八门的发送方式(web,...原创 2018-11-17 15:43:27 · 580 阅读 · 0 评论 -
git中使用另外的git后(submodule),想要把另外的git包含道父git的做法
问题描述:git的一般使用中,如果根目录有了一个.git文件。子目录中就不会再出现.git文件。如果出现了的话,说明这个子目录属于另外一个git库,所以不受根git的管理。如果想要把子git并入根git管理的话。需要下面的操作。删除子git文件夹 git rm -r 子git文件夹 git commit 根git文件夹 把子git文件夹复制回原来位置 删除子git文件夹中的.git...原创 2018-12-27 15:57:19 · 904 阅读 · 0 评论 -
因为stl ABI不一致造成的链接错误
有这样一种现象,本来所有连接都好好的,通过cmake然后多连接一个库后,本来找得到的函数也出现大量的undefined symbol错误。可能的原因是在新的库的findPackdge中设置了GLIBCXX_USE_CXX11_ABI这个选项。先解释ABI是什么。ABI叫做程序二进制接口,就是编译出来的bianry文件之间的调用的规则。比如低版本的gcc编译出来的print函数,想要在高版本...原创 2019-08-20 12:14:32 · 603 阅读 · 0 评论 -
公交车在线支付和跟踪功能策划
功能:查看每个公交车的位置,以及到每个站的预计时间 查看公交车当前的空座数量 查看公交车在不同站不同时刻的空座数量统计,方便安排空闲的时间出行 上车扫描二维码支付,较少排队上车时间 司机通过安装在pad上的APP查看乘客支付情况,减少司机监督乘客支付的负担 公交车公司可以通过统计的空位数的变化规律,调整出车的计划系统开发成本:公交车上需要安装GPS,从而可以实时监控每辆公交车的...原创 2019-05-09 20:28:39 · 456 阅读 · 0 评论 -
c++链接过程中undefined reference to 错误的原因
如果一个symbol没有被定义,在编译过程中就会报找不到定义的错误 如果是头文件找不到,也会直接报出头文件不存在的错误 有些时候编译出来的lib被移走了,运行的时候会直接报lib不存在的错误,或者编译的时候报找不到lib 如果链接中出现undefined reference to,有两种可能: 一个是忘记设置某个symbol的lib 自己编译的lib多是因为这个问题,只设置了头文件,没...原创 2019-02-16 20:02:03 · 14829 阅读 · 2 评论 -
使用soundflower解决Mac中OBS没有电脑声音的问题
OBS是在windows,mac,linux上面通用的直播软件,功能也能强大,也非常易用。但是在mac上面使用的化,没有办法捕捉电脑发出的声音。现象是在选择输出音频设备的时候,发现列表为空。OBS可以捕获输入音频设备的数据(来之麦克风的数据),也可以捕获输出音频设备的数据(电脑输出到耳机或者喇叭的数据)。如果我们想要把电脑里面音乐播放器发出的声音放到直播中,自然要捕获输出设备的数据。但...原创 2019-02-09 11:01:56 · 30162 阅读 · 0 评论 -
智能指针和普通指针混用注意之一
经常在调用三方接口的时候,难免不混用智能指针和普通指针。混用主要分为两类型:把已有的普通指针交给智能指针管理int* p_chamo;std::shared_ptr<int> p;p.reset(p_chamo)把已有智能指针管理的地址拿出来给其他程序用std::shared_ptr<int> p=std::make_shared<int...原创 2019-01-05 11:33:30 · 4114 阅读 · 0 评论 -
ffmpeg常用操作举例
https://ffmpeg.org/ffmpeg.html sudo apt-get install ffmpeg 微信只允许上传20MB的视频,为了使用微信方便传送我们的视觉数据,可以有如下几种压缩方法: 压缩比特率 截取部分视频片段 截取部分视频画面 快进视频 转化为微信支持的格式: ffmpeg -i input.mp4 -vf scale=-1:720 -b 1...原创 2019-01-10 15:42:49 · 561 阅读 · 0 评论 -
微信小程序个人服务器搭建
个人做微信小程序必须考虑到工作量和资金的问题,这篇文章总结出一套针对个人切实可行的方案。本文章重点在抛砖引玉,而不是对各种细节的详细描述。读者可以根据文中提到的各种关键词,查阅相关资料方案包括在Ubuntu上面使用flask建立web服务器 使用花生壳内网穿透 使用花生壳提供的带备案信息的域名 使用腾讯云提供的免费https证书 微信小程序网络连接的注意事项在Ubuntu上面使用...原创 2018-08-14 09:47:05 · 39700 阅读 · 5 评论