最近,在Github上看到有人用Python實(shí)現(xiàn)了《植物大戰(zhàn)僵尸》游戲,并開源了,這個項(xiàng)目使用Python將這個塔防游戲重新復(fù)現(xiàn)了一遍,盡管暫時沒有把所有要素都復(fù)現(xiàn)出來——目前只實(shí)現(xiàn)了部分植物和僵尸以及白天黑夜關(guān)卡而已,但足夠勾起一波回憶殺。
本文將介紹Linux下使用Shell處理文本時最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和參數(shù)都是最常用和最為實(shí)用的;對shell腳本使用的原則是命令單行書寫,盡量不要超過2行;如果有更為復(fù)雜的任務(wù)需求,還是考慮python吧。
在單片機(jī)編程中,有很多人會因?yàn)橐恍┟菜坪唵蔚奶幚矶褑栴}弄得亂七八糟,如林中蛛網(wǎng)一樣,錯綜復(fù)雜。而事實(shí)上,根據(jù)編程魔法之思想,對程序處理的過程嚴(yán)格劃分部門、各施其職、部門內(nèi)部互不干涉內(nèi)政,是成功編程的關(guān)鍵.
日常生產(chǎn)場景中,為了避免大量請求同時打在數(shù)據(jù)庫上導(dǎo)致故障,數(shù)據(jù)庫+緩存的方式已經(jīng)成了日常標(biāo)配。 對于讀取的部分,大家都很熟悉。但對于寫的部分,到底是先寫庫還是先寫緩存,這點(diǎn)可能困擾著很多人。
linux命令是對Linux系統(tǒng)進(jìn)行管理的命令。對于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤驅(qū)動器、鍵盤、鼠標(biāo),還是用戶等都是文件,Linux系統(tǒng)管理的命令是它正常運(yùn)行的核心。
本文介紹了如何在最常見的編碼方式(Unicode, UTF-8, ANSI)之間進(jìn)行轉(zhuǎn)換,結(jié)合代碼實(shí)例,清晰明了,方便讀者理解,例子也可以直接拿來使用。
這篇文章介紹了如何在最常見的編碼方式(Unicode, UTF-8, ANSI)之間進(jìn)行轉(zhuǎn)換,結(jié)合代碼實(shí)例,清晰明了,方便讀者理解,例子也可以直接拿來使用。
nullptr和NULL有什么區(qū)別?
本文向讀者介紹了如何避免內(nèi)存泄漏的方法和原則,在細(xì)節(jié)和大體方向上均給出一些可行性方案。讀者可以嘗試文中提出的方法,改進(jìn)自己的代碼,大大減少內(nèi)存泄漏的可能性。
像大白這種調(diào)包俠,深知不懂底層技術(shù)點(diǎn)就如同空中樓閣,再這樣下去面阿里p10是沒希望了。想到這里,我開始慌了,所以今天和大家一起學(xué)習(xí)個底層技術(shù)點(diǎn)-零拷貝Zero-Copy。
大多數(shù)時候我都是寫一些業(yè)務(wù)代碼,可能一堆 CRUD 就能解決問題,但這樣的工作對技術(shù)人的提升并不多,如何讓自己從業(yè)務(wù)中解脫出來找到寫代碼的樂趣呢,我做過一些嘗試,使用設(shè)計(jì)模式改善自己的業(yè)務(wù)代碼就是其中的一種。
小編對Linux這一塊的實(shí)際開發(fā)經(jīng)驗(yàn)雖然還不是很足,但也知道進(jìn)程間通信有那么幾種方式:管道、消息隊(duì)列、共享內(nèi)存、套接字等。某項(xiàng)目中使用了MQTT作為進(jìn)程間的通信方式,感覺很新穎,網(wǎng)上好像也比較少有看到使用MQTT來作為進(jìn)程間通信的方式的。這兩篇筆記我們就來一起學(xué)習(xí)一下這種方式。
只有5千行代碼的GuiLite是嵌入式、單片機(jī)中常用的GUI框架;它就是C++編寫,在GitHub有4.8K star,在Gitee有2K star??赡苣阌X得5千行能做什么?
本文以32位系統(tǒng)為例,詳細(xì)介紹了內(nèi)核空間(kernel space)和用戶空間(user space)。
武俠小說中,各路俠客綠林好漢都是從基本功開始一招一式學(xué)起,掌握了足夠多的招式后,加之勤學(xué)苦練,量變引起質(zhì)變,會有一天打開任督二脈頓悟出這些招式背后的哲學(xué)邏輯,成為一代宗師。在編程的學(xué)習(xí)過程中,我們何嘗不是從一招一式的函數(shù)、語法、特性等學(xué)起。
根據(jù)IEEE(國際電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)(Embedded System)是指以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
微控制器制造商的開發(fā)板,以及他們與開發(fā)板一起提供的軟件項(xiàng)目例程,在工程師著手一個新設(shè)計(jì)時可以提供很大幫助。但在設(shè)計(jì)項(xiàng)目完成其早期階段后,進(jìn)一步設(shè)計(jì)時,制造商提供的軟件也可能會導(dǎo)致一些問題。使用實(shí)時操作系統(tǒng)作為應(yīng)用程序代碼平臺的設(shè)計(jì)還面臨著許多挑戰(zhàn),比如如何將功能分配給不同的并行任務(wù)、如何設(shè)計(jì)高可靠的進(jìn)程間通信、以及如何在硬件上測試整個軟件包等問題。
很多初學(xué)者都不知道這個“do{...} while(0U)”作用和意義,甚至覺得這樣寫的代碼復(fù)雜且沒意義。相信使用過STM32Cube HAL庫的朋友都知道,源碼里面有許多do{...} while(0U)的宏定義語句。今天講的主要知識點(diǎn)是:HAL庫中do{...} while(0U)作用和意義。
在GitHub發(fā)布項(xiàng)目之前,你可以用免費(fèi)的官方代碼掃描程序來檢查Bug了。編程很難,難就難在常有Bug而不自知。
在軟件開發(fā)過程中,調(diào)試是必不可少的環(huán)節(jié),嵌入式操作系統(tǒng)的調(diào)試與桌面操作系統(tǒng)的調(diào)試相比有很大差別,嵌入式系統(tǒng)的可視化調(diào)試能力比桌面操作系統(tǒng)要弱一點(diǎn)。對于導(dǎo)航這種業(yè)務(wù)場景比較復(fù)雜的程序開發(fā),可視化調(diào)試環(huán)境能讓我們業(yè)務(wù)場景開發(fā)事半功倍,也能快速定位導(dǎo)航業(yè)務(wù)與車機(jī)中其他模塊交互出現(xiàn)的問題,提高開發(fā)過程中的調(diào)試效率。