<li id="q4aaq"><object id="q4aaq"></object></li>
<xmp id="q4aaq">
  • <button id="q4aaq"><li id="q4aaq"></li></button>
  • <optgroup id="q4aaq"><sup id="q4aaq"></sup></optgroup><center id="q4aaq"><acronym id="q4aaq"></acronym></center>
  • <strong id="q4aaq"></strong>
  • <nav id="q4aaq"><menu id="q4aaq"></menu></nav>
    Welcome to Snooda's Blog
    最近看到很多科技網站上提出,在ios10.3中引入了Apple File System,由此可以節省2GB的系統存儲空間,個人對這個說法是持一定懷疑態度的,畢竟這個縮減比例還是有點高的。

    昨天ios10.3 Beta3發布,決定實際測試一下升級效果。

    找了一部16GB ipod touch6,升級前為10.1.1版本。剩余空間<500M。系統總可用空間是12GB+

    安裝ios10.3 Beta3描述文件后重啟設備,可以看到新版本了,大小提示1.6GB,點擊下載并安裝,居然開始下載了,因為按現在的剩余空間是不夠存放rom的,進入容量頁面查看,發現可用容量持續上漲,按home進入主頁面檢查,發現app開始輪流顯示“清理中”。等app都清理完后,扣除已下載的rom占用空間,系統多出來1-2GB的可用容量。此時系統并未升級。

    然后進行升級,升級后進入系統,總可用空間依然是12GB+,大概比之前增加了500MB,可用空間比升級前(清理后)同步增加了500MB。

    綜上,升級后確實可用空間多出來2GB左右,但ios10.3升級本身只貢獻了500MB,其余大部分都是ios在準備升級階段調用清理操作節省出來的。

    所以對于不想升級系統、又想獲得空閑空間的同學,只需要點擊升級,就會觸發系統清理,清理完后停掉升級流程即可。







    Tags:
        今天寫了一個自動拉起腳本,調試的時候出了點狀況,導致啟動了很多個openvpn實例,并且還在不斷啟動中。對于使用同證書的實例,默認會后面的踢掉前面的,所以網絡就陷入了還沒連上就被踢掉的循環,無法登陸,也就失去了控制。

        首先嘗試打開server端的duplicate-cn支持。這樣每個連接都會分配到一個單獨ip,不會互相踢掉。但由于進程太多,每個進程連接上后都試圖刷新路由表,導致路由表不停變更,網絡依然不能連通。

        這時就需要從server端限制:只能有一個客戶端連接上。首先調研了下是否支持只接受第一個連接上的實例而忽略掉后面的連接請求,發現是沒有這個特性的。因為如果正常使用中客戶網絡閃斷,這種情況下就不得不等待很久session超時后才能連上,用戶體驗太差。

        對于網絡層面的控制,iptables是個很有效的利器。于是采用了如下的方式:
        1,首先設置DROP掉指定機器所有入包     iptables -I INPUT 1 -p udp -s xxx.xxx.xxx.xxx -j DROP
             這時候所有連入請求都會timeout。
        2,然后使用tcpdump host xxx.xxx.xxx.xxx
             查看所有連入請求的來源端口,選取其中一個。
        3,執行          iptables -I INPUT 1 -p udp -s xxx.xxx.xxx.xxx --source-port yyyyy -j ACCEPT
             為這個實例單獨開一個入口。

    等待幾秒,等待其重試連接,這時候只有這一個實例可以連入。成功恢復連接。

    這里需要注意,第一步應使用DROP而不是REJECT,因為前者會讓請求方重試的時間間隔更長一些,為后續操作贏得更多時間。









    Tags:
        早在大學的時候就買過一套電烙鐵。大概二三十塊吧。有一個電烙鐵、烙鐵架、松香、海綿、一小卷焊錫絲。當時也沒怎么用過,后來小焊錫絲找不到了。于是又買過3塊錢的一小管焊錫。前幾年試圖在洞洞板上焊接一個51最小系統,焊接的很痛苦。感覺焊錫絲很難溶化,并且化了也不往電路板上沾,都堆在烙鐵頭上。當時以為是因為操作技術問題。后來由于樹莓派、arduino的興起,很多傳感器都有焊接好的最小系統板賣了。只需要杜邦線插一下就能完成連接,焊接這事就放下了。

        前段時間買了一塊tm7705,排針沒有焊,于是又把塵封很久的設備翻了出來。依然難用,搞了很久也不行,上了助焊劑也毫無作用。思考了一下,既然焊錫絲不好化,是不是烙鐵溫度不夠?于是上京東搞了一個寶工的206焊臺,心想這下換了高級設備是不是就可以搞定了。。。買回來后發現依然如故。溫度調到350以下焊錫絲不化,400度以上能化但是不沾板,并且烙鐵頭很容易就燒死了。上網仔細搜了下教程。發現問題主要有兩個:一個是手法問題,即應該是烙鐵頭加熱引腳幾秒后,焊錫絲接觸烙鐵頭和引腳溶化焊接。而不是先把焊錫絲化到烙鐵頭上往引腳涂,因為這么操作焊盤溫度不夠,就會不沾錫,并且焊錫沾到引腳就凝固,會虛焊,焊點形狀也不好控制;第二個就是焊錫絲質量很可能有問題,有人提到焊錫絲不容易化或者焊點呈豆腐渣樣有一個原因是鉛和雜質比例太高。由于大部分情況下我的焊錫絲直接按到烙鐵頭上都不能融化,那么手法問題就是其次的了,焊錫絲質量的問題更大一些。于是決定重新買一些焊錫絲。


        調研了一下,出于健康考慮,現在工業生產用的焊錫已經不允許含鉛了。但是賣的焊錫絲很多還是傳統的鉛錫合金。這種焊錫絲熔點低,焊點亮,所以在diy市場里還是很受歡迎。我傾向于健康一些的無鉛焊錫。于是調研了一下。

        目前無鉛焊錫主要是錫銅合金,99.3%的錫和0.7%的銅,熔點227度。比傳統的63%錫鉛合金的183度要高了四十多度。還有比較小眾的錫銀合金,主要是音樂發燒友使用(個人對于那零點幾個點的銀能否發揮什么作用持保留態度,不過b格是夠了,可以號稱焊出來的板子比小米的還nb了,不但含黃金,還含白銀),熔點221度。還有黃花的錫銀銅鈰合金,含稀土不知道有什么特性。

        這次不敢隨便買了,準備還是選擇大品牌產品。首先還是考慮和焊臺同品牌的寶工,寶工的無鉛焊錫只有錫銅合金,含銀的那款是含鉛的。于是轉向考慮其他品牌,發現廣州黃花在烙鐵和焊錫市場上也比較受歡迎,于是選擇了黃花的錫銀焊錫。為了不把雞蛋放到同一個籃子里,還選了友邦的錫銅焊錫。前兩天收到了。做工比較精致,今天打開試了一把。剛開始心情還是比較忐忑的,畢竟無鉛焊錫焊接難度要高一點。先嘗試黃花錫銀,打開焊臺調到325度,十幾秒后溫度穩定。烙鐵加熱焊點->加焊錫,很快焊錫就融化了,向上抬起烙鐵頭,一個焊點就焊好了。。果然不是一個世界的體驗,換用友邦,也很順利。。。原來問題的根源在于幾塊錢的焊錫絲。。



        終于掌握了焊接技術,以后diy的自由度又高了一些,不用再忍受亂糟糟的線了。沒想到的是問題居然一直出在最不起眼的幾塊錢的焊錫絲上。。。搞diy還是不能馬虎啊,新手更應該用好東西。否則出了問題都不知道是啥原因。



    dns緩存nscd原理及相關知識

    [| 不指定 2016/06/12 15:05]
        由于sshd是支持包轉發的。所以最近配置了一些規則,將指定uid的包轉發到指定目標。通過統計包數量,發現tcp的數據是正常的,但dns請求包不生效,還是走原路徑。tcpdump抓包發現確實是發到系統配置的resolver那里去了。看了眼sshd的代碼,是使用了libc里面的res_query方法來做域名解析的。像gethostbyaddr也是使用的這個方法。考慮到可能是這里發生的問題,于是用strace抓包看了一眼。發現該方法是先去連接/var/run/nscd/socket。如果成功,則發送域名解析請求,然后由nscd服務進行dns解析。所以按uid來抓包會失效。

        nscd是一個緩存服務。會緩存passwd、hosts、resolv三類信息。和dnsmasq類似。先試圖停掉nscd服務再進行嘗試,果然進程在試圖連接/var/run/nscd/socket失敗后,轉為連接resolv.conf里指定的server,可以成功被iptables轉發。


        定位了具體問題原因后,開始尋找更多解決方案。停掉nscd固然最簡單,但會導致整個系統都失去dns緩存,對性能還是有一定影響的。于是尋找優化一些的方案。思路是對于指定進程繞過nscd機制。


        研究了一下。發現nscd為了避免自己的請求發送給自己導致死循環,調用了一個__nss_disable_nscd方法。調用該方法后即可關閉nscd機制。于是改動了一下sshd源碼,重新編譯了一個。再次重試。果然ok了。












    Tags: ,
    最近由于需要撥號到l2tp vpn服務器上。弄了一下linux下的客戶端xl2tpd
    其實xl2tpd既可以當服務端。又可以當客戶端。在本文里只介紹客戶端相關的功能

    安裝比較簡單。apt-get或者yum直接搜xl2tpd,裝上即可。沒有自己編譯也很簡單。
    注意依賴了/dev/ppp設備。如果不存在,需要
    mknod /dev/ppp c 108 0
    創建一下。

    配置文件/etc/xl2tpd/xl2tpd.conf
    [lac myvpn]
    name = 'myvpn'
    lns = myvpn
    pppoptfile = /etc/ppp/peers/myvpn.l2tpd
    ppp debug = yes

    配置文件 /etc/ppp/peers/myvpn.l2tpd
    remotename myvpn
    user "xxx"
    password "ooo"
    ipcp-accept-local
    ipcp-accept-remote
    refuse-eap
    require-mschap-v2
    noccp
    noauth
    noipdefault
    mtu 1410
    mru 1410
    usepeerdns
    debug
    lock
    connect-delay 5000


    然后就可以啟動xl2tpd。然后echo "c myvpn" > /var/run/xl2tpd/l2tp-control
    來連接了。

    注意ppp的配置里有:noipdefault  選項。
    其他很多資料都沒有這一項。包括阿里云的官方文檔。但在debian系里面。不加這個且機器有內網網卡時,是不太好用的。
    連接的ppp0設備會自動使用內網ip。導致很多奇葩的事情發生。

    noipdefault這個選項表示不使用本地默認ip分配策略。直接用服務器分配的。如果不要求每次撥號都使用固定ip的話,建議加上該參數




    Tags: ,
        mysql中經常用到的字段類型就是varchar和char。一般還會指定長度用來規定最長可以支持多長的內容。那么問題就來了。對于utf8字符集來講。一個字符所占的空間是1-6字節不等的。那么varchar(100)是指的字節數還是字符數呢?


        可以通過mysql官方文檔來看:
        http://dev.mysql.com/doc/refman/5.0/en/char.html
        

    The CHAR and VARCHAR types are declared with a length that indicates the maximum number of characters you want to store. For example, CHAR(30) can hold up to 30 characters.

        即支持的是30個字符(characters),而不是30字節(bytes)

        經測試,結果也是符合文檔的。varchar(30)可以存儲30個漢字


        附加問題:如果傳入了超出長度的內容,會有什么結果。

    If strict SQL mode is not enabled and you assign a value to a CHAR or VARCHAR column that exceeds the column's maximum length, the value is truncated to fit and a warning is generated.

         文檔中提到。默認情況下會截斷而不返回錯誤。如果需要返回錯誤,需要開啟strict mode










    Tags: ,

    更換了泛域名證書

    [| 不指定 2015/01/22 00:26]
        之前搞的單域名ssl證書要到期了,最近正好搞了個泛域名證書,換上了。

        好久沒更新blog了,比較忙。刷一下新文章。
        最近程序發現了個奇葩現象,即從文件載入的證書鏈用openssl校驗是通過的,而用curl遠程獲取的就校驗失敗,錯誤碼7。而這些內容寫入文件在下一次程序啟動時載入校驗,又是成功的。

        排查了各種內存泄露、不可見字符的可能性后。突然想起來是不是libcurl靜態鏈接了openssl跟主程序動態鏈接的打架。查看后發現libcurl未靜態鏈接openssl。

         不過這也是一個啟示。想起來既然curl也用到了openssl,那么它在最后cleanup的時候會不會把全局的openssl數據結構給釋放掉。


         嘗試了一下,果然好了。原來我在一個函數里開頭調用curl_global_init,結尾調用curl_global_cleanup。這樣的話在程序結束時就會釋放openssl的全局數據結構。導致后續調用證書校驗報錯。

         不過openssl也不夠友好,報證書簽名錯誤,讓人很難聯想到是初始化問題。


          不過aes加密部分并不受這個影響。
        又要到夏天了,氣溫上升,筆記本又熱起來。早就調研了筆記本風扇,當時是冬天,需求不強烈。現在是時候出手了。

         這種偏門的東西在b2c上是買不到的,只能求助萬能的淘寶。目前淘寶有如下幾個檔位,170+,120,85

         170+的價格倒是在那,但是很難說是不是正品,店鋪介紹里看說有指紋沒問題啥的。。。感覺靠譜度也就一般般。
         120區間有不少,看配圖什么的蠻有那么點意思,另外店家號稱85的是翻新貨。也不是沒可能。

         最后篩選了下北京的,有一家最近出貨量比較大,還有實體店地址且歡迎實體店購買,正好離得非常近,于是中午遛彎順便過去買了下。

         不得不說中關村現在確實是衰落了,e世界一層都關了,樓上人也不怎么多。坐電梯上樓,店鋪離的不遠,很快找到了,老板拿出兩個風扇,告訴我說這是原裝的,硅脂沒法復制,他們都做不出來。不太懂這個。我感覺就點幾點硅脂能有啥難度?不過這種配件也不寄希望于買到原廠正品啥啥的,降溫效果好就行。于是搞了個。


         晚上回家開始拆電腦,別的都好說,expresscard那里有個螺絲需要擰下來我忘記了,以為不用擰,結果主板搞不下來,我還以為是之前把外殼摔變形的原因,還用了一點蠻力,所幸最后發現這個問題及時糾正。。否則就呵呵了。

        新風扇跟原裝的不太一樣,新的是兩條熱管,細一些,老的是一條比較粗的熱管。一對比確實老風扇老態龍鐘了。


        換好開機,壓力測試。效果還是挺明顯的。之前待機狀態就有40+度,d殼很熱。壓力5分鐘后能到80+度。d殼熱的快能煮雞蛋了。更換后待機三十多度,壓力后能到60度,d殼雖然也比較熱了,不過熱點較分散,不像之前集中在cpu那一塊。至于靜音方面。只能說即使在全速運轉階段,也基本聽不到風扇的聲音。



         相當爽,電腦又可以哈皮的用下去了。





    Tags: , ,
        最近搞了個機器。想搞成同時支持openvz和kvm虛擬化技術的host。從原理上講認為問題不大,因為兩者分別是不同層面的虛擬化技術,一個是硬件級別虛擬化,一個是cgroup水平的進程級虛擬化(對這塊了解不深,說錯勿怪)。所以還是可能同時安裝的。

        搜了下方案,果然有個proxmox的發行版是解決這個需求的。看了下文檔,集成了一堆面板啥的,東西越多bug就越多。還是自己diy一個。

        由于openvz是需要打過patch的內核運行,而kvm則需要kvm和kvm_intel內核模塊的加載(amd的就是kvm_amd)。所以難點就是這個的兼容。其他用戶態的進程如果有沖突啥的都好解決。

        首先選用debian7(我喜歡debian),發現需要用openvz的源,源里使用的openvz內核是2.6.32。而debian7的內核目前是3.2。風險比較大。從源里拖了openvz內核deb包下來看,發現居然32位的內核不帶kvm模塊,而64位的才有。哭了。不知道他們咋搞的。于是64位系統搞起。結果發現kvm_intel加載不進去。報input/output err。用-f強制加載后報簽名被拒絕。估計編譯的時候哪里錯了,雖然有內核源碼和.config,不過還是不自己編譯了,太折騰。

        還是用debian6。debian6的官方源里已經包含openvz了。內核版本也是2.6,32系列。跟debian6默認內核版本相同。這個感覺靠譜。裝上重啟進入openvz內核。modprobe加載kvm內核模塊。ok,成功了。



         下一步就是進程和網絡上的調整了。都不是大問題。



         結論是:openvz目前還是建議用debian6官方源里的包。兼容性好。
    Tags: , ,
    分頁: 1/33 第一頁 1 2 3 4 5 6 7 8 9 10 下頁 最后頁 [ 顯示模式: 摘要 | 列表 ]
    色琪琪av男人的天堂-琪琪see色原网色原网站-天天谢天天谢天天要-欧美成人视频 做人爱c视频在线 两人做人爱费视频免费完整版 中文字幕 制服 亚洲 另类 中文字幕av 亚洲 欧美 中文字幕 在线