Wednesday, June 20, 2007

Python Programming Homework 1

อาจารย์ให้เมื่อวันที่ 19/6/50

even.py

# even.py
#
# A function that used to test if a number is even or not
#
# Written by Prem Sichanugrist (48050892)
#

def even(number) :
return (number % 2 == 0)



hypotenuse.py
# hypotenuse.py
#
# A function that will calculate a length of hypotenuse
# side of a right triangle given both other sides.
#
# Written by Prem Sichanugrist (48050892)
#

import math

def hypotenuse(side1, side2) :
return math.sqrt(float(side1) ** 2 + float(side2) ** 2)



การบ้านเสดแล้ว เย้!

ผิดหวังกับ Windows Vista

มีโอกาสได้ลองลง Vista บน VMWare Fusion
อยากจะลองดูหน่อยว่า OS ขั้นต่อไปของ Microsoft นั้นดีแค่ไหน ..

แต่แอบผิดหวังนิดหน่อย ..

เรื่องแรกก็คงมาจาก การที่ VMWare Fusion ยังไม่รองรับ Aero Interface
เนื่องจากไม่สนับสนุน Direct X 9.0
ทำให้อดที่จะเห็นแถบเมนูใสๆ วิ๊งๆ
คลายความประทับใจไปเลย -*-

อีกเรื่องก็คงจะเป็น ขนาดของมันกระมัง
เพราะว่าขนาดสร้างเป็น Virtual Machine ละ
กินไปถึง 6 GB ทั้งๆ ที่ยังไม่ได้ลงโปรแกรมเสริมอะไรเลย ..

ลากันไปสักพักละกันนะครับ สำหรับ Vista
ไว้วันหน้าฟ้าใหม่ VMWare หรือไม่ก็ Parallels ออกตัวใหม่
แล้วเราค่อยเจอกัน .. ^^"

Friday, June 15, 2007

โค้ดแก้ไข C Bundle ใน Textmate

ตอนนี้ต้องใช้ Textmate ในการเรียน C++ Programming
แต่มีปัญหาว่า Textmate เจ้ากรรมนั้น ไม่สามารถที่จะ Compile และ Run ไฟล์เดียวโดดๆ ได้
เพราะว่าเวลามันจะ Build มันจะต้องสร้างโปรเจค X Code ก่อน

สองวันมานี้ ก็เลยลองแก้ Bundle ดูเรื่อยๆ
ใช้ร่วมกันระหว่าง Ruby กับ AppleScript
แล้วก็ เปิด Google จนตาลายเลย ..

จนได้ออกมา อย่างนี้ !

Compile Single File to Tool

#!/usr/bin/env ruby
#
# Compile the active file to an executable.
# Executable name is prefixed with "Test".

require 'English'

FilePath = ENV['TM_FILEPATH']
FileDir = ENV['TM_DIRECTORY']
FileBaseName = File.basename(FilePath)
FileExtension = File.extname(FilePath)
FileNoExtension = FileBaseName.sub(/#{FileExtension}$/, "")

Dir.chdir(ENV['TM_DIRECTORY'])

# have to use g++ to bring in C++ runtime libraries
cc = case FileExtension
when /\.c(pp?|xx|\+\+)/,'.C','.ii'
'g++'
else
'gcc'
end

puts "<pre>"
%x{ "#{cc}" -g -Wmost -Os -o "#{FileNoExtension}" "$TM_FILEPATH"}
puts "</pre>"


puts "<font color='#499914'>Successfully created #{FileNoExtension}</font>" unless $CHILD_STATUS != 0

(อาจจะแก้ไขอีกนิด เพราะอยากให้มันแสดงหน้าจอ Build สวยๆ หน่อย)

Run Single File in Terminal Window
#!/usr/bin/env ruby
#
# Compile the active file to an executable.
# Executable name is prefixed with "Test".

require 'English'

FilePath = ENV['TM_FILEPATH']
FileDir = ENV['TM_DIRECTORY']
FileBaseName = File.basename(FilePath)
FileExtension = File.extname(FilePath)
FileNoExtension = FileBaseName.sub(/#{FileExtension}$/, "")

puts %x{ osascript <<EOF
tell application "Terminal"
activate
do script "cd '#{FileDir}'; clear; echo 'Running #{FileNoExtension} ...'; echo ; ./#{FileNoExtension} ; echo ; read -p 'Please return to exit ..'; exit"
end tell
EOF }


ดูๆ แล่้วก็เวิร์คดีเหมือนกันแฮะ