Posts

Showing posts from 2010

Axapta : Execute SQL command

Axapta มีคำสั่ง SQL รวมอยู่ใน X++ อยู่แล้ว แต่ถ้าอยากใช้คำสั่ง SQL อื่น ๆ เช่น ใช้ประโยชน์จาก NewID() ของ MS SQL Server เพื่อ random ก็ทำได้ ดังตัวอย่าง static void Job3(Args _args) { LogInProperty Lp = new LogInProperty(); OdbcConnection myConnection; Statement myStatement; ResultSet myResult; str sqlQuery; ; sqlQuery = 'SELECT TOP 10 * FROM CustTable ORDER BY NewID()'; LP.setServer("Server"); LP.setDatabase("db"); Lp.setUsername("user"); Lp.setPassword("password"); try{ myConnection = new OdbcConnection(LP); } catch{ info("Check username/password."); return; } myStatement = myConnection.createStatement(); myResult = myStatement.executeQuery(sqlQuery); while (myResult.next()){ box::info(myResult.getString(1)); } }

Axapta : Find user group of current userid

กันลืม UserGroupList userGroupList; ; WHILE SELECT userGroupList WHERE userGroupList.userId == curuserid() // && userGroupList.groupId == 'searchGroup'; { print userGroupList.groupId; } pause;

Ubuntu : Shutter add-ons

Image
อ้าว Shutter (โปรแกรมสำหรับ capture screen) ทำไม capture แล้ว edit ไม่ได้หว่า search ดูถึงได้รู้ว่า ขาด add-ons บางอย่างไปนี่เอง ว่าแล้วก็ติดตั้งซะเลย apt-get install libgoo-canvas-perl apt-get install gnome-web-photo อันแรกเอาไว้ capture แล้ว edit ได้ อันที่สองเอาไว้ capture หน้า web page ยาว ๆ มันจะ scroll ให้อัตโนมัติ

Ubuntu : Backup & Restore

คำสั่ง mt (Magnatic Tape) ปกติระบบจะ mount ไว้ให้ที่ /dev/st0 mt -f /dev/st0 status # ตรวจสอบสถานะ mt -f /dev/st0 rewind # สั่งหมุน tape กลับ mt -f /dev/st0 erase # ลบข้อมูล (นานมาก) mt -f /dev/st0 offline #สั่งเด้ง tape ออก Cleaning Cartridge # บางรุ่นอาจไม่เหมือนกัน ใส่เข้าไป พอมัน load เข้าไปแล้วทำความสะอาดเสร็จจะเด้งออกมาเอง (Cleaning Cartridge เป็นแบบใช้แล้วใช้เลย rewind กลับมาใช้อีกไม่ได้) คำสั่ง Backup & Restore Backup ใช้ -c tar -cvf backup_filename data_to_backup เช่น tar -cvf backup.tar /home/nikom กรณีต้องการให้บีบอัดไฟล์ด้วย เพิ่ม parameter -z tar -cvzf backup.tar.gz /home/nikom Restore เปลี่ยน -c เป็น -x (เข้าไปใน directory ที่จะ restore ก่อน เพราะสั่งตรงไหน restore มาตรงนั้น) tar -xvf backup_filename เช่น tar -xvf backup.tar restore ไฟล์ที่บีบไว้ ใช้ -z เหมือนกัน tar -xvzf backup.tar.gz Tape backup ลง tape tar -cvf /dev/st0 data_to_backup ดูรายการใน tape tar -tvf /dev/st0 restore จาก tape tar -tvf /dev/st0 backup_filename backup & restore กับ tape ก็ใช้ -z สำห

Ubuntu : Automount NTFS partition when login

ติดตั้ง ubuntu ใหม่ทีไร ลืมทุกที 1.แก้ fstab 1.1 mkdir /media/Data1 #สร้าง mount point 1.2 sudo apt-get install ntfs-3g 1.3 sudo nano /etc/fstab 1.4 เพิ่มบรรทัดดังนี้ /dev/sda1 /media/Data1 ntfs-3g defaults 0 0 2.ใช้ script 2.1 nano /etc/automount.sh 2.2 ดังนี้ #!/bin/bash mount /dev/sda1 /media/Data -t ntfs -o rw mount /dev/sda2 /media/Data2 -t ntfs -o rw

Expanding the size of a virtual disk

Image
เมื่อ OS ใน Virtual Box เต็ม จะทำอย่างไรกันดีเล่าพี่น้อง ความจริงวิธีที่จะทำ มันไม่ตรงกับหัวข้อครับ เพราะมันไม่ใช่การขยาย แต่มันเป็นการสร้างใหม่ 1.เลือก VDI Image เป้าหมายที่ต้องการขยาย 2.สร้าง VDI Image อันใหม่ให้มีขนาดที่ต้องการ 3.เพิ่ม Image อันใหม่เป็น Slave และ เพิ่ม linux Image เข้าไปใน CD สำหรับใช้ Boot ตามตัวอย่างใช้ Parted Magic 4.เปิด terminal พิมพ์ nano /proc/paritions เพื่อดูขนาด harddisk 5.ใช้คำสั่ง dd โดยสังเกตขนาดตามรูป จะโอนจาก 10G(hda) ไปเป็น 30G(hdb) ก็ใช้คำสั่ง dd if=/dev/hda of=/dev/hdb 6.รอจนเสร็จแล้ว shutdown 7.สร้าง OS อันใหม่ แล้วเพิ่ม VDI Image อันใหม่ กับ image ของ Parted Magic boot อีกทีเพื่อ resize partition เพราะ image ใหม่มีขนาด 30 GB ก็จริง แต่ขนาด partition ยังเท่าเดิม 8.เสร็จแล้วก็ shutdown แล้วเอา image ของ Parted Magic ออกก็จะได้ OS ใหม่ใหญ่กว่าเดิมไว้ใช้งาน

Create Screenshot from movie

Image
Ubuntu : Totem Movie Player 1.เปิดไฟล์ 2.เข้าเมนู Edit -> Create Screenshot Gallery... 3.เลือกความกว้าง สูงสุดได้ 500 pixel 4.เลือกจำนวนภาพหรือทำเครื่องหมายเพื่อให้โปรแกรมคำนวณให้ก็ได้ Windows : Media Player Classic 1.เปิดไฟล์ 2.เข้าเมนู View -> Options... 3.เลือก Output เป็น VMR9 (windowed) 4.เข้าเมนู File -> Save Thumbnails... 5.ตั้งชื่อไฟล์ ชนิด จำนวนแถว ขนาด ด้านล่าง ขอบคุณภาพประกอบจาก www.thailandtorrent.com

Ubuntu : Install OCS Inventory NG

OCS Inventory NG เป็น Asset Management Software แบบ Open Source สำหรับจัดการข้อมูล Hardware และ Software ในระบบเครือข่าย รองรับ Client ที่เป็น Windows, Linux, MacOS ฯลฯ * Relevant inventory information. * Powerful deployment system allowing to distribute software installation or scripts on computers without overloading the network. * Web Administration Console. * Multiple operating systems support, including Microsoft Windows, Linux, *BSD, Sun Solaris, IBM AIX, HP-UX, MacOS X. * Lightweight bandwith usage: 5 KB for a full Windows inventory. * High performance: about 1 000 000 of computers inventoried per day using a server bi-Xeon 3 GHz and 4 GB RAM. * 3-Tier architecture using current standards, HTTP/HTTPS protocol and XML data formatting. * Based on well known products such as Apache web server, MySQL database server, PHP and PERL scripting languages. * Web service accessible through SOAP interface. * Plugins support through API. * ... h

Java on Ubuntu 10.04

Package sun-java6-jre is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source Package sun-java6-jre has no installation candidate sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner” apt-get update sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

Set homepage by code

วันก่อนมีรุ่นน้องที่เคารพ โทรมาหาถามว่า พี่ เซ็ต homepage ทำยังไงอ่ะ พอดีไปเผลอกดตอบรับเซ็ต homepage ของเว็บนึงเข้า คิดในใจ "โห โง่ว่ะ" แต่ตอบไปว่า เข้าไปที่ Tools -> Internet option ... สวนกลับมาก่อนจะบอกจบว่า ไม่ได้พี่ IT บล็อก ค่อยเริ่มน่าสนใจหน่อย จะบอกให้ไปแก้จาก registry ก็คงจะโดนบล็อกอีก ก็เลยหาวิธีอื่นให้ สรุปได้ว่าใช้ code ข้างล่าง Set homepage upload ให้ด้วยที่ http://tools.komkid.net/homepage.html เผื่อใครจะเจอสถานการณ์แบบนี้บ้าง (ใช้ได้เฉพาะ IE เท่านั้นเด้อ) ------------------------------------------ อันนี้แปะไว้กันลืม Registry สำหรับ IE HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page

Ubuntu : Install ClamAV

1.ติดตั้ง ClamAV และ Update apt-get install clamav apt-get install clamav-daemon /etc/init.d/clamav-daemon restart freshclam #update virus definitions clamscan -r /location_of_files_or_folders 2.Schedule Scan crontab -e 00 00 * * * clamscan -r location_of_files_or_folders 3.Log and Quarantine mkdir /var/log/clamav/infected nano /etc/clamav/clamscan_schedule.sh ป้อน #!/bin/sh ### fix log file if needed LOG_FILE="/var/log/clamav/scan.log" if [ ! -f "$LOG_FILE" ]; then touch "$LOG_FILE" chmod 644 "$LOG_FILE" chown clamav.clamav "$LOG_FILE" fi clamscan -r /public_data --quiet --log="$LOG_FILE" --verbose --move=/var/log/clamav/infected chmod +x /etc/clamav/clamscan_schedule.sh

Ubuntu : Install FreeNX

FreeNX เป็นคนละตัวกับ NXServer ของ nomachine ครับ (ของ nomachine จำกัดแค่ 2 session เอง) 1.เพิ่ม repository nano /etc/apt/sources.list เพิ่ม deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu VERSION main deb-src http://ppa.launchpad.net/freenx-team/ppa/ubuntu VERSION main เพิ่ม key แล้ว update apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2a8e3034d018a4ce apt-get update 2.ติดตั้ง server aptitude install freenx 3.ติดตั้ง client (ใช้ของ nomachine) wget http://64.34.161.181/download/3.4.0/Linux/FE/nxserver_3.4.0-12_i386.deb dpkg -i nxclient_3.4.0-5_i386.deb 4.กรณีต้องการเปลี่ยน SSH key dpkg-reconfigure freenx-server เลือก Create new custom keys จะได้ key อยู่ที่ /var/lib/nxserver/home/custom_keys/client.id_dsa.key สำหรับเอาไป import เข้า nxclient อาจ copy ไปโดยให้คำสั่ง ที่ server cp /var/lib/nxserver/home/custom_keys/client.id_dsa.key ~/ ที่ client scp user@freenx-server:~/client.id_dsa.key ~/

Ubuntu : Join Domain

Join domain ให้ Ubuntu เป็นสมาชิกของ domain แก้ไขไฟล์ /etc/resolv.conf sudo nano /etc/resolv.conf ป้อนข้อมูลดังนี้ search sci.com nameserver 192.168.0.254 แก้ไขไฟล์ /etc/hostname sudo nano /etc/hostname ป้อนข้อมูลดังนี้ ubuntu name.sci.com Join domain โดยใช้คำสั่งดังนี้ sudo apt-get install likewise-open sudo /etc/init.d/likewise-open restart sudo domainjoin-cli join sci.com administrator sudo update-rc.d likewise-open defaults

Ubuntu : Centralized Log Server & PHPSyslogViewer

ติดตั้ง Ubuntu 8.04 Server 1.Boot จากแผ่นติดตั้ง เลือกภาษาที่จะใช้ในการติดตั้ง : English 2.เลือกการติดตั้ง : Install Ubuntu Server 3.เลือกภาษาสำหรับระบบ : English 4.เลือกประเทศ : other -> Thailand 5.Detect keyboard layout : No -> Thailand -> Thailand 6.เลือกปุ่มเปลี่ยนภาษา : Alt+Shift 7.ตั้งชื่อ Server : Go Back (เพื่อกลับไปตั้งค่า IP) 8.ตั้งค่า Network : Configure network manually 8.1 IP Address : 192.168.0.251 8.2 Netmask : 255.255.255.0 8.3 Gateway : 192.168.0.3 8.4 Name server : 192.168.0.254 9.ตั้งชื่อ Server : Server1 10.Domain : sci.com 11.จัดการ Partition : Guided - use entire disk -> Yes 12.ตั้งชื่อ user : System Administrator -> sa 13.ตั้งรหัสผ่านและยืนยัน : *** -> *** 14.ตั้งค่า proxy : 15.เลือก Software ที่จะติดตั้ง : OpenSSH server 16.Restart (หลังจากนี้สามารถ ssh มาจากเครื่องอื่นได้) 17.Login ด้วย User ที่สร้าง 18.กรณีไม่ได้ตั้งค่า IP ในขั้นตอนที่ 8 ตั้งค่าได้โดยใช้คำสั่ง sudo nano /etc/network/interfaces แก้ไขให้เป็นดังนี้ # The loopback network

ปาย เที่ยวมาแล้ว : โป่งเดือด

[gallery=16]

ปาย เที่ยวมาแล้ว : สะพานประวัติศาสตร์

[gallery=15]

ปาย เที่ยวมาแล้ว : ถ้ำลอด

[gallery=14]

ปาย เที่ยวมาแล้ว : ถ้ำปลา

[gallery=13]

ปาย เที่ยวมาแล้ว : Coffee in love

[gallery=12]

ปาย เที่ยวมาแล้ว : หมู่บ้านจีนยูนนาน

[gallery=11]

ปาย เที่ยวมาแล้ว : วัดน้ำฮู

[gallery=9]

ปาย เที่ยวมาแล้ว : ถนนคนเดิน

[gallery=8]

ปาย เที่ยวมาแล้ว : ปายเคียงฟ้า

ปายเคียงฟ้า ที่ปายดอย [gallery=7]

ปาย เที่ยวมาแล้ว : Kafe in

[gallery=5]

ปาย เที่ยวมาแล้ว : พระธาตุดอยกองมู

[gallery=4]

ปาย เที่ยวมาแล้ว : ถ้ำแก้วโกมล

[gallery=3]

ปาย เที่ยวมาแล้ว : สวนสน

[gallery=2]

ปาย เที่ยวมาแล้ว : ออบหลวง

[gallery=1]

Axapta : Posting journal by code

static void InventJournalCheckPost(Args _args) { InventJournalTable inventJournalTable; InventJournalCheckPost journalCheckPost; ; ttsbegin; inventJournalTable = InventJournalTable::find("xxx",true); //Remove Journal "xxx" has not been locked by system inventJournalTable.SystemBlocked = true; inventJournalTable.update(); journalCheckPost = InventJournalCheckPost::newJournalCheckPost (JournalCheckPostType::Post,inventJournalTable); journalCheckPost.run(); inventJournalTable.SystemBlocked = false; inventJournalTable.update(); ttscommit; }

Squid : Custom error page

Image
หน้าตาสำหรับแสดงผลกรณีมี error ของ squid เช่น กรณีถูกบล็อก(ERR_ACCESS_DENIED) แก้ไขได้ที่ /usr/share/squod/errors/ โดยสามารถใช้ Variable ได้ด้วย ดังนี้ %B URL with FTP %2f hack %c Squid error code %d seconds elapsed since request received (not yet implemented) %e errno %E strerror() %f FTP request line %F FTP reply line %g FTP server message %h cache hostname %H server host name %i client IP address %I server IP address %L contents of err_html_text config option %M Request Method %m Error message returned by external auth helper %p URL port %P Protocol %R Full HTTP Request %S squid default signature %s caching proxy software with version %t local time %T UTC %U URL without password %u URL with password (Squid-2.5 and later only) %w cachemgr email address %z dns server error message ตัวอย่าง ERR_ACCESS_DENIED ERROR: The requested URL could not be retrieved Web นี้ถูก block ในช่วงเวลา 8:00-12:00 น. และ 13

Squid : Custom error page

Image
หน้าตาสำหรับแสดงผลกรณีมี error ของ squid เช่น กรณีถูกบล็อก(ERR_ACCESS_DENIED) แก้ไขได้ที่ /usr/share/squod/errors/ โดยสามารถใช้ Variable ได้ด้วย ดังนี้ %B URL with FTP %2f hack %c Squid error code %d seconds elapsed since request received (not yet implemented) %e errno %E strerror() %f FTP request line %F FTP reply line %g FTP server message %h cache hostname %H server host name %i client IP address %I server IP address %L contents of err_html_text config option %M Request Method %m Error message returned by external auth helper %p URL port %P Protocol %R Full HTTP Request %S squid default signature %s caching proxy software with version %t local time %T UTC %U URL without password %u URL with password (Squid-2.5 and later only) %w cachemgr email address %z dns server error message ตัวอย่าง ERR_ACCESS_DENIED ERROR: The requested URL could not be retrieved Web นี้ถูก block ในช่วงเวลา 8:00-12:00 น. และ 13

JavaScript : 1 Form 2 Target

Logon Script : Map Network Drive

' MapNetworkDrive.vbs ' VBScript to map a network drive to a UNC Path. ' Author Guy Thomas http://computerperformance.co.uk/ ' Version 2.3 - September 2005 ' -----------------------------------------------------------------' Option Explicit Dim objNetwork Dim strDriveLetter, strRemotePath strDriveLetter = "P:" strRemotePath = "\\server2\public_data" ' Purpose of script to create a network object. (objNetwork) ' Then to apply the MapNetworkDrive method. Result J: drive Set objNetwork = CreateObject("WScript.Network") objNetwork.MapNetworkDrive strDriveLetter, strRemotePath WScript.Quit ' End of Example VBScript.

Service ports for firewall configuration

DHCP *UDP 67, 2535 DNS *UDP 53 *TCP 53,139, 445 Symantec Systen Center *TCP 2967

Squid and Active Directory

acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 # https acl SSL_ports port 563 # snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT acl webblocked url_regex '/etc/squid/webblocked.txt' acl day_am time 08:00-12:00 acl day_pm time 13:00-17:40 http_access deny webblocked day_am http_access d

Axapta : Firewall config

Image
เราสามารถตั้งค่า Axapta ให้ใช้งานผ่าน Windows Firewall ได้โดยตั้งค่า port ที่ AOS ดังรูป ในส่วนของ Client Config ก็ตั้งค่าในส่วนของ advance ดังรูป แล้วก็ไป add port เพิ่มใน Windows Firewall