發表文章

[*nix] share TCL by Tmux

這本來是我原本列出的實踐標之一,起初以為只有 screen 指令可以達到,但要使用到 root 權限(才能讓兩個不同人連線),一時還以為要自己造輪子,感覺蠻困難的。直到最近,在學校主機玩 tmux 時,調 terminal type 調半天,東搞西搞,找資料,加上靈光一閃,竟想起了這以前解決不了的問題,便以 tmux 為關鍵字索性一找。 起初找到的 教程 ,只有說同個 group 才能用同一個 session。我對 session 產生出來的的檔案( 就是一個 socket 檔),看了看權限,果然,other 沒有權限,那把它 chmod 如何?結果一不小心就成功了啊喂?!我馬上在教程底下留言,不知道作者啥時才會看到。 由於要加的 flag 有點多,我就把它寫成了 script =>  C program  了,個人覺得這不算多此一舉,因為 session 的命名,flag 要加哪些等,臨時要跟另一個人溝通太麻煩,不如一行指令簡潔。 還有一點要考慮,那就是安全性。其中 tmux attach 有提供 -r flag 以便被分享者以唯讀模式 attach,但這個 flag 要被分享者自己加。所以我想這方面可以由程式改善。因為 attach 要指定 target session 的名稱。我的想法是兩者要分享螢幕時,session名稱可以不公開,把我寫成 script 的這段長長的指令改用 c system() 實現,執行 tmux 順便將 target session name 嵌在裡面,如果需要唯讀, -r flag 也寫進去。 如此要分享的話,他只能也只要執行那個執行檔就好,還不用加 session 的名字,當然執行檔的權限不可以設定 r 給被分享者啦,給 x 就好了。那個執行檔還可以寫成用過就自己刪掉,顆顆。 至於誰可以執行程式呢?怕閒雜人等來干擾,就用個 setfacl ,指定使用者給予執行權限就可以了。 目前我只有寫個簡單的 script 去簡化下 flag 的過程,要再加一層 C 程式去包裝還沒做。好像是第一次寫動態產生執行檔的程式呢!      

ncpc 賽後小記

打了三題 QQ 本來可能可以到五題的... 話說另一隊打到了rank 6,幫學校拿下了校內初賽主辦權,可是我看系上沒辦法有什麼改變,呵。 廢就是廢,邊緣人需要觀察一切,掌握一切,看透一切。 唉,我什麼時候能到達那種境界呢?

[Web] re:exchange rate crawler

呃...就是網頁的 css 改掉了 class name 也跟著改,所以原本 grep decimal 不管用了...要重寫 於是用前幾篇的 python url庫重練,這次感覺抓得沒有之前那麼針對性,比較通用,應該可以撐得更久一點bar ?!  

[Python] crawler func HTMLParser

承襲前篇的 submitter ,這篇就來講一下如何看送出去的結果。 我們要做的就是抓取網頁,然後分析出其中我們要的資料,然後簡潔的 show 出來。 廢話不多說,先引入函式庫。 import urllib2 # 一樣,抓網頁用的 from HTMLParser import HTMLParser #分析字串用的 接下來,來實作一下 Parser 繼承剛剛引入的 HTMLParser 類別。 HTMLPraser 中,我使用其中三個 method 就能完成這項任務,主要是實作這三個函式。( 其他函式 )     def handle_starttag(self , tag , attrs)     # 他會讀到開頭的tag , tag 是 html tag 類型 如 h1 , td , div ; attrs 是個 list 裡面有 屬性 map 值的關係     def handle_data(self , data)     # 他會讀到 開頭的 tag 和 結尾的 tag 之間的內容 ,    # 但由於沒有 tag 變數可供辨別,所以我用上面的 starttag 立個 flag     def handle_endtag(self , tag)     # 就是讀到結尾的 tag     先繼承HTMLParser類別 class rsParser(HTMLParser): 建構子來個初始化     def __init__(self):         HTMLParser.__init__(self) #呼叫父類別物件建構子         self.getData = False         self.lastTag = ""         self.probID = "" 實作 handle_starttag 函式     def handle_starttag(...

[Antergos] 筆電安裝及其中文化設定(一更)

圖片
=動機= 這篇是用Antergos打出來的 ww 可能是最近看了Mr. Robot的關係 ,想把作業系統改爲Linux 。 原本就對windows有些意見 ,要試試 kali 時 ,虛擬機又 run 不起來 ,這讓我徹底怒了 。 (前天win10更新又搞死虛擬機) 本來想要把整個硬碟刷掉,但老爸建議買一塊硬碟來裝就好,於是乎就買了塊來裝了。 把原本的拆下,裝上新的,決定來裝 Arch Linux 來折疼一下,結果搞了半天,又換 Kali 也裝不起來 , 最後找到了 Arch 的派生版 Antergos 也 QQ ... 回到宿舍,想說再來一次,用接 USB 的方式 直接裝,沒想到就成了! 因為重裝了三次 Arch (都是死在可恨的GUI) 對 pacman 已經有一定的熟練度了,所以用起 Antergos來格外順手~ (第一次Arch desktop manager 選 lightdm -> 死      二                                         選    slim   -> 死      三                                         選 gdm     -> 活   -> Xfce 死                                       ...

遠端喚醒電腦 magic package WOW

圖片
下載的GUI wol小程式 (on github 好地方),就真的只能Wake On Lan的樣子(恩...的樣子),然後老爸載的手機app竟然......WOW(Wake On Wan),跪了。 看著我小小的sony ericsson xperia,我不忍心再加重它的負擔,即使是小小幾KB的app也不要。就在山窮水盡之時,老爸說:何不自己寫一個,應該不會太難。 對啊,之前學過socket,送封包應該不會太難,而且我之前有寫成庫,應該很快。 magic package的原理是廣播欲喚醒裝置的mac(相當於身分證字號)十六次,WOL很直觀,就直接廣播就好了,一般是在9port使用UDP。 WOW呢?有兩種方式,一是VPN,一是連接埠轉發,就是轉port啦。由於還不會設定VPN,所以先設定port囉! 192.168.1.1 -> 進路由器(我家是用sapido rb 1800) -> NAT -> 虛擬伺服器 設定完後,我就啪啪啪啪,嗯?mac 是送string就可以嗎?啪啪啪啪,送。沒反應 QQ 沒辦法,上網查...原來udp socket寫法不同 mac 也要用byte來送啊... 雙手奉上 參考  (char 剛剛好是一byte 因為C沒有byte此種資料型態) 儘管寫的是WOL,只要IP改成實體IP就好了,之後port再用指定連接埠轉發的那一個,就可以達到WOW的效果了。 查一下 實體IP ,如果沒有申請靜態的話,每次數據機關掉或斷掉,便會重抓,可以寫個常駐程式上傳位址,或者直接申請ddns(這裡有 免費 的) 參考教程做一點修改

我應該更成熟點......

最近知道被放生了,感覺有點失落...... 想想,可能是之前對朋友開玩笑開的太過...真是太不成熟了,沒有拿捏好分寸,明明跟他沒有很熟,卻這麼自以為,我真的是太差勁了。 總歸一句,我還是太容易隨人起舞了,看到別人說,也忍不住上去說兩句,唉...... 感覺心中少了一大塊東西。非常的不安,求到的籤詩...看來命中與他們的緣分可能就這裡了... 落了髮,希望能靜下來好好想想。