網頁

2019年10月28日 星期一

設定 julia 編輯環境(二): Sublime 篇

我最喜愛用的編輯器除了 vim 另外就是Sublime,上篇介紹了 julia-vim 的安裝,
這篇就來說說 Sublime 的設定。 

根據 https://packagecontrol.io/installation 提供的方法在此說明 Sublime 增加Julia 語法的方式

1. 首先開啟 Sublime,在View功能選單下選擇 Show Console


將上述網址的代碼貼上:
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

2. 這時在 Preferences 選單會多出一個 Package Control 的功能,點選它


3. 用滑鼠選擇 Install Package


4. 輸入要安裝的 Package,juia
這時會出現很多 julia 相關的 Package,就選第一個 julia,這是 for Sublime 2 / 3 版本,
功能是在編輯 julia 程式時會讓語法高亮(highlighting) 顯示。


5. 到 View 功能選單選擇 Syntax,選擇語法為 Julia,這樣就可以了。


接下來就可以開始使用了。


相關參考:
1. 設定 julia 編輯環境(一): vim 篇



設定 julia 編輯環境(一): vim 篇

安裝 julia-vim 開啟終端機輸入:
git clone git://github.com/JuliaEditorSupport/julia-vim.git
cd julia-vim
mkdir -p ~/.vim
cp -R * ~/.vim



安裝好 julia-vim之後就可以直接編輯 .jl 結尾的檔案了。

那安裝 julia-vim 的好處是什麼呢?
Julia語言有個很棒的特點就是它支援 unicode input,所以我們在命名變數時,
可以用各種unicode符號來作為變數名稱,其最大的好處就是讓我們的程式碼變得更直觀、
更容易看懂。
可以很簡單打出 ∑ 這個符號 (\sum TAB),看起來是不是很像數學公式更直觀呢?
例如:


相關參考:
1. 設定 julia 編輯環境(二): Sublime 篇



2019年10月27日 星期日

使用 Julia 讀取TSK log 檔案

安裝好 Julia後第一個作業就是練習檔案實作,我用TSK的 log 檔案來練習。
TSK的 log 檔案是一個2進制檔,每筆紀錄用 0x00 當作結束,如下圖:

接下來就是開啟檔案的寫法
fin = open(filename)
fin 是一個用於輸入的檔案串流,當不使用的時候可以用 close(fin)來關閉它。

接著用 read指令將 fin 指定的檔案讀取進來,轉成字串型態,放入 str 變數:
str = read(fin, String)

由於剛剛講過,log檔案每筆資料是以 0x00結束,因此要將字串中的 0x00 換成 \n (換行)
str2 = replace(str, r"\0" => "\n")

然後將最後的結果str2印出
println(str2)

程式碼如下:
fin = open("LOG_1.DAT")
org_s = read(fin, String)
aft_s = replace(org_s, r"\0" => "\n")
println(aft_s)


執行結果:

因為這樣每次只能開啟一個固定檔案名稱,下面就用 ARGS 外部指定檔案名稱當作參數
傳入程式,用一個迴圈去遍歷ARGS陣列,代碼如下:
for i in ARGS
    ...
    ...
end

實作的程式很簡單就原本的程式外再加上迴圈
for i in ARGS
    println(i)
    fin = open(i)
    org_s = read(fin, String)
    aft_s = replace(org_s, r"\0" => "\n")
    println(aft_s)
end


這樣我就可以同時輸入多個檔案依序讀取並印出:
julia prog.jl LOG_1 LOG_2 LOG_3 . . . 

執行結果如下:

因為檔案很大可以用重新導向到一個文字檔:
julia prog.jl LOG_1 LOG_2 LOG_3 . . .  > text_filename

程式碼可以參考:
https://glot.io/snippets/fha91jgr01

間單吧!



 

2019年10月23日 星期三

ubuntu 安裝 Julia

最近有個新興的電腦語言,叫做Julia。你可能會問Julia有什麼特別之處?
這是一種特別適合科學家,工程師和學生的語言。與通用編程語言相比,
Julia 內置了您在科學中需要的那些複雜數據類型。例如,Julia內置了多維矩陣。
今天就來安裝這 Julia。

1. 首先到 Julia 官網下載,目最新的版本是 1.2 ,https://julialang.org/


2. 下載後會在 ~/Download 目錄下,檔案 julia-1.2.0-linux-x86_64.tar.gz
執行 tar 解壓縮
tar xvfa julia-1.2.0-linux-x86_64.tar.gz


3. 將解開的目錄 julia-1.2.0 搬到家目錄下


4. 設定執行檔的路徑
$ echo PATH=\$PATH:~/julia-1.2.0/bin/ >> ~/.profile
$ source ~/.profile


5. 在終端機輸入 julia,出現下面畫面就表示安裝成功,輸入 exit() 或是 ctrl-D 離開。


6. 設定 package軟體包
在我們使用 Julia 操作之前,還有一個蠻重要的細節。
Julia 1.0 後具有一個新的軟件包管理器來安裝Julia軟件包。該軟件包管理器以前稱為Pkg3,
但現在它已替換了舊軟件包管理器Pkg,並重新使用了舊名稱Pkg。
在更改過程中,當你執行 Julia 時不會自動加載Pkg軟件包,需要在運行Julia時加載它。
因此我們編輯 Julia 1.0 啟動文件startup.jl,並在其中添加使用Pkg。

$ mkdir -p ~/.julia/config/
$ echo "using Pkg" >> ~/.julia/config/startup.jl


7. 試試安裝 UnicodePlots 軟體包,輸入 Pkg.add("UnicodePlots")


現在就來畫個 sin 和 cos 的圖看看,輸入:
using UnicodePlots
myPlot = lineplot([sin, cos], -pi/2, 2pi)


以上這是Julia的簡介。您可以使用on line IDE 來執行Julia程序,也可以在Ubuntu上執行。
學習看看這種新興的語言是否對你合用囉。


2019年10月16日 星期三

OSX 更改使用者全名

1. 開啟系統偏好(System Preferences)設定

2. 使用者和群組 (Users & Groups)。

3. 按下鎖頭,輸入密碼解鎖。

4. 將滑鼠移到欲更改的使用者圖像,按下 Control+滑鼠左鍵
,會出現 進階選項

5. 在全名的欄位輸入想更改的名稱 。

6. 電腦重新開機。

註:作業系統從 10.12 (Sierra),10.13 (High Sierra),10.14 (Mojave) 都可以依上述方法更改。

2019年10月13日 星期日

ubuntu 18.04 安裝 Samba server

首先安裝 Samba 套件:
$ sudo apt install samba


新增一個 smbuser 使用者:
sudo adduser smbuser --shell /bin/false

接著就是用 smbpasswd 指令的 -a 選項來將這個 smbuser 帳號設定為 Samba 的使用者帳號:
 $ sudo smbpasswd -a smbuser
如果要與使用者同名則:
$ sudo smbpasswd -a jkchang

安裝好 Samba Server 和使用者的設定後,接下來就是要來設定 Samba 的設定檔了,
打開 /etc/samba/smb.conf 檔案,然後在檔案的最後加入下面這幾行後存檔離開。


[public]
path = /home/jkchang # 這個是要分享的資料夾路徑
available = yes
valid users = jkchang #可以使用這個資料夾的使用者,要有 path 所指定的路徑的權限
read only = no
browseable = yes
public = yes
writable =yes

都設定好之後,來重新啟動 Samba Serve:
$ sudo service smbd restart

接著到 client 端,如果上面設定都正確,瀏覽網路應該會看到Samba所分享的主機名稱:
接著先按下 連接身份,選擇 註冊使用者,輸入名稱密碼:
(名稱必須是剛剛在  /etc/samba/smb.conf 檔案中所設定的)

也可以用 smb 協定來存取,例如,我的 samba 主機在 192.168.1.3,可以用
smb://192.168.1.3/public 來建立連線

 



2019年10月11日 星期五

Ubuntu:增加天氣資訊到 Top Panel



輸入下面指令安裝第三方PPA:
sudo add-apt-repository ppa:atareao/atareao 
sudo apt-get update 
sudo apt-get install my-weather-indicator

安裝完成後到主選單列 Accessories,選則 My-Weather-Indicator


增加所在位置 (地名要用英文)

設定好之後會在上面的 Panel 多一個天氣的 icon,下拉選單可以看到有很多天氣的相關資訊:

例如,選擇 Forecast (天氣預報) 功能,會列出一星期的天氣狀況:

另外,也可以將天氣資訊像手機的樣式放在桌面:
在Widget option選項,在 On all desktops (顯示在桌面) 可選擇多種樣式 

aclock 樣式:

super 樣式:

還有多種樣式可以一個人喜好來設定。


2019年10月10日 星期四

清晨的 STARBUCKS

STARBUCKS 前的艷紫荊


OSX 刪除時光機快照檔案

有時候是不是會覺得 Mac 的磁碟恨快就不夠用了,用"關於這台Mac" 選單可以看到相關資訊:
再按下"管理":
如果系統的部分大於100G 那可能要檢查到底是什麼檔案佔據了磁碟空間。
其中,Time Machine 時光機造成的備份檔是最常見的。

當使用Time Machine自動備份但又沒有裝上備份碟,OSX系統會將備份檔案佇列成檔案
(Queue Backup files),可以用下面指令檢查並列出:
sudo tmutil listlocalsnapshots /

會需要等一段時間來顯示:
com.apple.TimeMachine.2019-10-09-113009

刪除備份檔案:
sudo tmutil deletelocalsnapshots 2019-10-09-113009

再來,可以下載 OmniDiskSweeper 免費軟體來查看每個目錄(下) 所佔的空間

執行後會掃描每一個目錄(含目錄下) 所戰的空間,方便使用者整理磁碟。



2019年10月9日 星期三

更改終端機標題 (termial title)

有時候終端機有多個連線,為了區別是哪個主機,在終端機的標題欄顯示多一點訊息會比較
方便,下面就介紹 ubuntu 和 Mac OSX 的設定方式:

1. ubuntu:
於個人目錄下的 .bashrc 最後加上
PROMPT_COMMAND='echo -ne "\033]0;`whoami`@$HOSTNAME\007"'


2. OSX:
於個人目錄下的 .profile 最後加上
 PROMPT_COMMAND='echo -ne "\033]0;`whoami`@`hostname -s`\007"'

這樣 terminal title 就會顯示當前的 hostnameuser:



相關文件可參考:
 XTerm Control Sequences

2019年10月8日 星期二

安裝軟體出現 E: Unable to locate package

當使用 apt 安裝軟體時出現下面的訊息:
$ sudo apt-get install <package>
Reading package lists... Done
Building dependency tree      
Reading state information... Done
E: Unable to locate package <package>


開啟 Software & Updates,選Ubuntu Software分頁,勾選Download from the Internet選項:

執行 sudo apt update

再安裝所需的軟體:
sudo apt install <package>


出現 E: Could not get lock /var/lib/dpkg/lock-frontendv 解決方式

當使用 apt 安裝軟體時出現 :
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?


解決方式:

1. 關閉 'Synaptic Package Manager' or 'Software Updater'
2. 在終端機是不是有其他 apt command 在執行
3. 是不是有些 apt process 在背景執行

以上都確認沒問題還是一樣,則依下面步驟刪除檔案:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*


然後執行
sudo apt update