\

Facebook


วันอาทิตย์ที่ 30 มีนาคม พ.ศ. 2557

ประสบการณ์การใช้ Window 8 Blue Preview ฟรีจาก Microsoft Official


เนื่องจาก Hard Disk ที่มาพร้อมกับโน๊ตบุ๊คตั้งแต่แรกซื้อ ถึงขีดจำกัดของมันแล้ว จู่ๆก็เล่นอ่านไฟล์ล้มเหลว บูทไม่ขึ้น มองไม่เห็น OS ถึงขั้นว่าเอา Hirens USB (วิธีสร้าง usb boost disk ด้วย Hirens tool) มาเปิดดู Disk ก็เอ๋อเหรอ อาการหนักแบบนี้ ซื้อใหม่อย่างเดียวครับ เลยเจิม Hard Disk ใหม่ด้วย Windows 8 (ไม่มีปุ่ม Start) มาลองเล่นดู

ซึ่งผมเลือกเป็นเว่อร์ชั่น Blue Preview ซึ่งเป็นเว่อร์ชั่นที่ทางไมโครซอฟเค้าบอกว่า ให้เอามาทดลองใช้ได้ฟรี ไม่เสียตังสักกะบาทเดียว แต่ว่าติดที่ยังไม่ได้ Activate License Key ซึ่งต้องซื้อเว่อร์ชั่นเต็มมาลงแทน หรือซื้อไลเซนต์ของทางไมโครซอฟ ซึ่งตั้งแต่ใช้งานมาก็ไม่พบปัญหาการล็อกวินโดว์เลยครับ เอาเถอะใช้ไปก่อน Windows 8.1 แท้อออกเมื่อไหร่(เงินถึงด้วย) ค่อยซื้อมาก็แล้วกัน

เหตุผลที่โหลด Windows 8  มาก็คืออยากเห็นประสบการณ์การใช้ OS แบบใหม่ๆ ต้องการอะไรที่ใช้งานแสนง่าย และระบบ Cloud หรือการ Sync ที่ชาญฉลาดมากยิ่งขึ้น (จริงๆจะเอามาลอง Dev Windows 8 metro app) ซึ่งจำเป็นมากในยุคปัจจุบันที่มีอุปกรณ์การสื่อสารมากมาย ไม่ว่าจะ Smartphone, Tablet, PC, Note book ซึ่งลองคิดดูง่ายๆว่าถ้าวันหนึ่ง hard disk ของคุณพังโบ๊ะแบบผม งานทั้งหมด รูป เพลง ไฟล์สำคัญ (และอื่นๆอีกมากมาย) หายไปต่อหน้าต่อตา จะรู้สึกว่าคลาวน์สำคัญจริงๆ

หน้าจอที่เด้งขึ้นมาทุกครั้งที่เปิดเครื่อง และจะสุ่มเด้งขึ้นมาอีกตอนใช้งานคือหน้าจอ Activate ซึ่งสร้างความรำคาญพอประมาณ แต่บ่นไม่ได้ ใช้ของฟรี ซึ่ง Windows 8 Blue Preview นี้จะไม่หยุดการทำงานเบี้องหลัง คือไม่ว่าจะเปิดหนังทิ้งไว้ เปิดบิทควบคู่ไป ก็ไม่โดนหยุดการทำงาน และเราก็สามารถออกจากหน้านั้นได้โดยไม่โดน Lock เครื่อง โดยกลับมาใช้งานได้ตามปกติสุขอีกครั้ง

ปัญหามองไม่เห็นการ์ดจอ : อาจเป็นเพราะโน๊ตบุ๊คของผมเป็นรุ่นเก่าแล้ว (4-5 ปี) ทำให้มองไม่เห็น Hardware ที่เป็นการ์ดจอ NVidia สังเกตได้จาก เมื่อเข้าหน้าจอ device manage จะพบ Unknown hardware อยู่เพราะวินโดว์ทำความรู้จักกับ NVidia ไม่สำเร็จ ซึ่งทำให้ดูวิดีโอแบบ HD ที่ความละเอียด 720p และ 1080p ไม่ได้ ปัญหานี้น่าจะต้องรออัพเดต windows เรื่อยๆจนกว่าทางไมโครซอฟต์จะปล่อย patch แก้ปัญหานี้

-- note -- ถ้าแก้ปัญหาการ์ดจอ จะกลับมาแก้ไขบทความอีกครั้ง [2weektrain2014

วันพฤหัสบดีที่ 27 มีนาคม พ.ศ. 2557

[SQL] Remove View - SQL SERVER 2008R2 วิวทั้งหลายจงหมดสิ้นไป



ชุดคำสั่งสำหรับล้าง view ทั้งหมดที่อยู่ใน folder "View" ด้วย SQL SERVER 2008R2 , เริ่มต้นจาก connect databe ก่อนเเล้วเริ่มต้น Transact-SQL หน้าใหม่ copy code ด้านล่างนี้ ลงไปวางเเล้วกด  F5 เพื่อรันโค๊ดทั้งหมด แล้ววิวของท่านจะถูกล้างจนหมดสิ้น

DECLARE @viewName varchar(500)
DECLARE cur CURSOR
      FOR SELECT [name] FROM sys.objects WHERE type = 'v'
      OPEN cur

      FETCH NEXT FROM cur INTO @viewName
      WHILE @@fetch_status = 0
      BEGIN
            EXEC('DROP VIEW ' + @viewName)
            FETCH NEXT FROM cur INTO @viewName
      END
      CLOSE cur
      DEALLOCATE cur

หายหมดจริงๆนะครับ ถ้าไม่มั่นใจ แนะนำให้ back up วิวก่อนเเล้วค่อยเริ่มทำการลบ

วันพุธที่ 26 มีนาคม พ.ศ. 2557

[JDBC Driver]Oracle client ก็เปิดดาต้าเบส MySQL ได้เหมือนกัน


ทุกทีที่ผมต้องใช้ดาต้าเบส mySQL เครื่องมือตัวแรกที่แว้บเข้ามาในหัวคือ phpMyadmin ไม่รู้ว่าเก่าไปหรือไม่เเต่รู้ว่า tool ตัวนี้ทำให้ผมเขียนเว็บสำเร็จมาหลายต่อหลายงานเเล้ว อีกทั้งมันยังฟรี แถมติดมากับ XAMPP อีกด้วย เรียกว่าโหลดมาครั้งเดียวครอบคลุมงานเขียนเว็บอยู่แล้ว 

ด้วย gui ที่ง่ายเเละตอบโจทย์การสร้าง database ก็เลยไม่รู้ว่าจะโหลด tool ตัวอื่นๆมาหนักเครื่องไว้ทำไม เพราะ select create insert ก็จบได้ที่ตัวนี้ แต่เทคโนโลยีเปลี่ยนไป เราก็ต้องเปลี่ยนตาม ก็เลยมาลองเล่นๆดูกับ Oracle เพราะที่ บ. เค้าใช้งานกันทุกโปรเจค์ ทำให้สงสัยว่า "oracle client มันอ่านดาต้าของ provider ตัวอื่นได้ไหม " ลองที่ mySQL ก่อนเลย 

เริ่มจากไปหา Download MySQL Driver for Oracle Client ก่อนเลย ซึ่งมีแจกทั่วไป เเต่แนะนำให้โหลดที่   
https://dev.mysql.com/downloads/connector/ เลือกโหลดตัวทีชื่อว่า JDBC Driver for MySQL (Connector/J) แล้วเลือกโหลดตามประเภท windows ได้เลย 32 bit(x86) หรือ 64 bit(x64)

รันแอพลิเคชั่น oracle sql developer ขึ้นมาจาก start > oracle - oracle_client11g_homexx > application development > sql developerจากนั้นจะสังเกตเห็นว่า driver ของเรามีเพียง oracle กับ access เท่านั้น

ถึงเวลาเพิ่ม tab mySQL เเล้วให้ไปที่ tool > preference.. > จะแสดงหน้าต่าง Preferences ขึ้นมา เลือเมนู database > Third Party JDBC Drivers แล้ว add entry เป็นไฟล์ที่เราดาว์นโหลดมา

เปิด Oracle ใหม่อีกครั้ง เพียงเท่านี้ tab MySQL ก็จะแสดงขึ้นมา ที่เหลือก็แค่กรอก conection ให้ถูกต้องครับ (วิธีดูรหัส admin ของ phpMyAdmin)


สรุปการใช้งานโดยคร่าวๆ
สิ่งที่ผมหวังไว้จากการใช้คือ insert delete seelect เเละ query ทุกรูปแบบได้ แต่ผมกลับทำได้อย่างลำบากบนออราเคิลไคเอน ซึ่งผมหาฟังชั่นต่างๆอยู่นาน สุดท้ายก็ไม่เจอที่ต้องการ ดังนั้นสำหรับผมไม่ตอบโจทย์ความต้องการ ปล.กลับไป phpmyadmin เช่นเดิม อยู่มานานแบบนี้ ของเค้าดีจริง

ไหนๆก็เล่าเรื่อง Oracle มาถึงตรงนี้ละ (มือใหม่อย่างผม)เจอปัญหาดังนี้ list ไว้ก่อน แก้ไขได้แล้วจะมาแก้ไขบทความอีกที
1 require java version 1.4 ของผมเว่อร์ชั่นใหม่กว่านั้น รันไม่ขึ้นเฉย ต้องหามาลงทุกเว่อร์ชั่นหรือเปล่าเนี้ย
2 วิธีการดู relation ของแต่ละ table ทำยังไง





วันอังคารที่ 1 ตุลาคม พ.ศ. 2556

[WinForm C#] Basic Keyboard Reader

Almost of any software which have builded for user's comfortable have special shortcut keys, so today i would like to present easy WinForm keys reader.

In Winform c#, which interite from base Form of Windows.system also include reading key method. just create new project call "ReadKeyBoard" and add new main class call "Form1". Then, in properties tab click on Events button to reveal all form's event inside and double click on "KeyDown" event to active usage.


Let's see inside "Form1_KeyDown" method, it accepts two parameter which one is Object and another one is KeyEventArg e. So anytime you press Keyboard and take key up, program should automatically detect on "what key you press" and send it into method with e value. For example, i press "Backspace", i should get valuse as Keys.Back.

For combination keys such as CTRL + C, SHIFT + F4, you should get 2 values while taking inside this method. One modify key and one normal key, so make sure you have check for specific case. Just like combine Ctrl + C = copy :

if (e.Modifiers == Keys.Control && e.KeyCode == Keys.C)
            {
                // Do Copy stuff
            }

For normal key only :

 else  if (e.KeyCode == Keys.Space)
            {
                // Do your stuff
            }

Write other conditions as you want. i post the code example below. Have a nice day with less bug. Thank for interesting.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Modifiers == Keys.Control && e.KeyCode == Keys.C)
            {
                textBox1.Text = "Control + C";
            }
            else if (e.KeyCode == Keys.Back)
            {
                textBox1.Text = "Back";
            }
            else  if (e.KeyCode == Keys.Space)
            {
                textBox1.Text = "Space Bar";
            }
            else if (e.KeyCode == Keys.F4)
            {
                textBox1.Text = "F4";
            }
            else if (e.KeyCode == Keys.Tab)
            {
                textBox1.Text = "Tab";
            }
            else
            {
                textBox1.Text = "None";
            }
        }
    }
}

วันอาทิตย์ที่ 29 กันยายน พ.ศ. 2556

[WinForm c#] Basic send E-mail with Google Sevice


In this tutorial, I gonna show you how to implement basic WinForm with sending E-mail function. Gmail provide you STM port for sending new e-mail to another mail inbox, so we need Gmail account to access though this example code.

First, you must regist GOOGLE MAIL account to use their mail server service. If you have own hosting mail server, just get the same configuration of server side to apply this tutorial.

Google normally use port 587 for send and recieve fresh e-mail, and you can also use Class SmtpClient, which from System.Net.Mail, to declare nesessery property before start sending method.

Create new project call "SendMail" and add new Form into solution, Add componets like sample images below. There are including textEdit controls, LabelEdit and button. Put into the same position and give them EventHandler . Into event simpleButton1_Click(), i should start tring send mail by get valus inside controls and put into MailMessage class and begin connection.

 
 
 
 Totally C# send mail method : 

MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress(textEdit1.Text);
                mail.To.Add(textEdit2.Text);
                mail.Subject = textEdit5.Text;
                mail.Body = memoEdit1.Text;

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential(textEdit1.Text, textEdit3.Text);
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
 
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SendEmail
{
    public partial class mail : Form
    {
        public mail()
        {
            InitializeComponent();
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            if (!CheckEmperty())
            {
                MessageBox.Show("Plesae fill all blank input form");
                return;
            }
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress(textEdit1.Text);
                mail.To.Add(textEdit2.Text);
                mail.Subject = textEdit5.Text;
                mail.Body = memoEdit1.Text;

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential(textEdit1.Text, textEdit3.Text);
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);

                labelControl4.Text = "success";
                labelControl4.Appearance.ForeColor = System.Drawing.Color.Green;
            }
            catch (Exception ex)
            {
                labelControl4.Text = "fail";
                labelControl4.Appearance.ForeColor = System.Drawing.Color.Red;
            }
        }
        private bool CheckEmperty()
        {
            if (textEdit2.Text.Equals(""))
            {
                return false;
            }
            else if(textEdit1.Text.Equals(""))
            {
                return false;
            }
            else if (textEdit3.Text.Equals(""))
            {
                return false;
            }
            else if (textEdit5.Text.Equals(""))
            {
                return false;
            }
            else if (memoEdit1.Text.Equals(""))
            {
                return false;
            }
            
            return true;
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            textEdit1.Text = textEdit2.Text = textEdit3.Text = textEdit5.Text = memoEdit1.Text = "";
            labelControl4.Text = ": Result :";
            labelControl4.Appearance.ForeColor = System.Drawing.Color.Black;
        }
    }
}

วันพฤหัสบดีที่ 26 กันยายน พ.ศ. 2556

[VS2013] TIPเล็กๆ วิธี Break exceptiion ขณะ Runtime

ในโหมด Debug ของ Visual Studio 2012 หลายๆคนคงจะคุ้นเคยกับ Message box ที่จะคอยเด้งขึ้นมาเตือนเมื่อเกิด Error ขึ้นขณะรันโปรแกรม ซึ่งแมสเซจจะแสดงก็ต่อเมื่อเกิด error ที่ไม่สามารถ throw ไปได้ ทำให้โปรแกรมหยุดชะงั้นที่จุดนั้นพอดี

วันนี้จะมาแนะนำ trick การดัดจับ Error + warning message ที่เกิดขึ้นทั้งหมด เพื่อให้ รู้ตำแหน่งที่แท้จริงของจุดเกิด Runtime error ไม่ใช่แสดงค่าว่า "Object reference is not set" (หรือคำอื่นๆ) แล้วก็จากไปเฉยๆ

ไปที่ DEBUG > EXCEPTION...
ในช่อง Break when an exception is: จะมี Name ให้เลือก หาอันที่ชื่อว่า Commom Language Runtime Exception (CLR)ซึ่งข้างในจะมี properties ให้เลือกมากมาย โดยสามารถเลือกตามงานที่จะ dubug ได้เลยครับ เช่น

ถ้าต้องการ Thrown เฉพาะโค๊ด Linq ก็เลือก option : System.Data.Linq


เพียงเท่านี้ครับ error หรือ warning ทั้งหมดจะขึ้นแจ้งตื่นเราก่อน ที่จะข้ามไป โดยระบุบรรทัดที่เกิดความผิดพลาดขึ้น หรือในทางกลับกันถ้าใครที่รำคาญพวก message เหล่านี้ ก็สามารถติก thrown ออกไปได้เลย ก็จะไม่มีข้อความมายุ่งหรือกวนใจอีก

วันศุกร์ที่ 13 กันยายน พ.ศ. 2556

[TeamViewer] วิธีการ Remote Control เครื่องคอมในวงแลนเดียวกัน

วิธีในการ connect เครื่องคอมของเพื่อนที่อยู่ในวงแลนเดียวกัน (Local area Network Connection) ผ่านโปรแกรม TeamViewer มีดังนี้ครับ

1. ในหน้าต่างหลักของตัวโปรแกรม คลิก Extras > Options เพื่อเข้าหน้าต่างออฟชั่น


2. ในแทป General หาบรรทัด Connection in local network (via IP address)


3. เลือก Incomming Lan connection เป็น accept เพื่ออนุญาติให้เชื่อมต่อจาก Lan ได้
4. ใช้ IP address ของเครื่องเป็น UserName และ Password ที่โปรแกรม Gen ขึ้นมาให้ในการ Login
5. ที่ status bar จะแสดง Connecting.. แสดงว่าเครื่องกำลังพยายามคอนเน็กอยู่และ Connected เมื่อคอนเน็กอีกเครื่องได้สมบูรณ์แล้ว ส่วนค่า ip address ของอีกเครื่องก็หาได้จาก YourID ของเพื่อนหรือจะรันคำสั่ง ipconfig ใน cmd ก็ได้เช่นกันครับ

โปรแกรมที่โปรแกรมเมอร์ขาดไม่ได้ก็คือ TeamViewer เพราะใช้งานง่ายและเร็วในการรีโมตเครื่องอีกทั้งยังมีคุณสมบัติเรื่องความปลอดภัยในระบบพิสูจน์ตัวตน โดยพาสเวิร์ดที่เจนมาให้นั้น สามารถแก้ไขได้ตลอดเวลา อีกทั้งโปรแกรมนี้ยังใช้กันมากอันดับต้นๆในการควบคุมเครื่องคอมพิวเตอร์รวมไปถึงการส่งต่อไฟล์ (file transfer) จากระยะไกล

May be like this posts