const 发布的文章

“const”

黑客帝国1
magnet:?xt=urn:btih:95bfb77c8ea96b9af43104574280fa2bf06ae38d
https://www.dygod.net/html/gndy/dyzz/20081022/14885.html

黑客帝国2
ftp://3:3@d3.dl1234.com:8006/%E9%BB%91%E5%AE%A2%E5%B8%9D%E5%9B%BD2%E9%87%8D%E8%A3%85%E4%B8%8A%E9%98%B5BD%E5%8F%8C%E8%AF%AD%E5%8F%8C%E5%AD%97[%E7%94%B5%E5%BD%B1%E5%A4%A9%E5%A0%82www.dy2018.com].mkv
黑客帝国3

ftp://5:5@d3.dl1234.com:8006/%E9%BB%91%E5%AE%A2%E5%B8%9D%E5%9B%BD3%E7%9F%A9%E9%98%B5%E9%9D%A9%E5%91%BDBD%E5%8F%8C%E8%AF%AD%E5%8F%8C%E5%AD%97[%E7%94%B5%E5%BD%B1%E5%A4%A9%E5%A0%82www.dy2018.com].mkv

停车场车辆检测器和地感线圈的原理 - 简书
update:2021-11-3
地感线圈车辆检测器,是一种基于电磁感应原理的车辆检测器。它通常在同一车道的道路路基下埋设环形线圈,通以一定工作电流,作为传感器。当车辆通过该线圈或者停在该线圈上时,车辆本身上的铁质将会改变线圈内的磁通,引起线圈回路电感量的变化,检测器通过检测该电感量的变化来判断通行车辆状态。
Referenced from:https://www.jianshu.com/p/9b74cef717d3

车检器原理.pdf

注意事项

1、线圈材料:标准1.0平方耐高温镀锡线。

2、周围1米范围内不能有大量的金属,如井盖、雨水沟盖板等。

3、周围1米范围内不能有超过220V的供电线路。

4、作多个线圈时,线圈与线圈之间的距离要大于2米,否则会互相干扰。

5、标准3米宽马路,车辆检测器线圈的尺寸为2米长1米宽,角上做45°、10厘米长的倒角。

6、线圈与马路边的距离在50厘米左右,线圈为垂直叠加绕4~8圈,总长度在40~80米(含引出线)。

7、埋设线槽切割参数:宽度4mm、深度50-80mm,深度和宽度要均匀一致,应尽量避免忽深忽浅、忽宽忽窄的情况。

8、线圈应与道闸或控制机处于同一平衡位置。

9、线圈引出的两根线应该双绞,密度为每米不少于20结,未双绞的输出引线将会引起干扰。输出引线长度推荐不超过5米。由于探测线圈的灵敏度随引线长度的增加而降低,所以引线电缆的长度要尽可能短。

10、埋设好后,应用水泥、沥青、环氧树脂等材料将槽口密封固化。对于水泥路面上述三种材料均可使用,对于沥青石子路面可使用沥青或环氧树脂,使用沥青灌封需注意线圈。

11、切割完毕的槽内不能有杂物,尤其不能有硬物,要先清理干净。

12、车辆检测器线圈的引线槽要切割至安全岛的范围内,避免引线裸露在路面。

13、绕线圈时必须将线圈拉直,但不要绷得太紧并紧贴槽底,不要产生交错层。将线圈绕好后,将双绞好的输出引线通过引出线槽引出。

我们都知道久坐不动对健康不利,但对大多数早九晚五的上班族来说,每天连坐几个小时十分常见。

我们应该如何避免久坐不动、工作锻炼两不误呢?

迈克尔·莫斯利医生(Dr Michael Mosley)在他的播客《就一件事》(Just One Thing)中探讨了这个话题。

莫斯利医生说,只要“少坐多站”,这样一件简单、容易的事就能帮助改善健康。它可以让心跳增加、有助于新陈代谢,能让骨骼受益,它还可以改善心理健康。

但是,这其中的科学原理是什么呢?

久坐不动为什么对健康不利?

莫斯利医生首先指出,久坐不动对健康非常不利,但是大多数人都难免有这一“恶习”。以英国人为例,许多人平均每天坐着的时间超过10小时。不幸的是,久坐不动可以引起一系列健康隐患,其中包括增加心脏病、二型糖尿病风险等等。

2017年的一项研究发现,每天久坐10小时或以上的女性端粒(Telomere)更短。

端粒是存在于真核细胞线状染色体末端的一小段DNA-蛋白质复合体,具有特殊的“帽子”结构。端粒是定义老化的最佳生物标记,端粒越短,老化越严重。

英国1950年代的一项调查发现,公交汽车司机突发心脏病的机率是汽车售票员的两倍。司机90%的工作时间是坐着,而售票员则是站在车上,还要在双层巴士上下来回走动。

当然,对公交司机来说,站着工作不太可能。但是,如果工作性质允许的话,时常站起来活动一下可以为生活带来显著不同。

几年前,莫斯利医生曾参与一项试验,让办公室雇员每天多站3个小时,连续一星期。结果发现,站着工作可以提高心率,其中一名研究人员还做了一项计算称,如果连续站着办公一年,所燃烧的卡路里总合相当于跑了10个马拉松。

而且,当参与者站着办公时,血液中血糖的清除速度要比坐着时要快得多。

你可能会想,尽管每天坐着办公时间很长,但只要工作之外生活方式很健康就问题不大。莫斯利医生表示,事实并非如此。他说,新的证据显示,除非每天做40分钟中等/剧烈运动,否则无法抵消久坐不动对身体所造成的伤害。

更糟的是,如果久坐不动,实际上也降低了运动所带来的好处。莫斯利医生说,最好的办法是打断久坐不动的习惯,经常站起来活动一下。

经常站起来可能有什么好处?

英国什鲁斯伯里大学(University centre of Shrewsbury)应用运动科学教授巴克利教授(Professor John Buckley)说,跟50年前相比,现代人坐着的时间要多得多。例如,大多数人除睡眠时间以外,70-80%的时间是坐着的。

为什么坐着对健康就这么不好呢? 巴克利教授解释,坐着能让新陈代谢速度放缓。坐着时,机体所有部位都失去了刺激,从骨骼、循环到新陈代谢系统,都处于静息状态。

但人类最开始是狩猎采集者,因此,人体这部“机器”也是照此而设计的。这意味着我们每天大多数时候都应该处于移动状态,除了坐下来小憩、进食、恢复和睡觉以外。

莫斯利说,一些研究显示,久坐不动不仅跟增加二型糖尿病风险有关,还与癌症、心脏病以及中风有关。但这方面是否有有力的证据呢?

巴克利教授表示,至少在控制血糖方面,站着确实有好处,这方面的证据似乎很强。

巴克利教授介绍,他们曾进行过一些试验,让办公室和呼叫中心的雇员像平时那样坐着办公一天。

研究人员对他们的饮食进行控制,并每隔15分钟读取他们的血糖指数。次日,研究人员让他们重复同样的试验,唯一不同的是这次他们要站着办公。

在午饭后四个半小时的班上,研究人员至少跟踪读取了参与者2个小时的血糖指数后发现,虽然他们血糖指数有所上升,但幅度不大,而且下降的速度要要比坐着上班快得多,并在整个下午都保持较低水平。

为什么只要站起来就对健康有益?

巴克利教授认为,这主要与地心引力有关。他解释说,最好的方式是看一下那些关于长期卧床者的研究。

长期卧床不起会影响骨密度,从而导致骨质疏松,循环也随之下降。这一切都是因为缺少地心引力。地心引力一直作用于人,但如果躺着就减少了这种重力对人体的影响。而坐着和卧床休息相差并不太多。这一点可以从到太空执行任务的宇航员身上看得更清楚。

宇航员在进入太空前经过高强度体能训练,身体强健。他们在进入国际空间站后每天都进行2个小时高难度运动,比地面上人运动量平均高出三、四倍。

但即使这样,当他们在6个月后返回地面时,骨密度、有氧健身能力、力量以及肺功能全部出现下降迹象。

巴克利教授说,这显示了地球重力一直在作用于人体,只要站起来,就能让重力为我们工作。

怎样做到少坐多站?

巴克利教授说,我们要经常提醒自己需要站起来活动一下,比如,可以站起来接电话;如果用手机还可以边走边讲话。

他说,如果每一个小时能站起来两、三次,每次两、三分钟就会打破久坐不动的不良习惯。

杰克是一名社区经理,用他自己的话说,每天90%的工作时间都是坐着,有时一坐就是两、三个小时。

莫斯利医生建议杰克每隔一小时就站起来活动一下,每次两、三分钟就可以。杰克说,尝试在工作时中经常站起来以后,生产力更高了、精力也更旺盛了,这也给了他从办公桌旁走开一小会的机会。

即使下班回家后,他也不再像从前那样就想坐在沙发上看电视一动不动了--他还想自己动手做饭。

杰克说,少坐多站让他大获收益,现在已经养成了习惯,并绝对会继续坚持下去。

如果你只想做一件事来改善健康,何不尝试一下少坐多站呢?这一简单动作就能提升心律、减少心肌代谢疾病风险、并可能为骨骼提供保护。站立同时再结合一些小动作,增加燃脂总数,收益可能更大。

gflags是google的一个开源的处理命令行参数的库,使用c++开发

#include <iostream>
#include <string>

#include <gflags/gflags.h>

DEFINE_bool(a_bool_flag, true, "A Bool Flag");
DEFINE_string(ipaddr, "127.0.0.1", "IPAddress String");
DEFINE_int32(portno, 4000, "Port NO.");

static bool ipaddr_validator(
        const char* flagname,
        const std::string& ipaddr) {
    if (ipaddr.size() >= 7 && ipaddr.size() <= 15) {
        return true;
    }

    std::cerr << flagname << std::endl;
    std::cerr << "Invalid IP address: " << ipaddr << std::endl;

    return false;
}

static bool port_validator(
        const char* flagname,
        google::int32 portno) {
    if (portno > 0 && portno < 65536) {
        return true;
    }

    std::cerr << flagname << std::endl;
    std::cerr << "Invalid port: " << portno << std::endl;

    return false;
}

void func_use_flags() {
    std::cout << FLAGS_a_bool_flag << std::endl;
    std::cout << FLAGS_ipaddr << std::endl;
    std::cout << FLAGS_portno << std::endl;
}

int main(int argc, char* argv[]) {
    std::cout << google::RegisterFlagValidator(&FLAGS_ipaddr, &ipaddr_validator) << std::endl;;
    std::cout << google::RegisterFlagValidator(&FLAGS_portno, &port_validator) << std::endl;
    std::cout << "before ParseCommandLineFlags. argc : " << argc << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << "argv[" << i << "] : " << argv[i] << std::endl;
    }
    int r = google::ParseCommandLineFlags(&argc, &argv, false);
    std::cout << r << std::endl;
    std::cout << "after ParseCommandLineFlags. argc : " << argc << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << "argv[" << i << "] : " << argv[i] << std::endl;
    }

    func_use_flags();

    return 0;
}

gflags下载,安装,使用
下载地址:
官方主页:https://github.com/gflags/gflags
当前最新下载地址

wget https://github.com/gflags/gflags/archive/refs/tags/v2.2.2.tar.gz
tar xvf v2.2.2.tar.gz
cd gflags-2.2.2/
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTALL_STATIC_LIBS=ON -DCMAKE_INSTALL_PREFIX=$(pwd)/../../install ..

不指定安装目录,就直接安装到系统里面了。
示例代码

#include "bits/stdc++.h"
using namespace std;
#include <gflags/gflags.h>
DEFINE_bool(big_menu, true, "Include 'advanced' options in the menu listing");
DEFINE_string(languages, "english,french,german",
        "comma-separated list of languages to offer in the 'lang' menu");
int main(int argc, char* argv[])
{
    google::SetVersionString("V1.0.0@const.net.cn");
    google::SetUsageMessage("-help ");
    google::ParseCommandLineFlags(&argc, &argv, true);
    std::cout << FLAGS_big_menu << std::endl;
    std::cout << FLAGS_languages << std::endl;
    return 0;
}

g++ test_gflags.cpp -o test_gflags -I ./install/include -L ./install/lib -lgflags

运行

./test_gflags -version

test_gflags version V1.0.0@const.net.cn

./test_gflags -helpshort

test_gflags: -help

Flags from test_gflags.cpp:

-big_menu (Include 'advanced' options in the menu listing) type: bool
  default: true
-languages (comma-separated list of languages to offer in the 'lang' menu)
  type: string default: "english,french,german"

./test_gflags -big_menu=false
0
english,french,german

./test_gflags -big_menu=true

1
english,french,german

./test_gflags -big_menu=true -languages=zh-cn

1
zh-cn