2015/12/24

[ASP.NET 5] 用指令列建立 ASP.NET 5 - ASP.NET MVC 6 網站應用程式

安裝 ASP.NET 5 的網站應用程式


我的安裝環境:

Windows 10
ASP.NET 5 版本: 1.0.0-rc1
ASP.NET MVC 版本: 6.0.0-rc1

必備:

Node.js
ASP.NET 5

不使用 Visual Studio 下的安裝方式 (使用命令列方式)

Windows 安裝文件
https://docs.asp.net/en/latest/getting-started/installing-on-windows.html
https://github.com/aspnet/home#getting-started

Mac 安裝文件
https://docs.asp.net/en/latest/getting-started/installing-on-mac.html

2015/12/18

[httpie] 好用的命令列 HTTP Client

今日發現好用的 httpie 來取代 curl 在命令列中讀取 http 文件,有顏色顯示總是好讀些~

很適合在測試或是除蟲時使用

官方:http://httpie.org


安裝很簡單,利用 Homebrew 來裝,一個指令就搞定

brew install httpie





使用 get 方法讀取網頁~ 你看看,是不是很清楚明瞭呢?


2015/12/17

[VS2015] WebForm 開啟 Design 檢視功能

自從轉到 ASP.NET MVC 後, WebForm 已經超過 4 年沒再動過了吧...
從進社會開始, 接觸的實戰是從 DotNetNuke -- 採用 WebForm, VB.NET 語法練功力~
一轉眼, 技術全然翻轉... 轉回正題~~

因為大多寫 ASP.NET MVC, 所以習慣僅用 code 的模式, 今天開啟舊 WebForm 專案要做功能新增, 居然沒看到 Design 模式, 雖然 key code 也行, 但控制項就是有屬性在 UI 介面操作嘛!




2015/12/07

[Node.js] npm 常用指令

npm (Node package manager) 管理套件常用指令:

查詢版本

npm -v



安裝全域套件

npm install -g [PACKAGE]

安裝特定版本

npm install -g [PACKAGE]@[VERSION]

移除全域套件

npm uninstall -g [PACKAGE]

更新全域套件

npm update -g

2015/11/20

[Laravel] 整合工具系列: 輕量資料庫 Adminer

過去在無法直接管理遠端的 MySQL 資料庫時, 都要上傳一大包的 phpMyAdmin. 但是肥大的工具, 其實大多只用簡易的功能 -- SQL 語法來建置初始資料表.

殺雞哪需要出動牛刀?! 偶然之下接觸到 Adminer 這個超輕量的資料庫管理工具, 只要一支檔案, 即可立即操作.

不過有薦於安全性, 還是不想直接門戶大開. 總會用 .htaccess 來限制 IP. 安全性是顧到了, 但如果沒有固定 IP, 就常需要再更新 .htaccess 的檔案, 又顯得有點小麻煩.

最近用 Laravel 執行的專案較多, 原本找到一個 laravel adminer 的套件, 不過呢~它只有單純的英文版!!!

決定動手自己來打造一個具權限控制的 adminer 整合套件, 順便把繁體中文版本也加上去!!

套件名稱: onecentlin/laravel-adminer

Laravel Adminer Database Manager (Laravel 輕量資料庫管理工具)


初聲試啼~ 歡迎指教~ ^^


2015/11/17

[PhpStorm] 在 Ubuntu 安裝 PhpStorm 10

工欲善其事, 必先利其器. 雖然只要有語法顏色顯示的編輯器就可以開發, 但是 IDE 的強大功能不能不知~~~

在 .NET 的世界, 有超棒的 Visual Studio; 而在 PHP 的世界, 個人覺得就 PhpStorm 莫屬



今天興緻來了, 就想來安裝一下 Linux 的版本 (ubuntu 14.04 LTS)

Ubuntu 現在做得愈來愈人性化, 過去仍舊時常操作指令, 現在比例少得多了 ^_^

話不多說, 先下載軟體工具吧!

2015/11/14

[Sublime] 在 Sublime Text 3 安裝 ColorPicker 及快速鍵啟用

Sublime Text 在快速編輯程式碼時非常好用, 不過在選顏色上或是顯示上, 總是有點卡卡的

今天安裝了 ColorPicker 輔助工具套件, 卻怎麼都呼叫不出 UI 的選擇器

它的預設快速鍵是 ctrl + shift + c

原來是與另一個套件 (ConvertToUTF8) 有衝突

解決方法: 把快速鍵變更為其他的組合即可


變更後就可以正常使用囉~~

2015/11/02

[Laravel] ErrorException - file_put_contents

第一次遇到在更新 Laravel composer packages 後會現無法讀取檔案的錯誤


在該更新的檔案全都上傳完後,確認也都沒漏檔,仍然出現 Woops!

還好網站還沒上線,快速看一下 debug 有什麼線索

結果是:

[ErrorException]

file_put_contents(/project/bootstrap/cache/services.json): failed to open stream: No such file or directory


先打開本機的 services.json,內容是 providers 的 class 及一些設定



單純把檔案蓋掉,問題就沒了,但納悶的是,為什麼 composer 會寫到這個 cache 而且還要讀取呢?基本上它又是 ignore 的檔案...

先記錄一下,下回再遇到,先看 cache/services.json 檔案是否有更新吧!


後記:試著直接把 services.json 檔案砍掉, 網站也不會出錯~看來應該是被 composer 拿來暫時比對用的。那麼就別留了,反正它本來就是該被 ignore 的!

後記加註:composer update 或 安裝 packages 後,記得再多做一個步驟
php artisan clear-compiled
這個檔案就會被清掉了,果然它是不需要上 server 的!

2015/10/26

[Tracy] 善用工具 -- Tracy 讓 PHP Debug 變簡單了

過去在開發 PHP 專案, 在除蟲的過程當中, 只能利用有限的錯誤訊息, 加上過去的經驗, 才能一步一步解決 error!

今天有機會學到新工具 Tracy (https://github.com/nette/tracy), 真讓人覺得 Debug PHP 程式變簡單了~

1. Composer 安裝

composer require tracy/tracy

這樣該有的基本 library 就具備了


2. 如何使用?

先將 vendor/autoload.php 這支檔案引用進來

require __DIR__.'/vendor/autoload.php';


加上 Tracy\Debugger::enable(); 就可以馬上使用囉

2015/09/25

[Laravel] Gulp TDD - 出現 PHPUnit Permission Denied 的解決方法

今天小試一下 Laravel 的 php unit testing

基本跑 phpunit 成功沒問題



變更 gulpfile.js -- 使用 mix.phpUnit();

執行 gulp tdd -- 卻出現 ./vendor/bin/phpunit: Permission denied

2015/09/14

[VS2015] 安裝 TypeScript 後造成 JavaScript Intellisense 失效的解決方法

最近在 Visual Studio 2015 更新 TypeScript 後, 突然 JavaScript 的 Intellisense 失效了! 沒有 color highlight 也沒有 code hint... 怎麼會這樣~~~

僅 .ts 的檔案都還可以用... 但是...還是有些 js code 寫在 razor 頁面上呀....

原本想說跟之前 razor 語法失效類似, 執行 ./devenv.exe /resetuserdata 還是不行

最終爬文找到方法, 只要重裝 Universal Windows App Development Tools

參考資料:
http://stackoverflow.com/questions/32000562/vs-2015-no-highlighting-and-intellisense-in-js-files

重裝步驟:

控制台 -> 解除安裝或變更程式 -> 找到 Visual Studio 2015

選擇 "變更", 會開啟 VS 的介面, 選擇 "變更"

如果原先有勾 Universal Windows App Development Tools, 先勾消, 再重新勾選
然後執行 "更新" 就會把 JavaScript 的支援加回來了


最後再到 Program File 的 VS IDE

執行下列兩行執令, 就完成囉!!!

./devenv.exe /updateconfiguration
./devenv.exe /clearcache

呼~~ 已經不習慣沒有 intellisense 的世界, 雖然 code 都可執行, 就是不能少那種感覺!!


2015/09/05

[Vagrant] 在 Windows 10 及 Mac 安裝 Homestead 步驟流程

安裝 Vagrant 輕便虛擬機 Homestead


安裝步驟:

必要的軟體 (在 Windows 或 Mac 皆需先安裝)

1. Git (http://git-scm.com/)
2. VirtualBox (https://www.virtualbox.org/wiki/Downloads)
3. Vagrant (https://www.vagrantup.com/)

4. 加入 laravel/homestead

vagrant box add laravel/homestead

5. 下載 vagrant homestead 環境設定

git clone https://github.com/laravel/homestead.git Homestead

2015/08/26

[Git] 解決 Git - unable to determine absolute path of git directory

今天第一次在 USB 操作遠端 Git 版控, 出現:

unable to determine absolute path of git directory

解決方法: 在 PowerShell 輸入指令

Stop-Process -processname ssh-agent*

git pull

即可正確執行

Reference:
http://stackoverflow.com/questions/11539076/git-unable-to-determine-absolute-path-of-git-directory

2015/07/27

[PHP] 處理 magic_quotes_gpc

PHP 5.4 版已預設 off, 但仍有主機商把它開啟

如果 get_magic_quotes_gpc() 回傳為 1 時
可以用 stripslashes 來處理字串

http://php.net/manual/en/function.get-magic-quotes-gpc.php

2015/07/17

[Git] 移除右鍵選單的 Git 指令選項

Git 在 Windows 系統下預設安裝的右鍵選單指令, 說實在的真的很少用, 今天決定把它移掉

步驟很簡單:


1. 開啟 cmd.exe 命令提示字元



2. 切換到 Git 安裝目錄的 git-cheetah/ 輸入以下指令

64-bit

cd "C:\Program Files\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll
32-bit

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext.dll

參考: How do I remove msysgit's right click menu options?

2015/07/10

Access Database Engine 2010: 解決安裝 64 及 32 位元驅動衝突

在 Server 端通常不會安裝 Office 套件,但是又會應用程式做讀寫資料動作

Access Database Engine 2010 解套不用在伺服器端安裝大怪獸



之前遇到一個問題,在 64 位元的 Server 上已先安裝 64 位元的 Engine.

執行程式仍出現錯誤訊息

'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上。

我想應該 32 位元也需要裝上

結果事情居然沒想像中簡單,安裝按下一步就好了...


沒辦法直接安裝下,只好用下指令方式安裝



只要在命令提示列打上以下指令就可以囉~

AccessDatabaseEngine.exe /passive


2015/06/19

[Laravel] 用 Composer 安裝特定版本的 Laravel

僅管現在 Laravel 已經釋出 5.1 版, 目前還是遇到客戶主機環境太舊, 僅能跑 PHP 5.3 的版本

所以至少還是會安裝 Laravel 4.1 的版本

composer create-project laravel/laravel [ProjectName] 4.1.*

如果要裝最新的版本, 就參照官方的使用方法, 下載 laravel 安裝套件

laravel new [ProjectName]

2015/06/18

[Laravel] Laravel 4.1 環境偵測 - 第二彈

預設的環境偵測寫法有點不太好用

以電腦的 hostname 來做分 local, 始終覺得不方便
尤其不是只有用單一電腦來做開發
換了電腦, 名稱又變更, 要一直改來改去好像也不是太好的做法
而且也不想把自己所有的主機名稱都放上去主機端

最終我決定用我開發的 vhost 來取決是否為開發環境

只要不是開發用的 vhost, 那麼就都視為正式環境

以後專案只要複製以下 code, 改掉開發 domain 即可~

修改的檔案: bootstrap/start.php

$env = $app->detectEnvironment(function() {
    return ($_SERVER['SERVER_NAME'] == "project.dev") ? "local" : "production";
});

不過如果設定這個方法, 在用 migration 的時候需要指定 env 為哪一個
php artisan migrate --evn=local

記錄一下, 以免未來又忘記了

2015/06/16

[PHP] 變更預設上傳大小限制

PHP 預設上傳大小 post_max_size 為 8 MB
若要增大尺寸有兩個方式

1. 修改 php.ini (需重啟伺服器)

post_max_size=20M
upload_max_filesize=20M

2. 在 .htaccess 中設定

php_value post_max_size 20M
php_value upload_max_filesize 20M


2015/06/03

[nginx] 高效能輕巧伺服器 nginx

偶然發現很多用 nginx 伺服器的文章

用了十多年的 Apache, IIS 基本上已經涵蓋所有開發平台

花了幾分鐘小玩了一下 nginx

真的是超級輕量, 安裝又無敵簡單, 就可以啟動網站伺服器了

在 Terminal 只要輸入 nginx 就啟動服務囉
nginx

在網址列輸入 localhost 就看到啟始頁囉
簡單到無法置信... Apache, IIS 都還要經過安裝步驟, nginx 只需要...解壓縮

其他進階指令, 只要下 nginx -h 就有完整使用方法


發現寫這篇文章花的時間, 比 nginx 從下載, 到解壓縮, 到啟動伺服器, 開啟瀏覽歡迎頁, 到下 nginx -s stop 還要長

就當是超級 nginx 入門款吧

[Laravel] Laravel 4.1 偵測環境設定

Laravel 4.1 專案中都要這麼設定~ Laravel 5.1 都要釋出了還不能升版....殘念~

怎麼客戶的主機版本都還停在 PHP 5.3, 5.4, 只好自己練功儲備...跳過 5, 直煉 5.1

提外話, 回到正題...預設環境設定要填上主機名稱來判斷環境

$env = $app->detectEnvironment(array(
    'local' => array('local-machine-name'), 
    'staging' => array('staging-machine-name') 
));

其實很不喜歡把 hostname 放上去, 寫死又不親民

找到一個簡單的設定方法, 我覺得還不錯, 記錄一下

用變數來做判斷最符合開發模式

$env = $app->detectEnvironment(function()
{ 
    // LARAVEL_ENV 不設定, 預設值為 local
    return getenv('LARAVEL_ENV') ?: 'local'; 
});

而這個 LARAVEL_ENV 的環境變數, 需要在 .htaccess 裡設定

# 設定為本地開發環境
SetEnv LARAVEL_ENV local

參考: Setting Up Multiple Environments in Laravel 4.1

2015/05/19

[VirtualBox] 空間不夠用?如何增加虛擬機器的磁碟空間

虛擬機器用久了,總有可能發生磁碟區不夠用的情況

今天遇到了~看到它紅色警示,天啊~

好吧,既然遇到了,想辦法擴充它!總不能再重灌一次,太麻煩了~


2015/05/13

[TypeScript] TSD - TypeScript 管理套件

隨著網站開發的頻繁度, 寫 JavaScript 也從來沒有輕鬆過, 但為了寫出更好的 JavaScript 程式的品質, 利用 TypeScript 定義規範, 可以讓錯誤減少機會發生, 不用抓蟲抓得太辛苦!

在 Visual Studio 裡有 NuGet 套件管理可以很方便地取得需要的定義檔.
PM> Install-Package jquery.TypeScript.DefinitelyTyped


但是開發 PHP 寫的網站, IDE 工具不夠強大, 還是需要找到一個可以容易管理取得的方法. 

TSD 可以簡單管理 TypeScript DefinitelyTyped 的套件:

1. 必需要先有 Node.js

2. 安裝 TSD - 主要透過它來取得定義檔
npm install tsd@next -g

3. 建立初始檔
npm init

將會在產生 tsd.json 檔案, 包含預設值及安裝路徑 (path)
預設路徑為 typings , 依開發需求變更安裝路徑

4. 下載需要的套件定義
tsd install jquery --save


基本步驟搞定~ 剛開始研究花比較多時間了解, 以後就不需東找西找, 省下時間 coding


更多有關 TSD 的資料: https://github.com/DefinitelyTyped/tsd

2015/05/05

[Visual Studio Code] 跨平台編輯器 on Ubuntu Linux

前兩篇剛好各在 Mac 及 Windows 上使用 Visual Studio Code, 這回把它裝到 Linux 上去

終於有好的 GUI 程式碼編輯器可以在 Linux 上使用了 (vim 可以偶爾休息一下囉)



安裝使用超級簡單~

[Visual Studio Code] 支援 Emmet snippet 快速開發

在 Visutal Studio Code 也可以享有 speed coding

Emmet snippet 已經是我在編寫 HTML 時不可或缺的工具, 近期推出的免費程式編輯器 Visual Studio Code 也具備這個基本功能!

當新建立一個文件時, 必需先選擇要編輯的程式語言, 這裡我們選 HTML (也可以選 PHP), 一方面會顯示程式 highlight 標示. 否則只會單純當成純文字看待


來個最簡易的 HTML5 基本 code, 輸入 html:5 按下 Tab


HTML5 基本款建立好囉, 還自動反白 title 的文字讓我們來修改 



一直以來編輯簡易的檔案, 沒必要出動到 IDE, 通常我會用 Notepad++ 或是 Sublime 來做編輯, 現在多了一個程式編輯器的工具, 太棒了~~~ 還有更多功能慢慢發掘中...


2015/05/02

[.NET] 在 Mac 上使用 Visual Studio Code 執行 ASP.NET 5

在 Mac 上終於有好的文字編輯器給程式設計師了!而且重點是~免費!Visual Studio Code 不僅支援當下常見的網頁檔案外,當然它最重要的是可以編 C#, TypeScript~




更新文如何在 Mac 開發 ASP.NET Core 網站

下載及安裝文件寫的很清楚,以下是相關連結

Download: Visual Studio Code

Install: ASP.NET 5 & DNX

Building ASP.NET 5 Applications with Visual Studio Code

2015/04/10

[CSS] Sass & Compass 加速開發 - 環境安裝

久聞 Less, Sass, 一直沒時間好好研究, 這週花了點時間研究前端技術

Sass + Compass 是加速開發及管理 CSS 樣式表的好方法

工欲善其事, 必先利其器...先來安裝開發環境吧!

2015/04/06

[SQL] 查詢比對 Guid 值的使用方法

Guid 的 表示法
('GUID_VALUE')

例如:
SELECT * FROM MyTable WHERE ID = ('GUID_VALUE')


不常用, 總是會忘記, 記錄一下以免下回又要再找答案

2015/04/02

[HTML] 網站在 IE 顯示亂碼問題

有一個很久以前的舊有案子, 當時文件是以 big5 為編碼, 近期重新翻修, 把它全部的編碼變更為 unicode (UTF-8)

今早客戶打電話來問, 怎麼網站文字變一格一格的亂碼?

Oops!!!

即使原本的 head 裡已經註記 utf8 也不能把 IE 導到對的編碼顯示

修正一下 html 裡的編排

1. meta 必須寫在 title 之前, 尤其是編碼的那一段
2. charset 一定要是 UTF-8, 而不能只有填 utf8 (IE 比較笨?!)

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

好啦....編碼事搞定了!!!

2015/02/28

[ASP.NET MVC] 網站讀取靜態 JSON 檔案權限

Web.config 加上以下設定, 以讀取 JSON 檔名的檔案


記得要加這一段~~
<mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" />

2015/02/21

[Android Studio] Git .gitignore file settings

在 Android Studio 使用 Git 來做程式版控, 以下是我使用的 .gitignore 內容

# .gitignore for Android Studio projects

# Gradle files
build/
.gradle/

# Local configuration file (sdk path, etc)
local.properties

# Android Studio
.idea/
*.iml
*.ipr
*.iws

# Eclipse project files
.classpath
.project
.settings

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

2015/02/19

[Android] 2015年的新學習 - Android Development

去年 2014 年新春時間, 花時間學習 Git, 如今 Git 在專案使用上也熟悉許多, 在程式的管控上的確是幫上很多忙.

今年 2015 年又是開春日, 不想在車陣當中人擠人, 重新花時間學習 Android.
早在 2.2 時代, 已經有小小接觸 Andoid 開發. 當時使用 Eclipse 或 NetBeans 等開發工具.
如今, Android Studio 由 Google 正式發行. 操作及設計開發也進步許多.

一直以來都是開發網站應用程式為主. 今年決定來點突破, 邁進 Mobile Development!!

2015/02/07

[Git] 修改前一次 commit 的訊息

下指令會開啟預設編輯器, 輸入修正訊息

git commit --amend

直接指令輸入修正訊息

git commit --amend -m "新修改的訊息"

2015/01/26

[VirtualBox] 找不到 64 位元 選項的解決方法

近期 Windows 10 的宣佈, 讓我想來裝一下 Preview 版嚐鮮一下.

怎知道 VirtualBox 無法選擇 64bit 的選項, (剛好最近換了主機板, 又升級 Windows 8.1)

即使在 VirtualBox 的安裝選項為 Windows 8.1 / 32bit 也會出現如下的錯誤訊息

VT-x/AMD-V 硬體加速在您的系統不可用。 某些客體 (例如 OS/2 和 QNX) 需要這個功能且沒有它將會開機失敗。

原本在未升級前都好好的, 怎知升級後全都不 work 了.

看了很多 Blog 都說只要開啟 Bios 的 VT-x 選項再重開機就可以了. 可惜並非所願的出現 64bit 選項. 而且在 32bit 仍然出現以上訊息~

裝 VMware Player 試試看是否 32bit 也行得通, 結果告訴我要關閉 Hyper-V Role.