sudo * 提示 command not found 解決

linux下經常遇到使用非root用戶安裝軟件,使用sudo時提示找不到命令。

比如使用nodejs時候,出現

sudo: node: command not found
sudo: npm: command not found

很多文章說export臨時修改環境變量或者直接sudo后chown指定命令所在文件夾的所有者,但是我們通常是在非root用戶下使用,所以只需在root用戶下增加部分軟連接即可 查看更多...

iScroll5實現卡片左右滑動及動態加載

iScroll5是在iScroll4的基礎重構而來,使用時發現網上大部分例子都是基于iScroll4,在iScroll5上面并不適用,比如橫向滾動、當前索引、元素對齊等,這些不在贅述,有需求可以考慮去看看源碼(重構過的源碼看起來清爽很多)。

因為自己需要一個卡片左右滑動的效果,同時還希望有邊界對齊的能力,不清楚這個效果有沒有類似實現,大概看了下,新版iScroll也不是很大,就直接拿來用了,效果如下圖所示:

iscroll5-1
查看更多...

安卓Adapter中getView方法重復執行及索引錯位問題解決

Android開發中,經常會用到ListView,當然,也會用到Adapter為ListView綁定數據。通常,我們采用繼承BaseAdapter并實現getView等方法的方式為ListView渲染數據,ListView中每個元素都會去調用getView做渲染。但是,如果ListView要展示數據非常龐大,創建成百上千個View是不可取的,于是乎,Android為我們提供了一套Recycler機制,可以重復利用已創建的View,降低對象開銷。

原理如下:

在一個完整的ListView第一次出現時,每個Item都是null的,getView的時候會跑到需要inflate一個Item的代碼段,假設整個view只能最多顯示10個item,那么當滑動到第11個Item的時候,第一個item會放入"recycler",如果第11個Item和放入"Recycler"的item的view一致,那么就會使用"Recycler"里面的Item來顯示,從而不用再重復inflate一次。

圖示如下:

adapter-recycler
查看更多...

微信小程序之我見

近幾天,互聯網圈子里炒得最火的,無非是微信推出的"小程序",雖然還只是內測,但已經被iOS、android、產品、運營、后端、以及剛入門的前端仔等行外人士炒成神了,相比近兩年html5熱潮,真是有過之而無不及。一直沒閑下來,今天總算抽出些時間,稍微發表下個人見解。

"小程序是一種不需要下載安裝即可使用的應用,它實現了應用'觸手可及'的夢想,用戶掃一掃或者搜一下即可打開應用。也體現了'用完即走'的理念,用戶不用關心是否安裝太多應用的問題。應用將無處不在,隨時可用,但又無需安裝卸載。"

這里想法美好,但現實很骨感,正如人所說,國內企業做產品,不會愿意用戶用完即走,這應該是個解決不了的痛點,所以,上述iOS、android的同學可以洗洗睡了,因為這玩意真搶不了你們什么,真有時間關注行外技術,倒不如去了解下hybird開發或者React Native之類。

至于產品、運營,這些人本身就很少懂技術,就像當年把webapp或是其他稱作h5,以致于現在h5在國內成為一個神一樣的名詞,但國際上卻不通用,所以,對于產品、運營的熱捧,實在是聽聽就好,不必當真。說什么和原生一樣的體驗,有什么用么? 查看更多...

為什么建議不要使用「h5」這個簡稱?

最近發現好多人喜歡將 HTML5 說成 h5,甚至是代指移動端的 Web 頁面或者 Web App。雖然說起來朗朗上口,但是小編真的不建議這樣來使用。

小編很早之前做過一個關于「h5 這個說法是否喜歡」的調查,總共有 552 位粉絲參與,最終結果是:有 16.7% 的人認為「很好」,37.5% 的認為「無所謂」,有 45.8% 的人認為「不喜歡」(投票數據的原始查看地址: http://vote.weibo.com/poll/2905710 )。那究竟為什么會有那么多人不喜歡「h5」這個簡稱呢?

「h5」這個簡稱非常不專業,容易造成誤導。

與 JavaScript 被簡稱為「JS」不同,據小編了解到的情況,h5 這個說法目前只在中國大陸地區的程序員中使用,臺灣、印度和美國等地區并沒有這個簡稱,會造成國內外技術說法不一致。而更重要的一點是,JS 是一個指代清晰的簡稱,沒有歧義,就指 JavaScript 這種程序語言。但 h5 卻不是,至少 HTML 中還有個 h5 標簽。 查看更多...

簡易Express資源合并中間件http-concat

相信很多前端童鞋都見過一些網站有如下url輸出js或者css

http://example.com/??script1.js,script2.js,build/script.js

http://example.com/??script1.js,script2.js,build/script.js?v=2016

http://example.com/??style1.css,style2.css,build/style.css

http://example.com/??style1.css,style2.css,build/style.css?v=2016

在以前,使用YUI、DOJO等企業前端庫的時候,往往會用到類似功能,最近使用express,搜了下似乎沒有類似中間件,索性自己寫一個,參數形式參考了阿里的nginx-http-concat(似乎目前大部分有此類功能的網站都是采用阿里的nginx模塊實現)。代碼如下:
查看更多...

使用iptables限制訪問網站指定端口

Linux用得比較少,所以對iptables也不是很熟悉,最近部署網站,因為對外的80端口是通過nginx轉發,而內部程序都是類似8080、3000之類的端口,不做處理的情況下,很可能會看到如:地址www.pswuul.tw、地址www.pswuul.tw:8080同時可以訪問的情況,這樣對于SEO其實是很不利的,比如cnodejs.org,經常會搜到NodeJS相關文章,但是路徑是cnodejs.org:8080,這樣一來給用戶帶來不便,二來多個相同內容也一定程度上降低權重,所以,我們要禁止對帶非80端口的路徑進行訪問。

看了相關文章,都是推薦iptables配置,嘗試一番后解決了手頭上問題,特記錄一下,利人利己。

配置很簡單,命令如下:

1、在tcp協議中,禁止所有的ip訪問本機的8080端口。

iptables -I INPUT -p tcp --dport 8080 -j DROP

2、允許127.0.0.1訪問本機的8080端口 查看更多...

Node應用的進程管理器之PM2

一直以來,沒有機會在商業項目、網站上正式用起來NodeJS,說起來挺遺憾的,最近公司網站重構,同時為了配合做些SEO優化,經過一系列篩選后選擇了使用NodeJS來支撐前端展現。

在剛接觸NodeJS時,也像很多人一樣,想問有沒有針對NodeJS的熱部署方案,后面發現windows下使用nodemon挺好用,但只是簡單的自動重載,似乎放到網站上有些不夠用,看到翻譯后的express官網有介紹進程管理器StrongLoop Process Manager、PM2和Forever,StrongLoop Process Manager是IBM一家子公司維護的,不過國內沒見太多人用,大部分都是選擇Forever或者PM2(似乎現在PM2使用率更高),對比后選擇了PM2。

PM2 是一個帶有負載均衡功能的 Node 應用的進程管理器。使用它,可以充分利用CPU多核優勢,讓你的NodeJS程序完全應用服務器CPU,并且可以保證進程"永遠在線",同時,可以實現0秒重載等。

PM2主要特性如下:

1、內建負載均衡(使用 Node cluster 集群模塊)
2、后臺運行
3、0 秒停機重載,因為帶了有負載均衡功能,可以使用pm2 gracefulReload app來實現平滑重載
4、具有 Ubuntu 、CentOS等啟動腳本,可以簡單實現開機自動啟動
5、停止不穩定的進程(避免無限循環) 查看更多...

我為什么選擇Nunjucks作為NodeJS模板引擎

最近換了工作,在新的工作中,需要實現后端渲染,故而一改最初的純html+js形式,選擇頁面框架、TDK及部分頁面后端渲染,由于后臺采用java開發,一開始曾考慮另起一個tomcat服務,用于渲染前端頁面,而實際搭建完框架后發現,一年多不碰java(期間雖然用過Groovy、kotlin,但實際開發起來還是不如js來得暢快),已經對java的繁瑣有些不耐煩,最后轉而選擇采用NodeJS做后端渲染,一來部分前端模板可以復用(后面發現復用其實是個很糾結的想法),二來做前端開發的兄弟也可以快速上手,相比他們并不懂的java來說,畢竟NodeJS更容易學習接受。

確定了適用NodeJS,下面就確定一下大概框架,采用了目前常見的組合——express+template,因為最初前端使用了所謂最快的模板引擎artTemplate,這里tempate想進行復用,就采用了服務器版artTemplate,實際測試發現并不符合我的需求,由于最近一年使用PHP的YII框架,其中模板layout可以使用block,很方便重寫樣式、腳本等部分,這里實測后發現,后端模板如果沒有layout,基本和寫純靜態無異了。 查看更多...

非深戶出入境隨筆

一直以來,感覺護照、港澳通什么的辦起來挺麻煩,來深三四年,硬是沒去辦,前陣子聽朋友說現在非深戶在深圳可以直接憑身份證辦理護照、港澳通等,并不需要戶口之類的,抱著試試看的態度預約了,提前去照相館拍了專用照片,拿了回執,預約的日子到了,拿著照片、回執和身份證到辦事大廳,取號、辦證、繳費一氣呵成,預約時間下午三點到四點,兩點五十五左右到,離開時才三點十分,不得不為民警同志的高效點個贊啊。 查看更多...

黑龙江22选5开奖