Time of Update: 2018-12-03
PostgreSQL中的update語句對alias的支援沒有select中支援的完善,有個不大不小的問題。雖然不嚴重,但不知道的話還是會引起很大的困惑。
Time of Update: 2018-12-03
一直很疑惑fork方法如何做到返回兩次,今天認真看了看書,其實大家都說的“返回兩次”在表達上是不清楚的。fork並沒有真正的返回兩次,它依然返回了一次,只是OS對fork進行的操作使得我們看起來它返回了兩次而已。搜到一篇文章,說的還比較清楚。收藏下來吧。http://hi.baidu.com/gsk_neu/blog/item/31cdebefcf24ee36acafd5ea.html2007-01-25
Time of Update: 2018-12-03
plproxy能夠在PostgreSQL上啟動並執行一種過程語言,能夠完成對遠端資料庫的調用,並能夠完成資料切片的功能。資料流處理過程如所示: 首先需要明確的是plproxy只能對使用者自定的方法才有小,如果想達到對sql語句的無條件轉寄,plproxy是做不到的。比如希望所有的select * from tablename 都轉寄到cluster1上,所有的update語句都轉寄到cluster2上,是不能通過plproxy做到的。
Time of Update: 2018-12-03
其實這三個部分涉及的很廣,但是這裡只簡單的說一下模型。首先來看一下bus程式部分:/*多出來了一個出註冊匯流排裝置*/#include <linux/device.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/string.h>MODULE_AUTHOR("David
Time of Update: 2018-12-03
二者並沒有嚴格的效率高低之分,甚至依賴於資料庫中資料的組織方式。 exists的效率依賴於匹配度,join的效率則比較穩定。比如,對 select * from tableA as ta where exists (select 1from tableB as tb where ta.id = tb.id); 每掃描ta一行,就會掃描tb,遇到匹配就返回true,沒遇到匹配就會把tb一直掃描下去。 舉個極端, tb中每行的id都與ta中每行id相同 即 ta id 1
Time of Update: 2018-12-03
這周5和周6參加了兩天公司組織的Agile相關知識的培訓,對Agile的認識比以前更多了一些。初次接觸Agile大概在四五年前,大約是剛上研究生的時候。在學校的圖書館中看到了敏捷開發和極限編程(XP)等字眼的書,當時沒太在意,感覺自身的專業方向不搭邊,隨便翻翻看,發現也沒怎麼看懂,囧。 從這幾年的工作經驗來開,當時沒看懂是應該的,看懂了才是怪事。Agile的開發模式需要有相當經曆的開發經驗的人才能夠理解,因為這是一個“草根”的開發模式,或者說做事哲學。 1.
Time of Update: 2018-12-03
1,電阻式觸控螢幕實物觸控螢幕附著在顯示器的表面,與顯示器相配合使用,如果能測量出觸摸點在螢幕上的座標位置,則可根據顯示屏上對應座標點的顯示內容或圖符獲知觸摸者的意圖。觸控螢幕按其技術原理可分為五類:向量壓力感測式、電阻式、電容式、紅外線式、表面聲波式,其中電阻式觸控螢幕在嵌入式系統中用的較多。為了防止觸控螢幕和LCD混淆,來張實物圖,這就是我們要瞭解在四線觸控螢幕,咋一看就是一片一玻璃,下面我們一點一點分析,看它是如何工作的2,電阻式觸控螢幕結構如所示,電阻觸控螢幕是一塊4層的透明的複合薄膜屏
Time of Update: 2018-12-03
RMI公司的Superscalar XLP處理器(8核): Cavium Networks 的 Octeon處理器(CN58xx有16個核): 其實Octeon 2 有32個核的: 著名的通訊軟體供應商,比如6Wind, windriver, 和Continuous Computing這些公司,都支援RMI XLP 或
Time of Update: 2018-12-03
在團隊開發的過程中使用一定的規範來限制和疏導不同人的開發風格是必要的,每個人的經曆、經驗、能力都不同,為了避免寫出來的代碼成一團漿糊,必須有一個比較詳盡的編碼風格和一定的代碼處理方式。如代碼中的常量處理、類檔案路徑分布、命名空間的處理、異常處理、參數傳回值處理等。 從技術的角度來講,上述的特定自然是越詳細越好,大家完全遵守是最好的,所有的代碼好像都是一個人完成的。這樣的限制要求在軟體行業或者是生命週期很長的產品中是很有必要的,但是在Web開發中呢?
Time of Update: 2018-12-03
在http1.1中request和reponse header中都有可能出現一個connection的頭,此header的含義是當client和server通訊時對於長連結如何進行處理。 在http1.1中,client和server都是預設對方支援長連結的,
Time of Update: 2018-12-03
經常使用到的處理序間通訊有:管道、訊息佇列和共用記憶體。 管道 最開始出現的管道是用於具有血緣關係的進程之間共用資料的。父進程首先建立一個管道,然後再fork()出子進程,子進程自動共用對管道的存取權限。這種管道是沒有名字的(只有進程中的一個標識符進行標識),因此也稱為匿名管道。 如我們在shell中運行 ls * | grep foo
Time of Update: 2018-12-03
1. 什麼是pgbouncer PGBouncer是一個輕量級的針對PostgreSQL的資料庫連接池工具,能夠給用戶端提供一個統一的連結視圖。 PgBouncer的作用 a.PgBouncer可以在後端資料庫和前端應用間建立串連的橋樑,由PgBouncer去處理和後端資料庫的串連關係。 b.對用戶端串連進行限制,預防過多或者惡意的串連請求。 PgBouncer的特點 a.記憶體消耗低(預設為2k/串連),因為Bouncer不需要每次都接受完整的資料包
Time of Update: 2018-12-03
對驅動程式的字元裝置的操作整體可以分為兩部分,分別是對裝置號的操作和對裝置的操作。一、基礎知識1.主裝置號用來辨別哪類裝置,次裝置號用來辨別哪個裝置(同類型的裝置)。2.用dev_t來描述住次裝置號,其實主次裝置號的描述就是一個32位的整數。高12位是主裝置號,低20十位是次裝置號。3.使用MAJOR(dev_t dev)宏提取主裝置號,使用MINOR(dev_t
Time of Update: 2018-12-03
vector中儲存類的指標類型時,在使用remove或者erase進行元素的刪除時,需要防止記憶體泄露的發生。一般儲存到vector中的元素都是手工new出來的對象,這些對象在必須手工進行銷毀以防止記憶體泄露。 vector的remove或者erase僅僅是把該指標本身從vector中清除掉,並重新copy剩下的元素產生一個新的vector對象,並不負責對象本身的清除。因此需要使用delete清空。 若指標類型是基類,那還要為基類定義一個虛擬解構函式
Time of Update: 2018-12-03
幾個主要的模組的都寫完了,下面開始介紹一下其他的函數。和net_open對應的函數:/* The inverse routine to net_open(). *//*①停止隊列②關閉網卡③釋放中斷*/static int net_close(struct net_device *dev){netif_stop_queue(dev);writereg(dev, PP_RxCFG, 0);writereg(dev, PP_TxCFG, 0);writereg(dev, PP_BufCFG, 0);
Time of Update: 2018-12-03
觸控螢幕的驅動程式在不是使用input子系統的實現過程中,其實和普通的字元裝置驅動沒有太大的差別,只要按照觸控螢幕那幾個步驟正常進行就可以。①s3c2410_ts_init函數,這是整個程式的入口處。實現了各類初始化的作用。/*裝置初始化函數*/static int __init s3c2410_ts_init(void){int ret;tsEvent = tsEvent_dummy;/* 註冊字元裝置第一個參數為0表示自動分配*/ret = register_chrdev(0,
Time of Update: 2018-12-03
為了能夠有效控制多個進程之間的溝通過程,保證溝通過程的有序和和諧,OS必須提供一定的同步機制保證進程之間不會自說自話而是有效協同工作。比如在共用記憶體的通訊方式中,兩個或者多個進程都要對共用的記憶體進行資料寫入,那麼怎麼才能保證一個進程在寫入的過程中不被其它的進程打斷,保證資料的完整性呢?又怎麼保證讀取進程在讀取資料的過程中資料不會變動,保證讀取出的資料是完整有效呢? 常用的同步方式有: 互斥鎖、條件變數、讀寫鎖、記錄鎖(檔案鎖)和號誌. 互斥鎖
Time of Update: 2018-12-03
沒說程式之前先一張,這個圖方便理解input子系統下的觸控螢幕的實現。關於input子系統的實現在前幾篇部落格中已經實現了input子系統的按鍵驅動。下面開始說觸控螢幕的驅動程式。在說之前先結合上面的圖說一下幾個主要的函數的調用情況。個中斷函數的調用次序: 先是stylus_updown TC中斷處理函數, 如果要是壓下則調用touch_timer_fire來啟動ADC轉換, 在ADC轉換結束之後調用stylus_action。程式中前面定義的宏和變數:/* For
Time of Update: 2018-12-03
總是忘記進行編譯的幾個主要步驟,寫下來,增強記憶。大牛和小牛可以忽略掉這篇文章。首先是下載核心:網站www.kernel.org。(其實菜鳥階段哪有自己的核心啊,都是人家移植的差不多了的了。)然後進行解壓,這些就不說了。 第一步:進入核心的/arch/arm/configs目錄,重新命名類似的config或者完全和自己打單板相關的config為.config。代碼如下:cp config_mini2440_w35
Time of Update: 2018-12-03
昨天晚上開始看LCD發現前面匯流排部分掌握的不是很好,後來總結原因,一是很早就明白了大概的匯流排原理,二是匯流排學習的時候沒有出現大常式,三是那是端午假期剛回來,沒狀態。算了,不找理由了,寫下來基礎知識,鞏固一下吧。匯流排是處理器和一個或多個裝置之間的通道,在裝置模型中,所有的裝置都通過匯流排相連,甚至是內部的虛擬"platform"匯流排。可以通過ls -l /sys/bus看到系統載入的所有匯流排。drwxr-xr-x root root 1970-01-0