thaicosmic.com

หนัง

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

HowTo: Autostart Hamachi at Boot

I've seen a few requests for this info, and I've looked for it myself. Many people use the hamachi vpn client. In windows, you can set it to start on boot. That was once a little trickier in linux, but no longer. This page at the NeoHide site worked for me on Feisty Fawn (and I posted about it on a thread here). I'm not sure if the directions originated at NeoHide or someplace else, because I've found them in a few place.

But anyway, here are the directions:
  1. Create the start-up script for hamachi, as shown below. Remember to change the user name "your name" (line 5) to your system user name in Ubuntu (or your linux distribution). Call the script "hamachi."
    #!/bin/bash
    ###################################
    ### Start-up script for Hamachi ###
    ###################################
    USER=your name
    case "$1" in
    start)
    /sbin/tuncfg
    /bin/su - $USER -c "hamachi start"
    ;;
    stop)
    /bin/su - $USER -c "hamachi stop"
    ;;
    restart|force-reload)
    /bin/su - $USER -c "hamachi start"
    /bin/su - $USER -c "hamachi stop"
    ;;
    *)
    exit 1
    ;;
    esac
    exit 0
  2. Make the script executable:
    chmod +x hamachi
  3. Move the script to /etc/init.d/ directory:
    sudo mv hamachi /etc/init.d
  4. Finally, link the script to the appropriate run-level for booting up the system:
    sudo ln -s /etc/init.d/hamachi /etc/rc2.d/S99hamachi
    sudo ln -s /etc/init.d/hamachi /etc/rc2.d/K99hamachi
    It seems 2 is the default level for Debian and Ubuntu. In most other distribution, it is 5.
  5. Finally, reboot your system and Hamachi will be automatically loaded and connected to the server.

No Internet When Using Static IP

sudo gedit /etc/network/interfaces 
Code:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.3
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8 192.168.0.1
Get the interface to re-read the file:
Code:
sudo ifdown eth0 && sudo ifup eth0
Check:
Code:
ping -c3 www.google.com
ที่มา : http://ubuntuforums.org/showthread.php?t=2081392 โดย chili555

วันอาทิตย์ที่ 26 พฤษภาคม พ.ศ. 2556

Flexible image เปลี่ยนขนาดภาพตามขนาดหน้าจอ

รูปภาพในเว็บไซต์เราก็อยากให้หดขยายตามหน้าจอด้วย
คำสั่งที่ต้องใช้
     กำหนด CSS ให้ความกว้างสุดของ image เป็น 100%
           img{ max-width:100%; border:none;}
     ครอบรูปด้วย div และกำหนดความกว้างของ div เป็นค่าเปอร์เซ็นต์
          <div class="pic"%><img src="pic1.jpg" /%></div>
           .pic{ float:left; width:31.2%; margin:0 1% 0 1%;}

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

คุณสมบัติ 'อนุญาตให้เพิ่ม' (AllowAdditions) VBA

http://office.microsoft.com/th-th/access-help/HA001232715.aspx

นำไปใช้กับ

วัตถุฟอร์ม (Form)

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

การตั้งค่า

คุณสมบัติ อนุญาตให้เพิ่ม ใช้การตั้งค่าดังต่อไปนี้
การตั้งค่าVISUAL BASICคำอธิบาย
ใช่True (ค่าเริ่มต้น) ผู้ใช้สามารถเพิ่มระเบียนใหม่ได้
ไม่ใช่Falseผู้ใช้ไม่สามารถเพิ่มระเบียนใหม่ได้
คุณสามารถตั้งค่าคุณสมบัติ อนุญาตให้เพิ่ม โดยใช้แผ่นคุณสมบัติ แมโคร หรือโค้ดของ Visual Basic for Applications (VBA) ของฟอร์มได้

ข้อสังเกต

ตั้งค่าคุณสมบัติ อนุญาตให้เพิ่ม เป็น ไม่ใช่ เพื่ออนุญาตให้ผู้ใช้ดูหรือแก้ไขระเบียนที่มีอยู่แต่ไม่สามารถเพิ่มระเบียนใหม่ได้
ถ้าต้องการป้องกันการเปลี่ยนแปลงในระเบียนที่มีอยู่ (ทำให้ฟอร์มเป็นแบบอ่านอย่างเดียวเท่านั้น) โดยตั้งค่าคุณสมบัติ อนุญาตให้เพิ่ม,อนุญาตให้ลบ และ อนุญาตให้แก้ไข เป็น ไม่ใช่ นอกจากนี้คุณยังสามารถทำให้ระเบียนเป็นแบบอ่านอย่างเดียวได้โดยการตั้งค่าคุณสมบัติ ชนิดชุดระเบียน เป็น Snapshot ได้เช่นกัน
ถ้าคุณต้องการเปิดฟอร์มเพื่อการป้อนข้อมูลเท่านั้น ให้ตั้งค่าคุณสมบัติ การป้อนข้อมูล ของฟอร์มเป็น ใช่
เมื่อคุณสมบัติ อนุญาตให้เพิ่ม ถูกตั้งค่าเป็น ไม่ใช่ คำสั่ง สร้างระเบียน ภายใต้ ระเบียน บนแท็บ ข้อมูล จะไม่พร้อมใช้งาน
 หมายเหตุ   เมื่อใช้อาร์กิวเมนต์ 'โหมดข้อมูล' ของแอคชัน OpenForm นั้น Microsoft Office Access 2007 จะเขียนทับการตั้งค่าคุณสมบัติของฟอร์มจำนวนหนึ่ง ถ้าอาร์กิวเมนต์ 'โหมดข้อมูล' ของแอคชัน OpenForm ถูกตั้งค่าไว้เป็น แก้ไข Access จะเปิดฟอร์มด้วยการตั้งค่าคุณสมบัติดังต่อไปนี้
  • อนุญาตให้แก้ไข — ใช่
  • อนุญาตให้ลบ — ใช่
  • อนุญาตให้เพิ่ม — ใช่
  • การป้อนข้อมูล — ไม่ใช่
เมื่อต้องการป้องกันไม่ให้แอคชัน OpenForm เขียนทับการตั้งค่าคุณสมบัติที่มีอยู่ใดๆ เหล่านี้ ให้ละเว้นการตั้งค่าอาร์กิวเมนต์ 'โหมดข้อมูล' เพื่อให้ Access สามารถใช้การตั้งค่าคุณสมบัติที่กำหนดไว้โดยฟอร์มได้

ตัวอย่าง

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

Sub ToggleControl(frm As Form)
    Dim ctl As Control
    Dim intI As Integer, intCanEdit As Integer
    Const conTransparent = 0
    Const conWhite = 16777215
    For Each ctl in frm.Controls
        With ctl
            Select Case .ControlType
                Case acLabel
                    If .SpecialEffect = acEffectShadow Then
                        .SpecialEffect = acEffectNormal
                        .BorderStyle = conTransparent
                        intCanEdit = True
                    Else
                        .SpecialEffect = acEffectShadow
                        intCanEdit = False
                    End If
                Case acTextBox
                    If .SpecialEffect = acEffectNormal Then
                        .SpecialEffect = acEffectSunken
                        .BackColor = conWhite
                    Else
                        .SpecialEffect = acEffectNormal
                        .BackColor = frm.Detail.BackColor
                    End If
            End Select
        End With
    Next ctl
    If intCanEdit = IFalse Then
        With frm
            .AllowAdditions = False
            .AllowDeletions = False
            .AllowEdits = False
        End With
    Else
        With frm
            .AllowAdditions = True
            .AllowDeletions = True
            .AllowEdits = True
        End With
    End If
End Sub
เพิ่มเติม
    DoCmd.OpenForm "frmPerson", , , stLinkCriteria
    Forms!frmPerson.AllowAdditions = False

tips Ubuntu

fix ip ubuntu จาก
http://dsin.blogspot.com/2008/10/ubuntu-fix-ip.html
แก้ไฟล์ /etc/network/interfaces
จะยัดกี่ ip ลงในเครื่องก็ยัดไป [ เราสามารถใช้ eth0:0, eth0:1, eth0:2, eth0:N (ได้มากสุด 254). ( ref ) ]

NOTE : gateway คือ IP address ของ router เช่น ถ้าเป็น linksys default คือ 192.168.1.1

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.41.170.105
netmask 255.255.255.0
dns     192.41.170.15
gateway 192.41.170.23
auto eth0:1
iface eth0:1 inet static
address 192.41.170.101
netmask 255.255.255.0
auto eth0:2
...


หลังจากนั้น

?
1
$ sudo /etc/init.d/networking restart


ถ้าเป็น DHCP, ดูตัวอย่างข้างล่าง

?
1
2
3
4
5
6
7
8
9
10
auto lo
iface lo inet loopback
# primary network interface
auto eth0
iface eth0 inet dhcp
# address 192.168.122.2
# netmask 255.255.255.0
# network 192.168.122.0


ถ้าเป็น printer หรืออะไร ที่มันต้อง fix ip
ก็ fix ip ที่ไม่อยู่ในช่วง DHCP
แต่ต้อง Subnet Mask และ Default Gateway เดียวกัน
เช่น ถ้าของ linksys ก็ใส่เป็น 192.168.1.2, 192.168.1.3, ... ต่อจาก 192.168.1.1 ซึ่งเป็น ip ของ router ได้เลย

ถ้า fix ip แล้วมีปัญหา แบบว่า เข้าทาง dns ไม่ได้ แต่เข้าทาง ip ได้

error ประมาณนี้

?
1
ping: unknown host


ให้ลองเข้าไปเช็ค ไฟล์ /etc/resolv.conf ซึ่งเป็นที่เก็บ dns ว่า มันชี้ไปที่ router หรือไม่
ถ้าไม่มี ก็ใส่ลงไปซะ

/etc/resolv.conf
?
1
2
# Generated by NetworkManager
nameserver 192.168.1.1


NOTE : ถ้า เป็น DHCP เจ้าตัว NetworkManager จะเป็นคนเขียนไฟล์นี้ขึ้นมาเอง โดยไปเอามาจาก DNSServer ของ router น้ะจ้ะ

ref : watchingthenet