编程语言,其实不需要那么复杂技术
自古以来,国人都注重根本,有钱人,海外归来寻根,建祠堂。所以,根是万物之本,学习也是一样,外表的花里胡哨,见好就收。学习要学基础,学底层。
为什么重量级别的项目都是用 C 语言来写的?因为语言级别的东西真的不需要那么的复杂,复杂的结果就是:哪怕你用尽全身力气,写出覆盖 100% 的测试代码,有很多隐蔽性的逻辑错误甚至是数据错位你是测试不出来的,这些罪魁祸首就是编程语言本身太过于复杂导致,搞出那么多的花样做什么?作死的节奏啊。
面对招聘的奇葩要求,大部分程序员也就浪费在 上层 编程语言的新特性上了,呜呼哀哉!
为什么不用 C 语言来开发应用级别的代码?不是不可以,是很多开发人员的积累不够导致的恶性循环,积累足够的大牛根本不需要用 C 语言之外的其他语言来做。
PHP 0=='UNSET'? 刷新你的三观技术
这是一个老生常谈的问题,朋友和我聊天聊到这样一个问题,作为一个面试官,你也许一定要用这个去做一个对候选人参考。
朋友在面试新晋程序员的时候,发现十多个候选人竟然没有一个人做对了,也是醉了,可见,技术来源于实践,没有实践的认识不敏感,不牢靠,最后朋友还是录用了一个小姑娘,说团队男人太多,来点温柔的福利比较好,我呵呵,管理是门大学问,团队建设要小心为妙。
lindeMacBook-Pro:l lin$ php -v PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies lindeMacBook-Pro:l lin$ php -r "var_dump(0==='UNSET');" bool(false) lindeMacBook-Pro:l lin$ php -r "var_dump(0=='UNSET');" bool(true) pi@raspberrypi:l $ php -v PHP 7.3.19-1~deb10u1 (cli) (built: Jul 5 2020 06:46:45) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.19-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies pi@raspberrypi:l $ php -r "var_dump(0==='UNSET');" bool(false) pi@raspberrypi:l $ php -r "var_dump(0=='UNSET');" bool(true) lindeMacBook-Pro:l lin$ php -r "var_dump(0=='UNSET');" bool(true) lindeMacBook-Pro:l lin$ php -r "var_dump('UNSET');" string(5) "UNSET" lindeMacBook-Pro:l lin$ php -r "var_dump('unset');" string(5) "unset" lindeMacBook-Pro:l lin$ php -r "var_dump('unset'==0);" bool(true)
MySQL update where in 子查询导致锁表技术
说实话,我第一次碰都这样的报错,因为我在 update 语句的条件里面使用了子查询,我以为执行会很快,因为子查询我试过,就一两秒的事情,数据也没多少个,90 来条数据,修改的条件是主键 ID,整个 SQL 执行下来我以为也就两秒,谁知道,执行了第一次,发现卡住了,于是 Ctrl+c 终止了,以为是网络问题,于是又重试了一次,还是不对了,于是远程删除了进程。
到此,我以为进程也清理了,应该没事了,结果到了凌晨,报错了,查询数据库,原来是锁住了。
给大家看看我的报错堆栈,不算深,给大家看看而已,这个不是最深的。去掉了一些路径:
[ 2021-01-25T01:44:58+08:00 ] /index/script/job, LmlException: HY000 1205 Lock wait timeout exceeded; try restarting transaction in MysqlPdoEnhance.php:109 Stack trace: #0 MysqlPdoEnhance.php(153): MysqlPdoEnhance->query('UPDATE _s...', Array) #1 Model.php(39): MysqlPdoEnhance->update('_s...', Array, 'id=123584', Array) #2 spider.php(908): Model->update(Array, 'id=123584') #3 job.php(26): Job->{closure}(20) #4 job.php(28): {closure}() #5 [internal function]: {closure}() #6 job.php(293): Generator->next() #7 job.php(302): Job->start() #8 LmlBase.php(53): include('lmlphp...') #9 LmlBase.php(39): LmlBase->fetch('lmlphp...') #10 Index.php(22): LmlBase->display('', '/job.php') #11 [internal function]: Index->script() #12 lml.min.php(1): ReflectionMethod->invoke(Object(Index)) #13 index.php(134): LmlApp->run(true) #14 {main}
树莓派实现实时监控报警器技术
声音报警其实比起什么短信邮件报警要好很多,比如你在公司工作,一台服务器出了问题,直接声音报警更及时可靠啊。所以就有了这篇文章。
我们来说说具体实现吧。
我开始了解到树莓派有很多的开发配件,看到一些发声设备,什么有源发声器和无源发声器等等。
但是,我后来发现树莓派是有 3.5mm analog 耳机孔的,为了更加简单,我想,能不能直接使用小喇叭,让耳机孔直接驱动其发声呢。发现是可以的,就是声音比较小,于是淘宝一搜索,真的有这样的东西在卖,于是买了一个。
买来之后,发现可以用,使用 vlc 将声音调到最大,发现还是小的可怜,且没有音质可言,感觉很奇葩的产品。于是乎,我使用起了我以前台式机使用的两个喇叭做为报警器,结果发现树莓派自带的 USB 不能供电,一供电就声音噪声特别大,还得另外 USB 供电,后来突然发现树莓派耳机插口处的金属像是烧掉了一样,感觉快烂了,不知道怎么回事呢。
WIFI Mesh 路由是什么垃圾玩意儿技术
Mesh 路由和中继有什么区别,?好像没有区别。
入坑 Mesh 路由,真想骂,这是什么垃圾玩意儿,跟中继有什么区别?在小米 WiFi APP 里面显示的就是中继路由接人。
买了小米 AX3600 和 Redmi AX6,都是 WIFI6 路由器,可以 Mesh 组网,结果...
端口转发功能不可用
端口转发所有功能全部失效,只要是靠近 Mesh 路由节点的。
这样的产品设计 和 bug 官方竟然浑然不知?这都做不到?如何做到 WIFI 无缝切换?
节点路由插网线导致在 WIFI 连接列表里面不显示
这样叫人怎么管理呢,还不如 WIFI 放大器。
Mesh 路由 和 蓝牙 Mesh 一样,是个智商税炒作的概念,这产品设计也太妈操蛋了吧,什么玩意儿,当今社会很难出一个质量还不错的产品,大部分产品都只是外表看的过去,里面糟透了。