亚洲色成人网站www永久,亚洲欧美人成视频一区在线,亚洲国产成人高清在线观看,亚洲精品久久久久久动漫,亚洲国产精品久久电影欧美

數(shù)據(jù)專欄

智能大數(shù)據(jù)搬運(yùn)工,你想要的我們都有

科技資訊

科技學(xué)院

科技百科

科技書籍

網(wǎng)站大全

軟件大全

首先執(zhí)行以下代碼, CREATE TABLE `t` ( `id` int NOT NULL, PRIMARY KEY (`id`) ); insert into t values (5), (10); -- session 1 start transaction; select * from t where id > 8 for share; -- session 2 start transaction; insert into t values (9);
此時(shí), select * from performance_schema.data_locks 的輸出為: +--------+---------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+------------------------+-------------+------------------------+ | ENGINE | ENGINE_LOCK_ID | ENGINE_TRANSACTION_ID | THREAD_ID | EVENT_ID | OBJECT_SCHEMA | OBJECT_NAME | PARTITION_NAME | SUBPARTITION_NAME | INDEX_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_MODE | LOCK_STATUS | LOCK_DATA | +--------+---------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+------------------------+-------------+------------------------+ | INNODB | 140043377180872:1063:140043381460688 | 2084 | 49 | 23 | test | t | NULL | NULL | NULL | 140043381460688 | TABLE | IX | GRANTED | NULL | | INNODB | 140043377180872:2:4:3:140043381458464 | 2084 | 49 | 25 | test | t | NULL | NULL | PRIMARY | 140043381458464 | RECORD | X,GAP,INSERT_INTENTION | WAITING | 10 | | INNODB | 140043377180024:1063:140043381454544 | 421518353890680 | 48 | 52 | test | t | NULL | NULL | NULL | 140043381454544 | TABLE | IS | GRANTED | NULL | | INNODB | 140043377180024:2:4:1:140043381451552 | 421518353890680 | 48 | 52 | test | t | NULL | NULL | PRIMARY | 140043381451552 | RECORD | S | GRANTED | supremum pseudo-record | | INNODB | 140043377180024:2:4:3:140043381451552 | 421518353890680 | 48 | 52 | test | t | NULL | NULL | PRIMARY | 140043381451552 | RECORD | S | GRANTED | 10 | +--------+---------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+------------------------+-------------+------------------------+
X,GAP,INSERT_INTENTION 這個(gè) LOCK_MODE 到底是什么呢?在文檔沒(méi)有找到相關(guān)的描述,Google 也沒(méi)有搜索到相關(guān)內(nèi)容。
前沿探索
2020-08-20 22:07:12
執(zhí)行以下代碼 create table t(id int primary key); insert into t values (5),(10); -- session 1 start transaction; insert into t values (8);
此時(shí), select * from performance_schema.data_locks 的輸出是: +--------+--------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+-----------+-------------+-----------+ | ENGINE | ENGINE_LOCK_ID | ENGINE_TRANSACTION_ID | THREAD_ID | EVENT_ID | OBJECT_SCHEMA | OBJECT_NAME | PARTITION_NAME | SUBPARTITION_NAME | INDEX_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_MODE | LOCK_STATUS | LOCK_DATA | +--------+--------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+-----------+-------------+-----------+ | INNODB | 139956701343096:1063:139956609693392 | 2070 | 48 | 18 | test | t | NULL | NULL | NULL | 139956609693392 | TABLE | IX | GRANTED | NULL | +--------+--------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+-----------+-------------+-----------+
session 1 的那個(gè)事務(wù)只有一個(gè)表級(jí)別的獨(dú)占意向鎖。
但是執(zhí)行以下代碼之后, -- session 2 start transaction; select * from t where id = 8 for share;
select * from performance_schema.data_locks 的輸出是: +--------+---------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+---------------+-------------+-----------+ | ENGINE | ENGINE_LOCK_ID | ENGINE_TRANSACTION_ID | THREAD_ID | EVENT_ID | OBJECT_SCHEMA | OBJECT_NAME | PARTITION_NAME | SUBPARTITION_NAME | INDEX_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE | LOCK_MODE | LOCK_STATUS | LOCK_DATA | +--------+---------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+---------------+-------------+-----------+ | INNODB | 139956701343096:1063:139956609693392 | 2070 | 48 | 18 | test | t | NULL | NULL | NULL | 139956609693392 | TABLE | IX | GRANTED | NULL | | INNODB | 139956701343096:2:4:4:139956609690400 | 2070 | 49 | 14 | test | t | NULL | NULL | PRIMARY | 139956609690400 | RECORD | X,REC_NOT_GAP | GRANTED | 8 | | INNODB | 139956701343944:1063:139956609699536 | 421431678054600 | 49 | 14 | test | t | NULL | NULL | NULL | 139956609699536 | TABLE | IS | GRANTED | NULL | | INNODB | 139956701343944:2:4:4:139956609696624 | 421431678054600 | 49 | 14 | test | t | NULL | NULL | PRIMARY | 139956609696624 | RECORD | S,REC_NOT_GAP | WAITING | 8 | +--------+---------------------------------------+-----------------------+-----------+----------+---------------+-------------+----------------+-------------------+------------+-----------------------+-----------+---------------+-------------+-----------+
此時(shí),顯示 session 1 的那個(gè)事務(wù)持有 id 為 8 的那個(gè)索引記錄的獨(dú)占鎖。但是為什么在第一次輸出時(shí)沒(méi)有顯示呢?
前沿探索
2020-08-20 22:06:57
最近安裝了一套 11g 的 RAC 集群,裝集群的過(guò)程中需要 SSH 免密傳輸文件,現(xiàn)在集群已經(jīng)安裝完畢了,不是很懂 RAC 節(jié)點(diǎn)之間的通信方式,請(qǐng)問(wèn)可以直接停用 SSH 嗎?(停用 SSH 主要是為了月底的攻防演練,想盡可能省心)
前沿探索
2020-08-20 22:06:26
在“數(shù)據(jù)庫(kù)系統(tǒng)概念 - 第 15 章 并發(fā)控制 - 15.5 基于有效性檢查的協(xié)議”中,有這么一段話:
事務(wù) Ti 的有效性測(cè)試要求任何滿足 TS(Tk)我的疑問(wèn)是:關(guān)于第 2 點(diǎn),因?yàn)橐呀?jīng)給出了“TS(Tk)
前沿探索
2020-08-20 22:06:07
生產(chǎn)環(huán)境下, 一些 systemd 配置的服務(wù)不能開機(jī)自啟動(dòng), 所以需要 disable 掉,但是問(wèn)題是 disable 之后, systemctl is-enabled xxx, 結(jié)果還是 enable
1.文件在 /etc/systemd/system/xxx.service
2.文件權(quán)限正常(因?yàn)橥瑱?quán)線的可以 disable)
3.disable 之后 /etc/systemd/system/multi-user.target.wants/里面的軟鏈確實(shí)被刪
4.systemctl cat xxx [Unit] Description=xxx service After=network.target [Service] Group=www User=www Type=simple Restart=always RestartSec=5 ExecStart=/home/www/bin/xxx WorkingDirectory=/home/www/bin [Install] WantedBy=multi-user.target Alias=xxx
前沿探索
2020-08-20 22:05:44
因?yàn)?Centos 上沒(méi)有運(yùn)行任何走 TCP 的應(yīng)用但又想開一個(gè) TCP 端口用來(lái)長(zhǎng)時(shí)間測(cè)試連接是否暢通 請(qǐng)問(wèn)可以開啟什么簡(jiǎn)單服務(wù)走 TCP 又安全呢?
前沿探索
2020-08-20 22:05:33
一時(shí)興起,看一下有沒(méi)有思科的智能云管理 AP 的管理系統(tǒng),結(jié)果一查,還真有?。【唾I了回來(lái),價(jià)格就不說(shuō)了,來(lái)說(shuō)說(shuō)功能吧,這個(gè)系統(tǒng)最強(qiáng)大的就是只要你登錄http://dashboard.meraki.com ,并且注冊(cè)個(gè)賬號(hào)之后就可以把你所買到的產(chǎn)品注冊(cè)上去,一般填寫完之后出現(xiàn)綠色背景的 changed saved 就成功了,然后就可以用你在前面網(wǎng)站上所申請(qǐng)的賬號(hào)登錄進(jìn)去之后就可以進(jìn)行管理了,默認(rèn)是不支持本地管理的,就是說(shuō)不支持 ip 地址登陸,需要進(jìn)來(lái)云管理界面去打開即可。。https://s4.51cto.com/wyfs02/M00/8D/7D/wKiom1idi4zS0MuiAADohZjKRwA733.jpg https://s1.51cto.com/wyfs02/M02/8D/7D/wKiom1idi4ygDTfgAACSvdoqjhQ058.jpg
前沿探索
2020-08-20 22:03:07
先上代碼,注意 get 函數(shù)和其友元函數(shù) #include #include template && !std::is_final_v> class TupleElt; template class TupleElt { private: T value; public: TupleElt() = default; template TupleElt(U &&other) : value(std::forward(other)) {} T &get() { return value; } T const &get() const { return value; } }; template class TupleElt : private T { public: TupleElt() = default; template TupleElt(U &&other) : T(std::forward(other)) {} T &get() { return *this; } T const &get() const { return *this; } }; template T &getHeight(TupleElt &te) { return te.get(); } template class Tuple; template auto get(Tuple &t) -> decltype(getHeight(t)) { return getHeight(t); } template class Tuple; template class Tuple : private TupleElt, private Tuple { template friend auto get(Tuple &t) -> decltype(getHeight(t)); \\ 友元函數(shù)聲明 private: using HeadElt = TupleElt; public: Head &getHead() { return static_cast(this)->get(); } Head const &getHead() const { return static_cast(this)->get(); } Tuple &getTail() { return *this; } Tuple const &getTail() const { return *this; } }; template <> class Tuple<> { }; int main() { Tuple t1; get<0>(t1); return 0 }
我跟著 C++ templates 2nd edition, 實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的 tuple 類和 get 函數(shù),其中 tuple 類里面的元素被 tuple 類私有繼承,get 函數(shù)通過(guò)計(jì)算元素高度,來(lái)實(shí)現(xiàn)直接從派生類到基類的轉(zhuǎn)換來(lái)訪問(wèn)對(duì)應(yīng)的元素,由于 tupleElt 類被私有繼承,get 函數(shù)必須在 tuple 類中被聲明為友元函數(shù)才可以被訪問(wèn)(上述代碼注釋處)但是即使被聲明為了友元函數(shù),gcc 還是提示 get 函數(shù)無(wú)法訪問(wèn) tuple 的基類,導(dǎo)致編譯錯(cuò)誤,但 MSVC 可以順利編譯通過(guò),是為什么呢,如果有錯(cuò)誤該怎么改?
前沿探索
2020-08-20 22:02:47
效果:
特性: 單個(gè)文件,從畫點(diǎn)開始實(shí)現(xiàn)可編程渲染管線,無(wú)外部依賴。 模型標(biāo)準(zhǔn),計(jì)算精確,使用類 Direct3D 接口。 使用 C++ 編寫頂點(diǎn)著色器和像素著色器,方便斷點(diǎn)和調(diào)試。 使用 Edge Equation 精確計(jì)算三角形覆蓋范圍,處理好鄰接三角形的邊界。 全中文注釋,每一處計(jì)算都有解釋,核心代碼 200 行,突出易讀性。 多個(gè)教程例子,從如何畫三角形到模型以及光照。
鏈接:
https://zhuanlan.zhihu.com/p/182872172
前沿探索
2020-08-20 22:02:38
多個(gè)線程對(duì)共享變量可修改,如果共享變量是一個(gè)指針, 而由于程序 bug, 鎖沒(méi)有用好, 導(dǎo)致一個(gè)線程把指針置為 nullptr 后, 其他線程用此指針時(shí)程序崩潰,產(chǎn)生 dump 或 core, 那么通過(guò) windbg 或 gdb 對(duì) dump 或 core 進(jìn)行分析, 可分析出指針被哪個(gè)線程置為 nullptr 了嗎
前沿探索
2020-08-20 22:02:32
不好意思問(wèn)題題目有點(diǎn)繞,請(qǐng)看以下類模板代碼 #pragma once #include #include template class Tuple; template class Tuple { private: Head head; Tuple tail; public: Tuple() {}; Tuple(Head const& h, Tuple const& t) : head(h), tail(t) {} Tuple(Head const& h, Tail const& ... t) : head(h), tail(t...) {} template \\ 構(gòu)造函數(shù) 1 Tuple(VHead&& vhead, VTail&&... vtail) : head(std::forward(vhead)), tail(std::forward(vtail)...) {} template \\ 構(gòu)造函數(shù) 2 Tuple(Tuple const & other) : head(other.getHead()), tail(other.getTail()) {} Head& getHead() { return head; } Head const & getHead() const { return head; } Tuple & getTail() { return tail; } Tuple const & getTail() const { return tail; } }; template <> class Tuple<> {};
當(dāng)我們?cè)噲D以一個(gè) Tuple 類型來(lái)構(gòu)造另外一個(gè) Tuple 的時(shí)候,有兩種情況,一種是構(gòu)造相同模板參數(shù) tuple,另一種是構(gòu)造不同但可以相互轉(zhuǎn)換的模板參數(shù),代碼如下: Tuple t(17, 3.14, "Hello world"); Tuple b = t; \\ 情形 1 Tuple b = t; \\ 情形 2
在這個(gè)類模板定義下,上述代碼是編譯不過(guò)去的,原因是構(gòu)造函數(shù) 1 的優(yōu)先級(jí)比構(gòu)造函數(shù) 2 高,所以編譯器沒(méi)有調(diào)用復(fù)制構(gòu)造函數(shù) 2 。因此我們需要用 std::enable_if_t 去 disable 構(gòu)造函數(shù),所以構(gòu)造函數(shù) 1 和 2 可以被改寫為下面兩種:
第一種: std::enable_if_t 為默認(rèn)模板參數(shù) template > Tuple(VHead&& vhead, VTail&&... vtail) : head(std::forward(vhead)), tail(std::forward(vtail)...) {} template > Tuple(Tuple const & other) : head(other.getHead()), tail(other.getTail()) {}
第二種: std::enable_if_t 為默認(rèn)匿名 Nontype 模板參數(shù) template =0 > Tuple(VHead&& vhead, VTail&&... vtail) : head(std::forward(vhead)), tail(std::forward(vtail)...) {} template =0 > Tuple(Tuple const & other) : head(other.getHead()), tail(other.getTail()) {}
那么問(wèn)題來(lái)了: 為什么加了相同的 enable_if 條件,就使得構(gòu)造函數(shù) 2 的優(yōu)先級(jí)比構(gòu)造函數(shù) 1 的優(yōu)先級(jí)高了呢(構(gòu)造函數(shù) 1 、2 的條件都是 VTails 類型的個(gè)數(shù)和 Tail 的類型個(gè)數(shù)相同。 enable_if 的兩種寫法中第二種是 CPP reference 推薦寫法, 原話是這么說(shuō)的:A common mistake is to declare two function templates that differ only in their default template arguments. This does not work because the declarations are treated as redeclarations of the same function template (default template arguments are not accounted for in function template equivalence). 也就是說(shuō)如果用第一種寫法很可能會(huì)把構(gòu)造函數(shù) 1 和構(gòu)造函數(shù) 2 當(dāng)成同一個(gè)函數(shù)聲明和定義兩次,當(dāng)然本例中不存在這個(gè)問(wèn)題,因?yàn)闃?gòu)造函數(shù) 1 和構(gòu)造函數(shù) 2 在大部分情形下含有的參數(shù)個(gè)數(shù)不同,但至少這兩種 enable_if 的寫法是等價(jià)的。對(duì)于情形 1 構(gòu)造相同模板參數(shù) tuple 兩種 enable_if 寫法 gcc 和 msvc 均可以編譯過(guò)去,但是對(duì)于情形 2 構(gòu)造不同但可以相互轉(zhuǎn)換的模板參數(shù),只有第一種寫法也就是默認(rèn)模板參數(shù)方法,msvc 和 gcc 可以編譯過(guò)去,這是為什么呢?
感謝您看完如此長(zhǎng)的問(wèn)題描述,謝謝!
編譯器分別為 msvc 16.7 和 gcc 10
前沿探索
2020-08-20 22:02:20
想在線程池中加一個(gè)功能,加 task 的時(shí)候判斷這個(gè)函數(shù)已經(jīng)在池子里運(yùn)行并且沒(méi)有運(yùn)行結(jié)束的話就不再重新 push,不修改業(yè)務(wù)代碼的話,想到的一個(gè)方案就是在線程池里面維護(hù)一個(gè) function 的 map 來(lái)判斷,或者不直接對(duì) function 做 hash,能把 function 轉(zhuǎn)化成一個(gè)唯一的 string (類似函數(shù)簽名)也可以,試了一下 typeid(function).name()發(fā)現(xiàn)普通函數(shù)可以,成員函數(shù)打印出來(lái)的都是類名,大佬們有啥好辦法嗎
前沿探索
2020-08-20 22:02:11
自己定義了一種文件格式,想起一個(gè)魔術(shù)數(shù)放在文件頭里面,比如 0xdeadbeef 。各位有想到更好玩的么? 64 位的數(shù)字
前沿探索
2020-08-20 22:01:36
函數(shù)返回是個(gè)指針,并且后面預(yù)期這個(gè)指針要?jiǎng)h的,下面是函數(shù)的返回代碼:return (PUCHAR)(0x00001000); //( typedef PUCHAR unsigned char* ) 太騷了...真的太騷了...
前沿探索
2020-08-20 22:01:15
頭文件里有很多宏+模板的代碼,因?yàn)槿绱?class 和 struct 的聲明和實(shí)現(xiàn)全在里面,一個(gè)頭文件有接近 2000 行長(zhǎng)。今天想加點(diǎn)功能,然后又往里面塞東西了.... 感覺有點(diǎn)不爽,不知道各位大佬有沒(méi)有解決方案?用 ipp 么?編譯環(huán)境是 C++14, clang / msvc C++20 里面有個(gè)`export`的關(guān)鍵詞能用,可惜鄙司項(xiàng)目離 20 還遠(yuǎn)....哎...
前沿探索
2020-08-20 22:00:50
初學(xué) cpp
我把 opencv 下載到了一個(gè)單獨(dú)的目錄下 cpp-libs |--opencv |--|--sources |--|--build |--|--|--bin |--|--|--x64 |--|--|--include |--|--|--|--opencv2 |--|--|--|--|--core |--|--|--|--|--|--core.hpp 等文件 /目錄
c_cpp_properties.json 文件如下: { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "${default}", "C:/cpp-libs/opencv/build/include" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "compilerPath": "C:\\MinGW\\bin\\g++.exe", "cStandard": "c11", "cppStandard": "gnu++14", "intelliSenseMode": "clang-x86" } ], "version": 4 }
我在 .cpp 文件中引入 opencv2 如下: #include
為什么 include 這個(gè)路徑( C:/cpp-libs/opencv/build/include )還不夠, F5 調(diào)試時(shí)依然提示 fatal error: opencv2/core/core.hpp: No such file or directory , includePath 到底應(yīng)該是什么?
ps: 沒(méi)用 visual studio, 太大了
前沿探索
2020-08-20 22:00:36
dialog 上面有一個(gè) Help button,點(diǎn)了直接到幫助文檔的那一部分,請(qǐng)問(wèn)這個(gè)有什么工具做嗎,比如我想支持 pdf 和網(wǎng)頁(yè)
前沿探索
2020-08-20 22:00:27
node 需要使用一個(gè)原生模塊 折騰了好久
環(huán)境什么的搞了大半天 弄好了
可以調(diào)用 DLL 的方法 運(yùn)行
但是發(fā)現(xiàn) 有一個(gè) DLL 暴露的是一個(gè) Class 不知道要怎么調(diào)用
今天查了好久資料
正常導(dǎo)出方法的 DLL 頭文件是這樣的 extern "C" int __declspec(dllexport)My_Test(char *a, int b, int c); extern "C" void __declspec(dllexport)My_Hello(char *a, int b, int c);
nodejs 的調(diào)用方法 const dll = ffi.Library( './test.dll', { // My_Test 是 dll 中定義的函數(shù),兩者名稱需要一致 // [a, [b,c....]] a 是函數(shù)出參類型,[b,c]是 dll 函數(shù)的入?yún)㈩愋?My_Test: ['int', ['string', 'int', 'int']], // 可以用文本表示類型 My_Hello: [ref.types.void, ['string', ref.types.int, ref.types.int]] // 更推薦用`ref.types.xx`表示類型,方便類型檢查,`char*`的特殊縮寫下文會(huì)說(shuō)明 })
但是我哪一個(gè)模塊導(dǎo)出的是一個(gè) class 不知道要怎么去調(diào)用它
class __declspec(dllexport) Person #pragma once class __declspec(dllexport) Person { private: int age; public: int getAge(); void setAge(int a); };
前沿探索
2020-08-20 21:59:49
今天研究 esbuild,發(fā)現(xiàn)這個(gè)庫(kù)是用 golang 寫的,但你可以用 npm install esbuild
這就很奇怪了
我搜了半天,沒(méi)搜到怎么用 golang 來(lái)寫一個(gè) npm 的庫(kù)
各位能指點(diǎn)一二嗎?
前沿探索
2020-08-20 21:59:39
官方例子在 controller 里面給 Service 傳了一個(gè) DTO. this.catsService.create(createCatDto)
但是 service 里面的定義是 import { Cat } from './interfaces/cat.interface'; create(cat: Cat): void
這個(gè)類型檢查能過(guò)去???
前沿探索
2020-08-20 21:59:29
才下單了小新 pro13,準(zhǔn)備裝個(gè) manjaro 用,就看到華為發(fā)布了新的 matebook 銳龍版,做工似乎要強(qiáng)過(guò)小新。這次似乎沒(méi)有預(yù)裝 linux 的。除了指紋解鎖和觸摸屏不抱期望,其他硬件不知道會(huì)不會(huì)有驅(qū)動(dòng)問(wèn)題。老哥們有什么看法?
前沿探索
2020-08-20 21:57:12
個(gè)人注冊(cè)用戶沒(méi)有訂閱紅帽的服務(wù),求各位好心幫忙查看一下如下紅帽的解決方案文檔,萬(wàn)分感謝https://access.redhat.com/solutions/106563
前沿探索
2020-08-20 21:57:04
在安裝過(guò)程中發(fā)現(xiàn)了這么一個(gè)問(wèn)題: --> Finished Dependency Resolution Error: Package: glibc-2.17-260.el7.i686 (base) Requires: glibc-common = 2.17-260.el7 Installed: glibc-common-2.17-260.el7_6.6.x86_64 (@updates) glibc-common = 2.17-260.el7_6.6 Available: glibc-common-2.17-260.el7.x86_64 (base) glibc-common = 2.17-260.el7 Available: glibc-common-2.17-260.el7_6.3.x86_64 (updates) glibc-common = 2.17-260.el7_6.3 Available: glibc-common-2.17-260.el7_6.4.x86_64 (updates) glibc-common = 2.17-260.el7_6.4 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
看上去似乎是 glibc-common 的版本問(wèn)題 但這個(gè) glibc-common 被很多包依賴著
機(jī)器是 centos7 執(zhí)行 yum list glibc-common --showduplicates:的結(jié)果 Loaded plugins: fastestmirror, versionlock Loading mirror speeds from cached hostfile Installed Packages glibc-common.x86_64 2.17-260.el7_6.6 @updates Available Packages glibc-common.x86_64 2.17-260.el7 base glibc-common.x86_64 2.17-260.el7_6.3 updates
請(qǐng)問(wèn)一下這種情況該怎么把 glibc-common 的 2.17-260.el7_6.6 版本換成 2.17-260.el7 這個(gè)版本呢?非常感謝
前沿探索
2020-08-20 21:56:29
背景:手機(jī)有些工具需要用 root 權(quán)限。but 手機(jī) root 或者裝 magisk 后銀行類 app 就不讓用了。因此產(chǎn)生了一個(gè)不成熟的想法,我先拿到 root 權(quán)限,然后我把需要 root 權(quán)限的應(yīng)用的 linux 用戶修改成 root 組。然后我再移除手機(jī) root 權(quán)限。這特喵的不就完美解決了么。
想到這里立馬動(dòng)手開始嘗試,通過(guò) adb shell 進(jìn)入手機(jī)命令行,然后 ls -AU 查看 apk 對(duì)應(yīng)的用戶,然后修改組
wtf fk ,木有 usermod 命令,然后 cat /etc/group,也木有這個(gè)文件
接著再 busybox --help,也沒(méi)有看到 usermod 命令
最終,陷入絕望,有木有大佬解答下,還有其他辦法修改用戶組嗎
前沿探索
2020-08-20 21:56:21
剛剛遇到了一個(gè)比較低級(jí)的錯(cuò)誤,一時(shí)沒(méi)反應(yīng)過(guò)來(lái)?,F(xiàn)把解決的過(guò)程簡(jiǎn)單分享一下。
問(wèn)題
執(zhí)行一個(gè) python 的腳本,提示找不到模塊。
環(huán)境條件 ubuntu 20.04 。 機(jī)器很久沒(méi)有重裝,也沒(méi)有特別大的改動(dòng)。 期間沒(méi)有卸載過(guò)任何依賴包。 依賴包來(lái)自 apt 。LTS 倉(cāng)庫(kù)穩(wěn)定,突然不能跑的概率較低。
表現(xiàn)
執(zhí)行之前有效的腳本,突然提示找不到模塊。使用 pip 安裝,提示路徑不可寫。 提示的路徑是 flexget 或 youtube-dl 的路徑(視 $PATH 中的順序) 。
檢查
輸入 which pip3 命令,發(fā)現(xiàn) pip 在 flexget/bin 里。繼續(xù)使用 which python3 檢查,它也在 flexget/bin 里。
在 python 中打印 sys.path ,與另一用戶的結(jié)果不同,且包含 flexget/bin 的內(nèi)容。
原因
此時(shí)回想前幾天的操作可知。先前模仿安裝 flexget 的方法,為機(jī)器安裝了最新的 youtube-dl 。 之后為了圖方便,把二者的 bin 目錄加入了 $PATH 里 。
修復(fù)
去掉 $PATH 中后來(lái)增加的內(nèi)容,重新檢查后,一切恢復(fù)正常。
在 ~/.local/bin 中建立 flexget 和 youtube-dl 的符號(hào)鏈接來(lái)實(shí)現(xiàn)相同目的。
總結(jié)
遇到類似奇怪的問(wèn)題,先執(zhí)行 which 命令,看看到底是不是自己想要運(yùn)行的程序。如果是路徑的問(wèn)題,修正路徑后,問(wèn)題可能就解決了。
另外,通過(guò) python3 -m venv 獨(dú)立安裝的軟件,如果需要快速調(diào)用,不應(yīng)直接添加 $PATH ,而是在已有的 $PATH 所指向的目錄里添加符號(hào)鏈接。
前沿探索
2020-08-20 21:56:13
需要對(duì)文件夾內(nèi)的 1 萬(wàn)多個(gè)文件進(jìn)行操作 將每個(gè)文件的第二行中的引號(hào)進(jìn)行轉(zhuǎn)義
例如某個(gè)文件內(nèi)容是 (title 值以及其中的引號(hào)內(nèi)容并不是固定的,且有可能出現(xiàn)多處內(nèi)嵌引用) ...第一行內(nèi)容 title = "標(biāo)題中的"引號(hào)內(nèi)容"需要轉(zhuǎn)義" ...第三行及剩下的內(nèi)容
需要修改成 ...第一行內(nèi)容 title = "標(biāo)題中的\"引號(hào)內(nèi)容\"需要轉(zhuǎn)義" ...第三行及剩下的內(nèi)容
前沿探索
2020-08-20 21:56:03
我最近想嘗試用 linux 作為桌面系統(tǒng),但發(fā)現(xiàn)很多設(shè)備都對(duì) linux 不友好,問(wèn)題主要在于主板芯片組驅(qū)動(dòng)。很多常見型號(hào)的消費(fèi)級(jí)主板都只提供了 windows 的驅(qū)動(dòng),提供了 linux 驅(qū)動(dòng)的主板又多為服務(wù)器主板,太貴了買不起。如果不裝主板驅(qū)動(dòng)可能會(huì)出現(xiàn)性能控制不佳,無(wú)法調(diào)節(jié)屏幕亮度,熱鍵失效等問(wèn)題。 那么有沒(méi)有什么設(shè)備對(duì) linux 比較友好呢?
前沿探索
2020-08-20 21:55:23
剛剛從 mac 轉(zhuǎn)向 arch,發(fā)現(xiàn)有些應(yīng)用的安裝需要導(dǎo)入 GPG 簽名,比如 1password-cli 。在導(dǎo)入的過(guò)程中,經(jīng)常出現(xiàn)這樣的錯(cuò)誤: gpg: --keyserver receive failed: Server indicated a failure.
之前曾經(jīng)在安裝一個(gè)庫(kù)的時(shí)候遇到過(guò)相同的問(wèn)題,我的解決方法是從網(wǎng)站上直接下載對(duì)應(yīng)的文件 public-key.asc , 然后手動(dòng)添加 $ gpg --import public-key.asc
在向 1password 客服咨詢后,發(fā)現(xiàn)可以在服務(wù)器上直接檢索,我也嘗試了以下的命令: $ gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 3FEF9748469ADBE15DA7CA80AC2D62742012EA22
但是依然獲得相同的錯(cuò)誤提示?,F(xiàn)在我已經(jīng)能夠找到這個(gè)公鑰對(duì)應(yīng)的 界面 ,能否和之前一樣手動(dòng)下載 .asc 文件呢?或者有更好的能夠一勞永逸解決我困難的方法!謝謝大家了!
前沿探索
2020-08-20 21:55:03
有幾個(gè)文件,一個(gè)二進(jìn)制文件,一個(gè)純文本文件,三個(gè) shell 腳本,分別是run.sh stop.sh clean.sh 需求,把這幾個(gè)文件壓縮為一個(gè)包, 名字是 help.sh 客戶拿到文件后 bash help.sh 即可當(dāng)前目錄解壓而后當(dāng)前目錄運(yùn)行 bash run.sh 即可運(yùn)行。用什么方案能做這個(gè) help.sh 壓縮包呢?我之前用的是 tgz 。 對(duì)方先 tar zxvf help.sh 而后 cd help 最后運(yùn)行 bash run.sh 但是,還是有人會(huì)搞錯(cuò)的。
前沿探索
2020-08-20 21:54:56
CentOS 7 的服務(wù)器,之前配置 IPv6 一直無(wú)法使用,沒(méi)去管,今天隨手掃了一下開放端口發(fā)現(xiàn) firewalld 規(guī)則里沒(méi)有開放的端口全部被開放了。確定 zone 設(shè)置正確,firewalld 和 iptables 都在正常工作,規(guī)則都已正常保存。然后我加了一條 iptables 拒絕規(guī)則,然而還是可以訪問(wèn)。firewalld 打開 panic 模式照樣能 ssh 連接服務(wù)器。不知道這和 IPv6 無(wú)效是否有關(guān),請(qǐng)問(wèn)有大佬知道嗎?研究了一天還沒(méi)解決。
前沿探索
2020-08-20 21:54:37
眾所周知,VPS 上 25 端口是封鎖的。但是阿里云可以通過(guò) 465 端口連接 163 的 smtp 服務(wù)器,是可以發(fā)送郵件的。 如果我自己就是 smtp 服務(wù)器,那么怎么配置才能把郵件投遞到 163 郵件服務(wù)器?
前沿探索
2020-08-20 21:54:05
有公司或者自用的鐵汁們,可以聯(lián)系我新溝續(xù)費(fèi)升級(jí)都有返傭優(yōu)惠,返傭金額不影響發(fā)票金額。
前沿探索
2020-08-20 21:53:58
前幾天 UDP 丟包 20%以上,速度 1MB/s 以下,但 TCP 正常今天 TCP 丟包差不多 100%了 除了 PING 值 10ms 很好看以外,根本沒(méi)法用 你們那些說(shuō) AGA 好的不是在國(guó)內(nèi)連接的吧? 想找個(gè)穩(wěn)定線路中轉(zhuǎn)白天工作用,最后還是沒(méi)找到。。。
前沿探索
2020-08-20 21:53:46
我用 Nodejs 寫了一個(gè) API 接口,用于請(qǐng)求指定數(shù)據(jù)。這個(gè)接口會(huì)請(qǐng)求三個(gè)其他的 API: http://a.com/api1 http://b.com/api2 http://c.com/api3
我的目的是同時(shí)(并發(fā))請(qǐng)求上面這三個(gè) API,然后匯總請(qǐng)求到的結(jié)果,返回給客戶端。
請(qǐng)問(wèn)這個(gè)可以實(shí)現(xiàn)嗎,對(duì) Nodejs 不懂?
前沿探索
2020-08-20 21:51:48
發(fā)送短信,郵件這些耗時(shí)任務(wù),本來(lái)就是異步請(qǐng)求,不會(huì)阻塞后面的邏輯。為什么還需要 redis 隊(duì)列來(lái)處理。
前沿探索
2020-08-20 21:51:41
雖然我知道 sqlite 數(shù)據(jù)庫(kù)本身是不支持并發(fā)寫事務(wù)的,應(yīng)該是 knex.js 在執(zhí)行的時(shí)候做了相應(yīng)處理。但我在 knex.js 和 sequelize.js 的文檔里都沒(méi)找到關(guān)于 sqlite 該如何處理并發(fā)寫事務(wù)的說(shuō)明。
所以,讓我困惑的問(wèn)題有兩個(gè): knex.js 和 sequelize.js 在處理 sqlite 數(shù)據(jù)庫(kù)的并發(fā)寫事務(wù)時(shí)的區(qū)別是什么? 如果選擇使用 sequelize.js 操作 sqlite 數(shù)據(jù)庫(kù),又該如何處理并發(fā)寫事務(wù)?
有熟悉 sequelize 和 knex.js 這兩個(gè)庫(kù)的 v 友嗎?
下面是部分代碼段,為了方便重現(xiàn)報(bào)錯(cuò),我寫了一個(gè)小 demo, https://github.com/Watanuki-Kimihiro/sqlite-busy
byKnex // sqlite-busy/byKnex/db.js const insertWorkMetadata = work => knex.transaction(trx => trx.raw( // insert or ignore into `t_circle` (`id`, `name`) values (12345, 'Circile_Name') trx('t_circle') .insert({ id: work.circle.id, name: work.circle.name, }).toString().replace('insert', 'insert or ignore'), ) .then(() => trx('t_work') .insert({ id: work.id, title: work.title, circle_id: work.circle.id }))); createSchema() .then(() => { let work = { id: 123456, title: 'Work_Title', circle: {id:12345, name:'Circile_Name'} }; let promises = []; for (let i=1; i<10; i++) { let newWork = JSON.parse(JSON.stringify(work)); newWork.id = work.id + i; promises.push(insertWorkMetadata(newWork)); } return Promise.all(promises); }) .then(() => {console.log("finished")}) .catch((err) => { console.error(err); });
bySequelize // sqlite-busy/bySequelize/db.js const insertWorkMetadata = work => sequelize.transaction(t => { return Circle.findOrCreate({ where: {id: work.circle.id}, defaults: {name: work.circle.name}, transaction: t }) .then(([circle, created])=> { return circle.createWork({ id: work.id, title: work.title, }, {transaction: t}); }); }); sequelize.sync() .then(() => { let work = { id: 123456, title: 'Work_Title', circle: {id:12345, name:'Circile_Name'} }; let promises = []; for (let i=1; i<10; i++) { let newWork = JSON.parse(JSON.stringify(work)); newWork.id = work.id + i; promises.push(insertWorkMetadata(newWork)); } return Promise.all(promises); }) .then(() => {console.log("finished")}) .catch((err) => { console.error(err); });
前沿探索
2020-08-20 21:51:24
昨天想要實(shí)現(xiàn)個(gè)打印網(wǎng)頁(yè)為 PDF 的功能,順便學(xué)習(xí) TypeScript 和 Nest.js 。 遇到了這些問(wèn)題: 方法的返回值類型定為 Promise ,但也有可能返回 puppeteer 的 Error ,這時(shí)候返回值該咋寫,也沒(méi)錯(cuò)誤提示 page.goto()方法定了 5 秒的 timeout,但還是有可能觸發(fā)超時(shí)錯(cuò)誤,這個(gè)該咋辦,真實(shí)瀏覽器響應(yīng)很快 一堆 await 的代碼該如何組織,錯(cuò)誤該如何處理?
附上代碼: async generatePDFFromURL(url: string): Promise { return new Promise(async (resolve, reject) => { const browser = await puppeteer.launch(), page = await browser.newPage(); try { await page.goto(url, { timeout: 5000, }); } catch(error) { reject(error); } const pdf = await page.pdf({ format: 'A4', }); await browser.close(); resolve(pdf); }); }
前沿探索
2020-08-20 21:51:16
Node.js 的事件循環(huán)到底是什么,具體運(yùn)行機(jī)制是啥?
恐怕很多程序員朋友還很難說(shuō)得清楚。
而事件循環(huán)機(jī)制,正是 Node.js 核心賣點(diǎn)之一,此外,也是面試中經(jīng)常會(huì)問(wèn)到的點(diǎn)。
這篇文章翻譯自 Node.js 官網(wǎng)文檔: https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
應(yīng)該算是非常權(quán)威的資料,而且講述得清晰易懂,特此奉上:
文章地址為: 詳解 Node.js 事件循環(huán)
本文章所屬翻譯項(xiàng)目地址為: https://www.breword.com/projects/5f1d47400f18ef001b5d38e8
前沿探索
2020-08-20 21:51:10
自己寫的一個(gè)針對(duì)特定行業(yè)的 web 應(yīng)用,想要設(shè)計(jì)一個(gè)簡(jiǎn)單的會(huì)員積分系統(tǒng)
積分來(lái)源: 注冊(cè)后每月 5 個(gè) credit 分享后別人通過(guò)鏈接注冊(cè)獎(jiǎng)勵(lì) 2 個(gè) credit
積分消費(fèi): 每次查詢消費(fèi) 1 個(gè) credit 月度定時(shí)器清空
技術(shù)棧: Node.js + Typescript + Mongodb + Mongoose
請(qǐng)問(wèn)下各位開發(fā)過(guò)的能講下思路,或者有見過(guò)相關(guān)腳手架(在 Google,github 用 membership management systemt 搜過(guò),好像沒(méi)找到相關(guān)的項(xiàng)目)
先謝謝了。
前沿探索
2020-08-20 21:50:59
完整報(bào)錯(cuò)信息為: Error: ERR_AVVIO_PLUGIN_TIMEOUT: plugin did not start in time: D:
mpp\htdocs\BWK_Spider\src\spider\ickey.js at Timeout._onTimeout (D:
mpp\htdocs\BWK_Spider\node_modules\avvio\plugin.js:122:19) at listOnTimeout (internal/timers.js:549:17) at processTimers (internal/timers.js:492:7) { code: 'ERR_AVVIO_PLUGIN_TIMEOUT', fn: [Function: routes] }
這個(gè)報(bào)錯(cuò)的插件應(yīng)該是自帶的吧,應(yīng)該怎么解決這個(gè)錯(cuò)誤,對(duì) Nodejs 出錯(cuò)很丈二和尚摸不著頭腦、、、
前沿探索
2020-08-20 21:50:49