發表文章

關於命名變數那回事--使用 codelf 來解決吧!

圖片
圖片擷取自: codelf 目錄 1.前言 2.CODELF 故事 3.CODELF 操作過程 4.參考文獻 1.前言 最近在補充 programmer 該自我要求的資料時,無意間發現產品,一個如何命名變數的小工具,在學習 programming 的過程,最常碰上的困擾就是不曉得該如何取個好的名字,造成這問題的由來可以有很多,書上的範例簡潔使用 int a = 1;或單純字彙量不夠而已XD,反正剛好看到這工具,就記錄一下吧。 2.Codelf 故事 根據這篇詢問  Programmers' hardest tasks 的圖片(如下圖所示),可以明顯看出命名(Naming things)是為難的事情,下面也舉出不少例子來證明這件事情,例如: data -> str_data - > str_data_tmp等,有些人覺得命名應該是一項藝術,但大家最在乎的還是可讀性這件事情,準確且一眼就看出性質與功用的命名可以大幅減少理解與debug的時間。 圖.1 在進行變數命名時,我們可以參考專案的規範或是採用網路上其他人的寫法,但這往往會造成大量的時間在 google 上面,而且還不一定可以找到滿意的,於是乎就有這項工具的誕生啦,這是由  Unbug Lee  所編寫的小工具,由於是中國人,所以工具中英文都適用(簡中)。 3.Codelf 操作過程 一.首先映入眼簾的即為起始畫面,於search中輸入你想要知道的變數即可。 起始畫面 二.在這邊我們就輸入"貨物"試試看,可以看到收尋結果如下,同時也可以參考程式碼片段 我覺得還滿直覺的,應該不用在往下才對XD 4.參考文獻 1.https://unbug.github.io/codelf/

No pain no gain 的實習旅程 - Fandora Shop 實習

圖片
Fandora 駐所地點(攝於面試當天XD) 前言 這本應該是在剛實習完就寫好的文章,由於脫稿症正常運作中,所以拖到至今才發文,本文紀錄下作者於 2015 暑假在 Fandora Shop 的實習過程,看到的,學到的,以及些感想,記錄下那什麼也不知道,就出新手村打怪的歷程XD。 Fandora shop logo圖取自sudo 開始實習 - 認識自我 為了不讓大學最後的暑假荒廢掉,我決定去北部找找 startup 做實習,如此一來可以達到兩項目標:一是確認我對 coding 是否真有興趣,二是了解 Startup 的發展過程。找實習時,由於學校開的缺我能力不吻合,又加上台北的 startup 比較多,所以之後丟履歷的方向都是在台北,透過各種管道,例如 台大媒合實習會 等 圖取自台大媒合實習會網站 找實習過程 - 缺乏經驗的辛酸  這說來就有點艱辛,由於本身是念通訊專業的,但又很想找資工的缺,例如前端網站開發之類的,難免有些專案上的經歷缺失,以及不懂的技術與專業術語,當初我連 git 都不會使用,只好拿著過往在學校做過的實驗經驗去面試,一直被 Rej 也是很正常的,還記得投了快十間的公司吧,記得有海X科技,SXDO,綠X碼,薪X網路等,但最後還是拿到三間公司的面試機會,真的是上輩子有好好燒香。 Fandora shop 的學習歷程 - 世界比想像中的大 我在裡面的實習職稱是前端 RD 實習工程師,實習內容主要是幫忙 CTO 開發網站,撰寫文件, 增加BUG 。 如果你問我在裡面學習到什麼,說實在話,實在太多太多,畢竟根本沒有工作經驗啊XD,不論是公司的運作流程或是程式上的專業技術,對我來說甚麼都是新鮮的,在技術方面,學到 git的用法從而管理程式碼版本,並且 follow  git workflow  來開發專案,還有使用 mocha 進行 unit test,selenium 進行 e2e test,以及 元件規劃,這一切的學習經驗都非常感謝 XP 的耐心,能夠指導沒什麼背景的我,與總是讓我問問題的塔倫斯,還有一起在 RD team 實習的小夥伴,溫溫與品嘉。 總是有新鮮事物的地方 公司上班的氣氛還滿輕鬆快樂的,常有爆笑的事情發生, 通常是CEO童心未泯的表現 ...

Payday 2(劫薪日2) 全 Skin 破解測試 (含測試過程)

圖片
全skin擁有畫面 前言     由於 OVK 近日的一些遊戲策略,使玩家對於遊戲公司不滿,所以有網民就把這份全skin做出來,好好的讓OVK重視玩家的心聲。我也就抱著好奇的心態測試真實性,並體驗看看全Skin的爽感XD,因為DLC海 + 微量交易以及先前的乾爹包,真的讓人感受到吃相難看是怎麼一回事。不過原文發出之後幾小時內,就有開發人員回應會盡快修復這問題,所以過沒幾天這玩意兒應該就沒用了XDD *若讀者對於這份檔案有所疑慮,就不要使用,後果自負 * * 本人僅測試是否可以使用而已 * 使用過程 1.首先把BLT or BLT:CSE 安裝到payday2的資料夾中 若玩家已經有安裝其他模組(ex:hoxhud),請安裝 BLT:CSE 若玩家什麼模組都沒安裝,完全是乾淨的payday2,請安裝 BLT Payday2 資料夾位置:打開steam>右鍵payday2>內容>本機檔案>瀏覽本機檔案 payday2資料夾 2.安裝全skin檔案 下載 Link 中的壓縮檔,再將壓縮檔的資料放進payday2資料夾的mods中 3.享受成果 結果畫面 *若讀者對於這份檔案有所疑慮,就不要使用,後果自負 * * 本人僅測試是否可以使用而已 * 參考文獻 1.http://steamcommunity.com/sharedfiles/filedetails/?id=547527646 2.https://www.reddit.com/r/Games/comments/3rir0p/recently_created_mod_for_payday_2_allows_players/

使用 homebrew 在 Mac 上安裝 mysql

圖片
圖片來源:wiki 前言     由於課程需求,需要練習SQL指令,既然要練習SQL只好找最多人在用的MySQL,這樣除錯起來比較方便XD 安裝步驟 為了極簡化安裝步驟,我們先行安裝homebrew在mac上,接著輸入以下指令  $ brew install mysql 這樣就安裝成功啦~ 基礎使用 啟用mysql.server $ mysql.server start 驗證root帳號可以使用 $ mysql -u root -p 密碼為空,什麼都不用輸入即可使用 顯示DataBases > show databases 參考文獻 1.http://chaneswin.pixnet.net/blog/post/31535983-mac-%E5%8A%A0%E8%A3%9D-mysql

Mac 開發人員必用神器 -- homebrew

圖片
圖片來源:http://brew.sh/index_zh-tw.html 前言     身為Mac 重度使用者,常常會需要去安裝有的沒有的軟體,但安裝時候安裝的步驟的真的超麻煩,有些還要去修改路徑或環境變數,更別提還有要 make install 的...,只要有了這個管理神器 -- homebrew 就可以輕鬆解決這些困擾,讓你安裝軟體減輕不少負擔。 安裝Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 你會發現這是用ruby的環境來安裝,但mac本身內建Ruby,所以不用太擔心 基本指令 man brew    跟 brew約會 brew help    查詢使用說明 brew serach 查詢可安裝套件 brew list      列出已安裝套件 brew install 安裝套件 應用 我們來安裝git,只要輸入以下即可安裝成功 brew install git 或是安裝 mysql,只要輸入 brew install mysql 就是這麼簡單,這麼輕鬆!!! 安裝前建議先打上 brew doctor,會顯示建議的設定需求 參考文獻 1.http://brew.sh/index_zh-tw.html

[Linux] 利用 pipe 解決 fork 共用變數問題

圖片
圖片來源:https://jan.newmarch.name/ProgrammingUnix/ipc/lecture.html 目錄 一.背景知識 二.實作步驟 三.參考文獻 一.背景知識 1.Linux     Linux是一種自由和開放原始碼的類UNIX作業系統。術語Linux只表示作業系統核心本身,但通常採用Linux核心來表達該意思。Linux則常用來指基於Linux核心的完整作業系統,包括GUI元件和許多其他實用工具。由於這些支援使用者空間的系統工具和庫主要由理察·斯托曼於1983年發起的GNU計劃提供,自由軟體基金會提議將該組合系統命名為GNU/Linux[7][8],但Linux不屬於GNU計劃。 2.fork()      In  computing , particularly in the context of the  Unix  operating system and its  workalikes ,  fork  is an operation whereby a  process  creates a copy of itself. It is usually a  system call , implemented in the  kernel . Fork is the primary (and historically, only) method of process creation on Unix-like operating systems. 3.pipe     pipe() creates a pipe, a unidirectional data channel that can be used for interprocess ommunication.  The array pipefd is used to return two file descriptors referring to the ends of the pipe. pipefd[0] refers to the read e...

添加 System call(系統呼叫) 至 linux kernel (環境:Ubuntu 12.04LTS + kernel:3.13.0-32)

圖片
圖與內文無關 目錄 一.背景知識 二.實作步驟 三.Step by step 四.參考文獻 一.背景知識 1.Linux     Linux是一種自由和開放原始碼的類UNIX作業系統。術語Linux只表示作業系統核心本身,但通常採用Linux核心來表達該意思。Linux則常用來指基於Linux核心的完整作業系統,包括GUI元件和許多其他實用工具。由於這些支援使用者空間的系統工具和庫主要由理察·斯托曼於1983年發起的GNU計劃提供,自由軟體基金會提議將該組合系統命名為GNU/Linux[7][8],但Linux不屬於GNU計劃。 2.Linux kernel     Linux內核(英語:Linux kernel),是一種電腦作業系統內核,以C語言和組合語言寫成,符合POSIX標準,以GNU通用公眾授權條款釋出。Linux內核最早是由芬蘭駭客林納斯·托瓦茲為嘗試在自己的英特爾x86架構電腦上提供自由免費的類Unix系統而開發的。該計劃開始於1991年,林納斯·托瓦茲當時在Usenet新聞群組comp.os.minix登載貼文[7],這份著名的貼文標示著Linux內核計劃的正式開始。 3.System call (系統呼叫)     指運行在使用者空間的程序向作業系統內核請求需要更高權限運行的服務。系統調用提供了用戶程序與作業系統之間的接口。大多數系統交互式操作需求在內核態執行。如設備IO操作或者進程間通信。 二.實作步驟 各kernel版本或是本身OS的不同,在某些地方上會有些微不,例如檔案位置,檔案名稱,或是include的標頭檔不同,這部分可能就要上網找資料去惹,另外不同的 Linux 系統之間也有可能使用不同的指令, 在實作時請多留意自己的環境 ,本實作是以 Ubuntu 12.04LTS + kernel:3.13.0-32-generic 來執行。以下流程可供參,對於其他環境來說應該是大同小異的。 Kernel side 1.  下載 kernel source 2.  定義system call sys_hello(): 3. 添加 hello 目錄至 ...