分类 未分类 下的文章

根据企查查2021-8-18

Floor 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 总计 计数
4-7 1 1 1
8 1 2 2 1 1 1 1 1 10 8
10 1 1 1 1 1 1 1 2 2 7 2 20 11
12 1 1 1 1 1 1 4 2 12 8
14 2 1 2 1 1 7 5
16 2 1 1 2 2 1 1 10 7
18 1 2 2 7 1 1 1 15 7
20 1 2 2 5 3
22 2 2 1 1 2 3 11 6
26 2 1 3 1 1 8 5
28 1 8 1 3 3 1 1 18 7
30 1 2 3 2
总计 3 5 16 1 3 2 1 3 4 12 14 12 6 10 17 11 120
计数 3 4 6 1 2 2 1 2 2 8 7 7 5 6 7 7

知乎上的回答
tensorflow官方认证地址
考取google Tensorflow认证的流程
另一个老外的TensorFlow考试经历

Tensorflow考试准备

官方考试手册
配置考试环境
官方教程

学习教程

吴恩达课程学习笔记

AI技术文章

容量、过拟合和欠拟合
深度学习中过拟合、欠拟合问题及解决方案
熵,交叉熵,二分类交叉熵/Entropy, crossentropy, binary crossentropy
正则化
正则化消除过拟合

AI前沿思考

陈德旺对Deepmind的成功的探讨

笔记本电脑上训练

PS: 可以通过Nvidia的显卡加速, 不过在i7-8550U+MX150上测试, MX150似乎比CPU还慢.

使用MX150:

2021-08-23 11:01:05.658828: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cufft64_10.dll
2021-08-23 11:01:05.661719: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library curand64_10.dll
2021-08-23 11:01:05.667080: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cusolver64_11.dll
2021-08-23 11:01:05.672298: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cusparse64_11.dll
2021-08-23 11:01:05.681747: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudnn64_8.dll
2021-08-23 11:01:05.681986: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0
2021-08-23 11:01:05.682349: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-08-23 11:01:05.683329: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: NVIDIA GeForce MX150 computeCapability: 6.1
coreClock: 1.341GHz coreCount: 3 deviceMemorySize: 2.00GiB deviceMemoryBandwidth: 37.33GiB/s
2021-08-23 11:01:05.683674: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0
2021-08-23 11:01:06.781669: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1258] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-08-23 11:01:06.781862: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1264]      0 
2021-08-23 11:01:06.781974: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1277] 0:   N 
2021-08-23 11:01:06.784405: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1418] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1332 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce MX150, pci bus id: 0000:01:00.0, compute capability: 6.1)
2021-08-23 11:01:07.432975: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2)
Epoch 1/5
2021-08-23 11:01:07.782500: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublas64_11.dll
2021-08-23 11:01:08.920483: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublasLt64_11.dll
1875/1875 [==============================] - 6s 2ms/step - loss: 0.2974 - accuracy: 0.9155
Epoch 2/5
1875/1875 [==============================] - 5s 2ms/step - loss: 0.1430 - accuracy: 0.9569
Epoch 3/5
1875/1875 [==============================] - 5s 2ms/step - loss: 0.1057 - accuracy: 0.9685
Epoch 4/5
1875/1875 [==============================] - 5s 2ms/step - loss: 0.0867 - accuracy: 0.9742
Epoch 5/5
1875/1875 [==============================] - 5s 3ms/step - loss: 0.0741 - accuracy: 0.9764
313/313 - 1s - loss: 0.0704 - accuracy: 0.9784

Process finished with exit code 0

上面MX150的Epoch每一项在5~6秒, 而使用CPU只需要1~2秒:


D:\r\pyproj\TFproj1\venv\Scripts\python.exe D:/r/pyproj/TFproj1/main.py
2021-08-23 11:04:35.810645: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
2.5.0
2021-08-23 11:04:39.140247: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library nvcuda.dll
2021-08-23 11:04:39.791839: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1733] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: NVIDIA GeForce MX150 computeCapability: 6.1
coreClock: 1.341GHz coreCount: 3 deviceMemorySize: 2.00GiB deviceMemoryBandwidth: 37.33GiB/s
2021-08-23 11:04:39.792157: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll
2021-08-23 11:04:39.808505: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublas64_11.dll
2021-08-23 11:04:39.808676: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cublasLt64_11.dll
2021-08-23 11:04:39.813804: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cufft64_10.dll
2021-08-23 11:04:39.816603: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library curand64_10.dll
2021-08-23 11:04:39.822109: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cusolver64_11.dll
2021-08-23 11:04:39.827115: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cusparse64_11.dll
2021-08-23 11:04:39.832314: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'cudnn64_8.dll'; dlerror: cudnn64_8.dll not found
2021-08-23 11:04:39.832637: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1766] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
2021-08-23 11:04:39.833777: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-08-23 11:04:39.834660: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1258] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-08-23 11:04:39.834922: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1264]      
2021-08-23 11:04:40.297728: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:176] None of the MLIR Optimization Passes are enabled (registered 2)
Epoch 1/5
1875/1875 [==============================] - 2s 840us/step - loss: 0.2934 - accuracy: 0.9141
Epoch 2/5
1875/1875 [==============================] - 1s 764us/step - loss: 0.1421 - accuracy: 0.9578
Epoch 3/5
1875/1875 [==============================] - 2s 853us/step - loss: 0.1091 - accuracy: 0.9674
Epoch 4/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.0881 - accuracy: 0.9730
Epoch 5/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.0763 - accuracy: 0.9759
313/313 - 0s - loss: 0.0729 - accuracy: 0.9780

Process finished with exit code 0

以前认为至少两条:
1、预测准;
2、对人好;
现在得加第三条:
3、执行力强;
要强成信仰一样。

原文连接
启用方式是以管理员运行下面的bat文件:

@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause

原文来自微软官方

系统文件检查器是 Windows 10 中的一个实用工具,用于检查计算机中文件的问题。若要运行它,请按照下列步骤进行操作:

确保已安装 Windows 10 的最新更新,然后重启计算机。若要了解详细信息,请阅读更新 Windows 10。

在任务栏上的搜索框中,键入“命令提示符”,然后长按或右键单击结果列表内的“命令提示符”(桌面应用)。选择“以管理员身份运行”,然后选择“是”。

键入 DISM.exe /Online /Cleanup-image /Restorehealth(注意每个 "/" 前的空格),然后按“Enter”键。(注意:此步骤可能需要几分钟才会启动,最多可能需要 30 分钟才能完成。)

在看到显示“操作已成功完成”的消息后,键入sfc /scannow(注意“sfc”和“/”之间的空格),然后按下“Enter”。

在看到一条显示“验证 100% 完成”的消息后,键入“退出”。

这么洁身自好竟然中病毒了? 上周五下午去小米换电池, 难道是小米维修?

症状:

  1. CPU占用率极高, 一晚上没有关机电脑很烫.
  2. 不能打开任务管理器, 提示被管理员禁用.
  3. 不能打开组策略管理器 GPEDIT.msc.

腾讯电脑管家居然不报.

C盘 AutoRun.inf

我只能转为图片上传, 因为有的杀毒软件会检测这些病毒内容,并且自动断开与网站的链接.
1.png

D 盘 AutoRun.inf

2.png

jbqgma.exe

100 KB (103,140 字节)

ulvx.pif

https://r.virscan.org/ 上扫描, 结果如下:
文件名称 :ulvx.pif (本站不提供任何文件的下载服务)
文件大小 :103140 byte
文件类型 :PE32 executable (GUI) Intel 80386
MD5:b7ff0959b1568d9530a4c69661dbebc7
SHA1:1b3b4f74fd93e1786c2c195125c28aaae5d8f57b
SHA256:9e9d4b2eaf3c20b3c4397c205989970d2064a7d1a8ced715e62c955d3f8922e5
SSDEEP:1536:5ww2cwmgypHD4U4EYtBnp9LFT8RkTWvaYGTQ2fACZWoWafNRyX2QCSQeAxkR5DlY:5zDJD4CYzxLCig2aoWPmQCSQlkR5m

软件名称 引擎版本 病毒库版本 病毒库时间 扫描结果 扫描耗时
AVAST! 18.4.3895.0 18.4.3895.0 44391 Win32:Sality 11
AVG 10.0.1405 10.0.1405 44391 Win32:Sality 7
Alyac 17.7.13.1 17.7.13.1 44391 Worm.Sality.3.Gen 5
Arcabit 1 1 44391 W32.Sality.BH.Dropper2 8
Authentium 4.6.5 5.3.14 44391 没有发现病毒 1
Avira 1.9.2.0 1.9.159.0 44391 W32/Sality.AT 9
Baidu Antivirus 2.0.1.0 4.1.3.52192 44391 Virus.Win32.Sality.$Emu 1
Bitdefender 7.141118 7.141118 44391 没有发现病毒 21
ClamAV 26230 0.100.2 44390 Win.Virus.Sality-1067 1
Comodo 6.5.0.819 6.5.0.819 44329 Virus.Win32.Sality.gen@1egj5j 2
Cyren 6.0.0.4 6.0.0 44391 W32/Sality.AN.gen!Eldorado 2
Defenx 11.193.37706 15.2.0.53 44390 Trojan ( 001e7bc71 ) 1
Dr.Web 11.0.10.1810231600 11.0.10.1810231600 44391 Win32.Sector.31 12
F-PROT 4.6.2.117 6.5.1.5418 42405 没有发现病毒 1
F-Secure 2015-08-01-02 9.13 44391 Malware.W32/Sality.AT 6
Fortinet 1.000, 71.889, 71.844, 71.868 5.4.247 43773 W32/LPECrypt.A!tr 1
GData 25.29645 25.29645 44331 Win32.Sality.3 12
GridinSoft 1.0.27.118 1.0.27.118 44232 没有发现病毒 4
Hunter 1.0.1.300 1.0.1.300 44391 没有发现病毒 1
IKARUS 5.06.02 V5.05.01 44390 Virus.Win32.Sality 5
K7 11.193.37706 15.2.0.53 44390 Trojan ( 001e7bc71 ) 1
NOD32 9846 4.5.15 44391 没有发现病毒 1
Nano 1.0.134.90567 1.0.134.90567 44391 Virus.Win32.Sality.beygb 4
QQ手机 2.0.0.0 2.0.0.0 44391 没有发现病毒 1
Quickheal 14 14 44391 W32.Sality.U 3
SOPHOS 5.32 3.65.2 44391 没有发现病毒 1
Sunbelt 3.9.2671.2 3.9.2671.2 44391 Virus.Win32.Sality.at 18
Systweak 1 1 44391 没有发现病毒 1
TheHacker 6.8.0.5 6.8.0.5 44391 W32/Sality.gen 3
Vba32 5.0.0 5.0.0 44390 Virus.Win32.Sality.bakb 5
ViRobot 2.73 2.73 42034 没有发现病毒 1
VirusBuster 15.0.985.0 5.5.2.13 44391 没有发现病毒 5
Xvirus 2.0.0 2.0.0 44391 没有发现病毒 1
emsisoft 9.0.0.4799 9.0.0.4799 44391 没有发现病毒 0
nProtect 9.9.9 9.9.9 44391 Trojan.SalityStub.A 35
卡巴斯基(kavfs) 8.0.4.312 8.0.4.312 43490 Virus.Win32.Sality.gen 2
卡巴斯基(klms) 5.5.33 5.5.33 44391 Virus.Win32.Sality.gen 2
奇虎360 1.0.1 1.0.1 44391 Trojan.Win32.SalityStub.A 4
安博士V3 9.9.9 9.9.9 44391 Win32/Kashu.E 8
安天 AVL SDK 3.0 AVL SDK 3.0 44391 Virus/Win32.Sality.gen 1
新华三 1.0.114 1.0.114 44385 没有发现病毒 11
江民杀毒 16.0.100 1.0.0.0 44391 Win32/HLLP.Kuku.poly2 42
深信服 2.20200403 2.20200403 44391 Malware 3
熊猫卫士 9.05.01 9.05.01 44391 W32/Sality.AK.drp 19
瑞星 5380 5380 44391 Malware.Heuristic 1
百度杀毒 1 1 44391 没有发现病毒 1
费尔 17.47.17308 1.0.2.2108 44332 Suspicious:Trojan.Quk.a.eobw.mg 2
赛门铁克 20151230.005 1.3.0.24 42368 没有发现病毒 1
趋势科技 13.302.06 9.500-1005 44391 PE_SALITY.RL-O 1
迈克菲 8254 5400.1158 44358 W32/Sality.gen.z 5
金山毒霸 2.1 2.1 43497 Win32.Heur.KVMH004.a 8

■Heuristic/Suspicious ■Exact
注意: 就算报告发现病毒,也可能是杀软误报,请根据查毒结果自行判断

分析

应该是在最近中的病毒. 一着急没去看病毒文件的创建日期就给删掉了. 看起来似乎是U盘病毒. 除了在小米换电池, 还有就是上周去出差电脑拿出来做演示, 是不是有病毒文件通过别人的U盘传入? 就不知道了.

杀毒

使用Avast全盘杀毒, 查出来3660个病毒, 大多是Win32: SaliCode[Inf]病毒,还有一些是Wrm病毒, 感染的主要是Exe文件. 我使用everything搜索所有Exe文件并对修改时间排序, 除了Avast正在查杀修改的Exe以外, 竟然找不到其他大批量修改Exe的时间段?!

太极创客对28BYJ-48单极性步进电机的介绍很详细, 型号源于名称: 外径28毫米四相八拍式永磁减速型步进电机.B是步进,Y是永磁, J是减速,哈哈很明显是我国的电机标准.
太极创客对这个步进电机的原理的介绍讲转子有6齿而定子有8齿, 最后算下来每一步是11.25度, 很有道理但很可惜, 是错的. 按转子6齿, BCDA每次循环完毕, 转子只会转45/3×4=60度, 每一步只有45/3=15度. 但11.25度这个结论却是对的. 是因为其实转子和定子都是8齿!
这个老外的博客对28BYJ-48这个国产型号电机进行了详细的拆解分析, 反而是正确的.
定子是4个8齿的齿板组成, 分上下两组. 每组两个齿板两两相对. 每个齿板上, 齿角是360/8=45度. 从上到下四个齿板角度依次为0度, (45/4)×2度, (45/4)×1度, (45/4)×3度. 转子是8个方向的永磁铁组成. 每一步可以走45/4=11.25度. 走完一圈是360/11.25=32步. 减速比1/64, 故最外层走完一圈是32×64=2048步. 然而上下两组齿板同时通磁,可以形成半步, 这样可以做到2048×2=4096个不同角度.

原文链接: ESP8266 NodeMCU – Controling Stepper Motor with ULN2003 Driver

最主要是2个:

  1. 使用了AccelStepper库,而不是常见的Stepper库.
  2. 电机要单独供电. 文章使用9V+LM7805稳压到5V, 我就直接用直流电源了. 5.3V下电流大约0.17A.

程序如下:

#include <AccelStepper.h>           // Load the AccelStepper library

#define motorPin1  5                // IN1 pin on the ULN2003A driver to pin D1 on NodeMCU board
#define motorPin2  4                // IN2 pin on the ULN2003A driver to pin D2 on NodeMCU board
#define motorPin3  0                // IN3 pin on the ULN2003A driver to pin D3 on NodeMCU board
#define motorPin4  2                // IN4 pin on the ULN2003A driver to pin D4 on NodeMCU board

int stepsPerRevolution = 64;        // steps per revolution
int degreePerRevolution = 5.625;    // degree per revolution

/*
 * AccelStepper::FULL2WIRE (2) means: 2 wire stepper (2 pins needed). 
 * AccelStepper::FULL3WIRE (3) means: 3 wire stepper, like a harddisk motor (3 pins needed). 
 * AccelStepper::FULL4WIRE (4) means: 4 wire stepper (4 pins needed). 
 * AccelStepper::HALF3WIRE (6) means: 3 wire half stepper, like a harddisk motor (3 pins needed) 
 * AccelStepper::HALF4WIRE (8) means: 4 wire half stepper (4 pins needed) 
 *
 * AccelStepper uses AccelStepper::FULL4WIRE (4 pins needed) by default.
 */
AccelStepper stepper(AccelStepper::HALF4WIRE, motorPin1, motorPin3, motorPin2, motorPin4);

void setup() {
  Serial.begin(9600);               // initialise the serial monitor

  stepper.setMaxSpeed(1000.0);      // set the max motor speed
  stepper.setAcceleration(100.0);   // set the acceleration
  stepper.setSpeed(200);            // set the current speed

}

// Degrees of the momevement. So first to 90 degrees, then to -90 graden then to 180 degrees etc.
int steps[] = { 90, -90, 180, -180, 0 };

// The total entries in steps[]
int stepsCount = 5;

// Keeps track of the position in steps[] we are about to run
int stepsIndex = 0;

void loop() {

  // If the stepper isn't moving and doesn't have to go any distance
  if (!stepper.isRunning() && stepper.distanceToGo() == 0) {

    // Move the stepper to the degrees on the position of stepIndex in steps[]
    stepper.moveTo(degToSteps(steps[stepsIndex]));

    // Increase the index when each movement has finished
    stepsIndex++;

    // If we have executed all positions of steps[]
    if (stepsIndex > stepsCount) {

      // Set the index to 0 to restart the process
      stepsIndex = 0;
    }
  }

  stepper.run();

}

/*
 * Converts degrees to steps
 * 
 * 28BYJ-48 motor has 5.625 degrees per step
 * 360 degrees / 5.625 = 64 steps per revolution
 * 
 * Example with degToSteps(45):
 * (64 / 5.625) * 45 = 512 steps
 */
float degToSteps(float deg) {
  return (stepsPerRevolution / degreePerRevolution) * deg;
}

这个程序有个问题是, 断电后重新上电, 是以当前位置为0位的, 不能记忆上次断电的位置.

空调中的导风口使用的也是步进电机, 这儿有一篇维修文章

参考文章:
AccelStepper官方文档
28BYJ-48 Stepper Motor with ULN2003 Driver and Arduino Tutorial
ULN2003-Datasheet.pdf
ULN2003-Stepper-Motor-Driver-PCB.pdf
28byj48-Stepper-Motor-Datasheet.pdf

网易云音乐上的翻译完全失去了原词的性感, 这儿我对比重新翻译一下。

作词 : Adam Levine/Shellback/Savan Kotecha/Max Martin
作曲 : Adam Levine/Shellback/Savan Kotecha/Max Martin

我的重译 英文原词 网易云音乐翻译
你和我,关系恶化 You and I go hard, 我们的关系不断僵化
彼此看来,就快干架 at each other like we're going to war 在彼此看来都是紧张到一触即发
你和我,日益暴躁 You and I go rough, 生活变得艰难
东西互砸,把门摔爆 we keep throwing things and slamming the doors 我们唯一的交流变成了摔打东西和大力的关门隔绝彼此
你和我,两人有病 You and I get sore, 我们变得易怒、歇斯底里
功能失调,整天较劲 then dysfunctional we stuck keeping score 以互踩痛处而相互较量
你和我,已经烦透 You and I get sick, 我们的所作所为编的越来越超出常规
谁都知道,我们不能在这样! they all know that we can't do this no more 连旁人都看不下去了
但是宝贝,你又要走 But baby there you go again, 但是亲爱的你
你又要走,又让我爱上你啦 there you go again making me love you 又再一次让我爱上了你
我,不用大脑 Yeah I stopped using my head, 是的,我已经停止思考
不用大脑,一切放手 using my head let it all go 思考该怎么放手
你,贴我身上 Got you stuck on my body, 你紧紧贴着我的身体
贴我身上,像个刺青 on my body like a tattoo 就像一枚带着疼痛的印记
我,像个傻逼 And now i'm feeling stupid, 现在的我感觉自己很愚蠢
像个傻逼,爬到你背后 feeling stupid crawling back to you 悄悄溜回你身边的决定是如此的失策
所以,我胸前画个十字,不如死了算了 So I cross my heart, and I hope to die, 所以我以我的生命起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 我只会跟你再待最后一晚
我知道我说过千百万次 And I know i've said it a million times 我知道我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但这真的是我们相处的最后一夜
想和你说不 Trying to tell you no, 我试图拒绝你
但我的身体却一直说好 but my body keeps on telling you yes 可我的身体却自行接受
想和你说停 Trying to tell you stop, 我试图停下
但你的口红让我喘不过气 but your lipstick got me so out of breath 但你口红的颜色都快让我无法呼吸
我明早醒来 I'd be waking up, 我必将在清晨醒来时
大概会厌恶自己 in the morning probably hating myself 无比厌恶这样的自己
我明早醒来 And i'd be waking up, 我必将在清晨醒来时
无比满足却又负罪如坠地狱 feeling satisfied but guilty as hell 心中满是满足和如临地狱般的罪恶感
但是宝贝,你又要走 But baby there you go again, 但是亲爱的
你又要走,又让我爱上你啦 there you go again making me love you 你又再一次让我爱上了你
我,不用大脑 Yeah I stopped using my head, 是的,我已经放弃了思考权衡,
不用大脑,一切放手 using my head let it all go 我不会再放手
你,贴我身上 Got you stuck on my body, 让你紧紧的缠绕着我的身体
贴我身上,像个刺青 on my body like a tattoo 就像枚带着疼痛的印记
我,像个傻逼 And now i'm feeling stupid, 我现在感觉自己如此愚蠢
像个傻逼,爬到你背后 feeling stupid crawling back to you 我真后悔悄悄溜回你的身旁
所以,我胸前画个十字,不如死了算了 So I cross my heart, and I hope to die, 所以我以死起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 只再和你共度一晚
我知道我说过千百万次 And I know i've said it a million times 我知道我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但这真的是最后一晚
耶宝贝再给我一夜 Yeah baby give me one more night 亲爱的再让我和你多待一晚
耶宝贝再给我一夜 Yeah baby give me one more night 再给我一夜回忆
耶宝贝再给我一夜 Yeah baby give me one more night 最后一夜
但是宝贝,你又要走 But baby there you go again, 但亲爱的你
你又要走,又让我爱上你啦 there you go again making me love you 又让我再次的爱上了你
我,不用大脑 Yeah I stopped using my head, 我已经不能再维持理性
不用大脑,一切放手 using my head let it all go 不能再对你放手
你,贴我身上 Got you stuck on my body, 想让你始终呆在我的身旁
贴我身上,像个刺青 on my body like a tattoo 就像枚滴血的刺青
耶耶耶耶 Yeah, yeah, yeah, yeah 耶~
所以,我胸前画个十字 So I cross my heart, 我双手交叉
死了算了 and I hope to die, 以我的生命起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 这将会是你我共处的最后一夜
我知道我说过千百万次 And I know i've said it a million times 我知道这句话我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但我只想与你多待这最后一夜
耶宝贝再给我一夜 (yeah baby give me one more night) 最后一夜
所以,我胸前画个十字,不如死了算了 So I cross my heart, and I hope to die, 所以我用我的生命起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 这真的将是最后一夜
我知道我说过千百万次 And I know i've said it a million times 我知道这句话我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但我此刻只想与你共度今夜时光

官方的说明上不去了 http://docs.typecho.org/develop/acl, 这儿转载官方说明如下:

在Typecho中分别设置了5个等级的权限供多个用户共用一个博客。他们的权限从高到低分别是:管理员(administrator), 编辑(editor), 贡献者(contributor), 关注者(subscriber), 访问者(visitor).其权限设置与wordpress有一些相同之处,但是扩展方法不尽相同。

权限名称 管理员 编辑 贡献者 关注者 访问者
代号 administrator editor contributor subscriber visitor
等级1) 0 1 2 3 4
阅读
进入控制台 ×
修改自己的档案信息 ×
撰写文章 √2) × ×
管理文章 √3) × ×
撰写页面 × × ×
管理页面 × × ×
上传文件 √4) × ×
管理文件 √5) × ×
管理评论 × × ×
管理分类和标签 × × ×
管理链接 × × × ×
管理用户 × × × ×
管理插件 × × × ×
调整外观 × × × ×
基本设置 × × × ×
评论设置 × × × ×
阅读设置 × × × ×
撰写习惯设置 × ×

开发人员接口

对用户的权限操作以及用户信息获取,我们都封装在了Widget_User组件中。开发人员可以通过调用此组件获取相关信息。

方法名称 描述 参数
login 登录用户 * $uid(int) - 用户ID
  1. 数字越小权限越高
  2. 审核后发布
  3. , 5) 仅限于自己
  4. 受限

只知非黑即白的年轻人喜欢说话,他们觉得世界和自己一样单纯;只知流量为王的自媒体喜欢说话,他们觉得世界处处都能把流量变现;剩下的我们知道世界善恶相杂、并不易分开对错,所以不爱说话,所以,我们是沉默的大多数。😷

知乎:有哪些好用的管理家庭物品的应用(收纳管理)?

名称 平台 离线使用 收纳物品 生产日期、保质期 搭配硬件 备注
电子收纳专家 Android - - - - 可以盒子套盒子。Android10以后不能使用
收哪儿 - - - - - -
唯物主艺 - - - - - -
小鱼收纳 - - - - 二维码标签、收纳盒 -
桃桃收纳(收纳·家) - - - - 二维码标签、收纳盒 -
晒书房 iOS、Android - 书籍 - - 豆瓣导入
我的衣橱 iOS - - - - 可拍照,淘宝购买记录导入
美容护肤品管理器 iOS - - 批代码导入 - -
过期日 - - 食品 - -
云收纳 微信小程序 - - - - -
我的物品 iOS - - - - -
家里有什么 微信小程序 - - - -
存存 - - - - - -
西瓜冰箱 - - - - - -
收纳盒子 iOS - - - - -
Sortly iOS - - - - 物品数量多要收费

风险

  • 法律风险: @晒书房 在2021-7-23发布微博称将于2021-7-30停止服务,出于个人兴趣至今已经服务9年多,微博粉丝40167,看起来似乎是监管所致。物品、书籍拥有即有合法非法之分
  • 展示风险: 物品近乎于个人隐私。可以从物品的拥有判断出此人的兴趣爱好等。故不宜将所有物品直接展示。
  • 交易风险: 如果有人借助此平台进行非法交易,如贩卖毒品该怎么办?交易中涉及钱财交换,如何相互信任?所以不宜通过此平台直接交易,而宜导流至其他成熟平台如闲鱼。但这样做会大大增加用户交易付出的精力和时间成本,导致交易流动性减弱。