<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u013040887的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013040887</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013040887]]></copyright><item><title><![CDATA[KEIL-51单片机实现自定义bootloader，用于程序更新 研究]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/107427323</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/107427323</guid><author>u013040887</author><pubDate>Sat, 18 Jul 2020 12:49:44 +0800</pubDate><description><![CDATA[本文原创作者: 少占鱼大神
			关于8051的bootloader实现方式
			一， 基本硬件需求
			要实现IAP功能，需要51单片机可以在程序里修改代码空间的Flash，或者至少可以修改用户程序区的Flash，新出的51大部分都能满足这个要求
			二，空间划分
			一般bootloader位于单片机代码空间的起始地址，用户程序在后面。这个需要根据实际的需求来决定，bootloader功能简单，就少占用一些，bootloader功能复杂的就多占用一些。除此之外，一般还要根据Flash的页为界线划]]></description><category></category></item><item><title><![CDATA[axios FormData 传输的正确方式]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/107349558</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/107349558</guid><author>u013040887</author><pubDate>Tue, 14 Jul 2020 22:48:59 +0800</pubDate><description><![CDATA[axios以FormData转输数据时，要以FromData()建设成对应格式数据，并且转输的时候，要qs.stringify格式化。需要用到qs模块


 const url = `/server/api/code/`;
      var formData = new FormData(); // 需要以这种方式建FormData数据格式
     
      formData.append('code', this.props.code);
      axios.post(
        ur.]]></description><category></category></item><item><title><![CDATA[node 调用c++方法解析共用体]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/107040814</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/107040814</guid><author>u013040887</author><pubDate>Tue, 30 Jun 2020 13:43:30 +0800</pubDate><description><![CDATA[// addon.cc
#include &lt;node.h&gt;



namespace demo {
using v8::Exception;
using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Number;
using v8::Object;
using v8::String;
using v8::Value;

union data 
{
 float a;
 unsigned char.]]></description><category></category></item><item><title><![CDATA[简单上手nodejs调用c++(c++和js的混合编程)]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/107033783</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/107033783</guid><author>u013040887</author><pubDate>Tue, 30 Jun 2020 09:28:50 +0800</pubDate><description><![CDATA[因为项目的原因，最近经常使用node.js搭RESTful接口。
性能还是很不错啦，感觉比Spring Boot之类的要快。而且在不错的性能之外，只要程序结构组织好，别让太多的回调把程序结构搞乱，整体开发效率比Java快的就太多了。

如果想进一步提高效率，使用c++来优化部分模块是不错的选择。尤其可贵的是nodejs对于同c++的混合编程支持的很好，个人感觉跟写Python的扩展模块处于同样的易用水平。

我们从Hello World开始：
首先要有一个空白的工作目录，在其中建立一个node包管理文件pa]]></description><category></category></item><item><title><![CDATA[electron-quick-start-ble 蓝牙]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106985434</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106985434</guid><author>u013040887</author><pubDate>Sat, 27 Jun 2020 17:32:41 +0800</pubDate><description><![CDATA[electron-quick-start-ble 蓝牙
]]></description><category></category></item><item><title><![CDATA[js收集页面加载性能数据]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106972108</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106972108</guid><author>u013040887</author><pubDate>Fri, 26 Jun 2020 17:12:31 +0800</pubDate><description><![CDATA[window.performance

[performance.timing]:


navigationStart: 表示从上一个文档卸载结束时的 unix 时间戳，如果没有上一个文档，这个值将和 fetchStart 相等。
unloadEventStart: 表示前一个网页（与当前页面同域）unload 的时间戳，如果无前一个网页 unload 或者前一个网页与当前页面不同域，则值为 0。
unloadEventEnd: 返回前一个页面 unload 时间绑定的回掉函数执行完毕的时间戳。
redir]]></description><category></category></item><item><title><![CDATA[React轻提示组件]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106923623</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106923623</guid><author>u013040887</author><pubDate>Tue, 23 Jun 2020 14:58:06 +0800</pubDate><description><![CDATA[https://github.com/jossmac/react-toast-notifications






]]></description><category></category></item><item><title><![CDATA[快速上手RaphaelJS]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106815384</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106815384</guid><author>u013040887</author><pubDate>Wed, 17 Jun 2020 17:57:35 +0800</pubDate><description><![CDATA[Raphael Javascript是一个 Javascript的矢量库。

它可以处理SVG、VML格式的矢量图，它使用SVG W3C推荐标准和VML作为创建图形的基础，你可以用Javascript 操作Dom 很容易的创建出复杂的柱状图、走势图、曲线图等各种图表，可以画图，可以画出任意复杂度的图像，以及图表或图像裁剪和旋转等复杂操作。



什么是RaphaelJS?

RaphaelJS是一个矢量绘图包，用来在浏览器中绘制图形。

在这部分，我们将了解到RaphaelJS是什么、它与其它同类的绘图包.]]></description><category></category></item><item><title><![CDATA[block动画仿真方案]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106691299</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106691299</guid><author>u013040887</author><pubDate>Thu, 11 Jun 2020 16:24:07 +0800</pubDate><description><![CDATA[我在做什么
我正在使用Blockly构建一个海龟图形应用程序。用户可以从块构建代码，然后Blockly引擎生成JS代码，该代码将绘制到画布上
我的问题是什么
Blockly引擎生成JS代码，但将其作为字符串返回，我必须eval()绘制到画布。
我可以更改块的代码以生成不同的输出，但保持它尽可能简单非常重要，因为用户可以读取块输入后面的实际代码。所以我不想搞砸它。
我想做什么
我可以完全控制原子操作（go，turn等），所以我想在函数的开头插入一小段代码，这会延迟执行功能的其余部分。类似的东西：
functi]]></description><category></category></item><item><title><![CDATA[electron 蓝牙通信功能 BLE  带案例代码]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106517873</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106517873</guid><author>u013040887</author><pubDate>Wed, 03 Jun 2020 10:39:46 +0800</pubDate><description><![CDATA[依赖安装

noble 在 Linux 和 MacOS 上的安装还是比较简单的，所以可以参考noble/github上的介绍就可以了。以下着重演示以下 Window10 下的依赖安装和驱动替换。

首先，我们需要安装的是 node-gyp / github。
在 WIndow 下安装，需要先使用管理员权限打开 powershell 或者 CMD命令行工具，这里推荐使用 powershell。打开后，输入以下命令：



npm install --global --production windows...]]></description><category></category></item><item><title><![CDATA[python合并大量ts文件成mp4格式]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/106046933</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/106046933</guid><author>u013040887</author><pubDate>Mon, 11 May 2020 09:09:39 +0800</pubDate><description><![CDATA[import os
#exec_str = r'copy /b ts/c9645620628078.ts+ts/c9645620628079.ts ts/1.ts'
#os.system(exec_str)
f = open('index.m3u8', 'r', encoding='utf-8')
text_list = f.readlines()
files = []
for i in text_list:
  if i.find('#EX')==-1:
    files.appen...]]></description><category></category></item><item><title><![CDATA[react-native 本地 html并且同时 引用css与js文件的方式 相互通信]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103313909</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103313909</guid><author>u013040887</author><pubDate>Fri, 29 Nov 2019 16:48:20 +0800</pubDate><description><![CDATA[想要借助`webview`动态的渲染`html`代码,但是我html中需要用到的一些`css`或者`js`我该如何加载呢？全部写在html中?这好像也可以,但是他呀的,这样样式这么多，在加上`js`,这代码是不是太多了？下面我们来看下如何在`RN`中加载静态资源吧！




我这里的只针对`Android`平台,至于`ios`的我还没有研究过.



1.第一步先打开android/app/s...]]></description><category></category></item><item><title><![CDATA[react-ace 的使用，代码提示与高亮并且添加自定义补全代码]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103310440</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103310440</guid><author>u013040887</author><pubDate>Fri, 29 Nov 2019 14:42:56 +0800</pubDate><description><![CDATA[import AceEditor from 'react-ace'; // 引用实例
import 'brace/mode/twilight'; // 引用自定义主题
import 'brace/mode/c_cpp'; // 定义为c_cpp代码高亮
import'brace/ext/language_tools'; // 增加代码提示


// 增加需要自定义的代码提示
const com...]]></description><category></category></item><item><title><![CDATA[react Ace 编辑器，快捷键、代码提示]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103264005</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103264005</guid><author>u013040887</author><pubDate>Tue, 26 Nov 2019 19:59:18 +0800</pubDate><description><![CDATA[1.安装命令


npm install react-ace

2.导入相关配置


import AceEditor from 'react-ace';
//language_tools语言工具，代码提示工具
import 'brace/ext/language_tools';
//searchbox过滤框，快捷键ctrl+F
import 'brace/ext/searchbox';
//一...]]></description><category></category></item><item><title><![CDATA[electron程序，如何在主进程远程页面中注入js及css？]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103256381</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103256381</guid><author>u013040887</author><pubDate>Tue, 26 Nov 2019 14:56:08 +0800</pubDate><description><![CDATA[代码放置于主进程，针对某个渲染进程进行设置，注意：默认情况下，第二个渲染进程窗口是不会被注入这些代码的。所以，请仔细斟酌代码注入的时机。

代码注入的时机应该是原版页面加载完毕后。所以，对于渲染进程窗口mainWindow，监控了一个did-finish-load事件。本文的代码中，mainWindow就是被操作的渲染进程窗口对象。这个是本文的代码基础。


//const fs = requir...]]></description><category></category></item><item><title><![CDATA[Nodejs进阶：如何玩转子进程（child_process）]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103088108</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103088108</guid><author>u013040887</author><pubDate>Fri, 15 Nov 2019 16:43:40 +0800</pubDate><description><![CDATA[在node中，child_process这个模块非常重要。掌握了它，等于在node的世界开启了一扇新的大门。熟悉shell脚本的同学，可以用它来完成很多有意思的事情，比如文件压缩、增量部署等，感兴趣的同学，看文本文后可以尝试下。

举个简单的例子：


const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-l...]]></description><category></category></item><item><title><![CDATA[JS uint8Array转String 中文乱码的问题]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103077018</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103077018</guid><author>u013040887</author><pubDate>Thu, 14 Nov 2019 23:28:49 +0800</pubDate><description><![CDATA[/* utf.js - UTF-8 &lt;=&gt; UTF-16 convertion
*
* Copyright (C) 1999 Masanao Izumo &lt;iz@onicos.co.jp&gt;
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free.  You can redistribute it...]]></description><category></category></item><item><title><![CDATA[nodejs中 require 方法的加载规则]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103062614</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103062614</guid><author>u013040887</author><pubDate>Thu, 14 Nov 2019 10:20:36 +0800</pubDate><description><![CDATA[require加载的顺序



1.优先从缓存中加载

2.从核心模块中加载（核心模块己编译成二进制文件，所以按名字加载）

3.从路径中加载文件

4.第三方模块



一、优先从缓存中加载



二、核心模块



核心模块的本质也是文件，核心模块文件已经被编译到了二进制文件中了，我们只需要按照名字来加载就可以了。



三、路径形式的模块



我们说的路径形式的模块，其实...]]></description><category></category></item><item><title><![CDATA[在 umijs （Ant Design）项目中使用 Monaco Editor 的配置 高亮配置]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/103058664</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/103058664</guid><author>u013040887</author><pubDate>Wed, 13 Nov 2019 22:23:07 +0800</pubDate><description><![CDATA[在 umijs 项目中使用 Monaco Editor 的配置

安装相关包yarn add monaco-editor、yarn add monaco-editor-webpack-plugin、yarn add react-monaco-editor
	添加chainWebpack配置
	
import MonacoWebpackPlugin from 'monaco-editor-web...]]></description><category></category></item><item><title><![CDATA[Scratch3.0 动画播放支持SB3.0文件单独运行]]></title><link>https://blog.youkuaiyun.com/u013040887/article/details/102952172</link><guid>https://blog.youkuaiyun.com/u013040887/article/details/102952172</guid><author>u013040887</author><pubDate>Thu, 07 Nov 2019 11:58:31 +0800</pubDate><description><![CDATA[git clone https://github.com/LLK/scratch-render.git
cd scratch-render
npm install # 使用cnpm可能会安装失败

git下载慢的，可以考虑一下：加速下载


http://tool.mkblog.cn/github/

其实Scratch开发团队已经实现了这个功能，只是我们要找到接口来调用。打开目录下的/test...]]></description><category></category></item></channel></rss>