Frossky 发布的文章

时尚

the black tape project 黑胶带项目,用胶带做衣服的时尚团体

医学

Gunther von Hagens 德国解剖学家,善于做动物和人体肌肉塑化

艺术

被剥皮的马西亚斯 提香作品,讲述的是太阳神阿波罗和森林之神玛西亚斯(Marsyas)的故事。Marsyas捡起了雅典娜丢弃的笛子,然后要和阿波罗比演奏技艺,赢了的人可以任意处置对方。阿波罗用七弦琴只能打个平手,然后阿波罗居然出老千赢了对方,为了给对方点儿颜色看看就把Marsyas挂在树上把皮给剥了。

ESP32C3 Blufi流程介绍
ESP32C3 AT蓝牙命令
腾讯Qcloud AT指令集0
腾讯BLUFI蓝牙辅助配网文档
ESP32 AT指令设置可发现BLE设备名 && 与手机进行ble数据透传

BLUFI联网方式(动态配网)

  1. 先应该配置三元组AT+TCDEVINFOSET=<tls_mode>,<product_id>,<device_name>,<device_secret>[,<product_region>]
  2. AT+BLUFI命令后,可以使用乐鑫官方的BLUFI APP或小程序联网
  3. 连接后再使用动态注册命令AT+TCDEVREG
  4. 使用MQTT连接命令连接即可AT+TCMQTTCONN=<tlsmode>,<cmdtimeout>,<keepalive>,<clean_session>,<reconnect>

BLUFI APP中看不到设备名字怎么办

AT+BLEINIT=2 //BLE初始化,将模块设为server端。
AT+BLENAME="AiThinker" //设置BLENEME名并用转换器获得它的16进制数。
AT+BLEADVDATA="0201060A0941695468696E6B6572" //广播设备名称
AT+BLEADVSTART //开始广播

广播包16进制格式

由多组的不定长数据组成, 每一组的格式如下

Length AD Type AD Data
广播数据长度 广播数据类型 广播数据内容

长度是AD Type + Ad Data的长度, 因为AD Type总是1, 所以长度就是len(ad_data)+1

AD类型如下

AD Type 含义 备注
0x01 广播模式
0x02 非完整的 16 bit UUID 列表
0x03 完整的 16 bit UUID 列表
0x04 非完整的 32 bit UUID 列表
0x05 完整的 32 bit UUID 列表
0x06 非完整的 128 bit UUID 列表
0x07 完整的 128 bit UUID 列表
0x08 缩写的设备名称
0x09 完整的设备名称
0x0A 广播包的信号强度
0x0B
0x0C
0x0D
0x0E
0x0F
0x10
0x11 带外安全管理
0x12 (Slave)连接间隔范围
0x13
0x14 16 bit UUID 列表
0x15 128 bit UUID 列表
0x16 16 bit UUID Service 前 2 字节是 UUID,后面是 Service 的数据
0x17 公开目标地址
0x18 随机目标地址
0x19 Appearance(外观)
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20 32 bit UUID Service 前 4 字节是 UUID,后面是 Service 的数据
0x21 128 bit UUID Service 前 16 字节是 UUID,后面是 Service 的数据
~~~
0x29 PB-ADV
0x2A Mesh Message
0x2B Mesh Beacon
~~~
0xFF 厂商自定义数据

对照上文的蓝牙广播数据类型定义的描述,可知
02 01 06 字段设置广播模式
0A 09 41695468696E6B6572 字段表示:
0A: 此字段数据长度为10
09 :完整的设备名称
41695468696E6B6572:设备名称AiThinker的十六进制表示

1. 涂鸦与天猫精灵

如何使用天猫精灵控制设备?
逻辑解释:
1、需要下载、注册、登录涂鸦APP或者涂鸦OEM/白牌APP天猫精灵APP
2、在天猫精灵APP中通过技能广场搜索涂鸦智能,完成涂鸦智能的账户绑定。如果手机中装了个多个涂鸦智能APP(包含OEM的),这一步会跳出来选择。
本质上来说,是涂鸦智能账户授权给天猫精灵使用。授权后,涂鸦将其账户下的设备同步给天猫精灵。天猫精灵的命令通过双方的对接传输给设备进行控制。
事实上,上面的第二步还可以搜索智能生活或者其他OEM厂家产品的名称,都是以涂鸦的名义在天猫精灵的技能中注册的。

开发前,需要开通语音方案接入天猫精灵接入服务。
目前支持的有亚马逊Alexa、谷歌 Assistant、Yandex Alice、小米小爱、百度小度、小智管家(涂鸦)。
其他的语音服务有一些要付费支持,(页面)[https://www.tuya.com/vas/?from=smart],新的还有SmartThings(三星)、腾讯云小微、腾讯云叮当、京东叮咚、GiGA Genie(韩国KT)
这个页面又提供了一些其他的第三方语音平台,新的包括苹果Siri。

乐鑫官方的ESP32C3文档中提到了ESP32-C3-QCLOUD_AT_BIN, 但是在文档的腾讯云 IoT AT 命令和固件页面中却没有AT固件。这儿参照从github下载临时固件的方法说明下载的方法。

  1. 登录github。不登录不能下载。
  2. 进入esp-at项目,点击Actions,在All workflows下点击branch,选择一个可靠的branch, 如release/2.4.0.0, 再点击一个workflow,如Merge branch 'bugfix/espat-1117/canno..., 也可点击这儿直接进入。
  3. 拉到最下边,点击esp32c3-qcloud下载。

1

弟弟回家,看见姐姐正在画画。
姐姐的画好好看。
姐姐画了一个圆形,还画了一个正方形,还画了四个长方形。
姐姐在圆形上画了一个嘴巴,两个眼睛,两个眉毛,两个耳朵,一个鼻子,一头头发。
姐姐在正方形上画了衣服。在长方形上画了手和脚。
姐姐画了一个小人儿。小人儿是弟弟!
姐姐把画给弟弟,弟弟好开心:谢谢姐姐!


2

妈妈爱吃好吃的。妈妈想吃串串香。
妈妈去吃串串香,问姐姐和弟弟:你们要不要一起去?
姐姐和弟弟:要!要!我们要去!
去哪里吃?去民乐。
吃什么串串香?有牛肚、有羊腿、有鱼头、有玉米、有花生、有黄瓜。
还有水果吃。有什么水果?有木瓜、有山竹……
还有面包吃。妈妈、姐姐、弟弟高高兴兴出门去,吃串串香了!


3

弟弟在看书。姐姐问:你在看什么书?
弟弟在看故事书。故事书里面讲了什么故事?
有一只小鸟,有两个大耳朵。它飞着飞着,看到了太阳公公。
太阳公公不高兴,太阳公公害怕闪电。闪电要是来了,
风会吹来很多黑色的云朵,天上会下很大很大的雨,田地里会有很多很多的水,禾苗不要太多的水,禾苗会长不出米来。
太阳公公害怕,就会不见了。
小鸟去找闪电,和闪电讲,让闪电不要来。闪电说:禾苗也要水,水太多了不好,水没有也不好。
小鸟说:闪电闪电,太阳公公害怕你,禾苗不要太多水。闪电想了想说:那么下一点点雨,好不好?小鸟说好吧。
小鸟去找太阳公公,说:太阳公公,你不要害怕,闪电下一点点雨就好了,禾苗也要喝一点水。
太阳公公说,好吧,谢谢你,小鸟!

C51中定义了sbit和bit, 这俩货挺糟心的.
sbit是寄存器位, 只能作为左值, 不能放在右边, 也就意味着不能作为函数形参传入, 不能作为数组的成员, 从此彻底和循环操作/公共代码抽取绝缘.
bit表现得到是像个正常变量, 可以做右值, 可以作为函数形参, 可以作为返回值, 可就是不能定义数组, 一定义就报错, 也就无缘数组的循环操作了.

原创:

零零四九双全有
蓝闪色显照谱红

指标依次是蓝光/闪烁/色温/显指/照度/光谱/红光
达到目标依次是RG0/0闪烁/夜间不高于4000K/Ra不低于95/双A(AA)级照度/全光谱/有红光成分

Bilibili MV

前半段MV毫无疑问是对抗种族主义、无论国籍肤色、期待世界大同的。然而后半段大多数人看不明白,包括我20年前第一次看的时候也没看懂。这儿结合一些资料和自己的理解,解读从黑豹出现开始的后半段。
6:34 黑豹出现。黑豹党(The Black Panthers)一度在美国被当做是恐怖组织,他们确实好战激进,然而他们在清除社区毒品和犯罪中取得了很大成就,最后却被CIA等组织打击。
6:37 黑豹向门口的乔治华盛顿雕像怒吼一声表达不满。乔治华盛顿是美国首任总统,却支持奴隶制,在自己的种植园蓄奴,还和一个女奴隶生了个娃。
6:43 黑豹走下楼梯。隐喻潜入社会表层以下,揭露和防抗其黑暗面。
7:00 忽然开启聚光灯,杰克逊开始跳踢踏舞。聚光灯隐喻舞台,踢踏舞起源于黑人,又被白人主义者当做是下贱的舞蹈,甚至在表演中白人涂成黑脸(即充满种族歧视的黑脸喜剧)跳踢踏舞、扮演丑角逗乐观众。忽然将黑人置于舞台上踢踏舞,是白人强加于黑人、以种族歧视娱乐白人自己的丑恶行径。
7:18 一只猫跳出来,杰克逊看了一眼就走开了。猫豹同类,前者温顺,后者狂野。隐喻不去做黑暗体制下温顺的猫咪,而是要做一只豹子反抗黑暗压迫。
7:26 杰克逊来到街道上要跳自己的舞蹈。这个街道显然是在下层人聚集的贫民窟。然而狂风大作,各种垃圾吹过来,还有一张报纸死死贴在脚下。隐喻反抗将要开始之时,各种黑暗的打击带着下作的消息扑面而来,还死死缠着你不放。然而杰克逊毫不动摇的眼神、以及随性、坚硬、畅快的舞蹈,寓意反抗白人的禁锢和嘲笑,表达黑人自己的反抗诉求。
8:40 白色3K党标志、希特勒不死(Hitler Lives)、纳粹万字标志、黑人滚回家去、不要外国移民(No More Wetbacks)……等等都被愤怒的杰克逊暴力打碎。3K党(Ku Klux Klan)是典型的白人至上主义,原称白人种族集会。希特勒迫害犹太种族也是种族主义的代表,可恨的是现在仍有人信奉。WetBacks(湿背人)原指的是墨西哥移民,他们从墨西哥泅渡美国,因此背上都是湿的,后来也泛指外国非法移民。
9:12 杰克逊标志性的捂裆动作伴随咆哮,这儿很明显一个特写并且手指缓慢向下滑动。然后他掏出方向盘砸了3K Rules(白人至上规则)。这一段舞蹈裆部拉链没拉上。到 9:25 才一下拉起来。特别直白地隐喻美国名句Fxxk you up(淦你老木),淦完以后拉上收工。在迈克尔去世后多年,3K党至今却仍然活跃,悲哀!淦你老木啊!我觉得第二层隐喻是下层人也有不被压抑享受性自由的权利,而不只是那些上层白人所独享的。
9:44 三次重复蒸汽喷往全身的镜头。杰克逊是一直信基督的,所以我暂且采信弹幕中说的这是三次洗礼:浸洗礼、注水礼、洒水礼。然后跪地朝拜、激起圣水、撕破衣物(有献祭的意思)、撒上灯红酒绿的“皇家徽章酒店”,招牌落地。Royal Arms应该是指Royal Coat of Arms,即皇家徽章,是英国的国徽。殖民主义和奴隶贩卖也正是英国带到北美这片土地的。这儿似乎意味着铲除了种族主义的根源,也才能平静的回归本性(黑豹)离开。
另外,漫威的《黑豹》也是以黑豹作为黑人领袖象征,应该并不是巧合。

参考文章:
https://www.innermichael.com/2011/05/05/black-or-white-part-iii-panther-dance/
https://en.wikipedia.org/wiki/Tap_dance
https://en.wikipedia.org/wiki/Wetback_(slur)
https://baike.baidu.com/item/%E5%9C%A3%E6%B4%97%E7%A4%BC%E4%BB%AA/20386854?fr=aladdin
https://baike.baidu.com/item/%E8%8B%B1%E5%9B%BD%E7%9A%87%E5%AE%B6%E5%BE%BD%E7%AB%A0/5032952?fr=aladdin

情感分析

一件事情给人造成正负面情感影响, 将会促使人进行相应的行动, 因此具有预测性.
百度的API分析情感还是比较准确的.只是只能分析2048个字符, 换成汉字就只有1024个.
百度多实体情感倾向分析可以在文章中分析不同实体的情感倾向.目前邀测阶段. 可以分析娱乐/财经/体育类型, 输入包括标题和正文, 正文可达6000字节.

判断两段文本说的是「同一件事情」

某一件事情第一次出现是新闻, 第二次就不是了. 所以怎么判断第二次说的和第一次的是同一件事情?
知乎上有个问题是问这个的, 答案有这么几种:

  • 语义匹配
  • 语义角色标注(SRL, semantic role labelling)
    百度API有短文本相似度, 最大512字节. 似乎不能判断英文和中文的相似度, 不过对中文判断似乎还好. 如"笔记本"和"膝上型电脑"相似度为0.70, 与"手提电脑"相似度为0.60, 与"手机"相似度为0.36,判断还算正确.
    还有词义相似度, 最大64字节.
    但对于文章相似度分析还差得很远.

另一个思路, 从文章中抽取高频关键词, 看关键词是否有一致的.

scrapy直接用并不好用, 对于需要js渲染或动态dom的网页, scrapy爬不到.
这时候需要splash 中文文档 英文原档, 动态解析js并返回其最终渲染结果. splash实际上是一个docker image, 需要预先安装docker,然后拉取下来就可以用. 另外splash是基于lua的, 嗯, 感觉python+docker+lua,真是个缝合怪啊
介绍文章: https://www.bilibili.com/read/cv12375274
github上有一个scrapy-splash的项目.

scrapy-splash使用方法

安装scrapy, splash, scrapy-splash

pip install scrapy
docker pull scrapinghub/splash
docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash
# 在上一步命令以后,命令行界面将挂起运行docker, 此时需要新建一个命令行继续运行后面的命令
pip install scrapy-splash

新建一个scrapy项目

scrapy startproject tutorial

修改其中的settings.py文件, 简便起见, 加入下面内容即可


SPLASH_URL = 'http://127.0.0.1:8050'
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
FEED_EXPORT_ENCODING = 'UTF-8' 
SPIDER_MIDDLEWARES = {
  'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
DOWNLOADER_MIDDLEWARES = {
  'scrapy_splash.SplashCookiesMiddleware': 723,
  'scrapy_splash.SplashMiddleware': 725,
  'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}

spiders目录下, 新建一个爬虫文件, 比如爬虫名字叫df, 文件名字叫df_spider.py

import scrapy
from scrapy_splash import SplashRequest

class MySpider(scrapy.Spider):
    name = 'df'
    start_urls = ["http://example.com", "http://example.com/foo"]

    def start_requests(self):
        for url in self.start_urls:
            yield SplashRequest(url, self.parse, args={'wait': 0.5})

    def parse(self, response):
        page = '1' # response.url.split("/")[-2]
        filename = f'df-{page}.html'
        with open(filename, 'wb') as f:
            f.write(response.body)

项目目录下运行爬虫,会得到一个df-1.html的文件.

scrapy crawl df

查看这个文件是不是已经有js渲染, 如果还是没有渲染, 可增加爬虫文件中splash的wait时间, 上面设置的是0.5秒.
splash click一个元素的方式:

  assert(splash:runjs('document.querySelector(".next a[href]").click()'))

正常来说是不支持的. 看了很多文章, 这一篇https://www.helpwire.app/blog/allow-multiple-remote-desktop-connections-windows-10/是讲的最好的.
里面提到了几种方式, 一种是用github项目RDP Wrapper, 我试过好像不起作用. 另一个是修改Termsrv.dll文件, 用到hex编辑器, 这个管用.

copy c:\Windows\System32\termsrv.dll termsrv.dll_backup
takeown /F c:\Windows\System32\termsrv.dll /A
icacls c:\Windows\System32\termsrv.dll /grant Administrators:F
Net stop TermService

接着在十六进制编辑器里面搜索39 81 3C 06 00 00 0F 84 XX XX XX XX, 替换为B8 00 01 00 00 89 81 38 06 00 00 90,然后运行Net start TermService或者重启就可以了