原创 sqlcipher開源項目的ubuntu編譯和交叉編譯

sqlcipher是一個對sqlite數據庫進行aes256加密的開源庫,其強大的跨平臺性讓它被許多知名企業使用,例如三星、摩托羅拉、蘋果等等,從ios2-ios6蘋果一直採用sqlcipher,安卓平臺可以支持os2.x-os4

原创 ubuntu16+ideaIC+rebar3搭建erlang開發環境

一、ubuntu16系統 二、安裝各種庫 sudo apt-get install build-essential sudo apt-get install libncurses5-dev sudo

原创 v4l2採集代碼

雖然網上很多了,還是貼一下吧,自己剛入門的時候也是找苦逼很久找代碼,代碼我也是總結的,算是轉載吧。 一、v4l2_uvc.c void get_cam_info(struct camera *cam) { if(ioct

原创 歸併排序-《算法導論》學習筆記二

算法導論第二章3小節講到分治法,即將大問題化解爲規模小一些的同類問題,這樣先處理小問題,再合併兩個小問題再解決,遞歸的思路。按照書上的僞代碼,寫了c算法。 #include <stdio.h> #include <time.h>

原创 遞歸插入排序-《算法導論》學習筆記三

算法導論第二章結尾練習2.3-4提到將插入排序寫遞歸版本,然後嘗試寫了個,本來寫了就好了,但是調試的時候排序10w個數可以,排序100w個數就段錯誤,分析了一下,把結果放上來以後查看,先貼代碼: #include <stdio.h

原创 C時間堆

跟上一篇,這裏寫一下時間堆: 時間輪的滴答是固定以指定的槽間隔觸發,而時間堆是以定時器堆中的最小到期時間做定時,也就是alarm(minTimeout),一旦定時器被觸發,那麼就刪除此定時器,更新時間堆,將新的最小到期時間定時器作

原创 erlang rebar3配置文件

rebar3的簡單使用可以參考rebar3的官方文檔。以下講解一些rebar3的配置,初入erlang,理解還不甚深刻。 用rebar3進行工程創建,會生成rebar.config文件,貼一些配置的使用方法 一、編譯設置

原创 c半同步半異步進程池模型之cgi服務器

對半同步半異步進程池模型垂涎已久,這次中秋放假擼了下代碼。 模型的簡單介紹:主進程創建幾個子進程作爲工作進程,主進程監聽客戶端connect事件,一旦有連接事件,即通過round robin(簡單輪詢)選取一個子進程, 通過父子進

原创 erlang編寫rebar3插件

一、生成插件工程 假設插件名爲testp,執行rebar3 new plugins testp,即生成了插件工程項目,查看目錄結構如圖: testp.erl文件調用初始化的代碼,而插件最重要的代碼在testp_prv.

原创 攝像頭v4l2採集中的mmap

用法: buffers[i].start = (unsigned char *)mmap(NULL, cam->buf.length,

原创 yuyv(yuv422)轉換爲yuv420p

今天遇到一個問題,我的攝像頭採集到的數據是yuyv格式(屬於yuv422),而X264在進行編碼的時候需要標準的YUV(4:2:0)。所以有一個yuv422toyuv420的轉換。在網上找了半天找到的方法拿過來轉換了查看都很花。於

原创 trie樹-《算法導論》學習筆記十四

引用一下百度百科的話吧: Trie樹,又稱單詞查找樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用於統計,排序和保存大量的字符串(但不僅限於字符串),所以經常被搜索引擎系統用於文本詞頻統計。它的優點是:利用字符串的公共前綴來減少查詢

原创 Erlang Abstract Syntax Tree和彙編字節碼

一、抽象語法樹簡介 抽象語法樹(Abstract Syntax Tree)是源代碼的抽象語法結構的樹狀表示。 抽象語法樹是解析器(parser)的產物,解析器廣義來說輸入一般是程序的源碼,輸出一般是語法樹(

原创 paxos-simple

上週給組裏分享課程,其中講到了paxos,覺得沒講好,遂決定看看paxos論文,看的時候有的枯澀的地方就翻譯到文本里記錄,翻譯得越來越多,索性都翻譯了吧 ... 1 介紹 在實現一個容錯分佈式系統時,人們認爲Paxos算法理解起來很困

原创 erlang底層c定時器設計-Erlang源碼學習二

Erlang底層的定時器實現位於源碼的erts/emulator/beam/time.c文件,用時間輪的方式動態添加和刪除定時器,結構體名爲typedef struct ErtsTimerWheel_ ErtsTimerWheel,每一個