<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dyingstraw的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dyingstraw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dyingstraw]]></copyright><item><title><![CDATA[obsidian标题自动添加序号]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/123218854</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/123218854</guid><author>dyingstraw</author><pubDate>Tue, 01 Mar 2022 23:17:34 +0800</pubDate><description><![CDATA[虽然可以用CSS，但还是想用Python实现
初步想法：
python分析出标题级别，加上数字标号
str="""#       
##       
###      
###   
##
#
##
### 
#### 
####    
#
##
#######
###"""




lines = str.split("\n")
stepUp = 0
titleNum = [0,0,0,0,0,0,0,0,0,0,0,0,0]
lastLevel = 0
for line in lines:
    ]]></description><category></category></item><item><title><![CDATA[基于Home Assistant 和ESP8266 arduino的实时室温检测]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/105909377</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/105909377</guid><author>dyingstraw</author><pubDate>Sun, 03 May 2020 22:44:39 +0800</pubDate><description><![CDATA[前言

最近是真的热！

写完论文宅在家，想要做点什么缓解一些焦虑的心情。从之前大学寄回家至今没有拆开过的元件箱中找到了一个ESP8266 的arduino D1的板子以及一个s17021温湿度传感器，遂萌发做一个实时记录自己卧室温湿度的小作品，来记录家里是究竟多热~。

实验准备

ESP8266 arduino D1

s17021温湿度传感器

ubuntu一台（树莓派低功耗更好）

步骤
...]]></description><category></category></item><item><title><![CDATA[一个linux主机与手机或者其他电脑共享文件的小工具开发]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/105740294</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/105740294</guid><author>dyingstraw</author><pubDate>Fri, 24 Apr 2020 21:54:59 +0800</pubDate><description><![CDATA[思路：

再linux电脑是运行一个http server，然后需要传输文件的设备去访问这个http服务。

效果：

首先再linux端运行python脚本--根据提示选择一个你的内网IP，如果没有提示就不要管了。之后生成了一个二维码，手机扫码就可以访问服务，电脑端没办法扫码可以直接访问二维码下面的地址。可以直接打开pdf，其他的文件类型也可以直接下载，非常nice

服务端



手机端访问...]]></description><category></category></item><item><title><![CDATA[小爱同学控制单片机或者其它硬件的思路记录]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/104749612</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/104749612</guid><author>dyingstraw</author><pubDate>Mon, 09 Mar 2020 13:12:18 +0800</pubDate><description><![CDATA[由于小米只能家具生态的协议是不开放的，但是有很多同学想使用小爱同学的语音功能去控制单片机、树莓派或者其他DIY硬件。因此有个下面这个构想。初步验证可行。

实验具备条件

DIY设备联网（直接或者间接）

小米手机（小爱同学，其他手机理论上应该也乐意的，只要支持语音打开特定动作）



设备端步骤

新建tcp服务器-监听服务器消息-解析服务器消息-根据消息的内容触发相应的动作



手机端步...]]></description><category></category></item><item><title><![CDATA[adb授予安卓手机应用权限]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/103732551</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/103732551</guid><author>dyingstraw</author><pubDate>Fri, 27 Dec 2019 15:12:11 +0800</pubDate><description><![CDATA[参考连接：

https://greenify.uservoice.com/knowledgebase/articles/749142-how-to-grant-permissions-required-by-some-features

https://stackoverflow.com/questions/52079343/how-can-i-use-adb-to-grant-permissi...]]></description><category></category></item><item><title><![CDATA[Mnist手写数字自编码+分类实验]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/103390448</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/103390448</guid><author>dyingstraw</author><pubDate>Wed, 04 Dec 2019 17:15:57 +0800</pubDate><description><![CDATA[import torch
import torch.nn as nn
import torch.nn.functional as F
import random
import numpy as np
import matplotlib.pyplot as plt
import torchvision
class AutoEncodeNet(nn.Module):

    def __init_...]]></description><category></category></item><item><title><![CDATA[Android在子线程更新UI主线程的6种方法]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/103308046</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/103308046</guid><author>dyingstraw</author><pubDate>Fri, 29 Nov 2019 11:46:30 +0800</pubDate><description><![CDATA[效果描述：

点击按钮后，按钮切换为不可点击状态，6个任务依次执行（线程池实现），待6个任务全部执行完成之后，按钮状态切换可用，可在此执行前述操作。






public class UpgradeUI implements Runnable {
    // 调用任务进度
    protected void onProgress(int value){

    }
    // 任务结...]]></description><category></category></item><item><title><![CDATA[20元制作NodeMCU+超声波模块+Python开门检测神器]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/103285785</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/103285785</guid><author>dyingstraw</author><pubDate>Thu, 28 Nov 2019 00:07:17 +0800</pubDate><description><![CDATA[目录



前言

效果图

硬软件条件：

单片机程序

服务器端代码

结束

前言

最近出来实习，一个人住出租屋每天晚上回来总感觉屋子里面有人来过，因此像制作一个开门预警通知的小工具。

效果图













原理也很简单：单片机检测与门的距离，距离小于设定值且持续一段时间（2s），发邮件给我预警。





硬软件条件

1.NodeMCU+超声波
	2.云端服务...]]></description><category></category></item><item><title><![CDATA[（1）mask-rcnn之Demo运行（win10&ubuntu）]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/102171873</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/102171873</guid><author>dyingstraw</author><pubDate>Sat, 05 Oct 2019 21:27:27 +0800</pubDate><description><![CDATA[目录





1.依赖

2.下载源码(python3.4+)

3.下载训练模型文件，并放在主目录下面

4.运行demo

4.1 启动jupyter-notebook

4.2 打开simple/demo.ipynb，修改一下代码

5.运行demo

6.可能会出现的问题

1.依赖

安装tensorflow和keras由于版本不兼容走了不少弯路。目前可使用一下版本：


...]]></description><category></category></item><item><title><![CDATA[netty的@ChannelHandler.Sharable]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/97303124</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/97303124</guid><author>dyingstraw</author><pubDate>Thu, 25 Jul 2019 21:56:06 +0800</pubDate><description><![CDATA[一直以来，我都以为netty的channelHandler只要加上@ChannelHandler.Sharable注解，他在整个生命周期中就是以单例的形式存在了，直到今天，我想知道到底究竟是不是单例存在的。于是，有了下面的经历，不得不说，搜了好多篇博客，感觉都是照搬乱套，毫无章法可言。


需求


添加一个StatusHandler，目的为了记录同时在线的设备数量


代码


@Channe...]]></description><category></category></item><item><title><![CDATA[平滑加权负载均衡算法]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/94719864</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/94719864</guid><author>dyingstraw</author><pubDate>Fri, 05 Jul 2019 10:48:00 +0800</pubDate><description><![CDATA[算法描述


假设有 N 台服务器 S = {S0, S1, S2, …, Sn}，默认权重为 W = {W0, W1, W2, …, Wn}，当前权重为 CW = {CW0, CW1, CW2, …, CWn}。在该算法中有两个权重，默认权重表示服务器的原始权重，当前权重表示每次访问后重新计算的权重，当前权重的出初始值为默认权重值，当前权重值最大的服务器为 maxWeightServer，所有默...]]></description><category></category></item><item><title><![CDATA[Java注解学习与应用]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/94446005</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/94446005</guid><author>dyingstraw</author><pubDate>Tue, 02 Jul 2019 15:23:20 +0800</pubDate><description><![CDATA[http://note.youdao.com/noteshare?id=89c48799bdc0ae6d93084148e4d5be6d


]]></description><category></category></item><item><title><![CDATA[最近使用到的技术与坑20190630-1]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/94331588</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/94331588</guid><author>dyingstraw</author><pubDate>Sun, 30 Jun 2019 17:11:23 +0800</pubDate><description><![CDATA[1.java反射 bean2Map

本开打算使用jedishset(final String key, final Map&lt;String, String&gt; hash)把对象缓存到redis，结果遇到了下面ERR wrong number of arguments for 'hset' command的错误，导致有点无奈，既然写了，纪念一下


package util;

i...]]></description><category></category></item><item><title><![CDATA[rabbitmq安装到使用遇到的问题总结]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/93405397</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/93405397</guid><author>dyingstraw</author><pubDate>Sun, 23 Jun 2019 21:00:09 +0800</pubDate><description><![CDATA[1. 远程访问用户的创建

rqbbitmq默认的guest用户只能通过localhost访问，不管是管理面板15672还是客户端连接端口5672，一次需要创建能够外部访问的账户，网络上好多都是修改配置文件，不太方便操作。下面用命令行简单操作创建出用户。


# 创建用户，密码
sudo rabbitmqctl add_user username userpassed

#列出所有的用户
sudo...]]></description><category></category></item><item><title><![CDATA[事务学习]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/91877467</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/91877467</guid><author>dyingstraw</author><pubDate>Fri, 14 Jun 2019 09:07:04 +0800</pubDate><description><![CDATA[ACID

A：Atomicity，原子性

整个事务是一个原子操作，事务中的操作，有一个不成功，都不成功。

C：Consistency，一致性

一个事务可以封装状态改变（除非它是一个只读的）。事务必须始终保持系统处于一致的状态，不管在任何给定的时间并发事务有多少。也就是说：如果事务是并发多个，系统也必须如同串行事务一样操作。其主要特征是保护性和不变性(Preserving an Invari...]]></description><category></category></item><item><title><![CDATA[spring AOP切面小结]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/91872930</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/91872930</guid><author>dyingstraw</author><pubDate>Thu, 13 Jun 2019 17:10:59 +0800</pubDate><description><![CDATA[AOP注解说明：


@Aspect定义切面：切面由切点和增强（引介）组成(可以包含多个切点和多个增强)，它既包括了横切逻辑的定义，也包括了连接点的定义，SpringAOP就是负责实施切面的框架，它将切面所定义的横切逻辑织入到切面所指定的链接点中。
	@Pointcut定义切点：切点是一组连接点的集合。AOP通过“切点”定位特定的连接点。通过数据库查询的概念来理解切点和连接点的关系再适合不过了...]]></description><category></category></item><item><title><![CDATA[Springboot+mybatis事务回滚时报错处理。Cannot change the ExecutorType when there is an existing transaction]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/91848398</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/91848398</guid><author>dyingstraw</author><pubDate>Thu, 13 Jun 2019 13:53:08 +0800</pubDate><description><![CDATA[问题详情


org.springframework.dao.TransientDataAccessResourceException: Cannot change the ExecutorType when there is an existing transaction

	at org.mybatis.spring.SqlSessionUtils.sessionHolder(SqlSessi...]]></description><category></category></item><item><title><![CDATA[ByteBuffer 学习]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/89359735</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/89359735</guid><author>dyingstraw</author><pubDate>Wed, 17 Apr 2019 17:14:52 +0800</pubDate><description><![CDATA[ByteBuffer
实现类

堆外内存的方式 &gt; DirectByteBuffer

public static ByteBuffer allocateDirect(int capacity) {
        return new DirectByteBuffer(capacity);
    }



堆内内存的方式 &gt; HeapByteBuffer

public stati...]]></description><category></category></item><item><title><![CDATA[java中的5种常见线程池]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/89311037</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/89311037</guid><author>dyingstraw</author><pubDate>Mon, 15 Apr 2019 14:13:53 +0800</pubDate><description><![CDATA[一、线程池简介

周所周知，Java创建一个新线程的成本是比较高的。因此在面临大量的多线程任务时，采用线程池几乎成了惯用的做法，线程池其实也是设计模式中享元模式思想的一种应用。

一般线程池刚启动时会新建大量的（跟传入参数有关）空闲线程，程序将一个Runnable或者Callable对象传给线程池时，线程池会调用空闲线程执行他们的run()方法或者call()方法。执行完成后...]]></description><category></category></item><item><title><![CDATA[线程池的理解2]]></title><link>https://blog.youkuaiyun.com/dyingstraw/article/details/89245608</link><guid>https://blog.youkuaiyun.com/dyingstraw/article/details/89245608</guid><author>dyingstraw</author><pubDate>Fri, 12 Apr 2019 17:25:41 +0800</pubDate><description><![CDATA[一、线程池的一些流程

线程池的主要处理流程

使用者   提交任务

            |

条件    1.核心池已满？  ==是==&gt;  2.队列已满？ ==是==&gt; 3.线程池已满？ ==是==&gt; 按照策略执行不能处理的任务

          |否          ...]]></description><category></category></item></channel></rss>