2016年7月31日 星期日
2016年5月30日 星期一
2016年5月29日 星期日
[Mac] 關閉Safari下載完自動開啟檔案的功能
身為macbook使用者,
是不是覺得每次從Safari下載完檔案後都會自動用預覽程式開啟很不方便呢?
尤其是要個別下載很多檔案時!!!
好啦我承認我現在才發現這個功能,
是不是覺得每次從Safari下載完檔案後都會自動用預覽程式開啟很不方便呢?
尤其是要個別下載很多檔案時!!!
好啦我承認我現在才發現這個功能,
想要關閉它,叫他不要再自以為很貼心的幫你打開了
就
就
點開Safari -> Preference (or command) 偏好設定 -> 一般 -> 取消勾選最後一個方塊:
ok
分享完畢
(好短啊😂😂)
2016年5月27日 星期五
[PHP] foreach loop用法與範例
最近在研究PHP和Laravel時突然發現自己的觀念有些還沒釐清,
便上網查了資料在這裡做小筆記順便當複習~請大家參考看看^_^
在PHP中, foreach提供了一個簡單的方法可以進行重複性工作。
而foreach只能作用在array(陣列)與物件上,而且只能用同個資料型別與已經初始化的變數。
foreach有兩種形式:
<?php
foreach (array_expression as $value)
statement
?>
此形式會對array_expression的array進行迴圈。
在每一次的工作中,當前元素的值會指定給 $value,然後array內部的pointer會累加,進行下一次工作。
<?php
foreach (array_expression as $key => $value)
statement
?>
這種形式跟第一個的差別在於,
每一次的工作會指定當前元素的 `關鍵字(key)` 到 `$key` 變數。
接下來看範例
2016年5月17日 星期二
[網購] 淘寶牛仔短褲 與 A字裙快速分享
物品名稱:
夏季欧美AA热裤 高腰牛仔短裤女胖mm宽松显瘦大码a字破洞阔腿
2016春夏韓國學院風高腰顯瘦包臀牛仔半身裙複古A字牛仔短裙女潮
拍賣網址:
https://goo.gl/6FyXag
https://goo.gl/vaAwNZ
今天天氣涼涼的 21、22度而已,騎車時候都覺得好冷
我就都穿長袖上衣來做暫時的搭配囉~
首先開箱了
牛
仔
短
褲
深藍色唷★
味道是滿臭的XDDD
線在在泡水中
希望等等拿去脫水晾乾之後味道會好一些
我買28號的
穿起來有點合身 http://imgur.com/ghTY8Ad.jpg
搭配前年買的UQ條紋長袖(請忽略我的室內拖)
脫下來有點緊繃 但穿起來的感覺還OK
其實我自己平常有在穿的牛仔短褲只有一兩件
最常穿的那件已經被洗到褪色很嚴重了,
屁股的部分因為之前參加一些營隊活動
時常要坐在地板上或是其他會有點髒的地方
所以變得很髒很髒 洗不乾淨了Q__Q
所以才萌生了買新褲的念頭
這一件意外的覺得品質還算不錯
不會太緊也不會太鬆
就是很合身^_^
好啦~
接下來就只有A字裙的照片了
也是牛仔的材質
平放在床上
看到第一眼的OS是: 這......我穿得下嗎Q口Q
給自己一點信心(三小),然後硬塞進去之後
發現
哇~~小腹凸出來惹
搭配的是以前合購買的白襯衫
不過這件白襯衫買來之後就被我冰在衣櫃裡
因為必須再加穿一件背心在裡面才不會春光外洩ˊ_>ˋ
是不是有偽-OL的感覺呢(扣除那個自己畫的黑色襪子還鞋子)
下面這個則是剛剛那件
發現這A字裙的顏色跟短褲超像的
雖然我都自認為穿起來很氣質(誤
不過我衣櫃本來就很缺這種下著所以就讓他們來填滿吧
先恭賀兩位新成員的到來^_^
分享文到此~
夏季欧美AA热裤 高腰牛仔短裤女胖mm宽松显瘦大码a字破洞阔腿
2016春夏韓國學院風高腰顯瘦包臀牛仔半身裙複古A字牛仔短裙女潮
拍賣網址:
https://goo.gl/6FyXag
https://goo.gl/vaAwNZ
今天天氣涼涼的 21、22度而已,騎車時候都覺得好冷
我就都穿長袖上衣來做暫時的搭配囉~
首先開箱了
牛
仔
短
褲
深藍色唷★
味道是滿臭的XDDD
線在在泡水中
希望等等拿去脫水晾乾之後味道會好一些
我買28號的
穿起來有點合身 http://imgur.com/ghTY8Ad.jpg
搭配前年買的UQ條紋長袖(請忽略我的室內拖)
脫下來有點緊繃 但穿起來的感覺還OK
其實我自己平常有在穿的牛仔短褲只有一兩件
最常穿的那件已經被洗到褪色很嚴重了,
屁股的部分因為之前參加一些營隊活動
時常要坐在地板上或是其他會有點髒的地方
所以變得很髒很髒 洗不乾淨了Q__Q
所以才萌生了買新褲的念頭
這一件意外的覺得品質還算不錯
不會太緊也不會太鬆
就是很合身^_^
好啦~
接下來就只有A字裙的照片了
也是牛仔的材質
平放在床上
看到第一眼的OS是: 這......我穿得下嗎Q口Q
給自己一點信心(三小),然後硬塞進去之後
發現
哇~~小腹凸出來惹
搭配的是以前合購買的白襯衫
不過這件白襯衫買來之後就被我冰在衣櫃裡
因為必須再加穿一件背心在裡面才不會春光外洩ˊ_>ˋ
是不是有偽-OL的感覺呢(扣除那個自己畫的黑色襪子還鞋子)
下面這個則是剛剛那件
發現這A字裙的顏色跟短褲超像的
雖然我都自認為穿起來很氣質(誤
不過我衣櫃本來就很缺這種下著所以就讓他們來填滿吧
先恭賀兩位新成員的到來^_^
分享文到此~
2016年5月11日 星期三
[JavaScript] 初探JS 基本介紹
用書:碁峯出版社,JavaScript程式設計與應用,張智星
JS 之特色:
提高網頁互動性、趣味性
執行在client端的計算與驗證,減少server端的計算與網路流量
Cache功能-->便利
AJAX-->便利,不必刷新網頁
Sequential Execution:瀏覽器載入網頁後直接載入與執行JS code,最後直接呈現結果於網頁上
Event Driven事件驅動
基本嵌入方法:
<script language=javascript>
JS code.......
.....
.....
</script>
JS code是 case sensitive,大小寫敏感的
*在HTML中使用pre標籤包住script標籤,可以使JS印出其原始效果而非經網頁排版後出現的效果。
<pre>
<script language=javascript>
JS code.......
.....
.....
</script>
</pre>
*特殊字元
\n 換行
\t 定位符號(tab)
\r 游標移到目前列的第一個位置,印出的文字蓋過之前文字(有點像Insert鍵)
\\ 插入一個\
\" 插入一雙引號
\' 插入一單引號
*迴圈
for-loop格式與C一樣
但字串之並排以"+"來達成
註解方式也與C一樣
JS 之特色:
提高網頁互動性、趣味性
執行在client端的計算與驗證,減少server端的計算與網路流量
Cache功能-->便利
AJAX-->便利,不必刷新網頁
Sequential Execution:瀏覽器載入網頁後直接載入與執行JS code,最後直接呈現結果於網頁上
Event Driven事件驅動
基本嵌入方法:
<script language=javascript>
JS code.......
.....
.....
</script>
JS code是 case sensitive,大小寫敏感的
*在HTML中使用pre標籤包住script標籤,可以使JS印出其原始效果而非經網頁排版後出現的效果。
<pre>
<script language=javascript>
JS code.......
.....
.....
</script>
</pre>
*特殊字元
\n 換行
\t 定位符號(tab)
\r 游標移到目前列的第一個位置,印出的文字蓋過之前文字(有點像Insert鍵)
\\ 插入一個\
\" 插入一雙引號
\' 插入一單引號
*迴圈
for-loop格式與C一樣
但字串之並排以"+"來達成
註解方式也與C一樣
2016年4月13日 星期三
[網購] KINMAC民族風系列雙肩電腦包 淘寶 心得
嗨~~~大家好我又手滑了
只是跟以往不同的是這次不是在Buytogether板
是私下跟幾個人一起買而已喔~三個人的份量,使用淘寶集運到台灣,寄到同個地方再分貨。
這次買的是從網頁圖上就覺得很華麗的後背電腦包。
賣場圖:
很漂亮吧><
所以我就買這款了~
只是跟以往不同的是這次不是在Buytogether板
是私下跟幾個人一起買而已喔~三個人的份量,使用淘寶集運到台灣,寄到同個地方再分貨。
這次買的是從網頁圖上就覺得很華麗的後背電腦包。
賣場圖:
很漂亮吧><
所以我就買這款了~
[UNIX] 作業系統上安裝git&增加ssh key
學校測試機是FreeBSD的。
要安裝git的話,要使用pkg來安裝:
pkg install git
接下來要可以為了讓欲連結的github, gitlab伺服器能授權,必須使用SSH Key公開金鑰來授權。
2016年4月12日 星期二
[網購] 生火雨牧英倫時尚風雨鞋/雨靴
噹啷~~人生第一雙新雨鞋get合購板最近真是我的新寵呀快被他燒到體無完膚了很不幸的這次跟到的團 拖得滿久的QQ賣家那邊發貨量一直不足等了兩三個禮拜才拿到手那時還想說 靠勒雨都下完了TAT 不過好險最近天氣預報說這幾天會下雨(怎麼感覺有點幸災樂禍XD)可以讓我好好見識雨鞋之防水功力啦!
[程語] C/C++如何執行一個程式
Programming Language的作業中看到的,
因為自己觀念也沒釐清,
所以就查了書籍及在上網中找資料,
做了一些心得小筆記。 以下是題目給的C語言code
因為自己觀念也沒釐清,
所以就查了書籍及在上網中找資料,
做了一些心得小筆記。 以下是題目給的C語言code
Assume the executable file of the program example.c is called example.exe. (a) Which program handles the statement "#include <stdio.h>" in file example.c?(b) Which program handles the statement at line 2 in file example.c to generate corresponding machine code in example.exe?(哪個program有line 2的statement可以產生相應的機器碼(也是目的碼:object code)於可執行檔example.exe呢?)
C語言的code的第一行通常是引入header檔
像是 #include <stdio.h>但會是哪個部分處理 .c 中的這一行程式碼呢?-要解這題必須要先懂C/C++執行程式的流程步驟的概念,
首先,電腦程式語言分成三種,相信會看這篇文章的大家應該都知道,
分別是1. 高階語言、 2. 組合語言、3. 機器語言這三個層次
像是 #include <stdio.h>但會是哪個部分處理 .c 中的這一行程式碼呢?-要解這題必須要先懂C/C++執行程式的流程步驟的概念,
首先,電腦程式語言分成三種,相信會看這篇文章的大家應該都知道,
分別是1. 高階語言、 2. 組合語言、3. 機器語言這三個層次
高階語言High-Level Language
像是C/C++這些high-level language,他們會隱藏執行程式的電腦與OS的細節,
這個特性稱為 platform-independent,就是平台獨立的意思,
因為相同code不必被修改就可以在不同microprocessor(微處理器)和OS的電腦中轉換及執行。
這個特性稱為 platform-independent,就是平台獨立的意思,
因為相同code不必被修改就可以在不同microprocessor(微處理器)和OS的電腦中轉換及執行。
組合語言Assembly Language
組合語言可以直接處理儲存在微處理器裡面的資料,可以從memory中載入資料到register以處理資料,執行運算。
非平台獨立。
非平台獨立。
機器語言Machine Language
最低層次的programming language.,是給機器看的機器指令。
當微處理器讀入並執行一個指令時,此指令即為機器語言指令。
Programmer並不是直接寫機器語言,而是用高階語言或組合語言撰寫,再經由微處理機轉換,才可被微處理器執行。
當微處理器讀入並執行一個指令時,此指令即為機器語言指令。
Programmer並不是直接寫機器語言,而是用高階語言或組合語言撰寫,再經由微處理機轉換,才可被微處理器執行。
Compiling and Assembling.
高階語言被編譯(compiled)
:
輸入code到compiler檢查程式,確保每一個statement都有效。若不含syntax error(語法錯誤),編譯器就會完成source code,即為來源碼,然後產生object code檔,目的碼檔->即為機器語言
編譯完成後還不能執行,因為還必須使用其他program的object code。
而誰來結合呢?
我們依靠 Linker ---- 連結器來結合自身及其他所需的obj code。
而結合成後會儲存成executable file,就是我們常見副檔名為 .exe的可執行檔。
那怎麼執行呢?
:
輸入code到compiler檢查程式,確保每一個statement都有效。若不含syntax error(語法錯誤),編譯器就會完成source code,即為來源碼,然後產生object code檔,目的碼檔->即為機器語言
編譯完成後還不能執行,因為還必須使用其他program的object code。
而誰來結合呢?
我們依靠 Linker ---- 連結器來結合自身及其他所需的obj code。
而結合成後會儲存成executable file,就是我們常見副檔名為 .exe的可執行檔。
那怎麼執行呢?
Loader ---- 載入器會複製exe檔
組合語言被組譯(assembled)
source code會被compiled
他負責處理巨集,在Compler開始編譯程式之前會自動啟動。
我們將最前面有#的敘述稱為前置處理指引敘述。
我們將最前面有#的敘述稱為前置處理指引敘述。
Preprocessor的功能:1. 檔案含入功能: #include
2. 字串置換和巨集定義:#define、#undef
3. 條 件 編 譯 : #if...#elif...#else...#endif , #ifdef...#else...#endif , #ifndef...#else...#endif
第二個問題(什麼program處理非#的敘述?)
從文章一開始就能知道是Compiler在做這些事情囉。
--------------Reference :
http://shukaiyang.myweb.hinet.net/cpp/concept.zhtw.htmhttp://epaper.gotop.com.tw/pdf/ael005600.pdf
小整理:
C/C++ 語言並不複雜,但由於它的原始碼(source code)是要用來被編譯為讓電腦能直接執行的機械碼(object code, 或俗稱 binary code)的, C/C++ 語言的一個學習重點就是一定要同時了解語言編譯器(compiler, 例如 Visaul C++)是怎麼把你的 .cpp 原始碼變成 .exe 執行檔的C/C++特性
C/C++ 語言並不複雜,但由於它的原始碼(source code)是要用來被編譯為讓電腦能直接執行的機械碼(object code, 或俗稱 binary code)的, C/C++ 語言的一個學習重點就是一定要同時了解語言編譯器(compiler, 例如 Visaul C++)是怎麼把你的 .cpp 原始碼變成 .exe 執行檔的C/C++特性
- 原始碼通常被編譯為Machine Code,但Java和C#不會,C/C++會直接處理資料儲存格式與編碼方式。
- 語言變數的宣告/使用方式與記憶體實際儲存方式符合。
- 可直接依address存取記憶體, 現在幾乎只有C/C++有pointer的資料型態囉。
- OS和韌體本身常用C語言撰寫,就是因為他們可以直接編譯好給CPU執行的machine code,所以是主流
- Strong type=強型別語言
要寫出可執行的程式要素:
- 程式語言知識
- Compiler
- 必須的程式庫
How OS Execute A Program?OS會先在RAM配置一塊給Program用的記憶體,再將.exe檔由硬碟仔速到專屬記憶體program counter(城市指位器)指向該記憶體中的Machine code起始位置程式開始執行
CPU fetches a machine code, (may need decoding), execute it and move PC so that it PC can point to the next instruction.Unless Jump happens, PC points to other address where the machine code put.
Fetch -> Decode -> Execute -> Increment PC ——^——循環——————————————————|
編譯器Compiler的工作例子:Object Code 程式語言(Source Code)Register <- [b] a=b+cRegister <- [c]選擇&執行加法電路Register -> [a]
把原始碼重新編成、翻譯為machine code(object code, binary code)。因為CPU 無法處理有語意的指令,所以如上面的例子,意思是把 b 和 c 相加以後,以此結果賦予 a 變數的值,編譯器所產生的機械碼可能是把 [b] 數值搬移(move)到 暫存器,接著把 [c] 數值搬移到 CPU 的另一個暫存器,接著如上圖地,輸出加法運算的機械碼(設定 CPU 周圍的針腳以選用加法電路),若干 clock 以後,某個暫存器中的值變成方才兩個暫存器相加的值,接著下一行,另一個搬移的機械碼又把結果搬移到記憶體的 [a] 位置。
Linker的工作
要在電腦螢幕上顯示一行”Hello World1"文字
是 .cpp這個原始檔做的事情,經過compiler變成了 .obj檔,
printf()就是被呼叫的內建函式,不過其原始碼不在這個產生的 .cpp/ .obj裡面
所以.cpp只有呼叫printf()來顯示這些文字。
函式就是一段code segment,
一個程式所呼叫的函式可能在另一個原始碼檔案(.c 或 .cpp)當中,
也可能在另一個ㄐㄧ碼檔案(.obj)中,
也可能在程式庫檔案中(.lib)中,
無論如何,當編譯器在編譯 HelloWorld.cpp 的時候它並不知道 printf( ) 的程式碼在哪裡,亦不知道程式的
流程該跳往何位址,所以在編譯出的 .obj 檔案中這個「空格」會被保留下來,
而由連結器(linker)收集了所有的目的檔(.obj與.lib)以後,才將它們填上,
其實程式庫檔案(.lib)只不過是一些machine code(.obj)的集合體。
承續上面的例子,連結器所產出的可執行檔(executable file)裡面,
它把 HelloWorld.obj 和 printf( ) 的機械碼都合併 HelloWorld.exe 當中了,
所以在 HelloWorld.obj 當中呼叫 printf( )函式所造成的程式流程跳躍(jump),
就變成了是同一個 .exe 檔案內(作業系統載入後是同一塊記憶體內)的位址跳躍了,
所以連結器可以明確地寫上位址數值,
總結地來說連結器所做的事情就是收集像這樣互相參考的machine code、合併為執行檔、並且填寫這些machine code之間的參考位址,
這就是為甚麼通常由source code產生的可執行檔都會比原始檔案大很多,
因為合併了許多來其他檔案的machine code。
由原始碼產生執行檔的過程中,除了要編譯(compile)還需要經過連結(link)才能得到這樣的可執行檔。
*這裡的machine code就是機器碼,就是目的碼,object code。
訂閱:
文章 (Atom)