2010年12月30日 星期四

縣內備份程式

#! /usr/bin/perl
## 學藉系統備份程式perl版 by 二林國小 村仔 2009.07;2010.07修正
## 功用:備份、FTP備份檔到遠方主機、更新學籍系統、更新系統
## 適用環境 ubuntu 主機。

$conf{'chktime'}='Y';##要不要進行校時
$conf{'bakup'}='Y';##要不要備份某些目錄, 設定值 Y/N
$conf{'ftp'}='Y';##要不要透過ftp將資料送到遠方主機 設定值 Y/N
$conf{'upsfs'}='Y';##要不要更新學藉系統, 設定值 Y/N
$conf{'upSYS'}='Y';##要不要更新系統, 設定值 Y/N

#每類型備份檔案最多數量
$lim=12;

## 學藉系統路徑,保留最後斜線
$conf{'sfspath'}='/home/webadmin/html/sfs3/';

##  欲備份目錄及備份檔的前置字元,注意不要破壞格式,可以自行增添多組
##  $BB{前置字元}='備份目錄';不須有後面的斜線
$BB{'SFS_DB'}="/var/lib/mysql/sfs3";
$BB{'SFS_data'}="/home/webadmin/html/sfs3/data";

$ftp{'host'}='192.168.11.6';##遠方主機
$ftp{'path'}='BB/';##登入後檔案放置目錄
$ftp{'user'}='edu';##遠方主機帳號
$ftp{'pass'}='123';##遠方主機密碼

## 學藉系統下載網址
$conf{'url'}='http://sfscvs.tcc.edu.tw/sfs_stable.tar.gz';


#備份檔放置目錄
$BAK="/home/webadmin/baksfs/";

##----------以下不用修改----------------###

##關閉防火牆
#`/etc/init.d/firewall stop`;

###----0.校時----###
if ($conf{'chktime'} eq 'Y'){
  `/usr/sbin/ntpdate  time.stdtime.gov.tw   > /dev/null `;
  `/usr/sbin/ntpdate  time.stdtime.gov.tw   > /dev/null `;
  `/usr/sbin/ntpdate  time.stdtime.gov.tw   > /dev/null `;
}



###----1.檢查備份目錄存在否----###
if (!-e $BAK) {
  `/bin/mkdir -p $BAK`;
  `/bin/sync `;
  `/bin/sync `;
}

###----2.關閉apache及MySQL----###
  `/etc/init.d/apache2  stop `;
  `/etc/init.d/mysql  stop `;



###----3.設定作業時間字串----###

$TT=`date "+%Y%m%d_%H%M%S"`;
## perl用chomp函數去掉結尾的CR/LF
chomp $TT;


##-----4.備份檔案作業、刪除多餘備份檔-----------#####
if ($conf{'bakup'} eq 'Y'){

while (($key, $value)=each %BB) {
 $fi=$BAK.$key."_".$TT.".tgz";
 @total = split('/',$value);
 $data=pop @total;
 $path = join '/' , @total;
 `cd $path ;/bin/tar -zcf $fi  $data `;
 `/bin/sync `;
 `/bin/sync `;
  }
   ##刪除多餘備份檔作業
while (($key, $value)=each %BB) {
 
 $num=`/bin/ls $BAK$key* | /usr/bin/wc -l`;
 
 ## perl用chomp函數去掉結尾的CR/LF
 chomp $num;
 
 if ($num > $lim) {
  $delnum=$num-$lim;
  @dfiles=`/bin/ls $BAK$key* `;
  $i=0;
  while ($i < $delnum) {
  chomp $dfiles[$i];
  unlink $dfiles[$i]  if -e $dfiles[$i];
  $i++;
  }
 }
  }

}


##-----5.送檔案到ftp主機(只送本次)-----------#####
if (($conf{'ftp'} eq 'Y') && ($conf{'bakup'} eq 'Y' ) ){
  while (($key, $value)=each %BB) {
 $fi=$BAK.$key."_".$TT.".tgz";
 `/usr/bin/ncftpput -u $ftp{user} -p $ftp{pass} $ftp{host} $ftp{path} $fi `;
   }
}

##-----6.更新學籍系統-----------#####
if ($conf{'upsfs'} eq 'Y'){
  `cd /tmp;/usr/bin/wget -q $conf{'url'} `;
  `/bin/sync `;
  `/bin/sync `;
  
  # 判斷檔案是否存在
  if (-e '/tmp/sfs_stable.tar.gz' ) {  
  `cd /tmp;/bin/tar zxf sfs_stable.tar.gz`;
  `/bin/rm  /tmp/setup.sh`;
  `/bin/rm  /tmp/sfs3_stable/install.php`;
  `/bin/cp -a /tmp/sfs3_stable/* $conf{'sfspath'} `;
  `/bin/rm  /tmp/sfs_stable.tar.gz`;
  `/bin/rm -rf /tmp/sfs3_stable`;
  `/bin/sync `;
  `/bin/sync `;
  }
}


##-----7.更新系統檔案-----------#####

if ($conf{'upSYS'} eq 'Y'){
  `/usr/bin/apt-get  update  > /dev/null `;
  `/usr/bin/apt-get -y upgrade  > /dev/null `;
  ## `/usr/bin/apt-get -y dist-upgrade  > /dev/null `;
  `/usr/bin/apt-get autoclean  > /dev/null `;
  `/bin/sync `;
  `/bin/sync `;
}

##-----8.啟動apache及 MySQL-----------#####
  `/etc/init.d/apache2  start `;
  `/etc/init.d/mysql  start `;
#  `/etc/init.d/firewall start`;

手動備份學籍資料

------------------------------------
/etc/init.d/firewall stop
/etc/init.d/apache2  stop
/etc/init.d/mysql  stop
cd /home/webadmin/html/sfs3
tar zcvf /home/webadmin/html.tgz data
cd /var/lib/mysql/
tar zcvf /home/webadmin/mysql.tgz sfs3
---------------------
cd /usr/bin/
ncftp -u 使用者 -p 密碼 163.23.115.
put /home/webadmin/html.tgz
put /home/webadmin/mysql.tgz

cd /home/webadmin/
rm html.tgz
rm mysql.tgz

/etc/init.d/apache2  start
/etc/init.d/mysql  start
/etc/init.d/firewall start
--------------------------------------

2010年12月29日 星期三

Could not reliably determine the server's fully qualified domain name

Could not reliably determine the server's fully qualified domain name 問題
vi /etc/apache2/apache2.conf
ServerName 127.0.0.1
sudo /etc/init.d/apache2 restart


第一次手動
sudo apt-get update
sudo apt-get dist-upgrade -y
sudo dpkg-reconfigure -a

2010年12月28日 星期二

備份學籍

cd /bin/
./ACFSsfsBK.txt

./upsfs
./upSYS
□將另一部電腦的資料填入
$ftp{'host'}='192.168.1.4';##遠方主機
$ftp{'path'}='BB/';##登入後檔案放置目錄
$ftp{'user'}='edu';##遠方主機帳號
$ftp{'pass'}='stu123';##遠方主機密碼


將要定時服務功能的參數改為Y,並設定備份檔最大數量
$conf{'chktime'}='Y';##要不要進行校時
$conf{'bakup'}='Y';##要不要備份某些目錄, 設定值 Y/N
$conf{'ftp'}='Y';##要不要透過ftp將資料送到遠方主機 設定值 Y/N
$conf{'upsfs'}='Y';##要不要更新學藉系統, 設定值 Y/N
$conf{'upSYS'}='Y';##要不要更新系統, 設定值 Y/N

學籍更新到5

http://163.23.89.100/free/viewthread.php?tid=754&extra=page%3D1

學籍系統 更新到sfs5

學籍設定檔

sfs3/include/config.php

檢查密碼與mysql是否一致

/var/www/html/sfs3  要改為=>/var/www/sfs3
 /var/www/html/sfs3/data/==>/var/www/sfs3/data/

Debain/Ubuntu 網頁根目錄在/var/www/
Redhat/MDK/CentOS 網頁根目錄在/var/www/html

2010年12月23日 星期四

能量倍增(抬腳)

一、在抬腳時前、後需各喝300西西溫開水,心平氣和保持輕鬆,自然呼吸、不可憋氣,靠腰力及丹田氣力來支撐身體下半部所受之酸。使身體與大腿成九十度、大腿與小腿成九十度。支撐至少十五分鐘以上。
二、在抬腳時血液會迅速流回肝、腎,給予重新解毒排毒,此時新陳代謝增加,腰部以下會有強烈極酸的反應,為了排解瞬間增加毒素,人體腦下垂體自會分泌激素,激發潛能,加強排毒,最後在流汗中,將毒素予以排出。


三、在抬腳時可引濁氣下行排出,升清降濁正氣倍增,體內正常細胞大曾活躍,癌細胞自然死亡。


四、在抬腳時神闕(肚臍)及命門同運氣,打通任督氣血暢行無阻,毛細孔擴張,增加皮膚呼吸及代謝作用,因丹田訓練呼吸,減少肺部負擔胸腔之濁氣自可順利排出,解決心胸之鬱悶、心胸開朗氣沉丹田、心臟恢復正常功能,心理壓大降低、血壓隨之穩定。


五、在抬腳時因流汗,自可將體內酸性毒素排出,血脂肪自然燃燒。脾主四肢,所以血糖可以穩定,改善脾的功能,人的性情自然溫順和譪可親。


六、在抬腳時,大小腸自然會蠕動,膀胱更有力,男女生理功能更是增強奏效,何來秘便、月事不順、攝護腺腫大等失調症。胃腸消化、排便正常,何來肥瘦不均,胃口不開呢?


七、在抬腳時,脊椎保持水平,全身肌肉富有彈性,氣血順暢,各關節自會增生骨髓,脊椎兩旁神經恢復平常傳導作用,何來關節退化,或長骨刺的名稱,壓迫神經的病痛呢?


八、在抬腳時,因內臟全身運作,腦內革命,心理生理調適正常,何來睡眠障礙症。頭腦清醒、智慧、記憶力當然會增加,這是真善美的表現。激發意志力及吃苦耐力,方能突破酸的痛楚、障礙,達到流汗的過程,發揮抬腳的最終目:抬的愈久,活的愈久。

 

2010年12月21日 星期二

freebasic顯示中文

#ifdef __FB_WIN32__
# define unicode
# include once "windows.bi"
#endif

const LANG = "Chinese"
    dim helloworld as wstring * 20 => "你好,世界!"

    print """Hello World!"" in "; LANG; ": "; helloworld

#ifdef __FB_WIN32__
    messagebox( 0, helloworld, """Hello World!"" in " & LANG & ":", MB_OK )
#endif

freebasic秀一張圖

事先準備一張p1.bmp圖檔

Screen 18, 32
Cls
BLoad "p1.bmp"
Sleep

秀一張48x48的圖
ScreenRes 320, 200, 32
Dim myImage As Any Ptr = ImageCreate( 48, 48 )
BLoad "48.bmp", myImage
Put (10,10), myImage
ImageDestroy( myImage )
Sleep

Freebasic編輯軟體

linux環境下可選 Geany

畫圓

' 設定 640x480 顯示模式, 256 colors
Screen 18

' 畫圓
Circle (320, 240), 200, 15

' 畫橢圓並填色
Circle (320, 240), 200, 2, , , 0.2, F

' 畫一個弧
Circle (320, 240), 200, 4, 0.83, 1.67, 3

Sleep

slax繁體模組

http://www.slax.org/modules.php?search=traditional+chinese&category=

slax6.12-freebasic

slax 6 需要套件
glibc-solibs-2.9-i486-3.lzm
libfreebasic-0.18.2b-1-i386.lzm
freebasic-0.21.0-linux.lzm

2010年12月20日 星期一

pyinstaller

http://www.pyinstaller.org/

需要套件
build-essential
python-dev

終端機下指令
 apt-get install build-essential python-dev

cd /usr/bin
mkdir pyinstaller
cd pyinstaller

cp /home/使用者/pyinstaller-1.4.tar.bz2 /usr/bin/pyinstaller

tar xvf pyinstaller-1.4.tar.bz2
cd pyinstaller-1.4
cd  source/linux
python Make.py #[-n|-e]
make
成功的話會看到
support/load/run
support/load/run_d

cd  /usr/bin/pyinstaller/pyinstaller-1.4/
./Configure.py
成功建立 config.dat

mkdir test
cd test
vi test.py
print"cat3"
存檔
cd ..

python Makespec.py  test/test.py


產生出一個 test.spec 的檔案

python  Build.py test/test.spec

就可以建立出一個執行檔
位置在/build/pyi.linux2/test/

測試一下

./test

2010年12月19日 星期日

現在時間

import Tkinter
import time

curtime = ''
clock = Tkinter.Label()
clock.pack()

def tick():
    global curtime
    newtime = time.strftime('%H:%M:%S')
    if newtime != curtime:
        curtime = newtime
        clock.config(text=curtime)
    clock.after(200, tick)

tick()
clock.mainloop()

滑鼠畫圓2

from Tkinter import *

class PaintBoxFrame ):
   def __init__self ):
      Frame.__init__self )
      self.packexpand = YES, fill = BOTH )
      self.master.title"A simple paint program" )
      self.master.geometry"300x150" )

      self.message = Labelself, text = "Drag the mouse to draw" )
      self.message.packside = BOTTOM )
      
      create Canvas component
      self.myCanvas = Canvasself )
      self.myCanvas.packexpand = YES, fill = BOTH )

      # bind mouse dragging event to Canvas
      self.myCanvas.bind"<B1-Motion>", self.paint )

   def paintself, event ):
      x1, y1 = event.x - )event.y - )
      x2, y2 = event.x + )event.y + )
      self.myCanvas.create_ovalx1, y1, x2, y2, fill = "red" )
   
def main():
   PaintBox().mainloop()

if __name__ == "__main__":
   main()

滑鼠畫圓

from Tkinter import *
trace = 

class CanvasEventsDemo: 
    def __init__(self, parent=None):
        canvas = Canvas(width=300, height=300, bg='beige') 
        canvas.pack()
        canvas.bind('<ButtonPress-1>', self.onStart)   
        canvas.bind('<B1-Motion>',     self.onGrow)     
        canvas.bind('<Double-1>',      self.onClear)     
        canvas.bind('<ButtonPress-3>', self.onMove)     
        self.canvas = canvas
        self.drawn  = None
        self.kinds = [canvas.create_oval, canvas.create_rectangle]
    def onStart(self, event):
        self.shape = self.kinds[0]
        self.kinds = self.kinds[1:+ self.kinds[:1]      
        self.start = event
        self.drawn = None
    def onGrow(self, event):                           
        canvas = event.widget
        if self.drawn: canvas.delete(self.drawn)
        objectId = self.shape(self.start.x, self.start.y, event.x, event.y)
        if trace: print objectId
        self.drawn = objectId
    def onClear(self, event):
        event.widget.delete('all')                     
    def onMove(self, event):
        if self.drawn:                                   
            if trace: print self.drawn
            canvas = event.widget
            diffX, diffY = (event.x - self.start.x)(event.y - self.start.y)
            canvas.move(self.drawn, diffX, diffY)
            self.start = event

if __name__ == '__main__':
    CanvasEventsDemo()
    mainloop()

           

功能鍵

from Tkinter import *

def displayHelp(event):
    print 'hlp', event.keysym
    
def sayKey(event):
    print 'say',event.keysym, event.char
    
def printWindow(event):
    print 'prt', event.keysym
    
def cursor(*args):
    print 'cursor'

def unbindThem(*args):
    print 'Gone...'
    root.unbind_all('<F1>')
    root.unbind_class('Entry', '<KeyPress>')
    root.unbind('<Alt_L>')
    root.unbind('<Control-Shift-Down>')

root = Tk()

frame = Frame(root, takefocus=1, highlightthickness=2)
text  = Entry(frame, width=10, takefocus=1, highlightthickness=2)

root.bind_all('<F1>', displayHelp)
text.bind_class('Entry', '<KeyPress>', lambda e: sayKey(e))
root.bind('<Alt_L>', printWindow)
frame.bind('<Control-Shift-Down>' , cursor)
text.bind('<Control-Shift-Up>', unbindThem)

text.pack()
frame.pack()
text.focus_set()
root.mainloop()

文字輸入 Entry

import Tkinter
root = Tkinter.Tk()
tv = Tkinter.StringVar()
Tkinter.Label(textvariable=tv).pack()

Tkinter.Entry(textvariable=tv).pack()

tv.set('')
Tkinter.Button(text="Exit", command=root.quit).pack()
Tkinter.mainloop()
print tv.get()

key released

from Tkinter import *

class KeyDemoFrame ):
   def __init__self ):
      Frame.__init__self )
      self.packexpand = YES, fill = BOTH )
      self.master.title"Keystroke Events" )
      self.master.geometry"350x50" )

      self.message1 = StringVar()
      self.line1 = Labelself, textvariable = self.message1 )
      self.message1.set"Type any key or shift" )
      self.line1.pack()

      self.message2 = StringVar()
      self.line2 = Labelself, textvariable = self.message2 )
      self.message2.set"" )
      self.line2.pack()

      self.master.bind"<KeyRelease>", self.keyReleased )

   def keyReleasedself, event ):
      self.message1.set"Key released: " + event.char )
      self.message2.set"This key is not left shift" )
   
def main():
   KeyDemo().mainloop()

if __name__ == "__main__":
   main()

key pressed

from Tkinter import *

class KeyDemoFrame ):
   def __init__self ):
      Frame.__init__self )
      self.packexpand = YES, fill = BOTH )
      self.master.title"Keystroke Events" )
      self.master.geometry"350x50" )

      self.message1 = StringVar()
      self.line1 = Labelself, textvariable = self.message1 )
      self.message1.set"Type any key or shift" )
      self.line1.pack()

      self.message2 = StringVar()
      self.line2 = Labelself, textvariable = self.message2 )
      self.message2.set"" )
      self.line2.pack()

      self.master.bind"<KeyPress>", self.keyPressed )

   def keyPressedself, event ):
      self.message1.set"Key pressed: " + event.char )
      self.message2.set"This key is not left shift" )
   
def main():
   KeyDemo().mainloop()

if __name__ == "__main__":
   main()

秀Gif 圖

from Tkinter import *
root = Tk()
root.title('Canvas')
canvas = Canvas(root, width =400, height=400)
img = PhotoImage(file='1.gif')
canvas.create_image(150,120, image=img, anchor=CENTER)
canvas.pack()
root.mainloop()

test1

import pygame, sys,os
from pygame.locals import *

pygame.init()

window = pygame.display.set_mode((468, 60))
pygame.display.set_caption('Monkey Fever')
screen = pygame.display.get_surface()
monkey_head_file_name = os.path.join("data","chimp.bmp")
monkey_surface = pygame.image.load(monkey_head_file_name)
screen.blit(monkey_surface, (0,0))
pygame.display.flip()

def input(events):
   for event in events:
      if event.type == QUIT:
         sys.exit(0)
      else:
         print event

while True:
   input(pygame.event.get())

陣列

b[4:]     第四個陣列值到最後
b[:4]     第四個之前的陣列值
b[4:6]   第4個到第6個
b[-1]    最後一個
b[1:-1] 去除首尾

(1,2)+(3,4)
>>(1,2,3,4)

(1,2)*2
>>(1,2,1,2)

pil秀圖

會以內建的秀圖軟體秀出圖片
import Image
im = Image.open("1.jpg")
im.show()
#im.rotate(45).show()    #旋轉45度
----------------------------
開啟模式
‧1 (1-bit pixels, black and white, stored with one pixel per byte)
‧L (8-bit pixels, black and white)
‧P (8-bit pixels, mapped to any other mode using a colour palette)
‧RGB (3x8-bit pixels, true colour)
‧RGBA (4x8-bit pixels, true colour with transparency mask)
‧CMYK (4x8-bit pixels, colour separation)
‧YCbCr (3x8-bit pixels, colour video format)
‧I (32-bit signed integer pixels)
‧F (32-bit floating point pixels)
---------------------------------

重要套件

    *PIL - Python Imaging Library,圖形處理專用函式
    * Numpy - 多元陣列、基本線性代數、基本傅立葉轉換等函式
    *PyOpenGL - 在Python使用OpenGL的API來繪圖
    * PyInstaller - 把你的程式碼針對Windows、Linux、Mac OS X,包裝為一個獨立執行檔
    * cz_Freeze - 把你的程式碼針對Windows、Linux,包裝為一個獨立執行檔
    *py2exe - 把你的程式碼打包為一個win32的執行檔

Python Image Library

Python Image Library
好用的圖形函式庫


# 支援格式 JPEG, PNG, BMP, GIF, TIFF。
# 基本的影像處理:裁切、平移、旋轉、改變尺寸、調置 (transpose)、剪下與貼上。
# 強化圖形:亮度、色調、對比、銳利度。
# 色彩處理。
# 濾鏡 (filter):濾鏡可以用在 Python 程式裡面,提供批次化處理的能力。
# PIL 可以在影像中繪圖製點、線、面、幾何形狀、填滿、文字。

-------------------------------------------
轉檔練習  jpg轉png

from glob import glob
from os.path import splitext
import Image

jpglist = glob( "python_imaging_pix/*.[jJ][pP][gG]" )

for jpg in jpglist:
    im = Image.open(jpg)
    png = splitext(jpg)[0]+".png"
    im.save(png)
    print png

2010年12月18日 星期六

wxpython框架

frame.Show(False)  # 使框架隱藏
frame.Show(True)   # True是默認值,使框架可見.
frame.Hide()       # 等同於frame.Show(False)

中文顯示

chinese = u"中文!"
print chinese


--------------------------------------------------------
加入 wxpython 的練習,建立一個中文標題視窗
-------------------------------------------------------
mytitle = u"練習"
import wx # 導入wxPython
class App(wx.App):#子類化wxPython
    def OnInit(self): #定義一個應用程序的初始化方法
        frame = wx.Frame(parent=None, title=mytitle)
        frame.Show()
        return True
app = App() #創建一個應用程序類的實例
app.MainLoop() #進入這個應用程序的主事件循環

-------------------------------------
讀取utf8檔案
------------------------------------------
import codecs
fileObj = codecs.open( "someFile", "r", "utf-8" )
u = fileObj.read() # Returns a Unicode string from the UTF-8 bytes in the file
-------------------------------------------------------------
以萬用碼Unicode編寫python

special comment in the first or second lines of your script:
# -*- coding: utf-8 -*-

python ide

DrPtyhon
BOa Constructor
spe 提供linux版本
PyScripter
WingWare
Eric
Geany


 

2010年12月16日 星期四

helloworld.py

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()


執行
python helloworld.py

test1

#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton hello("Hello world!");
hello.show();
return app.exec();
}

然後依序執行以下指令,Makefile會自動產生

$ qmake -project
$ qmake
$ make

編譯完成

PyQt4

Ubuntu 10.04


安裝Qt4
$ sudo apt-get install libqt4-dev libqt4-dbg libqt4-gui libqt4-sql qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig

安裝PyQt4

$ sudo apt-get install "python-qt4-*"

PyQt4範例
/usr/share/doc/python-qt4-doc/examples

Qt+KDevelop

http://www.kdevelop.org/

KDevelop採用用GPL,支援許多語言如:C/C++,
Ada, Java, Pascal, Fortran, PHP, Perl, Shell, Python, Ruby,
SQL等

Qt Designer是一個強大GUI界面開發工具

安裝
# tar zvxf qt-x11-opensource-src-4.1.0.tar.gz
# cd qt-x11-opensource-src-4.1.0
# ./configure
# make
# make install


設置KDEDIR和QTDIR兩個環境變數,
以及PATH變數
KDE的頭文件在/usr/include/kde

Qt的頭文件和API在/usr/lib/qt-3.3

設置環境變數


# export KDEDIR=/usr/include/kde
# export QTDIR=/usr/lib/qt-3.3
# export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH


也可將上述指令寫入.bashrc 文件中

Ubuntu 10.04

Based on a clean Ubuntu 10.04, I could get FreeBASIC 0.21 to work with these packages:

32bit Ubuntu:
Quote:
libncurses5-dev
libx11-dev
libxext-dev
libxpm-dev
libxrandr-dev
libxrender-dev
libstdc++6-4.4-dev (only needed with the normal non-standalone FreeBASIC)

2010年11月27日 星期六

IP遮罩

Netmask:   255.255.255.0 = 24   
11111111.11111111.11111111 .00000000

Address:   192.168.0.1         
Netmask:   255.255.255.0 = 24  
Wildcard:  0.0.0.255           
=>
Network:   192.168.0.0/24      
Broadcast: 192.168.0.255      
HostMin:   192.168.0.1         
HostMax:   192.168.0.254      
Hosts/Net: 254     (254個IP,一個class C)

-----------------------------------------------------------------
四分之一
Address:   192.168.0.1           11000000.10101000.00000000.00 000001
Netmask:   255.255.255.192 = 26  11111111.11111111.11111111.11 000000
Wildcard:  0.0.0.63              00000000.00000000.00000000.00 111111
=>
Network:   192.168.0.0/26        11000000.10101000.00000000.00 000000 (Class C)
Broadcast: 192.168.0.63          11000000.10101000.00000000.00 111111
HostMin:   192.168.0.1           11000000.10101000.00000000.00 000001
HostMax:   192.168.0.62          11000000.10101000.00000000.00 111110
Hosts/Net: 62       

-----------------------------------------------------------------------------------------------------------------------
Address:   163.23.115.193        10100011.00010111.01110011.11 000001
Netmask:   255.255.255.192 = 26  11111111.11111111.11111111.11 000000
Wildcard:  0.0.0.63              00000000.00000000.00000000.00 111111
=>
Network:   163.23.115.192/26     10100011.00010111.01110011.11 000000 (Class B)
Broadcast: 163.23.115.255        10100011.00010111.01110011.11 111111
HostMin:   163.23.115.193        10100011.00010111.01110011.11 000001
HostMax:   163.23.115.254        10100011.00010111.01110011.11 111110
Hosts/Net: 62                        
--------------------------------------------------------------------------------------------------------------


如果遮罩是255.255.255.255=32
192.168.0.1/32
指單台主機
Address:   192.168.0.1         
Netmask:   255.255.255.255 = 32
Wildcard:  0.0.0.0            
=>
Network:   192.168.0.1/32     
Broadcast: 192.168.0.1        
HostMin:   192.168.0.1       
HostMax:   192.168.0.1       
Hosts/Net: 1                   

2010年11月19日 星期五

任天堂遊戲開發

有一個網站很棒,教學生製作 任天堂 遊戲
自己製作任天堂遊戲是我小時候的夢想

現在有許多 mp5 掌上遊戲機才1千多元,就可以玩
任天堂 格式的遊戲,比你買 nds 或 psp 實在便宜太多了

而且自己設計遊戲的過程,樂趣很多

參考Bob Rost網站 來玩一下吧
http://bobrost.com/nes/

2010年11月11日 星期四

GO語言Hello

GO語言在window環境編輯設計,真是難用
Linux 系統包在一起,比較nice

-------------------第1個程式ok
package main  
import "fmt" 
func main() {  
 
  fmt.Printf("Hello, World!!!!\n")  
 


--------------------------------

android 模擬系統

http://code.google.com/p/live-android/

不想買android手機,可以先玩玩android模擬系統
滿意再買來玩!

2010年11月4日 星期四

自動鉛筆不會斷筆芯了

孩子的自動鉛筆一天到晚斷筆芯,寫個練習題斷好幾次
,這樣很容易讓孩子分心,常常忘了剛剛算到哪裡。
今天到溪湖建泰五金行,買了一枝自動鉛筆,號稱不會斷筆芯
,一枝15元,還蠻好寫的。

Penrote PA9279
筆樂PA9279自動鉛筆

99年彰化縣自由軟體繪圖比賽

今年我用心地畫了3個星期,結果沒得獎(連佳作都沒有),有點可惜!

2010年10月22日 星期五

Phtml

最近發現很多公司、學校使用.phtml的網頁
有點好奇,這是何種網頁格式
查一下資料
似乎是安裝了Zend Framework
Zend Framework (ZF) 是一種開放程式碼, 物件導向的WEB應用程序開發框架

最新版本的Zend Framework要求PHP 5.2.4或是更高版本。
Zend Framework 1.7.0前的版本要求PHP 5.1.4或是更高版本。

有空研究看看

2010年9月28日 星期二

叛獄風雲The Experiment

叛獄風雲The Experiment
我們台灣很偉大,The Experiment把它翻成「叛獄風雲」
你會發現,有太多的外國電影,經過台灣的翻譯,都變成
「xx風雲」、「終極xx」、「玩命xx」、「決戰xx」、「全面xx」
、「神鬼」…等等。都是一些經過美化的片名,雖然好聽,yauger
總覺得沒有特色,或者與原片主題不切合。
但本片如果翻譯成「實驗」,不曉得觀眾會不會適應!
The Experiment是依據1971年美國心理學家金巴多教授的
監獄實驗真人真事改編。一開始找來一群一般百姓,來模
擬監獄生活,如果所有人都通過試驗,主辦者經發給每位
參與者約2萬元的美金(確切金額我忘了,你觀賞影片時,
自己注意一下);如果有人違反相關規定(例如暴力相向)
則實驗結束,大家也拿不到獎金。
參與實驗的人當中,教授選擇八位擔任看管人員,「佛瑞
斯惠特克」就是其中一名;


剩下的人扮演犯人角色,「安德列布洛迪」就是扮演犯人。
看守人員有制服、手銬、警棍等裝備,與一般監獄相同。
犯人角色也是和真正犯人的角色一樣,必須每天被關在牢
房裡,每天只有30分鐘放風自由活動,每天的三餐都要吃完。
故事的導火線是,第一次自由活動時間,犯人玩著籃球,
一位老先生將球傳給一名黑人警衛,結果該名警衛沒有注
意球飛過來,導致籃球K到鼻子,流一大沱血,8名警衛者
在辦公室非常不滿,開始露出「自己是高階層」的本性
(其實本來大家都是平凡百姓,被冠上看守警衛的角色,
還真的以為自己就是管理者)。另有一次,看守人員準備
的餐點,竟有一大沱黑壓壓的東東,看起來很像大便,除
了一名犯人吃光,其他人都不敢吃,當「安德列布洛迪」
想倒掉時,警衛說不准,安德列布洛迪故意倒到該名警衛
手裡,所有犯人跟著將所有沒吃完的餐點倒掉,「看守警
衛」與「犯人」之間的衝突正式白熱化。



爸爸愛心饅頭990829

990829星期日,很久沒有作饅頭了,今天心血來潮,又來玩玩看!

原本想買竹蒸籠,老婆說「浪費!東西買買一大堆」,幸好找到以前去愛買花200元抽中
的白鐵蒸籠,還不錯用!





沒幾分鐘就「炊好了」(蒸好)





啥!「立功屋大小粒」、因為爸爸懶得切,只有輕鬆隨意捏幾團
就放進去炊。
再者,小顆的給小兒子吃,大顆的給老爸自己吃!




沒有加閃光,拍一張!!對了,裡頭加許多有機葡萄乾






啥!你說用啥材料,我只用「中筋麵粉、少許海鹽、少許橄欖油、
鮮奶、大顆有機葡萄乾、乾酵母粉」,好像還加一顆雞蛋,就降!
成品不賴吧!QQ dada !我小兒子超喜歡吃的!





xx雜誌教育競爭力




某雜誌前陣子自行公佈台灣各縣市的教育競爭力,害慘很多了,尤其是那些教育資源低落與資源分配不均的縣市,彰化縣即為其中之一。
    該雜誌列出教育相關的四大面向:政府投入和滿意度、閱讀力、教學力、弱勢關懷力。但我很想知道,這四個面向是如何產生的,這四個面向真的能代表「教育競爭力嗎?」,再者他們提出有45個指標,我很想知道是哪45個指標。許多人作研究,自己會憑空生出一些指標來,這是很危險的,因為這樣的調查,根本問不到真正的內涵,指標不俱代表性時,根本是問東講西。舉個例子,我們要調查學生的閱讀力,結果問學生一星期讀幾篇文章、讀幾個種類的文章。我們台灣的教育,目前最糟糕的是,很喜歡一大堆數據,從教育部、教育處都是這樣,一天到晚問學生看過幾本書,卻沒想過學生真正喜歡上讀書了嗎?學生真正對閱讀已經產生了興趣嗎?學生真正被文章所感動了嗎?如果我們的問卷不是去瞭解這些深層的內涵,只是問「讀幾本」、「讀幾次」等表面數據,那問卷不可以命名「閱讀力」,而是「閱讀次數調查」。再者,樣本的取得方式與過程也應該向讀者交待,問卷工具的製作過程、是否具信效度等都要交待一下。不然,會造成許多失真的結論產生,造成許多人有形無形的傷害。有公信力的雜誌業者更應當嚴謹面對。
在教師認真指數方面,彰化縣可能墊底嗎?我很懷疑,「最近一年一週備課時數是否超過十小時?」、「寒暑假備課是否超過七天?」、「是否參加專業教師研習?」、「是否每月閱讀專業文獻?」、「每個月是否都會和同事討論和分享教學上的問題?」、「是否贊成教師評鑑?」,這幾個問題,我問一些彰化教師朋友,結果都是很正向的,為何該雜誌調查的結果卻是低分。再者,這些問題代表「認真」的真正含意嗎?不難發現我們又是重視數據化的東西,數據很重要,但深層的內涵更重要,因為那才是精華所在。以「是否參加專業教師研習?」這問題為例,
假設一位老師寒暑假不常參加,可是他卻常常透過網路閱讀國外專業資料,這樣算認真嗎?我覺得是「認真」,我自己就是常這樣充實自己的專業領域的。
總覺得台灣教育高層很喜歡速成的、表面數據的東西,因為這樣可以表現出自己在位時的豐功偉業,很少人會真正去關心台灣教育真正的競爭力,所以你會常常看到同樣的東西每年重新重頭來過,而不是有計劃地推展。大家一直說未來的社會一定要有創造力,那我們的教育也看不出何時在往這方面前進,原地踏步居多。我們贊成要培養孩子的個別的專長,適性發展,可是你卻很難看到孩子能展現自己的專長,藝能、體育資優的學生還是普遍不被重視,大家喊了很久,還是專注在「智育」表現。
以上純屬「三本貓」個人看法,如有誤謬,敬請指教

霸道的人沒禮貌

大家是否遇過霸道的人。通常很霸道的人,也很沒禮貌。
當一個人的職位有時可以去命令別人時,常會忘了自己是誰,
不尊重別人,把別人當作是自己的部下、僕人看待。忘了自己和別人
是平行關係,不是上下關係。


沒禮貌的人通常不會正眼看人!

秋葵~好大喔

自己家門後開闢一開心農場,種著一些蔬菜,其中的「秋葵」超好種的!
鄰居給幾顆毛豆的種子,我開闢好一小農地,隨意種一種,種子長大後竟然
是「秋葵」,原來鄰居當初講錯了,以為是毛豆的種子,誤打誤撞,種這秋葵
實在不賴,只要澆澆水,就能長到2-3公尺高(網路說能長1公尺多,我家的長到3
公尺,還在繼續長),超高的。摘一摘,沒幾天又會一大堆 果實,真是好樣的!






















-------------------------------------
網路上查的功效
-------------------------------------
根:利水,散瘀,解毒。治水腫,淋症,乳汁不通;
外用治癰腫,痄腮,骨折;莖或莖皮:活血,除邪熱。
治產褥熱;莖皮:外用治燙傷;葉:解毒托瘡,排膿生肌;
外用治癰疽疔瘡,痄腮,燙傷,刀傷出血;花:通淋,消腫,
解毒。治砂淋;外用治癰瘡腫毒,燙傷,小兒禿瘡,小兒口
瘡。種子:健胃潤腸,利水,通乳,消腫。治消化不良,
不思飲食,二便不利,水腫,淋症,乳汁不通,癰腫,
跌打損傷。

98學年度彰化縣自由軟體繪圖優選

98學年度彰化縣自由軟體繪圖優選
這張是縮小版


阿婆撿廚餘

您的單位是否有阿婆來撿廚餘
原本是一樁美意
如果阿婆太超過,就有點oooxxx
有些阿婆會趁小朋友還沒吃完午餐時,伸出怪手來把飯菜
打走,是種偷竊的行為,小朋友會因此飯菜不夠。有時更扯
,連裝廚餘的水桶也是學校A的,學校無奈,只好下逐客令!

上面這張圖,和學校偷飯菜的阿婆無關,純屬作者亂畫得。