ลิงก์ผู้สนับสนุน

แสดงบทความที่มีป้ายกำกับ how to แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ how to แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 30 พฤษภาคม พ.ศ. 2556

[How to] disconnect ออกจาก remote desktop



ถ้าเราใช้งาน remote desktop ผ่านบาง app หลังจากปิด app ไปแล้ว แต่ปรากฏว่า session การใช้งานยังค้างไว้อยู่ ถ้าต้องการเช็คว่า มี session id ไหนค้างอยู่บ้าง ให้ใช้คำสั่ง qwinsta หลังจากเจอ user ที่ค้างใช้งานเอาไว้ แล้วต้องการปิด ให้ใช้คำสั่ง rwinsta ตามด้วย หมายเลข id ของแต่ละ session ที่จะปิด

END. ,,:P

วันอังคารที่ 19 มีนาคม พ.ศ. 2556

[Raspberry Pi][Perl] ควบคุม GPIO บน RaspberryPi ด้วย perl


อธิบายก่อนนะครับ ว่าอันที่จริง ไม่ใช่ใช้คำสั่ง perl ซักเท่าไหร่ แต่จะใช้ภาษา perl รันคำสั่ง linux ตอนใช้งาน GPIO บน raspberry pi อีกทีนึง ไม่งงนะ = = 55555

สำหรับสคริปนี้ ต้องรันด้วยสิทธิ์ root นะครับ (login ด้วย user root ก่อนรัน หรือใช้คำสั่ง sudo perl file.pl)

print "\n [+]----------------------------------------[+]";
print "\n  |    GPIO Control by using perl on bash    |";
print "\n  |      Test on Raspbian Wheezy [RPi]       |";
print "\n  |                                          |";
print "\n  |   Created by : AssazziN                  |";
print "\n  |   Version 1: 11 Mar 2013                 |";
print "\n [+]----------------------------------------[+]\n";

print "\n >> type h|help for help\n";
do {
    print " >> ";
    chomp($input=);
    if ($input eq 'h' or $input eq 'help') { help(); }

    elsif ($input=~/^export (\d{1,2})$/) {
        system("echo \"$1\" > /sys/class/gpio/export");
    }

    elsif ($input=~/^direction (\d{1,2}) (out|in)$/) {
        system("echo \"$2\" > /sys/class/gpio/gpio".$1."/direction");
    }

    elsif ($input=~/^value (\d{1,2}) (1|0)$/) {
        system("echo \"$2\" > /sys/class/gpio/gpio".$1."/value");
    }

    elsif ($input=~/^unexport (\d{1,2})$/) {
        system("echo \"$1\" > /sys/class/gpio/unexport");
    }

    elsif ($input=~/status/i) {
        @pin=();
        $pin=`find /sys/class/gpio/ gpio*`;
        while ($pin=~/sys\/class\/gpio\/gpio(\d{1,2})/g) { push(@pin,$1); }
        print " All pins that useabled : @pin\n";
    }

    elsif ($input eq 'q' or $input eq 'quit' or $input eq 'exit') {}
    else { print " $input : command not found\n"; }
} while ($input ne 'q' and $input ne 'quit' and $input ne 'exit');



sub help {
    print "\n ** This script requirement ROOT ***\n";
    print " > export [GPIO PIN]                 set gpio pin to useable\n";
    print " > direction [GPIO PIN] [out|in]     set gpio pin direction\n";
    print " > value [GPIO PIN] [1|0]            set gpio pin value\n";
    print " > unexport [GPIO PIN]               set gpio pin to unuseable\n";
    print " > status                            check status of all pin\n";
    print " > q quit exit                       exit script\n\n";
}


Pastebin: [Raspberry Pi] GPIO Control

ส่วนการใช้งานคำสั่งๆจริงๆ แบบไม่ผ่านสคริปนี้ ก็แกะจากโค้ดเอาละกัน ;p

คำสั่งเปิดใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/export
คำสั่งให้ขา gpio #23 เป็นตัว output : sudo echo "out" > /sys/class/gpio/gpio23/direction
คำสั่งให้ขา gpio #23 เป็นตัว input : sudo echo "in" > /sys/class/gpio/gpio23/direction
คำสั่งจ่ายไฟให้ขา gpio #23 : sudo echo "1" > /sys/class/gpio/gpio23/value
คำสั่งหยุดจ่ายไฟให้ขา gpio #23 : sudo echo "0" > /sys/class/gpio/gpio23/value
คำสั่งอ่านค่าสถานะของขา gpio #23 : cat /sys/class/gpio/gpio23/value
คำสั่งเลิกใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/unexport

วันจันทร์ที่ 11 มีนาคม พ.ศ. 2556

[Raspberry Pi] การเปิดใช้งาน ftp ด้วย vsftpd


สำหรับการเปิดใช้งาน ftp บน raspberry pi รู้สึกว่าจะมีให้เลือกใช้บริการหลายเจ้านะ แต่อันที่จริงคือ ผมรู้จักแต่ vsftpd 5555 ;p เห็นว่าตัวนี้ได้รับความนิยมเยอะด้วย ถึงมีปัญหาอะไร ก็จะมีเพื่อนช่วยแก้ให้เยอะด้วย จริงมั้ยหละ ? :)

เอาละครับ มาถึงเวลาลองกันละ
1. ตามสเตปเลย sudo apt-get install vsftpd
2. แล้วก็ไปตั้งค่ากันก่อน sudo nano /etc/vsftpd.conf
   2.1 แก้ตรงบรรทัด anonymous_enable=YES  ให้เป็น  anonymous_enable=NO (เพื่อป้องกันไม่ให้ใครก็ได้ล็อกอินเข้ามาแบบไม่ใส่ user ไม่ใส่ pass)
   2.2 แก้ตรง #local_enable=YES โดยเอาเครื่องหมาย # ออก (เพื่อให้ทุก user ใน /etc/passwd ล็อกอินเข้ามาได้)
   2.3  แก้ตรง #write_enable=YES โดยเอาเครื่องหมาย # ออก (เพื่อให้ user ที่ล็อกอินเข้ามา สามารถเขียนไฟล์ได้)
   (2.3) หรือบ้างคน อาจจะเพิ่มบรรทัด force_dot_files=YES เข้าไปบรรทัดสุดท้ายของไฟล์ด้วยก็ได้ เพื่อให้โปรแกรม ftp แสดงไฟล์ .htaccess
   2.4 ถ้าต้องการแก้ไข default ที่อยู่ของแต่ละ user สมมติว่า เรา ftp เข้าไปด้วย user ชื่อ www-data แล้วที่อยู่ปกติจะอยุ่ที่ /home/pi เราต้องการให้อยู่ที่ /var/www ให้แก้ที่ไฟล์ /etc/passwd หรือใช้คำสั่ง sudo -d /var/www www-data

3. ตั้งค่าเรียบร้อย ก็เปิดใช้งานเลย sudo service vsftpd restart
4. สามารถล็อกอินใช้งานจาก programs ftp ทั่วไปได้แล้ว

Ref : http://spalinux.com/2011/09/install_configure_vsftpd_ftp_server
http://www.voip4share.com/centos-the-community-enterprise-operating-system-f55/vsftpd-ftp-server-centos-t1162.html
http://www.itmanage.info/technology/linux/vsftp_config_read_only.html

วันอาทิตย์ที่ 26 สิงหาคม พ.ศ. 2555

วิธีแก้ Dynamic Disk เป็น Basic Disk + วิธีซ่อนไดร์ฟ 100MB(system reserved drive)


มันเริ่มมาจาก ผมจะลง Ubuntu ก็เลยไปสร้าง partition ขึ้นมาใหม่ด้วยโปรแกรมที่ติดมากับ windows7 นะ โปรแกรมมันก็แจ้งเตือนว่า เออ..ถ้าสร้างขึ้นใหม่ ไดร์ฟทุกไดร์ฟจะกลายเป็นแบบ dynamic นะ (ตอนนั้นผมก็ไม่รู้หรอกว่า ไดร์ฟแบบ dynamic นี่มันเป็นยังไง ก็กดๆยอมรับไป 555) ปั๊บ.. สร้างเสร็จเรียบร้อย ก็จะลง ubuntu แต่ปรากฏว่า ลงไม่ได้! = ='   ก็เลยไปหาอ่านวิธีลงมันเป็นอะไรยังไง แล้วก็เพิ่งมารู้ว่า การที่จะลง OS ได้ ดิสก์จะต้องเป็นเป็นแบบ Basic เท่านั้น (ดิสก์มันมีอยู่ 2 แบบคือ basic กับ dynamic ที่ผมเข้าใจคือ แบบ basic มันมีได้สูงสุดแค่ 4 ไดร์ฟ ส่วนแบบ dynamic เนี่ย มันเอาไปทำอย่างอื่นได้เยอะ เป็นดิสก์เสมือน เอาไปแบ่งเป็นไดร์ฟต่างๆได้อีกเยอะ หรือเอา HDD หลายลูก มาทำเป็นไดร์ฟเดียวเงี้ย ก็ต้องใช้ดิสก์แบบ dynamic)

โอเคละ งานเข้าล่ะ ลง ubuntu ก็ไม่ได้  ดิสก์ก็ยังมากลายเป็นแบบ dynamic อีก ถึงแม้ว่าดิสก์จะเป็นแบบไหนก็ยังเก็บข้อมูลได้เหมือนเดิม แต่ผมก็อยากได้เป็นแบบ Basic Disk คืนอ่ะ ก็เลยต้องไปหาวิธีแก้มาอีก ซึ่งถ้าจะแก้คืนด้วยโปรแกรมที่ติดมากับ windows 7 (ชื่อ Disk management ?มั้ง,, ที่คลิกขวา my computer แล้วเลือก manage น่ะ) จะต้องลบทุกพาร์ทิชั่นออกให้หมด -> ให้เหลือพาร์ทิชั่นเดียว แล้วก็แปลงเป็น basic disk -> แล้วก็แบ่งพาร์ทิชั่นใหม่  ,,(แล้วข้อมูลมันตั้งเยอะ จะให้ไปแบคอัพเก็บไว้ใส่ไหนเล่า - -*)  แต่ก็ไปเจอโปรแกรมนึง AOMEI Dynamic Disk Manager Pro Edition มันบอกว่าสามารถแปลง Dynamic Disk ให้เป็น Basic Disk ได้ โดยข้อมูลไม่หาย "Aomei Dynamic Disk Converter Convert Dynamic Disk to Basic Disk without Losing Data"  *-* ต้องขอลองซักหน่อยละ ก็เลยโหลดมา ติดตั้งโปรแกรมเสร็จ



(ต่อไปเข้าเนื้อหาจริงๆละ โม้มาซะยาวเลย 5555+ ;p) 
ก็ติดตั้งโปรแกรมเรียบร้อย เปิดเข้ามา คลิกขวาตรงดิสก์ตามภาพเลย แล้วก็กดแปลงเป็น Basic Disk แล้วก็กดปุ่ม Commit ทางด้านบนเพื่อยืนยันคำสั่ง รอซักพักไม่เกิน 1 นาที!! มันจะให้รีสตาร์ทเครื่อง (ตอนนี้แอบเสียว เปิดเครื่องมา กลัวข้อมูลจะหายหมด) แล้วพอรีสตาร์ทเครื่องเสร็จปั๊บ ปรากฎว่า.. ข้อมูลหายหมดเลย! เย๊ยย ไม่ใช่ ฮ่าๆ ข้อมูลอยู่เหมือนเดิม แต่ตัวอักษรไดร์ฟจะเปลี่ยนไปนะ แก้ได้ๆ แล้วพอเข้าโปรแกรมไปเช็คดู โอเค กลายเป็น Basic Disk แล้ว :)

แต่ๆ(ไม่รู้คนอื่นเป็นกันรึเปล่านะ) พอเปิด My Computer ขึ้นมาดูเท่านั้นแหละ ดันไปเจอ ไดร์ฟนึง ซึ่งมันมีขนาด 100MB ก็ไม่รุ้แหละมันมาจากไหน ไปหาอ่านดูต่อ ก็รู้ว่ามันคือไดร์ฟที่ windows เอาไว้สำรองอะไรซักอย่างเผื่อตอนระบบมีปัญหา ซึ่งปกติมันจะไม่โชว์ไดร์ฟนี้ออกมา แต่ตอนนี้ มันดันโชว์ออกมาแล้ว  ไม่เป็นไร มาแก้กันต่อ

คลิกขวาที่ My Computer > manage


 แล้วกคลิกขวาตรงไดร์ฟ 100MB นั่นแหละ เลือก Change drive letter and paths.. แล้วก็กด Remove ตัวอักษรไดร์ฟนั้นออกไปซะ ก็เรียบร้อยละ  อ้อ ถึงตรงนี้ก็แก้ไดร์ฟอื่นที่ตัวอักษรไดร์ฟมันเปลี่ยนไปได้ด้วยเลย พอทำเสร็จเรียบร้อย รีสตาร์ทเครื่องครั้งนึง แล้วเปิด my computer ขึ้นมาดู โอเค ไดร์ฟ 100MB ที๋โผล่มา หายไปแล้ว..  :)

สิ้นสุดภารกิจเพียงเท่านี้ Mission Complete~

วันพุธที่ 21 มีนาคม พ.ศ. 2555

[วิธีแก้] RA2 & Yuri เล่นไม่ได้ ไม่เห็นเมนู / หน้าจอค้าง / หน้าจอมืด บน Win7


เนื่องจาก want ต้องการเล่น RedAlet2 & Yuri มากๆครับ เล่นบน Win7 64bit การ์ดจอ Intel ปรากฎว่า โหลดเกมมาแล้วเล่นไม่ได้ โดยภาพเกมจะค้าง มองไม่เห็นปุ่มเมนู แต่ยังเดากดปุ่มต่างๆได้ซะงั้น ผมก็เลยไปค้นหาวิธีแก้จากที่ต่างๆมาหลายที่ ส่วนใหญ๋แล้ว เขาจะบอกกันว่า ให้ไปตั้งค่าการ์ดแสดงผล HD Intel ให้เป็น maximum Performance ลองทำตามดู ก็ยังไม่ติด แล้วมาเจอเวปนึง จำที่มาเวปไม่ได้แล้ว ขออภัยด้วย เก็บเอาไว้แต่รูปภาพวิธีแก้ ตามนี้เลยครับ


ผมลองแล้ว WORK !!!!! :)

วันเสาร์ที่ 25 กุมภาพันธ์ พ.ศ. 2555

[How to] Copy ข้อความ จาก Dek-D แบบง่ายๆ


วิธีการก๊อปปี้ข้อความ จากเวป Dek-D แบบง่ายๆนะครับ



สรุปจาก VDO เลยละกัน วิธีก๊อปข้อความ หรือพวกนิยายอะไรงี้จากเวป Dek-D

ผมใช้ firefox นะครับ วิธีก๊อปปี้ข้อความก็คือ ปิด Style ของเวป โดยไปที่เมนู
View > Page Style > No Style

แค่นี้แหละ แล้วก็ก๊อปปี้ข้อความธรรมดาได้ละครับ

ปล.จะก๊อปอะไรไปไหน ก็อย่าลืมให้เครดิตด้วยละครับ :D

Edit : เพิ่งเห็นว่าวีดีโอมันมัวมากๆ ขอโทษด้วยนะครับ -/\- เอาเป็นว่าอย่าไปดูวีดีโอมันเลยละกัน อิอิ

วันเสาร์ที่ 14 พฤษภาคม พ.ศ. 2554

[Perl] โปรแกรมแก้เกม 24 แต้ม



พอดีว่า... ว่างจัดครับ 55+

ขอไปโพสไว้ที่ pastebin อีกที : http://pastebin.com/gqx9nGXW

sub solution {
my @num=@_;
my @opr=('+','-','*','/');
my $step;
my $output;
my $exp;
my $a;
my $b;
my $c;
foreach $step (1..8) {                                      #loop for order of operator
 foreach $a (0..3) {                                      #loop for math operator
  foreach $b (0..3) {                                      #loop for math operator
   foreach $c (0..3) {                                      #loop for math operator
    if ($step==1||$step==4||$step==6||$step==7) { $output.='('; }
    $output.=$num[0];

    $output.=$opr[$a];
    if ($step==2||$step==3) { $output.='('; }
    $output.=$num[1];
    if ($step==1||$step==6) { $output.=')'; }

    $output.=$opr[$b];
    if ($step==1||$step==5) { $output.='('; }
    $output.=$num[2];
    if ($step==2||$step==4) { $output.=')'; }

    $output.=$opr[$c];
    $output.=$num[3];
    if ($step==1||$step==3||$step==5||$step==7) { $output.=')'; }
    $exp=eval($output);
  
    if ($exp==24) {
     ++$j;
     print "[$j]   ::   $output\n";
    }
    $output='';
   }
  }
 }
}
}

my $a;
my $b;
my $c;
my $d;
my @num;
$j=0;

if ($^O eq 'MSWin32') { system('cls'); }
else { system('clear'); }
print "\n   === [24 Points : Solution] ===\n";
print "    By AssazziN [14/05/2011] \n\n";
print "   Enter number (Ex. 1 3 4 6) : ";
chomp($input=);
($num[0],$num[1],$num[2],$num[3])=$input=~/^(\d)\s(\d)\s(\d)\s(\d)$/;
unless ($num[0]&&$num[1]&&$num[2]&&$num[3]) { print "Format error !"; exit(0); }



foreach $a (0..3) {
foreach $b (0..3) {
 if ($b==$a) { next; }
 foreach $c (0..3) {
  if ($c==$a||$c==$b) { next; }
  foreach $d (0..3) {
   if ($d==$a||$d==$b||$d==$c) { next; }
   solution($num[$a],$num[$b],$num[$c],$num[$d]);
  }
 }
}
}
print "Not found solution !!\n" if ($j==0);

## Code Grean Grean By AssazziN



เขียนเสร็จก็งงกับตัวเองครับ อ่านแล้วงงงงยังไงไม่รู้ ฮ่าๆๆ

เสริม ภาพประกอบตอนทำครับ ตอนใส่วงเล็บนะ ตรงบรรทัด foreach $step (1..
8) {



วันอังคารที่ 5 เมษายน พ.ศ. 2554

How to find php.ini on linux



Use this command : find / -name "*php.ini*" to get path php.ini

;D

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

how to find perl interpreter?


Windows : where perl
Ex. : where perl
C:\Perl\bin\perl.exe



Linux : whereis perl
Ex. : whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz



Bonus : how to find version of perl ?

Windows and Linux : perl -v
Ex. on Windows : perl -v
This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-t
hread
(with 9 registered patches, see perl -V for more detail)

Copyright 1987-2010, Larry Wall

Binary build 1204 [294330] provided by ActiveState http://www.ActiveState.com
Built Feb 9 2011 14:38:22

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.



Ex. on Linux : perl -v
This is perl, v5.8.8 built for i386-linux-thread-multi

Copyright 1987-2006, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


;D

วันเสาร์ที่ 26 กุมภาพันธ์ พ.ศ. 2554

วิธีแก้ XP แสดงรายละเอียด GroupPolicy ไม่ครบ


จากที่เคยเข้า run>gpedit.msc [Group Policy] ในวินโดว์ XP แล้วมันแสดงรายละเอียดไม่ครบ



ให้คลิกขวาที่ User Configuration > Administrative Templates เลือก Add/Remove Templates



Add ไฟล์ system.adm เข้ามา หรือจะเลือกไฟล์ตัวอื่นด้วยก็ได้ เช่น wmplayer.adm(Windows Media Player") แต่หลักๆคือไฟล์ system.adm

และแล้ว รายละเอียดมันก็มาครบ

...THE END...

วันศุกร์ที่ 25 กุมภาพันธ์ พ.ศ. 2554

[How to] turn off Autorun


Go 2 Registry : HKLM > SOFTWARE > Microsoft > Windows NT > CurrentVersion > IniFileMapping

New Key : Autorun.inf

Edit : (Default) > SYS:DoesNotExist

วันศุกร์ที่ 26 พฤศจิกายน พ.ศ. 2553

[How to] Check your DirectX version


ได้เขียนการเช็ค Microsoft.Net Framework ไปแล้ว เขียนการเช็ค DirectX ต่อเลยละกัน

Run > dxdiag

กด Yes

ณ ช่อง DirectX Version : .......


[How to] Check your Microsoft .NET Framework version


เขียนไว้กันลืม ถึงแม้จะไม่รู้ว่ามันเอาไว้ทำอะไร =A=

Run > %systemroot%\microsoft.net\framework

Or

C:\Windows\Microsoft.NET\Framework

แล้วก็ดูเวอร์ชั่นตรงชื่อโฟลเดอร์

The End !