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

PostgreSQL-Command สำหรับ Backup และ Restore

การ Backup กับ Restore Database แบบสะดวกๆ เหมือน sql_dump ของ MySQL
วิธีการ Backup ด้วยคำสั่ง pg_dump ใน Folder bin ของ PostgreSQL
C:\Program Files\PostgreSQL\8.3\bin>pg_dump -U postgres db_hcms > d:\abc\sqlfile.sql
วิธีการ Restore ไฟล์ที่ Backup ด้วย pg_dump ด้วยคำสั่ง psql ใน Folder bin ของ PostgreSQL
C:\Program Files\PostgreSQL\8.3\bin>psql -U postgres db_hcms < d:\abc\sqlfile.sql

ปรับปรุง P.Mapper ให้เข้ากับงาน

การแก้ไข ให้ p.mapper ใช้งานได้ กับงานของคุณ
ยกตัวอย่างเป็น การแสดงข้อมูลวัดในอำเภอ โขงเจียม จังหวัด อุบลราชธานี
ข้อมูล อยู่ใน c:\ms4w\Apache\htdocs\wat
(เอาอย่างง่ายก่อน เดี๋ยวค่อยปรับปรุง) สำเนาจาก p.mapper demo มาไว้ แล้ว เปลี่ยนชื่อ
ตัวข้อมูลแผนที่ อยู่ใน c:\ms4w\Apache\htdocs\wat\data\
ขั้นตอนการแก้ไข
  1. สร้าง หรือแก้ไข mapfile ให้เป็นข้อมูล ที่ต้องการแสดงผล ในที่นี้ ใช้ ชื่อ wat.map
  2. นำ wat.map ไปไว้ ใน c:\ms4w\Apache\htdocs\wat\config\default\wat.map
  3. แก้ไขไฟล์ c:\ms4w\Apache\htdocs\wat\config\config.ini
    แก้ไขชื่อ Mapfile ใน บรรทัดที่ 83-86 โดยประมาณ เปลี่ยนจาก pmapper_demo.map เป็น wat.map
    แก้ไขชื่อ Layer ในบรรทัด ที่ 120-135 ในหัวข้อ  LAYERS/GROUPS DEFINED MANUALLY บรรทัด ที่ขึ้นต้นด้วย
    allGroups = countries, cities, dem, rivers, jpl_wms_global_mosaic แก้เป็น Layer ที่อยู่ใน wat.map
    allGroups = province, kongjeam, roads, village, temple
  4. แก้ไขไฟล์ c:\ms4w\Apache\hidocs\wat\config\default\php_config.php
    ส่วนนี้เป็นการให้ แสดง Layer ให้เลือก ได้ บน web เลือกแบบ TOC
    แก้ไขในบรรทัดที่ 6-14 ในหัวข้อ *  Definition of categories for legend/TOC แก้เป็น
    /**
    * Definition of categories for legend/TOC
    */
    $categories['cat_admin']  = array(“province”, “kongjeam”, “roads”, “village”);
    $categories['cat_temple'] = array(“temple”);
    $categories['cat_raster'] = array(“dem”, “jpl_wms_global_mosaic”, “wmstest”);
    $_SESSION['categories'] = $categories;

    เซฟไฟล์ แล้ว ลองรันใน browser
  5. cat_temple ยังไม่ได้ เพิ่มในข้อมูล ต้องไปเพิ่ม
    แก้ไขไฟล์ \wat\incpho\locale\language_en.php
  6. เพิ่ม $_sl['cat_temple'] = ‘Temple data’; เข้าไป บันทึก และทดสอบ

มีอะไรใน worldfile

ไฟล์ GeoTiff เป็นไฟล์ ที่รู้จักกันดี ในหมู่นักทำแผนที่ และ ภูมิสารสนเทศน์
เป็นไฟล์ ที่เก็บ ภาพ ได้ หลายชั้นข้อมูล พร้อมทั้ง มีข้อมูลเชิงตำแหน่ง ด้วย
ทั่วไป ก็มี ด้วยกัน สองแบบ
  1. GeoTiff แบบที่มี worldfile แบบนี้ จะมีด้วย กัน สอง ไฟล์ ไปไหนไปด้วยกัน ไม่งั้นทำงานไม่ได้ ไฟล์แรก เก็บภาพ นามสกุล .tif อีกไฟล์ เป็น ไฟล์ ที่เก็บข้อมูลเชิงตำแหน่งของภาพ นามสกุล .wtf เรียกว่า world file
  2. GeoTiff แบบที่ มี world file อยู่บนหัวไฟล์ tiff เลย แบบนี้ มีไฟล์เดียว เวลาใช้งาน ก็มาอ่านค่า จากส่วนหัวนี้ก่อน ไปเป็นข้อมูลเชิงตำแหน่ง
ทีนี้ ลองมาดูว่า worldfile เก็บค่าอะไรบ้าง
worldfile มีอยู่ด้วยกัน 6 บรรทัด เช่น (สามารถเปิดอ่านด้วย text editor ทั่วไปได้)
20.17541308822119
0.00000000000000
0.00000000000000
-20.17541308822119
424178.11472601280548
4313415.90726399607956

ความหมายของ ทั้ง 6 บรรทัด มีดังนี้

line 1: x-dimension of a pixel in map units
line 2: rotation parameter
line 3: rotation parameter
line 4: NEGATIVE of y-dimension of a pixel in map units
line 5: x-coordinate of center of upper left pixel
line 6: y-coordinate of center of upper left pixel

ในการใช้งาน
ตัวอย่างเช่น โปรแกรม Arcview เรียกข้อมูลภาพ ขึ้นมา นั่นหมายถึง กำลังนำภาพ เข้าสู่ระบบพิกัดโลก ที่เรียกว่า การฉายแผนที่ ซึ่งต้องอาศัย พารามิเตอร์จำนวน 6 ตัว ในสมการ
affine transformation

x1 = Ax + By + C
y1 = Dx + Ey + F

โดยที่
x1 = ค่าพิกัด แกน x ของภาพ บน แผนที่
y1 =
ค่าพิกัด แกน y ของภาพ บน แผนที่
x = จำนวน column ของจุดภาพ ในภาพ
y =
จำนวน row ของจุดภาพ ในภาพ
A = มาตราส่วนแกน x
B, D = เทอมการหมุน
C, F = แปลงค่าพิกัดจากแผนที่ จากแบบ จากจุดภาพบนซ้าย (การนับจำนวนจุดภาพ ของจอภาพ นับแบบ แกนx จากซ้ายมาขวา แกนy จากบนมาล่าง)
E = ค่าลบ มาตราส่วนแกน y


ดังนั้น ค่าต่างๆ ใน worldfile สามารถแปลงมาเป็น พารามิเตอร์ทั้ง 6 ได้ ดังนี้
The transformation parameters are stored in the world file in this order:

20.17541308822119 – A
0.00000000000000 – D
0.00000000000000 – B
-20.17541308822119 – E
424178.11472601280548 – C
4313415.90726399607956 – F
เมื่อ อ่าน ข้อมูลใน worldfile เข้าไปในโปรแกรม ก็จะสามารถ ทราบได้ ว่า ภาพ นั้น อยู่ตรงส่วนไหนของแผนที่ หรืออยู่ตรงส่วนใดของโลกนั่นเอง

Solar Cell-การต่อแบตเตอรี่อย่างไรให้ได้แรงดันไฟฟ้าสูงขึ้น?

จาก http://www.goodsclick.com/bb.php?topic=16
ลักษณะการต่อเชื่อมแบตเตอรี่ มีผลต่อขนาดแรงดันไฟฟ้าและกระแสไฟฟ้า ขึ้นอยู่กับความต้องการนำไปใช้งาน และจะต้องเป็นแบตเตอรี่ชนิดเดียวกันเท่านั้นที่จะนำมาต่อเชื่อมกัน "หากผู้ใช้ต้องการแรงดันไฟฟ้าสูงขึ้น" ขอแนะนำให้ต่อเชื่อมแบตเตอรี่แบบอนุกรม (ข้อ 1) โดยการต่อเชื่อมแบตเตอรี่ทำได้ดังนี้

การต่อเชื่อมแบตเตอรี่แบบอนุกรม นำขั้วบวกของแบตเตอรี่อันที่ 1 ต่อเข้ากับขั้วลบของแบตเตอรี่อันที่ 2 และนำขั้วบวกของแบตเตอรี่อันที่ 2 ต่อเข้ากับขั้วลบของแบตเตอรี่อันที่ 3 ทำเช่นนี้ต่อไปจนครบจำนวนแบตเตอรี่
แรงดันไฟฟ้าของแบตเตอรี่ทั้งหมดเท่ากับ ผลรวมของแรงดันไฟฟ้าแต่ละแบตเตอรี่มารวมกัน
กระแสไฟฟ้าของแบตเตอรี่ทั้งหมดเท่ากับ ค่าของกระแสไฟฟ้าของแบตเตอรี่เซลล์เดียวเท่านั้น ไม่เปลี่ยนแปลง

การต่อเชื่อมแบตเตอรี่แบบขนาน นำขั้วบวกของแบตเตอรี่อันที่ 1 ต่อเข้ากับขั้วบวกของแบตเตอรี่อันที่ 2 และนำขั้วบวกของแบตเตอรี่อันที่ 2 ต่อเข้ากับขั้วบวกของแบตเตอรี่อันที่ 3 ทำเช่นนี้ต่อไปจนครบจำนวนแบตเตอรี่ จากนั้นนำขั้วลบของแบตเตอรี่อันที่ 1 ต่อเข้ากับขั้วลบของแบตเตอรี่อันที่ 2 และนำขั้วลบของแบตเตอรี่อันที่ 2 ต่อเข้ากับขั้วลบของแบตเตอรี่อันที่ 3 ทำเช่นนี้ต่อไปจนครบจำนวนแบตเตอรี่เช่นเดียวกัน
แรงดันไฟฟ้าของแบตเตอรี่ทั้งหมดเท่ากับ ค่าของแรงดันไฟฟ้าของแบตเตอรี่เซลล์เดียวเท่านั้น ไม่เปลี่ยนแปลง
กระแสไฟฟ้าของแบตเตอรี่ทั้งหมดเท่ากับ ผลรวมของกระแสไฟฟ้าแต่ละแบตเตอรี่มารวมกัน

การต่อเชื่อมแบตเตอรี่ทั้งแบบอนุกรมและแบบขนาน โดยนำลักษณะการต่อเชื่อมแบตเตอรี่ 2 แบบมารวมกัน เพื่อให้ได้แรงดันไฟฟ้าและกระแสไฟฟ้าตามที่ต้องการ

Solar Cell-การต่อแบตเตอร์รี

Q
 สมมติว่า เรามี ถ่านไฟฉาย 4 ก้อน ขนาด 1.5V 1000mAh 3 ก้อน และ 1.2V 800mAh 1 ก้อน
มาต่ออนุกรมกันทั้งหมด 1 แบบ
และต่อขนานกันทั้งหมด 1 แบบ
อยากรู้ว่า V และ I ของแต่ละแบบ มันจะมีค่าเท่าไรหรือคับ มันจะต่างกับการที่ใช้ ถ่านไฟฉาย ขนาดเท่ากันหมดหรือเปล่าคับ ข้อดีข้อเสีย
A1
ผมก็ไม่แน่ใจนะ ประสบการณ์น้อย
ขนาดของกระแสมันเป็นไปตาม กฎของโอห์ม V = I/R ดังนั้นจึงขึ้นอยู่กับโหลด และก็แหล่งแรงดันของคุณ
1 เมื่อต่ออนุกรมกัน แรงดันที่ได้ก็จะเป็นแรงดันรวมของถ่านแต่ละก้อน เช่นเดียวกับพลังงานที่มันมีก็เป็นพลังงานรวมในแต่ละก้อน
2 เมื่อต่อขนานกัน 4 ก้อนแรกไม่มีปัญหาครับ แต่ก้อนหลังที่แรงดันไม่เท่าชาวบ้านเค้า อาจจะทำให้สายไฟไหม้ หรือถ่านอาจจะระเบิด ทางที่ดีควรมีโหลด มาอนุกรมกับมันอีกซักตัวก่อนจะไปขนานครับ ส่วนแรงดันก็จะเป็นแรงดันที่มากที่สุดที่มาต่อขนานกัน ส่วนพลังงานก็ยังสามารถนำมารวมได้เช่นเดิม


A2
ขอลองตอบเล่นๆ ผมคิดว่า

๑) ถ้าต่อแบตเตอรี่ทั้งห้าก้อนแบบอนุกรม แรงดัน (voltage) ที่ได้จะเท่ากับ 1.5 x 4 + 1.2 = 7.2 volts  วงจรนี้จะสามารถจ่ายกระแสได้ไม่เกินความสามารถของแบตเตอรี่ที่อ่อนที่สุด คือจ่ายได้ไม่เกิน 800 mAh

๒) ถ้าต่อแบตเตอรี่ทั้งห้าก้อน แบบขนาน แรงดันจะไม่ถึง 1.5 volts เพราะแบตเตอรี่ตัวที่มีแรงดัน 1.2 volts จะกลายเป็น load ให้อีกสี่ตัวพยายาม charge ถ้าต่างกันแค่ 0.3 volt อาจไม่เป็นไร ขึ้นกับระยะเวลาด้วย แต่อย่างน้อยคงทำให้แบตเตอรี่ตัวเล็กร้อน ส่วนกระแสที่จ่ายได้คงจะเท่ากับ 1000 x 4 + 800 = 4800 mAh

ต้องรออาจารย์นิรันดร์หรือคนอื่นที่รู้จริงตอบ

A3
ขอต่ออีกนิด
รู้สึกว่าน้องต้องการต่อถ่านไฟฉายเพื่อไปจ่ายกระแสไฟฟ้าให้กับของเล่นอะไรสักอย่าง
การแบ่งประเภทของถ่านไฟฉาย(เซลล์ไฟฟ้าเคมี)
แบ่งได้ 2 ประเภทคือ
1.เซลปฐมภูมิ คือเซลล์ไฟฟ้าที่สามารถใช้งานได้ครั้งเดียว ใช้แล้วทิ้ง
เช่น ถ่านไฟฉายทั่วไป ถ่านอัลคาไลน์ เป้นต้น
2.เซลล์ทุติยภูมิ คือเซลล์ไฟฟ้าที่เมื่อเราใช้งานไปแล้วสามารถนำกลับมาใช้งานได้อีก โดยการประจุไฟใหม่ ทั่วๆไปเรียกว่าการชาร์จประจุ
เช่น แบตเตอรี่รถยนต์ ถ่านชาร์จต่างๆ ถ่าน Ni-Cd Ni-MH Li-ion เป็นต้น

การนำถ่านไฟฉายมาต่อกันต้องคำนึงถึงชนิดของถ่าน แรงดันของถ่าน กระแสของถ่าน การนำถ่านไฟฉายต่างประเภทกันจะทำให้แรงดันไฟฟ้าที่ได้มีค่าไม่ตรงกับค่าที่ ระบุไว้ที่รายละเอียดของถ่าน และจะส่งผลให้อายุการใช้งานของถ่านสั้นลง

ส่วนความต่างศักดิ์และกระแสในวงจรเหมือนคุณศานติครับ

VBA Ms Access - Get the Path to the Database (.mdb) File

It is often useful to obtain the path to the database (mdb) file, especially if you follow our tip to Store Images Using Relative Paths.
A common error is to assume that the 'current' path is set to the path of the database file (and therefore that images can be accessed using relative notation, for example). This can't be relied upon - some VBA functions can change the current path (eg "Dir"), and indeed the database can be opened with a different path altogether set as 'current'.
Below are 3 code-snippets you can use to obtain the path to the database (mdb) file in different situations. In each case if the database file is "C:\mydb\mydb.mdb" the functions return "C:\mydb\". These functions all work whether the database is opened via a local drive, mapped drive or a UNC path.
1) Access 2000 and later - Database Not Split.
If you only need to support Access 2000 and later, and do not have a split (front-end/back-end) database, then this is the simplest and most efficient method. If used in a split database architecture this returns the path to the front-end database - usually not what is desired.
Public Function GetDBPath() As String
    GetDBPath = CurrentProject.Path & "\"
End Function




2) Access 97 and later- Database Not Split.
If you need to support Access 97, and do not have a split (front-end/back-end) database, then use this method. If used in a split database architecture this returns the path to the front-end database - usually not what is desired.
Note that other approaches are possible which avoid the loop (and are therefore potentially slightly more efficient), but these either require use of the "Dir" function (which can give rise to recursion problems) or need additional references.
Public Function GetDBPath() As String
    Dim strFullPath As String
    Dim I As Integer
    strFullPath = CurrentDb().Name
    For I = Len(strFullPath) To 1 Step - 1
        If Mid(strFullPath, I, 1) = "\" Then
            GetDBPath = Left(strFullPath, I)
            Exit For
        End If
    Next
End Function

3) Split Front-End/Back-End - Get Path to Back-End.
If your database is a split (Front-End/Back-End) design, these functions return the path to the Back-End. The first version uses 'InStrRev'. InStrRev can give errors similar to reference problems on some systems (and is not available on Access 97), so a second version is provided which does not use InStrRev.
Using 'InStrRev':
Public Function GetDBPath() As String
    Dim strFullPath As String
    strFullPath = Mid(DBEngine.Workspaces(0).Databases(0).TableDefs("tblLinked").Connect, 11)
    GetDBPath = Left(strFullPath, InStrRev(strFullPath, "\"))
End Function

Not using 'InStrRev':
Public Function GetDBPath() As String
    Dim strFullPath As String
    strFullPath = Mid(DBEngine.Workspaces(0).Databases(0).TableDefs("tblLinked").Connect, 11)
    For I = Len(strFullPath) To 1 Step - 1
        If Mid(strFullPath, I, 1) = "\" Then
            GetDBPath = Left(strFullPath, I)
            Exit For
        End If
    Next
End Function

การแปลง Shapefile เป็น KML ด้วย ogr2ogr

 shp2kml.bat
set GDAL_DATA=C:\Program Files\FWTools2.4.7\data
C:\"Program Files"\FWTools2.4.7\bin\ogr2ogr -f "KML" -s_srs "epsg:32647" -t_srs "epsg:4326" C:\nksw_index\index.kml C:\nksw_index\index.shp

Web Form


Text Area

<textarea name="fname" cols="40" rows="3"><?=$arr_person->fname;?></textarea>


Option box

<SELECT NAME="vill_code" class='font11'>
                                <option value='99'>-เลือกหมู่บ้าน/ชุมชน-</option>
                                <?

                                $res_category = mysql_query("SELECT * FROM community  ORDER BY vill_code ");
                                while ($arr_category = mysql_fetch_object($res_category)){
                                       echo "<option value=\"".$arr_category->vill_code."\"";
                                       if($arr_category->vill_code == $arr_person->vill_code){echo " Selected";}
                                       echo ">".$arr_category->vill_name."</option>";
                                }

                                ?>
                        </SELECT>

Raido box

<input type='radio' name="sex" id="sex"  value="1" <?if ($arr_person->sex=="1") echo "checked";?> >ชาย
<input type='radio' name="sex" id="sex"  value="2" <?if ($arr_person->sex=="2") echo "checked";?> >หญิง

การคำนวณขนาดความจุแบตเตอรี่


ต้องบอกว่า บทความวันนี้ไม่ได้ คิดเองนะครับ แต่บังเอิญว่าลูกค้าที่ผมไปตรวจสอบ ส่งรายการคำนวณของไฟแสงสว่างฉุกเฉินมาให้ช่วยพิจารณา ซึ่งพอดูแล้วผมว่ามันน่าจะมีประโยชน์กับทุกคนนะครับ เผื่อว่าตอนที่เราจะเปลี่ยนแบตเตอรี่สำหรับไฟแสงสว่างฉุกเฉิน เราจะได้เลือก Spec. ที่ถูกต้องกัน

สำหรับรายการคำนวณนี้เป็นของ ริษัท ซี-ทีแอล คอร์ปอเรชั่่น จำกัด
ซึ่งจำหน่ายอุปกรณ์ด้านไฟแสงสว่างฉุกเฉินและป้ายทางหนีไฟ ใครสนใจก็เข้าไปเวปไซด์เขาได้นะครับ
www.c-tl.com ที่ต้องสาธยายเยอะหน่อยไม่ใช่ว่าได้ค่าโฆษณานะครับ แต่ว่าเพื่อให้เกียรติกันนิด
และเหมือนที่บอกครับบล็อคของผมต้องการที่จะเผยแพร่ความรู้โดยไม่ได้หวังผลกำไรอะไร ดังนั้นเช่นเดียวกันถ้าใครเอาบทความจากบล็อคของผมไปลงในเวปไซด์ใดก็แล้วแต่ อย่างน้อยก็บอกที่มานะครับว่ามาจาก
http://www.safetyenvi.blogspot.com/ เผื่อเดี๋ยวจะมีคนงง ว่าผมไปลอกบทความจากคนอื่นมา 5555

เข้าเรื่องดีกว่า สำหรับ การคำนวณขนาดความจุแบตเตอรี่

ข้อกำหนด

ดวงโคมฉุกเฉินขนาด 35 วัตต์ (ปกติถ้าผมแนะนำก็จะให้ใช้หลอด 35 หรือ 55 วัตต์)
จำนวนดวงโคม 2 ดวง
ระยะเวลาการใช้งาน 2 ชั่วโมง
แรงดันไฟฟ้าของแบตเตอรี่ 12 โวลท์

การคำนวณ

กำลังไฟฟ้าที่จ่ายดวงโคม (Power), P = 2 x 35 วัตต์
= 70 วัตต์

กระแสไฟฟ้าที่จ่ายดวงโคม (I) = P/V

= 70/12

= 5.83 แอมแปร์(A)

ระยะเวลาการใช้งาน = 2 ชั่วโมง(h)

ดังนั้นกระแสไฟฟ้าที่จะต้องจ่ายดวงโคม = 5.83 x 2
= 11.66 Ah

คิดเผื่อไว้ 25% (ตามมาตรฐาน IEEE 1184-1994)

ดังนั้นกระแสไฟฟ้าที่จ่ายดวงโคมทั้งหมด = 11.66 x 1.25

= 14.57 Ah.

ดังนั้นจะเลือกใช้แบตเตอรี่ 12 Volt 15 Ah.

ผม ว่าถึงแม้จะเป็นรายการคำนวณที่เป็นพื้นฐานทางไฟฟ้า แต่สำหรับผมที่ไม่ค่อยได้คำนวณเรื่องไฟฟ้าแล้ว ผมว่าโอเคเลยนะครับ ก็ลองเอาไปใช้ดูนะครับ สั่งแบตเตอรี่รอบหน้า จะได้ตอบได้ถ้ามีใครถามว่าทำไมต้องสั่งแบบนี้ ไว้เจอกันเรื่องหน้านะครับ

ตัวดำเนินการ ( Operator )

ตัวดำเนินการ (Operator) หมายถึง เครื่องหมายกำหนดกรรมวิธีทางคณิตศาสตร์, พีชคณิต, บูลีน, การเปรียบเทียบ ระหว่างข้อมูล 2 ตัว ซึ่งเรียกว่า โอประแรนด์(Operand) โดยอาจมีค่าเป็นตัวเลข ข้อความ ค่าคงที่ หรือตัวแปรต่าง ๆ

ชนิดของตัวดำเนินการ

ตัวดำเนินการคณิตศาสตร์
ตัว ดำเนินการคณิตศาสตร์ (Arithmetic operator) หมายถึง ใช้สำหรับคำนวณโอประแรนด์ที่เป็นค่าคงที่หรือตัวแปรก็ได้ โดยให้ค่าผลลัพธ์เป็นตัวเลขค่าเดียว โอประเรเตอร์ เชิงคณิตศาสตร์ที่คนส่วนใหญ่รู้จักคุ้นเคยกันมากที่สุดได้แก่
+ หมายถึง เครื่องหมายการบวก
- หมายถึง เครื่องหมายการลบ
* หมายถึง เครื่องหมายการคูณ
/ หมายถึง เครื่องหมายการหาร
% หมายถึง เครื่องหมายหาเศษที่ได้จากการหารที่เรียกว่า โมดูลัส(Modulus)
++ หมายถึง เครื่องหมายการเพิ่มค่าที่เรียกว่า อินครีเมนต์(increment) โดยจะเพิ่มค่าครั้งละ 1
-- หมายถึง เครื่องหมายการลดค่าที่เรียกว่า ดีครีเมนต์(decrement) โดยจะลดค่าครั้งละ 1
(-) หมายถึง เครื่องหมายแปลงค่าให้กลายเป็นค่าตรงกันข้ามกับค่าเดิมที่เรียกว่า ยูนารีนีเกชัน (unary negation)

เช่น x = 20 % 3; ผลลัพธ์คือ x จะมีค่าเป็น 2
เช่น ถ้า x = -100 ดังนั้น -x จะมีค่าเท่ากับ 100 เป็นต้น

ตัวดำเนินการเชิงเปรียบเทียบ
ตัว ดำเนินการเชิงเปรียบเทียบ (Comparison operator) หมายถึง เครื่องหมายในการเปรียบเทียบข้อมูล ผลลัพธ์ที่ได้จะมีค่าตรรกบูลลีนเป็น จริง (True) และ เท็จ (False) ได้แก่
== หมายถึง เครื่องหมายเท่ากับ
!= หมายถึง เครื่องหมายไม่เท่ากับ
> หมายถึง เครื่องหมายมากกว่า
>= หมายถึง เครื่องหมายมากกว่าหรือเท่ากับ
< หมายถึง เครื่องหมายน้อยกว่า
<= หมายถึง เครื่องหมายน้อยกว่าหรือเท่ากับ


ตัวดำเนินการกำหนดค่า
ตัว ดำเนินการกำหนดค่า (Assignment operator) หมายถึง เครื่องหมายในการกำหนดให้ตัวแปรที่อยู่ทางฝั่งซ้าย มีค่าเท่ากับค่าเดิมในตัวแปรนั้น "กระทำ" (บวก, ลบ, คูณ, หาร) กับอีกตัวแปรหนึ่งที่อยู่ทางฝั่งขวา ได้แก่
x = y หมายถึง กำหนดค่า y ให้กับตัวแปร x
x += y หมายถึง เพิ่มค่า y ให้กับตัวแปร x (x = x + y)
x -= y หมายถึง ลบค่า y ออกจากตัวแปร x (x = x - y)
x *= y หมายถึง กำหนดค่า x คูณกับค่า y ให้กับตัวแปร x (x = x * y)
x /= y หมายถึง กำหนดค่า x หารกับค่า y ให้กับตัวแปร x (x = x / y)
x %= y หมายถึง กำหนดเศษที่ได้จากการหารค่า x ด้วยค่า y ให้กับตัวแปร x (x = x % y)
x <<= y หมายถึง เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต (x = x << y)
x >>= y หมายถึง เลื่อนบิตในตัวแปร x ไปทางขวา y บิต (x = x >> y)
x >>>= y หมายถึง เลื่อนบิตแบบซีโรฟิลล์ในตัวแปร x ไปทางขวา y บิต (x = x >>> y)
x &= y หมายถึง เก็บค่า x AND y ในตัวแปร x (x = x & y)
x ^= y หมายถึง เก็บค่า x XOR y ในตัวแปร x (x = x ^ y)
x |= y หมายถึง เก็บค่า x OR y ในตัวแปร x (x = x | y)

ตัวดำเนินการเชิงตรรกะ
ตัว ดำเนินการเชิงตรรกะ (Logical operator) เป็นเครื่องหมายที่ให้ค่าจริง (True) และ เท็จ (False) ในการเปรียบเทียบ ประกอบด้วยเครื่องหมาย
&& หมายถึง และ(AND) จะเป็นจริงเมื่อค่าที่ใช้เปรียบเทียบทั้ง 2 ค่าเป็นจริงทั้งคู่
|| หมายถึง หรือ(OR) จะเป็นจริงเมื่อค่าที่ใช้เปรียบเทียบทั้ง 2 ค่าเป็นจริงทั้งคู่หรือจริงเพียงค่าใด ค่าหนึ่ง
! หมายถึง ปฎิเสธ(NOT) เป็นการแปลงค่าตรงกันข้าม จากจริงจะเป็นเท็จ และ จากเท็จจะเป็นจริ


ตัวดำเนินการเชิงข้อความ
ตัว ดำเนินการเชิงข้อความ (String operator) เป็นการเชื่อมประโยคข้อความเข้าด้วยกัน (concatenation) โดยใช้เครื่องหมายบวก (+) เป็นตัวกระทำ
เช่น Name = "Bodin";
Say = "Hey "+Name;
ผลลัพธ์ที่ได้ Say จะมีข้อความเป็น Hey Bodin

ตัวดำเนินการระดับบิต
ตัว ดำเนินการระดับบิต (Bitwise operator) เป็นการดำเนินการเชิงตรรกะในระดับบิต โดยจะใช้มุมมองในแบบเลขฐาน 2 มาจัดการกับข้อมูล นั่นคือ ข้อมูลตัวเลขนั้นจะถูกแปลงเป็นเลขฐานสองในหน่วยความจำในขณะที่มีการดำเนิน การเชิงตรรกะในระดับบิต ซึ่งโดยปกติแล้วการกระทำใน JavaScript จะอยู่ในระดับตัวอักษร ที่เรียกว่า ระดับไบต์ (byte) โดยตัวดำเนินการระดับบิตมีรายละเอียดดังนี้
x & y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ AND ระหว่าง x กับ y
x | y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ OR ระหว่าง x กับ y
x ^ y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ XOR ระหว่าง x กับ y
~x หมายถึง เพิ่มค่าบิตให้ 1 จากนั้นจะให้ผลลัพธ์ของบิตมีค่าตรงข้าม
x << y หมายถึง เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต
x >> y หมายถึง เลื่อนบิตในตัวแปร x ไปทางขวา y บิต
x >>> y หมายถึง เลื่อนบิตแบบซีโรฟิลล์ในตัวแปร x ไปทางขวา y บิต

ลำดับความสำคัญของตัวดำเนินการ
ลำดับที่ 1 ( )
ลำดับที่ 2 ++ -- ! ~
ลำดับที่ 3 * / %
ลำดับที่ 4 + -
ลำดับที่ 5 << >> >>>
ลำดับที่ 6 < <= > >=
ลำดับที่ 7 == !=
ลำดับที่ 8 &
ลำดับที่ 9 ^
ลำดับที่ 10 |
ลำดับที่ 11 &&
ลำดับที่ 12 ||
ลำดับที่ 13 = += -= *= /= %= <<= >>= >>>= &= ^= !=

การอ่านค่าจาก check box จาก php script แบบง่าย



สวัสดีครับ พอดีมีคนถามเข้ามาครับ เรื่องจะอ่าน input จาก check box ได้ยังไง ผมว่าเรื่องนี้น่าสนใจดีครับ
เพราะว่าช่วงแรกที่ผมเขียน php ใหม่ๆ ก็เขียนแบบเด็กๆมากเลย โดยตรวจมันหมดทุกตัวเลย ช้าชะมัด หรืออย่างคน
ที่เขียนถามเข้ามาเข้าใจว่าไม่ได้ ตรวจตัวแปรให้ดีเลยทำให้มีปัญหา ผมเลยได้ทำการเสาะแสวงหา code การอ่าน
check box มาลองใช้ดูพบว่า เจ๋งดีครับ เลยเขียนเป็นบทความลงมาให้ดูเผื่อใครอยากรู้บ้าง

วิธีการง่ายๆให้ใช้ array ครับ ยกตัวอย่างเช่น ใน form ของเรามี html ดังนี้นะครับ
------------------------------------------------------------------------------
คุณเลี้ยงอะไรบ้าง?
<FORM>
<INPUT TYPE=checkbox NAME=PET_ARRAY[] value=dog>หมา<br>
<INPUT TYPE=checkbox NAME=PET_ARRAY[] value=cat> แมว<br>
<INPUT TYPE=checkbox NAME=PET_ARRAY[] value=fish> ปลา<br>
</FORM>
------------------------------------------------------------------------------

ถ้าสังเกตุชื่อตัวแปรจะตั้งเป็น PET_ARRAY[] ซึ่งเป็นตัวแปรแบบ array นะครับ ทีนี้ถ้าอยากรู้ว่าผู้ใช้เลือกอะไรบ้างให้ลองดู code นี้ครับ
------------------------------------------------------------------------------
if ($PET_ARRAY)
{
$PET = implode($PET_ARRAY, ",");
$result = mysql_query ("UPDATE dbname SET PET = '$PET'");
if(!$result)
{
echo "<B>UPDATE unsuccessful:</b> ", mysql_error();
exit;
}
}
------------------------------------------------------------------------------
ถ้าสังเกตุอีกจะเห็นว่าเราใช้ฟังก์ชัน implode เพื่อทำให้ $PET เป็นข้อความที่ถูกคั่นด้วย comma ครับ หรือหากใครต้องการใช้ทีละตัว ก็อาจใช้ code
ได้ดังนี้ครับ
------------------------------------------------------------------------------
for ($i=0;$i<count($PET_ARRAY);$i++) {
$PET = $PET_ARRAY[$i];
echo $PET."<br>";
mysql_query("UPDATE dbname SET PET='$PET'");
}
------------------------------------------------------------------------------
อะไรทำนองนี้ครับ ลองเอาเทคนิคนี้ไปใช้ดูครับ ช่วยได้เยอะทีเดียวครับ ถ้างงๆ ก็ถามเพิ่มเติมเข้ามาได้ครับ

การอ่านค่าจาก check box จาก php script แบบง่าย


สวัสดีครับ พอดีมีคนถามเข้ามาครับ เรื่องจะอ่าน input จาก check box ได้ยังไง ผมว่าเรื่องนี้น่าสนใจดีครับ
เพราะว่าช่วงแรกที่ผมเขียน php ใหม่ๆ ก็เขียนแบบเด็กๆมากเลย โดยตรวจมันหมดทุกตัวเลย ช้าชะมัด หรืออย่างคน
ที่เขียนถามเข้ามาเข้าใจว่าไม่ได้ ตรวจตัวแปรให้ดีเลยทำให้มีปัญหา ผมเลยได้ทำการเสาะแสวงหา code การอ่าน
check box มาลองใช้ดูพบว่า เจ๋งดีครับ เลยเขียนเป็นบทความลงมาให้ดูเผื่อใครอยากรู้บ้าง

วิธีการง่ายๆให้ใช้ array ครับ ยกตัวอย่างเช่น ใน form ของเรามี html ดังนี้นะครับ
------------------------------------------------------------------------------
คุณเลี้ยงอะไรบ้าง?
<FORM>
<INPUT TYPE=checkbox NAME=PET_ARRAY[] value=dog>หมา<br>
<INPUT TYPE=checkbox NAME=PET_ARRAY[] value=cat> แมว<br>
<INPUT TYPE=checkbox NAME=PET_ARRAY[] value=fish> ปลา<br>
</FORM>
------------------------------------------------------------------------------

ถ้าสังเกตุชื่อตัวแปรจะตั้งเป็น PET_ARRAY[] ซึ่งเป็นตัวแปรแบบ array นะครับ ทีนี้ถ้าอยากรู้ว่าผู้ใช้เลือกอะไรบ้างให้ลองดู code นี้ครับ
------------------------------------------------------------------------------
if ($PET_ARRAY)
{
$PET = implode($PET_ARRAY, ",");
$result = mysql_query ("UPDATE dbname SET PET = '$PET'");
if(!$result)
{
echo "<B>UPDATE unsuccessful:</b> ", mysql_error();
exit;
}
}
------------------------------------------------------------------------------
ถ้าสังเกตุอีกจะเห็นว่าเราใช้ฟังก์ชัน implode เพื่อทำให้ $PET เป็นข้อความที่ถูกคั่นด้วย comma ครับ หรือหากใครต้องการใช้ทีละตัว ก็อาจใช้ code
ได้ดังนี้ครับ
------------------------------------------------------------------------------
for ($i=0;$i<count($PET_ARRAY);$i++) {
$PET = $PET_ARRAY[$i];
echo $PET."<br>";
mysql_query("UPDATE dbname SET PET='$PET'");
}
------------------------------------------------------------------------------
อะไรทำนองนี้ครับ ลองเอาเทคนิคนี้ไปใช้ดูครับ ช่วยได้เยอะทีเดียวครับ ถ้างงๆ ก็ถามเพิ่มเติมเข้ามาได้ครับ

Field Clear Script

<script language="Javascript">
<!--
//This credit must stay intact
//Script by http://www.java-Scripts.net and http://wsabstract.com
 function doClear(theText) {
     if (theText.value == theText.defaultValue) {
         theText.value = ""
     }
 }
//-->
</script>

การใช้งาน
<form>
<input type="text" size=15 value="Enter name" onFocus="doClear(this)">
</form>

limitation of shapefile

  เมื่อวานมีน้องคนหนึ่งโทรมาถาว่าทำไม่ dump ข้อมูลจาก database มาเป็น shapefile แล้วไม่สำเร็จสักที นั่งดูกันอยู่สักพักก็ถึงบางอ้อ เพราะว่า shapefile ก็มีข้อจำกัดที่ผมคิดว่าหลายๆคนยังไม่รู้ ข้อจำกัดที่ว่าได้แก่
         1. shapefile 1 ไฟล์ประกอบด้วยไฟล์ย่อยหลักๆคือ .shp, .shx, .dbf และ prj (srs info) โดยหนึ่ง shapefile จะบรรจุข้อมูลได้ไม่เกิน 2 GB
          2. shapefile 1 ไฟล์บรรจุข้อมูลได้ทั้งหมด 65535 records เกินไม่ได้
          3. ใน 1 recordเก็บข้อมูลได้มากสุด 1000 bytes หรือ ไม่เกิน 32 field
          4. ชื่อ Field limited แ ค่ 8 ตัวอักษร
          5. เก็บตัวอักษรใน field ได้มากสุด 254 byte
         6. ไม่ support Unicode

อ่านรายละเอียดเพิ่มเติมที่ http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf

วันศุกร์ที่ 17 พฤษภาคม พ.ศ. 2556

Start Service Apache ไม่ได้

  ที่มา http://roboticlab.blogspot.com/2012/04/start-service-apache.html

       ก่อนอื่นๆ ก็เนื่องจากมีเพื่อนมาถามเยอะมาก และก็บ่นกันบ่อย โดยเฉพาะตอนเรียนวิชาเว็บ หรือเกิดอยากจะทำเว็บขึ้นมาแต่พอไปรัน Service ของ Apache แล้วเกิดปัญหาขึ้น
XAMPP apache port problem 80 or 443
ถึง ณ จุดนี้ัแล้ว ผมก็จะของนำเสนอวิธีแบบตรงจุด ไม่ต้องมาสุ่มไล่ลบโปรแกรมตามที่ในลายๆเว็บเค้าแนะนำกัน จากจุดนี้เราทราบว่า Port  80 หรือ 443 มีปัญหาเรามีวิธีง่ายๆ

1.ตรวจสอบโปรแกรมที่ใช้่ Port ชนกัน

  • Start >> พิมพ์คำสั่ง cmd ขึ้นมา 
  • พิมพ์คำสั่ง netstat -o -n -a | findstr 0.0:80 หรือ netstat -o -n -a | findstr 0.0:443 เพือตรวจสอบ Port ที่ใช้งาน โดยที่เลข  80 กับ 443 คือ Port สามารถที่จะปรับเปลี่ยนได้ตามความเหมาะสมจ้า
  • เราก็จะพบว่ามี  1 Process ที่เกี่ยวข้อง โดยเราจะมาสนใจที่เลข 1044
  • เลข 1044 คือ เลข PID คือ หมายเลขของ Process โดยเราจะไปตรวจดูต่อว่าเลขนี้ เป็นของอะไร โดยการเปิด Task Manager ขึ้นมา จากนั้นไปที่เมนู View >> Select Column เพื่อไปเลือกให้แสดงค่า PID ออกมาจากนั้นเราก็ไล่หา จะพบว่าเป็นของ VMWARE

2.จะแก้ไขอย่างไร 

          จากจุดนี้เราก็ทราบแล้วว่าจะแก้ปัญหาอย่างไร ถ้าเป็นโปรแกรมอื่น เช่น Skype เราอาจจะไปปรับ option ของโปรแกรม แต่ในกรณีนี้เป็นของ VMWARE ซึ่งเราก็กลัวว่าถ้าแก้แล้ว จะมีปัญหากับ Host ที่รันอยู่ในระบบ หรือ ไม่ ผมก็เลยจะเปลี่ยน Port ของทาง Apache แทน แต่จะเขียนรวมไปถึง Mysql ด้วยโดยจะยกตัวอย่างจาก xampp
  • การเปลี่ยน Port 80 (Http) ใน Apache
    1. เปิดไฟล์ \xampp\apache\conf\httpd.conf
    2. หาคำว่า “Listen 80″ เปลี่ยนเป็น “Listen 8080″
    3. หาคำว่า “ServerName localhost:80″ เปลี่ยนเป็น “ServerName localhost:8080″
  • การเปลี่ยน Port 443 (Https) ใน Apache
    1. เปิดไฟล์ \xampp\apache\conf\extra\httpd-ssl.conf
    2. หาคำว่า “Listen 443″ เปลี่ยนเป็น “Listen 450″
    3. หาคำว่า “ServerName localhost:443″ เปลี่ยนเป็น “ServerName  localhost:450″
  • การเปลี่ยน Port 3306 ของ Mysql
    1. เปิดไฟล์ \xampp\mysql\bin\my 
    2. หาคำว่า “port = 3306″ เปลี่ยนเป็น “port = 3336″ (มีสองจุด)

แก้ปัญหา Start Apache 2.2 ไม่ได้

ที่มา:http://langisser.wordpress.com/2012/05/15/%E0%B9%81%E0%B8%81%E0%B9%89%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2-start-apache-%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B9%84%E0%B8%94%E0%B9%89/

ถ้าวันนึงไม่สามารถ start service apache ได้ลองทำตามนี้ดู
1.ลองดูให้เห็นกับตาว่า  start service apache ไม่ขึ้น ให้ไปที่ Service แล้วคลิ็กขวาเลือก All Tasks -> Start

2. ไม่ขึ้นจริงๆด้วย โดยจะขึ้นข้อความ “Windows could not start the Apache2.2 on Local Computer. For more information, review the System Event Log. If this is a non-Micorsoft service, contact the service vendor, and refer to service-specific error code 1.”
apache service.jpg
2.1 จากที่ลองค้นหาดูตามเวบต่างๆพบว่าที่ start ไม่ขึ้นนั้นเกิดจาก port 80 มีการใช้งานอยู่ ตรงนี้มันวิธีแก้ง่ายๆอยู่คือเปลี่ยน port ของ Apache ให้ไปใช้ port อื่น เช่น 8080 หรือ 8088 หรือ เลขอื่นๆแทนที่ไม่ชนกับที่มีอยุ่ โดย เข้าไปเปลี่ยนที่ไฟล์ C:\AppServ\Apache2.2\conf\httpd.conf แล้วแก้เลข port จาก “Listen 80″ เป็น port ที่ต้องการ เช่น “Listen 8080″ แล้ว start service อีกครั้งก็จะใช้งานได้

3.  จากที่แนะนำไปคือการเปปลี่ยนสามารเปลี่ยน default port ของ apache ถ้าไม่อยากเปลี่ยนให้ตรวจสอบสิ่งเหล่านี้
3.1 ดูว่า service ไหนใช้ port 80 อยู่ แล้วทำการปิด service นั้น โดยพิมพ์คำสั่ง netstat -nao ที่ Command prompt จะได้ output ประมาณนี้
1
2
3
4
5
6
7
8
9
10
11
12
Active Connections
 
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 868
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 2616
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 2416
TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 2416
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 508
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING 984
TCP 0.0.0.0:1027 0.0.0.0:0 LISTENING 328
จะเห็นว่ามี 0.0.0.0:80 ถูกใช้งานอยู่โดย PID(Process Identifier) เลข 4 ขั้นตอนต่อไปก็ดูว่า process นี้คืออะไร ปิดได้หรือไม่
3.2 ดู process id ว่าคือ service อะไรให้ไปที่ Task Manager คลิ้กที่ process แล้วเลือก view -> select column แล้วติ้กถูกที่ PID(Process Identifier)
3.3 จะเป็นว่า PID 4 เป็น process ของ system ไม่สามารถที่จะ kill ได้ หากเป็นของ program อืนๆที่เรารู้จักก็ให้ลองปิด program นั้นๆไปก่อนแล้วลอง start service อีกครั้ง Skype, NOD32 หรือ IIS

4. เมื่อพบว่าเป็นของ system ทำให้ไม่สามารถปิดได้ วิธีการก็คือไม่ให้มัน start ขึ้นมาแทน อ้างอิงจากที่นี่
1) Launch RegEdit
2) Go to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
3) Change the value of ’start’ to 4 (disabled)
4) Re-boot your computer
5. ลอง Start service Apache อีกครั้ง

appserv 2.5.10 บน OS Windows 7 (64 bit) แล้วเข้า localhost ไม่ได้

1.ลองตรวจสอบ ว่า service apache start หรือไม่ครับ
ถ้า start ปกติ ลองเรียกเป็นแบบ ip ดูว่าได้หรือไม่นะครับ. http://127.0.0.1
ลองตรวจสอบเรื่อง program ที่ใช้งาน ว่ามีการใช้งานบน port 80 อยู่แล้วหรือไม่
เช่นพวก iis หรือตรวจสอบที่เครื่อง app server ว่ามีการลง firewall หรือ av ที่มี firewall
ไป block หรือไม่ครับ

2.ปกติแล้ว Windows 7 นั้นจะไม่ได้เปิด ให้ใช้ localhost ไว้ที่ host file หน่ะครับ เราต้องไปเอา comment ออกก่อน เข้าไปเชค DocumentRoot ที่ไฟล์ config ของ Apache ดู

C:\AppServ\Apache2.2\conf\httpd.conf

ว่าอยู่ที่ C:/AppServ/www
และเชค ServerName


#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:80

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/AppServ/www"


 


ปล.ถ้าไม่ได้จริงๆ  โทรหาผม วีระพงษ์ 086-6451435

ติดตั้ง Appserv แล้วเข้าหน้า localhost หรือ 127.0.0.1 ไม่ได้

ปัญหาเกิดจาก ติดตั้ง Appserv แล้วเข้าหน้า localhost หรือ 127.0.0.1 ไม่ได้ เลยงงอยู่พักใหญ่ นั่งหาข้อมูลจากพี่ Google ได้ความว่า อาจมีโปรแกรมอื่นใช้ port 80 อยู่ สำหรับวิธีตรวจสอบว่าโปรแกรมใหนใช้งาน port 80 เปิด cmd ขึ้นมาแล้วพิมพ์ว่า netstat -o -n -a | findstr 0.0:80 มันก็จะขึ้นบอกไว้อันสุดท้ายว่า pid อะไรที่ใช้ พอร์ตนี้อยู่นะครับ
จาก นั้นเราก็เปิด Task manager ขึ้นมา แล้วเปิดแทบ Processes จากนั้นคลิ๊กไปที่เมนู View แล้วเลือก Select Colum แล้วเลือกให้มันแสดง PID ด้วย  จากนั้นเราก็หาใน List ได้เลยว่า PID ที่เราได้จากตอนแรกนั้นตรงกับ Process ของโปรแกรมอะไร
อ่านบทความเต็มๆได้ที่ http://smokietorphp.d-ja.com/archives/145

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

Shell script backup all Mysql Databases in Linux

Source: http://4rapiddev.com/mysql/shell-script-backup-all-mysql-databases-in-linux/

This shell script will backup all current Mysql databases, compress(gzip) them and put them in a new folder named by current date (one directory per database).


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
  
PATH=/usr/sbin:/sbin:/bin:/usr/bin
  
MyUSER="your_db_user"
MyPASS="your_db_password"
MyHOST="your_db_host"
SUBFOLDER="$(date +"%Y-%m-%d")"
DEST="/somewhere/on/your/server"
MDB="$DEST/backup/$SUBFOLDER"
if [ ! -d $MDB ]
then
    mkdir -p $MDB >/dev/null 2>&1 && echo "Directory $MDB created." ||  echo "Error: Failed to create $MDB directory."
else
    echo "Error: $MDB directory exits!"
fi
NOW="$(date +"%Y-%m-%d_%H-%M-%S")"
FILE=""
DBS="$(mysql -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
  
for db in $DBS
do
    FILE="$MDB/$db.$NOW.sql.gz"
    mysqldump -u $MyUSER -h $MyHOST -p$MyPASS --complete-insert $db | gzip -9 > $FILE
    echo "Backup $FILE.....DONE"
done

How To Check And Start An Application If It Is Not Running In Windows

 Source:http://4rapiddev.com/tips-and-tricks/how-to-check-and-start-an-application-if-it-is-not-running-in-windows/

I will provide a VB Script that will check and start an application (or process) if it is not running. And I will show How to create a Windows Task Scheduler that automatically calls the VB script every few minutes.
It is applied properly on Windows Vista, Windows 7 or Windows Server 2008. I haven’t tested on Windows XP or Windows Server 2003.

1. VB Script start an application if it is not running

Download the VB Script (Failsafe.vbs) and update strEXEFileName and strEXEFilePath with your application file name and its path.
The VB Script content:
Dim objWMIService, colItems, objItem, strComputer, strFlashEXEFile
Dim count
 
strEXEFileName = "your-application-name.exe"
strEXEFilePath = "D:/path-to-your-app/" & strEXEFileName
strComputer = "."
 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.InstancesOf("Win32_Process")
 
count = 0
 
For Each objItem In colItems
 If objItem.Name = strEXEFileNameThen
  count = count + 1
 Else
 End If
Next
 
Set objWMIService = Nothing
Set colItems = Nothing
 
If count = 0 Then
 
 Dim oShell
 Set oShell = WScript.CreateObject ("WScript.Shell")
 Return = oShell.run(strEXEFilePath,3, false)
 Set oShell = Nothing
 
End If

2. Create Task Schedule To Run The Script every 10 minutes automatically

Create a new Schedule Task by doing following steps below:
  • 1. Start => All Programs => Accessories => System Tools => Task Scheduler.
  • 2. Click the Action menu, and then click Create Task.
  • 3. In the General tab, type a name for the task and an optional description.
  • 4. Go to Triggers tab then click on New button to create a schedule to run the task.
  • 5. In the New Trigger box, select Daily radio button and check on Repeat task every … option to determine How often we would like to check the app. Let’s say Repeat task every 10 minutes:
    Windows Task Schedule Repeat Task Settings
    Windows Task Schedule Repeat Task Settings
    Then click OK to finish this step.
  • 6. Go to Actions tab and click New. In the New Action box, select Start a program in the Action drop down list, and then Browse to the VB Script (Failsafe.vbs) similar to image below:
    Windows Task Schedule Start A Program
    Windows Task Schedule Start A Program
  • 7. Click OK to finish this step.

Schedule Backup And Zip MySQL Database In Windows

 Source:http://4rapiddev.com/mysql/schedule-backup-and-zip-mysql-database-in-windows/

Creating a job to schedule backup databases automatically is a very important task for each database administrator. Database is always irreplaceable and is the heart of all online business therefore this process must be the first thing in the process of database administrating to ensure it’s super safe.
In this tutorial, I’ll share with you how to write a .BAT script to backup your MySQL database, use 7-zip to compress the backup file. After finish this .BAT script, you can use the Task Scheduler in System Tools to regularly backup your MySQL database automatically.

.BAT script to backup and compress a MySQL database

Below is my .BAT script content which will do:
  • Init with current date and time of the backup file
  • Export a particular database to a .SQL file
  • Compress the .SQL file to a .ZIP file by using 7-zip
  • Finally, delete the .SQL file to save hard drive space
@echo off
 
CLS 
 
SET backuptime=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%-%TIME:~0,2%-%TIME:~3,2%
 
echo %backuptime%
 
echo Running dump ...
 
set 7zip_path=
 
"C:\xampp\mysql\bin\mysqldump.exe" --host="localhost" --port="3306" --user="hoan" --password="123456" -Q --result-file="C:\xampp\mysql\data\bk_%backuptime%.sql" rapiddev
 
echo Zipping ...
 
"C:\Program Files\7-Zip\7z.exe" a -tzip "C:\xampp\mysql\data\bk_%backuptime%.zip" "C:\xampp\mysql\data\bk_%backuptime%.sql"
 
echo Deleting the SQL file ...
 
del "C:\xampp\mysql\data\bk_%backuptime%.sql"
 
echo Done!
The .BAT script above assumes that you want to backup the database named rapiddev and you’re required to:
  • Update the mysqldump.exe file path
  • Download 7-zip and update your 7-zip installation path
  • Update your MySQL login detail include host, port, username and password as well as the database name
  • Specify where you want to save the zipped backup file
Run Backup Bat Script
Run Backup Bat Script

Creating schedule to run the .BAT script

After finish updating some configurations relate to MySQL credentials, executable path and testing carefully, next you need to create a job/task which is scheduled to run the .BAT script to backup your database automatically. On Windows, you should to use Task Scheduler tool by going to Start menu, point to Accessories and point to System Tools.
Task-Schduler-Backup_MySQL-Database
Task-Schduler-Backup_MySQL-Database
Congratulation! That’s all you need to for your MySQL database protection. You’re free to download the .BAT script above to run on your server. From my recommend, you should setup the job runs daily in the time of lowest traffic to avoid impact your website performance.

วันพุธที่ 15 พฤษภาคม พ.ศ. 2556

VMWare ก็เพิ่ม disk space ได้นะ

ไปที่ Edit Virtual Machine กดที่รูป HDD ที่ต้องการเพิ่มพื้นที่ แล้วไปเลือก Utility ที่อยู่ทาง pane ด้านขวา แล้วเลือก Expand แล้วก็ใส่ขนาดพื้นที่เข้าไป  กด Expand แล้วก็รอ นานนนนนน สักพักนึงก็จะเสร็จ

แต่ …

ยังไม่เสร็จขั้นตอนทั้งหมดครับ โดย vmware จะขึ้นเตือนว่า “The disk was successfully expanded. You must repartition the disk and expadn the file system from within the guest operating system.” แปลว่าคุณต้องไปจัดการให้ OS ที่ใช้อยู่ มองเห็น disk ด้วยนะ ซึ่งต้องทำเองครับ คือ disk น่ะมีพื้นที่เพิ่มแล้ว แต่ OS ยังมองไม่เห็นนั่นเอ
เช่น ถ้าใช้ windows 7 ก็เข้าไปที่  Administrative Tools -> Computer Management กดที่ Storage แล้วเลือกที่ Disk Management จะเห็น Disk ที่กำลังใช้งานอยุ่และ disk ที่เพิ่งเพิ่มเข้าไป ให้ click ขว่าที่ disk ที่ต้องเพิ่มพื้นที่ เช่น C: แล้วเลือก Expand เสร็จแล้วจะให้เลือกว่าจะเอาพื้นที่จากส่วนไหนมาเพิ่ม ซึ่ง windows จะเลือกให้เองอยุ่แล้วเหมือนในภาพ แล้วก็กดNext -> Finish ก็เสร็จ เสร็จแล้วจริงๆ ขั้นตอนนี้แปปเดียว ไม่นาน

วันอังคารที่ 14 พฤษภาคม พ.ศ. 2556

Create KML From Mysql SHAPE


update  province_geo set kml=astext(SHAPE)

SELECT REPLACE( FieldName ,'คำที่ค้นหา','คำที่เอามาแทน' ) AS NewData FROM TableName

update  amphoe_geo set kml=astext(SHAPE)

update  amphoe_geo set kml=replace(kml,')','');
update  amphoe_geo set kml=replace(kml,'(','');
update  amphoe_geo set kml=replace(kml,'MULTIPOLYGON','');
update  amphoe_geo set kml=replace(kml,'POLYGON','');

update  amphoe_geo set kml=replace(kml,',','|');
update  amphoe_geo set kml=replace(kml,' ',',');
update  amphoe_geo set kml=replace(kml,'|',' ');

Shape File to MySQL With ogr2ogr

ogr2ogr -f MySQL MySQL:my_database,user=root,password=mypassword TM_WORLD_BORDERS_SIMPL-0.1.shp -nln my_table -nlt MULTIPOLYGON -update -overwrite -lco GEOMETRY_NAME=my_polygon_column

วันพุธที่ 1 พฤษภาคม พ.ศ. 2556

สตง"พบอปท"31แห่งใช้"จีไอเอส"จัดเก็บรายได้ ไม่เกิดประโยชน์ ทำรัฐสูญนับร้อยล้าน

วันที่ 16 พฤษภาคม พ.ศ. 2552 เวลา 18:49:16 น.  มติชนออนไลน์

สต ง.เผย อปท.ใช้ระบบ"จีไอเอส"ในการจัดเก็บรายได้เทศบาลได้ไม่เต็มประสิทธิภาพส่งผล เสียหายนับร้อยล้านบาท หากไม่ให้ความสำคัญจะสูญเปล่า แนะทางแก้ไขอบรมบุคลากรเพื่อนำระบบมาใช้งาน

แหล่งข่าวจากสำนักงานการตรวจเงินแผ่นดิน (สตง.) เปิดเผยเมื่อวันที่ 16 พฤษภาคมว่า สตง.เข้าตรวจสอบการดำเนินงานการนำระบบสารสนเทศภูมิศาสตร์ (จีไอเอส) มาใช้ในการจัดเก็บรายได้ของเทศบาลหลายแห่ง หลังจากกรมส่งเสริมการปกครองท้องถิ่น มีพันธกิจในด้านการพัฒนาความเข้มแข็งด้านการเงินการคลังขององค์กรปกครองส่วน ท้องถิ่น (อปท.) และมีเป้าประสงค์ให้ อปท.สามารถตัดสินใจแก้ปัญหาและบริหารจัดการในท้องถิ่นด้วยตนเองอย่างเป็น ประสิทธิภาพ โดยจัดสรรงบประมาณอุดหนุนทั่วไป เพื่อลดช่วงว่างทางการคลัง ให้แก่ อปท. โดยจัดสรรงบประมาณจำนวน 400 ล้านบาท ให้กับเทศบาลกว่า 40 แห่ง ในปีงบประมาณ 2547 เพื่อจัดทำโครงการนำระบบสารสนเทศภูมิศาสตร์ มาใช้ในการวางแผนพัฒนา อปท. 


นอก จากนี้ ยังมี อปท.หลายแห่งเห็นความประโยชน์ในการนำระบบดังกล่าวมาใช้ในการจัดเก็บรายได้ โดยใช้งบประมาณของตนเองในการดำเนินการ ซึ่งพบว่าการดำเนินงานที่ผ่านมาของเทศบาลประสบปัญหาหลายประการ จนทำให้ไม่สามารถใช้ประโยชน์จากระบบได้ หรือใช้ได้ไม่เต็มประสิทธิภาพ ส่งผลให้สูญเสียงบประมาณเป็นจำนวนเงินนับร้อยล้านบาท


ทั้งนี้ จากการสุ่มตรวจสอบการใช้งานระบบจีไอเอสของเทศบาล ที่ได้รับการจัดสรรงบจากกรมส่งเสริมการปกครองท้องถิ่น จำนวน 27 แห่ง วงเงิน 245 ล้านบาท และเทศบาลที่ใช้งบประมาณของตนเองวางระบบจีไอเอส จำนวน 47 แห่ง วงเงิน 116.83 ล้านบาท รวมทั้งหมด 71 แห่ง วงเงิน 361.83 ล้านบาท พบข้อสังเกตสำคัญ 2 ประเด็น คือ 1.มีเทศบาลไม่ได้ใช้ประโยชน์จากระบบจีไอเอสในการจัดเก็บรายได้ จำนวน 36 แห่ง คิดเป็นร้อยละ 50.70 ของเทศบาลที่ตรวจสอบ จำนวนเงิน 139.67 ล้านบาท ซึ่งในจำนวนนี้ มีเทศบาล 4 แห่ง ที่ยังไม่ได้ตรวจรับงาน เนื่องจากที่ปรึกษาจัดทำโปรแกรมไม่สมบูรณ์และนำเข้าข้อมูลไม่ถูกต้องครบถ้วน ตามที่กำหนดไว้ในสัญญา จำนวนเงิน 42 ล้านบาท  2. มีเทศบาลที่ใช้ประโยชน์จากระบบจีไอเอสในการจัดเก็บรายได้ไม่เต็มประสิทธิภาพ จำนวน 31 แห่ง คิดเป็นร้อยละ 43.66 ของจำนวนเทศบาลที่ตรวจสอบ เป็นจำนวนเงิน 180.16 ล้านบาท  


ทั้ง นี้ ในประเด็นเรื่องการไม่ได้ใช้ประโยชน์จากระบบจีเอสไอ จากการตรวจสอบรายการเคลื่อนไหวในระบบเอกสารข้อมูลที่ดิน โรงเรือน ป้าย และใบอนุญาต ในทะเบียนทรัพย์สิน (ผ.ท.4.) รายการชำระภาษี และค่าธรรมเนียมใบอนุญาตในทะเบียนคุมผู้ชำระภาษี (ผ.ท.5.) จำนวนเทศบาลละ 100 ราย ในจำนวน 71 แห่ง ที่เลือกตรวจสอบพบว่าเทศบาลจำนวน 36 แห่ง ไม่มีการเคลื่อนไหวของข้อมูลดังกล่าวในระบบจีไอเอส หมายความว่าเทศบาลทั้งหมดยังคงบันทึกการเคลื่อนไหวของข้อมูลตามระบบเอกสาร เช่นเดิม ไม่มีการบันทึกข้อมูลและประมวลผลผ่านระบบจีไอเอสแต่อย่างใด
ส่วนกรณีการใช้ไม่เต็มประสิทธิภาพของเทศบาลจำนวน 31 แห่ง แบ่งได้เป็น 2 กรณี คือ 1.ระบบ จีไอเอสไม่สามารถเชื่อมโยงกับข้อมูลที่สำคัญต่างๆ อาทิ การเลือกตำแหน่งในแผนที่แล้วสามารถแสดงรายละเอียดทรัพย์สิน ระบุชื่อเจ้าของหรือรหัสที่ดินที่สามารถแสดงตำแหน่งทรัยพ์สิน หรือค่าภาษีทุกประเภทที่ต้องชำระ 2.การใช้ระบบจีไอเอสในการจัดเก็บภาษีและค่าธรรมเนียมต่างๆ ไม่ครบทุกขั้นตอน   


"ผล จากการที่เทศบาลไม่ได้ใช้ประโยชน์และใช้ประโยชน์จากระบบจีไอเอสในการจัดเก็บ รายได้ ไม่เต็มที่ ทำให้เกิดความเสียหายเป็นจำนวนเงินรวม 143.09 ล้านบาท หากเทศบาลปรับปรุงแก้ไขข้อบกพร่อง เงินที่ใช้เป็นก็จะก่อให้เกิดประโยชน์และคุ้มค่า แต่ในทางตรงกันข้าม หากไม่ให้ความสำคัญ จะเกิดการสูญเปล่าไม่ได้ประโยชน์แต่อย่างใด" แหล่งข่าวระบุ 


แหล่ง ข่าวกล่าวว่า เบื้องต้น สตง.ได้ทำหนังสือแจ้งข้อเสนอแนะไปยังอธิบดีกรมส่งเสริมการปกครองท้องถิ่น (สถ.) เพื่อดำเนินการแก้ไขปัญหาที่เกิดขึ้น ได้แก่ การแจ้งให้ อปท.ทุกแห่งที่นำระบบจีไอเอส มาใช้ในการจัดเก็บรายได้ ตรวจสอบการดำเนิน เพื่อรายงานปัญหาและอุปสรรคจากการใช้ประโยชน์ โดยให้แจ้งสาเหตุแนวทางแก้ไข และระยะเวลาที่จะดำเนินการแก้ไขให้แล้วเสร็จให้กรมทราบ เพื่อจะได้กำหนดแนวทางแก้ไขปัญหาต่อไป พร้อมทั้งติดตามการดำเนินการแก้ไขปัญหาของ อปท. โดยเฉพาะการพัฒนาบุคลากร ซึ่งเป็นสาเหตุสำคัญที่ทำให้ไม่มีการใช้ประโยชน์จากระบบดังกล่าว นอกจากนี้ควรจัดให้มีศูนย์สนับสนุนการปฏิบัติงานให้กับ อปท. ที่นำระบบจีไอเอสมาใช้ด้วย เพื่อให้การดำเนินงานเป็นไปในทิศทางเดียวกัน


ในการติดตามผลการดำเนินการของเทศบาล สตง.ได้แจ้งให้นายกเทศมนตรีดำเนินการแก้ไขปัญหาไปบ้างส่วนแล้ว ดังนี้ 1.แต่ง ตั้งคณะทำงานดำเนินการแก้ไขปัญหาเร่งด่วน จากการไม่ได้ใช้ประโยชน์จากระบบจีไอเอสในการเก็บรายได้แล้ว และต้องรายงานให้ผู้บริหารรับทราบเพื่อติดตามผลให้แล้วเสร็จ 2.จัด ทำแผนพัฒนาบุคลากรสำหรับเจ้าหน้าที่ที่รับผิดชอบการใช้งาน และจัดฝึกอบรมเจ้าหน้าที่ ให้มีความรู้ความสามารถในการนำระบบมาใช้งาน และปรับปรุงอุปกรณ์ใช้งานให้มีประสิทธิภาพแยกออกจากงานอื่น เพื่อป้องกันไวรัสคอมพิวเตอร์ รวมถึงกำหนดให้มีหน่วยงานเป็นศูนย์กลางรับผิดชอบดูแลรักษาระบบสารสนเทศ และส่งเสริมให้ผู้ใช้งานเล็งเห็นความสำคัญในการนำระบบนี้มาใช้ในการจัดเก็บ รายได้ 3.เร่งรัดคณะกรรมการตรวจรับงานของเทศบาลจำนวน 4 แห่ง ที่ยังไม่ได้ตรวจรับงาน ให้วางแผนร่วมกับที่ปรึกษากรณีการนำเข้าข้อมูลไม่ครบถ้วนและโปรแกรมไม่ สมบูรณ์ เพื่อดำเนินการแก้ไขให้สามารถตรวจรับงานได้โดยเร็ว   

บทสัมภาษณ์ รองศาสตราจารย์ สุนีย์ ประจวบเหมาะ เรื่องของมาตรการเสริมประสิทธิภาพการจัดเก็บรายได้ของ อบต

ที่มา: http://www.oag.go.th/News/OrderOAG/Order13/Order13_13.jsp

 รศ.สุนี ใน หมวดที่ 2 มาตรการเสริมประสิทธิภาพ จะเป็นลักษณะที่เราให้เครื่องมือ อย่างเรื่องแรกที่เราเขียนไปในมาตรการ คือ ให้ อบต. ทุกแห่งควรจะต้องทำแผนที่ภาษี และทะเบียนทรัพย์สิน เพราะตัวแผนที่ภาษีตัวนี้เป็นเครื่องมือสำคัญในการที่จะจัดเก็บรายได้ให้ครบ ถ้วน ถูกต้อง เป็นธรรม เพราะเวลาเราทำเสร็จ จะทราบว่าที่ดินแปลงไหน ควรเก็บภาษีบำรุงท้องที่ ตรงไหนที่เก็บภาษีโรงเรือน ภาษีป้าย เพราะฉะนั้นถ้าเราสามารถทำได้ ก็สามารถที่จะมองได้ว่าตรงไหนเรายังไม่ได้ไปเก็บ เพราะฉะนั้นตรงนี้ต้องมีการสำรวจ เพื่อให้การจัดเก็บครบถ้วน ถูกต้อง เป็นธรรม ถ้ามีเครื่องมืออันนี้แล้วจะช่วยให้ อบต. ทำงานในการจัดเก็บภาษีมีประสิทธิภาพมากขึ้น เพราะว่าแผนที่ภาษีเมื่อทำเสร็จแล้วสามารถจะทำทะเบียนทรัพย์สินได้เลย ซึ่งในเรื่องของแผนที่ภาษี คณะทำงานได้ทำรายละเอียดเอาไว้ คือ สำหรับ อบต. ที่ยังไม่พร้อมในเรื่องการหรือเรื่องอะไรก็แล้วแต่ เรามีวิธีการจัดทำเครื่องมือ คือ ทำเอง เอาแผนที่แม่บทมา มาออกสำรวจ ตรงไหนเป็นโรงเรือน หรือเป็นที่ว่างเปล่า แล้วก็ให้ช่างไปสำรวจ แล้วกำหนดขึ้นมา ทำเป็นทะเบียนทรัพย์สิน เราก็สามารถจัดเก็บได้เหมือนกัน แต่ถ้า อบต. ไหนที่มีความสามารถทางด้านการเงินหรือว่า กำลังคนด้วยสามารถทำด้วยโปรแกรมคอมพิวเตอร์ ซึ่งเราเรียกว่า GIS ซึ่งย่อมาจาก Geographic Information System ซึ่งเป็นโปรแกรม software ตระกูล Microsoft Office ซึ่งสามารถทำงานเชื่อมโยงกับโปรแกรมอื่นได้ ในการทำงานของ อบต. ได้ รวมทั้งการจัดเก็บรายได้ รวมถึงเรื่องอื่น ๆ ในการบริหารงานสามารถทำได้หมด ซึ่งถ้าเรามีโปรแกรมนี้แล้วจะสามารถทำให้ อบต. มีประสิทธิภาพ ข้อโต้แย้งของภาษีจะลดลง ประชาชนสามารถตรวจสอบได้ โปร่งใสแน่นอน และเป็นฐานข้อมูล ในการบริหารงานด้านอื่นของ อบต. ได้ด้วย อันนี้คือความหวังที่ว่าถ้า อบต. จะมี GIS ได้ทุก อบต. จะทำให้การทำงาน ที่เราเรียกว่าการกระจายอำนาจ ที่ออกไปสู่ท้องถิ่น จะมีประสิทธิภาพมากขึ้น

สตง.สงสัยจัดซื้อระบบ GIS ไม่โปร่งใส ผู้บริหารเทศบาลแจงไม่เจตนาทำรัฐเสียหาย โยนสถ.ต้นเหตุ

สตง.ลุยต่อเทศบาลใช้ระบบจัดเก็บรายได้ไม่ คุ้มค่า สงสัยจัดซื้อจัดจ้างไม่โปร่งใส มีผลประโยชน์ทับซ้อน คนบงการ ส.ท.ท.--ผู้บริหารเทศบาล โยนสถ.ชี้ว่าจ้างวางระบบไม่ทันสมัย โปรแกรมไม่สมบูรณ์และไม่ได้ตั้งใจทำให้รัฐเสียหา

ผู้บริหารเทศบาลหลายแห่ง รวมถึงบุคคลที่เกี่ยวข้องออกมาชี้แจง ภายหลังสำนักงานการตรวจเงินแผ่นดิน (สตง.) ตรวจสอบโครงที่กรมส่งเสริมการปกครองท้องถิ่น (สถ.) จัดสรรงบประมาณอุดหนุนทั่วไปให้เทศบาลกว่า 400 ล้านบาท เพื่อนำระบบสารสนเทศภูมิศาสตร์ (จีไอเอส) มาใช้ ในการจัดเก็บรายได้ของเทศบาล และเทศบาลหลายแห่งนำงบฯเทศบาลมาดำเนินการอีกจำนวนหนึ่ง แต่กลับพบปัญหา โดยจากการสุ่มตรวจเทศบาล 71 แห่ง ไม่สามารถใช้ประโยชน์ หรือใช้ได้ไม่เต็มประสิทธิภาพ ส่งผลให้เกิดความเสียหายกว่า 143 ล้านบาท


นายประภัสร์ ภู่เจริญ นายกสมาคมสันนิบาตเทศบาลแห่งประเทศไทย (ส.ท.ท.) กล่าวเมื่อวันที่ 18 พฤษภาคม ว่าปัญหาน่าจะเกิดจาก สถ.ให้บริษัทเอกชนหลายแห่งเข้ามาวางระบบ จึงทำให้ข้อมูลไม่เป็นปัจจุบัน โปรแกรมคอมพิวเตอร์มีปัญหา นอกจากนี้ ยังมีปัญหาการเลือกตั้งที่เทศบาลบางแห่งอาจเปลี่ยนตัวผู้บริหาร งานจึงไม่ต่อเนื่อง ขณะนี้ ส.ท.ท.ร่วมมือกับนักวิจัยจากมหาวิทยาลัยศิลปากร และสำนักวิจัย มหาวิทยาลัยเกษมบัณฑิต พัฒนาโปรแกรมระบบจีไอเอสสำหรับงานแผนที่ภาษีและทะเบียนทรัพย์สิน เพื่อใช้ในระบบงานของเทศบาลสมาชิกเพื่อให้เป็นมาตรฐานเดียวกัน มีประสิทธิภาพ สะดวก และรวดเร็ว


นอกจากนี้ ส.ท.ท .ร่วมกับมหาวิทยาลัยศิลปากร มหาวิทยาลัยราชภัฏบุรีรัมย์ มหาวิทยาลัยมหาสารคาม มหาวิทยาลัยทักษิณ มหาวิทยาลัยราชภัฏเชียงราย และมหาวิทยาลัยเกษมบัณฑิต จัดฝึกอบรมการจัดทำแผนที่ภาษี การใช้โปรแกรมปฏิบัติงาน โดยวันที่ 15-21 มิถุนายนนี้ จะจัดที่มหาวิทยาลัยทักษิณ จ.สงขลา สำหรับระบบใหม่นี้มีการใช้งานที่เทศบาลต้นแบบ คือ เทศบาลเมืองลำพูน เทศบาลเมืองปทุมธานี เทศบาลเมืองพนัสนิคม เทศบาลเมืองบุรีรัมย์


ขณะที่ผู้บริหารเทศบาล ที่มีรายชื่อในกลุ่ม 25 เทศบาล ที่ถูกสุ่มตรวจพบ มีปัญหาไม่ได้ใช้งาน และใช้งานระบบจีไอเอสมาใช้จัดเก็บรายได้ไม่เต็มประสิทธิภาพนั้น นายอำนาจ วิทยา ปลัดเทศบาลเมืองชะอำ อ.ชะอำ จ.เพชรบุรี กล่าวว่า ได้รับงบฯทำระบบจาก สถ.เมื่อปี 2548 วงเงิน 13 ล้านบาท ใช้ไปแล้วประมาณ 6 ล้านบาท ขณะนี้ยังไม่เสร็จสิ้นโครงการ พบปัญหาเกิดจากบุคลากรขาดความรู้ความเข้าใจในการใช้ระบบจีไอเอส ประกอบกับข้อมูลเปลี่ยนแปลงอย่างรวดเร็ว เนื่องจากเป็นเมืองท่องเที่ยวที่เจริญเติบโตสูง ทำให้การจัดเก็บข้อมูลไม่เป็นปัจจุบัน


"ที่ผ่านมาจัดเก็บภาษีเพิ่มขึ้นทุกปี โดยปี 2550 ประมาณ 30 ล้านบาท ปี 2551 สูงถึง 36 ล้านบาท การันตีจากรางวัลจัดเก็บภาษีอย่างมีประสิทธิภาพจาก สถ.ปี 2551Ž"นายอำนาจกล่าว และว่า ขณะนี้ตั้งคณะกรรมการควบคุมการปฏิบัติงานตามโครงการและจัดฝึกอบรมบุคลากร เพื่อการทำงานมีประสิทธิภาพ


นายพงษ์พิสิทธิ์ ศรีจั้นแก้ว นายกเทศมนตรี เทศบาลตำบลผักไห่ อ.ผักไห่ จ.พระนครศรีอยุธยา กล่าวว่า สตง.มีหนังสือถึงเทศบาลว่าจากการประเมินผลการใช้ระบบจีไอเอสจัดเก็บรายได้ ไม่ได้ตรงตามประสงค์ เนื่องจากคอมพิวเตอร์ไม่เพียงพอ โปรแกรมไม่สมบูรณ์ และเจ้าหน้าที่ขาดความชำนาญ เทศบาลแก้ไขปัญหาแล้วโดยจัดหาคอมพิวเตอร์เพิ่มเติมพร้อมโปรแกรมที่สมบูรณ์ โดยจ้างบุคลากรในสังกัดมหาวิทยาลัยธรรมศาสตร์วางระบบ และจ้างผู้ปฏิบัติงานที่มีความชำนาญด้านคอมพิวเตอร์


"ปี 2549 จัดเก็บได้ 2,251,077 บาท ทดลองใช้จีไอเอสปี 2550 เก็บได้ 3,587,297 บาท ปี 2551 ได้ 3,586,620 บาท จะเห็นได้ว่าจัดเก็บภาษีเพิ่มขึ้น แต่ปีที่ผ่านมาเศรษฐกิจไม่ดี ทำให้เก็บภาษีแบบก้าวหน้าไม่ได้ เมื่อ สตง.แจ้งว่าควรปรับปรุงเทศบาลพร้อมดำเนินการ"นายพงษ์พิสิทธิ์กล่าว
นายพงษ์พิสิทธิ์กล่าวว่า ปัญหาที่เกิดขึ้น โทษองค์กรปกครองส่วนท้องถิ่น (อปท.) ฝ่ายเดียวคงไม่ได้ เพราะเป็นโครงการนำร่อง คำว่านำร่องหมายถึงเพิ่งทดลองทำ ลองผิดลองถูก ขอยืนยันว่าไม่ได้เกิดจากความตั้งใจให้รัฐเสียหาย


นายชโลม โปลิตานนท์ นายกเทศมนตรี เทศบาลตำบลท่าเรือ อ.ท่าเรือ จ.พระนครศรีอยุธยา กล่าวว่า เป้าประสงค์ของโครงการเป็นการเพิ่มขีดความสามารถในการทำงาน หากทำได้ประชาชนและรัฐจะได้ประโยชน์สูงสุด แต่เมื่อทดลองทำอาจต้องปรับแก้กันบ้าง และเทศบาลเร่งแก้ไขอยู่ และปกติสามารถจัดเก็บภาษีได้ตามเป้าหมาย แต่ช่วงเศรษฐกิจแบบนี้จะให้เก็บตามตัวเลขในอัตราก้าวหน้าไม่ได้ หากเก็บได้เท่าปีก่อนถือว่าดีแล้ว


ว่าที่ ร.ต.สมทรง สรรพโกศลกุล นายกเทศมนตรี เทศบาลนครพระนครศรีอยุธยา กล่าวว่า เทศบาลนครถือเป็นองค์กรใหญ่สุดของเทศบาลที่นำร่องโครงการนี้ เมื่อผิดพลาดได้แก้ไขตามข้อแนะนำ แต่ช่วงนี้เศรษฐกิจโดยรวมไม่ดี หากเก็บภาษีในให้ได้ตัวเลขแบบก้าวหน้าที่กำหนดไว้คงทำได้ลำบาก


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


"โครงการนี้ ถือเป็นตัวอย่างหนึ่ง ที่ชี้ให้เห็นได้ชัดเจน ถึงการใช้จ่ายงบประมาณที่ไม่คุ้มค่าของหน่วยงานราชการ ทั้งในส่วนของคนจ่ายเงิน และคนได้รับเงิน ไปซื้อของมาใช้ กับไม่ได้ใช้ประโยชน์อย่างเต็มที่ บางหน่วยงานเห็นเขาไปซื้อมาใช้บ้างก็ไปซื้อตาม แต่ซื้อมาก็ใช้ไม่เป็น ทำกันเป็นแฟชั่น โดยไม่คำนึงถึงความเสียหายที่จะเกิดขึ้น เนื่องจากความไม่พร้อมทั้งในเรื่อง คน และเครื่องมือ ที่จะรองรับการใช้งาน"นายพิศิษฐ์ระบุ


นายพิศิษฐ์กล่าวว่า นอกเหนือจากการตรวจสอบเรื่องคุ้มค่าในการติดตามระบบจีไอเอสของเทศบาลแล้ว สตง.กำลังขยายผลการตรวจสอบเชิงลึก เกี่ยวกับเหตุผลและความจำเป็นในการวางระบบจีไอเอส ครั้งนี้ว่ามีที่มาที่ไปอย่างไร และกระบวนการจัดซื้อจัดระบบของแต่ละเทศบาลด้วย ว่ามีความโปร่งใสหรือไม่ และมีปัญหาเรื่องผลประโยชน์ทับซ้อน และมีใครอยู่เบื้องหลังสั่งการให้มีการดำเนินการเรื่องนี้หรือไม่


ส่วนเรื่องที่กระทรวงมหาดไทยจะเสนอ ครม. วันที่ 19 พฤษภาคม พิจารณาการเลือกตั้งกำนันโดยตรงนั้น นายกวี ศรีวิสุทธิ์ อดีตประธานชมรมกำนันผู้ใหญ่บ้านจังหวัดนครศรีธรรมราช กล่าวว่า เห็นด้วยเพราะที่ผ่านมาการให้ผู้ใหญ่บ้านเป็นผู้เลือกกำนั้น ทำให้ความผูกพันระหว่างกำนันกับประชาชนขาดหายไป ที่ผ่านมามีหลายตำบลในพื้นที่นครศรีธรรมราช ที่ผู้ใหญ่บ้านวิ่งเต้นซื้อเสียงผู้ใหญ่บ้านด้วยกันเพื่อให้เลือกเป็นกำนัน อยากให้แก้กฎหมายเปลี่ยนมาใช้การเลือกตั้งโดยประชาชนจะดีกว่า

ข่าววันที่ 18 พฤษภาคม พ.ศ. 2552 เวลา 20:19:15 น. มติชนออนไลน์
http://www.matichon.co.th/news_detail.php?newsid=1242652785&grpid=01&catid=01

บริการจัดทำแผนที่ภาษีและทะเบียนทรัพย์สิน.

            ด้วยกระทรวงมหาดไทย มีนโยบายส่งเสริมสนับสนุนให้องค์กรปกครองส่วนท้องถิ่น จัดทำแผนที่ภาษี และทะเบียนทรัพย์สินเพื่อนำไปใช้ในการเพิ่มประสิทธิภาพการจัดเก็บรายได้ จึงได้ออกระเบียบกระทรวงมหาดไทย ว่าด้วยแผนที่ภาษีและทะเบียนทรัพย์สินขององค์กรปกครองส่วนท้องถิ่น พ.ศ.2550 ซึ่งระเบียบดังกล่าวได้กำหนดให้องค์กรปกครองส่วนท้องถิ่น จัดทำแผนที่ภาษีและทะเบียนทรัพย์สินภายใน 180 วัน นับตั้งแต่วันที่ 1 มกราคม พ.ศ. 2551 และองค์กรปกครองส่วนท้องถิ่นเห็นว่าเพื่อเป็นการปฏิบัติตามระเบียบกระทรวง มหาดไทย ดังกล่าว และการจัดทำแผนที่ภาษีและทะเบียนทรัพย์สินเมื่อดำเนินการเสร็จเรียบร้อยตาม โครงการแล้วจะทำให้ องค์กรปกครองส่วนท้องถิ่นมีข้อมูลรายละเอียดเกี่ยวกับทรัพย์สินต่าง ๆ ของประชาชนไว้ใช้สำหรับการจัดเก็บภาษี (ภาษีบำรุงท้องที่, ภาษีโรงเรือนที่ดินและภาษีป้าย) รวมทั้งค่าธรรมเนียมใบอนุญาตต่างๆ ไว้อย่างสมบูรณ์ ส่งผลให้องค์กรปกครองส่วนท้องถิ่น สามารถนำไปใช้เป็นเครื่องมือในการเร่งรัดติดตามจัดเก็บรายได้อย่างครบถ้วน ถูกต้อง และเป็นธรรมแก่ผู้มีหน้าที่เสียภาษีอย่างแท้จริง และยังทำให้การจัดเก็บภาษีขององค์กรปกครองส่วนท้องถิ่น มีระบบฐานข้อมูลที่แน่นอนและสามารถตรวจสอบได้โดยสะดวก รวดเร็ว นอกจากนี้ทุกหน่วยงานภายในท้องถิ่นก็สามารถนำข้อมูลไปใช้ในการบริหารงานและ พัฒนาท้องถิ่นได้อย่างมีประสิทธิภาพ โดยมีรายละเอียดในการดำเนินการดังนี้
1.1 จัดทำแผนแม่บท
ดำเนินการจัดทำแผนที่แม่บทระบบดิจิตอล (Digital System) เพื่อใช้เป็นข้อมูลเบื้องต้นในการการสำรวจข้อมูลภาคสนามโดยรวบรวมแปลงที่ดิน ในพื้นที่ทั้งหมดจากเอกสารต่างๆจากสำนักงานที่ดิน และหน่วยงานที่เกี่ยวข้อง โดยแยกเป็นชั้นข้อมูลต่าง ๆ และต้องสามารถเชื่อมโยงเข้ากับโปรแกรมแผนที่ภาษีและทะเบียนทรัพย์สินได้อีก ด้วย
1.      จัดทำแผนที่แสดงแนวเขตปกครองและมีชื่อเลขระวางกำกับระวาง
2.      คัดลอก ระวางที่ดินทุกประเภทที่อยู่ในเขตปกครองโดยสำเนาเท่าต้นฉบับจริงทุกระวางรวม ทั้งระวางขยายจากสำนักงานที่ดิน
3.      กวาดภาพข้อมูลระวางที่ดินที่ได้คัดลอกจาก สำนักงานที่ดิน
4.      ปรับแก้ความถูกต้องทางเรขาคณิตและทางพิกัดภูมิศาสตร์ของ ระวางที่ดิน เพื่อนำมาเชื่อมต่อ(แสดง)ในระบบสารสนเทศทางภูมิศาสตร์ให้เป็นผืนเดียวกัน
5.      จัดทำรูปแสดงแผนที่ดิจิตอล (รูปแปลงที่ดิน) จากระวางที่ดินซึ่งเป็นข้อมูลเชิงพื้นที่ให้สามารถอ้างอิงตำแหน่งพิกัดทาง ภูมิศาสตร์
6.      จัดทำรูปแสดงแผนที่ดิจิตอลแบ่งเขตปกครองในระวางเป็นแบบรายเขต (Zone) ตามความเหมาะสมโดยอ้างอิงแนวทางจากคู่มือการจัดทำแผนที่ภาษีและทะเบียน ทรัพย์สิน
7.      จัดทำรูปแสดงแผนที่ดิจิตอลแบ่งเขตในระวางเป็นแบบรายเขตย่อย (Block) ตามความเหมาะสมโดยอ้างอิงแนวทางจากคู่มือการจัดทำแผนที่ภาษีและทะเบียน ทรัพย์สิน
8.      จัดทำรูปแปลงที่ดินพร้อมหมุดดิน(ที่ดินที่มีเอกสารสิทธิเป็นโฉนด )เท่าขนาดระวางที่ดินต้นฉบับ และลงเลขประจำแปลงที่ดิน (Lot) แต่ละแปลงภายในเขตย่อยทั้งหมด และแสดงรายละเอียดรูปแปลงที่ดิน เลขประจำแปลงที่ดิน (Lot) เลขที่ดิน และเลขที่ระวาง
1.2 จัดทำแผนที่ทางกายภาพ
ดำเนินการจัดทำแผนที่ดิจิตอลข้อมูลกายภาพหรือข้อมูลฐาน(Base Map)จากข้อมูลภาพถ่ายทางอากาศ หรือข้อมูลภาพดาวเทียมรายละเอียดสูงหรือข้อมูลอื่นที่มีคุณภาพเทียบเท่าหรือ ดีกว่า เพื่อนำไปประยุกต์ใช้กับหน่วยงานอื่นๆ ครอบคลุมพื้นที่ปกครอง
1.      จัดหาข้อมูลภาพถ่ายทางอากาศสีหรือข้อมูลภาพถ่ายจาก ดาวเทียมรายละเอียดสูงครอบคลุมพื้นที่ปกครอง
2.      ปรับแก้ความถูกต้องทาง เรขาคณิตและทางพิกัดภูมิศาสตร์ของภาพถ่ายทางอากาศสีหรือข้อมูลภาพถ่ายจากดาว เทียมรายละเอียดสูง
3.      นำเข้าสู่ระบบสารสนเทศทางภูมิศาสตร์
4.      จัดทำแผนที่ ข้อมูลกายภาพ(Base Map) จากภาพที่ได้นำเข้าสู่ระบบสารสนเทศทางภูมิศาสตร์ ประกอบด้วยชั้นข้อมูลดังนี้ ชั้นข้อมูลตารางกริด (Grid) ชั้นข้อมูลโรงเรือนหรือสิ่งปลูกสร้างอื่นๆ(Building) ชั้นข้อมูลทางน้ำ(หรือแหล่งน้ำ) เส้นทางคมนาคม(ถนน) ทั้งเส้นกึ่งกลางและเส้นขอบ
5.      จัดทำแบบพิมพ์(Print Template)แผนที่แม่บทในรูปแบบข้อมูลเชิงตัวเลข(Digital Map) เมื่อต้องการพิมพ์แผนที่แม่บทให้มีรูปแบบตามที่ระเบียบกระทรวงมหาดไทยว่า ด้วยแผนที่ภาษีและทะเบียนทรัพย์สินขององค์กรปกครองส่วนท้องถิ่น พ.ศ. 2550 กำหนด
1.3 จัดทำข้อมูลทะเบียนทรัพย์สิน
จัดทำและนำเข้าข้อมูลทะเบียนทรัพย์สิน สู่ระบบสารสนเทศงานทะเบียนทรัพย์สิน เพื่อนำมาใช้ในการเพิ่มประสิทธิภาพในการบริการรับชำระภาษี
1.      นำเข้าข้อมูลทะเบียนทรัพย์สินสู่ระบบสารสนเทศงานทะเบียนทรัพย์สิน
2.      สำรวจและปรับปรุงข้อมูลทะเบียนทรัพย์สินครอบคลุมพื้นที่ ตามข้อมูลที่คัดลอกมาจากสำนักงานที่ดิน
3.      ปรับปรุงแผนที่ภาษีในระบบสารสนเทศทางภูมิศาสตร์(จากการสำรวจภาคสนาม)
4.      จัดเก็บข้อมูลทะเบียนทรัพย์สินที่ได้จากการสำรวจข้อมูลภาคสนามทั้งหมด รวมทั้งเอกสารสิทธิ์ที่ดินที่คัดลอกมาแต่ละแปลงที่ดินมาไว้ด้วยกัน โดยเรียงตามเลขประจำแปลงที่ดิน (Lot) ในแต่ละเขตย่อย (Block)
5.      บันทึกข้อมูลทั้งหมดในฐานข้อมูลระบบสารสนเทศทางภูมิศาสตร์ จัดทำแบบพิมพ์ (Print Template) แผนที่ภาษี(ผ.ท.7) เมื่อต้องการพิมพ์แผนที่ภาษีในรูปแบบข้อมูลเชิงตัวเลข(Digital Map) ให้มีรูปแบบตามที่ระเบียบกระทรวงมหาดไทยว่าด้วยแผนที่ภาษีและทะเบียน ทรัพย์สินขององค์กรปกครองส่วนท้องถิ่น พ.ศ. 2550 กำหนด

รายละเอียดเพิ่มเติม