<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5114814857102747069</id><updated>2011-11-27T16:37:18.315-08:00</updated><category term='others'/><category term='OSI Model'/><category term='Blogger Hack'/><category term='what&apos;s this'/><category term='Electronics'/><category term='Resources'/><category term='Linux'/><category term='10s blog tip'/><category term='online resources'/><category term='Network 101'/><category term='Tutorial'/><category term='gargon buster'/><category term='News'/><category term='Programming'/><category term='Advanced Blog tips'/><title type='text'>Cyber Jedi -- About hardware, programming, network and self-improving</title><subtitle type='html'>In the cyber world, knowledge is power -- both bright side and dark side. This blog is about electronics, computer hardware, wireless, reverse engine, operation system, networking, digital arts, music, open source, driver, virus, information security, cyber martial arts, internet, worm, software, E-commerce, botnet, web, phishing, worm, ftp, p2p, email, social network, blog, search engine...everything make the cyber world (and the world in general) so good and evil.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>98</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-572622471530706546</id><published>2009-11-18T09:00:00.000-08:00</published><updated>2009-11-19T08:35:46.160-08:00</updated><title type='text'>Core Java interview questions with Code Example</title><content type='html'>Question: How could Java classes direct program messages to the system console, but error messages, say to a file?&lt;br /&gt;&lt;br /&gt;Answer: The class System has a variable out that represents the standard output, and the variable err that represents the standard error device. By default, they both point at the system console. This how the standard output could be re-directed:&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper" style="height: 150px;"&gt;&lt;br /&gt;import java.io.*;&lt;br /&gt;&lt;br /&gt;public class HelloWorld {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        try {&lt;br /&gt;   PrintStream st = new PrintStream(new FileOutputStream("test.txt"));&lt;br /&gt;   System.setOut(st);&lt;br /&gt;   System.setErr(st);&lt;br /&gt;  } catch (FileNotFoundException e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Question: Explain the usage of the keyword transient?&lt;br /&gt;&lt;br /&gt;Answer: Serilization is the process of making the object's state persistent. That means the state of the object is converted into stream of bytes and stored in a file. In the same way we can use the de-serilization concept to bring back the object's state from bytes. Sometimes serialization is necessary. For example, when we transmit objects through network, we want them to be consistent, therefore these objects have to be sterilizable, &lt;br /&gt;&lt;br /&gt;On the other hand, we don't want the value of some member variable to be sterilizable, for instance, the password, then we use the keyword transient. When the class will be de-serialized, the transient variable will be initialized to 0 or null.&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper" style="height: 150px;"&gt;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.io.ObjectInputStream;&lt;br /&gt;import java.io.ObjectOutputStream;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;&lt;br /&gt;public class Logon implements Serializable {&lt;br /&gt;  private transient String password;&lt;br /&gt;&lt;br /&gt;  public Logon(String pwd) {&lt;br /&gt;    password = pwd;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public String toString() {&lt;br /&gt;    return password;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws Exception {&lt;br /&gt;    Logon a = new Logon("hello_world");&lt;br /&gt;    System.out.println("logon a = " + a);&lt;br /&gt;    ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream(&lt;br /&gt;        "Logon.out"));&lt;br /&gt;    o.writeObject(a);&lt;br /&gt;    o.close();&lt;br /&gt;    Thread.sleep(1000); // Delay for 1 second&lt;br /&gt;    // Now get them back:&lt;br /&gt;    ObjectInputStream in = new ObjectInputStream(new FileInputStream(&lt;br /&gt;        "Logon.out"));&lt;br /&gt;    System.out.println("Recovering object at after 1 second");&lt;br /&gt;    a = (Logon) in.readObject();&lt;br /&gt;    System.out.println("logon a = " + a);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The output of the above example will be:&lt;br /&gt;&lt;div class="code-wrapper" style="height: 150px;"&gt;&lt;br /&gt;logon a = hello_world&lt;br /&gt;Recovering object at after 1 second&lt;br /&gt;logon a = null&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-572622471530706546?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/572622471530706546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/core-java-interview-questions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/572622471530706546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/572622471530706546'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/core-java-interview-questions.html' title='Core Java interview questions with Code Example'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8032118799933581011</id><published>2009-11-17T08:40:00.000-08:00</published><updated>2009-11-17T16:50:58.367-08:00</updated><title type='text'>Linux Commands - Hardware</title><content type='html'>* uname - print the OS information. "uname -a" display kernel-name, nodename, kernel-release, kernel version, machine, processor, hardware-platform, and operating system.&lt;br /&gt;* dmesg - print comprehensive kernel and driver messages. For example, "dmesg &gt;&gt; file_to_mail_out.txt" output the information to a file for future trouble-shooting.&lt;br /&gt;* top - display the system resources usage, and the updating processes.&lt;br /&gt;* free - check memory usage. &lt;br /&gt;* swapon - manage swap file or partition. "swapon -s" displays a summary of the swap usage. &lt;br /&gt;* vmstat - display virtue memory information.&lt;br /&gt;* lsof - list all the open files, sockets and pipes. &lt;br /&gt;* tty - print the file name of the terminal connected to standard input.&lt;br /&gt;&lt;br /&gt;* fdisk - manage disk partition. "fdisk -l" displays partition table.&lt;br /&gt;* cfdisk - a easier progrom based on fdisk.&lt;br /&gt;* fdformat - low-level format a floppy disk.&lt;br /&gt;&lt;br /&gt;* eject - eject removable media.&lt;br /&gt;* mount - unix file system is arranged in one big tree. mount attaches the file system found in some device into the big tree. "mount /dev/cdrom" mount the iso9660 file system found on the CDROM.&lt;br /&gt;* unmount - unix file system is arranged in one big tree. unmount detaches the file system found in some device from the big tree. "unmount ./isoimage" unmount the iso9660 file system found on the file isoimage. &lt;br /&gt;&lt;br /&gt;* import - "import screenshots" take a screen shots from x-window, save it to a file screenshots.&lt;br /&gt;&lt;br /&gt;* ifconfig - displays the network interfaces.&lt;br /&gt;* ifup - "ifup eth1" brings up a network interface eth1.&lt;br /&gt;* ifdown - brings down a network interface.&lt;br /&gt;&lt;br /&gt;* lpr - "lpr file.txt" sent the file.txt to default printer.&lt;br /&gt;* lprm - remove the current printing job.&lt;br /&gt;* pr - preformat a file for printing. "pr | lpr file.txt"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8032118799933581011?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8032118799933581011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-hardware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8032118799933581011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8032118799933581011'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-hardware.html' title='Linux Commands - Hardware'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3376119593475440033</id><published>2009-11-16T20:14:00.000-08:00</published><updated>2009-11-19T14:50:58.428-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux Commands - Programming</title><content type='html'>* cksum - calculate the check sum of a file, used to verify if two files are identical. Example: "cksum file1.txt" returns a number as the finger print of the file1.txt.&lt;br /&gt;&lt;br /&gt;* echo - "echo $PATH" displays the value of environment variable PATH.&lt;br /&gt;* env - displays all environment variable.&lt;br /&gt;* export - write a variable to harddis. Example: "export MYVAR=$HOME" assigns the value of HOME to MYVAR, then set MYVAR as an environment variable.&lt;br /&gt;* declare - declare variables and give them attributes. Example: "declare MYVAR=$HOME" assigns the value of HOME TO MYVAR, but does NOT set MYVAR as environment variable.&lt;br /&gt;* read - read input from standard input, assign it to a variable. Example: "read newvar", input a value for newval, then "echo $newvar".&lt;br /&gt;* sleep - delay for a some time. Example: "sleep 2" delay 2 seconds.&lt;br /&gt;&lt;br /&gt;* alias - allow users to create abbreviations for complex commands. Example: "alias" displays all the existing aliases. Example: "alias mycmd="pwd" "&lt;br /&gt;* unalias - delete an alias. Example: "unalias mycmd".&lt;br /&gt;* nohup - run a command immune to hungups. Example: "nohup ls" run the command ls, write the output to file nohup.out.&lt;br /&gt;* tee - "ls | tee file.out" this command display the output of command ls at standard output, while write them to the file.out. "ls &gt;&gt; file.out" won't display the output at standard output.&lt;br /&gt;* sed - search and replace patterns in a file. Example: sed 's/my/your/g' afile.txt --this command substitute all "my" to "your" in the afile.txt. &lt;br /&gt;* cut - divide a file into several parts. Example: "cut -d, -f1,3 sample.txt" divide lines by delimiter :, then output the first and third columns.&lt;br /&gt;* sort - sort text files.&lt;br /&gt;* paste - merge lines of files.&lt;br /&gt;* split - split a file into many parts. Example: "split -b 1024 example.data new" split example.data into file newaa, newab, newac... each file have 1024 byte.&lt;br /&gt;* vi - text editor.&lt;br /&gt;&lt;br /&gt;* top - display the system resources statistics, and the updating processes.&lt;br /&gt;* ps - display the running processes. "ps -A" displays all the running processes.&lt;br /&gt;* kill - stop a process from running. "kill -9 3214" stops the process with id 3214 immediately.&lt;br /&gt;&lt;br /&gt;* watch - execute a program periodically. Example: "watch -n 5 free" execute command free every 5 second.&lt;br /&gt;* crontab - schedule tasks running periodically. Example: "crontab -l" list all the scheduled tasks for the current user. "crontab -e" edit the scheduler. For example, a task record could be "2 12 * * 5 /sbin/ping -c 1 www.google.com &gt;&gt; /dev/null", which means, ping google every 2 minutes at 12 o'clock on every friday. "crontab -d" delete all the scheduled tasks for the current user. &lt;br /&gt;&lt;br /&gt;* chkconfig - control services. "chkconfig" displays the states of all the system services. "chkconfig sshd on" turn on the ssh service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3376119593475440033?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3376119593475440033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3376119593475440033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3376119593475440033'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-programming.html' title='Linux Commands - Programming'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8622058723503331417</id><published>2009-11-16T20:07:00.000-08:00</published><updated>2009-11-18T08:10:04.188-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux Commands - network</title><content type='html'>* vncpasswd - create a passwd for the vnc server.&lt;br /&gt;* vncserver - create x-window display so that vncclient can remote login. Example: "vncserver :10 -geometry 1280x960" create a display :10 with size 1280x960. "vncserver -kill :10" stops the display :10. &lt;br /&gt;* ftp - connect to a ftp server and is useful to manage your webpage hosting site. Example."ftp youracount.x10hosting.com".&lt;br /&gt;* telnet - remote login to a host, not secure, use ssh instead.&lt;br /&gt;* ssh - open an ssh session on a remote host. Example: "ssh guy@192.168.1.100" will login host 192.168.1.100 with user guy.&lt;br /&gt;* scp - copy files from/to remote host using ssh. Example: "scp guy@192.168.1.100:test.txt /some/local/directory/" will copy file test.txt from site 192.168.1.100 to local machine.&lt;br /&gt;* wget - Retrieve web pages or files via HTTP, HTTPS or FTP. Example: "wget http://www.google.com/index.html" will download the webpage index.html from google site.&lt;br /&gt;&lt;br /&gt;* netstat - powerful network debug tool. Example: "netstat" displays all sockets. "netstat -r" displays routing table. "netstat -s" displays summary of protocols. &lt;br /&gt;* ping - ping a remote host. Example: "ping -c 3 www.google.com" send 3 ping packets to google.&lt;br /&gt;* traceroute - trace the route to a remote host. Example "traceroute www.google.com" will find all the router hops to google.&lt;br /&gt;* iptables - administration tool for IPv4 packets filtering and NAT. Exmple: "iptables -l" list all rules for all chains.&lt;br /&gt;&lt;br /&gt;* write - send message to a user loging into the machine. Example: "send guy" will open a sending box to pass a message to user guy. Control + D to close the message window.&lt;br /&gt;* mail - send smtp mail. You should have a MTA such as postfix installed on your host in order to send mail. Example: "echo This will go into the body of the mail. | mail -s “Hello world” you@youremailid.com".&lt;br /&gt;&lt;br /&gt;* hostname - display or set the host name for local machine.&lt;br /&gt;* host - simple dns loop up. Example: "host www.google.com" get the ip address of google. "host 204.228.150.3" reverse loop up the domain for ip address.&lt;br /&gt;* dig - detailed dns look up. Example: "dig kl2217.x10hosting.com" shows the A, CNAME, NS records of the dns loopup. "dig kl2217.x10hosting.com MX" shows the mail server loopup records.&lt;br /&gt;* nslookup - interactive dns look up tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8622058723503331417?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8622058723503331417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8622058723503331417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8622058723503331417'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-network.html' title='Linux Commands - network'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5263057793723759201</id><published>2009-11-16T18:36:00.000-08:00</published><updated>2009-11-17T10:43:29.532-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux Commands - system administration</title><content type='html'>* su - log into root account.&lt;br /&gt;    * df - quick check for the disk space. "df -h -T" -h let output human readable, -T shows the file system type.&lt;br /&gt;    * du - quick check for file size. "du -h" shows the size of folders and files under current directory in a more readable format.&lt;br /&gt;    * finger - check who is on the system. fingure followed by user id shows detail history of a user.&lt;br /&gt;    * passwd - change the passwd of the current user. type in passwd then enter, you will be asked for old password then new password.&lt;br /&gt;    * dd - disk duplicate. "dd if=/dev/hdb1 of=/backup/", if stands for input file, of stands for output file.&lt;br /&gt;    * shutdown - shutdown the system. -h flag means halt, -r indicates reboot. For example "shutdown -h +120" will put the system into hibernate after 120 min.&lt;br /&gt;    * tar - zip and unzip files or directory. "tar cvfz tarball.tar.gz ./directory/" archive and compress the directory "dir" into file "tarball.tar.gz", "tar xvf tarball.tar.gz" unzip it. c means create new, x means untar, v means berbose, f means file.&lt;br /&gt;    * chmod - change file permission. "chmod 777 filename" give read, write, execute permission to owner, group and world. 7 = 4 + 2 + 1 = r + w + x.&lt;br /&gt;    * chown - change file's owner. "chown me file1" change file1's owner to "me".&lt;br /&gt;    * chgrp - change file's group. "chown users file1" changes file1's group to "users".&lt;br /&gt;    * id - print user and group id.&lt;br /&gt;    * groups - view the groups a user belongs to. "groups root" display all the groups root belongs to.&lt;br /&gt;    * groupadd - create new group. "groupadd mygroup" create a new group mygroup.&lt;br /&gt;    * groupmod - modify a group. "groupmod -n testgroup mygroup" change the name of mygroup to testgroup.&lt;br /&gt;    * groupdel - delete a group. "groupdel testgroup" delete the group testgroup.&lt;br /&gt;    * useradd - add a user. "useradd -g mygroup myuser" add the user myuser to group mygroup.&lt;br /&gt;    * usermod - modify a user. "usermod -g users myuser" change the group of myuser to users.&lt;br /&gt;    * userdel - delete a user. "userdel myuser" delete the user myuser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5263057793723759201?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5263057793723759201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-system-administration.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5263057793723759201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5263057793723759201'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-system-administration.html' title='Linux Commands - system administration'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4978662227681737338</id><published>2009-11-16T17:52:00.000-08:00</published><updated>2009-11-16T20:44:43.416-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux Commands - basic commands</title><content type='html'>* ls - files in the current directory.&lt;br /&gt;    * cd - working directory. If your current path is /home/username/Trash for instance, typing "cd" will bring you back to /home/username.&lt;br /&gt;    * mkdir - a new directory&lt;br /&gt;    * rmdir - a directory (must be empty)&lt;br /&gt;    * touch - "touch filename" create a new file "filename".&lt;br /&gt;    * cp - such as "cp currentFile newFile", and is used to copy files.&lt;br /&gt;    * diff - compares two files, "diff file1 file2" compares each line of file1 and file2, displays the difference.&lt;br /&gt;    * mv - such as "mv currentLocation newLocation". This is used to either move or rename files.&lt;br /&gt;    * rm - such as "rm myFile"; it is used to delete files permanently. "rm -r existingdir" will remove the existing directory named 'existingdir' and all directories and files below it.&lt;br /&gt;    * ln - create a shortcut. For example "ln -s orignial symlink" create a symbolic file "symlink" pointing to the file "original" &lt;br /&gt;    * pwd - the working (current) directory.&lt;br /&gt;    * cat - files (can be used to join them together), and prints its output to standard output (the terminal screen). Used like: "cat myFile".&lt;br /&gt;    * less - for file viewing in the shell, and is most useful for text files; invoked like "less myFile".&lt;br /&gt;    * tail - show the last 10 lines of a file, and is very useful to view a updating file. For example: "tail -f /var/log/messages" shows the last 10 lines of changing log file messages.&lt;br /&gt;    * whereis - show where the binary, source and manual page files are for a command. For example "whereis ifconfig".&lt;br /&gt;    * find - be used to find files via the command line. Example usage could be: "find . -name toc", which looks at the current directory (defined by ".") for any files with the name "toc".&lt;br /&gt;    * grep - be used to find lines contains a specific pattern. For example : "grep root /etc/passwd" find all lines contains string "root" in the file passwd.&lt;br /&gt;    * date - the current date! This can also be used to set the date of the system (but administrator privileges are required).For example: # date -s "2 OCT 2006 18:00:00"&lt;br /&gt;    * history - in shell command for the BASH environment that shows the last run commands.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4978662227681737338?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4978662227681737338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-basic-file-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4978662227681737338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4978662227681737338'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/11/linux-commands-basic-file-management.html' title='Linux Commands - basic commands'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8188523391836952984</id><published>2009-10-17T09:22:00.000-07:00</published><updated>2009-10-24T16:45:18.828-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Find a Hacker suspicious</title><content type='html'>&lt;p&gt;I captured suspicious upnp traffic on my computer with wireshark. A Linux hacker is turning my computer into a network service provider for him. This is the general description about upnp.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.upnp-hacks.org/upnp.html"&gt;http://www.upnp-hacks.org/upnp.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This hacker is located in China, GuangDong. The hacker software is installed by a online flash game client. To remove the threat, I blocked the port used by the upnp.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8188523391836952984?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8188523391836952984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/10/find-hacker-suspicious.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8188523391836952984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8188523391836952984'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/10/find-hacker-suspicious.html' title='Find a Hacker suspicious'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7977578056479189395</id><published>2009-10-07T20:03:00.000-07:00</published><updated>2009-11-16T09:01:08.980-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>MAC vs. PC vs. Linux</title><content type='html'>It's a never ending war betwen MAC, PC and Linux.&lt;br /&gt;It is started with "Get A MAC" campaign:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/C5z0Ia5jDt4&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/C5z0Ia5jDt4&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;PC quickly faught back on the youtube with "MAC Spoof" episode:&lt;br /&gt;Mac Spoof: Security [Low Quality]&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gFAJDbV9Vfs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/gFAJDbV9Vfs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Mac Spoof: Upgrading [Low Quality]&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/t-L-0s-7-Z0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/t-L-0s-7-Z0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Mac Spoof: Services [Low Quality]&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hSu2dzu--TE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/hSu2dzu--TE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;The voice from Linux soon was heard in video "Novell Get a MAC Spoof".&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pDc9I3z7ab4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/pDc9I3z7ab4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8LAXg_UmzTY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/8LAXg_UmzTY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NkFQVcl62qo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/NkFQVcl62qo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I like to watch these videos, because they are funny, but I won't let them influence my judgement. I personally use windows, mac os and linux, and love them all.&lt;br /&gt;&lt;br /&gt;Let's face it, windows has been so deeply rooted on the market, you can not just flip your fingers and let it go. window is easy to use and softwares just work on it.&lt;br /&gt;&lt;br /&gt;I like MAC too. MAC has cool interface, mac os 10 have a Linux in the core, did I mention how fast it boots up?&lt;br /&gt;&lt;br /&gt;So, why linux? Because it is free forever! Your hardware don't work? ok, let's write a driver. You want a specific service? ok, let's load the module. Under the name of Linux, nothing is impossible, because everything is up to you. You are free.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7977578056479189395?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7977578056479189395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/10/mac-vs-pc-vs-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7977578056479189395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7977578056479189395'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/10/mac-vs-pc-vs-linux.html' title='MAC vs. PC vs. Linux'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8431740819881855951</id><published>2009-07-30T20:08:00.000-07:00</published><updated>2009-07-30T20:13:36.471-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>Why wireless network is insecure and how to secure it</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mknGP-TOFu8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/mknGP-TOFu8&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div&gt;This video is a general introduction to wireless security.&lt;/div&gt;&lt;div&gt;To improve your wireless security.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Out of the box WiFi is generally insecure.&lt;/li&gt;&lt;li&gt;Enable wireless encryption via WPA.&lt;/li&gt;&lt;li&gt;Change the default router password.&lt;/li&gt;&lt;li&gt;Change the default wireless SSID.&lt;/li&gt;&lt;li&gt;Hide the SSID.&lt;/li&gt;&lt;li&gt;Secure all home workstations.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8431740819881855951?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8431740819881855951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/why-wireless-network-is-insecure-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8431740819881855951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8431740819881855951'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/why-wireless-network-is-insecure-and.html' title='Why wireless network is insecure and how to secure it'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4813026876719226606</id><published>2009-07-25T07:35:00.000-07:00</published><updated>2009-07-25T08:46:42.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>My bad experience on fedora 10 network bug</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/Smsmx72fxrI/AAAAAAAAAJk/BjWrTumiQn4/s1600-h/fedora-10-logo.jpg"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; FLOAT: right; HEIGHT: 278px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5362422420636419762" border="0" alt="" src="http://4.bp.blogspot.com/_IJxULM6OoA4/Smsmx72fxrI/AAAAAAAAAJk/BjWrTumiQn4/s320/fedora-10-logo.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;One of my friends chat with me on msn, saying that she just installed a new linux system, but the firefox connects nowhere, so she was in panic. After finding out their office didn't use dhcp, I realized what she wants is to set static ip address and default gateway. Simple enough.&lt;br /&gt;I wish I knew fedora 10 have a network bug for static ip configuration, but I didn't!&lt;br /&gt;I went through the normal steps.&lt;br /&gt;Check OS information with "uname -a" and "dmesg head -1".&lt;br /&gt;Check network information with "ifconfig", "/sbin/route -n" and a few ping and traceroute.&lt;br /&gt;Ask my friend for the default gateway and the previous ip address (it's better to use the previous ip to save us from nasty kinks).&lt;br /&gt;Educate my friend about the Linux desktop, where to find the GUI to fill in the ip address and default gateway.&lt;br /&gt;Ahaaaa, here's the catch! She kept complaining that linux automatically changes netmask to gateway...&lt;br /&gt;So, I decided to go the sure way --&lt;br /&gt;Ask her to add default gateway into&lt;br /&gt;/etc/sysconfig/network&lt;br /&gt;/etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;And restart the network service by typing "service network restart"&lt;br /&gt;&lt;br /&gt;She still complained that linux automatically changes netmask to gateway...&lt;br /&gt;&lt;br /&gt;I got confused, but make another try -- "route add default gw xxx.xxx.xxx.xxx eth0" -- and got more confused after getting "siocaddrt no such process".&lt;br /&gt;&lt;br /&gt;Now it's my time to panic...&lt;br /&gt;After googling for a while, &lt;a href="http://www.accessgrid.org/node/1767"&gt;this post&lt;/a&gt; finally explained everything:&lt;br /&gt;"Unfortunately, to date (8th/Dec/2008) there is a bug with system-config-network (GUI Version) in which it incorrectly stores the network mask as the default gateway address."&lt;br /&gt;"Fedora 10 disables the "network" service in preference to using "NetworkManager", therefore NetworkManager will need to be disabled before enabling and configuring the network service."&lt;br /&gt;&lt;br /&gt;Now I'm happy my friend's firefox can link to pages.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4813026876719226606?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4813026876719226606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/my-bad-experience-on-fedora-10-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4813026876719226606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4813026876719226606'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/my-bad-experience-on-fedora-10-network.html' title='My bad experience on fedora 10 network bug'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IJxULM6OoA4/Smsmx72fxrI/AAAAAAAAAJk/BjWrTumiQn4/s72-c/fedora-10-logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2377537065460467553</id><published>2009-07-15T20:40:00.000-07:00</published><updated>2009-07-15T21:07:16.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>STAR WARS Episode you never seen before</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/Sl6kN54OmlI/AAAAAAAAAJc/PuReEfIc6o0/s1600-h/starwars_carriefisher_3.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 211px; height: 320px;" src="http://2.bp.blogspot.com/_IJxULM6OoA4/Sl6kN54OmlI/AAAAAAAAAJc/PuReEfIc6o0/s320/starwars_carriefisher_3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5358901165399382610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To watch the move. &lt;br /&gt;In windowsXP, &lt;br /&gt;press "START" &lt;br /&gt;press "Run..."&lt;br /&gt;type "command" then ENTER&lt;br /&gt;type "telnet" then ENTER&lt;br /&gt;type "O" then ENTER&lt;br /&gt;type "towel.blinkenlights.nl" then ENTER&lt;br /&gt;&lt;br /&gt;Just wait and enjoy the brand new STAR WARS Episode... &lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2377537065460467553?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2377537065460467553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/starwars-you-never-seen-before.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2377537065460467553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2377537065460467553'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/starwars-you-never-seen-before.html' title='STAR WARS Episode you never seen before'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/Sl6kN54OmlI/AAAAAAAAAJc/PuReEfIc6o0/s72-c/starwars_carriefisher_3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-9101049109051764686</id><published>2009-07-14T15:21:00.000-07:00</published><updated>2009-07-14T15:23:30.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How to setup VPN Server at home</title><content type='html'>If you have a PC with windows XP professional and a router supporting port-forward, then you can setup a VPN server at home without cost a penny.&lt;br /&gt;Even PPTP based VPN is criticized for low security compared with L2TP/IPSec based VPN, Microsoft Inc. is constantly promoting it. The PPTP VPN client is included by default in all versions of windows XP, windows vista. If you have windows XP Professional, you can even set up a PPTP based VPN server at home. The good side is PPTP based VPN setup don’t cost you a penny, and functioned the same as those expensive cisco gateway backed VPN setup; the bad side is, you should be aware of the security issue facing the PPTP VPN — for PPTP the authentication process is not done over secured connections hence credentials can be lost to hackers and thus they can have access to the VPN server. The secure connection is setup only after the authentication is done.&lt;br /&gt;To set up VPN, you should do three things.&lt;br /&gt;Task #1: Having a router supporting port-forward. (&lt;a href="http://www.portforward.com/english/routers/port_forwarding/routerindex.htm" jquery1247610033031="4"&gt;Here&lt;/a&gt; is a farely completed list for routers supporting port-forward. My recommandation is &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16833124190" jquery1247610033031="6" hoverintent_t="undefined"&gt;LINKSYS WRT54GL&lt;/a&gt;. It is a perfect router for someone with networking experience who wants an inexpensive router to do expensive networking tasks.)&lt;br /&gt;Task #2: Configure your router so that the traffic at your router’s port TCP-1723 will be forwarded to the local IP address of the PC running your VPN server software.&lt;br /&gt;&lt;a href="http://www.home-network-help.com/port-forwarding.html" jquery1247610033031="8"&gt;Port Forwarding How to&lt;/a&gt;&lt;br /&gt;Task #3: Enable and configure the VPN server software at that home PC.&lt;br /&gt;&lt;a href="http://www.home-network-help.com/pptp-vpn-server.html" jquery1247610033031="10" hoverintent_t="undefined"&gt;Simple PPTP VPN Server Setup in Windows XP&lt;/a&gt;&lt;br /&gt;Now, the VPN client on the internet can access your VPN network anywhere, the only thing the client need to know is your router’s external IP address (which is dynamically assigned by your ISP) and the password of your VPN (of course). The IP address may change now and then, so your VPN client need to adjust the IP address accordingly.&lt;br /&gt;If updating the dynamic IP address annoys you, you can ask a software to do this for you.&lt;br /&gt;This is how to: firstly bind the dynamic IP address to a domain name, then point your VPN client to the domain name, so that no update is needed at the client side. At the server side, a software periodically tests your external IP address, then binds the new IP address to the domain name. no-ip.com have already wrote such a software for you, they even provide free domain name! If you are a hard-core programmer and dare not trust the softwares downloaded from the web, writing a software in Java or C++ is not that hard.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-9101049109051764686?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/9101049109051764686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/ccna-lab-how-to-setup-vpn-server-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9101049109051764686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9101049109051764686'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/ccna-lab-how-to-setup-vpn-server-at.html' title='How to setup VPN Server at home'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4413426367458805741</id><published>2009-07-13T08:23:00.000-07:00</published><updated>2009-07-13T09:04:18.332-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Yahoo! 360° is closing today</title><content type='html'>Finally, the rumor became reality, the Yahoo! 360° is closing today. Here is the official declaration from yahoo! site:&lt;br /&gt;"Make sure to save or download your existing content before July 13, 2009. On this date, all remaining material on Yahoo! 360° will no longer be accessible."&lt;br /&gt;&lt;br /&gt;Yahoo! 360° has many nice blog feature to it, easy to use and give user a social networking site running by Yahoo!. As many users noticed long time ago, Yahoo! 360° gets slower and slower, besides, the social aspect of Yahoo! 360° turned out not so successful, there are plenty of other social networking sites which just fulfill a different function. &lt;br /&gt;&lt;br /&gt;I think many users will move to blogger or blogspot after the closing.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4413426367458805741?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4413426367458805741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/yahoo-360-is-closing-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4413426367458805741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4413426367458805741'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/yahoo-360-is-closing-today.html' title='Yahoo! 360° is closing today'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3582697229790759902</id><published>2009-07-06T21:08:00.000-07:00</published><updated>2009-07-06T21:35:48.229-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How to remote contorl your LAN computers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IJxULM6OoA4/SlLL0kBmadI/AAAAAAAAAJU/GQVATGt0nFU/s1600-h/VNC_Diagram_V1_w800.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 101px;" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SlLL0kBmadI/AAAAAAAAAJU/GQVATGt0nFU/s400/VNC_Diagram_V1_w800.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5355567010780965330" /&gt;&lt;/a&gt;&lt;br /&gt;If you have followed my &lt;a href="http://cyberjedizen.blogspot.com/2009/07/how-to-set-up-windows-home-network.html"&gt;previous posts&lt;/a&gt; on how to set up workgroup and file sharing in your home network. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You maybe commuted between your computers to configure, debug, inspect results... What a hack...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How nice if we can sit on one computer and remote control other computers without physically walked there. Fortunetly, we have a very easy solution with VNC server.&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;"VNC is remote control software which allows you to view and fully interact with one computer desktop (the "VNC server") using a simple program (the "VNC viewer") on another computer desktop anywhere on the Internet. The two computers don't even have to be the same type, so for example you can use VNC to view a Windows Vista desktop at the office on a Linux or Mac computer at home. For ultimate simplicity, there is even a Java viewer, so that any desktop can be controlled remotely from within a browser without having to install software."&lt;br /&gt;To set up VNC server-client connections.&lt;/span&gt;&lt;/span&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Download and install RealVNC (Free Edition is good enough) from&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.realvnc.com/products/download.html"&gt;http://www.realvnc.com/products/download.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;SelectVNC Free Edition for Windows&lt;br /&gt;Installer including both Server and Viewer&lt;br /&gt;Follow the install wizard, which will show you how to configure a vnc server on your computer so that other computers can remote control your computer after login with password. The wizard also installs a vnc viewer, so that you can remote login and control other vnc-server installed computers.&lt;/span&gt;&lt;/span&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After installing vnc servers and clients on all your home computers. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sit in front of one of your pc, Click START -&gt;  All Programs -&gt; RealVNC -&gt; VNC viewer 4 -&gt; Run VNC viewer&lt;/div&gt;&lt;div&gt;In the server text box, type in the IP address of the remote computer and click OK. In the next screen, input the correct password and click OK. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Walla, magic.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3582697229790759902?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3582697229790759902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/how-to-remote-contorl-your-lan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3582697229790759902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3582697229790759902'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/how-to-remote-contorl-your-lan.html' title='How to remote contorl your LAN computers'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SlLL0kBmadI/AAAAAAAAAJU/GQVATGt0nFU/s72-c/VNC_Diagram_V1_w800.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1464697976697632611</id><published>2009-07-06T20:39:00.000-07:00</published><updated>2009-07-06T20:55:12.522-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>Enable File-sharing in windows xp</title><content type='html'>In my &lt;a href="http://cyberjedizen.blogspot.com/2009/07/windows-workgroup-debug-user-has-not.html"&gt;previous post&lt;/a&gt;, I have set up a workgroup on windows xp computers. In this post, I will go through a few steps to enable the simple file sharing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 1, enable simple file sharing.&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;div&gt;For winxp pro:&lt;/div&gt;&lt;div&gt;Double click My Computer -&gt; Tools -&gt; Folder Options -&gt; View -&gt; make sure "User simple file sharing [Recommended]" is checked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Step 2, modify shared documents properties.&lt;/div&gt;&lt;div&gt;For winxp Home Edition:&lt;/div&gt;&lt;div&gt;Double Click My Computer -&gt; Right Click Shared Documents  -&gt; Click Sharing tab -&gt; Check "Share this folder on the network" and "Allow network users to change my files".&lt;/div&gt;&lt;div&gt;For winxp Professional:&lt;/div&gt;&lt;div&gt;Double Click My Computer -&gt; Double Click Shared Documents -&gt; Right Click the folders you want to share and change the Sharing properties one by one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now go to START -&gt; My Network Places -&gt; Viw workgroup computers -&gt; Double Click the computer in your workgroup, the shared folder shows up. You can copy/paste or drag/drop files from/to that remote folder.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1464697976697632611?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1464697976697632611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/enable-file-sharing-in-windows-xp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1464697976697632611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1464697976697632611'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/enable-file-sharing-in-windows-xp.html' title='Enable File-sharing in windows xp'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5283879025820384581</id><published>2009-07-06T15:54:00.000-07:00</published><updated>2009-07-06T20:55:49.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>Windows workgroup debug "User has not been Granted the Requested Login Type"</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"   style="  -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:verdana;font-size:13px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;div&gt;In my &lt;a href="http://cyberjedizen.blogspot.com/2009/07/how-to-set-up-windows-home-network.html"&gt;previous post&lt;/a&gt;, I demonstrated how to set up windows workgroup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Setting up windows workgroup is easy, only if you are lucky enough.&lt;br /&gt;The most common error message ppl bumped into is:&lt;br /&gt;&lt;br /&gt;"\\xxx is not accessible. You might not have permission to use this network resource. Contact the administrator of this Server to find out if you have access permissions."&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;A lot of reason can cause the above error message.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Check the firewall settings (it may even prevent you to ping through). &lt;/div&gt;&lt;div&gt;Go to START -&gt; Control Panel -&gt; Securety Center -&gt; Windows Firewall -&gt; Select OFF&lt;/div&gt;&lt;div&gt;and see if the error gets fixed. If so, you may turn on firewall and change the firewall exceptions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Make sure user "Guest" is enabled.&lt;/div&gt;&lt;div&gt;Go to START -&gt; Control panel -&gt; User Accounts -&gt; click User Accounts -&gt; Make sure Guest is turned on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. For windows xp pro, you may need to modify the Local Security Policy to allow the Guest to access the computer from network.&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_IJxULM6OoA4/SlKfP-XO0tI/AAAAAAAAAJM/wwOhL67Mkh4/s400/localsecuritypolicy.jpg" style="cursor:pointer; cursor:hand;width: 400px; height: 296px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5355518003684233938" /&gt;&lt;/div&gt;&lt;div&gt;Go to START -&gt; Control Panel -&gt; Performance and Maintainance -&gt; Administrative Tools -&gt; Local Security Policy -&gt; Local Policy -&gt; User Rights Accessment&lt;/div&gt;&lt;div&gt;Find the key "Deny access to this computer from network", double click the key, high-light "Guest", Click remove, Click OK. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. In some odd situations, you may need to check the registry to make sure restrictanonymous key is correctly set.&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Click Start, click Run, type regedit, and then click OK.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Locate and then double-click the following registry subkey:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;On the right side, double-click restrictanonymous.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Make sure that the value in the Value data box is set to 0, and then click OK.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Close Registry Editor.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Restart the computer.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;5. If none of the above works, here is the ultimate solution from &lt;a href="http://forums.techguy.org/networking/533210-solved-user-has-not-been.html"&gt;John Will&lt;/a&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Download the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=4544"&gt;Windows Server 2003 Resource Kit Tools&lt;/a&gt; from microsoft Download center, which &lt;span&gt;&lt;span&gt;are a set of tools to help administrators streamline management tasks.&lt;br /&gt;&lt;br /&gt;After installation is complete, click on: Start -&gt; All Programs -&gt; Windows Resource Kit &lt;/span&gt;&lt;/span&gt;Tools -&gt; Command Shell&lt;br /&gt;&lt;br /&gt;Then enter the following commands. (Attention: they are case sensitive.)&lt;br /&gt;&lt;br /&gt;net user guest /active:yes&lt;br /&gt;ntrights +r SeNetworkLogonRight -u Guest&lt;br /&gt;ntrights -r SeDenyNetworkLogonRight -u Guest&lt;br /&gt;The first command enables network access for Guest, the two subsequent ones change two different policies to allow network access for Guest.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far, the errors should be clean and you should be able to double click into the computers on your local workgroup. However, nothing too interesting there except the default folder "Printers and Faxes". To enable file-sharing, we need to do a few tweeks, which will be discussed in my &lt;a href="http://cyberjedizen.blogspot.com/2009/07/enable-file-sharing-in-windows-xp.html"&gt;next post&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:verdana;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5283879025820384581?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5283879025820384581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/windows-workgroup-debug-user-has-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5283879025820384581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5283879025820384581'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/windows-workgroup-debug-user-has-not.html' title='Windows workgroup debug &quot;User has not been Granted the Requested Login Type&quot;'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SlKfP-XO0tI/AAAAAAAAAJM/wwOhL67Mkh4/s72-c/localsecuritypolicy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5269102230445443583</id><published>2009-07-06T12:18:00.000-07:00</published><updated>2009-07-06T20:28:38.211-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How to set up windows home network</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IJxULM6OoA4/SlJRhAM2UnI/AAAAAAAAAJE/SDD-Hvr_gxc/s1600-h/setnet2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 372px;" src="http://3.bp.blogspot.com/_IJxULM6OoA4/SlJRhAM2UnI/AAAAAAAAAJE/SDD-Hvr_gxc/s400/setnet2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5355432534328365682" /&gt;&lt;/a&gt;&lt;br /&gt;If you have more than 2 computers in your home, you may want to connect them together so that you can share files and resources among them.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are two types of windows network you can set up -- domains and workgroup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Windows domain is basically a server/client system, which is more secure and feature rich. How ever, you need a computer installed with Windows 2000 Server or Windows 2003 server as the dedicated domain server. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Comparably, setting up the peer to peer workgroup network is much easier on all versions of windows operation system, of course, it is not as secure.&lt;/div&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;To set up a workgroup in windows xp:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'times new roman';"&gt;&lt;ul&gt;&lt;li&gt;Right click on the My Computer icon and choose PROPERTIES from the menu.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select the COMPUTER NAME tab&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select the CHANGE button&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;In the &lt;u&gt;W&lt;/u&gt;orkgroup text box, type a workgroup name of your choice and click OK.  This workgroup name must be the SAME for all the computers in your Home Network. In the Computer name text box, type a unque name for this computer.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Now Click OK.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Click OK at the bottom of this window. When prompt for restart computer, Click OK.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Repeat the above process for all the computers in your home, remember the workgroup name must be the SAME!&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;Now your workgroup-based home network have been setup. You can find your workgroup peers by clicking START -&gt; My Network Places -&gt; View Workgroup Computers.&lt;br /&gt;If you click on the other computer in the Network it may only show you the SHARED FOLDERS that Windows sets up by default.  To view other computers Folders and Files you must now share those items.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;Better chances are you got error message such as &lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-family:Georgia;"&gt;"You might not have permission to use this network resource". Don't panic, we all got error messages. check my &lt;a href="http://cyberjedizen.blogspot.com/2009/07/windows-workgroup-debug-user-has-not.html"&gt;next post&lt;/a&gt; on how to trouble-shooting this.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:'times new roman';"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;&lt;span class="Apple-style-span"  style="font-size:16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5269102230445443583?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5269102230445443583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/how-to-set-up-windows-home-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5269102230445443583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5269102230445443583'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/how-to-set-up-windows-home-network.html' title='How to set up windows home network'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/SlJRhAM2UnI/AAAAAAAAAJE/SDD-Hvr_gxc/s72-c/setnet2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-9040439725279094465</id><published>2009-07-05T16:09:00.000-07:00</published><updated>2009-07-05T16:13:15.189-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Wordpress blog came back</title><content type='html'>I sent a message to the supporting team to explain the problem, now it's back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-9040439725279094465?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/9040439725279094465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/wordpress-blog-came-back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9040439725279094465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9040439725279094465'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/wordpress-blog-came-back.html' title='Wordpress blog came back'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4496869346370769746</id><published>2009-07-02T21:49:00.000-07:00</published><updated>2009-07-02T22:40:30.202-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Blog on WordPress got suspended</title><content type='html'>&lt;h1&gt;&lt;a href="http://wordpress.com/"&gt;&lt;img src="http://wordpress.com/wp-admin/images/wordpress-logo.png" alt="WordPress.com" /&gt;&lt;/a&gt;&lt;/h1&gt; &lt;p class="message"&gt;This blog has been archived or suspended for a violation of our &lt;a href="http://wordpress.com/tos/"&gt;Terms of Service&lt;/a&gt;.&lt;/p&gt;&lt;p class="message"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="message"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;T&lt;/span&gt;&lt;/span&gt;he above scaring image is what I saw when visiting my blog at wordpress tonight.&lt;/p&gt;&lt;p class="message"&gt;I wonder what happened to my blog?&lt;br /&gt;&lt;/p&gt;&lt;p class="message"&gt;As I google "This blog has been archived or suspended for a violation of our Terms of Service. wordpress". I realized many people got automatically banned by their Spam-Filter. Wordpress's current Spam-Filter technology using words or links alone to detect the untrustworthy content, which isn’t context-aware. They may ban ppl for a bad link in the post or ban ppl because of taking others content.&lt;br /&gt;&lt;/p&gt;&lt;p class="message"&gt;I guess a post copied from a blog caused the trouble, but I I DO put a link to the source at the first line of my post as &lt;a href="http://www.firewall.cx/ftopict-4216.html"&gt;source article&lt;/a&gt;! Anyway, I should receive an email from their supporting group soon.&lt;br /&gt;&lt;/p&gt;&lt;p class="message"&gt;By the way, complaining on the &lt;a href="http://en.forums.wordpress.com/"&gt;WordPress.com Forums&lt;/a&gt; is not an option now, because the supporting group became clever after dealing with numerous similar cases.&lt;br /&gt;&lt;/p&gt;&lt;div id="container"&gt;   &lt;div class="logo"&gt;    &lt;img src="http://en.forums.wordpress.com/bb-images/install-logo.gif" alt="bbPress Installation" /&gt;   &lt;/div&gt;  &lt;p&gt;You've been blocked.  If you think a mistake has been made, contact this site's administrator.&lt;/p&gt;  &lt;p class="last"&gt;Back to &lt;a href="http://en.forums.wordpress.com/"&gt;WordPress.com Forums&lt;/a&gt;.&lt;/p&gt;  &lt;/div&gt;  &lt;p id="footer"&gt;   &lt;a href="http://bbpress.org/"&gt;bbPress&lt;/a&gt; - simple, fast, elegant &lt;/p&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4496869346370769746?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4496869346370769746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/blog-on-wordpress-got-suspended.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4496869346370769746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4496869346370769746'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/blog-on-wordpress-got-suspended.html' title='Blog on WordPress got suspended'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5547429609970960971</id><published>2009-07-01T12:53:00.000-07:00</published><updated>2009-07-01T14:24:33.933-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How to implement network protocol</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/SkvT1x0r-LI/AAAAAAAAAI8/hdUjuK1vs9w/s1600-h/network-stack.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5353605502920816818" style="display: block; MARGIN: 0px 10px 10px 0px; WIDTH: 372px; CURSOR: hand; HEIGHT: 306px" alt="" src="http://4.bp.blogspot.com/_IJxULM6OoA4/SkvT1x0r-LI/AAAAAAAAAI8/hdUjuK1vs9w/s400/network-stack.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size:180%;"&gt;C&lt;/span&gt;ommon questions regarding the network protocols include:&lt;br /&gt;&lt;strong&gt;What is network protocol?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Why network protocol?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;How to implement network protocol?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The best way to answer the question of "What" and "Why" is looking into a helloworld-style example of network protocols -- Time Protocol. Then the question "How" will follow naturally.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Here it is: the Time Protocol, defined in RFC 868.&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper" style="HEIGHT: 550px"&gt;&lt;br /&gt;Network Working Group J. Postel - ISI&lt;br /&gt;Request for Comments: 868 K. Harrenstien - SRI&lt;br /&gt;May 1983&lt;br /&gt;Time Protocol&lt;br /&gt;&lt;br /&gt;This RFC specifies a standard for the ARPA Internet community. Hosts on&lt;br /&gt;the ARPA Internet that choose to implement a Time Protocol are expected&lt;br /&gt;to adopt and implement this standard.&lt;br /&gt;&lt;br /&gt;This protocol provides a site-independent, machine readable date and&lt;br /&gt;time. The Time service sends back to the originating source the time in&lt;br /&gt;seconds since midnight on January first 1900.&lt;br /&gt;&lt;br /&gt;One motivation arises from the fact that not all systems have a&lt;br /&gt;date/time clock, and all are subject to occasional human or machine&lt;br /&gt;error. The use of time-servers makes it possible to quickly confirm or&lt;br /&gt;correct a system's idea of the time, by making a brief poll of several&lt;br /&gt;independent sites on the network.&lt;br /&gt;&lt;br /&gt;This protocol may be used either above the Transmission Control Protocol&lt;br /&gt;(TCP) or above the User Datagram Protocol (UDP).&lt;br /&gt;&lt;br /&gt;When used via TCP the time service works as follows:&lt;br /&gt;&lt;br /&gt;S: Listen on port 37 (45 octal).&lt;br /&gt;&lt;br /&gt;U: Connect to port 37.&lt;br /&gt;&lt;br /&gt;S: Send the time as a 32 bit binary number.&lt;br /&gt;&lt;br /&gt;U: Receive the time.&lt;br /&gt;&lt;br /&gt;U: Close the connection.&lt;br /&gt;&lt;br /&gt;S: Close the connection.&lt;br /&gt;&lt;br /&gt;The server listens for a connection on port 37. When the connection&lt;br /&gt;is established, the server returns a 32-bit time value and closes the&lt;br /&gt;connection. If the server is unable to determine the time at its&lt;br /&gt;site, it should either refuse the connection or close it without&lt;br /&gt;sending anything.&lt;br /&gt;Postel [Page 1]&lt;br /&gt;&lt;br /&gt;RFC 868 May 1983&lt;br /&gt;Time Protocol&lt;br /&gt;&lt;br /&gt;When used via UDP the time service works as follows:&lt;br /&gt;&lt;br /&gt;S: Listen on port 37 (45 octal).&lt;br /&gt;&lt;br /&gt;U: Send an empty datagram to port 37.&lt;br /&gt;&lt;br /&gt;S: Receive the empty datagram.&lt;br /&gt;&lt;br /&gt;S: Send a datagram containing the time as a 32 bit binary number.&lt;br /&gt;&lt;br /&gt;U: Receive the time datagram.&lt;br /&gt;&lt;br /&gt;The server listens for a datagram on port 37. When a datagram&lt;br /&gt;arrives, the server returns a datagram containing the 32-bit time&lt;br /&gt;value. If the server is unable to determine the time at its site, it&lt;br /&gt;should discard the arriving datagram and make no reply.&lt;br /&gt;&lt;br /&gt;The Time&lt;br /&gt;&lt;br /&gt;The time is the number of seconds since 00:00 (midnight) 1 January 1900&lt;br /&gt;GMT, such that the time 1 is 12:00:01 am on 1 January 1900 GMT; this&lt;br /&gt;base will serve until the year 2036.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;the time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT,&lt;br /&gt;&lt;br /&gt;2,398,291,200 corresponds to 00:00 1 Jan 1976 GMT,&lt;br /&gt;&lt;br /&gt;2,524,521,600 corresponds to 00:00 1 Jan 1980 GMT,&lt;br /&gt;&lt;br /&gt;2,629,584,000 corresponds to 00:00 1 May 1983 GMT,&lt;br /&gt;&lt;br /&gt;and -1,297,728,000 corresponds to 00:00 17 Nov 1858 GMT.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;After reading through the 2 page definition document, which is self-explaining, we can see&lt;br /&gt;&lt;strong&gt;A protocol&lt;/strong&gt; is a set of rules used by computers to communicate with each other across a network. In the case of Time Protocol, it defines the way Server and User communicate about the time and the syntax of the time.&lt;br /&gt;&lt;br /&gt;At this point, we are eager to materialize the protocol with the Time server and the Time client. But wait, questions:&lt;br /&gt;&lt;em&gt;Question #1: What is the time format to use?&lt;/em&gt;&lt;br /&gt;Let's check RFC 868 -- Aha, "The time is the number of seconds since 00:00 (midnight) 1 January 1900GMT, such that the time 1 is 12:00:01 am on 1 January 1900 GMT; thisbase will serve until the year 2036." Clear enough.&lt;br /&gt;&lt;em&gt;Question #2: Where to start?&lt;/em&gt;&lt;br /&gt;Let's check the RFC 868 again:&lt;br /&gt;"This protocol may be used either above the Transmission Control Protocol(TCP) or above the User Datagram Protocol (UDP)."&lt;br /&gt;Ok, now we know, we can build our server-client on top of TCP or UDP service (usually provided by code libraries). Sure enough, Java/C/Python/Perl... all have socket library which allow an application to connect to ports on remote host, listen to local port, send data, receive data, close connection, etc. So, very doable!&lt;br /&gt;&lt;em&gt;Question #3: How to synchronize the server and client?&lt;/em&gt;&lt;br /&gt;Let's check the RFC 868 again (and again):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper" style="HEIGHT: 250px"&gt;&lt;br /&gt;When used via TCP the time service works as follows:&lt;br /&gt;&lt;br /&gt;S: Listen on port 37 (45 octal).&lt;br /&gt;&lt;br /&gt;U: Connect to port 37.&lt;br /&gt;&lt;br /&gt;S: Send the time as a 32 bit binary number.&lt;br /&gt;&lt;br /&gt;U: Receive the time.&lt;br /&gt;&lt;br /&gt;U: Close the connection.&lt;br /&gt;&lt;br /&gt;S: Close the connection.&lt;br /&gt;&lt;br /&gt;The server listens for a connection on port 37. When the connection&lt;br /&gt;is established, the server returns a 32-bit time value and closes the&lt;br /&gt;connection. If the server is unable to determine the time at its&lt;br /&gt;site, it should either refuse the connection or close it without&lt;br /&gt;sending anything.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That's almost the pseudo code!&lt;br /&gt;&lt;br /&gt;Before we jump right into the code, notice protocols may be implemented by hardware, software, or a combination of the two. When implemented in software, the programming language doesn't matter. As long as the implementation follow the protocol defined in RFC xxx, it shall work, that's why we need network protocols!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Implementaion in Python&lt;/strong&gt;&lt;br /&gt;time_client.py&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper" style="HEIGHT: 250px"&gt;&lt;br /&gt;# File:time_client.py&lt;br /&gt;import socket&lt;br /&gt;import struct, time&lt;br /&gt;# server&lt;br /&gt;HOST = "www.python.org"&lt;br /&gt;PORT = 37&lt;br /&gt;# reference time (in seconds since 1900-01-01 00:00:00)&lt;br /&gt;TIME1970 = 2208988800L # 1970-01-01 00:00:00&lt;br /&gt;# connect to server&lt;br /&gt;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;s.connect((HOST, PORT))&lt;br /&gt;# read 4 bytes, and convert to time value&lt;br /&gt;t = s.recv(4)&lt;br /&gt;t = struct.unpack("!I", t)[0]&lt;br /&gt;t = int(t - TIME1970)&lt;br /&gt;s.close()&lt;br /&gt;# print results&lt;br /&gt;print "server time is", time.ctime(t)&lt;br /&gt;print "local clock is", int(time.time()) - t, "seconds off"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;time_server.py&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper" style="HEIGHT: 250px"&gt;&lt;br /&gt;# File:time_server.py&lt;br /&gt;import socket&lt;br /&gt;import struct, time&lt;br /&gt;# user-accessible port&lt;br /&gt;PORT = 8037&lt;br /&gt;# reference time&lt;br /&gt;TIME1970 = 2208988800L&lt;br /&gt;# establish server&lt;br /&gt;service = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;service.bind(("", PORT))&lt;br /&gt;service.listen(1)&lt;br /&gt;print "listening on port", PORT&lt;br /&gt;while 1:&lt;br /&gt;# serve forever&lt;br /&gt;channel, info = service.accept()&lt;br /&gt;print "connection from", info&lt;br /&gt;t = int(time.time()) + TIME1970&lt;br /&gt;t = struct.pack("!I", t)&lt;br /&gt;channel.send(t) # send timestamp&lt;br /&gt;channel.close() # disconnect&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5547429609970960971?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5547429609970960971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/network-working-group-j.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5547429609970960971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5547429609970960971'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/network-working-group-j.html' title='How to implement network protocol'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IJxULM6OoA4/SkvT1x0r-LI/AAAAAAAAAI8/hdUjuK1vs9w/s72-c/network-stack.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5368663000685910659</id><published>2009-07-01T11:36:00.000-07:00</published><updated>2009-07-01T12:05:11.039-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>Learn Network Basics With Interesting Video</title><content type='html'>The interesting movie follows the life journey of a network packet in the net.&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ve7_4ot-Dzs&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Ve7_4ot-Dzs&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;His journey starts from the web browser, where he was born at a click then met his fellow citizens ICMP ping packets, ping of death packets, TCP packets, UDP packets, AppleTalk packets... He went out from the LAN, entered into the WAN, reached his destination LAN and finally found the web server he is looking for. During the journey, he met a lot of vivid characters such as web browser, proxy server, router, firewall, router switch, internet backbone,webserver...&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5368663000685910659?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5368663000685910659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/network-basics-visualized-tutorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5368663000685910659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5368663000685910659'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/07/network-basics-visualized-tutorial.html' title='Learn Network Basics With Interesting Video'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7162409259611013546</id><published>2009-06-26T12:19:00.000-07:00</published><updated>2009-06-26T12:44:01.846-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How to redirect gmail</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/SkUkqMTUTNI/AAAAAAAAAI0/pa_V9kbSq3o/s1600-h/gmail.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5351724039475055826" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 96px" alt="" src="http://4.bp.blogspot.com/_IJxULM6OoA4/SkUkqMTUTNI/AAAAAAAAAI0/pa_V9kbSq3o/s400/gmail.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/SkUkN8zxazI/AAAAAAAAAIo/ggD2YjDKruM/s1600-h/gmail.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;You can redirect the emails sent to your gmail account to other email address.&lt;br /&gt;&lt;strong&gt;Step 1&lt;br /&gt;&lt;/strong&gt;On the upper-right corner of your gmail webpage, Select&lt;br /&gt;Settings -&gt; Forwarding and POP/IMAP &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Step 2&lt;br /&gt;&lt;/strong&gt;In the "Forwarding:" tab&lt;br /&gt;click the radio button in front of "Forward a copy of incoming mail to" &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Step 3&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;In the textbox "email address", change "email address" to the email address you want to foward to.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Press save changes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7162409259611013546?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7162409259611013546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-redirect-gmail.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7162409259611013546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7162409259611013546'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-redirect-gmail.html' title='How to redirect gmail'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IJxULM6OoA4/SkUkqMTUTNI/AAAAAAAAAI0/pa_V9kbSq3o/s72-c/gmail.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4512076790286641130</id><published>2009-06-26T10:16:00.000-07:00</published><updated>2009-06-26T10:35:05.560-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gargon buster'/><category scheme='http://www.blogger.com/atom/ns#' term='what&apos;s this'/><title type='text'>What is Spam2.0</title><content type='html'>I bumped into a new jargon "Spam2.0" or "Spam 2.0" recently.&lt;br /&gt;&lt;br /&gt;After some research, I found out the word "Spam2.0" or "Spam 2.0" is originated from a post on Official Google WebMaster Center Blog by Jason Morrison, a member of Search Quality Team today. There is no google product called "Spam2.0" or "Spam 2.0" so far. The author seems to refer to spam targeting Web2.0 websites as "Spam2.0" or "Spam 2.0".&lt;br /&gt;&lt;br /&gt;original &lt;a href="http://googlewebmastercentral.blogspot.com/2009/06/spam20-fake-user-accounts-and-spam.html"&gt;post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4512076790286641130?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4512076790286641130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-spam20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4512076790286641130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4512076790286641130'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-spam20.html' title='What is Spam2.0'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7646802855321186883</id><published>2009-06-25T13:59:00.000-07:00</published><updated>2009-06-25T14:15:54.238-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>Whois databases</title><content type='html'>The main whois database for the top-level domains ".com", ".net", and ".org" can be searched through any of the following sites:&lt;br /&gt;&lt;a href="http://www.internic.net/whois.html" target="livinginternet_ext"&gt;The InterNIC Whois Search&lt;/a&gt; *&lt;br /&gt;&lt;a href="http://www.internic.net/alpha.html" target="livinginternet_ext"&gt;Domain registrars&lt;/a&gt; -- each with their own whois database&lt;br /&gt;&lt;a href="http://www.betterwhois.com/" target="livinginternet_ext"&gt;BetterWhois.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allwhois.com/" target="livinginternet_ext"&gt;AllWhois.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.switch.ch/search/whois_form.html" target="livinginternet_ext"&gt;SWITCH Whois Gateway&lt;/a&gt;&lt;br /&gt;&lt;a href="http://directory.google.com/Top/Computers/Internet/Domain_Names/Name_Search/" target="livinginternet_ext"&gt;Google - Domain Name Search&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dir.yahoo.com/Computers_and_Internet/Internet/Directory_Services/Whois/" target="livinginternet_ext"&gt;Yahoo Whois Directory&lt;/a&gt;&lt;br /&gt;The following Whois databases can be searched for information on other areas of the &lt;a href="http://www.livinginternet.com/"&gt;Internet&lt;/a&gt;, including Asian, Caribbean, European, and Latin American countries, and the ".mil" and ".gov" domains:&lt;br /&gt;&lt;a href="http://www.arin.net/whois/index.html" target="livinginternet_ext"&gt;American Registry for Internet Numbers Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apnic.net/" target="livinginternet_ext"&gt;Asia Pacific IP Address Allocations Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ripe.net/whois" target="livinginternet_ext"&gt;European IP Address Allocations Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lacnic.net/cgi-bin/lacnic/whois"&gt;Latin American and Caribbean Internet Addresses Registry&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.nic.mil/" target="livinginternet_ext"&gt;US Military Whois&lt;/a&gt; - requires authorization to access&lt;br /&gt;&lt;a href="http://www.dotgov.gov/whois.aspx" target="livinginternet_ext"&gt;US Government Whois&lt;/a&gt;&lt;br /&gt;Matt Power's &lt;a href="ftp://sipb.mit.edu/pub/whois/whois-servers.list" target="livinginternet_ext"&gt;Whois Servers List&lt;/a&gt; provides a long list of searchable world wide whois database servers.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7646802855321186883?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7646802855321186883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/whois-databases.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7646802855321186883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7646802855321186883'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/whois-databases.html' title='Whois databases'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7544099131376673357</id><published>2009-06-25T13:21:00.000-07:00</published><updated>2009-06-26T10:35:32.943-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gargon buster'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>What is spam hunting</title><content type='html'>A favorite sport among many people is spammer hunting. It begins when you receive a piece of spam in the mail. Instead of deleting it, spam hunters track down who sent it, and take action, usually resulting in a loss of account for the spammer.&lt;br /&gt;&lt;br /&gt;To find out the spam source, check out the &lt;a href="http://cyberjedizen.blogspot.com/2009/06/whois-databases.html"&gt;Whois database&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If the address is hosted at a legitimate provider such as yahoo, google, they usually have a team to address violation of their terms of usage such as spamming, and you can fill the response forms at their web site to report the problem. They will often close the account.&lt;br /&gt;&lt;br /&gt;If the address is part of a larger site like a community home page site, then you can complain to that site's administrators -- they will often close the user's account.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7544099131376673357?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7544099131376673357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-spam-hunter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7544099131376673357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7544099131376673357'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-spam-hunter.html' title='What is spam hunting'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5705970887678347143</id><published>2009-06-25T12:33:00.000-07:00</published><updated>2009-06-26T14:22:37.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How do spammers get email addresses?</title><content type='html'>Be aware that vicious spammers can collect the spam list in various ways, the best way to protect yourself from spam is not to give out the email address publicly.&lt;br /&gt;&lt;br /&gt;Spammer can generally get your email address in the following ways:&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;From Spambot harvest&lt;/strong&gt;&lt;br /&gt;Spambots is a software like scrawl and spider, which basically follow links and grab email addresses from "mailto" links. Spambots can scour usernet/newsgroups/webpage/blogs and grab email addresses from post body and newsreader settings.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;From a mailing list&lt;br /&gt;&lt;/strong&gt;Spammers join a mailing list, then gather the email addresses of the members, either from a list of the members provided by the mailing list software, or from people as they post.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;From email reply&lt;/strong&gt;&lt;br /&gt;The spammer can got your email address from mail-servers using &lt;a href="http://cyberjedizen.blogspot.com/2009/06/what-is-dictionary-attack.html"&gt;dictionary attacks&lt;/a&gt; then send you a email requesting for a reply. The email can be anything from "if you are interested please reply" or "if you want to be removed from the mailing list, please reply". If you replied, the spammer's email address was verified as valid by your email-server then the spammer can sent you more spam in the future.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;From other spammers&lt;br /&gt;&lt;/strong&gt;Some spammers harvest the email address then sell it to other spammers using "Over 1 million email addresses on a CD"&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5705970887678347143?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5705970887678347143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-do-spammers-get-email-addresses.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5705970887678347143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5705970887678347143'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-do-spammers-get-email-addresses.html' title='How do spammers get email addresses?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1700941186764656951</id><published>2009-06-25T12:13:00.000-07:00</published><updated>2009-06-26T10:35:57.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gargon buster'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>What is dictionary attack</title><content type='html'>Dictionary attack is an old cracker's trick aiming for vulnerable e-mail servers such as Hotmail and MSN servers. The cracker utilizes software that opens a connection to the mail server and then automatically submits random e-mail addresses. Many of these addresses are similar, such as "JONATHANjm8q631rj7ROSENBLATT@hotmail.com" and "JONATHANjm8q631rj8ROSENBLATT@hotmail.com." The software then records which addresses are "live" and adds the addresses to the spammer's list. Many mail server nowadays protected against dictinary attack.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1700941186764656951?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1700941186764656951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-dictionary-attack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1700941186764656951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1700941186764656951'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-dictionary-attack.html' title='What is dictionary attack'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8514005350866993821</id><published>2009-06-25T08:33:00.000-07:00</published><updated>2009-06-25T13:32:22.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Spammer alert "Leve LED unique jewellery atelier"</title><content type='html'>A company claimed "Leve LED unique jewellery atelier" sent out a lot of emails through multiple hotmail accounts asking the user to submit resume to level.dep@gmail.com or leveldep@gmail.com ...&lt;br /&gt;&lt;br /&gt;This company seems to be a spammer, they maybe use software to register many slightly different accounts from Hotmail and MSN servers, then use those hotmail accounts to spread the spam and collect personal informations in a few gmail accounts. Google have disabled the gmail accounts mentioned above, but those hotmail accounts are still at large. Learn &lt;a href="http://cyberjedizen.blogspot.com/2009/06/how-do-spammers-get-email-addresses.html"&gt;how spammer get your email address&lt;/a&gt; and &lt;a href="http://cyberjedizen.blogspot.com/2009/06/what-is-spam-hunter.html"&gt;spam hunting&lt;/a&gt;.&lt;br /&gt;&lt;span class="fullpost"&gt;The spam email looks like the following:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;p&gt;“Hello!&lt;br /&gt;&lt;br /&gt;My name is Beata Hellmyrs and I am representative of Leve LED unique jewellery atelier. Our atelier is looking for a responsible and dedicated person on the position of purchasing agent.&lt;br /&gt;&lt;br /&gt;The main responsibility is to deal with individual orders of our customers.&lt;br /&gt;&lt;br /&gt;Salary: USD 3000 per month.&lt;br /&gt;&lt;br /&gt;Timing: free schedule, part-time.&lt;br /&gt;&lt;br /&gt;Requirements: good employment history (not necessarily in procurement field), ability to meet the deadlines and good analytical skills.&lt;br /&gt;&lt;br /&gt;Employment: contract-base position for a foreign company (Our atelier is located in Sweden, Stockholm)&lt;br /&gt;&lt;br /&gt;Training and supervisory during starting period are provided.&lt;br /&gt;&lt;br /&gt;More information about the position you'll be able to learn during phone interview.&lt;br /&gt;&lt;br /&gt;If you are interested in our job proposal, please send us your resume leveldep@gmail.com and we will contact you.&lt;br /&gt;&lt;br /&gt;Thank you!”&lt;/p&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8514005350866993821?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8514005350866993821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/spammer-alert-leve-led-unique-jewellery.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8514005350866993821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8514005350866993821'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/spammer-alert-leve-led-unique-jewellery.html' title='Spammer alert &quot;Leve LED unique jewellery atelier&quot;'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3031644320719920696</id><published>2009-06-22T07:54:00.000-07:00</published><updated>2009-06-22T11:24:35.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>binary, decimal, and hex numbers</title><content type='html'>There are three major number systems in network, binary, decimal and hex numbers.&lt;br /&gt;The binary numeral system, or base-2 number system represents numeric values using two symbols, usually 0 and 1.&lt;br /&gt;The decimal number system, or base-10 number system represents numeric values using 10 symbols, 0,1,2,3,4,5,6,7,8,9, which we use everyday.&lt;br /&gt;The hex number system, or base-16 number system represents numeric values using 16 symbols, 0,1,2,...8,9, a, b, c, d, e, f.&lt;br /&gt;&lt;br /&gt;For example, a subnet mask 255.255.255.224, can be expressed in binary as 11111111.11111111.11111111.11100000, in decimal as 255.255.255.224 or in hex as ff.ff.ff.e0.&lt;br /&gt;&lt;br /&gt;In cyber world, binary and hex reign, owing to their straightforward implementation in digital electronic circuitry using logic gates. Binary and hex are actually much simpler than decimal, if we can cast away our prejudice for these "strangers".&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Since both binary and hex are machine friendly, it is very simple to convert between them.&lt;br /&gt;16 = 2^4, so it takes four digits of binary to represent one digit of hexadecimal.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Binary to Hex convert&lt;/strong&gt;&lt;br /&gt;Given a binary number 11100000, we divide it into 4 digits groups as 1110,0000, then convert each group to its hex counter part, d for 1110 (1111 is f, so 1110 is f minus 1 -- d) and 0 for 0000, thus the answer e0.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hex to Binary convert&lt;/strong&gt;&lt;br /&gt;The same applied to hex-binary convert. Given hex number f0, we divide it into two groups as f,0, then convert each group to its binary counter part, f for 1111, 0 for 0000, thus the answer 11110000.&lt;br /&gt;&lt;br /&gt;Convert from hex and binary to decimal or vise versa is a little bit harder, because there's no natural relationship between them. (By the way, Arab mathematician Abu'l-Hasan al-Uqlidisi invented the decimal number system. If he picked 16 instead of 10 as the base number from the beginning, he would have saved us zillions of headach!!)&lt;br /&gt;&lt;br /&gt;A decimal number 224 have value:&lt;br /&gt;224 = 2*base^2 + 2*base^1 + 4*base^0 = 2*100 + 2*10 + 4, the same rule applied to binary and hex.&lt;br /&gt;&lt;strong&gt;Binary to Decimal convert&lt;/strong&gt;&lt;br /&gt;Given binary number 11100000, we begin from the most significent bit (leftmost), the first 1 is at the eighth bit, thus represents value 1*base^(8-1) = 1*2^7 = 128. The second 1 is at the seventh bit, thus represents value 1*base^(7-1) = 2^6 = 64, the third one 2^5 = 32, the first 0 represents 0*2^4 = 0... Finally the value is 128+64+32+0+0+0....+0 = 224.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hex to Decimal convert&lt;/strong&gt;&lt;br /&gt;Given hex number e0, we begin from the most significent bit (leftmost), the first e is at the second bit, thus represents value e*base^(2-1) = 14*16^1 = 224. The second 0 is at the first bit, thus represents value 0*base^(1-1) = 0*16^0 = 0. Finally the value is 224+0 = 224.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Decimal to Binary convert&lt;/strong&gt;&lt;br /&gt;Short division by two with remainder, it relies only on division by two.&lt;br /&gt;Given decimal number 224, write the decimal number as the dividend inside an upside-down "long division" symbol. Write the base of the destination system (in our case, "2" for binary) as the divisor outside the curve of the division symbol.&lt;br /&gt;2)224&lt;br /&gt;_______&lt;br /&gt;&lt;br /&gt;Write the integer answer (quotient) under the long division symbol, and write the remainder (0 or 1) to the right of the dividend.&lt;br /&gt;2)224 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;112&lt;br /&gt;Continue downwards, dividing each new quotient by two and writing the remainders to the right of each dividend. Stop when the quotient is 1.&lt;br /&gt;2)224 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2)112 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2 )56 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2 )28 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2 )14 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2 ) 7 &lt;em&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2 ) 3 &lt;em&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2) 1 &lt;em&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;2) 0 0&lt;br /&gt;_______&lt;br /&gt;&lt;br /&gt;Starting with the bottom 1, read the sequence of 1's and 0's upwards to the top. You should have 11100000. This is the binary equivalent of the decimal number 224.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hex to Binary convert&lt;/strong&gt;&lt;br /&gt;Short division by 16 with remainder, it relies only on division by 16.&lt;br /&gt;Given decimal number 224, write the decimal number as the dividend inside an upside-down "long division" symbol. Write the base of the destination system (in our case, "16" for hex) as the divisor outside the curve of the division symbol.&lt;br /&gt;16)224&lt;br /&gt;_______&lt;br /&gt;Write the integer answer (quotient) under the long division symbol, and write the remainder (0 to f) to the right of the dividend.&lt;br /&gt;16)224 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;14&lt;br /&gt;Continue downwards, dividing each new quotient by 16 and writing the remainders to the right of each dividend. Stop when the quotient is less than 16.&lt;br /&gt;16)224 &lt;em&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;16) 14 &lt;em&gt;&lt;strong&gt;e&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;_______&lt;br /&gt;Starting with the bottom, read the sequence of digits upwards to the top. You should have e0. This is the hex equivalent of the decimal number 224.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3031644320719920696?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3031644320719920696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/binary-decimal-and-hex-numbers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3031644320719920696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3031644320719920696'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/binary-decimal-and-hex-numbers.html' title='binary, decimal, and hex numbers'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8681442920936581033</id><published>2009-06-19T08:03:00.000-07:00</published><updated>2009-06-19T08:54:13.769-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Apple released a new iPhone today</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjuzyL-IcEI/AAAAAAAAAIY/oPmsVmb-6Qo/s1600-h/hero-intro-20090608.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5349066657220816962" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 155px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjuzyL-IcEI/AAAAAAAAAIY/oPmsVmb-6Qo/s320/hero-intro-20090608.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;Apple Inc. release a new iPhone today. It’s now selling the 8-gigabyte version of the year-old iPhone 3G for $99, half the original price. Analysits predicts a 500,000 sell this weekend. At this moment, the apple stock is 138.50, rose 2.6 percent in Nasdaq Stock Market trading. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;In the background of economy downturn and the recent recovery signs, apple's strategy seems to using massive production to compensate the 50% price cut and gaining more market share from its rivals like Palm and RIM. As the the recession easing at the third quarter and consummers spend more, apple together with AT&amp;amp;T could expand its bussiness easily riding the trend of another economy upturn. Just think about the potential market -- moving most of the desk top applications onto the smart phone and re-invent your living room by integrating your TV, home studio, video game, social network, internet, etc. into one smart system. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8681442920936581033?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8681442920936581033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/apple-released-new-iphone-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8681442920936581033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8681442920936581033'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/apple-released-new-iphone-today.html' title='Apple released a new iPhone today'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SjuzyL-IcEI/AAAAAAAAAIY/oPmsVmb-6Qo/s72-c/hero-intro-20090608.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6004105462594164695</id><published>2009-06-17T11:48:00.000-07:00</published><updated>2009-06-22T11:41:21.173-07:00</updated><title type='text'>Cisco's 3 Layered Model</title><content type='html'>Over years of building network equipment, Cisco Systems has developed a three Layered model. Starting with the basics, the Cisco network is traditionally defined as a three-tier hierarchical model comprising the core, distribution, and access layers. Cisco both developed their system according to this model and recommend their end-users to follow the same philosophy.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;History&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;The cisco three layered model is originated from the enterprise campus network which has evolved over the last 20 years.&lt;br /&gt;&lt;br /&gt;Early LAN-based computer networks were made of small number of simply connected servers, PCs and printers. The first generation of campus networks came into form by interconnecting these LANs. Problems in one area of the network ofter impacted the entire network and a failure in one part of the campus often affected the entire campus network.&lt;br /&gt;&lt;br /&gt;To address the above problems, Cisco borrowed the structured programming design principle from software engineer. Based on two complementary principles: hierarchy and modularity, large complex Cisco system must be built using a set of modularized components that can be assembled in a hierarchical and structured manner. The hierarchy is Cisco's three Layered Model.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Discription of Cisco Layers&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Core Layer&lt;/strong&gt;&lt;br /&gt;The core layer is literally the internet backbone, the simplest yet most critical layer. The primary purpose of the core is to provide fault isolation and backbone connectivity, in another words, the core must be highly reliable and switch traffic as fast as possible. Therefore, on one hand, the core must provide the appropriate level of redundancy to allow fault tolerance in case of hardware/software failure or upgrade; on the other hand, the high-end switches and high-speed cables are implemented to achieve High data transfer rate and Low latency period.&lt;br /&gt;&lt;br /&gt;The core means to be simple and provides a very limited set of services. We shouldn't implement complex policy services or attach user/server connections directly at this layer.&lt;br /&gt;&lt;br /&gt;Examples of core layer Cisco equipment include:&lt;br /&gt;Cisco switches such as 7000, 7200, 7500, and 12000 (for WAN use)&lt;br /&gt;Catalyst switches such as 6000, 5000, and 4000 (for LAN use)&lt;br /&gt;T-1 and E-1 lines, Frame relay connections, ATM networks, Switched Multimegabit Data Service (SMDS)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Distribution Layer&lt;/strong&gt;&lt;br /&gt;The distribution layer acts as an interface between the access layer and the core layer. The primary function of the distribution layer is to provide routing, filtering, and WAN access and to determine how packets can access the core, if needed.&lt;br /&gt;&lt;br /&gt;While core layer and access layer are special purpose layers, the distribution layer on the other hand serves multiple purposes. It is an aggregation point for all of the access layer switches and also participates in the core routing design. This layer includes LAN-based routers and OSI layer 3 switches. It ensures that packets are properly routed between subnets and VLANs.&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Access Layer&lt;/strong&gt;&lt;br /&gt;The access layer is sometimes referred to as the desktop layer. The network resources the workgroup and users needed will be available locally.&lt;br /&gt;&lt;br /&gt;The access layer is the edge of the entire network, where wide variety of types of consumer devices such as PCs, printers, cameras attach to the wired portion of the network, various services provided, and dynamic configuration mechanisms implemeted. As a result, the access layer is most feature-rich layer of the Cisco three layered model.&lt;br /&gt;&lt;br /&gt;List 1 lists examples of the types of services and capabilities that need to be defined and supported in the access layer of the network.&lt;br /&gt;&lt;br /&gt;Enable MAC address filtering: It is possible to program a switch to allow only certain systems to access the connected LANs.&lt;br /&gt;Create separate collision domains: A switch can create separate collision domains for each connected node to improve performance.&lt;br /&gt;Share bandwidth: You can allow the same network connection to handle all data.&lt;br /&gt;Handle switch bandwidth: You can move data from one network to another to perform load balancing.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/osi-model-vs-tcpip-model-vs-cisco-3.html"&gt;^up&lt;br /&gt;&lt;/a&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6004105462594164695?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6004105462594164695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/ciscos-3-layered-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6004105462594164695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6004105462594164695'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/ciscos-3-layered-model.html' title='Cisco&apos;s 3 Layered Model'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3348552384000456081</id><published>2009-06-17T11:33:00.000-07:00</published><updated>2009-06-22T11:40:49.428-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>TCP/IP Layered Model</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/Sjk5pnVtoaI/AAAAAAAAAIQ/pnsC6vxsfus/s1600-h/300px-G0209_TCPIP_vs_OSI.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348369419576648098" style="WIDTH: 300px; CURSOR: hand; HEIGHT: 237px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/Sjk5pnVtoaI/AAAAAAAAAIQ/pnsC6vxsfus/s400/300px-G0209_TCPIP_vs_OSI.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The TCP/IP model was created by the U.S. Department of Defencse (DoD), to create a network that could survive any conditions. Some of the layers in the TCP/IP model have the same names as layers in the OSI model. TCP/IP is a "protocal specific" model while OSI model is "protocal independent" model.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Application Layer&lt;/strong&gt;: Include the OSI Application, Presentation and Session Layer.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Transport Layer&lt;/strong&gt;: Similar to OSI, with transmission control protocol (TCP) and user datagram protocal (UDP) operating at this layer.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Internet Layer&lt;/strong&gt;: Similar to OSI Network layer. IP resides at this layer.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Network Access Layer&lt;/strong&gt;: Combines all functionality of physical and Data Link layers of OSI model.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Normally, application programmers are concerned only with interfaces in the Application Layer and often also in the Transport Layer, while the layers below are services provided by the TCP/IP stack in the operating system. Microcontroller firmware in the network adapter typically handles Network Access issues, supported by driver software in the operational system. Non-programmable analog and digital electronics are normally in charge of the physical components in the Network Access Layer, typically using an ASIC chipset for each network interface or other physical standard. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/osi-model-vs-tcpip-model-vs-cisco-3.html"&gt;^up&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3348552384000456081?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3348552384000456081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/tcpip-layered-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3348552384000456081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3348552384000456081'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/tcpip-layered-model.html' title='TCP/IP Layered Model'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/Sjk5pnVtoaI/AAAAAAAAAIQ/pnsC6vxsfus/s72-c/300px-G0209_TCPIP_vs_OSI.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5886642079821401434</id><published>2009-06-17T10:27:00.001-07:00</published><updated>2009-06-17T10:27:58.519-07:00</updated><title type='text'>What's a browser</title><content type='html'>&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o4MwTvtyrUQ&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/o4MwTvtyrUQ&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt; &lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber Jedi"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5886642079821401434?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5886642079821401434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/whats-browser.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5886642079821401434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5886642079821401434'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/whats-browser.html' title='What&apos;s a browser'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2293963137048084574</id><published>2009-06-17T09:07:00.001-07:00</published><updated>2009-06-17T09:25:51.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Bing continue to gain market share</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/SjkVEiSWISI/AAAAAAAAAII/6MgNrZFEBDg/s1600-h/picture-45.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348329200146587938" style="DISPLAY: block; MARGIN: 0px 0px 10px 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 212px" alt="" src="http://4.bp.blogspot.com/_IJxULM6OoA4/SjkVEiSWISI/AAAAAAAAAII/6MgNrZFEBDg/s400/picture-45.png" border="0" /&gt;&lt;/a&gt; Microsoft Corp.'s new Bing search engine was available two weeks ago, with a $100 million marketing campain.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Just in two weeks, Microsoft's share of search results pages -- a measure of the intensity of search activity by online users -- rose to 12.1% between June 8 and June 12.&lt;br /&gt;&lt;br /&gt;It is unclear, if bing will shake the dominate position of Google and Yahoo which have U.S. market share around 60% and 20% respectively.&lt;br /&gt;&lt;br /&gt;Compared with Google, bing has a more attractive user interface, and optimized for searching on shopping, travel, health and local businesses. Rumors said, Larry Page had teamed up his top experts to analyze the bing's algorithms. The war is coming? Let's see.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2293963137048084574?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2293963137048084574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/bing-continue-to-gain-market-share.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2293963137048084574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2293963137048084574'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/bing-continue-to-gain-market-share.html' title='Bing continue to gain market share'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IJxULM6OoA4/SjkVEiSWISI/AAAAAAAAAII/6MgNrZFEBDg/s72-c/picture-45.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4861145256806830339</id><published>2009-06-17T08:31:00.000-07:00</published><updated>2009-06-17T08:46:34.113-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Obama Sees 10% Unemployment Rate</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjkPqjUzagI/AAAAAAAAAIA/RzM8u1rXanM/s1600-h/obama8.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348323256190593538" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 300px; CURSOR: hand; HEIGHT: 375px" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjkPqjUzagI/AAAAAAAAAIA/RzM8u1rXanM/s400/obama8.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;June 17 -- In an interview of the President yesterday by Hunt, Obama predicted the jobless rate will continue to climb from its current 25-year high of 9.4 percent as employers are slow to take on new workers.&lt;/div&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Hunt: Will unemployment reach 10%?&lt;br /&gt;President: “Yes,”&lt;br /&gt;Hunt: Before the end of this year?&lt;br /&gt;President: “Yes,”&lt;br /&gt;President: “I think that what you’ve seen is that the pace of job loss has slowed and I think that the economy is going to turn around. But as you know, jobs are a lagging indicator. And we've got to produce 150,000 jobs every month just to keep pace. we will end up seeing recovery shortly.”&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4861145256806830339?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4861145256806830339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/obama-sees-10-unemployment-rate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4861145256806830339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4861145256806830339'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/obama-sees-10-unemployment-rate.html' title='Obama Sees 10% Unemployment Rate'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjkPqjUzagI/AAAAAAAAAIA/RzM8u1rXanM/s72-c/obama8.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6756122317081582209</id><published>2009-06-17T08:12:00.000-07:00</published><updated>2009-06-17T08:37:37.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Biggest Health Care Reform in US history is coming</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjkLcnlPkCI/AAAAAAAAAH4/OPfGzd9NRIg/s1600-h/healthcare.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 350px; height: 288px;" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjkLcnlPkCI/AAAAAAAAAH4/OPfGzd9NRIg/s400/healthcare.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5348318618768609314" /&gt;&lt;/a&gt;&lt;br /&gt;June 17 (Bloomberg) -- The largest expansion of U.S. health care since the creation of Medicare in 1965 may emerge from legislation designed to reshape the medical industry and change how Americans receive and pay for care.&lt;br /&gt;&lt;br /&gt;Congress today begins crafting legislation that Democratic leaders plan to push through both chambers by their August recess. The measure may require all Americans to get medical insurance, force insurers to accept all patients and end the tax break for employer-paid health benefits. These changes may be hammered out with unprecedented speed at the urging of President Barack Obama, who four days ago said “this is the moment.” The U.S. will spend more than $2 trillion this year on health care, the Health and Human Services department reported in February.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Obama has made a health-care overhaul his top domestic priority, using his February budget proposal to call it a “moral” imperative to extend coverage to the country’s 46 million uninsured. Obama also tied the long-term fiscal soundness of the U.S. to controlling medical costs. Health care consumes 18 percent of the U.S. economy and may rise to 34 percent by 2040, the White House Council of Economic Advisers reported June 2. The coming weeks will be pivotal if the House and Senate are to meet their goal to send Obama a single bill in October. “The president wants a bill by Oct. 15,” Baucus said in an interview yesterday. “He’ll get it.”&lt;br /&gt;&lt;br /&gt;One issue is taxing employer-provided health benefits, which Obama opposed during his presidential campaign. In an interview yesterday with Bloomberg News, Obama said he wouldn’t rule out such a proposal.&lt;br /&gt;&lt;br /&gt;“I don’t want to predetermine the best way to do this,” he said. “I’ve already put forward what I think is the best way. Let me see what comes out of the Hill and we’ll have that debate then.”&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6756122317081582209?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6756122317081582209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/biggest-shift-in-us-health-care-may.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6756122317081582209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6756122317081582209'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/biggest-shift-in-us-health-care-may.html' title='Biggest Health Care Reform in US history is coming'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjkLcnlPkCI/AAAAAAAAAH4/OPfGzd9NRIg/s72-c/healthcare.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6996966469234937011</id><published>2009-06-16T18:06:00.000-07:00</published><updated>2009-06-16T20:38:25.904-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Summary</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjhCGuMw-GI/AAAAAAAAAHw/Qz_5w0tiKFU/s1600-h/Untitled-1+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348097240750684258" style="width: 400px; height: 299px;" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjhCGuMw-GI/AAAAAAAAAHw/Qz_5w0tiKFU/s400/Untitled-1+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The picture is the summary of the 7 OSI layer we have discussed before.&lt;br /&gt;&lt;br /&gt;[page 10] &lt;a href="http://cyberjedizen.blogspot.com/search/label/OSI%20Model"&gt;up&lt;/a&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6996966469234937011?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6996966469234937011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-summary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6996966469234937011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6996966469234937011'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-summary.html' title='ISO&apos;s OSI Layered Model - Summary'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjhCGuMw-GI/AAAAAAAAAHw/Qz_5w0tiKFU/s72-c/Untitled-1+copy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3719931414705762462</id><published>2009-06-16T17:42:00.000-07:00</published><updated>2009-06-16T18:41:43.128-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Application Layer</title><content type='html'>&lt;span class="fullpost"&gt;&lt;br /&gt;The application layer provides the services that directly support an application running on a host. This layer is closest to the end user. Examples of layer 7 services include:&lt;br /&gt;FTP, Telnet, HTTP, DHCP, DNS, Gopher, SNMP, NIS, NNTP, SIP, SSI, NFS, NTP, SMPP, SMTP, RIP, BGP, etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/this-layer-provides-independence-from.html"&gt;previous&lt;/a&gt; [page 9] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-summary.html"&gt;next &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3719931414705762462?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3719931414705762462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3719931414705762462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3719931414705762462'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-application.html' title='ISO&apos;s OSI Layered Model - Application Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8021222011544562559</id><published>2009-06-16T17:33:00.000-07:00</published><updated>2009-06-16T18:42:12.201-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Presentation Layer</title><content type='html'>&lt;span class="fullpost"&gt;&lt;br /&gt;This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer.&lt;br /&gt;&lt;br /&gt;Most file format belong to this layer, such as QuickTime, TIFF, JPEG, TDI, ASCII, EBCDIC, MIDI, MPEG, etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/this-layer-provides-independence-from.html"&gt;previous&lt;/a&gt; [page 8] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-application.html"&gt;next&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8021222011544562559?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8021222011544562559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/this-layer-provides-independence-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8021222011544562559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8021222011544562559'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/this-layer-provides-independence-from.html' title='ISO&apos;s OSI Layered Model - Presentation Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8476742552095311073</id><published>2009-06-16T15:19:00.000-07:00</published><updated>2009-06-16T18:42:38.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Session Layer</title><content type='html'>&lt;span class="fullpost"&gt;&lt;br /&gt;The Session Layer controls the dialogues (connections) between computers. It establishes, manages and terminates the connections between the local and remote application.&lt;br /&gt;Synchronization of communicating applications comes into play,&lt;br /&gt;The Session Layer is commonly implemented explicitly in application environments that use remote procedure (RPC) calls. RPC may be built on either TCP or UDP. Login sessions uses TCP whereas NFS and broadcast use UDP.&lt;br /&gt;&lt;br /&gt;The session layer examples include SQL, RPC, XWindows, etc.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer.html"&gt;previous&lt;/a&gt; [page 7] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/this-layer-provides-independence-from.html"&gt;next&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8476742552095311073?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8476742552095311073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8476742552095311073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8476742552095311073'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer_16.html' title='ISO&apos;s OSI Layered Model - Session Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2206293706285797493</id><published>2009-06-16T14:28:00.000-07:00</published><updated>2009-06-16T20:39:22.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Application Set</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjgWTvRolFI/AAAAAAAAAHg/DUtJzD_b4pc/s1600-h/osi-model.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348049085866218578" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 395px" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjgWTvRolFI/AAAAAAAAAHg/DUtJzD_b4pc/s400/osi-model.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;We have walked through the first 4 layers of OSI model.&lt;br /&gt;Layer 1, physical layer.&lt;br /&gt;&lt;ui&gt;Layer 2, DataLink Layer.&lt;br /&gt;&lt;ui&gt;Layer 3, Network Layer.&lt;br /&gt;&lt;ui&gt;Layer 4, Transport Layer.&lt;br /&gt;&lt;br /&gt;which is low-level infrastructure of network, and can be grouped as transport set. In the next 3 articles, we will introduce the layers in the application set, which is closer to the end user and more software application stuff--&lt;br /&gt;Layer 5, Session Layer.&lt;br /&gt;&lt;ui&gt;Layer 6, Presentation Layer.&lt;br /&gt;&lt;ui&gt;Layer 7, Application Layer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-transport-layer.html"&gt;previous&lt;/a&gt; [page 6] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer_16.html"&gt;next&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2206293706285797493?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2206293706285797493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2206293706285797493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2206293706285797493'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer.html' title='ISO&apos;s OSI Layered Model - Application Set'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjgWTvRolFI/AAAAAAAAAHg/DUtJzD_b4pc/s72-c/osi-model.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8671176711048380125</id><published>2009-06-16T13:51:00.000-07:00</published><updated>2009-06-16T20:39:41.925-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Transport Layer</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/SjgMISADeKI/AAAAAAAAAHQ/6fxmUHvqam0/s1600-h/Untitled-1+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348037893913016482" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 365px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/SjgMISADeKI/AAAAAAAAAHQ/6fxmUHvqam0/s400/Untitled-1+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The OSI Model layer 4 is Transport Layer. This layer maintains flow control of data and provides for error checking and recovery of data between the source and the destination. Transport Layer messages are called segments or transport protocal data units (TPDUs). Unlike the hop-by-hop communication at network layer, transport layer is an end-to-end communication -- that is -- the two communicating hosts need not be concerned with the topology of the internet work, which lies between them. They only need to know the state of their communication.&lt;br /&gt;&lt;br /&gt;Two transport protocols, Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), sits at the transport layer.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/SjgMkHPdgwI/AAAAAAAAAHY/4kP8hu-T5i0/s1600-h/tcp-connection-establishment.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348038372061184770" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 266px" alt="" src="http://4.bp.blogspot.com/_IJxULM6OoA4/SjgMkHPdgwI/AAAAAAAAAHY/4kP8hu-T5i0/s400/tcp-connection-establishment.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;TCP establishes connections between two hosts on the network through 'sockets' which are determined by the IP address and port number. The sender of data, first establishes a logical connection with the prospective receiver of the data, sends the data and then terminates the connection. TCP is connection oriented and uses a 3 way handshake to establish a connection before data is sent.&lt;br /&gt;&lt;br /&gt;UDP on the other hand provides a low overhead transmission service, but with less error checking. The sender does not establish a contact with the receiver first. Whenever there is a data packet ready to be sent, it independently routes the packet to a gateway. UDP is a connectionless protocal at the transport layer.&lt;br /&gt;&lt;br /&gt;The device at transport layer is gateway. The layer 4 examples are TCP, UDP, SPX&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-network-layer.html"&gt;previous&lt;/a&gt; [page 5] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-session-layer.html"&gt;next&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8671176711048380125?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8671176711048380125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-transport-layer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8671176711048380125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8671176711048380125'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-transport-layer.html' title='ISO&apos;s OSI Layered Model - Transport Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/SjgMISADeKI/AAAAAAAAAHQ/6fxmUHvqam0/s72-c/Untitled-1+copy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4828921974763298073</id><published>2009-06-16T12:44:00.000-07:00</published><updated>2009-06-16T20:40:01.075-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Network Layer</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjgChZpRBPI/AAAAAAAAAHA/fhPYjM1E4TM/s1600-h/Untitled-1+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348027330345370866" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 365px" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjgChZpRBPI/AAAAAAAAAHA/fhPYjM1E4TM/s400/Untitled-1+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The way that the data will be sent to the recipient device is determined in this layer. The famous Internet Protocol (IP) resides in this layer. The Internetwork Protocal identifies each host with a 32-bit IP address (for detail, see &lt;a href="http://cyberjedizen.blogspot.com/2009/06/understanding-subnet-mask.html"&gt;understanding subnet mask&lt;/a&gt;). IP is responsible for routing, directing datagrams from one network to another. It manages the connectionless transfer of data one hop at a time, from router to router. It is not responsible for reliable delivery to a next hop, but only for the detection of errored packets so they may be discarded. It is like a postal department, where the letter is passed from location to location, until it reaches the destination address on the envelope. The network layer may have to break large datagrams, larger than MTU, into smaller packets and host receiving the packet will have to reassemble the fragmented datagram.&lt;br /&gt;&lt;br /&gt;Even though IP packets are addressed using IP addresses, hardware addresses must be used to actually transport data from one host to another. The DataLink layer protocal Address Resolution Protocol (ARP) is used to map the IP address to its hardware address.&lt;br /&gt;&lt;br /&gt;In summary, the main functionality of network layer is routing and logical addressing, the data unit is packets, the network layer device is router and the network layer examples include IP, IPX, IPsec, ICMP, IGMP, OSPF, IGRP and EIGRP. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-datalink-layer.html"&gt;previous&lt;/a&gt; [page 4] &lt;a href="http://www.blogger.com/post-edit.g?blogID=5114814857102747069&amp;amp;postID=4828921974763298073#"&gt;next &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4828921974763298073?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4828921974763298073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-network-layer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4828921974763298073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4828921974763298073'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-network-layer.html' title='ISO&apos;s OSI Layered Model - Network Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjgChZpRBPI/AAAAAAAAAHA/fhPYjM1E4TM/s72-c/Untitled-1+copy.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8073896003280956527</id><published>2009-06-16T12:03:00.000-07:00</published><updated>2009-06-16T20:40:24.006-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - DataLink Layer</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjgEdLFHU1I/AAAAAAAAAHI/1Lf6H_OvGTA/s1600-h/Untitled-1+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348029456739423058" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 365px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjgEdLFHU1I/AAAAAAAAAHI/1Lf6H_OvGTA/s400/Untitled-1+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/Sjf1F4LoCGI/AAAAAAAAAG4/k5Y-rKoFFns/s1600-h/Untitled-1+copy.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The Data Link layer packages raw bits from the Physical layer into frames. This layer is responsible for transferring frames from one computer to another, without errors. A network data frame includes checksum, source and destination address, and data. The largest packet that can be sent through a data link layer defines the Maximum Transmission Unit (MTU).&lt;br /&gt;&lt;br /&gt;The Data Link layer's functionality includes flow control, error detection and control, defining topologies such as star, bus, ring and media access control (MAC).&lt;br /&gt;&lt;br /&gt;Ethernet addresses a host using a unique, 48-bit address called its Ethernet address or Media Access Control (MAC) address. MAC is closely associated with the physical layer and defines the means by which the physical medium may be accessed. MAC addresses are usually represented as six colon-separated pairs of hex digits, e.g., 8:0:20:11:ac:85. This number is unique and is associated with a particular Ethernet device; the first 3 bytes 8:0:20 specify the vendor/manufacturer of the NIC; the other 3 bytes 11:ac:85 define the host. The data link layer's protocolspecific header specifies the MAC address of the packet's source and destination. When a packet is sent to all hosts (broadcast), a special MAC address (ff:ff:ff:ff:ff:ff) is used.&lt;br /&gt;&lt;br /&gt;The DataLink Layer Devices include switch, bridge.&lt;br /&gt;&lt;br /&gt;DataLink Layer example include: 802.3, ATM, Frame Relay, PPP, Token Ring, ARP, SLIP&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-physical-layer.html"&gt;previous&lt;/a&gt; [page 3] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-network-layer.html"&gt;next&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8073896003280956527?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8073896003280956527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-datalink-layer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8073896003280956527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8073896003280956527'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-datalink-layer.html' title='ISO&apos;s OSI Layered Model - DataLink Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SjgEdLFHU1I/AAAAAAAAAHI/1Lf6H_OvGTA/s72-c/Untitled-1+copy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7204433056470239972</id><published>2009-06-16T11:38:00.000-07:00</published><updated>2009-06-16T20:40:51.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model - Physical Layer</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/SjfrqbjIT_I/AAAAAAAAAGw/Kc626vH9C34/s1600-h/Untitled-1+copy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348002196707889138" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 365px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/SjfrqbjIT_I/AAAAAAAAAGw/Kc626vH9C34/s400/Untitled-1+copy.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The first layer is the physical layer. This is the level of the actual hardware. It defines the physical characteristics of the network such as connections, voltage levels, transmission frequencies, timing, etc. The physical layer provides an unstructured bit stream, which is the phycial basis for all the higher layers.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Devices at this layer includes: Multiplexer, Repeater, hub, cable, network card, unshielded twisted pairs (UTP), etc.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Examples are Ethernet, RS-232, T1, DSL, etc.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model.html"&gt;previous&lt;/a&gt; [page 2] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-datalink-layer.html"&gt;next&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7204433056470239972?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7204433056470239972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-physical-layer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7204433056470239972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7204433056470239972'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-physical-layer.html' title='ISO&apos;s OSI Layered Model - Physical Layer'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/SjfrqbjIT_I/AAAAAAAAAGw/Kc626vH9C34/s72-c/Untitled-1+copy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3846161506360722237</id><published>2009-06-16T11:09:00.000-07:00</published><updated>2009-06-28T18:50:46.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSI Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>ISO's OSI Layered Model</title><content type='html'>&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjfkY__BZnI/AAAAAAAAAGg/yoSVFD6BAtI/s1600-h/osi_model.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5347994200669513330" style="margin: 0px 0px 10px 10px; display: block; width: 320px; height: 250px;" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjfkY__BZnI/AAAAAAAAAGg/yoSVFD6BAtI/s320/osi_model.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The Open Systems Interconnection Reference Model (OSI Reference Model or OSI Model) is an abstract description for layered communications and computer network protocol design. It was developed as part of the Open Systems Interconnection (OSI) initiative. In its most basic form, it divides network architecture into seven layers which, from bottom to top, are the &lt;strong&gt;P&lt;/strong&gt;hysical, &lt;strong&gt;D&lt;/strong&gt;ata-Link, &lt;strong&gt;N&lt;/strong&gt;etwork, &lt;strong&gt;T&lt;/strong&gt;ransport, &lt;strong&gt;S&lt;/strong&gt;ession, &lt;strong&gt;P&lt;/strong&gt;resentation, &lt;strong&gt;A&lt;/strong&gt;pplication Layers (&lt;strong&gt;P&lt;/strong&gt;lease &lt;strong&gt;D&lt;/strong&gt;o &lt;strong&gt;N&lt;/strong&gt;ot &lt;strong&gt;T&lt;/strong&gt;hrow &lt;strong&gt;S&lt;/strong&gt;ausage &lt;strong&gt;P&lt;/strong&gt;izza &lt;strong&gt;A&lt;/strong&gt;way). It is therefore often referred to as the OSI Seven Layer Model.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/SjfjzMCtlgI/AAAAAAAAAGY/CJsUqjbhV-M/s1600-h/page108.gif"&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjfleemyWsI/AAAAAAAAAGo/EoUVjUysO1s/s1600-h/page108.gif"&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/SjgZyjcu2iI/AAAAAAAAAHo/PZzLs_PZ9Vw/s1600-h/untitled.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5348052913802369570" style="width: 320px; height: 255px;" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/SjgZyjcu2iI/AAAAAAAAAHo/PZzLs_PZ9Vw/s400/untitled.bmp" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Control is passed from one layer to the next, starting at the application layer in one station, proceeding to the bottom layer, over the channel to the next station and back up the hierarchy. Data exists at each layer in units called Protocal Data units (PDU). The picture gives the PDU at each layer.&lt;br /&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/06/osi-model-vs-tcpip-model-vs-cisco-3.html"&gt;previous&lt;/a&gt; [page 1] &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model-physical-layer.html"&gt;next&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3846161506360722237?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3846161506360722237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3846161506360722237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3846161506360722237'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model.html' title='ISO&apos;s OSI Layered Model'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SjfkY__BZnI/AAAAAAAAAGg/yoSVFD6BAtI/s72-c/osi_model.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-467306804001969941</id><published>2009-06-16T10:25:00.000-07:00</published><updated>2009-06-22T11:39:15.802-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>OSI Model v.s. TCP/IP Model v.s. Cisco 3 Layer Model</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjffNhGGzXI/AAAAAAAAAGQ/TFKJcGcBfnQ/s1600-h/300px-G0209_TCPIP_vs_OSI.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5347988505841028466" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 300px; HEIGHT: 237px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjffNhGGzXI/AAAAAAAAAGQ/TFKJcGcBfnQ/s320/300px-G0209_TCPIP_vs_OSI.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;A computer communication protocal is a set of rules that govern the exchange of information whin a network. Communication protocols define the manner in which peer processes communicate among various computer hardware devices. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;You can organize the modules of protocal software on each machine into "layers". Each layer will handle a specific communication sub-problem. There are many specific advantages of layering such as data hiding and encapsulation, reduced complexity, increased evolution, easy extension and multi vendor integration.&lt;br /&gt;&lt;br /&gt;The most mommon layered Models are&lt;br /&gt;a. &lt;a href="http://cyberjedizen.blogspot.com/search/label/OSI%20Model"&gt;ISO's OSI Layered Model&lt;/a&gt;&lt;br /&gt;b. &lt;a href="http://cyberjedizen.blogspot.com/2009/06/tcpip-layered-model.html"&gt;TCP/IP Layered Model&lt;/a&gt;&lt;br /&gt;c. &lt;a href="http://cyberjedizen.blogspot.com/2009/06/ciscos-3-layered-model.html"&gt;Cisco's 3 Layered Model &lt;/a&gt;&lt;br /&gt;d. IBM's SNA Model (don't discuss it here)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;This tutorial series will explain and compare these models.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;previous &lt;a href="http://cyberjedizen.blogspot.com/2009/06/isos-osi-layered-model.html"&gt;next&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-467306804001969941?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/467306804001969941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/osi-model-vs-tcpip-model-vs-cisco-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/467306804001969941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/467306804001969941'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/osi-model-vs-tcpip-model-vs-cisco-3.html' title='OSI Model v.s. TCP/IP Model v.s. Cisco 3 Layer Model'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SjffNhGGzXI/AAAAAAAAAGQ/TFKJcGcBfnQ/s72-c/300px-G0209_TCPIP_vs_OSI.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7573186217663281666</id><published>2009-06-15T13:45:00.000-07:00</published><updated>2009-06-17T12:40:18.745-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>Understanding Subnet Mask</title><content type='html'>If you are winxp user, just type "ipconfig" in the command window, you will probably see something like:&lt;br /&gt;&lt;br /&gt;Connection-specific DNS Suffix... somedomain.com&lt;br /&gt;&lt;strong&gt;IP address&lt;/strong&gt;...................................... 192.168.5.10&lt;br /&gt;&lt;strong&gt;Subnet Mask&lt;/strong&gt;................................. 255.255.255.0&lt;br /&gt;Default Gateway........................... 192.168.5.100&lt;br /&gt;&lt;br /&gt;SubnetMask seems always go with IP address.&lt;br /&gt;Ever wondering what subnet mask is?&lt;br /&gt;If the answer is yes, you may want to read this article.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Part 1 IP Addressing&lt;/strong&gt;&lt;br /&gt;Computers and devices that are part of an internetworking network such as the Internet each have a logical address. The network address is unique to each device and can either be dynamically or statically configured. An address allows a device to communicate with other devices connected to a network. The most common network addressing scheme is IPv4. An IPv4 address consists of a 32 bit address written into 4 octets (e.g. 192.168.5.10) and a subnet mask (e.g. 255.255.255.0).&lt;br /&gt;&lt;br /&gt;Suppose a home network consists of computers named Foo and Bar, connected to a router, and then via a cable modem to the Internet. The home network is configured as a subnet: address 17.76.99.1 is assigned to Foo, address 17.76.99.2 to Bar, and address 17.76.99.100 to the router. The subnet has been configured so that the first three octets of its members' addresses are all the same subnet id, 17.76.99, and this fact is expressed by the subnet mask 255.255.255.0 (binary 11111111 11111111 11111111 00000000) configured in the router.&lt;br /&gt;When Foo sends data to example.com at 208.77.188.166, the router performs a logical AND of the destination example.com address with the subnet mask. It also performs a logical AND of the origin address (17.76.99.1) and recognizes that these two results are different, and therefore sends the data over the Internet, via the subnet's default gateway.&lt;br /&gt;When Foo sends data to Bar, however, it determines that the results of the two AND operations are the same, therefore the destination lies within the subnet and the default gateway is not required. The data is transmitted directly from Foo to Bar within the home network.&lt;br /&gt;&lt;br /&gt;For detail about IP address, see the network 101 -- Understanding IP address.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 2 Why subnet mask&lt;/strong&gt;&lt;br /&gt;As Intenet grows, more network IP address number are needed. The InterNIC (who in charge of IP address allocation), however, is not eager to hand out unlimited network addresses because they are quickly running out of them. One way of IP address conservation is to take the address that is assigned to a network and expand the capacity with subnets. Subnetting allows you to increase the number of networks available to you without applying for another IP address number.&lt;br /&gt;On the other hand, putting too many computers in a single network is problematic. Due to heavy transfer of data, the packets become slow resulting in collision and retransmission. As there is no security barrel, critical data can be accessed by any other computer. Again, subnetwoking is needed here.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 3 IP Address Classes&lt;/strong&gt;&lt;br /&gt;The IP address is composed of 32 bits, which consist of two parts: the most significant bits (MSBs) identify a particular network and the remaining bits specify a host on that network. The most significant bits of the network portion actually determine the address class as shown in this table: Address MSB&lt;br /&gt;Class Pattern&lt;br /&gt;Class A 0&lt;br /&gt;Class B 10&lt;br /&gt;Class C 110&lt;br /&gt;&lt;br /&gt;A class A address could be diagramed:&lt;br /&gt;Network Host&lt;br /&gt;+------+ +----------------------+&lt;br /&gt;[0xxxxxxx][xxxxxxxxxxxxxxxxxxxxxxxx]&lt;br /&gt;which shows the eight network bits followed by the 24 host bits.&lt;br /&gt;&lt;br /&gt;Class A address would have a range of address numbers from &lt;strong&gt;1.0.0.0&lt;/strong&gt; through &lt;strong&gt;126.0.0.0&lt;/strong&gt; ( 0. x.x.x and 127. x.x.x are reserved). The number of host addresses per network is &lt;strong&gt;16,777,214&lt;/strong&gt;, which is two less than two raised to the 24th power because both host numbers 0.0.0 and 255.255.255 are reserved.&lt;br /&gt;&lt;br /&gt;The first two bits of a Class B address are 1 and 0, the next fourteen bits identify the network and the last sixteen the host, as diagramed:&lt;br /&gt;Network Host&lt;br /&gt;+--------------+ +--------------+&lt;br /&gt;[10xxxxxxxxxxxxxx][xxxxxxxxxxxxxxxx]&lt;br /&gt;Thus, Class B addresses include the network numbers in the range from &lt;strong&gt;128.1.0.0&lt;/strong&gt; through &lt;strong&gt;191.254.0.0&lt;/strong&gt; for a total of &lt;strong&gt;65,534&lt;/strong&gt; host addresses.&lt;br /&gt;&lt;br /&gt;The first three bits of a Class C address are 1, 1, and 0, the next 21 bits identify the network and the last eight the host, as diagramed:&lt;br /&gt;Network Host&lt;br /&gt;+----------------------+ +------+&lt;br /&gt;[110xxxxxxxxxxxxxxxxxxxxx][xxxxxxxx]&lt;br /&gt;Thus, Class C addresses include the network numbers in the range &lt;strong&gt;192.0.1.0&lt;/strong&gt; through &lt;strong&gt;223.255.254.0&lt;/strong&gt; for a total of &lt;strong&gt;254&lt;/strong&gt; host addresses per network address.&lt;br /&gt;Finally, we have Class D and Class E addresses. Class D address start at 224.0.0.0 and are used for multicast purposes. Class E addresses start at 240.0.0.0 and are currently used only for experimental purposes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 4 The Subnet Mask&lt;/strong&gt;&lt;br /&gt;A subnet mask (or number) is used to determine the number of bits used for the subnet and host portions of the address. The network bits are represented by the 1s in the mask and the host bits are represented by the 0s in the mask. The result of a bit-wise logical 'AND' operation between the IP address and the subnet mask is a Network Address or Number or Subnet Address.&lt;br /&gt;Let's look at an example. Here we have a Class B address of 191.70.55.130 and apply the default subnet mask 255.255.0.0.&lt;br /&gt;1011 1111 1000 0110 0011 0111 1000 0010 IP address&lt;br /&gt;1111 1111 1111 1111 0000 0000 0000 0000 Subnet mask&lt;br /&gt;1011 1111 1000 0110 0000 0000 0000 0000 Result&lt;br /&gt;&lt;br /&gt;Subnet Mask can take value other than 255.255.0.0, here we employ a mask 255.255.255.0 that divides the host portion into a subnet and host that are each eight bits wide:&lt;br /&gt;1011 1111 1000 0110 0011 0111 1000 0010 IP address&lt;br /&gt;1111 1111 1111 1111 1111 1111 0000 0000 Subnet mask&lt;br /&gt;1011 1111 1000 0110 0011 0111 0000 0000 Result&lt;br /&gt;This division allows 254 (256-2 reserved) subnets, each with 254 hosts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;p&gt;This division on a byte boundary makes it easy to determine the subnet and host from the dotted-decimal IP address. However, the subnet-host boundary can be at any bit position in the host portion of the IP address. Here, we use a mask 255.255.128.0 that allows more subnets (512-2 reserved), but with the trade-off of fewer hosts (128-2) per subnet: &lt;/p&gt;&lt;p&gt;1011 1111 1000 0110 0011 0111 1000 0010 IP address&lt;br /&gt;1111 1111 1111 1111 1111 1111 1000 0000 Subnet mask&lt;br /&gt;1011 1111 1000 0110 0011 0111 1000 0000 Result&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 5 Private Subnets&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;There are three IP network address reserved for private networks.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;10.0.0.0 to 10.255.255.255&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;172.16.0.0 to 172.31.255.255&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;192.168.0.0 to 192.168.255.255&lt;/strong&gt;&lt;/p&gt;These can be used by anyone setting up internal IP networks, because routers on the Internet will never forward packets coming from these addresses.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 6 Design Example&lt;/strong&gt;&lt;br /&gt;Suppose you have a Class C IP address of 200.133.175.0, and you want to break the network into 6 subnets of 30 nodes each, which limits us to 180 nodes.&lt;br /&gt;To accomplish this, we need to use a subnet mask 3 bits long.&lt;br /&gt;255.255.255.224 (11111111.11111111.11111111.11100000)&lt;br /&gt;This gives us 6 possible network numbers, 2 of which cannot be used.&lt;br /&gt;&lt;br /&gt;Subnet bits, Subnet Address, Node Addresses, Broadcast Address&lt;br /&gt;000, 200.133.175.0, Reserved, None&lt;br /&gt;001, 200.133.175.32, .33 thru .62, 200.133.175.63&lt;br /&gt;010, 200.133.175.64, .65 thru .94, 200.133.175.95&lt;br /&gt;011, 200.133.175.96, .97 thru .126, 200.133.175.127&lt;br /&gt;100, 200.133.175.128, .129 thru .158, 200.133.175.159&lt;br /&gt;101, 200.133.175.160, .161 thru .190, 200.133.175.191&lt;br /&gt;110, 200.133.175.192, .193 thru .222, 200.133.175.223&lt;br /&gt;111, 200.133.175.224, Reserved, None&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Part 7 CIDR&lt;/strong&gt;&lt;br /&gt;To simplify subnet mask notation, CIDR suffix address (e.g. /18) is used, which list only 1s bits that start the mask.&lt;br /&gt;Class A= /8, Class B = /16, Class C =/24&lt;br /&gt;For instance, the following are equivalent:&lt;br /&gt;192.168.0.0 with netmask 255.255.0.0&lt;br /&gt;192.168.0.0/16&lt;br /&gt;&lt;br /&gt;For another instance, the following are equivalent:&lt;br /&gt;192.168.0.0 with netmask 255.255.128.0&lt;br /&gt;192.168.0.0/17&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;] &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7573186217663281666?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7573186217663281666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/understanding-subnet-mask.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7573186217663281666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7573186217663281666'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/understanding-subnet-mask.html' title='Understanding Subnet Mask'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3090707858015872102</id><published>2009-06-12T07:44:00.000-07:00</published><updated>2009-06-16T18:41:09.872-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gargon buster'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>What is Virtue LAN?</title><content type='html'>Monday&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjJ-z1IiDwI/AAAAAAAAAGA/tf1BWT6W2bA/s1600-h/LAN.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346475136543493890" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 183px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjJ-z1IiDwI/AAAAAAAAAGA/tf1BWT6W2bA/s320/LAN.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;thursday&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_IJxULM6OoA4/SjJ_BKTzDFI/AAAAAAAAAGI/w8OeLmJ5Mfw/s1600-h/vlan.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346475365566188626" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 183px" alt="" src="http://4.bp.blogspot.com/_IJxULM6OoA4/SjJ_BKTzDFI/AAAAAAAAAGI/w8OeLmJ5Mfw/s320/vlan.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In the previous post, we have talked about LAN (local area network), which is&lt;br /&gt;computer network covering a small physical area. The LAN we talked about is made of physical devices such as computer, hub, switch, router, repeater which hurt if dropping on your feet. So.... what the heck is a "virtual LAN"? The name seems to suggest some kind of imaginary network... Ok, forget about the god-knows-who Virtue LAN for now, let's talk about a roommates crisis recently.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Charlse, Tony, Kelley and Alice are roommates. Their computers are connected together by a switch, thus form a home LAN. By default, if one computer in the LAN send a message, the switch will broadcast the message to all the other three computers. &lt;br /&gt;At Wenesday night, Tony did a stupid thing, Kelley and Alice became so angry at him that they even refuse to share the LAN with this guy. As Tony's best friend, Charlse decided to stood with him. So the roommates reconfigured the switch. Now, There are two groups: group 1 -- Charlse and Tony; group 2 -- Alice and Kelley. The message from either Tony's or Charlse's computer will not be passed to Alice's and Kelley's. The same thing happened at the girls side, the girls' messages now only broadcast between girls. As a result, we get two VLAN, physically, they share the same LAN, but logically, when a member of one VLAN sends a broadcast, only the other members of the same VLAN will receive the broadcast.&lt;br /&gt;&lt;br /&gt;By the way, at Friday, all the roommates agreed that it's a sick example of VLAN, so they set the switches back to the default value thus wiped out the poor VLANs from the face of the earth.&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3090707858015872102?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3090707858015872102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-virtue-lan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3090707858015872102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3090707858015872102'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/what-is-virtue-lan.html' title='What is Virtue LAN?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SjJ-z1IiDwI/AAAAAAAAAGA/tf1BWT6W2bA/s72-c/LAN.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2647817137449360955</id><published>2009-06-11T16:43:00.001-07:00</published><updated>2009-06-11T18:46:25.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>hub, switch and router</title><content type='html'>Hub, switch and router are the building blocks of computer network. Each has two or more connectors called ports into which you plug in the cables to make the connection. &lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;object width="433" height="254" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0"&gt;   &lt;param name="movie" value="http://static.howstuffworks.com/flash/router-lan.swf" /&gt;   &lt;param name="quality" value="high" /&gt;   &lt;embed width="433" height="254" src="http://static.howstuffworks.com/flash/router-lan.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_ Version=ShockwaveFlash" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;A hub's job is very simple: anything that comes in one port is sent out to the others. That's it. Every computer connected to the hub "sees" everything that every other computer on the hub sees. The hub itself is blissfully ignorant of the data being transmitted. &lt;br /&gt;&lt;br /&gt;A switch does essentially what a hub does but more intelegently. The net result of using a switch over a hub is that most of the network traffic only goes where it needs to rather than to every port. On busy networks this can make the network significantly faster.&lt;br /&gt;&lt;br /&gt;While hubs and switches connect pcs within a network. routers are the crucial devices that let messages flow between networks. For example, Charlse sends a message to the copy machine on the other side of the room, the message goes through hub (switch) to the printer; if Charlse tries to post on the blogger.com, the message must go through the company's router, which connect to the internet.  &lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;] &lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber Jedi"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2647817137449360955?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2647817137449360955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/injectcode-your-browser-does-not.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2647817137449360955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2647817137449360955'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/injectcode-your-browser-does-not.html' title='hub, switch and router'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2811148704137887991</id><published>2009-06-11T13:52:00.000-07:00</published><updated>2009-06-11T18:00:13.147-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gargon buster'/><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>What are Internet made of? (LAN, ISP, POP, NAP)</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjFvCRlMotI/AAAAAAAAAFg/COS0nydwQyM/s1600-h/internet-infrastructure1.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346176317535331026" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 210px" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjFvCRlMotI/AAAAAAAAAFg/COS0nydwQyM/s320/internet-infrastructure1.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;People talk about LAN, ISP, POP, NAP, what are they talking about?&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Every computer that is connected to the Internet is part of a network, even the one in your home. For example, you may use a modem and dial a local number to connect to an &lt;strong&gt;Internet Service Provider (ISP)&lt;/strong&gt;. At work, you may be part of a &lt;strong&gt;local area network (LAN),&lt;/strong&gt; but you most likely still connect to the Internet using an ISP that your company has contracted with. When you connect to your ISP, you become part of their network. The ISP may then connect to a larger network and become part of their network. The Internet is simply a network of networks.&lt;br /&gt;Most large communications companies have their own dedicated backbones connecting various regions. In each region, the company has a &lt;strong&gt;Point of Presence (POP)&lt;/strong&gt;. The POP is a place for local users to access the company's network, often through a local phone number or dedicated line. The amazing thing here is that there is no overall controlling network. Instead, there are several high-level networks connecting to each other through &lt;strong&gt;(Network Access Points) NAPs&lt;/strong&gt;.&lt;br /&gt;Today's Take home:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjF3reM99hI/AAAAAAAAAFo/8o2XKOC76S4/s1600-h/grocery.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346185821391025682" style="WIDTH: 320px; CURSOR: hand; HEIGHT: 84px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjF3reM99hI/AAAAAAAAAFo/8o2XKOC76S4/s320/grocery.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;LAN (local area network):&lt;br /&gt;Computer network covering a small physical area, like your home, office, or a few buildings, such as a school, or an airport.&lt;br /&gt;&lt;br /&gt;ISP (internet service provider):&lt;br /&gt;The company that sells Internet access plan to you (their typical slogan: fast internet connetion...blablabla...)&lt;br /&gt;&lt;br /&gt;POP (point of presence):&lt;br /&gt;an access point from one place to the rest of the Internet. A phrase only matters to the ISP sells guy. Your Internet service provider (ISP) has a point-of-presence on the Internet and probably more than one. The number of POPs that an ISP has is sometimes used as a measure of its size or growth rate.&lt;br /&gt;&lt;br /&gt;NAP (network access points):&lt;br /&gt;Short for network access point, a public network exchange facility where Internet Service Providers (ISPs) can connect with one another in peering arrangements. The NAPs are a key component of the Internet backbone because the connections within them determine how traffic is routed. They are also the points of most Internet congestion.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2811148704137887991?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2811148704137887991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isp-pop-nap.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2811148704137887991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2811148704137887991'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/isp-pop-nap.html' title='What are Internet made of? (LAN, ISP, POP, NAP)'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjFvCRlMotI/AAAAAAAAAFg/COS0nydwQyM/s72-c/internet-infrastructure1.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4975891640189414709</id><published>2009-06-11T12:15:00.000-07:00</published><updated>2009-06-11T17:59:22.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Network 101'/><title type='text'>How servers talk to each other (Unicast, Multicast and Broadcast)</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjFYeWEwRCI/AAAAAAAAAFY/AwJ4a4hbFfo/s1600-h/logo.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346151511010329634" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 110px; CURSOR: hand; HEIGHT: 73px" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjFYeWEwRCI/AAAAAAAAAFY/AwJ4a4hbFfo/s320/logo.gif" border="0" /&gt;&lt;/a&gt; Believe it or not, servers in the network talk to each other just as we did.&lt;br /&gt;Say, Charlse(me) wants to have a private conversation with Kelley, one to one. In the network jargon, this is called unicast. A unicast is a message intended for one other host. &lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;In the same manner, I gave a lecture to a class of students, everybody in the classroom heard me. I don't intend to lecture the whole world. In the network, it is called multicast --a multicast is intended for a group of hosts.&lt;br /&gt;&lt;br /&gt;So far, you may already know what broadcast is. Right, Charlse got a beautiful idea, he can't help but told everybody, and even persuade them to spead the message for him. That's exactly broadcast mean --a broadcast is intended for every host that can possibly receive it.&lt;br /&gt;&lt;br /&gt;Broadcasts tend to result in more broadcasts, and if hosts on the network continue to answers broadcasts with broadcasts, we end up with a broadcast storm. So be careful with your crazy new idea. :)&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4975891640189414709?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4975891640189414709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/unicast-multicast-and-broadcast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4975891640189414709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4975891640189414709'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/unicast-multicast-and-broadcast.html' title='How servers talk to each other (Unicast, Multicast and Broadcast)'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjFYeWEwRCI/AAAAAAAAAFY/AwJ4a4hbFfo/s72-c/logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-9187656831442621850</id><published>2009-06-11T07:04:00.000-07:00</published><updated>2009-06-11T07:26:49.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>iPhone users angry over AT&amp;T's pricing policy for the new iPhone 3G</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SjEQIhfY1fI/AAAAAAAAAFQ/3AK5JrGEfis/s1600-h/img_iPhone3GS_speed.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346071971280508402" style="DISPLAY: block; WIDTH: 300px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SjEQIhfY1fI/AAAAAAAAAFQ/3AK5JrGEfis/s320/img_iPhone3GS_speed.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Computerworld - iPhone users angry over AT&amp;amp;T's pricing policy for the new iPhone 3G S have taken their campaign to Twitter, where more than 7,013 have added their names to an instant petition. &lt;a href="http://twitition.com/f96aq"&gt;Twitter petition&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-9187656831442621850?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/9187656831442621850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/iphone-users-angry-over-at-pricing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9187656831442621850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9187656831442621850'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/iphone-users-angry-over-at-pricing.html' title='iPhone users angry over AT&amp;T&apos;s pricing policy for the new iPhone 3G'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IJxULM6OoA4/SjEQIhfY1fI/AAAAAAAAAFQ/3AK5JrGEfis/s72-c/img_iPhone3GS_speed.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3227904857512733362</id><published>2009-06-11T06:42:00.000-07:00</published><updated>2009-06-11T07:27:01.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Signs for economy recovery.</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/SjEKAbMGFJI/AAAAAAAAAFA/iaeg7M2LzPI/s1600-h/HP_INDU.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346065235080254610" style="DISPLAY: block; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 165px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/SjEKAbMGFJI/AAAAAAAAAFA/iaeg7M2LzPI/s320/HP_INDU.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="fullpost"&gt;According to Bloomberg report this morning.&lt;br /&gt;#1 Sales at U.S. retailers rose in May for the first time in three months as shoppers returned to automobile showrooms seeking bargains from the ailing carmakers. &lt;/span&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;div&gt;&lt;br /&gt;#2 Crude oil rose for a third day, climbing above $72 a barrel for the first time in seven months as the International Energy Agency raised its demand forecast and China’s net imports jumped to a 14-month high. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;#3 Fewer Americans filed claims for unemployment benefits last week, indicating the deepest job cuts may be subsiding even as companies hold off on hiring.&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3227904857512733362?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3227904857512733362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/signs-for-economy-recovery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3227904857512733362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3227904857512733362'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/signs-for-economy-recovery.html' title='Signs for economy recovery.'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/SjEKAbMGFJI/AAAAAAAAAFA/iaeg7M2LzPI/s72-c/HP_INDU.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1168945201510031742</id><published>2009-06-11T06:15:00.000-07:00</published><updated>2009-06-11T07:27:16.312-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='News'/><title type='text'>Tomorrow night (June 13, 2009): Get Facebook Usernames! Huarry!!</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_IJxULM6OoA4/SjEKq0auo7I/AAAAAAAAAFI/EdRL9Q47fl8/s1600-h/4700_122311816728_20531316728_2784466_2118130_n.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5346065963407025074" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 63px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_IJxULM6OoA4/SjEKq0auo7I/AAAAAAAAAFI/EdRL9Q47fl8/s320/4700_122311816728_20531316728_2784466_2118130_n.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Starting at 12:01 a.m. EDT on Saturday, June 13, you'll be able to choose a username on a first-come, first-serve basis for your profile and the Facebook Pages that you administer by visiting &lt;a title="http://www.facebook.com/username/" href="http://www.facebook.com/username/" target="_blank"&gt;www.facebook.com/username/&lt;/a&gt;. You'll also see a notice on your home page with instructions for obtaining your username at that time.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1168945201510031742?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1168945201510031742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/morning-digest-june-11th-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1168945201510031742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1168945201510031742'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/morning-digest-june-11th-2009.html' title='Tomorrow night (June 13, 2009): Get Facebook Usernames! Huarry!!'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IJxULM6OoA4/SjEKq0auo7I/AAAAAAAAAFI/EdRL9Q47fl8/s72-c/4700_122311816728_20531316728_2784466_2118130_n.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8320836153107373078</id><published>2009-06-08T07:43:00.000-07:00</published><updated>2009-06-08T08:00:00.101-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Blog tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger Hack'/><title type='text'>Horizontal navigation Tabs Bar for Blogger</title><content type='html'>Horizontal navigation Tabs Bar makes your blog stylish and easy to navigate. The trick here is to creat links for each Tab which links to the url of your labels. You have to label your posts to make it work.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Just Go To Layout &gt; Edit Html&lt;br /&gt;&lt;br /&gt;And Search For &lt;/b:skin&gt;&lt;br /&gt;&lt;br /&gt;Now add these below Css codes before it-&lt;br /&gt;&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div class ='code-wrapper' style="height: 550px;"&gt;&lt;br /&gt;/* ----- LINKBAR ----- */&lt;br /&gt;#bg_nav {&lt;br /&gt;display: block;&lt;br /&gt;background: #000;&lt;br /&gt;width: &lt;font color='red'&gt;760px&lt;/font&gt;;&lt;br /&gt;height: 29px;&lt;br /&gt;font-size: 11px;&lt;br /&gt;font-family: Arial, Tahoma, Verdana;&lt;br /&gt;color: #FFF;&lt;br /&gt;font-weight: bold;&lt;br /&gt;margin: 0px auto 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;border-top: 1px solid #333;&lt;br /&gt;border-bottom: 1px solid #000;&lt;br /&gt;overflow: hidden;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#bg_nav a, #bg_nav a:visited {&lt;br /&gt;color: #FFF;&lt;br /&gt;font-size: 11px;&lt;br /&gt;text-decoration: none;&lt;br /&gt;text-transform: uppercase;&lt;br /&gt;padding: 0px 0px 0px 3px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#bg_nav a:hover {&lt;br /&gt;color: #FFF;&lt;br /&gt;text-decoration: underline;&lt;br /&gt;padding: 0px 0px 0px 3px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#navleft {&lt;br /&gt;width: 720px;&lt;br /&gt;float: left;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#navright {&lt;br /&gt;width: 220px;&lt;br /&gt;font-size: 11px;&lt;br /&gt;float: right;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 6px 5px 0px 0px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#navright a img {&lt;br /&gt;border: none;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#nav {&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;list-style: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav ul {&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;list-style: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav a, #nav a:visited {&lt;br /&gt;background: #222;&lt;br /&gt;color: #FFF;&lt;br /&gt;display: block;&lt;br /&gt;font-weight: bold;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 8px 15px;&lt;br /&gt;border-left: 1px solid #000;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav a:hover {&lt;br /&gt;background: #6e6d6d;&lt;br /&gt;color: #FFFFFF;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 8px 15px;&lt;br /&gt;text-decoration: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li {&lt;br /&gt;float: left;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li li {&lt;br /&gt;float: left;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;width: 150px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li li a, #nav li li a:link, #nav li li a:visited {&lt;br /&gt;background: #333;&lt;br /&gt;width: 160px;&lt;br /&gt;float: none;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 7px 30px 7px 10px;&lt;br /&gt;border-bottom: 1px solid #000;&lt;br /&gt;border-left: 1px solid #000;&lt;br /&gt;border-right: 1px solid #000;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li li a:hover, #nav li li a:active {&lt;br /&gt;background: #666;&lt;br /&gt;padding: 7px 30px 7px 10px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li ul {&lt;br /&gt;position: absolute;&lt;br /&gt;width: 10em;&lt;br /&gt;left: -999em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li:hover ul {&lt;br /&gt;left: auto;&lt;br /&gt;display: block;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#nav li:hover ul, #nav li.sfhover ul {&lt;br /&gt;left: auto;&lt;br /&gt;}&lt;br /&gt;/*for Linkbar*/&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Please edit the width of the above codes in red to adjust to the width of the navigation menu to adjust it to yours template width.You can change the color and design of above css also if you are capable of it.&lt;br /&gt;Now Search for below codes-&lt;br /&gt;&lt;br /&gt;&lt;font color='green'&gt;&lt;br /&gt;&amp;lt;div id="'header-wrapper'"&amp;gt;&lt;br /&gt;&amp;lt;b:section class="'header'" id="'header'" maxwidgets="'1'" showaddelement="'no'"&amp;gt;&lt;br /&gt;&amp;lt;b:widget id="'Header1'" locked="'true'" title="'Testing" type="'Header'/"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/b:section&amp;gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;And add the below codes after the above codes:-&lt;br /&gt;&lt;br /&gt;&lt;div class='code-wrapper' style='height:250px;'&gt;&lt;br /&gt;&amp;lt;div id='bg_nav'&amp;gt;&lt;br /&gt;&amp;lt;div id='navleft'&amp;gt;&lt;br /&gt;&amp;lt;div id='nav'&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href='/'&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/search/label/Blogger%20Hack'&amp;gt; Blogger Hacks&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/search/label/Electronics'&amp;gt; Electronics&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/search/label/Tutorial'&amp;gt; Tutorials&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/search/label/Resources'&amp;gt; Resources&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber Jedi"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8320836153107373078?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8320836153107373078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/horizontal-navigation-tabs-bar-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8320836153107373078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8320836153107373078'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/horizontal-navigation-tabs-bar-for.html' title='Horizontal navigation Tabs Bar for Blogger'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7556921667441761961</id><published>2009-06-06T00:59:00.000-07:00</published><updated>2009-06-10T08:07:23.867-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Blog tips'/><title type='text'>How to put two widgets side by side in blogger head</title><content type='html'>I'm trying to put two flash widgets side by side in my blog's head area. Here is how I did it:&lt;br /&gt;&lt;br /&gt;Just Go To Layout &gt; Edit Html&lt;br /&gt;&lt;br /&gt;And Search For &amp;lt;/b:skin&amp;gt;&lt;br /&gt;&lt;br /&gt;Now add these below Css codes before it-&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div class="code-wrapper"&gt;&lt;br /&gt;/*-- Two part Header --*/&lt;br /&gt;#contentbar {&lt;br /&gt;position: relative;&lt;br /&gt;clear: both;&lt;br /&gt;display: block;&lt;br /&gt;$startSide top;&lt;br /&gt;width: &lt;span style="color:red;"&gt;760px&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#headbar1 {&lt;br /&gt;display:block;&lt;br /&gt;float:left;&lt;br /&gt;margin-left:0px;&lt;br /&gt;width:&lt;span style="color:red;"&gt;220px&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;#headbar2 {&lt;br /&gt;display:block;&lt;br /&gt;float:right;&lt;br /&gt;margin-left:0px;&lt;br /&gt;width:&lt;span style="color:red;"&gt;540px&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Please edit the width of the above codes in red to adjust to the width of the navigation menu to adjust it to yours template width.You can change the color and design of above css also if you are capable of it.&lt;br /&gt;Now Search for below codes-&lt;br /&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;br /&gt;&amp;lt;div id="'header-wrapper'"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And add the below codes after the above codes:-&lt;br /&gt;&lt;br /&gt;&lt;div class="code-wrapper"&gt;&lt;br /&gt;&amp;lt;div id='contentbar'&amp;gt;&lt;br /&gt;&amp;lt;div id='headbar1'&amp;gt;&lt;br /&gt;&amp;lt;b:section class='header' id='HTML81' maxwidgets='2' preferred='yes' showaddelement='yes'&amp;gt;&lt;br /&gt;&amp;lt;b:widget id='HTML101' locked='false' title='' type='HTML'/&amp;gt;&lt;br /&gt;&amp;lt;/b:section&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id='headbar2'&amp;gt;&lt;br /&gt;&amp;lt;b:section class='header' id='HTML82' maxwidgets='2' preferred='yes' showaddelement='yes'&amp;gt;&lt;br /&gt;&amp;lt;b:widget id='HTML102' locked='false' title='' type='HTML'/&amp;gt;&lt;br /&gt;&amp;lt;/b:section&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now go to Layout &gt; Page Elements&lt;br /&gt;walla, two editable HTML/Javascript Tabs show up side by side in the head area.&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7556921667441761961?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7556921667441761961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/glitting-title-and-label-cloud-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7556921667441761961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7556921667441761961'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/glitting-title-and-label-cloud-on.html' title='How to put two widgets side by side in blogger head'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1112678799859024397</id><published>2009-06-05T19:07:00.000-07:00</published><updated>2009-06-07T16:06:39.120-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger Hack'/><title type='text'>Horizontal Navigation Menu Links with submenu For Blogger</title><content type='html'>I have seen many Horizontal Tab Memu Links in Blogs and ever wonder if I can add some Drop Down Sub Menu Links to each Tab Menu, so that user can navigate through more categories easily.&lt;br /&gt;Now, I find the solution, and share with you guys.&lt;br /&gt;Demo of Horizontal Navigation Menu Links with submenu:- &lt;a href="http://windowsmultithreading.blogspot.com/"&gt;Cyber Jedi (old Blog)&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Just Go To Layout &gt; Edit Html&lt;br /&gt;&lt;br /&gt;And Search For &amp;lt;/b:skin&amp;gt;&lt;br /&gt;&lt;br /&gt;Now add these below Css codes before it-&lt;br /&gt;&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="SCROLLBAR-ARROW-COLOR: blue; OVERFLOW-Y: scroll; BACKGROUND-COLOR: #ffffcc; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 450px; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;/*add by me for navTab*/&lt;br /&gt;#subnavbar {&lt;br /&gt;background: #90B557;&lt;br /&gt;width: &lt;font color="red"&gt;660px;&lt;/font&gt;&lt;br /&gt;height: 24px;&lt;br /&gt;color: #2E4C0B;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;#subnav {&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;#subnav ul {&lt;br /&gt;float: left;&lt;br /&gt;list-style: none;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;#subnav li {&lt;br /&gt;float: left;&lt;br /&gt;list-style: none;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;#subnav li a, #subnav li a:link, #subnav li a:visited {&lt;br /&gt;color: #2E4C0B;&lt;br /&gt;display: block;&lt;br /&gt;font-size: 10px;&lt;br /&gt;font-weight: bold;&lt;br /&gt;text-transform: uppercase;&lt;br /&gt;margin: 0px 5px 0px 0px;&lt;br /&gt;padding: 6px 13px 6px 13px;&lt;br /&gt;}&lt;br /&gt;#subnav li a:hover, #subnav li a:active {&lt;br /&gt;background: #BED3A0;&lt;br /&gt;color: #3A5C04;&lt;br /&gt;display: block;&lt;br /&gt;text-decoration: none;&lt;br /&gt;margin: 0px 5px 0px 0px;&lt;br /&gt;padding: 6px 13px 6px 13px;&lt;br /&gt;}&lt;br /&gt;#subnav li li a, #subnav li li a:link, #subnav li li a:visited {&lt;br /&gt;background: #BED3A0;&lt;br /&gt;width: 140px;&lt;br /&gt;float: none;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 6px 10px 6px 10px;&lt;br /&gt;border-bottom: 1px solid #FFFFFF;&lt;br /&gt;border-left: 1px solid #FFFFFF;&lt;br /&gt;border-right: 1px solid #FFFFFF;&lt;br /&gt;}&lt;br /&gt;#subnav li li a:hover, #subnav li li a:active {&lt;br /&gt;background: #FFFFFF;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 6px 10px 6px 10px;&lt;br /&gt;}&lt;br /&gt;#subnav li ul {&lt;br /&gt;z-index: 9999;&lt;br /&gt;position: absolute;&lt;br /&gt;left: -999em;&lt;br /&gt;height: auto;&lt;br /&gt;width: 160px;&lt;br /&gt;margin: 0px;&lt;br /&gt;padding: 0px;&lt;br /&gt;}&lt;br /&gt;#subnav li li {&lt;br /&gt;}&lt;br /&gt;#subnav li ul a {&lt;br /&gt;width: 140px;&lt;br /&gt;}&lt;br /&gt;#subnav li ul a:hover, #subnav li ul a:active {&lt;br /&gt;}&lt;br /&gt;#subnav li ul ul {&lt;br /&gt;margin: -25px 0 0 161px;&lt;br /&gt;}&lt;br /&gt;#subnav li:hover ul ul, #subnav li:hover ul ul ul, #subnav li.sfhover ul ul, #subnav li.sfhover ul ul ul {&lt;br /&gt;left: -999em;&lt;br /&gt;}&lt;br /&gt;#subnav li:hover ul, #subnav li li:hover ul, #subnav li li li:hover ul, #subnav li.sfhover ul, #subnav li li.sfhover ul, #subnav li li li.sfhover ul {&lt;br /&gt;left: auto;&lt;br /&gt;}&lt;br /&gt;#subnav li:hover, #subnav li.sfhover {&lt;br /&gt;position: static;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*add by me for navTab*/&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Please edit the width of the above codes in red to adjust to the width of the navigation menu to adjust it to yours template width.You can change the color and design of above css also if you are capable of it.&lt;br /&gt;Now Search for below codes-&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="'header-wrapper'"&amp;gt;&lt;br /&gt;&amp;lt;b:section class="'header'" id="'header'" maxwidgets="'1'" showaddelement="'no'"&amp;gt;&lt;br /&gt;&amp;lt;b:widget id="'Header1'" locked="'true'" title="'Testing" type="'Header'/"&amp;gt;&lt;br /&gt;&amp;lt;/b:section&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;And add the below codes after the above codes:-&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="SCROLLBAR-ARROW-COLOR: blue; OVERFLOW-Y: scroll; BACKGROUND-COLOR: #ffffcc; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 450px; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;&amp;lt;!--add by me for navTab--&amp;gt;&lt;br /&gt;&amp;lt;div id='subnavbar'&amp;gt;&lt;br /&gt;&amp;lt;ul id='subnav'&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Technology&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;  &lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;News&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Events&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Robotics&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Projects&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Tips&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Science&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Physics&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Environment&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Space Tech&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Innovations&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Breakthroughs&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Web 2.0&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Wanna be?&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Latest news&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Web Development&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Geek Events&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;2nd Opinions&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Design&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Photoshop&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='#'&amp;gt;Web 3.0&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Freelance&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Tips and tricks&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;Blogger&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;templates&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;enhancements&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;a href='http://cyberjedizen.blogspot.com/'&amp;gt;tips and tricks&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--add by me for navTab--&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1112678799859024397?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1112678799859024397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-create-drop-down-navigation-bar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1112678799859024397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1112678799859024397'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-create-drop-down-navigation-bar.html' title='Horizontal Navigation Menu Links with submenu For Blogger'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4984989937182070405</id><published>2009-06-04T05:18:00.000-07:00</published><updated>2009-06-05T21:09:55.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Model fighter game UI with Swing (SINGLETON design pattern) - Part 2</title><content type='html'>In &lt;a href="http://cyberjedizen.blogspot.com/2009/05/model-fighter-game-control-with-swing-i.html" target="_"&gt;Model fighter game UI with Swing - Part 1&lt;/a&gt;, I have created the JFrame for fighters' detail view, before I create the main view which shows the thumbnails of all fighters, I need to figure out how to switch between them.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Once switch button clicked in the MainView frame, MainView should call set itself invisible, then get an instance of DetailView and set it visible. The problem is how to get an instance of DetailView. Calling DetailView's  constructor directly is problematic, because at anytime, I don't want to create more than one instance of the DetailView. What I want is a getter method, if the DetailView has not been created, then create it and return it to me; otherwise, just return the existing instance to me. &lt;br /&gt;The SINGLETON design pattern is the perfect solution here. By declaring the constructor DetailView() to be private, I can be assured that the only way of creating new instance is by calling getSingleton() method. In getSingleton(), we only call constructor at the first time, which guarantees only one instance is created.&lt;br /&gt;(notice for thread safety, a little bit more complexed singleton pattern will be used instead.)&lt;br /&gt;&lt;br /&gt;MultipleFramesExample.java&lt;br /&gt;&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color:  blue; scrollbar- face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color:  #888888"&gt;&lt;br /&gt;/*MultipleFramesExample.java*/&lt;br /&gt;package FrameViews;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;public class MultipleFramesExample {  &lt;br /&gt;  public MultipleFramesExample() {&lt;br /&gt;   MainView.getSingleton().setVisible(true);&lt;br /&gt;   DetailView.getSingleton().setVisible(false);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;   new MultipleFramesExample();&lt;br /&gt;  }  &lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;MaiView.java&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color:  blue; scrollbar- face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color:  #888888"&gt;&lt;br /&gt;/*MainView.java*/&lt;br /&gt;package FrameViews;&lt;br /&gt;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;public class MainView extends JFrame implements ActionListener  { &lt;br /&gt;  private static MainView theHandel;&lt;br /&gt;    &lt;br /&gt;  private MainView() {   &lt;br /&gt;     super("Main View");&lt;br /&gt;     super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;     super.setLocationRelativeTo(null);&lt;br /&gt;     super.setLocation(300, 400);&lt;br /&gt;     JPanel frame1 = (JPanel)super.getContentPane();&lt;br /&gt;     setSize(150,100);&lt;br /&gt;     frame1.setVisible(true);     &lt;br /&gt;     JButton button1 = new JButton("Click for Detail View");&lt;br /&gt;     frame1.add(button1);&lt;br /&gt;     button1.addActionListener(this);&lt;br /&gt;     pack();&lt;br /&gt;     }&lt;br /&gt; &lt;br /&gt;  public static MainView getSingleton() {&lt;br /&gt;   if (theHandel == null) {&lt;br /&gt;             theHandel = new MainView();&lt;br /&gt;         }&lt;br /&gt;         return theHandel;&lt;br /&gt;   }&lt;br /&gt; &lt;br /&gt;     public void actionPerformed(ActionEvent event) {&lt;br /&gt;      theHandel.setVisible(false);&lt;br /&gt;      DetailView.getSingleton().setVisible(true);&lt;br /&gt;   &lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;DetailView.java&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color:  blue; scrollbar- face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color:  #888888"&gt;&lt;br /&gt;/*DetailView.java*/&lt;br /&gt;package FrameViews;&lt;br /&gt;import java.awt.event.*;&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;public class DetailView extends JFrame implements ActionListener {    &lt;br /&gt;private static DetailView theHandel;&lt;br /&gt;  &lt;br /&gt;private DetailView() {   &lt;br /&gt;   super("Detail View");&lt;br /&gt;   super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;   super.setLocation(300, 500);&lt;br /&gt;   JPanel frame1 = (JPanel)super.getContentPane();&lt;br /&gt;   setSize(150,100);&lt;br /&gt;   frame1.setVisible(true);     &lt;br /&gt;   JButton button1 = new JButton("Click for Main View");&lt;br /&gt;   frame1.add(button1);&lt;br /&gt;   button1.addActionListener(this);&lt;br /&gt;   pack();&lt;br /&gt;   }&lt;br /&gt; &lt;br /&gt;  public static DetailView getSingleton() {&lt;br /&gt;   if (theHandel == null) {&lt;br /&gt;             theHandel = new DetailView();&lt;br /&gt;         }&lt;br /&gt;         return theHandel;&lt;br /&gt;   }&lt;br /&gt; &lt;br /&gt;   public void actionPerformed(ActionEvent event) {&lt;br /&gt;     theHandel.setVisible(false);&lt;br /&gt;    MainView.getSingleton().setVisible(true);&lt;br /&gt; &lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4984989937182070405?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4984989937182070405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/model-fighter-game-ui-with-swing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4984989937182070405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4984989937182070405'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/model-fighter-game-ui-with-swing.html' title='Model fighter game UI with Swing (SINGLETON design pattern) - Part 2'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5293107057427794612</id><published>2009-06-03T21:30:00.000-07:00</published><updated>2009-06-05T21:04:55.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger Hack'/><title type='text'>How to embed a google search engine in your blog</title><content type='html'>&lt;strong&gt;&lt;em&gt;How?&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Step 1:&lt;br /&gt;Click Customize -&gt; Layout -&gt; Page Elements -&gt; add a Gadget&lt;br /&gt;Step 2:&lt;br /&gt;Selet the "HTML/Javascript", in the textarea copy and paste either the "code for radio style search box" or "code for checkbox style search box" listed below.&lt;br /&gt;Step 3:&lt;br /&gt;Change the following fields accordingly:&lt;br /&gt;&amp;lt;input type="radio" name="sitesearch" value="YOURSITE" checked /&amp;gt;YOUR SITE&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;input type="checkbox" name="sitesearch" value="YOURSITE" checked /&amp;gt; only search YOUR SITE&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;Step 4:&lt;br /&gt;Save the change and Done.&lt;br /&gt;&lt;br /&gt;&lt;form method="get" action="http://www.google.com/search" target="_blank"&gt;&lt;br /&gt;&lt;input type="text" name="q" size="25" maxlength="255" value="" /&gt;&lt;br /&gt;&lt;input type="submit" value="Google Search" /&gt;&lt;br /&gt;&lt;input type="checkbox" name="sitesearch" value="cyberjedizen.blogspot.com" checked /&gt; only search Cyber Jedi&lt;br /&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;code for radio style search box:&lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;&amp;lt;form method="get" action="http://www.google.com/search" target="_blank"&amp;gt;&lt;br /&gt;&amp;lt;input type="text" name="q" size="25" maxlength="255" value="" /&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Google Search" /&amp;gt;&lt;br /&gt;&amp;lt;input type="checkbox" name="sitesearch" value="cyberjedizen.blogspot.com" checked /&amp;gt; only search Cyber Jedi&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;form method="get" action="http://www.google.com/search" target="_blank"&gt;&lt;br /&gt;&lt;input type="text" name="q" size="31" maxlength="255" value="" /&gt;&lt;br /&gt;&lt;input type="submit" value="Google Search" /&gt;&lt;br /&gt;&lt;input type="radio" name="sitesearch" value="" /&gt; The Web&lt;input type="radio" name="sitesearch" value="cyberjedizen.blogspot.com" checked /&gt; Cyber Jedi&lt;br /&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;code for checkbox style search box: &lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;&amp;lt;form method="get" action="http://www.google.com/search" target="_blank"&amp;gt;&lt;br /&gt;&amp;lt;input type="text" name="q" size="31" maxlength="255" value="" /&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Google Search" /&amp;gt;&lt;br /&gt;&amp;lt;input type="radio" name="sitesearch" value="" /&amp;gt; The Web&amp;lt;input type="radio" name="sitesearch" value="cyberjedizen.blogspot.com" checked /&amp;gt; Cyber Jedi&amp;lt;br /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;The basic technique involved here is to be able to manipulate one of the variables handed to the Google search engine, a variable called sitesearch. Set it to a null value and you're searching the entire World Wide Web, but set it to a specific domain and it's constrained to to the domain.&lt;br /&gt;&lt;br /&gt;You can either use radio button or check box for the sitesearch field. Notice the target="_blank" in the &amp;lt;form&amp;gt; tab, which create a pop up window instead of let the user clicking away from your site.&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5293107057427794612?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5293107057427794612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-embed-google-search-engine-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5293107057427794612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5293107057427794612'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-embed-google-search-engine-in.html' title='How to embed a google search engine in your blog'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2123892715993417520</id><published>2009-06-03T20:41:00.000-07:00</published><updated>2009-06-04T09:12:52.344-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Blog tips'/><title type='text'>How to embed a visitor map in your blog</title><content type='html'>You can embed the following visitor map in your blog. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www3.clustrmaps.com/counter/maps.php?url=http://cyberjedizen.blogspot.com" id="clustrMapsLink"&gt;&lt;img src="http://www3.clustrmaps.com/counter/index2.php?url=http://cyberjedizen.blogspot.com" style="border:0px;" alt="Locations of visitors to this page" title="Locations of visitors to this page" id="clustrMapsImg" onerror="this.onerror=null; this.src='http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://www2.clustrmaps.com';" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Step 1:&lt;br /&gt;Click Customize -&gt; Layout -&gt; Page Elements -&gt; add a Gadget&lt;br /&gt;Step 2:&lt;br /&gt;Selet the "HTML/Javascript", in the textarea copy and paste code listed below.&lt;br /&gt;Step 3:&lt;br /&gt;Change the &amp;lt;img src="http://www3.clustrmaps.com/counter/index2.php?url=http://YOURSITE"&lt;br /&gt;Step 4:&lt;br /&gt;Save the change and Done.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color:  blue; scrollbar- face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color:  #888888"&gt;&lt;br /&gt;&amp;lt;a href="http://www3.clustrmaps.com/counter/maps.php?url=http://cyberjedizen.blogspot.com" id="clustrMapsLink"&amp;gt;&amp;lt;img src="http://www3.clustrmaps.com/counter/index2.php?url=http://cyberjedizen.blogspot.com" style="border:0px;" alt="Locations of visitors to this page" title="Locations of visitors to this page" id="clustrMapsImg" onerror="this.onerror=null; this.src='http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://www2.clustrmaps.com';" /&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber%20Jedi"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2123892715993417520?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2123892715993417520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/supporting-files-socialize-this_03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2123892715993417520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2123892715993417520'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/supporting-files-socialize-this_03.html' title='How to embed a visitor map in your blog'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-557566366508513013</id><published>2009-06-03T18:32:00.000-07:00</published><updated>2009-06-05T21:04:55.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger Hack'/><title type='text'>How to promote your blog for search engine by adding the meta description and keyword entries.</title><content type='html'>&amp;lt;meta&amp;gt; tag is the html tag only visible for search engines. There are two very import meta tags:&lt;br /&gt;Meta Keywords. The Keywords tell the search engines which terms or topics are most important in your blog; they are the words which generate the hits. This gets your blog listed in a search hit list.&lt;br /&gt;Meta Description. The Description describes the contents of the blog; it is what is displayed in a search hit list entry. This is what gets the visitor to click to your blog, when your blog is presented in a search hit list.Both entries are essential. You want clicks. Without list entries, there will be no clicks.&lt;br /&gt;&lt;br /&gt;If you view your page source (&lt;a href="http://www.google.com/search?q=how+to+view+page+source" target="_"&gt;how&lt;/a&gt;?), you will find that blogger didn't include these two import meta tag by default. You can fix this, though, by little effort.&lt;br /&gt;&lt;br /&gt;Press:&lt;br /&gt;Customize -&gt; Layout -&gt; Edit HTML&lt;br /&gt;The first several lines shoul look like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;b:include data='blog' name='all-head-content'/&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;data:blog.pageTitle/&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;b:skin&amp;gt;&amp;lt;![CDATA[/*&lt;br /&gt;-----------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now add&lt;br /&gt;&amp;lt;meta content="'whatever" name="'description'/"&amp;gt;&lt;br /&gt;&amp;lt;meta content="'Blogger,Blog, other keys..." name="'keywords'/"&amp;gt;&lt;br /&gt;right before the line&lt;br /&gt;&amp;lt;b:skin&amp;gt;&amp;lt;![CDATA[/*&lt;br /&gt;so that your HTML looks like the following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;b:include data='blog' name='all-head-content'/&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;data:blog.pageTitle/&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;meta content='Programmer, Hardware Engineer, Biologist, martial artist, ever think of adding them together?' name='description'/&amp;gt;&lt;br /&gt;&amp;lt;meta content='Blogger, Blogspot, blogger.com, blogspot.com, Java, C, C++, C#, HTML, CSS, Programming, applet, swing, cyber, jedi, martial art, hardware, software,electronics, computer hardware, wireless, reverse engine, operation system, networking, digital arts, music, open source, driver, virus, information security, cyber martial arts, internet, worm, software, E-commerce, botnet, web, phishing, worm, ftp, p2p, email, social network, blog, search engine' name='keywords'/&amp;gt;&lt;br /&gt;&amp;lt;b:skin&amp;gt;&amp;lt;![CDATA[/*&lt;br /&gt;-----------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now take a look at your page's source code, the meta description and keyword entries show up.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;]&lt;br /&gt;[ &lt;a href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber" target="_"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-557566366508513013?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/557566366508513013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-promote-your-blog-for-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/557566366508513013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/557566366508513013'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-promote-your-blog-for-search.html' title='How to promote your blog for search engine by adding the meta description and keyword entries.'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1941599786345419640</id><published>2009-06-03T17:16:00.000-07:00</published><updated>2009-06-05T21:04:55.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger Hack'/><title type='text'>How to change Post Template</title><content type='html'>After blogging for a while, we find some formatting repeated again and again. For example, most of my post have a scrollable div, have footers with "support files" link and "socialize it" link.&lt;br /&gt;Instead of typing these code each time, I can pre-write them in the post template, so that every time when I create a new post, those code block will be automatically generated.&lt;br /&gt;&lt;br /&gt;To do that, press&lt;br /&gt;&lt;br /&gt;Customize -&gt; Settings -&gt; Formating&lt;br /&gt;type in the pre-written code into "Post Template" text area.&lt;br /&gt;&lt;br /&gt;The following example is the code in my Post Template:&lt;br /&gt;&lt;br /&gt;&lt;!-- scrollable code div --&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color: &lt;br /&gt;blue; scrollbar-&lt;br /&gt;face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color: &lt;br /&gt;#888888"&gt;&lt;br /&gt;&amp;lt;!-- scrollable code div --&amp;gt;&lt;br /&gt;&amp;lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color: &lt;br /&gt;blue; scrollbar-&lt;br /&gt;face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color: &lt;br /&gt;#888888"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--footer--&amp;gt;&lt;br /&gt;[ &amp;lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&amp;gt;Supporting files&amp;lt;/a&amp;gt;] &lt;br /&gt;[ &amp;lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;amp;title=Cyber Jedi"&amp;gt;Socialize This&amp;lt;/a&amp;gt;]&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--footer--&gt;&lt;br /&gt;[ &lt;a href="http://sites.google.com/site/cyberjedizen/" target="_"&gt;Supporting files&lt;/a&gt;] &lt;br /&gt;[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/&amp;amp;title=Cyber Jedi"&gt;Socialize This&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1941599786345419640?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1941599786345419640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/after-blogging-for-while-we-find-some.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1941599786345419640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1941599786345419640'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/after-blogging-for-while-we-find-some.html' title='How to change Post Template'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8029629687503960207</id><published>2009-06-03T13:04:00.000-07:00</published><updated>2009-06-03T13:18:07.007-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>how to embed socializer into your post</title><content type='html'>[ &lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/2009/06/how-to-embed-socializer-into-your-post.html&amp;amp;title=how to embed socializer into your post"&gt;Socialize This&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy paste the following code into your post's HTML.&lt;br /&gt;url=http://yoursite/yourdirectory/yourpost.html&lt;br /&gt;title=your title&lt;br /&gt;&lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color: &lt;br /&gt;blue; scrollbar-&lt;br /&gt;face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color: &lt;br /&gt;#888888"&gt;&lt;br /&gt;[ &amp;lt;a target="_" href="http://ekstreme.com/socializer/?url=http://cyberjedizen.blogspot.com/2009/06/how-to-embed-socializer-into-your-post.html&amp;amp;amp;title=how to embed socializer into your post"&amp;gt;Socialize This&amp;lt;/a&amp;gt;]&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8029629687503960207?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8029629687503960207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-embed-socializer-into-your-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8029629687503960207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8029629687503960207'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-embed-socializer-into-your-post.html' title='how to embed socializer into your post'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7307171918738806284</id><published>2009-06-03T10:47:00.000-07:00</published><updated>2009-06-03T12:37:00.348-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to embed digg button in your post in 10 seconds</title><content type='html'>&lt;div style="position:relative;right:0px;margin-top:0px"&gt; &lt;br /&gt;&lt;div style='margin: 10px 0 0 0;clear:both'&gt; &lt;br /&gt;&lt;script type="text/javascript"&gt;digg_skin = 'compact';digg_bgcolor = '#F8FAF0';digg_url = 'http://cyberjedizen.blogspot.com/2009/06/how-to-embed-dig-button-on-your-post.html';&lt;/script&gt;&lt;br /&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt; &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Edit Html, copy/paste the following code into your html code.&lt;br /&gt;change digg_url = 'http://cyberjedizen.blogspot.com/2009/06/how-to-embed-dig-button-on-your-post.html' to&lt;br /&gt;digg_url = 'http://yoursite.blogspot.com/yourdirectory/yourpost.html'&lt;br /&gt;&lt;br /&gt;If you want the Large yellow digg icon, set digg_skin='normal'.&lt;br /&gt;(Embedding digg will slow down your page loading, I have warned you.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;&amp;lt;div style="position:relative;right:0px;margin-top:0px"&amp;gt; &lt;br /&gt;&amp;lt;div style='margin: 10px 0 0 0;clear:both'&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;digg_skin = 'compact';digg_bgcolor = '#F8FAF0';digg_url = 'http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-remove-navigation.html';&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7307171918738806284?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7307171918738806284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-embed-dig-button-on-your-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7307171918738806284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7307171918738806284'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/how-to-embed-dig-button-on-your-post.html' title='Blog Tricks, how to embed digg button in your post in 10 seconds'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3681503697662797972</id><published>2009-06-02T13:09:00.000-07:00</published><updated>2009-06-10T08:09:52.634-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger Hack'/><title type='text'>Blog Tricks, how to embed applet in your post.</title><content type='html'>&lt;applet codebase="http://sites.google.com/site/cyberjedizen/Home/blog-tricks-how-to-embed-applet-in-your-post-in-10-seconds/" archive="hello.jar" code="hello.class" width="200" height="100"&gt;&lt;param name="_cx" value="2646"&gt;&lt;param name="_cy" value="2646"&gt;&lt;/applet&gt;&lt;br /&gt;&lt;br /&gt;hello.java :&lt;br /&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color: rgb(255, 255, 204); overflow-y: scroll;"&gt;&lt;br /&gt;/*hello.java*/&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;public class hello extends java.applet.Applet&lt;br /&gt;{&lt;br /&gt;public void paint(Graphics g)&lt;br /&gt;{&lt;br /&gt;g.drawString("Hello from Java!", 60, 30);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;you can download the hello.java and the compiled hello.jar files from my supporting site &lt;a href="http://sites.google.com/site/cyberjedizen/Home/blog-tricks-how-to-embed-applet-in-your-post-in-10-seconds" target="_"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following is the step by step howto:&lt;div&gt;&lt;br /&gt;step 1: Get an online file storage to host your jar files. Google Site provides free site host, just register a free account at http://site.google.com/ .&lt;div&gt; &lt;div&gt;step 2: Compile the java file hello.java to hello.jar file.If you don't have java compiler on your computer, use the online java compiler at http://compilr.com/ , registration is free and take 1 minute.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;step 3: Upload the hello.jar file to a file server . For example, my hello.jar is uploaded to the free server at google, this is my directory -- http://sites.google.com/site/cyberjedizen/Home/blog-tricks-how-to-embed-applet-in-your-post-in-10-seconds/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;step 4: Copy paste the following html code to your post's Html, the codebase="http://yoursite/yourdirectory/"&lt;/div&gt;&lt;br /&gt;html code:&lt;br /&gt;&lt;br /&gt;&lt;div style="height: 150px; background-color: rgb(255, 255, 204); overflow-y: scroll;"&gt;&lt;br /&gt;&amp;lt;applet codebase="http://sites.google.com/site/cyberjedizen/Home/blog-tricks-how-to-embed-applet-in-your-post-in-10-seconds/" height="100" archive="hello.jar" width="200" code="hello.class"&amp;gt;&amp;lt;param name="_cx" value="2646"&amp;gt;&amp;lt;param name="_cy" value="2646"&amp;gt;&amp;lt;/applet&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's it, have fun with applet. If this don't work for your blog, leave your comment here, I will help you on it asap. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;references:&lt;/div&gt;&lt;div&gt;&lt;a href="http://compilr.com/" target="_"&gt;online compiler&lt;/a&gt; (java/c/c++/c#/vb/...)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/" target="_"&gt;free online file host&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.innovation.ch/java/security.html" target="_"&gt;applet network security&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3681503697662797972?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3681503697662797972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/blog-tricks-how-to-embed-applet-in-your.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3681503697662797972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3681503697662797972'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/blog-tricks-how-to-embed-applet-in-your.html' title='Blog Tricks, how to embed applet in your post.'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-293955048443690819</id><published>2009-06-02T07:49:00.000-07:00</published><updated>2009-06-03T11:34:42.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to create a scrollable DIV in your post in 10 seconds?</title><content type='html'>&lt;div style="height: 150px; background-color:#FFFFCC;  overflow-y: scroll; scrollbar-arrow-color: &lt;br /&gt;blue; scrollbar-&lt;br /&gt;face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color: &lt;br /&gt;#888888"&gt;&lt;br /&gt;your text below&lt;br /&gt;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;your text above&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;copy paste the following code into your blogs post, done.&lt;br /&gt;&lt;br /&gt;&amp;lt;div style="height: 150px; background-color:#FFFFCC; overflow-y: scroll; scrollbar-arrow-color: &lt;br /&gt;blue; scrollbar-&lt;br /&gt;face-color: #e7e7e7; scrollbar-3dlight-color: #a0a0a0; scrollbar-darkshadow-color: &lt;br /&gt;#888888"&amp;gt;&lt;br /&gt;your text below&lt;br /&gt;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;AAAAA&lt;br /&gt;your text above&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-293955048443690819?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/293955048443690819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/blog-tricks-how-to-create-scrollable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/293955048443690819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/293955048443690819'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/blog-tricks-how-to-create-scrollable.html' title='Blog Tricks, how to create a scrollable DIV in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5762366009085457388</id><published>2009-05-29T21:04:00.000-07:00</published><updated>2009-06-05T21:09:55.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>SWING JApplet with multimedia</title><content type='html'>&lt;strong&gt;Play Audio in JApplet&lt;br /&gt;&lt;/strong&gt;When playing music, AudioClip object is needed, which play *.au and *.wav files.&lt;br /&gt;There are three methods on AudioClip objects:&lt;br /&gt;• play(): it plays the audio file once and stop.&lt;br /&gt;• loop(): it plays the audio file repeatedly until the stop method is called.&lt;br /&gt;• stop(): it stops a loop play of an audio clip.&lt;br /&gt;&lt;br /&gt;To test the code, get any wav files, rename them to shutter.wav and tuner2.wav, then copy them to your DocumentBase directory (just uncomment //System.out.println("DocumentBase="+getDocumentBase()); to find out).&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('swing_japplet_1').style.display='block'"&gt;Show Code&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('swing_japplet_1').style.display='none'"&gt;Hide Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="DISPLAY: none" id="swing_japplet_1"&gt;&lt;br /&gt;&lt;table border="1" cellspacing="0" cellpadding="10" width="400" frame="box"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;br /&gt;/*music.java*/&lt;br /&gt;package AppletExample;&lt;br /&gt;&lt;br /&gt;import java.applet.AudioClip;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;&lt;br /&gt;import javax.swing.JApplet;&lt;br /&gt;&lt;br /&gt;public class music extends JApplet {&lt;br /&gt;AudioClip buttonSound, musicLoop;&lt;br /&gt;public void init() {&lt;br /&gt;setLayout(new FlowLayout(FlowLayout.CENTER));&lt;br /&gt;&lt;br /&gt;Button playBtn;&lt;br /&gt;add (playBtn = new Button("Play"));&lt;br /&gt;playBtn.addActionListener( new BtnAdapter (0));&lt;br /&gt;&lt;br /&gt;Button loopBtn;&lt;br /&gt;add (loopBtn = new Button("Loop"));&lt;br /&gt;loopBtn.addActionListener( new BtnAdapter(1));&lt;br /&gt;&lt;br /&gt;Button stopBtn;&lt;br /&gt;add (stopBtn = new Button("Stop"));&lt;br /&gt;stopBtn.addActionListener( new BtnAdapter (2));&lt;br /&gt;// System.out.println("DocumentBase="+getDocumentBase());&lt;br /&gt;buttonSound = getAudioClip(getDocumentBase(), "shutter.wav");&lt;br /&gt;musicLoop = getAudioClip(getDocumentBase(), "tuner2.wav");&lt;br /&gt;}&lt;br /&gt;public void start() { // music restart when back to the page&lt;br /&gt;musicLoop.loop();&lt;br /&gt;}&lt;br /&gt;public void stop() { // music stops when move away&lt;br /&gt;musicLoop.stop();&lt;br /&gt;}&lt;br /&gt;class BtnAdapter implements ActionListener {&lt;br /&gt;private int id;&lt;br /&gt;BtnAdapter( int buttonID) { id = buttonID; }&lt;br /&gt;&lt;br /&gt;public void actionPerformed (ActionEvent e) {&lt;br /&gt;switch (id) {&lt;br /&gt;case 0: buttonSound.play();&lt;br /&gt;break;&lt;br /&gt;case 1: musicLoop.loop();&lt;br /&gt;break;&lt;br /&gt;case 2: musicLoop.stop();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Play Video in JApplet&lt;/strong&gt;&lt;br /&gt;When playing video a Manager class and a player object are needed.&lt;br /&gt;There are there control methods on the player object:&lt;br /&gt;player.start()&lt;br /&gt;player.stop()&lt;br /&gt;player.close()&lt;br /&gt;&lt;br /&gt;Java Media Framework (&lt;a href="http://cs.uccs.edu/~cs525/jmf/jmf.html" target="_blank"&gt;JMF&lt;/a&gt;) API is needed for import javax.media.*;&lt;br /&gt;You need to download JMF library for compiling the code.&lt;br /&gt;&lt;br /&gt;To test the code, get any mpg file, rename it to phantom.mpg, then copy it to your DocumentBase directory (just uncomment //System.out.println("DocumentBase="+getDocumentBase()); to find out).&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('swing_japplet_2').style.display='block'"&gt;Show Code&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('swing_japplet_2').style.display='none'"&gt;Hide Code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="DISPLAY: none" id="swing_japplet_2"&gt;&lt;br /&gt;&lt;table border="1" cellspacing="0" cellpadding="10" width="400" frame="box"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*videoPlayer.java*/&lt;br /&gt;package AppletExample;&lt;br /&gt;&lt;br /&gt;import javax.media.*;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.net.URL;&lt;br /&gt;&lt;br /&gt;import javax.swing.JApplet;&lt;br /&gt;&lt;br /&gt;public class videoPlayer extends JApplet {&lt;br /&gt;Player player;&lt;br /&gt;public void init() {&lt;br /&gt;URL mediaURL = null;&lt;br /&gt;try {&lt;br /&gt;// System.out.println("DocumentBase="+getDocumentBase());&lt;br /&gt;mediaURL = new URL(getDocumentBase(),"phantom.mpg");&lt;br /&gt;player = Manager.createRealizedPlayer(mediaURL);&lt;br /&gt;} catch (Exception e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Component video = player.getVisualComponent();&lt;br /&gt;Component controls = player.getControlPanelComponent();&lt;br /&gt;add("Center", video);&lt;br /&gt;add("South", controls);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void start() {&lt;br /&gt;if (player != null)&lt;br /&gt;player.start();&lt;br /&gt;}&lt;br /&gt;public void stop() {&lt;br /&gt;if (player != null)&lt;br /&gt;player.stop();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="DISPLAY: none"&gt;&lt;/div&gt;&lt;div style="DISPLAY: none"&gt;&lt;/div&gt;&lt;br /&gt;download the supporting files and code from &lt;a href="http://sites.google.com/site/cyberjedizen/Home/swing-japplet-with-multimedia" target="_blank"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5762366009085457388?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5762366009085457388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/swing-japplet-with-multimedia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5762366009085457388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5762366009085457388'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/swing-japplet-with-multimedia.html' title='SWING JApplet with multimedia'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2938609909849037707</id><published>2009-05-29T06:49:00.000-07:00</published><updated>2009-06-05T21:09:55.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Model fighter game UI with Swing - Part 1</title><content type='html'>tutorial reference: &lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/learn/index.html"&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/learn/index.html"&gt;Swing with Netbeans&lt;/a&gt; &lt;div&gt;&lt;a href="http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/"&gt;Swing quick tutorial&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.seasite.niu.edu/cs580java/layoutexamples/layout_examples.htm"&gt;Swing LayOut Examples&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this session, we will create a fighter selection user interface. If you ever played console game such as "Street Fighters" and "Iron Fists", you already know what the UI feels like.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In part 1, our objective is to create the UI frame showing the fighter's information.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At the application level, once the User opens the game, a panel will list all available fighters with their thumbnail pictures. Once user selects a fighter, we entered this information frame, which show the details about the fighter. There will be two buttons "Back" and "Fight". "Back" button brings user to the thumbnail frame, while "Fight" button brings user to the fighting arena frame. Optionally, user can click to view the fighter's story, watch the fighter's fighting movie's etc.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;At the function level, this frame have upperArea and lowerArea. The upperArea shows the fighters name, style, birthday, hometown and many control buttons. The lowerArea shows the fighter's picture, fighter's power, speed, energy etc. There are many interactive features. For example, the user is able to adjust the fighter's power, speed, energy etc. with sliders and save the data to hard disk. There are prev and next button to iterate through all the fighters. The frame embeds many special effects, such as the 3D shadowing of the text, button pressing sounds and the background music for each fighter. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;At the implementation level, there are two classes, SelectPanel.java and Afighter.java. SelectPanel provide the view and control. The Afighter.java is the model of a fighter, with fields and getters/setters. The persistant layer is provided by harddisk files.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;SelectPanel.java&lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;/*SelectPanel.java*/&lt;br /&gt;package FighterSelect;&lt;br /&gt;&lt;br /&gt;import java.applet.AudioClip;&lt;br /&gt;import java.awt.*;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import java.awt.geom.AffineTransform;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;import javax.swing.event.ChangeEvent;&lt;br /&gt;import javax.swing.event.ChangeListener;&lt;br /&gt;&lt;br /&gt;public class SelectPanel extends JFrame implements ActionListener{&lt;br /&gt;JPanel content;&lt;br /&gt;JPanel upperArea;&lt;br /&gt;JPanel controlBar;&lt;br /&gt;JButton prevButton;&lt;br /&gt;JButton nextButton;&lt;br /&gt;JLabel infoLabel;&lt;br /&gt;JLabel photoLabel;&lt;br /&gt;JLabel descLabel;&lt;br /&gt;JSlider slider1;&lt;br /&gt;JSlider slider2;&lt;br /&gt;JSlider slider3;&lt;br /&gt;JSlider slider4;&lt;br /&gt;JSlider slider5;&lt;br /&gt;MusicButton musicBtn;&lt;br /&gt;DrawingPanel drawingPanel;&lt;br /&gt;&lt;br /&gt;Vector fighters;&lt;br /&gt;String[] ids = {"010","030","022"};&lt;br /&gt;Afighter afighter;&lt;br /&gt;private int current = 0;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;new SelectPanel("Fighter NameCard");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public SelectPanel(String name) {&lt;br /&gt;super(name);&lt;br /&gt;super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;super.setSize(800,600);&lt;br /&gt;super.setLocationRelativeTo(null);&lt;br /&gt;fighters = parseParameters();&lt;br /&gt;afighter = (Afighter)fighters.firstElement();&lt;br /&gt;&lt;br /&gt;try {&lt;br /&gt;// UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");&lt;br /&gt;// UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());&lt;br /&gt;UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());&lt;br /&gt;} catch(Exception e) {&lt;br /&gt;System.out.println("Error setting Motif LAF: " + e);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;content = (JPanel)getContentPane();&lt;br /&gt;content.setBackground(Color.GRAY);&lt;br /&gt;Font font = new Font("Serif", Font.PLAIN, 30);&lt;br /&gt;content.setFont(font);&lt;br /&gt;&lt;br /&gt;ImageIcon lefticon = new ImageIcon("images/left.gif");&lt;br /&gt;ImageIcon righticon = new ImageIcon("images/right.gif");&lt;br /&gt;prevButton = new JButton("Prev",lefticon);&lt;br /&gt;prevButton.setEnabled(false);&lt;br /&gt;prevButton.addActionListener( new ButtonClicked());&lt;br /&gt;prevButton.addActionListener(this);&lt;br /&gt;nextButton = new JButton("Next",righticon);&lt;br /&gt;nextButton.addActionListener(this);&lt;br /&gt;nextButton.addActionListener( new ButtonClicked());&lt;br /&gt;nextButton.setHorizontalTextPosition(SwingConstants.LEFT);&lt;br /&gt;infoLabel =&lt;br /&gt;new JLabel("labelText", JLabel.CENTER);&lt;br /&gt;infoLabel.setBorder&lt;br /&gt;(BorderFactory.createTitledBorder("Information"));&lt;br /&gt;drawingPanel = new DrawingPanel(afighter.getName());&lt;br /&gt;try {&lt;br /&gt;URL u = new URL("file:audio/"+afighter.getMusic());&lt;br /&gt;AudioClip audio = JApplet.newAudioClip(u);&lt;br /&gt;musicBtn = new MusicButton(audio);&lt;br /&gt;} catch (MalformedURLException e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;JButton backBtn = new JButton("Back");&lt;br /&gt;backBtn.addActionListener(new ButtonClicked());&lt;br /&gt;JButton saveBtn = new JButton("Save Data");&lt;br /&gt;saveBtn.addActionListener(new ButtonClicked());&lt;br /&gt;JButton fightBtn = new JButton("Fight");&lt;br /&gt;fightBtn.addActionListener(new ButtonClicked());&lt;br /&gt;JButton storyBtn = new JButton("Story");&lt;br /&gt;storyBtn.addActionListener(new ButtonClicked());&lt;br /&gt;JButton videoBtn = new JButton("Video");&lt;br /&gt;videoBtn.addActionListener(new ButtonClicked());&lt;br /&gt;controlBar = new JPanel(new GridLayout(1,5));&lt;br /&gt;controlBar.setBackground(Color.GRAY);&lt;br /&gt;controlBar.add(saveBtn);&lt;br /&gt;controlBar.add(backBtn);&lt;br /&gt;// controlBar.add(storyBtn);&lt;br /&gt;// controlBar.add(videoBtn);&lt;br /&gt;controlBar.add(fightBtn);&lt;br /&gt;controlBar.add(musicBtn);&lt;br /&gt;&lt;br /&gt;upperArea = new JPanel(new BorderLayout());&lt;br /&gt;upperArea.setBackground(Color.GRAY);&lt;br /&gt;upperArea.add(infoLabel, BorderLayout.NORTH);&lt;br /&gt;upperArea.add(drawingPanel, BorderLayout.CENTER);&lt;br /&gt;upperArea.add(prevButton, BorderLayout.WEST);&lt;br /&gt;upperArea.add(nextButton, BorderLayout.EAST);&lt;br /&gt;upperArea.add(controlBar, BorderLayout.SOUTH);&lt;br /&gt;content.add(upperArea,BorderLayout.NORTH);&lt;br /&gt;&lt;br /&gt;slider1 = new JSlider();&lt;br /&gt;slider1.addChangeListener(new sliderDragged(1));&lt;br /&gt;slider1.setBackground(Color.GRAY);&lt;br /&gt;slider2 = new JSlider();&lt;br /&gt;slider2.setBackground(Color.GRAY);&lt;br /&gt;slider2.addChangeListener(new sliderDragged(2));&lt;br /&gt;slider3 = new JSlider();&lt;br /&gt;slider3.setBackground(Color.GRAY);&lt;br /&gt;slider3.addChangeListener(new sliderDragged(3));&lt;br /&gt;slider4 = new JSlider();&lt;br /&gt;slider4.setBackground(Color.GRAY);&lt;br /&gt;slider4.addChangeListener(new sliderDragged(4));&lt;br /&gt;slider5 = new JSlider();&lt;br /&gt;slider5.setBackground(Color.GRAY);&lt;br /&gt;slider5.addChangeListener(new sliderDragged(5));&lt;br /&gt;&lt;br /&gt;photoLabel =&lt;br /&gt;new JLabel("",&lt;br /&gt;new ImageIcon("images/street_fighter_"+afighter.getId()+".gif"),&lt;br /&gt;JLabel.CENTER);&lt;br /&gt;descLabel = new JLabel("labelText");&lt;br /&gt;&lt;br /&gt;JPanel controlArea = new JPanel(new GridLayout(6,1));&lt;br /&gt;// controlArea.setPreferredSize(new Dimension(400, 0));&lt;br /&gt;controlArea.setBackground(Color.GRAY);&lt;br /&gt;controlArea.add(descLabel);&lt;br /&gt;controlArea.add(slider1);&lt;br /&gt;controlArea.add(slider2);&lt;br /&gt;controlArea.add(slider3);&lt;br /&gt;controlArea.add(slider4);&lt;br /&gt;controlArea.add(slider5);&lt;br /&gt;&lt;br /&gt;JPanel LowerArea = new JPanel(new BorderLayout());&lt;br /&gt;LowerArea.setBackground(Color.GRAY);&lt;br /&gt;LowerArea.add(photoLabel,BorderLayout.WEST);&lt;br /&gt;LowerArea.add(controlArea, BorderLayout.EAST);&lt;br /&gt;content.add(LowerArea, BorderLayout.SOUTH);&lt;br /&gt;&lt;br /&gt;this.init();&lt;br /&gt;super.setVisible(true);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void init() {&lt;br /&gt;String labelText =&lt;br /&gt;"&amp;lt;html&amp;gt;" +&lt;br /&gt;"&amp;lt;FONT COLOR=rgb(200,200,200)&amp;gt;Style: &amp;lt;/FONT&amp;gt; " +&lt;br /&gt;"&amp;lt;FONT COLOR=WHITE&amp;gt;"+afighter.getStyle()+"&amp;lt;/FONT&amp;gt; " +&lt;br /&gt;"&amp;lt;FONT COLOR=rgb(200,200,200)&amp;gt; Birthday: &amp;lt;/FONT&amp;gt; " +&lt;br /&gt;"&amp;lt;FONT COLOR=WHITE&amp;gt;"+afighter.getBd()+"&amp;lt;/FONT&amp;gt; " +&lt;br /&gt;"&amp;lt;FONT COLOR=rgb(200,200,200)&amp;gt;HomeTown: &amp;lt;/FONT&amp;gt; " +&lt;br /&gt;"&amp;lt;FONT COLOR=WHITE&amp;gt;"+afighter.getHometown()+"&amp;lt;/FONT&amp;gt; " +&lt;br /&gt;"&amp;lt;/html&amp;gt;";&lt;br /&gt;infoLabel.setText(labelText);&lt;br /&gt;&lt;br /&gt;labelText =&lt;br /&gt;"&amp;lt;html&amp;gt;" +&lt;br /&gt;"&amp;lt;div width='250px' padding='10px' margin='0px'&amp;gt;" +&lt;br /&gt;"&amp;lt;I&amp;gt;" + afighter.getDescription() + "&amp;lt;/I&amp;gt;" +&lt;br /&gt;"&amp;lt;/div&amp;gt;" +&lt;br /&gt;"&amp;lt;/html&amp;gt;";&lt;br /&gt;descLabel.setText(labelText);&lt;br /&gt;&lt;br /&gt;photoLabel.setIcon(new ImageIcon("images/street_fighter_"+afighter.getId()+".gif"));&lt;br /&gt;slider1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Power "+afighter.getPower()));&lt;br /&gt;slider1.setValue((int) afighter.getPower());&lt;br /&gt;slider2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Speed "+afighter.getSpeed()));&lt;br /&gt;slider2.setValue((int) afighter.getSpeed());&lt;br /&gt;slider3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Flexibility "+afighter.getFlexibility()));&lt;br /&gt;slider3.setValue((int) afighter.getFlexibility());&lt;br /&gt;slider4.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Energy "+afighter.getEnergy()));&lt;br /&gt;slider4.setValue((int) afighter.getEnergy());&lt;br /&gt;slider5.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Endurance "+afighter.getEndurance()));&lt;br /&gt;slider5.setValue((int) afighter.getEndurance());&lt;br /&gt;&lt;br /&gt;controlBar.remove(musicBtn);&lt;br /&gt;musicBtn.a.stop();&lt;br /&gt;try {&lt;br /&gt;URL u = new URL("file:audio/"+afighter.getMusic());&lt;br /&gt;AudioClip audio = JApplet.newAudioClip(u);&lt;br /&gt;musicBtn = new MusicButton(audio);&lt;br /&gt;} catch (MalformedURLException e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;controlBar.add(musicBtn);&lt;br /&gt;&lt;br /&gt;upperArea.remove(drawingPanel);&lt;br /&gt;drawingPanel = new DrawingPanel(afighter.getName());&lt;br /&gt;upperArea.add(drawingPanel, BorderLayout.CENTER);&lt;br /&gt;&lt;br /&gt;super.pack();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Load all fighter characters&lt;br /&gt;protected Vector parseParameters() {&lt;br /&gt;Vector pix = new Vector(10); //start with 10, grows if necessary&lt;br /&gt;for (int j = 0; j &amp;lt; ids.length; j++) {&lt;br /&gt;pix.addElement(FighterFactory(ids[j]));&lt;br /&gt;}&lt;br /&gt;return pix;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected Afighter getAfighter() {&lt;br /&gt;return this.afighter;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//initiate Afighter object with persistant data (we can also use JDBC)&lt;br /&gt;protected Afighter FighterFactory(String id){&lt;br /&gt;Afighter fighter = new Afighter();&lt;br /&gt;Properties props = new Properties();&lt;br /&gt;try {&lt;br /&gt;props.load(new FileInputStream("DataBase/"+id));&lt;br /&gt;fighter.setId(props.getProperty("id"));&lt;br /&gt;fighter.setMusic(props.getProperty("music"));&lt;br /&gt;fighter.setPower(new Integer(props.getProperty("power")));&lt;br /&gt;fighter.setSpeed(new Integer(props.getProperty("speed")));&lt;br /&gt;fighter.setFlexibility(new Integer(props.getProperty("flexibility")));&lt;br /&gt;fighter.setEnergy(new Integer(props.getProperty("energy")));&lt;br /&gt;fighter.setEndurance(new Integer(props.getProperty("endurance")));&lt;br /&gt;fighter.setName(props.getProperty("name"));&lt;br /&gt;fighter.setBd(props.getProperty("bd"));&lt;br /&gt;fighter.setHometown(props.getProperty("hometown"));&lt;br /&gt;fighter.setStyle(props.getProperty("style"));&lt;br /&gt;fighter.setDescription(props.getProperty("description"));&lt;br /&gt;}catch(IOException e){&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;return fighter;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Back and Next Buttons' sound effect&lt;br /&gt;private class ButtonClicked implements ActionListener {&lt;br /&gt;ButtonClicked() {}&lt;br /&gt;public void actionPerformed (ActionEvent e) {&lt;br /&gt;try {&lt;br /&gt;URL u;&lt;br /&gt;if(e.getActionCommand() == "Fight") {&lt;br /&gt;u = new URL("file:audio/aah.wav");&lt;br /&gt;}else if(e.getActionCommand() == "Back"){&lt;br /&gt;u = new URL("file:audio/attack.wav");&lt;br /&gt;}else if(e.getActionCommand() == "Save Data"){&lt;br /&gt;u = new URL("file:audio/shutter.wav");&lt;br /&gt;saveData();&lt;br /&gt;}else{&lt;br /&gt;u = new URL("file:audio/shutter.wav");&lt;br /&gt;}&lt;br /&gt;AudioClip music = JApplet.newAudioClip(u);&lt;br /&gt;music.play();&lt;br /&gt;} catch (MalformedURLException ex) {&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//save data to the file system (we can also use JDBC here)&lt;br /&gt;private void saveData(){&lt;br /&gt;Properties pro = new Properties();&lt;br /&gt;try {&lt;br /&gt;pro.load(new FileInputStream("DataBase/"+afighter.getId()));&lt;br /&gt;} catch (Exception e1) {&lt;br /&gt;e1.printStackTrace();&lt;br /&gt;}&lt;br /&gt;pro.setProperty("power", afighter.getPower().toString());&lt;br /&gt;pro.setProperty("speed", afighter.getSpeed().toString());&lt;br /&gt;pro.setProperty("flexibility", afighter.getFlexibility().toString());&lt;br /&gt;pro.setProperty("energy", afighter.getEnergy().toString());&lt;br /&gt;pro.setProperty("endurance", afighter.getEndurance().toString());&lt;br /&gt;try {&lt;br /&gt;pro.store(new FileOutputStream("DataBase/"+afighter.getId()),null);&lt;br /&gt;} catch (Exception e) {&lt;br /&gt;e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Update slider title and the Afighter object.&lt;br /&gt;private class sliderDragged implements ChangeListener {&lt;br /&gt;private int id;&lt;br /&gt;sliderDragged(int id) {&lt;br /&gt;this.id = id;&lt;br /&gt;}&lt;br /&gt;public void stateChanged(ChangeEvent arg0) {&lt;br /&gt;JSlider a = (JSlider)arg0.getSource();&lt;br /&gt;switch(id) {&lt;br /&gt;case 1:&lt;br /&gt;getAfighter().setPower(a.getValue());&lt;br /&gt;a.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Power "+afighter.getPower()));&lt;br /&gt;break;&lt;br /&gt;case 2:&lt;br /&gt;getAfighter().setSpeed(a.getValue());&lt;br /&gt;a.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Speed "+afighter.getSpeed()));&lt;br /&gt;break;&lt;br /&gt;case 3:&lt;br /&gt;getAfighter().setFlexibility(a.getValue());&lt;br /&gt;a.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Flexibility "+afighter.getFlexibility()));&lt;br /&gt;break;&lt;br /&gt;case 4:&lt;br /&gt;getAfighter().setEnergy(a.getValue());&lt;br /&gt;a.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Power "+afighter.getEnergy()));&lt;br /&gt;break;&lt;br /&gt;case 5:&lt;br /&gt;getAfighter().setEndurance(a.getValue());&lt;br /&gt;a.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(),"Power "+afighter.getEndurance()));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Play background music&lt;br /&gt;private class MusicButton extends JButton implements Runnable, ActionListener {&lt;br /&gt;Thread runner;&lt;br /&gt;AudioClip a;&lt;br /&gt;MusicButton(AudioClip audio) {&lt;br /&gt;super("Play Music");&lt;br /&gt;addActionListener(this);&lt;br /&gt;a = audio;&lt;br /&gt;}&lt;br /&gt;public void actionPerformed(ActionEvent event) {&lt;br /&gt;String command = event.getActionCommand();&lt;br /&gt;if (command == "Play Music")&lt;br /&gt;startMusic();&lt;br /&gt;if (command == "Stop Music")&lt;br /&gt;stopMusic();&lt;br /&gt;}&lt;br /&gt;void startMusic() {&lt;br /&gt;if (runner == null) {&lt;br /&gt;runner = new Thread(this);&lt;br /&gt;runner.start();&lt;br /&gt;setText("Stop Music");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;void stopMusic() {&lt;br /&gt;a.stop();&lt;br /&gt;runner = null;&lt;br /&gt;setText("Play Music");&lt;br /&gt;}&lt;br /&gt;public void run() {&lt;br /&gt;a.loop();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Drawing the name with shadowing effects&lt;br /&gt;private class DrawingPanel extends JPanel {&lt;br /&gt;private int fontSize = 20;&lt;br /&gt;private String message = "Java 2D";&lt;br /&gt;private int messageWidth;&lt;br /&gt;&lt;br /&gt;public DrawingPanel(String message) {&lt;br /&gt;this.message = message;&lt;br /&gt;setBackground(Color.GRAY);&lt;br /&gt;Font font = new Font("Serif", Font.PLAIN, fontSize);&lt;br /&gt;setFont(font);&lt;br /&gt;FontMetrics metrics = getFontMetrics(font);&lt;br /&gt;messageWidth = metrics.stringWidth(message);&lt;br /&gt;int height = fontSize*3;&lt;br /&gt;setPreferredSize(new Dimension(0, height));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void paintComponent(Graphics g) {&lt;br /&gt;super.paintComponent(g);&lt;br /&gt;Graphics2D g2d = (Graphics2D)g;&lt;br /&gt;int x = (super.getWidth()-messageWidth)/2;&lt;br /&gt;int y = fontSize*5/2;&lt;br /&gt;g2d.translate(x, y);&lt;br /&gt;g2d.setPaint(Color.lightGray);&lt;br /&gt;AffineTransform origTransform = g2d.getTransform();&lt;br /&gt;g2d.shear(-0.95, 0);&lt;br /&gt;g2d.scale(1, 3);&lt;br /&gt;g2d.drawString(message, 0, 0);&lt;br /&gt;g2d.setTransform(origTransform);&lt;br /&gt;g2d.setPaint(Color.black);&lt;br /&gt;g2d.drawString(message, 0, 0);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//User clicked either the next or the back button.&lt;br /&gt;public void actionPerformed(ActionEvent e) {&lt;br /&gt;//Compute index of fighter to view.&lt;br /&gt;if (e.getActionCommand().equals("Next")) {&lt;br /&gt;current += 1;&lt;br /&gt;if (!prevButton.isEnabled())&lt;br /&gt;prevButton.setEnabled(true);&lt;br /&gt;if (current == fighters.size() - 1)&lt;br /&gt;nextButton.setEnabled(false);&lt;br /&gt;} else {&lt;br /&gt;current -= 1;&lt;br /&gt;if (!nextButton.isEnabled())&lt;br /&gt;nextButton.setEnabled(true);&lt;br /&gt;if (current == 0)&lt;br /&gt;prevButton.setEnabled(false);&lt;br /&gt;}&lt;br /&gt;//Get the Afighter object.&lt;br /&gt;afighter = (Afighter)fighters.elementAt(current);&lt;br /&gt;init();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Afighter.java&lt;br /&gt;&lt;div style="OVERFLOW-Y: scroll; SCROLLBAR-3DLIGHT-COLOR: #a0a0a0; SCROLLBAR-ARROW-COLOR: blue; SCROLLBAR-DARKSHADOW-COLOR: #888888; HEIGHT: 150px; BACKGROUND-COLOR: #ffffcc; scrollbar-: #e7e7e7"&gt;&lt;br /&gt;/*Afighter.java*/&lt;br /&gt;package FighterSelect;&lt;br /&gt;&lt;br /&gt;public class Afighter {&lt;br /&gt;private String id = "030";&lt;br /&gt;private String music = "030.wav";&lt;br /&gt;private Integer power = 98;&lt;br /&gt;private Integer speed = 87;&lt;br /&gt;private Integer flexibility = 80;&lt;br /&gt;private Integer energy = 100;&lt;br /&gt;private Integer endurance = 100;&lt;br /&gt;private String secretskill = "?";&lt;br /&gt;private String name = "Phil Jackson";&lt;br /&gt;private String bd = "02/14/1989";&lt;br /&gt;private String hometown = "New York City, USA";&lt;br /&gt;private String style = "Boxer/Out-fighter";&lt;br /&gt;private String description =&lt;br /&gt;"A classic boxer who seeks to maintain distance between himself " +&lt;br /&gt;"and his opponent, fighting with faster, longer range punches, " +&lt;br /&gt;"most notably the jab, and gradually wearing his opponent down.";&lt;br /&gt;&lt;br /&gt;public Afighter() {}&lt;br /&gt;&lt;br /&gt;public void setId(String id) {&lt;br /&gt;this.id = id;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getId() {&lt;br /&gt;return this.id;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setMusic(String music) {&lt;br /&gt;this.music = music;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getMusic() {&lt;br /&gt;return this.music;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setPower(Integer power){&lt;br /&gt;this.power = power;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getPower(){&lt;br /&gt;return this.power;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setEnergy(Integer energy){&lt;br /&gt;this.energy = energy;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getEnergy(){&lt;br /&gt;return this.energy;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setSpeed(Integer speed){&lt;br /&gt;this.speed = speed;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getSpeed(){&lt;br /&gt;return this.speed;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setFlexibility(Integer flexibility){&lt;br /&gt;this.flexibility = flexibility;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getFlexibility(){&lt;br /&gt;return this.flexibility;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setEndurance(Integer endurance){&lt;br /&gt;this.endurance = endurance;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Integer getEndurance(){&lt;br /&gt;return this.endurance;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setSecreteskill(String secretskill){&lt;br /&gt;this.secretskill = secretskill;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getSecreteskill(){&lt;br /&gt;return this.secretskill;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setName(String name){&lt;br /&gt;this.name = name;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getName(){&lt;br /&gt;return this.name;&lt;br /&gt;}&lt;br /&gt;public void setBd(String bd){&lt;br /&gt;this.bd = bd;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getBd(){&lt;br /&gt;return this.bd;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setHometown(String hometown){&lt;br /&gt;this.hometown = hometown;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getHometown(){&lt;br /&gt;return this.hometown;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setStyle(String style){&lt;br /&gt;this.style = style;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getStyle(){&lt;br /&gt;return this.style;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setDescription(String description){&lt;br /&gt;this.description = description;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String getDescription(){&lt;br /&gt;return this.description;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;} &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2938609909849037707?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2938609909849037707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighter-game-control-with-swing-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2938609909849037707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2938609909849037707'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighter-game-control-with-swing-i.html' title='Model fighter game UI with Swing - Part 1'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-501858267261404369</id><published>2009-05-28T15:01:00.001-07:00</published><updated>2009-06-03T12:26:49.329-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to remove the navigation bar in your post in 10 seconds?</title><content type='html'>&lt;div style="position:relative;right:0px;margin-top:0px"&gt; &lt;br /&gt;&lt;div style='margin: 10px 0 0 0;clear:both'&gt; &lt;br /&gt;&lt;script type="text/javascript"&gt;digg_skin = 'compact';digg_bgcolor = '#F8FAF0';digg_url = 'http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-remove-navigation.html';&lt;/script&gt;&lt;br /&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt; &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Press Customize tab, press Edit HTML. Copy paste the following line into the css code.&lt;br /&gt;#navbar-iframe{display:none!important;}&lt;br /&gt;&lt;br /&gt;In the future, if blogger updates the template, the id "navbar-iframe" may change, you need to view your page's source code (&lt;a href="http://www.google.com/search?q=how+to+view+html+source+code&amp;amp;lr=&amp;amp;aq=f&amp;amp;oq=" target="_blank"&gt;how&lt;/a&gt;?), and find the corresponding id.&lt;br /&gt;&lt;br /&gt;Notice removing the navigation bar is violating the agreement when you signed up to blogger, so I still keep it there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-501858267261404369?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/501858267261404369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-remove-navigation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/501858267261404369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/501858267261404369'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-remove-navigation.html' title='Blog Tricks, how to remove the navigation bar in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1968062320593651156</id><published>2009-05-27T19:54:00.000-07:00</published><updated>2009-06-05T21:09:55.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Model a fighter academy with Factory Method and Abstract Factory design pattern</title><content type='html'>In my previous posts, I have modeled a fighter and a fighter's body conditions, now I will model the academy which trains the fighters.&lt;br /&gt;&lt;br /&gt;Below you will find abstract classes and concrete classes for a fighter training system. You will find classes for regional fighter academies along with classes for fighters a academy can train. Each regional academy can decide how they will train the fighters.&lt;br /&gt;&lt;br /&gt;First of all, a fighter academy is just an abstract brand, such as ShaoLin Temple, Karate Institute or Aikido Dojo... A fighter get trained under ShaoLin temple only told us it should have some characters and qualities, but did not restrict how they should get trained. In another words, the detailed training plan is the decision of a specific regional ShaoLin Temple, no matter it's ShongShan mountain ShaoLin Temple or New York City ShaoLin Temple. We model this with factory method design pattern. While abstract class FighterAcademy guaranteed to return a qualified fighter, the concrete class NYCShaoLinTemple make it happen by making the actual training plan in the method trainFighter().&lt;br /&gt;&lt;br /&gt;As a common challenge all brands face, we need a quality control mechanism. For example, Jack wants to open an ObjvillKarateInstitute today, he can't claim his institute to be a qualified fighter academy until he hires a licensed fighter. Only through the licensed fighter, we can call method TrainSpeed(), TrainPower(), TrainFlexibility(), TrainReflection(), TrainStagama(). Here the abstract factory come into play.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1968062320593651156?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1968062320593651156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighter-with-strategy-design_27.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1968062320593651156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1968062320593651156'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighter-with-strategy-design_27.html' title='Model a fighter academy with Factory Method and Abstract Factory design pattern'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6356637658750043888</id><published>2009-05-26T12:51:00.000-07:00</published><updated>2009-06-06T00:38:14.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><title type='text'>Adjust display settings to protect your eys</title><content type='html'>Feel your display uncomfortable for the eyes? &lt;br /&gt;&lt;br /&gt;Sometimes it's because your monitor's brightness or contract were set too high. You can find several bottons on your monitor which allow you to adjust display settings.&lt;br /&gt;&lt;br /&gt;If your monitor is CRT, try to change the refresh rate to the highest one.&lt;br /&gt;For LCD monitor, refresh rates have no effect. To adjust refresh rate: &lt;br /&gt;1. Right-click on a blank area of your desktop&lt;br /&gt;2. Select Properties from the context menu&lt;br /&gt;3. Select the settings tab&lt;br /&gt;4. Press the Advanced button&lt;br /&gt;5. Select the Monitor tab&lt;br /&gt;6. Select highest refresh rate from the drop down box.&lt;br /&gt;7. Click OK until the boxes are closed out&lt;br /&gt;&lt;br /&gt;If you use winXP, you can re-rerender fonts to make them easier on the eyes by turning on "ClearType". &lt;br /&gt;To turn on ClearType:&lt;br /&gt;1. Right-click on a blank area of your desktop&lt;br /&gt;2. Select Properties from the context menu&lt;br /&gt;3. Select the Appearance tab&lt;br /&gt;4. Press the Effects button&lt;br /&gt;5. Select the check box before Use the following method to smooth edges of screen fonts&lt;br /&gt;6. Select ClearType from the drop down box.&lt;br /&gt;7. Click OK until the boxes are closed out&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6356637658750043888?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6356637658750043888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/adjust-display-settings-to-protect-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6356637658750043888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6356637658750043888'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/adjust-display-settings-to-protect-your.html' title='Adjust display settings to protect your eys'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8718346913383530786</id><published>2009-05-22T09:46:00.000-07:00</published><updated>2009-06-06T00:38:14.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><title type='text'>Turn you PC into HD TV with 20 bucks</title><content type='html'>Most cities in the US broadcast free TV over the air in HD (High Definition). To receive this signal an HD tuner is required. (Does this remind you of ancient radio broadcast? Yes, they are almost the same!) Televisions have an HD tuner built in. BUT, you can buy a usb plug-in TV tunner and enjoy free HDTV on your computer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1, Get a usb tv tunner with $15 to $50 bucks.&lt;br /&gt;&lt;/strong&gt;Search "usb tv tunner" on &lt;a href="http://www.newegg.com/"&gt;http://www.newegg.com/&lt;/a&gt;, I picked a &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16815260023"&gt;cheap one&lt;/a&gt;, which works fine. Usb tv tunner is simply a usb adapter plus an antenna. The antenna receive microwave from air, usb adapter convert the microwave to digital signal your PC understand. Don't spend too much time on this, these products won't be too different. The only thing you need to worry about is the operation system the driver requires. Some driver only work on winxp and vista.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/ShbjwMxabWI/AAAAAAAAADo/Fa9gF_4OklI/s1600-h/15-260-023-07.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5338704825496005986" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 180px; CURSOR: hand; HEIGHT: 135px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/ShbjwMxabWI/AAAAAAAAADo/Fa9gF_4OklI/s320/15-260-023-07.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/Shbjps28rdI/AAAAAAAAADg/K8KQMq1ofVY/s1600-h/15-260-023-03.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5338704713850072530" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 180px; CURSOR: hand; HEIGHT: 135px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/Shbjps28rdI/AAAAAAAAADg/K8KQMq1ofVY/s320/15-260-023-03.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have hooked the usb tv tunner up, you may be enjoying many free HDTV channel on you PC right now. Depending on your city, you may have different channels available. The experience is similar to watching video on youtube, except the TV is really High Definition even with full screen. Also you don't need network connection, because signal is from your antenna which collect HDTV broadcast from air like radio does.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2, Get a powerful antenna.&lt;/strong&gt;&lt;br /&gt;Want more channels? No problem, go ahead and buy a $100+ commercial antenna, or make a better antenna with less than 5 bucks and 30 minutes by yourself.&lt;br /&gt;The link have detailed instructions. The key here is, HDTV is electromagnetic waves, to strengthen the signal, we need to form standing-wave in the antenna. Therefore, we need to pay attention to the wire's size, other things are just not so important details. Have fun and enjoy cool cyber stuff!&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EWQhlmJTMzw&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/EWQhlmJTMzw&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8718346913383530786?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8718346913383530786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/turn-you-pc-into-hd-tv.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8718346913383530786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8718346913383530786'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/turn-you-pc-into-hd-tv.html' title='Turn you PC into HD TV with 20 bucks'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/ShbjwMxabWI/AAAAAAAAADo/Fa9gF_4OklI/s72-c/15-260-023-07.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5117833495325189718</id><published>2009-05-21T14:10:00.000-07:00</published><updated>2009-05-22T18:35:23.862-07:00</updated><title type='text'>Model a fighter's conditions with OBSERVER design pattern</title><content type='html'>Below you will find classes and interfaces for the conditions of a fighter during combat. You will find classes for events along with classes for conditions the fighters may have during a combat. Each event can cause many conditions to change, while each condition can be changed by many events during a combat.&lt;br /&gt;&lt;br /&gt;Here we see one-to-many relationship. For example, an event of "get hit" can cause energy, power, speed, looking and other conditions to change; energy condition can be changed by events such as "get hit", "get inspired", "get rest". The thing that varies are the state of the events and the number and type of the conditions that get effected by a specific event. The thing that stay constant is a subject-observer relationship in the picture, therefore we abstract them into two interfaces: Observable and Observer.&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('Link1').style.display='block'"&gt;Show&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('Link1').style.display='none'"&gt;Hide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="Link1" style="DISPLAY: none"&gt;&lt;br /&gt;Here is the text you would like to show&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="10" cellspacing="0" width="300" frame="box"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*EventsMonitor.java*/&lt;br /&gt;import java.util.Observable;&lt;br /&gt;import java.util.Observer;&lt;br /&gt;public class EventsMonitor extends Observable{&lt;br /&gt; private float power;&lt;br /&gt; private float energy;&lt;br /&gt; private float speed;&lt;br /&gt; &lt;br /&gt; public EventsMonitor(){};&lt;br /&gt; &lt;br /&gt; public void ConditionChanged(){&lt;br /&gt;  super.setChanged();&lt;br /&gt;  super.notifyObservers();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void setConditions(float power, float energy, float speed){&lt;br /&gt;  this.power = power;&lt;br /&gt;  this.energy = energy;&lt;br /&gt;  this.speed = speed;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void Hit() {&lt;br /&gt;  this.power --;&lt;br /&gt;  this.energy --;&lt;br /&gt;  this.speed --;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void Inspired(){&lt;br /&gt;  this.power++;&lt;br /&gt;  this.speed++;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void Rested(){&lt;br /&gt;  this.energy++;&lt;br /&gt;  this.power++;&lt;br /&gt;  this.speed++;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public float getPower(){&lt;br /&gt;  return this.power;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public float getEnergy(){&lt;br /&gt;  return this.energy;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public float getSpeed(){&lt;br /&gt;  return this.speed;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*EnergyDisplay.java*/&lt;br /&gt;import java.util.Observable;&lt;br /&gt;import java.util.Observer;&lt;br /&gt;public class EnergyDisplay implements Observer{&lt;br /&gt; Observable observerable;&lt;br /&gt; private float energy;&lt;br /&gt; public EnergyDisplay(Observable o){&lt;br /&gt;  this.observerable = o;&lt;br /&gt;  observerable.addObserver(this);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void update(Observable obs, Object arg){&lt;br /&gt;  if(obs instanceof EventsMonitor){&lt;br /&gt;   EventsMonitor event = (EventsMonitor)obs;&lt;br /&gt;   this.energy = event.getEnergy();&lt;br /&gt;   display();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void display(){&lt;br /&gt;  System.out.println("The Energy changed! Energy is "+this.energy);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*PowerDisplay.java*/&lt;br /&gt;import java.util.Observable;&lt;br /&gt;import java.util.Observer;&lt;br /&gt;public class PowerDisplay implements Observer{&lt;br /&gt; Observable observerable;&lt;br /&gt; private float power;&lt;br /&gt; public PowerDisplay(Observable o){&lt;br /&gt;  this.observerable = o;&lt;br /&gt;  observerable.addObserver(this);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void update(Observable obs, Object arg){&lt;br /&gt;  if(obs instanceof EventsMonitor){&lt;br /&gt;   EventsMonitor event = (EventsMonitor)obs;&lt;br /&gt;   this.power = event.getPower();&lt;br /&gt;   display();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void display(){&lt;br /&gt;  System.out.println("The power changed! power is "+this.power);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*SpeedDisplay.java*/&lt;br /&gt;import java.util.Observable;&lt;br /&gt;import java.util.Observer;&lt;br /&gt;public class SpeedDisplay implements Observer{&lt;br /&gt; Observable observerable;&lt;br /&gt; private float speed;&lt;br /&gt; public SpeedDisplay(Observable o){&lt;br /&gt;  this.observerable = o;&lt;br /&gt;  observerable.addObserver(this);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void update(Observable obs, Object arg){&lt;br /&gt;  if(obs instanceof EventsMonitor){&lt;br /&gt;   EventsMonitor event = (EventsMonitor)obs;&lt;br /&gt;   this.speed = event.getSpeed();&lt;br /&gt;   display();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void display(){&lt;br /&gt;  System.out.println("The Speed changed! Speed is "+this.speed);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*HealthMonitor.java*/&lt;br /&gt;public class HealthMonitor {&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;&lt;br /&gt;  EventsMonitor event = new EventsMonitor();&lt;br /&gt;  PowerDisplay power = new PowerDisplay(event);&lt;br /&gt;  EnergyDisplay energy = new EnergyDisplay(event);&lt;br /&gt;  SpeedDisplay speed = new SpeedDisplay(event);&lt;br /&gt;  event.setConditions(10.0f, 10.0f, 10.0f);&lt;br /&gt;  event.ConditionChanged();&lt;br /&gt;  event.Hit();&lt;br /&gt;  event.ConditionChanged();&lt;br /&gt;  event.Hit();&lt;br /&gt;  event.ConditionChanged();&lt;br /&gt;  event.Inspired();&lt;br /&gt;  event.ConditionChanged();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5117833495325189718?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5117833495325189718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighters-condition-with-observer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5117833495325189718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5117833495325189718'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighters-condition-with-observer.html' title='Model a fighter&apos;s conditions with OBSERVER design pattern'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-543542277682100901</id><published>2009-05-20T15:07:00.000-07:00</published><updated>2009-06-05T21:09:55.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Model a fighter with STRATEGY design pattern</title><content type='html'>Below you will find classes and interfaces for a martial artist. You will find classes for individual fighters along with classes for movements the fighters can take during a combat. Each fighter can make only one movement at a time, but can change movement at any time during a combat.&lt;br /&gt;&lt;br /&gt;First All, Fighter is an abstract concept. He/She can be &lt;a title="Brazilian Jiu-Jitsu" href="http://en.wikipedia.org/wiki/Brazilian_Jiu-Jitsu"&gt;Gracie Jiu-Jitsu&lt;/a&gt;, &lt;a title="Capoeira" href="http://en.wikipedia.org/wiki/Capoeira"&gt;Capoeira&lt;/a&gt;, &lt;a title="American Kenpo" href="http://en.wikipedia.org/wiki/American_Kenpo"&gt;American Kenpo&lt;/a&gt;, &lt;a title="Jeet Kune Do" href="http://en.wikipedia.org/wiki/Jeet_Kune_Do"&gt;Jeet Kune Do&lt;/a&gt;, &lt;a title="Shaolin Kung Fu" href="http://en.wikipedia.org/wiki/Shaolin_Kung_Fu"&gt;Shaolin&lt;/a&gt; fighters... or mixed style fighter. He/She may have unique looking, nationality, age etc. During combat, fighters have something in common, their movement can be classified into attack and defense.&lt;br /&gt;&lt;br /&gt;There are many attack strategies such as punch, tick, elbow, knees, joint knock; as many defense strategies as well -- block, trap, lock, duck, roll, footsweep... The problem is, you never know how many strategies a fighter has learned, and a fighter could invent a new strategy today!&lt;br /&gt;&lt;br /&gt;The strategy design pattern resolve this by defining a family of movements, encapsulates each one, and make them interchangable by extending the same interfaces (attack or defense), as a result, new movement classes can be added without modifying other parts of the system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('Link_model_a_fighter').style.display='block'"&gt;Show&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('Link_model_a_fighter').style.display='none'"&gt;Hide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="Link_model_a_fighter" style="DISPLAY: none"&gt;&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="10" width="300" border="1" frame="box"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*Fighter.java*/&lt;br /&gt;public abstract class Fighter {&lt;br /&gt;AttackMovement attackmove;&lt;br /&gt;DefenseMovement defensemove;&lt;br /&gt;&lt;br /&gt;public Fighter() {}&lt;br /&gt;&lt;br /&gt;public abstract void display();&lt;br /&gt;&lt;br /&gt;public void performAttack(){&lt;br /&gt;attackmove.attack();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void performDefense() {&lt;br /&gt;defensemove.defense();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void speak() {&lt;br /&gt;System.out.println(" Fighters fight. ");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setAttack(AttackMovement a) {&lt;br /&gt;this.attackmove = a;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void setDefense(DefenseMovement d) {&lt;br /&gt;this.defensemove = d;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*AttackMovement.java*/&lt;br /&gt;public interface AttackMovement {&lt;br /&gt;public void attack();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*Punch.java*/&lt;br /&gt;public class Punch implements AttackMovement{&lt;br /&gt;public void attack() {&lt;br /&gt;System.out.println("I'm punching");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*Tick.java*/&lt;br /&gt;public class Tick implements AttackMovement{&lt;br /&gt;public void attack() {&lt;br /&gt;System.out.println("I'm ticking");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*DefenseMovement.java*/&lt;br /&gt;public interface DefenseMovement {&lt;br /&gt;public void defense();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*Block.java*/&lt;br /&gt;public class Block implements DefenseMovement{&lt;br /&gt;public void defense(){&lt;br /&gt;System.out.println("I'm blocking");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*Duck.java*/&lt;br /&gt;public class Duck implements DefenseMovement{&lt;br /&gt;public void defense(){&lt;br /&gt;System.out.println("I'm ducking");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*ShaoLinFighter.java*/&lt;br /&gt;public class ShaoLinFighter extends Fighter{&lt;br /&gt;public ShaoLinFighter() {&lt;br /&gt;this.attackmove = new Punch();&lt;br /&gt;this.defensemove = new Block();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void display() {&lt;br /&gt;System.out.println("I look like a ShaoLin monk.");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void speak() {&lt;br /&gt;System.out.println("Daily practise the apparently simple exercise of breathing in and out slowly and deeply.");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*JiuJitSuFighter.java*/&lt;br /&gt;public class JiuJitSuFighter extends Fighter{&lt;br /&gt;public JiuJitSuFighter() {&lt;br /&gt;this.attackmove = new Tick();&lt;br /&gt;this.defensemove = new Block();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void display() {&lt;br /&gt;System.out.println("I Wear Judo uniform with black belt.");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void speak() {&lt;br /&gt;System.out.println("I am a shark. The ground is my ocean.");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;/*ArenaSimulator.java*/&lt;br /&gt;public class ArenaSimulator {&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;Fighter fighter1 = new ShaoLinFighter();&lt;br /&gt;Fighter fighter2 = new JiuJitSuFighter();&lt;br /&gt;&lt;br /&gt;fighter1.display();&lt;br /&gt;fighter1.speak();&lt;br /&gt;System.out.println("");&lt;br /&gt;fighter2.display();&lt;br /&gt;fighter2.speak();&lt;br /&gt;&lt;br /&gt;fighter1.performAttack();&lt;br /&gt;fighter2.performDefense();&lt;br /&gt;&lt;br /&gt;fighter1.setAttack(new Tick());&lt;br /&gt;fighter2.setDefense(new Duck());&lt;br /&gt;&lt;br /&gt;fighter1.performAttack();&lt;br /&gt;fighter2.performDefense();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-543542277682100901?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/543542277682100901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighter-with-strategy-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/543542277682100901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/543542277682100901'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/model-fighter-with-strategy-design.html' title='Model a fighter with STRATEGY design pattern'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3222729536220614128</id><published>2009-05-20T13:05:00.001-07:00</published><updated>2009-06-06T00:38:14.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><title type='text'>Cyber Jedi</title><content type='html'>&lt;strong&gt;Have you ever think of adding them together?&lt;br /&gt;&lt;br /&gt;Reverse Engineer&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;hardware engineer&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tnY7UVyaFiQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/tnY7UVyaFiQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Stanford CS107&lt;br /&gt;&lt;/strong&gt;computer scientist&lt;br /&gt;&lt;br /&gt;&lt;span style="display: block; text-align: center;"&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ps8jOj7diA0&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Ps8jOj7diA0&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fight Science&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;martial artist&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rm0HwntPktM&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/rm0HwntPktM&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3222729536220614128?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3222729536220614128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/cyber-jedi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3222729536220614128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3222729536220614128'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/cyber-jedi.html' title='Cyber Jedi'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6413692982489943768</id><published>2009-05-20T10:36:00.000-07:00</published><updated>2009-06-05T21:12:02.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Top 10 websites Blogger should know</title><content type='html'>1. &lt;a href="http://www.digg.com/" target="_blank"&gt;Digg&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.twitter.com/" target="_blank"&gt;Twitter&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://www.friendfeed.com/" target="_blank"&gt;FriendFeed&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://www.reddit.com/" target="_blank"&gt;Reddit&lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://news.ycombinator.com/" target="_blank"&gt;Hacker News&lt;/a&gt;&lt;br /&gt;6. &lt;a href="http://www.facebook.com/" target="_blank"&gt;Facebook&lt;/a&gt;&lt;br /&gt;7. &lt;a href="http://www.myspace.com/" target="_blank"&gt;MySpace&lt;/a&gt;&lt;br /&gt;8. &lt;a href="http://www.linkedin.com/" target="_blank"&gt;LinkedIn&lt;/a&gt;&lt;br /&gt;9. &lt;a href="http://www.flixster.com/" target="_blank"&gt;Flixster&lt;/a&gt;&lt;br /&gt;10. &lt;a href="http://www.flickr.com/" target="_blank"&gt;Flickr&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6413692982489943768?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6413692982489943768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/top-10-websites-blogger-should-know.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6413692982489943768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6413692982489943768'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/top-10-websites-blogger-should-know.html' title='Top 10 websites Blogger should know'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6625317248912165475</id><published>2009-05-18T21:12:00.000-07:00</published><updated>2009-05-18T21:23:04.030-07:00</updated><title type='text'>Debugging tools in major browsers:</title><content type='html'>Firefox:&lt;br /&gt;firebug&lt;br /&gt;&lt;br /&gt;Safari:&lt;br /&gt;WebKit&lt;br /&gt;It's easier on mac os -- open a terminal, run command:&lt;br /&gt;% defaults write com.apple.Safari IncludeDebugMenu 1&lt;br /&gt;restart safari,&lt;br /&gt;now "Develop" menu is show up in the menu bar, also "inspect element" shows up when right clicking.&lt;br /&gt;&lt;br /&gt;IE:&lt;br /&gt;IETester&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6625317248912165475?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6625317248912165475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/debugging-tools-in-major-browsers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6625317248912165475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6625317248912165475'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/debugging-tools-in-major-browsers.html' title='Debugging tools in major browsers:'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2520092123950413491</id><published>2009-05-18T18:49:00.000-07:00</published><updated>2009-06-06T00:38:14.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Electronics'/><title type='text'>DIY your wireless antena</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sUTT8wdN_VA&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/sUTT8wdN_VA&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://www.freeantennas.com/projects/template2/index.html" target="_blank"&gt;Download antena template here&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;The idea is simple, microwave get reflected from the metal surface, thus condensed at a specific direction. &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2520092123950413491?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2520092123950413491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/diy-your-wireless-antena.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2520092123950413491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2520092123950413491'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/diy-your-wireless-antena.html' title='DIY your wireless antena'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-4818092089542638578</id><published>2009-05-18T15:50:00.001-07:00</published><updated>2009-05-19T11:42:57.882-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to embed an online dictionary in your post in 10 seconds?</title><content type='html'>&lt;form&gt;&lt;br /&gt;Word Lookup:&lt;br /&gt;&lt;input id="words_lookup" type="text"&gt;&lt;br /&gt;&lt;button type="button" onclick="var uri = 'http://www.merriam-webster.com/dictionary/'+document.getElementById('words_lookup').value; window.open(uri);"&gt;Search&lt;/button&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;To achieve the above effect, copy paste the following code into your blog's Html. Done.&lt;br /&gt;&lt;br /&gt;&amp;lt;form&amp;gt;&lt;br /&gt;Word Lookup:&lt;br /&gt;&amp;lt;input id="words_lookup" type="text" /&amp;gt;&lt;br /&gt;&amp;lt;button type="button" onclick="var uri = 'http://www.merriam-webster.com/dictionary/'+document.getElementById('words_lookup').value; window.open(uri);"&amp;gt;Search&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;ps:&lt;br /&gt;'http://www.merriam-webster.com/dictionary/' is the webster online dictionary, you can change it to your favorite online dictionary such as 'http://www.answers.com/'.&lt;br /&gt;&lt;br /&gt;Blogger.com seems disabled &amp;lt;script&amp;gt; tag in the post, so I hacked this with inline javascript.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/search/label/10s%20blog%20tip"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-4818092089542638578?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/4818092089542638578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/word-lookup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4818092089542638578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/4818092089542638578'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/word-lookup.html' title='Blog Tricks, how to embed an online dictionary in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8703496721484515951</id><published>2009-05-17T16:21:00.000-07:00</published><updated>2009-06-05T21:09:55.765-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>23 Design Patterns</title><content type='html'>Reference book: &lt;a href="http://books.google.com/books?id=LjJcCnNf92kC&amp;amp;dq=HeadFirst+Design+Patterns&amp;amp;printsec=frontcover&amp;amp;source=bl&amp;amp;ots=_90Y7Ji2rZ&amp;amp;sig=0R4yZWM_5Tf0obQmtCGjewjAMHc&amp;amp;hl=en&amp;amp;ei=CncQSoHOFI-Y8gTfm_mgBg&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=3#PPP1,M1"&gt;Head First Design Patterns&lt;/a&gt;.&lt;br /&gt;Reference Wiki article: &lt;a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)"&gt;Design Pattern (Computer Science)&lt;/a&gt; &lt;div&gt;Reference article: &lt;a href="http://cnx.org/content/col10213/latest/"&gt;Principles of Object-Oriented Programming&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.fluffycat.com/java-design-patterns/"&gt;discussion Group&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.fluffycat.com/java-design-patterns/"&gt;java examples&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="MARGIN: 0px 0px 15px; FONT: 19px Verdana"&gt;&lt;b&gt;Abstraction:&lt;/b&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;In an object-oriented software system,&lt;span style="color:#3a6b97;"&gt;&lt;b&gt;objects&lt;/b&gt;&lt;/span&gt; are entities used to represent or model a particular piece of the system.&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;A &lt;span style="color:#488bc4;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; is a template or recipe for the creation of a particular type of object. That is, one can use a class to create ("&lt;b&gt;instantiate&lt;/b&gt;") objects of the type described by the class. &lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;span style="color:#3a6b97;"&gt;&lt;b&gt;new &lt;/b&gt;&lt;/span&gt;is a keyword in Java. It is an example of what is called a class operator. It operates on a class and creates an instance (also called &lt;b&gt;object&lt;/b&gt;) of the given class.&lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;People have identified and separated the variant and invariant pieces of a systems and defined abstract representations whenever needed, for example&lt;/p&gt;&lt;ol style="LIST-STYLE-TYPE: decimal"&gt;&lt;li style="MARGIN: 0px; FONT: 13px Verdana"&gt;Abstract Structure -- abstract classes, interfaces&lt;/li&gt;&lt;li style="MARGIN: 0px; FONT: 13px Verdana"&gt;Abstract Behavior -- abstract methods, strategies, visitors.&lt;/li&gt;&lt;li style="MARGIN: 0px; FONT: 13px Verdana"&gt;Abstract Construction -- factories&lt;/li&gt;&lt;li style="MARGIN: 0px; FONT: 13px Verdana"&gt;Abstract Environments -- anonymous inner classes, closures&lt;/li&gt;&lt;/ol&gt;&lt;p style="MARGIN: 0px 0px 15px; FONT: 19px Verdana"&gt;&lt;b&gt;Inheritance and Polymorphism:&lt;/b&gt;&lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;"Is-a" or "inheritance" (sometimes also called "generalization") relationships capture a hierarchal relationship between classes of objects.&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;We can never truly know what an object truly is, only how it &lt;b&gt;acts&lt;/b&gt;. Java has a the keyword &lt;span style="color:#0041f9;"&gt;implements&lt;/span&gt; which is used to show generalization of a pure behavioral abstraction called an &lt;span style="color:#0041f9;"&gt;interface&lt;/span&gt;. An interface has a similar syntax to a class, but only specifies behaviors in terms of the "signatures" (the input and output types) of the methods.&lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;Inheritance and polymorphism are really just two ways of looking at the same class relationship.&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;&lt;span style="color:#0041f9;"&gt;Inheritance&lt;/span&gt; is looking at the class hierarchy from the bottom up. A subclass inherits behaviors and attributes from its superclass. A subclass automatically possesses certain behaviors and/or attributes simply because it is classified as being a subclass of an entity that possesses those behaviors and/or attributes. &lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Tahoma"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;&lt;span style="color:#0041f9;"&gt;Polymorphism&lt;/span&gt;, on the other hand, is looking at the class hierarchy from the top down. Any subclass can be used anywhere the superclass is needed because the subclasses are all abstractly equivalent to the superclass. Different behaviors may arise because the subclasses may all have different implementations of the abstract behaviors defined in the superclass.&lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Tahoma"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px 0px 15px; FONT: 19px Tahoma"&gt;&lt;b&gt;Inheritance and Composition:&lt;/b&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;An OO system has two distinct mechanisms to express relationship notions between objects: "is-a" which is technically referred to as "&lt;span style="color:#0041f9;"&gt;inheritance&lt;/span&gt;" and "has-a" which is technically referred to as "&lt;span style="color:#0041f9;"&gt;composition&lt;/span&gt;".&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Tahoma"&gt;"Has-a" or "composition" (sometimes referred to as an "associative") relationships capture the notion that one object has a distinct and persistant communication relationship with another object. for instance, we can say a car "has-a" motor. &lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px 0px 15px; FONT: 19px Verdana"&gt;&lt;b&gt;23 Design Patterns&lt;/b&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Helvetica"&gt;In the book &lt;a href="http://en.wikipedia.org/wiki/Design_Patterns_(book)"&gt;&lt;span style="color:#0040b4;"&gt;&lt;i&gt;Design Patterns: Elements of Reusable Object-Oriented Software &lt;/i&gt;&lt;/span&gt;&lt;/a&gt;published in 1994 (Gamma et al.), there are 23 design patterns. &lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;Creational patterns:&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;1 Abstract factory&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;2 Factory method&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;3 Builder&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;4 Prototype&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;5 Singleton&lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;Structural patterns:&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;6 Adapter&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;7 Bridge&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;8 Composite&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;9 Decorator&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;10 Facade&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;11 Flyweight&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;12 Proxy&lt;/p&gt;&lt;p style="MIN-HEIGHT: 16px; MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;Behavioral Patterns: &lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;13 Chain of responsibility&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;14 Command&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;15 Interpreter&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;16 Iterator&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;17 Mediator&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;18 Memento&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;19 Observer&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;Defines a one-to-many dependency between objects, so that when one object changes state, all its dependents are notified and updated automatically.&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;Example&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;20 State&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;21 Strategy&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;Defines a family of algorithms, encapsulates each one, and make them interchangable. Strategy lets the algorithm change independently from clients that use it.&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/05/model-fighter-with-strategy-design.html"&gt;Example&lt;/a&gt;&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt; &lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;22 Template method&lt;/p&gt;&lt;p style="MARGIN: 0px; FONT: 13px Verdana"&gt;23 Visitor&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8703496721484515951?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8703496721484515951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/23-design-patterns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8703496721484515951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8703496721484515951'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/23-design-patterns.html' title='23 Design Patterns'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-342630790563980606</id><published>2009-05-17T15:45:00.000-07:00</published><updated>2009-06-05T21:12:02.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Softwares for youtube publishing</title><content type='html'>For basic movie making,&lt;br /&gt;1. windows Movie Maker. (Windows)&lt;br /&gt;2. iMovie. (Mac)&lt;br /&gt;&lt;br /&gt;If you want to make a movie from what is displayed on the screen,&lt;br /&gt;3. &lt;a href="http://camstudio.org/" target="_blank"&gt;Camtasia&lt;/a&gt; (windows)&lt;br /&gt;4. SnapzPro &lt;a href="http://www.ambrosiasw.com/utilities/snapzprox/" target="_blank"&gt;site1&lt;/a&gt;, &lt;a href="http://www.apple.com/downloads/macosx/system_disk_utilities/snapzprox.html" target="_blank"&gt;site2&lt;/a&gt;(Mac)&lt;br /&gt;&lt;br /&gt;Sometimes your video file is huge, so you want to compress them.&lt;br /&gt;I recommand "divx fast motion" compressor,&lt;br /&gt;5. &lt;a href="http://www.free-codecs.com/download/ace_mega_codecs_pack.htm" target="_blank"&gt;"ace"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-342630790563980606?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/342630790563980606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/softwares-for-youtube-publishing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/342630790563980606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/342630790563980606'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/softwares-for-youtube-publishing.html' title='Softwares for youtube publishing'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2226549221998065267</id><published>2009-05-11T14:15:00.000-07:00</published><updated>2009-08-10T18:50:47.791-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Reading list (google book is cool)</title><content type='html'>&lt;form id="dictionary_form" action="" method="get" target="_blank"&gt;&lt;br /&gt;Word Lookup:&lt;br /&gt;&lt;input id="words_lookup2"&gt;&lt;br /&gt;&lt;button onclick="var uri = 'http://www.merriam-webster.com/dictionary/'+document.getElementById('words_lookup2').value; window.open(uri);"&gt;Search&lt;/button&gt;&lt;br /&gt;&lt;/form&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/05/word-lookup.html"&gt;?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.prmvr.otsu.shiga.jp/library/master/SamuelUllman/Youth.html" target="_blank"&gt;Youth&lt;/a&gt; - Samuel Ullman&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.assistech.com/three-days-to-see.htm" target="_blank"&gt;Three Days To See&lt;/a&gt; - Helen Keller&lt;br /&gt;&lt;br /&gt;Oxford Revisited - James Anthony Froude&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bbs.english.sina.com/viewthread.php?tid=5734"&gt;Beautiful Smile And Love &lt;/a&gt;- Mother Teresa&lt;br /&gt;&lt;br /&gt;Thank You For Correcting Me，Sister! - Sister Helen P．Mrosia&lt;br /&gt;&lt;br /&gt;Wonderful…Lousy…… - Budd Schulberg&lt;br /&gt;&lt;br /&gt;Ⅵ，11at l Have Lived For - Bertrand Russell&lt;br /&gt;&lt;br /&gt;The LiUle Boat That Sailed Through Time - Arnold Berwick&lt;br /&gt;&lt;br /&gt;Integrity - Marjorie Kinnan Rawlings&lt;br /&gt;&lt;br /&gt;Love Never Come Back - J．K．Jerome&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linet-pro.net/nodeweb.asp?t=24397&amp;amp;subid=47532"&gt;The Giving Tree&lt;/a&gt; - Shel Silverstein&lt;br /&gt;&lt;br /&gt;Dads Help Kids Walk On The Ceilings - nPhhie Fnrmer&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kalimunro.com/If_I_Had_My_Life_To_Live_Over.html" target="_empty"&gt;lf I Had My Life To Live Over&lt;/a&gt; - Erma Bombeck&lt;br /&gt;&lt;br /&gt;Music - &lt;a href="http://www.pbs.org/wnet/ihas/poet/whitman.html" target="_empty"&gt;WaIt Whitman &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="30" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/clLNWDSSu0E&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/clLNWDSSu0E&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="30"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.auburn.edu/~vestmon/Gift_of_the_Magi.html" target="_empty"&gt;The Gift Of Magi &lt;/a&gt;- O．Henry&lt;br /&gt;&lt;br /&gt;Appointment With Love - Garcia Marquez&lt;br /&gt;&lt;br /&gt;The Gnod Old Times - Charles lamb&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.questia.com/PM.qst?a=o&amp;amp;d=246487"&gt;Tolerance&lt;/a&gt; - Hendrik Willem Van Loon&lt;br /&gt;&lt;br /&gt;El Dorado - &lt;a href="http://en.wikiquote.org/wiki/Robert_Louis_Stevenson"&gt;Robert Louis Stevenson&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=5n5LAAAAIAAJ&amp;amp;pg=PA105&amp;amp;lpg=PA105&amp;amp;dq=The+Rose+-+Logan+Pearsall+Smith&amp;amp;source=bl&amp;amp;ots=JjwRsAsTdK&amp;amp;sig=aCgiYK87ehhMqNCmzASdUNVBDDg&amp;amp;hl=en&amp;amp;ei=-qYySpKlC4qQMr6y9ZYK&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=1"&gt;The Rose&lt;/a&gt; - Logan Pearsall Smith&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.achieveezine.com/nuggets3/this-day.shtml" target="_blank"&gt;I Will Greet This Day With Love In My Heart&lt;/a&gt;&lt;br /&gt;Og Mandino&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=hKPNrdjhAg8C&amp;amp;dq=The+Edge+0f+The+Sea+-+Rachel+Carson&amp;amp;printsec=frontcover&amp;amp;source=bn&amp;amp;hl=en&amp;amp;ei=FuwISrzUM4jFtgeC89DoCw&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=4#PPR13,M1" target="_blank"&gt;The Edge 0f The Sea&lt;/a&gt; - Rachel Carson&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=K1cIZmFe7KoC&amp;amp;dq=the+old+man+and+the+sea+text&amp;amp;printsec=frontcover&amp;amp;source=bl&amp;amp;ots=DXqMbzavFg&amp;amp;sig=4wAnnxojcUQgX0ZOzMltGl00L1w&amp;amp;hl=en&amp;amp;ei=d9MIStDvGY7DtwfB-7zoCw&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=4#PPP1,M1" target="_blank"&gt;The Old Man And The Sea&lt;/a&gt;&lt;br /&gt;Emest Hemingway&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/aKeGQNxjNOA&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/aKeGQNxjNOA&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bereanpublishers.com/Favorite_Stories/the_smile.htm"&gt;The Smile &lt;/a&gt;- Antoine De Saint—Exupery&lt;br /&gt;&lt;br /&gt;A Walk In The Woods - Bill Bryson&lt;br /&gt;&lt;br /&gt;Youth，Return! - John Ruskin&lt;br /&gt;&lt;br /&gt;On Friendship - Kahlil Gibran&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibiblio.org/eldritch/rt/cmoon.htm" target="_blank"&gt;The Crescent Moon&lt;/a&gt; - Rabindranath Tagore&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2226549221998065267?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2226549221998065267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/reading-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2226549221998065267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2226549221998065267'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/reading-list.html' title='Reading list (google book is cool)'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-8146770441668657644</id><published>2009-05-11T12:55:00.000-07:00</published><updated>2009-05-18T19:56:31.956-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><title type='text'>Poems</title><content type='html'>Poems are like songs, whose beauty can only be fully appreciated by listening the voice of a good reader.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/view_play_list?p=B95F438826F3CE36&amp;amp;search_query=Sonnet+no+14%3A+By+William+Shakespeare"&gt;Sonnets of William Shakespeare&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sonnet no 2: By William Shakespeare&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Qs28rKmZzGg&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Qs28rKmZzGg&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Sonnet no 33: By William Shakespeare&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xvNpCk0WAsQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/xvNpCk0WAsQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Sonnet no 18: By William Shakespeare&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ngZY8coaWMg&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ngZY8coaWMg&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Ode To A Nightingale-John Keats,read by Robert Donat&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Xri3eQsMT7A&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Xri3eQsMT7A&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;William Wordsworth - Daffodils (Read by Jeremy Irons)&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rL7ysgRNAT0&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/rL7ysgRNAT0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The Road not Taken - Robert Frost (by Alan Bates)&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZzUm0wqhE7E&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ZzUm0wqhE7E&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Invictus - William Ernest Henley (by Alan Bates)&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5pJcwnS1c0I&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5pJcwnS1c0I&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;It's all in a State of Mind (spoken by Harvey Keitel)&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/R428_ZFKR78&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/R428_ZFKR78&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-8146770441668657644?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/8146770441668657644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/sonnet-no-33-by-william-shakespeare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8146770441668657644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/8146770441668657644'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/sonnet-no-33-by-william-shakespeare.html' title='Poems'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1684336715847423827</id><published>2009-05-10T23:49:00.000-07:00</published><updated>2009-05-19T10:21:49.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to boxing your text in your post in 10 seconds?</title><content type='html'>&lt;table width=300 border=1 frame=box cellspacing=0 cellpadding=10 &gt;&lt;tr&gt;&lt;td bgcolor=white&gt;&lt;br /&gt;This is my Text!!! Bla bla bla bla bla bla ...&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To Achieve the above effect, in Edit Html, substitute &lt;br /&gt;"This is my Text!!! Bla bla bla bla bla bla ..." &lt;br /&gt;with the following code. Done.&lt;br /&gt;&lt;br /&gt;&amp;lt;table width=300 border=1 frame=box cellspacing=0 cellpadding=10&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=white&amp;gt;&lt;br /&gt;This is my Text!!! Bla bla bla bla bla bla ...&lt;br /&gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/search/label/10s%20blog%20tip"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1684336715847423827?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1684336715847423827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-javascript-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1684336715847423827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1684336715847423827'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-javascript-in.html' title='Blog Tricks, how to boxing your text in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5467005737666720730</id><published>2009-05-10T21:11:00.000-07:00</published><updated>2009-05-10T22:06:25.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='others'/><title type='text'>The Real Blogger Status: Making A Website From Your Blog</title><content type='html'>&lt;a href="http://blogging.nitecruzr.net/2008/10/making-website-from-your-blog.html"&gt;The Real Blogger Status: Making A Website From Your Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5467005737666720730?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogging.nitecruzr.net/2008/10/making-website-from-your-blog.html' title='The Real Blogger Status: Making A Website From Your Blog'/><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5467005737666720730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/real-blogger-status-making-website-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5467005737666720730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5467005737666720730'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/real-blogger-status-making-website-from.html' title='The Real Blogger Status: Making A Website From Your Blog'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1785047561655800580</id><published>2009-05-10T20:04:00.000-07:00</published><updated>2009-06-05T21:12:53.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Zen Garden</title><content type='html'>Find a very beautify personal web page:&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="10" width="300" border="1" frame="box"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;a href="http://www.rosefu.net/projects.php" target="_blank"&gt;http://www.rosefu.net/projects.php&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From there, I find the Zen Garden.&lt;br /&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="10" width="300" border="1" frame="box"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="white"&gt;&lt;br /&gt;&lt;a href="http://www.csszengarden.com/?cssfile=194/194.css" target="_blank"&gt;http://www.csszengarden.com/?cssfile=194/194.css&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-javascript-in.html"&gt;?&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1785047561655800580?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1785047561655800580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/zen-garden.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1785047561655800580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1785047561655800580'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/zen-garden.html' title='Zen Garden'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-811267899918803123</id><published>2009-05-10T15:51:00.000-07:00</published><updated>2009-07-11T20:49:01.659-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Let's share</title><content type='html'>Yes, there is free lunch in the world.&lt;br /&gt;We plant seeds, they grow into forests, because sunshine, air and water is free.&lt;br /&gt;Share is free, so why not?&lt;br /&gt;&lt;br /&gt;Free Online multiplayer game:&lt;br /&gt;&lt;a href="http://shaiya.aeriagames.com/download" target="_"&gt;Shaiya&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free Online Music:&lt;br /&gt;&lt;a href="http://www.4shared.com/network/search.jsp?searchmode=3&amp;amp;searchExtention=category%3A1" target="_"&gt;site1&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Free Textbooks&lt;br /&gt;&lt;a href="http://openbookproject.net//electricCircuits/"&gt;Electronics&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free Online courses:&lt;br /&gt;&lt;a href="http://webcast.berkeley.edu/courses.php" target="_"&gt;UC berkeley&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ocw.mit.edu/OcwWeb/Health-Sciences-and-Technology/" target="_"&gt;MIT Open Courses&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free Online Drama&lt;br /&gt;&lt;a href="http://www.bbc.co.uk/radio4/programmes/genres/drama" target="_"&gt;BBC Radio arts and Drama&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free Site Hosting&lt;br /&gt;&lt;a href="http://sites.google.com/site/" target="_"&gt;Google Site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free online compilers&lt;br /&gt;&lt;a href="http://www.zamples.com/JspExplorer/index.jsp" target="_"&gt;Java/Applet&lt;/a&gt;&lt;br /&gt;&lt;a href="http://compilr.com/" target="_"&gt;multiple Languages online compiler&lt;/a&gt; (C/C++/Java/VB/C#)&lt;br /&gt;&lt;br /&gt;Free web design library&lt;br /&gt;&lt;a href="http://www.exploding-boy.com/2005/12/15/free-css-navigation-designs/comment-page-15/#comment-90223" target="_"&gt;Free CSS Navigation memue&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.slide.com/arrange?bc=16777215&amp;amp;fx=3&amp;amp;tt=28&amp;amp;sk=0&amp;amp;cy=b1&amp;amp;th=33&amp;amp;sc=16777215"&gt;embedable photo slider&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csalim.com/"&gt;flash clock&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bloggerbuster.com/2008/01/essential-tools-for-blogger-template.html"&gt;summary at blogbuster&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flashgames247.com/pages/freegames.html"&gt;flash game&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free web TV/movie&lt;br /&gt;&lt;a href="http://www.youtube.com/"&gt;youtube&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hulu.com/"&gt;hulu&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tv.msn.com/"&gt;msnTV&lt;/a&gt;&lt;br /&gt;&lt;a href="http://abc.go.com/"&gt;abc.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cbs.com/"&gt;cbs.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free domain name&lt;br /&gt;&lt;a href="http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html"&gt;http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free online dictionary&lt;br /&gt;&lt;a href="http://www.nciku.com/"&gt;Learn Chinse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Free Who'is database&lt;br /&gt;The main whois database for the top-level domains ".com", ".net", and ".org" can be searched through any of the following sites:&lt;br /&gt;&lt;a href="http://www.internic.net/whois.html" target="livinginternet_ext"&gt;The InterNIC Whois Search&lt;/a&gt; *&lt;br /&gt;&lt;a href="http://www.internic.net/alpha.html" target="livinginternet_ext"&gt;Domain registrars&lt;/a&gt; -- each with their own whois database&lt;br /&gt;&lt;a href="http://www.betterwhois.com/" target="livinginternet_ext"&gt;BetterWhois.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allwhois.com/" target="livinginternet_ext"&gt;AllWhois.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.switch.ch/search/whois_form.html" target="livinginternet_ext"&gt;SWITCH Whois Gateway&lt;/a&gt;&lt;br /&gt;&lt;a href="http://directory.google.com/Top/Computers/Internet/Domain_Names/Name_Search/" target="livinginternet_ext"&gt;Google - Domain Name Search&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dir.yahoo.com/Computers_and_Internet/Internet/Directory_Services/Whois/" target="livinginternet_ext"&gt;Yahoo Whois Directory&lt;/a&gt;&lt;br /&gt;The following Whois databases can be searched for information on other areas of the &lt;a href="http://www.livinginternet.com/"&gt;Internet&lt;/a&gt;, including Asian, Caribbean, European, and Latin American countries, and the ".mil" and ".gov" domains:&lt;br /&gt;&lt;a href="http://www.arin.net/whois/index.html" target="livinginternet_ext"&gt;American Registry for Internet Numbers Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.apnic.net/" target="livinginternet_ext"&gt;Asia Pacific IP Address Allocations Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ripe.net/whois" target="livinginternet_ext"&gt;European IP Address Allocations Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lacnic.net/cgi-bin/lacnic/whois"&gt;Latin American and Caribbean Internet Addresses Registry&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.nic.mil/" target="livinginternet_ext"&gt;US Military Whois&lt;/a&gt; - requires authorization to access&lt;br /&gt;&lt;a href="http://www.dotgov.gov/whois.aspx" target="livinginternet_ext"&gt;US Government Whois&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.livinginternet.com/e/et_spam.htm"&gt;Matt Power's Whois Servers List&lt;/a&gt; provides a long list of searchable world wide whois database servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-811267899918803123?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/811267899918803123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/free-online-game-free-online-music-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/811267899918803123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/811267899918803123'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/free-online-game-free-online-music-free.html' title='Let&apos;s share'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-6965541231995432769</id><published>2009-05-10T10:53:00.000-07:00</published><updated>2009-06-03T19:31:52.833-07:00</updated><title type='text'>On mother's day</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_IJxULM6OoA4/SgccF1FyqVI/AAAAAAAAACI/flIVDjWZPn8/s1600-h/Mother_and_baby_ducks.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334263170119936338" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 240px" alt="" src="http://3.bp.blogspot.com/_IJxULM6OoA4/SgccF1FyqVI/AAAAAAAAACI/flIVDjWZPn8/s320/Mother_and_baby_ducks.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_IJxULM6OoA4/SgcazvFCrGI/AAAAAAAAABw/PTIgX1xC7eo/s1600-h/mom_baby.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5334261759756905570" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 214px" alt="" src="http://2.bp.blogspot.com/_IJxULM6OoA4/SgcazvFCrGI/AAAAAAAAABw/PTIgX1xC7eo/s320/mom_baby.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-6965541231995432769?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/6965541231995432769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/what-we-did-on-moms-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6965541231995432769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/6965541231995432769'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/what-we-did-on-moms-day.html' title='On mother&apos;s day'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IJxULM6OoA4/SgccF1FyqVI/AAAAAAAAACI/flIVDjWZPn8/s72-c/Mother_and_baby_ducks.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5520921007080747807</id><published>2009-05-10T10:12:00.000-07:00</published><updated>2009-05-19T10:22:17.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to embed flash music in your post in 10 seconds?</title><content type='html'>&lt;embed src="http://dc105.4shared.com/flash/flvplayer.swf" width="420" height="250" type="application/x-shockwave-flash" allowscriptaccess="always" flashvars="file=http://dc105.4shared.com/img/63285808/ecd3521d/dlink__2Fdownload_2F63285808_2Fecd3521d_2FN.mp3_3Ftsid_3D20090510-130019-e35e60d/preview.mp3&amp;amp;link=http://www.4shared.com/file/63285808/ecd3521d/Britney_Spears_-_Hit_Me_Baby_One_More_Time_0.html&amp;amp;plugins=revolt-1&amp;amp;logo=http://dc105.4shared.com/images/logo.png&amp;amp;image=http://dc105.4shared.com/images/icons/misc/mp3_200x180.jpg"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;Super easy. Just go to any website with embed music&lt;br /&gt;(e.g.&lt;a href="http://www.4shared.com/network/search.jsp?searchmode=3&amp;amp;searchExtention=category%3A1"&gt;http://www.4shared.com/network/search.jsp?searchmode=3&amp;amp;searchExtention=category%3A1&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Select a music, copy the content in the textbox labeled "embed", paste into you Html code.&lt;br /&gt;Done.&lt;br /&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/search/label/10s%20blog%20tip"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5520921007080747807?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5520921007080747807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-flash-music-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5520921007080747807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5520921007080747807'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-flash-music-in.html' title='Blog Tricks, how to embed flash music in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-3244031107540003175</id><published>2009-05-10T09:49:00.001-07:00</published><updated>2009-05-19T10:22:37.592-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to embed music in your post in 10 seconds?</title><content type='html'>&lt;table width=300 border=1 frame=box cellspacing=0 cellpadding=10&gt;&lt;tr&gt;&lt;td bgcolor=red&gt;&lt;br /&gt;...bug found...audio player removed...&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;I later find that autostart="false" is ignored by safari. &lt;br /&gt;Not to annoy you (if you are a mac user), I removed the audio player...  If you know how to resolve this cross-browser issue, please kindly let me know.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;br /&gt;(For IE users) Super easy, just paste the following code into you Html, change src="whatever your music link", done.&lt;br /&gt;&lt;br /&gt;&amp;lt;embed src="http://myblogtalk.com/uploads/billu.mp3" width="144" height="62" type="text/html; charset=UTF-8" autostart="false" loop="false" controls="console"&amp;gt;&amp;lt;/embed&amp;gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/search/label/10s%20blog%20tip"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-3244031107540003175?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/3244031107540003175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-music-in-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3244031107540003175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/3244031107540003175'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-how-to-embed-music-in-your.html' title='Blog Tricks, how to embed music in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-592561146961726973</id><published>2009-05-10T08:20:00.000-07:00</published><updated>2009-05-19T10:23:05.661-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, how to embed youtube in your post in 10 seconds?</title><content type='html'>It is super easy. On the top-right hand of youtube page, there is a textbox labeled "embed".&lt;br /&gt;Just copy the content in the textbox, paste it into your Html. Done!&lt;br /&gt;&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/search/label/10s%20blog%20tip"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-592561146961726973?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/592561146961726973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-past-youtube-in-your-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/592561146961726973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/592561146961726973'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/blog-tricks-past-youtube-in-your-post.html' title='Blog Tricks, how to embed youtube in your post in 10 seconds?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-1627471371326995026</id><published>2009-05-09T20:41:00.000-07:00</published><updated>2009-05-10T22:06:25.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='others'/><title type='text'>Bridgewater Associates, Inc. interview Questions (software developer).</title><content type='html'>I recently had a phone interview with &lt;a href="http://www.bwater.com/"&gt;Bridgewater Associates, Inc.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;They called me at 4:00pm. There are three interviewers. The interview includes 10 minutes on my previous projects, 20 minutes on standard interview questions, 20 minutes about the job position and their team. When asking questions, they like to ask a simple question first, then trace down to the detail untill your head began to spin. They will give hints and lead you to the answer ... then... you know what? they ask a harder aditional question.&lt;br /&gt;&lt;br /&gt;The followings are some of the interview questions:&lt;br /&gt;1. If I dip a 10x10x10 Rubik's Cube into red int, how many of the 1000 cells will have red faces.&lt;br /&gt;2. a bad king has a cellar of 1000 bottles of delightful and very expensive wine. a neighbouring queen plots to kill the bad king and sends a servant to poison the wine. (un)fortunately the bad king's guards catch the servant after he has only poisoned one bottle. alas, the guards don't know which bottle but know that the poison is so strong that even if diluted 1,000,000 times it would still kill the king. furthermore, it takes one month to have an effect. the bad king decides he will get some of the prisoners in his vast dungeons to drink the wine. being a clever bad king he knows he needs to murder no more than 10 prisoners - believing he can fob off such a low death rate - and will still be able to drink the rest of the wine at his anniversary party in 5 weeks time.&lt;br /&gt;3. additional question: to increase your chance of living, which prisoner would you want to be?&lt;br /&gt;4. What's the difference between Java and C#?&lt;br /&gt;5. additional question: Why C++ have multi inheritance but Java don't have?&lt;br /&gt;6. What's the difference between interface and abstract methods?&lt;br /&gt;7. additional question: In what conditions you prefer abstract methods instead of interface?&lt;br /&gt;8. additional question: What can interface do but abstract methods can't?&lt;br /&gt;9. Given two arrays A and B. Array A is sorted with n empty elements at the end; while array B has total n unsorted elements. How can you merge A and B into a sorted array.&lt;br /&gt;10. additional question: What's the Big Os of Selection sort, insertion sort, bucket sort?&lt;br /&gt;11. A linked list has a loop in it, how can you find it?&lt;br /&gt;12. additional question: suppose the linked list is super long, how can you find it the loop quickly?&lt;br /&gt;13. Explain left join in sql.&lt;br /&gt;14. Additional question: What's the difference between left join, right join, inner join, outer join and full join?&lt;br /&gt;14. Additional question: How can join effect the query performance?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-1627471371326995026?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/1627471371326995026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/bridgewater-associates-inc-interview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1627471371326995026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/1627471371326995026'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/bridgewater-associates-inc-interview.html' title='Bridgewater Associates, Inc. interview Questions (software developer).'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-2931172786864683329</id><published>2009-05-09T10:09:00.000-07:00</published><updated>2009-06-05T21:12:53.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online resources'/><category scheme='http://www.blogger.com/atom/ns#' term='Resources'/><title type='text'>Cool youtube videos</title><content type='html'>&lt;strong&gt;Reverse Engineer&lt;br /&gt;&lt;/strong&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tnY7UVyaFiQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/tnY7UVyaFiQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Stanford CS107&lt;br /&gt;&lt;/strong&gt;Programming Paradigms (CS107) introduces several programming languages, including C, Assembly, C++, Concurrent Programming, Scheme, and Python. The class aims to teach students how to write code for each of these individual languages and to understand the programming paradigms behind these languages.&lt;br /&gt;&lt;br /&gt;&lt;span style="DISPLAY: block; TEXT-ALIGN: center"&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ps8jOj7diA0&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Ps8jOj7diA0&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fight Science&lt;br /&gt;&lt;/strong&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rm0HwntPktM&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/rm0HwntPktM&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Diablo 2 End Cinematic&lt;br /&gt;&lt;/strong&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/phYVUcMw9JY&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/phYVUcMw9JY&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Starcraft II&lt;br /&gt;&lt;/strong&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1ipBCEZwbM0&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/1ipBCEZwbM0&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-2931172786864683329?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/2931172786864683329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/stanford-cs-107.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2931172786864683329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/2931172786864683329'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/stanford-cs-107.html' title='Cool youtube videos'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5860012307620510578</id><published>2009-05-09T08:14:00.000-07:00</published><updated>2009-05-21T11:57:20.370-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='10s blog tip'/><title type='text'>Blog Tricks, How to toggle text in your post?</title><content type='html'>&lt;a href="javascript:var a = document.getElementById('Link1').style.display='block'"&gt;Show&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('Link1').style.display='none'"&gt;Hide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="Link1" style="DISPLAY: none"&gt;&lt;br /&gt;Here is the text you would like to show&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------&lt;br /&gt;I figured out how to toggle text using inline javascript. Here is the code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;a href="javascript:var a = document.getElementById('Link1').style.display='block'"&amp;gt;Show&amp;lt;/a&amp;gt; &amp;amp;nbsp &amp;lt;a href="javascript:var b = document.getElementById('Link1').style.display='none'"&amp;gt;Hide&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="Link1" style="DISPLAY: none"&amp;gt;&lt;br /&gt;Here is the text you would like to show&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Please kindly let me know if you have found other ways of doing this.&lt;div&gt;&lt;a href="http://cyberjedizen.blogspot.com/search/label/10s%20blog%20tip"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5860012307620510578?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5860012307620510578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/how-to-use-toggle-text-in-your-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5860012307620510578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5860012307620510578'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/how-to-use-toggle-text-in-your-post.html' title='Blog Tricks, How to toggle text in your post?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-9046512473793196892</id><published>2009-05-05T22:24:00.000-07:00</published><updated>2009-06-05T21:10:53.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Windows multi-threading examples</title><content type='html'>&lt;a href="http://easyhitcounters.com/stats.php?site=kl2217" target="_top"&gt;&lt;img border="0" alt="Free Web Counter" src="http://beta.easyhitcounters.com/counter/index.php?u=kl2217&amp;s=a" ALIGN="middle" HSPACE="4" VSPACE="2"&gt;&lt;/a&gt;&lt;script src=http://beta.easyhitcounters.com/counter/script.php?u=kl2217&gt;&lt;/script&gt;&lt;br /&gt;&lt;br&gt;&lt;a href="http://easyhitcounters.com/" target="_top"&gt;&lt;font color="#666666"&gt;Free Counter&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These examples are based on the stanford CS107 lecture 15 - lecture 20.&lt;br /&gt;&lt;a href= 'http://www.youtube.com/view_play_list?p=9D558D49CA734A02&amp;page=1' target='_blank'&gt;&lt;br /&gt;youtube playlist&lt;br /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Since C++ multi-threading library is operation system dependent, the codes listed here are tested on Visual C++ 2008 Express Edition.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Windows Multithreading Helloworld&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Several Agents are selling some amount of tickets in parallel, their access to the global parameter numTicketsp are synchronized by a Mutex.&lt;br /&gt;-------------------------------&lt;br /&gt;The following code is tested on Visual C++ 2008 Express Edition.&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('Windows_muti-threading_examples_1').style.display='block'"&gt;Show Code&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('Windows_muti-threading_examples_1').style.display='none'"&gt;Hide Code&lt;/a&gt;&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;div id="Windows_muti-threading_examples_1" style="DISPLAY: none"&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;#include &amp;lt;fstream&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;process.h&amp;gt; // needed for _beginthread()&lt;br /&gt;#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;#define NUMTICKETS 150&lt;br /&gt;#define NUMAGENTS 10&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;static HANDLE hThrd; // thread handle&lt;br /&gt;static HANDLE hMutex = 0; // handle of mutex&lt;br /&gt;&lt;br /&gt;typedef struct ST{&lt;br /&gt;int agentid;&lt;br /&gt;int * numTicketsp;&lt;br /&gt;}thestruct;&lt;br /&gt;&lt;br /&gt;class TimeOutExc {&lt;br /&gt;// Add functionality if needed by your application.&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void SellTickets(thestruct* s)&lt;br /&gt;{&lt;br /&gt;int agent = s-&amp;gt;agentid +1;&lt;br /&gt;while(true){&lt;br /&gt;if(WaitForSingleObject(hMutex, 100000)==WAIT_TIMEOUT)&lt;br /&gt;throw TimeOutExc();&lt;br /&gt;if(*(s-&amp;gt;numTicketsp) == 0) break;&lt;br /&gt;&lt;br /&gt;cout &amp;lt;&amp;lt; "Agent " &amp;lt;&amp;lt; agent &amp;lt;&amp;lt; " sells the " &amp;lt;&amp;lt; NUMTICKETS - *(s-&amp;gt;numTicketsp) +1 &amp;lt;&amp;lt;"th ticket, \n" &amp;lt;&amp;lt; endl;&lt;br /&gt;(*(s-&amp;gt;numTicketsp)) --;&lt;br /&gt;&lt;br /&gt;ReleaseMutex(hMutex);&lt;br /&gt;&lt;br /&gt;int random_integer = rand();&lt;br /&gt;if(random_integer &amp;lt;= RAND_MAX/2)&lt;br /&gt;Sleep(1000); //just simulate the time spent on business logic&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;printf("Agent %d: All done. \n", agent);&lt;br /&gt;ReleaseMutex(hMutex);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;string s;&lt;br /&gt;int numAgents = NUMAGENTS;&lt;br /&gt;int numTickets = NUMTICKETS;&lt;br /&gt;hMutex = CreateMutex(NULL, 0, NULL);&lt;br /&gt;&lt;br /&gt;for(int i=0; i&amp;lt;numAgents; i++){&lt;br /&gt;thestruct st;&lt;br /&gt;st.agentid = i;&lt;br /&gt;st.numTicketsp = &amp;numTickets;&lt;br /&gt;hThrd = (HANDLE)_beginthread( (void(*)(void*))SellTickets, 0, (void*)&amp;amp;st );&lt;br /&gt;Sleep(200);&lt;br /&gt;//the main thread must sleep for a while in order to give thread some time to create their stack,&lt;br /&gt;//otherwise, the local variable i will have no place to push to, as a result, once the stack is ready, the local variable i could have changed to numAgents already,&lt;br /&gt;//you then wonder why all threads get the same agent number.&lt;br /&gt;}&lt;br /&gt;getline(cin,s);&lt;br /&gt;return 0;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Simple Semaphor Example&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;A simple network server :&lt;br /&gt;writer() grab data from network connection, then write characters to buffer, at the mean-time reader() constantly read character from the same buffer.&lt;br /&gt;Two semaphors "emptyBuffer" and "fullBuffer" are used here to make sure reader() and writer() won't step onto each other.&lt;br /&gt;&lt;br /&gt;-------------------------------&lt;br /&gt;The following code is tested on Visual C++ 2008 Express Edition.&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('Windows_muti-threading_examples_2').style.display='block'"&gt;Show Code&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('Windows_muti-threading_examples_2').style.display='none'"&gt;Hide Code&lt;/a&gt;&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;div id="Windows_muti-threading_examples_2" style="DISPLAY: none"&gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;#define MAX_SEM_COUNT 8&lt;br /&gt;#define THREADCOUNT 2&lt;br /&gt;&lt;br /&gt;HANDLE emptyBuffer;&lt;br /&gt;HANDLE fullBuffer;&lt;br /&gt;&lt;br /&gt;DWORD WINAPI ThreadProc_reader( LPVOID );&lt;br /&gt;DWORD WINAPI ThreadProc_writer( LPVOID );&lt;br /&gt;&lt;br /&gt;char buffer[8];&lt;br /&gt;//network server&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;string s;&lt;br /&gt;HANDLE aThread[THREADCOUNT];&lt;br /&gt;HANDLE Thread_reader;&lt;br /&gt;DWORD ThreadID_reader;&lt;br /&gt;HANDLE Thread_writer;&lt;br /&gt;DWORD ThreadID_writer;&lt;br /&gt;&lt;br /&gt;emptyBuffer = CreateSemaphore(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;MAX_SEM_COUNT, // initial count&lt;br /&gt;MAX_SEM_COUNT, // maximum count&lt;br /&gt;NULL); // unnamed semaphore&lt;br /&gt;if (emptyBuffer == NULL)&lt;br /&gt;{&lt;br /&gt;printf("CreateSemaphore emptyBuffer error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;fullBuffer = CreateSemaphore(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;0, // initial count&lt;br /&gt;MAX_SEM_COUNT, // maximum count&lt;br /&gt;NULL); // unnamed semaphore&lt;br /&gt;if (fullBuffer == NULL)&lt;br /&gt;{&lt;br /&gt;printf("CreateSemaphore fullBuffer error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Thread_reader = CreateThread(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;0, // default stack size&lt;br /&gt;(LPTHREAD_START_ROUTINE) ThreadProc_reader,&lt;br /&gt;NULL, // no thread function arguments&lt;br /&gt;0, // default creation flags&lt;br /&gt;&amp;amp;ThreadID_reader); // receive thread identifier&lt;br /&gt;&lt;br /&gt;if( Thread_reader == NULL )&lt;br /&gt;{&lt;br /&gt;printf("CreateThread reader error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Thread_writer = CreateThread(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;0, // default stack size&lt;br /&gt;(LPTHREAD_START_ROUTINE) ThreadProc_writer,&lt;br /&gt;NULL, // no thread function arguments&lt;br /&gt;0, // default creation flags&lt;br /&gt;&amp;amp;ThreadID_writer); // receive thread identifier&lt;br /&gt;&lt;br /&gt;if( Thread_writer == NULL )&lt;br /&gt;{&lt;br /&gt;printf("CreateThread writer error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Wait for all threads to terminate&lt;br /&gt;aThread[0] = Thread_writer;&lt;br /&gt;aThread[1] = Thread_reader;&lt;br /&gt;WaitForMultipleObjects(THREADCOUNT, aThread, TRUE, INFINITE);&lt;br /&gt;&lt;br /&gt;// Close thread and semaphore handles&lt;br /&gt;CloseHandle(Thread_reader);&lt;br /&gt;CloseHandle(Thread_writer);&lt;br /&gt;CloseHandle(emptyBuffer);&lt;br /&gt;CloseHandle(fullBuffer);&lt;br /&gt;&lt;br /&gt;getline(cin,s);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DWORD WINAPI ThreadProc_writer( LPVOID lpParam )&lt;br /&gt;{&lt;br /&gt;DWORD dwWaitResult;&lt;br /&gt;int random_integer;&lt;br /&gt;&lt;br /&gt;for(int i=0; i&amp;lt;40; i++){&lt;br /&gt;char c = 'A' + i;&lt;br /&gt;dwWaitResult = WaitForSingleObject(&lt;br /&gt;emptyBuffer, // handle to semaphore&lt;br /&gt;100000); // time-out interval&lt;br /&gt;&lt;br /&gt;switch (dwWaitResult)&lt;br /&gt;{&lt;br /&gt;// The semaphore object was signaled.&lt;br /&gt;case WAIT_OBJECT_0:&lt;br /&gt;// printf("Thread %d: wait succeeded\n", GetCurrentThreadId());&lt;br /&gt;// Perform task&lt;br /&gt;buffer[i%8]=c;&lt;br /&gt;&lt;br /&gt;// Simulate thread spending time on task&lt;br /&gt;random_integer = rand();&lt;br /&gt;if(random_integer &amp;lt;= RAND_MAX/2){&lt;br /&gt;cout &amp;lt;&amp;lt; "waiting for network..." &amp;lt;&amp;lt;endl;&lt;br /&gt;Sleep(1000);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Release the semaphore when task is finished&lt;br /&gt;&lt;br /&gt;if (!ReleaseSemaphore(&lt;br /&gt;fullBuffer, // handle to semaphore&lt;br /&gt;1, // increase count by one&lt;br /&gt;NULL) ) // not interested in previous count&lt;br /&gt;{&lt;br /&gt;printf("ReleaseSemaphore error: %d\n", GetLastError());&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// cout &amp;lt;&amp;lt; "write "&amp;lt;&amp;lt;i+1&amp;lt;&amp;lt;"th character to buffer: " &amp;lt;&amp;lt; buffer[i%8] &amp;lt;&amp;lt; endl;&lt;br /&gt;break;&lt;br /&gt;&lt;br /&gt;// The semaphore was nonsignaled, so a time-out occurred.&lt;br /&gt;case WAIT_TIMEOUT:&lt;br /&gt;printf("Thread %d: wait timed out\n", GetCurrentThreadId());&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DWORD WINAPI ThreadProc_reader( LPVOID lpParam )&lt;br /&gt;{&lt;br /&gt;DWORD dwWaitResult;&lt;br /&gt;char c;&lt;br /&gt;&lt;br /&gt;for(int i=0; i&amp;lt;40; i++){&lt;br /&gt;dwWaitResult = WaitForSingleObject(&lt;br /&gt;fullBuffer, // handle to semaphore&lt;br /&gt;100000); // time-out interval&lt;br /&gt;&lt;br /&gt;switch (dwWaitResult)&lt;br /&gt;{&lt;br /&gt;// The semaphore object was signaled.&lt;br /&gt;case WAIT_OBJECT_0:&lt;br /&gt;// printf("Thread %d: wait succeeded\n", GetCurrentThreadId());&lt;br /&gt;// Perform task&lt;br /&gt;c = buffer[i%8];&lt;br /&gt;&lt;br /&gt;// Simulate thread spending time on task&lt;br /&gt;Sleep(5);&lt;br /&gt;&lt;br /&gt;// Release the semaphore when task is finished&lt;br /&gt;&lt;br /&gt;if (!ReleaseSemaphore(&lt;br /&gt;emptyBuffer, // handle to semaphore&lt;br /&gt;1, // increase count by one&lt;br /&gt;NULL) ) // not interested in previous count&lt;br /&gt;{&lt;br /&gt;printf("ReleaseSemaphore error: %d\n", GetLastError());&lt;br /&gt;}&lt;br /&gt;//process data&lt;br /&gt;cout &amp;lt;&amp;lt; "read "&amp;lt;&amp;lt;i+1&amp;lt;&amp;lt;"th character from buffer: " &amp;lt;&amp;lt; c &amp;lt;&amp;lt; endl;&lt;br /&gt;break;&lt;br /&gt;&lt;br /&gt;// The semaphore was nonsignaled, so a time-out occurred.&lt;br /&gt;case WAIT_TIMEOUT:&lt;br /&gt;printf("Thread %d: wait timed out\n", GetCurrentThreadId());&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;A little bit advanced Semaphor Example&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Classic Five philosophers problem:&lt;br /&gt;There are 5 philosophers who sit around a table. There is a folk between each neighboring philosopher. Each philosopher must grab two folks to be able to eat. Once a philosopher finished eating, he will put the forks back and waiting for the next chance to eat. The objective is to write a multi-threading program to simulate the situation.&lt;br /&gt;&lt;br /&gt;The trick is -- suppose each philosopher is holding a folk at his/her left hand, and waiting for the philosopher at his right hand side to give up a fork. The philosopher at the right hand will not gonna to give up his fork, because he/she is also waiting for a fork from the right side...A dead-lock condition is thus created, nobody will be able to eat and they will be waiting forever.&lt;br /&gt;&lt;br /&gt;To resolve the dead-lock, we only allow at most 4 philosophers to grab forks at any given moment, the rest philosophers have to wait.&lt;br /&gt;&lt;br /&gt;The pseudocode is as follows:&lt;br /&gt;&lt;br /&gt;Semaphore forks[]={1,1,1,1,1};&lt;br /&gt;Semaphore numAllowedToEat(4);&lt;br /&gt;void philosophor(int id)&lt;br /&gt;{&lt;br /&gt;for(int i=0; i&lt;3; i++){&lt;br /&gt;think();&lt;br /&gt;SW(umAllowedToEat);&lt;br /&gt;SW(forks[id]);&lt;br /&gt;SW(forks[(id+1)%5]);&lt;br /&gt;eat();&lt;br /&gt;SS(forks[id]);&lt;br /&gt;SS(forks[(id+1)%5]);&lt;br /&gt;SS(numAllowedToEat);&lt;br /&gt;}&lt;br /&gt;-------------------------------&lt;br /&gt;The following code is tested on Visual C++ 2008 Express Edition.&lt;br /&gt;&lt;a href="javascript:var a = document.getElementById('Windows_muti-threading_examples_3').style.display='block'"&gt;Show Code&lt;/a&gt; &amp;nbsp &lt;a href="javascript:var b = document.getElementById('Windows_muti-threading_examples_3').style.display='none'"&gt;Hide Code&lt;/a&gt;&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;div id="Windows_muti-threading_examples_3" style="DISPLAY: none"&gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;#include &amp;lt;ctime&amp;gt;&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;#define THREADCOUNT 5&lt;br /&gt;&lt;br /&gt;DWORD WINAPI philosopher( LPVOID );&lt;br /&gt;&lt;br /&gt;HANDLE forks[THREADCOUNT];&lt;br /&gt;HANDLE numAllowedToEat;&lt;br /&gt;&lt;br /&gt;class TimeOutExc {&lt;br /&gt;// Add functionality if needed by your application.&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;string s;&lt;br /&gt;HANDLE aThread[THREADCOUNT];&lt;br /&gt;DWORD ThreadID;&lt;br /&gt;int i;&lt;br /&gt;&lt;br /&gt;for( i=0; i &amp;lt; THREADCOUNT; i++ ){&lt;br /&gt;forks[i] = CreateSemaphore(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;1, // initial count&lt;br /&gt;2, // maximum count&lt;br /&gt;NULL); // unnamed semaphore&lt;br /&gt;if (forks[i] == NULL)&lt;br /&gt;{&lt;br /&gt;printf("CreateSemaphore error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;Sleep(100);&lt;br /&gt;//the main thread need to sleep for a while in order to give thread some time to initialize&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;numAllowedToEat = CreateSemaphore(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;4, // initial count&lt;br /&gt;4, // maximum count&lt;br /&gt;NULL); // unnamed semaphore&lt;br /&gt;if (numAllowedToEat == NULL)&lt;br /&gt;{&lt;br /&gt;printf("CreateSemaphore numAllowedToEat error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Create worker threads&lt;br /&gt;for( i=0; i &amp;lt; THREADCOUNT; i++ ){&lt;br /&gt;aThread[i] = CreateThread(&lt;br /&gt;NULL, // default security attributes&lt;br /&gt;0, // default stack size&lt;br /&gt;(LPTHREAD_START_ROUTINE) philosopher,&lt;br /&gt;&amp;amp;i, // no thread function arguments&lt;br /&gt;0, // default creation flags&lt;br /&gt;&amp;amp;ThreadID); // receive thread identifier&lt;br /&gt;&lt;br /&gt;if( aThread[i] == NULL ) {&lt;br /&gt;printf("CreateThread error: %d\n", GetLastError());&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;Sleep(100);&lt;br /&gt;//the main thread need to sleep for a while in order to give thread some time to initialize&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Wait for all threads to terminate&lt;br /&gt;WaitForMultipleObjects(THREADCOUNT, aThread, TRUE, INFINITE);&lt;br /&gt;// Close thread and semaphore handles&lt;br /&gt;for( i=0; i &amp;lt; THREADCOUNT; i++ ){&lt;br /&gt;CloseHandle(aThread[i]);&lt;br /&gt;CloseHandle(forks[i]);&lt;br /&gt;}&lt;br /&gt;CloseHandle(numAllowedToEat);&lt;br /&gt;&lt;br /&gt;getline(cin,s);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DWORD WINAPI philosopher( LPVOID lpParam )&lt;br /&gt;{&lt;br /&gt;int id = *((int*)lpParam);&lt;br /&gt;int random_integer;&lt;br /&gt;&lt;br /&gt;for(int i=0; i&amp;lt;100; i++){&lt;br /&gt;&lt;br /&gt;// Simulate thread spending time on task&lt;br /&gt;random_integer = rand();&lt;br /&gt;if(random_integer &amp;lt;= RAND_MAX/2)&lt;br /&gt;Sleep(1000);&lt;br /&gt;&lt;br /&gt;if(WaitForSingleObject(numAllowedToEat, 100000)==WAIT_TIMEOUT)&lt;br /&gt;throw TimeOutExc();&lt;br /&gt;&lt;br /&gt;if(WaitForSingleObject(forks[id], 100000)==WAIT_TIMEOUT)&lt;br /&gt;throw TimeOutExc();&lt;br /&gt;&lt;br /&gt;if(WaitForSingleObject(forks[(id+1)%5], 100000)==WAIT_TIMEOUT)&lt;br /&gt;throw TimeOutExc();&lt;br /&gt;&lt;br /&gt;printf("NO: %d philosopher is eating...\n", id);&lt;br /&gt;&lt;br /&gt;if (!ReleaseSemaphore(forks[id],1, NULL) )&lt;br /&gt;printf("ReleaseSemaphore error forks[id]: %d\n", GetLastError());&lt;br /&gt;&lt;br /&gt;if (!ReleaseSemaphore(forks[(id+1)%5],1, NULL) )&lt;br /&gt;printf("ReleaseSemaphore error forks[(id+1)%5]: %d\n", GetLastError());&lt;br /&gt;&lt;br /&gt;if (!ReleaseSemaphore(numAllowedToEat,1, NULL) )&lt;br /&gt;printf("ReleaseSemaphore error (numAllowedToEat): %d\n", GetLastError());&lt;br /&gt;}&lt;br /&gt;return TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-9046512473793196892?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/9046512473793196892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/visual-c-semaphor-example.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9046512473793196892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/9046512473793196892'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/05/visual-c-semaphor-example.html' title='Windows multi-threading examples'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-5502797032389338523</id><published>2008-06-26T03:46:00.000-07:00</published><updated>2009-06-26T04:17:17.735-07:00</updated><title type='text'>Thank you for submit your message</title><content type='html'>&lt;!-- scrollable code div --&gt;&lt;a href="http://2.bp.blogspot.com/_X6kyFSC4X_A/Si68_PTdNII/AAAAAAAAA0Q/xbxp_gz1YOE/s1600-h/Contact_Me.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5345417602361275522" style="margin: 0px 0px 10px 10px; float: right; width: 320px; height: 254px;" alt="" src="http://2.bp.blogspot.com/_X6kyFSC4X_A/Si68_PTdNII/AAAAAAAAA0Q/xbxp_gz1YOE/s320/Contact_Me.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;You feedback have been sent to the webmaster, thank you for you time!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-5502797032389338523?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/5502797032389338523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/thank-you-for-submit-your-message.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5502797032389338523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/5502797032389338523'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/thank-you-for-submit-your-message.html' title='Thank you for submit your message'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_X6kyFSC4X_A/Si68_PTdNII/AAAAAAAAA0Q/xbxp_gz1YOE/s72-c/Contact_Me.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5114814857102747069.post-7694109604957122053</id><published>2008-06-08T13:41:00.000-07:00</published><updated>2009-06-26T04:17:59.491-07:00</updated><title type='text'>Any Suggestions for my blog?</title><content type='html'>This blog shares my passion of using technology for good.&lt;br /&gt;If you have any suggestions or questions, please leave your comment here or send me a message. Your feedback is highly appreciated!&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://www.emailmeform.com/fid.php?formid=345965" enctype="multipart/form-data" accept-charset="UTF-8"&gt;&lt;table cellpadding="2" cellspacing="0" border="0" bgcolor="#FFFFFF"&gt;&lt;tr&gt;&lt;td&gt;&lt;font face="Verdana" size="2" color="#000000"&gt;&lt;/font&gt; &lt;div style="" id="mainmsg"&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;table cellpadding="2" cellspacing="0" border="0" bgcolor="#FFFFFF"&gt;&lt;tr valign="top"&gt; &lt;td nowrap&gt;&lt;font face="Verdana" size="2" color="#000000"&gt;Your Name&lt;/font&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="FieldData0" size="30"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td nowrap&gt;&lt;font face="Verdana" size="2" color="#000000"&gt;Your Email Address&lt;/font&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="FieldData1" size="30"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td nowrap&gt;&lt;font face="Verdana" size="2" color="#000000"&gt;Subject&lt;/font&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="FieldData2" size="30"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt; &lt;td nowrap&gt;&lt;font face="Verdana" size="2" color="#000000"&gt;Message&lt;/font&gt;&lt;/td&gt; &lt;td&gt;&lt;textarea name="FieldData3" cols="30" rows="10"&gt;&lt;/textarea&gt;&lt;br&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2"&gt;&lt;table cellpadding=5 cellspacing=0 bgcolor="#E4F8E4" width="100%"&gt;&lt;tr bgcolor="#AAD6AA"&gt;&lt;td colspan="2"&gt;&lt;font color="#FFFFFF" face="Verdana" size="2"&gt;&lt;b&gt;Image Verification&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding: 2px;" width="10"&gt;&lt;img src="http://www.emailmeform.com/turing.php" id="captcha"&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;font color="#000000"&gt;Please enter the text from the image&lt;/font&gt;   &lt;br&gt;&lt;input type="text" name="Turing" value="" maxlength="100" size="10"&gt; &lt;a href="#" onclick=" document.getElementById('captcha').src = document.getElementById('captcha').src + '?' + (new Date()).getMilliseconds()"&gt;Refresh&lt;/a&gt; &lt;a href="http://www.emailmeform.com/?v=turing&amp;pt=popup" onClick="window.open('http://www.emailmeform.com/?v=turing&amp;pt=popup','_blank','width=400, height=300, left=' + (screen.width-450) + ', top=100');return false;"&gt;What's This?&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;td align="left"&gt;&lt;input type="text" name="hida2" value="" maxlength="100" size="3" style="display : none;"&gt;&lt;input type="submit" class="btn" value="Send email" name="Submit"&gt;    &lt;input type="reset" class="btn" value="  Clear  " name="Clear"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=2 align="center"&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5114814857102747069-7694109604957122053?l=cyberjedizen.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cyberjedizen.blogspot.com/feeds/7694109604957122053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/any-suggestions-for-my-blog.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7694109604957122053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5114814857102747069/posts/default/7694109604957122053'/><link rel='alternate' type='text/html' href='http://cyberjedizen.blogspot.com/2009/06/any-suggestions-for-my-blog.html' title='Any Suggestions for my blog?'/><author><name>Charles</name><uri>http://www.blogger.com/profile/06029572704560114734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_IJxULM6OoA4/ShQ3epcSFLI/AAAAAAAAACw/tLfbh9wuxVc/S220/headimg.gif'/></author><thr:total>4</thr:total></entry></feed>
