從頭造輪子:python3 asyncio之 gather (3)-編程思維

前言 書接上文,本文造第三個輪子,也是asyncio包裡面非常常用的一個函數gather 一、知識準備 ● 相對于前兩個函數,gather的使用頻率更高,因為它支持多個協程任務“同時”執行 ● 理解__await__ __iter__的使用 ● 理解關鍵字async/await,async/await是3.5之後的語法,和yield/yield from異曲同工 ● 今天的文章有點長,請

Sentry 開發者貢獻指南 - 配置 PyCharm-編程思維

概述 如果您使用 PyCharm 進行開發,則需要配置一些内容才能運行和調試。 本文檔描述了一些對 sentry 開發有用的配置 配置 Python 解釋器:(确保它是 venv 解釋器)例如 ~/venv/sentry/bin/python 要創建配置(run/debug 配置),隻需轉到 Run | Edit Configurations...(也可在默認工具欄中使用)。 Test r

基于Node和Electron開發了輕量版API接口請求調試工具——Post-Tool-編程思維

Electron 是一個使用 JavaScript、HTML 和 CSS 構建桌面應用程序的框架。 嵌入 Chromium 和 Node.js 到 二進制的 Electron 允許您保持一個 JavaScript 代碼代碼庫,支持跨平台,一套代碼可同時打包為Windows、macOS、Linux應用。 而 Post-Tool 就是基于 Node.js、React.js、Electron.js 和

白話TCP/IP原理-編程思維

TCP/IP(Transmission-Control-Protocol/Internet-Protocol),中文譯名為傳輸控制協議/因特網互聯協議,又名網絡通訊協議,是Internet最基本的協議、也是Internet國際互聯網絡的基礎。   我上大學的時候就是一門必修課。工作後我還專門重新看了一遍,覺得比上學時理解的多了些。但是書本上東西畢竟不貼合工作。本文結合工作中常用的方面以及現實中出

2021/12/31 校内比賽-編程思維

Problem D 其實是道很簡單的二分題但考場上我一直想的是貪心。 每一次操作,任選一個不變其餘減 \(1\)。 那麼二分答案,對于二分到的答案 \(mid\),我們計算 \(\sum\limits_{a_i<mid}(mid-a_i)\),如果小于等于 \(mid\) 就是合法答案。 時間複雜度 \(O(n\log n)\)。 Problem H 很容易想到的一個逆向思維是,所有的人不

access偏移注入原理-編程思維

前言:近段時間在學習access偏移注入時,在網上查詢了大量的資料,感覺很多資料講解的十分模糊并且我個人認為有很多不夠嚴謹的地方,于是我便在線下經過大量測試,寫出以下文章,如有錯誤,望指出。 如要轉載,請标明出處!! 一、認識偏移注入 偏移注入的適用背景: access數據庫與mysql不同,access數據庫沒有類似于mysql的information_schema這樣的系統數據庫,所以對于a

性能優化-使用雙buffer實現無鎖隊列-編程思維

借助本文,實現一種在“讀多寫一”場景下的無鎖實現方式 在我們的工作中,多線程編程是一件太稀松平常的事。在多線程環境下操作一個變量或者一塊緩存,如果不對其操作加以限制,輕則變量值或者緩存内容不符合預期,重則會産生異常,導緻進程崩潰。為了解決這個問題,操作系統提供了鎖、信号量以及條件變量等幾種線程同步機制供我們使用。如果每次操作都使用上述機制,在某些條件下(系統調用在很多情況下不會陷入内核),系

手機驗證碼登錄原理、風險和應對策略-編程思維

手機驗證碼登錄是一種常見的應用登錄方式,簡單方便,不用記憶密碼,市面上能見到的APP基本都支持這種登錄方式,很多應用還把登錄和注冊集成到了一起,注冊+登錄一氣呵成,給用戶省去了很多麻煩,頗有一機在手、天下我有的感覺。 登錄原理 手機驗證碼登錄的原理很簡單,對于一個正常的登錄流程,看下邊這張圖就夠了: 實際應用中會存在一些收不到驗證碼的情況,可能的原因如下: 在手機端,短信被某些軟件認為是垃圾

讀 Linux 像讀小說「GitHub 熱點速覽 v.22.03」-編程思維

本周特推選取了一個畫風有點意思的 Linux 代碼帶讀項目 flash-linux0.11-talk,希望有趣的文風能帶你讀完 Linux 代碼。當然畫風可以增加閱讀體驗,彩色标記也是一種學習方法——annotated_latex_equations 手把手教你學各種各樣彩色的公式注釋,那色彩就像是 GitHub 移動端新支持的快捷鍵功能的配色,非常的贊。 每周當然少不了實用小工具,比如 Fi

《開拍吧》可以對我們的工作有什麼啟示?-編程思維

最近在做規劃工作的時候碰到了兩個困境: 1)負責一塊産品線,在第一階段結束後找不到第二階段要做什麼,或者對想要做的事情不确信,一直在左右橫跳; 2)負責部分産品組委會的工作,但對于組委工作要做什麼,如何做好組委工作也不太确信; 而且這種“不太确信”似乎成為了常态,隔三差五就會發生。這說明一個問題,要麼是這個職位不應該做那些事情,要麼是自己不適崗了,總之很多事情不可控,很多事情沒答案,看了下模型,

更快的Maven構建工具mvnd和Gradle哪個更快?-編程思維

Maven 作為經典的項目構建工具相信很多人已經用很久了,但如果體驗過 Gradle,那感覺隻有兩個字“真香”。 前段時間測評了更快的 Maven 構建工具 mvnd,感覺性能挺高的,貌似有了種“沒必要再用 Gradle”的感覺了,而本文通過三者的性能對比,告訴你到底誰才是王者。 1.mvnd 簡介 mvnd 是 Maven Daemon 的縮寫 ,翻譯成中文就是 Maven 守護進程。mvnd

第55篇-回邊計數-編程思維

在前面介紹控制轉移指令時隻簡單介紹了相關字節碼解釋執行的主要邏輯,沒有介紹過統計相關的邏輯。對于控制轉移指令來說,通常會調用TemplateTable::branch(bool is_jsr, bool is_wide)函數生成相關的彙編代碼,這些彙編代碼會含有統計的邏輯,這一篇将詳細介紹。 控制轉移指令中,大部分都會調用TemplateTable::branch()函數生成統計相關的代碼,如下

編程進階之路,雖無捷徑但有長短-編程思維

前言:最近收到很多讀者朋友私信,問我如何學習編程,這個問題其實很難正面回答,而且本人也确信自己達不到指點别人學習的高度,這篇文章基于作者自己這幾年趟過的路,和大家聊聊編程學習的話題,僅供一些感到迷茫的朋友做點參考。 一、面對選擇 1、編程語言 學習編程的第一件事就是面對語言的選擇,編程語言五花八門種類繁多,不同的技術類型適應不同的應用場景,所以語言本身沒有高低之分存在即合理,學會做選擇才是入

【Python】我是如何使計算時間提速25.6倍的-編程思維

我是如何使計算時間提速25.6倍的 我的原始文檔:https://www.yuque.com/lart/blog/aemqfz 在顯著性目标檢測任務中有個重要的評價指标, E-measure, 需要使用在閉區間 [0, 255] 内連續變化的阈值對模型預測的灰度圖二值化. 直接的書寫方式就是使用 for 循環, 将對應的阈值送入指标得分計算函數中, 讓其計算分割後的預測結果和真值mask之間

我是如何使計算提速>150倍的-編程思維

我是如何使計算提速>150倍的 我的原始文檔:https://www.yuque.com/lart/blog/lwgt38 書接上文《我是如何使計算時間提速25.6倍》. 上篇文章提到, F-measure使用累計直方圖可以進一步加速計算, 但是E-measure卻沒有改出來. 在寫完上篇文章的那個晚上, 重新整理思路後, 我似乎想到了如何去使用累計直方圖來再次提速. 速度的制約 雖然