How to implement fiber

文章目錄 Source Code

Tag matching using Regex

文章目錄 Handling Nested TagsOptimization  Single-character tag matching我們通常會碰到對字串中的被tag包圍的內容進行匹配的情況,比如abc "Hello, world"我們需要匹配""中的字串,那麼可以使用如下的regex

awk array subscriptor type

awk的array是關聯陣列,由於awk允許string和numeric相互操作,所以需要小心當使用numeric和string作為array下標時的區別。awk的array的下標都是string類型,對於Non-string類型的下標,將首先將Non-string轉換成string,在進行索引。 awk有一個內建變數CONVFMT用於完成numeric到string的轉換,我們可以改變CONVFMT來改變轉換的結果,當然對於integer,CONVFMT不影響轉換結果。預設的CONVMT為"%

Win32 Exit code

  對於進程或者線程而言,在結束時都有一個exit code。如果我們在windows的cmd中執行完一個程式後,那麼我們可以通過cmd的%ERRORLEVEL%變數來獲得程式的exit code。而在Linux的shell中,我們可以通過$?變數來獲得。 進程的exit code其實就是主線程的exit code,因為一個進程至少含有一個線程,而第一個被建立的線程稱之為主線程(main thread),其他線程稱之為輔助線程(worker

Positive Rotation Direction in 2D

在3D中,我們很容易辨認一個旋轉的的正方向和反方向。假設我們使用左手系,那麼繞Z正方向的旋轉就應該如下如所示: 如果是右手系,那麼繞Z軸的正方向的旋轉應該如下如所示:但是在2D中,我們怎麼來區別正方向呢。我們可以假設我們依然是繞著一個隱藏的Z軸進行旋轉,而Z的正方向根據使用左手系和右手系而不同。假設我們使用螢幕座標系來表示一個2D座標系,那麼此時如果我們使用右手系,則隱藏的Z就是向螢幕內的,但是如果我們使用左手系,那麼Z就是應該向螢幕外的。但是我們可以看到,無論對於左手系還是右手系,旋轉方向總是

eventlet SMTP Relay server

# import the standard smtplib libraryimport smtplibfrom eventlet import patcherpatcher.monkey_patch(all=False, socket=True) # patch socket and sslimport eventletimport sysimport emailimport getoptdef local_property(func): return property(**func())

Jam header file scanning test

Why在使用Jam建立目標依賴的過程中,有時需要根據source的內容動態建立依賴,例如一個c/c++的源檔案,一般#include其他檔案,我們需要把#include也作為source加入到依賴裡,這樣的好處很明顯,就是當標頭檔更新了我們也可以自動build target,並且不需要手動建立和維護這些對標頭檔的依賴。HowJam中有關header file searching的變數一共4個,分別是HDRSCAN  - 一個egrep

[筆記] 求兩個向量之間的旋轉角

 假設我們有v1、v2,現在我們要求v1->v2的旋轉角,並由此來構造一個旋轉矩陣。這裡有多種方法可選: (1) 我們可以先求出點積,之後調用acos函數求出角度。這裡有一個問題,由於acos返回的值在[0, pi]之內,這樣當v1->v2的夾角大於pi時我們將得不到所需的結果。假設夾角為theta > pi,v1繞n旋轉theta得到了v2,其實就等價於v1經過-n旋轉2pi - theta得到v2。此時2pi - theta <

關於非成員運算子和成員運算子的區別

運算子的重載一般我們會使用以下兩種形式成員函數 非成員函數 其實這兩種定義不僅在文法上,在語義上也是有差別的。文法上,定義為成員函數,比如 operator+=,只接受一個參數,而非成員函數接受2個參數語義上,這涉及到臨時對象無法綁定到左值引用的問題,比如我們重載operator +=, operator ++struct foo{#ifndef NON_MEMBER_OPERATOR foo& operator +=(const foo& rhs) {

Monkey patcher for Lua

寫了一個簡單的Monkey patcher,可以用這個patcher對已有的module或者table進行Patch,當前只支援對function進行patch。呈上代碼require 'list'require 'string_ext'require 'table_ext'local assert = assertlocal error = errorlocal getmetatable = getmetatablelocal next =

重新導向Bash命令——time

前言:      由於需要獲得一個程式的已耗用時間,我們可以在Shell裡簡單地調用time command的形式來擷取一個程式啟動並執行real, user, system等時間資訊,但是預設輸出的形式類似:      real  0m0.077s   user  0m0.077s   sys   0m0.077s 假定我們只關心使用者態時間,那麼可以直接使用time command | grep user來擷取。但是再使用這個命令後,我們卻無法像往常一樣grep到我們想要的資訊。於是man

Delete elements while iterating a list

文章目錄  從後向前遍曆並刪除元素 使用列表解析(list comprehension) 使用filter 使用itertools模組Manual Loop and remove效能reference 當我們想要在遍曆一個list的同時去刪除元素的時候,可能會遇到一些問題。先看一下下面的代碼my_list = [1, 2, 4, 5]for elem in my_list: if elem % 2 == 0:

Empty class and optimization

What is empty class and why worth optimizationEmpty class顧名思義就是空類,比如 class empty {};這裡empty顯然是一個空類,什麼成員都沒有。但是空類不限於這種形式,對於只有成員函數,並且沒有non-static data member的類,也可以是空類。class empty{public: static void f(); void f();};class empty_too : public empty {

eventlet implementation explained 1

Eventlet is an asynchronouse I/O library which is based ongreenlet. We can write very efficient network programms with eventlet without using threads. So let’s see how it is implemented. We start from an echo server example which you can find in

偽靜態和靜態混合設定出錯,沒有為副檔名.html

 在設定偽靜態和靜態設定檔時搞不清了,不知怎麼設定同時訪問。有httpHandlers、buildProviders和httpModules三種配置。開始 就一種httpModules就可以實現偽靜態,<system.web><httpModules> <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/> </httpModules><

浮點數能夠精確表示的整數的範圍

有些指令碼語言,比如awk,lua中都是使用浮點數來儲存整數的,也就是說,我們在語言中使用的整數,在語言內部是使用浮點數來表示的。我們知道,浮點數的運算中通常存在著一定的誤差,所以整數是否能被浮點數精確表示呢?答案是可以,不過不是所有範圍的整數都可以被精確的表示。由於浮點數精度的問題,所以浮點數的分布也就呈現出非均勻分布。先簡單介紹一下一個常用的浮點數在電腦中的組成,最常用的浮點數標記法是IEEE754標準,對於這個標準,可以參考[1]上面就是常用浮點數的表示了,通常sign佔用1bit,對於單

Issue of implementing profiling timer on some defective hardwares using QPF

在使用QueryPerformanceCounter和QueryPerformanceFrequency來實現Timer時,需要注意一個問題,就是使用QPF計算所得,可能比GetTickCount來大許多,這可能是因為硬體問題造成的,所以可能需要修正(或者因為這些硬體太老了,也不需要修正?)。 相關的資料在微軟的知識庫中有介紹:Performance counter value may unexpectedly leap

我的程式人生在哪裡

三年前我滿懷在理想來到了省城一家軟體培訓學校,以為能實現我的理想。一開始覺得挺快樂,,每完成一個程式內心就有一種成就感。可是到後來對軟體和網路的瞭解深入後發現自己的技術和認識簡直是太微不足道了,猶如井底之蛙。在我畢業那會兒正趕上金融危機,找工作成了問題,各大公司紛紛抬高門檻,經曆四處碰壁以後我改變了策略:從小公司幹起。於是我在一家啥也不限制的單位裡領導起一群大學生。一開始老闆給我們描畫著美好的藍圖,我們聽得如癡如醉。等到正式工作了才發現事實比理想殘酷的多多。機器是三年前網吧最流行的配置,系統是經

Zero a pod-struct object

有時我們希望要將一個結構對象清零。此時我們常用的方法是調用memset。來看一下代碼#include <cstring>struct pod_struct {#ifdef BIG_POD_STRUCT int a[128];#else int a; int b;#endif};int main(){ pod_struct pod; std::memset(&pod, 0,

Module & Package

module是一個Python檔案,而package是一個目錄結構。package中必須包含__init__.py, 該檔案可以為空白,主要作用是讓python識別這個目錄為package。__init__.py中可以使用__all__這個列表來指定在from this_module import *時時,哪些模組會被自動載入__all__ = [ 'test' ]

總頁數: 61357 1 .... 17347 17348 17349 17350 17351 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.