2014/12/30

OSX 10.10 VMware Tools Command Line

執行這些指令前,最好將虛擬機器安裝好VMware Tools,以免有錯誤

#暫時將Command加入到Mac環境變數
export PATH=$PATH:/Applications/VMware\ Fusion.app/Contents/Library/

#取得當前執行的虛擬機器含路徑
vmrun list

#建立Snapshot
vmrun snapshot 映像檔路徑.vmx snapshot名稱

#取得該虛擬機器Snapshot清單
vmrun listSnapshots 映像檔路徑.vmx

#停止虛擬機器
vmrun stop 映像檔路徑.vmx

#重啟虛擬機器
vmrun reset

#暫停虛擬機器
vmrun suspend 映像檔路徑.vmx

#啟動虛擬機器
vmrun start 映像檔路徑.vmx

#更新虛擬機器的vmware軟體版本
vmrun upgradevm 映像檔路徑.vmx

#恢復已建立的snapshot
vmrun revertToSnapshot 映像檔路徑.vmx snapshot名稱

#複製虛擬機器使用Full
vmrun clone 映像檔路徑.vmx 新的映像檔路徑.vmx full

#複製虛擬機器使用Linked,Linked複製時需要關機,不能保持暫停狀態或開機
vmrun clone 映像檔路徑.vmx 新的映像檔路徑.vmx linked

執行結果:



參考資料:
http://www.vmware.com/pdf/vix162_vmrun_command.pdf

TP-Link TL-WR841N DD-WRT 韌體刷回原廠韌體

上個禮拜有朋友將他的TL-WR841N刷成DD-WRT韌體,後來該韌體不是很穩定想刷回原廠
他參考了『TL-WR841ND DD-WRT 韌體刷回原廠方式』文章,該篇寫得不錯,但是TL-WR841N得SCP沒辦法使用,所以他找我求救啦 :)


我看到時,我的思維認知是大部份路由器作業系統應該是Unix or Linux所建構
假設該系統內有wget,則你可以先在自己的電腦上架設FTP Server透過,例如HFS
假設該系統內有ftp server,則你可以確認iptables service是否有阻擋掉
假設該設備有USB,則你可以透過mount將隨身碟掛載到資料夾上,將韌體複製到該OS內,直接進行安裝



這次救援的系統為Windows 7,首先將Windows的Telnet  Client安裝好,並透過DD-WRT介面將Telnet開啟

接著開啟命令提示字元,輸入
telnet 路由器IP 23

連進去後,會要求你輸入帳號密碼,帳號密碼為登入DD-WRT的帳號以及密碼
這時候先去Windows下載TL-WR841N所需要的韌體,並將韌體放置FTP Server


回到命令提示字元輸入
wget http://FTP IP/韌體檔案全名.含副檔名

輸入ls 確認檔案存不存在,存在就輸入下方指令進行安裝吧!
mtd -r write 韌體檔案全名.含副檔名 linux



參考資料:
TL-WR841ND DD-WRT 韌體刷回原廠方式

CentOS 6.5 NTP Server

#安裝ntp server
yum install -y ntp

#編輯配置檔案
vim /etc/ntp.conf

#允許該網段校正時間
restrict 172.16.195.0 mask 255.255.255.0 nomodify

#防火牆規則
iptables -A INPUT -i $EXTIF -p udp -s 172.16.195.0/24 --dport 123 -j ACCEPT

執行結果:

更新成功:

設定檔為
restrict 172.16.195.0 mask 255.255.255.0 nomodify

更新失敗:
設定檔為
restrict 172.16.195.0 mask 255.255.255.0 nomodify


更新失敗:
設定檔為
restrict 172.16.195.0 mask 255.255.255.0 notrap



參考資料:
http://linux.vbird.org/linux_server/0440ntp.php#ntpdate

2014/12/29

CentOS 6.5 修改Hostname

hostname New hostname
#or
vim /etc/hostname

CentOS 6.5 Postfix 加入DNS 並利用WWW發送郵件


郵件正解如下:
$TTL 86400
@   IN  SOA     dns.cy.local. root.cy.local. (
        0 ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

@       IN      NS      dns.cy.local.
@       IN      A       192.168.10.13
@       IN      MX 10   mail.cy.local.
dns     IN      A       192.168.10.13
mail    IN      A       192.168.10.15
web     IN      A       192.168.10.16
www     IN      CNAME   web




反解:
$TTL 86400
@   IN  SOA     dns.cy.local. root.cy.local. (
        0  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

@       IN      NS      dns.cy.local.
@       IN      PTR     cy.local.
dns      IN      A       192.168.10.13
mail    IN      A       192.168.10.15
web     IN      A       192.168.10.16
13      IN      PTR     dns.cy.local.
15      IN      PTR     mail.cy.local.
16      IN      PTR     web.cy.local.

CentOS 6.5 DNS新增WWW伺服器

前幾個禮拜有寫『CentOS 6.5 架設 DNS Server』文章,該次使用的配置檔,僅拿上次的來改而已,如與您的環境不符合請自行修改

第一步先修改DNS正解與反解

修改正解:
$TTL 86400
@   IN  SOA     dns.cy.local. root.cy.local. (
        0 ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

@       IN      NS      dns.cy.local.
@       IN      A       192.168.10.13
dns     IN      A       192.168.10.13
web     IN      A       192.168.10.16
www     IN      CNAME   web


CentOS 6.5 設定靜態DNS

CentOS重開機時,會自動去找到DNS
為了做實驗時,不要讓DNS自動尋找,所以輸入以下指令編輯網路卡的配置檔

#網路卡配置檔
vim /etc/sysconfig/network-scripts/ifcfg-eth??

#加入這行在最底下
PEERDNS=no

#編輯DNS配置檔
vim /etc/resolv.conf

nameserver 靜態DNS Server IP

#ex 
nameserver 192.168.1.1



重開機或再次開機,就不用修改resolv.conf檔案了


參考資料:
http://ask.xmodulo.com/configure-static-dns-centos-fedora.html

C#.Net 使用Chart 繪製折線圖

先在工具箱找到Chart,拖曳至表單上
並將預設的序列刪除



程式碼:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace ChartSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            int[,] array = new int[,] {
            {1,8,9,7,105,11,50,999,500,1},
            {12,15,11,18,733,5,4,3,2,500} };


            //標題 最大數值
            Series series1 = new Series("第一條線", 1000);
            Series series2 = new Series("第二條線", 1000);

            //設定線條顏色
            series1.Color = Color.Blue;
            series2.Color = Color.Red;

            //設定字型
            series1.Font = new System.Drawing.Font("新細明體", 14);
            series2.Font = new System.Drawing.Font("標楷體", 12);

            //折線圖
            series1.ChartType = SeriesChartType.Line;
            series2.ChartType = SeriesChartType.Line;

            //將數值顯示在線上
            series1.IsValueShownAsLabel = true;
            series2.IsValueShownAsLabel = true;


            //將數值新增至序列
            for (int index = 0; index < 10; index++)
            {
                series1.Points.AddXY(index, array[0, index]);
                series2.Points.AddXY(index, array[1, index]);
            }

            //將序列新增到圖上
            this.chart1.Series.Add(series1);
            this.chart1.Series.Add(series2);

            //標題
            this.chart1.Titles.Add("標題");
        }
    }
}


執行結果:


參考資料:
http://msdn.microsoft.com/zh-tw/library/vstudio/dd489252(v=vs.100).aspx
http://msdn.microsoft.com/zh-tw/library/vstudio/system.windows.forms.datavisualization.charting(v=vs.100).aspx

2014/12/28

CentOS 6.5 架設 DNS Server

輸入下方指令安裝DNS
yum install -y bind*

安裝好後,輸入指令編輯配置檔案
vim /etc/named.conf


options {
        listen-on port 53 { 127.0.0.1; 該台IP; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any;192.168.100.0/24; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

/*正解*/
zone "cy.local" IN {
        type master;
        file "cy.local";
        allow-update {none;};
};

/*反解*/
zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "10-168-192";
        allow-update {none;};
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


CentOS 6.5 架設DHCP Server


先輸入下方指令安裝dhcp
yum install -y dhcp


輸入下方指令編輯配置檔
vim /etc/dhcp/dhcpd.conf


配置檔:
ddns-update-style interim;
ignore client-updates;
#subnet = IP範圍, netmask = 遮罩
subnet 192.168.1.0 netmask 255.255.255.0 { 
  range 192.168.1.10 192.168.1.240; #IP Range
  option domain-name-servers 192.168.40.13; #DNS Server IP
  option domain-name "cy.local"; #DNS
  option routers 192.168.1.254; #閘道
  default-lease-time 10000; #預設租約時間
  max-lease-time 15000; #最長租約時間
}

輸入下方指令設定DHCP網卡:
vim /etc/sysconfig/dhcpd



設定完後就輸入下方指令啟動DHCP Server
service dhcp start


無法啟動可以查看/var/log/message
最常見錯誤可可能是網卡的IP與設定檔的IP不符合
配置檔可以參考/usr/share/doc/dhcp-???/dhcpd.conf.sample

參考資料:
http://linux.vbird.org/linux_server/0340dhcp.php

CentOS 6.5 建立UUID給予網路卡


uuidgen eth?


參考資料:
http://www.itechlounge.net/2014/03/linux-how-to-generate-uuid-for-network-interface-on-rhelcentos/

2014/12/16

CentOS 6.5 用Postfix架設Mail Server並使用PHP寄信


輸入以下指令進行安裝套件

yum install -y httpd php postfix sendmail vim mail


接著將httpd開起來,並將以下程式碼分別貼到index.html以及test.php

service httpd start

index.html
<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
 <form method="post" action="test.php">
  <input type="email" name="to"><br/>
  <input type="text" name="msg"><br/>
  <input type="submit">
 </form>
</body>
</html>

CentOS 6.5 使用HaProxy實現Load Balance

目前機器跟參考資料的機器一樣,只是換個系統而已
web1以及web2輸入以下指令安裝Apache
yum install -y httpd

LB的Server則輸入以下指令安裝HaProxy
yum install -y haproxy

web1以及web2安裝好時輸入以下指令並讓Apache服務再開機時自動執行
hostname > /var/www/html/index.html
chkconfig httpd on
service httpd start

LB5這邊輸入以下指令編輯配置檔,配置檔如下

FUCHS Silkolene Pro 4 Plus 10w-50 x 2014 新勁戰三代



幾年前常去機油工廠買油,突然看到機油工廠進這罐油,板上也很少人在推,想說做個比較就買下去了,那時車還是雷霆
雷霆傳動熱衰到很嚴重,油門卻依舊扎實,讓我還無法忘懷啊,就像pretty t.....啊
最近又重新換上這罐去取代掉平時代步用的Total 10W50,不是你不好是你不夠


這罐油是PAO機油,倒出來是深紫色,又帶有點香氣XD
油門感覺很扎實,引擎聲音又變小聲,不易與其它油打架啊!
我個人使用它約莫1200~1500才換下,其他的機油約莫800km下課
用一罐約莫多出400~700的緩衝期,用兩罐則可以多出其他機油的一般使用里程數,且遲換機油又是我常幹的事情XDDD
所以我並不用太擔心用了這灌機油之後,會因為太晚換而傷到引擎XD


不過用前要三思,用了就不會變心了C/P值頗高
但是不適合少騎車的人使用啊!


謝謝神學弟借用圖片,懶得拍了XD

參考資料:
http://forum.jorsindo.com/thread-2446694-1-1.htm

Putoline 20W 前叉油 x 2014新勁戰三代

用過的前叉油有以下幾種

  1. 培力
  2. IP



培力以及IP是用在雷霆身上

培力前期蠻撐得住的,但中後期就整個變成油泥,前叉下去就很難再回來了 :(
而IP用在雷霆身上則是異常舒適啊,可惜裂化太快了,雖然後期沒變油泥,但前叉會變得很軟啊..

新勁戰三代則用過IP和Putoline,IP在新勁戰身上跟雷霆差不多,前期好用,但後期前叉變得特別軟啊...,平均一個月換一次前叉油..


而Putoline前期會稍微偏硬,中後期則是非常的舒適;很難去形容Putoline美妙的感覺XD
撞連續坑洞時那種路感非常清晰,但又不死硬的感覺真是棒透了,簡直快高X了XDDDD

目前配備:
前叉 Putoline 20w 93~95cc、DY內管組
後避震 K1 H/L 高速20 低速12 伸側6
前輪 BT601 YCX
後輪 TT91

第一組前叉油測試里程數:6500km
第二組前叉油測試里程數:?

下一組前叉油該來測試一直想測試的歐老師了XD


2014/12/12

2014新勁戰三代 K1 H/L

途中有發生一些小插曲,不過最後感謝朋友處理好了
在此感謝朋友們贊助該筆費用,也讓我能實現其他計畫


以下是車上使用過得
RX110:
原廠避震

Racing:
原廠避震 * 3
馬車避震 * 2
PGS 規格2 (現今GE-Racing)
K1
勁戰二代(2011版本) * 1
NTC掛瓶

新勁戰三代:
原廠避震
Max(品川)
K1 H/L

2014/11/02

Android Camera取得照片RGB平均值

主要程式碼請參考「Android Camera擷取方框範圍內影像」

關鍵Code:
@Override
 public void onPictureTaken(byte[] data, Camera camera) {
  try {

   ByteArrayInputStream stream = new ByteArrayInputStream(data);
   Bitmap bitmap = BitmapFactory.decodeStream(stream);
   stream.close();
   stream = null;

   // 螢幕解析度
   Point screenSize = new Point();
   getWindowManager().getDefaultDisplay().getSize(screenSize);

   // 照片解析度 / 預覽解析度 = 照片倍率
   float widthRate = picWidth >= pvWidth ? picWidth / pvWidth : pvWidth / picWidth;
   float heightRate = picHeight >= pvHeight ? picHeight / pvHeight : pvHeight / picHeight;

   // 預覽解析度/螢幕解析度 = 差異倍率
   float screenWidthRate = screenSize.x >= pvWidth ? screenSize.x / pvWidth : pvWidth / screenSize.x;
   float screenHeightRate = screenSize.y >= pvHeight ? screenSize.y / pvHeight : pvHeight / screenSize.y;

   // 取得ImageView x,y
   int[] location = new int[2];
   imageview.getLocationOnScreen(location);

   // 求得新座標
   location[0] *= screenWidthRate * widthRate;
   location[1] *= screenHeightRate * heightRate;

   // 求得新尺寸
   int newWidth = (int) (imageview.getWidth() * widthRate * screenWidthRate);
   int newHeight = (int) (imageview.getHeight() * heightRate * screenHeightRate);

   // 擷取範圍
   Bitmap bitmapRect = Bitmap.createBitmap(bitmap, location[0], location[1], newWidth, newHeight);
   bitmap = null;

   FileOutputStream fileOutputStream = new FileOutputStream(
     new File("/sdcard/" + new Date().getTime() + ".jpg"));
   bitmapRect.compress(CompressFormat.JPEG, 90, fileOutputStream);

   // 寫入檔案
   fileOutputStream.flush();
   fileOutputStream.close();
   fileOutputStream = null;

   toralR = 0;
   totalG = 0;
   totalB = 0;

   int count = 0;

   for (int w = 0; w < bitmapRect.getWidth(); w++) {
    for (int h = 0; h < bitmapRect.getHeight(); h++) {
     count++;
     int pixel = bitmapRect.getPixel(w, h);
     toralR += Color.red(pixel);
     totalG += Color.green(pixel);
     totalB += Color.blue(pixel);
    }
   }

   toralR /= count;
   totalG /= count;
   totalB /= count;

   Toast.makeText(MainActivity.this, "Red:" + toralR + ", Green:" + totalG + ", Blue:" + totalB, 1).show();

   bitmapRect = null;
   // 重啟相機預覽功能
   camera.startPreview();

  } catch (IOException e) {
   Log.i("Tack_IOException", e.getMessage());
  }
 }

執行結果:

2014/10/28

CentOS 6.5 安裝 Drupal 7.32

目前環境是一個人擁有兩台伺服器
一台用於MySQL Server,另一台則是Web Server
而Web Server上面有使用Drupal 7.32版本

那我們將MySQL Server稱作M,Web Server稱作W

M這邊必須先輸入指令,安裝MySQL Server
yum install -y mysql-server

而W這裡必須輸入指令,安裝Apache以及MySQL Client和PHP以及PHP連接MySQL的擴充套件
yum install -y mysql php php-mysql httpd


2014/10/19

CentOS 6.5 安裝VSFtp

先安裝VSFtp,以及建立chroot list
yum install -y vsftpd
touch /etc/vsftpd/chroot_list


再來設定VSFtp配置檔



我的配置檔如下
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chown_uploads=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#240秒
idle_session_timeout=240
#120秒
data_connection_timeout=120
ascii_upload_enable=NO
ascii_download_enable=NO
ftpd_banner=Welcome to C.Y FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=3000
pasv_max_port=3500

2014/10/16

IgniteNet SunSpot AC1200

首先,開箱前得感謝老闆以及主管,也謝謝你們看得起小弟
願意將這個產品贊助我去開發,這項產品雖然灌好系統了
但我會去嘗試重新去開發一套屬於這項產品的系統,在文後會提到該產品優點以及缺點

拿到時,先去看了DataSheet(謝謝大哥教得好,現在拿到產品會先看DataSheet在下手 XD)
這項產品支援以下:
802.11 a/b/g/n/ac
2.4GHz
5.0GHz
8 SSID
1GE(PoE)
2FE 10/100
1 USB 2.0
Cloud Service
base Linux kernel
OpenWRT
Dual flash image support

十二小時前就開箱了,所以就不PO照片了,直接跳到設定畫面吧XD
可以看到一開始主頁能清楚的看到服務狀態



也能看到Port的流量以及RX和TX的值
Network底下有這幾種選項可以去設定

2014/10/14

C#.Net 調用Matlab

系統:Windows 7 32 bit
軟體:
Matlab R2012a 32 bit
VS2012 32 bit .Net 4.5

首先打開Matlab將以下程式碼貼上


Matlab Code:
function [ sum ] = getTotal( x,y )
    sum = x + y;
end

點擊File/New/Deployment Project



Name:可以隨便取,有關dll輸出檔案名稱以及類別的名稱
Type:選取.Net Assembly
輸入完按下ok


2014/10/13

改變MacBook Air 拍照儲存路徑

因為有時候寫文章時,是用Mac寫的,但截取照片時會自動儲存在桌面
但我覺得檔案在桌面上擺的都是,很髒亂所以就上網找到了這篇文章

設定路徑
defaults write com.apple.screencapture location Path

殺掉目前的服務,就能讓拍照位置改變
killall SystemUIServer


參考資料:
http://osxdaily.com/2011/01/26/change-the-screenshot-save-file-location-in-mac-os-x/

C# Ping a hostname on the network

Code:
using System;
using System.Net.NetworkInformation;
using System.Windows.Forms;

namespace MyPingForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Ping ping = new Ping();
            PingReply reply = ping.Send("IP");
            if (reply.Status == IPStatus.Success)
            {
                MessageBox.Show("ok");
            }   
        }
    }
}

執行結果:


參考資料:
http://msdn.microsoft.com/en-us/library/a63bsyf0.aspx

2014/09/24

ASP.Net FileUpLoad

Layout:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo1.aspx.cs" Inherits="Demo.Demo1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpLoadDemo" runat="server"/><br />
        <asp:Button ID="ButtonSubmit" runat="server" Text="提交"  OnClick="ButtonSubmit_Click"/>
    </div>
        
    </form>
</body>
</html>

Code:
using System;

namespace Demo
{
    public partial class Demo1 : System.Web.UI.Page
    {
        

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void ButtonSubmit_Click(object sender, EventArgs e)
        {
            //上傳的資料夾路徑
            string folderPath = Server.MapPath("~/images/");

            //判斷FileUpLoad有沒有檔案
            if (FileUpLoadDemo.HasFile)
            {
             //取得上傳的檔案名稱
                string fileName = FileUpLoadDemo.FileName;
                //取得檔案附檔名
                string extension = System.IO.Path.GetExtension(fileName);

                //是否為jpg檔案
                if (extension.Equals(".jpg"))
                {
                 //將檔案上傳到資料夾路徑
                    FileUpLoadDemo.SaveAs(folderPath + fileName);
                    Response.Write("&lt;script&gt;alert('上傳成功');&lt;/script&gt;");
                }
                else
                    Response.Write("&lt;script&gt;alert('檔案不符合上傳條件');&lt;/script&gt;");
            }
            else
                Response.Write("&lt;script&gt;alert('您讓未選擇檔案');&lt;/script&gt;");
        }

    }
}

2014/09/19

App inventor 2

今天當助教老師用App inventor 2來教學,所以順手寫下筆記,不過在這邊我是照自己的方式用的


首先,先到Installing and Running the Emulator in AI2找到屬於系統的Emulator;這邊我以Windows作示範請點此下載Windows用Emulator

下載且安裝完成,會看到桌面多出名為aiStarter連結,請點擊該圖示兩下



會開啟一個Terminal,請不要將它關閉,Terminal用於讓App inventor 2與Emulator做溝通用的

接著我們再來使用App inventor 2網址為http://ai2.appinventor.mit.edu/,不過App inventor 2必須透過Google帳號才能使用

首次登入,會看到如下圖的畫面
這邊的意思是要求存取你的個人資訊作為登入帳號用,都將其打勾後點選Allow


這邊可以直接點擊Never Tak Survey


CentOS 6.5 Minimal 架設WordPress 4.0

之前寫的不見了,在寫一次


先安裝需要的套件以及下載WordPress
yum install -y php php-mysql mysql mysql-server httpd wget
wget http://tw.wordpress.org/wordpress-4.0-zh_TW.tar.gz
tar -xvf wordpress-4.0-zh_TW.tar.gz -C /var/www/html


進入資料庫新增WordPress資料庫以及建立使用者,並設定該使用者僅能使用WordPress資料庫


create database mywordpress;
create user 'cy'@'localhost' identified by 'password';
GRANT ALL PRIVILEGES ON `mywordpress`.* TO 'cy'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
QUIT;

接著開啟網頁開始設定WordPress設定檔,點選送出


2014/09/18

Apple MacBook Air Install VMware Fusion 6

用了八年筆電的主機板壞了,沒有多餘時間移植其他主機版的時間..
案子跑在Windows7或Linux上,本來要用Parallel Desktop..
跟同學要了快一年了吧,啥都沒有XD

所以我的備案是VMware的產品線,國高中就是他們的忠實用戶,用他們家的產品架設遊戲伺服器或做實驗到現在
也較習慣VMware產品的操作方式,開始進入主題吧!



先到VMware Fusion產品網站,點選支援

滑到下方,並找到Downloads & Evaluations,點選Fusion Download

將版本改為6.0,有人應該會好奇為何不用7.0
因為key好不好找的問題,雖然手上有xxx..
不到最後關頭不使用它XD



CentOS 6.5 Minimal Install VMware Tools

我灌的CentOS版本為6.5 Minimal i386,安裝VMware Tools是透過perl來進行安裝的
Minimal 預設套件沒有Perl,所以先輸入下方指令安裝Perl


yum install -y perl gcc make kernel-headers kernel-devel kernel kernel-devel-$(uname -r)




安裝完成後,將VMware Tools從光碟掛載到test資料夾

mkdir test
mount /dev/sr0 test





ASP.Net 不同頁面透過Session互相傳遞資料


A Layout:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFormDemo.aspx.cs" Inherits="Demo.WebFormDemo" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="buttonSend" runat="server" OnClick="buttonSend_Click" Text="Button" />
    </div>
    </form>
</body>
</html>


B Layout:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFormDemo2.aspx.cs" Inherits="Demo.WebFormDemo2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox" runat="server" Height="300px" Width="400px" TextMode="MultiLine"></asp:TextBox>
    </div>
    </form>
</body>
</html>


2014/09/17

CentOS 6.5 Device eth0 does not seem to be present

最近安裝CentOS在VMware Workstation 9,透過網路對拷的方式將灌好系統複製到其他電腦上去,以上步驟都不是我做的...Orz

部署完之前網路依然是可以用的,部署後沒有網路
所以我輸入下列命令,將網卡啟動
ifup eth0



先查看eth0的網路卡MAC




Windows 7 Boot manager error status 0xc000000f

最近上班地點的電腦出現了這樣的狀況,但這邊有安裝了還原軟體,沒辦法使用恢復到上一次的狀態

首先準備一塊Windows 7任何版本的光碟都可以,接著重新開機並進入到Windws7安裝畫面


點選下一步

點選修復您的電腦

如果版本不相同的話,就按否吧
如果版本相同的話,就按修復並重新啟動試試看,如果成功就按右上角離開吧XD


2014/09/14

ASP.Net RadioButtonList 設定垂直或水平

RadioButtonList預設為垂直的方式呈現,如果想要改為水平可以透過RepeatDirection這個屬性去調整


<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" >
 ...
</asp:RadioButtonList>



參考資料:
http://msdn.microsoft.com/zh-tw/library/y837ez6f(v=vs.100).aspx

CentOS 6.5 隨著開機時啟動網路卡

有些Linux預設就不會將網路卡隨著開機啟動



以CentOS Minimal 6.5為範例,編輯ifcfg-eth*網路卡設定
vi /etc/sysconfig/network-scripts/ifcfg-eth0


2014/09/13

ASP.Net 使用.Net MessageBox來與使用者互動

.Net內有個MessageBox,從VB 6.0時期開始寫程式時,就是一個很方便的元件
這次案子用到的,是能讓使用者點擊刪除標籤能夠刪除該資料庫的東西
而我不想透過JavaScript或AJAX的方式,所以就用MessageBox這個元件

一開始先在專案按右鍵加入參考


將System.Windows.Forms打勾




ASP.Net 在Web Form加入User Control

最近跟學長合作案子,從中看到這個順便寫個筆記吧XD
有時候網頁觸發了事件後能夠將自定義的UserControl加入到WebForm某個欄位內

這次的範例則是再網頁載入時,能夠將User Control加入到Web Form的ID為DemoDiv的Div裡
UserControl名稱為『WebUserControl1.ascx』,而Web Form為『Default.aspx』

專案列表目前如下圖





2014/09/10

ASP.Net 透過Attributes設定HyperLink onclick


//透過屬性去新增
HyperLink.Attributes["onclick"] = "alert('ok')";

//透過Add方法去新增
HyperLink.Attributes.Add("onclick", "alert('ok')");

ASP.Net 存取Attributes

private void SetTag(String tag){
      //設定Attributes的Tag
      HyperLink.Attributes["tag"] = tag;
}

private string GetTag(){
      //取得Attributes的Tag
      return HyperLink.Attributes["tag"];
}

Asp.Net GridView 動態產生行



新增行:

            Label label = new Label();
            label.Text = "test";
            label.Width = Unit.Pixel(400);

            //修改
            HyperLink linkEditor = new HyperLink();
            linkEditor.Text = "編輯";

            //刪除
            HyperLink linkDelete = new HyperLink();
            linkDelete.Text = "刪除";

            //增加
            HyperLink linkInsert = new HyperLink();
            linkInsert.Text = "增加";

            //新增一行
            TableCell cell = new TableCell();
            cell.Controls.Add(label);
            cell.Controls.Add(linkEditor);
            cell.Controls.Add(linkDelete);
            cell.Controls.Add(linkInsert);

            GridViewRow gridViewRow = new GridViewRow(0, -1, DataControlRowType.DataRow,
                DataControlRowState.Normal);
            gridViewRow.Controls.Add(cell);

            //加入到指定行數
            GridView.Controls[0].Controls.AddAt(index, gridViewRow);

2014/09/09

BRIDGESTONE 601 YCX 使用心得

會換這條胎也是因為很懷念這條胎的路感以及安全性,以及買車不久後的1000多公里左右換的K702前輪已經讓我感受不到它是條半熱熔輪胎了

最近剛好有朋友贊助,就敗入這顆輪胎,要價大概是K702多一倍吧!
以下內容只跟K702做比較,滿分為五分

車種:新勁戰三代
後輪Dunlop TT91:120/70/12

頃倒:K702頃倒速度非常快,可是瞬間下去實在太沒安全感;而BT601則是穩穩地下去,雖然頃倒速度可能比較慢些但仍然是抓得比BT601穩

K702:3
BT601:5

抓地力:K702前期整體抓地力不錯,不過需要熱胎才有效果,否則就是笑果;且K702曾經讓我在大馬路撇輪,我想可能邁入後期了吧...
BT601雖然也需要熱胎,熱胎時間不用很長就能擁有良好的抓地力

K702:3
BT601:5

雨天:K702在下雨天算是堪用,而BT601可能會好些,只要溫度一起來的話也是有一定的抓地力。不過雨天用什麼神胎我想都差不多,還是騎慢點比較好

K702:3
BT601:3

耐用度:我想K702會突然爆紅也是因為他耐用度極高,但相對的耐用度高我想胎膠可能也不會優於其他的胎吧..
BT601放前輪則是用過16000公里過的,所以我比較不會擔心,曾經將其輪胎用到變光頭胎,但仍保有一定抓地力,算是一條值得投資在前輪的輪胎


K702:4
BT601:4



組合:
BT601F + TT91 120/70/12:TT91本身需要一定的熱胎時間,熱起來的話跟BT601蠻搭的,只是在高速彎的時候,可能還是得選用TT93;畢竟TT91本身胎偏中硬

K702 + TT91 120/70/12:TT91如上述所說,不過與上面的組合不同差在於K702配TT91是不錯的,原因是當K702熱胎完成TT91也是如此,所以整體搭配上以及能給予的抓地力大致相當,只是TT91頃倒速度比K702快一些,所以當K702後期時,可能就要小心了...


以下兩張圖可以很明顯的看到輪胎已經起削了,以下騎乘時速為40,並且騎乘短短的2km




以上測試皆為這三天騎乘了200多km的心得,整體來說非常推薦BT601,有預算的朋友就敗下去吧,這條輪胎雖然貴,不過耐用度也是中上的

這條輪胎型號有分YCX YCY YCZ
YCY屬於夏季胎
YCX屬於冬季胎
YCZ屬於兩者綜合胎

除此之外,再窮我也不會考慮K702了
K702是條平價胎,但他的騎法不太適合我...

2013 MacBook Air 接受藍牙裝置傳輸檔案

一直想透過手機的藍牙將圖片傳到電腦上,但一直出現失敗
爬文結果是藍牙的分享設定沒開

先到System Preferences


點擊Sharing
再將Bluetooth Sharing打勾,並設定檔案存放資料夾,以及是否詢問與配對過的或沒配對裝置做儲存的動作







參考資料:
http://www.mobile01.com/topicdetail.php?f=481&t=2617639

2014/09/01

ASP.Net GridView 隱藏列首以及取消自動產生欄位

使用C#.Net

//隱藏首列
GridView.HeaderRow.Visible = false;
//取消自動產生欄位
GridView.AutoGenerateColumns = false;


使用XML
//隱藏首列
<asp:GridView ShowHeader="false" >

//取消自動產生欄位

<asp:GridView AutoGenerateColumns="False" >

2014/08/21

Git stash

最近用VS在開發案子,有時只是想review一下Code或Layout,VS Project file就會有異動
或者是Code寫到一半時,可能需要Checkout到其他Branch,Git會要你Commit
那我們可以先用git stash將異動存起來,之後在透過git stash pop將異動提出

#將檔案加入暫存檔
git stash

#查看暫存檔清單
git stash list

#將暫存檔加回來
git stash pop

#將暫存檔0加回來
git stash pop stash@{0}




參考資料:
http://git-scm.com/docs/git-stash

ASP.Net 取得Get字串

最近案子用ASP.Net做的,所以寫一下筆記,以免忘記XD

About.aspx
<%@ Page Title="關於我們" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="About.aspx.cs" Inherits="WebApplication1.About" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        關於
    </h2>
    <div  runat=server id="AboutContent"></div>
</asp:Content>

透過Request的QueryString就可以得知Get字串

About.aspx.cs
using System;

namespace WebApplication1
{
    public partial class About : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            String test1 = Request.QueryString["Test1"];
            String test2 = Request.QueryString["Test2"];
            AboutContent.InnerHtml = test1 + test2;
        }
    }
}



執行結果: