Categories
Web site

Easy way to create XLS file from PHP

Everybody knows phpMyAdmin can export file to Excel format but phpMyAdmin just export .csv file,not real Excel file format. If you are interest in PHP programming and need to export to the real Excel format please check it out !

Example PHP export to XLS file format.

1. Create Function for XLS

function xlsBOF() {
echo
pack(“ssssss”, 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}

function xlsEOF() {
echo
pack(“ss”, 0x0A, 0x00);
return;
}

function xlsWriteNumber($Row, $Col, $Value) {
echo
pack(“sssss”, 0x203, 14, $Row, $Col, 0x0);
echo
pack(“d”, $Value);
return;
}

function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo
pack(“ssssss”, 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo
$Value;
return;
}

Categories
Linux Ubuntu Web site การพัฒนาซอฟท์แวร์

เซ็ต Alias ของ Apache บน Ubuntu

พิมพ์ใน Terminal
sudo gedit /etc/apache2/sites-enabled/000-default
เพิ่ม

Alias /virtualname/ "/home/me/html/realdirectory/"
<Directory "/home/me/html/realdirectory/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

Save แล้วปิด แล้วรีสตาร์ท Apache

sudo /etc/init.d/apache2 restart
Categories
Linux Ubuntu การพัฒนาซอฟท์แวร์

ลง SVN บน Ubuntu

To install subversion, open a terminal and run the following command:

sudo apt-get install subversion libapache2-svn

We’re going to create the subversion repository in /svn, although you should choose a location that has a good amount of space.

sudo svnadmin create /svn

Next we’ll need to edit the configuration file for the subversion webdav module. You can use a different editor if you’d like.

sudo gedit /etc/apache2/mods-enabled/dav_svn.conf

The Location element in the configuration file dictates the root directory where subversion will be acessible from, for instance: http://www.server.com/svn

<Location /svn>

The DAV line needs to be uncommented to enable the dav module

# Uncomment this to enable the repository,
DAV svn

The SVNPath line should be set to the same place your created the repository with the svnadmin command.

# Set this to the path to your repository
SVNPath /svn

The next section will let you turn on authentication. This is just basic authentication, so don’t consider it extremely secure. The password file will be located where the AuthUserFile setting sets it to…  probably best to leave it at the default.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd

To create a user on the repository use, the following command:

sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd <username>

Note that you should only use the -c option the FIRST time that you create a user. After that you will only want to use the -m option, which specifies MD5 encryption of the password, but doesn’t recreate the file.

Example:

sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd geek
New password: 
Re-type new password: 
Adding password for user geek

Restart apache by running the following command:

sudo /etc/init.d/apache2 restart

Now if you go in your browser to http://www.server.com/svn, you should see that the repository is enabled for anonymous read access, but commit access will require a username.

If you want to force all users to authenticate even for read access, add the following line right below the AuthUserFile line from above. Restart apache after changing this line.

Require valid-user

Now if you refresh your browser, you’ll be prompted for your credentials:

You now have a working subversion server!

Categories
Database Linux Ubuntu การพัฒนาซอฟท์แวร์

reset password MySql

Why are you looking at this wiki page?

Are you looking at this page because you cannot access the mysql server installed on your pc/server when you were trying to see if it works well? Or do you receive error messages like the following? :

ERROR 1045: Access denied for user: 'root@localhost' (Using 
password: NO)

or

ERROR 1045: Access denied for user: 'root@localhost' (Using 
password: YES)

To resolve this problem ,a fast and always working way is the “Password Resetting” .

Categories
Database Linux Ubuntu Web site การพัฒนาซอฟท์แวร์

ลง LAMP Server บน Ubuntu

This tutorial was has been tested on Ubuntu 10.04, 10.10, 11.04, 11.10, 12.04 LTS Precise Pangolin. Also tested in LinuxMint13 and works fine.

Open terminal and Type the command :install it   first  with

sudo apt-get install tasksel

Now to install LAMP, type the taskel command in terminal :

sudo  tasksel

And select LAMP Server:

During the installation  you  will be  asked  to insert the  mysql root  password

Now check if php is working :

$sudo vi /var/www/info.php

and add

<?php
phpinfo();
?>

save and exit

restart apache2 ,

#sudo /etc/init.d/apache2 restart

Now open browser and type :

http://ip/info.php or http://localhost/info.php

Php is installed.

To full manage  your  lamp Server database, install  phpmyadmin

sudo  apt-get  install  phpmyadmin

To login  to phpmyadmin, open browser and type :

http://ip/phpmyadmin   or http://localhost/phpmyadmin

 

– ที่มา http://www.unixmen.com/install-lamp-with-1-command-in-ubuntu-1010-maverick-meerkat/

Categories
ฟรีแลนซ์

การคิดค่าทำเว็บ ควรคิดอย่างไรดี?

ที่มา: http://www.imenn.com/2010/10/brainstorming-web-design-estimate/

แม้ว่างานยังล้นมือ เคลียร์ไม่ค่อยทัน แต่พอไปดูเว็บ Web Development Project Estimator แล้วก็ชอบมาก ทวิตไปก็มีเพื่อนๆ มาแนะนำว่า “น่าจะเอามาช่วยกันทำเป็นภาษาไทย ใส่ข้อมูลตามประสบการณ์” ก็เลยคิดว่า ขอแว้บมาจุดประเด็น เผื่อคนทำเว็บคนไหนจะเข้ามาแชร์ไอเดียกันนะครับ

ต้นแบบนั้น ใส่กระบวนการทำเว็บดังนี้

  • Project Brief : การบริฟงาน เริ่มโปรเจ็ค
  • Information Architecture : งานสถาปัตยกรรมด้านสารสนเทศ คร่าวๆ คือการออกแบบโครงสร้างข้อมูล
  • Design Research : การค้นข้อมูล/ตัวอย่างต่างๆ ด้านการออกแบบ
  • Initial Drafts & Sketches : การออกแบบฉบับร่าง
  • Design Revisions : การแก้ไขงาน
  • Final PSD Production : การจบงานดีไซน์ แล้วเก็บงานเป็นไฟล์ Photoshop
  • XHTML/CSS Development : การตัด XHTML และ CSS
  • Server-Side Development : การพัฒนาระบบ / ติดตั้งระบบบน Server
  • Testing & Debugging : การทดสอบและดีบักแก้ไขข้อผิดพลาดต่างๆ
  • Copywriting : งานเขียนเนื้อหา คำบรรยาย และคำโฆษณาต่างๆ
  • Photography : การถ่ายภาพ
  • Photo Art Direction : การกำกับศิลป์ด้านการถ่ายภาพ
  • Client Meetings : การประชุมงานกับลูกค้า
  • Miscellaneous : เบ็ดเตล็ด
Categories
Database

[MySQL] MyISAM กับ InnoDB ต่างกันอย่างไร?

ต่อจากตอนที่แล้ว พอมาใช้ PDO แล้วชีวิตมันก็ดีขึ้นตามลำดับ ที่ควรจะเป็น แต่มาติดปัญหาเรื่อง Transaction นิดหน่อย เนื่องมาจากตารางที่ออกแบบมานั้น (คนอื่นออกแบบมาอีกที) ใช้ engine เป็น MyISAM ซึ่งเท่าที่อ่านมาคือมันไม่รองรับการทำ transaction ผมไม่รู้เสียเวลา่ตั้งนานว่าเขียน Code ผิดตกหล่นตรงไหนนี่ สั่ง rollback ก็แล้ว ข้อมูลก็ยังมาอยู่ดี จนสุดท้ายลองไปดูโครงสร้างของ table โอ้ๆๆ ถึงบางอ้อเลย เลยลองเปลี่ยนมาเป็น InnoDB แล้วทุกอย่างก็เป็นไปอย่างที่คิดไม่มีผิด

ISAM (MyISAM) ซึ่งมีความรวดเร็วในการอ่านและเขียนสูง เนื่องจากมีการจัดเก็บไว้ในรูปแบบของแฟ้มข้อมูล ซึ่งรองรับการอ่านข้อมูลพร้อมๆ กันได้ (เหมาะสำหรับ Web Application) แต่อาจจะมีปัญหาเมื่อใช้งานกับระบบที่ต้องมีการอ่าน/เขียน ข้อมูลในตารางเดียวกัน พร้อมๆ กันที่สำคัญ ฐานข้อมูลประเภท MyISAM จะมีปัญหาเรื่อง Index เสีย และ Data Corrupt บ่อยมาก หากใช้งานใน OS ที่เป็น Windows และมีการ Shutdown อย่างไม่ถูกต้อง ซึ่งทำให้ผู้ดูแลระบบต้องมีการซ่อมแซม (repair table bad_table) ตารางทีมีปัญหาอยู่เรื่อยๆ
InnoDB ข้อดีคือ รองรับการทำ Transaction รองรับการอ่านและเขียน พร้อมๆ กันได้ดีกว่าฐานข้อมูลประเภท MyISAM และยังมีระบบ Auto Data Recovery หากมีการ shutdown โดยไม่เหมาะสม (ไฟดับ)ซึ่งในการใช้งานผู้ใช้สามารถเลือกได้ว่าจะให้ตารางใดเป็นประเภท InnoDB หรือ MyISAM ขึ้นอยู่กับความเหมาะสม (ว่าจะเลือกความเร็ว หรือ ประสิทธิภาพ)

ที่มา: http://www.secondknow.com/2010/467/mysql-myisam-%E0%B8%81%E0%B8%B1%E0%B8%9A-innodb/

Categories
Database

utf8_unicode_ci กับ utf8_general_ci ต่างกันอย่างไร?

utf8_unicode_ci มีการเรียงลำดับที่ดีกว่า

utf8_general_ci จะทำงานได้เร็วกว่า

Categories
Android iOS

Corona SDK

http://www.anscamobile.com/corona/

Categories
การพัฒนาซอฟท์แวร์

10 เรื่องที่โปรเจคเมเนเจอร์อยากให้ดีเวลลอปเปอร์เข้าใจ

ตลอดสองสามเดือนมานี้ผมยุ่งมาก ในการปรับตัวกับบทบาทใหม่ในการเป็น โปรเจคเมเนเจอร์ โดยทางเทคนิคแล้วผมจะถูกเรียกว่า “team lead” หรือ “director” หรือ “senior manager” แล้วแต่ว่าใครจะเรียก หน้าที่จริงๆของผม คือประสานงานกับโปรดักเมเนเจอร์ ในการบริหารจัดการทีมพัฒนาซอฟแวร์ ตามแผนงานของโปรเจค การได้มาอยู่ใน “อีกด้านหนึ่ง” สักพักนึงแล้วนั้นเหมือนกับการได้เปิดตาสู่โลกใหม่ มันเป็นเรื่องจริงที่ว่ามันเป็นเรื่องยากมากๆในการเข้าถึงใครสักคนนั้น จนกว่าคุณจะได้ลองทำลองเป็นอย่างที่คนๆนั้นเป็น จากที่ได้เคยร่วมงานกับโปรเจคเมเนเจอร์มา ผมเคยสงสัยอยู่ตลอดว่าทำไมเรื่องบางอย่างถึงดำเนินไปในบางแนวทาง มันเป็นแนวทางที่ผมเคยคิดว่าผมจะเลือกทำสิ่งที่ต่างออกไป ตอนนี้ผมคงไม่คิดอย่างนั้นอีกแล้ว จากประสบการณ์ในการพยายามทำในสิ่งเหล่านั้น ที่เคยพูดไว้หรือคิดไว้ ผมอยากจะเขียนถึงสิ่งต่างๆ ที่ดีเวลลอปเปอร์ในทีมไม่ได้นึกไปถึง จนกว่าพวกเขาจะได้ลองมาเป็นคนจัดการเอง

10) การท่วมล้นของข้อมูล: ผมก็อยากจะตั้งสมาธิ กับเรื่องใดเรื่องหนึ่ง เป็นอย่างๆไปเหมือนกัน แต่ผมมีคนเป็นล้านพุ่งเข้าหาผมจากทุกทิศทาง
ไม่ว่าจะเป็นโปรดักเมเนเจอร์, ซัพพอร์ท (support), เมเนจเมนท์ (management), เหล่าลูกค้ากับความต้องการต่างๆ, ดีเวลลอปเปอร์ รวมไปถึงเมเนเจอร์, อาร์คีเทค (architects) และดีเวลลอปเปอร์ในทีมอื่นๆอีก มันเป็นข้อมูลและความสัมพันธ์เป็นจำนวนมากที่ต้องบริหารจัดการ ดังนั้นอย่าแปลกใจถ้าคุณเจอกับการโต้ตอบในลักษณะต่อไปนี้